@farmslot/recipe-cli 0.11.4 → 0.13.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 (110) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/discovery-index.d.ts +9 -0
  3. package/dist/discovery-index.d.ts.map +1 -1
  4. package/dist/discovery-index.js +4 -1
  5. package/dist/discovery-index.js.map +1 -1
  6. package/dist/harness/adapter-plugins.d.ts +2 -1
  7. package/dist/harness/adapter-plugins.d.ts.map +1 -1
  8. package/dist/harness/adapter-plugins.js +1 -1
  9. package/dist/harness/adapter-plugins.js.map +1 -1
  10. package/dist/harness/adapters.d.ts +1 -0
  11. package/dist/harness/adapters.d.ts.map +1 -1
  12. package/dist/harness/adapters.js +1 -1
  13. package/dist/harness/adapters.js.map +1 -1
  14. package/dist/harness/catalog.d.ts +8 -1
  15. package/dist/harness/catalog.d.ts.map +1 -1
  16. package/dist/harness/catalog.js +125 -1
  17. package/dist/harness/catalog.js.map +1 -1
  18. package/dist/harness/commands/call.d.ts +7 -0
  19. package/dist/harness/commands/call.d.ts.map +1 -1
  20. package/dist/harness/commands/call.js +15 -10
  21. package/dist/harness/commands/call.js.map +1 -1
  22. package/dist/harness/commands/discover.d.ts +4 -0
  23. package/dist/harness/commands/discover.d.ts.map +1 -1
  24. package/dist/harness/commands/discover.js +7 -7
  25. package/dist/harness/commands/discover.js.map +1 -1
  26. package/dist/harness/commands/run.d.ts +12 -1
  27. package/dist/harness/commands/run.d.ts.map +1 -1
  28. package/dist/harness/commands/run.js +90 -21
  29. package/dist/harness/commands/run.js.map +1 -1
  30. package/dist/harness/conformance.d.ts +35 -0
  31. package/dist/harness/conformance.d.ts.map +1 -0
  32. package/dist/harness/conformance.js +244 -0
  33. package/dist/harness/conformance.js.map +1 -0
  34. package/dist/harness/context-state.d.ts +55 -0
  35. package/dist/harness/context-state.d.ts.map +1 -1
  36. package/dist/harness/context-state.js +11 -0
  37. package/dist/harness/context-state.js.map +1 -1
  38. package/dist/harness/context.d.ts +51 -2
  39. package/dist/harness/context.d.ts.map +1 -1
  40. package/dist/harness/context.js +461 -26
  41. package/dist/harness/context.js.map +1 -1
  42. package/dist/harness/execution-provenance.d.ts +9 -5
  43. package/dist/harness/execution-provenance.d.ts.map +1 -1
  44. package/dist/harness/execution-provenance.js +56 -5
  45. package/dist/harness/execution-provenance.js.map +1 -1
  46. package/dist/harness/harness-cli.d.ts +3 -0
  47. package/dist/harness/harness-cli.d.ts.map +1 -1
  48. package/dist/harness/harness-cli.js +9 -3
  49. package/dist/harness/harness-cli.js.map +1 -1
  50. package/dist/harness/host.d.ts +10 -0
  51. package/dist/harness/host.d.ts.map +1 -1
  52. package/dist/harness/host.js +26 -0
  53. package/dist/harness/host.js.map +1 -1
  54. package/dist/harness/index.d.ts +12 -9
  55. package/dist/harness/index.d.ts.map +1 -1
  56. package/dist/harness/index.js +12 -9
  57. package/dist/harness/index.js.map +1 -1
  58. package/dist/harness/json-stream.d.ts +7 -2
  59. package/dist/harness/json-stream.d.ts.map +1 -1
  60. package/dist/harness/json-stream.js +76 -10
  61. package/dist/harness/json-stream.js.map +1 -1
  62. package/dist/harness/library-provenance.d.ts +2 -1
  63. package/dist/harness/library-provenance.d.ts.map +1 -1
  64. package/dist/harness/library-provenance.js +5 -1
  65. package/dist/harness/library-provenance.js.map +1 -1
  66. package/dist/harness/live-adapter-contract.d.ts +1 -1
  67. package/dist/harness/live-adapter-contract.d.ts.map +1 -1
  68. package/dist/harness/live-adapter-contract.js +38 -96
  69. package/dist/harness/live-adapter-contract.js.map +1 -1
  70. package/dist/harness/parse-args.d.ts +2 -0
  71. package/dist/harness/parse-args.d.ts.map +1 -1
  72. package/dist/harness/parse-args.js +4 -1
  73. package/dist/harness/parse-args.js.map +1 -1
  74. package/dist/harness/paths.d.ts +4 -0
  75. package/dist/harness/paths.d.ts.map +1 -1
  76. package/dist/harness/paths.js +22 -0
  77. package/dist/harness/paths.js.map +1 -1
  78. package/dist/harness/project-command.d.ts +11 -0
  79. package/dist/harness/project-command.d.ts.map +1 -0
  80. package/dist/harness/project-command.js +32 -0
  81. package/dist/harness/project-command.js.map +1 -0
  82. package/dist/harness/project-host.d.ts +22 -0
  83. package/dist/harness/project-host.d.ts.map +1 -0
  84. package/dist/harness/project-host.js +201 -0
  85. package/dist/harness/project-host.js.map +1 -0
  86. package/dist/harness/recipe-library.d.ts +12 -5
  87. package/dist/harness/recipe-library.d.ts.map +1 -1
  88. package/dist/harness/recipe-library.js +27 -8
  89. package/dist/harness/recipe-library.js.map +1 -1
  90. package/dist/harness/recipe-validation.d.ts +2 -1
  91. package/dist/harness/recipe-validation.d.ts.map +1 -1
  92. package/dist/harness/recipe-validation.js +4 -9
  93. package/dist/harness/recipe-validation.js.map +1 -1
  94. package/dist/harness/run-diagnostics.d.ts +2 -0
  95. package/dist/harness/run-diagnostics.d.ts.map +1 -1
  96. package/dist/harness/run-diagnostics.js +41 -0
  97. package/dist/harness/run-diagnostics.js.map +1 -1
  98. package/dist/harness/run-engine.d.ts +20 -2
  99. package/dist/harness/run-engine.d.ts.map +1 -1
  100. package/dist/harness/run-engine.js +227 -21
  101. package/dist/harness/run-engine.js.map +1 -1
  102. package/dist/harness/run-options.d.ts +2 -0
  103. package/dist/harness/run-options.d.ts.map +1 -1
  104. package/dist/harness/run-options.js +7 -5
  105. package/dist/harness/run-options.js.map +1 -1
  106. package/dist/harness/shared.d.ts +1 -0
  107. package/dist/harness/shared.d.ts.map +1 -1
  108. package/dist/harness/shared.js +62 -189
  109. package/dist/harness/shared.js.map +1 -1
  110. package/package.json +5 -5
