@a5c-ai/babysitter-sdk 5.0.1-staging.ff2c19f9 → 5.0.1-staging.ff407b73

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 (148) hide show
  1. package/README.md +68 -0
  2. package/dist/cli/commands/breakpointRules.d.ts.map +1 -1
  3. package/dist/cli/commands/breakpointRules.js +30 -27
  4. package/dist/cli/commands/compressOutputHelpers.d.ts.map +1 -1
  5. package/dist/cli/commands/compressOutputHelpers.js +18 -2
  6. package/dist/cli/commands/costStats.d.ts.map +1 -1
  7. package/dist/cli/commands/costStats.js +35 -27
  8. package/dist/cli/commands/harness/install.d.ts +2 -3
  9. package/dist/cli/commands/harness/install.d.ts.map +1 -1
  10. package/dist/cli/commands/harness/install.js +11 -10
  11. package/dist/cli/commands/health/checks.d.ts.map +1 -1
  12. package/dist/cli/commands/health/checks.js +4 -3
  13. package/dist/cli/commands/health/environment.d.ts.map +1 -1
  14. package/dist/cli/commands/health/environment.js +11 -1
  15. package/dist/cli/commands/hooks/run.d.ts.map +1 -1
  16. package/dist/cli/commands/hooks/run.js +3 -2
  17. package/dist/cli/commands/instructions.d.ts +1 -1
  18. package/dist/cli/commands/instructions.d.ts.map +1 -1
  19. package/dist/cli/commands/instructions.js +71 -5
  20. package/dist/cli/commands/runIterate.d.ts.map +1 -1
  21. package/dist/cli/commands/runIterate.js +2 -35
  22. package/dist/cli/commands/session/associate.d.ts.map +1 -1
  23. package/dist/cli/commands/session/associate.js +4 -36
  24. package/dist/cli/commands/session/iterationMessage.d.ts.map +1 -1
  25. package/dist/cli/commands/session/iterationMessage.js +9 -54
  26. package/dist/cli/commands/session/resume.d.ts.map +1 -1
  27. package/dist/cli/commands/session/resume.js +6 -16
  28. package/dist/cli/commands/skill.d.ts.map +1 -1
  29. package/dist/cli/commands/skill.js +2 -1
  30. package/dist/cli/commands/tokensStats.d.ts.map +1 -1
  31. package/dist/cli/commands/tokensStats.js +36 -28
  32. package/dist/cli/main/argFlagParsers.d.ts.map +1 -1
  33. package/dist/cli/main/argFlagParsers.js +2 -1
  34. package/dist/cli/main/args.d.ts.map +1 -1
  35. package/dist/cli/main/args.js +4 -27
  36. package/dist/cli/main/dispatchHarness.js +1 -1
  37. package/dist/cli/main/dispatchRunSession.js +0 -10
  38. package/dist/cli/main/runCreate.js +2 -2
  39. package/dist/cli/main/runSupport.d.ts +9 -1
  40. package/dist/cli/main/runSupport.d.ts.map +1 -1
  41. package/dist/cli/main/runSupport.js +71 -1
  42. package/dist/cli/main/usage.d.ts.map +1 -1
  43. package/dist/cli/main/usage.js +42 -38
  44. package/dist/config/configValidation.d.ts.map +1 -1
  45. package/dist/config/configValidation.js +2 -1
  46. package/dist/config/defaults.d.ts +2 -0
  47. package/dist/config/defaults.d.ts.map +1 -1
  48. package/dist/config/defaults.js +3 -1
  49. package/dist/config/index.d.ts +3 -2
  50. package/dist/config/index.d.ts.map +1 -1
  51. package/dist/config/index.js +15 -2
  52. package/dist/config/runs.d.ts +22 -0
  53. package/dist/config/runs.d.ts.map +1 -0
  54. package/dist/config/runs.js +192 -0
  55. package/dist/harness/adapters/cursor.d.ts +1 -0
  56. package/dist/harness/adapters/cursor.d.ts.map +1 -1
  57. package/dist/harness/adapters/cursor.js +34 -0
  58. package/dist/harness/amuxFallbackMetadata.d.ts.map +1 -1
  59. package/dist/harness/amuxFallbackMetadata.js +62 -37
  60. package/dist/harness/amuxMetadata.d.ts.map +1 -1
  61. package/dist/harness/amuxMetadata.js +2 -1
  62. package/dist/harness/discovery.d.ts +21 -1
  63. package/dist/harness/discovery.d.ts.map +1 -1
  64. package/dist/harness/discovery.js +55 -0
  65. package/dist/harness/hooks/runState.d.ts.map +1 -1
  66. package/dist/harness/hooks/runState.js +12 -23
  67. package/dist/harness/hooks/sessionBinding.d.ts.map +1 -1
  68. package/dist/harness/hooks/sessionBinding.js +3 -6
  69. package/dist/harness/hooks/stopHookContinuation.d.ts.map +1 -1
  70. package/dist/harness/hooks/stopHookContinuation.js +8 -16
  71. package/dist/harness/hooks/stopHookHandler.d.ts.map +1 -1
  72. package/dist/harness/hooks/stopHookHandler.js +2 -1
  73. package/dist/harness/hooks/utils.js +3 -3
  74. package/dist/harness/index.d.ts +1 -1
  75. package/dist/harness/index.d.ts.map +1 -1
  76. package/dist/harness/index.js +2 -1
  77. package/dist/harness/install.d.ts +1 -0
  78. package/dist/harness/install.d.ts.map +1 -1
  79. package/dist/harness/install.js +63 -0
  80. package/dist/harness/installSupport.d.ts.map +1 -1
  81. package/dist/harness/installSupport.js +19 -0
  82. package/dist/harness/types.d.ts +7 -0
  83. package/dist/harness/types.d.ts.map +1 -1
  84. package/dist/harness/unified/subprocess.d.ts.map +1 -1
  85. package/dist/harness/unified/subprocess.js +3 -0
  86. package/dist/mcp/tools/sessions.d.ts.map +1 -1
  87. package/dist/mcp/tools/sessions.js +2 -8
  88. package/dist/mcp/util/resolve-run-dir.d.ts +1 -1
  89. package/dist/mcp/util/resolve-run-dir.d.ts.map +1 -1
  90. package/dist/mcp/util/resolve-run-dir.js +3 -39
  91. package/dist/prompts/compose.js +1 -1
  92. package/dist/prompts/templates/effects.md +1 -1
  93. package/dist/prompts/templates/iteration.md +1 -1
  94. package/dist/prompts/templates/results-posting.md +2 -2
  95. package/dist/prompts/templates/run-creation.md +2 -2
  96. package/dist/prompts/templates/run-overlap-detection.md +6 -4
  97. package/dist/prompts/templates/task-examples.md +7 -7
  98. package/dist/prompts/templates/task-kinds.md +7 -3
  99. package/dist/runtime/commitEffectResult.d.ts.map +1 -1
  100. package/dist/runtime/commitEffectResult.js +5 -2
  101. package/dist/runtime/createRun.d.ts.map +1 -1
  102. package/dist/runtime/createRun.js +28 -14
  103. package/dist/runtime/index.d.ts +2 -1
  104. package/dist/runtime/index.d.ts.map +1 -1
  105. package/dist/runtime/index.js +8 -1
  106. package/dist/runtime/intrinsics/subprocess.d.ts +5 -0
  107. package/dist/runtime/intrinsics/subprocess.d.ts.map +1 -0
  108. package/dist/runtime/intrinsics/subprocess.js +56 -0
  109. package/dist/runtime/intrinsics/task.d.ts +1 -0
  110. package/dist/runtime/intrinsics/task.d.ts.map +1 -1
  111. package/dist/runtime/orchestrateIteration.d.ts.map +1 -1
  112. package/dist/runtime/orchestrateIteration.js +8 -2
  113. package/dist/runtime/policy/engine.d.ts +4 -0
  114. package/dist/runtime/policy/engine.d.ts.map +1 -0
  115. package/dist/runtime/policy/engine.js +97 -0
  116. package/dist/runtime/policy/index.d.ts +3 -1
  117. package/dist/runtime/policy/index.d.ts.map +1 -1
  118. package/dist/runtime/policy/index.js +9 -1
  119. package/dist/runtime/policy/logging.d.ts +6 -0
  120. package/dist/runtime/policy/logging.d.ts.map +1 -0
  121. package/dist/runtime/policy/logging.js +43 -0
  122. package/dist/runtime/policy/types.d.ts +4 -0
  123. package/dist/runtime/policy/types.d.ts.map +1 -1
  124. package/dist/runtime/processContext.d.ts +3 -0
  125. package/dist/runtime/processContext.d.ts.map +1 -1
  126. package/dist/runtime/processContext.js +3 -0
  127. package/dist/runtime/replay/createReplayEngine.d.ts +1 -0
  128. package/dist/runtime/replay/createReplayEngine.d.ts.map +1 -1
  129. package/dist/runtime/replay/createReplayEngine.js +26 -0
  130. package/dist/runtime/runLifecycleState.d.ts +7 -0
  131. package/dist/runtime/runLifecycleState.d.ts.map +1 -0
  132. package/dist/runtime/runLifecycleState.js +54 -0
  133. package/dist/runtime/types.d.ts +33 -1
  134. package/dist/runtime/types.d.ts.map +1 -1
  135. package/dist/session/cleanup.d.ts.map +1 -1
  136. package/dist/session/cleanup.js +26 -21
  137. package/dist/session/types.d.ts +1 -1
  138. package/dist/session/types.d.ts.map +1 -1
  139. package/dist/storage/createRunDir.d.ts.map +1 -1
  140. package/dist/storage/createRunDir.js +1 -0
  141. package/dist/storage/types.d.ts +14 -0
  142. package/dist/storage/types.d.ts.map +1 -1
  143. package/dist/tasks/defineTask.d.ts +28 -0
  144. package/dist/tasks/defineTask.d.ts.map +1 -1
  145. package/dist/tasks/defineTask.js +42 -1
  146. package/dist/tasks/types.d.ts +18 -3
  147. package/dist/tasks/types.d.ts.map +1 -1
  148. package/package.json +20 -6
