@skaile/workspaces 4.21.0 → 4.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/app-sdk/index.js +1 -1
  3. package/dist/{asset-feeds-HKPNPO7N.js → asset-feeds-6TCDMWCJ.js} +4 -4
  4. package/dist/{asset-feeds-HKPNPO7N.js.map → asset-feeds-6TCDMWCJ.js.map} +1 -1
  5. package/dist/asset-manager/index.js +1 -1
  6. package/dist/bridge/drivers/claude-sdk.js +115 -6
  7. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  8. package/dist/bridge/drivers/codex.js +2 -2
  9. package/dist/bridge/drivers/continue.js +3 -3
  10. package/dist/bridge/drivers/echo.js +3 -3
  11. package/dist/bridge/drivers/gemini.js +5 -5
  12. package/dist/bridge/drivers/goose.js +3 -3
  13. package/dist/bridge/drivers/omp.js +4 -4
  14. package/dist/bridge/drivers/omp.js.map +1 -1
  15. package/dist/bridge/drivers/opencode.js +3 -3
  16. package/dist/bridge/drivers/qwen.js +5 -5
  17. package/dist/bridge/index.js +5 -5
  18. package/dist/bridge/src/drivers/claude-sdk.d.ts +23 -0
  19. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  20. package/dist/bridge/src/drivers/omp.d.ts +1 -1
  21. package/dist/bridge/src/types.d.ts +17 -2
  22. package/dist/bridge/src/types.d.ts.map +1 -1
  23. package/dist/{chunk-HA674IQL.js → chunk-47MUF565.js} +6 -6
  24. package/dist/{chunk-HA674IQL.js.map → chunk-47MUF565.js.map} +1 -1
  25. package/dist/{chunk-ES4E6RDZ.js → chunk-52OD6PJ4.js} +3 -3
  26. package/dist/{chunk-ES4E6RDZ.js.map → chunk-52OD6PJ4.js.map} +1 -1
  27. package/dist/{chunk-TVLQTO7E.js → chunk-7LZJRVKJ.js} +9 -3
  28. package/dist/chunk-7LZJRVKJ.js.map +1 -0
  29. package/dist/{chunk-RLACUE4X.js → chunk-D3UARV3Z.js} +3 -3
  30. package/dist/{chunk-RLACUE4X.js.map → chunk-D3UARV3Z.js.map} +1 -1
  31. package/dist/{chunk-IZAN5MHL.js → chunk-F4ECQAN3.js} +165 -4
  32. package/dist/chunk-F4ECQAN3.js.map +1 -0
  33. package/dist/{chunk-S5A5MVJN.js → chunk-GRBB4CQL.js} +4 -4
  34. package/dist/chunk-GRBB4CQL.js.map +1 -0
  35. package/dist/{chunk-5FMWNSAQ.js → chunk-HMUFI3L5.js} +3 -3
  36. package/dist/{chunk-5FMWNSAQ.js.map → chunk-HMUFI3L5.js.map} +1 -1
  37. package/dist/{chunk-ZJEQFNKE.js → chunk-IAWXUW6C.js} +311 -26
  38. package/dist/chunk-IAWXUW6C.js.map +1 -0
  39. package/dist/{chunk-ZDSZGV5F.js → chunk-IBUY53DN.js} +59 -12
  40. package/dist/chunk-IBUY53DN.js.map +1 -0
  41. package/dist/{chunk-XBMCUMZT.js → chunk-IN466NSZ.js} +4 -4
  42. package/dist/{chunk-XBMCUMZT.js.map → chunk-IN466NSZ.js.map} +1 -1
  43. package/dist/{chunk-RTD5KAM4.js → chunk-IRGI7Q62.js} +10 -3
  44. package/dist/chunk-IRGI7Q62.js.map +1 -0
  45. package/dist/{chunk-RBTVXXD5.js → chunk-JIPPMYOM.js} +3 -3
  46. package/dist/{chunk-RBTVXXD5.js.map → chunk-JIPPMYOM.js.map} +1 -1
  47. package/dist/{chunk-GTS2FODO.js → chunk-JKJ7XYLG.js} +35 -3
  48. package/dist/chunk-JKJ7XYLG.js.map +1 -0
  49. package/dist/{chunk-AEOHSR27.js → chunk-KVWSBQNP.js} +3 -3
  50. package/dist/{chunk-AEOHSR27.js.map → chunk-KVWSBQNP.js.map} +1 -1
  51. package/dist/{chunk-ODIJJXXB.js → chunk-NJ2AI2DR.js} +6 -6
  52. package/dist/{chunk-ODIJJXXB.js.map → chunk-NJ2AI2DR.js.map} +1 -1
  53. package/dist/{chunk-5YDCUHJI.js → chunk-PIY5NTXY.js} +3 -3
  54. package/dist/{chunk-5YDCUHJI.js.map → chunk-PIY5NTXY.js.map} +1 -1
  55. package/dist/{chunk-EUGEEYGD.js → chunk-Q6LSBAQK.js} +2 -2
  56. package/dist/{chunk-EUGEEYGD.js.map → chunk-Q6LSBAQK.js.map} +1 -1
  57. package/dist/{chunk-YEQ3BXOY.js → chunk-QCACHN2P.js} +3 -3
  58. package/dist/{chunk-YEQ3BXOY.js.map → chunk-QCACHN2P.js.map} +1 -1
  59. package/dist/{chunk-OPSKLUB4.js → chunk-R2RFFXK7.js} +2 -2
  60. package/dist/{chunk-OPSKLUB4.js.map → chunk-R2RFFXK7.js.map} +1 -1
  61. package/dist/{chunk-R3EU2FFW.js → chunk-UHYS34Z5.js} +4 -4
  62. package/dist/{chunk-R3EU2FFW.js.map → chunk-UHYS34Z5.js.map} +1 -1
  63. package/dist/{chunk-FELWDKLQ.js → chunk-WBRD2T5J.js} +3 -3
  64. package/dist/{chunk-FELWDKLQ.js.map → chunk-WBRD2T5J.js.map} +1 -1
  65. package/dist/{chunk-I4VIRPHS.js → chunk-Y6QVVKFN.js} +3 -3
  66. package/dist/{chunk-I4VIRPHS.js.map → chunk-Y6QVVKFN.js.map} +1 -1
  67. package/dist/{chunk-EJU2TOGT.js → chunk-YHG3333K.js} +3 -3
  68. package/dist/{chunk-EJU2TOGT.js.map → chunk-YHG3333K.js.map} +1 -1
  69. package/dist/{chunk-RZ2YIFT6.js → chunk-ZULBOMNO.js} +6 -6
  70. package/dist/{chunk-RZ2YIFT6.js.map → chunk-ZULBOMNO.js.map} +1 -1
  71. package/dist/cli/index.js +36 -36
  72. package/dist/connectors/index.js +7 -7
  73. package/dist/connectors/src/connector-manager.d.ts +15 -0
  74. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  75. package/dist/connectors-shared/index.js +2 -2
  76. package/dist/{ensure-sources-MUS622KB.js → ensure-sources-ONLJKK4T.js} +4 -4
  77. package/dist/{ensure-sources-MUS622KB.js.map → ensure-sources-ONLJKK4T.js.map} +1 -1
  78. package/dist/factory-assets/connectors/box.js +7 -7
  79. package/dist/factory-assets/connectors/deploy.js +7 -7
  80. package/dist/factory-assets/connectors/devserver.js +7 -7
  81. package/dist/factory-assets/connectors/flow/adapter.js +7 -7
  82. package/dist/factory-assets/connectors/flow/run-flow.js +8 -8
  83. package/dist/factory-assets/connectors/flow.js +7 -7
  84. package/dist/factory-assets/connectors/git.js +7 -7
  85. package/dist/factory-assets/connectors/gmail.js +7 -7
  86. package/dist/factory-assets/connectors/googledrive.js +7 -7
  87. package/dist/factory-assets/connectors/local.js +7 -7
  88. package/dist/factory-assets/connectors/mattermost.js +7 -7
  89. package/dist/factory-assets/connectors/memory.js +7 -7
  90. package/dist/factory-assets/connectors/minio.js +7 -7
  91. package/dist/factory-assets/connectors/postgres.js +7 -7
  92. package/dist/factory-assets/connectors/s3.js +7 -7
  93. package/dist/factory-assets/connectors/sharepoint.js +7 -7
  94. package/dist/factory-assets/connectors/sqlite.js +7 -7
  95. package/dist/factory-assets/connectors/static-server.js +7 -7
  96. package/dist/factory-assets/connectors/tunnel.js +7 -7
  97. package/dist/factory-assets/connectors/webdav.js +7 -7
  98. package/dist/factory-assets/connectors/xstate-store.js +7 -7
  99. package/dist/factory-assets/connectors/xstate.js +7 -7
  100. package/dist/{helpers-V3IJWB75.js → helpers-SGWUYZUS.js} +4 -4
  101. package/dist/{helpers-V3IJWB75.js.map → helpers-SGWUYZUS.js.map} +1 -1
  102. package/dist/{library-publish-TXJM76SD.js → library-publish-ZEZA6DAI.js} +6 -6
  103. package/dist/{library-publish-TXJM76SD.js.map → library-publish-ZEZA6DAI.js.map} +1 -1
  104. package/dist/{open-library-ORTV2RUE.js → open-library-OF377L77.js} +5 -5
  105. package/dist/{open-library-ORTV2RUE.js.map → open-library-OF377L77.js.map} +1 -1
  106. package/dist/{project-GI2A75UN.js → project-23QK7474.js} +5 -5
  107. package/dist/{project-GI2A75UN.js.map → project-23QK7474.js.map} +1 -1
  108. package/dist/runner/index.js +12 -12
  109. package/dist/runner/src/ai-credential-retry.d.ts +14 -0
  110. package/dist/runner/src/ai-credential-retry.d.ts.map +1 -1
  111. package/dist/runner/src/capability-roundtrip.d.ts +18 -0
  112. package/dist/runner/src/capability-roundtrip.d.ts.map +1 -1
  113. package/dist/runner/src/event-gap-buffer.d.ts +77 -0
  114. package/dist/runner/src/event-gap-buffer.d.ts.map +1 -0
  115. package/dist/runner/src/managed-codex-bootstrap.d.ts +1 -1
  116. package/dist/runner/src/reconfigure-handler.d.ts +40 -0
  117. package/dist/runner/src/reconfigure-handler.d.ts.map +1 -0
  118. package/dist/runner/src/reply-routing.d.ts +2 -0
  119. package/dist/runner/src/reply-routing.d.ts.map +1 -1
  120. package/dist/runner/src/runner-capabilities.d.ts +48 -1
  121. package/dist/runner/src/runner-capabilities.d.ts.map +1 -1
  122. package/dist/runner/src/serve.d.ts.map +1 -1
  123. package/dist/runner/src/session-builder.d.ts +2 -2
  124. package/dist/runner/src/session-builder.d.ts.map +1 -1
  125. package/dist/runner/src/session-capability-wiring.d.ts +5 -0
  126. package/dist/runner/src/session-capability-wiring.d.ts.map +1 -1
  127. package/dist/sdk/asset-manager.js +1 -1
  128. package/dist/sdk/bridge.js +5 -5
  129. package/dist/sdk/index.js +12 -12
  130. package/dist/sdk/runner.js +12 -12
  131. package/dist/sdk/session.js +2 -2
  132. package/dist/sdk/store.js +1 -1
  133. package/dist/sdk/transport/ws/client.js +1 -1
  134. package/dist/sdk/transport/ws.js +1 -1
  135. package/dist/sdk/transport.js +1 -1
  136. package/dist/sdk/types.js +1 -1
  137. package/dist/session/index.js +2 -2
  138. package/dist/session/src/bounded-subscriber-transport.d.ts +101 -0
  139. package/dist/session/src/bounded-subscriber-transport.d.ts.map +1 -0
  140. package/dist/session/src/dispatcher.d.ts.map +1 -1
  141. package/dist/session/src/index.d.ts +2 -0
  142. package/dist/session/src/index.d.ts.map +1 -1
  143. package/dist/session/src/types.d.ts +10 -1
  144. package/dist/session/src/types.d.ts.map +1 -1
  145. package/dist/{setup-GLCLE36X.js → setup-WZ3SWZFQ.js} +10 -10
  146. package/dist/{setup-GLCLE36X.js.map → setup-WZ3SWZFQ.js.map} +1 -1
  147. package/dist/{source-N6EKFFH5.js → source-YMKMBOKP.js} +6 -6
  148. package/dist/{source-N6EKFFH5.js.map → source-YMKMBOKP.js.map} +1 -1
  149. package/dist/{source-manifest-publish-BDMY4B4B.js → source-manifest-publish-B3CVM4RW.js} +7 -7
  150. package/dist/{source-manifest-publish-BDMY4B4B.js.map → source-manifest-publish-B3CVM4RW.js.map} +1 -1
  151. package/dist/store/index.js +1 -1
  152. package/dist/store/src/store.d.ts.map +1 -1
  153. package/dist/transport/index.js +1 -1
  154. package/dist/transport/src/ws/client.d.ts +12 -0
  155. package/dist/transport/src/ws/client.d.ts.map +1 -1
  156. package/dist/transport/ws/client.js +1 -1
  157. package/dist/transport/ws.js +1 -1
  158. package/dist/tui/index.js +12 -12
  159. package/dist/types/index.js +1 -1
  160. package/dist/types/src/events.d.ts +9 -2
  161. package/dist/types/src/events.d.ts.map +1 -1
  162. package/dist/types/src/lifecycle.d.ts +1 -1
  163. package/dist/types/src/lifecycle.d.ts.map +1 -1
  164. package/dist/types/src/version.d.ts +17 -2
  165. package/dist/types/src/version.d.ts.map +1 -1
  166. package/dist/workspace-plugin/adapters/mcp.js +2 -2
  167. package/dist/workspace-plugin/index.js +1 -1
  168. package/package.json +1 -1
  169. package/dist/chunk-GTS2FODO.js.map +0 -1
  170. package/dist/chunk-IZAN5MHL.js.map +0 -1
  171. package/dist/chunk-RTD5KAM4.js.map +0 -1
  172. package/dist/chunk-S5A5MVJN.js.map +0 -1
  173. package/dist/chunk-TVLQTO7E.js.map +0 -1
  174. package/dist/chunk-ZDSZGV5F.js.map +0 -1
  175. package/dist/chunk-ZJEQFNKE.js.map +0 -1
