@makaio/framework 1.0.0-dev-1783439621927 → 1.0.0-dev-1783477169057

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 (116) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/adapters/config/index.d.mts +1 -1
  3. package/dist/adapters/index.d.mts +2 -2
  4. package/dist/adapters/index.mjs +1 -1
  5. package/dist/adapters/node.d.mts +1 -1
  6. package/dist/adapters/node.mjs +4 -4
  7. package/dist/{base-orchestrator-ODRyDBzu.d.mts → base-orchestrator-J1WKAUkF.d.mts} +24 -3
  8. package/dist/bus/index.d.mts +22 -22
  9. package/dist/bus/index.mjs +1 -1
  10. package/dist/{client-n0OJiTt1.mjs → client-l1Rq5p6X.mjs} +1 -1
  11. package/dist/clients/index.d.mts +30 -0
  12. package/dist/clients/index.mjs +2 -2
  13. package/dist/contracts/adapter/index.d.mts +1 -1
  14. package/dist/contracts/artifact/index.d.mts +1 -1
  15. package/dist/contracts/canonical-model/index.d.mts +1 -1
  16. package/dist/contracts/client/index.d.mts +2 -2
  17. package/dist/contracts/client/index.mjs +1 -1
  18. package/dist/contracts/config/index.d.mts +6 -6
  19. package/dist/contracts/extension/index.d.mts +2 -2
  20. package/dist/contracts/facet/index.d.mts +1 -1
  21. package/dist/contracts/harness/index.d.mts +1 -1
  22. package/dist/contracts/index.d.mts +199 -199
  23. package/dist/contracts/index.mjs +1 -1
  24. package/dist/contracts/materialization/index.d.mts +3 -3
  25. package/dist/contracts/provider/index.d.mts +1 -1
  26. package/dist/contracts/session/index.d.mts +2 -2
  27. package/dist/contracts/skill/index.d.mts +1 -1
  28. package/dist/contracts/workflow/index.d.mts +2 -2
  29. package/dist/{definition-DpkfJi8v.d.mts → definition-DePb3ke-.d.mts} +1 -1
  30. package/dist/{index-BwGfdbI0.d.mts → index-2fK9iSHI.d.mts} +9 -9
  31. package/dist/{index-D7rWAEY0.d.mts → index-B-6DtLLz.d.mts} +1 -1
  32. package/dist/{index-DTBQOCar.d.mts → index-BMbmoarE.d.mts} +16 -16
  33. package/dist/{index-DS6kxiFl.d.mts → index-BX1MxwFr.d.mts} +28 -28
  34. package/dist/{index-CqCe7Phc.d.mts → index-BcwOnvUh.d.mts} +6 -6
  35. package/dist/{index-Cyi7y_aG.d.mts → index-BeouVICp.d.mts} +24 -24
  36. package/dist/{index-C8k2f_E0.d.mts → index-BjO4Zkap.d.mts} +1 -1
  37. package/dist/{index-BvjLe_w9.d.mts → index-Bl42SCEI.d.mts} +8 -8
  38. package/dist/{index-B5Uczo3R.d.mts → index-CA-AJbq6.d.mts} +28 -28
  39. package/dist/{index-Dtb2cVJz.d.mts → index-CQQcnpev.d.mts} +11 -11
  40. package/dist/{index-D7Fu3375.d.mts → index-C_xQM96Y.d.mts} +380 -380
  41. package/dist/{index-DFK3tpEY.d.mts → index-CwFSL4xI.d.mts} +75 -12
  42. package/dist/{index-WHUV7neB.d.mts → index-DMz-2ACU.d.mts} +105 -105
  43. package/dist/{index-CwHP8Jxs.d.mts → index-DScUb-hF.d.mts} +190 -2
  44. package/dist/{index-CYHWOXUm.d.mts → index-Di84JjS0.d.mts} +1 -1
  45. package/dist/{index-DmJ-OpTD.d.mts → index-Dv4oGVZK.d.mts} +335 -335
  46. package/dist/{index-DLNRgZPo2.d.mts → index-j_X5xefv2.d.mts} +26 -26
  47. package/dist/{index-BIZeIA5k.d.mts → index-uM4KZopE.d.mts} +8 -8
  48. package/dist/kernel/extension/index.d.mts +1 -1
  49. package/dist/kernel/index.d.mts +2 -2
  50. package/dist/kernel/observability/index.d.mts +1 -1
  51. package/dist/{namespace-C74bbsdZ.d.mts → namespace-3yGm4WF9.d.mts} +2 -2
  52. package/dist/{namespace-DRXQyBe0.d.mts → namespace-Boh42UoL.d.mts} +20 -20
  53. package/dist/{namespace-BLER-Qom.d.mts → namespace-COEUMuHL.d.mts} +154 -154
  54. package/dist/{namespace-CGxFYDlK.d.mts → namespace-D94HrTtq.d.mts} +38 -38
  55. package/dist/{namespace-D4Uf5Mw_.d.mts → namespace-OLAh9wHU.d.mts} +9 -9
  56. package/dist/{namespace-JFzrlNs4.d.mts → namespace-TPbegIMi.d.mts} +8 -8
  57. package/dist/package.json +1 -1
  58. package/dist/{schema-B9goOieO.d.mts → schema-B5vHi7Uu.d.mts} +1 -1
  59. package/dist/{schemas-CurUbHy4.d.mts → schemas-BemsLc_V.d.mts} +4 -4
  60. package/dist/{schemas-B_t6oOK-.d.mts → schemas-CDBn9MTz.d.mts} +154 -154
  61. package/dist/{schemas-CW6YsPT4.d.mts → schemas-CscdPqCt.d.mts} +3 -3
  62. package/dist/{schemas-DXeGCbJ9.d.mts → schemas-D512XweP.d.mts} +5 -5
  63. package/dist/{schemas-9S9Y9PHT2.d.mts → schemas-DOV4UouN2.d.mts} +10 -10
  64. package/dist/{schemas-DnmbwE_V.d.mts → schemas-DWfo0wp4.d.mts} +7 -7
  65. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  66. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  67. package/dist/services/agent-runtime/index.d.mts +2 -2
  68. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  69. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  70. package/dist/services/context-rules/index.d.mts +11 -11
  71. package/dist/services/execution-target/index.d.mts +1 -1
  72. package/dist/services/filesystem/namespace.d.mts +6 -6
  73. package/dist/services/filesystem/schemas.d.mts +3 -3
  74. package/dist/services/harness/index.d.mts +3 -3
  75. package/dist/services/index.d.mts +130 -130
  76. package/dist/services/index.mjs +1 -1
  77. package/dist/services/log-import/browser.d.mts +2 -2
  78. package/dist/services/log-import/index.d.mts +2 -2
  79. package/dist/services/log-import/index.mjs +2 -2
  80. package/dist/services/log-import/log-import.d.mts +1 -1
  81. package/dist/services/log-import/namespace.d.mts +2 -2
  82. package/dist/services/log-import/schemas.d.mts +1 -1
  83. package/dist/services/preferences/index.d.mts +2 -2
  84. package/dist/services/preferences/schemas.d.mts +1 -1
  85. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  86. package/dist/services/session/index.d.mts +6 -6
  87. package/dist/services/session/index.mjs +1 -1
  88. package/dist/services/session/messages/namespace.d.mts +1 -1
  89. package/dist/services/session/session-events/namespace.d.mts +1 -1
  90. package/dist/services/session/storage/namespace.d.mts +1 -1
  91. package/dist/services/session/storage/schema.d.mts +1 -1
  92. package/dist/services/session/testing/index.mjs +1 -1
  93. package/dist/services/settings/namespace.d.mts +13 -13
  94. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  95. package/dist/services/subagent-template/index.d.mts +1 -1
  96. package/dist/services/subagent-template/schemas.d.mts +1 -1
  97. package/dist/services/tool-approval/index.mjs +1 -1
  98. package/dist/services/tools/index.mjs +1 -1
  99. package/dist/services/tray-menu/index.d.mts +2 -2
  100. package/dist/services/tray-menu/namespace.d.mts +1 -1
  101. package/dist/services/tray-menu/schemas.d.mts +1 -1
  102. package/dist/session-CoGaTin6.mjs +69 -0
  103. package/dist/{storage-namespace-BvRF22by.d.mts → storage-namespace-Di1A3DMm.d.mts} +10 -10
  104. package/dist/{tool-approval-service-BIbUSuqg.mjs → tool-approval-service-BNXgr-az.mjs} +1 -1
  105. package/dist/tools-BaO4GYj0.mjs +1 -0
  106. package/dist/{transition-DYorNHZu.d.mts → transition-Bbjlwv5K.d.mts} +1 -1
  107. package/dist/{types-BWduCvRU.d.mts → types-CNkx2awa.d.mts} +1 -1
  108. package/dist/{types-N_BOtTqt.d.mts → types-D7W0ntGr.d.mts} +16 -0
  109. package/dist/{types-9XCB1aPK.d.mts → types-jruUn6oW.d.mts} +254 -254
  110. package/dist/ui-kernel/index.d.mts +4 -4
  111. package/dist/ui-kernel/pages/namespace.d.mts +4 -4
  112. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  113. package/dist/workflow-engine/index.d.mts +19 -19
  114. package/package.json +1 -1
  115. package/dist/session-CZUrp7gC.mjs +0 -69
  116. package/dist/tools-Yz8XyiwA.mjs +0 -1
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "version": 1,
3
- "fingerprint": "c014afb28c77fc7de84183ee58d4c899fbecc606b5427c1160f53565be4925a9",
4
- "builtAt": "2026-07-07T15:54:56.580Z"
3
+ "fingerprint": "bfc16b81a5b4ac4bf666afadba3055a595d4df33aa47323440b2cff4ab044324",
4
+ "builtAt": "2026-07-08T02:20:31.739Z"
5
5
  }
@@ -1,4 +1,4 @@
1
- import { g as BaseAgentConnectorConfig } from "../../types-N_BOtTqt.mjs";
1
+ import { g as BaseAgentConnectorConfig } from "../../types-D7W0ntGr.mjs";
2
2
  import { z } from "zod";
3
3
  import { IMakaioBus, MakaioBusContext } from "@makaio/framework/bus";
4
4
  import { AIModelSchema, ProtocolId, ProviderContext } from "@makaio/framework/contracts";
@@ -1,5 +1,5 @@
1
- import { A as MessageHandle, B as ReasoningLevelMap, C as SendMessageRequestPayload, D as IAdapterConfigFactory, E as ConfigFactoryInput, F as MessageState, H as LedgerSessionContext, I as ProcessingState, L as SendMessageOptions, M as NormalizedMessageInput, N as normalizeMessageInput, O as AIAgentConnector, P as MessageResult, R as AIModel, S as NormalizedCallUsage, T as StartAgentOptions, U as SessionToolLedger, V as ISessionToolLedger, W as ToolLedgerEntry, _ as ConnectorSendMessageOptions, a as AgentCwdChangeRequestPayload, b as ExecutionContext, c as AgentInterruptRequestPayload, d as AgentMcpServersSetResponsePayload, f as AgentModelChangeRequestPayload, g as BaseAgentConnectorConfig, h as AgentStartResult, i as AgentCredentialChangeResponsePayload, j as markCompletedWithFinalResult, k as MessageDeliveryMode, l as AgentInterruptResponsePayload, m as AgentSendMessageOptions, n as AgentContext, o as AgentCwdChangeResponsePayload, p as AgentModelChangeResponsePayload, r as AgentCredentialChangeRequestPayload, s as AgentIdentity, t as AIAgentConfig, u as AgentMcpServersSetRequestPayload, v as ConnectorStartOptions, w as SendMessageResponsePayload, x as GetCapabilitiesResponsePayload, y as ContextWindowInput, z as AIReasoningLevel } from "../types-N_BOtTqt.mjs";
2
- import { S as toImportSegment, _ as LogImporter, a as CompactionMetadata, b as ProcessLogFileResult, c as ExternalToolIdentifiers, d as ImportMetadata, f as ImportSegment, g as LogImportTestConfig, h as LogImportSessionContext, l as ExternalToolMeta, m as ImportSegmentTurn, n as LogOrchestratorConfig, o as DiscoveryMetadata, p as ImportSegmentLineage, r as ParseFileResult, s as ExternalToolIdentifier, u as ImportCursorPosition, v as LogImporterConfig, x as StorageMessagePayload, y as NormalizedEvent } from "../base-orchestrator-ODRyDBzu.mjs";
1
+ import { A as MessageHandle, B as ReasoningLevelMap, C as SendMessageRequestPayload, D as IAdapterConfigFactory, E as ConfigFactoryInput, F as MessageState, H as LedgerSessionContext, I as ProcessingState, L as SendMessageOptions, M as NormalizedMessageInput, N as normalizeMessageInput, O as AIAgentConnector, P as MessageResult, R as AIModel, S as NormalizedCallUsage, T as StartAgentOptions, U as SessionToolLedger, V as ISessionToolLedger, W as ToolLedgerEntry, _ as ConnectorSendMessageOptions, a as AgentCwdChangeRequestPayload, b as ExecutionContext, c as AgentInterruptRequestPayload, d as AgentMcpServersSetResponsePayload, f as AgentModelChangeRequestPayload, g as BaseAgentConnectorConfig, h as AgentStartResult, i as AgentCredentialChangeResponsePayload, j as markCompletedWithFinalResult, k as MessageDeliveryMode, l as AgentInterruptResponsePayload, m as AgentSendMessageOptions, n as AgentContext, o as AgentCwdChangeResponsePayload, p as AgentModelChangeResponsePayload, r as AgentCredentialChangeRequestPayload, s as AgentIdentity, t as AIAgentConfig, u as AgentMcpServersSetRequestPayload, v as ConnectorStartOptions, w as SendMessageResponsePayload, x as GetCapabilitiesResponsePayload, y as ContextWindowInput, z as AIReasoningLevel } from "../types-D7W0ntGr.mjs";
2
+ import { S as toImportSegment, _ as LogImporter, a as CompactionMetadata, b as ProcessLogFileResult, c as ExternalToolIdentifiers, d as ImportMetadata, f as ImportSegment, g as LogImportTestConfig, h as LogImportSessionContext, l as ExternalToolMeta, m as ImportSegmentTurn, n as LogOrchestratorConfig, o as DiscoveryMetadata, p as ImportSegmentLineage, r as ParseFileResult, s as ExternalToolIdentifier, u as ImportCursorPosition, v as LogImporterConfig, x as StorageMessagePayload, y as NormalizedEvent } from "../base-orchestrator-J1WKAUkF.mjs";
3
3
  import { z } from "zod";
4
4
  import * as _$_makaio_core0 from "@makaio/framework/core";
5
5
  import { CreateBusNamespaceOptions, ExtractSubjectPayload, FilterablePayloadIntersection, HandlerForSubjectDefinition, RegistrableBusNamespaceDefinition, RequestContext, SchemaRecord, ScopedSubjectDefinition, SubjectDefinition, SubjectRecordFromSchemaRecord } from "@makaio/framework/core";
@@ -8,4 +8,4 @@ import{o as e,t}from"../chunk-DTipWd-i.mjs";import{t as n}from"../cleanEnvForAda
8
8
 
