cimux-mcp 0.2.0 → 0.2.1

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.
Files changed (58) hide show
  1. package/README.md +3 -2
  2. package/dist/bin.js +10 -1
  3. package/dist/bin.js.map +1 -1
  4. package/dist/cli/cimux-cli.d.ts +2 -9
  5. package/dist/cli/cimux-cli.js +62 -201
  6. package/dist/cli/cimux-cli.js.map +1 -1
  7. package/dist/cli/commands/ack.d.ts +2 -0
  8. package/dist/cli/commands/ack.js +24 -0
  9. package/dist/cli/commands/ack.js.map +1 -0
  10. package/dist/cli/commands/brief.d.ts +2 -0
  11. package/dist/cli/commands/brief.js +22 -0
  12. package/dist/cli/commands/brief.js.map +1 -0
  13. package/dist/cli/commands/check.d.ts +2 -0
  14. package/dist/cli/commands/check.js +24 -0
  15. package/dist/cli/commands/check.js.map +1 -0
  16. package/dist/cli/commands/install.d.ts +2 -0
  17. package/dist/cli/commands/install.js +27 -0
  18. package/dist/cli/commands/install.js.map +1 -0
  19. package/dist/cli/commands/mailboxes.d.ts +2 -0
  20. package/dist/cli/commands/mailboxes.js +14 -0
  21. package/dist/cli/commands/mailboxes.js.map +1 -0
  22. package/dist/cli/commands/mcp.d.ts +2 -0
  23. package/dist/cli/commands/mcp.js +11 -0
  24. package/dist/cli/commands/mcp.js.map +1 -0
  25. package/dist/cli/commands/notify.d.ts +2 -0
  26. package/dist/cli/commands/notify.js +24 -0
  27. package/dist/cli/commands/notify.js.map +1 -0
  28. package/dist/cli/commands/read.d.ts +2 -0
  29. package/dist/cli/commands/read.js +21 -0
  30. package/dist/cli/commands/read.js.map +1 -0
  31. package/dist/cli/commands/register.d.ts +2 -0
  32. package/dist/cli/commands/register.js +27 -0
  33. package/dist/cli/commands/register.js.map +1 -0
  34. package/dist/cli/commands/send.d.ts +2 -0
  35. package/dist/cli/commands/send.js +37 -0
  36. package/dist/cli/commands/send.js.map +1 -0
  37. package/dist/cli/shared.d.ts +34 -0
  38. package/dist/cli/shared.js +68 -0
  39. package/dist/cli/shared.js.map +1 -0
  40. package/dist/index.d.ts +2 -3
  41. package/dist/index.js +1 -2
  42. package/dist/index.js.map +1 -1
  43. package/dist/mcp/cimux-mcp-server.js +1 -1
  44. package/dist/mcp/cimux-mcp-server.js.map +1 -1
  45. package/dist/{registration/mailbox-registration.d.ts → naming/mailbox-naming.d.ts} +21 -0
  46. package/dist/naming/mailbox-naming.js +96 -0
  47. package/dist/naming/mailbox-naming.js.map +1 -0
  48. package/dist/service/cimux-mailbox-service.d.ts +1 -1
  49. package/dist/service/cimux-mailbox-service.js +5 -3
  50. package/dist/service/cimux-mailbox-service.js.map +1 -1
  51. package/dist/version.d.ts +1 -1
  52. package/dist/version.js +1 -1
  53. package/package.json +1 -1
  54. package/dist/registration/mailbox-registration.js +0 -48
  55. package/dist/registration/mailbox-registration.js.map +0 -1
  56. package/dist/runtime/mailbox-runtime.d.ts +0 -22
  57. package/dist/runtime/mailbox-runtime.js +0 -50
  58. package/dist/runtime/mailbox-runtime.js.map +0 -1
package/README.md CHANGED
@@ -104,10 +104,11 @@ cimux send \
104
104
  --title "Auth handoff" \
105
105
  --summary "Frontend should handle the new auth error." \
106
106
  --body "validateSession now throws ExpiredSessionError." \
107
- --tags auth,frontend
107
+ --tags auth,frontend \
108
+ --artifacts-json '{"files":[{"path":"src/auth/session.ts"}]}'
108
109
 
