You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(txodds): add sharp-movement research watcher and match grading
Watches /api/board for odds moves via agent/market.ts's select1x2Market,
queues sharp-movement WANTs for event-mode buyers, and grades delivered
predictions against TxLINE's live score snapshots once matches end.
`leadingLabel` (`part1` | `x` | `part2`) is what `examples/txodds/research/grade.ts` later grades
85
+
against the real final score — see `research/GRADING.md`.
86
+
87
+
Normally paired with `examples/txodds/coral/round.ts`'s `SHARP_MOVEMENT_ENABLED=1`, which sets this
88
+
`SERVICES` value automatically and points the buyer's `WANT_FEED_URL` at the watcher's queue instead
89
+
of a fixed rotating arg.
90
+
75
91
## Optional Upstream Procurement
76
92
77
93
Set `PROCURE_RAIL=x402` to have the seller buy an upstream resource for real, paid over x402, after
@@ -101,9 +117,9 @@ Variables:
101
117
|---|---|
102
118
|`SELLER_WALLET`| Payout address. |
103
119
|`AGENT_NAME`| Agent/persona name. |
104
-
|`SERVICES`| Comma-separated supported services. Current coded services are `txline` and `freelance`. |
120
+
|`SERVICES`| Comma-separated supported services. Current coded services are `txline`, `sharp-movement`, and `freelance`. |
105
121
|`FLOOR_SOL`| Base business floor in SOL for a deterministic service; the real floor for an `LLM_DELIVERY_TOKENS`-listed service adds a derived surcharge on top — see Bid Decision Loop above. |
106
-
|`LLM_DELIVERY_TOKENS`| JSON map of service → max_tokens, e.g. `{"txline":260}` — services this seller's delivery code actually calls an LLM for, so that service's floor is derived from real cost instead of `FLOOR_SOL` alone. |
122
+
|`LLM_DELIVERY_TOKENS`| JSON map of service → max_tokens, e.g. `{"txline":260,"sharp-movement":260}` — services this seller's delivery code actually calls an LLM for, so that service's floor is derived from real cost instead of `FLOOR_SOL` alone. |
107
123
|`PERSONA`| Persona label/config. |
108
124
|`STRATEGY`| Pricing posture once `REPUTATION_URL` clearing data is available: `undercut`\|`premium`\|`balanced` (default). No-op without `REPUTATION_URL`. |
109
125
|`BID_REVIEW_ENABLED`| Set to `1` to run a second, adversarial review loop before posting a bid — see above. |
Copy file name to clipboardExpand all lines: coral-agents/seller-agent/coral-agent.toml
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ edition = 4
7
7
[agent]
8
8
name = "seller-agent"
9
9
version = "0.1.0"
10
-
description = "TxODDS marketplace seller. Bids on txline WANTs, verifies arbiter-funded escrow, and delivers a fair-line read."
10
+
description = "TxODDS marketplace seller. Bids on txline WANTs, verifies arbiter-funded escrow, and delivers a fair-line read. SERVICES=txline,sharp-movement also lets it analyze fixtures the research watcher flags as having moved."
11
11
summary = "TypeScript TxODDS seller that competes in CoralOS and settles through arbiter-gated escrow."
12
12
readme = "Bids in the shared market thread (WANT -> BID), issues ESCROW_REQUIRED with settlement=arbiter, verifies the funded vault escrow on DEPOSITED, then delivers the TxODDS read."
13
13
@@ -18,11 +18,11 @@ expression = "MIT"
18
18
[options]
19
19
SELLER_WALLET = { type = "string", description = "Devnet wallet pubkey that receives payments" }
20
20
AGENT_NAME = { type = "string", default = "seller-agent", description = "Market identity for this seller persona" }
21
-
SERVICES = { type = "string", default = "txline", description = "Inventory; the TxODDS demo uses txline" }
21
+
SERVICES = { type = "string", default = "txline", description = "Inventory - default demo uses txline; set to txline,sharp-movement (with SHARP_MOVEMENT_ENABLED=1 on the round launcher) to also analyze research-watcher-flagged moves" }
22
22
FLOOR_SOL = { type = "f64", default = 0.0005, description = "Minimum bid in SOL" }
23
23
PERSONA = { type = "string", default = "a TxODDS specialist selling verified fair-line reads", description = "Bidding persona" }
24
24
STRATEGY = { type = "string", default = "", description = "Pricing posture once REPUTATION_URL clearing data is available: undercut | premium | balanced (default)" }
25
-
LLM_DELIVERY_TOKENS = { type = "string", default = "", description = "JSON map of service -> max_tokens for services this seller's delivery code calls an LLM for, e.g. {\"txline\":260} - derives that service's floor from real LLM cost instead of FLOOR_SOL alone" }
25
+
LLM_DELIVERY_TOKENS = { type = "string", default = "", description = "JSON map of service -> max_tokens for services this seller's delivery code calls an LLM for, e.g. {\"txline\":260,\"sharp-movement\":260} - derives that service's floor from real LLM cost instead of FLOOR_SOL alone" }
26
26
BID_REVIEW_ENABLED = { type = "string", default = "0", description = "Set to 1 to run a second, adversarial review loop before posting a bid" }
27
27
REPUTATION_URL = { type = "string", default = "", description = "The feed's /api/reputation - when set, gates whether this seller bids at all and feeds clearing-price awareness into pricing" }
28
28
SERVICE = { type = "string", default = "txline", description = "Delivery service; only txline is routed" }
0 commit comments