@namzu/sdk 21.0.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.
- package/CHANGELOG.md +44 -0
- package/dist/public-runtime.d.ts +4 -0
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +15 -0
- package/dist/public-runtime.js.map +1 -1
- package/dist/run/command-gate.d.ts +107 -0
- package/dist/run/command-gate.d.ts.map +1 -0
- package/dist/run/command-gate.js +157 -0
- package/dist/run/command-gate.js.map +1 -0
- package/dist/run/index.d.ts +6 -0
- package/dist/run/index.d.ts.map +1 -1
- package/dist/run/index.js +3 -0
- package/dist/run/index.js.map +1 -1
- package/dist/run/memory-promoter.d.ts +70 -0
- package/dist/run/memory-promoter.d.ts.map +1 -0
- package/dist/run/memory-promoter.js +117 -0
- package/dist/run/memory-promoter.js.map +1 -0
- package/dist/run/workspace-fingerprint.d.ts +105 -0
- package/dist/run/workspace-fingerprint.d.ts.map +1 -0
- package/dist/run/workspace-fingerprint.js +147 -0
- package/dist/run/workspace-fingerprint.js.map +1 -0
- package/package.json +1 -1
- package/src/public-runtime.ts +31 -0
- package/src/run/command-gate.ts +234 -0
- package/src/run/index.ts +17 -0
- package/src/run/memory-promoter.ts +155 -0
- package/src/run/workspace-fingerprint.ts +193 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 21.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- f59a8b0: `--gate '<command>'` — a run that is not allowed to finish on a red build
|
|
8
|
+
|
|
9
|
+
`reviewAnswer` shipped complete: consulted only when the model stops calling tools, never on the forced-final turn, bounded by a rejection budget, with its own terminal state `answer_rejected` so a stop is not mistaken for a token budget running out. **No shipped app supplied one**, so an operator could not use any of it without writing TypeScript.
|
|
10
|
+
|
|
11
|
+
New in `@namzu/sdk`: `createCommandGate({ commands, cwd, maxRetries?, timeoutMs?, exec?, maxOutputChars?, fingerprint? }): ReviewAnswer`. It runs shell command lines in order, stops at the first failure, and hands the failure back as the next user turn naming the command, the attempt, the exit code and a head-and-tail clip of the output.
|
|
12
|
+
|
|
13
|
+
New in `@namzu/cli`: a repeatable `--gate '<command>'` on `run` and `run-stream`, plus `--gate-retries <n>`. Repeating the flag appends rather than replaces — `--gate 'pnpm typecheck' --gate 'pnpm test'` means both, in that order.
|
|
14
|
+
|
|
15
|
+
**The part that makes it a bounded loop rather than one that burns its budget.** Before re-running a command that already failed, the workspace is fingerprinted; if it is byte-for-byte identical to the snapshot taken when that command last failed, the command is **not run**. The attempt still advances and the model is told the workspace has not changed and must edit something before trying to finish — cheaper than a full test run, and a _different_ instruction from repeating a failure it has already been shown.
|
|
16
|
+
|
|
17
|
+
Also new and exported: `fingerprintWorkspace({ cwd, exec, timeoutMs?, maxBytes?, fs? })`. It hashes `git status --porcelain`, `git diff --binary HEAD` and the contents of every untracked file, **recording a symlink as its target rather than reading through it** — a link repointed to a different file with identical bytes is a change, and following it would hash the two the same.
|
|
18
|
+
|
|
19
|
+
It returns `null` — meaning _no fingerprint_ — for a non-zero git exit, a tree with no commits, a timeout, or output past the size cap, and a caller that cannot fingerprint re-runs its command. That direction is deliberate: a wrong `null` costs one execution, while a wrong match is a verification that silently did not happen.
|
|
20
|
+
|
|
21
|
+
A run with no `--gate` is byte-identical to one from before this existed: the option is spread in only when gates were asked for.
|
|
22
|
+
|
|
23
|
+
- 1be00a7: A run now remembers what it worked out, instead of dropping it at settle
|
|
24
|
+
|
|
25
|
+
`promoteMemory` is invoked once when a run settles, with the compaction extractor's already-structured output — decisions, discoveries, user requirements, failures, environment facts, with eviction counts carried rather than hidden. **No shipped app supplied the hook.** So that structure, which the compaction pass spent tokens producing, was serialized into one system message and dropped on the floor when the run ended; the only way into namzu's memory store was the model deciding to call `save_memory`.
|
|
26
|
+
|
|
27
|
+
New in `@namzu/sdk`: `createMemoryPromoter({ store, tags?, maxPerCategory? }): PromoteMemory`, plus `RUN_MEMORY_TAG`. `@namzu/cli` supplies it over the very store its memory tools already use, so what a run learns is what `search_memory` finds on the next one.
|
|
28
|
+
|
|
29
|
+
## What changes for you without asking
|
|
30
|
+
|
|
31
|
+
**This is on by default, and it applies to the interactive TUI as well as to `namzu run` and `namzu run-stream`.** The promoter is supplied from the session every surface is built on, so an ordinary chat session that works something out now leaves a markdown record under `<cwd>/.namzu/memory` when the run settles — a directory that previously only ever grew when the model chose to call `save_memory`. The next session's `search_memory` will find those records, which is the point, and it is also the part you will notice.
|
|
32
|
+
|
|
33
|
+
It is not opt-in because the alternative it replaces is not neutral: a run's extracted knowledge was being discarded at settle, and a flag would mean the default stays the lossy one. What keeps it from being noisy is the filter below — a session that answered a question without deciding, discovering, failing at or being told anything durable writes nothing at all.
|
|
34
|
+
|
|
35
|
+
An SDK embedder can replace or disable it by passing its own `promoteMemory` to `query` — a function that does nothing writes nothing. **The CLI has no flag for it in this release**, which is worth knowing before you upgrade if a written-to `.namzu/memory` is a problem for your setup; say so and it becomes one.
|
|
36
|
+
|
|
37
|
+
**The filter is the whole decision, and it is strict.** A run that learned nothing leaves **no record at all** — not an empty one, not one whose body says "no decisions". Only the five knowledge categories count: user requirements, decisions, discoveries, failures, environment. Not `task`, which every run has because it is the prompt restated; not `files`, which every run that opened anything has and which says what was _touched_ rather than what was _learned_. The model reads this store on later runs, so a record per run is not merely wasted disk — it is context spent on runs that discovered nothing.
|
|
38
|
+
|
|
39
|
+
Records are markdown, tagged `run-memory`, and carry the forming run's id in their metadata so a surprising memory can be checked against what actually happened. Eviction counts are rendered, because somebody reading the record should know they are reading a truncated account of the run.
|
|
40
|
+
|
|
41
|
+
The promoter deliberately does **not** catch its own failures: the runtime already catches and logs a promoter throw at settle without touching the answer, and catching here as well would hide a broken store from the one place that reports it.
|
|
42
|
+
|
|
43
|
+
It also does not deduplicate, merge with a previous run's record, or expire anything. Each is a policy with real trade-offs, and `promoteMemory` is a callback precisely so the runtime does not decide them — this is the obvious default, not the only possible one. Pass your own `PromoteMemory` to `query` to replace it.
|
|
44
|
+
|
|
45
|
+
Sub-agents do not promote. A parent that delegated six times would otherwise leave seven accounts of one piece of work for the next run to read; the parent's settle speaks for the whole task.
|
|
46
|
+
|
|
3
47
|
## 21.0.0
|
|
4
48
|
|
|
5
49
|
### Major Changes
|
package/dist/public-runtime.d.ts
CHANGED
|
@@ -41,6 +41,10 @@ export { DecisionParser, FallbackResolver } from './runtime/decision/index.js';
|
|
|
41
41
|
export { buildLimitConfig, checkLimitsDetailed, createRunReporter, } from './run/index.js';
|
|
42
42
|
export { DEFAULT_DRAIN_PAGE_SIZE, drainRuns } from './run/index.js';
|
|
43
43
|
export type { DrainFailure, DrainRun, DrainRunsParams, DrainRunsResult, } from './run/index.js';
|
|
44
|
+
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';
|
|
45
|
+
export type { CommandGateOptions, FingerprintExec, GateExec, WorkspaceFingerprintOptions, } from './run/index.js';
|
|
46
|
+
export { RUN_MEMORY_TAG, createMemoryPromoter } from './run/index.js';
|
|
47
|
+
export type { MemoryPromoterOptions } from './run/index.js';
|
|
44
48
|
export { assembleSystemPrompt, mergePersonas, withSessionContext, } from './persona/index.js';
|
|
45
49
|
export { discoverSkills, loadSkill, resolveSkillChain, SkillRegistry, } from './skills/index.js';
|
|
46
50
|
export { parseFrontmatter } from './utils/frontmatter.js';
|
|
@@ -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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"}
|
package/dist/public-runtime.js
CHANGED
|
@@ -77,6 +77,21 @@ export { buildLimitConfig, checkLimitsDetailed, createRunReporter, } from './run
|
|
|
77
77
|
// two parts a host writes wrong, the release on the failure path and the
|
|
78
78
|
// `null` claim that is not one. Not a daemon: it makes one pass and returns.
|
|
79
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';
|
|
80
95
|
// ─── personas, skills, advisory ──────────────────────────────────────────
|
|
81
96
|
export { assembleSystemPrompt, mergePersonas, withSessionContext, } from './persona/index.js';
|
|
82
97
|
export { discoverSkills, loadSkill, resolveSkillChain, SkillRegistry, } from './skills/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-runtime.js","sourceRoot":"","sources":["../src/public-runtime.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,4EAA4E;AAC5E,mDAAmD;AACnD,EAAE;AACF,2EAA2E;AAC3E,2DAA2D;AAE3D,4EAA4E;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EACN,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,qBAAqB,CAAA;AAE5B,4EAA4E;AAE5E,cAAc,sBAAsB,CAAA;AAEpC,4EAA4E;AAE5E,OAAO,EACN,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,WAAW,EACX,kBAAkB,GAClB,MAAM,wBAAwB,CAAA;AAE/B,cAAc,oBAAoB,CAAA;AAElC,4EAA4E;AAE5E,cAAc,eAAe,CAAA;AAE7B,4EAA4E;AAE5E,OAAO,EACN,cAAc,EACd,aAAa,EACb,UAAU,EACV,SAAS,GACT,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAU,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACvE,OAAO,EACN,mBAAmB,EACnB,uBAAuB,GACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,4EAA4E;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,uEAAuE;AACvE,wEAAwE;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,2EAA2E;AAC3E,kEAAkE;AAClE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACxF,+EAA+E;AAC/E,qEAAqE;AACrE,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAC5F,2EAA2E;AAC3E,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE7E,+EAA+E;AAC/E,+DAA+D;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAG5D,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAC5D,2EAA2E;AAC3E,4EAA4E;AAC5E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAEjG,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EACN,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,4BAA4B,GAC5B,MAAM,+BAA+B,CAAA;AACtC,wEAAwE;AACxE,2EAA2E;AAC3E,sDAAsD;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,yEAAyE;AACzE,qEAAqE;AACrE,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,2EAA2E;AAC3E,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC5E,0EAA0E;AAC1E,iEAAiE;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAKzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9E,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,gBAAgB,CAAA;AACvB,yEAAyE;AACzE,4EAA4E;AAC5E,wEAAwE;AACxE,2EAA2E;AAC3E,yEAAyE;AACzE,6EAA6E;AAC7E,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAQnE,4EAA4E;AAE5E,OAAO,EACN,oBAAoB,EACpB,aAAa,EACb,kBAAkB,GAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACN,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,aAAa,GACb,MAAM,mBAAmB,CAAA;AAC1B,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,sDAAsD;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,4EAA4E;AAC5E,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,4EAA4E;AAC5E,iDAAiD;AACjD,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,0CAA0C;AAC1C,OAAO,EACN,SAAS,EACT,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,GACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACN,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,qBAAqB,CAAA;AAE5B,4EAA4E;AAE5E,OAAO,EACN,aAAa,EACb,yBAAyB,EACzB,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,WAAW;AACX,wEAAwE;AACxE,uEAAuE;AACvE,QAAQ,EACR,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GACf,MAAM,mBAAmB,CAAA;AAE1B,4EAA4E;AAE5E,OAAO,EACN,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,YAAY,GACZ,MAAM,kBAAkB,CAAA;AAEzB,0EAA0E;AAC1E,wEAAwE;AACxE,oEAAoE;AACpE,0EAA0E;AAC1E,8BAA8B;AAC9B,OAAO,EACN,4BAA4B,EAC5B,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,kBAAkB,CAAA;AACzB,wEAAwE;AACxE,6EAA6E;AAC7E,8EAA8E;AAC9E,8DAA8D;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClF,yEAAyE;AACzE,4EAA4E;AAC5E,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,6CAA6C;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,EACN,aAAa,EACb,eAAe,EACf,cAAc,EACd,QAAQ,EACR,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,6BAA6B,EAC7B,uBAAuB,EACvB,4BAA4B,GAC5B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GACd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACN,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,cAAc;AACd,0EAA0E;AAC1E,qEAAqE;AACrE,uEAAuE;AACvE,8DAA8D;AAC9D,kBAAkB,EAClB,cAAc,EACd,aAAa,GACb,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,sEAAsE;AACtE,0EAA0E;AAC1E,+DAA+D;AAC/D,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AAE7F,4EAA4E;AAE5E,OAAO,EACN,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,gCAAgC,EAChC,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,GACjB,MAAM,qBAAqB,CAAA;AAQ5B,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GACtB,MAAM,oBAAoB,CAAA;AAG3B,2EAA2E;AAC3E,4EAA4E;AAC5E,WAAW;AACX,sEAAsE;AACtE,uEAAuE;AACvE,yEAAyE;AACzE,yEAAyE;AACzE,0CAA0C;AAC1C,OAAO,EACN,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,GACnB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAE1D,4EAA4E;AAE5E,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,GACX,MAAM,gBAAgB,CAAA;AAEvB,4EAA4E;AAE5E,OAAO,EACN,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,EAC3B,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,4EAA4E;AAE5E,OAAO,EACN,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,YAAY,GACZ,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACN,mBAAmB,EACnB,uBAAuB,GACvB,MAAM,uBAAuB,CAAA;AAE9B,4EAA4E;AAE5E,OAAO,EACN,QAAQ,EACR,cAAc,EACd,oBAAoB,EACpB,eAAe,GACf,MAAM,gBAAgB,CAAA;AAEvB,0EAA0E;AAC1E,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,8EAA8E;AAC9E,qEAAqE;AACrE,OAAO,EACN,0BAA0B,EAC1B,+BAA+B,EAC/B,YAAY,EACZ,YAAY,EACZ,gBAAgB,GAChB,MAAM,yBAAyB,CAAA;AAEhC,4EAA4E;AAE5E,OAAO,EACN,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,EACL,uBAAuB,EACvB,aAAa,EACb,cAAc,GACd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAGtE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAGhE,kEAAkE;AAClE,yEAAyE;AACzE,iEAAiE;AACjE,yEAAyE;AAEzE,4EAA4E;AAC5E,oEAAoE;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACN,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,GACxB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC7B,0BAA0B,GAC1B,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACN,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,GACzB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACN,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,8BAA8B,EAC9B,2BAA2B,EAC3B,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,WAAW,GACX,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACN,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,GAC1B,MAAM,8BAA8B,CAAA;AAErC,4EAA4E;AAC5E,0EAA0E;AAC1E,qEAAqE;AACrE,qBAAqB;AAErB,OAAO,EACN,kBAAkB;AAClB,qEAAqE;AACrE,uEAAuE;AACvE,kEAAkE;AAClE,uEAAuE;AACvE,0BAA0B;AAC1B,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB;AACjB,4DAA4D;AAC5D,yEAAyE;AACzE,0EAA0E;AAC1E,yEAAyE;AACzE,8CAA8C;AAC9C,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,GACrB,MAAM,qBAAqB,CAAA;AAE5B,6EAA6E;AAE7E,OAAO,EACN,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,aAAa,GACb,MAAM,0BAA0B,CAAA;AAEjC,4EAA4E;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EACN,wBAAwB,EACxB,uBAAuB,GACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,EACN,oBAAoB,EACpB,gBAAgB,GAChB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACN,2BAA2B,EAC3B,mBAAmB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EACN,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACN,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,GAC3B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EACN,wBAAwB,EACxB,mBAAmB;AACnB,kEAAkE;AAClE,qEAAqE;AACrE,qEAAqE;AACrE,sCAAsC;AACtC,0BAA0B,GAC1B,MAAM,0BAA0B,CAAA;AACjC,gFAAgF;AAChF,iFAAiF;AACjF,6EAA6E;AAC7E,2EAA2E;AAC3E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC9E,4EAA4E;AAC5E,sEAAsE;AAEtE,4EAA4E;AAE5E,OAAO,EACN,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,GACnB,MAAM,uBAAuB,CAAA;AAE9B,4EAA4E;AAE5E,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAErE,4EAA4E;AAE5E,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,iBAAiB,CAAA;AAExB,4EAA4E;AAC5E,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,8BAA8B;AAE9B,OAAO,EACN,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GACnB,MAAM,wBAAwB,CAAA;AAG/B,4EAA4E;AAE5E,OAAO,EACN,wBAAwB,EACxB,wBAAwB,GACxB,MAAM,sCAAsC,CAAA;AAE7C,2EAA2E;AAC3E,4EAA4E;AAC5E,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACnF,2EAA2E;AAC3E,wEAAwE;AACxE,4EAA4E;AAC5E,yDAAyD;AACzD,OAAO,EACN,mBAAmB,EACnB,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,QAAQ,GACR,MAAM,2BAA2B,CAAA"}
|
|
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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"}
|
package/dist/run/index.d.ts
CHANGED
|
@@ -4,6 +4,12 @@ export { createRunReporter } from './reporter.js';
|
|
|
4
4
|
export type { RunReporter } from './reporter.js';
|
|
5
5
|
export { DEFAULT_DRAIN_PAGE_SIZE, drainRuns } from './drain.js';
|
|
6
6
|
export type { DrainFailure, DrainRun, DrainRunsParams, DrainRunsResult } from './drain.js';
|
|
7
|
+
export { DEFAULT_GATE_MAX_RETRIES, DEFAULT_GATE_OUTPUT_CHARS, DEFAULT_GATE_TIMEOUT_MS, clipOutput, createCommandGate, } from './command-gate.js';
|
|
8
|
+
export type { CommandGateOptions, GateExec } from './command-gate.js';
|
|
9
|
+
export { FINGERPRINT_MAX_BYTES, FINGERPRINT_TIMEOUT_MS, fingerprintWorkspace, } from './workspace-fingerprint.js';
|
|
10
|
+
export type { FingerprintExec, WorkspaceFingerprintOptions } from './workspace-fingerprint.js';
|
|
7
11
|
export { checkLimitsDetailed, buildLimitConfig } from './LimitChecker.js';
|
|
8
12
|
export type { LimitCheckerState, LimitCheckResult } from './LimitChecker.js';
|
|
13
|
+
export { RUN_MEMORY_TAG, createMemoryPromoter } from './memory-promoter.js';
|
|
14
|
+
export type { MemoryPromoterOptions } from './memory-promoter.js';
|
|
9
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/run/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC/D,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC/D,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC1F,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EACN,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,4BAA4B,CAAA;AACnC,YAAY,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAE9F,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE5E,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3E,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/run/index.js
CHANGED
|
@@ -2,5 +2,8 @@ export { RunPersistence } from '../manager/run/persistence.js';
|
|
|
2
2
|
export { RunDiskStore } from '../store/run/disk.js';
|
|
3
3
|
export { createRunReporter } from './reporter.js';
|
|
4
4
|
export { DEFAULT_DRAIN_PAGE_SIZE, drainRuns } from './drain.js';
|
|
5
|
+
export { DEFAULT_GATE_MAX_RETRIES, DEFAULT_GATE_OUTPUT_CHARS, DEFAULT_GATE_TIMEOUT_MS, clipOutput, createCommandGate, } from './command-gate.js';
|
|
6
|
+
export { FINGERPRINT_MAX_BYTES, FINGERPRINT_TIMEOUT_MS, fingerprintWorkspace, } from './workspace-fingerprint.js';
|
|
5
7
|
export { checkLimitsDetailed, buildLimitConfig } from './LimitChecker.js';
|
|
8
|
+
export { RUN_MEMORY_TAG, createMemoryPromoter } from './memory-promoter.js';
|
|
6
9
|
//# sourceMappingURL=index.js.map
|
package/dist/run/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGjD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGjD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE/D,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GACjB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACN,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGzE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The default {@link PromoteMemory}: write what a run learned into a
|
|
3
|
+
* {@link MemoryStore}, or write nothing at all.
|
|
4
|
+
*
|
|
5
|
+
* `promoteMemory` is called once at settle with the compaction extractor's
|
|
6
|
+
* already-structured output — decisions, discoveries, user requirements,
|
|
7
|
+
* failures, environment facts — and **nothing shipped supplied the hook**.
|
|
8
|
+
* So the structure the compaction pass had spent tokens producing was
|
|
9
|
+
* serialized into one system message and dropped on the floor when the run
|
|
10
|
+
* ended, exactly as its own module comment says. This is the supplier, and
|
|
11
|
+
* it is mostly a filter: the hard part — extracting facts from a transcript
|
|
12
|
+
* — already happened.
|
|
13
|
+
*
|
|
14
|
+
* ## The filter, which is the only decision here
|
|
15
|
+
*
|
|
16
|
+
* **A run that learned nothing must leave nothing.** Not an empty record,
|
|
17
|
+
* not a record whose body says "no decisions" — nothing. A promoter that
|
|
18
|
+
* wrote a row per run would fill the store with the runs least worth
|
|
19
|
+
* remembering, and `search_memory` would then return them: the model reads
|
|
20
|
+
* that store on later runs, so noise here is not merely wasted disk, it is
|
|
21
|
+
* context spent on a run that did nothing.
|
|
22
|
+
*
|
|
23
|
+
* What counts as having learned something is the five KNOWLEDGE categories —
|
|
24
|
+
* decisions, discoveries, user requirements, failures, environment. Not
|
|
25
|
+
* `task`, which every run has because it is the prompt restated. Not
|
|
26
|
+
* `files`, which every run that opened anything has, and which says what was
|
|
27
|
+
* touched rather than what was learned. A run whose only trace is "it read
|
|
28
|
+
* six files" is the exact record this filter exists to refuse.
|
|
29
|
+
*
|
|
30
|
+
* ## What it does NOT do
|
|
31
|
+
*
|
|
32
|
+
* Deduplicate against what is already stored, merge with a previous run's
|
|
33
|
+
* record, or expire anything. Each is a policy with real trade-offs and a
|
|
34
|
+
* host that wants one owns it — `promoteMemory` is a callback precisely so
|
|
35
|
+
* that the runtime does not decide this. This is the obvious default, not
|
|
36
|
+
* the only possible one.
|
|
37
|
+
*/
|
|
38
|
+
import type { MemoryStore } from '../types/memory/index.js';
|
|
39
|
+
import type { PromoteMemory } from '../types/run/memory-promotion.js';
|
|
40
|
+
/** Tag every record this promoter writes, so a host can find or prune them. */
|
|
41
|
+
export declare const RUN_MEMORY_TAG = "run-memory";
|
|
42
|
+
export interface MemoryPromoterOptions {
|
|
43
|
+
/** Where records go. The same store `save_memory` writes through. */
|
|
44
|
+
readonly store: MemoryStore;
|
|
45
|
+
/**
|
|
46
|
+
* Extra tags on every record, beyond {@link RUN_MEMORY_TAG}.
|
|
47
|
+
*
|
|
48
|
+
* A host running several agents against one store uses this to tell whose
|
|
49
|
+
* memory is whose; without it a later search cannot.
|
|
50
|
+
*/
|
|
51
|
+
readonly tags?: readonly string[];
|
|
52
|
+
/**
|
|
53
|
+
* Cap on entries rendered per category. Defaults to 20.
|
|
54
|
+
*
|
|
55
|
+
* The extractor already caps its lists, and this is the second cap for
|
|
56
|
+
* the same reason the first exists: a record nobody will read is a record
|
|
57
|
+
* that costs context every time it is retrieved.
|
|
58
|
+
*/
|
|
59
|
+
readonly maxPerCategory?: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Build a promoter that writes one record per run that learned something.
|
|
63
|
+
*
|
|
64
|
+
* Never throws out to the runtime — but it does not swallow either: the
|
|
65
|
+
* runtime already catches and logs a promoter's failure at settle, and
|
|
66
|
+
* catching here as well would hide a broken store from the one place that
|
|
67
|
+
* reports it.
|
|
68
|
+
*/
|
|
69
|
+
export declare function createMemoryPromoter(options: MemoryPromoterOptions): PromoteMemory;
|
|
70
|
+
//# sourceMappingURL=memory-promoter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-promoter.d.ts","sourceRoot":"","sources":["../../src/run/memory-promoter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,kCAAkC,CAAA;AAkBzF,+EAA+E;AAC/E,eAAO,MAAM,cAAc,eAAe,CAAA;AAE1C,MAAM,WAAW,qBAAqB;IACrC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAChC;AA6CD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAuBlF"}
|