@heyditto/cli 1.1.3 → 1.3.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 +98 -28
- package/dist/cli.js +340 -38
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/store.d.ts +11 -0
- package/dist/store.js +16 -7
- package/dist/store.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
npm install -g @heyditto/cli
|
|
7
|
-
|
|
7
|
+
heyditto init --agent --json
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
heyditto save "I prefer TypeScript over JS for new projects"
|
|
10
|
+
heyditto search "language preferences"
|
|
11
|
+
heyditto fetch <id> --memory-format outline
|
|
12
|
+
heyditto subjects "memory architecture" --top-k 5
|
|
12
13
|
```
|
|
13
14
|
|
|
14
15
|
## Install
|
|
@@ -19,7 +20,7 @@ npm install -g @heyditto/cli
|
|
|
19
20
|
npx -y @heyditto/cli search "what did I say about X"
|
|
20
21
|
```
|
|
21
22
|
|
|
22
|
-
The package installs two equivalent binaries: `ditto` and `heyditto`. They run the same CLI — use whichever you prefer.
|
|
23
|
+
The package installs two equivalent binaries: `ditto` and `heyditto`. They run the same CLI — use whichever you prefer. We recommend **`heyditto`** on macOS because Apple ships `/usr/bin/ditto` (a file-copy utility) that can shadow the npm CLI.
|
|
23
24
|
|
|
24
25
|
### macOS: name collision with Apple's `/usr/bin/ditto`
|
|
25
26
|
|
|
@@ -41,7 +42,20 @@ You can also reorder your `PATH` so the npm global bin comes before `/usr/bin`,
|
|
|
41
42
|
|
|
42
43
|
## Auth
|
|
43
44
|
|
|
44
|
-
|
|
45
|
+
Agents can self-provision without a browser, email, or OTP:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
heyditto init --agent --json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The command creates a free claimable agent account, stores the key in
|
|
52
|
+
your CLI config directory (defaults to `~/.config/heyditto/cli/config.json`;
|
|
53
|
+
override with `DITTO_CONFIG_DIR`), and prints the agent key plus a claim URL.
|
|
54
|
+
Humans claim the account later from `claimURL`; agents should share that link,
|
|
55
|
+
not the `ditto_mcp_...` API key. The claim token is carried in the query string
|
|
56
|
+
(`?t=...`).
|
|
57
|
+
|
|
58
|
+
For a human-owned key, get one at **https://app.heyditto.ai/mcp/newkey**.
|
|
45
59
|
|
|
46
60
|
```bash
|
|
47
61
|
export DITTO_API_KEY=ditto_mcp_…
|
|
@@ -51,15 +65,22 @@ export DITTO_API_KEY=ditto_mcp_…
|
|
|
51
65
|
## Commands
|
|
52
66
|
|
|
53
67
|
```
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
68
|
+
heyditto save <content> [--source <s>] [--source-context <c>]
|
|
69
|
+
heyditto search <query>... [--include-public] [--filter-username <u>]
|
|
70
|
+
heyditto fetch <id>... [--memory-format full|outline|blocks]
|
|
71
|
+
heyditto list [--username <u>] [--limit <n>] [--offset <n>] [--source <s>]
|
|
72
|
+
heyditto update <id> [--content <text>|--content-file <path>] [--title <t>]
|
|
73
|
+
[--source-context <c>] [--edits-json <json>|--edits-file <path>]
|
|
74
|
+
[--base-revision <n>]
|
|
75
|
+
heyditto publish <id> [--title <t>] [--privacy-mode <mode>]
|
|
76
|
+
heyditto unpublish (--memory-id <id>|--share-id <id>|<id>)
|
|
77
|
+
heyditto subjects <query> [--top-k <n>]
|
|
78
|
+
heyditto memories <subject-id>... [--query <q>]
|
|
79
|
+
heyditto network <pair-id> [--limit <n>]
|
|
80
|
+
heyditto init --agent [--agent-caller <name>] [--json]
|
|
81
|
+
heyditto status
|
|
82
|
+
heyditto config
|
|
83
|
+
heyditto help
|
|
63
84
|
```
|
|
64
85
|
|
|
65
86
|
### `save`
|
|
@@ -67,25 +88,66 @@ ditto help
|
|
|
67
88
|
Persist a memory pair from an external source.
|
|
68
89
|
|
|
69
90
|
```bash
|
|
70
|
-
|
|
71
|
-
|
|
91
|
+
heyditto save "Project X uses Bun + SolidJS, deployed to Cloud Run"
|
|
92
|
+
heyditto save "$(cat note.md)" --source document --source-context note.md
|
|
72
93
|
```
|
|
73
94
|
|
|
74
95
|
### `search`
|
|
75
96
|
|
|
76
97
|
Semantic search across memories. Multiple positional args become an array of queries.
|
|
98
|
+
Use `--include-public` to also search public DittoHub memories, optionally scoped
|
|
99
|
+
with `--filter-username <u>`.
|
|
77
100
|
|
|
78
101
|
```bash
|
|
79
|
-
|
|
80
|
-
|
|
102
|
+
heyditto search "typescript preferences"
|
|
103
|
+
heyditto search "typescript" "language choices"
|
|
104
|
+
heyditto search "launch notes" --include-public --filter-username peyton
|
|
81
105
|
```
|
|
82
106
|
|
|
83
107
|
### `fetch`
|
|
84
108
|
|
|
85
|
-
Fetch
|
|
109
|
+
Fetch memory content for private pair ids or public share ids. The default
|
|
110
|
+
`--memory-format full` returns the full body. Use `outline` to get stable block
|
|
111
|
+
ids before a structured `update`, or `blocks` when you need each block body.
|
|
86
112
|
|
|
87
113
|
```bash
|
|
88
|
-
|
|
114
|
+
heyditto fetch 3a1084ae-235a-433d-9493-2335a0dfeb57
|
|
115
|
+
heyditto fetch 3a1084ae-235a-433d-9493-2335a0dfeb57 --memory-format outline --output json
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### `list`
|
|
119
|
+
|
|
120
|
+
List saved memories, or public DittoHub publishes for a username.
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
heyditto list --limit 10
|
|
124
|
+
heyditto list --username peyton --limit 10 --output json
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### `update`
|
|
128
|
+
|
|
129
|
+
Edit a saved memory in place. Replace the full body with `--content` or
|
|
130
|
+
`--content-file`, or use block edits after fetching `--memory-format outline`.
|
|
131
|
+
Block edits require the current revision returned by `save` or a previous
|
|
132
|
+
`update`.
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
heyditto update <memory-id> --content-file revised.md --output json
|
|
136
|
+
heyditto fetch <memory-id> --memory-format outline --output json
|
|
137
|
+
heyditto update <memory-id> \
|
|
138
|
+
--edits-json '[{"op":"replace_text","blockId":"2","find":"old","replace":"new","expectedCount":1}]' \
|
|
139
|
+
--base-revision 3 \
|
|
140
|
+
--output json
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### `publish` / `unpublish`
|
|
144
|
+
|
|
145
|
+
Publish a saved memory to the user's public DittoHub profile, or disable an
|
|
146
|
+
existing share without deleting the private memory.
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
heyditto publish <memory-id> --title "Launch notes" --privacy-mode scan_and_block --output json
|
|
150
|
+
heyditto unpublish --share-id abc123def4 --output json
|
|
89
151
|
```
|
|
90
152
|
|
|
91
153
|
### `subjects`
|
|
@@ -93,8 +155,8 @@ ditto fetch 3a1084ae-235a-433d-9493-2335a0dfeb57
|
|
|
93
155
|
Search the subject (topic) graph. Returns subject ids you can pass to `memories` or `network`.
|
|
94
156
|
|
|
95
157
|
```bash
|
|
96
|
-
|
|
97
|
-
|
|
158
|
+
heyditto subjects "memory architecture"
|
|
159
|
+
heyditto subjects "performance" --top-k 5
|
|
98
160
|
```
|
|
99
161
|
|
|
100
162
|
### `memories`
|
|
@@ -102,7 +164,8 @@ ditto subjects "performance" --top-k 5
|
|
|
102
164
|
Fetch memory previews scoped to specific subjects.
|
|
103
165
|
|
|
104
166
|
```bash
|
|
105
|
-
|
|
167
|
+
heyditto memories <subject-id>
|
|
168
|
+
heyditto memories <subject-id> --query "deployment tradeoffs"
|
|
106
169
|
```
|
|
107
170
|
|
|
108
171
|
### `network`
|
|
@@ -110,20 +173,27 @@ ditto memories <subject-id>
|
|
|
110
173
|
Traverse a memory's network (related memories via shared subjects).
|
|
111
174
|
|
|
112
175
|
```bash
|
|
113
|
-
|
|
176
|
+
heyditto network <pair-id> --limit 30
|
|
114
177
|
```
|
|
115
178
|
|
|
116
179
|
### `status`
|
|
117
180
|
|
|
118
181
|
Print whether `DITTO_API_KEY` is set and the configured MCP endpoint resolves.
|
|
119
182
|
|
|
183
|
+
### `init --agent`
|
|
184
|
+
|
|
185
|
+
Create a free claimable agent account and save its key locally. Use `--json` for
|
|
186
|
+
machine-readable output that includes `apiKey`, `userID`, and `claimURL`.
|
|
187
|
+
Share `claimURL` with the human owner; keep `apiKey` local to the agent. The
|
|
188
|
+
claim URL uses a `?t=...` query parameter.
|
|
189
|
+
|
|
120
190
|
### `config`
|
|
121
191
|
|
|
122
192
|
Print a Claude Desktop / Cursor / generic-MCP-client config snippet for the Ditto memory server.
|
|
123
193
|
|
|
124
194
|
## Environment
|
|
125
195
|
|
|
126
|
-
- `DITTO_API_KEY` (
|
|
196
|
+
- `DITTO_API_KEY` (optional) — MCP API key override. Agents can instead run `heyditto init --agent --json` for no-human setup.
|
|
127
197
|
- `DITTO_API_BASE` (optional) — API base URL. Defaults to `https://api.heyditto.ai`. Useful for local dev (`http://localhost:3400`).
|
|
128
198
|
|
|
129
199
|
## Output
|
|
@@ -136,8 +206,8 @@ Every data command and `status` accepts `--output <format>`, where `<format>` is
|
|
|
136
206
|
- `raw` — the full MCP response envelope as JSON.
|
|
137
207
|
|
|
138
208
|
```bash
|
|
139
|
-
|
|
140
|
-
|
|
209
|
+
heyditto search "X" --output json | jq '.results[] | {id, similarity, preview: .userPreview}'
|
|
210
|
+
heyditto status --output json | jq '.tools'
|
|
141
211
|
```
|
|
142
212
|
|
|
143
213
|
## Related
|
package/dist/cli.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { spawn } from "node:child_process";
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
3
4
|
import { createInterface } from "node:readline/promises";
|
|
4
5
|
import { parseArgs } from "node:util";
|
|
5
6
|
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
6
7
|
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
7
|
-
import { apiBaseURL, authFilePath, mcpServerURL, newKeyURL, packageName, packageVersion, resolveApiKey, } from "./config.js";
|
|
8
|
-
import { clearStoredKey, writeStoredKey } from "./store.js";
|
|
8
|
+
import { agentSignupURL, apiBaseURL, authFilePath, mcpServerURL, newKeyURL, packageName, packageVersion, resolveApiKey, } from "./config.js";
|
|
9
|
+
import { clearStoredKey, readStoredAuth, writeStoredAuth, writeStoredKey } from "./store.js";
|
|
9
10
|
const OUTPUT_FORMATS = ["json", "text", "markdown", "raw"];
|
|
10
11
|
const outputOption = { type: "string" };
|
|
12
|
+
const MEMORY_FORMATS = ["full", "outline", "blocks"];
|
|
11
13
|
function parseOutputFormat(value) {
|
|
12
14
|
if (!value)
|
|
13
15
|
return "text";
|
|
@@ -15,6 +17,37 @@ function parseOutputFormat(value) {
|
|
|
15
17
|
return value;
|
|
16
18
|
throw new Error(`--output must be one of: ${OUTPUT_FORMATS.join(", ")}`);
|
|
17
19
|
}
|
|
20
|
+
function parseMemoryFormat(value) {
|
|
21
|
+
if (!value)
|
|
22
|
+
return "full";
|
|
23
|
+
if (MEMORY_FORMATS.includes(value))
|
|
24
|
+
return value;
|
|
25
|
+
throw new Error(`--memory-format must be one of: ${MEMORY_FORMATS.join(", ")}`);
|
|
26
|
+
}
|
|
27
|
+
function parseIntegerOption(value, name) {
|
|
28
|
+
if (!value)
|
|
29
|
+
return undefined;
|
|
30
|
+
const n = Number.parseInt(value, 10);
|
|
31
|
+
if (!Number.isFinite(n))
|
|
32
|
+
throw new Error(`${name} must be an integer`);
|
|
33
|
+
return n;
|
|
34
|
+
}
|
|
35
|
+
function parseJSONOption(value, name) {
|
|
36
|
+
try {
|
|
37
|
+
return JSON.parse(value);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
throw new Error(`${name} must be valid JSON: ${err instanceof Error ? err.message : String(err)}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async function readTextFile(path, name) {
|
|
44
|
+
try {
|
|
45
|
+
return await readFile(path, "utf-8");
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
throw new Error(`failed to read ${name} at ${path}: ${err instanceof Error ? err.message : String(err)}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
18
51
|
function extractTextBlock(result) {
|
|
19
52
|
const r = result;
|
|
20
53
|
if (!Array.isArray(r.content))
|
|
@@ -46,12 +79,19 @@ function usage() {
|
|
|
46
79
|
return `${packageName} ${packageVersion}
|
|
47
80
|
|
|
48
81
|
Usage:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
82
|
+
heyditto save <content> [--source <s>] [--source-context <c>]
|
|
83
|
+
heyditto search <query>... [--include-public] [--filter-username <u>]
|
|
84
|
+
heyditto fetch <id>... [--memory-format full|outline|blocks]
|
|
85
|
+
heyditto list [--username <u>] [--limit <n>] [--offset <n>] [--source <s>]
|
|
86
|
+
heyditto update <id> [--content <text>|--content-file <path>] [--title <t>]
|
|
87
|
+
[--source-context <c>] [--edits-json <json>|--edits-file <path>]
|
|
88
|
+
[--base-revision <n>]
|
|
89
|
+
heyditto publish <id> [--title <t>] [--privacy-mode scan_and_block|scan_and_warn|scan_and_redact]
|
|
90
|
+
heyditto unpublish (--memory-id <id>|--share-id <id>|<id>)
|
|
91
|
+
heyditto subjects <query> [--top-k <n>]
|
|
92
|
+
heyditto memories <subject-id>... [--query <q>]
|
|
93
|
+
heyditto network <pair-id> [--limit <n>]
|
|
94
|
+
heyditto init --agent [--agent-caller <name>] [--json]
|
|
55
95
|
|
|
56
96
|
All data commands (and 'status') accept --output <format>, where <format>
|
|
57
97
|
is one of: json, text, markdown, raw. Default is 'text' (passthrough of
|
|
@@ -59,13 +99,14 @@ the server's text block, which is JSON for data commands). Use --output json
|
|
|
59
99
|
to guarantee structured JSON output suitable for piping into 'jq'.
|
|
60
100
|
|
|
61
101
|
Auth:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
102
|
+
heyditto init --agent [--json] Create a free, claimable agent account
|
|
103
|
+
heyditto login [<key>] [--paste] [--stdin] Save an API key to ${authFilePath()}
|
|
104
|
+
heyditto logout Delete the saved key
|
|
105
|
+
heyditto status [--output <format>] Show endpoint, key source, live tools
|
|
106
|
+
heyditto config Print MCP client config snippet
|
|
66
107
|
|
|
67
108
|
Other:
|
|
68
|
-
|
|
109
|
+
heyditto help Show this message
|
|
69
110
|
|
|
70
111
|
Note: on macOS, Apple ships /usr/bin/ditto (a file-copy utility). If 'ditto'
|
|
71
112
|
runs the wrong tool, install with 'npm i -g @heyditto/cli' and invoke as
|
|
@@ -73,7 +114,8 @@ runs the wrong tool, install with 'npm i -g @heyditto/cli' and invoke as
|
|
|
73
114
|
|
|
74
115
|
Environment:
|
|
75
116
|
DITTO_API_KEY Optional override (takes precedence over the saved key).
|
|
76
|
-
|
|
117
|
+
Run 'heyditto init --agent --json' for no-human setup, or get
|
|
118
|
+
a human-owned key at ${newKeyURL()}.
|
|
77
119
|
DITTO_API_BASE Optional. Defaults to https://api.heyditto.ai.
|
|
78
120
|
DITTO_CONFIG_DIR Optional. Defaults to $XDG_CONFIG_HOME/heyditto/cli or
|
|
79
121
|
~/.config/heyditto/cli.
|
|
@@ -83,9 +125,9 @@ async function getClient() {
|
|
|
83
125
|
const { key, source } = await resolveApiKey();
|
|
84
126
|
if (!key) {
|
|
85
127
|
process.stderr.write(`error: no Ditto API key configured.\n\n` +
|
|
86
|
-
`
|
|
87
|
-
`
|
|
88
|
-
`
|
|
128
|
+
` Run: heyditto init --agent --json\n` +
|
|
129
|
+
` Or save an existing key with: heyditto login <key>\n` +
|
|
130
|
+
` Human-owned keys are available at ${newKeyURL()}.\n`);
|
|
89
131
|
process.exit(1);
|
|
90
132
|
}
|
|
91
133
|
const client = new Client({ name: packageName, version: packageVersion });
|
|
@@ -181,7 +223,110 @@ async function cmdLogin(rest) {
|
|
|
181
223
|
if (process.env.DITTO_API_KEY) {
|
|
182
224
|
process.stderr.write(`note: DITTO_API_KEY is set in your environment and will override the saved key for this session.\n`);
|
|
183
225
|
}
|
|
184
|
-
process.stdout.write(`Run '
|
|
226
|
+
process.stdout.write(`Run 'heyditto status' to verify.\n`);
|
|
227
|
+
}
|
|
228
|
+
function defaultAgentCaller() {
|
|
229
|
+
return process.env.DITTO_AGENT_CALLER?.trim() || process.env.CURSOR_AGENT?.trim() || "agent";
|
|
230
|
+
}
|
|
231
|
+
async function cmdInit(rest) {
|
|
232
|
+
const { values } = parseArgs({
|
|
233
|
+
args: rest,
|
|
234
|
+
options: {
|
|
235
|
+
agent: { type: "boolean", default: false },
|
|
236
|
+
"agent-caller": { type: "string" },
|
|
237
|
+
json: { type: "boolean", default: false },
|
|
238
|
+
output: outputOption,
|
|
239
|
+
},
|
|
240
|
+
allowPositionals: true,
|
|
241
|
+
});
|
|
242
|
+
const output = values.json ? "json" : parseOutputFormat(values.output);
|
|
243
|
+
if (!values.agent) {
|
|
244
|
+
throw new Error("init currently supports only --agent");
|
|
245
|
+
}
|
|
246
|
+
const stored = await readStoredAuth();
|
|
247
|
+
if (stored?.apiKey && stored.agentMode) {
|
|
248
|
+
const existing = {
|
|
249
|
+
created: false,
|
|
250
|
+
accountID: stored.agentAccountID,
|
|
251
|
+
userID: stored.agentUserID,
|
|
252
|
+
apiKey: stored.apiKey,
|
|
253
|
+
agentCaller: stored.agentCaller,
|
|
254
|
+
claimURL: stored.claimURL,
|
|
255
|
+
status: "configured",
|
|
256
|
+
configPath: authFilePath(),
|
|
257
|
+
};
|
|
258
|
+
if (output === "json" || output === "raw") {
|
|
259
|
+
process.stdout.write(`${JSON.stringify(existing, null, 2)}\n`);
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
process.stdout.write(`Agent account already configured at ${authFilePath()}\n`);
|
|
263
|
+
if (stored.claimURL)
|
|
264
|
+
process.stdout.write(`Claim later: ${stored.claimURL}\n`);
|
|
265
|
+
}
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
if (stored?.apiKey) {
|
|
269
|
+
throw new Error(`a Ditto API key is already saved at ${authFilePath()}; run 'heyditto logout' before creating an agent account`);
|
|
270
|
+
}
|
|
271
|
+
const agentCaller = values["agent-caller"]?.trim() || defaultAgentCaller();
|
|
272
|
+
const response = await fetch(agentSignupURL(), {
|
|
273
|
+
method: "POST",
|
|
274
|
+
headers: {
|
|
275
|
+
"Content-Type": "application/json",
|
|
276
|
+
"User-Agent": `${packageName}/${packageVersion}`,
|
|
277
|
+
},
|
|
278
|
+
body: JSON.stringify({
|
|
279
|
+
agentCaller,
|
|
280
|
+
metadata: {
|
|
281
|
+
package: packageName,
|
|
282
|
+
version: packageVersion,
|
|
283
|
+
platform: process.platform,
|
|
284
|
+
arch: process.arch,
|
|
285
|
+
},
|
|
286
|
+
}),
|
|
287
|
+
});
|
|
288
|
+
if (!response.ok) {
|
|
289
|
+
const body = await response.text().catch(() => "");
|
|
290
|
+
throw new Error(`agent signup failed: HTTP ${response.status}${body ? ` - ${body}` : ""}`);
|
|
291
|
+
}
|
|
292
|
+
const signupRaw = (await response.json());
|
|
293
|
+
if (typeof signupRaw.accountID !== "string" ||
|
|
294
|
+
typeof signupRaw.userID !== "string" ||
|
|
295
|
+
typeof signupRaw.apiKeyID !== "number" ||
|
|
296
|
+
typeof signupRaw.apiKey !== "string" ||
|
|
297
|
+
typeof signupRaw.claimURL !== "string" ||
|
|
298
|
+
signupRaw.status !== "unclaimed" ||
|
|
299
|
+
typeof signupRaw.createdAt !== "string") {
|
|
300
|
+
throw new Error("agent signup failed: invalid response payload");
|
|
301
|
+
}
|
|
302
|
+
const signup = signupRaw;
|
|
303
|
+
await writeStoredAuth({
|
|
304
|
+
apiKey: signup.apiKey,
|
|
305
|
+
agentMode: true,
|
|
306
|
+
agentAccountID: signup.accountID,
|
|
307
|
+
agentUserID: signup.userID,
|
|
308
|
+
agentCaller: signup.agentCaller || agentCaller,
|
|
309
|
+
claimURL: signup.claimURL,
|
|
310
|
+
createdAt: signup.createdAt,
|
|
311
|
+
});
|
|
312
|
+
const result = {
|
|
313
|
+
created: true,
|
|
314
|
+
accountID: signup.accountID,
|
|
315
|
+
userID: signup.userID,
|
|
316
|
+
apiKeyID: signup.apiKeyID,
|
|
317
|
+
apiKey: signup.apiKey,
|
|
318
|
+
agentCaller: signup.agentCaller || agentCaller,
|
|
319
|
+
claimURL: signup.claimURL,
|
|
320
|
+
status: signup.status,
|
|
321
|
+
configPath: authFilePath(),
|
|
322
|
+
};
|
|
323
|
+
if (output === "json" || output === "raw") {
|
|
324
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
process.stdout.write(`Created agent account ${signup.userID}\n`);
|
|
328
|
+
process.stdout.write(`Saved key to ${authFilePath()}\n`);
|
|
329
|
+
process.stdout.write(`Claim later: ${signup.claimURL}\n`);
|
|
185
330
|
}
|
|
186
331
|
async function cmdLogout(rest) {
|
|
187
332
|
const { values } = parseArgs({
|
|
@@ -222,22 +367,155 @@ async function cmdSave(rest) {
|
|
|
222
367
|
async function cmdSearch(rest) {
|
|
223
368
|
const { values, positionals } = parseArgs({
|
|
224
369
|
args: rest,
|
|
225
|
-
options: {
|
|
370
|
+
options: {
|
|
371
|
+
"include-public": { type: "boolean", default: false },
|
|
372
|
+
"filter-username": { type: "string" },
|
|
373
|
+
output: outputOption,
|
|
374
|
+
},
|
|
226
375
|
allowPositionals: true,
|
|
227
376
|
});
|
|
228
377
|
const format = parseOutputFormat(values.output);
|
|
229
378
|
requirePositionals(positionals, 1, "search");
|
|
230
|
-
|
|
379
|
+
const args = { queries: positionals };
|
|
380
|
+
if (values["include-public"])
|
|
381
|
+
args.includePublic = true;
|
|
382
|
+
if (values["filter-username"])
|
|
383
|
+
args.filterUsername = values["filter-username"];
|
|
384
|
+
await callAndPrint("search_memories", args, format);
|
|
231
385
|
}
|
|
232
386
|
async function cmdFetch(rest) {
|
|
233
387
|
const { values, positionals } = parseArgs({
|
|
234
388
|
args: rest,
|
|
235
|
-
options: { output: outputOption },
|
|
389
|
+
options: { "memory-format": { type: "string" }, output: outputOption },
|
|
236
390
|
allowPositionals: true,
|
|
237
391
|
});
|
|
238
392
|
const format = parseOutputFormat(values.output);
|
|
393
|
+
const memoryFormat = parseMemoryFormat(values["memory-format"]);
|
|
239
394
|
requirePositionals(positionals, 1, "fetch");
|
|
240
|
-
await callAndPrint("fetch_memories", {
|
|
395
|
+
await callAndPrint("fetch_memories", { ids: positionals, format: memoryFormat }, format);
|
|
396
|
+
}
|
|
397
|
+
async function cmdList(rest) {
|
|
398
|
+
const { values } = parseArgs({
|
|
399
|
+
args: rest,
|
|
400
|
+
options: {
|
|
401
|
+
username: { type: "string" },
|
|
402
|
+
limit: { type: "string" },
|
|
403
|
+
offset: { type: "string" },
|
|
404
|
+
source: { type: "string" },
|
|
405
|
+
output: outputOption,
|
|
406
|
+
},
|
|
407
|
+
allowPositionals: true,
|
|
408
|
+
});
|
|
409
|
+
const format = parseOutputFormat(values.output);
|
|
410
|
+
const args = {};
|
|
411
|
+
if (values.username)
|
|
412
|
+
args.username = values.username;
|
|
413
|
+
const limit = parseIntegerOption(values.limit, "--limit");
|
|
414
|
+
if (limit !== undefined)
|
|
415
|
+
args.limit = limit;
|
|
416
|
+
const offset = parseIntegerOption(values.offset, "--offset");
|
|
417
|
+
if (offset !== undefined)
|
|
418
|
+
args.offset = offset;
|
|
419
|
+
if (values.source)
|
|
420
|
+
args.source = values.source;
|
|
421
|
+
await callAndPrint("list_memories", args, format);
|
|
422
|
+
}
|
|
423
|
+
async function cmdUpdate(rest) {
|
|
424
|
+
const { values, positionals } = parseArgs({
|
|
425
|
+
args: rest,
|
|
426
|
+
options: {
|
|
427
|
+
content: { type: "string" },
|
|
428
|
+
"content-file": { type: "string" },
|
|
429
|
+
title: { type: "string" },
|
|
430
|
+
"source-context": { type: "string" },
|
|
431
|
+
"edits-json": { type: "string" },
|
|
432
|
+
"edits-file": { type: "string" },
|
|
433
|
+
"base-revision": { type: "string" },
|
|
434
|
+
output: outputOption,
|
|
435
|
+
},
|
|
436
|
+
allowPositionals: true,
|
|
437
|
+
});
|
|
438
|
+
const format = parseOutputFormat(values.output);
|
|
439
|
+
requirePositionals(positionals, 1, "update");
|
|
440
|
+
if (values.content && values["content-file"]) {
|
|
441
|
+
throw new Error("update: use either --content or --content-file, not both");
|
|
442
|
+
}
|
|
443
|
+
if (values["edits-json"] && values["edits-file"]) {
|
|
444
|
+
throw new Error("update: use either --edits-json or --edits-file, not both");
|
|
445
|
+
}
|
|
446
|
+
if ((values.content || values["content-file"]) && (values["edits-json"] || values["edits-file"])) {
|
|
447
|
+
throw new Error("update: content replacement and block edits are mutually exclusive");
|
|
448
|
+
}
|
|
449
|
+
const args = { memoryId: positionals[0] };
|
|
450
|
+
if (values.content)
|
|
451
|
+
args.content = values.content;
|
|
452
|
+
if (values["content-file"])
|
|
453
|
+
args.content = await readTextFile(values["content-file"], "--content-file");
|
|
454
|
+
if (values.title !== undefined)
|
|
455
|
+
args.title = values.title;
|
|
456
|
+
if (values["source-context"] !== undefined)
|
|
457
|
+
args.sourceContext = values["source-context"];
|
|
458
|
+
if (values["edits-json"] || values["edits-file"]) {
|
|
459
|
+
const raw = values["edits-json"] ?? (await readTextFile(values["edits-file"], "--edits-file"));
|
|
460
|
+
args.edits = parseJSONOption(raw, values["edits-json"] ? "--edits-json" : "--edits-file");
|
|
461
|
+
const baseRevision = parseIntegerOption(values["base-revision"], "--base-revision");
|
|
462
|
+
if (baseRevision === undefined) {
|
|
463
|
+
throw new Error("update: --base-revision is required with block edits");
|
|
464
|
+
}
|
|
465
|
+
args.baseRevision = baseRevision;
|
|
466
|
+
}
|
|
467
|
+
else {
|
|
468
|
+
const baseRevision = parseIntegerOption(values["base-revision"], "--base-revision");
|
|
469
|
+
if (baseRevision !== undefined)
|
|
470
|
+
args.baseRevision = baseRevision;
|
|
471
|
+
}
|
|
472
|
+
await callAndPrint("update_memory", args, format);
|
|
473
|
+
}
|
|
474
|
+
async function cmdPublish(rest) {
|
|
475
|
+
const { values, positionals } = parseArgs({
|
|
476
|
+
args: rest,
|
|
477
|
+
options: {
|
|
478
|
+
title: { type: "string" },
|
|
479
|
+
"privacy-mode": { type: "string" },
|
|
480
|
+
output: outputOption,
|
|
481
|
+
},
|
|
482
|
+
allowPositionals: true,
|
|
483
|
+
});
|
|
484
|
+
const format = parseOutputFormat(values.output);
|
|
485
|
+
requirePositionals(positionals, 1, "publish");
|
|
486
|
+
const args = { memoryId: positionals[0] };
|
|
487
|
+
if (values.title !== undefined)
|
|
488
|
+
args.title = values.title;
|
|
489
|
+
if (values["privacy-mode"] !== undefined)
|
|
490
|
+
args.privacyMode = values["privacy-mode"];
|
|
491
|
+
await callAndPrint("publish_memory", args, format);
|
|
492
|
+
}
|
|
493
|
+
async function cmdUnpublish(rest) {
|
|
494
|
+
const { values, positionals } = parseArgs({
|
|
495
|
+
args: rest,
|
|
496
|
+
options: {
|
|
497
|
+
"memory-id": { type: "string" },
|
|
498
|
+
"share-id": { type: "string" },
|
|
499
|
+
output: outputOption,
|
|
500
|
+
},
|
|
501
|
+
allowPositionals: true,
|
|
502
|
+
});
|
|
503
|
+
const format = parseOutputFormat(values.output);
|
|
504
|
+
const provided = [values["memory-id"], values["share-id"], positionals[0]].filter(Boolean);
|
|
505
|
+
if (provided.length !== 1) {
|
|
506
|
+
throw new Error("unpublish: provide exactly one of --memory-id, --share-id, or positional id");
|
|
507
|
+
}
|
|
508
|
+
const args = {};
|
|
509
|
+
if (values["memory-id"]) {
|
|
510
|
+
args.memoryId = values["memory-id"];
|
|
511
|
+
}
|
|
512
|
+
else if (values["share-id"]) {
|
|
513
|
+
args.shareId = values["share-id"];
|
|
514
|
+
}
|
|
515
|
+
else {
|
|
516
|
+
args.memoryId = positionals[0];
|
|
517
|
+
}
|
|
518
|
+
await callAndPrint("unpublish_memory", args, format);
|
|
241
519
|
}
|
|
242
520
|
async function cmdSubjects(rest) {
|
|
243
521
|
const { values, positionals } = parseArgs({
|
|
@@ -248,23 +526,23 @@ async function cmdSubjects(rest) {
|
|
|
248
526
|
const format = parseOutputFormat(values.output);
|
|
249
527
|
requirePositionals(positionals, 1, "subjects");
|
|
250
528
|
const args = { query: positionals.join(" ") };
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
throw new Error("--top-k must be an integer");
|
|
255
|
-
args.topK = n;
|
|
256
|
-
}
|
|
529
|
+
const topK = parseIntegerOption(values["top-k"], "--top-k");
|
|
530
|
+
if (topK !== undefined)
|
|
531
|
+
args.topK = topK;
|
|
257
532
|
await callAndPrint("search_subjects", args, format);
|
|
258
533
|
}
|
|
259
534
|
async function cmdMemories(rest) {
|
|
260
535
|
const { values, positionals } = parseArgs({
|
|
261
536
|
args: rest,
|
|
262
|
-
options: { output: outputOption },
|
|
537
|
+
options: { query: { type: "string" }, output: outputOption },
|
|
263
538
|
allowPositionals: true,
|
|
264
539
|
});
|
|
265
540
|
const format = parseOutputFormat(values.output);
|
|
266
541
|
requirePositionals(positionals, 1, "memories");
|
|
267
|
-
|
|
542
|
+
const args = { subjectIds: positionals };
|
|
543
|
+
if (values.query)
|
|
544
|
+
args.query = values.query;
|
|
545
|
+
await callAndPrint("search_memories_in_subjects", args, format);
|
|
268
546
|
}
|
|
269
547
|
async function cmdNetwork(rest) {
|
|
270
548
|
const { values, positionals } = parseArgs({
|
|
@@ -275,12 +553,9 @@ async function cmdNetwork(rest) {
|
|
|
275
553
|
const format = parseOutputFormat(values.output);
|
|
276
554
|
requirePositionals(positionals, 1, "network");
|
|
277
555
|
const args = { pairId: positionals[0] };
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
throw new Error("--limit must be an integer");
|
|
282
|
-
args.limit = n;
|
|
283
|
-
}
|
|
556
|
+
const limit = parseIntegerOption(values.limit, "--limit");
|
|
557
|
+
if (limit !== undefined)
|
|
558
|
+
args.limit = limit;
|
|
284
559
|
await callAndPrint("get_memory_network", args, format);
|
|
285
560
|
}
|
|
286
561
|
async function cmdStatus(rest) {
|
|
@@ -290,13 +565,22 @@ async function cmdStatus(rest) {
|
|
|
290
565
|
allowPositionals: true,
|
|
291
566
|
});
|
|
292
567
|
const format = parseOutputFormat(values.output);
|
|
293
|
-
const { key, source } = await resolveApiKey();
|
|
568
|
+
const [{ key, source }, stored] = await Promise.all([resolveApiKey(), readStoredAuth()]);
|
|
294
569
|
const report = {
|
|
295
570
|
package: packageName,
|
|
296
571
|
version: packageVersion,
|
|
297
572
|
endpoint: mcpServerURL(),
|
|
298
573
|
apiKey: { present: !!key, source },
|
|
299
574
|
};
|
|
575
|
+
if (source === "config" && stored?.agentMode) {
|
|
576
|
+
report.agent = {
|
|
577
|
+
enabled: true,
|
|
578
|
+
accountID: stored.agentAccountID,
|
|
579
|
+
userID: stored.agentUserID,
|
|
580
|
+
caller: stored.agentCaller,
|
|
581
|
+
claimURL: stored.claimURL,
|
|
582
|
+
};
|
|
583
|
+
}
|
|
300
584
|
if (key) {
|
|
301
585
|
try {
|
|
302
586
|
const client = await getClient();
|
|
@@ -327,7 +611,7 @@ async function cmdStatus(rest) {
|
|
|
327
611
|
`api key: ${report.apiKey.present ? "set" : "MISSING"} (source: ${report.apiKey.source})`,
|
|
328
612
|
];
|
|
329
613
|
if (!report.apiKey.present) {
|
|
330
|
-
lines.push(``, `
|
|
614
|
+
lines.push(``, `Run 'heyditto init --agent --json' for no-human setup, or get a key at ${newKeyURL()} and run 'heyditto login <key>'.`);
|
|
331
615
|
}
|
|
332
616
|
else if (report.tools) {
|
|
333
617
|
lines.push(`tools: ${report.tools.join(", ")}`);
|
|
@@ -335,6 +619,9 @@ async function cmdStatus(rest) {
|
|
|
335
619
|
else if (report.connect && !report.connect.ok) {
|
|
336
620
|
lines.push(`connect: FAILED — ${report.connect.error}`);
|
|
337
621
|
}
|
|
622
|
+
if (report.agent?.claimURL) {
|
|
623
|
+
lines.push(`agent: unclaimed (${report.agent.caller || "agent"})`, `claim: ${report.agent.claimURL}`);
|
|
624
|
+
}
|
|
338
625
|
process.stdout.write(`${lines.join("\n")}\n`);
|
|
339
626
|
}
|
|
340
627
|
function cmdConfig(rest) {
|
|
@@ -360,6 +647,9 @@ async function main() {
|
|
|
360
647
|
const command = argv[0];
|
|
361
648
|
const rest = argv.slice(1);
|
|
362
649
|
switch (command) {
|
|
650
|
+
case "init":
|
|
651
|
+
await cmdInit(rest);
|
|
652
|
+
return;
|
|
363
653
|
case "save":
|
|
364
654
|
await cmdSave(rest);
|
|
365
655
|
return;
|
|
@@ -369,6 +659,18 @@ async function main() {
|
|
|
369
659
|
case "fetch":
|
|
370
660
|
await cmdFetch(rest);
|
|
371
661
|
return;
|
|
662
|
+
case "list":
|
|
663
|
+
await cmdList(rest);
|
|
664
|
+
return;
|
|
665
|
+
case "update":
|
|
666
|
+
await cmdUpdate(rest);
|
|
667
|
+
return;
|
|
668
|
+
case "publish":
|
|
669
|
+
await cmdPublish(rest);
|
|
670
|
+
return;
|
|
671
|
+
case "unpublish":
|
|
672
|
+
await cmdUnpublish(rest);
|
|
673
|
+
return;
|
|
372
674
|
case "subjects":
|
|
373
675
|
await cmdSubjects(rest);
|
|
374
676
|
return;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare function mcpServerURL(): string;
|
|
|
5
5
|
export declare function configDir(): string;
|
|
6
6
|
export declare function authFilePath(): string;
|
|
7
7
|
export declare function newKeyURL(): string;
|
|
8
|
+
export declare function agentSignupURL(): string;
|
|
8
9
|
export type ApiKeySource = "env" | "config" | "none";
|
|
9
10
|
export interface ResolvedKey {
|
|
10
11
|
key?: string;
|
package/dist/config.js
CHANGED
|
@@ -24,6 +24,9 @@ export function authFilePath() {
|
|
|
24
24
|
export function newKeyURL() {
|
|
25
25
|
return "https://app.heyditto.ai/mcp/newkey";
|
|
26
26
|
}
|
|
27
|
+
export function agentSignupURL() {
|
|
28
|
+
return `${apiBaseURL()}/api/v5/agents/signup`;
|
|
29
|
+
}
|
|
27
30
|
export async function resolveApiKey() {
|
|
28
31
|
const envKey = process.env.DITTO_API_KEY?.trim();
|
|
29
32
|
if (envKey)
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,GAAG,GAAG,UAAU,CAAC,iBAAiB,CAAsC,CAAC;AAE/E,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;AAE1C,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,UAAU,EAAE,MAAM,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,oCAAoC,CAAC;AAC9C,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IACjD,IAAI,MAAM;QAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,IAAI,MAAM;QAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,GAAG,GAAG,UAAU,CAAC,iBAAiB,CAAsC,CAAC;AAE/E,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;AAE1C,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,UAAU,EAAE,MAAM,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,oCAAoC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,GAAG,UAAU,EAAE,uBAAuB,CAAC;AAChD,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IACjD,IAAI,MAAM;QAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,IAAI,MAAM;QAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
package/dist/store.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
export interface StoredAuth {
|
|
2
|
+
apiKey?: string;
|
|
3
|
+
agentMode?: boolean;
|
|
4
|
+
agentAccountID?: string;
|
|
5
|
+
agentUserID?: string;
|
|
6
|
+
agentCaller?: string;
|
|
7
|
+
claimURL?: string;
|
|
8
|
+
createdAt?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function readStoredAuth(): Promise<StoredAuth | undefined>;
|
|
1
11
|
export declare function readStoredKey(): Promise<string | undefined>;
|
|
12
|
+
export declare function writeStoredAuth(auth: StoredAuth): Promise<void>;
|
|
2
13
|
export declare function writeStoredKey(key: string): Promise<void>;
|
|
3
14
|
export declare function clearStoredKey(): Promise<boolean>;
|
package/dist/store.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { chmod, mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
2
2
|
import { dirname } from "node:path";
|
|
3
3
|
import { authFilePath } from "./config.js";
|
|
4
|
-
export async function
|
|
4
|
+
export async function readStoredAuth() {
|
|
5
5
|
try {
|
|
6
6
|
const raw = await readFile(authFilePath(), "utf-8");
|
|
7
7
|
const parsed = JSON.parse(raw);
|
|
8
|
-
|
|
9
|
-
return key && key.length > 0 ? key : undefined;
|
|
8
|
+
return parsed;
|
|
10
9
|
}
|
|
11
10
|
catch (err) {
|
|
12
11
|
if (err.code === "ENOENT")
|
|
@@ -14,16 +13,26 @@ export async function readStoredKey() {
|
|
|
14
13
|
throw err;
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
|
-
export async function
|
|
18
|
-
const
|
|
16
|
+
export async function readStoredKey() {
|
|
17
|
+
const parsed = await readStoredAuth();
|
|
18
|
+
const key = parsed?.apiKey?.trim();
|
|
19
|
+
return key && key.length > 0 ? key : undefined;
|
|
20
|
+
}
|
|
21
|
+
export async function writeStoredAuth(auth) {
|
|
22
|
+
const cleaned = auth.apiKey?.trim();
|
|
19
23
|
if (!cleaned)
|
|
20
24
|
throw new Error("refusing to store empty api key");
|
|
21
25
|
const path = authFilePath();
|
|
22
26
|
await mkdir(dirname(path), { recursive: true, mode: 0o700 });
|
|
23
|
-
await writeFile(path, `${JSON.stringify({ apiKey: cleaned }, null, 2)}\n`, { mode: 0o600 });
|
|
24
|
-
// chmod again so existing files inherit 0o600 even if writeFile reused mode.
|
|
27
|
+
await writeFile(path, `${JSON.stringify({ ...auth, apiKey: cleaned }, null, 2)}\n`, { mode: 0o600 });
|
|
25
28
|
await chmod(path, 0o600);
|
|
26
29
|
}
|
|
30
|
+
export async function writeStoredKey(key) {
|
|
31
|
+
const cleaned = key.trim();
|
|
32
|
+
if (!cleaned)
|
|
33
|
+
throw new Error("refusing to store empty api key");
|
|
34
|
+
await writeStoredAuth({ apiKey: cleaned });
|
|
35
|
+
}
|
|
27
36
|
export async function clearStoredKey() {
|
|
28
37
|
try {
|
|
29
38
|
await rm(authFilePath());
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAY3C,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACvE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACnC,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAgB;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACrG,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjE,MAAM,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACnE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|