@farmslot/recipe-cli 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.
Files changed (95) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/harness/acceptance-ledger.d.ts +8 -13
  3. package/dist/harness/acceptance-ledger.d.ts.map +1 -1
  4. package/dist/harness/acceptance-ledger.js +39 -112
  5. package/dist/harness/acceptance-ledger.js.map +1 -1
  6. package/dist/harness/catalog.d.ts +3 -34
  7. package/dist/harness/catalog.d.ts.map +1 -1
  8. package/dist/harness/catalog.js +53 -0
  9. package/dist/harness/catalog.js.map +1 -1
  10. package/dist/harness/command-journal.d.ts +7 -1
  11. package/dist/harness/command-journal.d.ts.map +1 -1
  12. package/dist/harness/command-journal.js +27 -5
  13. package/dist/harness/command-journal.js.map +1 -1
  14. package/dist/harness/commands/call.d.ts.map +1 -1
  15. package/dist/harness/commands/call.js +5 -3
  16. package/dist/harness/commands/call.js.map +1 -1
  17. package/dist/harness/commands/doctor.d.ts +11 -5
  18. package/dist/harness/commands/doctor.d.ts.map +1 -1
  19. package/dist/harness/commands/doctor.js +58 -20
  20. package/dist/harness/commands/doctor.js.map +1 -1
  21. package/dist/harness/commands/launch.d.ts +7 -1
  22. package/dist/harness/commands/launch.d.ts.map +1 -1
  23. package/dist/harness/commands/launch.js +7 -7
  24. package/dist/harness/commands/launch.js.map +1 -1
  25. package/dist/harness/commands/logs.d.ts +25 -0
  26. package/dist/harness/commands/logs.d.ts.map +1 -0
  27. package/dist/harness/commands/logs.js +105 -0
  28. package/dist/harness/commands/logs.js.map +1 -0
  29. package/dist/harness/commands/reload.d.ts +2 -1
  30. package/dist/harness/commands/reload.d.ts.map +1 -1
  31. package/dist/harness/commands/reload.js +3 -3
  32. package/dist/harness/commands/reload.js.map +1 -1
  33. package/dist/harness/commands/run.d.ts +8 -8
  34. package/dist/harness/commands/run.d.ts.map +1 -1
  35. package/dist/harness/commands/run.js +23 -32
  36. package/dist/harness/commands/run.js.map +1 -1
  37. package/dist/harness/commands/status.d.ts.map +1 -1
  38. package/dist/harness/commands/status.js +15 -0
  39. package/dist/harness/commands/status.js.map +1 -1
  40. package/dist/harness/commands/stop.d.ts +2 -0
  41. package/dist/harness/commands/stop.d.ts.map +1 -1
  42. package/dist/harness/commands/stop.js +2 -2
  43. package/dist/harness/commands/stop.js.map +1 -1
  44. package/dist/harness/conformance.d.ts +5 -3
  45. package/dist/harness/conformance.d.ts.map +1 -1
  46. package/dist/harness/conformance.js +19 -12
  47. package/dist/harness/conformance.js.map +1 -1
  48. package/dist/harness/context-state.d.ts +2 -1
  49. package/dist/harness/context-state.d.ts.map +1 -1
  50. package/dist/harness/context-state.js.map +1 -1
  51. package/dist/harness/context.d.ts +8 -1
  52. package/dist/harness/context.d.ts.map +1 -1
  53. package/dist/harness/context.js +6 -1
  54. package/dist/harness/context.js.map +1 -1
  55. package/dist/harness/execution-provenance.js +1 -1
  56. package/dist/harness/execution-provenance.js.map +1 -1
  57. package/dist/harness/host.d.ts +2 -0
  58. package/dist/harness/host.d.ts.map +1 -1
  59. package/dist/harness/host.js.map +1 -1
  60. package/dist/harness/index.d.ts +6 -6
  61. package/dist/harness/index.d.ts.map +1 -1
  62. package/dist/harness/index.js +5 -5
  63. package/dist/harness/index.js.map +1 -1
  64. package/dist/harness/project-host.d.ts +2 -1
  65. package/dist/harness/project-host.d.ts.map +1 -1
  66. package/dist/harness/project-host.js +8 -4
  67. package/dist/harness/project-host.js.map +1 -1
  68. package/dist/harness/recipe-library.d.ts +2 -2
  69. package/dist/harness/recipe-library.d.ts.map +1 -1
  70. package/dist/harness/recipe-library.js +5 -5
  71. package/dist/harness/recipe-library.js.map +1 -1
  72. package/dist/harness/recipe-validation.d.ts +2 -2
  73. package/dist/harness/recipe-validation.d.ts.map +1 -1
  74. package/dist/harness/recipe-validation.js +7 -7
  75. package/dist/harness/recipe-validation.js.map +1 -1
  76. package/dist/harness/run-diagnostics.d.ts +2 -49
  77. package/dist/harness/run-diagnostics.d.ts.map +1 -1
  78. package/dist/harness/run-diagnostics.js +1 -41
  79. package/dist/harness/run-diagnostics.js.map +1 -1
  80. package/dist/harness/run-engine.d.ts +6 -60
  81. package/dist/harness/run-engine.d.ts.map +1 -1
  82. package/dist/harness/run-engine.js +9 -233
  83. package/dist/harness/run-engine.js.map +1 -1
  84. package/dist/harness/run-options.d.ts.map +1 -1
  85. package/dist/harness/run-options.js +2 -1
  86. package/dist/harness/run-options.js.map +1 -1
  87. package/dist/harness/runtime-proof.d.ts +7 -19
  88. package/dist/harness/runtime-proof.d.ts.map +1 -1
  89. package/dist/harness/runtime-proof.js +54 -89
  90. package/dist/harness/runtime-proof.js.map +1 -1
  91. package/package.json +5 -5
  92. package/dist/harness/run-recording.d.ts +0 -48
  93. package/dist/harness/run-recording.d.ts.map +0 -1
  94. package/dist/harness/run-recording.js +0 -566
  95. package/dist/harness/run-recording.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ All notable changes to `@farmslot/recipe-cli` are tracked here.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.14.0 - 2026-10-12
