@agentstep/gateway 0.4.27 → 0.4.29

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 (2) hide show
  1. package/dist/gateway.js +479 -352
  2. package/package.json +1 -1
package/dist/gateway.js CHANGED
@@ -158094,162 +158094,101 @@ var init_chunk_CY6AWCC6 = __esm({
158094
158094
  }
158095
158095
  });
158096
158096
 
158097
- // ../agent-sdk/dist/chunk-ALVC7G6R.js
158097
+ // ../agent-sdk/dist/chunk-4FDEJHH7.js
158098
158098
  function generateBridgeScript() {
158099
- return `#!/usr/bin/env node
158100
- // Auto-generated MCP stdio server for custom tool bridge.
158101
- // Reads tool definitions from ${TOOL_BRIDGE_TOOLS_PATH}
158102
- import { readFileSync, writeFileSync, unlinkSync, existsSync, watch, watchFile, unwatchFile } from 'node:fs';
158103
- import { createInterface } from 'node:readline';
158104
-
158105
- const TOOLS_PATH = ${JSON.stringify(TOOL_BRIDGE_TOOLS_PATH)};
158106
- const REQUEST_PATH = ${JSON.stringify(TOOL_BRIDGE_REQUEST_PATH)};
158107
- const RESPONSE_PATH = ${JSON.stringify(TOOL_BRIDGE_RESPONSE_PATH)};
158108
- const PENDING_PATH = ${JSON.stringify(TOOL_BRIDGE_PENDING_PATH)};
158109
-
158110
- let tools = [];
158111
- try { tools = JSON.parse(readFileSync(TOOLS_PATH, 'utf8')); } catch {}
158099
+ return `#!/bin/bash
158100
+ # Auto-generated MCP stdio server for custom tool bridge.
158101
+ # Pure bash \u2014 no Node.js dependency. Instant startup on Firecracker VMs.
158112
158102
 
158113
- function sendResponse(id, result) {
158114
- const msg = JSON.stringify({ jsonrpc: '2.0', id, result });
158115
- const buf = Buffer.from(msg, 'utf8');
158116
- process.stdout.write('Content-Length: ' + buf.length + '\\r\\n\\r\\n');
158117
- process.stdout.write(buf);
158118
- }
158103
+ TOOLS_PATH="${TOOL_BRIDGE_TOOLS_PATH}"
158104
+ REQUEST_PATH="${TOOL_BRIDGE_REQUEST_PATH}"
158105
+ RESPONSE_PATH="${TOOL_BRIDGE_RESPONSE_PATH}"
158106
+ PENDING_PATH="${TOOL_BRIDGE_PENDING_PATH}"
158119
158107
 
158120
- function sendError(id, code, message) {
158121
- const msg = JSON.stringify({ jsonrpc: '2.0', id, error: { code, message } });
158122
- const buf = Buffer.from(msg, 'utf8');
158123
- process.stdout.write('Content-Length: ' + buf.length + '\\r\\n\\r\\n');
158124
- process.stdout.write(buf);
158108
+ send_response() {
158109
+ printf '%s\\n' "$1"
158125
158110
  }
158126
158111
 
158127
- function handleRequest(req) {
158128
- if (req.method === 'initialize') {
158129
- sendResponse(req.id, {
158130
- protocolVersion: '2024-11-05',
158131
- capabilities: { tools: { listChanged: false } },
158132
- serverInfo: { name: 'tool-bridge', version: '1.0.0' },
158133
- });
158134
- return;
158135
- }
158136
- if (req.method === 'notifications/initialized') return;
158137
- if (req.method === 'tools/list') {
158138
- sendResponse(req.id, {
158139
- tools: tools.map(t => ({
158140
- name: t.name,
158141
- description: t.description || '',
158142
- inputSchema: t.input_schema || { type: 'object', properties: {} },
158143
- })),
158144
- });
158145
- return;
158146
- }
158147
- if (req.method === 'tools/call') {
158148
- const toolName = req.params?.name;
158149
- const toolInput = req.params?.arguments || {};
158150
-
158151
- // Replay case: if response.json already exists (from a --resume re-entry),
158152
- // return it immediately without creating a pending sentinel.
158153
- if (existsSync(RESPONSE_PATH)) {
158154
- try {
158155
- const resp = JSON.parse(readFileSync(RESPONSE_PATH, 'utf8'));
158156
- sendResponse(req.id, {
158157
- content: [{ type: 'text', text: JSON.stringify(resp.content ?? resp) }],
158158
- isError: false,
158159
- });
158160
- try { unlinkSync(RESPONSE_PATH); } catch {}
158161
- return;
158162
- } catch (e) {
158163
- console.error('[tool-bridge] replay failed:', e);
158164
- process.exit(1);
158165
- }
158166
- }
158167
-
158168
- // Write the request and create pending sentinel
158169
- writeFileSync(REQUEST_PATH, JSON.stringify({
158170
- tool_use_id: req.id,
158171
- name: toolName,
158172
- input: toolInput,
158173
- }));
158174
- writeFileSync(PENDING_PATH, '');
158175
-
158176
- // Watch for response.json \u2014 prefer fs.watch (inotify/kqueue) over
158177
- // fs.watchFile (stat polling). Fall back to watchFile if watch fails.
158178
- let resolved = false;
158179
- const onResponse = () => {
158180
- if (resolved) return;
158181
- if (!existsSync(RESPONSE_PATH)) return;
158182
- resolved = true;
158183
- // Clean up whichever watcher is active
158184
- if (watcher) { try { watcher.close(); } catch {} }
158185
- try { unwatchFile(RESPONSE_PATH, pollFallback); } catch {}
158186
- try {
158187
- const resp = JSON.parse(readFileSync(RESPONSE_PATH, 'utf8'));
158188
- try { unlinkSync(RESPONSE_PATH); } catch {}
158189
- try { unlinkSync(PENDING_PATH); } catch {}
158190
- sendResponse(req.id, {
158191
- content: [{ type: 'text', text: JSON.stringify(resp.content ?? resp) }],
158192
- isError: false,
158193
- });
158194
- } catch (e) {
158195
- sendError(req.id, -32603, 'Failed to read response: ' + e.message);
158196
- }
158197
- };
158198
- const pollFallback = () => onResponse();
158199
- let watcher = null;
158200
- // Check immediately in case it was written between our existsSync check
158201
- onResponse();
158202
- if (resolved) return;
158203
- try {
158204
- watcher = watch(RESPONSE_PATH, () => onResponse());
158205
- watcher.on('error', () => {
158206
- // fs.watch failed mid-watch \u2014 fall back to polling
158207
- try { watcher.close(); } catch {}
158208
- watcher = null;
158209
- watchFile(RESPONSE_PATH, { interval: 200 }, pollFallback);
158210
- });
158211
- } catch {
158212
- // fs.watch not available \u2014 fall back to stat polling
158213
- watchFile(RESPONSE_PATH, { interval: 200 }, pollFallback);
158214
- }
158215
- return;
158216
- }
158217
- // Unknown method
158218
- if (req.id != null) {
158219
- sendError(req.id, -32601, 'Method not found: ' + req.method);
158220
- }
158221
- }
158112
+ TOOLS_LIST_JSON=""
158113
+ if [ -f "$TOOLS_PATH" ]; then
158114
+ TOOLS_LIST_JSON=$(sed 's/input_schema/inputSchema/g' "$TOOLS_PATH")
158115
+ fi
158222
158116
 
158223
- // Read MCP stdio protocol: Content-Length headers + JSON body
158224
- let buffer = '';
158225
- process.stdin.setEncoding('utf8');
158226
- process.stdin.on('data', (chunk) => {
158227
- buffer += chunk;
158228
- while (true) {
158229
- const headerEnd = buffer.indexOf('\\r\\n\\r\\n');
158230
- if (headerEnd === -1) break;
158231
- const header = buffer.slice(0, headerEnd);
158232
- const match = header.match(/Content-Length:\\s*(\\d+)/i);
158233
- if (!match) { buffer = buffer.slice(headerEnd + 4); continue; }
158234
- const len = parseInt(match[1], 10);
158235
- const bodyStart = headerEnd + 4;
158236
- if (buffer.length < bodyStart + len) break;
158237
- const body = buffer.slice(bodyStart, bodyStart + len);
158238
- buffer = buffer.slice(bodyStart + len);
158239
- try {
158240
- handleRequest(JSON.parse(body));
158241
- } catch {}
158242
- }
158243
- });
158244
- process.stdin.on('end', () => process.exit(0));
158117
+ handle_request() {
158118
+ local body="$1"
158119
+ local method id
158120
+ method=$(echo "$body" | grep -o '"method":"[^"]*"' | head -1 | cut -d'"' -f4)
158121
+ id=$(echo "$body" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
158122
+
158123
+ case "$method" in
158124
+ initialize)
158125
+ send_response '{"jsonrpc":"2.0","id":'"$id"',"result":{"protocolVersion":"2025-11-25","capabilities":{"tools":{"listChanged":false}},"serverInfo":{"name":"tool-bridge","version":"1.0.0"}}}'
158126
+ ;;
158127
+ notifications/initialized) ;;
158128
+ tools/list)
158129
+ send_response '{"jsonrpc":"2.0","id":'"$id"',"result":{"tools":'"$TOOLS_LIST_JSON"'}}'
158130
+ ;;
158131
+ tools/call)
158132
+ local tool_name tool_args
158133
+ tool_name=$(echo "$body" | grep -o '"name":"[^"]*"' | tail -1 | cut -d'"' -f4)
158134
+ tool_args=$(echo "$body" | grep -o '"arguments":{[^}]*}' | head -1 | sed 's/^"arguments"://')
158135
+ [ -z "$tool_args" ] && tool_args="{}"
158136
+
158137
+ # Replay case: response.json already exists (--resume re-entry)
158138
+ if [ -f "$RESPONSE_PATH" ]; then
158139
+ local rdata
158140
+ rdata=$(cat "$RESPONSE_PATH" | tr -d '\\n' | sed 's/\\\\/\\\\\\\\/g; s/"/\\\\"/g')
158141
+ rm -f "$RESPONSE_PATH"
158142
+ send_response '{"jsonrpc":"2.0","id":'"$id"',"result":{"content":[{"type":"text","text":"'"$rdata"'"}],"isError":false}}'
158143
+ return
158144
+ fi
158145
+
158146
+ # Write request and create pending sentinel
158147
+ printf '{"tool_use_id":%s,"name":"%s","input":%s}' "$id" "$tool_name" "$tool_args" > "$REQUEST_PATH"
158148
+ touch "$PENDING_PATH"
158149
+
158150
+ # Poll for response.json (200ms interval, 5min timeout)
158151
+ local elapsed=0
158152
+ while [ $elapsed -lt 1500 ]; do
158153
+ if [ -f "$RESPONSE_PATH" ]; then
158154
+ local rdata
158155
+ rdata=$(cat "$RESPONSE_PATH" | tr -d '\\n' | sed 's/\\\\/\\\\\\\\/g; s/"/\\\\"/g')
158156
+ rm -f "$RESPONSE_PATH" "$PENDING_PATH"
158157
+ send_response '{"jsonrpc":"2.0","id":'"$id"',"result":{"content":[{"type":"text","text":"'"$rdata"'"}],"isError":false}}'
158158
+ return
158159
+ fi
158160
+ sleep 0.2
158161
+ elapsed=$((elapsed + 1))
158162
+ done
158163
+ # Timeout
158164
+ rm -f "$PENDING_PATH"
158165
+ send_response '{"jsonrpc":"2.0","id":'"$id"',"error":{"code":-32603,"message":"Timeout waiting for tool response"}}'
158166
+ ;;
158167
+ *)
158168
+ [ -n "$id" ] && send_response '{"jsonrpc":"2.0","id":'"$id"',"error":{"code":-32601,"message":"Method not found"}}'
158169
+ ;;
158170
+ esac
158171
+ }
158172
+
158173
+ # Main loop: handle both raw JSON lines and Content-Length framed messages
158174
+ while IFS= read -r line; do
158175
+ line=\${line%$'\\r'}
158176
+ [ -z "$line" ] && continue
158177
+ case "$line" in
158178
+ Content-Length:*)
158179
+ while IFS= read -r hdr; do hdr=\${hdr%$'\\r'}; [ -z "$hdr" ] && break; done
158180
+ body=$(head -c "\${line#Content-Length: }")
158181
+ handle_request "$body" ;;
158182
+ "{"*) handle_request "$line" ;;
158183
+ esac
158184
+ done
158245
158185
  `;
158246
158186
  }
158247
158187
  function buildBridgeMcpConfig(existingServers) {
158248
158188
  return {
158249
158189
  ...existingServers,
158250
158190
  "tool-bridge": {
158251
- type: "stdio",
158252
- command: "node",
158191
+ command: "bash",
158253
158192
  args: [TOOL_BRIDGE_SCRIPT_PATH]
158254
158193
  }
158255
158194
  };
@@ -158263,15 +158202,16 @@ function toolsToJson(tools) {
158263
158202
  }))
158264
158203
  );
158265
158204
  }
158266
- var TOOL_BRIDGE_DIR, TOOL_BRIDGE_SCRIPT_PATH, TOOL_BRIDGE_TOOLS_PATH, TOOL_BRIDGE_REQUEST_PATH, TOOL_BRIDGE_RESPONSE_PATH, TOOL_BRIDGE_PENDING_PATH;
158267
- var init_chunk_ALVC7G6R = __esm({
158268
- "../agent-sdk/dist/chunk-ALVC7G6R.js"() {
158205
+ var TOOL_BRIDGE_DIR, TOOL_BRIDGE_SCRIPT_PATH, TOOL_BRIDGE_TOOLS_PATH, TOOL_BRIDGE_REQUEST_PATH, TOOL_BRIDGE_RESPONSE_PATH, TOOL_BRIDGE_MCP_CONFIG_PATH, TOOL_BRIDGE_PENDING_PATH;
158206
+ var init_chunk_4FDEJHH7 = __esm({
158207
+ "../agent-sdk/dist/chunk-4FDEJHH7.js"() {
158269
158208
  "use strict";
158270
158209
  TOOL_BRIDGE_DIR = "/tmp/tool-bridge";
158271
- TOOL_BRIDGE_SCRIPT_PATH = `${TOOL_BRIDGE_DIR}/bridge.mjs`;
158210
+ TOOL_BRIDGE_SCRIPT_PATH = `${TOOL_BRIDGE_DIR}/bridge.sh`;
158272
158211
  TOOL_BRIDGE_TOOLS_PATH = `${TOOL_BRIDGE_DIR}/tools.json`;
158273
158212
  TOOL_BRIDGE_REQUEST_PATH = `${TOOL_BRIDGE_DIR}/request.json`;
158274
158213
  TOOL_BRIDGE_RESPONSE_PATH = `${TOOL_BRIDGE_DIR}/response.json`;
158214
+ TOOL_BRIDGE_MCP_CONFIG_PATH = `${TOOL_BRIDGE_DIR}/mcp.json`;
158275
158215
  TOOL_BRIDGE_PENDING_PATH = `${TOOL_BRIDGE_DIR}/pending`;
158276
158216
  }
158277
158217
  });
@@ -158466,7 +158406,7 @@ var init_chunk_JFYE5BFI = __esm({
158466
158406
  }
158467
158407
  });
158468
158408
 
158469
- // ../agent-sdk/dist/chunk-6VQXN6L3.js
158409
+ // ../agent-sdk/dist/chunk-RZKUB4JQ.js
158470
158410
  function buildTurn6(input) {
158471
158411
  const { agent, backendSessionId, promptText, toolResults } = input;
158472
158412
  const argsBase = buildClaudeArgs({
@@ -158477,7 +158417,7 @@ function buildTurn6(input) {
158477
158417
  const env3 = buildClaudeAuthEnv();
158478
158418
  const customTools = agent.tools.filter((t2) => t2.type === "custom");
158479
158419
  const hasBridgeTools = customTools.length > 0 || agent.threads_enabled;
158480
- if (hasBridgeTools) {
158420
+ if (hasBridgeTools || agent.mcp_servers && Object.keys(agent.mcp_servers).length > 0) {
158481
158421
  const mcpIdx = argsBase.indexOf("--mcp-config");
158482
158422
  let existingServers = {};
158483
158423
  if (mcpIdx >= 0 && mcpIdx + 1 < argsBase.length) {
@@ -158488,7 +158428,7 @@ function buildTurn6(input) {
158488
158428
  }
158489
158429
  argsBase.splice(mcpIdx, 2);
158490
158430
  }
158491
- const merged = buildBridgeMcpConfig(existingServers);
158431
+ const merged = hasBridgeTools ? buildBridgeMcpConfig(existingServers) : existingServers;
158492
158432
  argsBase.push("--mcp-config", JSON.stringify({ mcpServers: merged }));
158493
158433
  }
158494
158434
  if (toolResults.length > 0) {
@@ -158524,12 +158464,12 @@ async function installToolBridge(sandboxName, customTools, provider) {
158524
158464
  await provider.exec(sandboxName, ["mkdir", "-p", TOOL_BRIDGE_DIR]);
158525
158465
  await provider.exec(
158526
158466
  sandboxName,
158527
- ["bash", "-c", `cat > ${TOOL_BRIDGE_SCRIPT_PATH}`],
158467
+ ["sh", "-c", `cat > "${TOOL_BRIDGE_SCRIPT_PATH}"`],
158528
158468
  { stdin: generateBridgeScript() }
158529
158469
  );
158530
158470
  await provider.exec(
158531
158471
  sandboxName,
158532
- ["bash", "-c", `cat > ${TOOL_BRIDGE_TOOLS_PATH}`],
158472
+ ["sh", "-c", `cat > "${TOOL_BRIDGE_TOOLS_PATH}"`],
158533
158473
  { stdin: toolsToJson(customTools) }
158534
158474
  );
158535
158475
  await provider.exec(sandboxName, ["chmod", "+x", TOOL_BRIDGE_SCRIPT_PATH]);
@@ -158563,12 +158503,12 @@ async function installPermissionHook(sandboxName, provider) {
158563
158503
  );
158564
158504
  }
158565
158505
  var claudeBackend;
158566
- var init_chunk_6VQXN6L3 = __esm({
158567
- "../agent-sdk/dist/chunk-6VQXN6L3.js"() {
158506
+ var init_chunk_RZKUB4JQ = __esm({
158507
+ "../agent-sdk/dist/chunk-RZKUB4JQ.js"() {
158568
158508
  "use strict";
158569
158509
  init_chunk_WFIMX3HG();
158570
158510
  init_chunk_CY6AWCC6();
158571
- init_chunk_ALVC7G6R();
158511
+ init_chunk_4FDEJHH7();
158572
158512
  init_chunk_JFYE5BFI();
158573
158513
  init_chunk_IU457W7Q();
158574
158514
  init_chunk_EF5QCTEQ();
@@ -158583,7 +158523,7 @@ var init_chunk_6VQXN6L3 = __esm({
158583
158523
  }
158584
158524
  });
158585
158525
 
158586
- // ../agent-sdk/dist/chunk-QAGHVCOK.js
158526
+ // ../agent-sdk/dist/chunk-KOGG7CSN.js
158587
158527
  function resolveBackend(name) {
158588
158528
  const key = name ?? "claude";
158589
158529
  const b2 = BACKENDS[key];
@@ -158591,15 +158531,15 @@ function resolveBackend(name) {
158591
158531
  return b2;
158592
158532
  }
158593
158533
  var BACKENDS;
158594
- var init_chunk_QAGHVCOK = __esm({
158595
- "../agent-sdk/dist/chunk-QAGHVCOK.js"() {
158534
+ var init_chunk_KOGG7CSN = __esm({
158535
+ "../agent-sdk/dist/chunk-KOGG7CSN.js"() {
158596
158536
  "use strict";
158597
158537
  init_chunk_I44FSUBC();
158598
158538
  init_chunk_DNGLD7VN();
158599
158539
  init_chunk_EHCGLMPC();
158600
158540
  init_chunk_X2CAT5MN();
158601
158541
  init_chunk_5D5P37FY();
158602
- init_chunk_6VQXN6L3();
158542
+ init_chunk_RZKUB4JQ();
158603
158543
  BACKENDS = {
158604
158544
  claude: claudeBackend,
158605
158545
  opencode: opencodeBackend,
@@ -158627,11 +158567,11 @@ __export(claude_exports, {
158627
158567
  var init_claude = __esm({
158628
158568
  "../agent-sdk/dist/backends/claude/index.js"() {
158629
158569
  "use strict";
158630
- init_chunk_6VQXN6L3();
158570
+ init_chunk_RZKUB4JQ();
158631
158571
  init_chunk_WFIMX3HG();
158632
158572
  init_chunk_FVBDEOTZ();
158633
158573
  init_chunk_CY6AWCC6();
158634
- init_chunk_ALVC7G6R();
158574
+ init_chunk_4FDEJHH7();
158635
158575
  init_chunk_JFYE5BFI();
158636
158576
  init_chunk_XBHDQK4Z();
158637
158577
  init_chunk_IU457W7Q();
@@ -158897,7 +158837,7 @@ var init_storage = __esm({
158897
158837
  }
158898
158838
  });
158899
158839
 
158900
- // ../agent-sdk/dist/chunk-U7XXWFTQ.js
158840
+ // ../agent-sdk/dist/chunk-XGUSWFDD.js
158901
158841
  function wrapProviderWithSecrets(provider, secrets) {
158902
158842
  if (!secrets || Object.keys(secrets).length === 0) return provider;
158903
158843
  return {
@@ -159247,8 +159187,8 @@ async function reconcileDockerOrphanSandboxes() {
159247
159187
  return { deleted, kept };
159248
159188
  }
159249
159189
  var lcLog, SANDBOX_NAME_PREFIX;
159250
- var init_chunk_U7XXWFTQ = __esm({
159251
- "../agent-sdk/dist/chunk-U7XXWFTQ.js"() {
159190
+ var init_chunk_XGUSWFDD = __esm({
159191
+ "../agent-sdk/dist/chunk-XGUSWFDD.js"() {
159252
159192
  "use strict";
159253
159193
  init_chunk_DO4WVWW7();
159254
159194
  init_chunk_RMZRSYIJ();
@@ -159259,7 +159199,7 @@ var init_chunk_U7XXWFTQ = __esm({
159259
159199
  init_chunk_QUJNG4RA();
159260
159200
  init_chunk_NUO56TF7();
159261
159201
  init_chunk_JEI7I3EH();
159262
- init_chunk_QAGHVCOK();
159202
+ init_chunk_KOGG7CSN();
159263
159203
  init_chunk_EF5QCTEQ();
159264
159204
  init_chunk_HFDLUBWN();
159265
159205
  init_chunk_EZYKRG4W();
@@ -159304,6 +159244,7 @@ var init_api_keys = __esm({
159304
159244
  var tool_bridge_exports = {};
159305
159245
  __export(tool_bridge_exports, {
159306
159246
  TOOL_BRIDGE_DIR: () => TOOL_BRIDGE_DIR,
159247
+ TOOL_BRIDGE_MCP_CONFIG_PATH: () => TOOL_BRIDGE_MCP_CONFIG_PATH,
159307
159248
  TOOL_BRIDGE_PENDING_PATH: () => TOOL_BRIDGE_PENDING_PATH,
159308
159249
  TOOL_BRIDGE_REQUEST_PATH: () => TOOL_BRIDGE_REQUEST_PATH,
159309
159250
  TOOL_BRIDGE_RESPONSE_PATH: () => TOOL_BRIDGE_RESPONSE_PATH,
@@ -159316,7 +159257,7 @@ __export(tool_bridge_exports, {
159316
159257
  var init_tool_bridge = __esm({
159317
159258
  "../agent-sdk/dist/backends/claude/tool-bridge.js"() {
159318
159259
  "use strict";
159319
- init_chunk_ALVC7G6R();
159260
+ init_chunk_4FDEJHH7();
159320
159261
  init_chunk_2ESYSVXG();
159321
159262
  }
159322
159263
  });
@@ -159808,7 +159749,7 @@ var MAX_THREAD_DEPTH;
159808
159749
  var init_threads = __esm({
159809
159750
  "../agent-sdk/dist/sessions/threads.js"() {
159810
159751
  "use strict";
159811
- init_chunk_BEXPMKTK();
159752
+ init_chunk_KZ4AECAK();
159812
159753
  init_chunk_PJZ5TQYW();
159813
159754
  init_chunk_AU4NAQGA();
159814
159755
  init_chunk_H6TQGV4L();
@@ -159818,7 +159759,7 @@ var init_threads = __esm({
159818
159759
  init_chunk_NIOWKTIF();
159819
159760
  init_chunk_ZQGJKPPY();
159820
159761
  init_chunk_LAWTTG2E();
159821
- init_chunk_U7XXWFTQ();
159762
+ init_chunk_XGUSWFDD();
159822
159763
  init_chunk_DO4WVWW7();
159823
159764
  init_chunk_RMZRSYIJ();
159824
159765
  init_chunk_5ZFOKZGR();
@@ -159835,7 +159776,7 @@ var init_threads = __esm({
159835
159776
  init_chunk_NUO56TF7();
159836
159777
  init_chunk_JEI7I3EH();
159837
159778
  init_chunk_JDELTTHV();
159838
- init_chunk_QAGHVCOK();
159779
+ init_chunk_KOGG7CSN();
159839
159780
  init_chunk_I44FSUBC();
159840
159781
  init_chunk_T5VRE77P();
159841
159782
  init_chunk_TY3HD5I5();
@@ -159866,11 +159807,11 @@ var init_threads = __esm({
159866
159807
  init_chunk_QQDSHL27();
159867
159808
  init_chunk_IAF6VMPO();
159868
159809
  init_chunk_OWP537VU();
159869
- init_chunk_6VQXN6L3();
159810
+ init_chunk_RZKUB4JQ();
159870
159811
  init_chunk_WFIMX3HG();
159871
159812
  init_chunk_FVBDEOTZ();
159872
159813
  init_chunk_CY6AWCC6();
159873
- init_chunk_ALVC7G6R();
159814
+ init_chunk_4FDEJHH7();
159874
159815
  init_chunk_JFYE5BFI();
159875
159816
  init_chunk_NQX7WBA4();
159876
159817
  init_chunk_XBHDQK4Z();
@@ -159891,7 +159832,7 @@ var init_threads = __esm({
159891
159832
  }
159892
159833
  });
159893
159834
 
159894
- // ../agent-sdk/dist/chunk-BEXPMKTK.js
159835
+ // ../agent-sdk/dist/chunk-KZ4AECAK.js
159895
159836
  function formatStopReason(reason, eventIds) {
159896
159837
  if (reason === "custom_tool_call" && eventIds?.length) {
159897
159838
  return { type: "requires_action", event_ids: eventIds };
@@ -160069,6 +160010,9 @@ async function runTurn(sessionId, inputs, _depth = 0, parentTrace) {
160069
160010
  if (freshSession?.resources && freshSession.resources.length > 0) {
160070
160011
  turnBuild.env.RESOURCES_DIR = "/tmp/resources";
160071
160012
  }
160013
+ if (agent.engine === "claude" && !turnBuild.env.MCP_TIMEOUT) {
160014
+ turnBuild.env.MCP_TIMEOUT = "30000";
160015
+ }
160072
160016
  const MCP_KEY_RE = /^MCP_(AUTH|HEADER)_/i;
160073
160017
  for (const entry of vaultEntries2) {
160074
160018
  if (!BLOCKED_ENV_KEYS.has(entry.key) && !MCP_KEY_RE.test(entry.key)) {
@@ -160206,6 +160150,17 @@ ${turnBuild.stdin}`;
160206
160150
  );
