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.
- package/README.md +3 -2
- 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 +22 -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 +27 -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 +34 -0
- package/dist/cli/shared.js +68 -0
- package/dist/cli/shared.js.map +1 -0
- package/dist/index.d.ts +2 -3
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- 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 -1
- 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
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { registerSession } from "../../service/cimux-mailbox-service.js";
|
|
2
|
+
import { readString, resolveRuntimeMailboxFromArgs, withStore, writeJson } from "../shared.js";
|
|
3
|
+
export const registerCommand = {
|
|
4
|
+
name: "register",
|
|
5
|
+
usage: "cimux register [--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
|
+
const result = await registerSession(store, {
|
|
14
|
+
harness: readString(context.values, "harness") ?? context.env.CIMUX_HARNESS ?? "codex",
|
|
15
|
+
...(mailbox.inferredFrom === "explicit"
|
|
16
|
+
? { explicitMailbox: mailbox.mailbox }
|
|
17
|
+
: {
|
|
18
|
+
branchName: mailbox.branchName ?? undefined,
|
|
19
|
+
folderName: mailbox.folderName
|
|
20
|
+
})
|
|
21
|
+
});
|
|
22
|
+
writeJson(context.io, result);
|
|
23
|
+
return 0;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EACL,UAAU,EACV,6BAA6B,EAC7B,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAGtB,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,8DAA8D;IACrE,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,OAAO,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;gBAC1C,OAAO,EACL,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO;gBAC/E,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,UAAU;oBACrC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,OAAO,EAAE;oBACtC,CAAC,CAAC;wBACE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;wBAC3C,UAAU,EAAE,OAAO,CAAC,UAAU;qBAC/B,CAAC;aACP,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,37 @@
|
|
|
1
|
+
import { sendContext } from "../../service/cimux-mailbox-service.js";
|
|
2
|
+
import { readCsv, readJson, requireString, withStore, writeJson } from "../shared.js";
|
|
3
|
+
export const sendCommand = {
|
|
4
|
+
name: "send",
|
|
5
|
+
usage: "cimux send --from <mailbox> --to <mailbox> --title <title> --summary <summary> --body <body> [--tags a,b] [--artifacts-json <json>] [--payload-json <json>]",
|
|
6
|
+
options: {
|
|
7
|
+
from: { type: "string" },
|
|
8
|
+
to: { type: "string" },
|
|
9
|
+
title: { type: "string" },
|
|
10
|
+
summary: { type: "string" },
|
|
11
|
+
body: { type: "string" },
|
|
12
|
+
tags: { type: "string" },
|
|
13
|
+
"artifacts-json": { type: "string" },
|
|
14
|
+
"payload-json": { type: "string" }
|
|
15
|
+
},
|
|
16
|
+
run(context) {
|
|
17
|
+
return withStore(context.env, async (store) => {
|
|
18
|
+
// The JSON flags are parsed here and validated by the service schemas,
|
|
19
|
+
// so malformed artifacts fail with a schema error, not a crash.
|
|
20
|
+
const artifacts = readJson(context.values, "artifacts-json") ?? {};
|
|
21
|
+
const payload = readJson(context.values, "payload-json") ?? {};
|
|
22
|
+
const result = await sendContext(store, {
|
|
23
|
+
fromMailbox: requireString(context.values, "from"),
|
|
24
|
+
toMailbox: requireString(context.values, "to"),
|
|
25
|
+
title: requireString(context.values, "title"),
|
|
26
|
+
summary: requireString(context.values, "summary"),
|
|
27
|
+
body: requireString(context.values, "body"),
|
|
28
|
+
tags: readCsv(context.values, "tags"),
|
|
29
|
+
artifacts: artifacts,
|
|
30
|
+
payload: payload
|
|
31
|
+
});
|
|
32
|
+
writeJson(context.io, result);
|
|
33
|
+
return 0;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=send.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGtF,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,IAAI,EAAE,MAAM;IACZ,KAAK,EACH,6JAA6J;IAC/J,OAAO,EAAE;QACP,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACnC;IACD,GAAG,CAAC,OAAO;QACT,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5C,uEAAuE;YACvE,gEAAgE;YAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;YAE/D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE;gBACtC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;gBAClD,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;gBAC9C,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7C,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;gBACjD,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC3C,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;gBACrC,SAAS,EAAE,SAAmD;gBAC9D,OAAO,EAAE,OAA+C;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,34 @@
|
|
|
1
|
+
import type { RuntimeMailboxResult } from "../naming/mailbox-naming.js";
|
|
2
|
+
import { SQLiteCimuxStore } from "../storage/sqlite-cimux-store.js";
|
|
3
|
+
export type CimuxCliIo = {
|
|
4
|
+
log(message: string): void;
|
|
5
|
+
error(message: string): void;
|
|
6
|
+
};
|
|
7
|
+
export type CimuxCliEnv = {
|
|
8
|
+
CIMUX_DB_PATH?: string;
|
|
9
|
+
CIMUX_MAILBOX?: string;
|
|
10
|
+
CIMUX_HARNESS?: string;
|
|
11
|
+
};
|
|
12
|
+
export type ParsedValues = Record<string, string | boolean | undefined>;
|
|
13
|
+
export type CommandContext = {
|
|
14
|
+
values: ParsedValues;
|
|
15
|
+
env: CimuxCliEnv;
|
|
16
|
+
cwd: string;
|
|
17
|
+
io: CimuxCliIo;
|
|
18
|
+
};
|
|
19
|
+
export type CommandSpec = {
|
|
20
|
+
name: string;
|
|
21
|
+
usage: string;
|
|
22
|
+
options: Record<string, {
|
|
23
|
+
type: "string" | "boolean";
|
|
24
|
+
}>;
|
|
25
|
+
run(context: CommandContext): number | Promise<number>;
|
|
26
|
+
};
|
|
27
|
+
export declare function withStore(env: CimuxCliEnv, callback: (store: SQLiteCimuxStore) => Promise<number>): Promise<number>;
|
|
28
|
+
export declare function resolveRuntimeMailboxFromArgs(context: CommandContext): RuntimeMailboxResult;
|
|
29
|
+
export declare function resolvePackageCommand(): string;
|
|
30
|
+
export declare function readString(values: ParsedValues, name: string): string | undefined;
|
|
31
|
+
export declare function requireString(values: ParsedValues, name: string): string;
|
|
32
|
+
export declare function readCsv(values: ParsedValues, name: string): string[];
|
|
33
|
+
export declare function readJson(values: ParsedValues, name: string): unknown;
|
|
34
|
+
export declare function writeJson(io: CimuxCliIo, value: unknown): void;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { defaultDatabasePath } from "../mcp/cimux-mcp-server.js";
|
|
3
|
+
import { resolveRuntimeMailbox } from "../naming/mailbox-naming.js";
|
|
4
|
+
import { SQLiteCimuxStore } from "../storage/sqlite-cimux-store.js";
|
|
5
|
+
export async function withStore(env, callback) {
|
|
6
|
+
const store = new SQLiteCimuxStore(env.CIMUX_DB_PATH ?? defaultDatabasePath());
|
|
7
|
+
try {
|
|
8
|
+
return await callback(store);
|
|
9
|
+
}
|
|
10
|
+
finally {
|
|
11
|
+
store.close();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function resolveRuntimeMailboxFromArgs(context) {
|
|
15
|
+
const explicitMailbox = readString(context.values, "mailbox") ?? context.env.CIMUX_MAILBOX;
|
|
16
|
+
const harness = readString(context.values, "harness") ?? context.env.CIMUX_HARNESS;
|
|
17
|
+
if (!explicitMailbox && !harness) {
|
|
18
|
+
throw new Error("Expected --mailbox <harness/name> or --harness <name>");
|
|
19
|
+
}
|
|
20
|
+
return resolveRuntimeMailbox({
|
|
21
|
+
...(explicitMailbox === undefined ? {} : { explicitMailbox }),
|
|
22
|
+
...(harness === undefined ? {} : { harness }),
|
|
23
|
+
cwd: context.cwd
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
export function resolvePackageCommand() {
|
|
27
|
+
// GUI-launched harnesses (e.g. the Codex desktop app) do not inherit the
|
|
28
|
+
// shell PATH, so write the absolute path of the running bin into config.
|
|
29
|
+
const binPath = process.argv[1];
|
|
30
|
+
return binPath && path.isAbsolute(binPath) ? binPath : "cimux";
|
|
31
|
+
}
|
|
32
|
+
export function readString(values, name) {
|
|
33
|
+
const value = values[name];
|
|
34
|
+
return typeof value === "string" && value !== "" ? value : undefined;
|
|
35
|
+
}
|
|
36
|
+
export function requireString(values, name) {
|
|
37
|
+
const value = readString(values, name);
|
|
38
|
+
if (value === undefined) {
|
|
39
|
+
throw new Error(`Expected --${name}`);
|
|
40
|
+
}
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
export function readCsv(values, name) {
|
|
44
|
+
const value = readString(values, name);
|
|
45
|
+
if (!value) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
return value
|
|
49
|
+
.split(",")
|
|
50
|
+
.map((item) => item.trim())
|
|
51
|
+
.filter(Boolean);
|
|
52
|
+
}
|
|
53
|
+
export function readJson(values, name) {
|
|
54
|
+
const value = readString(values, name);
|
|
55
|
+
if (value === undefined) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
return JSON.parse(value);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
throw new Error(`Invalid JSON for --${name}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export function writeJson(io, value) {
|
|
66
|
+
io.log(JSON.stringify(value, null, 2));
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/cli/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,12 +2,11 @@ export { name, version } from "./version.js";
|
|
|
2
2
|
export declare function getProjectStage(): string;
|
|
3
3
|
export type { AckState, Artifacts, CodeSnippetArtifact, CommitArtifact, ContextPackage, ContextPackagePreview, CreateContextPackageInput, FileArtifact, FunctionArtifact, Mailbox, MailboxName, NormalizedCreateContextPackageInput, PullRequestArtifact, UrlArtifact } from "./model/context-package.js";
|
|
4
4
|
export type { AckContextPackageOptions, ContextPackageStore, ListInboxPreviewsOptions, MailboxStore } from "./storage/mailbox-store.js";
|
|
5
|
-
export type { RegisterMailboxInput, RegisterMailboxResult } from "./
|
|
5
|
+
export type { RegisterMailboxInput, RegisterMailboxResult } from "./naming/mailbox-naming.js";
|
|
6
6
|
export { ackStateSchema, artifactsSchema, codeSnippetArtifactSchema, commitArtifactSchema, contextPackagePreviewSchema, contextPackageSchema, createContextPackagePreview, createContextPackageInputSchema, DEFAULT_INBOX_PREVIEW_LIMIT, fileArtifactSchema, functionArtifactSchema, MAX_INBOX_PREVIEW_LIMIT, mailboxNameSchema, mailboxSchema, normalizeInboxPreviewLimit, PREVIEW_SUMMARY_MAX_LENGTH, PREVIEW_TAG_MAX_COUNT, PREVIEW_TITLE_MAX_LENGTH, pullRequestArtifactSchema, urlArtifactSchema } from "./model/context-package.js";
|
|
7
7
|
export { ackContext, checkInbox, ContextPackageNotFoundError, createInboxNotification, createSessionBrief, listMailboxes, MailboxAccessError, readContext, registerSession, sendContext } from "./service/cimux-mailbox-service.js";
|
|
8
8
|
export { runCimuxCli } from "./cli/cimux-cli.js";
|
|
9
9
|
export { applyInstallPlan, createInstallPlan } from "./install/cimux-install-plan.js";
|
|
10
10
|
export { createCimuxMcpServer, defaultDatabasePath, runCimuxMcpServer } from "./mcp/cimux-mcp-server.js";
|
|
11
|
-
export { resolveRuntimeMailbox } from "./
|
|
12
|
-
export { inferMailboxName, registerMailboxInputSchema, registerMailbox } from "./registration/mailbox-registration.js";
|
|
11
|
+
export { inferMailboxName, registerMailbox, registerMailboxInputSchema, resolveRuntimeMailbox } from "./naming/mailbox-naming.js";
|
|
13
12
|
export { SQLiteCimuxStore, UnknownMailboxError } from "./storage/sqlite-cimux-store.js";
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,6 @@ export { ackContext, checkInbox, ContextPackageNotFoundError, createInboxNotific
|
|
|
7
7
|
export { runCimuxCli } from "./cli/cimux-cli.js";
|
|
8
8
|
export { applyInstallPlan, createInstallPlan } from "./install/cimux-install-plan.js";
|
|
9
9
|
export { createCimuxMcpServer, defaultDatabasePath, runCimuxMcpServer } from "./mcp/cimux-mcp-server.js";
|
|
10
|
-
export { resolveRuntimeMailbox } from "./
|
|
11
|
-
export { inferMailboxName, registerMailboxInputSchema, registerMailbox } from "./registration/mailbox-registration.js";
|
|
10
|
+
export { inferMailboxName, registerMailbox, registerMailboxInputSchema, resolveRuntimeMailbox } from "./naming/mailbox-naming.js";
|
|
12
11
|
export { SQLiteCimuxStore, UnknownMailboxError } from "./storage/sqlite-cimux-store.js";
|
|
13
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,eAAe;IAC7B,OAAO,WAAW,CAAC;AACrB,CAAC;AA6BD,OAAO,EACL,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,+BAA+B,EAC/B,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,eAAe;IAC7B,OAAO,WAAW,CAAC;AACrB,CAAC;AA6BD,OAAO,EACL,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,+BAA+B,EAC/B,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,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":"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"}
|
|
@@ -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.1";
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -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;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { execFileSync } from "node:child_process";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { inferMailboxName } from "../registration/mailbox-registration.js";
|
|
5
|
-
import { mailboxNameSchema } from "../model/context-package.js";
|
|
6
|
-
export const runtimeMailboxInputSchema = z.object({
|
|
7
|
-
harness: z.string().min(1).optional(),
|
|
8
|
-
explicitMailbox: mailboxNameSchema.optional(),
|
|
9
|
-
cwd: z.string().min(1).default(process.cwd())
|
|
10
|
-
});
|
|
11
|
-
export function resolveRuntimeMailbox(input = {}) {
|
|
12
|
-
const parsed = runtimeMailboxInputSchema.parse(input);
|
|
13
|
-
const folderName = path.basename(parsed.cwd);
|
|
14
|
-
if (parsed.explicitMailbox) {
|
|
15
|
-
return {
|
|
16
|
-
mailbox: parsed.explicitMailbox,
|
|
17
|
-
inferredFrom: "explicit",
|
|
18
|
-
branchName: null,
|
|
19
|
-
folderName
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
const branchName = readGitBranch(parsed.cwd);
|
|
23
|
-
const mailbox = inferMailboxName({
|
|
24
|
-
harness: parsed.harness ?? "codex",
|
|
25
|
-
branchName: branchName ?? undefined,
|
|
26
|
-
folderName
|
|
27
|
-
});
|
|
28
|
-
return {
|
|
29
|
-
mailbox,
|
|
30
|
-
inferredFrom: branchName ? "branch" : "folder",
|
|
31
|
-
branchName,
|
|
32
|
-
folderName
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
function readGitBranch(cwd) {
|
|
36
|
-
try {
|
|
37
|
-
// Hooks run from the active session cwd. Asking git directly keeps mailbox
|
|
38
|
-
// naming aligned with the real workstream without requiring user setup.
|
|
39
|
-
const output = execFileSync("git", ["branch", "--show-current"], {
|
|
40
|
-
cwd,
|
|
41
|
-
encoding: "utf8",
|
|
42
|
-
stdio: ["ignore", "pipe", "ignore"]
|
|
43
|
-
}).trim();
|
|
44
|
-
return output || null;
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=mailbox-runtime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mailbox-runtime.js","sourceRoot":"","sources":["../../src/runtime/mailbox-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,eAAe,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAC7C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;CAC9C,CAAC,CAAC;AAWH,MAAM,UAAU,qBAAqB,CAAC,QAA6B,EAAE;IACnE,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAE7C,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,eAAe;YAC/B,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,IAAI;YAChB,UAAU;SACX,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,gBAAgB,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;QAClC,UAAU,EAAE,UAAU,IAAI,SAAS;QACnC,UAAU;KACX,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QAC9C,UAAU;QACV,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,2EAA2E;QAC3E,wEAAwE;QACxE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE;YAC/D,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,OAAO,MAAM,IAAI,IAAI,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|