@stelis/say-ur-intent 0.0.8 → 0.1.0

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
@@ -88,17 +88,6 @@ It can also create a read-only, non-signable local review session from a
88
88
  structured external payment or Sui action proposal. External proposal ingestion
89
89
  does not trust external transaction material or send anything for wallet signing.
90
90
 
91
- Key terms used below:
92
-
93
- - Sui: the mainnet blockchain whose DeFi state this project reads.
94
- - MCP: Model Context Protocol, the tool-calling interface used by AI clients.
95
- - DeepBook: Sui's onchain order book protocol.
96
- - SDK: Software Development Kit, a version-pinned library dependency used by this repository.
97
- - gRPC and GraphQL: Sui SDK transports used by this runtime for mainnet reads.
98
- - dApp Kit: Sui's wallet connection library for web apps.
99
- - stdio: standard input/output, the local transport used by MCP clients to talk to this server.
100
- - Stelis: the GitHub and npm namespace for this package. Say Ur Intent is the product and runtime name.
101
-
102
91
  For setup, see [docs/MCP_SETUP.md](docs/MCP_SETUP.md).
103
92
  For the MCP API reference, see [docs/MCP_TOOLS.md](docs/MCP_TOOLS.md).
104
93
  For the AI-client answer playbook, see [docs/AGENT_BEHAVIOR.md](docs/AGENT_BEHAVIOR.md).
@@ -215,38 +204,9 @@ For quote responses alone, these conclusions are unsupported:
215
204
  - cost basis is not available;
216
205
  - actionable signing data is not available.
217
206
 
218
- ## Developer Checkout Quickstart
219
-
220
- This package targets Node.js 22+. Node 22 or 24 LTS is recommended.
221
-
222
- Use this path when you download the repository from GitHub and want to test the local build in an MCP client:
223
-
224
- ```bash
225
- git clone https://github.com/stelis-dev/say-ur-intent.git
226
- cd say-ur-intent
227
- npm install
228
- npm run build
229
- ```
230
-
231
- No Sui endpoint setup is required for the default path. For MCP stdio configuration from a local checkout, point the client at the built runtime:
207
+ ## Install
232
208
 
233
- ```json
234
- {
235
- "command": "node",
236
- "args": ["/absolute/path/to/say-ur-intent/dist/runtime/start.js"]
237
- }
238
- ```
239
-
240
- Do not wrap the stdio server in a shell command that writes ordinary text to stdout. Stdout is reserved for MCP JSON-RPC messages; logs go to stderr.
241
-
242
- Client-specific setup for Claude Code, Claude Desktop, Codex, and Cursor lives in [docs/MCP_SETUP.md](docs/MCP_SETUP.md). That file is the canonical setup guide; this README keeps only the short path.
243
-
244
- To delegate local setup to an AI coding agent, tell it:
245
-
246
- ```text
247
- Register this repository as a local stdio MCP server using the built /absolute/path/to/say-ur-intent/dist/runtime/start.js file.
248
- Use the default Sui mainnet endpoint unless I explicitly ask for a custom provider.
249
- ```
209
+ Install from the MCP registry (server `io.github.stelis-dev/say-ur-intent`) or with `npx -y @stelis/say-ur-intent`. For per-client configuration (Claude Code, Claude Desktop, Codex, Cursor) and running from a local checkout, see [docs/MCP_SETUP.md](docs/MCP_SETUP.md).
250
210
 