9
9
  `)}function Ne(e){let t=new Set(e),n={hasAll:e=>e.every(e=>t.has(e)),hasAny:e=>e.some(e=>t.has(e))};for(let t of e){let e=t.split(`:`).map((e,t)=>t===0?e:e.charAt(0).toUpperCase()+e.slice(1)).join(``);n[e]=!0}return n}function L(e){if(typeof e==`string`)return{role:`user`,blocks:[{type:`text`,content:e}],message:e};let t=Array.isArray(e.blocks)?e.blocks:[e.blocks],n=t.find(e=>e.type===`text`);return{role:e.role??`user`,blocks:t,message:n?.content}}function Pe(e,t){return{discriminator:e,handlers:t}}function Fe(e,t){return{discriminator:e,handlers:t}}async function Ie(e,t,n){let r=Array.isArray(e)?e:[e];for(let e of r){let r=e[t.discriminator],i=t.handlers[r];i&&await i(e,n)}}function Le(e,t,n){let r=Array.isArray(e)?e:[e];for(let e of r){let r=e[t.discriminator],i=t.handlers[r];if(i&&i(e,n)instanceof Promise)throw Error(`processDiscriminatedItemsSync: Handler for '${r}' returned a Promise. Use processDiscriminatedItems (async) instead, or ensure all handlers are synchronous.`)}}function R(e){return e?.trim()||void 0}function Re(e){return[...new Set(e.flatMap(e=>e.credentialEnvVars?Object.values(e.credentialEnvVars):[]))]}function z(e,t=e?[e]:[]){let n={},r=Re(t);if(e?.credentialEnvVars)for(let[t,r]of Object.entries(e.credentialEnvVars))n[t]=pe.parse(`env:${r}`);return{providerConfigId:`test-provider-config-id`,definitionId:e?.id??`test`,credentialRefs:n,...e?.credentialEnvVars?{credentialEnvVars:{...e.credentialEnvVars}}:void 0,...r.length>0?{ambientCredentialEnvVars:r}:{},...e?.endpoints?{endpointOverrides:{...e.endpoints}}:{}}}function ze(e,t,n,r=n?[n]:[]){return{...e,bus:t,agentId:crypto.randomUUID(),adapterId:crypto.randomUUID(),adapterName:e?.adapterName??`test-adapter`,providerContext:e?.providerContext??z(n,r)}}const Be=`MAKAIO_CONFORMANCE_PROVIDER`,Ve=`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,He=`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,B=`MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS`;function Ue(e){let t=[],n=new Set;for(let r of e)n.has(r.id)||(n.add(r.id),t.push(r));return t}function We(e){let t=R(e);if(!t)return[];let n;try{n=JSON.parse(t)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${B} must contain valid JSON: ${t}`,{cause:e})}if(!Array.isArray(n))throw Error(`${B} must be a JSON array`);for(let[e,t]of n.entries())if(!t||typeof t!=`object`||typeof t.id!=`string`)throw Error(`${B}[${e}] must be a provider object with an id`);return n}function Ge(e,t,n,r){let i=new Map;for(let e of[...r,...n])i.set(e.id,e);let a=t.map(e=>i.get(e)).filter(e=>!!e),o=t.filter(e=>!i.has(e));if(o.length>0)throw Error(`[${e}] Conformance provider catalog is missing provider definitions: ${o.join(`, `)}. Run through yarn test:conformance so provider contributions are loaded.`);return Ue(a)}function V(e,t,n,r,i){if(r)return r;let a=n===`primary`?`fastModel/defaultModel`:`defaultModel`;throw Error(`[${e}] Provider '${t.id}' cannot be used for conformance tests: missing ${a}. Set ${i} or add a model to the provider definition.`)}function Ke(e){let t=e.readEnv??(e=>process.env[e]),n=e.providerEnvVar??`MAKAIO_CONFORMANCE_PROVIDER`,r=e.primaryModelEnvVar??`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,i=e.secondaryModelEnvVar??`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,a=We(t(B)),o=Ge(e.adapterName,e.providerIds,e.providerDefinitions??[],a),s=R(t(n)),c=s??e.defaultProviderId,l=o.find(e=>e.id===c);if(!l){let t=o.map(e=>e.id).join(`, `);throw Error(`[${e.adapterName}] Unknown conformance provider '${c}' from ${s?n:`defaultProviderId`}. Available providers: ${t}`)}let u=V(e.adapterName,l,`primary`,R(t(r))??l.primaryTestModel??l.fastModel??l.defaultModel,r),d=V(e.adapterName,l,`secondary`,R(t(i))??l.secondaryTestModel??l.defaultModel,i);return{provider:l,providers:o,providerContext:z(l,o),primaryModel:{definitionId:l.id,modelName:u,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:void 0},secondaryModel:{definitionId:l.id,modelName:d,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:void 0}}}async function qe(e,t,n,r){let i=n===void 0?await e.requestOptional(O.getDefault,{adapterName:t,clientId:r}):await e.requestOptional(O.get,{id:n});return i.handled?i.data.nativeTools.disabled:[]}function Je(e){switch(e.type){case`text`:return e.content;case`image`:return`[Image]`;case`document`:return`[Document]`;case`attachment`:return`[Attachment: ${e.displayName??e.fileName}]`;case`reasoning`:return`[Reasoning]\n${e.content}`;case`tool_call`:return`[Tool: ${e.name}]\n${JSON.stringify(e.args,null,2)}`;case`tool_output`:return`[Tool ${e.isError?`Error`:`Result`}]\n${e.output}`}}function Ye(e){return e.map(e=>{let t=e.role??`user`;return`${t.charAt(0).toUpperCase()+t.slice(1)}: ${(Array.isArray(e.blocks)?e.blocks:[e.blocks]).map(Je).join(`
10
10
  `)}`}).join(`
11
- `)}function Xe(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function Ze(e){switch(e.type){case`text`:return e.content;case`reasoning`:return e.content;case`tool_call`:return`[Tool: ${e.name}]\n${JSON.stringify(e.args)}`;case`tool_output`:return`[Tool ${e.isError?`Error`:`Result`} ${e.toolCallId}]\n${e.output}`;case`image`:return`[Image]`;case`document`:return`[Document]`;case`attachment`:return`[Attachment: ${e.displayName?.trim()?e.displayName:e.fileName||`Attachment`}]`;default:return Xe(e)}}function H(e,t,n,r,i){let a=e??(i?t:void 0);if(!a)throw Error(`[${r}] toGlobalToolApproval: ${n} must come from tool approval context`+(i?` or trusted payload`:``));return a}function U(e,t,n,r=!1){return H(e,t,`sessionId`,n,r)}function Qe(e,t,n,r={}){let i=r.allowPayloadIdentityFallback??!1;if(i){let e=[t.agentId,t.adapterId,t.adapterName,t.adapterSessionId],r=e.filter(Boolean).length;if(r>0&&r<e.length)throw Error(`[${n}] toGlobalToolApproval: context must supply all four identity fields (agentId, adapterId, adapterName, adapterSessionId) or none — partial context with allowPayloadIdentityFallback creates a mixed-source identity tuple`)}let a=U(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:H(t.agentId,e.agentId,`agentId`,n,i),adapterId:H(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:H(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:H(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const $e={request:D.request.extend({sessionId:C.string().optional()}),response:D.response};function et(e,t,n){return function(r,i,a){return r.on(e,async e=>{try{let r=typeof i==`function`?await i():i,o=t(e.payload,r),s=await a.request(E.toolApprove,o);e.setResult(n(s))}catch(t){console.error(`[createToolApprovalHandler] Tool approval request failed:`,t);let r=t instanceof Error?`: ${t.message}`:``;e.setResult(n({action:`deny`,message:`Tool approval request failed${r}`,shouldAbort:!0}))}})}}function W(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function tt(e){let t=W(e);return t.startsWith(`text/`)?!0:[`application/json`,`application/xml`,`application/sql`,`application/graphql`,`application/javascript`,`application/typescript`,`application/x-yaml`,`application/toml`].includes(t)}function nt(e){if(!e.credentialEnvVars)return;let t={};for(let[n,r]of Object.entries(e.credentialEnvVars)){let e=process.env[r];e!==void 0&&(t[n]=e)}return Object.keys(t).length>0?t:void 0}function G(){return{providerConfigId:`sentinel`,definitionId:`unresolved`,credentialRefs:{}}}var rt=class{abortController;terminated=!1;constructor(e){this.abortController=e??new AbortController}get signal(){return this.abortController.signal}get isTerminated(){return this.terminated}abort(e){this.terminated||(this.terminated=!0,this.abortController.abort(),e&&Promise.resolve(e()).catch(e=>{console.error(`Error during session cleanup:`,e)}))}onAbort(e){this.abortController.signal.addEventListener(`abort`,e)}},it=class{queue=[];enqueue(e){if(e.deliveryMode===`replace`){for(let t of this.queue)t.state===`queued`&&(t.supersededBy=e.messageId,t.markCompleted({outcome:`superseded`,supersededBy:e.messageId}));this.removeSuperseded()}if(e.internalRetry&&e.deliveryMode===`enqueue`){this.enqueueInternalRetry(e);return}this.queue.push(e)}enqueueInternalRetry(e){let t=this.queue.findIndex(e=>e.deliveryMode!==`immediate`&&!e.internalRetry);if(t===-1){this.queue.push(e);return}this.queue.splice(t,0,e)}removeSuperseded(){for(let e=this.queue.length-1;e>=0;e--)this.queue[e].supersededBy&&this.queue.splice(e,1)}dequeue(){return this.queue.shift()}peek(){return this.queue[0]}isEmpty(){return this.queue.length===0}size(){return this.queue.length}clear(){this.queue.length=0}findImmediate(){return this.queue.find(e=>e.deliveryMode===`immediate`)}removeImmediate(e){let t=this.queue.indexOf(e);t>=0&&this.queue.splice(t,1)}drainEnqueued(){let e=[];for(let t=this.queue.length-1;t>=0;t--)this.queue[t].deliveryMode===`enqueue`&&e.unshift(this.queue.splice(t,1)[0]);return e}};async function K(e,t){let n=t.getCurrentTurn(),r=t.extractContent??at;if(n?.canAcceptImmediate()){let i=e.findImmediate();if(i)if(e.removeImmediate(i),(await n.pause()).turnEnded)i.markCompleted({outcome:`rejected`});else{let a=n.getMessageHandle(),o=e.drainEnqueued(),s=[];a&&!a.isProcessed&&(s.push(r(a)),a.supersededBy=i.messageId,a.markCompleted({outcome:`superseded`,supersededBy:i.messageId}));for(let e of o)s.push(r(e)),e.supersededBy=i.messageId,e.markCompleted({outcome:`merged`,mergedInto:i.messageId});let c=t.collectMergeExtra?.(a,o);return await t.onBeforeImmediateTurn?.(),await t.startNewTurn(i,s,c),!0}}let i=e.peek();return(!n||n.isCompleted()||i?.internalRetry===!0&&n.getMessageHandle().isProcessed)&&i?i.deliveryMode===`immediate`&&n?.isCompleted()?(e.dequeue(),i.markCompleted({outcome:`rejected`}),K(e,t)):(e.dequeue(),await t.startNewTurn(i),!0):!1}function at(e){return e.message.message}const ot=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function st(e,t){if(e===t)return null;let n=[];switch(t){case`processing_started`:break;case`turn_started`:([`idle`,`processing_finished`,`paused`].includes(e)||e===`active`)&&n.push(`processing_started`);break;case`step_started`:[`idle`,`processing_finished`,`paused`].includes(e)||e===`active`?n.push(`processing_started`,`turn_started`):[`processing_started`,`turn_finished`].includes(e)&&n.push(`turn_started`);break;case`step_finished`:break;case`turn_finished`:e===`step_started`&&n.push(`step_finished`);break;case`processing_finished`:e===`step_started`?n.push(`step_finished`,`turn_finished`):[`turn_started`,`step_finished`].includes(e)&&n.push(`turn_finished`);break}return{isCompletionState:ot.includes(t),statesToEmit:[...n,t]}}var q=class{messageId;message;deliveryMode;responseSchema;internalRetry;deferredCompletion;deferredAcknowledgement;state;isAcknowledged=void 0;completionResult=void 0;completionStarted=!1;completionTransforms=[];completionObservers=[];mergedInto;mergedFrom;supersededBy;deferredAdapterSessionId=new N;_adapterSessionId;_messageHistory;_cacheStrategy;_turnContext;constructor(e,t,n,r,i,a,o=!1,s){this.messageId=e,this.message=t,this.deliveryMode=n,this.responseSchema=a,this.internalRetry=o,this.deferredCompletion=new N,this.deferredAcknowledgement=new N,this.state=`queued`,this._messageHistory=r,this._cacheStrategy=s,this._turnContext=i}get messageHistory(){return this._messageHistory}set messageHistory(e){this._messageHistory=e}get cacheStrategy(){return this._cacheStrategy}set cacheStrategy(e){this._cacheStrategy=e}get turnContext(){return this._turnContext}set turnContext(e){this._turnContext=e}get adapterSessionId(){return this._adapterSessionId}set adapterSessionId(e){e&&!this._adapterSessionId&&(this._adapterSessionId=e,this.deferredAdapterSessionId.resolve(e))}waitForAdapterSessionId(){return this._adapterSessionId?Promise.resolve(this._adapterSessionId):this.deferredAdapterSessionId.getPromise()}get isProcessed(){return this.state===`completed`||this.state===`cancelled`}getState(){return this.state}updateState(e){this.state=e}async cancel(){return this.updateState(`cancelled`),this.completionStarted=!0,this.completionResult={outcome:`cancelled`},this.deferredAcknowledgement.reject(Error(`Message cancelled`)),this.deferredCompletion.resolve(this.completionResult),!0}markAcknowledged(e=!0){this.isAcknowledged===void 0&&(this.isAcknowledged=e,this.updateState(`acknowledged`),this.deferredAcknowledgement.resolve(e))}addCompletionTransform(e){if(this.completionStarted)throw Error(`Cannot add a completion transform after completion has started`);this.completionTransforms.push(e)}addCompletionObserver(e){if(this.completionStarted)throw Error(`Cannot add a completion observer after completion has started`);this.completionObservers.push(e)}markCompleted(e){this.completionStarted?console.warn(`markCompleted called for messageId: ${this.messageId} but already completed.`):(this.completionStarted=!0,this.updateState(`completed`),this.isAcknowledged===void 0&&(this.isAcknowledged=!1,this.deferredAcknowledgement.resolve(!1)),this.resolveCompletion(e))}async resolveCompletion(e){let t=e;try{for(let e of this.completionTransforms)t=await e(t)}catch(e){t={outcome:`error`,error:e instanceof Error?e:String(e)}}this.completionResult=t,this.notifyCompletionObservers(t),this.deferredCompletion.resolve(t)}notifyCompletionObservers(e){for(let t of this.completionObservers)try{t(e)}catch(e){console.warn(`[MessageHandle] completion observer failed for messageId: ${this.messageId}`,e)}}async waitForAcknowledgment(e){if(this.isAcknowledged!==void 0)return this.isAcknowledged;if(e){let t=await Promise.race([this.deferredAcknowledgement.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Acknowledgment timeout`)),e))]);if(t instanceof Error)throw this.markCompleted({outcome:`error`,error:t}),t;return t}return this.deferredAcknowledgement.getPromise()}async waitForCompletion(e){if(this.completionResult)return this.completionResult;if(e){let t=await Promise.race([this.deferredCompletion.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Completion timeout`)),e))]);if(t instanceof Error)throw t;return t}return this.deferredCompletion.getPromise()}};function ct(e,t,n){let r=n!==void 0&&!e.isProcessed;return e.markCompleted(t),r?e.waitForCompletion().then(async t=>{try{await n(e,t)}catch(t){console.warn(`[MessageHandle] completion notification failed for messageId: ${e.messageId}`,t)}}):Promise.resolve()}var J=class{agentId;adapterSessionId;sessionId;pendingMessageHandle;scopedBus;globalBus;filteredBus;errorHandler;deferredInterrupt;emittery=new r;processingState=`idle`;adapterId;timeouts;lastResult=null;config;model;providerConfigId;cwd;currentReasoningEffort;supportedReasoningLevels;env;_currentTurnNumber=0;_pendingCanonicalTurnNumber;adapterName;systemPrompt;constructor(e){let t=e.cwd??ve.tmpdir();if(!ne.existsSync(t))throw new ie(t);this.agentId=e.agentId??crypto.randomUUID(),this.scopedBus=e.bus,this.globalBus=e.globalBus??w,this.filteredBus=e.bus.withFilter({agentId:this.agentId}),this.adapterId=e.adapterId,this.adapterName=e.adapterName,this.adapterSessionId=e.adapterSessionId,this.sessionId=e.sessionId,this.timeouts=e.timeouts??ye([]),this.errorHandler=e.errorHandler,this.model=e.model,this.providerConfigId=e.providerConfigId,this.cwd=t,this.currentReasoningEffort=e.reasoningEffort,this.supportedReasoningLevels=e.supportedReasoningLevels,this.config=e,this.env=n(e?.env??be.env)}getProcessingState(){return this.processingState}handlePause(e){this.updateProcessingState(`paused`)}captureSystemPrompt(e){e!==void 0&&(this.systemPrompt=e)}async updateProcessingState(e){let t=st(this.processingState,e);if(!t)return;let{statesToEmit:n}=t;this.processingState=e;for(let e of n)await this.emittery.emit(`processingStateChanged`,e)}onProcessingStateChanged(e){return this.emittery.on(`processingStateChanged`,e)}async onceProcessingStateChanged(e){return this.emittery.once(`processingStateChanged`,e)}getConfirmedAdapterSessionId(){return this.adapterSessionId}createMessageHandle(e,t){let n=new q(t?.messageId??crypto.randomUUID(),e,t?.deliveryMode??`enqueue`,t?.messageHistory,t?.turnContext,t?.responseSchema,t?.internalRetry??!1,t?.cacheStrategy);return n.adapterSessionId=this.adapterSessionId,t?.internalRetry||this.config.onMessageSent?.(n),n}markToolRefreshPending(){}setCanonicalTurnNumber(e){if(!Number.isInteger(e)||e<1)throw RangeError(`setCanonicalTurnNumber: expected positive integer, got ${e}`);if(e<=this._currentTurnNumber)throw RangeError(`setCanonicalTurnNumber: ${e} ≤ current (${this._currentTurnNumber})`);if(this._pendingCanonicalTurnNumber!==void 0&&e<this._pendingCanonicalTurnNumber)throw RangeError(`setCanonicalTurnNumber: ${e} < pending (${this._pendingCanonicalTurnNumber})`);this._pendingCanonicalTurnNumber=e}consumeTurnNumber(){return this._pendingCanonicalTurnNumber===void 0?(this._currentTurnNumber+=1,this._currentTurnNumber):(this._currentTurnNumber=this._pendingCanonicalTurnNumber,this._pendingCanonicalTurnNumber=void 0,this._currentTurnNumber)}get currentTurnNumber(){return this._currentTurnNumber}get pendingTurnNumber(){return this._pendingCanonicalTurnNumber}async changeModelInPlace(e){return!1}async changeCwdInPlace(e){return!1}async changeReasoningInPlace(e){return!1}handleError(e,t=!1){let n=e instanceof Error?e:Error(String(e));console.warn(`[AIAgentConnector:handleError] pendingMessageHandle=${this.pendingMessageHandle?.messageId}, errorType=${n.name}, terminate=${t}`),this.errorHandler?.(n,t),this.pendingMessageHandle&&(this.pendingMessageHandle.markCompleted({outcome:`error`,error:n}),this.pendingMessageHandle=void 0,this.handlePause(`error`)),t&&this.abort()}handleToolApprovalDenied(e,t){e!==`not_requested`&&queueMicrotask(()=>{this.handleError(Error(`Tool use denied by approval handler: ${t}`),!1)})}getAgentId(){return this.agentId}getAdapterName(){return this.adapterName}getTimeoutMs(e){return this.timeouts.values[e]}requestToolApproval(e,t){return this.scopedBus.request(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId,sessionId:this.sessionId})}async requestToolApprovalWithHandling(e,t){return this.requestToolApproval(e,t).catch(e=>{let t=e;throw(e instanceof ue||e instanceof le)&&(t=Error(`Tool approval request failed, make sure that there's a handler registered: `+e.message)),this.handleError(t,!1),e})}emit(e,t){return this.scopedBus.emit(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId})}on(e,t,n){return this.filteredBus.on(e,t,n)}once(e,t){return this.filteredBus.once(e,t)}logLowLevelEvent(e){}},lt=class{config;bus;sessionId;currentTurn;constructor(e){this.config=e,this.bus=e.bus}async abort(){await this.currentTurn?.pause()}async sendMessage(e,t){throw Error(`Use processQueue instead`)}async getAdapterSessionId(){return this.sessionId}},Y=class{state;bus;adapterId;adapterName;stateChangedCallback;constructor(e,t,n,r){this.bus=e,this.adapterId=t,this.adapterName=n,this.state=r}onStateChanged(e){this.stateChangedCallback=e}async transitionTo(e){let t=this.state;this.state=e,await this.emitStateChange(t,e),await this.stateChangedCallback?.(t,e)}getState(){return this.state}getMessageHandle(){return this.activeMessageHandle}markAcknowledged(){this.activeMessageHandle.markAcknowledged()}markCompleted(e){this.activeMessageHandle.markCompleted(e)}},ut=class extends Y{activeMessageHandle;connectorBus;agentId;turnSubjects;aborted=!1;constructor(e,t){super(e.bus,e.adapterId,e.adapterName,t),this.connectorBus=e.bus,this.agentId=e.agentId,this.activeMessageHandle=e.messageHandle,this.turnSubjects=e.turnSubjects}async emitStateChange(e,t){let n={adapterId:this.adapterId,agentId:this.agentId,oldState:e,newState:t,timestamp:Date.now()};switch(await this.connectorBus.emit(this.turnSubjects.state_changed,n),t){case`turn_started`:await this.connectorBus.emit(this.turnSubjects.turn_started,n);break;case`step_started`:await this.connectorBus.emit(this.turnSubjects.step_started,n);break;case`step_finished`:await this.connectorBus.emit(this.turnSubjects.step_finished,n);break;case`turn_finished`:await this.connectorBus.emit(this.turnSubjects.turn_finished,n);break}}async start(){await this.transitionTo(`turn_started`)}async markStepStarted(){(this.state===`turn_started`||this.state===`step_finished`)&&await this.transitionTo(`step_started`)}async markStepFinished(){this.state===`step_started`&&await this.transitionTo(`step_finished`)}async markTurnFinished(){await this.transitionTo(`turn_finished`)}async pause(){if(this.state===`turn_finished`)return{stateBeforePause:this.state,turnEnded:!0};let e=this.state;return this.aborted=!0,{stateBeforePause:e,turnEnded:!1}}async resume(e){throw Error(`${this.adapterName} does not support resume - create new turn with merged content`)}isPaused(){return this.aborted}isCompleted(){return this.state===`turn_finished`}canAcceptImmediate(){return this.state!==`turn_finished`&&!this.aborted}},dt=class extends J{turnEventsWired=!1;getWireSessionConfig(){}wireSessionEvents(){if(this.turnEventsWired)return;this.turnEventsWired=!0;let e=this.getTurnSubjects(),t=this.getWireSessionConfig();this.on(e.turn_started,(async()=>{try{await t?.onTurnStarted?.()}catch(e){console.error(`[ProceduralAgentConnector] onTurnStarted hook failed:`,e)}await this.updateProcessingState(`turn_started`)})),this.on(e.step_started,(async()=>{await this.updateProcessingState(`step_started`)})),this.on(e.step_finished,(async()=>{await this.updateProcessingState(`step_finished`);let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()&&await e.processQueue(t)})),this.on(e.turn_finished,(async()=>{await this.updateProcessingState(`turn_finished`);let e=async()=>{await this.updateProcessingState(`processing_finished`);let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()?await e.processQueue(t):await this.updateProcessingState(`idle`)};t?.onTurnFinished?await t.onTurnFinished(e):await e()}))}async processUserMessages(e){let[t]=e,n=await this.ensureSession(),r=this.getSessionQueue();return r.enqueue(t),t.adapterSessionId=this.adapterSessionId,(this.getProcessingState()===`idle`||this.getProcessingState()===`paused`)&&await this.updateProcessingState(`active`),await n.processQueue(r),new Set([t])}async initialize(e){this.getSession()||(this.captureSystemPrompt(e?.systemPrompt),await this.ensureSession())}async start(e,t){this.captureSystemPrompt(t?.systemPrompt);let n=await this.sendMessage(e,t);return{adapterSessionId:await this.getAdapterSessionId(),messageHandle:n,agentId:this.agentId}}async complete(){for(;this.getProcessingState()!==`idle`&&this.getProcessingState()!==`paused`;)await this.onceProcessingStateChanged();return this.lastResult}acceptsImmediate(){return this.getSession()?.getCurrentTurn()?.canAcceptImmediate()??!1}};function ft(e,t,n,r,i,a,o){let s=t=>async(n,r)=>{let i=t,a={...r,agentId:i.agentId,adapterId:i.adapterId,adapterName:i.adapterName,adapterSessionId:i.adapterSessionId,messageId:i.messageId};await e.emit(n,a)};return t.on(n,(async t=>{let n=r?t.payload[r]:t.payload;if(!n||typeof n!=`object`)return;let c=a[n[i]];if(!c)return;let l=await o(n),u=s(l);if(typeof c==`function`)await c(l,u);else{let{sessionId:t,...n}=l;await e.emit(c,n)}}))}var X=class{currentMessageId;currentTurnId;emitGlobal;constructor(e){this.emitGlobal=e.emitGlobal}getCurrentMessageId(){return this.currentMessageId}setCurrentTurnId(e){this.currentTurnId=e}clearCurrentTurnId(){this.currentTurnId=void 0}getCurrentTurnId(){return this.currentTurnId}acknowledge(e,t){let{messageId:n,message:r,mergedFrom:i}=e;this.currentMessageId=n,this.emitGlobal(E.user_message.acknowledged,{messageId:n,mergedFrom:i,...t!==void 0&&{turnId:t}}),this.emitGlobal(E.turn.started,{messageId:n,content:r,mergedFrom:i,...t!==void 0&&{turnId:t}})}complete(e,t,n){let{messageId:r}=e;this.currentMessageId===r&&(this.currentMessageId=void 0),this.currentTurnId===n&&(this.currentTurnId=void 0),this.emitGlobal(E.turn.completed,{messageId:r,message:t.result?.message,outcome:t.outcome,error:t.error instanceof Error?t.error.message:typeof t.error==`string`?t.error:void 0,...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation},...n!==void 0&&{turnId:n}}),this.emitGlobal(E.user_message.completed,{messageId:r,outcome:t.outcome,supersededBy:t.supersededBy,mergedInto:t.mergedInto,...n!==void 0&&{turnId:n}})}track(e,t,n,r){let i=r?r.turnId:this.currentTurnId;n!==void 0&&e.addCompletionTransform(async e=>{try{return await n(e)}catch(t){let n={status:`failed`,errors:[{message:t instanceof Error?t.message:`Structured output validation failed`,instancePath:``,schemaPath:`#`}]};return{...e,structuredOutputValidation:n}}}),e.waitForAcknowledgment().then(()=>{this.acknowledge(e,i)}),e.waitForCompletion().then(n=>{this.complete(e,n,i),t&&t(e.messageId,n,i)})}},Z=class{pending=[];register(e,t,n){let r=n??crypto.randomUUID();return this.pending.push({correlationId:r,toolName:e,args:t,nativeId:n,registeredAt:Date.now()}),r}resolve(e){if(e.nativeId){let t=this.pending.findIndex(t=>t.nativeId===e.nativeId);if(t>=0){let[e]=this.pending.splice(t,1);return{correlationId:e.correlationId,strategy:`nativeId`,toolName:e.toolName,args:e.args}}}if(e.toolName){let t=this.pending.findIndex(t=>t.toolName===e.toolName);if(t>=0){let[e]=this.pending.splice(t,1);return{correlationId:e.correlationId,strategy:`toolName`,toolName:e.toolName,args:e.args}}}if(!e.nativeId&&!e.toolName&&this.pending.length>0){let[e]=this.pending.splice(0,1);return{correlationId:e.correlationId,strategy:`oldest`,toolName:e.toolName,args:e.args}}return{correlationId:null,strategy:`none`}}clear(){this.pending=[]}};function Q(e,t,n){return!t||n.includes(`structuredOutput`)?e:{...e,structuredOutput:`Respond ONLY with valid JSON conforming to this schema:\n${JSON.stringify(t.schema,null,2)}\nDo not include any other text, markdown formatting, or explanation.`}}var $=class e{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;hasResumeTarget;setPendingStartMode;onMessageHandle;onBeforeDispatch;ephemeral;constructor(e){this.agentId=e.agentId,this.adapterId=e.adapterId,this.sessionId=e.sessionId,this.adapterCapabilities=e.adapterCapabilities??[],this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.shouldUseNativeResume=e.shouldUseNativeResume,this.hasResumeTarget=e.hasResumeTarget,this.setPendingStartMode=e.setPendingStartMode,this.onMessageHandle=e.onMessageHandle,this.onBeforeDispatch=e.onBeforeDispatch,this.ephemeral=e.ephemeral??!1}static deriveStartMode(e,t,n=!1){return e?.nativeFork?`fork`:e?t?`resume`:e.isFirstTurn?`fresh`:`rotation`:n?`resume`:`fresh`}deriveAndSetPendingStartMode(t){let n=this.shouldUseNativeResume(t),r=e.deriveStartMode(t,n,this.hasResumeTarget());return this.setPendingStartMode(r),n}async executeSendMessage(e){await this.onBeforeDispatch?.();let t=this.getConnector(),n=e.sessionContext?A.parse(e.sessionContext):void 0,r=await this.resolvePreUserMessageTurn({message:e.message,sessionContext:n,cwd:t.cwd,messageId:e.messageId}),i=this.deriveAndSetPendingStartMode(r.sessionContext),a=L(r.message),o=await t.sendMessage(a,{deliveryMode:e.deliveryMode,messageId:e.messageId,messageHistory:i?void 0:r.sessionContext?.messageHistory,cacheStrategy:i?void 0:r.sessionContext?.cacheStrategy,turnContext:Q(r.sessionContext?.turnContext,e.responseSchema,this.adapterCapabilities),...e.responseSchema!==void 0&&{responseSchema:e.responseSchema}});return this.firePostUserMessageHooks(o.messageId),await this.onMessageHandle(o,e.turnId),{messageId:o.messageId}}async executeStart(e,t,n,r){await this.onBeforeDispatch?.();let i=this.getConnector(),a=t?.sessionContext?A.parse(t.sessionContext):void 0,o=await this.resolvePreUserMessageTurn({message:e,sessionContext:a,cwd:i.cwd}),s=this.deriveAndSetPendingStartMode(o.sessionContext),c=L(o.message),l={systemPrompt:n,messageHistory:s?void 0:o.sessionContext?.messageHistory,cacheStrategy:s?void 0:o.sessionContext?.cacheStrategy,turnContext:Q(o.sessionContext?.turnContext,r,this.adapterCapabilities),...r!==void 0&&{responseSchema:r}},u=await i.start(c,l);return this.firePostUserMessageHooks(u.messageHandle.messageId),await this.onMessageHandle(u.messageHandle,void 0),u}async resolvePreUserMessageTurn(e){return this.ephemeral?{message:e.message,sessionContext:e.sessionContext}:he({agentId:this.agentId,adapterId:this.adapterId,message:e.message,sessionId:this.sessionId,cwd:e.cwd,sessionContext:e.sessionContext,messageId:e.messageId},this.globalBus)}firePostUserMessageHooks(e){me({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,messageId:e},this.globalBus).catch(e=>{console.error(`[AIAgent] PostUserMessage hook error:`,e)})}};function pt(e){let t=e.globalBus.withFilter({agentId:e.agentId});return[t.on(E.sendMessage,e.onSendMessage),t.on(E.interrupt,e.onInterrupt),t.on(E.getCapabilities,t=>{t.setResult(e.getCapabilities())}),t.on(E.cwd.change,e.onCwdChange),t.on(E.model.change,e.onModelChange),t.on(E.mcp.servers.set,e.onMcpServersSet),t.on(E.credential.change,e.onCredentialChange)]}var mt=class{sessionClosedEmitted=!1;agentStartedEmitted=!1;agentCompleteEmitted=!1;pendingErrorCategory;config;constructor(e){this.config=e}async emitStart(e){this.agentStartedEmitted=!0,this.agentCompleteEmitted=!1,this.pendingErrorCategory=void 0,await this.config.emitStarted(e)}resetTurnState(){this.agentCompleteEmitted=!1,this.pendingErrorCategory=void 0}async emitCompletion(e){if(this.agentCompleteEmitted)return;await this.config.onBeforeEmitCompletion(),this.agentCompleteEmitted=!0,this.config.clearToolCallTracker();let t=this.pendingErrorCategory;this.pendingErrorCategory=void 0,this.config.globalBus.requestOptional(M.updateStatus,{agentId:this.config.agentId,status:`idle`}),await this.config.emitComplete({...e,...t&&{errorCategory:t}})}emitError(e){this.config.clearToolCallTracker(),this.pendingErrorCategory=e.errorCategory}emitSessionClosed(e){this.sessionClosedEmitted||(this.sessionClosedEmitted=!0,this.config.emitSessionClosed({reason:e}).catch(e=>{console.warn(`[AIAgent] Failed to emit session.closed for agent ${this.config.agentId}:`,e)}))}},ht=class{emitUsagePayload;emitContextWindowUpdatedPayload;emitToolUsePayload;emitToolOutputPayload;emitAdapterLogPayload;emitStepStartedPayload;emitStepFinishedPayload;toolCallTracker;getBlockIndex;incrementBlockIndex;getUsageModel;constructor(e){this.emitUsagePayload=e.emitUsage,this.emitContextWindowUpdatedPayload=e.emitContextWindowUpdated,this.emitToolUsePayload=e.emitToolUse,this.emitToolOutputPayload=e.emitToolOutput,this.emitAdapterLogPayload=e.emitAdapterLog,this.emitStepStartedPayload=e.emitStepStarted,this.emitStepFinishedPayload=e.emitStepFinished,this.toolCallTracker=e.toolCallTracker,this.getBlockIndex=e.getBlockIndex,this.incrementBlockIndex=e.incrementBlockIndex,this.getUsageModel=e.getUsageModel}async trackUsage(e){await this.emitUsagePayload({...e,model:this.getUsageModel()??`unknown`})}async emitContextWindowUpdate(e){let{currentTokens:t,maxTokens:n,cachedTokens:r}=e,i=n>0&&Number.isFinite(n)&&Number.isFinite(t),a=i?Math.min(100,t/n*100):0,o=i?a>=80?`critical`:a>=60?`warn`:`ok`:`critical`;await this.emitContextWindowUpdatedPayload({currentTokens:t,maxTokens:n,cachedTokens:r,percentage:a,level:o})}async emitToolUse(e,t,n){let r=this.toolCallTracker.register(e,t,n);return await this.emitToolUsePayload({toolName:e,args:t,toolCallId:r}),r}async emitToolOutput(e,t){let{correlationId:n,strategy:r,toolName:i,args:a}=this.toolCallTracker.resolve(t);if(!n){await this.emitAdapterLogPayload({level:`warn`,message:`Tool output arrived with no pending tool calls. Hints: ${JSON.stringify(t)}`,timestamp:Date.now()});let n=crypto.randomUUID();return await this.emitToolOutputPayload({output:e,toolCallId:n,toolName:t.toolName??i}),{toolCallId:n,toolName:t.toolName??i??`unknown`}}return r===`oldest`&&await this.emitAdapterLogPayload({level:`warn`,message:`Tool output correlation used fallback. Hints: ${JSON.stringify(t)}`,timestamp:Date.now()}),await this.emitToolOutputPayload({output:e,toolCallId:n,toolName:i,args:a}),{toolCallId:n,toolName:i??`unknown`,args:a}}async emitStepStarted(e,t,n){await this.emitStepStartedPayload({stepType:e,blockIndex:this.getBlockIndex(),blockData:t,content:n})}async emitStepFinished(e,t){await this.emitStepFinishedPayload({stepType:e,blockIndex:this.getBlockIndex(),content:t}),this.incrementBlockIndex()}},gt=class{config;constructor(e){this.config=e}resolveConfirmedAdapterSessionId(){let e=this.config.getConnectorAdapterSessionId()??this.config.getLastKnownAdapterSessionId();return e!==void 0&&this.config.setLastKnownAdapterSessionId(e),e}resolveEventMetadata(e,t){if(!t)return{};let n=this.config.getEventMetadataDefaults();return{clientId:e.clientId??n.clientId,providerConfigId:e.providerConfigId??n.providerConfigId,occurredAt:e.occurredAt??n.occurredAt}}async enrichPayload(e,t,n){let r=e,i=t??this.config.getCurrentMessageId(),a=r.turnId??this.config.getCurrentTurnId(),o=this.resolveConfirmedAdapterSessionId(),{clientId:s,providerConfigId:c,occurredAt:l}=this.resolveEventMetadata(r,n?.includeEventMetadata??!0),u=this.config.getAgentContextBase();return{...e,agentId:u.agentId,adapterId:u.adapterId,adapterName:u.adapterName,...o!==void 0&&{adapterSessionId:o},...i!==void 0&&{messageId:i},...a!==void 0&&{turnId:a},...u.sessionId!==void 0&&{sessionId:u.sessionId},...s!==void 0&&{clientId:s},...c!==void 0&&{providerConfigId:c},...l!==void 0&&{occurredAt:l}}}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}},_t=class{queuedSequences=new Map;appliedSequences=new Map;barrier=Promise.resolve();queue(e,t){if(!Number.isSafeInteger(t)||t<0)return!1;let n=this.appliedSequences.get(e);if(n!==void 0&&t<=n)return!1;let r=this.queuedSequences.get(e);return r!==void 0&&t<=r?!1:(this.queuedSequences.set(e,t),!0)}isLatest(e,t){return this.queuedSequences.get(e)===t}markApplied(e,t){let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.appliedSequences.set(e,t),this.queuedSequences.get(e)===t&&this.queuedSequences.delete(e)}release(e,t){if(this.queuedSequences.get(e)!==t)return;let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.queuedSequences.delete(e)}clear(e){this.queuedSequences.delete(e),this.appliedSequences.delete(e)}async runExclusive(e){let t=this.barrier,n;this.barrier=new Promise(e=>{n=e}),await t;try{return await e()}finally{n?.()}}};async function vt(e){let{bus:t,agentId:n,currentModel:r,nextModel:i,skipWarning:a}=e;if(a)return{proceed:!0,requestEditHistory:!1};let o=await t.requestOptional(E.validateModelChange,{agentId:n,currentModel:r,nextModel:i});return o.handled?{proceed:o.data.proceed,requestEditHistory:o.data.requestEditHistory??!1}:{proceed:!0,requestEditHistory:!1}}var yt=class{getConnector;swapConnector;setMcpSessionContext;stagedMcpServersSet;constructor(e){this.getConnector=e.getConnector,this.swapConnector=e.swapConnector,this.setMcpSessionContext=e.setMcpSessionContext}async applyStagedMutation(){let e=this.stagedMcpServersSet;if(e===void 0)return;this.stagedMcpServersSet=void 0;let t=await this.handleMcpServersSet(e);if(!t.success)throw Error(`Failed to apply staged MCP server replacement: ${t.reason??`unknown error`}`)}async handleMcpServersSet(e){if(this.getConnector().getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedMcpServersSet={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0}):{success:!1,reason:`turn_active`};try{return await this.swapConnector({mcpSessionContext:e.mcpSessionContext}),this.setMcpSessionContext(e.mcpSessionContext),{success:!0,swapped:!0}}catch(e){return{success:!1,reason:`mcp_servers_set_failed: ${e.message}`}}}},bt=class{agentId;sessionId;globalBus;getConnector;swapConnector;emitCwdChanged;emitModelChanged;getProviderContext;setProviderContext;setReasoningEffort;setMcpSessionContext;resolveSupportedReasoningLevels;mcpServersMutationManager;credentialChangeSequencer=new _t;stagedModelChange;constructor(e){this.agentId=e.agentId,this.sessionId=e.sessionId,this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.swapConnector=e.swapConnector,this.emitCwdChanged=e.emitCwdChanged,this.emitModelChanged=e.emitModelChanged,this.getProviderContext=e.getProviderContext,this.setProviderContext=e.setProviderContext,this.setReasoningEffort=e.setReasoningEffort,this.setMcpSessionContext=e.setMcpSessionContext,this.resolveSupportedReasoningLevels=e.resolveSupportedReasoningLevels,this.mcpServersMutationManager=new yt({getConnector:this.getConnector,swapConnector:this.swapConnector,setMcpSessionContext:this.setMcpSessionContext})}async handleCwdChange(e){let t=this.getConnector(),{newCwd:n}=e;if(t.cwd===n)return{success:!0};if(t.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};try{let e=t.cwd;return await t.changeCwdInPlace(n).catch(()=>!1)?t.cwd=n:await this.swapConnector({cwd:n}),await this.persistRuntimeMutation({cwd:n}),await this.emitCwdChanged({previousCwd:e,newCwd:n}),{success:!0,previousCwd:e}}catch(e){return{success:!1,reason:`cwd_change_failed: ${e.message}`}}}async applyStagedMutations(){if(this.getConnector().getProcessingState()!==`idle`)return;let e=this.stagedModelChange;if(e!==void 0){this.stagedModelChange=void 0;let t=await this.handleModelChange(e);if(!t.success)throw Error(`Failed to apply staged model change: ${t.reason??`unknown error`}`)}await this.mcpServersMutationManager.applyStagedMutation()}async handleMcpServersSet(e){return this.mcpServersMutationManager.handleMcpServersSet(e)}async handleModelChange(e){let t=this.getConnector(),{newModel:n,reasoningEffort:r,skipWarning:i}=e,a=e.providerContext,o=t.model,s=t.currentReasoningEffort,c=this.getProviderContext(),l=this.hasProviderContextChanged(c,a);if(!n&&!r&&!l)return{success:!0,swapped:!1};if(t.getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedModelChange={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0,...n!==void 0&&{model:n}}):{success:!1,reason:`turn_active`};if(!n&&!l)return this.handleReasoningOnlyChange(t,o,s,r);let u=n??o;return o===u&&!l?r===void 0?{success:!0,swapped:!1}:this.handleReasoningOnlyChange(t,o,s,r):this.handleModelSwap({connector:t,currentModel:o,newModel:u,reasoningEffort:r,previousReasoningEffort:s,providerContext:a,isProviderChange:l,skipWarning:i})}async handleReasoningOnlyChange(e,t,n,r){if(e.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};try{let i=await e.changeReasoningInPlace(r).catch(()=>!1);i||await this.swapConnector({model:e.model});let a=this.getConnector(),o=this.resolveReasoningEffort(r,n,a.supportedReasoningLevels);return a.currentReasoningEffort=o,this.setReasoningEffort(o),await this.emitModelChanged({previousModel:t,newModel:t,previousReasoningEffort:n,newReasoningEffort:o}),{success:!0,swapped:!i,model:t,appliedReasoningEffort:o,supportedReasoningLevels:a.supportedReasoningLevels}}catch(e){return{success:!1,reason:`reasoning_change_failed: ${e.message}`}}}async handleModelSwap(e){let{connector:t,currentModel:n,newModel:r,reasoningEffort:i,previousReasoningEffort:a,providerContext:o,isProviderChange:s,skipWarning:c}=e;try{let e=!s&&await t.changeModelInPlace(r).catch(()=>!1);if(e)t.model=r,t.supportedReasoningLevels=this.resolveSupportedReasoningLevels(r);else{let e=await this.confirmConnectorSwap(n,r,c);if(!e.proceed)return e.result;await this.swapConnector({model:r,...o&&{providerContext:o}}),o&&this.setProviderContext(o);let t=this.getConnector();t.supportedReasoningLevels=this.resolveSupportedReasoningLevels(r),e.requestEditHistory&&this.sessionId&&await this.globalBus.emit(j.connectorSwap.editRequested,{sessionId:this.sessionId,agentId:this.agentId,previousModel:n,newModel:r})}let l=this.getConnector(),u=l.supportedReasoningLevels,d=this.resolveReasoningEffort(i,a,u);l.currentReasoningEffort=d,this.setReasoningEffort(d),d!==void 0&&await l.changeReasoningInPlace(d).catch(()=>{});let f=n!==r||d!==a;return(n!==r||s)&&await this.persistRuntimeMutation({...n!==r&&{model:r},...s&&o&&{providerConfigId:o.providerConfigId}}),f&&await this.emitModelChanged({previousModel:n,newModel:r,previousReasoningEffort:a,newReasoningEffort:d}),{success:!0,swapped:!e,model:r,appliedReasoningEffort:d,supportedReasoningLevels:u}}catch(e){return{success:!1,reason:`model_change_failed: ${e.message}`}}}resolveReasoningEffort(e,t,n){if(!n||Object.keys(n).length===0)return;let r=e=>e in n;return e!==void 0&&r(e)?e:t!==void 0&&r(t)?t:r(`medium`)?`medium`:Object.keys(n)[0]}async confirmConnectorSwap(e,t,n){if(e===t)return{proceed:!0,requestEditHistory:!1};let r=await vt({bus:this.globalBus,agentId:this.agentId,currentModel:e,nextModel:t,skipWarning:n});return r.proceed?{proceed:!0,requestEditHistory:r.requestEditHistory}:{proceed:!1,result:{success:!1,reason:`cancelled`}}}hasProviderContextChanged(e,t){return t===void 0?!1:e===void 0?!0:e.providerConfigId!==t.providerConfigId||e.definitionId!==t.definitionId||!this.haveEqualStringRecords(e.endpointOverrides,t.endpointOverrides)||!this.haveEqualStringRecords(e.credentialEnvVars,t.credentialEnvVars)||!this.haveEqualStringRecords(e.credentialRefs,t.credentialRefs)}haveEqualStringRecords(e,t){if(e===t)return!0;let n=e?Object.keys(e):[],r=t?Object.keys(t):[];return n.length===r.length?n.every(n=>e[n]===t[n]):!1}async handleCredentialChanged(e){let t=this.getProviderContext()?.providerConfigId;return t&&t!==e.providerConfigId?{success:!1,reason:`provider_mismatch`}:this.credentialChangeSequencer.queue(e.providerConfigId,e.changeSequence)?this.credentialChangeSequencer.runExclusive(async()=>{let t=this.getProviderContext()?.providerConfigId;if(t&&t!==e.providerConfigId)return this.credentialChangeSequencer.release(e.providerConfigId,e.changeSequence),{success:!1,reason:`provider_mismatch`};if(!this.credentialChangeSequencer.isLatest(e.providerConfigId,e.changeSequence))return{success:!1,reason:`stale_change`};let n=this.getConnector();if(n.getProcessingState()!==`idle`)return this.credentialChangeSequencer.release(e.providerConfigId,e.changeSequence),{success:!1,reason:`turn_active`};let r=e.credentialRefs;try{let t=await _e(this.globalBus,e.providerConfigId);return t.credentialRefs=r,!this.credentialChangeSequencer.isLatest(e.providerConfigId,e.changeSequence)||(await ge(this.globalBus,t),!this.credentialChangeSequencer.isLatest(e.providerConfigId,e.changeSequence))?{success:!1,reason:`stale_change`}:n.getProcessingState()===`idle`?(await this.swapConnector({providerContext:t}),this.setProviderContext(t),this.credentialChangeSequencer.markApplied(e.providerConfigId,e.changeSequence),await this.persistRuntimeMutation({providerConfigId:t.providerConfigId}),{success:!0,swapped:!0}):(this.credentialChangeSequencer.release(e.providerConfigId,e.changeSequence),{success:!1,reason:`turn_active`})}catch(t){return this.credentialChangeSequencer.release(e.providerConfigId,e.changeSequence),{success:!1,reason:`credential_swap_failed: ${t instanceof Error?t.message:String(t)}`}}}):{success:!1,reason:`stale_change`}}async persistRuntimeMutation(e){await this.globalBus.requestOptional(M.updateRuntime,{agentId:this.agentId,cwd:e.cwd,model:e.model,providerConfigId:e.providerConfigId})}},xt=class{connectorWiringCleanups=[];config;constructor(e){this.config=e}addConnectorWiringCleanup(e){this.connectorWiringCleanups.push(e)}clearConnectorWiring(){for(let e of this.connectorWiringCleanups)try{e()}catch(e){console.warn(`[AIAgent] Connector wiring cleanup failed for agent ${this.config.agentId}:`,e)}this.connectorWiringCleanups=[]}async wireAllConnectorEvents(e){let t=e.onProcessingStateChanged(e=>{e===`idle`&&this.config.emitIdle().catch(e=>{console.warn(`[AIAgent] Failed to emit idle for agent ${this.config.agentId}:`,e)})});this.addConnectorWiringCleanup(t),await this.config.wireEvents(e)}async swapConnector(e){let t=this.config.getConnector();if(t.getProcessingState()!==`idle`)throw Error(`Cannot swap connector while processing (state: ${t.getProcessingState()})`);let n=this.config.buildConfigInput({cwd:e?.cwd??t.cwd,model:e?.model??t.model,...e?.providerContext&&{providerContext:e.providerContext},...e?.mcpSessionContext&&{mcpSessionContext:e.mcpSessionContext},adapterSessionId:e?.adapterSessionId??crypto.randomUUID(),...e?.resumeAdapterSessionId!==void 0&&{resumeAdapterSessionId:e.resumeAdapterSessionId}}),r=await this.config.configFactory(n),i=await this.config.connectorFactory({...r,onMessageSent:this.config.createOnMessageSent()}),a=this.connectorWiringCleanups;this.connectorWiringCleanups=[];try{await this.wireAllConnectorEvents(i),await i.initialize({systemPrompt:this.config.getRuntimeSystemPrompt()})}catch(e){try{await i.close()}catch(e){console.warn(`[AIAgent] Failed to close newly-created connector for agent ${this.config.agentId}:`,e)}throw this.connectorWiringCleanups=a,e}let o=i.getConfirmedAdapterSessionId();o!==void 0&&this.config.setLastKnownAdapterSessionId(o);for(let e of a)try{e()}catch(e){console.warn(`[AIAgent] Previous connector cleanup failed during swap for agent ${this.config.agentId}:`,e)}let s=t;this.config.setConnector(i);try{await s.close()}catch(e){console.warn(`[AIAgent] Failed to close previous connector for agent ${this.config.agentId}:`,e)}}};function St(e){return new gt({globalBus:e.globalBus,getAgentContextBase:e.getAgentContextBase,getCurrentMessageId:()=>e.lifecycleTracker.getCurrentMessageId(),getCurrentTurnId:()=>e.lifecycleTracker.getCurrentTurnId(),getConnectorAdapterSessionId:e.getConnectorAdapterSessionId,getLastKnownAdapterSessionId:e.getLastKnownAdapterSessionId,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,getEventMetadataDefaults:e.getEventMetadataDefaults})}function Ct(e){return new ht({emitUsage:async t=>{await e.emitGlobal(E.usage,t)},emitContextWindowUpdated:async t=>{await e.emitGlobal(E.contextWindow.updated,t)},emitToolUse:async t=>{await e.emitGlobal(E.tool.use,t)},emitToolOutput:async t=>{await e.emitGlobal(E.tool.output,t)},emitAdapterLog:async t=>{await e.emitGlobal(T.log,t,{includeEventMetadata:!1})},emitStepStarted:async t=>{await e.emitGlobal(E.step.started,t)},emitStepFinished:async t=>{await e.emitGlobal(E.step.finished,t)},toolCallTracker:e.toolCallTracker,getBlockIndex:e.getBlockIndex,incrementBlockIndex:e.incrementBlockIndex,getUsageModel:e.getUsageModel})}function wt(e){return new $(e)}function Tt(e){return new bt({agentId:e.agentId,sessionId:e.sessionId,globalBus:e.globalBus,getConnector:e.getConnector,swapConnector:e.swapConnector,emitCwdChanged:async t=>{await e.emitGlobal(E.cwd.changed,t)},emitModelChanged:async t=>{await e.emitGlobal(E.model.changed,t)},getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,setReasoningEffort:e.setReasoningEffort,setMcpSessionContext:e.setMcpSessionContext,resolveSupportedReasoningLevels:e.resolveSupportedReasoningLevels})}function Et(e){return new xt({agentId:e.agentId,buildConfigInput:e.buildConfigInput,configFactory:e.configFactory,connectorFactory:e.connectorFactory,createOnMessageSent:e.createOnMessageSent,wireEvents:e.wireEvents,emitIdle:async()=>{await e.emitGlobal(E.idle,{})},getConnector:e.getConnector,setConnector:e.setConnector,getRuntimeSystemPrompt:e.getRuntimeSystemPrompt,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId})}var Dt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicAnchor=void 0;let t=S(),n=f(),r=d(),i=x(),a={keyword:`$dynamicAnchor`,schemaType:`string`,code:e=>o(e,e.schema)};function o(e,r){let{gen:i,it:a}=e;a.schemaEnv.root.dynamicAnchors[r]=!0;let o=(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(r)}`,c=a.errSchemaPath===`#`?a.validateName:s(e);i.if((0,t._)`!${o}`,()=>i.assign(o,c))}e.dynamicAnchor=o;function s(e){let{schemaEnv:t,schema:n,self:a}=e.it,{root:o,baseId:s,localRefs:c,meta:l}=t.root,{schemaId:u}=a.opts,d=new r.SchemaEnv({schema:n,schemaId:u,root:o,baseId:s,localRefs:c,meta:l});return r.compileSchema.call(a,d),(0,i.getValidate)(e,d)}e.default=a})),Ot=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicRef=void 0;let t=S(),n=f(),r=x(),i={keyword:`$dynamicRef`,schemaType:`string`,code:e=>a(e,e.schema)};function a(e,i){let{gen:a,keyword:o,it:s}=e;if(i[0]!==`#`)throw Error(`"${o}" only supports hash fragment reference`);let c=i.slice(1);if(s.allErrors)l();else{let t=a.let(`valid`,!1);l(t),e.ok(t)}function l(e){if(s.schemaEnv.root.dynamicAnchors[c]){let r=a.let(`_v`,(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(c)}`);a.if(r,u(r,e),u(s.validateName,e))}else u(s.validateName,e)()}function u(t,n){return n?()=>a.block(()=>{(0,r.callRef)(e,t),a.let(n,!0)}):()=>(0,r.callRef)(e,t)}}e.dynamicRef=a,e.default=i})),kt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Dt(),n=s();e.default={keyword:`$recursiveAnchor`,schemaType:`boolean`,code(e){e.schema?(0,t.dynamicAnchor)(e,``):(0,n.checkStrictMode)(e.it,`$recursiveAnchor: false is ignored`)}}})),At=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Ot();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),jt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Dt(),n=Ot(),r=kt(),i=At();e.default=[t.default,n.default,r.default,i.default]})),Mt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=b();e.default={keyword:`dependentRequired`,type:`object`,schemaType:`object`,error:t.error,code:e=>(0,t.validatePropertyDeps)(e)}})),Nt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=b();e.default={keyword:`dependentSchemas`,type:`object`,schemaType:`object`,code:e=>(0,t.validateSchemaDeps)(e)}})),Pt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=s();e.default={keyword:[`maxContains`,`minContains`],type:`array`,schemaType:`number`,code({keyword:e,parentSchema:n,it:r}){n.contains===void 0&&(0,t.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}}})),Ft=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Mt(),n=Nt(),r=Pt();e.default=[t.default,n.default,r.default]})),It=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=S(),n=s(),r=f();e.default={keyword:`unevaluatedProperties`,type:`object`,schemaType:[`boolean`,`object`],trackErrors:!0,error:{message:`must NOT have unevaluated properties`,params:({params:e})=>(0,t._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},code(e){let{gen:i,schema:a,data:o,errsCount:s,it:c}=e;if(!s)throw Error(`ajv implementation error`);let{allErrors:l,props:u}=c;u instanceof t.Name?i.if((0,t._)`${u} !== true`,()=>i.forIn(`key`,o,e=>i.if(f(u,e),()=>d(e)))):u!==!0&&i.forIn(`key`,o,e=>u===void 0?d(e):i.if(p(u,e),()=>d(e))),c.props=!0,e.ok((0,t._)`${s} === ${r.default.errors}`);function d(r){if(a===!1){e.setParams({unevaluatedProperty:r}),e.error(),l||i.break();return}if(!(0,n.alwaysValidSchema)(c,a)){let a=i.name(`valid`);e.subschema({keyword:`unevaluatedProperties`,dataProp:r,dataPropType:n.Type.Str},a),l||i.if((0,t.not)(a),()=>i.break())}}function f(e,n){return(0,t._)`!${e} || !${e}[${n}]`}function p(e,n){let r=[];for(let i in e)e[i]===!0&&r.push((0,t._)`${n} !== ${i}`);return(0,t.and)(...r)}}}})),Lt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=S(),n=s();e.default={keyword:`unevaluatedItems`,type:`array`,schemaType:[`boolean`,`object`],error:{message:({params:{len:e}})=>(0,t.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,t._)`{limit: ${e}}`},code(e){let{gen:r,schema:i,data:a,it:o}=e,s=o.items||0;if(s===!0)return;let c=r.const(`len`,(0,t._)`${a}.length`);if(i===!1)e.setParams({len:s}),e.fail((0,t._)`${c} > ${s}`);else if(typeof i==`object`&&!(0,n.alwaysValidSchema)(o,i)){let n=r.var(`valid`,(0,t._)`${c} <= ${s}`);r.if((0,t.not)(n),()=>l(n,s)),e.ok(n)}o.items=!0;function l(i,a){r.forRange(`i`,a,c,a=>{e.subschema({keyword:`unevaluatedItems`,dataProp:a,dataPropType:n.Type.Num},i),o.allErrors||r.if((0,t.not)(i),()=>r.break())})}}}})),Rt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=It(),n=Lt();e.default=[t.default,n.default]})),zt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/schema`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0,"https://json-schema.org/draft/2019-09/vocab/applicator":!0,"https://json-schema.org/draft/2019-09/vocab/validation":!0,"https://json-schema.org/draft/2019-09/vocab/meta-data":!0,"https://json-schema.org/draft/2019-09/vocab/format":!1,"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format`},{$ref:`meta/content`}],type:[`object`,`boolean`],properties:{definitions:{$comment:`While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.`,type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},dependencies:{$comment:`"dependencies" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to "dependentSchemas" and "dependentRequired"`,type:`object`,additionalProperties:{anyOf:[{$recursiveRef:`#`},{$ref:`meta/validation#/$defs/stringArray`}]}}}}})),Bt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/applicator":!0},$recursiveAnchor:!0,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{additionalItems:{$recursiveRef:`#`},unevaluatedItems:{$recursiveRef:`#`},items:{anyOf:[{$recursiveRef:`#`},{$ref:`#/$defs/schemaArray`}]},contains:{$recursiveRef:`#`},additionalProperties:{$recursiveRef:`#`},unevaluatedProperties:{$recursiveRef:`#`},properties:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$recursiveRef:`#`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$recursiveRef:`#`}},propertyNames:{$recursiveRef:`#`},if:{$recursiveRef:`#`},then:{$recursiveRef:`#`},else:{$recursiveRef:`#`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$recursiveRef:`#`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$recursiveRef:`#`}}}}})),Vt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/content`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentMediaType:{type:`string`},contentEncoding:{type:`string`},contentSchema:{$recursiveRef:`#`}}}})),Ht=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/core`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0},$recursiveAnchor:!0,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{type:`string`,format:`uri-reference`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{type:`string`,format:`uri`},$anchor:{type:`string`,pattern:`^[A-Za-z][-A-Za-z0-9.:_]*$`},$ref:{type:`string`,format:`uri-reference`},$recursiveRef:{type:`string`,format:`uri-reference`},$recursiveAnchor:{type:`boolean`,default:!1},$vocabulary:{type:`object`,propertyNames:{type:`string`,format:`uri`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}}}}})),Ut=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/format`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/format":!0},$recursiveAnchor:!0,title:`Format vocabulary meta-schema`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),Wt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/meta-data":!0},$recursiveAnchor:!0,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),Gt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/validation":!0},$recursiveAnchor:!0,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}},const:!0,enum:{type:`array`,items:!0},type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),Kt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=zt(),n=Bt(),r=Vt(),i=Ht(),a=Ut(),o=Wt(),s=Gt(),c=[`/properties`];function l(e){return[t,n,r,i,l(this,a),o,l(this,s)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function l(t,n){return e?t.$dataMetaSchema(n,c):n}}e.default=l})),qt=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2019=void 0;let n=u(),r=ee(),i=jt(),a=Ft(),o=Rt(),s=_(),c=Kt(),l=`https://json-schema.org/draft/2019-09/schema`;var d=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(i.default),r.default.forEach(e=>this.addVocabulary(e)),this.addVocabulary(a.default),this.addVocabulary(o.default),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(c.default.call(this,e),this.refs[`http://json-schema.org/schema`]=l)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(l)?l:void 0)}};e.Ajv2019=d,t.exports=e=d,t.exports.Ajv2019=d,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=d;var f=p();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return f.KeywordCxt}});var m=S();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return m._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return m.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return m.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return m.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return m.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return m.CodeGen}});var h=g();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return h.default}});var v=y();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return v.default}})})),Jt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=h(),n=l(),r=v(),i=jt(),a=Ft(),o=Rt(),s=c(),u=m();e.default=[i.default,t.default,n.default,(0,r.default)(!0),s.default,u.metadataVocabulary,u.contentVocabulary,a.default,o.default]})),Yt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/schema`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/unevaluated`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format-annotation`},{$ref:`meta/content`}],type:[`object`,`boolean`],$comment:`This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.`,properties:{definitions:{$comment:`"definitions" has been replaced by "$defs".`,type:`object`,additionalProperties:{$dynamicRef:`#meta`},deprecated:!0,default:{}},dependencies:{$comment:`"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.`,type:`object`,additionalProperties:{anyOf:[{$dynamicRef:`#meta`},{$ref:`meta/validation#/$defs/stringArray`}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:`"$recursiveAnchor" has been replaced by "$dynamicAnchor".`,$ref:`meta/core#/$defs/anchorString`,deprecated:!0},$recursiveRef:{$comment:`"$recursiveRef" has been replaced by "$dynamicRef".`,$ref:`meta/core#/$defs/uriReferenceString`,deprecated:!0}}}})),Xt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:`meta`,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{prefixItems:{$ref:`#/$defs/schemaArray`},items:{$dynamicRef:`#meta`},contains:{$dynamicRef:`#meta`},additionalProperties:{$dynamicRef:`#meta`},properties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},patternProperties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},propertyNames:{$dynamicRef:`#meta`},if:{$dynamicRef:`#meta`},then:{$dynamicRef:`#meta`},else:{$dynamicRef:`#meta`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$dynamicRef:`#meta`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$dynamicRef:`#meta`}}}}})),Zt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/unevaluated`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:`meta`,title:`Unevaluated applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{unevaluatedItems:{$dynamicRef:`#meta`},unevaluatedProperties:{$dynamicRef:`#meta`}}}})),Qt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/content`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentEncoding:{type:`string`},contentMediaType:{type:`string`},contentSchema:{$dynamicRef:`#meta`}}}})),$t=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/core`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:`meta`,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{$ref:`#/$defs/uriReferenceString`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{$ref:`#/$defs/uriString`},$ref:{$ref:`#/$defs/uriReferenceString`},$anchor:{$ref:`#/$defs/anchorString`},$dynamicRef:{$ref:`#/$defs/uriReferenceString`},$dynamicAnchor:{$ref:`#/$defs/anchorString`},$vocabulary:{type:`object`,propertyNames:{$ref:`#/$defs/uriString`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$dynamicRef:`#meta`}}},$defs:{anchorString:{type:`string`,pattern:`^[A-Za-z_][-A-Za-z0-9._]*$`},uriString:{type:`string`,format:`uri`},uriReferenceString:{type:`string`,format:`uri-reference`}}}})),en=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/format-annotation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:`meta`,title:`Format vocabulary meta-schema for annotation results`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),tn=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:`meta`,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),nn=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:`meta`,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),rn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Yt(),n=Xt(),r=Zt(),i=Qt(),a=$t(),o=en(),s=tn(),c=nn(),l=[`/properties`];function u(e){return[t,n,r,i,a,u(this,o),s,u(this,c)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function u(t,n){return e?t.$dataMetaSchema(n,l):n}}e.default=u})),an=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2020=void 0;let n=u(),r=Jt(),i=_(),a=rn(),o=`https://json-schema.org/draft/2020-12/schema`;var s=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),r.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(a.default.call(this,e),this.refs[`http://json-schema.org/schema`]=o)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}};e.Ajv2020=s,t.exports=e=s,t.exports.Ajv2020=s,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=s;var c=p();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return c.KeywordCxt}});var l=S();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return l.CodeGen}});var d=g();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return d.default}});var f=y();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return f.default}})})),on=e(te(),1),sn=e(qt(),1),cn=e(an(),1);const ln=new Set([`https://json-schema.org/draft/2019-09/schema`,`https://json-schema.org/draft/2019-09/schema#`]),un=new Set([`https://json-schema.org/draft/2020-12/schema`,`https://json-schema.org/draft/2020-12/schema#`]);var dn=class{bus;agentId;adapterId;adapterCapabilities;draft07Ajv=new on.default({allErrors:!0,strict:!1});draft2019Ajv=new sn.default({allErrors:!0,strict:!1});draft2020Ajv=new cn.default({allErrors:!0,strict:!1});validatorCache=new WeakMap;constructor(e){this.bus=e.bus,this.agentId=e.agentId,this.adapterId=e.adapterId,this.adapterCapabilities=e.adapterCapabilities}registerDefaultHandlers(){let e=this.bus.withFilter({agentId:this.agentId});return[e.on(E.structuredOutput.retryPolicy,e=>{e.setResult({maxRetries:0})},{priority:-1e3}),e.on(E.structuredOutput.enforce,e=>{e.setResult({enforced:!1,error:`No enforce handler registered`})},{priority:-1e3})]}async validateTerminalResult(e){let{responseSchema:t,message:n,sessionId:r}=e,i=this.validate(t,n);if(i.valid)return{message:n,structuredOutputValidation:{status:`passed`}};let a=n??``,o=i.errors;if(e.retryTurn){let n=await this.bus.requestOptional(E.structuredOutput.retryPolicy,{agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.adapterCapabilities,responseSchema:t,attemptNumber:1}),r=n.handled?n.data.maxRetries:0;for(let n=1;n<=r;n+=1){a=await e.retryTurn({attemptNumber:n,validationErrors:o});let r=this.validate(t,a);if(r.valid)return{message:a,structuredOutputValidation:{status:`passed`}};o=r.errors}}let s=await this.bus.requestOptional(E.structuredOutput.enforce,{agentId:this.agentId,adapterId:this.adapterId,sessionId:r,responseSchema:t,rawOutput:a,validationErrors:o,adapterHasCapability:this.adapterCapabilities.includes(`structuredOutput`)});if(s.handled&&s.data.enforced===!0&&s.data.output!==void 0){let{valid:e}=this.validate(t,s.data.output);if(e)return{message:s.data.output,structuredOutputValidation:{status:`enforced`}}}return{message:a,structuredOutputValidation:{status:`failed`,errors:o}}}validate(e,t){if(t===void 0||t===``)return{valid:!1,errors:[{message:`Expected JSON output but received empty string`,instancePath:``,schemaPath:`#`}]};let n;try{n=JSON.parse(t)}catch{return{valid:!1,errors:[{message:`Output is not valid JSON: ${t.slice(0,120)}`,instancePath:``,schemaPath:`#`}]}}let r=this.getValidator(e);if(r(n))return{valid:!0,errors:[]};let i=this.normalizeErrors(r.errors??[]);return i.length===0&&i.push({message:`Schema validation failed`,instancePath:``,schemaPath:`#`}),{valid:!1,errors:i}}getValidator(e){let t=this.validatorCache.get(e.schema);if(t!==void 0)return t;let n=this.getValidatorCompileTarget(e.schema),r;try{r=n.compiler.compile(n.schema)}catch(e){r=this.createCompileFailureValidator(e)}return this.validatorCache.set(e.schema,r),r}createCompileFailureValidator(e){let t=[{keyword:`schema`,instancePath:``,schemaPath:`#`,params:{},message:`Failed to compile response schema: ${e instanceof Error?e.message:String(e)}`}],n=this.draft07Ajv.compile({});return Object.assign(e=>!1,{errors:t,schema:n.schema,schemaEnv:n.schemaEnv})}getValidatorCompileTarget(e){let t=this.readSchemaUri(e),n=t===void 0?void 0:this.normalizeDraft202012Uri(t),r=t===void 0?void 0:this.normalizeDraft201909Uri(t);return n!==void 0&&un.has(n)?{compiler:this.draft2020Ajv,schema:this.withSchemaUri(e,n)}:r!==void 0&&ln.has(r)?{compiler:this.draft2019Ajv,schema:this.withSchemaUri(e,r)}:{compiler:this.draft07Ajv,schema:this.withoutSchemaUri(e)}}readSchemaUri(e){let t=e.$schema;return typeof t==`string`?t:void 0}normalizeDraft202012Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2020-12\/schema#?$/,e=>e.replace(`http://`,`https://`))}normalizeDraft201909Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2019-09\/schema#?$/,e=>e.replace(`http://`,`https://`))}withSchemaUri(e,t){return e.$schema===t?e:{...e,$schema:t}}withoutSchemaUri(e){if(e.$schema===void 0)return e;let t={...e};return delete t.$schema,t}normalizeErrors(e){return e.map(e=>({message:e.message??`Validation error`,instancePath:e.instancePath,schemaPath:e.schemaPath}))}};function fn(e){if(e instanceof se||e instanceof re||e instanceof ae||e instanceof oe)return e.code}var pn=class{connector;confirmedModel;initialModel;lastKnownAdapterSessionId;busHandlerCleanups=[];initialized=!1;runtimeSystemPrompt;lifecycleTracker;toolCallTracker=new Z;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;pendingStartMode;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??w},this.availableModels=e.availableModels,this.lifecycleTracker=new X({emitGlobal:this.emitGlobal.bind(this)}),this.payloadEmitter=St({globalBus:this.globalBus,getAgentContextBase:()=>({agentId:this.agentId,adapterId:this.adapterId,adapterName:this.adapterName,sessionId:this.sessionId}),lifecycleTracker:this.lifecycleTracker,getConnectorAdapterSessionId:()=>this.connector?.getConfirmedAdapterSessionId(),getLastKnownAdapterSessionId:()=>this.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:e=>{this.lastKnownAdapterSessionId=e},getEventMetadataDefaults:this.getEventMetadataDefaults.bind(this)}),this.eventBridge=Ct({emitGlobal:this.payloadEmitter.emitGlobal.bind(this.payloadEmitter),toolCallTracker:this.toolCallTracker,getBlockIndex:this.getBlockIndex.bind(this),incrementBlockIndex:this.incrementBlockIndex.bind(this),getUsageModel:()=>this.confirmedModel??this.initialModel}),this.turnExecutor=wt({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,adapterCapabilities:this.capabilities,globalBus:this.globalBus,getConnector:()=>this.connector,shouldUseNativeResume:this.shouldUseNativeResume.bind(this),hasResumeTarget:()=>this.config.resumeAdapterSessionId!==void 0,setPendingStartMode:this.setPendingStartMode.bind(this),onMessageHandle:this.onMessageHandle.bind(this),onBeforeDispatch:()=>this.runtimeMutationManager.applyStagedMutations(),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=Tt({agentId:this.agentId,sessionId:this.sessionId,globalBus:this.globalBus,getConnector:()=>this.connector,swapConnector:this.swapConnector.bind(this),emitGlobal:this.payloadEmitter.emitGlobal.bind(this.payloadEmitter),getProviderContext:()=>this.config.providerContext,setProviderContext:e=>void(this.config.providerContext=e),setReasoningEffort:e=>void(this.config.reasoningEffort=e),setMcpSessionContext:e=>this.config.mcpSessionContext=e,resolveSupportedReasoningLevels:e=>this.getSupportedReasoningLevels(e)}),this.connectorLifecycleManager=Et({agentId:this.agentId,buildConfigInput:this.buildConfigInput.bind(this),configFactory:this.config.configFactory,connectorFactory:this.config.connectorFactory,createOnMessageSent:this.createOnMessageSent.bind(this),wireEvents:this.wireEvents.bind(this),emitGlobal:this.payloadEmitter.emitGlobal.bind(this.payloadEmitter),getConnector:()=>this.connector,setConnector:e=>{this.connector=e},getRuntimeSystemPrompt:()=>this.runtimeSystemPrompt,setLastKnownAdapterSessionId:e=>{this.lastKnownAdapterSessionId=e}}),this.lifecycleEmitter=this.createLifecycleEmitter(),this.structuredOutputManager=this.createStructuredOutputManager()}getEventMetadataDefaults(){return{clientId:this.config.clientId,providerConfigId:this.connector?.providerConfigId??this.config.providerContext?.providerConfigId,occurredAt:Date.now()}}createLifecycleEmitter(){return new mt({agentId:this.agentId,globalBus:this.globalBus,emitStarted:async e=>{await this.payloadEmitter.emitGlobal(E.started,e)},emitComplete:async e=>{await this.payloadEmitter.emitGlobal(E.complete,e)},emitSessionClosed:async e=>{await this.payloadEmitter.emitGlobal(E.session.closed,e)},onBeforeEmitCompletion:this.onBeforeEmitCompletion.bind(this),clearToolCallTracker:()=>this.toolCallTracker.clear()})}createStructuredOutputManager(){return new dn({bus:this.globalBus,agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.capabilities})}get agentId(){return this.config.agentId}get adapterId(){return this.config.adapterId}get adapterName(){return this.config.adapterName}get capabilities(){return this.config.capabilities}get nativeTools(){return this.config.nativeTools}get sessionId(){return this.config.sessionId}get adapterSessionId(){return this.config.adapterSessionId}get globalBus(){return this.config.globalBus}async init(){if(this.initialized)throw Error(`AIAgent ${this.agentId} already initialized. init() can only be called once.`);let e=this.buildConfigInput(),t=await this.config.configFactory(e);this.connector=await this.config.connectorFactory({...t,onMessageSent:this.createOnMessageSent()}),this.config.nativeFork=void 0,this.busHandlerCleanups.push(...pt({globalBus:this.globalBus,agentId:this.agentId,onSendMessage:async e=>{await this.sendMessage(e)},onInterrupt:async e=>{await this.handleInterrupt(e)},getCapabilities:()=>({capabilities:this.capabilities,nativeTools:this.nativeTools,model:this.connector?.model??this.confirmedModel??this.initialModel}),onCwdChange:async e=>{await this.handleCwdChange(e)},onModelChange:async e=>{await this.handleModelChange(e)},onMcpServersSet:async e=>{await this.handleMcpServersSet(e)},onCredentialChange:async e=>{await this.handleCredentialChanged(e)}}),...this.structuredOutputManager.registerDefaultHandlers()),this.sessionId&&this.busHandlerCleanups.push(this.globalBus.on(j.turn.started,e=>{e.payload.agentIds.includes(this.agentId)&&this.connector.setCanonicalTurnNumber(e.payload.turnNumber)},{filter:{sessionId:this.sessionId}})),this.busHandlerCleanups.push(this.globalBus.on(k.tools.updated,()=>{this.connector.markToolRefreshPending()}),this.globalBus.on(k.tools.enabled,()=>{this.connector.markToolRefreshPending()})),await this.connectorLifecycleManager.wireAllConnectorEvents(this.connector),this.initialized=!0}async emitStart(e){let t=this.pendingStartMode??`rotation`;this.pendingStartMode=void 0,this.currentBlockIndex=0,await this.lifecycleEmitter.emitStart({model:this.connector.model,cwd:this.connector.cwd,startMode:t,...e})}setPendingStartMode(e){this.pendingStartMode=e}async emitCompletion(e){await this.lifecycleEmitter.emitCompletion(e)}emitError(e){this.lifecycleEmitter.emitError(e)}emitSessionClosed(e){this.lifecycleEmitter.emitSessionClosed(e)}async enrichPayload(e){return this.payloadEmitter.enrichPayload(e)}async emitGlobal(e,t){await this.payloadEmitter.emitGlobal(e,t)}async trackUsage(e){await this.eventBridge.trackUsage(e)}getContextWindowSize(e){let t=e??this.confirmedModel??this.initialModel;if(!(!t||!this.availableModels))return this.availableModels.find(e=>e.name===t)?.contextWindowSize}async emitContextWindowUpdate(e){await this.eventBridge.emitContextWindowUpdate(e)}async emitToolUse(e,t,n){return this.eventBridge.emitToolUse(e,t,n)}async emitToolOutput(e,t){return this.eventBridge.emitToolOutput(e,t)}async emitStepStarted(e,t,n){await this.eventBridge.emitStepStarted(e,t,n)}async emitStepFinished(e,t){await this.eventBridge.emitStepFinished(e,t)}getBlockIndex(){return this.currentBlockIndex}incrementBlockIndex(){this.currentBlockIndex++}async sendMessage(e){this.globalBus.requestOptional(M.updateStatus,{agentId:this.agentId,status:`active`}),this.lifecycleTracker.setCurrentTurnId(e.payload.turnId);try{let t=await this.turnExecutor.executeSendMessage(e.payload);e.setResult(t)}catch(e){throw this.lifecycleTracker.clearCurrentTurnId(),e}}async handleInterrupt(e){try{await this.ensureConnector().interrupt(),e.setResult({success:!0})}catch(t){e.setResult({success:!1,reason:t instanceof Error?t.message:String(t)})}}addConnectorWiringCleanup(e){this.connectorLifecycleManager.addConnectorWiringCleanup(e)}addBusHandlerCleanup(e){this.busHandlerCleanups.push(e)}async swapConnector(e){await this.connectorLifecycleManager.swapConnector(e),e?.providerContext!==void 0&&(this.config.providerContext=e.providerContext),e?.mcpSessionContext!==void 0&&(this.config.mcpSessionContext=e.mcpSessionContext)}getSupportedReasoningLevels(e){if(e)return this.availableModels?.find(t=>t.name===e)?.supportedReasoningLevels}buildConfigInput(e){let t=this.config,n=this.connector?.currentReasoningEffort??t.reasoningEffort,r=e?.providerContext??t.providerContext;r===void 0&&console.warn(`[AIAgent] No providerContext available for agent "${t.agentId}" — falling back to sentinel. This indicates the orchestrator did not populate a provider context before calling startAgent.`);let i=r??G();return{bus:t.adapterBus,globalBus:t.globalBus,agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:i,model:e?.model??t.model,cwd:e?.cwd??t.cwd,env:t.env,adapterSessionId:e?.adapterSessionId??t.adapterSessionId,sessionId:t.sessionId,resumeAdapterSessionId:e?.resumeAdapterSessionId??t.resumeAdapterSessionId,reasoningEffort:n,supportedReasoningLevels:this.getSupportedReasoningLevels(e?.model??t.model),allowedTools:t.allowedTools,disallowedTools:t.disallowedTools,allowedDirectories:t.allowedDirectories,providerConfig:t.adapterConfig,mcpSessionContext:e?.mcpSessionContext??t.mcpSessionContext,toolLedger:t.toolLedger,...t.nativeFork!==void 0&&{nativeFork:t.nativeFork},clientId:t.clientId,clientProfileName:t.clientProfileName,harnessId:t.harnessId,errorHandler:(e,t)=>{let n=fn(e);this.emitError({error:e.message,...n&&{errorCategory:n}})}}}createOnMessageSent(){return e=>{this.emitGlobal(E.user_message.sent,{messageId:e.messageId,content:e.message,deliveryMode:e.deliveryMode})}}async handleCwdChange(e){let t=await this.runtimeMutationManager.handleCwdChange(e.payload);e.setResult(t)}async handleModelChange(e){let t=await this.runtimeMutationManager.handleModelChange(e.payload);e.setResult(t)}async handleMcpServersSet(e){let t=await this.runtimeMutationManager.handleMcpServersSet(e.payload);e.setResult(t)}async handleCredentialChanged(e){let t=await this.runtimeMutationManager.handleCredentialChanged(e.payload);e.setResult(t)}subscribeConnector(e,t,n,r){let i=e.on(t,n,r);this.connectorLifecycleManager.addConnectorWiringCleanup(i)}async close(e={}){(e.emitSessionClosed??!0)&&this.emitSessionClosed(`closed`);for(let e of this.busHandlerCleanups)try{e()}catch(e){console.warn(`[AIAgent] Bus handler cleanup failed:`,e)}this.busHandlerCleanups=[],this.connectorLifecycleManager.clearConnectorWiring(),await this.connector.close()}ensureConnector(){if(!this.connector)throw Error(`AIAgent ${this.agentId} connector not initialized. Call init() or start() first.`);return this.connector}shouldUseNativeResume(e){return this.supportsNativeResume()?e?!(e.nativeLocality?.kind!==`native`||e.isFirstTurn||e.hasCompression||e.hasNewTransforms||e.hasConnectorSwap):!0:!1}supportsNativeResume(){return!1}supportsNativeFork(){return!1}async start(e,t){return this.initialized||await this.init(),t?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=t.systemPrompt),this.turnExecutor.executeStart(e,t,this.runtimeSystemPrompt,t?.responseSchema)}async initialize(e){e?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=e.systemPrompt);let t=this.config.nativeFork;this.initialized||await this.init();let n=e?.sessionContext,r=t&&!n?.nativeFork?{...n,nativeFork:t}:n,i=this.config.resumeAdapterSessionId!==void 0,a=$.deriveStartMode(r,this.shouldUseNativeResume(r),i);this.setPendingStartMode(a);let o=this.ensureConnector();return await o.initialize(e),o.getConfirmedAdapterSessionId()}async onBeforeEmitCompletion(){}async onMessageHandle(e,t){this.lifecycleEmitter.resetTurnState(),this.latestMessageCompletion=e.waitForCompletion();let n=e.responseSchema,r=n===void 0?void 0:async t=>{if(t.outcome!==`completed`)return t;let r=await this.structuredOutputManager.validateTerminalResult({responseSchema:n,message:t.result?.message,sessionId:this.sessionId,retryTurn:async({attemptNumber:t,validationErrors:r})=>{let i=this.connector;return i?(await(await i.sendMessage(e.message,{deliveryMode:`enqueue`,internalRetry:!0,messageId:`${e.messageId}:structured-output-retry:${t}`,messageHistory:e.messageHistory,responseSchema:n,turnContext:{...e.turnContext,structuredOutputRetry:{attemptNumber:t,validationErrors:r,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}})).waitForCompletion()).result?.message??``:``}});return{...t,result:t.result!==null&&t.result!==void 0?{...t.result,message:r.message}:t.result,structuredOutputValidation:r.structuredOutputValidation}};this.lifecycleTracker.track(e,(e,t,n)=>{let r=t.error instanceof Error?t.error.message:t.error;this.emitCompletion({message:t.result?.message,messageId:e,...n!==void 0&&{turnId:n},outcome:t.outcome,...r&&{error:r},...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation}})},r,{turnId:t})}abort(){this.emitSessionClosed(`aborted`),this.ensureConnector().abort()}async getAdapterSessionId(){return this.ensureConnector().getAdapterSessionId()}async complete(){let e=await this.ensureConnector().complete();return e===null||this.latestMessageCompletion===void 0?e:this.latestMessageCompletion}createConnectorEventMapping(e,t,n,r){let i=ft(this.globalBus,this.connector,e,r,t,n,this.enrichPayload.bind(this));return this.connectorLifecycleManager.addConnectorWiringCleanup(i),i}};function mn(e){let t=e.indexOf(`__`);return t===-1?{serverName:``,originalName:e}:{serverName:e.slice(0,t),originalName:e.slice(t+2)}}function hn(e){let{serverName:t,originalName:n}=mn(e);return{fullName:e,originalName:n,serverName:t,injected:!1,lastInjectedAtTurn:void 0,discovered:!1,firstDiscoveredAtTurn:void 0,callCount:0,lastCalledAtTurn:void 0}}var gn=class{entries=new Map;upsert(e){let t=this.entries.get(e);return t||(t=hn(e),this.entries.set(e,t)),t}recordInjection(e,t){let n=new Set(e.map(e=>e.name));for(let n of e){let e=this.upsert(n.name);e.injected=!0,e.lastInjectedAtTurn=t}for(let[e,t]of this.entries)t.injected&&!n.has(e)&&(t.injected=!1)}recordDiscovery(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t)}recordCall(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t),n.callCount+=1,n.lastCalledAtTurn=t}getInjectedTools(){return Array.from(this.entries.values()).filter(e=>e.injected)}getCallCount(e){return this.entries.get(e)?.callCount??0}getEntry(e){return this.entries.get(e)}getAllEntries(){return Array.from(this.entries.values())}async suggestInjectionSet(e,t){return e.directTools.map(e=>({name:e.fullName,description:e.description??``,toolsetName:e.serverName,inputSchema:e.inputSchema}))}};function _n(e){return typeof e.tool==`string`?e.tool:void 0}function vn(e){return e===de}var yn=class{entries=new Map;pendingAdapterSessionClaims=new Set;globalBus;adapterName;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName}claimAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!1;for(let t of this.entries.values())if(t.adapterSessionId===e)return!1;return this.pendingAdapterSessionClaims.add(e),!0}releaseAdapterSessionClaim(e){this.pendingAdapterSessionClaims.delete(e)}hasAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!0;for(let t of this.entries.values())if(t.adapterSessionId===e)return!0;return!1}set(e,t){t.adapterSessionId!==void 0&&this.pendingAdapterSessionClaims.delete(t.adapterSessionId),this.entries.set(e,t)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.clear(),this.pendingAdapterSessionClaims.clear()}async evict(e,t={}){let n=this.entries.get(e);this.entries.delete(e);let r;if(n)try{await n.agent.close({emitSessionClosed:t.emitSessionClosed})}catch(e){r=e}try{await this.globalBus.requestOptional(M.updateStatus,{agentId:e,status:`dead`})}catch(t){if(r===void 0)throw t;console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as dead:`,t)}if(r!==void 0)throw r}async evictSilently(e){let t=this.entries.get(e);if(this.entries.delete(e),t)try{await t.agent.close({emitSessionClosed:!1})}catch(t){console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during silent eviction:`,t)}}dispose(e){let t=this.entries.get(e);return t?(t.agent.close().catch(t=>{console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during dispose:`,t)}),this.entries.delete(e),this.globalBus.requestOptional(M.updateStatus,{agentId:e,status:`disposed`}).catch(t=>{console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as disposed:`,t)}),!0):!1}accumulateUsage(e,t,n){let r=this.entries.get(e);if(r)return r.usage.totalInputTokens+=t.inputTokens,r.usage.totalOutputTokens+=t.outputTokens,r.usage.totalCalls++,n&&n!==r.adapterSessionId&&(r.adapterSessionId=n),r}agentIdsBySession(e){return[...this.entries.entries()].filter(([,t])=>t.sessionId===e).map(([e])=>e)}};async function bn(e,t,n){let r={totalInputTokens:0,totalOutputTokens:0,totalCalls:0},i=await e.requestOptional(fe.getBySession,{sessionId:t,status:`completed`});if(!i.handled)return r;for(let e of i.data.turns){let t=e.usage?.byAgent?.[n];t&&(r.totalInputTokens+=t.inputTokens,r.totalOutputTokens+=t.outputTokens)}return r}function xn(e){let t=e.nativeLocality;if(typeof t==`object`&&t&&`kind`in t){let e=t.kind;if(e===`native`||e===`degrade`||e===`foreign`)return e}}var Sn=class{inFlight=new Map;globalBus;registry;createAgentFn;constructor(e){this.globalBus=e.globalBus,this.registry=e.registry,this.createAgentFn=e.createAgent}handleRehydrateAgent=async e=>{let{agentId:t,cwd:n,model:r,adapterSessionId:i,resumeAdapterSessionId:a}=e.payload,o=this.inFlight.get(t);if(o){await o,e.setResult({});return}let s=(async()=>{let e=this.registry.get(t);if(e){await this.rehydrateRegisteredAgent(t,e,{adapterSessionId:i,cwd:n,model:r});return}await this.rehydrateFromStorage(t,{adapterSessionId:i,rpcResumeId:a,cwd:n,model:r})})().catch(e=>{let n=e instanceof Error?e.message:String(e);throw Error(`Failed to recover agent ${t}: ${n}`)});this.inFlight.set(t,s);try{await s}finally{this.inFlight.delete(t)}e.setResult({})};async rehydrateFromStorage(e,t){let{adapterSessionId:n,rpcResumeId:r,cwd:i,model:a}=t,o=await this.globalBus.requestOptional(M.get,{agentId:e});if(!o.handled||!o.data.agent)throw Error(`Agent ${e} not found in storage`);let s=o.data.agent;if(s.status===`disposed`)throw Error(`Agent ${e} is disposed and cannot be rehydrated`);let c=await this.resolveMcpSessionContext(s.sessionId,s.profileId),l=s.providerConfigId===void 0?void 0:await _e(this.globalBus,s.providerConfigId).catch(G),u=n??s.adapterSessionId,d=r??void 0,f=xn(s),p=d??(d!==void 0||f===`native`?u:void 0),m={model:a??s.model,cwd:i??s.cwd,allowedDirectories:s.allowedDirectories,adapterSessionId:u,...p!==void 0&&{resumeAdapterSessionId:p},...l!==void 0&&{providerContext:l},...c!==void 0&&{mcpSessionContext:c}},h=await this.claimAndCreateAgent(e,s,m,p);(i!==void 0||a!==void 0)&&await this.globalBus.requestOptional(M.updateRuntime,{agentId:e,cwd:i,model:a});let g=await h.getAdapterSessionId()||s.adapterSessionId;if(!g)throw p!==void 0&&this.registry.releaseAdapterSessionClaim(p),Error(`Recovered agent ${e} has no adapterSessionId`);let _=await bn(this.globalBus,s.sessionId,e);this.registry.set(e,{agent:h,sessionId:s.sessionId,adapterSessionId:g,usage:_}),await this.globalBus.requestOptional(M.updateStatus,{agentId:e,status:`idle`})}async claimAndCreateAgent(e,t,n,r){if(r!==void 0&&!this.registry.claimAdapterSession(r))throw Error(`Provider session ${r} is already claimed by another in-flight rehydrate or start`);try{let r=await this.createAgentFn(e,t.sessionId,n),i=await this.resolvePersistedSystemPrompt(t.sessionId,t.personaId,t.profileId);return await r.initialize({...i!==void 0&&{systemPrompt:i}}),r}catch(e){throw r!==void 0&&this.registry.releaseAdapterSessionClaim(r),e}}async rehydrateRegisteredAgent(e,t,n){let r=n.adapterSessionId??t.adapterSessionId;await t.agent.swapConnector({cwd:n.cwd,model:n.model,adapterSessionId:r,resumeAdapterSessionId:r});let i=await t.agent.getAdapterSessionId();i&&(t.adapterSessionId=i),(n.cwd!==void 0||n.model!==void 0)&&await this.globalBus.requestOptional(M.updateRuntime,{agentId:e,cwd:n.cwd,model:n.model}),await this.globalBus.requestOptional(M.updateStatus,{agentId:e,status:`idle`})}async resolveMcpSessionContext(e,t){let n=await this.globalBus.requestOptional(j.get,{sessionId:e});if(!n.handled||!n.data.session)return;let r=await this.globalBus.requestOptional(k.session.resolve,{sessionId:e,projectId:null,profileId:t??null});return r.handled?r.data:void 0}async resolvePersistedSystemPrompt(e,t,n){if(!(!t&&!n))try{let r=await this.globalBus.requestOptional(j.resolveSystemPrompt,{sessionId:e,personaId:t,profileId:n});return r.handled?r.data.systemPrompt:void 0}catch{return}}};async function Cn(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=e.payload.providerContext??G(),s=crypto.randomUUID(),c=new dn({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l={bus:t.adapterBus,globalBus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:o,...r!==void 0&&{model:r},...t.platformDefaults?.cwd!==void 0&&{cwd:t.platformDefaults.cwd},...t.platformDefaults?.env!==void 0&&{env:t.platformDefaults.env},errorHandler:e=>{console.warn(`[handleInfer:${t.adapterName}] Ephemeral connector error: ${e.message}`)}},u=await t.configFactory(l),d=await t.connectorFactory(u);try{await d.initialize({...i!==void 0&&{systemPrompt:i},...a!==void 0&&{responseSchema:a}});let r=L(n),o={...i!==void 0&&{systemPrompt:i},turnContext:Q(void 0,a,t.adapterCapabilities),...a!==void 0&&{responseSchema:a}},s=await d.start(r,o),l=await s.messageHandle.waitForCompletion(),u=l.result?.message??``;a!==void 0&&l.outcome===`completed`&&(u=await wn({connector:d,manager:c,responseSchema:a,startResult:s,text:u})),e.setResult({text:u})}finally{try{await d.close()}catch(e){console.warn(`[handleInfer:${t.adapterName}] Connector cleanup error:`,e)}}}async function wn(e){let{connector:t,manager:n,responseSchema:r,startResult:i,text:a}=e,o=await n.validateTerminalResult({responseSchema:r,message:a,retryTurn:async({attemptNumber:e,validationErrors:n})=>{let a={deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageHandle.messageId}:structured-output-retry:${e}`,responseSchema:r,turnContext:{...i.messageHandle.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:n,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}};return(await(await t.sendMessage(i.messageHandle.message,a)).waitForCompletion()).result?.message??``}});if(o.structuredOutputValidation.status===`failed`)throw Tn(o.structuredOutputValidation.errors);return o.message??``}function Tn(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}function En(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0,n=Dn({model:e.model,allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,resumeAdapterSessionId:e.resumeAdapterSessionId,reasoningEffort:e.reasoningEffort,adapterConfig:e.adapterConfig,harnessId:e.harnessId,clientId:e.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:e.mcpSessionContext,toolLedger:e.toolLedger,ephemeral:e.ephemeral,nativeFork:e.nativeFork});return{...e.platformCwd!==void 0&&{cwd:e.platformCwd},...t!==void 0&&{env:t},...e.cwd!==void 0&&{cwd:e.cwd},...n}}function Dn(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function On(e,t,n){if(e.length===0)return;if(n&&n!==`unresolved`)return e.find(e=>e.definition.id===n)?.definition.availableModels;if(e.length===1)return e[0]?.definition.availableModels;if(!t)return;let r=e.filter(e=>(e.definition.availableModels??[]).some(e=>e.name===t));if(r.length===1)return r[0]?.definition.availableModels}function kn(e){if(e.mode!==`fork`)return;let t=e.sessionContext,n=t===void 0?void 0:A.parse(t);if(n?.nativeLocality?.kind===`native`)return n.nativeFork}async function An(e,t,n,r,i){let{adapterId:a,name:o,clientId:s,getPlatformDefaults:c,globalBus:l}=i,u=r.role,d=Date.now(),f=c(),p=r.cwd??f?.cwd,m=r.clientId??s;try{await l.requestOptional(M.set,{agentId:e,agent:{agentId:e,adapterId:a,adapterName:o,sessionId:t,adapterSessionId:n,model:r.model,cwd:p,allowedDirectories:r.allowedDirectories,role:u,status:`idle`,createdAt:d,lastActivityAt:d,...m!==void 0&&{clientId:m},...r.harnessId!==void 0&&{harnessId:r.harnessId}}})}catch(n){console.error(`[AIAdapter:${o}] Optional agent persistence failed:`,{agentId:e,adapterId:a,sessionId:t,error:n})}l.emit(j.agent.added,{sessionId:t,agentId:e,adapterId:a,adapterName:o,adapterSessionId:n,role:u,model:r.model,cwd:p}),l.emit(T.session.created,{adapterId:a,adapterName:o,adapterSessionId:n,sessionId:t,model:r.model??`unknown`})}async function jn(e,t,n,r){try{await e.evict(t)}catch(e){throw AggregateError([r,e],`[AIAdapter:${n}] startAgent persistence failed and live agent cleanup also failed.`,{cause:e})}}async function Mn(e,t,n,r){try{if(t.initialMessage!==void 0){let r=L(t.initialMessage),i=await e.start(r,{systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema});return{adapterSessionId:i.adapterSessionId,messageId:String(i.messageHandle.messageId),messageHandle:i.messageHandle}}return{adapterSessionId:await e.initialize({systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema})}}catch(n){try{await e.close({emitSessionClosed:!t.ephemeral})}catch(e){console.warn(`[AIAdapter:${r}] Agent cleanup failed after startAgent error:`,e)}throw n}}async function Nn(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function Pn(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function Fn(e,t,n){let{sessionContext:r,...i}=e;return{...i,providerContext:t,...n===void 0?{}:{sessionContext:n}}}async function In(e,t){if(e.ephemeral)return e.sessionId??crypto.randomUUID();if((e.mode??`create`)===`create`){let n=await t.requestOptional(j.create,{...e.sessionId?{sessionId:e.sessionId}:{}});return n.handled?n.data.sessionId:e.sessionId??crypto.randomUUID()}if(e.sessionId)return e.sessionId;throw Error(`startAgent ${e.mode} mode requires sessionId`)}function Ln(e){if(e.mode===`resume`&&`adapterSessionId`in e)return e.adapterSessionId}async function Rn(e){let{agentId:t,sessionId:n,payload:r,providerContext:i,sessionContext:a,adapterName:o,resumeAdapterSessionId:s,registry:c}=e,l;try{l=await e.createAgent(t,n,Fn(r,i,a))}catch(e){throw s!==void 0&&c.releaseAdapterSessionClaim(s),e}let u;try{u=await Mn(l,r,a,o)}catch(e){throw s!==void 0&&c.releaseAdapterSessionClaim(s),e}return{agent:l,startResult:u}}function zn(e){let{adapterId:t,name:n,clientId:r,getPlatformDefaults:i,registry:a,globalBus:o,createAgent:s}=e;return async function(e){let c=e.payload,l=crypto.randomUUID(),u=c.providerContext??G();Pn(c);let d=await In(c,o),f=Ln(c);if(f!==void 0&&!a.claimAdapterSession(f)){e.setResult({success:!1,message:`Provider session ${f} is already claimed by another in-flight start`});return}let{agent:p,startResult:m}=await Rn({agentId:l,sessionId:d,payload:c,providerContext:u,sessionContext:c.sessionContext?A.parse(c.sessionContext):void 0,adapterName:n,resumeAdapterSessionId:f,registry:a,createAgent:s}),{adapterSessionId:h,messageId:g,messageHandle:_}=m;if(a.set(l,{agent:p,sessionId:d,adapterSessionId:h,usage:{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}),!c.ephemeral)try{await An(l,d,h,{...c,providerContext:u},{adapterId:t,name:n,clientId:r,getPlatformDefaults:i,globalBus:o})}catch(e){throw await jn(a,l,n,e),e}e.setResult({success:!0,agentId:l,adapterId:t,sessionId:d,adapterSessionId:h,...g!==void 0&&{messageId:g}}),c.ephemeral&&Nn(a,l,n,_).catch(e=>{console.warn(`[AIAdapter:${n}] Ephemeral agent cleanup failed:`,e)})}}var Bn=class{adapterId;name;capabilities;nativeTools;namespace;globalBus;adapterBus;registry;cleanupFns=[];rehydrationManager;initialized=!1;clientId;platformDefaults;definitionProviders;agentFactory;configFactory;connectorFactory;constructor(e){this.adapterId=e.adapterId??crypto.randomUUID(),this.name=e.name,this.capabilities=e.capabilities,this.nativeTools=e.nativeTools??[],this.globalBus=e.globalBus??w,this.adapterBus=e.scopedBus,this.namespace=e.namespace,this.agentFactory=e.agentFactory,this.configFactory=e.configFactory,this.connectorFactory=e.connectorFactory,this.clientId=e.clientId,this.platformDefaults=e.platformDefaults,this.definitionProviders=e.definitionProviders??[],this.registry=new yn({globalBus:this.globalBus,adapterName:this.name}),this.rehydrationManager=new Sn({globalBus:this.globalBus,registry:this.registry,createAgent:this.createAgent.bind(this)})}setupHandlers(){let e=this.globalBus.withFilter({adapterId:this.adapterId});this.cleanupFns.push(e.on(T.startAgent,zn({adapterId:this.adapterId,name:this.name,clientId:this.clientId,getPlatformDefaults:()=>this.platformDefaults,registry:this.registry,globalBus:this.globalBus,createAgent:this.createAgent.bind(this)})),e.on(T.rehydrateAgent,this.rehydrationManager.handleRehydrateAgent),e.on(T.infer,e=>Cn(e,{adapterBus:this.adapterBus,globalBus:this.globalBus,adapterId:this.adapterId,adapterName:this.name,adapterCapabilities:this.capabilities,platformDefaults:this.platformDefaults,configFactory:this.configFactory,connectorFactory:this.connectorFactory})),e.on(E.session.closed,this.handleSessionClosed),e.on(E.started,this.handleStartedReconcileRegistry),e.on(E.usage,this.handleUsage),this.globalBus.on(j.closed,this.handleSessionClosedByService),e.on(T.listAgents,e=>{e.setResult({agents:Array.from(this.registry.values()).map(e=>({agentId:e.agent.agentId,sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}))})}),e.on(T.getAgent,e=>{let t=this.registry.get(e.payload.agentId);e.setResult({agent:t?{agentId:t.agent.agentId,sessionId:t.sessionId,adapterSessionId:t.adapterSessionId}:null})}),e.on(T.stopAgent,e=>{e.setResult({success:this.disposeAgent(e.payload.agentId)})}),e.on(T.getCapabilities,e=>{e.setResult({capabilities:this.capabilities,nativeTools:this.nativeTools})}))}handleSessionClosed=e=>{let{agentId:t,adapterSessionId:n,reason:r}=e.payload,i=this.registry.get(t);if(!i){console.warn(`Agent ${t} not found, can't emit AgentSubjects.session.closed`);return}let a=n??i.adapterSessionId??``;this.registry.evict(t).catch(e=>{console.error(`[AIAdapter:${this.name}] Failed to evict agent ${t} after session.closed:`,e)}),this.globalBus.emit(T.session.closed,{adapterId:this.adapterId,adapterName:this.name,agentId:t,sessionId:i.sessionId,adapterSessionId:a,reason:r})};handleSessionClosedByService=async e=>{let{sessionId:t}=e.payload,n=this.registry.agentIdsBySession(t);await Promise.all(n.map(e=>this.registry.evict(e,{emitSessionClosed:!1}).catch(t=>console.error(`[AIAdapter:${this.name}] Failed to evict agent ${e} after session.closed:`,t))))};handleStartedReconcileRegistry=e=>{let{agentId:t,adapterSessionId:n}=e.payload;if(!n)return;let r=this.registry.get(t);r&&!r.adapterSessionId&&(r.adapterSessionId=n)};handleUsage=e=>{let{agentId:t,adapterSessionId:n,inputTokens:r,outputTokens:i}=e.payload,a=this.registry.accumulateUsage(t,{inputTokens:r,outputTokens:i},n);a&&this.globalBus.emit(T.session.usage,{adapterId:this.adapterId,adapterName:this.name,sessionId:a.sessionId,adapterSessionId:a.adapterSessionId,...a.usage})};async init(){this.initialized||(this.globalBus.registerNamespaces([this.namespace.definition]),this.adapterBus??=await this.namespace.scopedBus(this.globalBus.getContext()),this.setupHandlers(),await this.onInit(),this.initialized=!0,await this.globalBus.emit(T.initialized,{adapterId:this.adapterId,adapterName:this.name,capabilities:this.capabilities,nativeTools:this.nativeTools}))}async onInit(){}async createAgent(e,t,n){if(!this.adapterBus)throw Error(`Adapter bus not initialized. Did you forget to call init()?`);let{model:r,cwd:i,env:a,allowedTools:o,disallowedTools:s,reasoningEffort:c,mcpSessionContext:l,harnessId:u,ephemeral:d}=n,f=n.clientId??this.clientId,p=n.resumeAdapterSessionId??(n.mode===`resume`?n.adapterSessionId:void 0),m=kn(n),h=On(this.definitionProviders,r,n.providerContext?.definitionId),g=l===void 0?void 0:new gn,_={agentId:e,adapterId:this.adapterId,adapterName:this.name,globalBus:this.globalBus,adapterBus:this.adapterBus,capabilities:this.capabilities,nativeTools:this.nativeTools,availableModels:h,configFactory:this.configFactory,connectorFactory:this.connectorFactory,sessionId:t,...n.providerContext!==void 0&&{providerContext:n.providerContext},...En({platformCwd:this.platformDefaults?.cwd,platformEnv:this.platformDefaults?.env,model:r,cwd:i,env:a,allowedTools:o,disallowedTools:s,allowedDirectories:n.allowedDirectories,adapterSessionId:n.adapterSessionId,reasoningEffort:c,adapterConfig:n.adapterConfig,resumeAdapterSessionId:p,harnessId:u,clientId:f,clientProfileName:n.clientProfileName,mcpSessionContext:l,toolLedger:g,ephemeral:d,nativeFork:m})};return this.agentFactory(_)}async closeAsync(){try{let e=await Promise.allSettled([...this.registry.values()].map(e=>e.agent.close()));this.registry.clear(),await this.onClose();let t=e.filter(e=>e.status===`rejected`).map(e=>e.reason instanceof Error?e.reason:Error(String(e.reason)));t.length>0&&console.warn(`[AIAdapter] ${t.length} agent(s) failed to close:`,t)}finally{for(let e of this.cleanupFns)try{e()}catch(e){console.warn(`[AIAdapter] Cleanup function failed:`,e)}this.cleanupFns=[],this.initialized=!1}}close(){this.closeAsync()}async onClose(){}getAgent(e){let t=this.registry.get(e);if(t)return Object.assign({},t.agent,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId})}disposeAgent(e){return this.registry.dispose(e)}getActiveAgents(){return Array.from(this.registry.values()).map(e=>Object.assign({},e.agent,{sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}))}isInitialized(){return this.initialized}};function Vn(e){let t={adapterSessionId:e.adapterSessionId,lineage:e.lineage,messages:e.messagePayloads};return e.compactionMetadata&&(t.compaction=e.compactionMetadata),e.turns&&(t.turns=e.turns),e.isSidechain!==void 0&&(t.isSidechain=e.isSidechain),e.compressChildren?.length&&(t.children=e.compressChildren.map(Vn)),t}var Hn=class{processLogFile(e){let t=Array.isArray(e)?e:[e],n=this.extractSessionContext(t),r=this.processRecords(t,n);return{adapterSessionId:n.adapterSessionId,sessionEvent:n.sessionEvent,messageEvents:[n.startedEvent,...r],messagePayloads:[],lineage:{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null}}}};function Un(e){let t=new Map,n=[];return n.push(e.on(a.get,e=>{let{filePath:n}=e.payload,r=t.get(n)??null;e.setResult({cursor:r})})),n.push(e.on(a.set,e=>{let{filePath:n,bytesRead:r,lastModified:i}=e.payload;t.set(n,{filePath:n,bytesRead:r,lastModified:i}),e.setResult({success:!0})})),n.push(e.on(a.delete,e=>{let{filePath:n}=e.payload,r=t.delete(n);e.setResult({success:r})})),()=>{n.forEach(e=>e()),t.clear()}}const Wn=C.object({sessions:C.record(C.string(),C.object({state:C.enum([`idle`,`active`]),currentTurnId:C.string().optional()}))}).default({sessions:{}});var Gn=class{options;sessions=new Map;generateTurnId;constructor(e){this.options=e,this.generateTurnId=e.generateTurnId??(()=>crypto.randomUUID())}processRecord(e){let t=this.options.getSessionId(e),n=this.getOrCreateSessionState(t),r=[],i=this.options.detectTurnStart(e),a=this.options.detectTurnComplete(e);if(i){n.state===`active`&&n.currentTurnId&&r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId});let e=this.generateTurnId(t);n.state=`active`,n.currentTurnId=e,r.push({type:`turn.started`,sessionId:t,turnId:e})}else a&&n.state===`active`&&n.currentTurnId&&(r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId}),n.state=`idle`,n.currentTurnId=void 0);return r}getState(e){return this.sessions.get(e)?.state??`idle`}getCurrentTurnId(e){return this.sessions.get(e)?.currentTurnId}hasActiveTurn(e){return this.getState(e)===`active`}resetSession(e){return this.sessions.delete(e)}resetAll(){this.sessions.clear()}serialize(){let e={};for(let[t,n]of this.sessions)e[t]={state:n.state,currentTurnId:n.currentTurnId};return{sessions:e}}restore(e){this.sessions.clear();for(let[t,n]of Object.entries(e.sessions))this.sessions.set(t,{state:n.state,currentTurnId:n.currentTurnId})}getTrackedSessions(){return Array.from(this.sessions.keys())}forceCompleteTurn(e){let t=this.sessions.get(e);if(!t||t.state!==`active`||!t.currentTurnId)return;let n={type:`turn.completed`,sessionId:e,turnId:t.currentTurnId};return t.state=`idle`,t.currentTurnId=void 0,n}getOrCreateSessionState(e){let t=this.sessions.get(e);return t||(t={state:`idle`,currentTurnId:void 0},this.sessions.set(e,t)),t}};const Kn=C.object({eventType:C.literal(`agent_started`),model:C.string().optional()}),qn=C.object({eventType:C.literal(`agent_complete`),message:C.string().optional(),error:C.string().optional()}),Jn=C.object({eventType:C.literal(`error`),message:C.string(),code:C.string().or(C.number()).optional(),type:C.string().optional()}),Yn=C.object({eventType:C.literal(`tool_started`),toolName:C.string(),toolCallId:C.string()}),Xn=C.object({eventType:C.literal(`tool_completed`),toolName:C.string(),toolCallId:C.string(),result:C.string(),success:C.boolean()});export{Bn as AIAdapter,pn as AIAgent,J as AIAgentConnector,qn as AgentCompleteEventSchema,xt as AgentConnectorLifecycleManager,ht as AgentEventBridge,mt as AgentLifecycleEmitter,gt as AgentPayloadEmitter,bt as AgentRuntimeMutationManager,Kn as AgentStartedEventSchema,$ as AgentTurnExecutor,lt as BaseConnectorSession,Y as BaseConnectorTurn,Hn as BaseLogImporter,Jn as ErrorEventSchema,o as ImportCursorPositionSchema,i as ImportCursorStorageNamespace,a as ImportCursorStorageSubjects,Ve as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,B as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,Be as MAKAIO_CONFORMANCE_PROVIDER_ENV,He as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,q as MessageHandle,X as MessageLifecycleTracker,dt as ProceduralAgentConnector,ut as ProceduralConnectorTurn,$e as ScopedToolApprovalSchema,rt as SessionLifecycle,gn as SessionToolLedger,Z as ToolCallTracker,Xn as ToolCompletedEventSchema,Yn as ToolStartedEventSchema,Gn as TurnTracker,Wn as TurnTrackerSerializedStateSchema,it as UserMessageQueue,n as cleanEnvForAdapter,xe as createAdapterNamespace,z as createTestProviderContext,et as createToolApprovalHandler,Pe as defineDiscriminatedHandlers,Fe as defineDiscriminatedHandlersSync,_n as extractMcpCallTarget,F as formatContextBlockAsText,Me as formatContextBlocksAsText,Ye as formatMessageHistoryAsTranscript,vn as isMcpCallTool,tt as isTextLikeMimeType,ct as markCompletedWithFinalResult,Qe as mergeScopedToolApproval,R as normalizeEnvValue,L as normalizeMessageInput,W as normalizeMimeType,Ne as parseAIAdapterCapabilities,Ie as processDiscriminatedItems,Le as processDiscriminatedItemsSync,K as processQueueMessages,pt as registerAgentBusHandlers,Un as registerMemoryImportCursorStorage,Ke as resolveConformanceTestPreset,qe as resolveDisabledNativeTools,nt as resolvePresetCredentials,U as resolveRequiredSessionId,ze as resolveTestConfig,P as safeJsonStringify,Ze as serializeBlockToText,Ae as serializeTurnContext,Vn as toImportSegment};
11
+ `)}function Xe(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function Ze(e){switch(e.type){case`text`:return e.content;case`reasoning`:return e.content;case`tool_call`:return`[Tool: ${e.name}]\n${JSON.stringify(e.args)}`;case`tool_output`:return`[Tool ${e.isError?`Error`:`Result`} ${e.toolCallId}]\n${e.output}`;case`image`:return`[Image]`;case`document`:return`[Document]`;case`attachment`:return`[Attachment: ${e.displayName?.trim()?e.displayName:e.fileName||`Attachment`}]`;default:return Xe(e)}}function H(e,t,n,r,i){let a=e??(i?t:void 0);if(!a)throw Error(`[${r}] toGlobalToolApproval: ${n} must come from tool approval context`+(i?` or trusted payload`:``));return a}function U(e,t,n,r=!1){return H(e,t,`sessionId`,n,r)}function Qe(e,t,n,r={}){let i=r.allowPayloadIdentityFallback??!1;if(i){let e=[t.agentId,t.adapterId,t.adapterName,t.adapterSessionId],r=e.filter(Boolean).length;if(r>0&&r<e.length)throw Error(`[${n}] toGlobalToolApproval: context must supply all four identity fields (agentId, adapterId, adapterName, adapterSessionId) or none — partial context with allowPayloadIdentityFallback creates a mixed-source identity tuple`)}let a=U(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:H(t.agentId,e.agentId,`agentId`,n,i),adapterId:H(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:H(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:H(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const $e={request:D.request.extend({sessionId:C.string().optional()}),response:D.response};function et(e,t,n){return function(r,i,a){return r.on(e,async e=>{try{let r=typeof i==`function`?await i():i,o=t(e.payload,r),s=await a.request(E.toolApprove,o);e.setResult(n(s))}catch(t){console.error(`[createToolApprovalHandler] Tool approval request failed:`,t);let r=t instanceof Error?`: ${t.message}`:``;e.setResult(n({action:`deny`,message:`Tool approval request failed${r}`,shouldAbort:!0}))}})}}function W(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function tt(e){let t=W(e);return t.startsWith(`text/`)?!0:[`application/json`,`application/xml`,`application/sql`,`application/graphql`,`application/javascript`,`application/typescript`,`application/x-yaml`,`application/toml`].includes(t)}function nt(e){if(!e.credentialEnvVars)return;let t={};for(let[n,r]of Object.entries(e.credentialEnvVars)){let e=process.env[r];e!==void 0&&(t[n]=e)}return Object.keys(t).length>0?t:void 0}function G(){return{providerConfigId:`sentinel`,definitionId:`unresolved`,credentialRefs:{}}}var rt=class{abortController;terminated=!1;constructor(e){this.abortController=e??new AbortController}get signal(){return this.abortController.signal}get isTerminated(){return this.terminated}abort(e){this.terminated||(this.terminated=!0,this.abortController.abort(),e&&Promise.resolve(e()).catch(e=>{console.error(`Error during session cleanup:`,e)}))}onAbort(e){this.abortController.signal.addEventListener(`abort`,e)}},it=class{queue=[];enqueue(e){if(e.deliveryMode===`replace`){for(let t of this.queue)t.state===`queued`&&(t.supersededBy=e.messageId,t.markCompleted({outcome:`superseded`,supersededBy:e.messageId}));this.removeSuperseded()}if(e.internalRetry&&e.deliveryMode===`enqueue`){this.enqueueInternalRetry(e);return}this.queue.push(e)}enqueueInternalRetry(e){let t=this.queue.findIndex(e=>e.deliveryMode!==`immediate`&&!e.internalRetry);if(t===-1){this.queue.push(e);return}this.queue.splice(t,0,e)}removeSuperseded(){for(let e=this.queue.length-1;e>=0;e--)this.queue[e].supersededBy&&this.queue.splice(e,1)}dequeue(){return this.queue.shift()}peek(){return this.queue[0]}isEmpty(){return this.queue.length===0}size(){return this.queue.length}clear(){this.queue.length=0}findImmediate(){return this.queue.find(e=>e.deliveryMode===`immediate`)}removeImmediate(e){let t=this.queue.indexOf(e);t>=0&&this.queue.splice(t,1)}drainEnqueued(){let e=[];for(let t=this.queue.length-1;t>=0;t--)this.queue[t].deliveryMode===`enqueue`&&e.unshift(this.queue.splice(t,1)[0]);return e}};async function K(e,t){let n=t.getCurrentTurn(),r=t.extractContent??at;if(n?.canAcceptImmediate()){let i=e.findImmediate();if(i)if(e.removeImmediate(i),(await n.pause()).turnEnded)i.markCompleted({outcome:`rejected`});else{let a=n.getMessageHandle(),o=e.drainEnqueued(),s=[];a&&!a.isProcessed&&(s.push(r(a)),a.supersededBy=i.messageId,a.markCompleted({outcome:`superseded`,supersededBy:i.messageId}));for(let e of o)s.push(r(e)),e.supersededBy=i.messageId,e.markCompleted({outcome:`merged`,mergedInto:i.messageId});let c=t.collectMergeExtra?.(a,o);return await t.onBeforeImmediateTurn?.(),await t.startNewTurn(i,s,c),!0}}let i=e.peek();return(!n||n.isCompleted()||i?.internalRetry===!0&&n.getMessageHandle().isProcessed)&&i?i.deliveryMode===`immediate`&&n?.isCompleted()?(e.dequeue(),i.markCompleted({outcome:`rejected`}),K(e,t)):(e.dequeue(),await t.startNewTurn(i),!0):!1}function at(e){return e.message.message}const ot=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function st(e,t){if(e===t)return null;let n=[];switch(t){case`processing_started`:break;case`turn_started`:([`idle`,`processing_finished`,`paused`].includes(e)||e===`active`)&&n.push(`processing_started`);break;case`step_started`:[`idle`,`processing_finished`,`paused`].includes(e)||e===`active`?n.push(`processing_started`,`turn_started`):[`processing_started`,`turn_finished`].includes(e)&&n.push(`turn_started`);break;case`step_finished`:break;case`turn_finished`:e===`step_started`&&n.push(`step_finished`);break;case`processing_finished`:e===`step_started`?n.push(`step_finished`,`turn_finished`):[`turn_started`,`step_finished`].includes(e)&&n.push(`turn_finished`);break}return{isCompletionState:ot.includes(t),statesToEmit:[...n,t]}}var q=class{messageId;message;deliveryMode;responseSchema;internalRetry;deferredCompletion;deferredAcknowledgement;state;isAcknowledged=void 0;completionResult=void 0;completionStarted=!1;completionTransforms=[];completionObservers=[];mergedInto;mergedFrom;supersededBy;deferredAdapterSessionId=new N;_adapterSessionId;_messageHistory;_cacheStrategy;_turnContext;constructor(e,t,n,r,i,a,o=!1,s){this.messageId=e,this.message=t,this.deliveryMode=n,this.responseSchema=a,this.internalRetry=o,this.deferredCompletion=new N,this.deferredAcknowledgement=new N,this.state=`queued`,this._messageHistory=r,this._cacheStrategy=s,this._turnContext=i}get messageHistory(){return this._messageHistory}set messageHistory(e){this._messageHistory=e}get cacheStrategy(){return this._cacheStrategy}set cacheStrategy(e){this._cacheStrategy=e}get turnContext(){return this._turnContext}set turnContext(e){this._turnContext=e}get adapterSessionId(){return this._adapterSessionId}set adapterSessionId(e){e&&!this._adapterSessionId&&(this._adapterSessionId=e,this.deferredAdapterSessionId.resolve(e))}waitForAdapterSessionId(){return this._adapterSessionId?Promise.resolve(this._adapterSessionId):this.deferredAdapterSessionId.getPromise()}get isProcessed(){return this.state===`completed`||this.state===`cancelled`}getState(){return this.state}updateState(e){this.state=e}async cancel(){return this.updateState(`cancelled`),this.completionStarted=!0,this.completionResult={outcome:`cancelled`},this.deferredAcknowledgement.reject(Error(`Message cancelled`)),this.deferredCompletion.resolve(this.completionResult),!0}markAcknowledged(e=!0){this.isAcknowledged===void 0&&(this.isAcknowledged=e,this.updateState(`acknowledged`),this.deferredAcknowledgement.resolve(e))}addCompletionTransform(e){if(this.completionStarted)throw Error(`Cannot add a completion transform after completion has started`);this.completionTransforms.push(e)}addCompletionObserver(e){if(this.completionStarted)throw Error(`Cannot add a completion observer after completion has started`);this.completionObservers.push(e)}markCompleted(e){this.completionStarted?console.warn(`markCompleted called for messageId: ${this.messageId} but already completed.`):(this.completionStarted=!0,this.updateState(`completed`),this.isAcknowledged===void 0&&(this.isAcknowledged=!1,this.deferredAcknowledgement.resolve(!1)),this.resolveCompletion(e))}async resolveCompletion(e){let t=e;try{for(let e of this.completionTransforms)t=await e(t)}catch(e){t={outcome:`error`,error:e instanceof Error?e:String(e)}}this.completionResult=t,this.notifyCompletionObservers(t),this.deferredCompletion.resolve(t)}notifyCompletionObservers(e){for(let t of this.completionObservers)try{t(e)}catch(e){console.warn(`[MessageHandle] completion observer failed for messageId: ${this.messageId}`,e)}}async waitForAcknowledgment(e){if(this.isAcknowledged!==void 0)return this.isAcknowledged;if(e){let t=await Promise.race([this.deferredAcknowledgement.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Acknowledgment timeout`)),e))]);if(t instanceof Error)throw this.markCompleted({outcome:`error`,error:t}),t;return t}return this.deferredAcknowledgement.getPromise()}async waitForCompletion(e){if(this.completionResult)return this.completionResult;if(e){let t=await Promise.race([this.deferredCompletion.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Completion timeout`)),e))]);if(t instanceof Error)throw t;return t}return this.deferredCompletion.getPromise()}};function ct(e,t,n){let r=n!==void 0&&!e.isProcessed;return e.markCompleted(t),r?e.waitForCompletion().then(async t=>{try{await n(e,t)}catch(t){console.warn(`[MessageHandle] completion notification failed for messageId: ${e.messageId}`,t)}}):Promise.resolve()}var J=class{agentId;adapterSessionId;sessionId;pendingMessageHandle;scopedBus;globalBus;filteredBus;errorHandler;deferredInterrupt;emittery=new r;processingState=`idle`;adapterId;timeouts;lastResult=null;config;model;providerConfigId;cwd;currentReasoningEffort;supportedReasoningLevels;env;_currentTurnNumber=0;_pendingCanonicalTurnNumber;adapterName;systemPrompt;constructor(e){let t=e.cwd??ve.tmpdir();if(!ne.existsSync(t))throw new ie(t);this.agentId=e.agentId??crypto.randomUUID(),this.scopedBus=e.bus,this.globalBus=e.globalBus??w,this.filteredBus=e.bus.withFilter({agentId:this.agentId}),this.adapterId=e.adapterId,this.adapterName=e.adapterName,this.adapterSessionId=e.adapterSessionId,this.sessionId=e.sessionId,this.timeouts=e.timeouts??ye([]),this.errorHandler=e.errorHandler,this.model=e.model,this.providerConfigId=e.providerConfigId,this.cwd=t,this.currentReasoningEffort=e.reasoningEffort,this.supportedReasoningLevels=e.supportedReasoningLevels,this.config=e,this.env=n(e?.env??be.env)}getProcessingState(){return this.processingState}handlePause(e){this.updateProcessingState(`paused`)}captureSystemPrompt(e){e!==void 0&&(this.systemPrompt=e)}async updateProcessingState(e){let t=st(this.processingState,e);if(!t)return;let{statesToEmit:n}=t;this.processingState=e;for(let e of n)await this.emittery.emit(`processingStateChanged`,e)}onProcessingStateChanged(e){return this.emittery.on(`processingStateChanged`,e)}async onceProcessingStateChanged(e){return this.emittery.once(`processingStateChanged`,e)}getConfirmedAdapterSessionId(){return this.adapterSessionId}createMessageHandle(e,t){let n=new q(t?.messageId??crypto.randomUUID(),e,t?.deliveryMode??`enqueue`,t?.messageHistory,t?.turnContext,t?.responseSchema,t?.internalRetry??!1,t?.cacheStrategy);return n.adapterSessionId=this.adapterSessionId,t?.internalRetry||this.config.onMessageSent?.(n),n}markToolRefreshPending(){}setCanonicalTurnNumber(e){if(!Number.isInteger(e)||e<1)throw RangeError(`setCanonicalTurnNumber: expected positive integer, got ${e}`);if(e<=this._currentTurnNumber)throw RangeError(`setCanonicalTurnNumber: ${e} ≤ current (${this._currentTurnNumber})`);if(this._pendingCanonicalTurnNumber!==void 0&&e<this._pendingCanonicalTurnNumber)throw RangeError(`setCanonicalTurnNumber: ${e} < pending (${this._pendingCanonicalTurnNumber})`);this._pendingCanonicalTurnNumber=e}consumeTurnNumber(){return this._pendingCanonicalTurnNumber===void 0?(this._currentTurnNumber+=1,this._currentTurnNumber):(this._currentTurnNumber=this._pendingCanonicalTurnNumber,this._pendingCanonicalTurnNumber=void 0,this._currentTurnNumber)}get currentTurnNumber(){return this._currentTurnNumber}get pendingTurnNumber(){return this._pendingCanonicalTurnNumber}async changeModelInPlace(e){return!1}async changeCwdInPlace(e){return!1}async changeReasoningInPlace(e){return!1}handleError(e,t=!1){let n=e instanceof Error?e:Error(String(e));console.warn(`[AIAgentConnector:handleError] pendingMessageHandle=${this.pendingMessageHandle?.messageId}, errorType=${n.name}, terminate=${t}`),this.errorHandler?.(n,t),this.pendingMessageHandle&&(this.pendingMessageHandle.markCompleted({outcome:`error`,error:n}),this.pendingMessageHandle=void 0,this.handlePause(`error`)),t&&this.abort()}handleToolApprovalDenied(e,t){e!==`not_requested`&&queueMicrotask(()=>{this.handleError(Error(`Tool use denied by approval handler: ${t}`),!1)})}getAgentId(){return this.agentId}getAdapterName(){return this.adapterName}getTimeoutMs(e){return this.timeouts.values[e]}requestToolApproval(e,t){return this.scopedBus.request(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId,sessionId:this.sessionId})}async requestToolApprovalWithHandling(e,t){return this.requestToolApproval(e,t).catch(e=>{let t=e;throw(e instanceof ue||e instanceof le)&&(t=Error(`Tool approval request failed, make sure that there's a handler registered: `+e.message)),this.handleError(t,!1),e})}emit(e,t){return this.scopedBus.emit(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId})}on(e,t,n){return this.filteredBus.on(e,t,n)}once(e,t){return this.filteredBus.once(e,t)}logLowLevelEvent(e){}},lt=class{config;bus;sessionId;currentTurn;constructor(e){this.config=e,this.bus=e.bus}async abort(){await this.currentTurn?.pause()}async sendMessage(e,t){throw Error(`Use processQueue instead`)}async getAdapterSessionId(){return this.sessionId}},Y=class{state;bus;adapterId;adapterName;stateChangedCallback;constructor(e,t,n,r){this.bus=e,this.adapterId=t,this.adapterName=n,this.state=r}onStateChanged(e){this.stateChangedCallback=e}async transitionTo(e){let t=this.state;this.state=e,await this.emitStateChange(t,e),await this.stateChangedCallback?.(t,e)}getState(){return this.state}getMessageHandle(){return this.activeMessageHandle}markAcknowledged(){this.activeMessageHandle.markAcknowledged()}markCompleted(e){this.activeMessageHandle.markCompleted(e)}},ut=class extends Y{activeMessageHandle;connectorBus;agentId;turnSubjects;aborted=!1;constructor(e,t){super(e.bus,e.adapterId,e.adapterName,t),this.connectorBus=e.bus,this.agentId=e.agentId,this.activeMessageHandle=e.messageHandle,this.turnSubjects=e.turnSubjects}async emitStateChange(e,t){let n={adapterId:this.adapterId,agentId:this.agentId,oldState:e,newState:t,timestamp:Date.now()};switch(await this.connectorBus.emit(this.turnSubjects.state_changed,n),t){case`turn_started`:await this.connectorBus.emit(this.turnSubjects.turn_started,n);break;case`step_started`:await this.connectorBus.emit(this.turnSubjects.step_started,n);break;case`step_finished`:await this.connectorBus.emit(this.turnSubjects.step_finished,n);break;case`turn_finished`:await this.connectorBus.emit(this.turnSubjects.turn_finished,n);break}}async start(){await this.transitionTo(`turn_started`)}async markStepStarted(){(this.state===`turn_started`||this.state===`step_finished`)&&await this.transitionTo(`step_started`)}async markStepFinished(){this.state===`step_started`&&await this.transitionTo(`step_finished`)}async markTurnFinished(){await this.transitionTo(`turn_finished`)}async pause(){if(this.state===`turn_finished`)return{stateBeforePause:this.state,turnEnded:!0};let e=this.state;return this.aborted=!0,{stateBeforePause:e,turnEnded:!1}}async resume(e){throw Error(`${this.adapterName} does not support resume - create new turn with merged content`)}isPaused(){return this.aborted}isCompleted(){return this.state===`turn_finished`}canAcceptImmediate(){return this.state!==`turn_finished`&&!this.aborted}},dt=class extends J{turnEventsWired=!1;getWireSessionConfig(){}wireSessionEvents(){if(this.turnEventsWired)return;this.turnEventsWired=!0;let e=this.getTurnSubjects(),t=this.getWireSessionConfig();this.on(e.turn_started,(async()=>{try{await t?.onTurnStarted?.()}catch(e){console.error(`[ProceduralAgentConnector] onTurnStarted hook failed:`,e)}await this.updateProcessingState(`turn_started`)})),this.on(e.step_started,(async()=>{await this.updateProcessingState(`step_started`)})),this.on(e.step_finished,(async()=>{await this.updateProcessingState(`step_finished`);let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()&&await e.processQueue(t)})),this.on(e.turn_finished,(async()=>{await this.updateProcessingState(`turn_finished`);let e=async()=>{await this.updateProcessingState(`processing_finished`);let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()?await e.processQueue(t):await this.updateProcessingState(`idle`)};t?.onTurnFinished?await t.onTurnFinished(e):await e()}))}async processUserMessages(e){let[t]=e,n=await this.ensureSession(),r=this.getSessionQueue();return r.enqueue(t),t.adapterSessionId=this.adapterSessionId,(this.getProcessingState()===`idle`||this.getProcessingState()===`paused`)&&await this.updateProcessingState(`active`),await n.processQueue(r),new Set([t])}async initialize(e){this.getSession()||(this.captureSystemPrompt(e?.systemPrompt),await this.ensureSession())}async start(e,t){this.captureSystemPrompt(t?.systemPrompt);let n=await this.sendMessage(e,t);return{adapterSessionId:await this.getAdapterSessionId(),messageHandle:n,agentId:this.agentId}}async complete(){for(;this.getProcessingState()!==`idle`&&this.getProcessingState()!==`paused`;)await this.onceProcessingStateChanged();return this.lastResult}acceptsImmediate(){return this.getSession()?.getCurrentTurn()?.canAcceptImmediate()??!1}};function ft(e,t,n,r,i,a,o){let s=t=>async(n,r)=>{let i=t,a={...r,agentId:i.agentId,adapterId:i.adapterId,adapterName:i.adapterName,adapterSessionId:i.adapterSessionId,messageId:i.messageId};await e.emit(n,a)};return t.on(n,(async t=>{let n=r?t.payload[r]:t.payload;if(!n||typeof n!=`object`)return;let c=a[n[i]];if(!c)return;let l=await o(n),u=s(l);if(typeof c==`function`)await c(l,u);else{let{sessionId:t,...n}=l;await e.emit(c,n)}}))}var X=class{currentMessageId;currentTurnId;emitGlobal;constructor(e){this.emitGlobal=e.emitGlobal}getCurrentMessageId(){return this.currentMessageId}setCurrentTurnId(e){this.currentTurnId=e}clearCurrentTurnId(){this.currentTurnId=void 0}getCurrentTurnId(){return this.currentTurnId}acknowledge(e,t){let{messageId:n,message:r,mergedFrom:i}=e;this.currentMessageId=n,this.emitGlobal(E.user_message.acknowledged,{messageId:n,mergedFrom:i,...t!==void 0&&{turnId:t}}),this.emitGlobal(E.turn.started,{messageId:n,content:r,mergedFrom:i,...t!==void 0&&{turnId:t}})}complete(e,t,n){let{messageId:r}=e;this.currentMessageId===r&&(this.currentMessageId=void 0),this.currentTurnId===n&&(this.currentTurnId=void 0),this.emitGlobal(E.turn.completed,{messageId:r,message:t.result?.message,outcome:t.outcome,error:t.error instanceof Error?t.error.message:typeof t.error==`string`?t.error:void 0,...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation},...n!==void 0&&{turnId:n}}),this.emitGlobal(E.user_message.completed,{messageId:r,outcome:t.outcome,supersededBy:t.supersededBy,mergedInto:t.mergedInto,...n!==void 0&&{turnId:n}})}track(e,t,n,r){let i=r?r.turnId:this.currentTurnId;n!==void 0&&e.addCompletionTransform(async e=>{try{return await n(e)}catch(t){let n={status:`failed`,errors:[{message:t instanceof Error?t.message:`Structured output validation failed`,instancePath:``,schemaPath:`#`}]};return{...e,structuredOutputValidation:n}}}),e.waitForAcknowledgment().then(()=>{this.acknowledge(e,i)}),e.waitForCompletion().then(n=>{this.complete(e,n,i),t&&t(e.messageId,n,i)})}},Z=class{pending=[];register(e,t,n){let r=n??crypto.randomUUID();return this.pending.push({correlationId:r,toolName:e,args:t,nativeId:n,registeredAt:Date.now()}),r}resolve(e){if(e.nativeId){let t=this.pending.findIndex(t=>t.nativeId===e.nativeId);if(t>=0){let[e]=this.pending.splice(t,1);return{correlationId:e.correlationId,strategy:`nativeId`,toolName:e.toolName,args:e.args}}}if(e.toolName){let t=this.pending.findIndex(t=>t.toolName===e.toolName);if(t>=0){let[e]=this.pending.splice(t,1);return{correlationId:e.correlationId,strategy:`toolName`,toolName:e.toolName,args:e.args}}}if(!e.nativeId&&!e.toolName&&this.pending.length>0){let[e]=this.pending.splice(0,1);return{correlationId:e.correlationId,strategy:`oldest`,toolName:e.toolName,args:e.args}}return{correlationId:null,strategy:`none`}}clear(){this.pending=[]}};function Q(e,t,n){return!t||n.includes(`structuredOutput`)?e:{...e,structuredOutput:`Respond ONLY with valid JSON conforming to this schema:\n${JSON.stringify(t.schema,null,2)}\nDo not include any other text, markdown formatting, or explanation.`}}var $=class e{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;hasResumeTarget;setPendingStartMode;onMessageHandle;onBeforeDispatch;ephemeral;constructor(e){this.agentId=e.agentId,this.adapterId=e.adapterId,this.sessionId=e.sessionId,this.adapterCapabilities=e.adapterCapabilities??[],this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.shouldUseNativeResume=e.shouldUseNativeResume,this.hasResumeTarget=e.hasResumeTarget,this.setPendingStartMode=e.setPendingStartMode,this.onMessageHandle=e.onMessageHandle,this.onBeforeDispatch=e.onBeforeDispatch,this.ephemeral=e.ephemeral??!1}static deriveStartMode(e,t,n=!1){return e?.nativeFork?`fork`:e?t?`resume`:e.isFirstTurn?`fresh`:`rotation`:n?`resume`:`fresh`}deriveAndSetPendingStartMode(t){let n=this.shouldUseNativeResume(t),r=e.deriveStartMode(t,n,this.hasResumeTarget());return this.setPendingStartMode(r),n}async executeSendMessage(e){await this.onBeforeDispatch?.();let t=this.getConnector(),n=e.sessionContext?A.parse(e.sessionContext):void 0,r=await this.resolvePreUserMessageTurn({message:e.message,sessionContext:n,cwd:t.cwd,messageId:e.messageId}),i=this.deriveAndSetPendingStartMode(r.sessionContext),a=L(r.message),o=await t.sendMessage(a,{deliveryMode:e.deliveryMode,messageId:e.messageId,messageHistory:i?void 0:r.sessionContext?.messageHistory,cacheStrategy:i?void 0:r.sessionContext?.cacheStrategy,turnContext:Q(r.sessionContext?.turnContext,e.responseSchema,this.adapterCapabilities),...e.responseSchema!==void 0&&{responseSchema:e.responseSchema}});return this.firePostUserMessageHooks(o.messageId),await this.onMessageHandle(o,e.turnId),{messageId:o.messageId}}async executeStart(e,t,n,r){await this.onBeforeDispatch?.();let i=this.getConnector(),a=t?.sessionContext?A.parse(t.sessionContext):void 0,o=await this.resolvePreUserMessageTurn({message:e,sessionContext:a,cwd:i.cwd}),s=this.deriveAndSetPendingStartMode(o.sessionContext),c=L(o.message),l={systemPrompt:n,messageHistory:s?void 0:o.sessionContext?.messageHistory,cacheStrategy:s?void 0:o.sessionContext?.cacheStrategy,turnContext:Q(o.sessionContext?.turnContext,r,this.adapterCapabilities),...r!==void 0&&{responseSchema:r}},u=await i.start(c,l);return this.firePostUserMessageHooks(u.messageHandle.messageId),await this.onMessageHandle(u.messageHandle,void 0),u}async resolvePreUserMessageTurn(e){return this.ephemeral?{message:e.message,sessionContext:e.sessionContext}:he({agentId:this.agentId,adapterId:this.adapterId,message:e.message,sessionId:this.sessionId,cwd:e.cwd,sessionContext:e.sessionContext,messageId:e.messageId},this.globalBus)}firePostUserMessageHooks(e){me({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,messageId:e},this.globalBus).catch(e=>{console.error(`[AIAgent] PostUserMessage hook error:`,e)})}};function pt(e){let t=e.globalBus.withFilter({agentId:e.agentId});return[t.on(E.sendMessage,e.onSendMessage),t.on(E.interrupt,e.onInterrupt),t.on(E.getCapabilities,t=>{t.setResult(e.getCapabilities())}),t.on(E.cwd.change,e.onCwdChange),t.on(E.model.change,e.onModelChange),t.on(E.mcp.servers.set,e.onMcpServersSet),t.on(E.credential.change,e.onCredentialChange)]}var mt=class{sessionClosedEmitted=!1;agentStartedEmitted=!1;agentCompleteEmitted=!1;pendingErrorCategory;config;constructor(e){this.config=e}async emitStart(e){this.agentStartedEmitted=!0,this.agentCompleteEmitted=!1,this.pendingErrorCategory=void 0,await this.config.emitStarted(e)}resetTurnState(){this.agentCompleteEmitted=!1,this.pendingErrorCategory=void 0}async emitCompletion(e){if(this.agentCompleteEmitted)return;await this.config.onBeforeEmitCompletion(),this.agentCompleteEmitted=!0,this.config.clearToolCallTracker();let t=this.pendingErrorCategory;this.pendingErrorCategory=void 0,this.config.globalBus.requestOptional(M.updateStatus,{agentId:this.config.agentId,status:`idle`}),await this.config.emitComplete({...e,...t&&{errorCategory:t}})}emitError(e){this.config.clearToolCallTracker(),this.pendingErrorCategory=e.errorCategory}emitSessionClosed(e){this.sessionClosedEmitted||(this.sessionClosedEmitted=!0,this.config.emitSessionClosed({reason:e}).catch(e=>{console.warn(`[AIAgent] Failed to emit session.closed for agent ${this.config.agentId}:`,e)}))}},ht=class{emitUsagePayload;emitContextWindowUpdatedPayload;emitToolUsePayload;emitToolOutputPayload;emitAdapterLogPayload;emitStepStartedPayload;emitStepFinishedPayload;toolCallTracker;getBlockIndex;incrementBlockIndex;getUsageModel;constructor(e){this.emitUsagePayload=e.emitUsage,this.emitContextWindowUpdatedPayload=e.emitContextWindowUpdated,this.emitToolUsePayload=e.emitToolUse,this.emitToolOutputPayload=e.emitToolOutput,this.emitAdapterLogPayload=e.emitAdapterLog,this.emitStepStartedPayload=e.emitStepStarted,this.emitStepFinishedPayload=e.emitStepFinished,this.toolCallTracker=e.toolCallTracker,this.getBlockIndex=e.getBlockIndex,this.incrementBlockIndex=e.incrementBlockIndex,this.getUsageModel=e.getUsageModel}async trackUsage(e){await this.emitUsagePayload({...e,model:this.getUsageModel()??`unknown`})}async emitContextWindowUpdate(e){let{currentTokens:t,maxTokens:n,cachedTokens:r}=e,i=n>0&&Number.isFinite(n)&&Number.isFinite(t),a=i?Math.min(100,t/n*100):0,o=i?a>=80?`critical`:a>=60?`warn`:`ok`:`critical`;await this.emitContextWindowUpdatedPayload({currentTokens:t,maxTokens:n,cachedTokens:r,percentage:a,level:o})}async emitToolUse(e,t,n){let r=this.toolCallTracker.register(e,t,n);return await this.emitToolUsePayload({toolName:e,args:t,toolCallId:r}),r}async emitToolOutput(e,t){let{correlationId:n,strategy:r,toolName:i,args:a}=this.toolCallTracker.resolve(t);if(!n){await this.emitAdapterLogPayload({level:`warn`,message:`Tool output arrived with no pending tool calls. Hints: ${JSON.stringify(t)}`,timestamp:Date.now()});let n=crypto.randomUUID();return await this.emitToolOutputPayload({output:e,toolCallId:n,toolName:t.toolName??i}),{toolCallId:n,toolName:t.toolName??i??`unknown`}}return r===`oldest`&&await this.emitAdapterLogPayload({level:`warn`,message:`Tool output correlation used fallback. Hints: ${JSON.stringify(t)}`,timestamp:Date.now()}),await this.emitToolOutputPayload({output:e,toolCallId:n,toolName:i,args:a}),{toolCallId:n,toolName:i??`unknown`,args:a}}async emitStepStarted(e,t,n){await this.emitStepStartedPayload({stepType:e,blockIndex:this.getBlockIndex(),blockData:t,content:n})}async emitStepFinished(e,t){await this.emitStepFinishedPayload({stepType:e,blockIndex:this.getBlockIndex(),content:t}),this.incrementBlockIndex()}},gt=class{config;constructor(e){this.config=e}resolveConfirmedAdapterSessionId(){let e=this.config.getConnectorAdapterSessionId()??this.config.getLastKnownAdapterSessionId();return e!==void 0&&this.config.setLastKnownAdapterSessionId(e),e}resolveEventMetadata(e,t){if(!t)return{};let n=this.config.getEventMetadataDefaults();return{clientId:e.clientId??n.clientId,providerConfigId:e.providerConfigId??n.providerConfigId,occurredAt:e.occurredAt??n.occurredAt}}async enrichPayload(e,t,n){let r=e,i=t??this.config.getCurrentMessageId(),a=r.turnId??this.config.getCurrentTurnId(),o=this.resolveConfirmedAdapterSessionId(),{clientId:s,providerConfigId:c,occurredAt:l}=this.resolveEventMetadata(r,n?.includeEventMetadata??!0),u=this.config.getAgentContextBase();return{...e,agentId:u.agentId,adapterId:u.adapterId,adapterName:u.adapterName,...o!==void 0&&{adapterSessionId:o},...i!==void 0&&{messageId:i},...a!==void 0&&{turnId:a},...u.sessionId!==void 0&&{sessionId:u.sessionId},...s!==void 0&&{clientId:s},...c!==void 0&&{providerConfigId:c},...l!==void 0&&{occurredAt:l}}}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}},_t=class{queuedSequences=new Map;appliedSequences=new Map;barrier=Promise.resolve();queue(e,t){if(!Number.isSafeInteger(t)||t<0)return!1;let n=this.appliedSequences.get(e);if(n!==void 0&&t<=n)return!1;let r=this.queuedSequences.get(e);return r!==void 0&&t<=r?!1:(this.queuedSequences.set(e,t),!0)}isLatest(e,t){return this.queuedSequences.get(e)===t}markApplied(e,t){let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.appliedSequences.set(e,t),this.queuedSequences.get(e)===t&&this.queuedSequences.delete(e)}release(e,t){if(this.queuedSequences.get(e)!==t)return;let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.queuedSequences.delete(e)}clear(e){this.queuedSequences.delete(e),this.appliedSequences.delete(e)}async runExclusive(e){let t=this.barrier,n;this.barrier=new Promise(e=>{n=e}),await t;try{return await e()}finally{n?.()}}};async function vt(e){let{bus:t,agentId:n,currentModel:r,nextModel:i,skipWarning:a}=e;if(a)return{proceed:!0,requestEditHistory:!1};let o=await t.requestOptional(E.validateModelChange,{agentId:n,currentModel:r,nextModel:i});return o.handled?{proceed:o.data.proceed,requestEditHistory:o.data.requestEditHistory??!1}:{proceed:!0,requestEditHistory:!1}}var yt=class{getConnector;swapConnector;setMcpSessionContext;stagedMcpServersSet;constructor(e){this.getConnector=e.getConnector,this.swapConnector=e.swapConnector,this.setMcpSessionContext=e.setMcpSessionContext}async applyStagedMutation(){let e=this.stagedMcpServersSet;if(e===void 0)return;this.stagedMcpServersSet=void 0;let t=await this.handleMcpServersSet(e);if(!t.success)throw Error(`Failed to apply staged MCP server replacement: ${t.reason??`unknown error`}`)}async handleMcpServersSet(e){if(this.getConnector().getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedMcpServersSet={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0}):{success:!1,reason:`turn_active`};try{return await this.swapConnector({mcpSessionContext:e.mcpSessionContext}),this.setMcpSessionContext(e.mcpSessionContext),{success:!0,swapped:!0}}catch(e){return{success:!1,reason:`mcp_servers_set_failed: ${e.message}`}}}},bt=class{agentId;sessionId;globalBus;getConnector;swapConnector;emitCwdChanged;emitModelChanged;getProviderContext;setProviderContext;setReasoningEffort;setMcpSessionContext;resolveSupportedReasoningLevels;mcpServersMutationManager;credentialChangeSequencer=new _t;stagedModelChange;constructor(e){this.agentId=e.agentId,this.sessionId=e.sessionId,this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.swapConnector=e.swapConnector,this.emitCwdChanged=e.emitCwdChanged,this.emitModelChanged=e.emitModelChanged,this.getProviderContext=e.getProviderContext,this.setProviderContext=e.setProviderContext,this.setReasoningEffort=e.setReasoningEffort,this.setMcpSessionContext=e.setMcpSessionContext,this.resolveSupportedReasoningLevels=e.resolveSupportedReasoningLevels,this.mcpServersMutationManager=new yt({getConnector:this.getConnector,swapConnector:this.swapConnector,setMcpSessionContext:this.setMcpSessionContext})}async handleCwdChange(e){let t=this.getConnector(),{newCwd:n}=e;if(t.cwd===n)return{success:!0};if(t.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};try{let e=t.cwd;return await t.changeCwdInPlace(n).catch(()=>!1)?t.cwd=n:await this.swapConnector({cwd:n}),await this.persistRuntimeMutation({cwd:n}),await this.emitCwdChanged({previousCwd:e,newCwd:n}),{success:!0,previousCwd:e}}catch(e){return{success:!1,reason:`cwd_change_failed: ${e.message}`}}}async applyStagedMutations(){if(this.getConnector().getProcessingState()!==`idle`)return;let e=this.stagedModelChange;if(e!==void 0){this.stagedModelChange=void 0;let t=await this.handleModelChange(e);if(!t.success)throw Error(`Failed to apply staged model change: ${t.reason??`unknown error`}`)}await this.mcpServersMutationManager.applyStagedMutation()}async handleMcpServersSet(e){return this.mcpServersMutationManager.handleMcpServersSet(e)}async handleModelChange(e){let t=this.getConnector(),{newModel:n,reasoningEffort:r,skipWarning:i}=e,a=e.providerContext,o=t.model,s=t.currentReasoningEffort,c=this.getProviderContext(),l=this.hasProviderContextChanged(c,a);if(!n&&!r&&!l)return{success:!0,swapped:!1};if(t.getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedModelChange={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0,...n!==void 0&&{model:n}}):{success:!1,reason:`turn_active`};if(!n&&!l)return this.handleReasoningOnlyChange(t,o,s,r);let u=n??o;return o===u&&!l?r===void 0?{success:!0,swapped:!1}:this.handleReasoningOnlyChange(t,o,s,r):this.handleModelSwap({connector:t,currentModel:o,newModel:u,reasoningEffort:r,previousReasoningEffort:s,providerContext:a,isProviderChange:l,skipWarning:i})}async handleReasoningOnlyChange(e,t,n,r){if(e.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};try{let i=await e.changeReasoningInPlace(r).catch(()=>!1);i||await this.swapConnector({model:e.model});let a=this.getConnector(),o=this.resolveReasoningEffort(r,n,a.supportedReasoningLevels);return a.currentReasoningEffort=o,this.setReasoningEffort(o),await this.emitModelChanged({previousModel:t,newModel:t,previousReasoningEffort:n,newReasoningEffort:o}),{success:!0,swapped:!i,model:t,appliedReasoningEffort:o,supportedReasoningLevels:a.supportedReasoningLevels}}catch(e){return{success:!1,reason:`reasoning_change_failed: ${e.message}`}}}async handleModelSwap(e){let{connector:t,currentModel:n,newModel:r,reasoningEffort:i,previousReasoningEffort:a,providerContext:o,isProviderChange:s,skipWarning:c}=e;try{let e=!s&&await t.changeModelInPlace(r).catch(()=>!1);if(e)t.model=r,t.supportedReasoningLevels=this.resolveSupportedReasoningLevels(r);else{let e=await this.confirmConnectorSwap(n,r,c);if(!e.proceed)return e.result;await this.swapConnector({model:r,...o&&{providerContext:o}}),o&&this.setProviderContext(o);let t=this.getConnector();t.supportedReasoningLevels=this.resolveSupportedReasoningLevels(r),e.requestEditHistory&&this.sessionId&&await this.globalBus.emit(j.connectorSwap.editRequested,{sessionId:this.sessionId,agentId:this.agentId,previousModel:n,newModel:r})}let l=this.getConnector(),u=l.supportedReasoningLevels,d=this.resolveReasoningEffort(i,a,u);l.currentReasoningEffort=d,this.setReasoningEffort(d),d!==void 0&&await l.changeReasoningInPlace(d).catch(()=>{});let f=n!==r||d!==a;return(n!==r||s)&&await this.persistRuntimeMutation({...n!==r&&{model:r},...s&&o&&{providerConfigId:o.providerConfigId}}),f&&await this.emitModelChanged({previousModel:n,newModel:r,previousReasoningEffort:a,newReasoningEffort:d}),{success:!0,swapped:!e,model:r,appliedReasoningEffort:d,supportedReasoningLevels:u}}catch(e){return{success:!1,reason:`model_change_failed: ${e.message}`}}}resolveReasoningEffort(e,t,n){if(!n||Object.keys(n).length===0)return;let r=e=>e in n;return e!==void 0&&r(e)?e:t!==void 0&&r(t)?t:r(`medium`)?`medium`:Object.keys(n)[0]}async confirmConnectorSwap(e,t,n){if(e===t)return{proceed:!0,requestEditHistory:!1};let r=await vt({bus:this.globalBus,agentId:this.agentId,currentModel:e,nextModel:t,skipWarning:n});return r.proceed?{proceed:!0,requestEditHistory:r.requestEditHistory}:{proceed:!1,result:{success:!1,reason:`cancelled`}}}hasProviderContextChanged(e,t){return t===void 0?!1:e===void 0?!0:e.providerConfigId!==t.providerConfigId||e.definitionId!==t.definitionId||!this.haveEqualStringRecords(e.endpointOverrides,t.endpointOverrides)||!this.haveEqualStringRecords(e.credentialEnvVars,t.credentialEnvVars)||!this.haveEqualStringRecords(e.credentialRefs,t.credentialRefs)}haveEqualStringRecords(e,t){if(e===t)return!0;let n=e?Object.keys(e):[],r=t?Object.keys(t):[];return n.length===r.length?n.every(n=>e[n]===t[n]):!1}async handleCredentialChanged(e){let t=this.getProviderContext()?.providerConfigId;return t&&t!==e.providerConfigId?{success:!1,reason:`provider_mismatch`}:this.credentialChangeSequencer.queue(e.providerConfigId,e.changeSequence)?this.credentialChangeSequencer.runExclusive(async()=>{let t=this.getProviderContext()?.providerConfigId;if(t&&t!==e.providerConfigId)return this.credentialChangeSequencer.release(e.providerConfigId,e.changeSequence),{success:!1,reason:`provider_mismatch`};if(!this.credentialChangeSequencer.isLatest(e.providerConfigId,e.changeSequence))return{success:!1,reason:`stale_change`};let n=this.getConnector();if(n.getProcessingState()!==`idle`)return this.credentialChangeSequencer.release(e.providerConfigId,e.changeSequence),{success:!1,reason:`turn_active`};let r=e.credentialRefs;try{let t=await _e(this.globalBus,e.providerConfigId);return t.credentialRefs=r,!this.credentialChangeSequencer.isLatest(e.providerConfigId,e.changeSequence)||(await ge(this.globalBus,t),!this.credentialChangeSequencer.isLatest(e.providerConfigId,e.changeSequence))?{success:!1,reason:`stale_change`}:n.getProcessingState()===`idle`?(await this.swapConnector({providerContext:t}),this.setProviderContext(t),this.credentialChangeSequencer.markApplied(e.providerConfigId,e.changeSequence),await this.persistRuntimeMutation({providerConfigId:t.providerConfigId}),{success:!0,swapped:!0}):(this.credentialChangeSequencer.release(e.providerConfigId,e.changeSequence),{success:!1,reason:`turn_active`})}catch(t){return this.credentialChangeSequencer.release(e.providerConfigId,e.changeSequence),{success:!1,reason:`credential_swap_failed: ${t instanceof Error?t.message:String(t)}`}}}):{success:!1,reason:`stale_change`}}async persistRuntimeMutation(e){await this.globalBus.requestOptional(M.updateRuntime,{agentId:this.agentId,cwd:e.cwd,model:e.model,providerConfigId:e.providerConfigId})}},xt=class{connectorWiringCleanups=[];config;constructor(e){this.config=e}addConnectorWiringCleanup(e){this.connectorWiringCleanups.push(e)}clearConnectorWiring(){for(let e of this.connectorWiringCleanups)try{e()}catch(e){console.warn(`[AIAgent] Connector wiring cleanup failed for agent ${this.config.agentId}:`,e)}this.connectorWiringCleanups=[]}async wireAllConnectorEvents(e){let t=e.onProcessingStateChanged(e=>{e===`idle`&&this.config.emitIdle().catch(e=>{console.warn(`[AIAgent] Failed to emit idle for agent ${this.config.agentId}:`,e)})});this.addConnectorWiringCleanup(t),await this.config.wireEvents(e)}async swapConnector(e){let t=this.config.getConnector();if(t.getProcessingState()!==`idle`)throw Error(`Cannot swap connector while processing (state: ${t.getProcessingState()})`);let n=this.config.buildConfigInput({cwd:e?.cwd??t.cwd,model:e?.model??t.model,...e?.providerContext&&{providerContext:e.providerContext},...e?.mcpSessionContext&&{mcpSessionContext:e.mcpSessionContext},adapterSessionId:e?.adapterSessionId??crypto.randomUUID(),...e?.resumeAdapterSessionId!==void 0&&{resumeAdapterSessionId:e.resumeAdapterSessionId}}),r=await this.config.configFactory(n),i=await this.config.connectorFactory({...r,onMessageSent:this.config.createOnMessageSent()}),a=this.connectorWiringCleanups;this.connectorWiringCleanups=[];try{await this.wireAllConnectorEvents(i),await i.initialize({systemPrompt:this.config.getRuntimeSystemPrompt()})}catch(e){try{await i.close()}catch(e){console.warn(`[AIAgent] Failed to close newly-created connector for agent ${this.config.agentId}:`,e)}throw this.connectorWiringCleanups=a,e}let o=i.getConfirmedAdapterSessionId();o!==void 0&&this.config.setLastKnownAdapterSessionId(o);for(let e of a)try{e()}catch(e){console.warn(`[AIAgent] Previous connector cleanup failed during swap for agent ${this.config.agentId}:`,e)}let s=t;this.config.setConnector(i);try{await s.close()}catch(e){console.warn(`[AIAgent] Failed to close previous connector for agent ${this.config.agentId}:`,e)}}};function St(e){return new gt({globalBus:e.globalBus,getAgentContextBase:e.getAgentContextBase,getCurrentMessageId:()=>e.lifecycleTracker.getCurrentMessageId(),getCurrentTurnId:()=>e.lifecycleTracker.getCurrentTurnId(),getConnectorAdapterSessionId:e.getConnectorAdapterSessionId,getLastKnownAdapterSessionId:e.getLastKnownAdapterSessionId,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,getEventMetadataDefaults:e.getEventMetadataDefaults})}function Ct(e){return new ht({emitUsage:async t=>{await e.emitGlobal(E.usage,t)},emitContextWindowUpdated:async t=>{await e.emitGlobal(E.contextWindow.updated,t)},emitToolUse:async t=>{await e.emitGlobal(E.tool.use,t)},emitToolOutput:async t=>{await e.emitGlobal(E.tool.output,t)},emitAdapterLog:async t=>{await e.emitGlobal(T.log,t,{includeEventMetadata:!1})},emitStepStarted:async t=>{await e.emitGlobal(E.step.started,t)},emitStepFinished:async t=>{await e.emitGlobal(E.step.finished,t)},toolCallTracker:e.toolCallTracker,getBlockIndex:e.getBlockIndex,incrementBlockIndex:e.incrementBlockIndex,getUsageModel:e.getUsageModel})}function wt(e){return new $(e)}function Tt(e){return new bt({agentId:e.agentId,sessionId:e.sessionId,globalBus:e.globalBus,getConnector:e.getConnector,swapConnector:e.swapConnector,emitCwdChanged:async t=>{await e.emitGlobal(E.cwd.changed,t)},emitModelChanged:async t=>{await e.emitGlobal(E.model.changed,t)},getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,setReasoningEffort:e.setReasoningEffort,setMcpSessionContext:e.setMcpSessionContext,resolveSupportedReasoningLevels:e.resolveSupportedReasoningLevels})}function Et(e){return new xt({agentId:e.agentId,buildConfigInput:e.buildConfigInput,configFactory:e.configFactory,connectorFactory:e.connectorFactory,createOnMessageSent:e.createOnMessageSent,wireEvents:e.wireEvents,emitIdle:async()=>{await e.emitGlobal(E.idle,{})},getConnector:e.getConnector,setConnector:e.setConnector,getRuntimeSystemPrompt:e.getRuntimeSystemPrompt,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId})}var Dt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicAnchor=void 0;let t=S(),n=f(),r=d(),i=x(),a={keyword:`$dynamicAnchor`,schemaType:`string`,code:e=>o(e,e.schema)};function o(e,r){let{gen:i,it:a}=e;a.schemaEnv.root.dynamicAnchors[r]=!0;let o=(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(r)}`,c=a.errSchemaPath===`#`?a.validateName:s(e);i.if((0,t._)`!${o}`,()=>i.assign(o,c))}e.dynamicAnchor=o;function s(e){let{schemaEnv:t,schema:n,self:a}=e.it,{root:o,baseId:s,localRefs:c,meta:l}=t.root,{schemaId:u}=a.opts,d=new r.SchemaEnv({schema:n,schemaId:u,root:o,baseId:s,localRefs:c,meta:l});return r.compileSchema.call(a,d),(0,i.getValidate)(e,d)}e.default=a})),Ot=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicRef=void 0;let t=S(),n=f(),r=x(),i={keyword:`$dynamicRef`,schemaType:`string`,code:e=>a(e,e.schema)};function a(e,i){let{gen:a,keyword:o,it:s}=e;if(i[0]!==`#`)throw Error(`"${o}" only supports hash fragment reference`);let c=i.slice(1);if(s.allErrors)l();else{let t=a.let(`valid`,!1);l(t),e.ok(t)}function l(e){if(s.schemaEnv.root.dynamicAnchors[c]){let r=a.let(`_v`,(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(c)}`);a.if(r,u(r,e),u(s.validateName,e))}else u(s.validateName,e)()}function u(t,n){return n?()=>a.block(()=>{(0,r.callRef)(e,t),a.let(n,!0)}):()=>(0,r.callRef)(e,t)}}e.dynamicRef=a,e.default=i})),kt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Dt(),n=s();e.default={keyword:`$recursiveAnchor`,schemaType:`boolean`,code(e){e.schema?(0,t.dynamicAnchor)(e,``):(0,n.checkStrictMode)(e.it,`$recursiveAnchor: false is ignored`)}}})),At=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Ot();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),jt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Dt(),n=Ot(),r=kt(),i=At();e.default=[t.default,n.default,r.default,i.default]})),Mt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=b();e.default={keyword:`dependentRequired`,type:`object`,schemaType:`object`,error:t.error,code:e=>(0,t.validatePropertyDeps)(e)}})),Nt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=b();e.default={keyword:`dependentSchemas`,type:`object`,schemaType:`object`,code:e=>(0,t.validateSchemaDeps)(e)}})),Pt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=s();e.default={keyword:[`maxContains`,`minContains`],type:`array`,schemaType:`number`,code({keyword:e,parentSchema:n,it:r}){n.contains===void 0&&(0,t.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}}})),Ft=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Mt(),n=Nt(),r=Pt();e.default=[t.default,n.default,r.default]})),It=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=S(),n=s(),r=f();e.default={keyword:`unevaluatedProperties`,type:`object`,schemaType:[`boolean`,`object`],trackErrors:!0,error:{message:`must NOT have unevaluated properties`,params:({params:e})=>(0,t._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},code(e){let{gen:i,schema:a,data:o,errsCount:s,it:c}=e;if(!s)throw Error(`ajv implementation error`);let{allErrors:l,props:u}=c;u instanceof t.Name?i.if((0,t._)`${u} !== true`,()=>i.forIn(`key`,o,e=>i.if(f(u,e),()=>d(e)))):u!==!0&&i.forIn(`key`,o,e=>u===void 0?d(e):i.if(p(u,e),()=>d(e))),c.props=!0,e.ok((0,t._)`${s} === ${r.default.errors}`);function d(r){if(a===!1){e.setParams({unevaluatedProperty:r}),e.error(),l||i.break();return}if(!(0,n.alwaysValidSchema)(c,a)){let a=i.name(`valid`);e.subschema({keyword:`unevaluatedProperties`,dataProp:r,dataPropType:n.Type.Str},a),l||i.if((0,t.not)(a),()=>i.break())}}function f(e,n){return(0,t._)`!${e} || !${e}[${n}]`}function p(e,n){let r=[];for(let i in e)e[i]===!0&&r.push((0,t._)`${n} !== ${i}`);return(0,t.and)(...r)}}}})),Lt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=S(),n=s();e.default={keyword:`unevaluatedItems`,type:`array`,schemaType:[`boolean`,`object`],error:{message:({params:{len:e}})=>(0,t.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,t._)`{limit: ${e}}`},code(e){let{gen:r,schema:i,data:a,it:o}=e,s=o.items||0;if(s===!0)return;let c=r.const(`len`,(0,t._)`${a}.length`);if(i===!1)e.setParams({len:s}),e.fail((0,t._)`${c} > ${s}`);else if(typeof i==`object`&&!(0,n.alwaysValidSchema)(o,i)){let n=r.var(`valid`,(0,t._)`${c} <= ${s}`);r.if((0,t.not)(n),()=>l(n,s)),e.ok(n)}o.items=!0;function l(i,a){r.forRange(`i`,a,c,a=>{e.subschema({keyword:`unevaluatedItems`,dataProp:a,dataPropType:n.Type.Num},i),o.allErrors||r.if((0,t.not)(i),()=>r.break())})}}}})),Rt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=It(),n=Lt();e.default=[t.default,n.default]})),zt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/schema`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0,"https://json-schema.org/draft/2019-09/vocab/applicator":!0,"https://json-schema.org/draft/2019-09/vocab/validation":!0,"https://json-schema.org/draft/2019-09/vocab/meta-data":!0,"https://json-schema.org/draft/2019-09/vocab/format":!1,"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format`},{$ref:`meta/content`}],type:[`object`,`boolean`],properties:{definitions:{$comment:`While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.`,type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},dependencies:{$comment:`"dependencies" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to "dependentSchemas" and "dependentRequired"`,type:`object`,additionalProperties:{anyOf:[{$recursiveRef:`#`},{$ref:`meta/validation#/$defs/stringArray`}]}}}}})),Bt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/applicator":!0},$recursiveAnchor:!0,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{additionalItems:{$recursiveRef:`#`},unevaluatedItems:{$recursiveRef:`#`},items:{anyOf:[{$recursiveRef:`#`},{$ref:`#/$defs/schemaArray`}]},contains:{$recursiveRef:`#`},additionalProperties:{$recursiveRef:`#`},unevaluatedProperties:{$recursiveRef:`#`},properties:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$recursiveRef:`#`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$recursiveRef:`#`}},propertyNames:{$recursiveRef:`#`},if:{$recursiveRef:`#`},then:{$recursiveRef:`#`},else:{$recursiveRef:`#`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$recursiveRef:`#`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$recursiveRef:`#`}}}}})),Vt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/content`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentMediaType:{type:`string`},contentEncoding:{type:`string`},contentSchema:{$recursiveRef:`#`}}}})),Ht=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/core`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0},$recursiveAnchor:!0,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{type:`string`,format:`uri-reference`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{type:`string`,format:`uri`},$anchor:{type:`string`,pattern:`^[A-Za-z][-A-Za-z0-9.:_]*$`},$ref:{type:`string`,format:`uri-reference`},$recursiveRef:{type:`string`,format:`uri-reference`},$recursiveAnchor:{type:`boolean`,default:!1},$vocabulary:{type:`object`,propertyNames:{type:`string`,format:`uri`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}}}}})),Ut=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/format`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/format":!0},$recursiveAnchor:!0,title:`Format vocabulary meta-schema`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),Wt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/meta-data":!0},$recursiveAnchor:!0,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),Gt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/validation":!0},$recursiveAnchor:!0,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}},const:!0,enum:{type:`array`,items:!0},type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),Kt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=zt(),n=Bt(),r=Vt(),i=Ht(),a=Ut(),o=Wt(),s=Gt(),c=[`/properties`];function l(e){return[t,n,r,i,l(this,a),o,l(this,s)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function l(t,n){return e?t.$dataMetaSchema(n,c):n}}e.default=l})),qt=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2019=void 0;let n=u(),r=ee(),i=jt(),a=Ft(),o=Rt(),s=_(),c=Kt(),l=`https://json-schema.org/draft/2019-09/schema`;var d=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(i.default),r.default.forEach(e=>this.addVocabulary(e)),this.addVocabulary(a.default),this.addVocabulary(o.default),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(c.default.call(this,e),this.refs[`http://json-schema.org/schema`]=l)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(l)?l:void 0)}};e.Ajv2019=d,t.exports=e=d,t.exports.Ajv2019=d,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=d;var f=p();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return f.KeywordCxt}});var m=S();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return m._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return m.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return m.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return m.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return m.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return m.CodeGen}});var h=g();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return h.default}});var v=y();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return v.default}})})),Jt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=h(),n=l(),r=v(),i=jt(),a=Ft(),o=Rt(),s=c(),u=m();e.default=[i.default,t.default,n.default,(0,r.default)(!0),s.default,u.metadataVocabulary,u.contentVocabulary,a.default,o.default]})),Yt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/schema`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/unevaluated`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format-annotation`},{$ref:`meta/content`}],type:[`object`,`boolean`],$comment:`This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.`,properties:{definitions:{$comment:`"definitions" has been replaced by "$defs".`,type:`object`,additionalProperties:{$dynamicRef:`#meta`},deprecated:!0,default:{}},dependencies:{$comment:`"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.`,type:`object`,additionalProperties:{anyOf:[{$dynamicRef:`#meta`},{$ref:`meta/validation#/$defs/stringArray`}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:`"$recursiveAnchor" has been replaced by "$dynamicAnchor".`,$ref:`meta/core#/$defs/anchorString`,deprecated:!0},$recursiveRef:{$comment:`"$recursiveRef" has been replaced by "$dynamicRef".`,$ref:`meta/core#/$defs/uriReferenceString`,deprecated:!0}}}})),Xt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:`meta`,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{prefixItems:{$ref:`#/$defs/schemaArray`},items:{$dynamicRef:`#meta`},contains:{$dynamicRef:`#meta`},additionalProperties:{$dynamicRef:`#meta`},properties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},patternProperties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},propertyNames:{$dynamicRef:`#meta`},if:{$dynamicRef:`#meta`},then:{$dynamicRef:`#meta`},else:{$dynamicRef:`#meta`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$dynamicRef:`#meta`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$dynamicRef:`#meta`}}}}})),Zt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/unevaluated`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:`meta`,title:`Unevaluated applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{unevaluatedItems:{$dynamicRef:`#meta`},unevaluatedProperties:{$dynamicRef:`#meta`}}}})),Qt=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/content`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentEncoding:{type:`string`},contentMediaType:{type:`string`},contentSchema:{$dynamicRef:`#meta`}}}})),$t=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/core`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:`meta`,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{$ref:`#/$defs/uriReferenceString`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{$ref:`#/$defs/uriString`},$ref:{$ref:`#/$defs/uriReferenceString`},$anchor:{$ref:`#/$defs/anchorString`},$dynamicRef:{$ref:`#/$defs/uriReferenceString`},$dynamicAnchor:{$ref:`#/$defs/anchorString`},$vocabulary:{type:`object`,propertyNames:{$ref:`#/$defs/uriString`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$dynamicRef:`#meta`}}},$defs:{anchorString:{type:`string`,pattern:`^[A-Za-z_][-A-Za-z0-9._]*$`},uriString:{type:`string`,format:`uri`},uriReferenceString:{type:`string`,format:`uri-reference`}}}})),en=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/format-annotation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:`meta`,title:`Format vocabulary meta-schema for annotation results`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),tn=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:`meta`,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),nn=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:`meta`,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),rn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Yt(),n=Xt(),r=Zt(),i=Qt(),a=$t(),o=en(),s=tn(),c=nn(),l=[`/properties`];function u(e){return[t,n,r,i,a,u(this,o),s,u(this,c)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function u(t,n){return e?t.$dataMetaSchema(n,l):n}}e.default=u})),an=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2020=void 0;let n=u(),r=Jt(),i=_(),a=rn(),o=`https://json-schema.org/draft/2020-12/schema`;var s=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),r.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(a.default.call(this,e),this.refs[`http://json-schema.org/schema`]=o)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}};e.Ajv2020=s,t.exports=e=s,t.exports.Ajv2020=s,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=s;var c=p();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return c.KeywordCxt}});var l=S();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return l.CodeGen}});var d=g();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return d.default}});var f=y();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return f.default}})})),on=e(te(),1),sn=e(qt(),1),cn=e(an(),1);const ln=new Set([`https://json-schema.org/draft/2019-09/schema`,`https://json-schema.org/draft/2019-09/schema#`]),un=new Set([`https://json-schema.org/draft/2020-12/schema`,`https://json-schema.org/draft/2020-12/schema#`]);var dn=class{bus;agentId;adapterId;adapterCapabilities;draft07Ajv=new on.default({allErrors:!0,strict:!1});draft2019Ajv=new sn.default({allErrors:!0,strict:!1});draft2020Ajv=new cn.default({allErrors:!0,strict:!1});validatorCache=new WeakMap;constructor(e){this.bus=e.bus,this.agentId=e.agentId,this.adapterId=e.adapterId,this.adapterCapabilities=e.adapterCapabilities}registerDefaultHandlers(){let e=this.bus.withFilter({agentId:this.agentId});return[e.on(E.structuredOutput.retryPolicy,e=>{e.setResult({maxRetries:0})},{priority:-1e3}),e.on(E.structuredOutput.enforce,e=>{e.setResult({enforced:!1,error:`No enforce handler registered`})},{priority:-1e3})]}async validateTerminalResult(e){let{responseSchema:t,message:n,sessionId:r}=e,i=this.validate(t,n);if(i.valid)return{message:n,structuredOutputValidation:{status:`passed`}};let a=n??``,o=i.errors;if(e.retryTurn){let n=await this.bus.requestOptional(E.structuredOutput.retryPolicy,{agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.adapterCapabilities,responseSchema:t,attemptNumber:1}),r=n.handled?n.data.maxRetries:0;for(let n=1;n<=r;n+=1){a=await e.retryTurn({attemptNumber:n,validationErrors:o});let r=this.validate(t,a);if(r.valid)return{message:a,structuredOutputValidation:{status:`passed`}};o=r.errors}}let s=await this.bus.requestOptional(E.structuredOutput.enforce,{agentId:this.agentId,adapterId:this.adapterId,sessionId:r,responseSchema:t,rawOutput:a,validationErrors:o,adapterHasCapability:this.adapterCapabilities.includes(`structuredOutput`)});if(s.handled&&s.data.enforced===!0&&s.data.output!==void 0){let{valid:e}=this.validate(t,s.data.output);if(e)return{message:s.data.output,structuredOutputValidation:{status:`enforced`}}}return{message:a,structuredOutputValidation:{status:`failed`,errors:o}}}validate(e,t){if(t===void 0||t===``)return{valid:!1,errors:[{message:`Expected JSON output but received empty string`,instancePath:``,schemaPath:`#`}]};let n;try{n=JSON.parse(t)}catch{return{valid:!1,errors:[{message:`Output is not valid JSON: ${t.slice(0,120)}`,instancePath:``,schemaPath:`#`}]}}let r=this.getValidator(e);if(r(n))return{valid:!0,errors:[]};let i=this.normalizeErrors(r.errors??[]);return i.length===0&&i.push({message:`Schema validation failed`,instancePath:``,schemaPath:`#`}),{valid:!1,errors:i}}getValidator(e){let t=this.validatorCache.get(e.schema);if(t!==void 0)return t;let n=this.getValidatorCompileTarget(e.schema),r;try{r=n.compiler.compile(n.schema)}catch(e){r=this.createCompileFailureValidator(e)}return this.validatorCache.set(e.schema,r),r}createCompileFailureValidator(e){let t=[{keyword:`schema`,instancePath:``,schemaPath:`#`,params:{},message:`Failed to compile response schema: ${e instanceof Error?e.message:String(e)}`}],n=this.draft07Ajv.compile({});return Object.assign(e=>!1,{errors:t,schema:n.schema,schemaEnv:n.schemaEnv})}getValidatorCompileTarget(e){let t=this.readSchemaUri(e),n=t===void 0?void 0:this.normalizeDraft202012Uri(t),r=t===void 0?void 0:this.normalizeDraft201909Uri(t);return n!==void 0&&un.has(n)?{compiler:this.draft2020Ajv,schema:this.withSchemaUri(e,n)}:r!==void 0&&ln.has(r)?{compiler:this.draft2019Ajv,schema:this.withSchemaUri(e,r)}:{compiler:this.draft07Ajv,schema:this.withoutSchemaUri(e)}}readSchemaUri(e){let t=e.$schema;return typeof t==`string`?t:void 0}normalizeDraft202012Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2020-12\/schema#?$/,e=>e.replace(`http://`,`https://`))}normalizeDraft201909Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2019-09\/schema#?$/,e=>e.replace(`http://`,`https://`))}withSchemaUri(e,t){return e.$schema===t?e:{...e,$schema:t}}withoutSchemaUri(e){if(e.$schema===void 0)return e;let t={...e};return delete t.$schema,t}normalizeErrors(e){return e.map(e=>({message:e.message??`Validation error`,instancePath:e.instancePath,schemaPath:e.schemaPath}))}};function fn(e){if(e instanceof se||e instanceof re||e instanceof ae||e instanceof oe)return e.code}var pn=class{connector;confirmedModel;initialModel;lastKnownAdapterSessionId;busHandlerCleanups=[];initialized=!1;runtimeSystemPrompt;lifecycleTracker;toolCallTracker=new Z;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;pendingStartMode;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??w},this.availableModels=e.availableModels,this.lifecycleTracker=new X({emitGlobal:this.emitGlobal.bind(this)}),this.payloadEmitter=St({globalBus:this.globalBus,getAgentContextBase:()=>({agentId:this.agentId,adapterId:this.adapterId,adapterName:this.adapterName,sessionId:this.sessionId}),lifecycleTracker:this.lifecycleTracker,getConnectorAdapterSessionId:()=>this.connector?.getConfirmedAdapterSessionId(),getLastKnownAdapterSessionId:()=>this.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:e=>{this.lastKnownAdapterSessionId=e},getEventMetadataDefaults:this.getEventMetadataDefaults.bind(this)}),this.eventBridge=Ct({emitGlobal:this.payloadEmitter.emitGlobal.bind(this.payloadEmitter),toolCallTracker:this.toolCallTracker,getBlockIndex:this.getBlockIndex.bind(this),incrementBlockIndex:this.incrementBlockIndex.bind(this),getUsageModel:()=>this.confirmedModel??this.initialModel}),this.turnExecutor=wt({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,adapterCapabilities:this.capabilities,globalBus:this.globalBus,getConnector:()=>this.connector,shouldUseNativeResume:this.shouldUseNativeResume.bind(this),hasResumeTarget:()=>this.config.resumeAdapterSessionId!==void 0,setPendingStartMode:this.setPendingStartMode.bind(this),onMessageHandle:this.onMessageHandle.bind(this),onBeforeDispatch:()=>this.runtimeMutationManager.applyStagedMutations(),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=Tt({agentId:this.agentId,sessionId:this.sessionId,globalBus:this.globalBus,getConnector:()=>this.connector,swapConnector:this.swapConnector.bind(this),emitGlobal:this.payloadEmitter.emitGlobal.bind(this.payloadEmitter),getProviderContext:()=>this.config.providerContext,setProviderContext:e=>void(this.config.providerContext=e),setReasoningEffort:e=>void(this.config.reasoningEffort=e),setMcpSessionContext:e=>this.config.mcpSessionContext=e,resolveSupportedReasoningLevels:e=>this.getSupportedReasoningLevels(e)}),this.connectorLifecycleManager=Et({agentId:this.agentId,buildConfigInput:this.buildConfigInput.bind(this),configFactory:this.config.configFactory,connectorFactory:this.config.connectorFactory,createOnMessageSent:this.createOnMessageSent.bind(this),wireEvents:this.wireEvents.bind(this),emitGlobal:this.payloadEmitter.emitGlobal.bind(this.payloadEmitter),getConnector:()=>this.connector,setConnector:e=>{this.connector=e},getRuntimeSystemPrompt:()=>this.runtimeSystemPrompt,setLastKnownAdapterSessionId:e=>{this.lastKnownAdapterSessionId=e}}),this.lifecycleEmitter=this.createLifecycleEmitter(),this.structuredOutputManager=this.createStructuredOutputManager()}getEventMetadataDefaults(){return{clientId:this.config.clientId,providerConfigId:this.connector?.providerConfigId??this.config.providerContext?.providerConfigId,occurredAt:Date.now()}}createLifecycleEmitter(){return new mt({agentId:this.agentId,globalBus:this.globalBus,emitStarted:async e=>{await this.payloadEmitter.emitGlobal(E.started,e)},emitComplete:async e=>{await this.payloadEmitter.emitGlobal(E.complete,e)},emitSessionClosed:async e=>{await this.payloadEmitter.emitGlobal(E.session.closed,e)},onBeforeEmitCompletion:this.onBeforeEmitCompletion.bind(this),clearToolCallTracker:()=>this.toolCallTracker.clear()})}createStructuredOutputManager(){return new dn({bus:this.globalBus,agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.capabilities})}get agentId(){return this.config.agentId}get adapterId(){return this.config.adapterId}get adapterName(){return this.config.adapterName}get capabilities(){return this.config.capabilities}get nativeTools(){return this.config.nativeTools}get sessionId(){return this.config.sessionId}get adapterSessionId(){return this.config.adapterSessionId}get globalBus(){return this.config.globalBus}async init(){if(this.initialized)throw Error(`AIAgent ${this.agentId} already initialized. init() can only be called once.`);let e=this.buildConfigInput(),t=await this.config.configFactory(e);this.connector=await this.config.connectorFactory({...t,onMessageSent:this.createOnMessageSent()}),this.config.nativeFork=void 0,this.busHandlerCleanups.push(...pt({globalBus:this.globalBus,agentId:this.agentId,onSendMessage:async e=>{await this.sendMessage(e)},onInterrupt:async e=>{await this.handleInterrupt(e)},getCapabilities:()=>({capabilities:this.capabilities,nativeTools:this.nativeTools,model:this.connector?.model??this.confirmedModel??this.initialModel}),onCwdChange:async e=>{await this.handleCwdChange(e)},onModelChange:async e=>{await this.handleModelChange(e)},onMcpServersSet:async e=>{await this.handleMcpServersSet(e)},onCredentialChange:async e=>{await this.handleCredentialChanged(e)}}),...this.structuredOutputManager.registerDefaultHandlers()),this.sessionId&&this.busHandlerCleanups.push(this.globalBus.on(j.turn.started,e=>{e.payload.agentIds.includes(this.agentId)&&this.connector.setCanonicalTurnNumber(e.payload.turnNumber)},{filter:{sessionId:this.sessionId}})),this.busHandlerCleanups.push(this.globalBus.on(k.tools.updated,()=>{this.connector.markToolRefreshPending()}),this.globalBus.on(k.tools.enabled,()=>{this.connector.markToolRefreshPending()})),await this.connectorLifecycleManager.wireAllConnectorEvents(this.connector),this.initialized=!0}async emitStart(e){let t=this.pendingStartMode??`rotation`;this.pendingStartMode=void 0,this.currentBlockIndex=0,await this.lifecycleEmitter.emitStart({model:this.connector.model,cwd:this.connector.cwd,startMode:t,...e})}setPendingStartMode(e){this.pendingStartMode=e}async emitCompletion(e){await this.lifecycleEmitter.emitCompletion(e)}emitError(e){this.lifecycleEmitter.emitError(e)}emitSessionClosed(e){this.lifecycleEmitter.emitSessionClosed(e)}async enrichPayload(e){return this.payloadEmitter.enrichPayload(e)}async emitGlobal(e,t){await this.payloadEmitter.emitGlobal(e,t)}async trackUsage(e){await this.eventBridge.trackUsage(e)}getContextWindowSize(e){let t=e??this.confirmedModel??this.initialModel;if(!(!t||!this.availableModels))return this.availableModels.find(e=>e.name===t)?.contextWindowSize}async emitContextWindowUpdate(e){await this.eventBridge.emitContextWindowUpdate(e)}async emitToolUse(e,t,n){return this.eventBridge.emitToolUse(e,t,n)}async emitToolOutput(e,t){return this.eventBridge.emitToolOutput(e,t)}async emitStepStarted(e,t,n){await this.eventBridge.emitStepStarted(e,t,n)}async emitStepFinished(e,t){await this.eventBridge.emitStepFinished(e,t)}getBlockIndex(){return this.currentBlockIndex}incrementBlockIndex(){this.currentBlockIndex++}async sendMessage(e){this.globalBus.requestOptional(M.updateStatus,{agentId:this.agentId,status:`active`}),this.lifecycleTracker.setCurrentTurnId(e.payload.turnId);try{let t=await this.turnExecutor.executeSendMessage(e.payload);e.setResult(t)}catch(e){throw this.lifecycleTracker.clearCurrentTurnId(),e}}async handleInterrupt(e){try{await this.ensureConnector().interrupt(),e.setResult({success:!0})}catch(t){e.setResult({success:!1,reason:t instanceof Error?t.message:String(t)})}}addConnectorWiringCleanup(e){this.connectorLifecycleManager.addConnectorWiringCleanup(e)}addBusHandlerCleanup(e){this.busHandlerCleanups.push(e)}async swapConnector(e){await this.connectorLifecycleManager.swapConnector(e),e?.providerContext!==void 0&&(this.config.providerContext=e.providerContext),e?.mcpSessionContext!==void 0&&(this.config.mcpSessionContext=e.mcpSessionContext)}getSupportedReasoningLevels(e){if(e)return this.availableModels?.find(t=>t.name===e)?.supportedReasoningLevels}buildConfigInput(e){let t=this.config,n=this.connector?.currentReasoningEffort??t.reasoningEffort,r=e?.providerContext??t.providerContext;r===void 0&&console.warn(`[AIAgent] No providerContext available for agent "${t.agentId}" — falling back to sentinel. This indicates the orchestrator did not populate a provider context before calling startAgent.`);let i=r??G();return{bus:t.adapterBus,globalBus:t.globalBus,agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:i,model:e?.model??t.model,cwd:e?.cwd??t.cwd,env:t.env,adapterSessionId:e?.adapterSessionId??t.adapterSessionId,sessionId:t.sessionId,resumeAdapterSessionId:e?.resumeAdapterSessionId??t.resumeAdapterSessionId,reasoningEffort:n,supportedReasoningLevels:this.getSupportedReasoningLevels(e?.model??t.model),allowedTools:t.allowedTools,disallowedTools:t.disallowedTools,allowedDirectories:t.allowedDirectories,providerConfig:t.adapterConfig,mcpSessionContext:e?.mcpSessionContext??t.mcpSessionContext,toolLedger:t.toolLedger,...t.nativeFork!==void 0&&{nativeFork:t.nativeFork},ephemeral:t.ephemeral,clientId:t.clientId,clientProfileName:t.clientProfileName,harnessId:t.harnessId,errorHandler:(e,t)=>{let n=fn(e);this.emitError({error:e.message,...n&&{errorCategory:n}})}}}createOnMessageSent(){return e=>{this.emitGlobal(E.user_message.sent,{messageId:e.messageId,content:e.message,deliveryMode:e.deliveryMode})}}async handleCwdChange(e){let t=await this.runtimeMutationManager.handleCwdChange(e.payload);e.setResult(t)}async handleModelChange(e){let t=await this.runtimeMutationManager.handleModelChange(e.payload);e.setResult(t)}async handleMcpServersSet(e){let t=await this.runtimeMutationManager.handleMcpServersSet(e.payload);e.setResult(t)}async handleCredentialChanged(e){let t=await this.runtimeMutationManager.handleCredentialChanged(e.payload);e.setResult(t)}subscribeConnector(e,t,n,r){let i=e.on(t,n,r);this.connectorLifecycleManager.addConnectorWiringCleanup(i)}async close(e={}){(e.emitSessionClosed??!0)&&this.emitSessionClosed(`closed`);for(let e of this.busHandlerCleanups)try{e()}catch(e){console.warn(`[AIAgent] Bus handler cleanup failed:`,e)}this.busHandlerCleanups=[],this.connectorLifecycleManager.clearConnectorWiring(),await this.connector.close()}ensureConnector(){if(!this.connector)throw Error(`AIAgent ${this.agentId} connector not initialized. Call init() or start() first.`);return this.connector}shouldUseNativeResume(e){return this.supportsNativeResume()?e?!(e.nativeLocality?.kind!==`native`||e.isFirstTurn||e.hasCompression||e.hasNewTransforms||e.hasConnectorSwap):!0:!1}supportsNativeResume(){return!1}supportsNativeFork(){return!1}async start(e,t){return this.initialized||await this.init(),t?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=t.systemPrompt),this.turnExecutor.executeStart(e,t,this.runtimeSystemPrompt,t?.responseSchema)}async initialize(e){e?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=e.systemPrompt);let t=this.config.nativeFork;this.initialized||await this.init();let n=e?.sessionContext,r=t&&!n?.nativeFork?{...n,nativeFork:t}:n,i=this.config.resumeAdapterSessionId!==void 0,a=$.deriveStartMode(r,this.shouldUseNativeResume(r),i);this.setPendingStartMode(a);let o=this.ensureConnector();return await o.initialize(e),o.getConfirmedAdapterSessionId()}async onBeforeEmitCompletion(){}async onMessageHandle(e,t){this.lifecycleEmitter.resetTurnState(),this.latestMessageCompletion=e.waitForCompletion();let n=e.responseSchema,r=n===void 0?void 0:async t=>{if(t.outcome!==`completed`)return t;let r=await this.structuredOutputManager.validateTerminalResult({responseSchema:n,message:t.result?.message,sessionId:this.sessionId,retryTurn:async({attemptNumber:t,validationErrors:r})=>{let i=this.connector;return i?(await(await i.sendMessage(e.message,{deliveryMode:`enqueue`,internalRetry:!0,messageId:`${e.messageId}:structured-output-retry:${t}`,messageHistory:e.messageHistory,responseSchema:n,turnContext:{...e.turnContext,structuredOutputRetry:{attemptNumber:t,validationErrors:r,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}})).waitForCompletion()).result?.message??``:``}});return{...t,result:t.result!==null&&t.result!==void 0?{...t.result,message:r.message}:t.result,structuredOutputValidation:r.structuredOutputValidation}};this.lifecycleTracker.track(e,(e,t,n)=>{let r=t.error instanceof Error?t.error.message:t.error;this.emitCompletion({message:t.result?.message,messageId:e,...n!==void 0&&{turnId:n},outcome:t.outcome,...r&&{error:r},...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation}})},r,{turnId:t})}abort(){this.emitSessionClosed(`aborted`),this.ensureConnector().abort()}async getAdapterSessionId(){return this.ensureConnector().getAdapterSessionId()}async complete(){let e=await this.ensureConnector().complete();return e===null||this.latestMessageCompletion===void 0?e:this.latestMessageCompletion}createConnectorEventMapping(e,t,n,r){let i=ft(this.globalBus,this.connector,e,r,t,n,this.enrichPayload.bind(this));return this.connectorLifecycleManager.addConnectorWiringCleanup(i),i}};function mn(e){let t=e.indexOf(`__`);return t===-1?{serverName:``,originalName:e}:{serverName:e.slice(0,t),originalName:e.slice(t+2)}}function hn(e){let{serverName:t,originalName:n}=mn(e);return{fullName:e,originalName:n,serverName:t,injected:!1,lastInjectedAtTurn:void 0,discovered:!1,firstDiscoveredAtTurn:void 0,callCount:0,lastCalledAtTurn:void 0}}var gn=class{entries=new Map;upsert(e){let t=this.entries.get(e);return t||(t=hn(e),this.entries.set(e,t)),t}recordInjection(e,t){let n=new Set(e.map(e=>e.name));for(let n of e){let e=this.upsert(n.name);e.injected=!0,e.lastInjectedAtTurn=t}for(let[e,t]of this.entries)t.injected&&!n.has(e)&&(t.injected=!1)}recordDiscovery(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t)}recordCall(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t),n.callCount+=1,n.lastCalledAtTurn=t}getInjectedTools(){return Array.from(this.entries.values()).filter(e=>e.injected)}getCallCount(e){return this.entries.get(e)?.callCount??0}getEntry(e){return this.entries.get(e)}getAllEntries(){return Array.from(this.entries.values())}async suggestInjectionSet(e,t){return e.directTools.map(e=>({name:e.fullName,description:e.description??``,toolsetName:e.serverName,inputSchema:e.inputSchema}))}};function _n(e){return typeof e.tool==`string`?e.tool:void 0}function vn(e){return e===de}var yn=class{entries=new Map;pendingAdapterSessionClaims=new Set;globalBus;adapterName;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName}claimAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!1;for(let t of this.entries.values())if(t.adapterSessionId===e)return!1;return this.pendingAdapterSessionClaims.add(e),!0}releaseAdapterSessionClaim(e){this.pendingAdapterSessionClaims.delete(e)}hasAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!0;for(let t of this.entries.values())if(t.adapterSessionId===e)return!0;return!1}set(e,t){t.adapterSessionId!==void 0&&this.pendingAdapterSessionClaims.delete(t.adapterSessionId),this.entries.set(e,t)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.clear(),this.pendingAdapterSessionClaims.clear()}async evict(e,t={}){let n=this.entries.get(e);this.entries.delete(e);let r;if(n)try{await n.agent.close({emitSessionClosed:t.emitSessionClosed})}catch(e){r=e}try{await this.globalBus.requestOptional(M.updateStatus,{agentId:e,status:`dead`})}catch(t){if(r===void 0)throw t;console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as dead:`,t)}if(r!==void 0)throw r}async evictSilently(e){let t=this.entries.get(e);if(this.entries.delete(e),t)try{await t.agent.close({emitSessionClosed:!1})}catch(t){console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during silent eviction:`,t)}}dispose(e){let t=this.entries.get(e);return t?(t.agent.close().catch(t=>{console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during dispose:`,t)}),this.entries.delete(e),this.globalBus.requestOptional(M.updateStatus,{agentId:e,status:`disposed`}).catch(t=>{console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as disposed:`,t)}),!0):!1}accumulateUsage(e,t,n){let r=this.entries.get(e);if(r)return r.usage.totalInputTokens+=t.inputTokens,r.usage.totalOutputTokens+=t.outputTokens,r.usage.totalCalls++,n&&n!==r.adapterSessionId&&(r.adapterSessionId=n),r}agentIdsBySession(e){return[...this.entries.entries()].filter(([,t])=>t.sessionId===e).map(([e])=>e)}};async function bn(e,t,n){let r={totalInputTokens:0,totalOutputTokens:0,totalCalls:0},i=await e.requestOptional(fe.getBySession,{sessionId:t,status:`completed`});if(!i.handled)return r;for(let e of i.data.turns){let t=e.usage?.byAgent?.[n];t&&(r.totalInputTokens+=t.inputTokens,r.totalOutputTokens+=t.outputTokens)}return r}function xn(e){let t=e.nativeLocality;if(typeof t==`object`&&t&&`kind`in t){let e=t.kind;if(e===`native`||e===`degrade`||e===`foreign`)return e}}var Sn=class{inFlight=new Map;globalBus;registry;createAgentFn;constructor(e){this.globalBus=e.globalBus,this.registry=e.registry,this.createAgentFn=e.createAgent}handleRehydrateAgent=async e=>{let{agentId:t,cwd:n,model:r,adapterSessionId:i,resumeAdapterSessionId:a}=e.payload,o=this.inFlight.get(t);if(o){await o,e.setResult({});return}let s=(async()=>{let e=this.registry.get(t);if(e){await this.rehydrateRegisteredAgent(t,e,{adapterSessionId:i,cwd:n,model:r});return}await this.rehydrateFromStorage(t,{adapterSessionId:i,rpcResumeId:a,cwd:n,model:r})})().catch(e=>{let n=e instanceof Error?e.message:String(e);throw Error(`Failed to recover agent ${t}: ${n}`)});this.inFlight.set(t,s);try{await s}finally{this.inFlight.delete(t)}e.setResult({})};async rehydrateFromStorage(e,t){let{adapterSessionId:n,rpcResumeId:r,cwd:i,model:a}=t,o=await this.globalBus.requestOptional(M.get,{agentId:e});if(!o.handled||!o.data.agent)throw Error(`Agent ${e} not found in storage`);let s=o.data.agent;if(s.status===`disposed`)throw Error(`Agent ${e} is disposed and cannot be rehydrated`);let c=await this.resolveMcpSessionContext(s.sessionId,s.profileId),l=s.providerConfigId===void 0?void 0:await _e(this.globalBus,s.providerConfigId).catch(G),u=n??s.adapterSessionId,d=r??void 0,f=xn(s),p=d??(d!==void 0||f===`native`?u:void 0),m={model:a??s.model,cwd:i??s.cwd,allowedDirectories:s.allowedDirectories,adapterSessionId:u,...p!==void 0&&{resumeAdapterSessionId:p},...l!==void 0&&{providerContext:l},...c!==void 0&&{mcpSessionContext:c}},h=await this.claimAndCreateAgent(e,s,m,p);(i!==void 0||a!==void 0)&&await this.globalBus.requestOptional(M.updateRuntime,{agentId:e,cwd:i,model:a});let g=await h.getAdapterSessionId()||s.adapterSessionId;if(!g)throw p!==void 0&&this.registry.releaseAdapterSessionClaim(p),Error(`Recovered agent ${e} has no adapterSessionId`);let _=await bn(this.globalBus,s.sessionId,e);this.registry.set(e,{agent:h,sessionId:s.sessionId,adapterSessionId:g,usage:_}),await this.globalBus.requestOptional(M.updateStatus,{agentId:e,status:`idle`})}async claimAndCreateAgent(e,t,n,r){if(r!==void 0&&!this.registry.claimAdapterSession(r))throw Error(`Provider session ${r} is already claimed by another in-flight rehydrate or start`);try{let r=await this.createAgentFn(e,t.sessionId,n),i=await this.resolvePersistedSystemPrompt(t.sessionId,t.personaId,t.profileId);return await r.initialize({...i!==void 0&&{systemPrompt:i}}),r}catch(e){throw r!==void 0&&this.registry.releaseAdapterSessionClaim(r),e}}async rehydrateRegisteredAgent(e,t,n){let r=n.adapterSessionId??t.adapterSessionId;await t.agent.swapConnector({cwd:n.cwd,model:n.model,adapterSessionId:r,resumeAdapterSessionId:r});let i=await t.agent.getAdapterSessionId();i&&(t.adapterSessionId=i),(n.cwd!==void 0||n.model!==void 0)&&await this.globalBus.requestOptional(M.updateRuntime,{agentId:e,cwd:n.cwd,model:n.model}),await this.globalBus.requestOptional(M.updateStatus,{agentId:e,status:`idle`})}async resolveMcpSessionContext(e,t){let n=await this.globalBus.requestOptional(j.get,{sessionId:e});if(!n.handled||!n.data.session)return;let r=await this.globalBus.requestOptional(k.session.resolve,{sessionId:e,projectId:null,profileId:t??null});return r.handled?r.data:void 0}async resolvePersistedSystemPrompt(e,t,n){if(!(!t&&!n))try{let r=await this.globalBus.requestOptional(j.resolveSystemPrompt,{sessionId:e,personaId:t,profileId:n});return r.handled?r.data.systemPrompt:void 0}catch{return}}};async function Cn(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=e.payload.providerContext??G(),s=crypto.randomUUID(),c=new dn({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l={bus:t.adapterBus,globalBus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:o,ephemeral:!0,...r!==void 0&&{model:r},...t.platformDefaults?.cwd!==void 0&&{cwd:t.platformDefaults.cwd},...t.platformDefaults?.env!==void 0&&{env:t.platformDefaults.env},errorHandler:e=>{console.warn(`[handleInfer:${t.adapterName}] Ephemeral connector error: ${e.message}`)}},u=await t.configFactory(l),d=await t.connectorFactory(u);try{await d.initialize({...i!==void 0&&{systemPrompt:i},...a!==void 0&&{responseSchema:a}});let r=L(n),o={...i!==void 0&&{systemPrompt:i},turnContext:Q(void 0,a,t.adapterCapabilities),...a!==void 0&&{responseSchema:a}},s=await d.start(r,o),l=await s.messageHandle.waitForCompletion(),u=l.result?.message??``;a!==void 0&&l.outcome===`completed`&&(u=await wn({connector:d,manager:c,responseSchema:a,startResult:s,text:u})),e.setResult({text:u})}finally{try{await d.close()}catch(e){console.warn(`[handleInfer:${t.adapterName}] Connector cleanup error:`,e)}}}async function wn(e){let{connector:t,manager:n,responseSchema:r,startResult:i,text:a}=e,o=await n.validateTerminalResult({responseSchema:r,message:a,retryTurn:async({attemptNumber:e,validationErrors:n})=>{let a={deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageHandle.messageId}:structured-output-retry:${e}`,responseSchema:r,turnContext:{...i.messageHandle.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:n,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}};return(await(await t.sendMessage(i.messageHandle.message,a)).waitForCompletion()).result?.message??``}});if(o.structuredOutputValidation.status===`failed`)throw Tn(o.structuredOutputValidation.errors);return o.message??``}function Tn(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}function En(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0,n=Dn({model:e.model,allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,resumeAdapterSessionId:e.resumeAdapterSessionId,reasoningEffort:e.reasoningEffort,adapterConfig:e.adapterConfig,harnessId:e.harnessId,clientId:e.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:e.mcpSessionContext,toolLedger:e.toolLedger,ephemeral:e.ephemeral,nativeFork:e.nativeFork});return{...e.platformCwd!==void 0&&{cwd:e.platformCwd},...t!==void 0&&{env:t},...e.cwd!==void 0&&{cwd:e.cwd},...n}}function Dn(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function On(e,t,n){if(e.length===0)return;if(n&&n!==`unresolved`)return e.find(e=>e.definition.id===n)?.definition.availableModels;if(e.length===1)return e[0]?.definition.availableModels;if(!t)return;let r=e.filter(e=>(e.definition.availableModels??[]).some(e=>e.name===t));if(r.length===1)return r[0]?.definition.availableModels}function kn(e){if(e.mode!==`fork`)return;let t=e.sessionContext,n=t===void 0?void 0:A.parse(t);if(n?.nativeLocality?.kind===`native`)return n.nativeFork}async function An(e,t,n,r,i){let{adapterId:a,name:o,clientId:s,getPlatformDefaults:c,globalBus:l}=i,u=r.role,d=Date.now(),f=c(),p=r.cwd??f?.cwd,m=r.clientId??s;try{await l.requestOptional(M.set,{agentId:e,agent:{agentId:e,adapterId:a,adapterName:o,sessionId:t,adapterSessionId:n,model:r.model,cwd:p,allowedDirectories:r.allowedDirectories,role:u,status:`idle`,createdAt:d,lastActivityAt:d,...m!==void 0&&{clientId:m},...r.harnessId!==void 0&&{harnessId:r.harnessId}}})}catch(n){console.error(`[AIAdapter:${o}] Optional agent persistence failed:`,{agentId:e,adapterId:a,sessionId:t,error:n})}l.emit(j.agent.added,{sessionId:t,agentId:e,adapterId:a,adapterName:o,adapterSessionId:n,role:u,model:r.model,cwd:p}),l.emit(T.session.created,{adapterId:a,adapterName:o,adapterSessionId:n,sessionId:t,model:r.model??`unknown`})}async function jn(e,t,n,r){try{await e.evict(t)}catch(e){throw AggregateError([r,e],`[AIAdapter:${n}] startAgent persistence failed and live agent cleanup also failed.`,{cause:e})}}async function Mn(e,t,n,r){try{if(t.initialMessage!==void 0){let r=L(t.initialMessage),i=await e.start(r,{systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema});return{adapterSessionId:i.adapterSessionId,messageId:String(i.messageHandle.messageId),messageHandle:i.messageHandle}}return{adapterSessionId:await e.initialize({systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema})}}catch(n){try{await e.close({emitSessionClosed:!t.ephemeral})}catch(e){console.warn(`[AIAdapter:${r}] Agent cleanup failed after startAgent error:`,e)}throw n}}async function Nn(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function Pn(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function Fn(e,t,n){let{sessionContext:r,...i}=e;return{...i,providerContext:t,...n===void 0?{}:{sessionContext:n}}}async function In(e,t){if(e.ephemeral)return e.sessionId??crypto.randomUUID();if((e.mode??`create`)===`create`){let n=await t.requestOptional(j.create,{...e.sessionId?{sessionId:e.sessionId}:{}});return n.handled?n.data.sessionId:e.sessionId??crypto.randomUUID()}if(e.sessionId)return e.sessionId;throw Error(`startAgent ${e.mode} mode requires sessionId`)}function Ln(e){if(e.mode===`resume`&&`adapterSessionId`in e)return e.adapterSessionId}async function Rn(e){let{agentId:t,sessionId:n,payload:r,providerContext:i,sessionContext:a,adapterName:o,resumeAdapterSessionId:s,registry:c}=e,l;try{l=await e.createAgent(t,n,Fn(r,i,a))}catch(e){throw s!==void 0&&c.releaseAdapterSessionClaim(s),e}let u;try{u=await Mn(l,r,a,o)}catch(e){throw s!==void 0&&c.releaseAdapterSessionClaim(s),e}return{agent:l,startResult:u}}function zn(e){let{adapterId:t,name:n,clientId:r,getPlatformDefaults:i,registry:a,globalBus:o,createAgent:s}=e;return async function(e){let c=e.payload,l=crypto.randomUUID(),u=c.providerContext??G();Pn(c);let d=await In(c,o),f=Ln(c);if(f!==void 0&&!a.claimAdapterSession(f)){e.setResult({success:!1,message:`Provider session ${f} is already claimed by another in-flight start`});return}let{agent:p,startResult:m}=await Rn({agentId:l,sessionId:d,payload:c,providerContext:u,sessionContext:c.sessionContext?A.parse(c.sessionContext):void 0,adapterName:n,resumeAdapterSessionId:f,registry:a,createAgent:s}),{adapterSessionId:h,messageId:g,messageHandle:_}=m;if(a.set(l,{agent:p,sessionId:d,adapterSessionId:h,usage:{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}),!c.ephemeral)try{await An(l,d,h,{...c,providerContext:u},{adapterId:t,name:n,clientId:r,getPlatformDefaults:i,globalBus:o})}catch(e){throw await jn(a,l,n,e),e}e.setResult({success:!0,agentId:l,adapterId:t,sessionId:d,adapterSessionId:h,...g!==void 0&&{messageId:g}}),c.ephemeral&&Nn(a,l,n,_).catch(e=>{console.warn(`[AIAdapter:${n}] Ephemeral agent cleanup failed:`,e)})}}var Bn=class{adapterId;name;capabilities;nativeTools;namespace;globalBus;adapterBus;registry;cleanupFns=[];rehydrationManager;initialized=!1;clientId;platformDefaults;definitionProviders;agentFactory;configFactory;connectorFactory;constructor(e){this.adapterId=e.adapterId??crypto.randomUUID(),this.name=e.name,this.capabilities=e.capabilities,this.nativeTools=e.nativeTools??[],this.globalBus=e.globalBus??w,this.adapterBus=e.scopedBus,this.namespace=e.namespace,this.agentFactory=e.agentFactory,this.configFactory=e.configFactory,this.connectorFactory=e.connectorFactory,this.clientId=e.clientId,this.platformDefaults=e.platformDefaults,this.definitionProviders=e.definitionProviders??[],this.registry=new yn({globalBus:this.globalBus,adapterName:this.name}),this.rehydrationManager=new Sn({globalBus:this.globalBus,registry:this.registry,createAgent:this.createAgent.bind(this)})}setupHandlers(){let e=this.globalBus.withFilter({adapterId:this.adapterId});this.cleanupFns.push(e.on(T.startAgent,zn({adapterId:this.adapterId,name:this.name,clientId:this.clientId,getPlatformDefaults:()=>this.platformDefaults,registry:this.registry,globalBus:this.globalBus,createAgent:this.createAgent.bind(this)})),e.on(T.rehydrateAgent,this.rehydrationManager.handleRehydrateAgent),e.on(T.infer,e=>Cn(e,{adapterBus:this.adapterBus,globalBus:this.globalBus,adapterId:this.adapterId,adapterName:this.name,adapterCapabilities:this.capabilities,platformDefaults:this.platformDefaults,configFactory:this.configFactory,connectorFactory:this.connectorFactory})),e.on(E.session.closed,this.handleSessionClosed),e.on(E.started,this.handleStartedReconcileRegistry),e.on(E.usage,this.handleUsage),this.globalBus.on(j.closed,this.handleSessionClosedByService),e.on(T.listAgents,e=>{e.setResult({agents:Array.from(this.registry.values()).map(e=>({agentId:e.agent.agentId,sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}))})}),e.on(T.getAgent,e=>{let t=this.registry.get(e.payload.agentId);e.setResult({agent:t?{agentId:t.agent.agentId,sessionId:t.sessionId,adapterSessionId:t.adapterSessionId}:null})}),e.on(T.stopAgent,e=>{e.setResult({success:this.disposeAgent(e.payload.agentId)})}),e.on(T.getCapabilities,e=>{e.setResult({capabilities:this.capabilities,nativeTools:this.nativeTools})}))}handleSessionClosed=e=>{let{agentId:t,adapterSessionId:n,reason:r}=e.payload,i=this.registry.get(t);if(!i){console.warn(`Agent ${t} not found, can't emit AgentSubjects.session.closed`);return}let a=n??i.adapterSessionId??``;this.registry.evict(t).catch(e=>{console.error(`[AIAdapter:${this.name}] Failed to evict agent ${t} after session.closed:`,e)}),this.globalBus.emit(T.session.closed,{adapterId:this.adapterId,adapterName:this.name,agentId:t,sessionId:i.sessionId,adapterSessionId:a,reason:r})};handleSessionClosedByService=async e=>{let{sessionId:t}=e.payload,n=this.registry.agentIdsBySession(t);await Promise.all(n.map(e=>this.registry.evict(e,{emitSessionClosed:!1}).catch(t=>console.error(`[AIAdapter:${this.name}] Failed to evict agent ${e} after session.closed:`,t))))};handleStartedReconcileRegistry=e=>{let{agentId:t,adapterSessionId:n}=e.payload;if(!n)return;let r=this.registry.get(t);r&&!r.adapterSessionId&&(r.adapterSessionId=n)};handleUsage=e=>{let{agentId:t,adapterSessionId:n,inputTokens:r,outputTokens:i}=e.payload,a=this.registry.accumulateUsage(t,{inputTokens:r,outputTokens:i},n);a&&this.globalBus.emit(T.session.usage,{adapterId:this.adapterId,adapterName:this.name,sessionId:a.sessionId,adapterSessionId:a.adapterSessionId,...a.usage})};async init(){this.initialized||(this.globalBus.registerNamespaces([this.namespace.definition]),this.adapterBus??=await this.namespace.scopedBus(this.globalBus.getContext()),this.setupHandlers(),await this.onInit(),this.initialized=!0,await this.globalBus.emit(T.initialized,{adapterId:this.adapterId,adapterName:this.name,capabilities:this.capabilities,nativeTools:this.nativeTools}))}async onInit(){}async createAgent(e,t,n){if(!this.adapterBus)throw Error(`Adapter bus not initialized. Did you forget to call init()?`);let{model:r,cwd:i,env:a,allowedTools:o,disallowedTools:s,reasoningEffort:c,mcpSessionContext:l,harnessId:u,ephemeral:d}=n,f=n.clientId??this.clientId,p=n.resumeAdapterSessionId??(n.mode===`resume`?n.adapterSessionId:void 0),m=kn(n),h=On(this.definitionProviders,r,n.providerContext?.definitionId),g=l===void 0?void 0:new gn,_={agentId:e,adapterId:this.adapterId,adapterName:this.name,globalBus:this.globalBus,adapterBus:this.adapterBus,capabilities:this.capabilities,nativeTools:this.nativeTools,availableModels:h,configFactory:this.configFactory,connectorFactory:this.connectorFactory,sessionId:t,...n.providerContext!==void 0&&{providerContext:n.providerContext},...En({platformCwd:this.platformDefaults?.cwd,platformEnv:this.platformDefaults?.env,model:r,cwd:i,env:a,allowedTools:o,disallowedTools:s,allowedDirectories:n.allowedDirectories,adapterSessionId:n.adapterSessionId,reasoningEffort:c,adapterConfig:n.adapterConfig,resumeAdapterSessionId:p,harnessId:u,clientId:f,clientProfileName:n.clientProfileName,mcpSessionContext:l,toolLedger:g,ephemeral:d,nativeFork:m})};return this.agentFactory(_)}async closeAsync(){try{let e=await Promise.allSettled([...this.registry.values()].map(e=>e.agent.close()));this.registry.clear(),await this.onClose();let t=e.filter(e=>e.status===`rejected`).map(e=>e.reason instanceof Error?e.reason:Error(String(e.reason)));t.length>0&&console.warn(`[AIAdapter] ${t.length} agent(s) failed to close:`,t)}finally{for(let e of this.cleanupFns)try{e()}catch(e){console.warn(`[AIAdapter] Cleanup function failed:`,e)}this.cleanupFns=[],this.initialized=!1}}close(){this.closeAsync()}async onClose(){}getAgent(e){let t=this.registry.get(e);if(t)return Object.assign({},t.agent,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId})}disposeAgent(e){return this.registry.dispose(e)}getActiveAgents(){return Array.from(this.registry.values()).map(e=>Object.assign({},e.agent,{sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}))}isInitialized(){return this.initialized}};function Vn(e){let t={adapterSessionId:e.adapterSessionId,lineage:e.lineage,messages:e.messagePayloads};return e.compactionMetadata&&(t.compaction=e.compactionMetadata),e.turns&&(t.turns=e.turns),e.isSidechain!==void 0&&(t.isSidechain=e.isSidechain),e.compressChildren?.length&&(t.children=e.compressChildren.map(Vn)),t}var Hn=class{processLogFile(e){let t=Array.isArray(e)?e:[e],n=this.extractSessionContext(t),r=this.processRecords(t,n);return{adapterSessionId:n.adapterSessionId,sessionEvent:n.sessionEvent,messageEvents:[n.startedEvent,...r],messagePayloads:[],lineage:{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null}}}};function Un(e){let t=new Map,n=[];return n.push(e.on(a.get,e=>{let{filePath:n}=e.payload,r=t.get(n)??null;e.setResult({cursor:r})})),n.push(e.on(a.set,e=>{let{filePath:n,bytesRead:r,lastModified:i}=e.payload;t.set(n,{filePath:n,bytesRead:r,lastModified:i}),e.setResult({success:!0})})),n.push(e.on(a.delete,e=>{let{filePath:n}=e.payload,r=t.delete(n);e.setResult({success:r})})),()=>{n.forEach(e=>e()),t.clear()}}const Wn=C.object({sessions:C.record(C.string(),C.object({state:C.enum([`idle`,`active`]),currentTurnId:C.string().optional()}))}).default({sessions:{}});var Gn=class{options;sessions=new Map;generateTurnId;constructor(e){this.options=e,this.generateTurnId=e.generateTurnId??(()=>crypto.randomUUID())}processRecord(e){let t=this.options.getSessionId(e),n=this.getOrCreateSessionState(t),r=[],i=this.options.detectTurnStart(e),a=this.options.detectTurnComplete(e);if(i){n.state===`active`&&n.currentTurnId&&r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId});let e=this.generateTurnId(t);n.state=`active`,n.currentTurnId=e,r.push({type:`turn.started`,sessionId:t,turnId:e})}else a&&n.state===`active`&&n.currentTurnId&&(r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId}),n.state=`idle`,n.currentTurnId=void 0);return r}getState(e){return this.sessions.get(e)?.state??`idle`}getCurrentTurnId(e){return this.sessions.get(e)?.currentTurnId}hasActiveTurn(e){return this.getState(e)===`active`}resetSession(e){return this.sessions.delete(e)}resetAll(){this.sessions.clear()}serialize(){let e={};for(let[t,n]of this.sessions)e[t]={state:n.state,currentTurnId:n.currentTurnId};return{sessions:e}}restore(e){this.sessions.clear();for(let[t,n]of Object.entries(e.sessions))this.sessions.set(t,{state:n.state,currentTurnId:n.currentTurnId})}getTrackedSessions(){return Array.from(this.sessions.keys())}forceCompleteTurn(e){let t=this.sessions.get(e);if(!t||t.state!==`active`||!t.currentTurnId)return;let n={type:`turn.completed`,sessionId:e,turnId:t.currentTurnId};return t.state=`idle`,t.currentTurnId=void 0,n}getOrCreateSessionState(e){let t=this.sessions.get(e);return t||(t={state:`idle`,currentTurnId:void 0},this.sessions.set(e,t)),t}};const Kn=C.object({eventType:C.literal(`agent_started`),model:C.string().optional()}),qn=C.object({eventType:C.literal(`agent_complete`),message:C.string().optional(),error:C.string().optional()}),Jn=C.object({eventType:C.literal(`error`),message:C.string(),code:C.string().or(C.number()).optional(),type:C.string().optional()}),Yn=C.object({eventType:C.literal(`tool_started`),toolName:C.string(),toolCallId:C.string()}),Xn=C.object({eventType:C.literal(`tool_completed`),toolName:C.string(),toolCallId:C.string(),result:C.string(),success:C.boolean()});export{Bn as AIAdapter,pn as AIAgent,J as AIAgentConnector,qn as AgentCompleteEventSchema,xt as AgentConnectorLifecycleManager,ht as AgentEventBridge,mt as AgentLifecycleEmitter,gt as AgentPayloadEmitter,bt as AgentRuntimeMutationManager,Kn as AgentStartedEventSchema,$ as AgentTurnExecutor,lt as BaseConnectorSession,Y as BaseConnectorTurn,Hn as BaseLogImporter,Jn as ErrorEventSchema,o as ImportCursorPositionSchema,i as ImportCursorStorageNamespace,a as ImportCursorStorageSubjects,Ve as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,B as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,Be as MAKAIO_CONFORMANCE_PROVIDER_ENV,He as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,q as MessageHandle,X as MessageLifecycleTracker,dt as ProceduralAgentConnector,ut as ProceduralConnectorTurn,$e as ScopedToolApprovalSchema,rt as SessionLifecycle,gn as SessionToolLedger,Z as ToolCallTracker,Xn as ToolCompletedEventSchema,Yn as ToolStartedEventSchema,Gn as TurnTracker,Wn as TurnTrackerSerializedStateSchema,it as UserMessageQueue,n as cleanEnvForAdapter,xe as createAdapterNamespace,z as createTestProviderContext,et as createToolApprovalHandler,Pe as defineDiscriminatedHandlers,Fe as defineDiscriminatedHandlersSync,_n as extractMcpCallTarget,F as formatContextBlockAsText,Me as formatContextBlocksAsText,Ye as formatMessageHistoryAsTranscript,vn as isMcpCallTool,tt as isTextLikeMimeType,ct as markCompletedWithFinalResult,Qe as mergeScopedToolApproval,R as normalizeEnvValue,L as normalizeMessageInput,W as normalizeMimeType,Ne as parseAIAdapterCapabilities,Ie as processDiscriminatedItems,Le as processDiscriminatedItemsSync,K as processQueueMessages,pt as registerAgentBusHandlers,Un as registerMemoryImportCursorStorage,Ke as resolveConformanceTestPreset,qe as resolveDisabledNativeTools,nt as resolvePresetCredentials,U as resolveRequiredSessionId,ze as resolveTestConfig,P as safeJsonStringify,Ze as serializeBlockToText,Ae as serializeTurnContext,Vn as toImportSegment};
@@ -1,4 +1,4 @@
1
- import { _ as LogImporter, i as LogFileChangeEvent, n as LogOrchestratorConfig, t as BaseLogOrchestrator } from "../base-orchestrator-ODRyDBzu.mjs";
1
+ import { _ as LogImporter, i as LogFileChangeEvent, n as LogOrchestratorConfig, t as BaseLogOrchestrator } from "../base-orchestrator-J1WKAUkF.mjs";
2
2
 
3
3
  //#region adapters/core/src/log-importer/jsonl-parser.d.ts
4
4
  /**