@@ -1,7 +1,7 @@
1
1
  export { adapterChoices, type AdapterLibraryOptions, type AdapterLoadOptions, adapterPlugin, adapterPluginChecks, AdapterPluginError, type AdapterPluginErrorCode, adapterSelectionFailureOut, composeAdapter, type DeclaredAdapter, declaredAdapterIds, declaredAdapters, ensureAdapterLoaded, type LoadedAdapterPlugin, loadedAdapterPlugins, selectedAdapterId, } from './adapter-plugins.js';
2
- export { adapterDetectNext, adapterFlags, adapterForPlatform, assertAdapter, configureHarnessAdapters, type DeclaredDetect, detectAdapter, detectAdapterMatch, type DetectEntry, harnessAdapter, harnessAdapters, isPlatformTarget, pickDetected, undetectedAdapterMessage, } from './adapters.js';
2
+ export { adapterDetectNext, adapterFlags, adapterForPlatform, assertAdapter, checkoutRemote, configureHarnessAdapters, type DeclaredDetect, detectAdapter, detectAdapterMatch, type DetectEntry, harnessAdapter, harnessAdapters, isPlatformTarget, pickDetected, undetectedAdapterMessage, } from './adapters.js';
3
3
  export { type ArtifactManifestEntry, indexArtifactManifest, readContainedJsonArtifact, writeContainedArtifact, } from './artifact-files.js';
4
- export { type ActionCapabilitySource, type DescribedAction, describeManifestActions, type RecipeCatalog, type ResolvedActionManifest, } from './catalog.js';
4
+ export { type ActionCapabilitySource, createRuntimeRecipeCatalog, type DescribedAction, describeManifestActions, type RecipeCatalog, type ResolvedActionManifest, type RuntimeRecipeCatalogOptions, } from './catalog.js';
5
5
  export { acquireCheckoutLock, type CheckoutLock, type CheckoutLockFailure, trackCheckoutChild, } from './checkout-lock.js';
6
6
  export { classifyLogEvent, color, colorEnabled, colorHumanMessage, colorKv, colorLogEvent, colorStatusWord, stripAnsi, } from './cli-color.js';
7
7
  export { booleanOption, type CliUsageError, type CliUsageErrorCode, type CommandContract, type ContractedCommand, type ContractFailures, contractOptions, contractPositionals, type ContractValidationOptions, type InvalidChoice, optionalValueOption, type OptionSpec, optionValues, type PositionalSpec, publicCommandTokens, validatePublicInvocation, valueOption, } from './command-contract.js';
@@ -21,27 +21,30 @@ export { handleStatus, type StatusCommandOptions } from './commands/status.js';
21
21
  export { changedLines, formatDuration, handleStatusTaskView, renderAcceptanceLines, renderTaskView, runStatusWatch, type StatusWatchDeps, type StatusWatchOptions, } from './commands/status-watch.js';
22
22
  export { handleStop, type StopCommandOptions, type StoppedCompanion } from './commands/stop.js';
23
23
  export { handleTaskInit, type TaskInitCommandOptions } from './commands/task-init.js';
24
- export { contextPorts, formatHarnessContext, resolveHarnessContext, type ResolveHarnessContextOptions, runtimeContextOwned, } from './context.js';
25
- export { AdapterAmbiguousError, type AdapterCandidate, contextAdapter, type ContextPortName, type ContextSource, type DetectMatch, type HarnessContext, harnessContext, harnessContextField, setHarnessContext, } from './context-state.js';
24
+ export { assertConformanceReportCurrent, checkRecipeConformance, conformanceChecksPass, recipeConformanceIdentity, type RecipeConformanceOptions, writeRecipeConformanceReport, } from './conformance.js';
25
+ export { authorizedProjectLibraries, type ConfiguredRecipeProject, contextPorts, formatHarnessContext, loadProjectProvider, type LoadProjectProviderOptions, type ProjectProvider, recipePackageRoot, resolveHarnessContext, type ResolveHarnessContextOptions, resolveProjectContext, type ResolveProjectContextOptions, runtimeContextOwned, } from './context.js';
26
+ export { AdapterAmbiguousError, type AdapterCandidate, contextAdapter, type ContextPortName, type ContextSource, type DetectMatch, type HarnessContext, harnessContext, harnessContextField, ProjectBindingError, type ResolvedProjectBinding, type ResolvedProjectLibrary, setHarnessContext, } from './context-state.js';
26
27
  export { createDoctorReport, type DoctorCheck, type DoctorReport, type DoctorReportOptions, type RequiredDoctorChecks, requiredDoctorCheckSummary, type RunnerInstallKind, runnerInstallKind, type RunnerProvenance, runnerProvenance, type RunnerProvenanceOptions, } from './doctor-report.js';