251
211
  After the MCP server is connected, use [docs/MCP_SETUP.md](docs/MCP_SETUP.md#first-use-flow) for first-use setup, [docs/MCP_TOOLS.md](docs/MCP_TOOLS.md) for API fields and statuses, and [docs/AGENT_BEHAVIOR.md](docs/AGENT_BEHAVIOR.md) for user-question flow and response wording.
252
212
 
@@ -256,20 +216,6 @@ Product docs, registry, AI responses, UX copy, and signable actions are mainnet-
256
216
 
257
217
  Unsupported protocol experiments are not product functionality and are not included in the package docs, MCP resources, registry support lists, UX copy, or signable-action lists.
258
218
 
259
- ## Commands
260
-
261
- ```bash
262
- npm install
263
- npm run typecheck
264
- npm run build
265
- npm test
266
- npm run release:check
267
- npm run generate:deepbook-registry
268
- npm run smoke:mainnet
269
- ```
270
-
271
- `npm run generate:deepbook-registry` writes `registry/generated/deepbook-mainnet.json`, which is ignored by Git because generated registry data must include provenance and should be regenerated from the pinned SDK.
272
-
273
219
  ## MCP Tools
274
220
 
275
221
  The canonical MCP API reference lives in [docs/MCP_TOOLS.md](docs/MCP_TOOLS.md).
@@ -341,87 +287,3 @@ If you maintain a Sui DeFi protocol that has a registered MVR name and want its
341
287
  package to display that name in the review graph, open a pull request adding your
342
288
  mainnet package address and MVR name to the package registry. Every unregistered
343
289
  address keeps its raw form.
344
-
345
- ## For Maintainers
346
-
347
- This section is for people operating releases, running smoke checks, changing runtime storage, or debugging startup. Normal users and MCP client users can stop at the documentation map above.
348
-
349
- ### Mainnet Read Smoke
350
-
351
- Normal quickstart use does not require Sui endpoint setup. The smoke script is a manual maintainer check for a specific mainnet provider:
352
-
353
- ```bash
354
- export SUI_GRPC_URL="https://fullnode.mainnet.sui.io:443"
355
- export SUI_GRAPHQL_URL="https://graphql.mainnet.sui.io/graphql" # optional override; default is the built-in mainnet GraphQL endpoint
356
- export SMOKE_SUI_ADDRESS="0x..."
357
- export SMOKE_DEEPBOOK_POOL_KEY="DEEP_SUI"
358
- export SMOKE_QUOTE_AMOUNT="1000000000" # raw integer units; for SUI, 1000000000 = 1 SUI
359
- # Optional: export SMOKE_INSPECT_DIGEST="..."
360
- # Optional: export SMOKE_INSPECT_RANDOM_LATEST="true"
361
- npm run build
362
- npm run smoke:mainnet
363
- ```
364
-
365
- `SUI_GRPC_URL` must be only scheme, host, and explicit port. Do not include credentials, a path, query string, or fragment.
366
- `SMOKE_SUI_ADDRESS` must be a 32-byte hex Sui address, for example `0x` followed by 64 hex characters.
367
- `SMOKE_INSPECT_DIGEST` is optional. Use a digest whose sender or returned balance-change owner is `SMOKE_SUI_ADDRESS` to exercise the stored digest-lookup path; otherwise the lookup can still return `ok` with `persistence.stored: false`.
368
- `SMOKE_INSPECT_RANDOM_LATEST=true` is optional and only used when `SMOKE_INSPECT_DIGEST` is unset.
369
-
370
- It samples one digest from the latest GraphQL transaction page and calls `read.inspect_sui_transaction` without passing the smoke address.
371
-
372
- This checks current transaction-read shape without pinning a specific user address or exercising the stored relation path.
373
-
374
- The smoke script currently calls:
375
-
376
- - wallet assets;
377
- - DeepBook orderbook;
378
- - raw-quantity quote;
379
- - `read.scan_sui_account_activity` for `SMOKE_SUI_ADDRESS` with limit 5;
380
- - `read.summarize_sui_activity_scan` through active account context with limit 5.
381
-
382
- If `SMOKE_FUNCTION_TARGET` is set to a full `package::module::function`, it also calls `read.scan_sui_function_activity` and `read.summarize_sui_function_activity_scan` with limit 5.
383
-
384
- If unset, function activity smoke is recorded as not run with `notRunReason: "missing_env"`.
385
-
386
- Empty activity pages are valid smoke outcomes. They are recorded with `rowCount: 0` and `emptyAccepted: true`.
387
-
388
- If `SMOKE_INSPECT_DIGEST` is set, the script also calls `read.inspect_sui_transaction` for that digest and the smoke address.
389
-
390
- DeepBook orderbook and raw-quantity quote reads use an internal mainnet SDK simulation sender placeholder, not a user's wallet. The display-amount quote path is covered by automated tests, not by this smoke script. This smoke script does not exercise account-bound DeepBook transaction-material build or digest binding; that path needs a separate funded-account material-build smoke before smoke results are treated as product-grade proof for that review stage.
391
-
392
- Wallet asset summaries and active-account activity summaries use the smoke address through a wallet identity session created by the smoke script. Browser wallet behavior is checked separately.
393
-
394
- Smoke result files record activity status, row count, source, window/order flags, persistence, and evidence summary only. They do not record raw GraphQL payloads, transaction bytes, signatures, raw transaction details, or compact transaction aggregates.
395
-
396
- ### Runtime Boundary
397
-
398
- The runtime starts these local components:
399
-
400
- - a local SQLite store;
401
- - a mainnet guard for the configured Sui gRPC endpoint;
402
- - the local review HTTP server on `127.0.0.1`;
403
- - the stdio MCP transport.
404
-
405
- The GraphQL endpoint is also mainnet-guarded when it is saved through settings, imported from a local-data backup, or first used by Sui activity tools.
406
-
407
- Stdout is reserved for MCP JSON-RPC messages. Logs go to stderr.
408
-
409
- ### Local Data
410
-
411
- The runtime creates a local SQLite file for account read context and Say Ur Intent review activity evidence. Users do not install a database server separately.
412
-
413
- Override the app data directory only when needed:
414
-
415
- ```bash
416
- export SAY_UR_INTENT_DATA_DIR="/path/to/local/app-data"
417
- ```
418
-
419
- The stored active account is for reading wallet state only. It does not let the toolkit sign transactions on your behalf.
420
-
421
- User-requested bounded transaction scans can store normalized facts only when a transaction is related to a known local wallet. This product does not run a background or complete wallet history indexer.
422
-
423
- The default Sui mainnet gRPC and GraphQL endpoints are stored in the local SQLite settings table on first run.
424
-
425
- To inspect settings or change local data, ask your AI client to create a Say Ur Intent local settings session and open the returned settings URL in the same machine's system browser.
426
-
427
- Endpoint changes apply after the MCP server restarts.
@@ -4,6 +4,39 @@ Say Ur Intent uses a local SQLite database for durable product state that must s
4
4
 
5
5
  This document is for maintainers and contributors who change local state, import/export behavior, activity queries, or review evidence storage. Product users normally need only the README and `docs/MCP_SETUP.md`.
6
6
 
7
+ ## Runtime Boundary
8
+
9
+ The runtime starts these local components:
10
+
11
+ - a local SQLite store;
12
+ - a mainnet guard for the configured Sui gRPC endpoint;
13
+ - the local review HTTP server on `127.0.0.1`;
14
+ - the stdio MCP transport.
15
+
16
+ The GraphQL endpoint is also mainnet-guarded when it is saved through settings, imported from a local-data backup, or first used by Sui activity tools.
17
+
18
+ Stdout is reserved for MCP JSON-RPC messages. Logs go to stderr.
19
+
20
+ ## Local Data
21
+
22
+ The runtime creates a local SQLite file for account read context and Say Ur Intent review activity evidence. Users do not install a database server separately.
23
+
24
+ Override the app data directory only when needed:
25
+
26
+ ```bash
27
+ export SAY_UR_INTENT_DATA_DIR="/path/to/local/app-data"
28
+ ```
29
+
30
+ The stored active account is for reading wallet state only. It does not let the toolkit sign transactions on your behalf.
31
+
32
+ User-requested bounded transaction scans can store normalized facts only when a transaction is related to a known local wallet. This product does not run a background or complete wallet history indexer.
33
+
34
+ The default Sui mainnet gRPC and GraphQL endpoints are stored in the local SQLite settings table on first run.
35
+
36
+ To inspect settings or change local data, ask your AI client to create a Say Ur Intent local settings session and open the returned settings URL in the same machine's system browser.
37
+
38
+ Endpoint changes apply after the MCP server restarts.
39
+
7
40
  ## Engine
8
41
 
9
42
  The runtime uses the `better-sqlite3` npm package for normal SQLite file semantics and incremental writes. Users do not install a separate database server.
package/docs/MCP_SETUP.md CHANGED
@@ -8,6 +8,17 @@ The README keeps only the short entry path; client-specific setup, restart behav
8
8
 
9
9
  Say Ur Intent is tested from a local checkout in this repository state.
10
10
 
11
+ ## Key terms
12
+
13
+ - Sui: the mainnet blockchain whose DeFi state this project reads.
14
+ - MCP: Model Context Protocol, the tool-calling interface used by AI clients.
15
+ - DeepBook: Sui's onchain order book protocol.
16
+ - SDK: Software Development Kit, a version-pinned library dependency used by this repository.
17
+ - gRPC and GraphQL: Sui SDK transports used by this runtime for mainnet reads.
18
+ - dApp Kit: Sui's wallet connection library for web apps.
19
+ - stdio: standard input/output, the local transport used by MCP clients to talk to this server.
20
+ - Stelis: the GitHub and npm namespace for this package. Say Ur Intent is the product and runtime name.
21
+
11
22
  ## Requirements
12
23
 
13
24
  - Node.js 22+. Node 22 or 24 LTS is recommended.
@@ -64,9 +75,46 @@ On native Windows clients that need `cmd`, use the same command through `cmd /c`
64
75
  }
