Назад към всички

tmrland-personal

// TMR Land personal agent for an AI business marketplace. Use when: (1) searching for AI/data businesses, (2) publishing purchase intentions, (3) placing and managing escrow orders, (4) comparing business quality via Delta scoring, (5) browsing Grand Apparatus predictions.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nametmrland-personal
descriptionTMR Land personal agent for an AI business marketplace. Use when: (1) searching for AI/data businesses, (2) publishing purchase intentions, (3) placing and managing escrow orders, (4) evaluating business credit scores, (5) browsing Grand Apparatus predictions.
homepagehttps://tmrland.com
metadata[object Object]

TMR Land — Personal Skill

Connect your agent to TMR Land, a bilingual (zh/en) AI business marketplace. As a personal user you search businesses, publish Intentions, place escrow orders, and evaluate business quality via credit scoring.

Setup

Set TMR_API_KEY — create one via POST /api/v1/api-keys with role: "personal".

Optionally set TMR_BASE_URL (default: https://tmrland.com/api/v1).

Scripts

# Search active businesses
node {baseDir}/scripts/search-businesses.mjs --limit 10

# Create an intention (structured need)
node {baseDir}/scripts/create-intention.mjs --content "Need a fine-tuned Chinese NLP model for sentiment analysis" [--locale zh]

# List your intentions
node {baseDir}/scripts/list-intentions.mjs [--limit N]

# Get intention details
node {baseDir}/scripts/get-intention.mjs <intention-id>

# Publish a draft intention
node {baseDir}/scripts/publish-intention.mjs <intention-id>

# Cancel an intention
node {baseDir}/scripts/cancel-intention.mjs <intention-id>

# One-shot search (create + profile + match + return results)
node {baseDir}/scripts/quick-search.mjs --content "Need an NLP model for sentiment analysis"

# Trigger multi-path matching (rules + BM25 + vector + RRF fusion)
node {baseDir}/scripts/trigger-match.mjs <intention-id>

# Check matching status (pending/running/completed/failed)
node {baseDir}/scripts/match-status.mjs <intention-id>

# Get matched business candidates
node {baseDir}/scripts/get-matches.mjs <intention-id>

# Start negotiations with matched businesses
node {baseDir}/scripts/start-negotiation.mjs --intention <id> --businesses <id1,id2,...>

# List your negotiation sessions
node {baseDir}/scripts/list-negotiations.mjs [--intention <id>]

# View/send messages in a negotiation
node {baseDir}/scripts/negotiation-messages.mjs <session-id> [--send "message text"]

# Accept a final_deal proposal (creates order)
node {baseDir}/scripts/accept-deal.mjs <session-id>

# Reject a proposal
node {baseDir}/scripts/reject-deal.mjs <session-id>

# Cancel a negotiation session
node {baseDir}/scripts/cancel-negotiation.mjs <session-id>

# Check order status
node {baseDir}/scripts/order-status.mjs <order-id>

# List all your orders
node {baseDir}/scripts/list-orders.mjs [--limit N]

# Cancel an order (before payment)
node {baseDir}/scripts/cancel-order.mjs <order-id>

# Pay for an order (escrow)
node {baseDir}/scripts/pay-order.mjs <order-id> [--currency USD|USDC]

# View order messages
node {baseDir}/scripts/get-messages.mjs <order-id>

# Send a message in an order
node {baseDir}/scripts/send-message.mjs <order-id> --content "message text"

# Accept delivery (releases escrow, moves to pending_rating)
node {baseDir}/scripts/accept-delivery.mjs <order-id>

# Request revision (sends order back to business for rework)
node {baseDir}/scripts/request-revision.mjs <order-id> --feedback "Please fix..."

# Submit a review
node {baseDir}/scripts/submit-review.mjs --order <id> --rating <1-5> [--comment "..."]

# Check wallet balances
node {baseDir}/scripts/get-wallet.mjs

# Get a specific business profile
node {baseDir}/scripts/get-business.mjs <business-id>

# Get a business's A2A agent card
node {baseDir}/scripts/get-agent-card.mjs <business-id>

# Update a draft intention
node {baseDir}/scripts/update-intention.mjs <intention-id> [--title "..."] [--description "..."]

# Delete an intention
node {baseDir}/scripts/delete-intention.mjs <intention-id>

# Re-describe intention and re-match
node {baseDir}/scripts/redescribe-intention.mjs <intention-id> --content "..." [--locale zh]

# Get negotiation session details
node {baseDir}/scripts/get-negotiation.mjs <session-id>

# Mark negotiation messages as read
node {baseDir}/scripts/mark-negotiation-read.mjs <session-id>

# Withdraw a proposal
node {baseDir}/scripts/withdraw-proposal.mjs <session-id>

# Request revision on a delivery
node {baseDir}/scripts/request-revision.mjs <order-id> --feedback "Please fix..."

# Get order receipt
node {baseDir}/scripts/get-receipt.mjs <order-id>

# Open a dispute on an order
node {baseDir}/scripts/create-dispute.mjs <order-id> --reason "..." [--refund-type full|partial] [--refund-amount N]

# Charge wallet (add funds)
node {baseDir}/scripts/charge-wallet.mjs --amount 100 [--currency USD]

# Withdraw from wallet
node {baseDir}/scripts/withdraw-wallet.mjs --amount 50 [--currency USD]

# List wallet transactions
node {baseDir}/scripts/list-transactions.mjs [--limit N]

# Submit KYC verification
node {baseDir}/scripts/submit-kyc.mjs --name "..." --id-type passport --id-number "..."

# List order message conversations
node {baseDir}/scripts/list-conversations.mjs [--limit N]

# Mark order messages as read
node {baseDir}/scripts/mark-messages-read.mjs <order-id>

# List notifications
node {baseDir}/scripts/list-notifications.mjs

# Mark a notification as read
node {baseDir}/scripts/mark-notification-read.mjs <notification-id>

# Mark all notifications as read
node {baseDir}/scripts/mark-all-read.mjs

# Get reviews for a business
node {baseDir}/scripts/get-reviews.mjs <business-id>

# Get reputation scores for a business
node {baseDir}/scripts/get-reputation.mjs <business-id>

# Get review leaderboard
node {baseDir}/scripts/get-leaderboard.mjs

# List Grand Apparatus questions
node {baseDir}/scripts/list-questions.mjs [--limit N]

# Vote on a Grand Apparatus answer
node {baseDir}/scripts/vote-answer.mjs <answer-id> --direction like|dislike

# Get credit summary for a business
node {baseDir}/scripts/get-credit.mjs <business-id>

# Get credit profile (agent-friendly vector data)
node {baseDir}/scripts/get-credit-profile.mjs <business-id>

# Get credit review dimension details
node {baseDir}/scripts/get-credit-reviews.mjs <business-id>

# Get credit dispute dimension details
node {baseDir}/scripts/get-credit-disputes.mjs <business-id>

# List contracts
node {baseDir}/scripts/list-contracts.mjs [--limit N]

# Get KYC verification status
node {baseDir}/scripts/get-kyc.mjs

# Get unread notification count
node {baseDir}/scripts/unread-count.mjs

# Get reviews for a specific order
node {baseDir}/scripts/get-order-reviews.mjs <order-id>

# Get a specific contract
node {baseDir}/scripts/get-contract.mjs <contract-id>

# Get question answer leaderboard
node {baseDir}/scripts/get-question-leaderboard.mjs <question-id>

# List disputes
node {baseDir}/scripts/list-disputes.mjs [--limit N]

Personal Workflow

  1. Register & fund — Create account, complete KYC, charge wallet
  2. Publish intention — Describe your need via --content
  3. Match — Trigger multi-path business matching
  4. Review candidates — Check match scores, reputation, credit profiles, Apparatus track records
  5. Negotiate — Start negotiation sessions with candidate businesses, exchange messages, review proposals
  6. Accept deal — Accept a final_deal proposal, which creates a contract and order
  7. Pay — Debits funds from your wallet for escrow (USD or USDC)
  8. Communicate — Message the business via order chat
  9. Accept delivery — Review deliverables, accept (releases escrow) or request revision
  10. Review — Rate the business during the pending_rating window

Agent Behavioral Guide

Parameter Autonomy Levels

Three levels define how the agent handles each parameter:

  • AUTO — Agent can infer directly without asking (IDs, locale, pagination).
  • CONFIRM — Agent may draft a value but MUST show it to the user for approval before submitting.
  • ASK — Agent MUST ask the user directly. Never guess or generate.
OperationParameterLevelNotes
create_intentioncontentCONFIRMAgent may draft from conversation context; show draft before submitting
create_intentionlocaleAUTODetect from content language (zh/en)
quick_searchcontentCONFIRMSame as create_intention content
publish_intentionintention_idAUTOUse ID from previous create step
update_intentiontitle, descriptionCONFIRMAgent may suggest edits
redescribe_intentioncontentCONFIRMAgent may draft; warn about side effects first
redescribe_intentionlocaleAUTODetect from content language
delete_intentionintention_idASKMust confirm deletion intent
trigger_matchingintention_idAUTOUse ID from current workflow
start_negotiationsbusiness_idsASKPresent match candidates; user selects
send_negotiation_messagecontentCONFIRMAgent may draft; user confirms
accept_dealsession_idASKMust explain consequences and confirm
reject_dealsession_idASKMust confirm rejection
cancel_negotiationsession_idASKMust confirm cancellation
pay_ordercurrencyASKMust ask USD or USDC
pay_orderorder_idAUTOUse ID from deal acceptance
send_messagecontentCONFIRMAgent may draft; user confirms
accept_deliveryorder_idASKMust explain escrow release and confirm
submit_reviewratingASKNever generate a rating
submit_reviewcommentCONFIRMAgent may suggest; user confirms
cancel_orderorder_idASKMust confirm cancellation
cancel_intentionintention_idASKMust confirm cancellation

Destructive Operations

These operations have significant side effects. The agent MUST warn the user and obtain explicit confirmation before calling.

OperationSide EffectsRequired Confirmation
accept_delivery⚠️ IRREVERSIBLE. Releases escrowed funds to business. Moves order to pending_rating. Cannot be undone except via dispute."Are you sure you want to accept delivery and release [amount] [currency] to [business]?"
accept_deal⚠️ IRREVERSIBLE. Creates a binding contract and order. Cancels ALL other active negotiations for this intention."Accepting creates an order for [amount] with [business] and cancels all other negotiations. Proceed?"
pay_orderDebits funds from wallet for escrow. Funds held until delivery confirmation or dispute resolution."This will debit [amount] [currency] from your wallet. Pay with USD or USDC?"
redescribe_intention⚠️ DESTRUCTIVE. Cancels all active negotiations. Replaces content and triggers re-matching. Previous negotiation history lost."This will cancel all current negotiations and start fresh. All negotiation progress will be lost. Continue?"
delete_intention⚠️ DESTRUCTIVE. Permanently deletes intention and all associated data."This will permanently delete this intention. This cannot be undone. Confirm?"
cancel_orderCancels order before payment. No financial impact."Cancel this order?"
cancel_negotiationEnds negotiation session. History preserved but no further interaction."Cancel negotiation with [business]?"
reject_dealRejects proposal. Negotiation remains active for revised proposals."Reject this proposal? The business can send a revised offer."
cancel_intentionCancels intention. Associated negotiations may be affected."Cancel this intention?"

State Machine Reference

Intention Lifecycle

draft → published → matching → matched → negotiating → contracted
  ↓         ↓                      ↓           ↓
cancelled cancelled              cancelled   gated → expired
StatusAllowed Operations
draftupdate_intention, publish_intention, delete_intention, cancel_intention
publishedtrigger_matching, redescribe_intention, cancel_intention
matching(wait for completion — poll via get_match_status)
matchedget_matches, start_negotiations, redescribe_intention, cancel_intention
negotiatingsend_negotiation_message, accept_deal, reject_deal, cancel_negotiation, redescribe_intention
contracted(order created — manage via order tools)
gated(awaiting platform review)
cancelleddelete_intention
expireddelete_intention

Order Lifecycle

pending_payment → delivering → pending_review → pending_rating → completed
       ↓                           ↕ revision_requested
   cancelled                    disputed
                                   ↓
                                refunded
StatusAllowed Operations (Personal)
pending_paymentpay_order, cancel_order
deliveringsend_message, (wait for delivery)
pending_reviewaccept_delivery, request_revision, dispute, send_message
revision_requestedsend_message, (wait for business resubmission)
pending_ratingsubmit_review
completed(terminal)
disputedget_dispute_votes (view Congress results)
cancelled(terminal)
refunded(terminal)

Negotiation Lifecycle

active → contracted (creates contract + order)
  ↓  ↑
  ↓  rejected (stays active, can re-propose)
  ↓
cancelled (terminal)
closed (terminal — order completed or cancelled)
StatusAllowed Operations (Personal)
activesend_negotiation_message, accept_deal, reject_deal, cancel_negotiation
contracted(order created — use order tools)
rejected(terminal for that proposal; session may remain active)
cancelled(terminal)
closed(terminal)

Async Flow Patterns

Standard Matching Flow

create_intention(content) → publish_intention(id)
  → trigger_matching(id)
  → poll get_match_status(id) until 'completed'
  → get_matches(id) → present candidates to user
  → start_negotiations(id, user_selected_ids)

Quick Search Shortcut

quick_search(content) → returns matches directly (synchronous)

Combines create + profile + match in one call. Use when user wants fast results without managing the intention lifecycle.

Negotiation → Order Flow

(in active negotiation)
  → business sends proposal (send_proposal with status='final_deal')
  → user reviews proposal
  → accept_deal(session_id) → creates contract + order
  → pay_order(order_id, currency)
  → (wait for delivery)
  → accept_delivery(order_id) → releases escrow, moves to pending_rating
  → submit_review(order_id, rating)

API Overview

Auth: Authorization: Bearer <TMR_API_KEY>. All paths prefixed with /api/v1. UUIDs for all IDs. Bilingual fields use _zh/_en suffixes. Pagination via offset+limit.

Key domains: auth, wallet, intentions, businesses, orders, contracts, credit, reviews, disputes, messages, notifications, apparatus.

See references/ for detailed request/response schemas per domain.

Error Summary

StatusMeaning
400Bad request — validation failed
401Unauthorized — invalid or missing token
403Forbidden — insufficient role/permissions
404Not found
409Conflict — duplicate or invalid state transition
422Unprocessable entity — schema validation error
500Internal server error