8
+
9
+ - Preserve project log viewers and declared default check invocations in the resolved binding.
10
+
11
+ - Match local checkout origins written as file URLs or absolute paths during project binding, while refusing a different repository.
12
+ - Share validated lifecycle options, cancellation and runtime log access with project hosts; preserve named application-log defaults, the `app` selector, full raw follow and missing-console failures, and retain the latest proof after subsequent lifecycle commands.
13
+ - Require executed smoke and cleanup assertions for live conformance, with complete observed HUD intent when capture requires it.
14
+ - Forward host recording admission into the shared engine factory while keeping discovery and preflight read-only.
15
+
16
+ - **BREAKING:** Use the SDK engine and runner-owned capture lifecycle; task ledgers receive derived claims rather than action-success verdicts. Move only the engine factory/options exports and remove replaced framed-recording exports from `/harness` (ADR-062).
17
+ - Keep recipe HUD intent on two bounded lines through the shared display policy, with authoring warnings above 80 characters and errors above 120.
18
+
7
19
  ## 0.13.0 - 2026-10-11
8
20
 
9
21
  - Project commands share library resolution across discovery, planning, execution and conformance, preserving provenance and adjacent task recipes. Provider options are validated before factory construction. Managed execution carries cancellation through command and live-action children, awaits provider cancellation/finalization before success and retains invocation and cleanup failure messages, and retains authored teardown, including streaming cleanup actions on a fresh cancellation context. Explicit slot selection requires a pool match before provider import. JSONL progress stays live while errors and completion wait for host closeout; rethrows retain original error codes and recovery details and superseded refusals remain in stderr diagnostics. Execution and overlay-install failures point to configured diagnostics and retained evidence paths. Streaming leaves have one second to finish signal traps before escalation.
