@beignet/cli 0.0.44 → 0.0.46

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 (81) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +78 -16
  3. package/dist/choices.d.ts +5 -1
  4. package/dist/choices.d.ts.map +1 -1
  5. package/dist/choices.js +12 -0
  6. package/dist/choices.js.map +1 -1
  7. package/dist/db.d.ts +4 -0
  8. package/dist/db.d.ts.map +1 -1
  9. package/dist/db.js +12 -6
  10. package/dist/db.js.map +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +13 -13
  13. package/dist/index.js.map +1 -1
  14. package/dist/inspect.d.ts.map +1 -1
  15. package/dist/inspect.js +598 -62
  16. package/dist/inspect.js.map +1 -1
  17. package/dist/lib.d.ts +4 -1
  18. package/dist/lib.d.ts.map +1 -1
  19. package/dist/lib.js +1 -1
  20. package/dist/lib.js.map +1 -1
  21. package/dist/mcp.d.ts +2 -1
  22. package/dist/mcp.d.ts.map +1 -1
  23. package/dist/mcp.js +356 -5
  24. package/dist/mcp.js.map +1 -1
  25. package/dist/operational-lifecycle.d.ts +12 -0
  26. package/dist/operational-lifecycle.d.ts.map +1 -0
  27. package/dist/operational-lifecycle.js +39 -0
  28. package/dist/operational-lifecycle.js.map +1 -0
  29. package/dist/operational-path.d.ts +3 -0
  30. package/dist/operational-path.d.ts.map +1 -0
  31. package/dist/operational-path.js +26 -0
  32. package/dist/operational-path.js.map +1 -0
  33. package/dist/operational-process.d.ts +78 -0
  34. package/dist/operational-process.d.ts.map +1 -0
  35. package/dist/operational-process.js +228 -0
  36. package/dist/operational-process.js.map +1 -0
  37. package/dist/operational-runner.d.ts +2 -0
  38. package/dist/operational-runner.d.ts.map +1 -0
  39. package/dist/operational-runner.js +168 -0
  40. package/dist/operational-runner.js.map +1 -0
  41. package/dist/outbox.d.ts +14 -6
  42. package/dist/outbox.d.ts.map +1 -1
  43. package/dist/outbox.js +140 -124
  44. package/dist/outbox.js.map +1 -1
  45. package/dist/schedule.d.ts +2 -1
  46. package/dist/schedule.d.ts.map +1 -1
  47. package/dist/schedule.js +79 -81
  48. package/dist/schedule.js.map +1 -1
  49. package/dist/task.d.ts +2 -1
  50. package/dist/task.d.ts.map +1 -1
  51. package/dist/task.js +57 -61
  52. package/dist/task.js.map +1 -1
  53. package/dist/templates/agents.d.ts.map +1 -1
  54. package/dist/templates/agents.js +32 -8
  55. package/dist/templates/agents.js.map +1 -1
  56. package/dist/templates/server.d.ts.map +1 -1
  57. package/dist/templates/server.js +9 -2
  58. package/dist/templates/server.js.map +1 -1
  59. package/dist/templates/shadcn.d.ts.map +1 -1
  60. package/dist/templates/shadcn.js +3 -1
  61. package/dist/templates/shadcn.js.map +1 -1
  62. package/dist/templates/shared.js +1 -1
  63. package/package.json +2 -2
  64. package/skills/app-structure/SKILL.md +26 -7
  65. package/src/choices.ts +22 -0
  66. package/src/db.ts +12 -6
  67. package/src/index.ts +19 -16
  68. package/src/inspect.ts +844 -67
  69. package/src/lib.ts +27 -1
  70. package/src/mcp.ts +459 -4
  71. package/src/operational-lifecycle.ts +56 -0
  72. package/src/operational-path.ts +35 -0
  73. package/src/operational-process.ts +454 -0
  74. package/src/operational-runner.ts +221 -0
  75. package/src/outbox.ts +154 -128
  76. package/src/schedule.ts +84 -89
  77. package/src/task.ts +58 -62
  78. package/src/templates/agents.ts +32 -8
  79. package/src/templates/server.ts +9 -2
  80. package/src/templates/shadcn.ts +3 -1
  81. package/src/templates/shared.ts +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operational-path.d.ts","sourceRoot":"","sources":["../src/operational-path.ts"],"names":[],"mappings":"AAGA,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIzE;AAED,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAgBjB"}