@@ -1,24 +1,24 @@
1
- import { WorkspacePlugin } from './chunk-OPSKLUB4.js';
2
- import { buildWorkspaceToolDefs } from './chunk-5FMWNSAQ.js';
1
+ import { WorkspacePlugin } from './chunk-R2RFFXK7.js';
2
+ import { buildWorkspaceToolDefs } from './chunk-HMUFI3L5.js';
3
3
  import { findAiAssetsRoot } from './chunk-7IH3RKKK.js';
4
4
  import { WebSocketServerTransport } from './chunk-73ZXUUL6.js';
5
5
  import { assembleSystemPrompt, buildCapabilitiesPromptSection } from './chunk-W3UDISS2.js';
6
6
  import { prepareNativePolicy, codexInstanceEnvironment, parseCodexCredential, parseCodexRefreshInput, parseCodexRefreshResult } from './chunk-PE3A6FFW.js';
7
- import { resolveFlowPath } from './chunk-EJU2TOGT.js';
7
+ import { resolveFlowPath } from './chunk-YHG3333K.js';
8
8
  import { findAiAssetsRoot as findAiAssetsRoot$1, deployCatalogEntry, undeployCatalogEntry } from './chunk-Q6NDQ6BH.js';
9
- import { registerBuiltinConnectors, buildConnectorPromptSection, findMissingPackages, installNpmPackages, ConnectorManager, buildSdkConnectorTools, buildLazySdkFlowTools, describeFlowOperations, buildConnectorToolDefs, buildFlowToolDefs, driveOrchestratorTurn, SessionNodeExecutor, SessionSubpromptRunner, ClassifierSubpromptRunner, SessionInlineSubFlowRunner, buildSdkFlowTools } from './chunk-ZDSZGV5F.js';
9
+ import { registerBuiltinConnectors, buildConnectorPromptSection, findMissingPackages, installNpmPackages, ConnectorManager, buildSdkConnectorTools, buildLazySdkFlowTools, describeFlowOperations, buildConnectorToolDefs, buildFlowToolDefs, driveOrchestratorTurn, SessionNodeExecutor, SessionSubpromptRunner, ClassifierSubpromptRunner, SessionInlineSubFlowRunner, buildSdkFlowTools } from './chunk-IBUY53DN.js';
10
10
  import { loadYamlConnectorDeclarations, withMaterializedConnectorDeclarations, SecretProviderChain, ConnectorStartupError, PreMintedSecretProvider, InMemorySecretProvider, resolvedConfigToDeclarations, isKnownSecretRef, deriveSingleMaterializedConnectorDeclaration } from './chunk-MC2MF4U5.js';
