@stelis/say-ur-intent 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -30,8 +30,8 @@ choices remain with the user, and what claims are unsupported.
30
30
 
31
31
  Say Ur Intent is one product, but it must be read at three distinct layers. Do not collapse them:
32
32
 
33
- - **Implemented today:** Sui mainnet evidence, local review, and the first signable review adapter for the DeepBook swap route. The account-bound DeepBook swap review builds unsigned transaction material into a local in-process material store, internally binds a Sui transaction digest to that stored material, derives object ownership, quote/policy provenance, human-readable review facts, and review-time simulation evidence from the same private review artifacts, emits a schema-validated wallet review contract with a PTB visualization on a `ready_for_wallet_review` state, and serves a digest-gated byte handoff to the same-machine review page for user-controlled wallet signing with execution receipts recorded on the session. MCP responses do not contain transaction bytes, signing data, or signing readiness.
34
- - **Deliberately sequenced next (planned order, ships only after verified review):** server-side receipt verification against chain state, additional protocol adapters registered through the descriptor contract (protocol names appear only after a concrete support decision), and richer local analysis views. Each step ships only from independently built or verified transaction material with a human-readable local review.
33
+ - **Implemented today:** Sui mainnet evidence, local review, and signable review adapters for the DeepBook and FlowX swap routes. The account-bound DeepBook swap review builds unsigned transaction material into a local in-process material store, internally binds a Sui transaction digest to that stored material, derives object ownership, quote/policy provenance, human-readable review facts, and review-time simulation evidence from the same private review artifacts, emits a schema-validated wallet review contract with a PTB visualization on a `ready_for_wallet_review` state, and serves a digest-gated byte handoff to the same-machine review page for user-controlled wallet signing with execution receipts recorded on the session. MCP responses do not contain transaction bytes, signing data, or signing readiness.
34
+ - **Deliberately sequenced next (planned order, ships only after verified review):** server-side receipt verification against chain state, further protocol adapters beyond DeepBook and FlowX registered through the descriptor contract (protocol names appear only after a concrete support decision), and richer local analysis views. Each step ships only from independently built or verified transaction material with a human-readable local review.
35
35
  - **Never (permanently unsupported at every layer):** no private-key custody, no MCP or AI autonomous execution, no forwarding of opaque external transaction bytes to a wallet, no silent settlement-token or route choice, no fiat cash-out, no P&L, no peg guarantee.
36
36
 
37
37
  In one sentence: Say Ur Intent is a local-first Sui intent evidence and review layer that progresses from verified evidence to user-controlled wallet signing only after Say Ur Intent independently builds or verifies the transaction material and shows a human-readable local review.