65
76
  ```
66
77
 
78
+ To delegate local setup to an AI coding agent, tell it:
79
+
80
+ ```text
81
+ Register this repository as a local stdio MCP server using the built /absolute/path/to/say-ur-intent/dist/runtime/start.js file.
82
+ Use the default Sui mainnet endpoint unless I explicitly ask for a custom provider.
83
+ ```
84
+
85
+ ## Commands
86
+
87
+ These `npm run` scripts run from a local checkout. They are developer and maintainer scripts, not MCP tools or packaged product commands:
88
+
89
+ ```bash
90
+ npm install
91
+ npm run typecheck
92
+ npm run build
93
+ npm test
94
+ npm run release:check
95
+ npm run generate:deepbook-registry
96
+ npm run smoke:mainnet
97
+ ```
98
+
99
+ `npm run generate:deepbook-registry` writes `registry/generated/deepbook-mainnet.json`, which is ignored by Git because generated registry data must include provenance and should be regenerated from the pinned SDK.
100
+
101
+ ## Install from the MCP Registry
102
+
103
+ If your MCP client can install servers from the
104
+ [MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=say-ur-intent),
105
+ find the `io.github.stelis-dev/say-ur-intent` entry and install it through your
106
+ client. The resulting stdio server command is equivalent to:
107
+
108
+ ```sh
109
+ npx -y @stelis/say-ur-intent
110
+ ```
111
+
112
+ Clients that do not install from the registry use the published-package and
113
+ per-client configuration below, which give the exact `command` and `args`.
114
+
67
115
  ## Published Package Setup
68
116
 
69
- Once `@stelis/say-ur-intent` is on npm there are two ways to run it. Both start
117
+ `@stelis/say-ur-intent` is on npm; there are two ways to run it. Both start
70
118
  the same `say-ur-intent` stdio MCP server; pick based on whether you want
71
119
  automatic updates or the fastest, most reliable startup.
72
120
 
@@ -44,6 +44,31 @@ Source-checkout scripts are not packaged product commands, MCP tools, review-tim
44
44
  | Sui GraphQL function filter probe | `npm exec -- tsx scripts/sui-graphql-function-filter-probe.ts [--endpoint <mainnet-graphql-url>] [--sample-size <1-50>] [--timeout-ms <ms>]` | Manual, source evidence only | Runs a read-only Sui mainnet GraphQL source-shape probe for function-filter diagnostics; see notes below. |
45
45
  | Sui CLI transaction diagnostics | `npm exec -- tsx scripts/sui-cli-transaction-diagnostics.ts -- --help` | Manual, source checkout only | Allowlisted local `sui` CLI debug evidence. See notes below. |
46
46
 
47
+ ## Mainnet Read Smoke
48
+
49
+ This is a manual maintainer check for a specific mainnet provider. Normal quickstart use does not require Sui endpoint setup. Run it for people operating releases or debugging mainnet read shape.
50
+
51
+ ```bash
52
+ export SUI_GRPC_URL="https://fullnode.mainnet.sui.io:443"
53
+ export SUI_GRAPHQL_URL="https://graphql.mainnet.sui.io/graphql" # optional override; default is the built-in mainnet GraphQL endpoint
54
+ export SMOKE_SUI_ADDRESS="0x..."
55
+ export SMOKE_DEEPBOOK_POOL_KEY="DEEP_SUI"
56
+ export SMOKE_QUOTE_AMOUNT="1000000000" # raw integer units; for SUI, 1000000000 = 1 SUI
57
+ # Optional: export SMOKE_INSPECT_DIGEST="..."
58
+ # Optional: export SMOKE_INSPECT_RANDOM_LATEST="true"
59
+ npm run build
60
+ npm run smoke:mainnet
61
+ ```
62
+
63
+ `SUI_GRPC_URL` must be only scheme, host, and explicit port. Do not include credentials, a path, query string, or fragment.
64
+ `SMOKE_SUI_ADDRESS` must be a 32-byte hex Sui address, for example `0x` followed by 64 hex characters.
65
+ `SMOKE_INSPECT_DIGEST` is optional. Use a digest whose sender or returned balance-change owner is `SMOKE_SUI_ADDRESS` to exercise the stored digest-lookup path; otherwise the lookup can still return `ok` with `persistence.stored: false`.
66
+ `SMOKE_INSPECT_RANDOM_LATEST=true` is optional and only used when `SMOKE_INSPECT_DIGEST` is unset. It samples one digest from the latest GraphQL transaction page and calls `read.inspect_sui_transaction` without passing the smoke address. This checks current transaction-read shape without pinning a specific user address or exercising the stored relation path.
67
+
68
+ DeepBook orderbook and raw-quantity quote reads use an internal mainnet SDK simulation sender placeholder, not a user's wallet. The display-amount quote path is covered by automated tests, not by this smoke script. This smoke script does not exercise account-bound DeepBook transaction-material build or digest binding; that path needs a separate funded-account material-build smoke before smoke results are treated as product-grade proof for that review stage.
69
+
70
+ Wallet asset summaries and active-account activity summaries use the smoke address through a wallet identity session created by the smoke script. Browser wallet behavior is checked separately. This smoke script does not record raw GraphQL payloads, transaction bytes, signatures, raw transaction details, or compact transaction aggregates.
71
+
47
72
  ## Mainnet Read Smoke Notes
48
73
 
49
74
  Run `npm run build` first because `npm run smoke:mainnet` executes `dist/runtime/smokeMainnetRead.js`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stelis/say-ur-intent",
3
- "version": "0.0.8",
3
+ "version": "0.1.0",
4
4
  "mcpName": "io.github.stelis-dev/say-ur-intent",
5
5
  "description": "Say Ur Intent is a local-first toolkit for helping AI applications and users inspect Sui DeFi actions before execution.",
6
6
  "license": "MIT",