27
- export { captureExecutionProvenance, type ExecutionProvenanceDrift, executionProvenanceDrift, type ExecutionProvenanceInput, type ExecutionProvenancePhase, type ExecutionProvenanceRecord, type ExecutionProvenanceSnapshot, ProvenanceDriftError, type SourceProvenanceSnapshot, writeExecutionProvenance, } from './execution-provenance.js';
28
+ export { captureExecutionProvenance, type ExecutionProvenanceDrift, executionProvenanceDrift, type ExecutionProvenanceInput, type ExecutionProvenancePhase, type ExecutionProvenanceRecord, type ExecutionProvenanceSnapshot, fileFingerprint, ProvenanceDriftError, providerSourceSnapshot, type SourceProvenanceSnapshot, sourceSnapshot, writeExecutionProvenance, } from './execution-provenance.js';
28
29
  export { createHarnessCli, type HarnessCli, type HarnessCliOptions, type HarnessCliResult, type HarnessCommand, type HarnessHelp, type HarnessHelpGroup, type HelpPaint, type HiddenHarnessCommand, type PublicHarnessCommand, } from './harness-cli.js';
29
30
  export { checkHealBounds, classifyFailure, conciseFailureForHuman, ensureOverlay, type FailureClass, newHealState, parseHeal, recipeRunning, } from './heal-bounds.js';
30
- export { configureHarnessHost, type HarnessHost, harnessHost, type HarnessHostConfig, hostEnvName, recipeEnvName, validateRelativeRecipePath, } from './host.js';
31
- export { JsonStreamWriter } from './json-stream.js';
31
+ export { configureHarnessHost, type HarnessHost, harnessHost, type HarnessHostConfig, hostEnvName, recipeEnvName, validateRelativeRecipePath, withRecipeSignals, } from './host.js';
32
+ export { failStream, JsonStreamWriter } from './json-stream.js';
32
33
  export { leafStartFailureMessage, missingShellLeafMessage, resolveLeafInvoke, shellLeafMissing, } from './leaf-invoke.js';
33
34
  export { gitLibraryProvenance } from './library-provenance.js';
34
35
  export { liveAdapterProcessTimeoutMs, type LiveAdapterRun, type PreparedLiveAdapter, prepareLiveAdapterScript, resolveLiveAdapter, resolveTsxBin, runLiveAdapterScript, } from './live-adapter-contract.js';
35
36
  export { runNetworkCaptureAction } from './network-observation.js';
36
37
  export { argValue, handleHarness, type HarnessAction, hasArg, type OverlayCommandOptions, type OverlayInstallContext, readRuntimeContextField, resolveRuntimeContextPath, } from './overlay.js';
37
38
  export { actionManifestPathOption, adapterOption, applyRuntimeDirOption, applyWatcherPortOption, CliError, type CliOptions, type CliOptionValue, isRecord, optionFlag, optionString, optionStrings, parseArgs, type ParseArgsOptions, type ParsedArgs, parsePort, parseRecipeParamAssignments, requiredOption, resolveAdapter, shellQuote, shellQuoteArg, targetPath, usageError, } from './parse-args.js';
38
- export { DEFAULT_RECIPE_HARNESS_ROOT, DEFAULT_RECIPE_RUNTIME_DIR, harnessExecutable, PREPARE_PROGRESS_ARTIFACT, recipeHarnessPath, recipeHarnessRoot, recipeRuntimeDir, recipeRuntimePath, } from './paths.js';
39
+ export { DEFAULT_RECIPE_HARNESS_ROOT, DEFAULT_RECIPE_RUNTIME_DIR, harnessExecutable, PREPARE_PROGRESS_ARTIFACT, recipeHarnessPath, recipeHarnessRoot, recipeOutputRoots, recipeRuntimeDir, recipeRuntimePath, } from './paths.js';
40
+ export { isRecipeExecution, parseProjectInvocation, type ProjectCommandInvocation, } from './project-command.js';
41
+ export { type ProjectRecipeHost, type ProjectRecipeHostOptions, withProjectRecipeHost, } from './project-host.js';
39
42
  export { type DevicePreview, type FeatureFlagReport, type ReadinessViewOptions, renderFeatureFlagLine, } from './readiness.js';
40
43
  export { describeRunnableRecipe, listRunnableRecipes, type RecipeParameterSummary, resolveLibrarySources, runnableLibraryRecipes, type RunnableRecipe, type RunnableRecipeDetail, } from './recipe-library.js';
41
44
  export { type RunRecipeStaticValidation, validateActionInputs, validateCommandNodes, validateRunRecipeStatic, } from './recipe-validation.js';
42
45
  export { captureHelperPath, captureHelperSupportsCapability, captureHelperSupportsRecordSessionSnapshots, createRecordingTargetProvider, } from './recording-target.js';
43
46
  export { beginRunDiagnostics, type CaptureEvidence, type ClassifiedConsoleRecord, collectRunDiagnostics, type ConsoleAllowlist, type ConsoleAllowlistMatch, type ConsoleCaptureSpec, type ConsoleClassifier, type ConsoleEventKey, type ConsoleRecord, finishRunDiagnostics, formatRunDiagnosticsForHuman, readRunDiagnosticsDocument, type RecipeRunEvidence, type RunDiagnosticBaseline, type RunDiagnosticsDocument, type RunSideFinding, verifyConsoleCapture, } from './run-diagnostics.js';
44
- export { activateRecipeRuntimeEnvironment, countRecipeNodes, preflightRecipe, type PreparedRecipeExecution, type RecipeEngine, type RecipeEngineRunOptions, type RecipeRunnerOptions, runRecipe, type TrustedMutationAuthorizeContext, type TrustedMutationLoadInput, } from './run-engine.js';
47
+ export { activateRecipeRuntimeEnvironment, countRecipeNodes, createDefaultRecipeEngine, type DefaultRecipeEngineOptions, preflightRecipe, type PreparedRecipeExecution, type RecipeEngine, type RecipeEngineRunOptions, type RecipeRunnerOptions, runRecipe, type TrustedMutationAuthorizeContext, type TrustedMutationLoadInput, } from './run-engine.js';
45
48
  export { recipeRunOptionsFromCli } from './run-options.js';