@@ -91,42 +91,6 @@ For manual maintainer and developer utilities, see [docs/UTILITY_INDEX.md](docs/
91
91
 
92
92
  User-question flows for USD-denominated coverage, balance totals, and shortfall answers live in [docs/AGENT_BEHAVIOR.md](docs/AGENT_BEHAVIOR.md). The response fields for those answers live in [docs/MCP_TOOLS.md](docs/MCP_TOOLS.md).
93
93
 
94
- ## How Product Quality Improves: Three Axes
95
-
96
- Future quality work moves along three axes. They multiply rather than add,
97
- so neglecting any one of them caps the value of the other two:
98
-
99
- - **Axis 1 - intent, evidence, answer quality.** Understanding what the user
100
- asked, routing it to the right tool (prompt surfaces, `userAnswerUse`
101
- response guidance), and answering only from verified mainnet evidence -
102
- including saying plainly when a question cannot be answered from the
103
- returned evidence. This axis is never finished; it is sharpened
104
- continuously.
105
- - **Axis 2 - protocol breadth.** Additional protocol adapters registered
106
- through the descriptor contract (protocol names appear only after a
107
- concrete support decision). Breadth is a multiplier, not a list: with a
108
- second protocol, action routing starts doing real work (the bare action
109
- prompt asks the user to choose a venue instead of routing silently), and
110
- the execution-trust foundation proves it is not single-protocol.
111
- - **Axis 3 - execution-trust foundation.** The guarantee that what the user
112
- reviewed is exactly what gets signed, held under any wallet and any signing
113
- speed: the review-session state machine, the one-transaction-per-session
114
- handoff lock, sign-only wallets and slow hardware signers, review-page
115
- security headers, and runtime lifecycle stability. Packaging and runtime
116
- operability belong here too. This axis is the product differentiator, so
117
- it is tracked as its own axis rather than as a side effect of feature work.
118
-
119
- ```text
120
- axis 1 (intent-evidence quality) --+
121
- +--x axis 2 (protocol breadth) = product value
122
- axis 3 (execution-trust base) --+
123
- ```
124
-
125
- Work that advances several axes at once - for example, a new adapter that
126
- forces the intent entry point to generalize and re-proves the trust pipeline
127
- on a second protocol - is preferred over work that advances one axis in
128
- isolation.
129
-
130
94
  ## What Works Today
131
95
 
132
96
  The current release can run as a local stdio MCP server and expose mainnet Sui DeFi evidence:
@@ -136,10 +100,11 @@ The current release can run as a local stdio MCP server and expose mainnet Sui D
136
100
  - USD-denominated settlement asset groups derived from pinned DeepBook SDK registry metadata;
137
101
  - intent evidence with response summaries for natural-language USD-denominated payment coverage, balance-total, and shortfall questions;
138
102
  - DeepBook pools, tokens, mid price, orderbook context, raw quotes, display-amount quotes, and account inventory;
103
+ - FlowX CLMM pools and indicative single-hop swap route quotes from the chain-verified pinned registry;
139
104
  - user-requested bounded Sui transaction digest lookup, account activity scans, sent-function activity scans with known-wallet-only persistence, and stored normalized activity summaries;
140
105
  - read-only external proposal review sessions that display proposed action, asset flow, recipient or target, freshness, missing evidence, user choices, unsupported claims, and non-signable reason;
141
106
  - local Say Ur Intent review evidence and review-session status reads;
142
- - account-bound DeepBook swap review progress through local unsigned transaction material build, internal Sui transaction digest binding, object ownership evidence, quote/policy provenance binding, human-readable review facts, and review-time simulation evidence; when every stage completes the review reaches `ready_for_wallet_review` and the local review page offers a digest-gated byte handoff, user-controlled wallet signing, and execution-receipt recording. The MCP layer and review API never sign, execute, or return transaction bytes.
107
+ - account-bound DeepBook and FlowX swap review progress through local unsigned transaction material build, internal Sui transaction digest binding, object ownership evidence, quote/policy provenance binding, human-readable review facts, and review-time simulation evidence; when every stage completes the review reaches `ready_for_wallet_review` and the local review page offers a digest-gated byte handoff, user-controlled wallet signing, and execution-receipt recording. The MCP layer and review API never sign, execute, or return transaction bytes.
143
108
 
144
109
  It also includes:
145
110
 
@@ -11,7 +11,7 @@ It is not the contributor rulebook and it is not enforcement. Development rules
11
11
  | Surface | Status | Behavior |
12
12
  | --- | --- | --- |
13
13
  | Sui mainnet state reads | Current | Use read tools for supported balances, DeepBook pools, token registry metadata, mid-price snapshots, orderbook context, raw-quantity quotes, and DeepBook account inventory. |
14
- | DeepBook review sessions | Digest-gated handoff; user-controlled signing on the review page | A review URL can be created. The review URL displays the proposal and local review evidence. The account-bound review can build local unsigned DeepBook swap transaction material inside the review server, internally bind a Sui transaction digest to that stored material, and derive object ownership, quote/policy provenance, human-readable review facts, and review-time simulation evidence from the same private review artifacts. This release does not provide a sign action, signing data, MCP-visible transaction bytes, or signing readiness. The local review page requests a digest-gated byte handoff for a `ready_for_wallet_review` state, then the user signs in their own wallet and the page records the execution receipt. |
14
+ | DeepBook and FlowX swap review sessions | Digest-gated handoff; user-controlled signing on the review page | A review URL can be created. The review URL displays the proposal and local review evidence. The account-bound review can build local unsigned DeepBook or FlowX swap transaction material inside the review server, internally bind a Sui transaction digest to that stored material, and derive object ownership, quote/policy provenance, human-readable review facts, and review-time simulation evidence from the same private review artifacts. This release does not provide a sign action, signing data, MCP-visible transaction bytes, or signing readiness. The local review page requests a digest-gated byte handoff for a `ready_for_wallet_review` state, then the user signs in their own wallet and the page records the execution receipt. |
15
15
  | External proposal review sessions | Non-signable review in the current release | `action.prepare_external_proposal_review` can create a review URL from a structured external payment or Sui action proposal. Treat the proposal as untrusted display and review context only. It does not build, verify, simulate, sign, or execute transaction material. |
16
16
  | Wallet signing | User-controlled on the local review page | MCP tools do not return signing readiness, signing data, or executable transaction bytes. Signing and execution happen only in the user's wallet from the local review page after the digest-gated handoff; results are recorded as execution receipts keyed by the review session. |
17
17
  | PTB visualization | Rendered with emitted wallet review contracts | `reviewState.ptbVisualization` can accompany an emitted wallet review contract as a Mermaid flowchart of the stored local transaction shape. Treat it as visualization evidence only, not transaction-building input, wallet authorization, signing data, signing readiness, payment execution readiness, or route recommendation. |
@@ -738,3 +738,23 @@ Work is complete only when:
738
738
  - final repository status is checked, including untracked files;
739
739
  - unexpected files are classified or cleaned up before final response;
740
740
  - if previous progress was overstated, the final response corrects the record.
741
+
742
+ ## Quality direction
743
+
744
+ Quality work continues along three areas; progress in all three matters, and
745
+ work that advances more than one at once is preferred over work that advances
746
+ only one in isolation:
747
+
748
+ - Intent, evidence, and answer quality: understand the request, route it to the
749
+ right tool (prompt surfaces, `userAnswerUse` response guidance), and answer
750
+ only from verified mainnet evidence, including saying plainly when a question
751
+ cannot be answered from the returned evidence.
752
+ - Protocol breadth: additional protocol adapters registered through the
753
+ descriptor contract; protocol names appear in public docs only after a
754
+ concrete support decision. A second protocol is why the bare action prompt
755
+ asks the user to choose a venue instead of routing silently.
756
+ - Execution-trust foundation: what the user reviewed is exactly what gets
757
+ signed, under any wallet and any signing speed — the review-session state
758
+ machine, the one-transaction-per-session handoff lock, sign-only wallets and
759
+ slow hardware signers, review-page security headers, runtime lifecycle
760
+ stability, and packaging and runtime operability.
@@ -136,9 +136,10 @@ out-of-state buttons are removed, not disabled.
136
136
 
137
137
  The sign action appears only on `ready_for_wallet_review` with an emitted
138
138
  wallet review contract, a connected wallet whose account equals the reviewed
139
- account, and a successful digest-gated handoff. The signing wallet list offers
140
- only the wallet recorded for the active account; other detected wallets are
141
- not offered. While a handoff is outstanding the server locks the session
139
+ account, and a successful digest-gated handoff. The signing step shows no wallet picker:
140
+ dapp-kit autoconnect restores the wallet recorded for the active account on the
141
+ fixed-port origin, and the sign action stays gated on the connected account
142
+ matching the reviewed account. While a handoff is outstanding the server locks the session
142
143
  (state recomputes are refused) and the page shows a signing-in-progress state
143
144
  whose only action is cancel. Other states render:
144
145
 
package/docs/MCP_SETUP.md CHANGED
@@ -64,6 +64,58 @@ On native Windows clients that need `cmd`, use the same command through `cmd /c`
64
64
  }
