@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.
- package/README.md +68 -0
- package/dist/cli/commands/breakpointRules.d.ts.map +1 -1
- package/dist/cli/commands/breakpointRules.js +30 -27
- package/dist/cli/commands/compressOutputHelpers.d.ts.map +1 -1
- package/dist/cli/commands/compressOutputHelpers.js +18 -2
- package/dist/cli/commands/costStats.d.ts.map +1 -1
- package/dist/cli/commands/costStats.js +35 -27
- package/dist/cli/commands/harness/install.d.ts +2 -3
- package/dist/cli/commands/harness/install.d.ts.map +1 -1
- package/dist/cli/commands/harness/install.js +11 -10
- package/dist/cli/commands/health/checks.d.ts.map +1 -1
- package/dist/cli/commands/health/checks.js +4 -3
- package/dist/cli/commands/health/environment.d.ts.map +1 -1
- package/dist/cli/commands/health/environment.js +11 -1
- package/dist/cli/commands/hooks/run.d.ts.map +1 -1
- package/dist/cli/commands/hooks/run.js +3 -2
- package/dist/cli/commands/instructions.d.ts +1 -1
- package/dist/cli/commands/instructions.d.ts.map +1 -1
- package/dist/cli/commands/instructions.js +71 -5
- package/dist/cli/commands/runIterate.d.ts.map +1 -1
- package/dist/cli/commands/runIterate.js +2 -35
- package/dist/cli/commands/session/associate.d.ts.map +1 -1
- package/dist/cli/commands/session/associate.js +4 -36
- package/dist/cli/commands/session/iterationMessage.d.ts.map +1 -1
- package/dist/cli/commands/session/iterationMessage.js +9 -54
- package/dist/cli/commands/session/resume.d.ts.map +1 -1
- package/dist/cli/commands/session/resume.js +6 -16
- package/dist/cli/commands/skill.d.ts.map +1 -1
- package/dist/cli/commands/skill.js +2 -1
- package/dist/cli/commands/tokensStats.d.ts.map +1 -1
- package/dist/cli/commands/tokensStats.js +36 -28
- package/dist/cli/main/argFlagParsers.d.ts.map +1 -1
- package/dist/cli/main/argFlagParsers.js +2 -1
- package/dist/cli/main/args.d.ts.map +1 -1
- package/dist/cli/main/args.js +4 -27
- package/dist/cli/main/dispatchHarness.js +1 -1
- package/dist/cli/main/dispatchRunSession.js +0 -10
- package/dist/cli/main/runCreate.js +2 -2
- package/dist/cli/main/runSupport.d.ts +9 -1
- package/dist/cli/main/runSupport.d.ts.map +1 -1
- package/dist/cli/main/runSupport.js +71 -1
- package/dist/cli/main/usage.d.ts.map +1 -1
- package/dist/cli/main/usage.js +42 -38
- package/dist/config/configValidation.d.ts.map +1 -1
- package/dist/config/configValidation.js +2 -1
- package/dist/config/defaults.d.ts +2 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +3 -1
- package/dist/config/index.d.ts +3 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +15 -2
- package/dist/config/runs.d.ts +22 -0
- package/dist/config/runs.d.ts.map +1 -0
- package/dist/config/runs.js +192 -0
- package/dist/harness/adapters/cursor.d.ts +1 -0
- package/dist/harness/adapters/cursor.d.ts.map +1 -1
- package/dist/harness/adapters/cursor.js +34 -0
- package/dist/harness/amuxFallbackMetadata.d.ts.map +1 -1
- package/dist/harness/amuxFallbackMetadata.js +62 -37
- package/dist/harness/amuxMetadata.d.ts.map +1 -1
- package/dist/harness/amuxMetadata.js +2 -1
- package/dist/harness/discovery.d.ts +21 -1
- package/dist/harness/discovery.d.ts.map +1 -1
- package/dist/harness/discovery.js +55 -0
- package/dist/harness/hooks/runState.d.ts.map +1 -1
- package/dist/harness/hooks/runState.js +12 -23
- package/dist/harness/hooks/sessionBinding.d.ts.map +1 -1
- package/dist/harness/hooks/sessionBinding.js +3 -6
- package/dist/harness/hooks/stopHookContinuation.d.ts.map +1 -1
- package/dist/harness/hooks/stopHookContinuation.js +8 -16
- package/dist/harness/hooks/stopHookHandler.d.ts.map +1 -1
- package/dist/harness/hooks/stopHookHandler.js +2 -1
- package/dist/harness/hooks/utils.js +3 -3
- package/dist/harness/index.d.ts +1 -1
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +2 -1
- package/dist/harness/install.d.ts +1 -0
- package/dist/harness/install.d.ts.map +1 -1
- package/dist/harness/install.js +63 -0
- package/dist/harness/installSupport.d.ts.map +1 -1
- package/dist/harness/installSupport.js +19 -0
- package/dist/harness/types.d.ts +7 -0
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/unified/subprocess.d.ts.map +1 -1
- package/dist/harness/unified/subprocess.js +3 -0
- package/dist/mcp/tools/sessions.d.ts.map +1 -1
- package/dist/mcp/tools/sessions.js +2 -8
- package/dist/mcp/util/resolve-run-dir.d.ts +1 -1
- package/dist/mcp/util/resolve-run-dir.d.ts.map +1 -1
- package/dist/mcp/util/resolve-run-dir.js +3 -39
- package/dist/prompts/compose.js +1 -1
- package/dist/prompts/templates/effects.md +1 -1
- package/dist/prompts/templates/iteration.md +1 -1
- package/dist/prompts/templates/results-posting.md +2 -2
- package/dist/prompts/templates/run-creation.md +2 -2
- package/dist/prompts/templates/run-overlap-detection.md +6 -4
- package/dist/prompts/templates/task-examples.md +7 -7
- package/dist/prompts/templates/task-kinds.md +7 -3
- package/dist/runtime/commitEffectResult.d.ts.map +1 -1
- package/dist/runtime/commitEffectResult.js +5 -2
- package/dist/runtime/createRun.d.ts.map +1 -1
- package/dist/runtime/createRun.js +28 -14
- package/dist/runtime/index.d.ts +2 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +8 -1
- package/dist/runtime/intrinsics/subprocess.d.ts +5 -0
- package/dist/runtime/intrinsics/subprocess.d.ts.map +1 -0
- package/dist/runtime/intrinsics/subprocess.js +56 -0
- package/dist/runtime/intrinsics/task.d.ts +1 -0
- package/dist/runtime/intrinsics/task.d.ts.map +1 -1
- package/dist/runtime/orchestrateIteration.d.ts.map +1 -1
- package/dist/runtime/orchestrateIteration.js +8 -2
- package/dist/runtime/policy/engine.d.ts +4 -0
- package/dist/runtime/policy/engine.d.ts.map +1 -0
- package/dist/runtime/policy/engine.js +97 -0
- package/dist/runtime/policy/index.d.ts +3 -1
- package/dist/runtime/policy/index.d.ts.map +1 -1
- package/dist/runtime/policy/index.js +9 -1
- package/dist/runtime/policy/logging.d.ts +6 -0
- package/dist/runtime/policy/logging.d.ts.map +1 -0
- package/dist/runtime/policy/logging.js +43 -0
- package/dist/runtime/policy/types.d.ts +4 -0
- package/dist/runtime/policy/types.d.ts.map +1 -1
- package/dist/runtime/processContext.d.ts +3 -0
- package/dist/runtime/processContext.d.ts.map +1 -1
- package/dist/runtime/processContext.js +3 -0
- package/dist/runtime/replay/createReplayEngine.d.ts +1 -0
- package/dist/runtime/replay/createReplayEngine.d.ts.map +1 -1
- package/dist/runtime/replay/createReplayEngine.js +26 -0
- package/dist/runtime/runLifecycleState.d.ts +7 -0
- package/dist/runtime/runLifecycleState.d.ts.map +1 -0
- package/dist/runtime/runLifecycleState.js +54 -0
- package/dist/runtime/types.d.ts +33 -1
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/session/cleanup.d.ts.map +1 -1
- package/dist/session/cleanup.js +26 -21
- package/dist/session/types.d.ts +1 -1
- package/dist/session/types.d.ts.map +1 -1
- package/dist/storage/createRunDir.d.ts.map +1 -1
- package/dist/storage/createRunDir.js +1 -0
- package/dist/storage/types.d.ts +14 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/tasks/defineTask.d.ts +28 -0
- package/dist/tasks/defineTask.d.ts.map +1 -1
- package/dist/tasks/defineTask.js +42 -1
- package/dist/tasks/types.d.ts +18 -3
- package/dist/tasks/types.d.ts.map +1 -1
- 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 ||
|
|
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
|
|
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
|
|
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
|
|
207
|
+
return `Babysitter iteration ${nextIteration} | Continue orchestration: call 'babysitter run:iterate ${runId} --json'.\n\n${prompt}`;
|
|
208
208
|
}
|
package/dist/harness/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/harness/index.js
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/harness/install.js
CHANGED
|
@@ -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,
|
|
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() {
|
package/dist/harness/types.d.ts
CHANGED
|
@@ -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;
|
|
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;
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
|
4
|
+
const config_1 = require("../../config");
|
|
38
5
|
/**
|
|
39
|
-
* Resolves the runs directory
|
|
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
|
-
|
|
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
|
}
|
package/dist/prompts/compose.js
CHANGED
|
@@ -61,7 +61,7 @@ function composeBabysitSkillPrompt(ctx) {
|
|
|
61
61
|
const header = [
|
|
62
62
|
'# babysit',
|
|
63
63
|
'',
|
|
64
|
-
'Orchestrate
|
|
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'
|
|
@@ -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
|
|
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
|
|
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:
|
|
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> --
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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}/
|
|
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}/
|
|
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}/
|
|
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}/
|
|
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}/
|
|
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}/
|
|
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}/
|
|
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
|
|
70
|
-
| `execution.permissions` |
|
|
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}/
|
|
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;
|
|
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"}
|