11
- import { EventNormalizer } from './chunk-XBMCUMZT.js';
11
+ import { EventNormalizer } from './chunk-IN466NSZ.js';
12
12
  import { probeResumeTranscript, transcriptStoreForRuntime } from './chunk-6S5KL76M.js';
13
13
  import { CodexNativeStateUnavailable } from './chunk-LOO5CB5M.js';
14
- import { dispatchCapability } from './chunk-RLACUE4X.js';
14
+ import { dispatchCapability } from './chunk-D3UARV3Z.js';
15
15
  import { classifyClaudeSdkError } from './chunk-BGY4KTU6.js';
16
16
  import { agentExecRequested } from './chunk-YROR332M.js';
17
- import { createDriver, catalogLayer, providerCredentialEnvName, toMergedRegistry, registryCredentialEnv, AI_PROVIDER_PRESETS } from './chunk-RTD5KAM4.js';
17
+ import { toAgentEffort, createDriver, catalogLayer, providerCredentialEnvName, toMergedRegistry, registryCredentialEnv, AI_PROVIDER_PRESETS, AgentDriver } from './chunk-IRGI7Q62.js';
18
18
  import { loadFlow } from './chunk-KTCMBEEB.js';
19
19
  import { parseFlowDefinition } from './chunk-ALLCAFHQ.js';
20
20
  import { renderStimulusPrompt } from './chunk-RQLL7L72.js';