109
110
  cimux notify --mailbox claude/frontend-login
110
- cimux check --mailbox claude/frontend-login
111
+ cimux check --mailbox claude/frontend-login --limit 5
111
112
  cimux read --mailbox claude/frontend-login --id <context-id>
112
113
  cimux ack --mailbox claude/frontend-login --id <context-id> --note "Loaded."
113
114
  ```
package/dist/bin.js CHANGED
@@ -1,4 +1,13 @@
1
1
  #!/usr/bin/env node
2
- import { runCimuxCli } from "./cli/cimux-cli.js";
2
+ // Check the runtime before importing anything: node:sqlite (used by the
3
+ // storage layer) is only available unflagged from Node 22.13, and importing
4
+ // it on older versions crashes with an unhelpful builtin-module error.
5
+ const [major = 0, minor = 0] = process.versions.node.split(".").map(Number);
6
+ if (major < 22 || (major === 22 && minor < 13)) {
7
+ console.error(`cimux requires Node >= 22.13 (for node:sqlite). You are running ${process.versions.node}.`);
8
+ process.exit(1);
9
+ }
10
+ const { runCimuxCli } = await import("./cli/cimux-cli.js");
3
11
  process.exitCode = await runCimuxCli(process.argv.slice(2));
12
+ export {};
4
13
  //# sourceMappingURL=bin.js.map
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,CAAC,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,wEAAwE;AACxE,4EAA4E;AAC5E,uEAAuE;AACvE,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5E,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC;IAC/C,OAAO,CAAC,KAAK,CACX,mEAAmE,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,CAC5F,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAC3D,OAAO,CAAC,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,10 +1,3 @@
1
- export type CimuxCliIo = {
2
- log(message: string): void;
3
- error(message: string): void;
4
- };
5
- export type CimuxCliEnv = {
6
- CIMUX_DB_PATH?: string;
7
- CIMUX_MAILBOX?: string;
8
- CIMUX_HARNESS?: string;
9
- };
1
+ import type { CimuxCliEnv, CimuxCliIo } from "./shared.js";
2
+ export type { CimuxCliEnv, CimuxCliIo } from "./shared.js";
10
3
  export declare function runCimuxCli(argv: string[], env?: CimuxCliEnv, cwd?: string, io?: CimuxCliIo): Promise<number>;
@@ -1,207 +1,77 @@
1
- import path from "node:path";
2
- import { applyInstallPlan, createInstallPlan } from "../install/cimux-install-plan.js";
3
- import { defaultDatabasePath, runCimuxMcpServer } from "../mcp/cimux-mcp-server.js";
4
- import { resolveRuntimeMailbox } from "../runtime/mailbox-runtime.js";
5
- import { ackContext, checkInbox, createInboxNotification, createSessionBrief, listMailboxes, readContext, registerSession, sendContext } from "../service/cimux-mailbox-service.js";
6
- import { SQLiteCimuxStore } from "../storage/sqlite-cimux-store.js";
1
+ import { parseArgs } from "node:util";
2
+ import { ZodError } from "zod";
7
3
  import { name, version } from "../version.js";
4
+ import { ackCommand } from "./commands/ack.js";
5
+ import { briefCommand } from "./commands/brief.js";
6
+ import { checkCommand } from "./commands/check.js";
7
+ import { installCommand } from "./commands/install.js";
8
+ import { mailboxesCommand } from "./commands/mailboxes.js";
9
+ import { mcpCommand } from "./commands/mcp.js";
10
+ import { notifyCommand } from "./commands/notify.js";
11
+ import { readCommand } from "./commands/read.js";
12
+ import { registerCommand } from "./commands/register.js";
13
+ import { sendCommand } from "./commands/send.js";
14
+ const commands = [
15
+ mcpCommand,
16
+ installCommand,
17
+ notifyCommand,
18
+ briefCommand,
19
+ registerCommand,
20
+ mailboxesCommand,
21
+ sendCommand,
22
+ checkCommand,
23
+ readCommand,
24
+ ackCommand
25
+ ];
8
26
  export async function runCimuxCli(argv, env = process.env, cwd = process.cwd(), io = console) {
9
27
  const command = argv[0];
10
- try {
11
- if (!command || command === "help" || command === "--help" || command === "-h") {
12
- io.log(usage());
13
- return 0;
14
- }
15
- if (command === "version" || command === "--version" || command === "-v") {
16
- io.log(`${name} ${version}`);
17
- return 0;
18
- }
19
- if (command === "mcp") {
20
- await runCimuxMcpServer(env.CIMUX_DB_PATH);
21
- return 0;
22
- }
23
- if (command === "notify") {
24
- return await runNotifyCommand(argv, env, cwd, io);
25
- }
26
- if (command === "brief") {
27
- return await runBriefCommand(argv, env, cwd, io);
28
- }
29
- if (command === "mailboxes") {
30
- return await withStore(env, async (store) => {
31
- writeJson(io, await listMailboxes(store));
32
- return 0;
33
- });
34
- }
35
- if (command === "install") {
36
- return runInstallCommand(argv, io);
37
- }
38
- if (command === "register") {
39
- return await withStore(env, async (store) => {
40
- const mailbox = resolveRuntimeMailboxFromArgs(argv, env, cwd);
41
- const result = await registerSession(store, {
42
- harness: readArg(argv, "--harness") ?? env.CIMUX_HARNESS ?? "codex",
43
- ...(mailbox.inferredFrom === "explicit"
44
- ? { explicitMailbox: mailbox.mailbox }
45
- : {
46
- branchName: mailbox.branchName ?? undefined,
47
- folderName: mailbox.folderName
48
- })
49
- });
50
- writeJson(io, result);
51
- return 0;
52
- });
53
- }
54
- if (command === "send") {
55
- return await withStore(env, async (store) => {
56
- const result = await sendContext(store, {
57
- fromMailbox: requireArg(argv, "--from"),
58
- toMailbox: requireArg(argv, "--to"),
59
- title: requireArg(argv, "--title"),
60
- summary: requireArg(argv, "--summary"),
61
- body: requireArg(argv, "--body"),
62
- tags: readCsvArg(argv, "--tags"),
63
- artifacts: {},
64
- payload: {}
65
- });
66
- writeJson(io, result);
67
- return 0;
68
- });
69
- }
70
- if (command === "check") {
71
- return await withStore(env, async (store) => {
72
- const result = await checkInbox(store, {
73
- mailbox: requireArg(argv, "--mailbox"),
74
- unreadOnly: !argv.includes("--all")
75
- });
76
- writeJson(io, result);
77
- return 0;
78
- });
79
- }
80
- if (command === "read") {
81
- return await withStore(env, async (store) => {
82
- const result = await readContext(store, {
83
- mailbox: requireArg(argv, "--mailbox"),
84
- id: requireArg(argv, "--id")
85
- });
86
- writeJson(io, result);
87
- return 0;
88
- });
89
- }
90
- if (command === "ack") {
91
- return await withStore(env, async (store) => {
92
- const note = readArg(argv, "--note");
93
- const result = await ackContext(store, {
94
- mailbox: requireArg(argv, "--mailbox"),
95
- id: requireArg(argv, "--id"),
96
- ...(note === undefined ? {} : { note })
97
- });
98
- writeJson(io, result);
99
- return 0;
100
- });
101
- }
28
+ if (!command || command === "help" || command === "--help" || command === "-h") {
29
+ io.log(usage());
30
+ return 0;
31
+ }
32
+ if (command === "version" || command === "--version" || command === "-v") {
33
+ io.log(`${name} ${version}`);
34
+ return 0;
35
+ }
36
+ const spec = commands.find((candidate) => candidate.name === command);
37
+ if (!spec) {
38
+ io.error(`Unknown command: ${command}`);
39
+ io.error("");
102
40
  io.error(usage());
103
41
  return 1;
104
42
  }
43
+ let values;
44
+ try {
45
+ // strict mode rejects unknown flags and flags missing their value, so
46
+ // typos fail loudly instead of being silently swallowed.
47
+ values = parseArgs({
48
+ args: argv.slice(1),
49
+ options: spec.options,
50
+ strict: true,
51
+ allowPositionals: false
52
+ }).values;
53
+ }
105
54
  catch (error) {
106
55
  io.error(error instanceof Error ? error.message : String(error));
56
+ io.error(`Usage: ${spec.usage}`);
107
57
  return 1;
108
58
  }
109
- }
110
- async function runNotifyCommand(argv, env, cwd, io) {
111
- return withStore(env, async (store) => {
112
- const { mailbox } = resolveRuntimeMailboxFromArgs(argv, env, cwd);
113
- // Hook checks also act as a heartbeat for the current local session name.
114
- // Creation is idempotent, so this does not reset existing mailbox state.
115
- await store.createMailbox(mailbox);
116
- const result = await createInboxNotification(store, { mailbox });
117
- if (result.message) {
118
- io.log(result.message);
119
- }
120
- return 0;
121
- });
122
- }
123
- async function runBriefCommand(argv, env, cwd, io) {
124
- return withStore(env, async (store) => {
125
- const { mailbox } = resolveRuntimeMailboxFromArgs(argv, env, cwd);
126
- // Runs from a SessionStart hook: register the session's mailbox, then
127
- // print the norms so agents use Cimux without being prompted.
128
- await store.createMailbox(mailbox);
129
- const result = await createSessionBrief(store, { mailbox });
130
- io.log(result.message);
131
- return 0;
132
- });
133
- }
134
- function runInstallCommand(argv, io) {
135
- const plan = createInstallPlan({ packageCommand: resolvePackageCommand() });
136
- if (!argv.includes("--dry-run")) {
137
- const results = applyInstallPlan(plan);
138
- for (const result of results) {
139
- const backup = result.backupPath ? ` backup: ${result.backupPath}` : "";
140
- io.log(`${result.status}: ${result.path}${backup}`);
141
- }
142
- return 0;
143
- }
144
- for (const target of plan.targets) {
145
- io.log(`# ${target.harness}: ${target.path}`);
146
- io.log(`# ${target.purpose}`);
147
- io.log(target.snippet);
148
- }
149
- return 0;
150
- }
151
- function resolvePackageCommand() {
152
- // GUI-launched harnesses (e.g. the Codex desktop app) do not inherit the
153
- // shell PATH, so write the absolute path of the running bin into config.
154
- const binPath = process.argv[1];
155
- return binPath && path.isAbsolute(binPath) ? binPath : "cimux";
156
- }
157
- async function withStore(env, callback) {
158
- const store = new SQLiteCimuxStore(env.CIMUX_DB_PATH ?? defaultDatabasePath());
159
59
  try {
160
- return await callback(store);
161
- }
162
- finally {
163
- store.close();
164
- }
165
- }
166
- function resolveRuntimeMailboxFromArgs(argv, env, cwd) {
167
- const explicitMailbox = readArg(argv, "--mailbox") ?? env.CIMUX_MAILBOX;
168
- const harness = readArg(argv, "--harness") ?? env.CIMUX_HARNESS;
169
- if (!explicitMailbox && !harness) {
170
- throw new Error("Expected --mailbox <harness/name> or --harness <name>");
171
- }
172
- return resolveRuntimeMailbox({
173
- ...(explicitMailbox === undefined ? {} : { explicitMailbox }),
174
- ...(harness === undefined ? {} : { harness }),
175
- cwd
176
- });
177
- }
178
- function readArg(argv, name) {
179
- const exact = argv.indexOf(name);
180
- if (exact >= 0) {
181
- return argv[exact + 1];
60
+ return await spec.run({ values, env, cwd, io });
182
61
  }
183
- const prefixed = argv.find((arg) => arg.startsWith(`${name}=`));
184
- return prefixed?.slice(name.length + 1);
185
- }
186
- function requireArg(argv, name) {
187
- const value = readArg(argv, name);
188
- if (!value) {
189
- throw new Error(`Expected ${name}`);
190
- }
191
- return value;
192
- }
193
- function readCsvArg(argv, name) {
194
- const value = readArg(argv, name);
195
- if (!value) {
196
- return [];
62
+ catch (error) {
63
+ if (error instanceof ZodError) {
64
+ io.error("Invalid input:");
65
+ for (const issue of error.issues) {
66
+ const flag = issue.path.length > 0 ? `--${issue.path.join(".")}` : "input";
67
+ io.error(` ${flag}: ${issue.message}`);
68
+ }
69
+ io.error(`Usage: ${spec.usage}`);
70
+ return 1;
71
+ }
72
+ io.error(error instanceof Error ? error.message : String(error));
73
+ return 1;
197
74
  }
198
- return value
199
- .split(",")
200
- .map((item) => item.trim())
201
- .filter(Boolean);
202
- }
203
- function writeJson(io, value) {
204
- io.log(JSON.stringify(value, null, 2));
205
75
  }
206
76
  function usage() {
207
77
  return [
@@ -210,16 +80,7 @@ function usage() {
210
80
  "Local-first mailboxes for intentional AI agent context handoffs.",
211
81
  "",
212
82
  "Usage:",
213
- " cimux mcp",
214
- " cimux install [--dry-run]",
215
- " cimux notify [--mailbox <harness/name> | --harness <name>]",
216
- " cimux brief [--mailbox <harness/name> | --harness <name>]",
217
- " cimux register [--mailbox <harness/name> | --harness <name>]",
218
- " cimux mailboxes",
219
- " cimux send --from <mailbox> --to <mailbox> --title <title> --summary <summary> --body <body> [--tags a,b]",
220
- " cimux check --mailbox <harness/name> [--all]",
221
- " cimux read --mailbox <harness/name> --id <context-id>",
222
- " cimux ack --mailbox <harness/name> --id <context-id> [--note <note>]",
83
+ ...commands.map((spec) => ` ${spec.usage}`),
223
84
  "",
224
85
  "Examples:",
225
86
  " cimux install --dry-run",
@@ -1 +1 @@
1
- {"version":3,"file":"cimux-cli.js","sourceRoot":"","sources":["../../src/cli/cimux-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cimux-cli.js","sourceRoot":"","sources":["../../src/cli/cimux-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKjD,MAAM,QAAQ,GAAkB;IAC9B,UAAU;IACV,cAAc;IACd,aAAa;IACb,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,WAAW;IACX,UAAU;CACX,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAc,EACd,MAAmB,OAAO,CAAC,GAAG,EAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,KAAiB,OAAO;IAExB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/E,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACtE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,EAAE,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QACxC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACb,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,sEAAsE;QACtE,yDAAyD;QACzD,MAAM,GAAG,SAAS,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI;YACZ,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC,MAAsB,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACjC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC3E,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACjC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,EAAE,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,KAAK;IACZ,OAAO;QACL,GAAG,IAAI,IAAI,OAAO,EAAE;QACpB,EAAE;QACF,kEAAkE;QAClE,EAAE;QACF,QAAQ;QACR,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,EAAE;QACF,WAAW;QACX,2BAA2B;QAC3B,gCAAgC;QAChC,+CAA+C;KAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CommandSpec } from "../shared.js";
2
+ export declare const ackCommand: CommandSpec;
@@ -0,0 +1,24 @@
1
+ import { ackContext } from "../../service/cimux-mailbox-service.js";
2
+ import { readString, requireString, withStore, writeJson } from "../shared.js";
3
+ export const ackCommand = {
4
+ name: "ack",
5
+ usage: "cimux ack --mailbox <harness/name> --id <context-id> [--note <note>]",
6
+ options: {
7
+ mailbox: { type: "string" },
8
+ id: { type: "string" },
9
+ note: { type: "string" }
10
+ },
11
+ run(context) {
12
+ return withStore(context.env, async (store) => {
13
+ const note = readString(context.values, "note");
14
+ const result = await ackContext(store, {
15
+ mailbox: requireString(context.values, "mailbox"),
16
+ id: requireString(context.values, "id"),
17
+ ...(note === undefined ? {} : { note })
18
+ });
19
+ writeJson(context.io, result);
20
+ return 0;
21
+ });
22
+ }
23
+ };
24
+ //# sourceMappingURL=ack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ack.js","sourceRoot":"","sources":["../../../src/cli/commands/ack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG/E,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,sEAAsE;IAC7E,OAAO,EAAE;QACP,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACzB;IACD,GAAG,CAAC,OAAO;QACT,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE;gBACrC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;gBACjD,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;gBACvC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;aACxC,CAAC,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CommandSpec } from "../shared.js";
2
+ export declare const briefCommand: CommandSpec;
@@ -0,0 +1,22 @@
1
+ import { createSessionBrief } from "../../service/cimux-mailbox-service.js";
2
+ import { resolveRuntimeMailboxFromArgs, withStore } from "../shared.js";
3
+ export const briefCommand = {
4
+ name: "brief",
5
+ usage: "cimux brief [--mailbox <harness/name> | --harness <name>]",
6
+ options: {
7
+ mailbox: { type: "string" },
8
+ harness: { type: "string" }
9
+ },
10
+ run(context) {
11
+ return withStore(context.env, async (store) => {
12
+ const { mailbox } = resolveRuntimeMailboxFromArgs(context);
13
+ // Runs from a SessionStart hook: register the session's mailbox, then
14
+ // print the norms so agents use Cimux without being prompted.
15
+ await store.createMailbox(mailbox);
16
+ const result = await createSessionBrief(store, { mailbox });
17
+ context.io.log(result.message);
18
+ return 0;
19
+ });
20
+ }
21
+ };
22
+ //# sourceMappingURL=brief.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief.js","sourceRoot":"","sources":["../../../src/cli/commands/brief.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGxE,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,2DAA2D;IAClE,OAAO,EAAE;QACP,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC5B;IACD,GAAG,CAAC,OAAO;QACT,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;YAE3D,sEAAsE;YACtE,8DAA8D;YAC9D,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CommandSpec } from "../shared.js";
2
+ export declare const checkCommand: CommandSpec;
@@ -0,0 +1,24 @@
1
+ import { checkInbox } from "../../service/cimux-mailbox-service.js";
2
+ import { readString, requireString, withStore, writeJson } from "../shared.js";
3
+ export const checkCommand = {
4
+ name: "check",
5
+ usage: "cimux check --mailbox <harness/name> [--all] [--limit <n>]",
6
+ options: {
7
+ mailbox: { type: "string" },
8
+ all: { type: "boolean" },
9
+ limit: { type: "string" }
10
+ },
11
+ run(context) {
12
+ return withStore(context.env, async (store) => {
13
+ const limit = readString(context.values, "limit");
14
+ const result = await checkInbox(store, {
15
+ mailbox: requireString(context.values, "mailbox"),
16
+ unreadOnly: context.values.all !== true,
17
+ ...(limit === undefined ? {} : { limit: Number(limit) })
18
+ });
19
+ writeJson(context.io, result);
20
+ return 0;
21
+ });
22
+ }
23
+ };
24
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG/E,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,4DAA4D;IACnE,OAAO,EAAE;QACP,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1B;IACD,GAAG,CAAC,OAAO;QACT,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE;gBACrC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;gBACjD,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI;gBACvC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;aACzD,CAAC,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CommandSpec } from "../shared.js";
2
+ export declare const installCommand: CommandSpec;
@@ -0,0 +1,27 @@
1
+ import { applyInstallPlan, createInstallPlan } from "../../install/cimux-install-plan.js";
2
+ import { resolvePackageCommand } from "../shared.js";
3
+ export const installCommand = {
4
+ name: "install",
5
+ usage: "cimux install [--dry-run]",
6
+ options: {
7
+ "dry-run": { type: "boolean" }
8
+ },
9
+ run(context) {
10
+ const plan = createInstallPlan({ packageCommand: resolvePackageCommand() });
11
+ if (context.values["dry-run"] !== true) {
12
+ const results = applyInstallPlan(plan);
13
+ for (const result of results) {
14
+ const backup = result.backupPath ? ` backup: ${result.backupPath}` : "";
15
+ context.io.log(`${result.status}: ${result.path}${backup}`);
16
+ }
17
+ return 0;
18
+ }
19
+ for (const target of plan.targets) {
20
+ context.io.log(`# ${target.harness}: ${target.path}`);
21
+ context.io.log(`# ${target.purpose}`);
22
+ context.io.log(target.snippet);
23
+ }
24
+ return 0;
25
+ }
26
+ };
27
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGrD,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE;QACP,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC/B;IACD,GAAG,CAAC,OAAO;QACT,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,cAAc,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAC5E,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CommandSpec } from "../shared.js";
2
+ export declare const mailboxesCommand: CommandSpec;
@@ -0,0 +1,14 @@
1
+ import { listMailboxes } from "../../service/cimux-mailbox-service.js";
2
+ import { withStore, writeJson } from "../shared.js";
3
+ export const mailboxesCommand = {
4
+ name: "mailboxes",
5
+ usage: "cimux mailboxes",
6
+ options: {},
7
+ run(context) {
8
+ return withStore(context.env, async (store) => {
9
+ writeJson(context.io, await listMailboxes(store));
10
+ return 0;
11
+ });
12
+ }
13
+ };
14
+ //# sourceMappingURL=mailboxes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailboxes.js","sourceRoot":"","sources":["../../../src/cli/commands/mailboxes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpD,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC3C,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,iBAAiB;IACxB,OAAO,EAAE,EAAE;IACX,GAAG,CAAC,OAAO;QACT,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5C,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CommandSpec } from "../shared.js";
2
+ export declare const mcpCommand: CommandSpec;
@@ -0,0 +1,11 @@
1
+ import { runCimuxMcpServer } from "../../mcp/cimux-mcp-server.js";
2
+ export const mcpCommand = {
3
+ name: "mcp",
4
+ usage: "cimux mcp",
5
+ options: {},
6
+ async run(context) {
7
+ await runCimuxMcpServer(context.env.CIMUX_DB_PATH);
8
+ return 0;
9
+ }
10
+ };
11
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,EAAE;IACX,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC;IACX,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CommandSpec } from "../shared.js";
2
+ export declare const notifyCommand: CommandSpec;
@@ -0,0 +1,24 @@
1
+ import { createInboxNotification } from "../../service/cimux-mailbox-service.js";
2
+ import { resolveRuntimeMailboxFromArgs, withStore } from "../shared.js";
3
+ export const notifyCommand = {
4
+ name: "notify",
5
+ usage: "cimux notify [--mailbox <harness/name> | --harness <name>]",
6
+ options: {
7
+ mailbox: { type: "string" },
8
+ harness: { type: "string" }
9
+ },
10
+ run(context) {
11
+ return withStore(context.env, async (store) => {
12
+ const { mailbox } = resolveRuntimeMailboxFromArgs(context);
13
+ // Hook checks also act as a heartbeat for the current local session name.
14
+ // Creation is idempotent, so this does not reset existing mailbox state.
15
+ await store.createMailbox(mailbox);
16
+ const result = await createInboxNotification(store, { mailbox });
17
+ if (result.message) {
18
+ context.io.log(result.message);
19
+ }
20
+ return 0;
21
+ });
22
+ }
23
+ };
24
+ //# sourceMappingURL=notify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/cli/commands/notify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGxE,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,4DAA4D;IACnE,OAAO,EAAE;QACP,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC5B;IACD,GAAG,CAAC,OAAO;QACT,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;YAE3D,0EAA0E;YAC1E,yEAAyE;YACzE,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CommandSpec } from "../shared.js";
2
+ export declare const readCommand: CommandSpec;
@@ -0,0 +1,21 @@
1
+ import { readContext } from "../../service/cimux-mailbox-service.js";
2
+ import { requireString, withStore, writeJson } from "../shared.js";
3
+ export const readCommand = {
4
+ name: "read",
5
+ usage: "cimux read --mailbox <harness/name> --id <context-id>",
6
+ options: {
7
+ mailbox: { type: "string" },
8
+ id: { type: "string" }
9
+ },
10
+ run(context) {
11
+ return withStore(context.env, async (store) => {
12
+ const result = await readContext(store, {
13
+ mailbox: requireString(context.values, "mailbox"),
14
+ id: requireString(context.values, "id")
15
+ });
16
+ writeJson(context.io, result);
17
+ return 0;
18
+ });
19
+ }
20
+ };
21
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/cli/commands/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGnE,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,uDAAuD;IAC9D,OAAO,EAAE;QACP,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACvB;IACD,GAAG,CAAC,OAAO;QACT,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE;gBACtC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;gBACjD,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACxC,CAAC,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CommandSpec } from "../shared.js";
2
+ export declare const registerCommand: CommandSpec;