@namzu/sdk 20.4.0 → 21.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/CHANGELOG.md +223 -0
  2. package/dist/bridge/sse/mapper.d.ts +19 -0
  3. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  4. package/dist/bridge/sse/mapper.js +9 -1
  5. package/dist/bridge/sse/mapper.js.map +1 -1
  6. package/dist/contracts/schemas.d.ts +10 -10
  7. package/dist/manager/run/persistence.d.ts +26 -0
  8. package/dist/manager/run/persistence.d.ts.map +1 -1
  9. package/dist/manager/run/persistence.js +40 -0
  10. package/dist/manager/run/persistence.js.map +1 -1
  11. package/dist/public-runtime.d.ts +8 -0
  12. package/dist/public-runtime.d.ts.map +1 -1
  13. package/dist/public-runtime.js +31 -0
  14. package/dist/public-runtime.js.map +1 -1
  15. package/dist/run/command-gate.d.ts +107 -0
  16. package/dist/run/command-gate.d.ts.map +1 -0
  17. package/dist/run/command-gate.js +157 -0
  18. package/dist/run/command-gate.js.map +1 -0
  19. package/dist/run/drain.d.ts +194 -0
  20. package/dist/run/drain.d.ts.map +1 -0
  21. package/dist/run/drain.js +228 -0
  22. package/dist/run/drain.js.map +1 -0
  23. package/dist/run/index.d.ts +8 -0
  24. package/dist/run/index.d.ts.map +1 -1
  25. package/dist/run/index.js +4 -0
  26. package/dist/run/index.js.map +1 -1
  27. package/dist/run/memory-promoter.d.ts +70 -0
  28. package/dist/run/memory-promoter.d.ts.map +1 -0
  29. package/dist/run/memory-promoter.js +117 -0
  30. package/dist/run/memory-promoter.js.map +1 -0
  31. package/dist/run/workspace-fingerprint.d.ts +105 -0
  32. package/dist/run/workspace-fingerprint.d.ts.map +1 -0
  33. package/dist/run/workspace-fingerprint.js +147 -0
  34. package/dist/run/workspace-fingerprint.js.map +1 -0
  35. package/dist/runtime/query/events.d.ts +12 -0
  36. package/dist/runtime/query/events.d.ts.map +1 -1
  37. package/dist/runtime/query/events.js +61 -3
  38. package/dist/runtime/query/events.js.map +1 -1
  39. package/dist/runtime/query/index.d.ts +36 -0
  40. package/dist/runtime/query/index.d.ts.map +1 -1
  41. package/dist/runtime/query/index.js +32 -0
  42. package/dist/runtime/query/index.js.map +1 -1
  43. package/dist/runtime/query/resume-run.d.ts +25 -0
  44. package/dist/runtime/query/resume-run.d.ts.map +1 -1
  45. package/dist/runtime/query/resume-run.js +15 -3
  46. package/dist/runtime/query/resume-run.js.map +1 -1
  47. package/dist/store/index.d.ts +1 -1
  48. package/dist/store/index.d.ts.map +1 -1
  49. package/dist/store/index.js +1 -1
  50. package/dist/store/index.js.map +1 -1
  51. package/dist/store/run/conformance.d.ts +159 -0
  52. package/dist/store/run/conformance.d.ts.map +1 -0
  53. package/dist/store/run/conformance.js +451 -0
  54. package/dist/store/run/conformance.js.map +1 -0
  55. package/dist/store/run/disk.d.ts +30 -2
  56. package/dist/store/run/disk.d.ts.map +1 -1
  57. package/dist/store/run/disk.js +101 -0
  58. package/dist/store/run/disk.js.map +1 -1
  59. package/dist/store/run/memory.d.ts +5 -4
  60. package/dist/store/run/memory.d.ts.map +1 -1
  61. package/dist/store/run/memory.js +30 -1
  62. package/dist/store/run/memory.js.map +1 -1
  63. package/dist/types/doctor/check.d.ts +28 -2
  64. package/dist/types/doctor/check.d.ts.map +1 -1
  65. package/dist/types/run/event-cursor.d.ts +90 -0
  66. package/dist/types/run/event-cursor.d.ts.map +1 -0
  67. package/dist/types/run/event-cursor.js +47 -0
  68. package/dist/types/run/event-cursor.js.map +1 -0
  69. package/dist/types/run/events.d.ts +71 -1
  70. package/dist/types/run/events.d.ts.map +1 -1
  71. package/dist/types/run/events.js.map +1 -1
  72. package/dist/types/run/index.d.ts +1 -0
  73. package/dist/types/run/index.d.ts.map +1 -1
  74. package/dist/types/run/index.js +1 -0
  75. package/dist/types/run/index.js.map +1 -1
  76. package/dist/types/run/store.d.ts +41 -1
  77. package/dist/types/run/store.d.ts.map +1 -1
  78. package/package.json +6 -1
  79. package/src/bridge/sse/mapper.ts +28 -1
  80. package/src/manager/run/persistence.ts +43 -0
  81. package/src/public-runtime.ts +53 -0
  82. package/src/run/command-gate.ts +234 -0
  83. package/src/run/drain.ts +393 -0
  84. package/src/run/index.ts +20 -0
  85. package/src/run/memory-promoter.ts +155 -0
  86. package/src/run/workspace-fingerprint.ts +193 -0
  87. package/src/runtime/query/events.ts +68 -4
  88. package/src/runtime/query/index.ts +87 -0
  89. package/src/runtime/query/resume-run.ts +67 -12
  90. package/src/store/index.ts +1 -1
  91. package/src/store/run/conformance.ts +705 -0
  92. package/src/store/run/disk.ts +106 -2
  93. package/src/store/run/memory.ts +35 -5
  94. package/src/types/doctor/check.ts +28 -2
  95. package/src/types/run/event-cursor.ts +118 -0
  96. package/src/types/run/events.ts +80 -3
  97. package/src/types/run/index.ts +1 -0
  98. package/src/types/run/store.ts +43 -1