46
49
  export { type ActiveRecipeRecording, captureActiveRecipeRecordingSnapshot, type RecipeRecordingOptions, startRecipeRecording, stopRecipeRecording, } from './run-recording.js';
47
50
  export { executedBrowser, indexProductProvenanceArtifact, recipeCdpPorts, type RunReport, writeRunReport, writeViolationReport, } from './run-report.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
  // presets such as `mm-harness`): host identity, runtime paths, the resumability
3
3
  // journal, the checkout lock, JSON streaming and colour output.
4
4
  export { adapterChoices, adapterPlugin, adapterPluginChecks, AdapterPluginError, adapterSelectionFailureOut, composeAdapter, declaredAdapterIds, declaredAdapters, ensureAdapterLoaded, loadedAdapterPlugins, selectedAdapterId, } from './adapter-plugins.js';
5
- export { adapterDetectNext, adapterFlags, adapterForPlatform, assertAdapter, configureHarnessAdapters, detectAdapter, detectAdapterMatch, harnessAdapter, harnessAdapters, isPlatformTarget, pickDetected, undetectedAdapterMessage, } from './adapters.js';
5
+ export { adapterDetectNext, adapterFlags, adapterForPlatform, assertAdapter, checkoutRemote, configureHarnessAdapters, detectAdapter, detectAdapterMatch, harnessAdapter, harnessAdapters, isPlatformTarget, pickDetected, undetectedAdapterMessage, } from './adapters.js';
6
6
  export { indexArtifactManifest, readContainedJsonArtifact, writeContainedArtifact, } from './artifact-files.js';
7
- export { describeManifestActions, } from './catalog.js';
7
+ export { createRuntimeRecipeCatalog, describeManifestActions, } from './catalog.js';
8
8
  export { acquireCheckoutLock, trackCheckoutChild, } from './checkout-lock.js';
9
9
  export { classifyLogEvent, color, colorEnabled, colorHumanMessage, colorKv, colorLogEvent, colorStatusWord, stripAnsi, } from './cli-color.js';
10
10
  export { booleanOption, contractOptions, contractPositionals, optionalValueOption, optionValues, publicCommandTokens, validatePublicInvocation, valueOption, } from './command-contract.js';
@@ -24,27 +24,30 @@ export { handleStatus } from './commands/status.js';
24
24
  export { changedLines, formatDuration, handleStatusTaskView, renderAcceptanceLines, renderTaskView, runStatusWatch, } from './commands/status-watch.js';
25
25
  export { handleStop } from './commands/stop.js';
26
26
  export { handleTaskInit } from './commands/task-init.js';
27
- export { contextPorts, formatHarnessContext, resolveHarnessContext, runtimeContextOwned, } from './context.js';
28
- export { AdapterAmbiguousError, contextAdapter, harnessContext, harnessContextField, setHarnessContext, } from './context-state.js';
27
+ export { assertConformanceReportCurrent, checkRecipeConformance, conformanceChecksPass, recipeConformanceIdentity, writeRecipeConformanceReport, } from './conformance.js';
28
+ export { authorizedProjectLibraries, contextPorts, formatHarnessContext, loadProjectProvider, recipePackageRoot, resolveHarnessContext, resolveProjectContext, runtimeContextOwned, } from './context.js';
29
+ export { AdapterAmbiguousError, contextAdapter, harnessContext, harnessContextField, ProjectBindingError, setHarnessContext, } from './context-state.js';
29
30
  export { createDoctorReport, requiredDoctorCheckSummary, runnerInstallKind, runnerProvenance, } from './doctor-report.js';
30
- export { captureExecutionProvenance, executionProvenanceDrift, ProvenanceDriftError, writeExecutionProvenance, } from './execution-provenance.js';
31
+ export { captureExecutionProvenance, executionProvenanceDrift, fileFingerprint, ProvenanceDriftError, providerSourceSnapshot, sourceSnapshot, writeExecutionProvenance, } from './execution-provenance.js';
31
32
  export { createHarnessCli, } from './harness-cli.js';
32
33
  export { checkHealBounds, classifyFailure, conciseFailureForHuman, ensureOverlay, newHealState, parseHeal, recipeRunning, } from './heal-bounds.js';
33
- export { configureHarnessHost, harnessHost, hostEnvName, recipeEnvName, validateRelativeRecipePath, } from './host.js';
34
- export { JsonStreamWriter } from './json-stream.js';
34
+ export { configureHarnessHost, harnessHost, hostEnvName, recipeEnvName, validateRelativeRecipePath, withRecipeSignals, } from './host.js';
35
+ export { failStream, JsonStreamWriter } from './json-stream.js';
35
36
  export { leafStartFailureMessage, missingShellLeafMessage, resolveLeafInvoke, shellLeafMissing, } from './leaf-invoke.js';
36
37
  export { gitLibraryProvenance } from './library-provenance.js';
37
38
  export { liveAdapterProcessTimeoutMs, prepareLiveAdapterScript, resolveLiveAdapter, resolveTsxBin, runLiveAdapterScript, } from './live-adapter-contract.js';
38
39
  export { runNetworkCaptureAction } from './network-observation.js';
39
40
  export { argValue, handleHarness, hasArg, readRuntimeContextField, resolveRuntimeContextPath, } from './overlay.js';
40
41
  export { actionManifestPathOption, adapterOption, applyRuntimeDirOption, applyWatcherPortOption, CliError, isRecord, optionFlag, optionString, optionStrings, parseArgs, parsePort, parseRecipeParamAssignments, requiredOption, resolveAdapter, shellQuote, shellQuoteArg, targetPath, usageError, } from './parse-args.js';
