@farmslot/agent-runtime 0.13.0 → 0.14.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 +7 -0
- package/dist/native/registry.d.ts.map +1 -1
- package/dist/native/registry.js +6 -1
- package/dist/native/registry.js.map +1 -1
- package/package.json +2 -2
- package/scripts/acceptance-ledger.cjs +2 -1
- package/scripts/mark-checklist-step.cjs +14 -1
- package/scripts/review-terminal.cjs +6 -1
- package/scripts/subtask-unit.cjs +2 -1
- package/scripts/worker-terminal-contract.cjs +11 -8
- package/dist/execution-template/execution-template.test.d.ts +0 -2
- package/dist/execution-template/execution-template.test.d.ts.map +0 -1
- package/dist/execution-template/execution-template.test.js +0 -795
- package/dist/execution-template/execution-template.test.js.map +0 -1
- package/dist/execution-template/subtask-render-parity.test.d.ts +0 -2
- package/dist/execution-template/subtask-render-parity.test.d.ts.map +0 -1
- package/dist/execution-template/subtask-render-parity.test.js +0 -63
- package/dist/execution-template/subtask-render-parity.test.js.map +0 -1
- package/dist/native/account-observation.test.d.ts +0 -2
- package/dist/native/account-observation.test.d.ts.map +0 -1
- package/dist/native/account-observation.test.js +0 -256
- package/dist/native/account-observation.test.js.map +0 -1
- package/dist/native/account-profiles.test.d.ts +0 -2
- package/dist/native/account-profiles.test.d.ts.map +0 -1
- package/dist/native/account-profiles.test.js +0 -172
- package/dist/native/account-profiles.test.js.map +0 -1
- package/dist/native/acp.test.d.ts +0 -2
- package/dist/native/acp.test.d.ts.map +0 -1
- package/dist/native/acp.test.js +0 -257
- package/dist/native/acp.test.js.map +0 -1
- package/dist/native/affinity.test.d.ts +0 -2
- package/dist/native/affinity.test.d.ts.map +0 -1
- package/dist/native/affinity.test.js +0 -30
- package/dist/native/affinity.test.js.map +0 -1
- package/dist/native/cursor-model.test.d.ts +0 -2
- package/dist/native/cursor-model.test.d.ts.map +0 -1
- package/dist/native/cursor-model.test.js +0 -40
- package/dist/native/cursor-model.test.js.map +0 -1
- package/dist/native/durability.test.d.ts +0 -2
- package/dist/native/durability.test.d.ts.map +0 -1
- package/dist/native/durability.test.js +0 -976
- package/dist/native/durability.test.js.map +0 -1
- package/dist/native/filesystem-policy.test.d.ts +0 -2
- package/dist/native/filesystem-policy.test.d.ts.map +0 -1
- package/dist/native/filesystem-policy.test.js +0 -136
- package/dist/native/filesystem-policy.test.js.map +0 -1
- package/dist/native/process-tree.test.d.ts +0 -2
- package/dist/native/process-tree.test.d.ts.map +0 -1
- package/dist/native/process-tree.test.js +0 -174
- package/dist/native/process-tree.test.js.map +0 -1
- package/dist/native/process.test.d.ts +0 -2
- package/dist/native/process.test.d.ts.map +0 -1
- package/dist/native/process.test.js +0 -56
- package/dist/native/process.test.js.map +0 -1
- package/dist/native/registry.test.d.ts +0 -2
- package/dist/native/registry.test.d.ts.map +0 -1
- package/dist/native/registry.test.js +0 -13
- package/dist/native/registry.test.js.map +0 -1
- package/dist/native/review-sandbox.test.d.ts +0 -2
- package/dist/native/review-sandbox.test.d.ts.map +0 -1
- package/dist/native/review-sandbox.test.js +0 -40
- package/dist/native/review-sandbox.test.js.map +0 -1
- package/dist/native/worker-history.test.d.ts +0 -2
- package/dist/native/worker-history.test.d.ts.map +0 -1
- package/dist/native/worker-history.test.js +0 -195
- package/dist/native/worker-history.test.js.map +0 -1
- package/dist/native/worker-launch.test.d.ts +0 -2
- package/dist/native/worker-launch.test.d.ts.map +0 -1
- package/dist/native/worker-launch.test.js +0 -61
- package/dist/native/worker-launch.test.js.map +0 -1
- package/dist/native/worker-relocation.test.d.ts +0 -2
- package/dist/native/worker-relocation.test.d.ts.map +0 -1
- package/dist/native/worker-relocation.test.js +0 -110
- package/dist/native/worker-relocation.test.js.map +0 -1
- package/dist/task-init/discover.test.d.ts +0 -2
- package/dist/task-init/discover.test.d.ts.map +0 -1
- package/dist/task-init/discover.test.js +0 -58
- package/dist/task-init/discover.test.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
- Active-development baseline; add user-facing changes here before release or package publication.
|
|
6
6
|
|
|
7
|
+
## 0.14.0 - 2026-09-27
|
|
8
|
+
|
|
9
|
+
- Resolve acceptance requirements per worker flow, so fix-bug tasks can require verdicts without blocking review runs.
|
|
10
|
+
- Bind terminal-review task marks to the launch attempt so repeated bootstrap by delegated workers preserves parent identity and checklist progress.
|
|
11
|
+
- Static Claude reviews initialize workspace trust with the launch environment and keep tool-runner scratch files writable inside the review sandbox.
|
|
12
|
+
- The published `dist/` no longer carries compiled test modules. The build config excludes `src/**/*.test.ts`, matching the other workspace packages; 0.13.0 shipped 17 of them (`.js`, `.d.ts` and both maps each) including the native durability and review-sandbox suites.
|
|
13
|
+
|
|
7
14
|
## 0.13.0 - 2026-09-20
|
|
8
15
|
|
|
9
16
|
- `mark N` on a step whose box and timing event are already recorded is a true no-op: it prints `already marked N` and leaves SIGNAL.json untouched instead of rewriting it with a new timestamp. A resume from `blocked`, a box checked by hand, `start` and every terminal mark still write.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/native/registry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAM9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;IAClE,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE;QACP,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjF,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QACzB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;KAChF,CAAC;CACH;AAED,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/native/registry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAM9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;IAClE,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE;QACP,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjF,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QACzB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;KAChF,CAAC;CACH;AAED,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAgF1E,CAAC"}
|
package/dist/native/registry.js
CHANGED
|
@@ -26,7 +26,12 @@ export const nativeRunnerDefinitions = {
|
|
|
26
26
|
},
|
|
27
27
|
claude: {
|
|
28
28
|
supportsReadOnlyWorkspace: hostReviewSandboxAvailable(),
|
|
29
|
-
reviewRuntimeRoots: (env) => [
|
|
29
|
+
reviewRuntimeRoots: (env) => [
|
|
30
|
+
env.CLAUDE_CONFIG_DIR ?? join(env.HOME ?? homedir(), '.claude'),
|
|
31
|
+
// Claude Code creates its tool-runner scratch directory outside
|
|
32
|
+
// CLAUDE_CONFIG_DIR. Keep that state writable inside the review sandbox.
|
|
33
|
+
...(typeof process.getuid === 'function' ? [join('/tmp', `claude-${process.getuid()}`)] : []),
|
|
34
|
+
],
|
|
30
35
|
adapter: claudeNativeAdapter,
|
|
31
36
|
binary: 'claude',
|
|
32
37
|
supportsWorkers: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/native/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAmBjE,sFAAsF;AACtF,MAAM,CAAC,MAAM,uBAAuB,GAA2C;IAC7E,KAAK,EAAE;QACL,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,OAAO;QACf,eAAe,EAAE,IAAI;QACrB,yBAAyB,EAAE,IAAI;QAC/B,aAAa,EAAE,KAAK;QACpB,OAAO,EAAE;YACP,WAAW,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;YACvD,KAAK,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC;YAC1C,SAAS,EAAE,CAAC,OAAO,CAAC;YACpB,OAAO,EAAE,mBAAmB;SAC7B;KACF;IACD,MAAM,EAAE;QACN,yBAAyB,EAAE,0BAA0B,EAAE;QACvD,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/native/registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farmslot/agent-runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"prepublishOnly": "node ../../scripts/quality/check-farmslot-package-readiness.mjs --publish --packages @farmslot/agent-runtime"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@farmslot/protocol": "0.
|
|
48
|
+
"@farmslot/protocol": "0.31.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@types/node": "^22.0.0",
|
|
@@ -3,7 +3,8 @@ const path = require('node:path');
|
|
|
3
3
|
|
|
4
4
|
const { atomicWrite, readJson } = require('./mark-io.cjs');
|
|
5
5
|
|
|
6
|
-
// Acceptance-criteria ledger (ADR-060
|
|
6
|
+
// Acceptance-criteria ledger (ADR-060; contract in docs/reference/agent-runtime.md
|
|
7
|
+
// and docs/reference/task-directory-contract.md).
|
|
7
8
|
//
|
|
8
9
|
// `farmslot-agent ac` is the only writer of artifacts/acceptance-status.json, the
|
|
9
10
|
// way `mark` is the only writer of SIGNAL.json. The ids come from task init, which
|
|
@@ -393,7 +393,9 @@ function assertTerminalPackagedEvidence(taskPath, taskDir, terminalCommand) {
|
|
|
393
393
|
function buildSignalUpdate(signal, terminal, target, timing, events, now, taskPath, _taskDir) {
|
|
394
394
|
const base = {
|
|
395
395
|
...pickSignalPassthrough(signal),
|
|
396
|
-
...(isStartCommand
|
|
396
|
+
...(isStartCommand
|
|
397
|
+
? { attemptId: process.env.FARMSLOT_SIGNAL_ATTEMPT_ID || randomUUID() }
|
|
398
|
+
: {}),
|
|
397
399
|
step: target?.label ?? signal.step ?? 'complete',
|
|
398
400
|
checklistTiming: {
|
|
399
401
|
schemaVersion: 1,
|
|
@@ -507,6 +509,17 @@ const target = isStartCommand
|
|
|
507
509
|
|
|
508
510
|
const now = new Date().toISOString();
|
|
509
511
|
const signal = readJson(signalPath);
|
|
512
|
+
// The launcher owns the attempt. Descendants may repeat bootstrap, but must not
|
|
513
|
+
// replace the parent's identity or reset progress within that same attempt.
|
|
514
|
+
if (
|
|
515
|
+
isStartCommand &&
|
|
516
|
+
process.env.FARMSLOT_SIGNAL_ATTEMPT_ID &&
|
|
517
|
+
signal.attemptId === process.env.FARMSLOT_SIGNAL_ATTEMPT_ID &&
|
|
518
|
+
signal.status === 'running'
|
|
519
|
+
) {
|
|
520
|
+
console.log('signal already started');
|
|
521
|
+
process.exit(0);
|
|
522
|
+
}
|
|
510
523
|
const timing =
|
|
511
524
|
signal.checklistTiming && typeof signal.checklistTiming === 'object'
|
|
512
525
|
? signal.checklistTiming
|
|
@@ -75,7 +75,6 @@ async function main() {
|
|
|
75
75
|
const guard = await sandbox(policy, runtimeRoots);
|
|
76
76
|
const promptFile = path.join(task, '.terminal-prompt.txt');
|
|
77
77
|
fs.writeFileSync(promptFile, input.prompt, { mode: 0o600 });
|
|
78
|
-
if (input.setup) check(cp.spawnSync('/bin/sh', ['-c', input.setup], { cwd, encoding: 'utf8' }));
|
|
79
78
|
const environment = {
|
|
80
79
|
...process.env,
|
|
81
80
|
...input.environment.set,
|
|
@@ -91,12 +90,18 @@ async function main() {
|
|
|
91
90
|
'FARMSLOT_GATEWAY_PASSWORD',
|
|
92
91
|
])
|
|
93
92
|
delete environment[key];
|
|
93
|
+
environment.FARMSLOT_SIGNAL_ATTEMPT_ID = require('node:crypto').randomUUID();
|
|
94
|
+
if (input.setup)
|
|
95
|
+
check(
|
|
96
|
+
cp.spawnSync('/bin/sh', ['-c', input.setup], { cwd, env: environment, encoding: 'utf8' }),
|
|
97
|
+
);
|
|
94
98
|
const commandFile = path.join(task, '.terminal-start.cjs');
|
|
95
99
|
const record = {
|
|
96
100
|
runId: input.runId,
|
|
97
101
|
workspaceId: input.workspaceId,
|
|
98
102
|
session: input.session,
|
|
99
103
|
startedAt: new Date().toISOString(),
|
|
104
|
+
signalAttemptId: environment.FARMSLOT_SIGNAL_ATTEMPT_ID,
|
|
100
105
|
};
|
|
101
106
|
const launch = `const cp=require('node:child_process');const env={...process.env};for(const key of ['FARMSLOT_NODE_TOKEN','FARMSLOT_GATEWAY_TOKEN','FARMSLOT_GATEWAY_PASSWORD','CLAUDECODE'])delete env[key];const r=cp.spawnSync(${JSON.stringify(guard.sandbox.executable)},${JSON.stringify([...guard.sandbox.args, '/bin/sh', '-c', input.command])},{cwd:${JSON.stringify(cwd)},env,stdio:'inherit'});process.exit(r.status??1);`;
|
|
102
107
|
fs.writeFileSync(commandFile, launch, { mode: 0o600 });
|
package/scripts/subtask-unit.cjs
CHANGED
|
@@ -24,7 +24,8 @@ const {
|
|
|
24
24
|
writeSignal,
|
|
25
25
|
} = require('./mark-io.cjs');
|
|
26
26
|
|
|
27
|
-
// Child checklist units (ADR-060
|
|
27
|
+
// Child checklist units (ADR-060; contract in docs/reference/agent-runtime.md
|
|
28
|
+
// and docs/reference/task-directory-contract.md).
|
|
28
29
|
//
|
|
29
30
|
// `mark` is the only writer of `subtasks/`: it materializes a child checklist
|
|
30
31
|
// from a source, registers it in `subtasks/index.json`, and maintains the child
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* @property {Partial<Record<WorkerTerminalCommand, WorkerTerminalCommandSpec>>} [complete]
|
|
32
32
|
* @property {Partial<Record<WorkerTerminalCommand, WorkerTerminalCommandSpec>>} [no-change]
|
|
33
33
|
* @property {Partial<Record<WorkerTerminalCommand, WorkerTerminalCommandSpec>>} [blocked]
|
|
34
|
-
* @property {Record<string, Partial<Record<WorkerTerminalCommand, WorkerTerminalCommandSpec
|
|
34
|
+
* @property {Record<string, Partial<Record<WorkerTerminalCommand, WorkerTerminalCommandSpec>> & {acceptance?: WorkerTerminalAcceptanceRules}>} [flows]
|
|
35
35
|
* @property {WorkerTerminalWhenPresentRule[]} [whenPresent]
|
|
36
36
|
*/
|
|
37
37
|
|
|
@@ -236,13 +236,16 @@ function resolveWorkerTerminalContract(projectConfig, flowType, options = {}) {
|
|
|
236
236
|
}))
|
|
237
237
|
: DEFAULT_WHEN_PRESENT.map((rule) => ({ ...rule, alsoRequire: [...rule.alsoRequire] }));
|
|
238
238
|
|
|
239
|
-
const
|
|
240
|
-
projectConfig?.acceptance
|
|
241
|
-
? {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
239
|
+
const acceptanceRules =
|
|
240
|
+
projectConfig?.acceptance || flowLayer?.acceptance
|
|
241
|
+
? { ...projectConfig?.acceptance, ...flowLayer?.acceptance }
|
|
242
|
+
: undefined;
|
|
243
|
+
const acceptance = acceptanceRules
|
|
244
|
+
? {
|
|
245
|
+
...(acceptanceRules.require ? { require: true } : {}),
|
|
246
|
+
...(acceptanceRules.allowWeak ? { allowWeak: true } : {}),
|
|
247
|
+
}
|
|
248
|
+
: null;
|
|
246
249
|
|
|
247
250
|
return {
|
|
248
251
|
schemaVersion: 1,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execution-template.test.d.ts","sourceRoot":"","sources":["../../src/execution-template/execution-template.test.ts"],"names":[],"mappings":""}
|