@ai-sdk/harness-claude-code 1.0.96 → 1.0.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/bridge/index.mjs +60 -13
- package/dist/bridge/index.mjs.map +1 -1
- package/dist/bridge/package.json +3 -3
- package/dist/bridge/pnpm-lock.yaml +128 -126
- package/dist/bridge/pnpm-workspace.yaml +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +32 -25
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/src/bridge/index.ts +69 -8
- package/src/bridge/package.json +3 -3
- package/src/bridge/pnpm-lock.yaml +128 -126
- package/src/bridge/pnpm-workspace.yaml +1 -1
- package/src/claude-code-harness.ts +49 -35
package/dist/index.js
CHANGED
|
@@ -266,7 +266,7 @@ var inboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
266
266
|
]);
|
|
267
267
|
|
|
268
268
|
// src/version.ts
|
|
269
|
-
var VERSION = true ? "1.0.
|
|
269
|
+
var VERSION = true ? "1.0.97" : "0.0.0-test";
|
|
270
270
|
|
|
271
271
|
// src/claude-code-harness.ts
|
|
272
272
|
var CLAUDE_CODE_CLIENT_APP = `ai-sdk/harness-claude-code/${VERSION}`;
|
|
@@ -892,6 +892,7 @@ function createClaudeCode(settings = {}) {
|
|
|
892
892
|
lifecycleStateSchema: claudeCodeResumeStateSchema,
|
|
893
893
|
getBootstrap: getClaudeCodeBootstrap,
|
|
894
894
|
doStart: async (startOpts) => {
|
|
895
|
+
const model = startOpts.model ?? settings.model;
|
|
895
896
|
const sandboxSession = startOpts.sandboxSession;
|
|
896
897
|
const toolSafeSandboxSession = getRestrictedSandboxSession(sandboxSession);
|
|
897
898
|
const sandboxId = "id" in sandboxSession ? sandboxSession.id : void 0;
|
|
@@ -965,6 +966,10 @@ function createClaudeCode(settings = {}) {
|
|
|
965
966
|
CLAUDE_CODE_BOOTSTRAP_DIR
|
|
966
967
|
);
|
|
967
968
|
const workDir = startOpts.sessionWorkDir;
|
|
969
|
+
const sandboxHomeDir = await resolveSandboxHomeDir({
|
|
970
|
+
sandbox: toolSafeSandboxSession,
|
|
971
|
+
abortSignal: startOpts.abortSignal
|
|
972
|
+
});
|
|
968
973
|
const sessionDataDir = `${defaultWorkingDirectory}/.agent-runs/${startOpts.sessionId}`;
|
|
969
974
|
const bridgeStateDir = `${sessionDataDir}/bridge`;
|
|
970
975
|
const timeoutMs = settings.startupTimeoutMs ?? 12e4;
|
|
@@ -1015,7 +1020,7 @@ function createClaudeCode(settings = {}) {
|
|
|
1015
1020
|
// process handle. The session lifecycle method decides whether the
|
|
1016
1021
|
// sandbox is left running, stopped, or destroyed.
|
|
1017
1022
|
proc: void 0,
|
|
1018
|
-
model
|
|
1023
|
+
model,
|
|
1019
1024
|
maxTurns: settings.maxTurns,
|
|
1020
1025
|
env: sandboxClaudeEnvironment,
|
|
1021
1026
|
thinking,
|
|
@@ -1030,7 +1035,8 @@ function createClaudeCode(settings = {}) {
|
|
|
1030
1035
|
debug: startOpts.observability?.debug,
|
|
1031
1036
|
permissionMode: startOpts.permissionMode,
|
|
1032
1037
|
builtinToolFiltering: startOpts.builtinToolFiltering,
|
|
1033
|
-
|
|
1038
|
+
sandbox: toolSafeSandboxSession,
|
|
1039
|
+
sandboxHomeDir,
|
|
1034
1040
|
mcpServers: settings.mcpServers,
|
|
1035
1041
|
supportsUserMessageResponses: () => supportsUserMessageResponses
|
|
1036
1042
|
});
|
|
@@ -1049,10 +1055,6 @@ function createClaudeCode(settings = {}) {
|
|
|
1049
1055
|
respawnStrategy = "replay";
|
|
1050
1056
|
}
|
|
1051
1057
|
}
|
|
1052
|
-
const sandboxHomeDir = startOpts.skills && startOpts.skills.length > 0 ? await resolveSandboxHomeDir({
|
|
1053
|
-
sandbox: toolSafeSandboxSession,
|
|
1054
|
-
abortSignal: startOpts.abortSignal
|
|
1055
|
-
}) : void 0;
|
|
1056
1058
|
const port = resolveBridgePort({
|
|
1057
1059
|
sandboxSession,
|
|
1058
1060
|
override: settings.port
|
|
@@ -1061,7 +1063,6 @@ function createClaudeCode(settings = {}) {
|
|
|
1061
1063
|
const env = {
|
|
1062
1064
|
BRIDGE_CHANNEL_TOKEN: token,
|
|
1063
1065
|
BRIDGE_WS_PORT: String(port),
|
|
1064
|
-
...sandboxHomeDir ? { HOME: sandboxHomeDir } : {},
|
|
1065
1066
|
...respawnStrategy === "replay" ? { BRIDGE_REPLAY_FROM_DISK: "1" } : {}
|
|
1066
1067
|
};
|
|
1067
1068
|
if (respawnStrategy === void 0) {
|
|
@@ -1069,17 +1070,6 @@ function createClaudeCode(settings = {}) {
|
|
|
1069
1070
|
command: `mkdir -p ${shellQuote(workDir)} ${shellQuote(bridgeStateDir)}`,
|
|
1070
1071
|
abortSignal: startOpts.abortSignal
|
|
1071
1072
|
});
|
|
1072
|
-
if (startOpts.skills && startOpts.skills.length > 0) {
|
|
1073
|
-
if (!sandboxHomeDir) {
|
|
1074
|
-
throw new Error("Unable to resolve sandbox HOME directory.");
|
|
1075
|
-
}
|
|
1076
|
-
await writeClaudeCodeSkills({
|
|
1077
|
-
sandbox: toolSafeSandboxSession,
|
|
1078
|
-
homeDir: sandboxHomeDir,
|
|
1079
|
-
skills: startOpts.skills,
|
|
1080
|
-
abortSignal: startOpts.abortSignal
|
|
1081
|
-
});
|
|
1082
|
-
}
|
|
1083
1073
|
}
|
|
1084
1074
|
await markBridgeStarting({
|
|
1085
1075
|
sandbox: toolSafeSandboxSession,
|
|
@@ -1146,7 +1136,7 @@ function createClaudeCode(settings = {}) {
|
|
|
1146
1136
|
sessionId: startOpts.sessionId,
|
|
1147
1137
|
channel,
|
|
1148
1138
|
proc,
|
|
1149
|
-
model
|
|
1139
|
+
model,
|
|
1150
1140
|
maxTurns: settings.maxTurns,
|
|
1151
1141
|
env: sandboxClaudeEnvironment,
|
|
1152
1142
|
thinking,
|
|
@@ -1161,7 +1151,8 @@ function createClaudeCode(settings = {}) {
|
|
|
1161
1151
|
debug: startOpts.observability?.debug,
|
|
1162
1152
|
permissionMode: startOpts.permissionMode,
|
|
1163
1153
|
builtinToolFiltering: startOpts.builtinToolFiltering,
|
|
1164
|
-
|
|
1154
|
+
sandbox: toolSafeSandboxSession,
|
|
1155
|
+
sandboxHomeDir,
|
|
1165
1156
|
mcpServers: settings.mcpServers,
|
|
1166
1157
|
supportsUserMessageResponses: () => supportsUserMessageResponses
|
|
1167
1158
|
});
|
|
@@ -1409,7 +1400,8 @@ function createSession({
|
|
|
1409
1400
|
debug,
|
|
1410
1401
|
permissionMode,
|
|
1411
1402
|
builtinToolFiltering,
|
|
1412
|
-
|
|
1403
|
+
sandbox,
|
|
1404
|
+
sandboxHomeDir,
|
|
1413
1405
|
mcpServers,
|
|
1414
1406
|
supportsUserMessageResponses
|
|
1415
1407
|
}) {
|
|
@@ -1549,10 +1541,19 @@ function createSession({
|
|
|
1549
1541
|
harnessId: "claude-code"
|
|
1550
1542
|
});
|
|
1551
1543
|
}
|
|
1544
|
+
await writeClaudeCodeSkills({
|
|
1545
|
+
sandbox,
|
|
1546
|
+
homeDir: sandboxHomeDir,
|
|
1547
|
+
skills: promptOpts.skills,
|
|
1548
|
+
abortSignal: promptOpts.abortSignal
|
|
1549
|
+
});
|
|
1552
1550
|
const control = wireTurn({
|
|
1553
1551
|
emit: promptOpts.emit,
|
|
1554
1552
|
abortSignal: promptOpts.abortSignal
|
|
1555
1553
|
});
|
|
1554
|
+
if (promptOpts.abortSignal?.aborted) {
|
|
1555
|
+
return control;
|
|
1556
|
+
}
|
|
1556
1557
|
const startMessage = {
|
|
1557
1558
|
type: "start",
|
|
1558
1559
|
prompt: extractUserText(promptOpts.prompt),
|
|
@@ -1568,7 +1569,7 @@ function createSession({
|
|
|
1568
1569
|
...env !== void 0 ? { env } : {},
|
|
1569
1570
|
thinking,
|
|
1570
1571
|
...effort !== void 0 ? { effort } : {},
|
|
1571
|
-
...skills.length > 0 ? { skills: skills.map((skill) => skill.name) } : {},
|
|
1572
|
+
...promptOpts.skills.length > 0 ? { skills: promptOpts.skills.map((skill) => skill.name) } : {},
|
|
1572
1573
|
...mcpServers == null ? {} : { mcpServers },
|
|
1573
1574
|
...permissionMode ? { permissionMode } : {},
|
|
1574
1575
|
...builtinToolFiltering ? { builtinToolFiltering } : {},
|
|
@@ -1586,11 +1587,17 @@ function createSession({
|
|
|
1586
1587
|
harnessId: "claude-code"
|
|
1587
1588
|
});
|
|
1588
1589
|
}
|
|
1590
|
+
await writeClaudeCodeSkills({
|
|
1591
|
+
sandbox,
|
|
1592
|
+
homeDir: sandboxHomeDir,
|
|
1593
|
+
skills: continueOpts.skills,
|
|
1594
|
+
abortSignal: continueOpts.abortSignal
|
|
1595
|
+
});
|
|
1589
1596
|
const control = wireTurn({
|
|
1590
1597
|
emit: continueOpts.emit,
|
|
1591
1598
|
abortSignal: continueOpts.abortSignal
|
|
1592
1599
|
});
|
|
1593
|
-
if (rerunContinue) {
|
|
1600
|
+
if (rerunContinue && !continueOpts.abortSignal?.aborted) {
|
|
1594
1601
|
pendingResumeFlag = false;
|
|
1595
1602
|
channel.send({
|
|
1596
1603
|
type: "start",
|
|
@@ -1614,7 +1621,7 @@ function createSession({
|
|
|
1614
1621
|
...env !== void 0 ? { env } : {},
|
|
1615
1622
|
thinking,
|
|
1616
1623
|
...effort !== void 0 ? { effort } : {},
|
|
1617
|
-
...skills.length > 0 ? { skills: skills.map((skill) => skill.name) } : {},
|
|
1624
|
+
...continueOpts.skills.length > 0 ? { skills: continueOpts.skills.map((skill) => skill.name) } : {},
|
|
1618
1625
|
...mcpServers == null ? {} : { mcpServers },
|
|
1619
1626
|
...permissionMode ? { permissionMode } : {},
|
|
1620
1627
|
...builtinToolFiltering ? { builtinToolFiltering } : {},
|