@farmslot/recipe-cli 0.7.0 → 0.9.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 +29 -0
- package/dist/harness/adapter-plugins.d.ts +1 -0
- package/dist/harness/adapter-plugins.d.ts.map +1 -1
- package/dist/harness/adapter-plugins.js +26 -13
- package/dist/harness/adapter-plugins.js.map +1 -1
- package/dist/harness/adapters.d.ts +0 -2
- package/dist/harness/adapters.d.ts.map +1 -1
- package/dist/harness/adapters.js +0 -4
- package/dist/harness/adapters.js.map +1 -1
- package/dist/harness/command-contract.d.ts +16 -1
- package/dist/harness/command-contract.d.ts.map +1 -1
- package/dist/harness/command-contract.js +8 -0
- package/dist/harness/command-contract.js.map +1 -1
- package/dist/harness/commands/call.d.ts.map +1 -1
- package/dist/harness/commands/call.js +30 -9
- package/dist/harness/commands/call.js.map +1 -1
- package/dist/harness/commands/checklist.d.ts +16 -0
- package/dist/harness/commands/checklist.d.ts.map +1 -0
- package/dist/harness/commands/checklist.js +171 -0
- package/dist/harness/commands/checklist.js.map +1 -0
- package/dist/harness/commands/doctor.d.ts +45 -0
- package/dist/harness/commands/doctor.d.ts.map +1 -0
- package/dist/harness/commands/doctor.js +591 -0
- package/dist/harness/commands/doctor.js.map +1 -0
- package/dist/harness/commands/execution-template.d.ts +2 -0
- package/dist/harness/commands/execution-template.d.ts.map +1 -0
- package/dist/harness/commands/execution-template.js +27 -0
- package/dist/harness/commands/execution-template.js.map +1 -0
- package/dist/harness/commands/launch.js +3 -0
- package/dist/harness/commands/launch.js.map +1 -1
- package/dist/harness/commands/prepare.d.ts +35 -0
- package/dist/harness/commands/prepare.d.ts.map +1 -0
- package/dist/harness/commands/prepare.js +570 -0
- package/dist/harness/commands/prepare.js.map +1 -0
- package/dist/harness/commands/recipe-quality.d.ts +13 -0
- package/dist/harness/commands/recipe-quality.d.ts.map +1 -0
- package/dist/harness/commands/recipe-quality.js +112 -0
- package/dist/harness/commands/recipe-quality.js.map +1 -0
- package/dist/harness/commands/run.d.ts.map +1 -1
- package/dist/harness/commands/run.js +13 -1
- package/dist/harness/commands/run.js.map +1 -1
- package/dist/harness/commands/status-watch.d.ts +20 -0
- package/dist/harness/commands/status-watch.d.ts.map +1 -0
- package/dist/harness/commands/status-watch.js +402 -0
- package/dist/harness/commands/status-watch.js.map +1 -0
- package/dist/harness/commands/status.d.ts +5 -0
- package/dist/harness/commands/status.d.ts.map +1 -0
- package/dist/harness/commands/status.js +167 -0
- package/dist/harness/commands/status.js.map +1 -0
- package/dist/harness/commands/task-init.d.ts +5 -0
- package/dist/harness/commands/task-init.d.ts.map +1 -0
- package/dist/harness/commands/task-init.js +54 -0
- package/dist/harness/commands/task-init.js.map +1 -0
- package/dist/harness/doctor-report.d.ts +58 -0
- package/dist/harness/doctor-report.d.ts.map +1 -0
- package/dist/harness/doctor-report.js +154 -0
- package/dist/harness/doctor-report.js.map +1 -0
- package/dist/harness/harness-cli.d.ts +10 -1
- package/dist/harness/harness-cli.d.ts.map +1 -1
- package/dist/harness/harness-cli.js +9 -9
- package/dist/harness/harness-cli.js.map +1 -1
- package/dist/harness/heal-bounds.d.ts +1 -1
- package/dist/harness/heal-bounds.d.ts.map +1 -1
- package/dist/harness/heal-bounds.js +33 -2
- package/dist/harness/heal-bounds.js.map +1 -1
- package/dist/harness/index.d.ts +15 -3
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +14 -2
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/json-stream.d.ts +7 -1
- package/dist/harness/json-stream.d.ts.map +1 -1
- package/dist/harness/json-stream.js +12 -0
- package/dist/harness/json-stream.js.map +1 -1
- package/dist/harness/paths.d.ts +2 -0
- package/dist/harness/paths.d.ts.map +1 -1
- package/dist/harness/paths.js +2 -0
- package/dist/harness/paths.js.map +1 -1
- package/dist/harness/readiness.d.ts +31 -0
- package/dist/harness/readiness.d.ts.map +1 -0
- package/dist/harness/readiness.js +12 -0
- package/dist/harness/readiness.js.map +1 -0
- package/dist/harness/recording-target.d.ts +11 -0
- package/dist/harness/recording-target.d.ts.map +1 -1
- package/dist/harness/recording-target.js +31 -2
- package/dist/harness/recording-target.js.map +1 -1
- package/dist/harness/run-engine.d.ts.map +1 -1
- package/dist/harness/run-engine.js.map +1 -1
- package/dist/harness/run-options.js +2 -11
- package/dist/harness/run-options.js.map +1 -1
- package/dist/harness/shared.d.ts.map +1 -1
- package/dist/harness/shared.js +60 -44
- package/dist/harness/shared.js.map +1 -1
- package/dist/harness/stage-progress.d.ts +25 -0
- package/dist/harness/stage-progress.d.ts.map +1 -0
- package/dist/harness/stage-progress.js +162 -0
- package/dist/harness/stage-progress.js.map +1 -0
- package/dist/harness/task-view.d.ts +142 -0
- package/dist/harness/task-view.d.ts.map +1 -0
- package/dist/harness/task-view.js +451 -0
- package/dist/harness/task-view.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// task init — the host's entrypoint for the shared task-directory producer
|
|
2
|
+
// (@farmslot/agent-runtime). The runtime owns the layout (TASK.md, CHECKLIST.md,
|
|
3
|
+
// mark, inputs/); this wrapper adds the defaults only the host knows.
|
|
4
|
+
import { spawnSync } from 'node:child_process';
|
|
5
|
+
import { createRequire } from 'node:module';
|
|
6
|
+
import { detectAdapter } from '../adapters.js';
|
|
7
|
+
import { harnessHost } from '../host.js';
|
|
8
|
+
import { harnessExecutable } from '../paths.js';
|
|
9
|
+
import { EXIT } from '../shared.js';
|
|
10
|
+
const require = createRequire(import.meta.url);
|
|
11
|
+
function hasOption(argv, name) {
|
|
12
|
+
return argv.some((arg) => arg === name || arg.startsWith(`${name}=`));
|
|
13
|
+
}
|
|
14
|
+
// Defaults the shared producer cannot derive: the host's surface, a mark shim
|
|
15
|
+
// that routes through the host's checklist gates instead of the runtime's own
|
|
16
|
+
// engine, and the platform of the checkout the command runs in. Run mode is not
|
|
17
|
+
// one of them: only a control plane knows it, and it selects nothing here.
|
|
18
|
+
function hostDefaults(argv, options) {
|
|
19
|
+
const defaults = [];
|
|
20
|
+
if (options.surface && !hasOption(argv, '--surface'))
|
|
21
|
+
defaults.push('--surface', options.surface);
|
|
22
|
+
if (!hasOption(argv, '--mark-command')) {
|
|
23
|
+
defaults.push('--mark-command', `${harnessExecutable()} checklist mark`);
|
|
24
|
+
}
|
|
25
|
+
if (!hasOption(argv, '--platform')) {
|
|
26
|
+
const adapter = detectAdapter(process.cwd());
|
|
27
|
+
if (adapter)
|
|
28
|
+
defaults.push('--platform', adapter);
|
|
29
|
+
}
|
|
30
|
+
return defaults;
|
|
31
|
+
}
|
|
32
|
+
export async function handleTaskInit(argv, options = {}) {
|
|
33
|
+
const host = harnessHost().name;
|
|
34
|
+
if (argv[0] !== 'init') {
|
|
35
|
+
console.error(`usage: ${host} task init <task-dir> --flow f --template id --title t [options]`);
|
|
36
|
+
return EXIT.usage;
|
|
37
|
+
}
|
|
38
|
+
const forwarded = argv.slice(1);
|
|
39
|
+
let entrypoint;
|
|
40
|
+
try {
|
|
41
|
+
entrypoint = require.resolve('@farmslot/agent-runtime/scripts/task-init-cli.mjs');
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.error(`${host} task init: installed @farmslot/agent-runtime does not expose the task-directory command: ${error instanceof Error ? error.message : String(error)}`);
|
|
45
|
+
return EXIT.runtime;
|
|
46
|
+
}
|
|
47
|
+
const result = spawnSync(process.execPath, [entrypoint, ...forwarded, ...hostDefaults(forwarded, options)], { env: process.env, stdio: 'inherit' });
|
|
48
|
+
if (result.error) {
|
|
49
|
+
console.error(`${host} task init: ${result.error.message}`);
|
|
50
|
+
return EXIT.runtime;
|
|
51
|
+
}
|
|
52
|
+
return result.status ?? EXIT.runtime;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=task-init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-init.js","sourceRoot":"","sources":["../../../src/harness/commands/task-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { AdapterDoctorCheck } from '@farmslot/adapter-sdk';
|
|
2
|
+
export type DoctorCheck = AdapterDoctorCheck;
|
|
3
|
+
export interface RequiredDoctorChecks {
|
|
4
|
+
status: 'pass' | 'fail';
|
|
5
|
+
total: number;
|
|
6
|
+
passed: number;
|
|
7
|
+
failed: string[];
|
|
8
|
+
}
|
|
9
|
+
export type RunnerInstallKind = 'local-link' | 'source-checkout' | 'project-install' | 'global-install' | 'pinned-install';
|
|
10
|
+
export interface RunnerProvenance {
|
|
11
|
+
name: string;
|
|
12
|
+
packageName: string;
|
|
13
|
+
version: string;
|
|
14
|
+
runnerDir: string;
|
|
15
|
+
packagePath: string;
|
|
16
|
+
packageSource: 'source-checkout' | 'node_modules' | 'pin';
|
|
17
|
+
installKind: RunnerInstallKind;
|
|
18
|
+
linked: boolean;
|
|
19
|
+
global: boolean;
|
|
20
|
+
invokedPath: string;
|
|
21
|
+
executablePath: string;
|
|
22
|
+
actionManifestPath: string;
|
|
23
|
+
harnessPackage: '@farmslot/recipe-runner';
|
|
24
|
+
/** The @farmslot/recipe-cli version the harness runs on. */
|
|
25
|
+
recipeCliVersion: string;
|
|
26
|
+
}
|
|
27
|
+
export interface RunnerProvenanceOptions {
|
|
28
|
+
name?: string;
|
|
29
|
+
pinned?(root: string): boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface DoctorReport {
|
|
32
|
+
schemaVersion: 1;
|
|
33
|
+
protocolVersion: 'v1';
|
|
34
|
+
runner_protocol_version: 1;
|
|
35
|
+
status: 'pass' | 'fail';
|
|
36
|
+
checks: DoctorCheck[];
|
|
37
|
+
requiredChecks: RequiredDoctorChecks;
|
|
38
|
+
adapter: string;
|
|
39
|
+
target: string;
|
|
40
|
+
runner: RunnerProvenance;
|
|
41
|
+
manifestValidation: unknown;
|
|
42
|
+
[field: string]: unknown;
|
|
43
|
+
}
|
|
44
|
+
export interface DoctorReportOptions {
|
|
45
|
+
checks?(target: string, adapter: string): DoctorCheck[];
|
|
46
|
+
fields?(target: string, adapter: string, environment: Record<string, unknown>): Record<string, unknown>;
|
|
47
|
+
provenance?: RunnerProvenanceOptions;
|
|
48
|
+
}
|
|
49
|
+
export declare function requiredDoctorCheckSummary(checks: readonly DoctorCheck[]): RequiredDoctorChecks;
|
|
50
|
+
export declare function createDoctorReport(adapter: string, target: string, manifestValidation: {
|
|
51
|
+
summary?: {
|
|
52
|
+
errors?: number;
|
|
53
|
+
} & Record<string, unknown>;
|
|
54
|
+
}, actionManifestPath?: string, platform?: string, options?: DoctorReportOptions): DoctorReport;
|
|
55
|
+
export declare function runnerInstallKind(runnerRoot: string, invokedPath: string, executablePath: string, pinned?: (root: string) => boolean): RunnerInstallKind;
|
|
56
|
+
/** Which harness is running, from where, and how it was installed. */
|
|
57
|
+
export declare function runnerProvenance(actionManifestPath: string, options?: RunnerProvenanceOptions): RunnerProvenance;
|
|
58
|
+
//# sourceMappingURL=doctor-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-report.d.ts","sourceRoot":"","sources":["../../src/harness/doctor-report.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAShE,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAE7C,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,CAAC;AAErB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,iBAAiB,GAAG,cAAc,GAAG,KAAK,CAAC;IAC1D,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,yBAAyB,CAAC;IAC1C,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IAEtC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,CAAC,CAAC;IACjB,eAAe,EAAE,IAAI,CAAC;IACtB,uBAAuB,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,EAAE,oBAAoB,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAElC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAGxD,MAAM,CAAC,CACL,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3B,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAqCD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,oBAAoB,CAS/F;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE;IAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC/E,kBAAkB,GAAE,MAAuD,EAC3E,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,mBAAwB,GAChC,YAAY,CAiCd;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAqB,GAC9C,iBAAiB,CAqBnB;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAC9B,kBAAkB,EAAE,MAAM,EAC1B,OAAO,GAAE,uBAA4B,GACpC,gBAAgB,CAsClB"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// The doctor report every host prints: the shared checks and the required-check
|
|
2
|
+
// tally, the harness's own provenance, and the platform's checks. The host adds
|
|
3
|
+
// its report fields (what the checkout looks like to it).
|
|
4
|
+
import fs from 'node:fs';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { RECIPE_CLI_VERSION } from '../version.js';
|
|
7
|
+
import { harnessAdapter } from './adapters.js';
|
|
8
|
+
import { harnessHost, hostEnvName } from './host.js';
|
|
9
|
+
import { harnessExecutable } from './paths.js';
|
|
10
|
+
import { adapterReadiness } from './readiness.js';
|
|
11
|
+
// Keys the report and the doctor envelope own. A host field with one of these
|
|
12
|
+
// names would replace the shared value (a failing report reading `pass`) or move
|
|
13
|
+
// its place in the JSON, so it is refused.
|
|
14
|
+
const RESERVED_REPORT_KEYS = new Set([
|
|
15
|
+
'schemaVersion',
|
|
16
|
+
'protocolVersion',
|
|
17
|
+
'runner_protocol_version',
|
|
18
|
+
'status',
|
|
19
|
+
'checks',
|
|
20
|
+
'requiredChecks',
|
|
21
|
+
'adapter',
|
|
22
|
+
'target',
|
|
23
|
+
'runner',
|
|
24
|
+
'manifestValidation',
|
|
25
|
+
'ready',
|
|
26
|
+
'runtime',
|
|
27
|
+
'view',
|
|
28
|
+
'capture',
|
|
29
|
+
'featureFlags',
|
|
30
|
+
'devices',
|
|
31
|
+
'additionalReachableDevices',
|
|
32
|
+
'deviceDiscoveryErrors',
|
|
33
|
+
'next',
|
|
34
|
+
'error',
|
|
35
|
+
]);
|
|
36
|
+
function hostReportFields(fields) {
|
|
37
|
+
const reserved = Object.keys(fields).find((key) => RESERVED_REPORT_KEYS.has(key));
|
|
38
|
+
if (reserved !== undefined)
|
|
39
|
+
throw new Error(`doctor report field '${reserved}' is reserved; ${harnessHost().name} must name its field differently.`);
|
|
40
|
+
return fields;
|
|
41
|
+
}
|
|
42
|
+
export function requiredDoctorCheckSummary(checks) {
|
|
43
|
+
const required = checks.filter((check) => check.required);
|
|
44
|
+
const failed = required.filter((check) => check.status === 'fail').map((check) => check.id);
|
|
45
|
+
return {
|
|
46
|
+
status: failed.length === 0 ? 'pass' : 'fail',
|
|
47
|
+
total: required.length,
|
|
48
|
+
passed: required.length - failed.length,
|
|
49
|
+
failed,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function createDoctorReport(adapter, target, manifestValidation, actionManifestPath = harnessAdapter(adapter).actions.manifestPath(), platform, options = {}) {
|
|
53
|
+
const readiness = adapterReadiness(harnessAdapter(adapter));
|
|
54
|
+
const manifestErrors = Number(manifestValidation.summary?.errors ?? 0);
|
|
55
|
+
const checks = [
|
|
56
|
+
{
|
|
57
|
+
id: 'manifest',
|
|
58
|
+
status: manifestErrors === 0 ? 'pass' : 'fail',
|
|
59
|
+
required: true,
|
|
60
|
+
message: manifestErrors === 0
|
|
61
|
+
? 'Action manifest is valid Recipe v1.'
|
|
62
|
+
: `Action manifest has ${manifestErrors} validation error(s).`,
|
|
63
|
+
},
|
|
64
|
+
...(options.checks?.(target, adapter) ?? []),
|
|
65
|
+
...(readiness.checks?.(target, platform) ?? []),
|
|
66
|
+
];
|
|
67
|
+
const requiredChecks = requiredDoctorCheckSummary(checks);
|
|
68
|
+
const environment = readiness.environment?.(target) ?? {};
|
|
69
|
+
return {
|
|
70
|
+
schemaVersion: 1,
|
|
71
|
+
protocolVersion: 'v1',
|
|
72
|
+
runner_protocol_version: 1,
|
|
73
|
+
status: requiredChecks.status,
|
|
74
|
+
checks,
|
|
75
|
+
requiredChecks,
|
|
76
|
+
adapter,
|
|
77
|
+
target,
|
|
78
|
+
runner: runnerProvenance(actionManifestPath, options.provenance),
|
|
79
|
+
...(options.fields
|
|
80
|
+
? hostReportFields(options.fields(target, adapter, environment))
|
|
81
|
+
: { environment }),
|
|
82
|
+
manifestValidation: manifestValidation.summary,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export function runnerInstallKind(runnerRoot, invokedPath, executablePath, pinned = () => false) {
|
|
86
|
+
if (pinned(runnerRoot))
|
|
87
|
+
return 'pinned-install';
|
|
88
|
+
const normalizedRoot = path.normalize(runnerRoot);
|
|
89
|
+
const nodeModulesSegment = `${path.sep}node_modules${path.sep}`;
|
|
90
|
+
const globalNodeModulesSegment = `${path.sep}lib${path.sep}node_modules${path.sep}`;
|
|
91
|
+
if (normalizedRoot.includes(globalNodeModulesSegment))
|
|
92
|
+
return 'global-install';
|
|
93
|
+
const nodeModulesIndex = normalizedRoot.lastIndexOf(nodeModulesSegment);
|
|
94
|
+
if (nodeModulesIndex >= 0) {
|
|
95
|
+
const nodeModulesRoot = normalizedRoot.slice(0, nodeModulesIndex + nodeModulesSegment.length - 1);
|
|
96
|
+
const invoked = path.resolve(invokedPath);
|
|
97
|
+
const projectBin = `${path.join(nodeModulesRoot, '.bin')}${path.sep}`;
|
|
98
|
+
if (invoked === path.resolve(executablePath) || invoked.startsWith(projectBin)) {
|
|
99
|
+
return 'project-install';
|
|
100
|
+
}
|
|
101
|
+
return 'global-install';
|
|
102
|
+
}
|
|
103
|
+
if (path.resolve(invokedPath) !== path.resolve(executablePath))
|
|
104
|
+
return 'local-link';
|
|
105
|
+
return 'source-checkout';
|
|
106
|
+
}
|
|
107
|
+
/** Which harness is running, from where, and how it was installed. */
|
|
108
|
+
export function runnerProvenance(actionManifestPath, options = {}) {
|
|
109
|
+
const host = harnessHost();
|
|
110
|
+
const runnerDir = host.packageRoot;
|
|
111
|
+
const packagePath = path.join(runnerDir, 'package.json');
|
|
112
|
+
const packageDocument = readJsonObject(packagePath);
|
|
113
|
+
const packageName = packageDocument.name;
|
|
114
|
+
const version = packageDocument.version;
|
|
115
|
+
if (packageName !== host.packageName) {
|
|
116
|
+
throw new Error(`Expected ${host.packageName} package name in ${packagePath}`);
|
|
117
|
+
}
|
|
118
|
+
if (typeof version !== 'string' || !version) {
|
|
119
|
+
throw new Error(`Expected package version in ${packagePath}`);
|
|
120
|
+
}
|
|
121
|
+
const pinned = options.pinned ?? (() => false);
|
|
122
|
+
const executablePath = harnessExecutable();
|
|
123
|
+
const invokedPath = path.resolve(process.env[hostEnvName('INVOKED_AS')] ?? executablePath);
|
|
124
|
+
const installKind = runnerInstallKind(runnerDir, invokedPath, executablePath, pinned);
|
|
125
|
+
const packageSource = pinned(runnerDir)
|
|
126
|
+
? 'pin'
|
|
127
|
+
: runnerDir.includes(`${path.sep}node_modules${path.sep}`)
|
|
128
|
+
? 'node_modules'
|
|
129
|
+
: 'source-checkout';
|
|
130
|
+
return {
|
|
131
|
+
name: options.name ?? host.packageName,
|
|
132
|
+
packageName,
|
|
133
|
+
version,
|
|
134
|
+
runnerDir,
|
|
135
|
+
packagePath,
|
|
136
|
+
packageSource,
|
|
137
|
+
installKind,
|
|
138
|
+
linked: installKind === 'local-link',
|
|
139
|
+
global: installKind === 'global-install',
|
|
140
|
+
invokedPath,
|
|
141
|
+
executablePath,
|
|
142
|
+
actionManifestPath,
|
|
143
|
+
harnessPackage: '@farmslot/recipe-runner',
|
|
144
|
+
recipeCliVersion: RECIPE_CLI_VERSION,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
function readJsonObject(file) {
|
|
148
|
+
const value = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
149
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
150
|
+
throw new Error(`Expected JSON object in ${file}`);
|
|
151
|
+
}
|
|
152
|
+
return value;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=doctor-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-report.js","sourceRoot":"","sources":["../../src/harness/doctor-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AdapterRegistry } from '@farmslot/adapter-sdk';
|
|
2
2
|
import { type AdapterLoadOptions } from './adapter-plugins.js';
|
|
3
3
|
import type { RecipeCatalog } from './catalog.js';
|
|
4
|
-
import { type CommandContract } from './command-contract.js';
|
|
4
|
+
import { type CommandContract, type ContractValidationOptions } from './command-contract.js';
|
|
5
5
|
import { type HarnessHostConfig } from './host.js';
|
|
6
6
|
interface CommandBase {
|
|
7
7
|
name: string;
|
|
@@ -66,6 +66,15 @@ export interface HarnessCliOptions {
|
|
|
66
66
|
configuredLibraries?(): AdapterLoadOptions['configured'];
|
|
67
67
|
/** Retired option spellings and their replacements, for the unknown-option suggestion. */
|
|
68
68
|
replacedOptions?: Readonly<Record<string, string>>;
|
|
69
|
+
/** The host's own error for a value an option's choices reject; null keeps the default. */
|
|
70
|
+
explainInvalidChoice?: ContractValidationOptions['explainInvalidChoice'];
|
|
71
|
+
/**
|
|
72
|
+
* Runs whenever a command selects an adapter, after the loader (a built-in or an
|
|
73
|
+
* undeclared id has no plugin record), before help or dispatch. A refusal it
|
|
74
|
+
* throws (AdapterPluginError, RecipeTrustError, RecipeResolutionError) prints
|
|
75
|
+
* like the loader's and ends the command.
|
|
76
|
+
*/
|
|
77
|
+
afterAdapterLoad?(adapterId: string): void | Promise<void>;
|
|
69
78
|
}
|
|
70
79
|
export interface HarnessCliResult {
|
|
71
80
|
exitCode: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-cli.d.ts","sourceRoot":"","sources":["../../src/harness/harness-cli.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAM7D,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAEL,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"harness-cli.d.ts","sourceRoot":"","sources":["../../src/harness/harness-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import fs from 'node:fs';
|
|
6
6
|
import path from 'node:path';
|
|
7
7
|
import { Command, CommanderError } from 'commander';
|
|
8
|
-
import { RecipeTrustError } from '@farmslot/recipe-runner';
|
|
8
|
+
import { RecipeResolutionError, RecipeTrustError } from '@farmslot/recipe-runner';
|
|
9
9
|
import { RECIPE_CLI_VERSION } from '../version.js';
|
|
10
10
|
import { handleCallHelp } from './commands/call.js';
|
|
11
11
|
import { AdapterPluginError, adapterSelectionFailureOut, ensureAdapterLoaded, selectedAdapterId, } from './adapter-plugins.js';
|
|
@@ -56,6 +56,7 @@ export function createHarnessCli(options) {
|
|
|
56
56
|
if (!command?.hidden) {
|
|
57
57
|
const usageError = validatePublicInvocation(argv, publicCommands, {
|
|
58
58
|
replacedOptions: options.replacedOptions,
|
|
59
|
+
explainInvalidChoice: options.explainInvalidChoice,
|
|
59
60
|
});
|
|
60
61
|
if (usageError) {
|
|
61
62
|
writeUsageError(host.name, usageError, requested(argv, '--json'), requested(argv, '--json-stream'));
|
|
@@ -65,11 +66,7 @@ export function createHarnessCli(options) {
|
|
|
65
66
|
await options.libraries?.hydrate(targetFromArgv(argv));
|
|
66
67
|
// A library-declared adapter loads only when the command selects it.
|
|
67
68
|
if (command) {
|
|
68
|
-
const refused = await loadSelectedAdapter(command.name, argv, {
|
|
69
|
-
adopt: options.adopt,
|
|
70
|
-
configured: options.configuredLibraries?.(),
|
|
71
|
-
env: operatorEnv,
|
|
72
|
-
});
|
|
69
|
+
const refused = await loadSelectedAdapter(command.name, argv, { adopt: options.adopt, configured: options.configuredLibraries?.(), env: operatorEnv }, options.afterAdapterLoad);
|
|
73
70
|
if (refused !== undefined)
|
|
74
71
|
return { exitCode: refused, exit: 'now' };
|
|
75
72
|
}
|
|
@@ -137,18 +134,21 @@ export function createHarnessCli(options) {
|
|
|
137
134
|
}
|
|
138
135
|
// Loads the adapter the command selects (`selectedAdapterId`), if a library
|
|
139
136
|
// declares it. A refused plugin prints its code and next step; returns that exit.
|
|
140
|
-
async function loadSelectedAdapter(command, argv, load) {
|
|
137
|
+
async function loadSelectedAdapter(command, argv, load, afterAdapterLoad) {
|
|
141
138
|
const tokens = argv.slice(1);
|
|
142
139
|
const selected = selectedAdapterId(tokens);
|
|
143
140
|
if (selected === undefined)
|
|
144
141
|
return undefined;
|
|
145
142
|
try {
|
|
146
143
|
await ensureAdapterLoaded(selected, { ...load, libraries: optionValues(tokens, '--library') });
|
|
144
|
+
await afterAdapterLoad?.(selected);
|
|
147
145
|
return undefined;
|
|
148
146
|
}
|
|
149
147
|
catch (error) {
|
|
150
|
-
// A refused plugin, or the library reader's refusal of its source.
|
|
151
|
-
if (error instanceof AdapterPluginError ||
|
|
148
|
+
// A refused plugin, or the library reader's refusal of its source or its path.
|
|
149
|
+
if (error instanceof AdapterPluginError ||
|
|
150
|
+
error instanceof RecipeTrustError ||
|
|
151
|
+
error instanceof RecipeResolutionError) {
|
|
152
152
|
const failure = { code: error.code, message: error.message, userAction: error.userAction };
|
|
153
153
|
if (requested(argv, '--json-stream')) {
|
|
154
154
|
const stream = new JsonStreamWriter(command, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-cli.js","sourceRoot":"","sources":["../../src/harness/harness-cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"harness-cli.js","sourceRoot":"","sources":["../../src/harness/harness-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export declare function ensureOverlay(adapter: string, target: string, heal: Hea
|
|
|
8
8
|
ok: boolean;
|
|
9
9
|
error?: string;
|
|
10
10
|
}>;
|
|
11
|
-
export type FailureClass = 'capture-protected' | 'wallet' | 'infra' | 'app';
|
|
11
|
+
export type FailureClass = 'capture-protected' | 'environment' | 'wallet' | 'infra' | 'app';
|
|
12
12
|
export declare function classifyFailure(output: string): FailureClass;
|
|
13
13
|
export declare function recipeRunning(target: string): boolean;
|
|
14
14
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heal-bounds.d.ts","sourceRoot":"","sources":["../../src/harness/heal-bounds.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,kBAAkB,EAClB,UAAU,EACV,SAAS,EACV,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"heal-bounds.d.ts","sourceRoot":"","sources":["../../src/harness/heal-bounds.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,kBAAkB,EAClB,UAAU,EACV,SAAS,EACV,MAAM,uBAAuB,CAAC;AAS/B,wBAAgB,YAAY,IAAI,SAAS,CAExC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACzC,QAAQ,EAAE,UAAU,GACnB,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAKhC;AAoCD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B1C;AAWD,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAE5F,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAO5D;AAsCD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAK/F;AAKD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,GACf,kBAAkB,GAAG,IAAI,CAuE3B"}
|
|
@@ -11,6 +11,7 @@ import { assertAdaptersRegistered, harnessAdapter, harnessAdapters } from './ada
|
|
|
11
11
|
import { harnessHost, hostEnvName } from './host.js';
|
|
12
12
|
import { handleHarness } from './overlay.js';
|
|
13
13
|
import { recipeHarnessPath, recipeRuntimePath } from './paths.js';
|
|
14
|
+
import { recordingUnsupportedFailure } from './recording-target.js';
|
|
14
15
|
import { EXIT } from './shared.js';
|
|
15
16
|
export function newHealState() {
|
|
16
17
|
return { recovered: [], mutations: [], attemptedRecoveries: [] };
|
|
@@ -102,6 +103,8 @@ export async function ensureOverlay(adapter, target, heal, state, json) {
|
|
|
102
103
|
export function classifyFailure(output) {
|
|
103
104
|
if (captureProtection(output))
|
|
104
105
|
return 'capture-protected';
|
|
106
|
+
if (environmentGap(output))
|
|
107
|
+
return 'environment';
|
|
105
108
|
if (matchesAny('transportFirst', output))
|
|
106
109
|
return 'infra';
|
|
107
110
|
if (matchesAny('walletState', output))
|
|
@@ -119,13 +122,26 @@ function adapterPatterns() {
|
|
|
119
122
|
return patterns ? [patterns] : [];
|
|
120
123
|
});
|
|
121
124
|
}
|
|
125
|
+
// A global or sticky pattern keeps lastIndex between calls; classification
|
|
126
|
+
// tests the same pattern more than once, so every test starts from 0.
|
|
127
|
+
function matches(pattern, output) {
|
|
128
|
+
if (!pattern)
|
|
129
|
+
return false;
|
|
130
|
+
pattern.lastIndex = 0;
|
|
131
|
+
return pattern.test(output);
|
|
132
|
+
}
|
|
122
133
|
function matchesAny(kind, output) {
|
|
123
|
-
return adapterPatterns().some((patterns) => patterns[kind]
|
|
134
|
+
return adapterPatterns().some((patterns) => matches(patterns[kind], output));
|
|
124
135
|
}
|
|
125
136
|
function captureProtection(output) {
|
|
126
137
|
return adapterPatterns()
|
|
127
138
|
.map((patterns) => patterns.captureProtected)
|
|
128
|
-
.find((entry) => entry?.pattern
|
|
139
|
+
.find((entry) => matches(entry?.pattern, output));
|
|
140
|
+
}
|
|
141
|
+
function environmentGap(output) {
|
|
142
|
+
return adapterPatterns()
|
|
143
|
+
.map((patterns) => patterns.environment)
|
|
144
|
+
.find((entry) => matches(entry?.pattern, output));
|
|
129
145
|
}
|
|
130
146
|
// Refuse ALL recovery while a recipe is executing (mid-run recovery would corrupt
|
|
131
147
|
// state). Signalled by a lock file or <envPrefix>_RECIPE_RUNNING=1.
|
|
@@ -159,6 +175,11 @@ export function checkHealBounds(target, output, state) {
|
|
|
159
175
|
originalError,
|
|
160
176
|
};
|
|
161
177
|
}
|
|
178
|
+
// A missing harness capability, not app logic. The run already started, so
|
|
179
|
+
// this is bounded (4), not the preflight's usage refusal (2).
|
|
180
|
+
const recording = recordingUnsupportedFailure(output);
|
|
181
|
+
if (recording)
|
|
182
|
+
return { ...recording, exitCode: EXIT.bounded, originalError };
|
|
162
183
|
const concise = conciseFailureForHuman(output);
|
|
163
184
|
const failureClass = classifyFailure(concise);
|
|
164
185
|
const protectedCapture = failureClass === 'capture-protected' ? captureProtection(concise) : undefined;
|
|
@@ -171,6 +192,16 @@ export function checkHealBounds(target, output, state) {
|
|
|
171
192
|
originalError,
|
|
172
193
|
};
|
|
173
194
|
}
|
|
195
|
+
const gap = failureClass === 'environment' ? environmentGap(concise) : undefined;
|
|
196
|
+
if (gap) {
|
|
197
|
+
return {
|
|
198
|
+
code: 'ENVIRONMENT_NOT_READY',
|
|
199
|
+
exitCode: EXIT.bounded,
|
|
200
|
+
message: gap.message,
|
|
201
|
+
userAction: gap.userAction,
|
|
202
|
+
originalError,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
174
205
|
if (failureClass === 'wallet') {
|
|
175
206
|
return {
|
|
176
207
|
code: 'WALLET_STATE_REQUIRED',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heal-bounds.js","sourceRoot":"","sources":["../../src/harness/heal-bounds.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"heal-bounds.js","sourceRoot":"","sources":["../../src/harness/heal-bounds.ts"],"names":[],"mappings":"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"}
|