65
65
  ```
66
66
 
67
+ ## Published Package Setup
68
+
69
+ Once `@stelis/say-ur-intent` is on npm there are two ways to run it. Both start
70
+ the same `say-ur-intent` stdio MCP server; pick based on whether you want
71
+ automatic updates or the fastest, most reliable startup.
72
+
73
+ ### Download on demand (npx, tracks the latest release)
74
+
75
+ ```json
76
+ {
77
+ "command": "npx",
78
+ "args": ["-y", "@stelis/say-ur-intent"]
79
+ }
80
+ ```
81
+
82
+ No install step, and each launch resolves the latest published version. The
83
+ trade-off: the first launch (or the first after the npx cache is cleared)
84
+ downloads the package and its native dependencies. On a cold cache this can take
85
+ long enough to exceed a client's MCP startup timeout, so the client may stop the
86
+ server before it connects. If that happens, warm the cache once in a terminal and
87
+ then restart the client:
88
+
89
+ ```bash
90
+ npx -y @stelis/say-ur-intent
91
+ # wait until it logs "review server started", then stop it with Ctrl-C
92
+ ```
93
+
94
+ ### Install once (global, fastest startup, pinned version)
95
+
96
+ ```bash
97
+ npm install -g @stelis/say-ur-intent
98
+ ```
99
+
100
+ ```json
101
+ {
102
+ "command": "say-ur-intent"
103
+ }
104
+ ```
105
+
106
+ The global `say-ur-intent` command starts with no per-launch download, so it
107
+ avoids the cold-start timeout, and it stays on the installed version until you
108
+ update it explicitly:
109
+
110
+ ```bash
111
+ npm install -g @stelis/say-ur-intent@latest
112
+ ```
113
+
114
+ The per-client sections below use the `npx` form. To use a global install
115
+ instead, replace the published-package command with `"command": "say-ur-intent"`
116
+ and drop the `args`. On native Windows clients that need `cmd`, wrap either
117
+ command, for example `"command": "cmd", "args": ["/c", "npx", "-y", "@stelis/say-ur-intent"]`.
118
+
67
119
  ## Claude Code
68
120
 
69
121
  Claude Code supports local stdio MCP servers through `claude mcp add`. Put Claude CLI options such as `--transport` and `--scope` before the server name; the `--` separator starts the command that runs Say Ur Intent.
@@ -81,7 +133,7 @@ Published npm package:
81
133
  ```bash