41
- export { DEFAULT_RECIPE_HARNESS_ROOT, DEFAULT_RECIPE_RUNTIME_DIR, harnessExecutable, PREPARE_PROGRESS_ARTIFACT, recipeHarnessPath, recipeHarnessRoot, recipeRuntimeDir, recipeRuntimePath, } from './paths.js';
42
+ export { DEFAULT_RECIPE_HARNESS_ROOT, DEFAULT_RECIPE_RUNTIME_DIR, harnessExecutable, PREPARE_PROGRESS_ARTIFACT, recipeHarnessPath, recipeHarnessRoot, recipeOutputRoots, recipeRuntimeDir, recipeRuntimePath, } from './paths.js';
43
+ export { isRecipeExecution, parseProjectInvocation, } from './project-command.js';
44
+ export { withProjectRecipeHost, } from './project-host.js';
42
45
  export { renderFeatureFlagLine, } from './readiness.js';
43
46
  export { describeRunnableRecipe, listRunnableRecipes, resolveLibrarySources, runnableLibraryRecipes, } from './recipe-library.js';
44
47
  export { validateActionInputs, validateCommandNodes, validateRunRecipeStatic, } from './recipe-validation.js';
45
48
  export { captureHelperPath, captureHelperSupportsCapability, captureHelperSupportsRecordSessionSnapshots, createRecordingTargetProvider, } from './recording-target.js';
46
49
  export { beginRunDiagnostics, collectRunDiagnostics, finishRunDiagnostics, formatRunDiagnosticsForHuman, readRunDiagnosticsDocument, verifyConsoleCapture, } from './run-diagnostics.js';
47
- export { activateRecipeRuntimeEnvironment, countRecipeNodes, preflightRecipe, runRecipe, } from './run-engine.js';
50
+ export { activateRecipeRuntimeEnvironment, countRecipeNodes, createDefaultRecipeEngine, preflightRecipe, runRecipe, } from './run-engine.js';
48
51
  export { recipeRunOptionsFromCli } from './run-options.js';
49
52
  export { captureActiveRecipeRecordingSnapshot, startRecipeRecording, stopRecipeRecording, } from './run-recording.js';
50
53
  export { executedBrowser, indexProductProvenanceArtifact, recipeCdpPorts, writeRunReport, writeViolationReport, } from './run-report.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,18 @@
1
1
  import type { CommandEventStream, StageHandle } from '@farmslot/adapter-sdk';
2
2
  type JsonFields = Record<string, unknown>;
3
+ /** Release machine output only after closeout; retain failed invocation output as diagnostics. */
4
+ export declare function deferCommandOutput(): (success: boolean) => void;
3
5
  export declare class JsonStreamWriter implements CommandEventStream {
4
6
  readonly enabled: boolean;
5
7
  readonly command: string;
6
8
  private completed;
9
+ private deferredResult;
7
10
  private lastError;
8
11
  private readonly writeLine;
9
12
  private readonly stages;
10
13
  constructor(command: string, enabled: boolean, output?: Pick<NodeJS.WriteStream, 'write'>);
14
+ /** Keep progress live, but release error/completion only after the host has closed. */
15
+ deferResult(): () => void;
11
16
  isolateStdout(): () => void;
12
17
  emit(event: string, fields?: JsonFields): void;
13
18
  phase(phase: string, fields?: JsonFields): void;
@@ -18,10 +23,10 @@ export declare class JsonStreamWriter implements CommandEventStream {
18
23
  }): StageHandle;
19
24
  mutation(mutation: JsonFields): void;
20
25
  recovery(code: string): void;
21
- error(error: JsonFields): void;
26
+ error(error: JsonFields, cause?: unknown): void;
22
27
  complete(status: 'pass' | 'fail' | 'unknown', exitCode: number, fields?: JsonFields): void;
23
28
  }
24
29
  /** Ends a stream on a thrown error: an `error` event, then `complete` (fail). */
25
- export declare function failStream(stream: JsonStreamWriter, error: unknown, code: string): void;
30
+ export declare function failStream(stream: JsonStreamWriter, error: unknown, code: string, defaultExitCode?: number): number;
26
31
  export {};
27
32
  //# sourceMappingURL=json-stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-stream.d.ts","sourceRoot":"","sources":["../../src/harness/json-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI7E,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,qBAAa,gBAAiB,YAAW,kBAAkB;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0E;gBAG/F,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAkB;IAU5D,aAAa,IAAI,MAAM,IAAI;IAc3B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,IAAI;IAalD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,IAAI;IAKnD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI;IAKnF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IAI5E,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI;IAIpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5B,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAK9B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,IAAI;CAQ/F;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAavF"}