160207
160151
  }, 2e3);
160208
160152
  }
160153
+ const customToolNames = resolveToolset(agent.tools).customToolNames;
160154
+ let toolBridgePollTimer = null;
160155
+ if (agent.engine === "claude" && customToolNames.size > 0) {
160156
+ toolBridgePollTimer = setInterval(() => {
160157
+ void checkToolBridgeSentinel(sessionId, sandboxName, provider, secrets, trace3).catch(
160158
+ (err) => {
160159
+ console.warn(`[driver] tool bridge sentinel check failed:`, err);
160160
+ }
160161
+ );
160162
+ }, 1e3);
160163
+ }
160209
160164
  try {
160210
160165
  const reader = exec2.stdout.getReader();
160211
160166
  const decoder3 = new TextDecoder();
@@ -160301,6 +160256,8 @@ ${turnBuild.stdin}`;
160301
160256
  }
160302
160257
  } finally {
160303
160258
  if (permissionPollTimer) clearInterval(permissionPollTimer);
160259
+ if (toolBridgePollTimer) clearInterval(toolBridgePollTimer);
160260
+ getPendingToolBridgeCalls().delete(sessionId);
160304
160261
  runtime2.inFlightRuns.delete(sessionId);
160305
160262
  }
160306
160263
  if (aborted) {
@@ -160568,9 +160525,80 @@ async function writePermissionResponse(sessionId, result, denyMessage) {
160568
160525
  }
160569
160526
  getPendingConfirmations().delete(sessionId);
160570
160527
  }
160571
- var gd;
160572
- var init_chunk_BEXPMKTK = __esm({
160573
- "../agent-sdk/dist/chunk-BEXPMKTK.js"() {
160528
+ function getPendingToolBridgeCalls() {
160529
+ return pendingToolBridgeCalls;
160530
+ }
160531
+ async function checkToolBridgeSentinel(sessionId, sandboxName, provider, secrets, trace3) {
160532
+ if (pendingToolBridgeCalls.has(sessionId)) return;
160533
+ try {
160534
+ const result = await provider.exec(
160535
+ sandboxName,
160536
+ ["test", "-f", TOOL_BRIDGE_PENDING_PATH],
160537
+ { secrets }
160538
+ );
160539
+ if (result.exit_code !== 0) return;
160540
+ } catch {
160541
+ return;
160542
+ }
160543
+ let request2;
160544
+ try {
160545
+ const result = await provider.exec(
160546
+ sandboxName,
160547
+ ["cat", TOOL_BRIDGE_REQUEST_PATH],
160548
+ { secrets }
160549
+ );
160550
+ const clean = result.stdout.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]/g, "");
160551
+ request2 = JSON.parse(clean);
160552
+ } catch (err) {
160553
+ console.warn(`[driver] failed to read tool bridge request for ${sessionId}:`, err);
160554
+ return;
160555
+ }
160556
+ pendingToolBridgeCalls.add(sessionId);
160557
+ console.log(`[driver] ${sessionId} custom tool call: ${request2.name} (${request2.tool_use_id})`);
160558
+ appendEvent2(sessionId, {
160559
+ type: "agent.custom_tool_use",
160560
+ payload: {
160561
+ tool_use_id: request2.tool_use_id ?? "",
160562
+ name: request2.name ?? "unknown",
160563
+ input: request2.input ?? {}
160564
+ },
160565
+ origin: "server",
160566
+ processedAt: nowMs(),
160567
+ traceId: trace3.trace_id,
160568
+ spanId: trace3.span_id,
160569
+ parentSpanId: trace3.parent_span_id
160570
+ });
160571
+ }
160572
+ async function writeToolBridgeResponse(sessionId, content) {
160573
+ const row = getSessionRow(sessionId);
160574
+ if (!row?.sandbox_name) {
160575
+ console.warn(`[driver] no sandbox for session ${sessionId}, cannot write tool bridge response`);
160576
+ return;
160577
+ }
160578
+ const env3 = getEnvironment(row.environment_id);
160579
+ const provider = await resolveContainerProvider(env3?.config?.provider);
160580
+ const bridgeSecrets = getBySession(sessionId)?.vaultSecrets;
160581
+ const response = JSON.stringify({ content });
160582
+ try {
160583
+ await provider.exec(
160584
+ row.sandbox_name,
160585
+ ["sh", "-c", `cat > ${TOOL_BRIDGE_RESPONSE_PATH}`],
160586
+ { stdin: response, secrets: bridgeSecrets }
160587
+ );
160588
+ await provider.exec(
160589
+ row.sandbox_name,
160590
+ ["rm", "-f", TOOL_BRIDGE_PENDING_PATH],
160591
+ { secrets: bridgeSecrets }
160592
+ );
160593
+ console.log(`[driver] ${sessionId} tool bridge response written`);
160594
+ } catch (err) {
160595
+ console.warn(`[driver] failed to write tool bridge response for ${sessionId}:`, err);
160596
+ }
160597
+ pendingToolBridgeCalls.delete(sessionId);
160598
+ }
160599
+ var gd, pendingToolBridgeCalls;
160600
+ var init_chunk_KZ4AECAK = __esm({
160601
+ "../agent-sdk/dist/chunk-KZ4AECAK.js"() {
160574
160602
  "use strict";
160575
160603
  init_chunk_PJZ5TQYW();
160576
160604
  init_chunk_AU4NAQGA();
@@ -160579,7 +160607,7 @@ var init_chunk_BEXPMKTK = __esm({
160579
160607
  init_chunk_72BKGVBE();
160580
160608
  init_chunk_M4CTE7EH();
160581
160609
  init_chunk_NIOWKTIF();
160582
- init_chunk_U7XXWFTQ();
160610
+ init_chunk_XGUSWFDD();
160583
160611
  init_chunk_DO4WVWW7();
160584
160612
  init_chunk_BMPB7XJH();
160585
160613
  init_chunk_I5ZA45YL();
@@ -160588,8 +160616,9 @@ var init_chunk_BEXPMKTK = __esm({
160588
160616
  init_chunk_QUJNG4RA();
160589
160617
  init_chunk_NUO56TF7();
160590
160618
  init_chunk_JEI7I3EH();
160591
- init_chunk_QAGHVCOK();
160619
+ init_chunk_KOGG7CSN();
160592
160620
  init_chunk_CY6AWCC6();
160621
+ init_chunk_4FDEJHH7();
160593
160622
  init_chunk_XBHDQK4Z();
160594
160623
  init_chunk_EF5QCTEQ();
160595
160624
  init_chunk_HFDLUBWN();
@@ -160598,6 +160627,7 @@ var init_chunk_BEXPMKTK = __esm({
160598
160627
  init_errors3();
160599
160628
  init_clock();
160600
160629
  gd = globalThis;
160630
+ pendingToolBridgeCalls = /* @__PURE__ */ new Set();
160601
160631
  }
160602
160632
  });
160603
160633
 
@@ -212949,7 +212979,7 @@ var init_chunk_3MQ2FWXS = __esm({
212949
212979
  }
212950
212980
  });
212951
212981
 
212952
- // ../agent-sdk/dist/chunk-KMBQ5U5W.js
212982
+ // ../agent-sdk/dist/chunk-FJAWIVSD.js
212953
212983
  function markStopping() {
212954
212984
  stopping = true;
212955
212985
  }
@@ -213015,11 +213045,11 @@ async function evictIdleSessions() {
213015
213045
  }
213016
213046
  }
213017
213047
  var sweeping, stopping;
213018
- var init_chunk_KMBQ5U5W = __esm({
213019
- "../agent-sdk/dist/chunk-KMBQ5U5W.js"() {
213048
+ var init_chunk_FJAWIVSD = __esm({
213049
+ "../agent-sdk/dist/chunk-FJAWIVSD.js"() {
213020
213050
  "use strict";
213021
213051
  init_chunk_LAWTTG2E();
213022
- init_chunk_U7XXWFTQ();
213052
+ init_chunk_XGUSWFDD();
213023
213053
  init_chunk_BMPB7XJH();
213024
213054
  init_chunk_I5ZA45YL();
213025
213055
  init_chunk_EF5QCTEQ();
@@ -213031,7 +213061,7 @@ var init_chunk_KMBQ5U5W = __esm({
213031
213061
  }
213032
213062
  });
213033
213063
 
213034
- // ../agent-sdk/dist/chunk-OLZ2KIXD.js
213064
+ // ../agent-sdk/dist/chunk-NX6SIEN6.js
213035
213065
  function installShutdownHandlers() {
213036
213066
  if (g12.__caShutdownInstalled) return;
213037
213067
  g12.__caShutdownInstalled = true;
@@ -213074,10 +213104,10 @@ async function shutdown(signal) {
213074
213104
  process.exit(0);
213075
213105
  }
213076
213106
  var g12, shuttingDown;
213077
- var init_chunk_OLZ2KIXD = __esm({
213078
- "../agent-sdk/dist/chunk-OLZ2KIXD.js"() {
213107
+ var init_chunk_NX6SIEN6 = __esm({
213108
+ "../agent-sdk/dist/chunk-NX6SIEN6.js"() {
213079
213109
  "use strict";
213080
- init_chunk_KMBQ5U5W();
213110
+ init_chunk_FJAWIVSD();
213081
213111
  init_chunk_5GZEX4HV();
213082
213112
  init_chunk_UYTSKFGK();
213083
213113
  init_client();
@@ -215178,7 +215208,7 @@ var init_rate_limit = __esm({
215178
215208
  }
215179
215209
  });
215180
215210
 
215181
- // ../agent-sdk/dist/chunk-VZQP2TG2.js
215211
+ // ../agent-sdk/dist/chunk-DT57EZQB.js
215182
215212
  import path10 from "path";
215183
215213
  async function ensureInitialized() {
215184
215214
  if (g14.__caInitPromise) return g14.__caInitPromise;
@@ -215397,18 +215427,18 @@ async function rebuildContainerPool() {
215397
215427
  }
215398
215428
  }
215399
215429
  var g14;
215400
- var init_chunk_VZQP2TG2 = __esm({
215401
- "../agent-sdk/dist/chunk-VZQP2TG2.js"() {
215430
+ var init_chunk_DT57EZQB = __esm({
215431
+ "../agent-sdk/dist/chunk-DT57EZQB.js"() {
215402
215432
  "use strict";
215403
215433
  init_chunk_AQXCXWAZ();
215404
- init_chunk_BEXPMKTK();
215434
+ init_chunk_KZ4AECAK();
215405
215435
  init_chunk_Y2KDIPCT();
215406
215436
  init_chunk_UXMCHRGA();
215407
215437
  init_chunk_ADK2TYO4();
215408
215438
  init_chunk_3MQ2FWXS();
215409
- init_chunk_OLZ2KIXD();
215410
- init_chunk_KMBQ5U5W();
215411
- init_chunk_U7XXWFTQ();
215439
+ init_chunk_NX6SIEN6();
215440
+ init_chunk_FJAWIVSD();
215441
+ init_chunk_XGUSWFDD();
215412
215442
  init_chunk_BMPB7XJH();
215413
215443
  init_chunk_I5ZA45YL();
215414
215444
  init_chunk_YPXI7Q2M();
@@ -215426,7 +215456,7 @@ var init_chunk_VZQP2TG2 = __esm({
215426
215456
  }
215427
215457
  });
215428
215458
 
215429
- // ../agent-sdk/dist/chunk-R3NRSPRU.js
215459
+ // ../agent-sdk/dist/chunk-ESXH27JB.js
215430
215460
  async function routeWrap(request2, handler) {
215431
215461
  const startedAt = Date.now();
215432
215462
  let status = 500;
@@ -215470,13 +215500,13 @@ async function routeWrap(request2, handler) {
215470
215500
  function jsonOk(body, status = 200) {
215471
215501
  return Response.json(body, { status });
215472
215502
  }
215473
- var init_chunk_R3NRSPRU = __esm({
215474
- "../agent-sdk/dist/chunk-R3NRSPRU.js"() {
215503
+ var init_chunk_ESXH27JB = __esm({
215504
+ "../agent-sdk/dist/chunk-ESXH27JB.js"() {
215475
215505
  "use strict";
215476
215506
  init_chunk_D2XITRN6();
215477
215507
  init_chunk_ZMMDLKR3();
215478
215508
  init_chunk_HVUWXUUI();
215479
- init_chunk_VZQP2TG2();
215509
+ init_chunk_DT57EZQB();
215480
215510
  init_chunk_3MQ2FWXS();
215481
215511
  init_chunk_EZYKRG4W();
215482
215512
  }
@@ -215606,15 +215636,15 @@ var init_dist2 = __esm({
215606
215636
  init_chunk_HLNTWWAZ();
215607
215637
  init_chunk_MHQXDTJB();
215608
215638
  init_chunk_2N2KL4KM();
215609
- init_chunk_R3NRSPRU();
215639
+ init_chunk_ESXH27JB();
215610
215640
  init_chunk_D2XITRN6();
215611
215641
  init_chunk_ZMMDLKR3();
215612
215642
  init_chunk_T45NOW43();
215613
215643
  init_chunk_W6WKXFHN();
215614
215644
  init_chunk_HVUWXUUI();
215615
- init_chunk_VZQP2TG2();
215645
+ init_chunk_DT57EZQB();
215616
215646
  init_chunk_AQXCXWAZ();
215617
- init_chunk_BEXPMKTK();
215647
+ init_chunk_KZ4AECAK();
215618
215648
  init_chunk_PJZ5TQYW();
215619
215649
  init_chunk_AU4NAQGA();
215620
215650
  init_chunk_H6TQGV4L();
@@ -215627,10 +215657,10 @@ var init_dist2 = __esm({
215627
215657
  init_chunk_ZQGJKPPY();
215628
215658
  init_chunk_ADK2TYO4();
215629
215659
  init_chunk_3MQ2FWXS();
215630
- init_chunk_OLZ2KIXD();
215631
- init_chunk_KMBQ5U5W();
215660
+ init_chunk_NX6SIEN6();
215661
+ init_chunk_FJAWIVSD();
215632
215662
  init_chunk_LAWTTG2E();
215633
- init_chunk_U7XXWFTQ();
215663
+ init_chunk_XGUSWFDD();
215634
215664
  init_chunk_DO4WVWW7();
215635
215665
  init_chunk_RMZRSYIJ();
215636
215666
  init_chunk_5ZFOKZGR();
@@ -215647,7 +215677,7 @@ var init_dist2 = __esm({
215647
215677
  init_chunk_NUO56TF7();
215648
215678
  init_chunk_JEI7I3EH();
215649
215679
  init_chunk_JDELTTHV();
215650
- init_chunk_QAGHVCOK();
215680
+ init_chunk_KOGG7CSN();
215651
215681
  init_chunk_I44FSUBC();
215652
215682
  init_chunk_T5VRE77P();
215653
215683
  init_chunk_TY3HD5I5();
@@ -215678,11 +215708,11 @@ var init_dist2 = __esm({
215678
215708
  init_chunk_QQDSHL27();
215679
215709
  init_chunk_IAF6VMPO();
215680
215710
  init_chunk_OWP537VU();
215681
- init_chunk_6VQXN6L3();
215711
+ init_chunk_RZKUB4JQ();
215682
215712
  init_chunk_WFIMX3HG();
215683
215713
  init_chunk_FVBDEOTZ();
215684
215714
  init_chunk_CY6AWCC6();
215685
- init_chunk_ALVC7G6R();
215715
+ init_chunk_4FDEJHH7();
215686
215716
  init_chunk_JFYE5BFI();
215687
215717
  init_chunk_NQX7WBA4();
215688
215718
  init_chunk_XBHDQK4Z();
@@ -215704,7 +215734,7 @@ var init_dist2 = __esm({
215704
215734
  }
215705
215735
  });
215706
215736
 
215707
- // ../agent-sdk/dist/chunk-HBERAFEH.js
215737
+ // ../agent-sdk/dist/chunk-2NAUMCWE.js
215708
215738
  function handleWhoami(request2) {
215709
215739
  return routeWrap(request2, async ({ auth }) => {
215710
215740
  return jsonOk({
@@ -215715,10 +215745,10 @@ function handleWhoami(request2) {
215715
215745
  });
215716
215746
  });
215717
215747
  }
215718
- var init_chunk_HBERAFEH = __esm({
215719
- "../agent-sdk/dist/chunk-HBERAFEH.js"() {
215748
+ var init_chunk_2NAUMCWE = __esm({
215749
+ "../agent-sdk/dist/chunk-2NAUMCWE.js"() {
215720
215750
  "use strict";
215721
- init_chunk_R3NRSPRU();
215751
+ init_chunk_ESXH27JB();
215722
215752
  }
215723
215753
  });
215724
215754
 
@@ -215932,7 +215962,7 @@ var init_chunk_AMWWPUSK = __esm({
215932
215962
  }
215933
215963
  });
215934
215964
 
215935
- // ../agent-sdk/dist/chunk-RKXJLXPN.js
215965
+ // ../agent-sdk/dist/chunk-YIVJ3JTW.js
215936
215966
  async function handleGetSkillsCatalog(request2) {
215937
215967
  return routeWrap(request2, async ({ request: req }) => {
215938
215968
  const url2 = new URL(req.url);
@@ -215988,11 +216018,11 @@ async function handleGetSkillsFeed(request2) {
215988
216018
  return jsonOk(feed);
215989
216019
  });
215990
216020
  }
215991
- var init_chunk_RKXJLXPN = __esm({
215992
- "../agent-sdk/dist/chunk-RKXJLXPN.js"() {
216021
+ var init_chunk_YIVJ3JTW = __esm({
216022
+ "../agent-sdk/dist/chunk-YIVJ3JTW.js"() {
215993
216023
  "use strict";
215994
216024
  init_chunk_AMWWPUSK();
215995
- init_chunk_R3NRSPRU();
216025
+ init_chunk_ESXH27JB();
215996
216026
  }
215997
216027
  });
215998
216028
 
@@ -216052,7 +216082,7 @@ var init_chunk_23UKWXJH = __esm({
216052
216082
  }
216053
216083
  });
216054
216084
 
216055
- // ../agent-sdk/dist/chunk-QI2UYVUF.js
216085
+ // ../agent-sdk/dist/chunk-JURAGCGR.js
216056
216086
  async function prepareSessionStream(request2, sessionId) {
216057
216087
  try {
216058
216088
  await ensureInitialized();
@@ -216145,14 +216175,14 @@ data: ${JSON.stringify(evt)}
216145
216175
  }
216146
216176
  });
216147
216177
  }
216148
- var init_chunk_QI2UYVUF = __esm({
216149
- "../agent-sdk/dist/chunk-QI2UYVUF.js"() {
216178
+ var init_chunk_JURAGCGR = __esm({
216179
+ "../agent-sdk/dist/chunk-JURAGCGR.js"() {
216150
216180
  "use strict";
216151
216181
  init_chunk_YGAHGTVZ();
216152
216182
  init_chunk_23UKWXJH();
216153
216183
  init_chunk_ZMMDLKR3();
216154
216184
  init_chunk_T45NOW43();
216155
- init_chunk_VZQP2TG2();
216185
+ init_chunk_DT57EZQB();
216156
216186
  init_chunk_NIOWKTIF();
216157
216187
  init_chunk_BMPB7XJH();
216158
216188
  init_chunk_I5ZA45YL();
@@ -216162,7 +216192,7 @@ var init_chunk_QI2UYVUF = __esm({
216162
216192
  }
216163
216193
  });
216164
216194
 
216165
- // ../agent-sdk/dist/chunk-T2IKN6LM.js
216195
+ // ../agent-sdk/dist/chunk-XZOBOKL6.js
216166
216196
  function handleCreateTenant(request2) {
216167
216197
  return routeWrap(request2, async ({ auth, request: req }) => {
216168
216198
  requireFeature("tenancy", "multi-tenancy");
@@ -216261,13 +216291,13 @@ function handleArchiveTenant(request2, id) {
216261
216291
  });
216262
216292
  }
216263
216293
  var CreateBody, PatchBody;
216264
- var init_chunk_T2IKN6LM = __esm({
216265
- "../agent-sdk/dist/chunk-T2IKN6LM.js"() {
216294
+ var init_chunk_XZOBOKL6 = __esm({
216295
+ "../agent-sdk/dist/chunk-XZOBOKL6.js"() {
216266
216296
  "use strict";
216267
216297
  init_chunk_23UKWXJH();
216268
216298
  init_chunk_MHQXDTJB();
216269
216299
  init_chunk_2N2KL4KM();
216270
- init_chunk_R3NRSPRU();
216300
+ init_chunk_ESXH27JB();
216271
216301
  init_chunk_JDELTTHV();
216272
216302
  init_chunk_EZYKRG4W();
216273
216303
  init_zod();
@@ -216281,7 +216311,7 @@ var init_chunk_T2IKN6LM = __esm({
216281
216311
  }
216282
216312
  });
216283
216313
 
216284
- // ../agent-sdk/dist/chunk-EZCC3VWX.js
216314
+ // ../agent-sdk/dist/chunk-GQFC44YI.js
216285
216315
  function handleListThreads(request2, sessionId) {
216286
216316
  return routeWrap(request2, async ({ auth }) => {
216287
216317
  const row = getDb().prepare(`SELECT tenant_id FROM sessions WHERE id = ?`).get(sessionId);
@@ -216306,11 +216336,11 @@ function handleListThreads(request2, sessionId) {
216306
216336
  });
216307
216337
  });
216308
216338
  }
216309
- var init_chunk_EZCC3VWX = __esm({
216310
- "../agent-sdk/dist/chunk-EZCC3VWX.js"() {
216339
+ var init_chunk_GQFC44YI = __esm({
216340
+ "../agent-sdk/dist/chunk-GQFC44YI.js"() {
216311
216341
  "use strict";
216312
216342
  init_chunk_23UKWXJH();
216313
- init_chunk_R3NRSPRU();
216343
+ init_chunk_ESXH27JB();
216314
216344
  init_chunk_I5ZA45YL();
216315
216345
  init_chunk_5GZEX4HV();
216316
216346
  init_chunk_EZYKRG4W();
@@ -216360,7 +216390,7 @@ var init_chunk_JK5TPJHH = __esm({
216360
216390
  }
216361
216391
  });
216362
216392
 
216363
- // ../agent-sdk/dist/chunk-TTICVJTT.js
216393
+ // ../agent-sdk/dist/chunk-OTLXV4RO.js
216364
216394
  function buildSpanTree(events2) {
216365
216395
  const nodes = /* @__PURE__ */ new Map();
216366
216396
  const openStarts = /* @__PURE__ */ new Map();
@@ -216544,11 +216574,11 @@ function handleExportTrace(request2, traceId) {
216544
216574
  return jsonOk(result, result.ok ? 200 : 502);
216545
216575
  });
216546
216576
  }
216547
- var init_chunk_TTICVJTT = __esm({
216548
- "../agent-sdk/dist/chunk-TTICVJTT.js"() {
216577
+ var init_chunk_OTLXV4RO = __esm({
216578
+ "../agent-sdk/dist/chunk-OTLXV4RO.js"() {
216549
216579
  "use strict";
216550
216580
  init_chunk_JK5TPJHH();
216551
- init_chunk_R3NRSPRU();
216581
+ init_chunk_ESXH27JB();
216552
216582
  init_chunk_Y2KDIPCT();
216553
216583
  init_chunk_O45IQUWS();
216554
216584
  init_chunk_EZYKRG4W();
@@ -217135,7 +217165,7 @@ agentstep skills install \${n}
217135
217165
  }
217136
217166
  });
217137
217167
 
217138
- // ../agent-sdk/dist/chunk-EVZABUMI.js
217168
+ // ../agent-sdk/dist/chunk-ZNQD65DN.js
217139
217169
  function handleAddUpstreamKey(request2) {
217140
217170
  return routeWrap(request2, async ({ auth, request: req }) => {
217141
217171
  requireFeature("upstream_pool", "upstream key pool");
@@ -217227,15 +217257,15 @@ function handleDeleteUpstreamKey(request2, id) {
217227
217257
  });
217228
217258
  }
217229
217259
  var AddBody, PatchBody2;
217230
- var init_chunk_EVZABUMI = __esm({
217231
- "../agent-sdk/dist/chunk-EVZABUMI.js"() {
217260
+ var init_chunk_ZNQD65DN = __esm({
217261
+ "../agent-sdk/dist/chunk-ZNQD65DN.js"() {
217232
217262
  "use strict";
217233
217263
  init_chunk_ATTHVKNE();
217234
217264
  init_chunk_BZ6HFTHU();
217235
217265
  init_chunk_23UKWXJH();
217236
217266
  init_chunk_MHQXDTJB();
217237
217267
  init_chunk_2N2KL4KM();
217238
- init_chunk_R3NRSPRU();
217268
+ init_chunk_ESXH27JB();
217239
217269
  init_chunk_EZYKRG4W();
217240
217270
  init_zod();
217241
217271
  AddBody = external_exports.object({
@@ -217249,7 +217279,7 @@ var init_chunk_EVZABUMI = __esm({
217249
217279
  }
217250
217280
  });
217251
217281
 
217252
- // ../agent-sdk/dist/chunk-XLAHZKY6.js
217282
+ // ../agent-sdk/dist/chunk-EGCAA6KI.js
217253
217283
  function zeroTotals() {
217254
217284
  return {
217255
217285
  session_count: 0,
@@ -217609,12 +217639,12 @@ function handleGetApiMetrics(request2) {
217609
217639
  });
217610
217640
  }
217611
217641
  var BUCKET_MS, TOP_N, MAX_POINTS_PER_SERIES, MAX_TOTAL_CELLS;
217612
- var init_chunk_XLAHZKY6 = __esm({
217613
- "../agent-sdk/dist/chunk-XLAHZKY6.js"() {
217642
+ var init_chunk_EGCAA6KI = __esm({
217643
+ "../agent-sdk/dist/chunk-EGCAA6KI.js"() {
217614
217644
  "use strict";
217615
217645
  init_chunk_23UKWXJH();
217616
217646
  init_chunk_2N2KL4KM();
217617
- init_chunk_R3NRSPRU();
217647
+ init_chunk_ESXH27JB();
217618
217648
  init_chunk_D2XITRN6();
217619
217649
  init_chunk_5GZEX4HV();
217620
217650
  init_chunk_EZYKRG4W();
@@ -217630,7 +217660,7 @@ var init_chunk_XLAHZKY6 = __esm({
217630
217660
  }
217631
217661
  });
217632
217662
 
217633
- // ../agent-sdk/dist/chunk-DHROKUFE.js
217663
+ // ../agent-sdk/dist/chunk-OONL25NZ.js
217634
217664
  function handleListModels(request2) {
217635
217665
  return routeWrap(request2, async ({ request: req }) => {
217636
217666
  const url2 = new URL(req.url);
@@ -217641,11 +217671,11 @@ function handleListModels(request2) {
217641
217671
  return jsonOk({ data: models });
217642
217672
  });
217643
217673
  }
217644
- var init_chunk_DHROKUFE = __esm({
217645
- "../agent-sdk/dist/chunk-DHROKUFE.js"() {
217674
+ var init_chunk_OONL25NZ = __esm({
217675
+ "../agent-sdk/dist/chunk-OONL25NZ.js"() {
217646
217676
  "use strict";
217647
217677
  init_chunk_4WMYJM36();
217648
- init_chunk_R3NRSPRU();
217678
+ init_chunk_ESXH27JB();
217649
217679
  }
217650
217680
  });
217651
217681
 
@@ -217668,7 +217698,7 @@ var init_chunk_RDGOGAQ5 = __esm({
217668
217698
  }
217669
217699
  });
217670
217700
 
217671
- // ../agent-sdk/dist/chunk-4ZL36MCY.js
217701
+ // ../agent-sdk/dist/chunk-W26HCKWX.js
217672
217702
  async function checkLocalProvider(name) {
217673
217703
  try {
217674
217704
  const provider = await resolveContainerProvider(name);
@@ -217707,10 +217737,10 @@ async function handleGetProviderStatus(request2) {
217707
217737
  });
217708
217738
  }
217709
217739
  var LOCAL_PROVIDERS, CLOUD_PROVIDERS, CLOUD_KEY_MAP;
217710
- var init_chunk_4ZL36MCY = __esm({
217711
- "../agent-sdk/dist/chunk-4ZL36MCY.js"() {
217740
+ var init_chunk_W26HCKWX = __esm({
217741
+ "../agent-sdk/dist/chunk-W26HCKWX.js"() {
217712
217742
  "use strict";
217713
- init_chunk_R3NRSPRU();
217743
+ init_chunk_ESXH27JB();
217714
217744
  init_chunk_QUJNG4RA();
217715
217745
  init_chunk_EF5QCTEQ();
217716
217746
  LOCAL_PROVIDERS = ["docker", "apple-container", "podman"];
@@ -217726,7 +217756,7 @@ var init_chunk_4ZL36MCY = __esm({
217726
217756
  }
217727
217757
  });
217728
217758
 
217729
- // ../agent-sdk/dist/chunk-Q2GMMMR3.js
217759
+ // ../agent-sdk/dist/chunk-RK3QBYXO.js
217730
217760
  function assertSessionTenant(auth, sessionId) {
217731
217761
  const row = getDb().prepare(`SELECT tenant_id FROM sessions WHERE id = ?`).get(sessionId);
217732
217762
  if (row) {
@@ -217801,11 +217831,11 @@ function handleDeleteResource(request2, sessionId, resourceId) {
217801
217831
  });
217802
217832
  }
217803
217833
  var MAX_RESOURCES_PER_SESSION, AddResourceSchema;
217804
- var init_chunk_Q2GMMMR3 = __esm({
217805
- "../agent-sdk/dist/chunk-Q2GMMMR3.js"() {
217834
+ var init_chunk_RK3QBYXO = __esm({
217835
+ "../agent-sdk/dist/chunk-RK3QBYXO.js"() {
217806
217836
  "use strict";
217807
217837
  init_chunk_23UKWXJH();
217808
- init_chunk_R3NRSPRU();
217838
+ init_chunk_ESXH27JB();
217809
217839
  init_chunk_NIOWKTIF();
217810
217840
  init_chunk_I5ZA45YL();
217811
217841
  init_chunk_R5OZHLAD();
@@ -218126,7 +218156,7 @@ var init_vaults = __esm({
218126
218156
  }
218127
218157
  });
218128
218158
 
218129
- // ../agent-sdk/dist/chunk-QPI6MKAU.js
218159
+ // ../agent-sdk/dist/chunk-HMBJOI5F.js
218130
218160
  function getAgentTenantId(id) {
218131
218161
  const row = getDb().prepare(`SELECT tenant_id FROM agents WHERE id = ?`).get(id);
218132
218162
  return row?.tenant_id;
@@ -218566,20 +218596,20 @@ function parseMs(v2) {
218566
218596
  return Number.isFinite(t2) ? t2 : void 0;
218567
218597
  }
218568
218598
  var ALLOWED_STATUSES, AgentRef, ResourceSchema, CreateSchema, UpdateSchema;
218569
- var init_chunk_QPI6MKAU = __esm({
218570
- "../agent-sdk/dist/chunk-QPI6MKAU.js"() {
218599
+ var init_chunk_HMBJOI5F = __esm({
218600
+ "../agent-sdk/dist/chunk-HMBJOI5F.js"() {
218571
218601
  "use strict";
218572
218602
  init_chunk_ZP5VMV5O();
218573
218603
  init_chunk_YGAHGTVZ();
218574
218604
  init_chunk_23UKWXJH();
218575
218605
  init_chunk_DC2UMEQH();
218576
218606
  init_chunk_HLNTWWAZ();
218577
- init_chunk_R3NRSPRU();
218607
+ init_chunk_ESXH27JB();
218578
218608
  init_chunk_T45NOW43();
218579
218609
  init_chunk_H6TQGV4L();
218580
218610
  init_chunk_NIOWKTIF();
218581
218611
  init_chunk_LAWTTG2E();
218582
- init_chunk_U7XXWFTQ();
218612
+ init_chunk_XGUSWFDD();
218583
218613
  init_chunk_BMPB7XJH();
218584
218614
  init_chunk_I5ZA45YL();
218585
218615
  init_chunk_NUO56TF7();
@@ -218632,7 +218662,7 @@ var init_chunk_QPI6MKAU = __esm({
218632
218662
  }
218633
218663
  });
218634
218664
 
218635
- // ../agent-sdk/dist/chunk-VGEBUTM5.js
218665
+ // ../agent-sdk/dist/chunk-LMHXLYUV.js
218636
218666
  function maskSecret(value) {
218637
218667
  if (!value) return "";
218638
218668
  if (value.length <= 12) return "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022";
@@ -218667,10 +218697,10 @@ function handleGetSetting(request2, key) {
218667
218697
  });
218668
218698
  }
218669
218699
  var NON_SECRET_KEYS, ALLOWED_KEYS, SECRET_KEYS;
218670
- var init_chunk_VGEBUTM5 = __esm({
218671
- "../agent-sdk/dist/chunk-VGEBUTM5.js"() {
218700
+ var init_chunk_LMHXLYUV = __esm({
218701
+ "../agent-sdk/dist/chunk-LMHXLYUV.js"() {
218672
218702
  "use strict";
218673
- init_chunk_R3NRSPRU();
218703
+ init_chunk_ESXH27JB();
218674
218704
  init_chunk_EF5QCTEQ();
218675
218705
  init_chunk_EZYKRG4W();
218676
218706
  NON_SECRET_KEYS = /* @__PURE__ */ new Set([
@@ -218712,7 +218742,7 @@ var init_chunk_VGEBUTM5 = __esm({
218712
218742
  }
218713
218743
  });
218714
218744
 
218715
- // ../agent-sdk/dist/chunk-OGARYKIG.js
218745
+ // ../agent-sdk/dist/chunk-LYTHR3HC.js
218716
218746
  function handleCreateSkill(request2) {
218717
218747
  return routeWrap(request2, async () => {
218718
218748
  throw new ApiError(
@@ -218731,15 +218761,15 @@ function handleDeleteSkill(request2, _id) {
218731
218761
  );
218732
218762
  });
218733
218763
  }
218734
- var init_chunk_OGARYKIG = __esm({
218735
- "../agent-sdk/dist/chunk-OGARYKIG.js"() {
218764
+ var init_chunk_LYTHR3HC = __esm({
218765
+ "../agent-sdk/dist/chunk-LYTHR3HC.js"() {
218736
218766
  "use strict";
218737
- init_chunk_R3NRSPRU();
218767
+ init_chunk_ESXH27JB();
218738
218768
  init_chunk_EZYKRG4W();
218739
218769
  }
218740
218770
  });
218741
218771
 
218742
- // ../agent-sdk/dist/chunk-KD4GS64M.js
218772
+ // ../agent-sdk/dist/chunk-LLYP77OL.js
218743
218773
  function getVaultTenantId(id) {
218744
218774
  const row = getDb().prepare(`SELECT tenant_id FROM vaults WHERE id = ?`).get(id);
218745
218775
  return row?.tenant_id;
@@ -218847,11 +218877,11 @@ function handleDeleteEntry(request2, vaultId, key) {
218847
218877
  });
218848
218878
  }
218849
218879
  var CreateVaultSchema, PutEntrySchema;
218850
- var init_chunk_KD4GS64M = __esm({
218851
- "../agent-sdk/dist/chunk-KD4GS64M.js"() {
218880
+ var init_chunk_LLYP77OL = __esm({
218881
+ "../agent-sdk/dist/chunk-LLYP77OL.js"() {
218852
218882
  "use strict";
218853
218883
  init_chunk_23UKWXJH();
218854
- init_chunk_R3NRSPRU();
218884
+ init_chunk_ESXH27JB();
218855
218885
  init_chunk_VIGJQU6V();
218856
218886
  init_chunk_JEI7I3EH();
218857
218887
  init_chunk_5GZEX4HV();
@@ -218874,7 +218904,7 @@ var init_chunk_KD4GS64M = __esm({
218874
218904
  }
218875
218905
  });
218876
218906
 
218877
- // ../agent-sdk/dist/chunk-DLFZAPUD.js
218907
+ // ../agent-sdk/dist/chunk-AE5JQORN.js
218878
218908
  function handleCreateCredential(request2, vaultId) {
218879
218909
  return routeWrap(request2, async ({ auth }) => {
218880
218910
  loadVaultForCaller(auth, vaultId);
@@ -218960,11 +218990,11 @@ function handleDeleteCredential(request2, vaultId, credentialId) {
218960
218990
  });
218961
218991
  }
218962
218992
  var CreateCredentialSchema, UpdateCredentialSchema;
218963
- var init_chunk_DLFZAPUD = __esm({
218964
- "../agent-sdk/dist/chunk-DLFZAPUD.js"() {
218993
+ var init_chunk_AE5JQORN = __esm({
218994
+ "../agent-sdk/dist/chunk-AE5JQORN.js"() {
218965
218995
  "use strict";
218966
- init_chunk_KD4GS64M();
218967
- init_chunk_R3NRSPRU();
218996
+ init_chunk_LLYP77OL();
218997
+ init_chunk_ESXH27JB();
218968
218998
  init_chunk_ZQGJKPPY();
218969
218999
  init_chunk_EZYKRG4W();
218970
219000
  init_zod();
@@ -219080,7 +219110,7 @@ var init_chunk_F27XQZ2O = __esm({
219080
219110
  }
219081
219111
  });
219082
219112
 
219083
- // ../agent-sdk/dist/chunk-V75I7WMU.js
219113
+ // ../agent-sdk/dist/chunk-WHASPTF3.js
219084
219114
  function getEnvironmentTenantId2(id) {
219085
219115
  const row = getDb().prepare(`SELECT tenant_id FROM environments WHERE id = ?`).get(id);
219086
219116
  return row?.tenant_id;
@@ -219232,12 +219262,12 @@ function handleUpdateEnvironment(request2, id) {
219232
219262
  });
219233
219263
  }
219234
219264
  var PackagesSchema, NetworkingSchema, ConfigSchema, CreateSchema2, UpdateSchema2;
219235
- var init_chunk_V75I7WMU = __esm({
219236
- "../agent-sdk/dist/chunk-V75I7WMU.js"() {
219265
+ var init_chunk_WHASPTF3 = __esm({
219266
+ "../agent-sdk/dist/chunk-WHASPTF3.js"() {
219237
219267
  "use strict";
219238
219268
  init_chunk_23UKWXJH();
219239
219269
  init_chunk_HLNTWWAZ();
219240
- init_chunk_R3NRSPRU();
219270
+ init_chunk_ESXH27JB();
219241
219271
  init_chunk_T45NOW43();
219242
219272
  init_chunk_NIOWKTIF();
219243
219273
  init_chunk_QUJNG4RA();
@@ -219287,7 +219317,98 @@ var init_chunk_V75I7WMU = __esm({
219287
219317
  }
219288
219318
  });
219289
219319
 
219290
- // ../agent-sdk/dist/chunk-4ZUORWES.js
219320
+ // ../agent-sdk/dist/sessions/driver.js
219321
+ var driver_exports = {};
219322
+ __export(driver_exports, {
219323
+ getPendingToolBridgeCalls: () => getPendingToolBridgeCalls,
219324
+ runTurn: () => runTurn,
219325
+ writePermissionResponse: () => writePermissionResponse,
219326
+ writeToolBridgeResponse: () => writeToolBridgeResponse
219327
+ });
219328
+ var init_driver = __esm({
219329
+ "../agent-sdk/dist/sessions/driver.js"() {
219330
+ "use strict";
219331
+ init_chunk_KZ4AECAK();
219332
+ init_chunk_PJZ5TQYW();
219333
+ init_chunk_AU4NAQGA();
219334
+ init_chunk_H6TQGV4L();
219335
+ init_chunk_SV2B3P6B();
219336
+ init_chunk_72BKGVBE();
219337
+ init_chunk_M4CTE7EH();
219338
+ init_chunk_NIOWKTIF();
219339
+ init_chunk_ZQGJKPPY();
219340
+ init_chunk_XGUSWFDD();
219341
+ init_chunk_DO4WVWW7();
219342
+ init_chunk_RMZRSYIJ();
219343
+ init_chunk_5ZFOKZGR();
219344
+ init_chunk_BMPB7XJH();
219345
+ init_chunk_VIGJQU6V();
219346
+ init_chunk_I5ZA45YL();
219347
+ init_chunk_R5OZHLAD();
219348
+ init_chunk_AIBH32FN();
219349
+ init_chunk_YPXI7Q2M();
219350
+ init_chunk_O45IQUWS();
219351
+ init_chunk_YCXELHKG();
219352
+ init_chunk_EFOIR7R3();
219353
+ init_chunk_QUJNG4RA();
219354
+ init_chunk_NUO56TF7();
219355
+ init_chunk_JEI7I3EH();
219356
+ init_chunk_JDELTTHV();
219357
+ init_chunk_KOGG7CSN();
219358
+ init_chunk_I44FSUBC();
219359
+ init_chunk_T5VRE77P();
219360
+ init_chunk_TY3HD5I5();
219361
+ init_chunk_QYSDP6V5();
219362
+ init_chunk_B6E6BVNK();
219363
+ init_chunk_JDBXIJKG();
219364
+ init_chunk_DNGLD7VN();
219365
+ init_chunk_3IV56JJW();
219366
+ init_chunk_B2JLKTBJ();
219367
+ init_chunk_Z25I7DRV();
219368
+ init_chunk_P7P2NWZD();
219369
+ init_chunk_ETWGCBIQ();
219370
+ init_chunk_SWIP7JBQ();
219371
+ init_chunk_EHCGLMPC();
219372
+ init_chunk_JHGJG2Z2();
219373
+ init_chunk_MJ5J57UJ();
219374
+ init_chunk_XG4UIGDH();
219375
+ init_chunk_3W6KEDQE();
219376
+ init_chunk_S3JRZFF5();
219377
+ init_chunk_X2CAT5MN();
219378
+ init_chunk_NWW4246M();
219379
+ init_chunk_M2LUXIXU();
219380
+ init_chunk_CULYZ3VA();
219381
+ init_chunk_E4FQRMHV();
219382
+ init_chunk_5D5P37FY();
219383
+ init_chunk_YSUPRYX2();
219384
+ init_chunk_7TSTCMII();
219385
+ init_chunk_QQDSHL27();
219386
+ init_chunk_IAF6VMPO();
219387
+ init_chunk_OWP537VU();
219388
+ init_chunk_RZKUB4JQ();
219389
+ init_chunk_WFIMX3HG();
219390
+ init_chunk_FVBDEOTZ();
219391
+ init_chunk_CY6AWCC6();
219392
+ init_chunk_4FDEJHH7();
219393
+ init_chunk_JFYE5BFI();
219394
+ init_chunk_NQX7WBA4();
219395
+ init_chunk_XBHDQK4Z();
219396
+ init_chunk_IU457W7Q();
219397
+ init_chunk_F4WUVOLE();
219398
+ init_chunk_EF5QCTEQ();
219399
+ init_chunk_SXE7H3VK();
219400
+ init_chunk_LHHBOQUR();
219401
+ init_chunk_HFDLUBWN();
219402
+ init_chunk_5GZEX4HV();
219403
+ init_chunk_2BDD6OHG();
219404
+ init_chunk_EZYKRG4W();
219405
+ init_chunk_UYTSKFGK();
219406
+ init_chunk_XZYIH3AF();
219407
+ init_chunk_2ESYSVXG();
219408
+ }
219409
+ });
219410
+
219411
+ // ../agent-sdk/dist/chunk-BFXQ3IOS.js
219291
219412
  function assertSessionTenant2(auth, sessionId) {
219292
219413
  const row = getDb().prepare(`SELECT tenant_id FROM sessions WHERE id = ?`).get(sessionId);
219293
219414
  if (row) {
@@ -219715,16 +219836,22 @@ function handlePostEvents(request2, sessionId) {
219715
219836
  processedAt: nowMs()
219716
219837
  });
219717
219838
  rows.push(row);
219718
- const inp = {
219719
- kind: "tool_result",
219720
- eventId: row.id,
219721
- custom_tool_use_id: event.custom_tool_use_id,
219722
- content: event.content
219723
- };
219724
219839
  const currentStatus = getSessionRow(sessionId)?.status ?? "idle";
219725
- if (currentStatus === "running" || sawInterrupt) {
219726
- pushPendingUserInput({ sessionId, input: inp });
219840
+ if (currentStatus === "running") {
219841
+ const { writeToolBridgeResponse: writeToolBridgeResponse2 } = await Promise.resolve().then(() => (init_driver(), driver_exports));
219842
+ void writeToolBridgeResponse2(
219843
+ sessionId,
219844
+ event.content
219845
+ ).catch((err) => {
219846
+ console.warn(`[events] writeToolBridgeResponse failed:`, err);
219847
+ });
219727
219848
  } else {
219849
+ const inp = {
219850
+ kind: "tool_result",
219851
+ eventId: row.id,
219852
+ custom_tool_use_id: event.custom_tool_use_id,
219853
+ content: event.content
219854
+ };
219728
219855
  pendingForTurn.push(inp);
219729
219856
  }
219730
219857
  continue;
@@ -219805,18 +219932,18 @@ function handleListEvents(request2, sessionId) {
219805
219932
  });
219806
219933
  }
219807
219934
  var teeLog, activeTees, MAX_TEE_REENTRIES, TextBlock2, UserMessage, UserInterrupt, UserToolConfirmation, UserCustomToolResult, UserDefineOutcome, UserEvent, BatchSchema;
219808
- var init_chunk_4ZUORWES = __esm({
219809
- "../agent-sdk/dist/chunk-4ZUORWES.js"() {
219935
+ var init_chunk_BFXQ3IOS = __esm({
219936
+ "../agent-sdk/dist/chunk-BFXQ3IOS.js"() {
219810
219937
  "use strict";
219811
219938
  init_chunk_ATTHVKNE();
219812
219939
  init_chunk_YGAHGTVZ();
219813
219940
  init_chunk_23UKWXJH();
219814
219941
  init_chunk_DC2UMEQH();
219815
219942
  init_chunk_NUINUAXO();
219816
- init_chunk_R3NRSPRU();
219943
+ init_chunk_ESXH27JB();
219817
219944
  init_chunk_T45NOW43();
219818
219945
  init_chunk_AQXCXWAZ();
219819
- init_chunk_BEXPMKTK();
219946
+ init_chunk_KZ4AECAK();
219820
219947
  init_chunk_NIOWKTIF();
219821
219948
  init_chunk_LAWTTG2E();
219822
219949
  init_chunk_BMPB7XJH();
@@ -219871,7 +219998,7 @@ var init_chunk_4ZUORWES = __esm({
219871
219998
  }
219872
219999
  });
219873
220000
 
219874
- // ../agent-sdk/dist/chunk-SP2TOQZF.js
220001
+ // ../agent-sdk/dist/chunk-OA3CLTYY.js
219875
220002
  function assertFileTenantByScope(auth, scopeType, scopeId) {
219876
220003
  if (!scopeId || scopeType !== "session") {
219877
220004
  if (!auth.isGlobalAdmin) throw notFound("file not found");
@@ -220006,34 +220133,34 @@ function handleDeleteFile(request2, fileId) {
220006
220133
  return jsonOk(result);
220007
220134
  });
220008
220135
  }
220009
- var init_chunk_SP2TOQZF = __esm({
220010
- "../agent-sdk/dist/chunk-SP2TOQZF.js"() {
220136
+ var init_chunk_OA3CLTYY = __esm({
220137
+ "../agent-sdk/dist/chunk-OA3CLTYY.js"() {
220011
220138
  "use strict";
220012
220139
  init_chunk_STPT3SWU();
220013
220140
  init_chunk_NXRJ7Z4G();
220014
220141
  init_chunk_23UKWXJH();
220015
- init_chunk_R3NRSPRU();
220142
+ init_chunk_ESXH27JB();
220016
220143
  init_chunk_5GZEX4HV();
220017
220144
  init_chunk_EZYKRG4W();
220018
220145
  init_client();
220019
220146
  }
220020
220147
  });
220021
220148
 
220022
- // ../agent-sdk/dist/chunk-QPKMINTD.js
220149
+ // ../agent-sdk/dist/chunk-UIVEK3MD.js
220023
220150
  function handleGetLicense(request2) {
220024
220151
  return routeWrap(request2, async () => {
220025
220152
  return jsonOk(getLicenseInfo());
220026
220153
  });
220027
220154
  }
220028
- var init_chunk_QPKMINTD = __esm({
220029
- "../agent-sdk/dist/chunk-QPKMINTD.js"() {
220155
+ var init_chunk_UIVEK3MD = __esm({
220156
+ "../agent-sdk/dist/chunk-UIVEK3MD.js"() {
220030
220157
  "use strict";
220031
220158
  init_chunk_2N2KL4KM();
220032
- init_chunk_R3NRSPRU();
220159
+ init_chunk_ESXH27JB();
220033
220160
  }
220034
220161
  });
220035
220162
 
220036
- // ../agent-sdk/dist/chunk-R6L3HZP2.js
220163
+ // ../agent-sdk/dist/chunk-HGZ6R6ST.js
220037
220164
  function assertStoreTenant(auth, storeAgentId) {
220038
220165
  if (storeAgentId == null) {
220039
220166
  if (!auth.isGlobalAdmin) throw notFound("memory store not found");
@@ -220144,12 +220271,12 @@ function handleDeleteMemory(request2, storeId, memId) {
220144
220271
  });
220145
220272
  }
220146
220273
  var CreateStoreSchema, CreateMemorySchema, UpdateMemorySchema;
220147
- var init_chunk_R6L3HZP2 = __esm({
220148
- "../agent-sdk/dist/chunk-R6L3HZP2.js"() {
220274
+ var init_chunk_HGZ6R6ST = __esm({
220275
+ "../agent-sdk/dist/chunk-HGZ6R6ST.js"() {
220149
220276
  "use strict";
220150
220277
  init_chunk_23UKWXJH();
220151
220278
  init_chunk_NUINUAXO();
220152
- init_chunk_R3NRSPRU();
220279
+ init_chunk_ESXH27JB();
220153
220280
  init_chunk_5GZEX4HV();
220154
220281
  init_chunk_EZYKRG4W();
220155
220282
  init_zod();
@@ -220185,7 +220312,7 @@ var init_models = __esm({
220185
220312
  }
220186
220313
  });
220187
220314
 
220188
- // ../agent-sdk/dist/chunk-4EXGAKTK.js
220315
+ // ../agent-sdk/dist/chunk-OC2RYYTW.js
220189
220316
  function getAgentTenantId3(id) {
220190
220317
  const row = getDb().prepare(`SELECT tenant_id FROM agents WHERE id = ?`).get(id);
220191
220318
  return row?.tenant_id;
@@ -220351,15 +220478,15 @@ function handleDeleteAgent(request2, id) {
220351
220478
  });
220352
220479
  }
220353
220480
  var SkillSchema, ToolSchema, McpServerSchema, ModelConfigSchema2, CreateSchema3, UpdateSchema3;
220354
- var init_chunk_4EXGAKTK = __esm({
220355
- "../agent-sdk/dist/chunk-4EXGAKTK.js"() {
220481
+ var init_chunk_OC2RYYTW = __esm({
220482
+ "../agent-sdk/dist/chunk-OC2RYYTW.js"() {
220356
220483
  "use strict";
220357
220484
  init_chunk_23UKWXJH();
220358
- init_chunk_R3NRSPRU();
220485
+ init_chunk_ESXH27JB();
220359
220486
  init_chunk_T45NOW43();
220360
220487
  init_chunk_NIOWKTIF();
220361
220488
  init_chunk_JEI7I3EH();
220362
- init_chunk_QAGHVCOK();
220489
+ init_chunk_KOGG7CSN();
220363
220490
  init_chunk_5GZEX4HV();
220364
220491
  init_chunk_EZYKRG4W();
220365
220492
  init_zod();
@@ -220454,7 +220581,7 @@ var init_chunk_4EXGAKTK = __esm({
220454
220581
  }
220455
220582
  });
220456
220583
 
220457
- // ../agent-sdk/dist/chunk-WJ2BEGAZ.js
220584
+ // ../agent-sdk/dist/chunk-4DTL7OKD.js
220458
220585
  function toView3(row) {
220459
220586
  return row;
220460
220587
  }
@@ -220625,13 +220752,13 @@ function handleGetApiKeyActivity(request2, id) {
220625
220752
  });
220626
220753
  }
220627
220754
  var ScopeSchema, PermissionsSchema, CreateBody2, PatchBody3;
220628
- var init_chunk_WJ2BEGAZ = __esm({
220629
- "../agent-sdk/dist/chunk-WJ2BEGAZ.js"() {
220755
+ var init_chunk_4DTL7OKD = __esm({
220756
+ "../agent-sdk/dist/chunk-4DTL7OKD.js"() {
220630
220757
  "use strict";
220631
220758
  init_chunk_23UKWXJH();
220632
220759
  init_chunk_MHQXDTJB();
220633
220760
  init_chunk_2N2KL4KM();
220634
- init_chunk_R3NRSPRU();
220761
+ init_chunk_ESXH27JB();
220635
220762
  init_chunk_ADK2TYO4();
220636
220763
  init_chunk_I5ZA45YL();
220637
220764
  init_chunk_5GZEX4HV();
@@ -220658,7 +220785,7 @@ var init_chunk_WJ2BEGAZ = __esm({
220658
220785
  }
220659
220786
  });
220660
220787
 
220661
- // ../agent-sdk/dist/chunk-DMFY65GN.js
220788
+ // ../agent-sdk/dist/chunk-O3Z7JWR7.js
220662
220789
  function parseMs2(v2) {
220663
220790
  if (!v2) return void 0;
220664
220791
  const n = Number(v2);
@@ -220707,18 +220834,18 @@ function handleListAudit(request2) {
220707
220834
  });
220708
220835
  }
220709
220836
  var VALID_OUTCOMES;
220710
- var init_chunk_DMFY65GN = __esm({
220711
- "../agent-sdk/dist/chunk-DMFY65GN.js"() {
220837
+ var init_chunk_O3Z7JWR7 = __esm({
220838
+ "../agent-sdk/dist/chunk-O3Z7JWR7.js"() {
220712
220839
  "use strict";
220713
220840
  init_chunk_23UKWXJH();
220714
220841
  init_chunk_MHQXDTJB();
220715
- init_chunk_R3NRSPRU();
220842
+ init_chunk_ESXH27JB();
220716
220843
  init_chunk_EZYKRG4W();
220717
220844
  VALID_OUTCOMES = /* @__PURE__ */ new Set(["success", "denied", "failure"]);
220718
220845
  }
220719
220846
  });
220720
220847
 
220721
- // ../agent-sdk/dist/chunk-Q3NN46KE.js
220848
+ // ../agent-sdk/dist/chunk-4GC7D5GD.js
220722
220849
  function handleBatch(request2) {
220723
220850
  return routeWrap(request2, async () => {
220724
220851
  const body = await request2.json();
@@ -220745,11 +220872,11 @@ function handleBatch(request2) {
220745
220872
  });
220746
220873
  }
220747
220874
  var OperationSchema, BatchSchema2;
220748
- var init_chunk_Q3NN46KE = __esm({
220749
- "../agent-sdk/dist/chunk-Q3NN46KE.js"() {
220875
+ var init_chunk_4GC7D5GD = __esm({
220876
+ "../agent-sdk/dist/chunk-4GC7D5GD.js"() {
220750
220877
  "use strict";
220751
220878
  init_chunk_S3SKODVV();
220752
- init_chunk_R3NRSPRU();
220879
+ init_chunk_ESXH27JB();
220753
220880
  init_chunk_EZYKRG4W();
220754
220881
  init_zod();
220755
220882
  OperationSchema = external_exports.object({
@@ -220863,40 +220990,40 @@ __export(handlers_exports, {
220863
220990
  var init_handlers3 = __esm({
220864
220991
  "../agent-sdk/dist/handlers/index.js"() {
220865
220992
  "use strict";
220866
- init_chunk_HBERAFEH();
220867
- init_chunk_RKXJLXPN();
220993
+ init_chunk_2NAUMCWE();
220994
+ init_chunk_YIVJ3JTW();
220868
220995
  init_chunk_AMWWPUSK();
220869
- init_chunk_QI2UYVUF();
220870
- init_chunk_T2IKN6LM();
220871
- init_chunk_EZCC3VWX();
220872
- init_chunk_TTICVJTT();
220996
+ init_chunk_JURAGCGR();
220997
+ init_chunk_XZOBOKL6();
220998
+ init_chunk_GQFC44YI();
220999
+ init_chunk_OTLXV4RO();
220873
221000
  init_chunk_FZFICXAN();
220874
- init_chunk_EVZABUMI();
220875
- init_chunk_XLAHZKY6();
220876
- init_chunk_DHROKUFE();
221001
+ init_chunk_ZNQD65DN();
221002
+ init_chunk_EGCAA6KI();
221003
+ init_chunk_OONL25NZ();
220877
221004
  init_chunk_4WMYJM36();
220878
221005
  init_chunk_RDGOGAQ5();
220879
- init_chunk_4ZL36MCY();
220880
- init_chunk_Q2GMMMR3();
220881
- init_chunk_QPI6MKAU();
221006
+ init_chunk_W26HCKWX();
221007
+ init_chunk_RK3QBYXO();
221008
+ init_chunk_HMBJOI5F();
220882
221009
  init_chunk_ZP5VMV5O();
220883
- init_chunk_VGEBUTM5();
220884
- init_chunk_OGARYKIG();
220885
- init_chunk_DLFZAPUD();
220886
- init_chunk_KD4GS64M();
221010
+ init_chunk_LMHXLYUV();
221011
+ init_chunk_LYTHR3HC();
221012
+ init_chunk_AE5JQORN();
221013
+ init_chunk_LLYP77OL();
220887
221014
  init_chunk_F27XQZ2O();
220888
- init_chunk_V75I7WMU();
220889
- init_chunk_4ZUORWES();
221015
+ init_chunk_WHASPTF3();
221016
+ init_chunk_BFXQ3IOS();
220890
221017
  init_chunk_ATTHVKNE();
220891
- init_chunk_SP2TOQZF();
220892
- init_chunk_QPKMINTD();
220893
- init_chunk_R6L3HZP2();
221018
+ init_chunk_OA3CLTYY();
221019
+ init_chunk_UIVEK3MD();
221020
+ init_chunk_HGZ6R6ST();
220894
221021
  init_chunk_BZ6HFTHU();
220895
221022
  init_chunk_STPT3SWU();
220896
- init_chunk_4EXGAKTK();
220897
- init_chunk_WJ2BEGAZ();
220898
- init_chunk_DMFY65GN();
220899
- init_chunk_Q3NN46KE();
221023
+ init_chunk_OC2RYYTW();
221024
+ init_chunk_4DTL7OKD();
221025
+ init_chunk_O3Z7JWR7();
221026
+ init_chunk_4GC7D5GD();
220900
221027
  init_chunk_YGAHGTVZ();
220901
221028
  init_chunk_JK5TPJHH();
220902
221029
  init_chunk_NXRJ7Z4G();
@@ -220911,15 +221038,15 @@ var init_handlers3 = __esm({
220911
221038
  init_chunk_HLNTWWAZ();
220912
221039
  init_chunk_MHQXDTJB();
220913
221040
  init_chunk_2N2KL4KM();
220914
- init_chunk_R3NRSPRU();
221041
+ init_chunk_ESXH27JB();
220915
221042
  init_chunk_D2XITRN6();
220916
221043
  init_chunk_ZMMDLKR3();
220917
221044
  init_chunk_T45NOW43();
220918
221045
  init_chunk_W6WKXFHN();
220919
221046
  init_chunk_HVUWXUUI();
220920
- init_chunk_VZQP2TG2();
221047
+ init_chunk_DT57EZQB();
220921
221048
  init_chunk_AQXCXWAZ();
220922
- init_chunk_BEXPMKTK();
221049
+ init_chunk_KZ4AECAK();
220923
221050
  init_chunk_PJZ5TQYW();
220924
221051
  init_chunk_AU4NAQGA();
220925
221052
  init_chunk_H6TQGV4L();
@@ -220932,10 +221059,10 @@ var init_handlers3 = __esm({
220932
221059
  init_chunk_ZQGJKPPY();
220933
221060
  init_chunk_ADK2TYO4();
220934
221061
  init_chunk_3MQ2FWXS();
220935
- init_chunk_OLZ2KIXD();
220936
- init_chunk_KMBQ5U5W();
221062
+ init_chunk_NX6SIEN6();
221063
+ init_chunk_FJAWIVSD();
220937
221064
  init_chunk_LAWTTG2E();
220938
- init_chunk_U7XXWFTQ();
221065
+ init_chunk_XGUSWFDD();
220939
221066
  init_chunk_DO4WVWW7();
220940
221067
  init_chunk_RMZRSYIJ();
220941
221068
  init_chunk_5ZFOKZGR();
@@ -220952,7 +221079,7 @@ var init_handlers3 = __esm({
220952
221079
  init_chunk_NUO56TF7();
220953
221080
  init_chunk_JEI7I3EH();
220954
221081
  init_chunk_JDELTTHV();
220955
- init_chunk_QAGHVCOK();
221082
+ init_chunk_KOGG7CSN();
220956
221083
  init_chunk_I44FSUBC();
220957
221084
  init_chunk_T5VRE77P();
220958
221085
  init_chunk_TY3HD5I5();
@@ -220983,11 +221110,11 @@ var init_handlers3 = __esm({
220983
221110
  init_chunk_QQDSHL27();
220984
221111
  init_chunk_IAF6VMPO();
220985
221112
  init_chunk_OWP537VU();
220986
- init_chunk_6VQXN6L3();
221113
+ init_chunk_RZKUB4JQ();
220987
221114
  init_chunk_WFIMX3HG();
220988
221115
  init_chunk_FVBDEOTZ();
220989
221116
  init_chunk_CY6AWCC6();
220990
- init_chunk_ALVC7G6R();
221117
+ init_chunk_4FDEJHH7();
220991
221118
  init_chunk_JFYE5BFI();
220992
221119
  init_chunk_NQX7WBA4();
220993
221120
  init_chunk_XBHDQK4Z();