82
134
  claude mcp add --transport stdio \
83
135
  say-ur-intent \
84
- -- npx -y @stelis/say-ur-intent@next
136
+ -- npx -y @stelis/say-ur-intent
85
137
  ```
86
138
 
87
139
  Claude Code scopes:
@@ -144,7 +196,7 @@ Published npm package:
144
196
  "mcpServers": {
145
197
  "say-ur-intent": {
146
198
  "command": "npx",
147
- "args": ["-y", "@stelis/say-ur-intent@next"]
199
+ "args": ["-y", "@stelis/say-ur-intent"]
148
200
  }
149
201
  }
150
202
  }
@@ -157,7 +209,7 @@ On native Windows, use `cmd /c` if direct `npx` or `node` resolution fails:
157
209
  "mcpServers": {
158
210
  "say-ur-intent": {
159
211
  "command": "cmd",
160
- "args": ["/c", "npx", "-y", "@stelis/say-ur-intent@next"]
212
+ "args": ["/c", "npx", "-y", "@stelis/say-ur-intent"]
161
213
  }
162
214
  }
163
215
  }
@@ -185,7 +237,7 @@ Published npm package:
185
237
 
186
238
  ```bash
187
239
  codex mcp add say-ur-intent \
188
- -- npx -y @stelis/say-ur-intent@next
240
+ -- npx -y @stelis/say-ur-intent
189
241
  ```
190
242
 
191
243
  Verify with:
@@ -211,7 +263,7 @@ Equivalent `~/.codex/config.toml` entry after npm publication:
211
263
  ```toml
212
264
  [mcp_servers.say-ur-intent]
