cimux-mcp 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -13
- package/dist/bin.js +10 -1
- package/dist/bin.js.map +1 -1
- package/dist/cli/cimux-cli.d.ts +2 -9
- package/dist/cli/cimux-cli.js +62 -201
- package/dist/cli/cimux-cli.js.map +1 -1
- package/dist/cli/commands/ack.d.ts +2 -0
- package/dist/cli/commands/ack.js +24 -0
- package/dist/cli/commands/ack.js.map +1 -0
- package/dist/cli/commands/brief.d.ts +2 -0
- package/dist/cli/commands/brief.js +33 -0
- package/dist/cli/commands/brief.js.map +1 -0
- package/dist/cli/commands/check.d.ts +2 -0
- package/dist/cli/commands/check.js +24 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/commands/install.d.ts +2 -0
- package/dist/cli/commands/install.js +55 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/mailboxes.d.ts +2 -0
- package/dist/cli/commands/mailboxes.js +14 -0
- package/dist/cli/commands/mailboxes.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +2 -0
- package/dist/cli/commands/mcp.js +11 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/notify.d.ts +2 -0
- package/dist/cli/commands/notify.js +24 -0
- package/dist/cli/commands/notify.js.map +1 -0
- package/dist/cli/commands/read.d.ts +2 -0
- package/dist/cli/commands/read.js +21 -0
- package/dist/cli/commands/read.js.map +1 -0
- package/dist/cli/commands/register.d.ts +2 -0
- package/dist/cli/commands/register.js +27 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/commands/send.d.ts +2 -0
- package/dist/cli/commands/send.js +37 -0
- package/dist/cli/commands/send.js.map +1 -0
- package/dist/cli/shared.d.ts +36 -0
- package/dist/cli/shared.js +71 -0
- package/dist/cli/shared.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/install/cimux-install-plan.d.ts +5 -1
- package/dist/install/cimux-install-plan.js +37 -108
- package/dist/install/cimux-install-plan.js.map +1 -1
- package/dist/install/harnesses/claude.d.ts +2 -0
- package/dist/install/harnesses/claude.js +27 -0
- package/dist/install/harnesses/claude.js.map +1 -0
- package/dist/install/harnesses/codex.d.ts +2 -0
- package/dist/install/harnesses/codex.js +26 -0
- package/dist/install/harnesses/codex.js.map +1 -0
- package/dist/install/harnesses/cursor.d.ts +2 -0
- package/dist/install/harnesses/cursor.js +46 -0
- package/dist/install/harnesses/cursor.js.map +1 -0
- package/dist/install/harnesses/index.d.ts +5 -0
- package/dist/install/harnesses/index.js +16 -0
- package/dist/install/harnesses/index.js.map +1 -0
- package/dist/install/harnesses/shared.d.ts +26 -0
- package/dist/install/harnesses/shared.js +43 -0
- package/dist/install/harnesses/shared.js.map +1 -0
- package/dist/mcp/cimux-mcp-server.js +1 -1
- package/dist/mcp/cimux-mcp-server.js.map +1 -1
- package/dist/{registration/mailbox-registration.d.ts → naming/mailbox-naming.d.ts} +21 -0
- package/dist/naming/mailbox-naming.js +96 -0
- package/dist/naming/mailbox-naming.js.map +1 -0
- package/dist/service/cimux-mailbox-service.d.ts +1 -1
- package/dist/service/cimux-mailbox-service.js +5 -3
- package/dist/service/cimux-mailbox-service.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -2
- package/dist/registration/mailbox-registration.js +0 -48
- package/dist/registration/mailbox-registration.js.map +0 -1
- package/dist/runtime/mailbox-runtime.d.ts +0 -22
- package/dist/runtime/mailbox-runtime.js +0 -50
- package/dist/runtime/mailbox-runtime.js.map +0 -1
- package/docs/mvp-readiness.md +0 -85
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cimux-install-plan.js","sourceRoot":"","sources":["../../src/install/cimux-install-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"cimux-install-plan.js","sourceRoot":"","sources":["../../src/install/cimux-install-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const claudeHarness = {
|
|
2
|
+
name: "claude",
|
|
3
|
+
detectDir: ".claude",
|
|
4
|
+
mcp: {
|
|
5
|
+
// Claude Code reads user-scope MCP servers from ~/.claude.json.
|
|
6
|
+
path: ".claude.json",
|
|
7
|
+
format: "json",
|
|
8
|
+
purpose: "Register the Cimux MCP server for Claude Code (user scope).",
|
|
9
|
+
snippet: createClaudeMcpSnippet
|
|
10
|
+
},
|
|
11
|
+
hooks: { path: ".claude/settings.json" },
|
|
12
|
+
norms: {
|
|
13
|
+
path: ".claude/CLAUDE.md",
|
|
14
|
+
purpose: "Teach Claude Code agents to check and send Cimux mail without prompting."
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
function createClaudeMcpSnippet(packageCommand) {
|
|
18
|
+
return JSON.stringify({
|
|
19
|
+
mcpServers: {
|
|
20
|
+
cimux: {
|
|
21
|
+
command: packageCommand,
|
|
22
|
+
args: ["mcp"]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}, null, 2);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=claude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/install/harnesses/claude.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC9C,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,SAAS;IACpB,GAAG,EAAE;QACH,gEAAgE;QAChE,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,6DAA6D;QACtE,OAAO,EAAE,sBAAsB;KAChC;IACD,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE;IACxC,KAAK,EAAE;QACL,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,0EAA0E;KACpF;CACF,CAAC;AAEF,SAAS,sBAAsB,CAAC,cAAsB;IACpD,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,CAAC,KAAK,CAAC;aACd;SACF;KACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const codexHarness = {
|
|
2
|
+
name: "codex",
|
|
3
|
+
detectDir: ".codex",
|
|
4
|
+
mcp: {
|
|
5
|
+
path: ".codex/config.toml",
|
|
6
|
+
format: "toml",
|
|
7
|
+
purpose: "Register the Cimux MCP server for Codex.",
|
|
8
|
+
snippet: createCodexMcpSnippet
|
|
9
|
+
},
|
|
10
|
+
// Codex hooks share Claude Code's shape; Codex asks the user to trust
|
|
11
|
+
// a hook on first use and after any change to it.
|
|
12
|
+
hooks: { path: ".codex/hooks.json" },
|
|
13
|
+
norms: {
|
|
14
|
+
path: ".codex/AGENTS.md",
|
|
15
|
+
purpose: "Teach Codex agents to check and send Cimux mail without prompting."
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
function createCodexMcpSnippet(packageCommand) {
|
|
19
|
+
return `[mcp_servers.cimux]
|
|
20
|
+
command = "${packageCommand}"
|
|
21
|
+
args = ["mcp"]
|
|
22
|
+
startup_timeout_sec = 10
|
|
23
|
+
tool_timeout_sec = 60
|
|
24
|
+
`;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/install/harnesses/codex.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,QAAQ;IACnB,GAAG,EAAE;QACH,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,0CAA0C;QACnD,OAAO,EAAE,qBAAqB;KAC/B;IACD,sEAAsE;IACtE,kDAAkD;IAClD,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;IACpC,KAAK,EAAE;QACL,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,oEAAoE;KAC9E;CACF,CAAC;AAEF,SAAS,qBAAqB,CAAC,cAAsB;IACnD,OAAO;aACI,cAAc;;;;CAI1B,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Cursor has no user-level norms file (User Rules live in its settings GUI),
|
|
2
|
+
// so agents learn the mail norms from the session brief instead.
|
|
3
|
+
export const cursorHarness = {
|
|
4
|
+
name: "cursor",
|
|
5
|
+
detectDir: ".cursor",
|
|
6
|
+
mcp: {
|
|
7
|
+
path: ".cursor/mcp.json",
|
|
8
|
+
format: "json",
|
|
9
|
+
purpose: "Register the Cimux MCP server for Cursor.",
|
|
10
|
+
snippet: createCursorMcpSnippet
|
|
11
|
+
},
|
|
12
|
+
hooks: {
|
|
13
|
+
path: ".cursor/hooks.json",
|
|
14
|
+
purpose: "Brief the agent on its mailbox and unread mail at session start.",
|
|
15
|
+
snippet: createCursorHookSnippet
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
function createCursorMcpSnippet(packageCommand) {
|
|
19
|
+
return JSON.stringify({
|
|
20
|
+
mcpServers: {
|
|
21
|
+
cimux: {
|
|
22
|
+
type: "stdio",
|
|
23
|
+
command: packageCommand,
|
|
24
|
+
args: ["mcp"]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}, null, 2);
|
|
28
|
+
}
|
|
29
|
+
// Cursor's hook config differs from Claude/Codex: a version field, camelCase
|
|
30
|
+
// events, and hooks respond with JSON on stdout — sessionStart injects
|
|
31
|
+
// context via {"additional_context": ...}, which `brief --format cursor`
|
|
32
|
+
// emits. There is no context-injecting per-prompt event, so Cursor gets the
|
|
33
|
+
// session brief only.
|
|
34
|
+
function createCursorHookSnippet(packageCommand) {
|
|
35
|
+
return JSON.stringify({
|
|
36
|
+
version: 1,
|
|
37
|
+
hooks: {
|
|
38
|
+
sessionStart: [
|
|
39
|
+
{
|
|
40
|
+
command: `${packageCommand} brief --harness cursor --format cursor`
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
}, null, 2);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/install/harnesses/cursor.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,iEAAiE;AACjE,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC9C,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,SAAS;IACpB,GAAG,EAAE;QACH,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,2CAA2C;QACpD,OAAO,EAAE,sBAAsB;KAChC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,kEAAkE;QAC3E,OAAO,EAAE,uBAAuB;KACjC;CACF,CAAC;AAEF,SAAS,sBAAsB,CAAC,cAAsB;IACpD,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,CAAC,KAAK,CAAC;aACd;SACF;KACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,uEAAuE;AACvE,yEAAyE;AACzE,4EAA4E;AAC5E,sBAAsB;AACtB,SAAS,uBAAuB,CAAC,cAAsB;IACrD,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,OAAO,EAAE,CAAC;QACV,KAAK,EAAE;YACL,YAAY,EAAE;gBACZ;oBACE,OAAO,EAAE,GAAG,cAAc,yCAAyC;iBACpE;aACF;SACF;KACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { HarnessDescriptor, HarnessName } from "./shared.js";
|
|
2
|
+
export declare const HARNESS_DESCRIPTORS: HarnessDescriptor[];
|
|
3
|
+
export { AGENT_NORMS_MARKER, createAgentNormsSnippet, createHookSnippet, HOOKS_PURPOSE, SUPPORTED_HARNESSES } from "./shared.js";
|
|
4
|
+
export type { HarnessDescriptor, HarnessName } from "./shared.js";
|
|
5
|
+
export declare function detectInstalledHarnesses(homeDirectory?: string): HarnessName[];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { claudeHarness } from "./claude.js";
|
|
5
|
+
import { codexHarness } from "./codex.js";
|
|
6
|
+
import { cursorHarness } from "./cursor.js";
|
|
7
|
+
export const HARNESS_DESCRIPTORS = [
|
|
8
|
+
codexHarness,
|
|
9
|
+
claudeHarness,
|
|
10
|
+
cursorHarness
|
|
11
|
+
];
|
|
12
|
+
export { AGENT_NORMS_MARKER, createAgentNormsSnippet, createHookSnippet, HOOKS_PURPOSE, SUPPORTED_HARNESSES } from "./shared.js";
|
|
13
|
+
export function detectInstalledHarnesses(homeDirectory = os.homedir()) {
|
|
14
|
+
return HARNESS_DESCRIPTORS.filter((descriptor) => fs.existsSync(path.join(homeDirectory, descriptor.detectDir))).map((descriptor) => descriptor.name);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/install/harnesses/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACtD,YAAY;IACZ,aAAa;IACb,aAAa;CACd,CAAC;AAEF,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAGrB,MAAM,UAAU,wBAAwB,CAAC,aAAa,GAAG,EAAE,CAAC,OAAO,EAAE;IACnE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAC/C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAC9D,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare const SUPPORTED_HARNESSES: readonly ["codex", "claude", "cursor"];
|
|
2
|
+
export type HarnessName = (typeof SUPPORTED_HARNESSES)[number];
|
|
3
|
+
export type HarnessDescriptor = {
|
|
4
|
+
name: HarnessName;
|
|
5
|
+
detectDir: string;
|
|
6
|
+
mcp: {
|
|
7
|
+
path: string;
|
|
8
|
+
format: "toml" | "json";
|
|
9
|
+
purpose: string;
|
|
10
|
+
snippet: (packageCommand: string) => string;
|
|
11
|
+
};
|
|
12
|
+
hooks?: {
|
|
13
|
+
path: string;
|
|
14
|
+
purpose?: string;
|
|
15
|
+
snippet?: (packageCommand: string, harness: HarnessName) => string;
|
|
16
|
+
};
|
|
17
|
+
norms?: {
|
|
18
|
+
path: string;
|
|
19
|
+
purpose: string;
|
|
20
|
+
snippet?: () => string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export declare const HOOKS_PURPOSE = "Notify on unread mail each prompt; brief the agent on its mailbox at session start.";
|
|
24
|
+
export declare const AGENT_NORMS_MARKER = "<!-- cimux:norms -->";
|
|
25
|
+
export declare function createHookSnippet(packageCommand: string, harness: HarnessName): string;
|
|
26
|
+
export declare function createAgentNormsSnippet(): string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export const SUPPORTED_HARNESSES = ["codex", "claude", "cursor"];
|
|
2
|
+
export const HOOKS_PURPOSE = "Notify on unread mail each prompt; brief the agent on its mailbox at session start.";
|
|
3
|
+
export const AGENT_NORMS_MARKER = "<!-- cimux:norms -->";
|
|
4
|
+
// Codex and Claude Code share the same hooks JSON shape and event names.
|
|
5
|
+
export function createHookSnippet(packageCommand, harness) {
|
|
6
|
+
return JSON.stringify({
|
|
7
|
+
hooks: {
|
|
8
|
+
UserPromptSubmit: [
|
|
9
|
+
{
|
|
10
|
+
hooks: [
|
|
11
|
+
{
|
|
12
|
+
type: "command",
|
|
13
|
+
command: `${packageCommand} notify --harness ${harness}`
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
SessionStart: [
|
|
19
|
+
{
|
|
20
|
+
hooks: [
|
|
21
|
+
{
|
|
22
|
+
type: "command",
|
|
23
|
+
command: `${packageCommand} brief --harness ${harness}`
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
}, null, 2);
|
|
30
|
+
}
|
|
31
|
+
export function createAgentNormsSnippet() {
|
|
32
|
+
return `${AGENT_NORMS_MARKER}
|
|
33
|
+
## Cimux agent mail
|
|
34
|
+
|
|
35
|
+
You have a Cimux mailbox (MCP server \`cimux\`). Follow these norms without being asked:
|
|
36
|
+
|
|
37
|
+
- When notified of unread context packages, call \`check_inbox\`, use \`read_context\` on what is relevant, and \`ack_context\` after loading it.
|
|
38
|
+
- When you finish work whose outcome another agent or a future session may need (root causes, decisions, gotchas, handoffs), send it with \`send_context\`: short title, tight summary, full detail in the body, artifact pointers instead of pasted file contents.
|
|
39
|
+
- Find recipients with \`list_mailboxes\`; only existing mailboxes can receive mail. Register your own with \`register_session\` if unsure.
|
|
40
|
+
<!-- cimux:end -->
|
|
41
|
+
`;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/install/harnesses/shared.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AA8B1E,MAAM,CAAC,MAAM,aAAa,GACxB,qFAAqF,CAAC;AAExF,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAEzD,yEAAyE;AACzE,MAAM,UAAU,iBAAiB,CAAC,cAAsB,EAAE,OAAoB;IAC5E,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,KAAK,EAAE;YACL,gBAAgB,EAAE;gBAChB;oBACE,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,GAAG,cAAc,qBAAqB,OAAO,EAAE;yBACzD;qBACF;iBACF;aACF;YACD,YAAY,EAAE;gBACZ;oBACE,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,GAAG,cAAc,oBAAoB,OAAO,EAAE;yBACxD;qBACF;iBACF;aACF;SACF;KACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,GAAG,kBAAkB;;;;;;;;;CAS7B,CAAC;AACF,CAAC"}
|
|
@@ -3,7 +3,7 @@ import path from "node:path";
|
|
|
3
3
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
4
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
5
5
|
import { createContextPackageInputSchema } from "../model/context-package.js";
|
|
6
|
-
import { registerMailboxInputSchema } from "../
|
|
6
|
+
import { registerMailboxInputSchema } from "../naming/mailbox-naming.js";
|
|
7
7
|
import { ackContext, ackContextInputSchema, checkInbox, checkInboxInputSchema, listMailboxes, readContext, readContextInputSchema, registerSession, sendContext } from "../service/cimux-mailbox-service.js";
|
|
8
8
|
import { SQLiteCimuxStore } from "../storage/sqlite-cimux-store.js";
|
|
9
9
|
import { version } from "../version.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cimux-mcp-server.js","sourceRoot":"","sources":["../../src/mcp/cimux-mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cimux-mcp-server.js","sourceRoot":"","sources":["../../src/mcp/cimux-mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,WAAW,EACZ,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,UAAU,oBAAoB,CAAC,YAAY,GAAG,mBAAmB,EAAE;IACvE,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,OAAO;QACb,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,iGAAiG;QACnG,WAAW,EAAE,0BAA0B,CAAC,KAAK;KAC9C,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CACnE,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,oFAAoF;QACtF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,sEAAsE;QACtE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,YAAY,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;SAC3D,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,2FAA2F;QAC7F,WAAW,EAAE,+BAA+B,CAAC,KAAK;KACnD,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAC/D,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,+FAA+F;QACjG,WAAW,EAAE,qBAAqB,CAAC,KAAK;KACzC,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAC9D,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,8EAA8E;QAChF,WAAW,EAAE,sBAAsB,CAAC,KAAK;KAC1C,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAC/D,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,uGAAuG;QACzG,WAAW,EAAE,qBAAqB,CAAC,KAAK;KACzC,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAC9D,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,YAAqB;IAC3D,MAAM,MAAM,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -26,5 +26,26 @@ export type RegisterMailboxResult = {
|
|
|
26
26
|
mailboxes: Mailbox[];
|
|
27
27
|
inferred: boolean;
|
|
28
28
|
};
|
|
29
|
+
export declare const runtimeMailboxInputSchema: z.ZodObject<{
|
|
30
|
+
harness: z.ZodOptional<z.ZodString>;
|
|
31
|
+
explicitMailbox: z.ZodOptional<z.ZodString>;
|
|
32
|
+
cwd: z.ZodDefault<z.ZodString>;
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
34
|
+
cwd: string;
|
|
35
|
+
harness?: string | undefined;
|
|
36
|
+
explicitMailbox?: string | undefined;
|
|
37
|
+
}, {
|
|
38
|
+
harness?: string | undefined;
|
|
39
|
+
explicitMailbox?: string | undefined;
|
|
40
|
+
cwd?: string | undefined;
|
|
41
|
+
}>;
|
|
42
|
+
export type RuntimeMailboxInput = z.input<typeof runtimeMailboxInputSchema>;
|
|
43
|
+
export type RuntimeMailboxResult = {
|
|
44
|
+
mailbox: string;
|
|
45
|
+
inferredFrom: "explicit" | "branch" | "folder";
|
|
46
|
+
branchName: string | null;
|
|
47
|
+
folderName: string;
|
|
48
|
+
};
|
|
29
49
|
export declare function registerMailbox(store: MailboxStore, input: RegisterMailboxInput): Promise<RegisterMailboxResult>;
|
|
30
50
|
export declare function inferMailboxName(input: RegisterMailboxInput): string;
|
|
51
|
+
export declare function resolveRuntimeMailbox(input?: RuntimeMailboxInput): RuntimeMailboxResult;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { mailboxNameSchema } from "../model/context-package.js";
|
|
5
|
+
// This module answers one question: what is this session's mailbox called?
|
|
6
|
+
// Explicit names win, then git branch, then task name, then folder name.
|
|
7
|
+
export const registerMailboxInputSchema = z.object({
|
|
8
|
+
harness: z.string().min(1),
|
|
9
|
+
explicitMailbox: mailboxNameSchema.optional(),
|
|
10
|
+
branchName: z.string().min(1).optional(),
|
|
11
|
+
taskName: z.string().min(1).optional(),
|
|
12
|
+
folderName: z.string().min(1).optional()
|
|
13
|
+
});
|
|
14
|
+
export const runtimeMailboxInputSchema = z.object({
|
|
15
|
+
harness: z.string().min(1).optional(),
|
|
16
|
+
explicitMailbox: mailboxNameSchema.optional(),
|
|
17
|
+
cwd: z.string().min(1).default(process.cwd())
|
|
18
|
+
});
|
|
19
|
+
export async function registerMailbox(store, input) {
|
|
20
|
+
const parsed = registerMailboxInputSchema.parse(input);
|
|
21
|
+
const inferredName = inferMailboxName(parsed);
|
|
22
|
+
const mailbox = await store.createMailbox(inferredName);
|
|
23
|
+
const mailboxes = await store.listMailboxes();
|
|
24
|
+
return {
|
|
25
|
+
mailbox,
|
|
26
|
+
mailboxes,
|
|
27
|
+
inferred: !parsed.explicitMailbox
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function inferMailboxName(input) {
|
|
31
|
+
if (input.explicitMailbox) {
|
|
32
|
+
return mailboxNameSchema.parse(input.explicitMailbox);
|
|
33
|
+
}
|
|
34
|
+
const harness = slugify(input.harness);
|
|
35
|
+
const localName =
|
|
36
|
+
// Branch is preferred because it usually maps to the actual workstream.
|
|
37
|
+
slugify(input.branchName) ||
|
|
38
|
+
// Task names are useful when there is no branch yet.
|
|
39
|
+
slugify(input.taskName) ||
|
|
40
|
+
// Folder name is the final stable local fallback.
|
|
41
|
+
slugify(input.folderName) ||
|
|
42
|
+
"default";
|
|
43
|
+
return mailboxNameSchema.parse(`${harness}/${localName}`);
|
|
44
|
+
}
|
|
45
|
+
export function resolveRuntimeMailbox(input = {}) {
|
|
46
|
+
const parsed = runtimeMailboxInputSchema.parse(input);
|
|
47
|
+
const folderName = path.basename(parsed.cwd);
|
|
48
|
+
if (parsed.explicitMailbox) {
|
|
49
|
+
return {
|
|
50
|
+
mailbox: parsed.explicitMailbox,
|
|
51
|
+
inferredFrom: "explicit",
|
|
52
|
+
branchName: null,
|
|
53
|
+
folderName
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
const branchName = readGitBranch(parsed.cwd);
|
|
57
|
+
const mailbox = inferMailboxName({
|
|
58
|
+
harness: parsed.harness ?? "codex",
|
|
59
|
+
branchName: branchName ?? undefined,
|
|
60
|
+
folderName
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
mailbox,
|
|
64
|
+
inferredFrom: branchName ? "branch" : "folder",
|
|
65
|
+
branchName,
|
|
66
|
+
folderName
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function readGitBranch(cwd) {
|
|
70
|
+
try {
|
|
71
|
+
// Hooks run from the active session cwd. Asking git directly keeps mailbox
|
|
72
|
+
// naming aligned with the real workstream without requiring user setup.
|
|
73
|
+
const output = execFileSync("git", ["branch", "--show-current"], {
|
|
74
|
+
cwd,
|
|
75
|
+
encoding: "utf8",
|
|
76
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
77
|
+
}).trim();
|
|
78
|
+
return output || null;
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function slugify(value) {
|
|
85
|
+
if (!value) {
|
|
86
|
+
return "";
|
|
87
|
+
}
|
|
88
|
+
return value
|
|
89
|
+
.trim()
|
|
90
|
+
.toLowerCase()
|
|
91
|
+
.replace(/[^a-z0-9._-]+/g, "-")
|
|
92
|
+
.replace(/^[^a-z0-9]+/, "")
|
|
93
|
+
.replace(/[^a-z0-9]+$/, "")
|
|
94
|
+
.slice(0, 80);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=mailbox-naming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-naming.js","sourceRoot":"","sources":["../../src/naming/mailbox-naming.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { ContextPackage, ContextPackagePreview, CreateContextPackageInput, Mailbox } from "../model/context-package.js";
|
|
3
|
-
import { type RegisterMailboxInput, type RegisterMailboxResult } from "../
|
|
3
|
+
import { type RegisterMailboxInput, type RegisterMailboxResult } from "../naming/mailbox-naming.js";
|
|
4
4
|
import type { ContextPackageStore, MailboxStore } from "../storage/mailbox-store.js";
|
|
5
5
|
export declare const checkInboxInputSchema: z.ZodObject<{
|
|
6
6
|
mailbox: z.ZodString;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { contextPackageSchema, createContextPackageInputSchema, mailboxNameSchema } from "../model/context-package.js";
|
|
4
|
-
import { registerMailbox } from "../
|
|
3
|
+
import { contextPackageSchema, createContextPackageInputSchema, MAX_INBOX_PREVIEW_LIMIT, mailboxNameSchema } from "../model/context-package.js";
|
|
4
|
+
import { registerMailbox } from "../naming/mailbox-naming.js";
|
|
5
5
|
export const checkInboxInputSchema = z.object({
|
|
6
6
|
mailbox: mailboxNameSchema,
|
|
7
7
|
unreadOnly: z.boolean().default(true),
|
|
8
|
-
limit
|
|
8
|
+
// Capped at the schema so callers see the limit in the MCP tool contract
|
|
9
|
+
// instead of being silently clamped by the storage layer.
|
|
10
|
+
limit: z.number().int().positive().max(MAX_INBOX_PREVIEW_LIMIT).optional()
|
|
9
11
|
});
|
|
10
12
|
export const readContextInputSchema = z.object({
|
|
11
13
|
mailbox: mailboxNameSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cimux-mailbox-service.js","sourceRoot":"","sources":["../../src/service/cimux-mailbox-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,+BAA+B,EAC/B,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EACL,eAAe,EAGhB,MAAM,
|
|
1
|
+
{"version":3,"file":"cimux-mailbox-service.js","sourceRoot":"","sources":["../../src/service/cimux-mailbox-service.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "cimux";
|
|
2
|
-
export declare const version = "0.2.
|
|
2
|
+
export declare const version = "0.2.2";
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cimux-mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Local-first mailbox for intentional AI agent context handoffs.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
},
|
|
26
26
|
"files": [
|
|
27
27
|
"dist",
|
|
28
|
-
"docs",
|
|
29
28
|
"scripts"
|
|
30
29
|
],
|
|
31
30
|
"scripts": {
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { mailboxNameSchema } from "../model/context-package.js";
|
|
3
|
-
export const registerMailboxInputSchema = z.object({
|
|
4
|
-
harness: z.string().min(1),
|
|
5
|
-
explicitMailbox: mailboxNameSchema.optional(),
|
|
6
|
-
branchName: z.string().min(1).optional(),
|
|
7
|
-
taskName: z.string().min(1).optional(),
|
|
8
|
-
folderName: z.string().min(1).optional()
|
|
9
|
-
});
|
|
10
|
-
export async function registerMailbox(store, input) {
|
|
11
|
-
const parsed = registerMailboxInputSchema.parse(input);
|
|
12
|
-
const inferredName = inferMailboxName(parsed);
|
|
13
|
-
const mailbox = await store.createMailbox(inferredName);
|
|
14
|
-
const mailboxes = await store.listMailboxes();
|
|
15
|
-
return {
|
|
16
|
-
mailbox,
|
|
17
|
-
mailboxes,
|
|
18
|
-
inferred: !parsed.explicitMailbox
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export function inferMailboxName(input) {
|
|
22
|
-
if (input.explicitMailbox) {
|
|
23
|
-
return mailboxNameSchema.parse(input.explicitMailbox);
|
|
24
|
-
}
|
|
25
|
-
const harness = slugify(input.harness);
|
|
26
|
-
const localName =
|
|
27
|
-
// Branch is preferred because it usually maps to the actual workstream.
|
|
28
|
-
slugify(input.branchName) ||
|
|
29
|
-
// Task names are useful when there is no branch yet.
|
|
30
|
-
slugify(input.taskName) ||
|
|
31
|
-
// Folder name is the final stable local fallback.
|
|
32
|
-
slugify(input.folderName) ||
|
|
33
|
-
"default";
|
|
34
|
-
return mailboxNameSchema.parse(`${harness}/${localName}`);
|
|
35
|
-
}
|
|
36
|
-
function slugify(value) {
|
|
37
|
-
if (!value) {
|
|
38
|
-
return "";
|
|
39
|
-
}
|
|
40
|
-
return value
|
|
41
|
-
.trim()
|
|
42
|
-
.toLowerCase()
|
|
43
|
-
.replace(/[^a-z0-9._-]+/g, "-")
|
|
44
|
-
.replace(/^[^a-z0-9]+/, "")
|
|
45
|
-
.replace(/[^a-z0-9]+$/, "")
|
|
46
|
-
.slice(0, 80);
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=mailbox-registration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mailbox-registration.js","sourceRoot":"","sources":["../../src/registration/mailbox-registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAIhE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,eAAe,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAUH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAmB,EACnB,KAA2B;IAE3B,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;IAE9C,OAAO;QACL,OAAO;QACP,SAAS;QACT,QAAQ,EAAE,CAAC,MAAM,CAAC,eAAe;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA2B;IAC1D,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,SAAS;IACb,wEAAwE;IACxE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QACzB,qDAAqD;QACrD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QACvB,kDAAkD;QAClD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QACzB,SAAS,CAAC;IAEZ,OAAO,iBAAiB,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const runtimeMailboxInputSchema: z.ZodObject<{
|
|
3
|
-
harness: z.ZodOptional<z.ZodString>;
|
|
4
|
-
explicitMailbox: z.ZodOptional<z.ZodString>;
|
|
5
|
-
cwd: z.ZodDefault<z.ZodString>;
|
|
6
|
-
}, "strip", z.ZodTypeAny, {
|
|
7
|
-
cwd: string;
|
|
8
|
-
harness?: string | undefined;
|
|
9
|
-
explicitMailbox?: string | undefined;
|
|
10
|
-
}, {
|
|
11
|
-
harness?: string | undefined;
|
|
12
|
-
explicitMailbox?: string | undefined;
|
|
13
|
-
cwd?: string | undefined;
|
|
14
|
-
}>;
|
|
15
|
-
export type RuntimeMailboxInput = z.input<typeof runtimeMailboxInputSchema>;
|
|
16
|
-
export type RuntimeMailboxResult = {
|
|
17
|
-
mailbox: string;
|
|
18
|
-
inferredFrom: "explicit" | "branch" | "folder";
|
|
19
|
-
branchName: string | null;
|
|
20
|
-
folderName: string;
|
|
21
|
-
};
|
|
22
|
-
export declare function resolveRuntimeMailbox(input?: RuntimeMailboxInput): RuntimeMailboxResult;
|