@makaio/framework 1.0.0-dev-1781260968078 → 1.0.0-dev-1781354548379
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.makaio-build.json +2 -2
- package/dist/adapter-UpcpZDOv.mjs +1 -0
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/index.d.mts +11 -3
- package/dist/adapters/index.mjs +1 -1
- package/dist/bus/index.mjs +1 -1
- package/dist/clients/index.d.mts +4 -7
- package/dist/clients/index.mjs +1 -1
- package/dist/contracts/adapter/index.d.mts +2 -2
- package/dist/contracts/adapter/index.mjs +1 -1
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +1 -1
- package/dist/contracts/client/index.d.mts +1 -1
- package/dist/contracts/extension/index.d.mts +2 -2
- package/dist/contracts/facet/index.d.mts +1 -1
- package/dist/contracts/index.d.mts +219 -54
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +3 -3
- package/dist/contracts/session/index.d.mts +3 -3
- package/dist/contracts/session/index.mjs +1 -1
- package/dist/{definition-SiimP25_.d.mts → definition-DqJOg6Lv.d.mts} +1 -1
- package/dist/drizzle/0015_m_mqbh8q5b.sql +1 -0
- package/dist/drizzle/0016_m_mqbmq8h7.sql +1 -0
- package/dist/drizzle/0017_m_mqbnf924.sql +1 -0
- package/dist/drizzle/meta/0015_snapshot.json +2966 -0
- package/dist/drizzle/meta/0016_snapshot.json +2973 -0
- package/dist/drizzle/meta/0017_snapshot.json +2980 -0
- package/dist/drizzle/meta/_journal.json +21 -0
- package/dist/{handler-DSfSAlxx.mjs → handler-DqpiV9eA.mjs} +1 -1
- package/dist/handlers-BAB4fQNH.mjs +41 -0
- package/dist/{index-B2xbnMZe.d.mts → index-BCKRUuI2.d.mts} +1 -1
- package/dist/{index-CARxIllg.d.mts → index-BHAOu6Hs.d.mts} +20 -20
- package/dist/{index-Cb64d5c5.d.mts → index-BHzgDuRE.d.mts} +20 -3
- package/dist/{index-BtztOqaF.d.mts → index-BheaEhyI.d.mts} +6 -6
- package/dist/{index-CZ_TcT6J.d.mts → index-Bibt5jAX.d.mts} +8 -8
- package/dist/{index-D5CI1V5d.d.mts → index-C3zfJg6s.d.mts} +16 -16
- package/dist/{index-DTdqGAfH2.d.mts → index-CH5U3zSA2.d.mts} +1 -1
- package/dist/{index-CgjslA5-.d.mts → index-CTn_Xi-p.d.mts} +4 -4
- package/dist/{index-DDQkhhRo.d.mts → index-DPIdX6kb.d.mts} +363 -123
- package/dist/{index-BQiHs8EF.d.mts → index-Da4ABgRq.d.mts} +12 -12
- package/dist/{index-BvSyOgTY.d.mts → index-DrGLAuZc.d.mts} +98 -29
- package/dist/{index-BKKNWqkP2.d.mts → index-zgm2j9V92.d.mts} +44 -2
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/index.d.mts +2 -2
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/mcp-http-server/index.d.mts +132 -19
- package/dist/mcp-http-server/index.mjs +1 -1
- package/dist/{namespace-D1Iw_d1P.d.mts → namespace--s0d86h-.d.mts} +144 -0
- package/dist/{namespace-7tsuJhQ9.d.mts → namespace-Boe6l5n9.d.mts} +78 -42
- package/dist/{namespace-Ba4bxtHQ.d.mts → namespace-BxxBhcV_.d.mts} +9 -9
- package/dist/{namespace-DwE2g8Wm.mjs → namespace-Dfq6MDN9.mjs} +1 -1
- package/dist/{namespace-DDCjoQUj.d.mts → namespace-aJJfBJU5.d.mts} +170 -0
- package/dist/{orchestrator-shared-Dt4WDse7.mjs → orchestrator-shared-BKFXaKPL.mjs} +1 -1
- package/dist/{package-BSnp1zOR.d.mts → package--RZnpN2J.d.mts} +2 -3
- package/dist/package-BzJvtM5O.mjs +1 -0
- package/dist/package-DzN_jdqd.mjs +1 -0
- package/dist/package.json +1 -1
- package/dist/primitive-runtime-CNC_bSac.mjs +1 -0
- package/dist/runtime-node/bus/runtime/namespace.d.mts +8 -8
- package/dist/runtime-node/bus/runtime/schemas.d.mts +11 -4
- package/dist/runtime-node/bus/runtime/schemas.mjs +1 -1
- package/dist/runtime-node/index.d.mts +19 -1
- package/dist/runtime-node/index.mjs +1 -1
- package/dist/{schema-BerZmr2q.mjs → schema-C3TgjrsV.mjs} +1 -1
- package/dist/{schema-BrnYlDwZ.mjs → schema-CzhOc7TV.mjs} +1 -1
- package/dist/{schema-BNrM9LWb.d.mts → schema-DGMLvVoQ.d.mts} +23 -3
- package/dist/schemas-CuKayWhA.mjs +1 -0
- package/dist/{schemas-DAFYpgHk2.d.mts → schemas-kVcJMjjn2.d.mts} +8 -8
- package/dist/{schemas-CkOSG2eJ.d.mts → schemas-t1VR6_b_.d.mts} +3 -3
- package/dist/services/filesystem/namespace.d.mts +6 -6
- package/dist/services/filesystem/schemas.d.mts +3 -3
- package/dist/services/git/namespace.d.mts +2 -2
- package/dist/services/git/schemas.d.mts +2 -2
- package/dist/services/harness/index.d.mts +3 -4
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/index.d.mts +112 -15
- package/dist/services/index.mjs +1 -1
- package/dist/services/log-import/browser.d.mts +2 -2
- package/dist/services/log-import/index.d.mts +4 -5
- package/dist/services/log-import/index.mjs +1 -1
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/namespace.d.mts +2 -2
- package/dist/services/log-import/schemas.d.mts +1 -1
- package/dist/services/provider-context/index.mjs +1 -1
- package/dist/services/session/handlers/index.mjs +1 -1
- package/dist/services/session/index.d.mts +6 -6
- package/dist/services/session/index.mjs +1 -1
- package/dist/services/session/messages/namespace.mjs +1 -1
- package/dist/services/session/orchestrator-testing/index.mjs +1 -1
- package/dist/services/session/session-events/namespace.d.mts +1 -1
- package/dist/services/session/session-events/namespace.mjs +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +1 -1
- package/dist/services/session/storage/schema.mjs +1 -1
- package/dist/services/session/testing/index.mjs +5 -3
- package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
- package/dist/services/session/turns/namespace.d.mts +1 -1
- package/dist/services/session/turns/namespace.mjs +1 -1
- package/dist/services/settings/index.mjs +1 -1
- package/dist/services/settings/namespace.d.mts +8 -8
- package/dist/services/settings/storage/clients-namespace.mjs +1 -1
- package/dist/services/settings/storage/index.mjs +1 -1
- package/dist/services/settings/storage/providers-namespace.mjs +1 -1
- package/dist/services/subagent/index.d.mts +1 -1
- package/dist/services/subagent/index.mjs +1 -1
- package/dist/services/subagent-template/index.d.mts +1 -1
- package/dist/services/subagent-template/schemas.d.mts +1 -1
- package/dist/services/tool-approval/index.mjs +1 -1
- package/dist/services/tools/index.mjs +1 -1
- package/dist/services/turn/index.d.mts +1 -1
- package/dist/services/turn/namespace.d.mts +1 -1
- package/dist/services/turn/schemas.d.mts +72 -0
- package/dist/services/turn/schemas.mjs +1 -1
- package/dist/{session-C1Cami7U.mjs → session-BwX5_k47.mjs} +1 -1
- package/dist/session-P4nX60Xx.mjs +39 -0
- package/dist/{session-lineage-CXzV_hAP.d.mts → session-lineage-CKg6mErA.d.mts} +1 -1
- package/dist/storage/drizzle/index.d.mts +1 -1
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/{tool-approval-service-Cb2F1yT6.mjs → tool-approval-service-DNHV5x0M.mjs} +1 -1
- package/dist/{tools-D5DVHC-R.mjs → tools-CQImrHAp.mjs} +1 -1
- package/dist/{types-DLVitCZP.d.mts → types-BpuLMR2m.d.mts} +626 -443
- package/dist/{types-D5IMwOkJ.d.mts → types-D0fPFh-D.d.mts} +1 -1
- package/dist/{types-BMpIa4fx.d.mts → types-D6jnDjP2.d.mts} +18 -5
- package/dist/ui-components/index.d.mts +36 -37
- package/dist/ui-views/index.d.mts +2 -2
- package/dist/workflow-engine/index.d.mts +58 -25
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/package.json +10 -1
- package/dist/adapter-Dt2FDMs4.mjs +0 -1
- package/dist/handlers-C8EtpSqK.mjs +0 -41
- package/dist/package-Be2Ez4vv.mjs +0 -1
- package/dist/package-OE9dMQsq.mjs +0 -1
- package/dist/primitive-runtime-Xrc9xh6p.mjs +0 -1
- package/dist/schemas-CSUwpaNm.mjs +0 -1
- package/dist/session-KnewDVxt.mjs +0 -39
- /package/dist/{provider-context-lfG0BpqX.mjs → provider-context-wp4VSJFI.mjs} +0 -0
- /package/dist/{shared-schemas-CKe2uN4-.mjs → shared-schemas-DYL7a-No.mjs} +0 -0
package/dist/.makaio-build.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"fingerprint": "
|
|
4
|
-
"builtAt": "2026-06-
|
|
3
|
+
"fingerprint": "00c7f9131f71c9d21fdf94dcf209e3da95bcc7e2a860520e0dd206e990ecc031",
|
|
4
|
+
"builtAt": "2026-06-13T12:43:27.094Z"
|
|
5
5
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,o as u,p as d,s as f,st as p,t as m,u as h,v as g}from"./schemas-CuKayWhA.mjs";import"./contracts/adapter/schemas/session-lineage.mjs";import{createBusNamespace as _}from"@makaio/framework/core";const v={getCapabilities:p,startAgent:g,infer:e,listAgents:a,getAgent:o,stopAgent:l,rehydrateAgent:d,getConfigSchema:i,"agent.created":r,"session.created":h,"session.discovered":m,"session.usage":c,"session.closed":n,log:f,error:u,initialized:t,quota:s},y=_(`adapter`,v),b=y.subjects;export{b as n,v as r,y as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as BaseAgentConnectorConfig } from "../../types-
|
|
1
|
+
import { g as BaseAgentConnectorConfig } from "../../types-D6jnDjP2.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,4 +1,4 @@
|
|
|
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-
|
|
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-D6jnDjP2.mjs";
|
|
2
2
|
import { _ as LogImporterConfig, a as CompactionMetadata, b as StorageMessagePayload, c as ExternalToolIdentifiers, d as ImportMetadata, f as ImportSegment, g as LogImporter, h as LogImportTestConfig, l as ExternalToolMeta, m as LogImportSessionContext, n as LogOrchestratorConfig, o as DiscoveryMetadata, p as ImportSegmentLineage, r as ParseFileResult, s as ExternalToolIdentifier, u as ImportCursorPosition, v as NormalizedEvent, x as toImportSegment, y as ProcessLogFileResult } from "../base-orchestrator-M5mAB5-w.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import * as _$_makaio_core0 from "@makaio/framework/core";
|
|
@@ -1922,6 +1922,8 @@ declare abstract class AIAgent<TBus extends ScopedBus<string> = ScopedBus<string
|
|
|
1922
1922
|
cwd: string;
|
|
1923
1923
|
model: string;
|
|
1924
1924
|
providerContext: ProviderContext;
|
|
1925
|
+
adapterSessionId: string;
|
|
1926
|
+
resumeAdapterSessionId: string;
|
|
1925
1927
|
mcpSessionContext: McpRuntimeSessionContext | McpSessionContext | LedgerSessionContext;
|
|
1926
1928
|
}>): Promise<void>;
|
|
1927
1929
|
/**
|
|
@@ -2340,8 +2342,9 @@ type StartAgentRequestPayload = ExtractSubjectPayload<typeof AdapterSubjects.sta
|
|
|
2340
2342
|
* through complex union schemas. Using the canonical TypeScript type preserves
|
|
2341
2343
|
* the brand and ensures `resolveConnectorCredentials()` receives the correct type.
|
|
2342
2344
|
*/
|
|
2343
|
-
type AgentCreationOptions = Omit<Partial<Pick<StartAgentRequestPayload, 'model' | 'cwd' | 'env' | 'allowedTools' | 'disallowedTools' | 'reasoningEffort' | 'mode' | 'mcpSessionContext' | 'harnessId' | 'clientId' | 'clientProfileName' | 'providerContext' | 'ephemeral'>>, 'providerContext'> & {
|
|
2344
|
-
adapterSessionId?: string;
|
|
2345
|
+
type AgentCreationOptions = Omit<Partial<Pick<StartAgentRequestPayload, 'model' | 'cwd' | 'env' | 'allowedTools' | 'disallowedTools' | 'allowedDirectories' | 'reasoningEffort' | 'adapterConfig' | 'mode' | 'mcpSessionContext' | 'harnessId' | 'clientId' | 'clientProfileName' | 'providerContext' | 'ephemeral'>>, 'providerContext'> & {
|
|
2346
|
+
adapterSessionId?: string;
|
|
2347
|
+
resumeAdapterSessionId?: string; /** Unresolved provider context (credential refs, not plaintext). */
|
|
2345
2348
|
providerContext?: ProviderContext;
|
|
2346
2349
|
};
|
|
2347
2350
|
/**
|
|
@@ -2433,6 +2436,7 @@ interface AgentConnectorLifecycleManagerConfig<TBus extends ScopedBus<string>, T
|
|
|
2433
2436
|
model: string;
|
|
2434
2437
|
providerContext: ProviderContext;
|
|
2435
2438
|
adapterSessionId: string;
|
|
2439
|
+
resumeAdapterSessionId: string;
|
|
2436
2440
|
mcpSessionContext: McpRuntimeSessionContext | McpSessionContext | LedgerSessionContext;
|
|
2437
2441
|
}>) => ConfigFactoryInput<TBus>;
|
|
2438
2442
|
/** Adapter config factory from AIAgent config. */
|
|
@@ -2492,6 +2496,8 @@ declare class AgentConnectorLifecycleManager<TBus extends ScopedBus<string>, TCo
|
|
|
2492
2496
|
cwd: string;
|
|
2493
2497
|
model: string;
|
|
2494
2498
|
providerContext: ProviderContext;
|
|
2499
|
+
adapterSessionId: string;
|
|
2500
|
+
resumeAdapterSessionId: string;
|
|
2495
2501
|
mcpSessionContext: McpRuntimeSessionContext | McpSessionContext | LedgerSessionContext;
|
|
2496
2502
|
}>): Promise<void>;
|
|
2497
2503
|
}
|
|
@@ -2667,6 +2673,8 @@ interface AgentRuntimeConnectorOverrides {
|
|
|
2667
2673
|
cwd: string;
|
|
2668
2674
|
model: string;
|
|
2669
2675
|
providerContext: ProviderContext;
|
|
2676
|
+
adapterSessionId: string;
|
|
2677
|
+
resumeAdapterSessionId: string;
|
|
2670
2678
|
mcpSessionContext: McpRuntimeSessionContext | McpSessionContext | LedgerSessionContext;
|
|
2671
2679
|
}
|
|
2672
2680
|
/** Dependencies for runtime mutation handling. */
|
package/dist/adapters/index.mjs
CHANGED
|
@@ -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 Fe(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 F(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 Ie(e,t){return{discriminator:e,handlers:t}}function Le(e,t){return{discriminator:e,handlers:t}}async function Re(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 ze(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 I(e){return e?.trim()||void 0}function Be(e){return[...new Set(e.flatMap(e=>e.credentialEnvVars?Object.values(e.credentialEnvVars):[]))]}function L(e,t=e?[e]:[]){let n={},r=Be(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 Ve(e,t,n,r=n?[n]:[]){return{...e,bus:t,agentId:crypto.randomUUID(),adapterId:crypto.randomUUID(),adapterName:e?.adapterName??`test-adapter`,providerContext:e?.providerContext??L(n,r)}}const He=`MAKAIO_CONFORMANCE_PROVIDER`,Ue=`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,We=`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,R=`MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS`;function Ge(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 Ke(e){let t=I(e);if(!t)return[];let n;try{n=JSON.parse(t)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${R} must contain valid JSON: ${t}`,{cause:e})}if(!Array.isArray(n))throw Error(`${R} must be a JSON array`);for(let[e,t]of n.entries())if(!t||typeof t!=`object`||typeof t.id!=`string`)throw Error(`${R}[${e}] must be a provider object with an id`);return n}function qe(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 Ge(a)}function z(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 Je(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=Ke(t(R)),o=qe(e.adapterName,e.providerIds,e.providerDefinitions??[],a),s=I(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=z(e.adapterName,l,`primary`,I(t(r))??l.primaryTestModel??l.fastModel??l.defaultModel,r),d=z(e.adapterName,l,`secondary`,I(t(i))??l.secondaryTestModel??l.defaultModel,i);return{provider:l,providers:o,providerContext:L(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 Ye(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 Xe(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 Ze(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(Xe).join(`
|
|
10
10
|
`)}`}).join(`
|
|
11
|
-
`)}function Qe(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function $e(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 Qe(e)}}function B(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 V(e,t,n,r=!1){return B(e,t,`sessionId`,n,r)}function et(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=V(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:B(t.agentId,e.agentId,`agentId`,n,i),adapterId:B(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:B(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:B(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const tt={request:D.request.extend({sessionId:C.string().optional()}),response:D.response};function nt(e,t,n){return function(r,i){return r.on(e,async e=>{try{let r=typeof i==`function`?await i():i,a=t(e.payload,r),o=await w.request(E.toolApprove,a);e.setResult(n(o))}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 H(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function rt(e){let t=H(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 it(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 U(){return{providerConfigId:`sentinel`,definitionId:`unresolved`,credentialRefs:{}}}var at=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)}},ot=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 W(e,t){let n=t.getCurrentTurn(),r=t.extractContent??st;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`}),W(e,t)):(e.dequeue(),await t.startNewTurn(i),!0):!1}function st(e){return e.message.message}const ct=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function lt(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:ct.includes(t),statesToEmit:[...n,t]}}var G=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;_turnContext;constructor(e,t,n,r,i,a,o=!1){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._turnContext=i}get messageHistory(){return this._messageHistory}set messageHistory(e){this._messageHistory=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 ut(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 K=class{agentId;adapterSessionId;sessionId;pendingMessageHandle;scopedBus;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.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=lt(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)}createMessageHandle(e,t){let n=new G(t?.messageId??crypto.randomUUID(),e,t?.deliveryMode??`enqueue`,t?.messageHistory,t?.turnContext,t?.responseSchema,t?.internalRetry??!1);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){}},dt=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}},q=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)}},ft=class extends q{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}},pt=class extends K{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 mt(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 J=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){let{messageId:t,message:n,mergedFrom:r}=e;this.currentMessageId=t,this.emitGlobal(E.user_message.acknowledged,{messageId:t,mergedFrom:r}),this.emitGlobal(E.turn.started,{messageId:t,content:n,mergedFrom:r})}complete(e,t){let{messageId:n}=e;this.currentMessageId===n&&(this.currentMessageId=void 0,this.currentTurnId=void 0),this.emitGlobal(E.turn.completed,{messageId:n,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}}),this.emitGlobal(E.user_message.completed,{messageId:n,outcome:t.outcome,supersededBy:t.supersededBy,mergedInto:t.mergedInto})}track(e,t,n){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)}),e.waitForCompletion().then(n=>{this.complete(e,n),t&&t(e.messageId,n)})}},Y=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 ht(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 X=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)}))}},Z=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}async enrichPayload(e,t,n){let r=t??this.config.getCurrentMessageId(),i=this.config.getCurrentTurnId(),a=e,o=n?.includeEventMetadata??!0,s=o?this.config.getEventMetadataDefaults():{},c=this.config.getConnectorAdapterSessionId()??this.config.getLastKnownAdapterSessionId()??await this.config.getAdapterSessionId(),l=o?a.clientId??s.clientId:void 0,u=o?a.providerConfigId??s.providerConfigId:void 0,d=o?a.occurredAt??s.occurredAt:void 0;this.config.setLastKnownAdapterSessionId(c);let f=this.config.getAgentContextBase();return{...e,agentId:f.agentId,adapterId:f.adapterId,adapterName:f.adapterName,adapterSessionId:c,...r!==void 0&&{messageId:r},...i!==void 0&&{turnId:i},...f.sessionId!==void 0&&{sessionId:f.sessionId},...l!==void 0&&{clientId:l},...u!==void 0&&{providerConfigId:u},...d!==void 0&&{occurredAt:d}}}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}};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 _t=class{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;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.onMessageHandle=e.onMessageHandle,this.onBeforeDispatch=e.onBeforeDispatch,this.ephemeral=e.ephemeral??!1}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.shouldUseNativeResume(r.sessionContext),a=F(r.message),o=await t.sendMessage(a,{deliveryMode:e.deliveryMode,messageId:e.messageId,messageHistory:i?void 0:r.sessionContext?.messageHistory,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),{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.shouldUseNativeResume(o.sessionContext),c=F(o.message),l={systemPrompt:n,messageHistory:s?void 0:o.sessionContext?.messageHistory,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),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)})}},vt=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 yt(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 bt=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}`}}}},xt=class{agentId;sessionId;globalBus;getConnector;swapConnector;emitCwdChanged;emitModelChanged;getProviderContext;setProviderContext;setReasoningEffort;setMcpSessionContext;resolveSupportedReasoningLevels;mcpServersMutationManager;credentialChangeSequencer=new vt;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 bt({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 yt({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})}},St=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:crypto.randomUUID()}),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}this.config.setLastKnownAdapterSessionId(i.adapterSessionId);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 o=t;this.config.setConnector(i);try{await o.close()}catch(e){console.warn(`[AIAgent] Failed to close previous connector for agent ${this.config.agentId}:`,e)}}};function Ct(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,getAdapterSessionId:e.getAdapterSessionId,getEventMetadataDefaults:e.getEventMetadataDefaults})}function wt(e){return new Z({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 Tt(e){return new _t(e)}function Et(e){return new xt({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 Dt(e){return new St({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 Ot=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})),kt=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})),At=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Ot(),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`)}}})),jt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=kt();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),Mt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Ot(),n=kt(),r=At(),i=jt();e.default=[t.default,n.default,r.default,i.default]})),Nt=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)}})),Pt=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)}})),Ft=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`)}}})),It=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Nt(),n=Pt(),r=Ft();e.default=[t.default,n.default,r.default]})),Lt=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)}}}})),Rt=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())})}}}})),$=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Lt(),n=Rt();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=Mt(),a=It(),o=$(),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=Mt(),a=It(),o=$(),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 Y;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??w},this.availableModels=e.availableModels,this.lifecycleTracker=new J({emitGlobal:this.emitGlobal.bind(this)}),this.payloadEmitter=Ct({globalBus:this.globalBus,getAgentContextBase:()=>({agentId:this.agentId,adapterId:this.adapterId,adapterName:this.adapterName,sessionId:this.sessionId}),lifecycleTracker:this.lifecycleTracker,getConnectorAdapterSessionId:()=>this.connector?.adapterSessionId,getLastKnownAdapterSessionId:()=>this.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:e=>{this.lastKnownAdapterSessionId=e},getAdapterSessionId:this.getAdapterSessionId.bind(this),getEventMetadataDefaults:this.getEventMetadataDefaults.bind(this)}),this.eventBridge=wt({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=Tt({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,adapterCapabilities:this.capabilities,globalBus:this.globalBus,getConnector:()=>this.connector,shouldUseNativeResume:this.shouldUseNativeResume.bind(this),onMessageHandle:this.onMessageHandle.bind(this),onBeforeDispatch:()=>this.runtimeMutationManager.applyStagedMutations(),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=Et({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=Dt({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 X({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.busHandlerCleanups.push(...ht({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){this.currentBlockIndex=0,await this.lifecycleEmitter.emitStart({model:this.connector.model,cwd:this.connector.cwd,...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??U();return{bus:t.adapterBus,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:t.resumeAdapterSessionId,reasoningEffort:n,supportedReasoningLevels:this.getSupportedReasoningLevels(e?.model??t.model),allowedTools:t.allowedTools,disallowedTools:t.disallowedTools,allowedDirectories:t.allowedDirectories,mcpSessionContext:e?.mcpSessionContext??t.mcpSessionContext,toolLedger:t.toolLedger,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.isFirstTurn||e.hasCompression||e.hasNewTransforms||e.hasConnectorSwap):!0:!1}supportsNativeResume(){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),this.initialized||await this.init(),await this.ensureConnector().initialize(e)}async onBeforeEmitCompletion(){}async onMessageHandle(e){this.lifecycleEmitter.resetTurnState(),this.latestMessageCompletion=e.waitForCompletion();let t=e.responseSchema,n=t===void 0?void 0:async n=>{if(n.outcome!==`completed`)return n;let r=await this.structuredOutputManager.validateTerminalResult({responseSchema:t,message:n.result?.message,sessionId:this.sessionId,retryTurn:async({attemptNumber:n,validationErrors:r})=>{let i=this.connector;return i?(await(await i.sendMessage(e.message,{deliveryMode:`enqueue`,internalRetry:!0,messageId:`${e.messageId}:structured-output-retry:${n}`,messageHistory:e.messageHistory,responseSchema:t,turnContext:{...e.turnContext,structuredOutputRetry:{attemptNumber:n,validationErrors:r,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}})).waitForCompletion()).result?.message??``:``}});return{...n,result:n.result!==null&&n.result!==void 0?{...n.result,message:r.message}:n.result,structuredOutputValidation:r.structuredOutputValidation}};this.lifecycleTracker.track(e,(e,t)=>{let n=t.error instanceof Error?t.error.message:t.error;this.emitCompletion({message:t.result?.message,messageId:e,outcome:t.outcome,...n&&{error:n},...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation}})},n)}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=mt(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;globalBus;adapterName;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName}set(e,t){this.entries.set(e,t)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.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}var xn=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}=e.payload,i=this.inFlight.get(t);if(i){await i,e.setResult({});return}let a=(async()=>{let e=this.registry.get(t);if(e){await e.agent.swapConnector({cwd:n,model:r});let i=await e.agent.getAdapterSessionId();i&&(e.adapterSessionId=i),(n!==void 0||r!==void 0)&&await this.globalBus.requestOptional(M.updateRuntime,{agentId:t,cwd:n,model:r}),await this.globalBus.requestOptional(M.updateStatus,{agentId:t,status:`idle`});return}let i=await this.globalBus.requestOptional(M.get,{agentId:t});if(!i.handled||!i.data.agent)throw Error(`Agent ${t} not found in storage`);let a=i.data.agent;if(a.status===`disposed`)throw Error(`Agent ${t} is disposed and cannot be rehydrated`);let o=await this.resolveMcpSessionContext(a.sessionId,a.profileId),s=a.providerConfigId===void 0?void 0:await _e(this.globalBus,a.providerConfigId).catch(()=>U()),c={model:r??a.model,cwd:n??a.cwd,...s!==void 0&&{providerContext:s},...o!==void 0&&{mcpSessionContext:o}},l=await this.createAgentFn(t,a.sessionId,c),u=await this.resolvePersistedSystemPrompt(a.sessionId,a.personaId,a.profileId);await l.initialize({...u!==void 0&&{systemPrompt:u}}),(n!==void 0||r!==void 0)&&await this.globalBus.requestOptional(M.updateRuntime,{agentId:t,cwd:n,model:r});let d=await l.getAdapterSessionId()||a.adapterSessionId;if(!d)throw Error(`Recovered agent ${t} has no adapterSessionId`);let f=await bn(this.globalBus,a.sessionId,t);this.registry.set(t,{agent:l,sessionId:a.sessionId,adapterSessionId:d,usage:f}),await this.globalBus.requestOptional(M.updateStatus,{agentId:t,status:`idle`})})().catch(e=>{let n=e instanceof Error?e.message:String(e);throw Error(`Failed to recover agent ${t}: ${n}`)});this.inFlight.set(t,a);try{await a}finally{this.inFlight.delete(t)}e.setResult({})};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 Sn(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=e.payload.providerContext??U(),s=crypto.randomUUID(),c=new dn({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l={bus:t.adapterBus,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=F(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 Cn({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 Cn(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 wn(o.structuredOutputValidation.errors);return o.message??``}function wn(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}function Tn(e){return{...e.platformCwd!==void 0&&{cwd:e.platformCwd},...e.platformEnv!==void 0&&{env:e.platformEnv},...e.model!==void 0&&{model:e.model},...e.cwd!==void 0&&{cwd:e.cwd},...e.env!==void 0&&{env:e.env},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools},...e.reasoningEffort!==void 0&&{reasoningEffort:e.reasoningEffort},...e.resumeAdapterSessionId!==void 0&&{resumeAdapterSessionId:e.resumeAdapterSessionId},...e.harnessId!==void 0&&{harnessId:e.harnessId},...e.clientId!==void 0&&{clientId:e.clientId},...e.clientProfileName!==void 0&&{clientProfileName:e.clientProfileName},...e.mcpSessionContext!==void 0&&{mcpSessionContext:e.mcpSessionContext},...e.toolLedger!==void 0&&{toolLedger:e.toolLedger},...e.ephemeral!==void 0&&{ephemeral:e.ephemeral}}}function En(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}async function Dn(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,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 On(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 kn(e,t,n,r){try{if(t.initialMessage!==void 0){let r=F(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 await e.initialize({systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema}),{adapterSessionId:await e.getAdapterSessionId()}}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 An(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function jn(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function Mn(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??U();jn(c);let d;if(c.ephemeral)d=c.sessionId??crypto.randomUUID();else if((c.mode??`create`)===`create`){let e=await o.requestOptional(j.create,{...c.sessionId?{sessionId:c.sessionId}:{}});d=e.handled?e.data.sessionId:c.sessionId??crypto.randomUUID()}else if(c.sessionId)d=c.sessionId;else throw Error(`startAgent ${c.mode} mode requires sessionId`);let f=await s(l,d,{...c,providerContext:u}),{adapterSessionId:p,messageId:m,messageHandle:h}=await kn(f,c,c.sessionContext?A.parse(c.sessionContext):void 0,n);if(a.set(l,{agent:f,sessionId:d,adapterSessionId:p,usage:{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}),!c.ephemeral)try{await Dn(l,d,p,{...c,providerContext:u},{adapterId:t,name:n,clientId:r,getPlatformDefaults:i,globalBus:o})}catch(e){throw await On(a,l,n,e),e}e.setResult({success:!0,agentId:l,adapterId:t,sessionId:d,adapterSessionId:p,...m!==void 0&&{messageId:m}}),c.ephemeral&&An(a,l,n,h).catch(e=>{console.warn(`[AIAdapter:${n}] Ephemeral agent cleanup failed:`,e)})}}var Nn=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 xn({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,Mn({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=>Sn(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.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.adapterSessionId,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}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:n,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))))};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.adapterBus??=await this.namespace.scopedBus(),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=`adapterSessionId`in n&&`mode`in n&&n.mode===`resume`?n.adapterSessionId:void 0,m=En(this.definitionProviders,r,n.providerContext?.definitionId),h=l===void 0?void 0:new gn,g={agentId:e,adapterId:this.adapterId,adapterName:this.name,adapterBus:this.adapterBus,capabilities:this.capabilities,nativeTools:this.nativeTools,availableModels:m,configFactory:this.configFactory,connectorFactory:this.connectorFactory,sessionId:t,...n.providerContext!==void 0&&{providerContext:n.providerContext},...Tn({platformCwd:this.platformDefaults?.cwd,platformEnv:this.platformDefaults?.env,model:r,cwd:i,env:a,allowedTools:o,disallowedTools:s,reasoningEffort:c,resumeAdapterSessionId:p,harnessId:u,clientId:f,clientProfileName:n.clientProfileName,mcpSessionContext:l,toolLedger:h,ephemeral:d})};return this.agentFactory(g)}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 Pn(e){let t={adapterSessionId:e.adapterSessionId,lineage:e.lineage,messages:e.messagePayloads};return e.compactionMetadata&&(t.compaction=e.compactionMetadata),e.compressChildren?.length&&(t.children=e.compressChildren.map(Pn)),t}var Fn=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 In(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 Ln=C.object({sessions:C.record(C.string(),C.object({state:C.enum([`idle`,`active`]),currentTurnId:C.string().optional()}))}).default({sessions:{}});var Rn=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 zn=C.object({eventType:C.literal(`agent_started`),model:C.string().optional()}),Bn=C.object({eventType:C.literal(`agent_complete`),message:C.string().optional(),error:C.string().optional()}),Vn=C.object({eventType:C.literal(`error`),message:C.string(),code:C.string().or(C.number()).optional(),type:C.string().optional()}),Hn=C.object({eventType:C.literal(`tool_started`),toolName:C.string(),toolCallId:C.string()}),Un=C.object({eventType:C.literal(`tool_completed`),toolName:C.string(),toolCallId:C.string(),result:C.string(),success:C.boolean()});export{Nn as AIAdapter,pn as AIAgent,K as AIAgentConnector,Bn as AgentCompleteEventSchema,St as AgentConnectorLifecycleManager,Z as AgentEventBridge,X as AgentLifecycleEmitter,gt as AgentPayloadEmitter,xt as AgentRuntimeMutationManager,zn as AgentStartedEventSchema,_t as AgentTurnExecutor,dt as BaseConnectorSession,q as BaseConnectorTurn,Fn as BaseLogImporter,Vn as ErrorEventSchema,o as ImportCursorPositionSchema,i as ImportCursorStorageNamespace,a as ImportCursorStorageSubjects,Ue as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,R as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,He as MAKAIO_CONFORMANCE_PROVIDER_ENV,We as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,G as MessageHandle,J as MessageLifecycleTracker,pt as ProceduralAgentConnector,ft as ProceduralConnectorTurn,tt as ScopedToolApprovalSchema,at as SessionLifecycle,gn as SessionToolLedger,Y as ToolCallTracker,Un as ToolCompletedEventSchema,Hn as ToolStartedEventSchema,Rn as TurnTracker,Ln as TurnTrackerSerializedStateSchema,ot as UserMessageQueue,n as cleanEnvForAdapter,xe as createAdapterNamespace,L as createTestProviderContext,nt as createToolApprovalHandler,Ie as defineDiscriminatedHandlers,Le as defineDiscriminatedHandlersSync,_n as extractMcpCallTarget,we as formatContextBlockAsText,Pe as formatContextBlocksAsText,Ze as formatMessageHistoryAsTranscript,vn as isMcpCallTool,rt as isTextLikeMimeType,ut as markCompletedWithFinalResult,et as mergeScopedToolApproval,I as normalizeEnvValue,F as normalizeMessageInput,H as normalizeMimeType,Fe as parseAIAdapterCapabilities,Re as processDiscriminatedItems,ze as processDiscriminatedItemsSync,W as processQueueMessages,ht as registerAgentBusHandlers,In as registerMemoryImportCursorStorage,Je as resolveConformanceTestPreset,Ye as resolveDisabledNativeTools,it as resolvePresetCredentials,V as resolveRequiredSessionId,Ve as resolveTestConfig,P as safeJsonStringify,$e as serializeBlockToText,Me as serializeTurnContext,Pn as toImportSegment};
|
|
11
|
+
`)}function Qe(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function $e(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 Qe(e)}}function B(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 V(e,t,n,r=!1){return B(e,t,`sessionId`,n,r)}function et(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=V(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:B(t.agentId,e.agentId,`agentId`,n,i),adapterId:B(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:B(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:B(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const tt={request:D.request.extend({sessionId:C.string().optional()}),response:D.response};function nt(e,t,n){return function(r,i){return r.on(e,async e=>{try{let r=typeof i==`function`?await i():i,a=t(e.payload,r),o=await w.request(E.toolApprove,a);e.setResult(n(o))}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 H(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function rt(e){let t=H(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 it(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 U(){return{providerConfigId:`sentinel`,definitionId:`unresolved`,credentialRefs:{}}}var at=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)}},ot=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 W(e,t){let n=t.getCurrentTurn(),r=t.extractContent??st;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`}),W(e,t)):(e.dequeue(),await t.startNewTurn(i),!0):!1}function st(e){return e.message.message}const ct=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function lt(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:ct.includes(t),statesToEmit:[...n,t]}}var G=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;_turnContext;constructor(e,t,n,r,i,a,o=!1){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._turnContext=i}get messageHistory(){return this._messageHistory}set messageHistory(e){this._messageHistory=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 ut(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 K=class{agentId;adapterSessionId;sessionId;pendingMessageHandle;scopedBus;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.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=lt(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)}createMessageHandle(e,t){let n=new G(t?.messageId??crypto.randomUUID(),e,t?.deliveryMode??`enqueue`,t?.messageHistory,t?.turnContext,t?.responseSchema,t?.internalRetry??!1);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){}},dt=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}},q=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)}},ft=class extends q{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}},pt=class extends K{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 mt(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 J=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){let{messageId:t,message:n,mergedFrom:r}=e;this.currentMessageId=t,this.emitGlobal(E.user_message.acknowledged,{messageId:t,mergedFrom:r}),this.emitGlobal(E.turn.started,{messageId:t,content:n,mergedFrom:r})}complete(e,t){let{messageId:n}=e;this.currentMessageId===n&&(this.currentMessageId=void 0,this.currentTurnId=void 0),this.emitGlobal(E.turn.completed,{messageId:n,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}}),this.emitGlobal(E.user_message.completed,{messageId:n,outcome:t.outcome,supersededBy:t.supersededBy,mergedInto:t.mergedInto})}track(e,t,n){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)}),e.waitForCompletion().then(n=>{this.complete(e,n),t&&t(e.messageId,n)})}},Y=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 ht(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 X=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)}))}},Z=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}async enrichPayload(e,t,n){let r=t??this.config.getCurrentMessageId(),i=this.config.getCurrentTurnId(),a=e,o=n?.includeEventMetadata??!0,s=o?this.config.getEventMetadataDefaults():{},c=this.config.getConnectorAdapterSessionId()??this.config.getLastKnownAdapterSessionId()??await this.config.getAdapterSessionId(),l=o?a.clientId??s.clientId:void 0,u=o?a.providerConfigId??s.providerConfigId:void 0,d=o?a.occurredAt??s.occurredAt:void 0;this.config.setLastKnownAdapterSessionId(c);let f=this.config.getAgentContextBase();return{...e,agentId:f.agentId,adapterId:f.adapterId,adapterName:f.adapterName,adapterSessionId:c,...r!==void 0&&{messageId:r},...i!==void 0&&{turnId:i},...f.sessionId!==void 0&&{sessionId:f.sessionId},...l!==void 0&&{clientId:l},...u!==void 0&&{providerConfigId:u},...d!==void 0&&{occurredAt:d}}}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}};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 _t=class{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;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.onMessageHandle=e.onMessageHandle,this.onBeforeDispatch=e.onBeforeDispatch,this.ephemeral=e.ephemeral??!1}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.shouldUseNativeResume(r.sessionContext),a=F(r.message),o=await t.sendMessage(a,{deliveryMode:e.deliveryMode,messageId:e.messageId,messageHistory:i?void 0:r.sessionContext?.messageHistory,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),{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.shouldUseNativeResume(o.sessionContext),c=F(o.message),l={systemPrompt:n,messageHistory:s?void 0:o.sessionContext?.messageHistory,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),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)})}},vt=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 yt(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 bt=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}`}}}},xt=class{agentId;sessionId;globalBus;getConnector;swapConnector;emitCwdChanged;emitModelChanged;getProviderContext;setProviderContext;setReasoningEffort;setMcpSessionContext;resolveSupportedReasoningLevels;mcpServersMutationManager;credentialChangeSequencer=new vt;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 bt({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 yt({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})}},St=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}this.config.setLastKnownAdapterSessionId(i.adapterSessionId);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 o=t;this.config.setConnector(i);try{await o.close()}catch(e){console.warn(`[AIAgent] Failed to close previous connector for agent ${this.config.agentId}:`,e)}}};function Ct(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,getAdapterSessionId:e.getAdapterSessionId,getEventMetadataDefaults:e.getEventMetadataDefaults})}function wt(e){return new Z({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 Tt(e){return new _t(e)}function Et(e){return new xt({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 Dt(e){return new St({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 Ot=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})),kt=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})),At=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Ot(),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`)}}})),jt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=kt();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),Mt=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Ot(),n=kt(),r=At(),i=jt();e.default=[t.default,n.default,r.default,i.default]})),Nt=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)}})),Pt=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)}})),Ft=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`)}}})),It=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Nt(),n=Pt(),r=Ft();e.default=[t.default,n.default,r.default]})),Lt=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)}}}})),Rt=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())})}}}})),$=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Lt(),n=Rt();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=Mt(),a=It(),o=$(),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=Mt(),a=It(),o=$(),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 Y;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??w},this.availableModels=e.availableModels,this.lifecycleTracker=new J({emitGlobal:this.emitGlobal.bind(this)}),this.payloadEmitter=Ct({globalBus:this.globalBus,getAgentContextBase:()=>({agentId:this.agentId,adapterId:this.adapterId,adapterName:this.adapterName,sessionId:this.sessionId}),lifecycleTracker:this.lifecycleTracker,getConnectorAdapterSessionId:()=>this.connector?.adapterSessionId,getLastKnownAdapterSessionId:()=>this.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:e=>{this.lastKnownAdapterSessionId=e},getAdapterSessionId:this.getAdapterSessionId.bind(this),getEventMetadataDefaults:this.getEventMetadataDefaults.bind(this)}),this.eventBridge=wt({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=Tt({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,adapterCapabilities:this.capabilities,globalBus:this.globalBus,getConnector:()=>this.connector,shouldUseNativeResume:this.shouldUseNativeResume.bind(this),onMessageHandle:this.onMessageHandle.bind(this),onBeforeDispatch:()=>this.runtimeMutationManager.applyStagedMutations(),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=Et({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=Dt({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 X({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.busHandlerCleanups.push(...ht({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){this.currentBlockIndex=0,await this.lifecycleEmitter.emitStart({model:this.connector.model,cwd:this.connector.cwd,...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??U();return{bus:t.adapterBus,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,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.isFirstTurn||e.hasCompression||e.hasNewTransforms||e.hasConnectorSwap):!0:!1}supportsNativeResume(){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),this.initialized||await this.init(),await this.ensureConnector().initialize(e)}async onBeforeEmitCompletion(){}async onMessageHandle(e){this.lifecycleEmitter.resetTurnState(),this.latestMessageCompletion=e.waitForCompletion();let t=e.responseSchema,n=t===void 0?void 0:async n=>{if(n.outcome!==`completed`)return n;let r=await this.structuredOutputManager.validateTerminalResult({responseSchema:t,message:n.result?.message,sessionId:this.sessionId,retryTurn:async({attemptNumber:n,validationErrors:r})=>{let i=this.connector;return i?(await(await i.sendMessage(e.message,{deliveryMode:`enqueue`,internalRetry:!0,messageId:`${e.messageId}:structured-output-retry:${n}`,messageHistory:e.messageHistory,responseSchema:t,turnContext:{...e.turnContext,structuredOutputRetry:{attemptNumber:n,validationErrors:r,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}})).waitForCompletion()).result?.message??``:``}});return{...n,result:n.result!==null&&n.result!==void 0?{...n.result,message:r.message}:n.result,structuredOutputValidation:r.structuredOutputValidation}};this.lifecycleTracker.track(e,(e,t)=>{let n=t.error instanceof Error?t.error.message:t.error;this.emitCompletion({message:t.result?.message,messageId:e,outcome:t.outcome,...n&&{error:n},...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation}})},n)}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=mt(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;globalBus;adapterName;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName}set(e,t){this.entries.set(e,t)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.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}var xn=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}=e.payload,a=this.inFlight.get(t);if(a){await a,e.setResult({});return}let o=(async()=>{let e=this.registry.get(t);if(e){await this.rehydrateRegisteredAgent(t,e,{adapterSessionId:i,cwd:n,model:r});return}let a=await this.globalBus.requestOptional(M.get,{agentId:t});if(!a.handled||!a.data.agent)throw Error(`Agent ${t} not found in storage`);let o=a.data.agent;if(o.status===`disposed`)throw Error(`Agent ${t} is disposed and cannot be rehydrated`);let s=await this.resolveMcpSessionContext(o.sessionId,o.profileId),c=o.providerConfigId===void 0?void 0:await _e(this.globalBus,o.providerConfigId).catch(U),l={model:r??o.model,cwd:n??o.cwd,allowedDirectories:o.allowedDirectories,adapterSessionId:i??o.adapterSessionId,resumeAdapterSessionId:i??o.adapterSessionId,...c!==void 0&&{providerContext:c},...s!==void 0&&{mcpSessionContext:s}},u=await this.createAgentFn(t,o.sessionId,l),d=await this.resolvePersistedSystemPrompt(o.sessionId,o.personaId,o.profileId);await u.initialize({...d!==void 0&&{systemPrompt:d}}),(n!==void 0||r!==void 0)&&await this.globalBus.requestOptional(M.updateRuntime,{agentId:t,cwd:n,model:r});let f=await u.getAdapterSessionId()||o.adapterSessionId;if(!f)throw Error(`Recovered agent ${t} has no adapterSessionId`);let p=await bn(this.globalBus,o.sessionId,t);this.registry.set(t,{agent:u,sessionId:o.sessionId,adapterSessionId:f,usage:p}),await this.globalBus.requestOptional(M.updateStatus,{agentId:t,status:`idle`})})().catch(e=>{let n=e instanceof Error?e.message:String(e);throw Error(`Failed to recover agent ${t}: ${n}`)});this.inFlight.set(t,o);try{await o}finally{this.inFlight.delete(t)}e.setResult({})};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 Sn(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=e.payload.providerContext??U(),s=crypto.randomUUID(),c=new dn({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l={bus:t.adapterBus,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=F(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 Cn({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 Cn(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 wn(o.structuredOutputValidation.errors);return o.message??``}function wn(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}function Tn(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0;return{...e.platformCwd!==void 0&&{cwd:e.platformCwd},...t!==void 0&&{env:t},...e.model!==void 0&&{model:e.model},...e.cwd!==void 0&&{cwd:e.cwd},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools},...e.allowedDirectories!==void 0&&{allowedDirectories:e.allowedDirectories},...e.adapterSessionId!==void 0&&{adapterSessionId:e.adapterSessionId},...e.reasoningEffort!==void 0&&{reasoningEffort:e.reasoningEffort},...e.adapterConfig!==void 0&&{adapterConfig:e.adapterConfig},...e.resumeAdapterSessionId!==void 0&&{resumeAdapterSessionId:e.resumeAdapterSessionId},...e.harnessId!==void 0&&{harnessId:e.harnessId},...e.clientId!==void 0&&{clientId:e.clientId},...e.clientProfileName!==void 0&&{clientProfileName:e.clientProfileName},...e.mcpSessionContext!==void 0&&{mcpSessionContext:e.mcpSessionContext},...e.toolLedger!==void 0&&{toolLedger:e.toolLedger},...e.ephemeral!==void 0&&{ephemeral:e.ephemeral}}}function En(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}async function Dn(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 On(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 kn(e,t,n,r){try{if(t.initialMessage!==void 0){let r=F(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 await e.initialize({systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema}),{adapterSessionId:await e.getAdapterSessionId()}}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 An(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function jn(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function Mn(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??U();jn(c);let d;if(c.ephemeral)d=c.sessionId??crypto.randomUUID();else if((c.mode??`create`)===`create`){let e=await o.requestOptional(j.create,{...c.sessionId?{sessionId:c.sessionId}:{}});d=e.handled?e.data.sessionId:c.sessionId??crypto.randomUUID()}else if(c.sessionId)d=c.sessionId;else throw Error(`startAgent ${c.mode} mode requires sessionId`);let f=await s(l,d,{...c,providerContext:u}),{adapterSessionId:p,messageId:m,messageHandle:h}=await kn(f,c,c.sessionContext?A.parse(c.sessionContext):void 0,n);if(a.set(l,{agent:f,sessionId:d,adapterSessionId:p,usage:{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}),!c.ephemeral)try{await Dn(l,d,p,{...c,providerContext:u},{adapterId:t,name:n,clientId:r,getPlatformDefaults:i,globalBus:o})}catch(e){throw await On(a,l,n,e),e}e.setResult({success:!0,agentId:l,adapterId:t,sessionId:d,adapterSessionId:p,...m!==void 0&&{messageId:m}}),c.ephemeral&&An(a,l,n,h).catch(e=>{console.warn(`[AIAdapter:${n}] Ephemeral agent cleanup failed:`,e)})}}var Nn=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 xn({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,Mn({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=>Sn(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.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.adapterSessionId,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}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:n,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))))};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.adapterBus??=await this.namespace.scopedBus(),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??(`adapterSessionId`in n&&`mode`in n&&n.mode===`resume`?n.adapterSessionId:void 0),m=En(this.definitionProviders,r,n.providerContext?.definitionId),h=l===void 0?void 0:new gn,g={agentId:e,adapterId:this.adapterId,adapterName:this.name,adapterBus:this.adapterBus,capabilities:this.capabilities,nativeTools:this.nativeTools,availableModels:m,configFactory:this.configFactory,connectorFactory:this.connectorFactory,sessionId:t,...n.providerContext!==void 0&&{providerContext:n.providerContext},...Tn({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:h,ephemeral:d})};return this.agentFactory(g)}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 Pn(e){let t={adapterSessionId:e.adapterSessionId,lineage:e.lineage,messages:e.messagePayloads};return e.compactionMetadata&&(t.compaction=e.compactionMetadata),e.compressChildren?.length&&(t.children=e.compressChildren.map(Pn)),t}var Fn=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 In(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 Ln=C.object({sessions:C.record(C.string(),C.object({state:C.enum([`idle`,`active`]),currentTurnId:C.string().optional()}))}).default({sessions:{}});var Rn=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 zn=C.object({eventType:C.literal(`agent_started`),model:C.string().optional()}),Bn=C.object({eventType:C.literal(`agent_complete`),message:C.string().optional(),error:C.string().optional()}),Vn=C.object({eventType:C.literal(`error`),message:C.string(),code:C.string().or(C.number()).optional(),type:C.string().optional()}),Hn=C.object({eventType:C.literal(`tool_started`),toolName:C.string(),toolCallId:C.string()}),Un=C.object({eventType:C.literal(`tool_completed`),toolName:C.string(),toolCallId:C.string(),result:C.string(),success:C.boolean()});export{Nn as AIAdapter,pn as AIAgent,K as AIAgentConnector,Bn as AgentCompleteEventSchema,St as AgentConnectorLifecycleManager,Z as AgentEventBridge,X as AgentLifecycleEmitter,gt as AgentPayloadEmitter,xt as AgentRuntimeMutationManager,zn as AgentStartedEventSchema,_t as AgentTurnExecutor,dt as BaseConnectorSession,q as BaseConnectorTurn,Fn as BaseLogImporter,Vn as ErrorEventSchema,o as ImportCursorPositionSchema,i as ImportCursorStorageNamespace,a as ImportCursorStorageSubjects,Ue as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,R as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,He as MAKAIO_CONFORMANCE_PROVIDER_ENV,We as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,G as MessageHandle,J as MessageLifecycleTracker,pt as ProceduralAgentConnector,ft as ProceduralConnectorTurn,tt as ScopedToolApprovalSchema,at as SessionLifecycle,gn as SessionToolLedger,Y as ToolCallTracker,Un as ToolCompletedEventSchema,Hn as ToolStartedEventSchema,Rn as TurnTracker,Ln as TurnTrackerSerializedStateSchema,ot as UserMessageQueue,n as cleanEnvForAdapter,xe as createAdapterNamespace,L as createTestProviderContext,nt as createToolApprovalHandler,Ie as defineDiscriminatedHandlers,Le as defineDiscriminatedHandlersSync,_n as extractMcpCallTarget,we as formatContextBlockAsText,Pe as formatContextBlocksAsText,Ze as formatMessageHistoryAsTranscript,vn as isMcpCallTool,rt as isTextLikeMimeType,ut as markCompletedWithFinalResult,et as mergeScopedToolApproval,I as normalizeEnvValue,F as normalizeMessageInput,H as normalizeMimeType,Fe as parseAIAdapterCapabilities,Re as processDiscriminatedItems,ze as processDiscriminatedItemsSync,W as processQueueMessages,ht as registerAgentBusHandlers,In as registerMemoryImportCursorStorage,Je as resolveConformanceTestPreset,Ye as resolveDisabledNativeTools,it as resolvePresetCredentials,V as resolveRequiredSessionId,Ve as resolveTestConfig,P as safeJsonStringify,$e as serializeBlockToText,Me as serializeTurnContext,Pn as toImportSegment};
|