213
265
  command = "npx"
214
- args = ["-y", "@stelis/say-ur-intent@next"]
266
+ args = ["-y", "@stelis/say-ur-intent"]
215
267
  startup_timeout_sec = 10
216
268
  tool_timeout_sec = 60
217
269
  ```
@@ -247,7 +299,7 @@ Published npm package:
247
299
  "mcpServers": {
248
300
  "say-ur-intent": {
249
301
  "command": "npx",
250
- "args": ["-y", "@stelis/say-ur-intent@next"]
302
+ "args": ["-y", "@stelis/say-ur-intent"]
251
303
  }
252
304
  }
253
305
  }
@@ -358,7 +410,7 @@ To reset local product data files, stop the MCP server and delete `say-ur-intent
358
410
  ### Fixed review server port
359
411
 
360
412
  `SAY_UR_INTENT_REVIEW_PORT` pins the local review server to a fixed loopback
361
- port (1-65535; default is a random free port). A fixed port keeps the review
413
+ port (1-65535; default `8765`). A fixed port keeps the review
362
414
  page origin stable across server restarts, so the browser wallet's
363
415
  authorization and the signing auto-reconnect persist instead of being asked
364
416
  again on every restart. If the port is taken, the server fails to start
package/docs/MCP_TOOLS.md CHANGED
@@ -156,7 +156,7 @@ Every quote fails closed unless all of the following hold:
156
156
  - the echoed input amount equals the requested raw amount;
157
157
  - the protocol config carried by the quoter response matches the pinned package and object ids (`protocolConfigPinMatch: true`).
158
158
 
159
- `source.chainVerified: false` and `quantitySemantics.chainVerified: false` state that this quote comes from the FlowX quoter API over HTTPS, not from a chain read. `amountOut.indicative: true` marks the output as an indicative estimate. Signable FlowX review, when it ships, re-verifies any quote through review-time simulation before a transaction can be reviewed.
159
+ `source.chainVerified: false` and `quantitySemantics.chainVerified: false` state that this quote comes from the FlowX quoter API over HTTPS, not from a chain read. `amountOut.indicative: true` marks the output as an indicative estimate. Signable FlowX review re-verifies the quote through review-time simulation before the account-bound review reaches `ready_for_wallet_review`.
160
160
 
161
161
  The same payment-answer blocks as the DeepBook quotes apply: `canUseForPaymentAnswer: false`, `doNotCombineWithPaymentAnswer: true`, and `read.preview_intent_evidence` `responseSummary` stays the only payment-coverage answer source.
162
162
 
package/docs/SDK_API.md CHANGED
@@ -4,9 +4,13 @@ This document records the pinned SDK APIs used by the current runtime. The sourc
4
4
 
5
5
  ## Package Versions
6
6
 
7
- - `@mysten/sui`: `2.16.2`
7
+ - `@mysten/sui`: `2.17.0`
8
8
  - `@mysten/deepbook-v3`: `1.3.6`
9
9
  - `@mysten/dapp-kit-core`: `1.3.2`
10
+ - `@flowx-finance/sdk`: `2.1.0`
11
+ - `@stelis/agent-q-provider-sui`: `0.0.5`
12
+ - `@zktx.io/ptb-model`: `0.5.0`
13
+ - `mermaid`: `11.12.0`
10
14
 
11
15
  ## Sui gRPC Client
12
16
 
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@stelis/say-ur-intent",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
+ "mcpName": "io.github.stelis-dev/say-ur-intent",
4
5
  "description": "Say Ur Intent is a local-first toolkit for helping AI applications and users inspect Sui DeFi actions before execution.",
5
6
  "license": "MIT",
6
7
  "type": "module",
@@ -33,7 +34,7 @@
33
34
  "homepage": "https://github.com/stelis-dev/say-ur-intent#readme",
34
35
  "publishConfig": {
35
36
  "access": "public",
36
- "tag": "next"
37
+ "tag": "latest"
37
38
  },
38
39
  "scripts": {
39
40
  "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",