@@ -0,0 +1,26 @@
1
+ import { realpath } from "node:fs/promises";
2
+ import path from "node:path";
3
+ export function isAppRelativeOperationalModulePath(value) {
4
+ if (path.isAbsolute(value) || path.win32.isAbsolute(value))
5
+ return false;
6
+ const normalized = path.posix.normalize(value.replaceAll("\\", "/"));
7
+ return normalized !== ".." && !normalized.startsWith("../");
8
+ }
9
+ export async function resolveAppOperationalModulePath(cwd, modulePath) {
10
+ if (!isAppRelativeOperationalModulePath(modulePath)) {
11
+ throw operationalModuleOutsideAppError();
12
+ }
13
+ const appPath = await realpath(cwd);
14
+ const resolvedModulePath = await realpath(path.resolve(cwd, modulePath));
15
+ const relativePath = path.relative(appPath, resolvedModulePath);
16
+ if (relativePath === ".." ||
17
+ relativePath.startsWith(`..${path.sep}`) ||
18
+ path.isAbsolute(relativePath)) {
19
+ throw operationalModuleOutsideAppError();
20
+ }
21
+ return resolvedModulePath;
22
+ }
23
+ function operationalModuleOutsideAppError() {
24
+ return new Error("Registry modules must stay inside the Beignet app directory.");
25
+ }
26
+ //# sourceMappingURL=operational-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operational-path.js","sourceRoot":"","sources":["../src/operational-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,kCAAkC,CAAC,KAAa;IAC9D,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACrE,OAAO,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,GAAW,EACX,UAAkB;IAElB,IAAI,CAAC,kCAAkC,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,gCAAgC,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAChE,IACE,YAAY,KAAK,IAAI;QACrB,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAC7B,CAAC;QACD,MAAM,gCAAgC,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,SAAS,gCAAgC;IACvC,OAAO,IAAI,KAAK,CACd,8DAA8D,CAC/D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,78 @@
1
+ import type { OutboxMessageKind, OutboxMessageStatus } from "@beignet/core/outbox";
2
+ export { isAppRelativeOperationalModulePath } from "./operational-path.js";
3
+ /** Default timeout used by MCP operational command tools. */
4
+ export declare const defaultOperationalCommandTimeoutMs: number;
5
+ /** Maximum structured result size returned by an MCP operational command. */
6
+ export declare const defaultOperationalResultMaxBytes: number;
7
+ /** Maximum diagnostic output retained per MCP operational child stream. */
8
+ export declare const defaultOperationalLogMaxBytes: number;
9
+ export type OperationalCommandRequest = {
10
+ command: "task:run";
11
+ name: string;
12
+ input?: unknown;
13
+ tenant?: string;
14
+ modulePath?: string;
15
+ } | {
16
+ command: "schedule:run";
17
+ name: string;
18
+ payload?: unknown;
19
+ id?: string;
20
+ attempt?: number;
21
+ scheduledAt?: string;
22
+ triggeredAt?: string;
23
+ source?: string;
24
+ modulePath?: string;
25
+ } | {
26
+ command: "outbox:drain";
27
+ batchSize?: number;
28
+ modulePath?: string;
29
+ } | {
30
+ command: "outbox:list";
31
+ status?: OutboxMessageStatus;
32
+ kind?: OutboxMessageKind;
33
+ name?: string;
34
+ limit?: number;
35
+ modulePath?: string;
36
+ } | {
37
+ command: "outbox:show";
38
+ id: string;
39
+ modulePath?: string;
40
+ } | {
41
+ command: "outbox:requeue";
42
+ id: string;
43
+ availableAt?: string;
44
+ resetAttempts?: boolean;
45
+ modulePath?: string;
46
+ } | {
47
+ command: "outbox:purge";
48
+ before?: string;
49
+ all?: boolean;
50
+ limit?: number;
51
+ dryRun?: boolean;
52
+ modulePath?: string;
53
+ } | {
54
+ command: "outbox:prune";
55
+ before: string;
56
+ limit?: number;
57
+ dryRun?: boolean;
58
+ modulePath?: string;
59
+ };
60
+ export type RunIsolatedOperationalCommandOptions = {
61
+ cwd: string;
62
+ request: OperationalCommandRequest;
63
+ signal?: AbortSignal;
64
+ timeoutMs?: number;
65
+ maxResultBytes?: number;
66
+ maxLogBytes?: number;
67
+ executable?: string;
68
+ runnerPath?: string;
69
+ };
70
+ /**
71
+ * Run app-owned operational code outside the long-lived MCP process.
72
+ *
73
+ * The child writes its structured result to a private response file so app
74
+ * logs cannot corrupt the JSON channel. Process-group ownership gives MCP
75
+ * cancellation and timeouts a real lifecycle boundary.
76
+ */
77
+ export declare function runIsolatedOperationalCommand(options: RunIsolatedOperationalCommandOptions): Promise<unknown>;
78
+ //# sourceMappingURL=operational-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operational-process.d.ts","sourceRoot":"","sources":["../src/operational-process.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,kCAAkC,EAAE,MAAM,uBAAuB,CAAC;AAE3E,6DAA6D;AAC7D,eAAO,MAAM,kCAAkC,QAAkB,CAAC;AAClE,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC,QAAa,CAAC;AAC3D,2EAA2E;AAC3E,eAAO,MAAM,6BAA6B,QAAY,CAAC;AAEvD,MAAM,MAAM,yBAAyB,GACjC;IACE,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,EAAE,aAAa,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN,MAAM,MAAM,oCAAoC,GAAG;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,yBAAyB,CAAC;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAMF;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,OAAO,CAAC,CAwIlB"}
@@ -0,0 +1,228 @@
1
+ import { existsSync } from "node:fs";
2
+ import { mkdtemp, open, rm, writeFile } from "node:fs/promises";
3
+ import { tmpdir } from "node:os";
4
+ import path from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+ import { spawnCommand } from "./db.js";
7
+ import { isAppRelativeOperationalModulePath, resolveAppOperationalModulePath, } from "./operational-path.js";
8
+ export { isAppRelativeOperationalModulePath } from "./operational-path.js";
9
+ /** Default timeout used by MCP operational command tools. */
10
+ export const defaultOperationalCommandTimeoutMs = 10 * 60 * 1_000;
11
+ /** Maximum structured result size returned by an MCP operational command. */
12
+ export const defaultOperationalResultMaxBytes = 256 * 1024;
13
+ /** Maximum diagnostic output retained per MCP operational child stream. */
14
+ export const defaultOperationalLogMaxBytes = 64 * 1024;
15
+ /**
16
+ * Run app-owned operational code outside the long-lived MCP process.
17
+ *
18
+ * The child writes its structured result to a private response file so app
19
+ * logs cannot corrupt the JSON channel. Process-group ownership gives MCP
20
+ * cancellation and timeouts a real lifecycle boundary.
21
+ */
22
+ export async function runIsolatedOperationalCommand(options) {
23
+ options.signal?.throwIfAborted();
24
+ const cwd = path.resolve(options.cwd);
25
+ if (options.request.modulePath !== undefined &&
26
+ !isAppRelativeOperationalModulePath(options.request.modulePath)) {
27
+ throw new Error("Registry modules must stay inside the Beignet app directory.");
28
+ }
29
+ await assertOperationalModuleInsideApp(cwd, options.request.modulePath);
30
+ const maxResultBytes = normalizeOperationalResultLimit(options.maxResultBytes ?? defaultOperationalResultMaxBytes);
31
+ const temporaryDirectory = await mkdtemp(path.join(tmpdir(), "beignet-operational-"));
32
+ const requestPath = path.join(temporaryDirectory, "request.json");
33
+ const responsePath = path.join(temporaryDirectory, "response.json");
34
+ let operationError;
35
+ let operationCompleted = false;
36
+ let operationResult;
37
+ try {
38
+ await writeFile(requestPath, JSON.stringify({ cwd, request: options.request, maxResultBytes }), { mode: 0o600 });
39
+ options.signal?.throwIfAborted();
40
+ const commandResult = await spawnCommand(options.executable ?? process.execPath, [
41
+ options.runnerPath ?? resolveOperationalRunnerPath(),
42
+ requestPath,
43
+ responsePath,
44
+ ], cwd, {
45
+ captureOutput: true,
46
+ maxOutputBytes: options.maxLogBytes ?? defaultOperationalLogMaxBytes,
47
+ signal: options.signal,
48
+ timeoutMs: options.timeoutMs ?? defaultOperationalCommandTimeoutMs,
49
+ });
50
+ if (commandResult.timedOut) {
51
+ throw new Error(boundOperationalMessage(appendOperationalDiagnostics(`Operational command ${options.request.command} timed out after ${options.timeoutMs ?? defaultOperationalCommandTimeoutMs}ms. The operation may have applied partial side effects; inspect app state before retrying.`, commandResult), maxResultBytes));
52
+ }
53
+ let response;
54
+ try {
55
+ response = await readOperationalResponse(responsePath, maxResultBytes, options.request.command);
56
+ }
57
+ catch (error) {
58
+ if (commandResult.exitCode !== 0) {
59
+ throw new Error(boundOperationalMessage(operationalChildFailureMessage(options.request.command, commandResult, error instanceof Error ? error.message : String(error)), maxResultBytes));
60
+ }
61
+ throw error;
62
+ }
63
+ if (!response.ok) {
64
+ throw new Error(boundOperationalMessage(operationalResponseFailureMessage(options.request.command, response, commandResult), maxResultBytes));
65
+ }
66
+ if (commandResult.exitCode !== 0) {
67
+ throw new Error(boundOperationalMessage(operationalCompletedChildFailureMessage(options.request.command, commandResult), maxResultBytes));
68
+ }
69
+ operationCompleted = true;
70
+ operationResult = response.result;
71
+ }
72
+ catch (error) {
73
+ operationError = error instanceof Error ? error : new Error(String(error));
74
+ }
75
+ let cleanupError;
76
+ try {
77
+ await rm(temporaryDirectory, { recursive: true, force: true });
78
+ }
79
+ catch (error) {
80
+ cleanupError = error instanceof Error ? error : new Error(String(error));
81
+ }
82
+ if (operationError) {
83
+ throw operationError;
84
+ }
85
+ if (cleanupError) {
86
+ if (operationCompleted) {
87
+ throw new Error(boundOperationalMessage(`Operational command ${options.request.command} completed and returned a result. Do not retry automatically; inspect app state first. Temporary-file cleanup failed: ${cleanupError.message}`, maxResultBytes), { cause: cleanupError });
88
+ }
89
+ throw cleanupError;
90
+ }
91
+ return operationResult;
92
+ }
93
+ async function assertOperationalModuleInsideApp(cwd, modulePath) {
94
+ if (modulePath === undefined)
95
+ return;
96
+ try {
97
+ await resolveAppOperationalModulePath(cwd, modulePath);
98
+ }
99
+ catch (error) {
100
+ if (error.code !== "ENOENT")
101
+ throw error;
102
+ // The worker owns canonical missing, unreadable, and malformed-module
103
+ // diagnostics. A path that cannot resolve here cannot be imported before
104
+ // the worker performs those checks.
105
+ return;
106
+ }
107
+ }
108
+ async function readOperationalResponse(responsePath, maxResultBytes, command) {
109
+ let responseFile;
110
+ try {
111
+ responseFile = await open(responsePath, "r");
112
+ }
113
+ catch (error) {
114
+ if (error.code === "ENOENT") {
115
+ throw new Error(`The ${command} worker exited without a structured result. Its outcome is unknown; inspect app state before retrying.`);
116
+ }
117
+ throw error;
118
+ }
119
+ let responseSource;
120
+ try {
121
+ const responseSize = (await responseFile.stat()).size;
122
+ if (responseSize > maxResultBytes) {
123
+ throw oversizedOperationalResponse(command, responseSize, maxResultBytes);
124
+ }
125
+ const response = Buffer.alloc(maxResultBytes + 1);
126
+ let bytesRead = 0;
127
+ while (bytesRead < response.byteLength) {
128
+ const chunk = await responseFile.read(response, bytesRead, response.byteLength - bytesRead, bytesRead);
129
+ if (chunk.bytesRead === 0)
130
+ break;
131
+ bytesRead += chunk.bytesRead;
132
+ }
133
+ if (bytesRead > maxResultBytes) {
134
+ throw oversizedOperationalResponse(command, bytesRead, maxResultBytes);
135
+ }
136
+ responseSource = response.subarray(0, bytesRead).toString("utf8");
137
+ }
138
+ finally {
139
+ await responseFile.close();
140
+ }
141
+ let parsed;
142
+ try {
143
+ parsed = JSON.parse(responseSource);
144
+ }
145
+ catch {
146
+ throw new Error(`The ${command} worker returned invalid structured JSON. Its outcome is unknown; inspect app state before retrying.`);
147
+ }
148
+ if (parsed.ok === true && "result" in parsed) {
149
+ return { ok: true, result: parsed.result };
150
+ }
151
+ if (parsed.ok === false && typeof parsed.error === "string") {
152
+ return {
153
+ ok: false,
154
+ error: parsed.error,
155
+ ...(parsed.operationCompleted === true
156
+ ? { operationCompleted: true }
157
+ : {}),
158
+ };
159
+ }
160
+ throw new Error(`The ${command} worker returned an invalid structured result. Its outcome is unknown; inspect app state before retrying.`);
161
+ }
162
+ function oversizedOperationalResponse(command, responseSize, maxResultBytes) {
163
+ return new Error(`The ${command} worker returned at least ${responseSize} bytes, exceeding the ${maxResultBytes}-byte MCP result limit. Its outcome is unknown; inspect app state before retrying.`);
164
+ }
165
+ function resolveOperationalRunnerPath() {
166
+ const javascriptPath = fileURLToPath(new URL("./operational-runner.js", import.meta.url));
167
+ if (existsSync(javascriptPath))
168
+ return javascriptPath;
169
+ return fileURLToPath(new URL("./operational-runner.ts", import.meta.url));
170
+ }
171
+ function operationalChildFailureMessage(command, result, responseError) {
172
+ const truncation = result.outputTruncated ? " (output truncated)" : "";
173
+ const message = responseError
174
+ ? `Operational command ${command} exited ${result.exitCode}${truncation} before returning a usable result: ${responseError}`
175
+ : `Operational command ${command} exited ${result.exitCode}${truncation}.`;
176
+ return appendOperationalDiagnostics(message, result);
177
+ }
178
+ function operationalCompletedChildFailureMessage(command, result) {
179
+ const truncation = result.outputTruncated ? " (output truncated)" : "";
180
+ return appendOperationalDiagnostics(`Operational command ${command} completed and returned a result, but its worker exited ${result.exitCode}${truncation}. Do not retry automatically; inspect app state and the worker diagnostics first.`, result);
181
+ }
182
+ function operationalResponseFailureMessage(command, response, result) {
183
+ const message = response.operationCompleted
184
+ ? `Operational command ${command} completed successfully, but its result could not be returned: ${response.error} Do not retry automatically; inspect app state first.`
185
+ : `Operational command ${command} failed: ${response.error}${operationalCommandMayMutate(command)
186
+ ? " The operation may have applied partial side effects; inspect app state before retrying."
187
+ : ""}`;
188
+ return appendOperationalDiagnostics(message, result);
189
+ }
190
+ function operationalCommandMayMutate(command) {
191
+ return command !== "outbox:list" && command !== "outbox:show";
192
+ }
193
+ function appendOperationalDiagnostics(message, result) {
194
+ const diagnostics = [
195
+ result.stderr?.trim()
196
+ ? `Child stderr:\n${result.stderr.trim()}`
197
+ : undefined,
198
+ result.stdout?.trim()
199
+ ? `Child stdout:\n${result.stdout.trim()}`
200
+ : undefined,
201
+ ].filter((value) => Boolean(value));
202
+ if (diagnostics.length === 0)
203
+ return message;
204
+ return `${message}\n\n${diagnostics.join("\n\n")}${result.outputTruncated ? "\n\n[Child output truncated.]" : ""}`;
205
+ }
206
+ function boundOperationalMessage(message, maxBytes) {
207
+ if (Buffer.byteLength(message) <= maxBytes)
208
+ return message;
209
+ const suffix = "\n\n[Operational error output truncated.]";
210
+ const suffixBytes = Buffer.byteLength(suffix);
211
+ if (suffixBytes >= maxBytes) {
212
+ return Buffer.from(suffix).subarray(0, maxBytes).toString("utf8");
213
+ }
214
+ let prefix = Buffer.from(message)
215
+ .subarray(0, maxBytes - suffixBytes)
216
+ .toString("utf8");
217
+ while (Buffer.byteLength(prefix) + suffixBytes > maxBytes) {
218
+ prefix = prefix.slice(0, -1);
219
+ }
220
+ return `${prefix}${suffix}`;
221
+ }
222
+ function normalizeOperationalResultLimit(value) {
223
+ if (!Number.isSafeInteger(value) || value < 256) {
224
+ throw new Error("Maximum operational result bytes must be an integer of at least 256.");
225
+ }
226
+ return value;
227
+ }
228
+ //# sourceMappingURL=operational-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operational-process.js","sourceRoot":"","sources":["../src/operational-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=operational-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operational-runner.d.ts","sourceRoot":"","sources":["../src/operational-runner.ts"],"names":[],"mappings":""}
@@ -0,0 +1,168 @@
1
+ import { readFile, writeFile } from "node:fs/promises";
2
+ import { isOperationalCleanupAfterCompletionError } from "./operational-lifecycle.js";
3
+ import { runOutboxDrain, runOutboxList, runOutboxPrune, runOutboxPurge, runOutboxRequeue, runOutboxShow, } from "./outbox.js";
4
+ import { runAppSchedule } from "./schedule.js";
5
+ import { runAppTask } from "./task.js";
6
+ const fallbackMaxResultBytes = 256 * 1024;
7
+ async function runOperationalRequest(input) {
8
+ const { cwd, request } = input;
9
+ switch (request.command) {
10
+ case "task:run":
11
+ return runAppTask({
12
+ cwd,
13
+ name: request.name,
14
+ input: request.input,
15
+ tenant: request.tenant,
16
+ modulePath: request.modulePath,
17
+ });
18
+ case "schedule:run":
19
+ return runAppSchedule({
20
+ cwd,
21
+ name: request.name,
22
+ payload: request.payload,
23
+ id: request.id,
24
+ attempt: request.attempt,
25
+ scheduledAt: request.scheduledAt,
26
+ triggeredAt: request.triggeredAt,
27
+ source: request.source,
28
+ modulePath: request.modulePath,
29
+ });
30
+ case "outbox:drain":
31
+ return runOutboxDrain({
32
+ cwd,
33
+ batchSize: request.batchSize,
34
+ modulePath: request.modulePath,
35
+ });
36
+ case "outbox:list":
37
+ return runOutboxList({
38
+ cwd,
39
+ status: request.status,
40
+ kind: request.kind,
41
+ name: request.name,
42
+ limit: request.limit,
43
+ modulePath: request.modulePath,
44
+ });
45
+ case "outbox:show":
46
+ return runOutboxShow({
47
+ cwd,
48
+ id: request.id,
49
+ modulePath: request.modulePath,
50
+ });
51
+ case "outbox:requeue":
52
+ return runOutboxRequeue({
53
+ cwd,
54
+ id: request.id,
55
+ availableAt: request.availableAt === undefined
56
+ ? undefined
57
+ : parseDate(request.availableAt, "availableAt"),
58
+ resetAttempts: request.resetAttempts,
59
+ modulePath: request.modulePath,
60
+ });
61
+ case "outbox:purge":
62
+ return runOutboxPurge({
63
+ cwd,
64
+ before: request.before === undefined
65
+ ? undefined
66
+ : parseDate(request.before, "before"),
67
+ all: request.all,
68
+ limit: request.limit,
69
+ dryRun: request.dryRun,
70
+ modulePath: request.modulePath,
71
+ });
72
+ case "outbox:prune":
73
+ return runOutboxPrune({
74
+ cwd,
75
+ before: parseDate(request.before, "before"),
76
+ limit: request.limit,
77
+ dryRun: request.dryRun,
78
+ modulePath: request.modulePath,
79
+ });
80
+ default:
81
+ return assertNever(request);
82
+ }
83
+ }
84
+ function assertNever(value) {
85
+ throw new Error(`Unsupported operational command "${String(value.command)}".`);
86
+ }
87
+ function parseDate(value, field) {
88
+ const date = new Date(value);
89
+ if (Number.isNaN(date.getTime())) {
90
+ throw new Error(`Invalid ${field} timestamp "${value}".`);
91
+ }
92
+ return date;
93
+ }
94
+ async function main() {
95
+ const [requestPath, responsePath] = process.argv.slice(2);
96
+ if (!requestPath || !responsePath) {
97
+ throw new Error("Operational runner requires request and response file paths.");
98
+ }
99
+ let input;
100
+ try {
101
+ input = JSON.parse(await readFile(requestPath, "utf8"));
102
+ }
103
+ catch (error) {
104
+ await writeFailure(responsePath, error, {
105
+ maxResultBytes: fallbackMaxResultBytes,
106
+ });
107
+ process.exitCode = 1;
108
+ return;
109
+ }
110
+ let result;
111
+ try {
112
+ result = await runOperationalRequest(input);
113
+ }
114
+ catch (error) {
115
+ await writeFailure(responsePath, error, {
116
+ maxResultBytes: input.maxResultBytes,
117
+ operationCompleted: isOperationalCleanupAfterCompletionError(error),
118
+ });
119
+ process.exitCode = 1;
120
+ return;
121
+ }
122
+ try {
123
+ const response = JSON.stringify({ ok: true, result });
124
+ const responseSize = Buffer.byteLength(response);
125
+ if (responseSize > input.maxResultBytes) {
126
+ throw new Error(`Operational command ${input.request.command} returned ${responseSize} bytes, exceeding the ${input.maxResultBytes}-byte MCP result limit. Narrow the operation or reduce its output.`);
127
+ }
128
+ await writeFile(responsePath, response, { mode: 0o600 });
129
+ }
130
+ catch (error) {
131
+ await writeFailure(responsePath, error, {
132
+ maxResultBytes: input.maxResultBytes,
133
+ operationCompleted: true,
134
+ });
135
+ process.exitCode = 1;
136
+ }
137
+ }
138
+ async function writeFailure(responsePath, error, options) {
139
+ await writeFile(responsePath, serializeFailure(error instanceof Error ? error.message : String(error), options), { mode: 0o600 });
140
+ }
141
+ function serializeFailure(error, options) {
142
+ const createResponse = (message) => JSON.stringify({
143
+ ok: false,
144
+ error: message,
145
+ ...(options.operationCompleted ? { operationCompleted: true } : {}),
146
+ });
147
+ const response = createResponse(error);
148
+ if (Buffer.byteLength(response) <= options.maxResultBytes)
149
+ return response;
150
+ const suffix = "\n[Worker error truncated.]";
151
+ let start = 0;
152
+ let end = error.length;
153
+ let bounded = createResponse(suffix.trimStart());
154
+ while (start <= end) {
155
+ const middle = Math.floor((start + end) / 2);
156
+ const candidate = createResponse(`${error.slice(0, middle)}${suffix}`);
157
+ if (Buffer.byteLength(candidate) <= options.maxResultBytes) {
158
+ bounded = candidate;
159
+ start = middle + 1;
160
+ }
161
+ else {
162
+ end = middle - 1;
163
+ }
164
+ }
165
+ return bounded;
166
+ }
167
+ await main();
168
+ //# sourceMappingURL=operational-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operational-runner.js","sourceRoot":"","sources":["../src/operational-runner.ts"],"names":[],"mappings":"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"}
package/dist/outbox.d.ts CHANGED
@@ -98,10 +98,18 @@ export type RunOutboxRequeueResult = {
98
98
  message: OutboxMessage;
99
99
  durationMs: number;
100
100
  };