21
- import { withActivityLabelJsonSchema, TOOL_ACTIVITY_PROMPT_SECTION, SESSION_ROOT_CONNECTOR_ID, PROTOCOL_VERSION } from './chunk-S5A5MVJN.js';
21
+ import { withActivityLabelJsonSchema, TOOL_ACTIVITY_PROMPT_SECTION, SESSION_ROOT_CONNECTOR_ID, PROTOCOL_VERSION } from './chunk-GRBB4CQL.js';
22
22
  import { resolveSettings, loadProviderRegistry } from './chunk-UWU572Q6.js';
23
23
  import { resolveRuntimeAssets } from './chunk-5RHPNNWP.js';
24
24
  import { resolveDriverPaths } from './chunk-K5GBV4SA.js';
@@ -2715,7 +2715,11 @@ async function createAgentSession(config) {
2715
2715
  ]);
2716
2716
  logAssembledSystemPrompt(systemPrompt, sessionLog);
2717
2717
  const thinking = config.thinking ?? wsConfig.agent_config?.default?.thinking;
2718
- const effort = config.effort ?? (managed ? void 0 : wsConfig.agent_config?.default?.effort);
2718
+ const wsEffort = managed ? void 0 : wsConfig.agent_config?.default?.effort;
2719
+ const effort = config.effort ?? toAgentEffort(wsEffort);
2720
+ if (config.effort === void 0 && wsEffort !== void 0 && effort === void 0) {
2721
+ sessionLog.warn("ignoring unknown effort", { effort: wsEffort, source: "skaile.yaml" });
2722
+ }
2719
2723
  const maxTurns = maxTurnsOverride ?? manifest?.runtime?.max_turns;
2720
2724
  let driver;
2721
2725
  try {
@@ -3563,6 +3567,19 @@ function resolveCapabilityResult(pending, cmd) {
3563
3567
  }
3564
3568
  return true;
3565
3569
  }