@@ -1 +1 @@
1
- {"version":3,"file":"public-runtime.d.ts","sourceRoot":"","sources":["../src/public-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-runtime.d.ts","sourceRoot":"","sources":["../src/public-runtime.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,28 @@ export { prepareReplayState } from './runtime/query/replay/prepare.js';
70
70
  export { listCheckpoints } from './runtime/query/replay/list.js';
71
71
  export { DecisionParser, FallbackResolver } from './runtime/decision/index.js';
72
72
  export { buildLimitConfig, checkLimitsDetailed, createRunReporter, } from './run/index.js';
73
+ // One bounded pass over a queue of durable runs: list what nobody holds,
74
+ // claim it, work it, release it in a `finally`. Every primitive it composes
75
+ // already shipped and nothing composed them, so an approval inbox and a
76
+ // crash sweeper each still needed a host to write the loop — including the
77
+ // two parts a host writes wrong, the release on the failure path and the
78
+ // `null` claim that is not one. Not a daemon: it makes one pass and returns.
79
+ export { DEFAULT_DRAIN_PAGE_SIZE, drainRuns } from './run/index.js';
80
+ // A `ReviewAnswer` that runs shell commands, so "don't finish until the
81
+ // build passes" needs no TypeScript. `reviewAnswer` was the seam for this
82
+ // and nothing shipped supplied one. Skips re-running a command whose
83
+ // failure the workspace has not changed since — the difference between a
84
+ // bounded loop and one that spends its whole budget confirming a failure it
85
+ // already reported.
86
+ export { DEFAULT_GATE_MAX_RETRIES, DEFAULT_GATE_OUTPUT_CHARS, DEFAULT_GATE_TIMEOUT_MS, FINGERPRINT_MAX_BYTES, FINGERPRINT_TIMEOUT_MS, clipOutput, createCommandGate, fingerprintWorkspace, } from './run/index.js';
87
+ // The default `promoteMemory`: write what a run learned into a MemoryStore,
88
+ // or write NOTHING. The hook was invoked at settle with the compaction
89
+ // extractor's already-structured output and no shipped app supplied it, so
90
+ // that structure was serialized into one system message and dropped when
91
+ // the run ended. A run that learned nothing leaves no record at all — the
92
+ // model reads this store, so noise here is context spent on a run that did
93
+ // nothing.
94
+ export { RUN_MEMORY_TAG, createMemoryPromoter } from './run/index.js';
73
95
  // ─── personas, skills, advisory ──────────────────────────────────────────
74
96
  export { assembleSystemPrompt, mergePersonas, withSessionContext, } from './persona/index.js';
75
97
  export { discoverSkills, loadSkill, resolveSkillChain, SkillRegistry, } from './skills/index.js';
@@ -109,6 +131,15 @@ export { assertContiguousListingScope, listDurableRuns, paginateDurableRuns, toD
109
131
  // two workers restore one checkpoint, both run its tools and both write under
110
132
  // one run id — which loses half the work and reports nothing.
111
133
  export { claimRun, fencedOut, releaseRun, toClaimSummary } from './store/index.js';
134
+ // Reading a run's durable event log back — what a consumer that lost its
135
+ // connection catches up through. `readRunEventsIn` takes a directory rather
136
+ // than a bound store because binding one CREATES the run directory, and a read
137
+ // that mints an empty run then reports it as having no events is worse than an
138
+ // error. `resolveRunEventReplay` decides what a cursor is owed, and REFUSES
139
+ // rather than delivering a partial catch-up a consumer would fold into its
140
+ // state without knowing it had a hole in it.
141
+ export { readRunEventsIn } from './store/index.js';
142
+ export { resolveRunEventReplay } from './types/run/event-cursor.js';
112
143
  export { AgentRegistry, ManagedRegistry, PluginRegistry, Registry, ToolCatalog, ToolNameCollisionError, ToolRegistry, createToolCatalogFromRegistry, loadingFromAvailability, toolDefinitionToCatalogEntry, } from './registry/index.js';
113
144
  export { discoverAllPluginDirs, discoverPlugins, loadPluginManifest, PluginLifecycleManager, PluginResolver, } from './plugin/index.js';
114
145
  export { AgentManager, EmergencySaveManager, PlanManager, ProjectManager,
@@ -1 +1 @@
1
- {"version":3,"file":"public-runtime.js","sourceRoot":"","sources":["../src/public-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-runtime.js","sourceRoot":"","sources":["../src/public-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * A {@link ReviewAnswer} that runs shell commands and hands the failure back.
3
+ *
4
+ * `reviewAnswer` was the seam for exactly this — judge the answer at the point
5
+ * the model stops calling tools, and return it with feedback instead of
6
+ * settling — and nothing shipped supplied one, so an operator who wanted
7
+ * "don't finish until the build passes" had to write TypeScript. This is the
8
+ * supplier. With it, `--gate 'pnpm test'` is the whole unattended story: the
9
+ * model works, stops, the tests run, and a failure comes back as the next user
10
+ * turn rather than as a green run somebody discovers in CI.
11
+ *
12
+ * The kernel already bounds it. The reviewer is consulted only when the model
13
+ * stopped calling tools, never on the forced-final turn, and a rejection
14
+ * budget stops the run with `answer_rejected` — a stop reason that names the
15
+ * reviewer rather than blaming a token budget. None of that is re-implemented
16
+ * here.
17
+ *
18
+ * ## The part that is not just "run a command"
19
+ *
20
+ * **Before re-running a command that already failed, the workspace is
21
+ * fingerprinted, and an identical fingerprint means the command is NOT run.**
22
+ *
23
+ * This is the difference between a bounded loop and one that spends its whole
24
+ * budget. A model that has run out of ideas answers again without editing
25
+ * anything; re-running the suite then costs a full execution — often the most
26
+ * expensive thing in the loop — to produce a failure already known character
27
+ * for character. Worse, the feedback is identical, so the model is handed the
28
+ * same prompt that just failed to help it. Saying instead "the workspace has
29
+ * not changed since that failure; edit something before trying to finish"
30
+ * is both cheaper and a different instruction.
31
+ *
32
+ * The attempt still advances. Skipping the command is a saving, not a pardon:
33
+ * an answer that changed nothing has been rejected, and the run's budget must
34
+ * see that or a stuck model loops forever for free.
35
+ *
36
+ * And it fails open on the cheap side. No fingerprint — a git invocation that
37
+ * errored, a timeout, output past the cap, a tree with no commits — means the
38
+ * command runs. See {@link fingerprintWorkspace}: the cost of re-running
39
+ * unnecessarily is one execution; the cost of wrongly skipping is a
40
+ * verification that silently did not happen.
41
+ */
42
+ import type { CommandOptions, CommandResult } from '../types/execution/index.js';
43
+ import type { ReviewAnswer } from '../types/run/answer-review.js';
44
+ /** How the gate runs a command. Injected so a test needs no shell. */
45
+ export type GateExec = (command: string, args: string[], options?: CommandOptions) => Promise<CommandResult>;
46
+ /** Default per-command deadline. A test suite is allowed to be slow. */
47
+ export declare const DEFAULT_GATE_TIMEOUT_MS = 600000;
48
+ /** How many attempts the gate will EXECUTE its commands for, by default. */
49
+ export declare const DEFAULT_GATE_MAX_RETRIES = 3;
50
+ /**
51
+ * Model-visible characters of a failing command's output.
52
+ *
53
+ * Head and tail, not head alone: a compiler names the file at the top and a
54
+ * test runner names the failure at the bottom, and a gate that only ever kept
55
+ * one end would be useless for one of them.
56
+ */
57
+ export declare const DEFAULT_GATE_OUTPUT_CHARS = 4000;
58
+ export interface CommandGateOptions {
59
+ /**
60
+ * Shell command lines, run in order, stopping at the first failure.
61
+ *
62
+ * In order and short-circuiting because that is what a person means by
63
+ * "typecheck then test": a type error makes the test output noise about
64
+ * the same cause, and handing the model both invites it to fix the
65
+ * symptom.
66
+ */
67
+ readonly commands: readonly string[];
68
+ /** Directory the commands run in, and the tree that is fingerprinted. */
69
+ readonly cwd: string;
70
+ /**
71
+ * How many attempts will actually EXECUTE the commands.
72
+ *
73
+ * Past it the gate rejects without running anything, naming the
74
+ * exhaustion. It does not accept: an answer that never passed the gate
75
+ * has not passed the gate, and a reviewer that gave up by accepting would
76
+ * hand back a green run over a red build — the exact outcome the gate
77
+ * exists to prevent. What ENDS the run is the kernel's rejection budget,
78
+ * so set that to the same number (the CLI does).
79
+ */
80
+ readonly maxRetries?: number;
81
+ /** Per-command deadline. See {@link DEFAULT_GATE_TIMEOUT_MS}. */
82
+ readonly timeoutMs?: number;
83
+ /** Override the executor. Defaults to a local shell in `cwd`. */
84
+ readonly exec?: GateExec;
85
+ /** See {@link DEFAULT_GATE_OUTPUT_CHARS}. */
86
+ readonly maxOutputChars?: number;
87
+ /**
88
+ * Override the change detector. Defaults to
89
+ * {@link fingerprintWorkspace} over `cwd`.
90
+ *
91
+ * Returning `null` means "cannot tell", and the gate then runs its
92
+ * commands. A detector that returned a constant would silence the gate
93
+ * after its first failure, so this seam exists for tests and for a host
94
+ * whose workspace is not a git tree — not as a way to turn the check off.
95
+ */
96
+ readonly fingerprint?: () => Promise<string | null>;
97
+ }
98
+ /** Head and tail of a command's output, with the middle marked as dropped. */
99
+ export declare function clipOutput(text: string, max: number): string;
100
+ /**
101
+ * Build a reviewer that accepts an answer only when every command passes.
102
+ *
103
+ * Stateful across calls within one run, deliberately: the whole point is that
104
+ * attempt N+1 can be compared with attempt N. Build one gate per run.
105
+ */
106
+ export declare function createCommandGate(options: CommandGateOptions): ReviewAnswer;
107
+ //# sourceMappingURL=command-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-gate.d.ts","sourceRoot":"","sources":["../../src/run/command-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAG/E,sEAAsE;AACtE,MAAM,MAAM,QAAQ,GAAG,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,cAAc,KACpB,OAAO,CAAC,aAAa,CAAC,CAAA;AAE3B,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,SAAU,CAAA;AAE9C,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,IAAI,CAAA;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,OAAQ,CAAA;AAE9C,MAAM,WAAW,kBAAkB;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB;;;;;;;;;OASG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACnD;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAM5D;AA6CD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,YAAY,CAiE3E"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * A {@link ReviewAnswer} that runs shell commands and hands the failure back.
3
+ *
4
+ * `reviewAnswer` was the seam for exactly this — judge the answer at the point
5
+ * the model stops calling tools, and return it with feedback instead of
6
+ * settling — and nothing shipped supplied one, so an operator who wanted
7
+ * "don't finish until the build passes" had to write TypeScript. This is the
8
+ * supplier. With it, `--gate 'pnpm test'` is the whole unattended story: the
9
+ * model works, stops, the tests run, and a failure comes back as the next user
10
+ * turn rather than as a green run somebody discovers in CI.
11
+ *
12
+ * The kernel already bounds it. The reviewer is consulted only when the model
13
+ * stopped calling tools, never on the forced-final turn, and a rejection
14
+ * budget stops the run with `answer_rejected` — a stop reason that names the
15
+ * reviewer rather than blaming a token budget. None of that is re-implemented
16
+ * here.
17
+ *
18
+ * ## The part that is not just "run a command"
19
+ *
20
+ * **Before re-running a command that already failed, the workspace is
21
+ * fingerprinted, and an identical fingerprint means the command is NOT run.**
22
+ *
23
+ * This is the difference between a bounded loop and one that spends its whole
24
+ * budget. A model that has run out of ideas answers again without editing
25
+ * anything; re-running the suite then costs a full execution — often the most
26
+ * expensive thing in the loop — to produce a failure already known character
27
+ * for character. Worse, the feedback is identical, so the model is handed the
28
+ * same prompt that just failed to help it. Saying instead "the workspace has
29
+ * not changed since that failure; edit something before trying to finish"
30
+ * is both cheaper and a different instruction.
31
+ *
32
+ * The attempt still advances. Skipping the command is a saving, not a pardon:
33
+ * an answer that changed nothing has been rejected, and the run's budget must
34
+ * see that or a stuck model loops forever for free.
35
+ *
36
+ * And it fails open on the cheap side. No fingerprint — a git invocation that
37
+ * errored, a timeout, output past the cap, a tree with no commits — means the
38
+ * command runs. See {@link fingerprintWorkspace}: the cost of re-running
39
+ * unnecessarily is one execution; the cost of wrongly skipping is a
40
+ * verification that silently did not happen.
41
+ */
42
+ import { LocalExecutionContext } from '../execution/local.js';
43
+ import { fingerprintWorkspace } from './workspace-fingerprint.js';
44
+ /** Default per-command deadline. A test suite is allowed to be slow. */
45
+ export const DEFAULT_GATE_TIMEOUT_MS = 600_000;
46
+ /** How many attempts the gate will EXECUTE its commands for, by default. */
47
+ export const DEFAULT_GATE_MAX_RETRIES = 3;
48
+ /**
49
+ * Model-visible characters of a failing command's output.
50
+ *
51
+ * Head and tail, not head alone: a compiler names the file at the top and a
52
+ * test runner names the failure at the bottom, and a gate that only ever kept
53
+ * one end would be useless for one of them.
54
+ */
55
+ export const DEFAULT_GATE_OUTPUT_CHARS = 4_000;
56
+ /** Head and tail of a command's output, with the middle marked as dropped. */
57
+ export function clipOutput(text, max) {
58
+ const trimmed = text.trimEnd();
59
+ if (trimmed.length <= max)
60
+ return trimmed;
61
+ const half = Math.floor(max / 2);
62
+ const dropped = trimmed.length - half * 2;
63
+ return `${trimmed.slice(0, half)}\n… ${dropped} characters omitted …\n${trimmed.slice(-half)}`;
64
+ }
65
+ function failureFeedback(command, attempt, result, maxOutputChars) {
66
+ const output = clipOutput(`${result.stdout}\n${result.stderr}`, maxOutputChars);
67
+ return [
68
+ `The answer was not accepted: \`${command}\` failed (attempt ${attempt}, exit ${result.exitCode}).`,
69
+ '',
70
+ 'Output:',
71
+ '```',
72
+ output || '(no output)',
73
+ '```',
74
+ '',
75
+ 'Fix the cause and then finish. Do not restate the failure back to me; change the code so the command passes.',
76
+ ].join('\n');
77
+ }
78
+ function unchangedFeedback(command, attempt) {
79
+ return [
80
+ `The answer was not accepted, and \`${command}\` was NOT re-run (attempt ${attempt}).`,
81
+ '',
82
+ 'The workspace is byte-for-byte identical to what it was when that command last failed — no file was created, edited or deleted since. Running it again would produce the failure you have already been shown.',
83
+ '',
84
+ 'Edit something before trying to finish again. If you believe the change you described was made, verify it by reading the file: it is not on disk.',
85
+ ].join('\n');
86
+ }
87
+ function exhaustedFeedback(command, maxRetries) {
88
+ return [
89
+ `The answer was not accepted: \`${command}\` has failed and this gate has spent its ${maxRetries} attempts.`,
90
+ '',
91
+ 'No further command will be run.',
92
+ ].join('\n');
93
+ }
94
+ /**
95
+ * Build a reviewer that accepts an answer only when every command passes.
96
+ *
97
+ * Stateful across calls within one run, deliberately: the whole point is that
98
+ * attempt N+1 can be compared with attempt N. Build one gate per run.
99
+ */
100
+ export function createCommandGate(options) {
101
+ const { commands, cwd } = options;
102
+ const timeoutMs = options.timeoutMs ?? DEFAULT_GATE_TIMEOUT_MS;
103
+ const maxRetries = options.maxRetries ?? DEFAULT_GATE_MAX_RETRIES;
104
+ const maxOutputChars = options.maxOutputChars ?? DEFAULT_GATE_OUTPUT_CHARS;
105
+ // Built once and reused: constructing a context per attempt would re-stat
106
+ // the directory for no gain, and the context holds nothing per-run.
107
+ const context = new LocalExecutionContext({ id: 'namzu-command-gate', cwd });
108
+ const exec = options.exec ?? ((command, args, opts) => context.executeCommand(command, args, opts));
109
+ const fingerprint = options.fingerprint ?? (() => fingerprintWorkspace({ cwd, exec, timeoutMs: 20_000 }));
110
+ let attempt = 0;
111
+ let last;
112
+ let executions = 0;
113
+ return async () => {
114
+ attempt += 1;
115
+ // A gate that already failed, over a tree nothing has touched since.
116
+ // The command is skipped, and the attempt still counts.
117
+ //
118
+ // The comparison is a bare `===` rather than `now !== null && now ===
119
+ // …`. The guard above already establishes that the recorded
120
+ // fingerprint is non-null, so a `null` from this call cannot match it,
121
+ // and the extra clause was a branch nothing could reach — a mutation
122
+ // that deleted it killed no test, which is what a dead condition looks
123
+ // like from the outside.
124
+ if (last && last.fingerprint !== null) {
125
+ const now = await fingerprint();
126
+ if (now === last.fingerprint) {
127
+ return { accept: false, feedback: unchangedFeedback(last.command, attempt) };
128
+ }
129
+ }
130
+ if (last && executions >= maxRetries) {
131
+ return { accept: false, feedback: exhaustedFeedback(last.command, maxRetries) };
132
+ }
133
+ executions += 1;
134
+ for (const command of commands) {
135
+ // `shell: true` because the operator handed over a command LINE —
136
+ // `pnpm test -- --run`, with its flags and its quoting — and taking
137
+ // that as an executable name plus literal arguments would fail on
138
+ // every gate anyone would actually write. Explicit, per the note on
139
+ // `LocalExecutionContext.executeCommand`: shell interpretation is
140
+ // opt-in, and this is the opt-in.
141
+ const result = await exec(command, [], { cwd, timeoutMs, shell: true });
142
+ if (result.exitCode === 0)
143
+ continue;
144
+ // Taken AFTER the failure, not before the run: the comparison next
145
+ // time is against the tree this verdict was formed over. A snapshot
146
+ // from before the command would miss anything the command itself
147
+ // wrote — a formatter, a snapshot updater, a lockfile.
148
+ last = { command, fingerprint: await fingerprint() };
149
+ return { accept: false, feedback: failureFeedback(command, attempt, result, maxOutputChars) };
150
+ }
151
+ // Cleared, so a later rejection by a DIFFERENT command is not compared
152
+ // against a tree this one failed over.
153
+ last = undefined;
154
+ return { accept: true };
155
+ };
156
+ }
157
+ //# sourceMappingURL=command-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-gate.js","sourceRoot":"","sources":["../../src/run/command-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * One pass over a queue of durable runs: list what nobody holds, take it,
3
+ * hand it to a worker, give it back.
4
+ *
5
+ * Every primitive this composes already shipped —
6
+ * {@link import('../store/run/listing.js').listDurableRuns} enumerates runs
7
+ * above a run id, `claimRun` arbitrates between processes, `releaseRun`
8
+ * returns a run to the queue, and `resumeRun` carries a fence into every
9
+ * durable write. Nothing composed them, so the two things the claim was
10
+ * built for — an approval inbox and a crash sweeper — still required a host
11
+ * to write the loop, and writing it correctly means getting the release
12
+ * into a `finally` and the `null` claim out of the error path. Both are the
13
+ * kind of thing a host gets wrong once, quietly.
14
+ *
15
+ * ## What this deliberately is NOT
16
+ *
17
+ * A supervisor, a daemon, or a scheduler. There is no timer here, no
18
+ * process spawn, no retry backoff and no `while (true)`. `drainRuns` makes
19
+ * ONE bounded pass and returns what happened; running it again is the
20
+ * caller's decision, made wherever that caller already has a scheduler. A
21
+ * per-platform supervisor is the same trade the deployment-adapter matrix
22
+ * was rejected for: one seam beats N adapters.
23
+ *
24
+ * The unit of work is a callback, so this module never needs a provider, a
25
+ * tool registry or a sandbox — the half of a run that cannot be serialized
26
+ * stays with the caller, exactly as `resumeRun` already splits it.
27
+ */
28
+ import type { RunId } from '../types/ids/index.js';
29
+ import type { CheckpointListingScope, CheckpointStore, DurableRunEntry, ParkState, RunClaim } from '../types/run/checkpoint-store.js';
30
+ /** Runs handled per pass when the caller names no page size. */
31
+ export declare const DEFAULT_DRAIN_PAGE_SIZE = 100;
32
+ /**
33
+ * What a drainer does with one run it successfully took.
34
+ *
35
+ * Receives the claim, not just its fence, because the holder and expiry are
36
+ * what a worker needs to decide whether it still has time to start — and
37
+ * because a caller that only ever sees a number tends to forget the lease
38
+ * can lapse under it.
39
+ *
40
+ * The intended body is a resume:
41
+ *
42
+ * ```ts
43
+ * onRun: (entry, claim) =>
44
+ * resumeRun({
45
+ * ...yourQueryParams,
46
+ * scope: { ...entry, threadId },
47
+ * checkpointStore: store,
48
+ * claimFence: claim.fence,
49
+ * })
50
+ * ```
51
+ *
52
+ * `claimFence` is the whole reason the claim is handed over: a write that
53
+ * does not carry it is unfenced, so a worker stalled past its lease would
54
+ * still be able to overwrite the record of whoever took the run over.
55
+ *
56
+ * A throw is recorded against that run and the pass continues. A drainer
57
+ * that died on the first bad run would leave the rest of the queue
58
+ * untouched, which is the failure a queue exists to spread out.
59
+ */
60
+ export type DrainRun = (entry: DurableRunEntry, claim: RunClaim) => void | Promise<void>;
61
+ export interface DrainRunsParams {
62
+ /** Backend to list, claim and release against. Must support all three. */
63
+ readonly store: CheckpointStore;
64
+ /** Contiguous prefix — `tenantId` required. See {@link CheckpointListingScope}. */
65
+ readonly scope: CheckpointListingScope;
66
+ /**
67
+ * Who is taking the runs. Per-PROCESS, never per-deployment: `holder` is
68
+ * the only thing that distinguishes a renewal from a theft, so two
69
+ * drainers sharing a string take live claims from each other instantly.
70
+ */
71
+ readonly holder: string;
72
+ /** Lease length in ms. Long enough that the slowest run finishes inside it. */
73
+ readonly ttlMs: number;
74
+ /** The work. See {@link DrainRun}. */
75
+ readonly onRun: DrainRun;
76
+ /**
77
+ * Keep only runs whose park is in one of these states.
78
+ *
79
+ * **Absent means every run with durable state, parked or not**, and that
80
+ * is not a placeholder default — it is what a crash sweep wants, because
81
+ * a run that died mid-flight never parked and would be invisible under
82
+ * any park filter. An approval inbox passes `['outstanding']`; a
83
+ * reclamation sweep passes `['expired']`.
84
+ */
85
+ readonly park?: readonly ParkState[];
86
+ /**
87
+ * Stop taking new runs. Work already in flight is NOT interrupted — this
88
+ * module owns no run and cannot cancel one; a caller that needs to abort
89
+ * the work itself passes the same signal into whatever `onRun` starts.
90
+ */
91
+ readonly signal?: AbortSignal;
92
+ /**
93
+ * How many runs may be in flight at once. Defaults to 1.
94
+ *
95
+ * Bounded on purpose. The obvious implementation — claim everything, then
96
+ * `Promise.all` — holds N leases while doing one run's worth of work, so
97
+ * the runs at the back of the batch expire before they are started and
98
+ * are taken by somebody else mid-flight.
99
+ */
100
+ readonly maxConcurrent?: number;
101
+ /** Listing page size. See {@link DEFAULT_DRAIN_PAGE_SIZE}. */
102
+ readonly pageSize?: number;
103
+ /**
104
+ * Clock for expiry, so one pass judges every claim against one instant
105
+ * and a test does not have to wait out a lease.
106
+ */
107
+ readonly now?: number;
108
+ }
109
+ /** A run a pass could not finish, and why. */
110
+ export interface DrainFailure {
111
+ readonly runId: RunId;
112
+ readonly error: string;
113
+ }
114
+ /** What one pass did. */
115
+ export interface DrainRunsResult {
116
+ /** Rows the listing returned, before any of them were contended for. */
117
+ readonly listed: number;
118
+ /** Runs whose `onRun` returned. */
119
+ readonly drained: readonly RunId[];
120
+ /**
121
+ * Runs another worker held. Not failures: "somebody got there first" is
122
+ * the ordinary outcome of a queue with more than one reader.
123
+ */
124
+ readonly skipped: readonly RunId[];
125
+ /**
126
+ * Runs that stopped matching {@link DrainRunsParams.park} between the
127
+ * listing and the claim, and were given straight back.
128
+ *
129
+ * Separate from {@link DrainRunsResult.skipped} because the cause is
130
+ * different and so is what an operator should do about a lot of them: a
131
+ * skip means another drainer is holding runs right now, a stale entry
132
+ * means another drainer already FINISHED one. Empty on a pass with no
133
+ * park filter, which has nothing to re-check against.
134
+ */
135
+ readonly stale: readonly RunId[];
136
+ /** Runs whose `onRun` threw. */
137
+ readonly failed: readonly DrainFailure[];
138
+ /**
139
+ * Runs that finished but whose lease could not be handed back.
140
+ *
141
+ * Separate from {@link DrainRunsResult.failed} because it is a different
142
+ * fact with a different consequence: the work is done and the record is
143
+ * written; the run is merely unavailable to the next reader until the
144
+ * lease lapses. Reported rather than swallowed — a release that quietly
145
+ * did nothing is how a queue silently loses throughput.
146
+ */
147
+ readonly unreleased: readonly DrainFailure[];
148
+ /** Whether the pass stopped early because the signal aborted. */
149
+ readonly stopped: boolean;
150
+ }
151
+ /**
152
+ * Take every unclaimed run under a scope, one bounded pass, and give each
153
+ * one back when its work returns.
154
+ *
155
+ * The shape is: list parked-and-unclaimed → claim → work → release in a
156
+ * `finally`. The `finally` is the part a host writes wrong: a worker that
157
+ * returns without releasing leaves the run stuck until the lease lapses,
158
+ * and a worker that releases only on success leaves a FAILED run stuck for
159
+ * the same duration — so a queue quietly loses its throughput to the runs
160
+ * that need retrying most.
161
+ *
162
+ * `claimed: false` is not a parameter. A drainer never wants work somebody
163
+ * else holds; that is what makes it a drainer rather than a listing. An
164
+ * expired claim counts as unheld, which is what makes a dead worker's runs
165
+ * recoverable at all.
166
+ *
167
+ * ## What "exactly once" does and does not mean here
168
+ *
169
+ * Two drainers never hold one run at the same time — that is the claim, and
170
+ * it is absolute. **Exactly-once over a whole pass is a weaker promise, and
171
+ * where it holds it comes from the FILTER, not from the claim.** A listing
172
+ * is a snapshot; between paging a row and claiming it, another drainer can
173
+ * finish that run and release it, and the claim then succeeds on work
174
+ * already done. So a claimed row is re-read against
175
+ * {@link DrainRunsParams.park} before any work starts, and one that no
176
+ * longer matches is given straight back as {@link DrainRunsResult.stale}.
177
+ * An inbox drain (`park: ['outstanding']`) whose work answers the park is
178
+ * therefore exactly-once, because doing the work is what removes the run
179
+ * from the queue.
180
+ *
181
+ * With NO park filter there is nothing to re-check, and two drainers can
182
+ * both process one run. That is not an omission: a checkpoint store holds no
183
+ * run STATUS by design — nothing in it distinguishes a run that finished
184
+ * from one that died — so "already done" is a fact only the host's own run
185
+ * records carry. A crash sweep intersects with those records inside
186
+ * `onRun`, which is the shape {@link DurableRunEntry} already prescribes.
187
+ *
188
+ * @throws NamzuError `capability_unavailable` when the store cannot list,
189
+ * claim or release — before any run is touched.
190
+ * @throws NamzuError `invalid_config` on a lease or concurrency that cannot
191
+ * mean what it says.
192
+ */
193
+ export declare function drainRuns(params: DrainRunsParams): Promise<DrainRunsResult>;
194
+ //# sourceMappingURL=drain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drain.d.ts","sourceRoot":"","sources":["../../src/run/drain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,EACX,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,SAAS,EACT,QAAQ,EACR,MAAM,kCAAkC,CAAA;AAEzC,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExF,MAAM,WAAW,eAAe;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAA;IACtC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;IAExB;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAE7B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAE/B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAED,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,CAAA;IAClC;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,CAAA;IAChC,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;IACxC;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAA;IAC5C,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAgCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAqJjF"}