1
+ {"version":3,"file":"json-stream.d.ts","sourceRoot":"","sources":["../../src/harness/json-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI7E,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAqB1C,kGAAkG;AAClG,wBAAgB,kBAAkB,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAuB/D;AAED,qBAAa,gBAAiB,YAAW,kBAAkB;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0E;gBAG/F,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAkB;IAU5D,uFAAuF;IACvF,WAAW,IAAI,MAAM,IAAI;IAczB,aAAa,IAAI,MAAM,IAAI;IAU3B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,IAAI;IAalD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,IAAI;IAKnD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI;IAKnF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IAI5E,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI;IAIpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5B,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAyB/C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,IAAI;CAY/F;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CACxB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,eAAe,SAAI,GAClB,MAAM,CAiBR"}
@@ -1,5 +1,34 @@
1
1
  import { recordCommandStage } from './command-journal.js';
2
2
  import { createStageReporter } from './stage-progress.js';
3
+ function redirectStdout(write) {
4
+ const original = process.stdout.write;
5
+ process.stdout.write = write;
6
+ return () => {
7
+ if (process.stdout.write === write)
8
+ process.stdout.write = original;
9
+ };
10
+ }
11
+ /** Release machine output only after closeout; retain failed invocation output as diagnostics. */
12
+ export function deferCommandOutput() {
13
+ const chunks = [];
14
+ const write = process.stdout.write.bind(process.stdout);
15
+ const restore = redirectStdout(((chunk, encoding, callback) => {
16
+ chunks.push(typeof chunk === 'string'
17
+ ? Buffer.from(chunk, typeof encoding === 'string' ? encoding : 'utf8')
18
+ : Buffer.from(chunk));
19
+ (typeof encoding === 'function' ? encoding : callback)?.();
20
+ return true;
21
+ }));
22
+ return (success) => {
23
+ restore();
24
+ for (const chunk of chunks) {
25
+ if (success)
26
+ write(chunk);
27
+ else
28
+ process.stderr.write(chunk);
29
+ }
30
+ };
31
+ }
3
32
  export class JsonStreamWriter {
4
33
  constructor(command, enabled, output = process.stdout) {
5
34
  this.completed = false;
@@ -11,16 +40,27 @@ export class JsonStreamWriter {
11
40
  write(`${line}\n`);
12
41
  };
13
42
  }
43
+ /** Keep progress live, but release error/completion only after the host has closed. */
44
+ deferResult() {
45
+ const pending = {};
46
+ this.deferredResult = pending;
47
+ return () => {
48
+ if (this.deferredResult !== pending)
49
+ return;
50
+ this.deferredResult = undefined;
51
+ if (pending.error)
52
+ this.error(pending.error);
53
+ if (pending.completion) {
54
+ const { status, exitCode, fields } = pending.completion;
55
+ this.complete(status, exitCode, fields);
56
+ }
57
+ };
58
+ }
14
59
  isolateStdout() {
15
60
  if (!this.enabled)
16
61
  return () => undefined;
17
- const original = process.stdout.write;
18
62
  const redirect = ((chunk, encoding, callback) => process.stderr.write(chunk, encoding, callback));
19
- process.stdout.write = redirect;
20
- return () => {
21
- if (process.stdout.write === redirect)
22
- process.stdout.write = original;
23
- };
63
+ return redirectStdout(redirect);
24
64
  }
25
65
  emit(event, fields = {}) {
26
66
  if (!this.enabled || this.completed)
@@ -51,12 +91,37 @@ export class JsonStreamWriter {
51
91
  recovery(code) {
52
92
  this.emit('recovery', { code });
53
93
  }
54
- error(error) {
94
+ error(error, cause) {
95
+ if (this.completed)
96
+ return;
97
+ if (this.deferredResult) {
98
+ const prior = this.deferredResult.error;
99
+ const sameCause = cause !== undefined && cause === this.deferredResult.cause;
100
+ const sameFailure = prior &&
101
+ (cause !== undefined && this.deferredResult.cause !== undefined
102
+ ? sameCause
103
+ : prior.code === error.code && prior.message === error.message);
104
+ if (prior && !sameFailure)
105
+ console.error(JSON.stringify(prior));
106
+ // A host catch may classify the same throw differently; keep its original diagnostic.
107
+ this.deferredResult.error = sameCause
108
+ ? { ...error, ...prior }
109
+ : sameFailure
110
+ ? { ...prior, ...error }
111
+ : error;
112
+ this.deferredResult.cause = cause;
113
+ delete this.deferredResult.completion;
114
+ return;
115
+ }
55
116
  if (typeof error.message === 'string')
56
117
  this.lastError = error.message;
57
118
  this.emit('error', { error });
58
119
  }
59
120
  complete(status, exitCode, fields = {}) {
121
+ if (this.deferredResult) {
122
+ this.deferredResult.completion ??= { status, exitCode, fields };
123
+ return;
124
+ }
60
125
  // A stage the platform left running ends with the command, on stderr too.
61
126
  if (status === 'pass')
62
127
  this.stages.close('done');
@@ -69,17 +134,18 @@ export class JsonStreamWriter {
69
134
  }
70
135
  }
71
136
  /** Ends a stream on a thrown error: an `error` event, then `complete` (fail). */
72
- export function failStream(stream, error, code) {
137
+ export function failStream(stream, error, code, defaultExitCode = 1) {
73
138
  const exitCode = error !== null &&
74
139
  typeof error === 'object' &&
75
140
  'exitCode' in error &&
76
141
  typeof error.exitCode === 'number'
77
142
  ? error.exitCode
78
- : 1;
143
+ : defaultExitCode;
79
144
  stream.error({
80
145
  code: exitCode === 2 ? 'USAGE' : code,
81
146
  message: error instanceof Error ? error.message : String(error),
82
- });
147
+ }, error);
83
148
  stream.complete('fail', exitCode);
149
+ return exitCode;
84
150
  }
85
151
  //# sourceMappingURL=json-stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-stream.js","sourceRoot":"","sources":["../../src/harness/json-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-stream.js","sourceRoot":"","sources":["../../src/harness/json-stream.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { RecipeSourceProvenance } from '@farmslot/protocol';
2
- export declare function gitLibraryProvenance(root: string): Promise<Pick<RecipeSourceProvenance, 'revision' | 'dirty'>>;
2
+ import { type SourceProvenanceSnapshot } from './execution-provenance.js';
3
+ export declare function gitLibraryProvenance(root: string, snapshot?: SourceProvenanceSnapshot): Promise<Pick<RecipeSourceProvenance, 'revision' | 'dirty'>>;
3
4
  //# sourceMappingURL=library-provenance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"library-provenance.d.ts","sourceRoot":"","sources":["../../src/harness/library-provenance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAIjE,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CA4B7D"}
1
+ {"version":3,"file":"library-provenance.d.ts","sourceRoot":"","sources":["../../src/harness/library-provenance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAiB,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAIzF,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,wBAAwB,GAClC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CA+B7D"}
@@ -1,7 +1,8 @@
1
1
  import { execFile } from 'node:child_process';
2
2
  import { promisify } from 'node:util';
3
+ import { sourceIsDirty } from './execution-provenance.js';
3
4
  const execFileAsync = promisify(execFile);
4
- export async function gitLibraryProvenance(root) {
5
+ export async function gitLibraryProvenance(root, snapshot) {
5
6
  try {
6
7
  const { stdout: tracked } = await execFileAsync('git', ['-C', root, 'ls-files', '--', '.'], {
7
8
  encoding: 'utf8',
@@ -9,6 +10,9 @@ export async function gitLibraryProvenance(root) {
9
10
  });
10
11
  if (!tracked.trim())
11
12
  return {};
13
+ if (snapshot) {
14
+ return snapshot.head ? { revision: snapshot.head, dirty: sourceIsDirty(snapshot) } : {};
15
+ }
12
16
  const [{ stdout: revision }, { stdout: status }] = await Promise.all([
13
17
  execFileAsync('git', ['-C', root, 'rev-parse', 'HEAD'], {
14
18
  encoding: 'utf8',
@@ -1 +1 @@
1
- {"version":3,"file":"library-provenance.js","sourceRoot":"","sources":["../../src/harness/library-provenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;YAC1F,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnE,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;gBACtD,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC;YACF,aAAa,CACX,KAAK,EACL,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,IAAI,EAAE,GAAG,CAAC,EAC/E;gBACE,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,KAAK;aACf,CACF;SACF,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,kEAAkE;QAClE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"library-provenance.js","sourceRoot":"","sources":["../../src/harness/library-provenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,OAAO,EAAE,aAAa,EAAiC,MAAM,2BAA2B,CAAC;AAEzF,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,QAAmC;IAEnC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;YAC1F,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,CAAC;QACD,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnE,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;gBACtD,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC;YACF,aAAa,CACX,KAAK,EACL,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,IAAI,EAAE,GAAG,CAAC,EAC/E;gBACE,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,KAAK;aACf,CACF;SACF,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,kEAAkE;QAClE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -28,7 +28,7 @@ export interface LiveAdapterRun {
28
28
  action: string;
29
29
  namespace: string;
30
30
  node: Record<string, unknown>;
31
- context: Pick<ActionExecutionContext, 'nodeId' | 'projectRoot' | 'artifactsDir' | 'env' | 'registerArtifact'>;
31
+ context: Pick<ActionExecutionContext, 'nodeId' | 'projectRoot' | 'artifactsDir' | 'env' | 'registerArtifact' | 'signal'>;
32
32
  prepared?: PreparedLiveAdapter;
33
33
  contextExtras?: Record<string, unknown>;
34
34
  tsxCandidates?: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"live-adapter-contract.d.ts","sourceRoot":"","sources":["../../src/harness/live-adapter-contract.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAsCtE,sFAAsF;AACtF,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,MAAM,CAAC,UAAwB,YA0C5C;AA4HD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,wBAAwB,CAAC,EAC7C,QAAQ,EACR,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,mBAA2B,GAC5B,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA0DtC;AAkED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAUf;AAwBD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,0BAG/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,IAAI,CACX,sBAAsB,EACtB,QAAQ,GAAG,aAAa,GAAG,cAAc,GAAG,KAAK,GAAG,kBAAkB,CACvE,CAAC;IACF,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAE/B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAExC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,wBAAsB,oBAAoB,CAAC,EACzC,QAAQ,EACR,MAAM,EACN,SAAS,EACT,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,aAAa,EACb,aAAkB,GACnB,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CAmEtE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAsBjF"}
1
+ {"version":3,"file":"live-adapter-contract.d.ts","sourceRoot":"","sources":["../../src/harness/live-adapter-contract.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAuCtE,sFAAsF;AACtF,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,MAAM,CAAC,UAAwB,YA0C5C;AAgED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,wBAAwB,CAAC,EAC7C,QAAQ,EACR,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,mBAA2B,GAC5B,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA0DtC;AAkED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAUf;AAwBD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,0BAG/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,IAAI,CACX,sBAAsB,EACtB,QAAQ,GAAG,aAAa,GAAG,cAAc,GAAG,KAAK,GAAG,kBAAkB,GAAG,QAAQ,CAClF,CAAC;IACF,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAE/B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAExC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,wBAAsB,oBAAoB,CAAC,EACzC,QAAQ,EACR,MAAM,EACN,SAAS,EACT,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,aAAa,EACb,aAAkB,GACnB,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CAuEtE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAsBjF"}
@@ -3,13 +3,13 @@
3
3
  // reads its input from the file in `<recipeEnvPrefix>_ADAPTER_INPUT` (also
4
4
  // argv[2]) and writes JSON to the `outputPath` it names. A prepared script is
5
5
  // bundled once so the approved bytes are the ones that run.
6
- import { spawn } from 'node:child_process';
7
6
  import { createHash } from 'node:crypto';
8
7
  import { existsSync, readFileSync } from 'node:fs';
9
8
  import { access, mkdtemp, readFile, realpath, rm, writeFile } from 'node:fs/promises';
10
9
  import os from 'node:os';
11
10
  import path from 'node:path';
12
11
  import { pathToFileURL } from 'node:url';
12
+ import { runOwnedRecipeProcess } from '@farmslot/recipe-runner/adapters/core';
13
13
  import { harnessAdapter, harnessAdapters } from './adapters.js';
14
14
  import { trackCheckoutChild } from './checkout-lock.js';
15
15
  import { recordCommandOutput } from './command-journal.js';
@@ -131,68 +131,6 @@ async function firstExecutablePath(paths) {
131
131
  }
132
132
  return null;
133
133
  }
134
- function runProcess(command, args, options) {
135
- return new Promise((resolve, reject) => {
136
- let settled = false;
137
- const child = spawn(command, args, {
138
- cwd: options.cwd,
139
- env: options.env,
140
- stdio: [options.stdin == null ? 'ignore' : 'pipe', 'pipe', 'pipe'],
141
- });
142
- if (child.pid)
143
- trackCheckoutChild(options.cwd, child.pid);
144
- if (options.stdin != null) {
145
- child.stdin.on('error', (error) => {
146
- if (error.code === 'EPIPE' || settled)
147
- return;
148
- settled = true;
149
- reject(error);
150
- });
151
- child.stdin.end(options.stdin);
152
- }
153
- let stdout = '';
154
- let stderr = '';
155
- child.stdout.on('data', (chunk) => {
156
- stdout += chunk;
157
- recordCommandOutput(chunk);
158
- });
159
- child.stderr.on('data', (chunk) => {
160
- stderr += chunk;
161
- recordCommandOutput(chunk);
162
- });
163
- const timeout = options.timeoutMs
164
- ? setTimeout(() => {
165
- if (settled)
166
- return;
167
- settled = true;
168
- child.kill('SIGTERM');
169
- // Always escalate after the grace period: child.killed only records
170
- // that kill() was CALLED, not that the process exited, so gating
171
- // SIGKILL on it never fires and a SIGTERM-ignoring child leaks. The
172
- // close listener cancels the escalation when the child exits in time.
173
- const killTimer = setTimeout(() => child.kill('SIGKILL'), 1000);
174
- child.once('close', () => clearTimeout(killTimer));
175
- resolve({ exitCode: null, stdout, stderr, timedOut: true });
176
- }, options.timeoutMs)
177
- : undefined;
178
- child.on('error', (error) => {
179
- if (settled)
180
- return;
181
- settled = true;
182
- if (timeout)
183
- clearTimeout(timeout);
184
- reject(error);
185
- });
186
- child.on('close', (exitCode) => {
187
- if (settled)
188
- return;
189
- settled = true;
190
- if (timeout)
191
- clearTimeout(timeout);
192
- resolve({ exitCode, stdout, stderr, timedOut: false });
193
- });
194
- });
195
- }
196
134
  export async function prepareLiveAdapterScript({ platform, action, namespace, implementationRoot, allowRuntimeImports = false, }) {
197
135
  const entryPath = await firstExecutablePath(candidatePaths(platform, action, namespace, {
198
136
  [recipeEnvName('ACTION_SOURCE_MAP')]: JSON.stringify({ [action]: implementationRoot }),
@@ -351,40 +289,44 @@ export async function runLiveAdapterScript({ platform, action, namespace, node,
351
289
  if (!script)
352
290
  return null;
353
291
  const tempDir = await mkdtemp(path.join(os.tmpdir(), `${harnessHost().name}-live-adapter-`));
354
- const inputPath = path.join(tempDir, 'input.json');
355
- const outputPath = path.join(tempDir, 'output.json');
356
- const input = {
357
- schemaVersion: 1,
358
- platform,
359
- action,
360
- node,
361
- context: {
362
- nodeId: context.nodeId,
363
- projectRoot: context.projectRoot,
364
- artifactsDir: context.artifactsDir,
365
- ...contextExtras,
366
- },
367
- outputPath,
368
- };
369
- await writeFile(inputPath, `${JSON.stringify(input, null, 2)}\n`);
370
- const command = prepared
371
- ? commandForPrepared(context.projectRoot, platform, tsxCandidates)
372
- : commandFor(script, tsxCandidates, context.projectRoot, platform);
373
- const platformEnv = (await tsxLiveScripts(platform)?.env(context.projectRoot, tempDir)) ?? {};
374
- const processTimeoutMs = liveAdapterProcessTimeoutMs(node);
375
- const result = await runProcess(command.command, [...command.args, inputPath], {
376
- cwd: context.projectRoot,
377
- env: {
378
- ...process.env,
379
- ...context.env,
380
- ...platformEnv,
381
- [recipeEnvName('ADAPTER_INPUT')]: inputPath,
382
- [recipeEnvName('ADAPTER_OUTPUT')]: outputPath,
383
- },
384
- timeoutMs: processTimeoutMs,
385
- ...(prepared ? { stdin: prepared.sourceText } : {}),
386
- });
387
292
  try {
293
+ const inputPath = path.join(tempDir, 'input.json');
294
+ const outputPath = path.join(tempDir, 'output.json');
295
+ const input = {
296
+ schemaVersion: 1,
297
+ platform,
298
+ action,
299
+ node,
300
+ context: {
301
+ nodeId: context.nodeId,
302
+ projectRoot: context.projectRoot,
303
+ artifactsDir: context.artifactsDir,
304
+ ...contextExtras,
305
+ },
306
+ outputPath,
307
+ };
308
+ await writeFile(inputPath, `${JSON.stringify(input, null, 2)}\n`);
309
+ const command = prepared
310
+ ? commandForPrepared(context.projectRoot, platform, tsxCandidates)
311
+ : commandFor(script, tsxCandidates, context.projectRoot, platform);
312
+ const platformEnv = (await tsxLiveScripts(platform)?.env(context.projectRoot, tempDir)) ?? {};
313
+ const processTimeoutMs = liveAdapterProcessTimeoutMs(node);
314
+ const result = await runOwnedRecipeProcess(command.command, [...command.args, inputPath], {
315
+ cwd: context.projectRoot,
316
+ env: {
317
+ ...process.env,
318
+ ...context.env,
319
+ ...platformEnv,
320
+ [recipeEnvName('ADAPTER_INPUT')]: inputPath,
321
+ [recipeEnvName('ADAPTER_OUTPUT')]: outputPath,
322
+ },
323
+ timeoutMs: processTimeoutMs,
324
+ signal: context.signal,
325
+ ownProcessGroup: context.signal !== undefined,
326
+ onSpawn: (pid, ownsGroup) => trackCheckoutChild(context.projectRoot, pid, ownsGroup),
327
+ onOutput: (chunk) => recordCommandOutput(chunk),
328
+ ...(prepared ? { input: prepared.sourceText } : {}),
329
+ });
388
330
  if (result.timedOut) {
389
331
  throw new Error(`Live adapter ${script} timed out after ${processTimeoutMs}ms.`);
390
332
  }