3570
+ function rejectPendingCapabilityCallsOnDisconnect(pending, keep = () => false) {
3571
+ const entries = [...pending].filter(([callId]) => !keep(callId));
3572
+ for (const [callId] of entries) pending.delete(callId);
3573
+ for (const [callId, entry] of entries) {
3574
+ clearTimeout(entry.timer);
3575
+ entry.reject(
3576
+ new Error(
3577
+ `Platform connection dropped while capability call ${callId} was in flight (the platform backend may be restarting). Its outcome is unknown; retry once the platform is back if the call is safe to repeat.`
3578
+ )
3579
+ );
3580
+ }
3581
+ return entries.length;
3582
+ }
3566
3583
  function rejectCapabilityOnApprovalDeny(pending, callId, feedback) {
3567
3584
  const entry = pending.get(callId);
3568
3585
  if (!entry) return false;
@@ -4181,6 +4198,23 @@ var MINT_RETRY_MAX_DELAY_MS = 5e3;
4181
4198
  function isTransientMintFailure(code) {
4182
4199
  return code === "backend-error";
4183
4200
  }
4201
+ function aiMintPreconditionFailure(args) {
4202
+ if (args.configId === void 0) {
4203
+ return {
4204
+ ok: false,
4205
+ code: "not-configured",
4206
+ message: "no aiProviderConfigId; standalone runner cannot mediate refresh"
4207
+ };
4208
+ }
4209
+ if (!args.connected) {
4210
+ return {
4211
+ ok: false,
4212
+ code: "backend-error",
4213
+ message: "transport disconnected; the platform connection is down, refresh will be retried"
4214
+ };
4215
+ }
4216
+ return null;
4217
+ }
4184
4218
  function mintRetryDelayMs(retryNumber) {
4185
4219
  const delay = MINT_RETRY_BASE_DELAY_MS * 2 ** Math.max(0, retryNumber - 1);
4186
4220
  return Math.min(delay, MINT_RETRY_MAX_DELAY_MS);
@@ -4471,6 +4505,55 @@ async function handleCredentialRotatedSignal(deps) {
4471
4505
  }
4472
4506
  }
4473
4507
 
4508
+ // runner/src/reconfigure-handler.ts
4509
+ function driverAppliesReconfigure(driver) {
4510
+ return typeof driver.reconfigure === "function" && driver.reconfigure !== AgentDriver.prototype.reconfigure;
4511
+ }
4512
+ function applyReconfigurePatch(config, patch) {
4513
+ if (patch.model !== void 0) {
4514
+ config.model = patch.model;
4515
+ if (config.modelRef !== void 0) config.modelRef = patch.model;
4516
+ }
4517
+ if (patch.thinking !== void 0) config.thinking = patch.thinking;
4518
+ if (patch.effort !== void 0) config.effort = patch.effort;
4519
+ }
4520
+ function carryLiveReconfigure(config, patch, wireAgentConfigChanged) {
4521
+ if (wireAgentConfigChanged || !patch) return void 0;
4522
+ applyReconfigurePatch(config, patch);
4523
+ return patch;
4524
+ }
4525
+ function buildReconfigureHandler(deps) {
4526
+ const { getDriver, rememberPatch, log } = deps;
4527
+ return async (patch) => {
4528
+ const fields = Object.keys(patch).join(", ");
4529
+ const driver = getDriver();
4530
+ if (!driver) {
4531
+ log(`[reconfigure] no driver is running; ${fields} not applied`);
4532
+ return {
4533
+ ok: false,
4534
+ code: "no_driver",
4535
+ message: "No agent driver is running; the change applies when the session next starts."
4536
+ };
4537
+ }
4538
+ const driverId = driver.driverInfo?.id ?? "unknown";
4539
+ if (!driverAppliesReconfigure(driver)) {
4540
+ log(
4541
+ `[reconfigure] driver ${driverId} cannot apply a live reconfigure; ${fields} not applied`
4542
+ );
4543
+ return {
4544
+ ok: false,
4545
+ code: "not_supported",
4546
+ message: `The ${driverId} driver cannot change ${fields} live; the change applies when the session next starts.`
4547
+ };
4548
+ }
4549
+ driver.reconfigure(patch);
4550
+ rememberPatch(patch);
4551
+ const model = driver.getModel() ?? null;
4552
+ log(`[reconfigure] driver ${driverId} took ${fields} (model=${model ?? "(default)"})`);
4553
+ return { ok: true, model };
4554
+ };
4555
+ }
4556
+
4474
4557
  // runner/src/runtime-session-emit.ts
4475
4558
  function planRuntimeSessionEmit(input) {
4476
4559
  const { driverSessionId, model, capabilitySignature, lastEmitted } = input;
@@ -4868,12 +4951,113 @@ function awaitAgentEnd(driver, prompt, timeoutMs) {
4868
4951
  async function routeReply(deps) {
4869
4952
  const current = deps.getDriver();
4870
4953
  if (current.hasPendingQuestion()) {
4871
- return current.answerQuestion(deps.answer, deps.question, deps.requestId) ? "answered" : "fresh-turn";
4954
+ if (!current.answerQuestion(deps.answer, deps.question, deps.requestId)) return "fresh-turn";
4955
+ deps.onAnswered?.();
4956
+ return "answered";
4872
4957
  }
4873
4958
  await deps.awaitSwap();
4874
4959
  return "fresh-turn";
4875
4960
  }
4876
4961
 
4962
+ // runner/src/event-gap-buffer.ts
4963
+ var EVENT_GAP_BUFFER_MAX_EVENTS = 1e4;
4964
+ var EVENT_GAP_BUFFER_MAX_BYTES = 16 * 1024 * 1024;
4965
+ var UNBUFFERED_TYPES = /* @__PURE__ */ new Set([
4966
+ "session_init_ack",
4967
+ "log_entry",
4968
+ "capability_result"
4969
+ ]);
4970
+ function measure(event) {
4971
+ try {
4972
+ const json = JSON.stringify(event);
4973
+ return json === void 0 ? 0 : Buffer.byteLength(json, "utf8");
4974
+ } catch {
4975
+ return 0;
4976
+ }
4977
+ }
4978
+ var EventGapBuffer = class _EventGapBuffer {
4979
+ maxEvents;
4980
+ maxBytes;
4981
+ entries = [];
4982
+ /** Index of the oldest live entry; eviction advances it instead of shifting the array. */
4983
+ head = 0;
4984
+ bytes = 0;
4985
+ dropped = 0;
4986
+ constructor(opts = {}) {
4987
+ this.maxEvents = opts.maxEvents ?? EVENT_GAP_BUFFER_MAX_EVENTS;
4988
+ this.maxBytes = opts.maxBytes ?? EVENT_GAP_BUFFER_MAX_BYTES;
4989
+ }
4990
+ /** Number of events currently held. */
4991
+ get size() {
4992
+ return this.entries.length - this.head;
4993
+ }
4994
+ /** Whether a drain would report anything (held events or drops). */
4995
+ get hasPending() {
4996
+ return this.size > 0 || this.dropped > 0;
4997
+ }
4998
+ /** The callIds of the `capability_invoked` events currently held. */
4999
+ heldCapabilityCallIds() {
5000
+ const ids = /* @__PURE__ */ new Set();
5001
+ for (let i = this.head; i < this.entries.length; i++) {
5002
+ const event = this.entries[i]?.event;
5003
+ if (event?.type === "capability_invoked") ids.add(event.callId);
5004
+ }
5005
+ return ids;
5006
+ }
5007
+ /** Whether {@link push} would hold this event type at all. */
5008
+ static accepts(event) {
5009
+ return !UNBUFFERED_TYPES.has(event.type);
5010
+ }
5011
+ /**
5012
+ * Append an event, evicting the oldest past either cap. An event larger than
5013
+ * the byte cap on its own is counted as dropped and not held.
5014
+ */
5015
+ push(event, opts = {}) {
5016
+ if (!_EventGapBuffer.accepts(event)) return;
5017
+ const bytes = measure(event);
5018
+ if (bytes > this.maxBytes) {
5019
+ this.dropped += 1;
5020
+ return;
5021
+ }
5022
+ this.entries.push({ event, bytes, ...opts.isStale ? { isStale: opts.isStale } : {} });
5023
+ this.bytes += bytes;
5024
+ while (this.size > this.maxEvents || this.bytes > this.maxBytes) {
5025
+ const oldest = this.entries[this.head];
5026
+ if (!oldest) break;
5027
+ this.head += 1;
5028
+ this.bytes -= oldest.bytes;
5029
+ this.dropped += 1;
5030
+ }
5031
+ if (this.head > 1024 && this.head * 2 > this.entries.length) {
5032
+ this.entries = this.entries.slice(this.head);
5033
+ this.head = 0;
5034
+ }
5035
+ }
5036
+ /** Hand back everything held, oldest first, and reset. */
5037
+ drain() {
5038
+ const events = [];
5039
+ let stale = 0;
5040
+ for (let i = this.head; i < this.entries.length; i++) {
5041
+ const entry = this.entries[i];
5042
+ if (!entry) continue;
5043
+ if (entry.isStale?.()) stale += 1;
5044
+ else events.push(entry.event);
5045
+ }
5046
+ const dropped = this.dropped;
5047
+ this.clear();
5048
+ return { events, dropped, stale };
5049
+ }
5050
+ /** Discard everything held. Returns how many events were discarded. */
5051
+ clear() {
5052
+ const discarded = this.size;
5053
+ this.entries = [];
5054
+ this.head = 0;
5055
+ this.bytes = 0;
5056
+ this.dropped = 0;
5057
+ return discarded;
5058
+ }
5059
+ };
5060
+
4877
5061
  // runner/src/compaction/prompt.ts
4878
5062
  var DEFAULT_COMPACTION_PROMPT = `You are being asked to compact this conversation into a structured summary.
4879
5063
  This summary will replace the full conversation history when the session
@@ -6184,8 +6368,8 @@ var ContextUsageCollector = class {
6184
6368
  if (opts.measure && driver?.getContextUsageReport) {
6185
6369
  try {
6186
6370
  const detail = opts.measure;
6187
- const measure = driver.getContextUsageReport.bind(driver);
6188
- report = await this.sharedMeasurement(detail, () => measure({ detail }));
6371
+ const measure2 = driver.getContextUsageReport.bind(driver);
6372
+ report = await this.sharedMeasurement(detail, () => measure2({ detail }));
6189
6373
  if (report) {
6190
6374
  this.lastReport = report;
6191
6375
  reportFresh = true;
@@ -6222,11 +6406,11 @@ var ContextUsageCollector = class {
6222
6406
  * lands while a `full` count is running (two panels, a double click) shares
6223
6407
  * it instead of paying for another round of `count_tokens` calls.
6224
6408
  */
6225
- sharedMeasurement(detail, measure) {
6409
+ sharedMeasurement(detail, measure2) {
6226
6410
  const running = this.inflight.get(detail);
6227
6411
  if (running) return running;
6228
6412
  const measurement = withTimeout(
6229
- measure(),
6413
+ measure2(),
6230
6414
  this.deps.measureTimeoutMs ?? DEFAULT_MEASURE_TIMEOUT_MS
6231
6415
  ).finally(() => {
6232
6416
  if (this.inflight.get(detail) === measurement) this.inflight.delete(detail);
@@ -6664,6 +6848,13 @@ var setStateInput = z7.strictObject({
6664
6848
  var lifecycleInput = z7.strictObject({
6665
6849
  phase: z7.enum(["hibernate", "close", "compact"])
6666
6850
  });
6851
+ var reconfigureInputSchema = z7.strictObject({
6852
+ model: z7.string().trim().min(1).optional(),
6853
+ thinking: z7.enum(["adaptive", "enabled", "disabled"]).optional(),
6854
+ effort: z7.enum(["low", "medium", "high", "xhigh", "max"]).optional()
6855
+ }).refine((p) => p.model !== void 0 || p.thinking !== void 0 || p.effort !== void 0, {
6856
+ message: "a reconfigure names at least one of model, thinking, effort"
6857
+ });
6667
6858
  var VALID_LOG_STORE_LEVELS = /* @__PURE__ */ new Set(["debug", "info", "warn", "error"]);
6668
6859
  function buildRunnerCapabilities(handlers) {
6669
6860
  return [
@@ -6838,6 +7029,24 @@ function buildRunnerCapabilities(handlers) {
6838
7029
  }
6839
7030
  return handlers.lifecycle(input);
6840
7031
  }
7032
+ }),
7033
+ defineCapability({
7034
+ name: "runner.reconfigure",
7035
+ displayName: "Reconfigure agent",
7036
+ description: "Change the running agent's model, thinking mode or effort without a restart. Applies from the next turn; a turn in progress finishes on the old settings. Answers no_driver or not_supported when the change cannot apply live.",
7037
+ side: "agent",
7038
+ origin: RUNNER_CAP_ORIGIN,
7039
+ audience: ["runtime"],
7040
+ kind: "effect",
7041
+ input: reconfigureInputSchema,
7042
+ handler: async (input) => {
7043
+ if (!handlers.reconfigure) return notImplemented("runner.reconfigure");
7044
+ const patch = {};
7045
+ if (input.model !== void 0) patch.model = input.model;
7046
+ if (input.thinking !== void 0) patch.thinking = input.thinking;
7047
+ if (input.effort !== void 0) patch.effort = input.effort;
7048
+ return handlers.reconfigure(patch);
7049
+ }
6841
7050
  })
6842
7051
  ];
6843
7052
  }
@@ -6858,6 +7067,8 @@ function wireSessionCapabilities(deps) {
6858
7067
  detachSkillInstance,
6859
7068
  registerLiveAttachedMcp,
6860
7069
  scheduleDriverRestartForToolChanges,
7070
+ getDriver,
7071
+ rememberReconfigure,
6861
7072
  log
6862
7073
  } = deps;
6863
7074
  capabilityRegistry.setRemoteInvoker(remoteCapabilityInvoker);
@@ -6915,6 +7126,11 @@ function wireSessionCapabilities(deps) {
6915
7126
  getCompactionOrchestrator,
6916
7127
  getResourceManager,
6917
7128
  log
7129
+ }),
7130
+ reconfigure: buildReconfigureHandler({
7131
+ getDriver,
7132
+ rememberPatch: rememberReconfigure,
7133
+ log
6918
7134
  })
6919
7135
  });
6920
7136
  for (const cap of runnerCaps) {
@@ -7814,11 +8030,21 @@ async function startAgentServer(opts) {
7814
8030
  })
7815
8031
  );
7816
8032
  const turnStatus = new TurnStatusTracker();
8033
+ const eventGapBuffer = new EventGapBuffer();
7817
8034
  function sendEvent(event) {
7818
8035
  turnStatus.observe(event);
7819
8036
  if (transport.connected) {
7820
8037
  transport.send(event);
8038
+ return;
7821
8039
  }
8040
+ if (!initAcknowledged) return;
8041
+ eventGapBuffer.push(event, { isStale: settledCapabilityCallCheck(event) });
8042
+ }
8043
+ function settledCapabilityCallCheck(event) {
8044
+ if (event.type !== "capability_invoked") return void 0;
8045
+ const { callId } = event;
8046
+ if (!pendingCapabilityCalls.has(callId)) return void 0;
8047
+ return () => !pendingCapabilityCalls.has(callId);
7822
8048
  }
7823
8049
  let initAcknowledged = false;
7824
8050
  let initGeneration = 0;
@@ -7836,6 +8062,20 @@ async function startAgentServer(opts) {
7836
8062
  bootstrapCapabilityRegistry(capabilityRegistry);
7837
8063
  const hostRuntimeCapabilities = /* @__PURE__ */ new Set();
7838
8064
  const pendingCapabilityCalls = /* @__PURE__ */ new Map();
8065
+ function rejectCallsSentToPreviousPeer(trigger) {
8066
+ const unsent = eventGapBuffer.heldCapabilityCallIds();
8067
+ const rejected = rejectPendingCapabilityCallsOnDisconnect(
8068
+ pendingCapabilityCalls,
8069
+ (callId) => unsent.has(callId)
8070
+ );
8071
+ if (rejected > 0) {
8072
+ serverLog.warn(
8073
+ `[serve] platform connection dropped (${trigger}); rejected ${rejected} in-flight capability call(s)`
8074
+ );
8075
+ }
8076
+ }
8077
+ transport.onDisconnect(() => rejectCallsSentToPreviousPeer("disconnect"));
8078
+ transport.onConnect(() => rejectCallsSentToPreviousPeer("replaced connection"));
7839
8079
  const remoteCapabilityInvoker = (name, input, timeoutMs, signal) => {
7840
8080
  const callId = typeof crypto?.randomUUID === "function" ? crypto.randomUUID() : `rcap-${Date.now()}-${Math.floor(Math.random() * 1e9)}`;
7841
8081
  return new Promise((resolve4, reject) => {
@@ -7878,13 +8118,11 @@ async function startAgentServer(opts) {
7878
8118
  t.unref?.();
7879
8119
  });
7880
8120
  async function mintAndPersistAiCredential(args) {
7881
- if (!transport.connected || aiProviderConfigId === void 0) {
7882
- return {
7883
- ok: false,
7884
- code: "not-configured",
7885
- message: "no transport or aiProviderConfigId; standalone runner cannot mediate refresh"
7886
- };
7887
- }
8121
+ const precondition = aiMintPreconditionFailure({
8122
+ connected: transport.connected,
8123
+ configId: aiProviderConfigId
8124
+ });
8125
+ if (precondition) return precondition;
7888
8126
  const targetConfigId = args.configId || aiProviderConfigId;
7889
8127
  try {
7890
8128
  const home = process.env.HOME || homedir();
@@ -8066,6 +8304,13 @@ async function startAgentServer(opts) {
8066
8304
  wsConfig.secrets?.timeoutMs ?? 3e4;
8067
8305
  const diskProfileHasAgentSettings = (p) => !!p && !!(p.driver || p.model || p.thinking || p.effort);
8068
8306
  function buildSessionConfig(secretProvider2, credentialEnv, fallbackConnectorDeclarations) {
8307
+ const wireEffort = toAgentEffort(wireAgentConfig?.effort);
8308
+ if (wireAgentConfig?.effort && !wireEffort) {
8309
+ serverLog.warn("ignoring unknown effort", {
8310
+ effort: wireAgentConfig.effort,
8311
+ source: "agentConfig"
8312
+ });
8313
+ }
8069
8314
  return {
8070
8315
  projectDir: opts.projectDir,
8071
8316
  agentDir,
@@ -8092,7 +8337,7 @@ async function startAgentServer(opts) {
8092
8337
  // entry references. Omitted entirely when nothing resolved.
8093
8338
  ...credentialEnv && Object.keys(credentialEnv).length > 0 ? { credentialEnv } : {},
8094
8339
  ...wireAgentConfig?.thinking ? { thinking: wireAgentConfig.thinking } : {},
8095
- ...wireAgentConfig?.effort ? { effort: wireAgentConfig.effort } : {},
8340
+ ...wireEffort ? { effort: wireEffort } : {},
8096
8341
  // Every claude-sdk driver carries the flow tools, so a run can start mid-turn.
8097
8342
  extraInProcessMcpServers: buildPermanentFlowMcpServers,
8098
8343
  // Protocol v2 `<CAPABILITIES>` block — joins each registered capability's
@@ -8204,6 +8449,7 @@ async function startAgentServer(opts) {
8204
8449
  let managedInitFingerprint;
8205
8450
  let managedInitComplete = false;
8206
8451
  let appliedWireAgentConfigKey;
8452
+ let liveReconfigurePatch;
8207
8453
  let wireConnectorDeclarationsApplied = false;
8208
8454
  const stagedSkillDirs = /* @__PURE__ */ new Map();
8209
8455
  const withSkillFsLock = createSerialLock();
@@ -8824,6 +9070,7 @@ async function startAgentServer(opts) {
8824
9070
  async function cleanup() {
8825
9071
  if (managedHost) managedBootstrapClosed = true;
8826
9072
  initAcknowledged = false;
9073
+ eventGapBuffer.clear();
8827
9074
  try {
8828
9075
  await Promise.race([
8829
9076
  sessionReady,
@@ -8946,6 +9193,12 @@ async function startAgentServer(opts) {
8946
9193
  credentialEnv,
8947
9194
  fallbackConnectorDeclarations
8948
9195
  );
9196
+ const incomingWireAgentConfigKey = wireAgentConfig ? JSON.stringify(wireAgentConfig) : void 0;
9197
+ liveReconfigurePatch = carryLiveReconfigure(
9198
+ sessionConfig,
9199
+ liveReconfigurePatch,
9200
+ incomingWireAgentConfigKey !== appliedWireAgentConfigKey
9201
+ );
8949
9202
  let needsWireFallbackRecreate = false;
8950
9203
  const agentSessionExistedBeforeThisInit = !!agentSession;
8951
9204
  if (!agentSession) {
@@ -8996,6 +9249,11 @@ async function startAgentServer(opts) {
8996
9249
  detachSkillInstance,
8997
9250
  registerLiveAttachedMcp,
8998
9251
  scheduleDriverRestartForToolChanges,
9252
+ getDriver: () => driver ?? null,
9253
+ rememberReconfigure: (patch) => {
9254
+ liveReconfigurePatch = { ...liveReconfigurePatch, ...patch };
9255
+ applyReconfigurePatch(sessionConfig, patch);
9256
+ },
8999
9257
  log
9000
9258
  });
9001
9259
  return { needsWireFallbackRecreate, needsWireAgentConfigRecreate };
@@ -9635,7 +9893,15 @@ async function startAgentServer(opts) {
9635
9893
  awaitSwap: () => driverSwapGate.awaitSwap(),
9636
9894
  answer: cmd.answer,
9637
9895
  question: cmd.question,
9638
- requestId: cmd.requestId
9896
+ requestId: cmd.requestId,
9897
+ // Tells every other attached client the question is answered, so none
9898
+ // keeps a stale question card or a shut status gate.
9899
+ onAnswered: () => sendEvent({
9900
+ type: "question_reply",
9901
+ answer: cmd.answer,
9902
+ ...cmd.question !== void 0 ? { question: cmd.question } : {},
9903
+ ...cmd.requestId !== void 0 ? { requestId: cmd.requestId } : {}
9904
+ })
9639
9905
  });
9640
9906
  if (routed === "answered") return;
9641
9907
  if (!driver.acceptsReplyAsPrompt) return;
@@ -9994,9 +10260,28 @@ async function startAgentServer(opts) {
9994
10260
  replayed: true
9995
10261
  });
9996
10262
  });
10263
+ transport.onConnect(() => {
10264
+ if (!eventGapBuffer.hasPending) return;
10265
+ if (!initAcknowledged || sessionReadyOutcome === "rejected") {
10266
+ const discarded = eventGapBuffer.clear();
10267
+ serverLog.warn(
10268
+ `[serve] discarded ${discarded} event(s) buffered while disconnected: the init they belong to is no longer acknowledged`
10269
+ );
10270
+ return;
10271
+ }
10272
+ const { events, dropped, stale } = eventGapBuffer.drain();
10273
+ for (const event of events) transport.send(event);
10274
+ serverLog.warn(
10275
+ `[serve] flushed ${events.length} event(s) buffered while the platform was disconnected; dropped ${dropped} over the buffer cap, withheld ${stale} settled capability call(s)`
10276
+ );
10277
+ });
9997
10278
  transport.onConnect(() => {
9998
10279
  sendEvent(turnStatus.snapshot());
9999
10280
  });
10281
+ transport.onConnect(() => {
10282
+ if (!initAcknowledged || managedCodex || aiProviderConfigId === void 0) return;
10283
+ aiCredentialRefreshScheduler.ensureArmed();
10284
+ });
10000
10285
  transport.onConnect(() => {
10001
10286
  if (managedHost && !managedBootstrapClosed)
10002
10287
  sendEvent({
@@ -10211,6 +10496,6 @@ function touchSession(state) {
10211
10496
  return { ...state, updatedAt: (/* @__PURE__ */ new Date()).toISOString() };
10212
10497
  }
10213
10498
 
10214
- export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, DEFAULT_FLOW_MUTATE_CONNECTOR_WAIT_MS, MOUNT_LIST_MAX_DEPTH, MOUNT_LIST_MAX_ENTRIES, MOUNT_READ_DEADLINE_FACTOR, MOUNT_STAT_BUDGET_MS, MOUNT_STAT_MAX_ENTRIES, MOUNT_TREE_OP_DEADLINE_FACTOR, MarkdownStreamer, PreInitRingSink, ResourceOperationError, SESSION_ROOT_WRITABLE_DIRS, SESSION_ROOT_WRITABLE_FILES, WS_AUTH_TOKEN_ENV, WS_AUTH_TOKEN_FILE_ENV, agentDefinitionExists, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildClientCapabilityHandler, buildConnectorTokenMediator, buildContextSection, buildEnvironmentSection, buildResourcesAvailablePayload, buildStoreSnapshotReplay, builtinCapabilities, capabilityLogInstance, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, computeDirectoryTotals, connectorRefreshKind, createAgentSession, createFlowConnectorReadiness, createManagedCodexSubpromptDriver, createSessionStimulusBus, defineCapability, deleteSession, dispatchResourceRequest, dispatchRunnerCapabilityInvocation, emitSystemPromptComposed, ensureClaudeSettingsDisablesConnectors, ensureGitConfigInclude, executeConnectorMutate, extractClaudeAiOauthExpiresAt, flowStartNeedsDriverRestart, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, handleSessionRootResourceRequest, hasNonTerminalFlow, hostOpResumeStimulus, installPreInitRingSink, isSessionRootPathAllowed, isTerminalFlowStatus, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadManagedCodexHostConfig, loadSession, loadSessionById, mcpAuthSecretKey, newSession, nulTailPaddingLength, pickFlowToolTarget, pickRepointedManager, planFlowMutate, prepareCodexTools, reconcilePendingDecisions, registerActiveFlow, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityCallTimeoutMs, resolveCapabilityResult, resolveComposition, resolveFlowMutateConnectorWaitMs, resolveMixin, runAgentChat, saveSession, setCurrentSession, setUpFlowConnector, startAgentServer, stimulusFromMetas, supportsLiveToolUpdates, takeRunnerWsAuthToken, touchSession, validateInputResponse, writeClaudeCodeCredentialsFile };
10215
- //# sourceMappingURL=chunk-ZJEQFNKE.js.map
10216
- //# sourceMappingURL=chunk-ZJEQFNKE.js.map
10499
+ export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, DEFAULT_FLOW_MUTATE_CONNECTOR_WAIT_MS, MOUNT_LIST_MAX_DEPTH, MOUNT_LIST_MAX_ENTRIES, MOUNT_READ_DEADLINE_FACTOR, MOUNT_STAT_BUDGET_MS, MOUNT_STAT_MAX_ENTRIES, MOUNT_TREE_OP_DEADLINE_FACTOR, MarkdownStreamer, PreInitRingSink, ResourceOperationError, SESSION_ROOT_WRITABLE_DIRS, SESSION_ROOT_WRITABLE_FILES, WS_AUTH_TOKEN_ENV, WS_AUTH_TOKEN_FILE_ENV, agentDefinitionExists, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildClientCapabilityHandler, buildConnectorTokenMediator, buildContextSection, buildEnvironmentSection, buildResourcesAvailablePayload, buildStoreSnapshotReplay, builtinCapabilities, capabilityLogInstance, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, computeDirectoryTotals, connectorRefreshKind, createAgentSession, createFlowConnectorReadiness, createManagedCodexSubpromptDriver, createSessionStimulusBus, defineCapability, deleteSession, dispatchResourceRequest, dispatchRunnerCapabilityInvocation, emitSystemPromptComposed, ensureClaudeSettingsDisablesConnectors, ensureGitConfigInclude, executeConnectorMutate, extractClaudeAiOauthExpiresAt, flowStartNeedsDriverRestart, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, handleSessionRootResourceRequest, hasNonTerminalFlow, hostOpResumeStimulus, installPreInitRingSink, isSessionRootPathAllowed, isTerminalFlowStatus, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadManagedCodexHostConfig, loadSession, loadSessionById, mcpAuthSecretKey, newSession, nulTailPaddingLength, pickFlowToolTarget, pickRepointedManager, planFlowMutate, prepareCodexTools, reconcilePendingDecisions, registerActiveFlow, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, rejectPendingCapabilityCallsOnDisconnect, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityCallTimeoutMs, resolveCapabilityResult, resolveComposition, resolveFlowMutateConnectorWaitMs, resolveMixin, runAgentChat, saveSession, setCurrentSession, setUpFlowConnector, startAgentServer, stimulusFromMetas, supportsLiveToolUpdates, takeRunnerWsAuthToken, touchSession, validateInputResponse, writeClaudeCodeCredentialsFile };
10500
+ //# sourceMappingURL=chunk-IAWXUW6C.js.map
10501
+ //# sourceMappingURL=chunk-IAWXUW6C.js.map