@@ -42,6 +42,7 @@ const write_1 = require("../../session/write");
42
42
  const utils_1 = require("./utils");
43
43
  const runState_1 = require("./runState");
44
44
  const stopHookContinuation_1 = require("./stopHookContinuation");
45
+ const config_1 = require("../../config");
45
46
  function resolveSessionIdFromInput(hookInput, fields, fallback) {
46
47
  for (const field of fields) {
47
48
  const value = (0, utils_1.safeStr)(hookInput, field);
@@ -111,7 +112,7 @@ async function handleStopHookCommon(args, options) {
111
112
  process.stdout.write("{}\n");
112
113
  return makeExit(log, 0, "no_state_dir");
113
114
  }
114
- const runsDir = path.resolve(args.runsDir || ".a5c/runs");
115
+ const runsDir = path.resolve(args.runsDir || (0, config_1.resolveRunsDir)());
115
116
  let activeSessionId = sessionId;
116
117
  let filePath = (0, parse_1.getSessionFilePath)(stateDir, activeSessionId);
117
118
  log.info(`Checking session file at: ${filePath}`);
@@ -196,13 +196,13 @@ function checkIterationLimits(state, maxIterations, _options) {
196
196
  }
197
197
  function buildFollowupMessage(nextIteration, runId, completionProof, runState, pendingKinds, prompt) {
198
198
  if (completionProof) {
199
- return `Babysitter iteration ${nextIteration} | Run completed! To finish: call 'babysitter run:status .a5c/runs/${runId} --json', extract 'completionProof' from the output, then output it in <promise>SECRET</promise> tags. Do not mention or reveal the secret otherwise.\n\n${prompt}`;
199
+ return `Babysitter iteration ${nextIteration} | Run completed! To finish: call 'babysitter run:status ${runId} --json', extract 'completionProof' from the output, then output it in <promise>SECRET</promise> tags. Do not mention or reveal the secret otherwise.\n\n${prompt}`;
200
200
  }
201
201
  else if (runState === "waiting" && pendingKinds) {
202
- return `Babysitter iteration ${nextIteration} | Waiting on: ${pendingKinds}. Check if pending effects are resolved, then call 'babysitter run:iterate .a5c/runs/${runId} --json'.\n\n${prompt}`;
202
+ return `Babysitter iteration ${nextIteration} | Waiting on: ${pendingKinds}. Check if pending effects are resolved, then call 'babysitter run:iterate ${runId} --json'.\n\n${prompt}`;
203
203
  }
204
204
  else if (runState === "failed") {
205
205
  return `Babysitter iteration ${nextIteration} | Run failed. Inspect the run journal and fix the issue, then proceed.\n\n${prompt}`;
206
206
  }
207
- return `Babysitter iteration ${nextIteration} | Continue orchestration: call 'babysitter run:iterate .a5c/runs/${runId} --json'.\n\n${prompt}`;
207
+ return `Babysitter iteration ${nextIteration} | Continue orchestration: call 'babysitter run:iterate ${runId} --json'.\n\n${prompt}`;
208
208
  }
@@ -16,5 +16,5 @@ export { BaseHarnessAdapter } from "./BaseAdapter";
16
16
  export type { AdapterConfig } from "./BaseAdapter";
17
17
  export { createPromptContextForHarness, detectAdapter, getAdapterByName, getHarnessCallerEnvVars, getHarnessDiscoverySpec, listSupportedHarnesses, getSessionResolutionDetails, getAdapter, setAdapter, resetAdapter, } from "./registry";
18
18
  export { discoverHarnesses, detectCallerHarness, checkCliAvailable, KNOWN_HARNESSES } from "./discovery";
19
- export { installHarnessViaAmux, discoverHarnessesViaAmux } from "./install";
19
+ export { installHarnessViaAmux, installHarnessPlugin, discoverHarnessesViaAmux } from "./install";
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,6BAA6B,EAC7B,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,6BAA6B,EAC7B,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.discoverHarnessesViaAmux = exports.installHarnessViaAmux = exports.KNOWN_HARNESSES = exports.checkCliAvailable = exports.detectCallerHarness = exports.discoverHarnesses = exports.resetAdapter = exports.setAdapter = exports.getAdapter = exports.getSessionResolutionDetails = exports.listSupportedHarnesses = exports.getHarnessDiscoverySpec = exports.getHarnessCallerEnvVars = exports.getAdapterByName = exports.detectAdapter = exports.createPromptContextForHarness = exports.BaseHarnessAdapter = exports.createUnifiedAdapter = exports.createCustomAdapter = exports.createNullAdapter = exports.createOpenCodeAdapter = exports.createOpenClawAdapter = exports.createOhMyPiAdapter = exports.createPiAdapter = exports.createGithubCopilotAdapter = exports.createCursorAdapter = exports.createGeminiCliAdapter = exports.createCodexAdapter = exports.createClaudeCodeAdapter = exports.HarnessCapability = void 0;
3
+ exports.discoverHarnessesViaAmux = exports.installHarnessPlugin = exports.installHarnessViaAmux = exports.KNOWN_HARNESSES = exports.checkCliAvailable = exports.detectCallerHarness = exports.discoverHarnesses = exports.resetAdapter = exports.setAdapter = exports.getAdapter = exports.getSessionResolutionDetails = exports.listSupportedHarnesses = exports.getHarnessDiscoverySpec = exports.getHarnessCallerEnvVars = exports.getAdapterByName = exports.detectAdapter = exports.createPromptContextForHarness = exports.BaseHarnessAdapter = exports.createUnifiedAdapter = exports.createCustomAdapter = exports.createNullAdapter = exports.createOpenCodeAdapter = exports.createOpenClawAdapter = exports.createOhMyPiAdapter = exports.createPiAdapter = exports.createGithubCopilotAdapter = exports.createCursorAdapter = exports.createGeminiCliAdapter = exports.createCodexAdapter = exports.createClaudeCodeAdapter = exports.HarnessCapability = void 0;
4
4
  var types_1 = require("./types");
5
5
  Object.defineProperty(exports, "HarnessCapability", { enumerable: true, get: function () { return types_1.HarnessCapability; } });
6
6
  var claude_code_1 = require("./adapters/claude-code");
@@ -47,4 +47,5 @@ Object.defineProperty(exports, "checkCliAvailable", { enumerable: true, get: fun
47
47
  Object.defineProperty(exports, "KNOWN_HARNESSES", { enumerable: true, get: function () { return discovery_1.KNOWN_HARNESSES; } });
48
48
  var install_1 = require("./install");
49
49
  Object.defineProperty(exports, "installHarnessViaAmux", { enumerable: true, get: function () { return install_1.installHarnessViaAmux; } });
50
+ Object.defineProperty(exports, "installHarnessPlugin", { enumerable: true, get: function () { return install_1.installHarnessPlugin; } });
50
51
  Object.defineProperty(exports, "discoverHarnessesViaAmux", { enumerable: true, get: function () { return install_1.discoverHarnessesViaAmux; } });
@@ -57,6 +57,7 @@ export declare function discoverHarnessesViaAmux(): Promise<HarnessDiscoveryResu
57
57
  * Install a harness CLI by delegating to agent-mux's adapter install().
58
58
  */
59
59
  export declare function installHarnessViaAmux(harnessName: string, options: HarnessInstallOptions): Promise<HarnessInstallResult>;
60
+ export declare function installHarnessPlugin(harnessName: string, options: HarnessInstallOptions): Promise<HarnessInstallResult>;
60
61
  /**
61
62
  * Reset the cached client. For testing.
62
63
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/harness/install.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAuBjB,KAAK,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAClF,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AACF,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,UAAU,iBAAiB;IACzB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrG,kBAAkB,CAAC,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzF;AACD,UAAU,mBAAmB;IAC3B,IAAI,IAAI,eAAe,EAAE,CAAC;IAC1B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACzD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAClD,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;CAC3C;AACD,UAAU,cAAc;IACtB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AA2BD;;;;GAIG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAwClF;AAMD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA+B/B;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE;IAAE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,cAAc,CAAA;CAAE,GAAG,SAAS,GACnF,IAAI,CAGN"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/harness/install.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAwCjB,KAAK,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAClF,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AACF,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,UAAU,iBAAiB;IACzB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrG,kBAAkB,CAAC,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzF;AACD,UAAU,mBAAmB;IAC3B,IAAI,IAAI,eAAe,EAAE,CAAC;IAC1B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACzD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAClD,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;CAC3C;AACD,UAAU,cAAc;IACtB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AA2BD;;;;GAIG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAwClF;AAMD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA0C/B;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAwC/B;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE;IAAE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,cAAc,CAAA;CAAE,GAAG,SAAS,GACnF,IAAI,CAGN"}
@@ -9,9 +9,11 @@
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.discoverHarnessesViaAmux = discoverHarnessesViaAmux;
11
11
  exports.installHarnessViaAmux = installHarnessViaAmux;
12
+ exports.installHarnessPlugin = installHarnessPlugin;
12
13
  exports._resetAmuxInstallClientCache = _resetAmuxInstallClientCache;
13
14
  exports._setAmuxInstallModuleForTesting = _setAmuxInstallModuleForTesting;
14
15
  const registry_1 = require("./registry");
16
+ const installSupport_1 = require("./installSupport");
15
17
  // ---------------------------------------------------------------------------
16
18
  // Agent name mapping (babysitter harness name -> agent-mux adapter name)
17
19
  // ---------------------------------------------------------------------------
@@ -26,6 +28,16 @@ const HARNESS_TO_AMUX = {
26
28
  "oh-my-pi": "omp",
27
29
  "pi": "pi",
28
30
  };
31
+ const HARNESS_PLUGIN_INSTALLERS = {
32
+ "codex": { packageName: "@a5c-ai/babysitter-codex", supportsWorkspace: true },
33
+ "cursor": { packageName: "@a5c-ai/babysitter-cursor", supportsWorkspace: true },
34
+ "gemini-cli": { packageName: "@a5c-ai/babysitter-gemini", supportsWorkspace: true },
35
+ "github-copilot": { packageName: "@a5c-ai/babysitter-github", supportsWorkspace: true },
36
+ "oh-my-pi": { packageName: "@a5c-ai/babysitter-omp", supportsWorkspace: true },
37
+ "openclaw": { packageName: "@a5c-ai/babysitter-openclaw", supportsWorkspace: true },
38
+ "opencode": { packageName: "@a5c-ai/babysitter-opencode", supportsWorkspace: true },
39
+ "pi": { packageName: "@a5c-ai/babysitter-pi", supportsWorkspace: true },
40
+ };
29
41
  let _clientPromise = null;
30
42
  let _amuxOverride;
31
43
  function requireAmux() {
@@ -95,6 +107,9 @@ async function installHarnessViaAmux(harnessName, options) {
95
107
  if (!amuxName) {
96
108
  return {
97
109
  harness: harnessName,
110
+ success: false,
111
+ status: "unsupported",
112
+ installer: "agent-mux",
98
113
  warning: `No agent-mux adapter mapping for "${harnessName}". Cannot install via agent-mux.`,
99
114
  };
100
115
  }
@@ -103,6 +118,9 @@ async function installHarnessViaAmux(harnessName, options) {
103
118
  if (!adapter || !adapter.install) {
104
119
  return {
105
120
  harness: harnessName,
121
+ success: false,
122
+ status: "unsupported",
123
+ installer: "agent-mux",
106
124
  warning: `Agent-mux adapter "${amuxName}" does not support install().`,
107
125
  };
108
126
  }
@@ -113,11 +131,56 @@ async function installHarnessViaAmux(harnessName, options) {
113
131
  return {
114
132
  harness: harnessName,
115
133
  dryRun: options.dryRun || undefined,
134
+ success: result.ok,
135
+ status: options.dryRun ? "planned" : result.ok ? "installed" : "failed",
136
+ installer: "agent-mux",
116
137
  summary: result.message ?? (result.ok ? `Installed ${harnessName}` : `Failed to install ${harnessName}`),
117
138
  command: result.command || undefined,
118
139
  output: [result.stdout, result.stderr].filter(Boolean).join("\n") || undefined,
140
+ exitCode: result.ok ? 0 : 1,
141
+ error: result.ok ? undefined : (result.message ?? `Failed to install ${harnessName}`),
119
142
  };
120
143
  }
144
+ async function installHarnessPlugin(harnessName, options) {
145
+ const installer = HARNESS_PLUGIN_INSTALLERS[harnessName];
146
+ if (!installer) {
147
+ return {
148
+ harness: harnessName,
149
+ success: false,
150
+ status: "unsupported",
151
+ installer: "npx",
152
+ warning: `No Babysitter plugin installer is defined for "${harnessName}".`,
153
+ };
154
+ }
155
+ const packageArgs = ["install"];
156
+ if (options.workspace) {
157
+ if (!installer.supportsWorkspace) {
158
+ return {
159
+ harness: harnessName,
160
+ success: false,
161
+ status: "unsupported",
162
+ installer: "npx",
163
+ scope: "workspace",
164
+ warning: `${harnessName} does not support workspace plugin installation.`,
165
+ };
166
+ }
167
+ packageArgs.push("--workspace", options.workspace);
168
+ }
169
+ else {
170
+ packageArgs.push("--global");
171
+ }
172
+ return await (0, installSupport_1.runPackageBinaryViaNpx)({
173
+ harness: harnessName,
174
+ packageName: installer.packageName,
175
+ packageArgs,
176
+ summary: options.workspace
177
+ ? `Install Babysitter plugin for ${harnessName} into ${options.workspace}`
178
+ : `Install Babysitter plugin for ${harnessName} globally`,
179
+ options,
180
+ cwd: options.workspace,
181
+ location: options.workspace,
182
+ });
183
+ }
121
184
  /**
122
185
  * Reset the cached client. For testing.
123
186
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"installSupport.d.ts","sourceRoot":"","sources":["../../src/harness/installSupport.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAO,GACtD,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB/D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAErE;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAyChC;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2ChC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CAajD;AAED,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAEnE"}
1
+ {"version":3,"file":"installSupport.d.ts","sourceRoot":"","sources":["../../src/harness/installSupport.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAO,GACtD,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB/D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAErE;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkDhC;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqDhC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CAajD;AAED,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAEnE"}
@@ -86,6 +86,10 @@ async function runPackageBinaryViaNpx(args) {
86
86
  return {
87
87
  harness: args.harness,
88
88
  dryRun: true,
89
+ success: true,
90
+ status: "planned",
91
+ installer: "npx",
92
+ scope: args.options.workspace ? "workspace" : "global",
89
93
  summary: args.summary,
90
94
  command: renderCommand(displayCommand, commandArgs),
91
95
  location: args.location,
@@ -107,10 +111,15 @@ async function runPackageBinaryViaNpx(args) {
107
111
  }
108
112
  return {
109
113
  harness: args.harness,
114
+ success: true,
115
+ status: "installed",
116
+ installer: "npx",
117
+ scope: args.options.workspace ? "workspace" : "global",
110
118
  summary: args.summary,
111
119
  command: renderCommand(displayCommand, commandArgs),
112
120
  location: args.location,
113
121
  output: [result.stdout.trim(), result.stderr.trim()].filter(Boolean).join("\n"),
122
+ exitCode: result.exitCode,
114
123
  };
115
124
  }
116
125
  async function installCliViaNpm(args) {
@@ -118,6 +127,9 @@ async function installCliViaNpm(args) {
118
127
  if (cliInfo.available) {
119
128
  return {
120
129
  harness: args.harness,
130
+ success: true,
131
+ status: "skipped",
132
+ installer: "npm",
121
133
  warning: `${args.harness} is already installed; nothing to do.`,
122
134
  location: cliInfo.path,
123
135
  };
@@ -128,6 +140,9 @@ async function installCliViaNpm(args) {
128
140
  return {
129
141
  harness: args.harness,
130
142
  dryRun: true,
143
+ success: true,
144
+ status: "planned",
145
+ installer: "npm",
131
146
  summary: args.summary,
132
147
  command: renderCommand("npm", commandArgs),
133
148
  };
@@ -145,9 +160,13 @@ async function installCliViaNpm(args) {
145
160
  }
146
161
  return {
147
162
  harness: args.harness,
163
+ success: true,
164
+ status: "installed",
165
+ installer: "npm",
148
166
  summary: args.summary,
149
167
  command: renderCommand(command, commandArgs),
150
168
  output: [result.stdout.trim(), result.stderr.trim()].filter(Boolean).join("\n"),
169
+ exitCode: result.exitCode,
151
170
  };
152
171
  }
153
172
  function getCodexHome() {
@@ -113,14 +113,21 @@ export interface HarnessInstallOptions {
113
113
  dryRun: boolean;
114
114
  verbose: boolean;
115
115
  }
116
+ export type HarnessInstallStatus = "planned" | "installed" | "skipped" | "unsupported" | "failed";
116
117
  export interface HarnessInstallResult {
117
118
  harness: string;
118
119
  dryRun?: boolean;
120
+ success?: boolean;
121
+ status?: HarnessInstallStatus;
122
+ installer?: string;
123
+ scope?: "global" | "workspace";
119
124
  warning?: string;
120
125
  summary?: string;
121
126
  command?: string;
122
127
  output?: string;
123
128
  location?: string;
129
+ exitCode?: number;
130
+ error?: string;
124
131
  }
125
132
  export interface HarnessAdapter {
126
133
  /** Harness identifier (e.g. "claude-code") */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subprocess.d.ts","sourceRoot":"","sources":["../../../src/harness/unified/subprocess.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAcD;;;;;GAKG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAY9D;AAMD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA2DvB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE,CAYhE"}
1
+ {"version":3,"file":"subprocess.d.ts","sourceRoot":"","sources":["../../../src/harness/unified/subprocess.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAgBD;;;;;GAKG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAa9D;AAMD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA4DvB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE,CAYhE"}
@@ -19,6 +19,7 @@ const node_child_process_1 = require("node:child_process");
19
19
  function resolveHooksProxyBinary() {
20
20
  return process.env.AGENT_HOOKS_PROXY_PATH || "a5c-hooks-mux";
21
21
  }
22
+ const IS_WINDOWS = process.platform === "win32";
22
23
  // ---------------------------------------------------------------------------
23
24
  // Availability check
24
25
  // ---------------------------------------------------------------------------
@@ -34,6 +35,7 @@ async function isHooksProxyAvailable() {
34
35
  const child = (0, node_child_process_1.spawn)(binary, ["--version"], {
35
36
  stdio: ["ignore", "pipe", "pipe"],
36
37
  windowsHide: true,
38
+ shell: IS_WINDOWS,
37
39
  timeout: 3000,
38
40
  });
39
41
  child.on("error", () => resolve(false));
@@ -69,6 +71,7 @@ async function invokeHooksProxy(options) {
69
71
  env: { ...process.env },
70
72
  stdio: ["pipe", "pipe", "pipe"],
71
73
  windowsHide: true,
74
+ shell: IS_WINDOWS,
72
75
  });
73
76
  const stdoutChunks = [];
74
77
  const stderrChunks = [];
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/sessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAcpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8N5D"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/sessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAepE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0N5D"}
@@ -38,6 +38,7 @@ const path = __importStar(require("path"));
38
38
  const zod_1 = require("zod");
39
39
  const session_1 = require("../../session");
40
40
  const storage_1 = require("../../storage");
41
+ const runLifecycleState_1 = require("../../runtime/runLifecycleState");
41
42
  const errors_1 = require("../util/errors");
42
43
  const resolve_run_dir_1 = require("../util/resolve-run-dir");
43
44
  function registerSessionTools(server) {
@@ -153,14 +154,7 @@ function registerSessionTools(server) {
153
154
  let runState = "unknown";
154
155
  try {
155
156
  const journal = await (0, storage_1.loadJournal)(runDir);
156
- const hasCompleted = journal.some((e) => e.type === "RUN_COMPLETED");
157
- const hasFailed = journal.some((e) => e.type === "RUN_FAILED");
158
- if (hasCompleted)
159
- runState = "completed";
160
- else if (hasFailed)
161
- runState = "failed";
162
- else
163
- runState = "waiting";
157
+ runState = (0, runLifecycleState_1.deriveObservedRunState)(journal, (0, runLifecycleState_1.countPendingEffectsFromJournal)(journal));
164
158
  }
165
159
  catch {
166
160
  return (0, errors_1.toolError)(`Run not found: ${args.runId}`);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Resolves the runs directory, defaulting to `.a5c/runs` under cwd.
2
+ * Resolves the runs directory using the shared SDK policy.
3
3
  * Accepts an optional override (e.g. from tool args or env).
4
4
  */
5
5
  export declare function resolveRunDir(overridePath?: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-run-dir.d.ts","sourceRoot":"","sources":["../../../src/mcp/util/resolve-run-dir.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAK3D"}
1
+ {"version":3,"file":"resolve-run-dir.d.ts","sourceRoot":"","sources":["../../../src/mcp/util/resolve-run-dir.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3D"}
@@ -1,47 +1,11 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.resolveRunDir = resolveRunDir;
37
- const path = __importStar(require("path"));
4
+ const config_1 = require("../../config");
38
5
  /**
39
- * Resolves the runs directory, defaulting to `.a5c/runs` under cwd.
6
+ * Resolves the runs directory using the shared SDK policy.
40
7
  * Accepts an optional override (e.g. from tool args or env).
41
8
  */
42
9
  function resolveRunDir(overridePath) {
43
- if (overridePath) {
44
- return path.resolve(overridePath);
45
- }
46
- return path.resolve(process.env["BABYSITTER_RUNS_DIR"] ?? path.join(process.cwd(), ".a5c", "runs"));
10
+ return (0, config_1.resolveRunsDir)({ override: overridePath });
47
11
  }
@@ -61,7 +61,7 @@ function composeBabysitSkillPrompt(ctx) {
61
61
  const header = [
62
62
  '# babysit',
63
63
  '',
64
- 'Orchestrate `.a5c/runs/<runId>/` through iterative execution.',
64
+ 'Orchestrate the resolved run directory (`~/.a5c/runs/<runId>/` by default, with repo-local fallback compatibility) through iterative execution.',
65
65
  'Use the SDK CLI to drive the orchestration loop.',
66
66
  ].join('\n');
67
67
  const nonHookCaveatIntro = !ctx.hookDriven && ctx.loopControlTerm === 'stop-hook'
@@ -1,7 +1,7 @@
1
1
  ### 4. Get Effects
2
2
 
3
3
  ```bash
4
- $CLI task:list .a5c/runs/<runId> --pending --json
4
+ $CLI task:list <runDir> --pending --json
5
5
  ```
6
6
 
7
7
  **Output:**
@@ -1,7 +1,7 @@
1
1
  ### 3. Run Iteration
2
2
 
3
3
  ```bash
4
- $CLI run:iterate .a5c/runs/<runId> --json --iteration <n>{{iterateFlagsSuffix}}
4
+ $CLI run:iterate <runDir> --json --iteration <n>{{iterateFlagsSuffix}}
5
5
  ```
6
6
 
7
7
  **Output:**
@@ -15,12 +15,12 @@
15
15
 
16
16
  2. Post the result, either by passing the value file or inline JSON:
17
17
  ```bash
18
- $CLI task:post .a5c/runs/<runId> <effectId> \
18
+ $CLI task:post <runDir> <effectId> \
19
19
  --status ok \
20
20
  --value tasks/<effectId>/output.json \
21
21
  --json
22
22
 
23
- $CLI task:post .a5c/runs/<runId> <effectId> \
23
+ $CLI task:post <runDir> <effectId> \
24
24
  --status ok \
25
25
  --value-inline '{"score": 85}' \
26
26
  --json
@@ -17,7 +17,7 @@ $CLI run:create \
17
17
  **Optional flags:**
18
18
  - `--inputs <file>` -- path to a JSON file with process inputs
19
19
  - `--run-id <id>` -- override auto-generated run ID
20
- - `--runs-dir <dir>` -- override runs directory (default: `.a5c/runs`)
20
+ - `--runs-dir <dir>` -- advanced compatibility override for the runs directory (default: `~/.a5c/runs`, or `<repo>/.a5c/runs` when `BABYSITTER_RUNS_SCOPE=repo`)
21
21
  - `--non-interactive` -- auto-approve breakpoints without human interaction (yolo mode)
22
22
 
23
23
  {{sessionIdNote}}
@@ -32,5 +32,5 @@ $CLI run:create \
32
32
  ```bash
33
33
  $CLI session:resume \
34
34
  --session-id <id> \{{resumeFlagsLine}}
35
- --run-id <runId> --runs-dir .a5c/runs --json
35
+ --run-id <runId> --json
36
36
  ```
@@ -8,11 +8,11 @@ complicate the run history.
8
8
 
9
9
  1. List recent run directories:
10
10
  ```bash
11
- ls -lt .a5c/runs/ | head -20
11
+ ls -lt ~/.a5c/runs/ | head -20
12
12
  ```
13
13
  2. For each run created within the last 30 minutes, read its metadata:
14
14
  ```bash
15
- cat .a5c/runs/<runId>/run.json
15
+ cat ~/.a5c/runs/<runId>/run.json
16
16
  ```
17
17
  3. Compare the candidate run's `prompt` and `processId` against the new
18
18
  request:
@@ -21,7 +21,7 @@ complicate the run history.
21
21
  - **Process match**: does `processId` match the process you intend to use?
22
22
  4. If overlap is detected, check its current status:
23
23
  ```bash
24
- $CLI run:status .a5c/runs/<runId>
24
+ $CLI run:status ~/.a5c/runs/<runId>
25
25
  ```
26
26
 
27
27
  **If an overlapping run is found:**
@@ -38,7 +38,7 @@ Surface a clear warning to the user with the similar run's details:
38
38
  Ask the user to choose one of:
39
39
  1. **Proceed** — create a new run anyway (e.g., intentional retry or variant)
40
40
  2. **Skip** — abort run creation; the existing run already covers the request
41
- 3. **Resume** — resume the existing run via `$CLI run:iterate .a5c/runs/<runId>`
41
+ 3. **Resume** — resume the existing run via `$CLI run:iterate ~/.a5c/runs/<runId>`
42
42
 
43
43
  Do not proceed with `run:create` until the user has responded.
44
44
  {{/interactive}}
@@ -50,6 +50,8 @@ on overlap — the caller is responsible for deduplication.
50
50
 
51
51
  **No overlap found:** proceed directly to `$CLI run:create` as normal.
52
52
 
53
+ If the current repo is still using legacy repo-local runs, the SDK will also read `<repo>/.a5c/runs` automatically for compatibility.
54
+
53
55
  **Tracking run chains:**
54
56
 
55
57
  When creating a run that intentionally follows or retries a previous run,
@@ -31,7 +31,7 @@ export const agentTask = defineTask('agent-scorer', (args, taskCtx) => ({
31
31
  },
32
32
 
33
33
  io: {
34
- inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
34
+ inputJsonPath: `tasks/${taskCtx.effectId}/inputs.json`,
35
35
  outputJsonPath: `tasks/${taskCtx.effectId}/output.json`
36
36
  }
37
37
  }));
@@ -54,7 +54,7 @@ export const grepCheckTask = defineTask('grep-integration-check', (args, taskCtx
54
54
  timeout: 10000
55
55
  },
56
56
  io: {
57
- inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
57
+ inputJsonPath: `tasks/${taskCtx.effectId}/inputs.json`,
58
58
  outputJsonPath: `tasks/${taskCtx.effectId}/output.json`
59
59
  }
60
60
  }));
@@ -74,7 +74,7 @@ export const verificationGateTask = defineTask('verification-gate', (args, taskC
74
74
  timeout: 300000
75
75
  },
76
76
  io: {
77
- inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
77
+ inputJsonPath: `tasks/${taskCtx.effectId}/inputs.json`,
78
78
  outputJsonPath: `tasks/${taskCtx.effectId}/output.json`
79
79
  }
80
80
  }));
@@ -103,7 +103,7 @@ export const readSpecTask = defineTask('read-spec', (args, taskCtx) => ({
103
103
  timeout: 5000,
104
104
  },
105
105
  io: {
106
- inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
106
+ inputJsonPath: `tasks/${taskCtx.effectId}/inputs.json`,
107
107
  outputJsonPath: `tasks/${taskCtx.effectId}/output.json`,
108
108
  },
109
109
  }));
@@ -141,7 +141,7 @@ export const authorTestsFromSpecTask = defineTask(
141
141
  },
142
142
  },
143
143
  io: {
144
- inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
144
+ inputJsonPath: `tasks/${taskCtx.effectId}/inputs.json`,
145
145
  outputJsonPath: `tasks/${taskCtx.effectId}/output.json`,
146
146
  },
147
147
  }),
@@ -178,7 +178,7 @@ export const verifyAgainstSpecTask = defineTask(
178
178
  },
179
179
  },
180
180
  io: {
181
- inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
181
+ inputJsonPath: `tasks/${taskCtx.effectId}/inputs.json`,
182
182
  outputJsonPath: `tasks/${taskCtx.effectId}/output.json`,
183
183
  },
184
184
  }),
@@ -222,7 +222,7 @@ export const skillTask = defineTask('analyzer-skill', (args, taskCtx) => ({
222
222
  },
223
223
 
224
224
  io: {
225
- inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
225
+ inputJsonPath: `tasks/${taskCtx.effectId}/inputs.json`,
226
226
  outputJsonPath: `tasks/${taskCtx.effectId}/output.json`
227
227
  }
228
228
  }));
@@ -66,8 +66,12 @@ Tasks can include an `execution` field to express preferences about how the effe
66
66
  |-------|-------------|
67
67
  | `execution.model` | Preferred model for the task (e.g., `'claude-opus-4-6'`). Used for subagent selection. |
68
68
  {{#cap.harness-routing}}
69
- | `execution.harness` | Preferred harness CLI for the task (internal-only). |
70
- | `execution.permissions` | Permission list for the task (internal-only). |
69
+ | `execution.harness` | Preferred internal harness CLI for the task. This is routing metadata for harnesses that implement it, not a universal plugin contract. |
70
+ | `execution.permissions` | Internal harness permission hints. Plugins may ignore them; do not treat them as a cross-harness security boundary. |
71
+ {{/cap.harness-routing}}
72
+
73
+ {{#cap.harness-routing}}
74
+ Use `execution.permissions` only when you are targeting an internal harness flow that actually interprets the hints. If a task must rely on a security boundary across plugin targets, encode that boundary in the execution path itself instead of assuming plugins will enforce these hints.
71
75
  {{/cap.harness-routing}}
72
76
 
73
77
  Example:
@@ -95,7 +99,7 @@ defineTask('my-task', (args, taskCtx) => ({
95
99
  outputSchema: { type: 'object', required: ['result'] }
96
100
  },
97
101
  io: {
98
- inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
102
+ inputJsonPath: `tasks/${taskCtx.effectId}/inputs.json`,
99
103
  outputJsonPath: `tasks/${taskCtx.effectId}/result.json`
100
104
  }
101
105
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"commitEffectResult.d.ts","sourceRoot":"","sources":["../../src/runtime/commitEffectResult.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EAG1B,MAAM,SAAS,CAAC;AAQjB,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAkFjH;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,SAAS,EAAE,aAAa,CAAC;CAC1C;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAmDhC"}
1
+ {"version":3,"file":"commitEffectResult.d.ts","sourceRoot":"","sources":["../../src/runtime/commitEffectResult.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EAG1B,MAAM,SAAS,CAAC;AASjB,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAmFjH;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,SAAS,EAAE,aAAa,CAAC;CAC1C;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAoDhC"}