@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 +4 -39
- package/docs/AGENT_BEHAVIOR.md +1 -1
- package/docs/AGENT_DEVELOPMENT_POLICY.md +20 -0
- package/docs/FRONTEND_POLICY.md +4 -3
- package/docs/MCP_SETUP.md +59 -7
- package/docs/MCP_TOOLS.md +1 -1
- package/docs/SDK_API.md +5 -1
- package/package.json +3 -2
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
|
|
34
|
-
- **Deliberately sequenced next (planned order, ships only after verified review):** server-side receipt verification against chain state,
|
|
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
|
|
package/docs/AGENT_BEHAVIOR.md
CHANGED
|
@@ -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.
|
package/docs/FRONTEND_POLICY.md
CHANGED
|
@@ -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
|
|
140
|
-
|
|
141
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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": "
|
|
37
|
+
"tag": "latest"
|
|
37
38
|
},
|
|
38
39
|
"scripts": {
|
|
39
40
|
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|