@@ -1,21 +1,16 @@
1
- import { type RecipeRunCaptureInterruption } from '@farmslot/recipe-runner';
2
- export interface RecipeAcceptanceVerdict {
3
- id: string;
4
- verdict: 'proven' | 'weak' | 'missing';
5
- recipeNodes: string[];
6
- evidence: string[];
7
- note?: string;
8
- }
1
+ import { type RecipeClaimDeclaration, type RecipeClaimEvidence } from '@farmslot/protocol';
2
+ export type RecipeAcceptanceVerdict = RecipeClaimEvidence;
9
3
  export interface RecipeAcceptanceRecord {
10
4
  recorded: RecipeAcceptanceVerdict[];
11
- /** Targets the ledger refused (e.g. no such criterion in the handoff), with why. */
12
5
  refused: string[];
13
6
  }
14
- /** `AC1` and `AC-1` both name the handoff's first criterion; anything else is not an AC. */
15
7
  export declare function acceptanceIdForProofTarget(target: string): string | null;
16
- export declare function recordRecipeAcceptance(taskDir: string, target: string, result: {
17
- recipePath: string;
8
+ /** Resolve the task once for CLI artifacts and engine registration. */
9
+ export declare function runTaskDir(target: string, ignoreOutside?: boolean): string | null;
10
+ export declare function registeredTaskClaims(task: string | null): RecipeClaimDeclaration[] | undefined;
11
+ export declare function recordRecipeAcceptance(taskDir: string, _target: string, result: {
18
12
  tracePath: string;
19
- captureInterruption?: RecipeRunCaptureInterruption;
13
+ recipePath: string;
14
+ claimsPath?: string;
20
15
  }): RecipeAcceptanceRecord;
21
16
  //# sourceMappingURL=acceptance-ledger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"acceptance-ledger.d.ts","sourceRoot":"","sources":["../../src/harness/acceptance-ledger.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,yBAAyB,CAAC;AAuBjC,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,oFAAoF;IACpF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,4FAA4F;AAC5F,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,4BAA4B,CAAC;CACpD,GACA,sBAAsB,CAsExB"}
1
+ {"version":3,"file":"acceptance-ledger.d.ts","sourceRoot":"","sources":["../../src/harness/acceptance-ledger.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EAEzB,MAAM,oBAAoB,CAAC;AAU5B,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAC1D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxE;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,UAAQ,GAAG,MAAM,GAAG,IAAI,CAU/E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,sBAAsB,EAAE,GAAG,SAAS,CAI9F;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE,sBAAsB,CAexB"}
@@ -1,132 +1,59 @@
1
- // After a run with a task dir, the recipe's proof targets become verdicts in the
2
- // task's acceptance ledger (artifacts/acceptance-status.json, ADR-060), written by
3
- // the same code `farmslot-agent ac` uses, so a Farmslot run and a skill run record
4
- // the same file. A target is `proven` when every node proving it passed, `missing`
5
- // when one failed or did not run. When the run's recording was interrupted, a
6
- // `proven` target is recorded `weak` instead: its evidence is incomplete, with the
7
- // partial video as evidence. A target no node proves, and a criterion no target
8
- // names, stay unrecorded: the run says nothing about them.
1
+ // Task transport only. The engine derives verdicts; the task ledger has no reducer.
9
2
  import fs from 'node:fs';
10
3
  import { createRequire } from 'node:module';
11
4
  import path from 'node:path';
12
- import { CAPTURE_EVIDENCE_INCOMPLETE, } from '@farmslot/recipe-runner';
13
- import { isRecord } from './parse-args.js';
5
+ import { ACCEPTANCE_CRITERION_ID_PATTERN, normalizeRecipeClaimId, } from '@farmslot/protocol';
14
6
  const require = createRequire(import.meta.url);
15
7
  const ledger = require('@farmslot/agent-runtime/scripts/acceptance-ledger.cjs');
16
- /** `AC1` and `AC-1` both name the handoff's first criterion; anything else is not an AC. */
17
8
  export function acceptanceIdForProofTarget(target) {
18
- const match = /^AC-?([1-9][0-9]*)$/iu.exec(target.trim());
19
- return match ? `AC-${match[1]}` : null;
9
+ const id = normalizeRecipeClaimId(target.trim());
10
+ return ACCEPTANCE_CRITERION_ID_PATTERN.test(id) ? id : null;
20
11
  }
21
- export function recordRecipeAcceptance(taskDir, target, result) {
22
- const record = { recorded: [], refused: [] };
23
- if (ledger.handoffAcceptanceCriteria(taskDir).length === 0)
24
- return record;
25
- const recipe = readJson(result.recipePath);
26
- const trace = readJson(result.tracePath);
27
- // The protocol allows a bare array of entries or `{ entries }`.
28
- const entries = Array.isArray(trace)
29
- ? trace
30
- : isRecord(trace) && Array.isArray(trace.entries)
31
- ? trace.entries
32
- : [];
33
- // The last entry per node is its outcome (a retried node may appear twice).
34
- const outcome = new Map();
35
- for (const entry of entries) {
36
- if (isRecord(entry) && typeof entry.nodeId === 'string')
37
- outcome.set(entry.nodeId, entry);
38
- }
39
- const workflow = isRecord(recipe) && isRecord(recipe.workflow) ? recipe.workflow : {};
40
- const nodes = isRecord(workflow.nodes) ? workflow.nodes : {};
41
- // AC1 and AC-1 name the same criterion: its provers are the nodes proving either.
42
- const provers = new Map();
43
- for (const proofTarget of proofTargetIds(recipe)) {
44
- const id = acceptanceIdForProofTarget(proofTarget);
45
- if (!id)
46
- continue;
47
- const ids = new Set(provers.get(id));
48
- for (const [nodeId, node] of Object.entries(nodes)) {
49
- if (isRecord(node) && Array.isArray(node.proves) && node.proves.includes(proofTarget)) {
50
- ids.add(nodeId);
51
- }
52
- }
53
- provers.set(id, [...ids]);
54
- }
55
- const artifactsDir = path.dirname(result.tracePath);
56
- const realTaskDir = fs.realpathSync(taskDir);
57
- for (const [id, recipeNodes] of provers) {
58
- if (recipeNodes.length === 0)
59
- continue;
60
- const passed = recipeNodes.every((nodeId) => outcome.get(nodeId)?.ok === true);
61
- const interruption = result.captureInterruption;
62
- const verdict = !passed ? 'missing' : interruption ? 'weak' : 'proven';
63
- const note = passed && interruption
64
- ? `${CAPTURE_EVIDENCE_INCOMPLETE}: ${interruption.message}`
65
- : undefined;
66
- const evidence = [
67
- ...new Set([
68
- result.tracePath,
69
- ...recipeNodes.flatMap((nodeId) => nodeArtifactPaths(outcome.get(nodeId), artifactsDir, target)),
70
- ...(interruption ? [path.resolve(artifactsDir, interruption.videoPath)] : []),
71
- ]
72
- .map((file) => taskRelative(realTaskDir, file))
73
- .filter((file) => file !== null)),
74
- ];
75
- try {
76
- ledger.setAcceptanceVerdict(taskDir, {
77
- id,
78
- verdict,
79
- evidence,
80
- recipeNodes,
81
- ...(note ? { note } : {}),
82
- });
83
- record.recorded.push({ id, verdict, evidence, recipeNodes, ...(note ? { note } : {}) });
84
- }
85
- catch (error) {
86
- if (!(error instanceof ledger.AcceptanceRefusal))
87
- throw error;
88
- record.refused.push(`${id}: ${error.message}`);
89
- }
12
+ /** Resolve the task once for CLI artifacts and engine registration. */
13
+ export function runTaskDir(target, ignoreOutside = false) {
14
+ const configured = process.env.RECIPE_TASK_DIR || process.env.FARMSLOT_TASK_DIR;
15
+ if (!configured)
16
+ return null;
17
+ const task = path.resolve(target, configured);
18
+ const relative = path.relative(path.resolve(target), task);
19
+ if (relative === '..' || relative.startsWith(`..${path.sep}`)) {
20
+ if (ignoreOutside)
21
+ return null;
22
+ throw new Error(`task directory must be inside the target checkout: ${configured}`);
90
23
  }
91
- return record;
24
+ return task;
92
25
  }
93
- // Proof targets are `{ id, claim }` objects (the recipe contract rejects any other shape).
94
- function proofTargetIds(recipe) {
95
- const targets = isRecord(recipe) && Array.isArray(recipe.proofTargets) ? recipe.proofTargets : [];
96
- return targets
97
- .map((target) => (isRecord(target) ? target.id : null))
98
- .filter((id) => typeof id === 'string');
26
+ export function registeredTaskClaims(task) {
27
+ return task
28
+ ? ledger.handoffAcceptanceCriteria(task).map(({ id, text }) => ({ id, claim: text }))
29
+ : undefined;
99
30
  }
100
- // A node's artifact paths are relative to the run's artifacts dir or to the checkout;
101
- // the first that exists is the file.
102
- function nodeArtifactPaths(entry, artifactsDir, target) {
103
- const artifacts = Array.isArray(entry?.artifacts) ? entry.artifacts : [];
104
- return artifacts
105
- .map((artifact) => isRecord(artifact) && typeof artifact.path === 'string' ? artifact.path : null)
106
- .filter((file) => file !== null)
107
- .map((file) => path.isAbsolute(file)
108
- ? file
109
- : [path.resolve(artifactsDir, file), path.resolve(target, file)].find((candidate) => fs.existsSync(candidate)))
110
- .filter((file) => typeof file === 'string');
31
+ export function recordRecipeAcceptance(taskDir, _target, result) {
32
+ if (!result.claimsPath)
33
+ throw new Error('The engine returned no derived claim package.');
34
+ const claims = JSON.parse(fs.readFileSync(result.claimsPath, 'utf8'));
35
+ const root = path.dirname(result.claimsPath);
36
+ const realTask = fs.realpathSync(taskDir);
37
+ const criteria = claims.criteria.map((claim) => ({
38
+ ...claim,
39
+ evidence: [
40
+ ...new Set([result.tracePath, ...claim.evidence.map((file) => path.resolve(root, file))]),
41
+ ]
42
+ .map((file) => taskRelative(realTask, file))
43
+ .filter((file) => file !== null),
44
+ }));
45
+ ledger.setDerivedClaims(taskDir, { ...claims, criteria });
46
+ return { recorded: criteria, refused: [] };
111
47
  }
112
- // The ledger keeps task-dir relative paths only. Both sides are resolved first, so a
113
- // symlink can't carry evidence from outside the task dir in, nor a symlinked checkout
114
- // path drop evidence that is inside.
115
- function taskRelative(realTaskDir, file) {
116
- // A file the run didn't leave isn't evidence; any other error reaches the run's warning.
48
+ function taskRelative(realTask, file) {
117
49
  if (!fs.existsSync(file))
118
50
  return null;
119
- const real = fs.realpathSync(file);
120
- const relative = path.relative(realTaskDir, real);
51
+ const relative = path.relative(realTask, fs.realpathSync(file));
121
52
  if (!relative ||
122
53
  relative === '..' ||
123
54
  relative.startsWith(`..${path.sep}`) ||
124
- path.isAbsolute(relative)) {
55
+ path.isAbsolute(relative))
125
56
  return null;
126
- }
127
57
  return relative.split(path.sep).join('/');
128
58
  }
129
- function readJson(file) {
130
- return JSON.parse(fs.readFileSync(file, 'utf8'));
131
- }
132
59
  //# sourceMappingURL=acceptance-ledger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"acceptance-ledger.js","sourceRoot":"","sources":["../../src/harness/acceptance-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acceptance-ledger.js","sourceRoot":"","sources":["../../src/harness/acceptance-ledger.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,8 @@
1
- import type { PlatformAdapter } from '@farmslot/adapter-sdk';
2
- import { type RecipeActionManifestDocument, type RecipeExecutionCapability, type RecipeSourceProvenance } from '@farmslot/protocol';
1
+ import type { ActionCapabilitySource, PlatformAdapter, RecipeCatalog } from '@farmslot/adapter-sdk';
2
+ import { type RecipeExecutionCapability } from '@farmslot/protocol';
3
3
  import { type RecipeLibrarySource } from '@farmslot/recipe-runner';
4
4
  import { type ActionMatrixRow } from '../action-catalog.js';
5
- /** Where one resolved action came from. */
6
- export interface ActionCapabilitySource {
7
- name: string;
8
- tier: 'official' | 'personal' | 'team' | 'canonical' | 'task';
9
- manifestPath: string;
10
- shadows?: string[];
11
- trust?: RecipeSourceProvenance['trust'];
12
- implementationRoot?: string;
13
- digest?: string;
14
- resolveDigest?: () => Promise<string>;
15
- }
16
- export interface ResolvedActionManifest {
17
- manifest: RecipeActionManifestDocument;
18
- actionSources: Map<string, ActionCapabilitySource>;
19
- }
20
- export interface RecipeCatalog {
21
- /** The library the host ships: its source name, root, and the namespace of its action names. */
22
- bundledLibrary: {
23
- name: string;
24
- root: string;
25
- actionNamespace: string;
26
- };
27
- /**
28
- * The adapter's action manifest merged across the library sources (the
29
- * bundled one last), or the override manifest with its task action root.
30
- */
31
- resolveActionManifest(adapter: string, overridePath?: string, sources?: readonly RecipeLibrarySource[], taskActionRoot?: string): Promise<ResolvedActionManifest>;
32
- /** Throws when the manifest document is invalid. */
33
- validateManifest(manifest: RecipeActionManifestDocument): Promise<unknown>;
34
- /** The execution capabilities the host enforces for a bundled action. */
35
- actionCapabilities(action: string): readonly RecipeExecutionCapability[];
36
- }
5
+ export type { ActionCapabilitySource, RecipeCatalog, ResolvedActionManifest, } from '@farmslot/adapter-sdk';
37
6
  export interface RuntimeRecipeCatalogOptions {
38
7
  runtime: PlatformAdapter;
39
8
  bundledLibrary: RecipeCatalog['bundledLibrary'];
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/harness/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/harness/catalog.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAIL,KAAK,yBAAyB,EAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAC;AAc9B,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,eAAe,CAAC;IACzB,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;CACjD;AAED,mFAAmF;AACnF,wBAAgB,0BAA0B,CAAC,EACzC,OAAO,EACP,cAAc,GACf,EAAE,2BAA2B,GAAG,aAAa,CA+K7C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,yBAAyB,EAAE,CAAC;CAC3C;AAID,gFAAgF;AAChF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,EACtB,cAAc,CAAC,EAAE,SAAS,mBAAmB,EAAE,GAC9C,MAAM,CAQR;AAED,sFAAsF;AACtF,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,aAAa,EACtB,cAAc,CAAC,EAAE,SAAS,mBAAmB,EAAE,GAC9C,OAAO,CAAC,eAAe,EAAE,CAAC,CAc5B;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,OAAO,EACjB,aAAa,GAAE,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAa,GACrE,eAAe,EAAE,CAYnB;AAmDD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,MAAM,CA0CR;AAsBD,wFAAwF;AACxF,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAepB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,MAAM,GAAG,SAAS,CAoBpB"}
@@ -13,12 +13,65 @@ import { harnessAdapters } from './adapters.js';
13
13
  import { color } from './cli-color.js';
14
14
  import { isSensitiveKey, redactStructuredValue } from './command-journal.js';
15
15
  import { harnessHost } from './host.js';
16
+ import { prepareLiveAdapterScript, runLiveAdapterScript } from './live-adapter-contract.js';
17
+ import { runNetworkCaptureAction } from './network-observation.js';
16
18
  import { isRecord, shellQuoteArg } from './parse-args.js';
17
19
  import { closest } from './suggest.js';
18
20
  /** Resolve runtime declarations through the same precedence index as discovery. */
19
21
  export function createRuntimeRecipeCatalog({ runtime, bundledLibrary, }) {
20
22
  return {
21
23
  bundledLibrary,
24
+ async resolveActionAdapter(action, source, options) {
25
+ if (action === 'app.network_capture' && runtime.observation?.network?.actions)
26
+ return {
27
+ action,
28
+ execute: (node, context) => runNetworkCaptureAction(runtime.id, node, context),
29
+ };
30
+ if (!source?.implementationRoot)
31
+ return undefined;
32
+ const prepared = await prepareLiveAdapterScript({
33
+ platform: runtime.id,
34
+ action,
35
+ namespace: bundledLibrary.actionNamespace,
36
+ implementationRoot: source.implementationRoot,
37
+ allowRuntimeImports: source.trust === 'trusted' || (source.tier === 'task' && options.trustTaskActions),
38
+ });
39
+ if (!prepared)
40
+ return undefined;
41
+ return {
42
+ action,
43
+ capabilities: [...this.actionCapabilities(action)],
44
+ source: {
45
+ kind: source.tier === 'canonical' ? 'bundled' : 'custom-adapter',
46
+ trust: source.tier === 'task' && options.trustTaskActions
47
+ ? 'trusted'
48
+ : (source.trust ?? 'unknown'),
49
+ name: source.name,
50
+ path: prepared.entryPath,
51
+ digest: prepared.sourceDigest,
52
+ },
53
+ async execute(node, context) {
54
+ const live = await runLiveAdapterScript({
55
+ platform: runtime.id,
56
+ action,
57
+ namespace: bundledLibrary.actionNamespace,
58
+ node,
59
+ context,
60
+ prepared,
61
+ });
62
+ if (!live)
63
+ throw new Error(`Prepared live adapter for ${action} is unavailable.`);
64
+ const output = live.result;
65
+ return {
66
+ output,
67
+ ...(isRecord(output) && typeof output.case === 'string' ? { case: output.case } : {}),
68
+ ...(isRecord(output) && Array.isArray(output.artifacts)
69
+ ? { artifacts: output.artifacts }
70
+ : {}),
71
+ };
72
+ },
73
+ };
74
+ },
22
75
  async validateManifest(manifest) {
23
76
  const validation = validateRecipeActionManifestDocument(manifest);
24
77
  if (validation.status === 'invalid') {
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/harness/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/harness/catalog.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,11 @@ export interface CommandJournalRecord {
10
10
  startedAt: string;
11
11
  finishedAt: string | null;
12
12
  }
13
- export declare function withCommandJournal(command: string, argv: readonly string[], execute: () => Promise<number>): Promise<number>;
13
+ export interface CommandJournalContext {
14
+ target: string;
15
+ runtimeDir?: string;
16
+ }
17
+ export declare function withCommandJournal(command: string, argv: readonly string[], execute: () => Promise<number>, context?: CommandJournalContext): Promise<number>;
14
18
  export declare function recordCommandStage(stage: string): void;
15
19
  export declare function recordCommandOutput(chunk: string | Uint8Array): void;
16
20
  export declare function recordCommandEvidence(...evidence: string[]): void;
@@ -19,6 +23,8 @@ export declare function readCommandJournal(target: string, runtimeDir?: string):
19
23
  file: string;
20
24
  record: CommandJournalRecord | null;
21
25
  };
26
+ /** A later launch/stop must not hide the latest retained recipe evidence. */
27
+ export declare function readLatestProofJournal(target: string, runtimeDir?: string): ReturnType<typeof readCommandJournal>;
22
28
  export declare function redactCommandArgs(argv: readonly string[]): string[];
23
29
  export declare function isSensitiveKey(key: string): boolean;
24
30
  export declare function redactStructuredValue(value: unknown): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"command-journal.d.ts","sourceRoot":"","sources":["../../src/harness/command-journal.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAQxD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,CAAC,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAUD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC7B,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAEpE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAajE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAI9E;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACrC,CA4CA;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CA0BnE;AAiKD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAS7D"}
1
+ {"version":3,"file":"command-journal.d.ts","sourceRoot":"","sources":["../../src/harness/command-journal.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAQxD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,CAAC,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAQD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC9B,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAEpE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAajE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAI9E;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACrC,CAoBA;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAYvC;AAqCD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CA0BnE;AAkKD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAS7D"}
@@ -4,19 +4,21 @@ import path from 'node:path';
4
4
  import { latestTaskDir } from '@farmslot/agent-runtime';
5
5
  import { ensureRuntimeDirectory, OperationRecord, processIdentity, readOperations, } from '@farmslot/recipe-runner/runtime/operation';
6
6
  import { harnessHost, hostEnvName } from './host.js';
7
+ import { parseArgs } from './parse-args.js';
7
8
  import { recipeRuntimeDir } from './paths.js';
9
+ import { isRecipeExecution } from './project-command.js';
8
10
  export const COMMAND_JOURNAL_FILE = 'last-command.json';
9
11
  const SENSITIVE_KEY = /(?:api[-_]?key|auth|credential|mnemonic|pass(?:word)?|private[-_]?key|secret|seed|srp|token|vault)/iu;
10
12
  // Do not infer secrets from value shape: 64 hex characters may be a transaction
11
13
  // hash, and mnemonic-length prose may be legitimate CLI evidence.
12
14
  const EVIDENCE_OPTIONS = new Set(['--artifacts-dir', '--out', '--output']);
13
15
  let activeCommandJournal;
14
- export async function withCommandJournal(command, argv, execute) {
16
+ export async function withCommandJournal(command, argv, execute, context) {
15
17
  // Persist commands whose side effects or proof work should not be guessed or repeated after interruption.
16
18
  if (!harnessHost().journaledCommands.includes(command))
17
19
  return execute();
18
20
  const operationEnv = hostEnvName('OPERATION_ID');
19
- const handle = tryBeginCommandJournal(command, argv);
21
+ const handle = tryBeginCommandJournal(command, argv, context);
20
22
  const previous = activeCommandJournal;
21
23
  const parentId = process.env[operationEnv];
22
24
  if (handle)
@@ -80,6 +82,26 @@ export function readCommandJournal(target, runtimeDir) {
80
82
  const file = selected
81
83
  ? path.join(path.dirname(legacyFile), 'operations', `${selected.id}.journal.json`)
82
84
  : legacyFile;
85
+ return readJournalFile(file);
86
+ }
87
+ /** A later launch/stop must not hide the latest retained recipe evidence. */
88
+ export function readLatestProofJournal(target, runtimeDir) {
89
+ const legacyFile = commandJournalPath(target, runtimeDir);
90
+ const directory = path.join(path.dirname(legacyFile), 'operations');
91
+ const operations = readOperations(directory).sort((a, b) => (b.finishedAt ?? b.startedAt).localeCompare(a.finishedAt ?? a.startedAt));
92
+ for (const operation of operations) {
93
+ const journal = readJournalFile(path.join(directory, `${operation.id}.journal.json`));
94
+ if (hasProof(journal.record))
95
+ return journal;
96
+ }
97
+ const legacy = readJournalFile(legacyFile);
98
+ return hasProof(legacy.record) ? legacy : { file: legacyFile, record: null };
99
+ }
100
+ function hasProof(record) {
101
+ return Boolean(record?.evidencePaths.length &&
102
+ isRecipeExecution(record.command, parseArgs(record.args).options));
103
+ }
104
+ function readJournalFile(file) {
83
105
  let descriptor;
84
106
  try {
85
107
  // O_NOFOLLOW blocks symlinks where supported; matching the opened file's
@@ -141,12 +163,12 @@ function pruneCompletedJournals(directory, operations) {
141
163
  }
142
164
  }
143
165
  }
144
- function tryBeginCommandJournal(command, argv) {
166
+ function tryBeginCommandJournal(command, argv, context) {
145
167
  try {
146
- const target = invocationTarget(argv);
168
+ const target = context?.target ?? invocationTarget(argv);
147
169
  if (!fs.existsSync(target))
148
170
  return undefined;
149
- const runtimeDir = optionValue(argv, '--runtime-dir');
171
+ const runtimeDir = context?.runtimeDir ?? optionValue(argv, '--runtime-dir');
150
172
  const legacyFile = commandJournalPath(target, runtimeDir);
151
173
  const taskDir = latestTaskDir(path.join(target, 'temp', 'tasks'));
152
174
  const signalFile = taskDir && path.join(taskDir, 'SIGNAL.json');