101
- /**
102
- * Result returned by destructive outbox admin commands.
103
- */
104
- export type RunOutboxDeleteResult = {
101
+ /** Result returned by `beignet outbox purge`. */
102
+ export type RunOutboxPurgeResult = {
103
+ schemaVersion: 1;
104
+ cwd: string;
105
+ modulePath: string;
106
+ dryRun: boolean;
107
+ matched: number;
108
+ deleted: number;
109
+ durationMs: number;
110
+ };
111
+ /** Result returned by `beignet outbox prune`. */
112
+ export type RunOutboxPruneResult = {
105
113
  schemaVersion: 1;
106
114
  cwd: string;
107
115
  modulePath: string;
@@ -129,9 +137,9 @@ export declare function runOutboxRequeue(options: RunOutboxRequeueOptions): Prom
129
137
  /**
130
138
  * Purge dead-lettered outbox messages.
131
139
  */
132
- export declare function runOutboxPurge(options?: RunOutboxPurgeOptions): Promise<RunOutboxDeleteResult>;
140
+ export declare function runOutboxPurge(options?: RunOutboxPurgeOptions): Promise<RunOutboxPurgeResult>;
133
141
  /**
134
142
  * Prune delivered outbox messages.
135
143
  */
136
- export declare function runOutboxPrune(options: RunOutboxPruneOptions): Promise<RunOutboxDeleteResult>;
144
+ export declare function runOutboxPrune(options: RunOutboxPruneOptions): Promise<RunOutboxPruneResult>;
137
145
  //# sourceMappingURL=outbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../src/outbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../src/outbox.ts"],"names":[],"mappings":"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"}