@directive-run/ai 1.14.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-DN5NAJM6.js → chunk-56LYSE63.js} +6 -6
- package/dist/chunk-56LYSE63.js.map +1 -0
- package/dist/{chunk-A22KLB23.cjs → chunk-7DPTXZZI.cjs} +22 -22
- package/dist/chunk-7DPTXZZI.cjs.map +1 -0
- package/dist/{chunk-QRXWLD6H.js → chunk-BFSRYCOS.js} +2 -2
- package/dist/{chunk-QRXWLD6H.js.map → chunk-BFSRYCOS.js.map} +1 -1
- package/dist/{chunk-LKY4K5TV.cjs → chunk-C6MQ4WL6.cjs} +2 -2
- package/dist/{chunk-LKY4K5TV.cjs.map → chunk-C6MQ4WL6.cjs.map} +1 -1
- package/dist/{chunk-A5K77UDX.cjs → chunk-CAA6Q4YY.cjs} +2 -2
- package/dist/{chunk-A5K77UDX.cjs.map → chunk-CAA6Q4YY.cjs.map} +1 -1
- package/dist/chunk-D5APTMCT.cjs +16 -0
- package/dist/chunk-D5APTMCT.cjs.map +1 -0
- package/dist/{chunk-LXUMJKGJ.js → chunk-FN4GUZAI.js} +22 -22
- package/dist/chunk-FN4GUZAI.js.map +1 -0
- package/dist/{chunk-POBEEJR6.js → chunk-GTB6HTZV.js} +7 -7
- package/dist/chunk-GTB6HTZV.js.map +1 -0
- package/dist/{chunk-UR4ZGO7V.js → chunk-HRR45JZX.js} +4 -4
- package/dist/chunk-HRR45JZX.js.map +1 -0
- package/dist/{chunk-PD772MSE.cjs → chunk-MDXDPECP.cjs} +7 -7
- package/dist/chunk-MDXDPECP.cjs.map +1 -0
- package/dist/{chunk-FABDFT74.cjs → chunk-PB276BX2.cjs} +6 -6
- package/dist/chunk-PB276BX2.cjs.map +1 -0
- package/dist/{chunk-NNAQ4ZH2.js → chunk-V2FCPNPP.js} +2 -2
- package/dist/{chunk-NNAQ4ZH2.js.map → chunk-V2FCPNPP.js.map} +1 -1
- package/dist/{chunk-FFRWQNK7.cjs → chunk-WCQK3JOR.cjs} +4 -4
- package/dist/chunk-WCQK3JOR.cjs.map +1 -0
- package/dist/{chunk-IUGSMTBE.js → chunk-YT4QN3KO.js} +8 -8
- package/dist/chunk-YT4QN3KO.js.map +1 -0
- package/dist/gemini.cjs +1 -1
- package/dist/gemini.cjs.map +1 -1
- package/dist/gemini.js +1 -1
- package/dist/gemini.js.map +1 -1
- package/dist/guardrails.cjs +1 -1
- package/dist/guardrails.js +1 -1
- package/dist/index.cjs +5 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp.cjs +1 -1
- package/dist/mcp.js +1 -1
- package/dist/multi-agent-orchestrator-KFYIDKTF.cjs +2 -0
- package/dist/{multi-agent-orchestrator-Y5U4JCFO.cjs.map → multi-agent-orchestrator-KFYIDKTF.cjs.map} +1 -1
- package/dist/{multi-agent-orchestrator-QWWQKKGX.js → multi-agent-orchestrator-ZHSMWIKP.js} +2 -2
- package/dist/{multi-agent-orchestrator-QWWQKKGX.js.map → multi-agent-orchestrator-ZHSMWIKP.js.map} +1 -1
- package/dist/multi-agent.cjs +1 -1
- package/dist/multi-agent.d.cts +2 -2
- package/dist/multi-agent.d.ts +2 -2
- package/dist/multi-agent.js +1 -1
- package/dist/openai.cjs +1 -1
- package/dist/openai.cjs.map +1 -1
- package/dist/openai.js +1 -1
- package/dist/openai.js.map +1 -1
- package/dist/{orchestrator-types-DeIMRLR7.d.cts → orchestrator-types-CbNE7Rjp.d.cts} +1 -1
- package/dist/{orchestrator-types-DGBhL6mc.d.ts → orchestrator-types-ZK9lv5Sm.d.ts} +1 -1
- package/dist/predicate.cjs +1 -1
- package/dist/predicate.js +1 -1
- package/dist/testing.cjs +1 -1
- package/dist/testing.d.cts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +1 -1
- package/package.json +2 -2
- package/dist/chunk-2TD4ZSGZ.cjs +0 -16
- package/dist/chunk-2TD4ZSGZ.cjs.map +0 -1
- package/dist/chunk-A22KLB23.cjs.map +0 -1
- package/dist/chunk-DN5NAJM6.js.map +0 -1
- package/dist/chunk-FABDFT74.cjs.map +0 -1
- package/dist/chunk-FFRWQNK7.cjs.map +0 -1
- package/dist/chunk-IUGSMTBE.js.map +0 -1
- package/dist/chunk-LXUMJKGJ.js.map +0 -1
- package/dist/chunk-PD772MSE.cjs.map +0 -1
- package/dist/chunk-POBEEJR6.js.map +0 -1
- package/dist/chunk-UR4ZGO7V.js.map +0 -1
- package/dist/multi-agent-orchestrator-Y5U4JCFO.cjs +0 -2
package/dist/gemini.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/adapters/gemini.ts"],"names":["GEMINI_PRICING","createGeminiRunner","options","apiKey","model","maxOutputTokens","baseURL","fetchFn","timeoutMs","hooks","temperature","topP","stopSequences","validateBaseURL","warnIfMissingApiKey","genConfig","hasGenConfig","createRunner","agent","_input","messages","m","res","data","text","inputTokens","outputTokens","createGeminiStreamingRunner","input","callbacks","startTime","fireBeforeCallHook","response","throwStreamingHTTPError","reader","getSSEReader","fullText","parseSSEStream","event","result","textVal","meta","tokenUsage","totalTokens","fireAfterCallHook","buildStreamingResult","err","fireErrorHook"],"mappings":"sGAgDO,IAAMA,CAAAA,CACX,CACE,gBAAA,CAAkB,CAAE,KAAA,CAAO,IAAA,CAAM,MAAA,CAAQ,EAAG,CAAA,CAC5C,kBAAA,CAAoB,CAAE,KAAA,CAAO,GAAA,CAAM,MAAA,CAAQ,EAAI,CAAA,CAC/C,kBAAA,CAAoB,CAAE,KAAA,CAAO,EAAA,CAAK,MAAA,CAAQ,EAAI,CAAA,CAC9C,uBAAA,CAAyB,CAAE,KAAA,CAAO,IAAA,CAAO,MAAA,CAAQ,EAAI,CACvD,EAwCK,SAASC,CAAAA,CAAmBC,CAAAA,CAA2C,CAC5E,GAAM,CACJ,MAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CAAQ,kBAAA,CACR,eAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CAAU,kDAAA,CACV,KAAA,CAAOC,CAAAA,CAAU,UAAA,CAAW,KAAA,CAC5B,SAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,GAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CACF,EAAIV,CAAAA,CAEJW,CAAAA,CAAgBP,CAAO,CAAA,CACvBQ,CAAAA,CAAoBX,CAAAA,CAAQ,oBAAoB,CAAA,CAEhD,IAAMY,CAAAA,CAAqC,EAAC,CACxCV,CAAAA,EAAmB,IAAA,GACrBU,CAAAA,CAAU,eAAA,CAAkBV,CAAAA,CAAAA,CAE1BK,GAAAA,EAAe,IAAA,GACjBK,CAAAA,CAAU,WAAA,CAAcL,GAAAA,CAAAA,CAEtBC,CAAAA,EAAQ,IAAA,GACVI,CAAAA,CAAU,IAAA,CAAOJ,CAAAA,CAAAA,CAEfC,CAAAA,EAAiB,IAAA,GACnBG,CAAAA,CAAU,aAAA,CAAgBH,CAAAA,CAAAA,CAE5B,IAAMI,CAAAA,CAAe,MAAA,CAAO,IAAA,CAAKD,CAAS,CAAA,CAAE,MAAA,CAAS,CAAA,CAErD,OAAOE,CAAAA,CAAa,CAClB,KAAA,CAAOV,CAAAA,CACP,KAAA,CAAAE,CAAAA,CACA,YAAA,CAAc,CAACS,CAAAA,CAAOC,CAAAA,CAAQC,CAAAA,IAAc,CAC1C,GAAA,CAAK,CAAA,EAAGd,CAAO,CAAA,QAAA,EAAWY,CAAAA,CAAM,KAAA,EAASd,CAAK,CAAA,gBAAA,CAAA,CAC9C,IAAA,CAAM,CACJ,MAAA,CAAQ,MAAA,CACR,QAAS,CACP,cAAA,CAAgB,kBAAA,CAChB,gBAAA,CAAkBD,CACpB,CAAA,CACA,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,CACnB,GAAIe,CAAAA,CAAM,YAAA,CACN,CAAE,iBAAA,CAAmB,CAAE,KAAA,CAAO,CAAC,CAAE,IAAA,CAAMA,CAAAA,CAAM,YAAa,CAAC,CAAE,CAAE,CAAA,CAC/D,EAAC,CACL,QAAA,CAAUE,CAAAA,CAAS,GAAA,CAAKC,CAAAA,GAAO,CAC7B,IAAA,CAAMA,CAAAA,CAAE,IAAA,GAAS,WAAA,CAAc,OAAA,CAAU,MAAA,CACzC,KAAA,CAAO,CAAC,CAAE,IAAA,CAAMA,CAAAA,CAAE,OAAQ,CAAC,CAC7B,CAAA,CAAE,CAAA,CACF,GAAIL,CAAAA,CAAe,CAAE,gBAAA,CAAkBD,CAAU,CAAA,CAAI,EACvD,CAAC,CAAA,CACD,GAAIP,CAAAA,EAAa,IAAA,CACb,CAAE,MAAA,CAAQ,WAAA,CAAY,QAAQA,CAAS,CAAE,CAAA,CACzC,EACN,CACF,CAAA,CAAA,CACA,aAAA,CAAe,MAAOc,CAAAA,EAAQ,CAC5B,IAAMC,CAAAA,CAAO,MAAMD,CAAAA,CAAI,IAAA,EAAK,CACtBE,CAAAA,CAAOD,CAAAA,CAAK,UAAA,GAAa,CAAC,CAAA,EAAG,OAAA,EAAS,KAAA,GAAQ,CAAC,CAAA,EAAG,IAAA,EAAQ,EAAA,CAC1DE,CAAAA,CAAcF,CAAAA,CAAK,aAAA,EAAe,gBAAA,EAAoB,EACtDG,CAAAA,CAAeH,CAAAA,CAAK,aAAA,EAAe,oBAAA,EAAwB,CAAA,CAEjE,OAAO,CACL,IAAA,CAAAC,CAAAA,CACA,WAAA,CAAaC,CAAAA,CAAcC,CAAAA,CAC3B,WAAA,CAAAD,CAAAA,CACA,YAAA,CAAAC,CACF,CACF,CACF,CAAC,CACH,CAsCO,SAASC,CAAAA,CACdzB,GAAAA,CACyB,CACzB,GAAM,CACJ,MAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CAAQ,kBAAA,CACR,gBAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CAAU,kDAAA,CACV,KAAA,CAAOC,GAAAA,CAAU,UAAA,CAAW,KAAA,CAC5B,KAAA,CAAAE,CAAAA,CACA,WAAA,CAAAC,GAAAA,CACA,IAAA,CAAAC,GAAAA,CACA,aAAA,CAAAC,CACF,CAAA,CAAIV,GAAAA,CAEJW,CAAAA,CAAgBP,CAAO,CAAA,CACvBQ,CAAAA,CAAoBX,CAAAA,CAAQ,6BAA6B,CAAA,CAEzD,IAAMY,CAAAA,CAAqC,EAAC,CACxCV,CAAAA,EAAmB,IAAA,GACrBU,CAAAA,CAAU,gBAAkBV,CAAAA,CAAAA,CAE1BK,GAAAA,EAAe,IAAA,GACjBK,CAAAA,CAAU,WAAA,CAAcL,GAAAA,CAAAA,CAEtBC,GAAAA,EAAQ,IAAA,GACVI,CAAAA,CAAU,IAAA,CAAOJ,GAAAA,CAAAA,CAEfC,CAAAA,EAAiB,IAAA,GACnBG,CAAAA,CAAU,aAAA,CAAgBH,CAAAA,CAAAA,CAE5B,IAAMI,CAAAA,CAAe,MAAA,CAAO,IAAA,CAAKD,CAAS,CAAA,CAAE,MAAA,CAAS,CAAA,CAErD,OAAO,MAAOG,CAAAA,CAAOU,CAAAA,CAAOC,CAAAA,GAAc,CACxC,IAAMC,GAAAA,CAAYC,EAAmBtB,CAAAA,CAAOS,CAAAA,CAAOU,CAAK,CAAA,CAExD,GAAI,CACF,IAAMI,CAAAA,CAAW,MAAMzB,GAAAA,CACrB,CAAA,EAAGD,CAAO,CAAA,QAAA,EAAWY,CAAAA,CAAM,KAAA,EAASd,CAAK,CAAA,8BAAA,CAAA,CACzC,CACE,MAAA,CAAQ,MAAA,CACR,OAAA,CAAS,CACP,cAAA,CAAgB,kBAAA,CAChB,gBAAA,CAAkBD,CACpB,CAAA,CACA,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,CACnB,GAAIe,EAAM,YAAA,CACN,CAAE,iBAAA,CAAmB,CAAE,KAAA,CAAO,CAAC,CAAE,IAAA,CAAMA,CAAAA,CAAM,YAAa,CAAC,CAAE,CAAE,CAAA,CAC/D,EAAC,CACL,QAAA,CAAU,CAAC,CAAE,IAAA,CAAM,MAAA,CAAQ,KAAA,CAAO,CAAC,CAAE,IAAA,CAAMU,CAAM,CAAC,CAAE,CAAC,CAAA,CACrD,GAAIZ,CAAAA,CAAe,CAAE,gBAAA,CAAkBD,CAAU,CAAA,CAAI,EACvD,CAAC,CAAA,CACD,MAAA,CAAQc,CAAAA,CAAU,MACpB,CACF,CAAA,CAEKG,CAAAA,CAAS,EAAA,EACZ,MAAMC,CAAAA,CAAwBD,CAAAA,CAAU,QAAQ,CAAA,CAGlD,IAAME,CAAAA,CAASC,CAAAA,CAAaH,CAAQ,CAAA,CAE9B,CAAE,QAAA,CAAAI,CAAAA,CAAU,WAAA,CAAAX,CAAAA,CAAa,YAAA,CAAAC,CAAa,CAAA,CAAI,MAAMW,GAAAA,CACpDH,CAAAA,CACAL,CAAAA,CAAU,OAAA,CACTS,CAAAA,EAAU,CACT,IAAMC,CAAAA,CAIF,EAAC,CAMCC,CAAAA,CAHHF,CAAAA,CAAM,UAAA,GAAgD,CAAC,CAAA,EACpD,OAAA,EACH,KAAA,GACoB,CAAC,CAAA,EAAG,IAAA,CAK3B,GAJIE,CAAAA,GACFD,CAAAA,CAAO,IAAA,CAAOC,CAAAA,CAAAA,CAGZF,CAAAA,CAAM,aAAA,CAAe,CACvB,IAAMG,CAAAA,CAAOH,CAAAA,CAAM,aAAA,CACfG,EAAK,gBAAA,GAAqB,KAAA,CAAA,GAC5BF,CAAAA,CAAO,WAAA,CAAcE,CAAAA,CAAK,gBAAA,CAAA,CAExBA,CAAAA,CAAK,oBAAA,GAAyB,KAAA,CAAA,GAChCF,CAAAA,CAAO,YAAA,CAAeE,CAAAA,CAAK,oBAAA,EAE/B,CAEA,OAAOF,CACT,CAAA,CACA,QACF,CAAA,CAEMG,CAAAA,CAAa,CAAE,WAAA,CAAAjB,CAAAA,CAAa,YAAA,CAAAC,CAAa,CAAA,CACzCiB,CAAAA,CAAclB,CAAAA,CAAcC,CAAAA,CAElC,OAAAG,CAAAA,CAAU,SAAA,GAAY,CAAE,IAAA,CAAM,WAAA,CAAa,OAAA,CAASO,CAAS,CAAC,CAAA,CAC9DQ,GAAAA,CACEnC,CAAAA,CACAS,CAAAA,CACAU,CAAAA,CACAQ,CAAAA,CACAO,CAAAA,CACAD,CAAAA,CACAZ,GACF,CAAA,CAEOe,CAAAA,CAAqBjB,EAAOQ,CAAAA,CAAUO,CAAAA,CAAaD,CAAU,CACtE,CAAA,MAASI,CAAAA,CAAK,CACZ,MAAAC,CAAAA,CAActC,CAAAA,CAAOS,CAAAA,CAAOU,CAAAA,CAAOkB,CAAAA,CAAKhB,GAAS,CAAA,CAE3CgB,CACR,CACF,CACF","file":"gemini.js","sourcesContent":["/**\n * @directive-run/ai/gemini\n *\n * Google Gemini adapter for Directive AI. Provides runners for the\n * Gemini generateContent API, including streaming support.\n *\n * @example\n * ```typescript\n * import { createGeminiRunner, createGeminiStreamingRunner } from '@directive-run/ai/gemini';\n *\n * const runner = createGeminiRunner({ apiKey: process.env.GEMINI_API_KEY! });\n * ```\n */\n\nimport { createRunner, validateBaseURL } from \"../agent-utils.js\";\nimport type { AdapterHooks, AgentRunner } from \"../types.js\";\nimport type { StreamingCallbackRunner } from \"../types.js\";\nimport {\n buildStreamingResult,\n fireAfterCallHook,\n fireBeforeCallHook,\n fireErrorHook,\n getSSEReader,\n parseSSEStream,\n throwStreamingHTTPError,\n warnIfMissingApiKey,\n} from \"./shared.js\";\n\n// ============================================================================\n// Pricing Constants\n// ============================================================================\n\n/**\n * Gemini model pricing (USD per million tokens).\n *\n * Use with `estimateCost()` for per-call cost tracking:\n * ```typescript\n * import { estimateCost } from '@directive-run/ai';\n * import { GEMINI_PRICING } from '@directive-run/ai/gemini';\n *\n * const cost =\n * estimateCost(result.tokenUsage!.inputTokens, GEMINI_PRICING[\"gemini-2.0-flash\"].input) +\n * estimateCost(result.tokenUsage!.outputTokens, GEMINI_PRICING[\"gemini-2.0-flash\"].output);\n * ```\n *\n * **Note:** Pricing changes over time. These values are provided as a convenience\n * and may not reflect the latest rates. Always verify at https://ai.google.dev/pricing\n */\nexport const GEMINI_PRICING: Record<string, { input: number; output: number }> =\n {\n \"gemini-2.5-pro\": { input: 1.25, output: 10 },\n \"gemini-2.5-flash\": { input: 0.15, output: 0.6 },\n \"gemini-2.0-flash\": { input: 0.1, output: 0.4 },\n \"gemini-2.0-flash-lite\": { input: 0.025, output: 0.1 },\n };\n\n// ============================================================================\n// Gemini Runner\n// ============================================================================\n\n/** Options for createGeminiRunner */\nexport interface GeminiRunnerOptions {\n apiKey: string;\n model?: string;\n maxOutputTokens?: number;\n baseURL?: string;\n fetch?: typeof globalThis.fetch;\n /** @default undefined */\n timeoutMs?: number;\n /** Lifecycle hooks for tracing, logging, and metrics */\n hooks?: AdapterHooks;\n /** Sampling temperature. Higher = more random. */\n temperature?: number;\n /** Nucleus sampling: top-P probability mass (0–1). */\n topP?: number;\n /** Stop sequences. The model will stop generating when it encounters one. */\n stopSequences?: string[];\n}\n\n/**\n * Create an AgentRunner for the Google Gemini generateContent API.\n *\n * Returns `tokenUsage` with input/output breakdown for cost tracking.\n *\n * @example\n * ```typescript\n * const runner = createGeminiRunner({\n * apiKey: process.env.GEMINI_API_KEY!,\n * model: 'gemini-2.0-flash',\n * });\n * const orchestrator = createAgentOrchestrator({ runner });\n * const result = await orchestrator.run(agent, input);\n * ```\n */\nexport function createGeminiRunner(options: GeminiRunnerOptions): AgentRunner {\n const {\n apiKey,\n model = \"gemini-2.0-flash\",\n maxOutputTokens,\n baseURL = \"https://generativelanguage.googleapis.com/v1beta\",\n fetch: fetchFn = globalThis.fetch,\n timeoutMs,\n hooks,\n temperature,\n topP,\n stopSequences,\n } = options;\n\n validateBaseURL(baseURL);\n warnIfMissingApiKey(apiKey, \"createGeminiRunner\");\n\n const genConfig: Record<string, unknown> = {};\n if (maxOutputTokens != null) {\n genConfig.maxOutputTokens = maxOutputTokens;\n }\n if (temperature != null) {\n genConfig.temperature = temperature;\n }\n if (topP != null) {\n genConfig.topP = topP;\n }\n if (stopSequences != null) {\n genConfig.stopSequences = stopSequences;\n }\n const hasGenConfig = Object.keys(genConfig).length > 0;\n\n return createRunner({\n fetch: fetchFn,\n hooks,\n buildRequest: (agent, _input, messages) => ({\n url: `${baseURL}/models/${agent.model ?? model}:generateContent`,\n init: {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-goog-api-key\": apiKey,\n },\n body: JSON.stringify({\n ...(agent.instructions\n ? { systemInstruction: { parts: [{ text: agent.instructions }] } }\n : {}),\n contents: messages.map((m) => ({\n role: m.role === \"assistant\" ? \"model\" : \"user\",\n parts: [{ text: m.content }],\n })),\n ...(hasGenConfig ? { generationConfig: genConfig } : {}),\n }),\n ...(timeoutMs != null\n ? { signal: AbortSignal.timeout(timeoutMs) }\n : {}),\n },\n }),\n parseResponse: async (res) => {\n const data = await res.json();\n const text = data.candidates?.[0]?.content?.parts?.[0]?.text ?? \"\";\n const inputTokens = data.usageMetadata?.promptTokenCount ?? 0;\n const outputTokens = data.usageMetadata?.candidatesTokenCount ?? 0;\n\n return {\n text,\n totalTokens: inputTokens + outputTokens,\n inputTokens,\n outputTokens,\n };\n },\n });\n}\n\n// ============================================================================\n// Gemini Streaming Runner\n// ============================================================================\n\n/** Options for createGeminiStreamingRunner */\nexport interface GeminiStreamingRunnerOptions {\n apiKey: string;\n model?: string;\n maxOutputTokens?: number;\n baseURL?: string;\n fetch?: typeof globalThis.fetch;\n /** Lifecycle hooks for tracing, logging, and metrics */\n hooks?: AdapterHooks;\n /** Sampling temperature. Higher = more random. */\n temperature?: number;\n /** Nucleus sampling: top-P probability mass (0–1). */\n topP?: number;\n /** Stop sequences. The model will stop generating when it encounters one. */\n stopSequences?: string[];\n}\n\n/**\n * Create a StreamingCallbackRunner for the Gemini streamGenerateContent API\n * with server-sent events. Can be used standalone or paired with `createGeminiRunner`.\n *\n * Returns `tokenUsage` with input/output breakdown for cost tracking.\n *\n * @example\n * ```typescript\n * const streamingRunner = createGeminiStreamingRunner({\n * apiKey: process.env.GEMINI_API_KEY!,\n * });\n * const streamRunner = createStreamingRunner(streamingRunner);\n * const { stream, result } = streamRunner(agent, input);\n * ```\n */\nexport function createGeminiStreamingRunner(\n options: GeminiStreamingRunnerOptions,\n): StreamingCallbackRunner {\n const {\n apiKey,\n model = \"gemini-2.0-flash\",\n maxOutputTokens,\n baseURL = \"https://generativelanguage.googleapis.com/v1beta\",\n fetch: fetchFn = globalThis.fetch,\n hooks,\n temperature,\n topP,\n stopSequences,\n } = options;\n\n validateBaseURL(baseURL);\n warnIfMissingApiKey(apiKey, \"createGeminiStreamingRunner\");\n\n const genConfig: Record<string, unknown> = {};\n if (maxOutputTokens != null) {\n genConfig.maxOutputTokens = maxOutputTokens;\n }\n if (temperature != null) {\n genConfig.temperature = temperature;\n }\n if (topP != null) {\n genConfig.topP = topP;\n }\n if (stopSequences != null) {\n genConfig.stopSequences = stopSequences;\n }\n const hasGenConfig = Object.keys(genConfig).length > 0;\n\n return async (agent, input, callbacks) => {\n const startTime = fireBeforeCallHook(hooks, agent, input);\n\n try {\n const response = await fetchFn(\n `${baseURL}/models/${agent.model ?? model}:streamGenerateContent?alt=sse`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-goog-api-key\": apiKey,\n },\n body: JSON.stringify({\n ...(agent.instructions\n ? { systemInstruction: { parts: [{ text: agent.instructions }] } }\n : {}),\n contents: [{ role: \"user\", parts: [{ text: input }] }],\n ...(hasGenConfig ? { generationConfig: genConfig } : {}),\n }),\n signal: callbacks.signal,\n },\n );\n\n if (!response.ok) {\n await throwStreamingHTTPError(response, \"Gemini\");\n }\n\n const reader = getSSEReader(response);\n\n const { fullText, inputTokens, outputTokens } = await parseSSEStream(\n reader,\n callbacks.onToken,\n (event) => {\n const result: {\n text?: string;\n inputTokens?: number;\n outputTokens?: number;\n } = {};\n\n const text = (\n (event.candidates as Array<Record<string, unknown>>)?.[0]\n ?.content as Record<string, unknown>\n )?.parts as Array<Record<string, unknown>> | undefined;\n const textVal = text?.[0]?.text;\n if (textVal) {\n result.text = textVal as string;\n }\n\n if (event.usageMetadata) {\n const meta = event.usageMetadata as Record<string, unknown>;\n if (meta.promptTokenCount !== undefined) {\n result.inputTokens = meta.promptTokenCount as number;\n }\n if (meta.candidatesTokenCount !== undefined) {\n result.outputTokens = meta.candidatesTokenCount as number;\n }\n }\n\n return result;\n },\n \"Gemini\",\n );\n\n const tokenUsage = { inputTokens, outputTokens };\n const totalTokens = inputTokens + outputTokens;\n\n callbacks.onMessage?.({ role: \"assistant\", content: fullText });\n fireAfterCallHook(\n hooks,\n agent,\n input,\n fullText,\n totalTokens,\n tokenUsage,\n startTime,\n );\n\n return buildStreamingResult(input, fullText, totalTokens, tokenUsage);\n } catch (err) {\n fireErrorHook(hooks, agent, input, err, startTime);\n\n throw err;\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/adapters/gemini.ts"],"names":["GEMINI_PRICING","createGeminiRunner","options","apiKey","model","maxOutputTokens","baseURL","fetchFn","timeoutMs","hooks","temperature","topP","stopSequences","validateBaseURL","warnIfMissingApiKey","genConfig","hasGenConfig","createRunner","agent","_input","messages","m","res","data","text","inputTokens","outputTokens","createGeminiStreamingRunner","input","callbacks","startTime","fireBeforeCallHook","response","throwStreamingHTTPError","reader","getSSEReader","fullText","parseSSEStream","event","result","textVal","meta","tokenUsage","totalTokens","fireAfterCallHook","buildStreamingResult","err","fireErrorHook"],"mappings":"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","file":"gemini.js","sourcesContent":["/**\n * @directive-run/ai/gemini\n *\n * Google Gemini adapter for Directive AI. Provides runners for the\n * Gemini generateContent API, including streaming support.\n *\n * @example\n * ```typescript\n * import { createGeminiRunner, createGeminiStreamingRunner } from '@directive-run/ai/gemini';\n *\n * const runner = createGeminiRunner({ apiKey: process.env.GEMINI_API_KEY! });\n * ```\n */\n\nimport { createRunner, validateBaseURL } from \"../agent-utils.js\";\nimport type { AdapterHooks, AgentRunner } from \"../types.js\";\nimport type { StreamingCallbackRunner } from \"../types.js\";\nimport {\n buildStreamingResult,\n fireAfterCallHook,\n fireBeforeCallHook,\n fireErrorHook,\n getSSEReader,\n parseSSEStream,\n throwStreamingHTTPError,\n warnIfMissingApiKey,\n} from \"./shared.js\";\n\n// ============================================================================\n// Pricing Constants\n// ============================================================================\n\n/**\n * Gemini model pricing (USD per million tokens).\n *\n * Use with `estimateCost()` for per-call cost tracking:\n * ```typescript\n * import { estimateCost } from '@directive-run/ai';\n * import { GEMINI_PRICING } from '@directive-run/ai/gemini';\n *\n * const cost =\n * estimateCost(result.tokenUsage!.inputTokens, GEMINI_PRICING[\"gemini-2.0-flash\"].input) +\n * estimateCost(result.tokenUsage!.outputTokens, GEMINI_PRICING[\"gemini-2.0-flash\"].output);\n * ```\n *\n * **Note:** Pricing changes over time. These values are provided as a convenience\n * and may not reflect the latest rates. Always verify at https://ai.google.dev/pricing\n */\nexport const GEMINI_PRICING: Record<string, { input: number; output: number }> =\n {\n \"gemini-2.5-pro\": { input: 1.25, output: 10 },\n \"gemini-2.5-flash\": { input: 0.15, output: 0.6 },\n \"gemini-2.0-flash\": { input: 0.1, output: 0.4 },\n \"gemini-2.0-flash-lite\": { input: 0.025, output: 0.1 },\n };\n\n// ============================================================================\n// Gemini Runner\n// ============================================================================\n\n/** Options for createGeminiRunner */\nexport interface GeminiRunnerOptions {\n apiKey: string;\n model?: string;\n maxOutputTokens?: number;\n baseURL?: string;\n fetch?: typeof globalThis.fetch;\n /** @default undefined */\n timeoutMs?: number;\n /** Lifecycle hooks for tracing, logging, and metrics */\n hooks?: AdapterHooks;\n /** Sampling temperature. Higher = more random. */\n temperature?: number;\n /** Nucleus sampling: top-P probability mass (0–1). */\n topP?: number;\n /** Stop sequences. The model will stop generating when it encounters one. */\n stopSequences?: string[];\n}\n\n/**\n * Create an AgentRunner for the Google Gemini generateContent API.\n *\n * Returns `tokenUsage` with input/output breakdown for cost tracking.\n *\n * @example\n * ```typescript\n * const runner = createGeminiRunner({\n * apiKey: process.env.GEMINI_API_KEY!,\n * model: 'gemini-2.0-flash',\n * });\n * const orchestrator = createAgentOrchestrator({ runner });\n * const result = await orchestrator.run(agent, input);\n * ```\n */\nexport function createGeminiRunner(options: GeminiRunnerOptions): AgentRunner {\n const {\n apiKey,\n model = \"gemini-2.0-flash\",\n maxOutputTokens,\n baseURL = \"https://generativelanguage.googleapis.com/v1beta\",\n fetch: fetchFn = globalThis.fetch,\n timeoutMs,\n hooks,\n temperature,\n topP,\n stopSequences,\n } = options;\n\n validateBaseURL(baseURL);\n warnIfMissingApiKey(apiKey, \"createGeminiRunner\");\n\n const genConfig: Record<string, unknown> = {};\n if (maxOutputTokens != null) {\n genConfig.maxOutputTokens = maxOutputTokens;\n }\n if (temperature != null) {\n genConfig.temperature = temperature;\n }\n if (topP != null) {\n genConfig.topP = topP;\n }\n if (stopSequences != null) {\n genConfig.stopSequences = stopSequences;\n }\n const hasGenConfig = Object.keys(genConfig).length > 0;\n\n return createRunner({\n fetch: fetchFn,\n hooks,\n buildRequest: (agent, _input, messages) => ({\n url: `${baseURL}/models/${agent.model ?? model}:generateContent`,\n init: {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-goog-api-key\": apiKey,\n },\n body: JSON.stringify({\n ...(agent.instructions\n ? { systemInstruction: { parts: [{ text: agent.instructions }] } }\n : {}),\n contents: messages.map((m) => ({\n role: m.role === \"assistant\" ? \"model\" : \"user\",\n parts: [{ text: m.content }],\n })),\n ...(hasGenConfig ? { generationConfig: genConfig } : {}),\n }),\n ...(timeoutMs != null\n ? { signal: AbortSignal.timeout(timeoutMs) }\n : {}),\n },\n }),\n parseResponse: async (res) => {\n const data = await res.json();\n const text = data.candidates?.[0]?.content?.parts?.[0]?.text ?? \"\";\n const inputTokens = data.usageMetadata?.promptTokenCount ?? 0;\n const outputTokens = data.usageMetadata?.candidatesTokenCount ?? 0;\n\n return {\n text,\n totalTokens: inputTokens + outputTokens,\n inputTokens,\n outputTokens,\n };\n },\n });\n}\n\n// ============================================================================\n// Gemini Streaming Runner\n// ============================================================================\n\n/** Options for createGeminiStreamingRunner */\nexport interface GeminiStreamingRunnerOptions {\n apiKey: string;\n model?: string;\n maxOutputTokens?: number;\n baseURL?: string;\n fetch?: typeof globalThis.fetch;\n /** Lifecycle hooks for tracing, logging, and metrics */\n hooks?: AdapterHooks;\n /** Sampling temperature. Higher = more random. */\n temperature?: number;\n /** Nucleus sampling: top-P probability mass (0–1). */\n topP?: number;\n /** Stop sequences. The model will stop generating when it encounters one. */\n stopSequences?: string[];\n}\n\n/**\n * Create a StreamingCallbackRunner for the Gemini streamGenerateContent API\n * with server-sent events. Can be used standalone or paired with `createGeminiRunner`.\n *\n * Returns `tokenUsage` with input/output breakdown for cost tracking.\n *\n * @example\n * ```typescript\n * const streamingRunner = createGeminiStreamingRunner({\n * apiKey: process.env.GEMINI_API_KEY!,\n * });\n * const streamRunner = createStreamingRunner(streamingRunner);\n * const { stream, result } = streamRunner(agent, input);\n * ```\n */\nexport function createGeminiStreamingRunner(\n options: GeminiStreamingRunnerOptions,\n): StreamingCallbackRunner {\n const {\n apiKey,\n model = \"gemini-2.0-flash\",\n maxOutputTokens,\n baseURL = \"https://generativelanguage.googleapis.com/v1beta\",\n fetch: fetchFn = globalThis.fetch,\n hooks,\n temperature,\n topP,\n stopSequences,\n } = options;\n\n validateBaseURL(baseURL);\n warnIfMissingApiKey(apiKey, \"createGeminiStreamingRunner\");\n\n const genConfig: Record<string, unknown> = {};\n if (maxOutputTokens != null) {\n genConfig.maxOutputTokens = maxOutputTokens;\n }\n if (temperature != null) {\n genConfig.temperature = temperature;\n }\n if (topP != null) {\n genConfig.topP = topP;\n }\n if (stopSequences != null) {\n genConfig.stopSequences = stopSequences;\n }\n const hasGenConfig = Object.keys(genConfig).length > 0;\n\n return async (agent, input, callbacks) => {\n const startTime = fireBeforeCallHook(hooks, agent, input);\n\n try {\n const response = await fetchFn(\n `${baseURL}/models/${agent.model ?? model}:streamGenerateContent?alt=sse`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-goog-api-key\": apiKey,\n },\n body: JSON.stringify({\n ...(agent.instructions\n ? { systemInstruction: { parts: [{ text: agent.instructions }] } }\n : {}),\n contents: [{ role: \"user\", parts: [{ text: input }] }],\n ...(hasGenConfig ? { generationConfig: genConfig } : {}),\n }),\n signal: callbacks.signal,\n },\n );\n\n if (!response.ok) {\n await throwStreamingHTTPError(response, \"Gemini\");\n }\n\n const reader = getSSEReader(response);\n\n const { fullText, inputTokens, outputTokens } = await parseSSEStream(\n reader,\n callbacks.onToken,\n (event) => {\n const result: {\n text?: string;\n inputTokens?: number;\n outputTokens?: number;\n } = {};\n\n const text = (\n (event.candidates as Record<string, unknown>[])?.[0]\n ?.content as Record<string, unknown>\n )?.parts as Record<string, unknown>[] | undefined;\n const textVal = text?.[0]?.text;\n if (textVal) {\n result.text = textVal as string;\n }\n\n if (event.usageMetadata) {\n const meta = event.usageMetadata as Record<string, unknown>;\n if (meta.promptTokenCount !== undefined) {\n result.inputTokens = meta.promptTokenCount as number;\n }\n if (meta.candidatesTokenCount !== undefined) {\n result.outputTokens = meta.candidatesTokenCount as number;\n }\n }\n\n return result;\n },\n \"Gemini\",\n );\n\n const tokenUsage = { inputTokens, outputTokens };\n const totalTokens = inputTokens + outputTokens;\n\n callbacks.onMessage?.({ role: \"assistant\", content: fullText });\n fireAfterCallHook(\n hooks,\n agent,\n input,\n fullText,\n totalTokens,\n tokenUsage,\n startTime,\n );\n\n return buildStreamingResult(input, fullText, totalTokens, tokenUsage);\n } catch (err) {\n fireErrorHook(hooks, agent, input, err, startTime);\n\n throw err;\n }\n };\n}\n"]}
|
package/dist/guardrails.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkCAA6Q4YY_cjs=require('./chunk-CAA6Q4YY.cjs');require('./chunk-K64WKZ22.cjs');Object.defineProperty(exports,"DEFAULT_INJECTION_PATTERNS",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.n}});Object.defineProperty(exports,"STRICT_INJECTION_PATTERNS",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.o}});Object.defineProperty(exports,"createBatchedEmbedder",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.z}});Object.defineProperty(exports,"createBruteForceIndex",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.A}});Object.defineProperty(exports,"createContentFilterGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.h}});Object.defineProperty(exports,"createEnhancedPIIGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.j}});Object.defineProperty(exports,"createInMemoryStorage",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.v}});Object.defineProperty(exports,"createLengthGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.g}});Object.defineProperty(exports,"createModerationGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.b}});Object.defineProperty(exports,"createOutputPIIGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.k}});Object.defineProperty(exports,"createOutputSchemaGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.e}});Object.defineProperty(exports,"createOutputTypeGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.f}});Object.defineProperty(exports,"createPIIGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.a}});Object.defineProperty(exports,"createPromptInjectionGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.r}});Object.defineProperty(exports,"createRateLimitGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.c}});Object.defineProperty(exports,"createSemanticCache",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.w}});Object.defineProperty(exports,"createSemanticCacheGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.x}});Object.defineProperty(exports,"createTestEmbedder",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.y}});Object.defineProperty(exports,"createToolGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.d}});Object.defineProperty(exports,"createUntrustedContentGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.t}});Object.defineProperty(exports,"createVPTreeIndex",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.B}});Object.defineProperty(exports,"detectAndRedactPII",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.m}});Object.defineProperty(exports,"detectPII",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.l}});Object.defineProperty(exports,"detectPromptInjection",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.p}});Object.defineProperty(exports,"markUntrustedContent",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.s}});Object.defineProperty(exports,"redactPII",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.i}});Object.defineProperty(exports,"sanitizeInjection",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.q}});//# sourceMappingURL=guardrails.cjs.map
|
|
2
2
|
//# sourceMappingURL=guardrails.cjs.map
|
package/dist/guardrails.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{n as DEFAULT_INJECTION_PATTERNS,o as STRICT_INJECTION_PATTERNS,z as createBatchedEmbedder,A as createBruteForceIndex,h as createContentFilterGuardrail,j as createEnhancedPIIGuardrail,v as createInMemoryStorage,g as createLengthGuardrail,b as createModerationGuardrail,k as createOutputPIIGuardrail,e as createOutputSchemaGuardrail,f as createOutputTypeGuardrail,a as createPIIGuardrail,r as createPromptInjectionGuardrail,c as createRateLimitGuardrail,w as createSemanticCache,x as createSemanticCacheGuardrail,y as createTestEmbedder,d as createToolGuardrail,t as createUntrustedContentGuardrail,B as createVPTreeIndex,m as detectAndRedactPII,l as detectPII,p as detectPromptInjection,s as markUntrustedContent,i as redactPII,q as sanitizeInjection}from'./chunk-
|
|
1
|
+
export{n as DEFAULT_INJECTION_PATTERNS,o as STRICT_INJECTION_PATTERNS,z as createBatchedEmbedder,A as createBruteForceIndex,h as createContentFilterGuardrail,j as createEnhancedPIIGuardrail,v as createInMemoryStorage,g as createLengthGuardrail,b as createModerationGuardrail,k as createOutputPIIGuardrail,e as createOutputSchemaGuardrail,f as createOutputTypeGuardrail,a as createPIIGuardrail,r as createPromptInjectionGuardrail,c as createRateLimitGuardrail,w as createSemanticCache,x as createSemanticCacheGuardrail,y as createTestEmbedder,d as createToolGuardrail,t as createUntrustedContentGuardrail,B as createVPTreeIndex,m as detectAndRedactPII,l as detectPII,p as detectPromptInjection,s as markUntrustedContent,i as redactPII,q as sanitizeInjection}from'./chunk-BFSRYCOS.js';import'./chunk-UR5BMWEN.js';//# sourceMappingURL=guardrails.js.map
|
|
2
2
|
//# sourceMappingURL=guardrails.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkCAA6Q4YY_cjs=require('./chunk-CAA6Q4YY.cjs'),chunkIR3IHBVQ_cjs=require('./chunk-IR3IHBVQ.cjs'),chunkXN5LUOVS_cjs=require('./chunk-XN5LUOVS.cjs'),chunkC6MQ4WL6_cjs=require('./chunk-C6MQ4WL6.cjs'),chunkD5APTMCT_cjs=require('./chunk-D5APTMCT.cjs'),chunk3WO4MWJM_cjs=require('./chunk-3WO4MWJM.cjs'),chunkPB276BX2_cjs=require('./chunk-PB276BX2.cjs'),chunk7DPTXZZI_cjs=require('./chunk-7DPTXZZI.cjs'),chunkK64WKZ22_cjs=require('./chunk-K64WKZ22.cjs'),chunkWOFIBIPW_cjs=require('./chunk-WOFIBIPW.cjs'),chunkMDXDPECP_cjs=require('./chunk-MDXDPECP.cjs'),chunkWCQK3JOR_cjs=require('./chunk-WCQK3JOR.cjs'),plugins=require('@directive-run/core/plugins'),_=require('path');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ___default=/*#__PURE__*/_interopDefault(_);function Ur(r,...e){let t=r;for(let n of e)t=n(t);return t}function j(r,e){let t=typeof r.content=="string"?r.content:JSON.stringify(r.content);return Math.ceil(t.length/4)}function V(r,e){return r.reduce((t,n)=>t+j(n),0)}function X(r={}){return (e,t={})=>{let n={...r,...t},s=n.maxMessages??100,c=n.preserveRecentCount??5;if(e.length<=s)return {keep:[...e],toSummarize:[],estimatedTokens:V(e)};let a=e.slice(-c),u=e.slice(0,-c),o=Math.max(0,s-c),m=u.slice(-o),d=u.slice(0,-o||void 0),b=[...m,...a];return {keep:b,toSummarize:d.length>0?d:[],estimatedTokens:V(b)}}}function Y(r={}){return (e,t={})=>{let n={...r,...t},s=n.maxTokens??4e3,c=n.preserveRecentCount??5,a=n.countSystemMessages??true,u=e.slice(-c),o=e.slice(0,-c),m=u.reduce((p,f)=>!a&&f.role==="system"?p:p+j(f),0),d=[],b=[],y=m;for(let p=o.length-1;p>=0;p--){let f=o[p],C=!a&&f.role==="system"?0:j(f);if(y+C<=s)d.unshift(f),y+=C;else {b.push(...o.slice(0,p+1));break}}return {keep:[...d,...u],toSummarize:b,estimatedTokens:y}}}function Hr(r={}){let e=X(r),t=Y(r);return (n,s={})=>{let c={...r,...s},a=e(n,c),u=t(n,c);return a.keep.length<=u.keep.length?a:u}}function Vr(r){let{strategy:e,summarizer:t,strategyConfig:n={},autoManage:s=false,onMemoryManaged:c,onManageError:a,maxContextTokens:u}=r,o={messages:[],summaries:[],totalMessagesProcessed:0,estimatedTokens:0},m=false;async function d(){if(m)return {messagesBefore:o.messages.length,messagesAfter:o.messages.length,messagesSummarized:0,estimatedTokensBefore:o.estimatedTokens,estimatedTokensAfter:o.estimatedTokens};m=true;try{let y=o.messages.length,p=o.estimatedTokens,f=e(o.messages,n);if(f.toSummarize.length===0)return {messagesBefore:y,messagesAfter:y,messagesSummarized:0,estimatedTokensBefore:p,estimatedTokensAfter:f.estimatedTokens};let C;t&&f.toSummarize.length>0&&(C=await t(f.toSummarize),o.summaries.push({content:C,messagesCount:f.toSummarize.length,createdAt:Date.now()})),o.messages=f.keep,o.estimatedTokens=f.estimatedTokens;let E={messagesBefore:y,messagesAfter:o.messages.length,messagesSummarized:f.toSummarize.length,summary:C,estimatedTokensBefore:p,estimatedTokensAfter:f.estimatedTokens};return c?.(E),E}finally{m=false;}}function b(){if(m)return;e(o.messages,n).toSummarize.length>0&&d().catch(p=>{let f=p instanceof Error?p:new Error(String(p));a?a(f):console.error("[Directive Memory] Auto-manage error:",f);});}return {getState(){return {...o,messages:[...o.messages],summaries:o.summaries.map(y=>({...y}))}},addMessage(y){o.messages.push(y),o.totalMessagesProcessed++,o.estimatedTokens+=j(y),s&&b();},addMessages(y){for(let p of y)o.messages.push(p),o.totalMessagesProcessed++,o.estimatedTokens+=j(p);s&&b();},getContextMessages(){let y=[];if(o.summaries.length>0){let p=o.summaries.map(f=>f.content).join(`
|
|
2
2
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
`);y.push({role:"system",content:`[Previous conversation summary]
|
|
6
6
|
|
|
7
7
|
${p}`});}if(y.push(...o.messages),u){let p=V(y);p>u&&console.warn(`[Directive Memory] Context messages (${p} tokens) exceed maxContextTokens (${u}). Consider calling manage() or reducing message count.`);}return y},manage:d,isManaging(){return m},clear(){o={messages:[],summaries:[],totalMessagesProcessed:0,estimatedTokens:0};},export(){return {...o,messages:[...o.messages],summaries:o.summaries.map(y=>({...y}))}},import(y){o={...y,messages:[...y.messages],summaries:y.summaries.map(p=>({...p}))};}}}function Kr(r=500){return async e=>{let t=e.filter(n=>n.role!=="system").map(n=>{let s=typeof n.content=="string"?n.content:JSON.stringify(n.content);return `${n.role}: ${s.slice(0,100)}${s.length>100?"...":""}`}).join(`
|
|
8
|
-
`);return t.length<=r?t
|
|
8
|
+
`);return t.length<=r?t:`${t.slice(0,r)}
|
|
9
9
|
[truncated]`}}function Wr(){return async r=>{let e=[];for(let t of r)if(t.role==="user"){let s=(typeof t.content=="string"?t.content:JSON.stringify(t.content)).match(/[^.!?]*\?/g);s&&e.push(...s.map(c=>`Q: ${c.trim()}`));}return e.length===0?`[${r.length} messages processed - no key questions found]`:`Key topics discussed:
|
|
10
10
|
${e.join(`
|
|
11
11
|
`)}`}}function Jr(r,e={}){let{maxSummaryLength:t=500,preserveKeyFacts:n=true}=e;return async s=>{let c=s.filter(u=>u.role!=="system").map(u=>{let o=typeof u.content=="string"?u.content:JSON.stringify(u.content);return `${u.role.toUpperCase()}: ${o}`}).join(`
|
|
@@ -17,14 +17,14 @@ Focus on information that would be useful context for continuing the conversatio
|
|
|
17
17
|
CONVERSATION:
|
|
18
18
|
${c}
|
|
19
19
|
|
|
20
|
-
SUMMARY:`;return r(a)}}var qr=1e4,Qr=10080*60*1e3,Xr=6e4,Z="0".repeat(64);function Yr(){return globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,11)}`}function Zr(r){return new TextEncoder().encode(r)}function en(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}async function ee(r){let e=Zr(r),t=await globalThis.crypto.subtle.digest("SHA-256",e);return en(new Uint8Array(t))}function te(r){let{id:e,timestamp:t,eventType:n,previousHash:s,payload:c,actorId:a,sessionId:u}=r;return JSON.stringify({id:e,timestamp:t,eventType:n,previousHash:s,payload:c,actorId:a,sessionId:u})}function tn(r){return JSON.parse(JSON.stringify(r))}async function rn(r,e){let t=tn(r);async function n(s){if(typeof s=="string"){let c=await
|
|
20
|
+
SUMMARY:`;return r(a)}}var qr=1e4,Qr=10080*60*1e3,Xr=6e4,Z="0".repeat(64);function Yr(){return globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,11)}`}function Zr(r){return new TextEncoder().encode(r)}function en(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}async function ee(r){let e=Zr(r),t=await globalThis.crypto.subtle.digest("SHA-256",e);return en(new Uint8Array(t))}function te(r){let{id:e,timestamp:t,eventType:n,previousHash:s,payload:c,actorId:a,sessionId:u}=r;return JSON.stringify({id:e,timestamp:t,eventType:n,previousHash:s,payload:c,actorId:a,sessionId:u})}function tn(r){return JSON.parse(JSON.stringify(r))}async function rn(r,e){let t=tn(r);async function n(s){if(typeof s=="string"){let c=await chunkCAA6Q4YY_cjs.l(s,{types:e.types,minConfidence:e.minConfidence??.7});if(c.detected){let a=e.allowlist?c.items.filter(u=>!e.allowlist.includes(u.value.toLowerCase())):c.items;if(a.length>0)return chunkCAA6Q4YY_cjs.i(s,a,e.redactionStyle)}return s}if(Array.isArray(s))return Promise.all(s.map(n));if(s&&typeof s=="object"){let c={};for(let[a,u]of Object.entries(s))c[a]=await n(u);return c}return s}for(let[s,c]of Object.entries(t))t[s]=await n(c);return t}function nn(r={}){let{maxEntries:e=qr,retentionMs:t=Qr,exportInterval:n=Xr,exporter:s,piiMasking:c,signing:a,sessionId:u,actorId:o,events:m={}}=r,d=[],b=0,y=0,p=0,f=true,C;function E(){return d.length===0?Z:d[d.length-1].hash}async function v(l,g,S){let A={id:Yr(),timestamp:Date.now(),eventType:l,previousHash:E(),payload:g,actorId:o,sessionId:u};c?.enabled&&(A.maskedPayload=await rn(g,c));let x=te(A),w=await ee(x),P={...A,hash:w};for(a&&(P.signature=await a.signFn(w)),d.push(P);d.length>e;)d.shift(),y++,b>0&&b--;return m.onEntryAdded?.(P),P}return s&&n>0&&(C=setInterval(async()=>{try{let l=d.slice(b);l.length>0&&(await s(l),p+=l.length,b=d.length);}catch(l){m.onExportError?.(l instanceof Error?l:new Error(String(l)),d.slice(b));}},n)),{getEntries(l){let g=[...d];if(l){if(l.eventTypes?.length){let S=new Set(l.eventTypes);g=g.filter(A=>S.has(A.eventType));}l.actorId&&(g=g.filter(S=>S.actorId===l.actorId)),l.sessionId&&(g=g.filter(S=>S.sessionId===l.sessionId)),l.since!==void 0&&(g=g.filter(S=>S.timestamp>=l.since)),l.until!==void 0&&(g=g.filter(S=>S.timestamp<=l.until)),l.offset!==void 0&&(g=g.slice(l.offset)),l.limit!==void 0&&(g=g.slice(0,l.limit));}return g},async verifyChain(){if(d.length===0)return {valid:true,entriesVerified:0,verifiedAt:Date.now()};d[0].previousHash;for(let g=0;g<d.length;g++){let S=d[g],A=te({id:S.id,timestamp:S.timestamp,eventType:S.eventType,previousHash:S.previousHash,payload:S.payload,actorId:S.actorId,sessionId:S.sessionId}),x=await ee(A);if(S.hash!==x){f=false;let w={valid:false,entriesVerified:g,brokenAt:{index:g,entryId:S.id,expectedHash:x,actualHash:S.hash},verifiedAt:Date.now()};return m.onChainBroken?.(w),w}if(g>0){let w=d[g-1];if(S.previousHash!==w.hash){f=false;let P={valid:false,entriesVerified:g,brokenAt:{index:g,entryId:S.id,expectedHash:w.hash,actualHash:S.previousHash},verifiedAt:Date.now()};return m.onChainBroken?.(P),P}}if(a?.verifyFn&&S.signature&&!await a.verifyFn(S.hash,S.signature)){f=false;let P={valid:false,entriesVerified:g,brokenAt:{index:g,entryId:S.id,expectedHash:"signature-invalid",actualHash:S.signature},verifiedAt:Date.now()};return m.onChainBroken?.(P),P}}return f=true,{valid:true,entriesVerified:d.length,verifiedAt:Date.now()}},async export(l){let g=[...d];return l!==void 0&&(g=g.filter(S=>S.timestamp>=l)),s&&g.length>0&&(await s(g),p+=g.length),g},prune(){let l=Date.now()-t,g=d.length;for(;d.length>0&&d[0].timestamp<l;)d.shift(),b>0&&b--;let S=g-d.length;return y+=S,S},getStats(){let l={};for(let g of d)l[g.eventType]=(l[g.eventType]??0)+1;return {totalEntries:d.length,byEventType:l,oldestEntry:d[0]?.timestamp,newestEntry:d[d.length-1]?.timestamp,entriesPruned:y,entriesExported:p,chainIntegrity:f}},async destroy(){if(C&&(clearInterval(C),C=void 0),s)try{let l=d.slice(b);l.length>0&&(await s(l),p+=l.length);}catch(l){m.onExportError?.(l instanceof Error?l:new Error(String(l)),d.slice(b));}},addEntry(l,g){return v(l,g)},createPlugin(){return {name:"audit-trail",onFactSet:(l,g,S)=>{v("fact.set",{key:l,value:g,prev:S}).catch(console.error);},onFactsBatch:l=>{v("fact.batch",{changes:l.map(g=>({key:g.key,value:g.value,prev:g.prev}))}).catch(console.error);},onRequirementCreated:l=>{v("requirement.created",{id:l.id,type:l.requirement.type,payload:l.requirement}).catch(console.error);},onRequirementMet:(l,g)=>{v("requirement.met",{id:l.id,type:l.requirement.type,byResolver:g}).catch(console.error);},onResolverStart:(l,g)=>{v("resolver.start",{resolver:l,requirementId:g.id,requirementType:g.requirement.type}).catch(console.error);},onResolverComplete:(l,g,S)=>{v("resolver.complete",{resolver:l,requirementId:g.id,requirementType:g.requirement.type,duration:S}).catch(console.error);},onResolverError:(l,g,S)=>{v("resolver.error",{resolver:l,requirementId:g.id,requirementType:g.requirement.type,error:S instanceof Error?S.message:String(S)}).catch(console.error);},onError:l=>{v("error.occurred",{source:l.source,sourceId:l.sourceId,message:l.message,context:l.context}).catch(console.error);},onErrorRecovery:(l,g)=>{v("error.recovery",{source:l.source,message:l.message,strategy:g}).catch(console.error);}}}}}function on(r){return {onAgentStart:(e,t)=>{r.addEntry("agent.run.start",{agentName:e,input:t});},onAgentComplete:(e,t,n,s)=>{r.addEntry("agent.run.complete",{agentName:e,output:t,tokens:n,cost:s});},onAgentError:(e,t)=>{r.addEntry("agent.run.error",{agentName:e,error:t.message,stack:t.stack});},onToolStart:(e,t,n)=>{r.addEntry("tool.call.start",{toolName:e,toolCallId:t,args:n});},onToolComplete:(e,t,n)=>{r.addEntry("tool.call.complete",{toolName:e,toolCallId:t,result:n});},onToolError:(e,t,n)=>{r.addEntry("tool.call.error",{toolName:e,toolCallId:t,error:n.message});},onApprovalRequested:(e,t,n)=>{r.addEntry("approval.requested",{toolName:e,toolCallId:t,args:n});},onApprovalGranted:(e,t)=>{r.addEntry("approval.granted",{toolName:e,toolCallId:t});},onApprovalDenied:(e,t,n)=>{r.addEntry("approval.denied",{toolName:e,toolCallId:t,reason:n});}}}function an(){return globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,11)}`}function sn(r){return new TextEncoder().encode(r)}function cn(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}async function re(r){let e=sn(r),t=await globalThis.crypto.subtle.digest("SHA-256",e);return cn(new Uint8Array(t))}function un(r){if(r.length===0)return "";let e=new Set;for(let s of r)for(let c of Object.keys(s))e.add(c);let t=Array.from(e),n=[t.join(",")];for(let s of r){let c=t.map(a=>{let u=s[a];if(u==null)return "";if(typeof u=="object")return JSON.stringify(u).replace(/"/g,'""');let o=String(u);return o.includes(",")||o.includes(`
|
|
21
21
|
`)||o.includes('"')?`"${o.replace(/"/g,'""')}"`:o});n.push(c.join(","));}return n.join(`
|
|
22
22
|
`)}function ln(){let r=new Map,e=new Map,t=new Map;return {async getSubjectData(n,s){let c=[];for(let[a,u]of r){if(s&&!s.includes(a))continue;let o=u.get(n);o&&o.length>0&&c.push({category:a,records:[...o]});}return c},async deleteSubjectData(n,s){let c=0;for(let[a,u]of r){if(s&&!s.includes(a))continue;let o=u.get(n);o&&(c+=o.length,u.delete(n));}return c},async anonymizeSubjectData(n,s){let c=0;for(let[a,u]of r){if(s&&!s.includes(a))continue;let o=u.get(n);if(o)for(let m of o)m.data={...m.data,_anonymized:true,_anonymizedAt:Date.now()},c++;}return c},async getExpiredData(n,s){let c=[],a=r.get(n);if(a)for(let u of a.values())for(let o of u)o.createdAt<s&&c.push({id:o.id,createdAt:o.createdAt});return c},async deleteByIds(n){let s=new Set(n),c=0;for(let a of r.values())for(let[u,o]of a){let m=o.filter(d=>!s.has(d.id));m.length!==o.length&&(c+=o.length-m.length,m.length===0?a.delete(u):a.set(u,m));}return c},async storeConsent(n){e.set(`${n.subjectId}:${n.purpose}`,n);},async getConsent(n,s){return e.get(`${n}:${s}`)??null},async getConsentsBySubject(n){let s=[];for(let[c,a]of e)c.startsWith(`${n}:`)&&s.push(a);return s},async getConsentsByPurpose(n){let s=[];for(let[c,a]of e)c.endsWith(`:${n}`)&&s.push(a);return s},async storeDeletionCertificate(n){t.set(n.subjectId,n);}}}function dn(r){let{storage:e,retention:t,exportExpirationMs:n=864e5,events:s={}}=r,c={async grant(a,u,o={}){let m={subjectId:a,purpose:u,granted:true,grantedAt:Date.now(),expiresAt:o.expiresAt,source:o.source,version:o.version};return await e.storeConsent(m),s.onConsentChange?.(m),m},async revoke(a,u){let o=await e.getConsent(a,u);if(!o)return null;let m={...o,granted:false,revokedAt:Date.now()};return await e.storeConsent(m),s.onConsentChange?.(m),m},async check(a,u){let o=await e.getConsent(a,u);return !(!o||!o.granted||o.expiresAt&&o.expiresAt<Date.now())},async getForSubject(a){return e.getConsentsBySubject(a)},async getForPurpose(a){return e.getConsentsByPurpose(a)}};return {async exportData(a){try{let u=await e.getSubjectData(a.subjectId,a.categories),o=[],m=[];for(let{category:p,records:f}of u){m.push(p);for(let C of f)o.push({category:p,...C});}if(a.includeAudit&&e.getAuditEntries){let p=await e.getAuditEntries(a.subjectId);m.push("audit");for(let f of p)o.push({category:"audit",id:f.id,data:f.payload,createdAt:f.timestamp});}let d;a.format==="csv"?d=un(o.map(p=>({category:p.category,id:p.id,createdAt:new Date(p.createdAt).toISOString(),...p.data}))):d=JSON.stringify({subjectId:a.subjectId,exportedAt:new Date().toISOString(),recordCount:o.length,categories:m,records:o},null,2);let b=await re(d),y={success:!0,subjectId:a.subjectId,format:a.format,data:d,categories:m,recordCount:o.length,checksum:b,exportedAt:Date.now(),expiresAt:Date.now()+n};return s.onExport?.(y),y}catch(u){return {success:false,subjectId:a.subjectId,format:a.format,data:"",categories:[],recordCount:0,checksum:"",exportedAt:Date.now(),error:u instanceof Error?u.message:String(u)}}},async deleteData(a){try{let u=0,o=[];a.anonymize?u=await e.anonymizeSubjectData(a.subjectId,a.categories):u=await e.deleteSubjectData(a.subjectId,a.categories),a.categories?o.push(...a.categories):a.scope==="all"&&o.push("all");let m=JSON.stringify({subjectId:a.subjectId,type:a.anonymize?"anonymization":"hard",scope:a.scope,categories:o,recordCount:u,deletedAt:Date.now(),reason:a.reason}),d={id:an(),subjectId:a.subjectId,type:a.anonymize?"anonymization":"hard",scope:a.scope,categories:o,recordCount:u,deletedAt:Date.now(),reason:a.reason,hash:await re(m)};await e.storeDeletionCertificate(d);let b={success:!0,subjectId:a.subjectId,scope:a.scope,anonymized:a.anonymize??!1,recordsAffected:u,categoriesAffected:o,certificate:d,deletedAt:Date.now()};return s.onDelete?.(b),b}catch(u){return {success:false,subjectId:a.subjectId,scope:a.scope,anonymized:a.anonymize??false,recordsAffected:0,categoriesAffected:[],certificate:{id:"error",subjectId:a.subjectId,type:"hard",scope:a.scope,categories:[],recordCount:0,deletedAt:Date.now(),hash:""},deletedAt:Date.now(),error:u instanceof Error?u.message:String(u)}}},consent:c,async enforceRetention(){if(!t)return 0;let a=0,u=Date.now(),o=new Set;if(t.categoryRetention)for(let m of Object.keys(t.categoryRetention))o.add(m);o.add("default");for(let m of o){let d=t.categoryRetention?.[m]??t.defaultRetentionMs,b=u-d,y=await e.getExpiredData(m,b);if(y.length>0){await t.onBeforeDelete?.({category:m,count:y.length});let p=await e.deleteByIds(y.map(f=>f.id));a+=p,t.onAfterDelete?.({category:m,count:p}),s.onRetentionEnforced?.(m,p);}}return a},createConsentGuardrail(a){return async u=>{let m=u.input.match(/user[_-]?id[:\s]*([a-zA-Z0-9-]+)/i)?.[1];return m?await c.check(m,a)?{passed:true}:{passed:false,reason:`No consent for '${a}' from subject ${m}`}:{passed:true}}},async getDeletionCertificate(a){return null}}}function K(r={}){let{bufferSize:e=100}=r;if(e<1||!Number.isFinite(e))throw new Error(`[Directive StreamChannel] bufferSize must be >= 1, got ${e}`);let t=[],n="open",s=null,c=null,a=null,u=false;function o(p){if(c){let f=c;c=null,f.resolve({value:p,done:false});}}function m(){if(c){let p=c;c=null,p.resolve({value:void 0,done:true});}}function d(p){if(c){let f=c;c=null,u=false,f.reject(p);}}function b(){if(a){let p=a;a=null,p();}}return {async send(p){if(n!=="open")throw new Error(`[Directive StreamChannel] Cannot send to ${n} channel${r.name?` "${r.name}"`:""}`);if(c){o(p);return}if(t.length>=e){if(await new Promise(f=>{a=f;}),n!=="open")throw new Error(`[Directive StreamChannel] Cannot send to ${n} channel${r.name?` "${r.name}"`:""}`);if(c){o(p);return}}t.push(p);},end(){n==="open"&&(n="closed",m());},error(p){n==="open"&&(n="error",s=p,d(p),b());},getState(){return n},bufferedCount(){return t.length},[Symbol.asyncIterator](){if(u)throw new Error("[Directive StreamChannel] Channel only supports a single consumer. Create a separate channel for each consumer.");return u=true,{next(){if(n==="error"&&s)return u=false,Promise.reject(s);if(t.length>0){let p=t.shift();return b(),Promise.resolve({value:p,done:false})}return n==="closed"?(u=false,Promise.resolve({value:void 0,done:true})):new Promise((p,f)=>{c={resolve:p,reject:f};})},return(){return n="closed",t.length=0,u=false,b(),Promise.resolve({value:void 0,done:true})}}}}}function pn(r){let e=K(r),t=K(r);return {sideA:{send:n=>e.send(n),receive:t,close(){e.end(),t.end();}},sideB:{send:n=>t.send(n),receive:e,close(){e.end(),t.end();}}}}async function gn(r,e,t){try{for await(let n of r){let s=await t(n);await e.send(s);}e.end();}catch(n){e.error(n instanceof Error?n:new Error(String(n)));}}function mn(...r){return {[Symbol.asyncIterator](){let t=[],n=0,s=null,c=null,a=false,u=false,o=[];function m(d){if(s){let b=s;return s=null,b(d),true}return false}for(let d of r){let b=d[Symbol.asyncIterator]();o.push(b),(async()=>{try{for(;!a;){let y=await b.next();if(y.done||a)break;m({value:y.value,done:!1})||(t.length<1e4?t.push(y.value):u||(u=!0,console.warn("[Directive mergeStreams] Buffer exceeded 10000 items. Values are being dropped. Ensure the consumer keeps up or use bounded StreamChannel sources.")));}}catch(y){a||(a=true,c=y instanceof Error?y:new Error(String(y)),m({value:void 0,done:true}));}n++,n>=r.length&&!a&&m({value:void 0,done:true});})();}return {next(){return c?Promise.reject(c):t.length>0?Promise.resolve({value:t.shift(),done:false}):n>=r.length?Promise.resolve({value:void 0,done:true}):new Promise(d=>{s=d;})},return(){a=true,t.length=0;for(let d of o)d.return?.({value:void 0,done:true});if(s){let d=s;s=null,d({value:void 0,done:true});}return Promise.resolve({value:void 0,done:true})}}}}}function fn(r,e){let t=r.metadata.title??"",n=r.metadata.section??"",s=r.metadata.url??"";return `${t&&n&&s?`[${t} \u2014 ${n}](${s})`:t||r.id}
|
|
23
23
|
${r.content}`}function yn(r,e){return r.length===0?"":`Relevant documentation context:
|
|
24
24
|
|
|
25
25
|
${r.join(`
|
|
26
26
|
|
|
27
|
-
`)}`}function hn(r,e,t){return Math.max(e,Math.min(t,r))}function Sn(r){let{embedder:e,storage:t,topK:n=5,minSimilarity:s=.3,formatChunk:c=fn,formatContext:a=yn,onError:u}=r,o=hn(s,0,1);typeof process<"u"&&process.env?.NODE_ENV==="development"&&s!==o&&console.warn(`[Directive] RAG: minSimilarity ${s} clamped to ${o} (valid range: 0-1)`);async function m(b,y){let p=Math.max(1,Math.floor(y??n));if(t.search)return t.search(await e(b),p,o);let f=await e(b),E=(await t.getChunks()).map(v=>({...v,similarity:
|
|
27
|
+
`)}`}function hn(r,e,t){return Math.max(e,Math.min(t,r))}function Sn(r){let{embedder:e,storage:t,topK:n=5,minSimilarity:s=.3,formatChunk:c=fn,formatContext:a=yn,onError:u}=r,o=hn(s,0,1);typeof process<"u"&&process.env?.NODE_ENV==="development"&&s!==o&&console.warn(`[Directive] RAG: minSimilarity ${s} clamped to ${o} (valid range: 0-1)`);async function m(b,y){let p=Math.max(1,Math.floor(y??n));if(t.search)return t.search(await e(b),p,o);let f=await e(b),E=(await t.getChunks()).map(v=>({...v,similarity:chunkCAA6Q4YY_cjs.u(f,v.embedding)}));return E.sort((v,l)=>l.similarity-v.similarity),E.filter(v=>v.similarity>=o).slice(0,p)}async function d(b,y={}){let{prefix:p,history:f,topK:C,filter:E}=y,v=[];try{v=await m(b,C);}catch(A){u?.(A instanceof Error?A:new Error(String(A)));}E&&(v=v.filter(A=>E(A)));let l=v.map(A=>c(A,A.similarity)),g=a(l,b),S=[];if(p&&S.push(p),g&&S.push(g),f&&f.length>0){let A=f.map(x=>`${x.role.charAt(0).toUpperCase()+x.role.slice(1)}: ${x.content}`).join(`
|
|
28
28
|
|
|
29
29
|
`);S.push(`Previous conversation:
|
|
30
30
|
${A}`);}return S.push(b),S.join(`
|
|
@@ -37,5 +37,5 @@ ${A}`);}return S.push(b),S.join(`
|
|
|
37
37
|
|
|
38
38
|
`)}return new ReadableStream({async start(C){let E=null,v=null;try{n>0&&(E=setInterval(()=>{try{C.enqueue(f({type:"heartbeat",timestamp:Date.now()}));}catch{}},n)),v=m.stream(d,b,{signal:y?.signal});let l=0,g=!1;for await(let S of v){if(l+=S.length,l>e){C.enqueue(f({type:"truncated",text:t})),C.enqueue(f({type:"done"})),g=!0,v.abort();break}C.enqueue(f({type:"text",text:S}));}try{await v.result;}catch{}g||C.enqueue(f({type:"done"}));}catch(l){let g=a(l);C.enqueue(f({type:"error",message:g}));}finally{E&&clearInterval(E),C.close();}}})}let o={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive",...c};return {toResponse(m,d,b,y){let p=u(m,d,b,y);return new Response(p,{headers:o})},toStream(m,d,b,y){return u(m,d,b,y)}}}var N=class extends Error{retryCount;lastError;constructor(e,t){super(`[Directive] All ${e} retries exhausted: ${t.message}`),this.name="RetryExhaustedError",this.retryCount=e,this.lastError=t,this.cause=t;}},Rn=new Set([400,401,403,404,422]);function W(r){let e=r;if(typeof e.status=="number"&&e.status>=100&&e.status<=599)return e.status;if(typeof e.statusCode=="number"&&e.statusCode>=100&&e.statusCode<=599)return e.statusCode;let n=(r.message.length>1e3?r.message.slice(0,1e3):r.message).match(/(?:failed|error|status|http)[:\s]+(\d{3})\b/i);if(!n)return null;let s=Number(n[1]);return s>=100&&s<=599?s:null}function oe(r){let e=r;if(typeof e.retryAfter=="number"&&e.retryAfter>0)return e.retryAfter*1e3;let n=(r.message.length>1e3?r.message.slice(0,1e3):r.message).match(/retry[- ]?after[:\s]+(\d+)/i);if(!n)return null;let s=Number(n[1]);return s>0?s*1e3:null}function En(r,e,t){let n=e*2**(r-1),s=Math.random()*e*.5,c=n+s;return Math.min(c,t)}function An(r,e,t,n){if(W(r)===429){let c=oe(r);if(c!==null)return Math.min(c,n)}return En(e,t,n)}function Tn(r){let e=W(r);return e===null?true:!Rn.has(e)}function wn(r,e={}){let{maxRetries:t=3,baseDelayMs:n=1e3,maxDelayMs:s=3e4,isRetryable:c,onRetry:a}=e;if(!Number.isFinite(t)||t<0)throw new Error("[Directive] withRetry: maxRetries must be a non-negative finite number.");if(!Number.isFinite(n)||n<0)throw new Error("[Directive] withRetry: baseDelayMs must be a non-negative finite number.");if(!Number.isFinite(s)||s<0)throw new Error("[Directive] withRetry: maxDelayMs must be a non-negative finite number.");return async(u,o,m)=>{let d;for(let b=0;b<=t;b++)try{return await r(u,o,m)}catch(y){if(d=y instanceof Error?y:new Error(String(y)),b>=t)break;if(c)try{if(!c(d))break}catch{break}if(!Tn(d))break;let p=An(d,b+1,n,s);try{a?.(b+1,d,p);}catch{}let f=m?.signal;if(f?.aborted)break;await new Promise((C,E)=>{let v=setTimeout(()=>{f?.removeEventListener("abort",l),C();},p);function l(){clearTimeout(v),E(f.reason??new Error("Aborted"));}f&&f.addEventListener("abort",l,{once:true});});}throw new N(t,d)}}var F=class extends Error{errors;constructor(e){let t=e.map((n,s)=>` [${s}] ${n.message}`).join(`
|
|
39
39
|
`);super(`[Directive] All ${e.length} providers failed:
|
|
40
|
-
${t}`),this.name="AllProvidersFailedError",this.errors=Object.freeze([...e]),e.length>0&&(this.cause=e[e.length-1]);}};function kn(r,e={}){if(r.length===0)throw new Error("[Directive] withFallback requires at least one runner.");let{shouldFallback:t,onFallback:n}=e;return async(s,c,a)=>{let u=[];for(let o=0;o<r.length;o++)try{return await r[o](s,c,a)}catch(m){let d=m instanceof Error?m:new Error(String(m));if(u.push(d),o<r.length-1){if(t)try{if(!t(d))break}catch{break}try{n?.(o,o+1,d);}catch{}}}throw new F(u)}}var G=class extends Error{estimated;remaining;window;constructor(e){super(`[Directive] Budget exceeded (${e.window}): estimated $${e.estimated.toFixed(4)}, remaining $${e.remaining.toFixed(4)}`),this.name="BudgetExceededError",this.estimated=e.estimated,this.remaining=e.remaining,this.window=e.window;}},$=class{entries=[];record(e){this.entries.push({timestamp:Date.now(),cost:e});}getCostInWindow(e){let t=Date.now()-e;this.prune(t);let n=0;for(let s of this.entries)s.timestamp>=t&&(n+=s.cost);return n}prune(e){let t=0;for(;t<this.entries.length&&this.entries[t].timestamp<e;)t++;t>0&&this.entries.splice(0,t);}clear(){this.entries=[];}},ae={hour:3600*1e3,day:1440*60*1e3};function xn(r,e){return Math.ceil(r.length/e)}function se(r,e){return r.inputTokens/1e6*e.inputPerMillion+r.outputTokens/1e6*e.outputPerMillion}function ie(r,e,t=1){let n=Math.ceil(r*t);return r/1e6*e.inputPerMillion+n/1e6*e.outputPerMillion}function Mn(r,e){let{maxCostPerCall:t,budgets:n=[],pricing:s,charsPerToken:c=4,estimatedOutputMultiplier:a=1,onBudgetExceeded:u}=e;if(!Number.isFinite(c)||c<=0)throw new Error("[Directive] withBudget: charsPerToken must be a positive finite number.");if(t!=null&&(!Number.isFinite(t)||t<0))throw new Error("[Directive] withBudget: maxCostPerCall must be a non-negative finite number.");if(!Number.isFinite(a)||a<0)throw new Error("[Directive] withBudget: estimatedOutputMultiplier must be a non-negative finite number.");t!=null&&!s&&console.warn("[Directive] withBudget: maxCostPerCall has no effect without pricing. Provide a pricing config to enable per-call cost estimation.");for(let y of n)if(!Number.isFinite(y.maxCost)||y.maxCost<0)throw new Error(`[Directive] withBudget: budgets[${y.window}].maxCost must be a non-negative finite number.`);let o=new Map;for(let y of n)o.set(y.window,new $);let m=new $,d=async(y,p,f)=>{let C=xn(p,c);if(t!=null&&s){let v=ie(C,s,a);if(v>t){let l={estimated:v,remaining:t,window:"per-call"};try{u?.(l);}catch{}throw new G(l)}}for(let v of n){let l=ae[v.window],S=o.get(v.window).getCostInWindow(l),A=v.maxCost-S,x=ie(C,v.pricing,a);if(x>A){let w={estimated:x,remaining:Math.max(0,A),window:v.window};try{u?.(w);}catch{}throw new G(w)}}let E=await r(y,p,f);if(E.tokenUsage){for(let v of n){let l=o.get(v.window),g=se(E.tokenUsage,v.pricing);l.record(g);}if(s&&n.length===0){let v=se(E.tokenUsage,s);m.record(v);}}return E};function b(y){let p=o.get(y);if(!p)return 0;let f=ae[y];return p.getCostInWindow(f)}return d.getSpent=b,d}function In(r,e){return {match:(t,n)=>n.length<=r,model:e}}function Pn(r,e){return {match:t=>t.name===r,model:e}}function Dn(r,e){return {match:(t,n)=>(r.lastIndex=0,r.test(n)),model:e}}function On(r,e){let t=Array.isArray(e)?{rules:e}:e,{rules:n,onModelSelected:s}=t;return async(c,a,u)=>{let o=c.model;for(let d of n)try{if(d.match(c,a)){o=d.model;break}}catch{}try{s?.(c.model,o);}catch{}let m=o!==c.model?{...c,model:o}:c;return r(m,a,u)}}function Bn(r,e={}){let{maxBatchSize:t=20,maxWaitMs:n=5e3,concurrency:s=5}=e;if(!Number.isFinite(t)||t<1)throw new Error("[Directive] createBatchQueue: maxBatchSize must be a positive finite number (>= 1).");if(!Number.isFinite(n)||n<0)throw new Error("[Directive] createBatchQueue: maxWaitMs must be a non-negative finite number.");if(!Number.isFinite(s)||s<1)throw new Error("[Directive] createBatchQueue: concurrency must be a positive finite number (>= 1).");let c=[],a=null,u=false,o=null;function m(){a===null&&(a=setTimeout(()=>{a=null,y().catch(()=>{});},n));}function d(){a!==null&&(clearTimeout(a),a=null);}async function b(p){let f=0;async function C(){for(;f<p.length;){let v=f++,l=p[v];try{let g=await r(l.agent,l.input,l.options);l.resolve(g);}catch(g){l.reject(g instanceof Error?g:new Error(String(g)));}}}let E=Array.from({length:Math.min(s,p.length)},()=>C());await Promise.all(E);}async function y(){if(o&&await o,c.length===0)return;d();let p=c.splice(0);o=b(p).finally(()=>{o=null,c.length>0&&m();}),await o;}return {submit(p,f,C){return u?Promise.reject(new Error("[Directive] BatchQueue has been destroyed.")):new Promise((E,v)=>{c.push({agent:p,input:f,options:C,resolve:E,reject:v}),c.length>=t?(d(),y().catch(()=>{})):m();})},async flush(){await y();},get pending(){return c.length},async destroy(){u||(u=true,d(),c.length>0&&await y());}}}function ce(){return {callCount:0,errorCount:0,totalCost:0,avgLatencyMs:0,lastErrorAt:null}}function jn(r,e){return !r||!e?0:r.inputTokens/1e6*e.inputPerMillion+r.outputTokens/1e6*e.outputPerMillion}function Gn(r){let{providers:e,defaultProvider:t,constraints:n=[],onProviderSelected:s,errorCooldownMs:c=3e4,preferCheapest:a=false}=r;if(!Number.isFinite(c)||c<0)throw new Error("[Directive] createConstraintRouter: errorCooldownMs must be a non-negative finite number.");let u=new Map;for(let f of e)u.set(f.name,f);if(!u.has(t))throw new Error(`[Directive] Default provider "${t}" not found in providers list.`);let o={totalCost:0,callCount:0,errorCount:0,lastProvider:null,avgLatencyMs:0,providers:Object.create(null)};for(let f of e)o.providers[f.name]=ce();let m=0,d=[...n].sort((f,C)=>(C.priority??0)-(f.priority??0));function b(){let f=Date.now();for(let E of d)try{if(E.when(o)){let v=u.get(E.provider);if(v)return {provider:v,reason:"constraint"}}}catch{}let C=e.filter(E=>{let v=o.providers[E.name];return v?!(v.lastErrorAt&&f-v.lastErrorAt<c):true});if(a&&C.length>0){let E=[...C].sort((v,l)=>{let g=v.pricing?v.pricing.inputPerMillion+v.pricing.outputPerMillion:Number.POSITIVE_INFINITY,S=l.pricing?l.pricing.inputPerMillion+l.pricing.outputPerMillion:Number.POSITIVE_INFINITY;return g!==S?g-S:v.name===t?-1:l.name===t?1:0});if(E[0]!==u.get(t))return {provider:E[0],reason:"cheapest"}}return C.length>0&&!C.some(E=>E.name===t)?{provider:C[0],reason:"default"}:{provider:u.get(t),reason:"default"}}function y(f,C,E,v,l){let g=o.providers[f]??ce();if(g.callCount++,o.callCount++,l)g.errorCount++,o.errorCount++,g.lastErrorAt=Date.now();else {let A=jn(E,v);g.totalCost+=A,o.totalCost+=A;}m+=C,o.avgLatencyMs=m/o.callCount;let S=g.callCount>0?(g.avgLatencyMs*(g.callCount-1)+C)/g.callCount:C;g.avgLatencyMs=S,o.providers[f]=g,o.lastProvider=f;}let p=async(f,C,E)=>{let{provider:v,reason:l}=b();try{s?.(v.name,l);}catch{}let g=Date.now();try{let S=await v.runner(f,C,E),A=Date.now()-g;return y(v.name,A,S.tokenUsage,v.pricing),S}catch(S){let A=Date.now()-g,x=S instanceof Error?S:new Error(String(S));throw y(v.name,A,void 0,v.pricing,x),x}};return Object.defineProperty(p,"facts",{get:()=>{let f=Object.create(null);for(let C of Object.keys(o.providers))f[C]={...o.providers[C]};return {...o,providers:f}},enumerable:true}),p}var I={UNSET:0,OK:1,ERROR:2},L=class{constructor(e,t,n,s,c,a){this.name=e;this.spanId=t;this.traceId=n;this.parentSpanId=s;this.onEnd=a;if(this.startTime=Date.now(),c)for(let[u,o]of Object.entries(c))this.attributes[u]=o;}attributes=Object.create(null);spanEvents=[];status={code:I.UNSET};startTime;endTime=0;setAttribute(e,t){this.attributes[e]=t;}addEvent(e,t){this.spanEvents.push({name:e,attributes:t,timestamp:Date.now()});}setStatus(e){this.status=e;}end(){this.endTime=Date.now(),this.onEnd?.(this);}toSpanData(){return {name:this.name,traceId:this.traceId,spanId:this.spanId,parentSpanId:this.parentSpanId,attributes:{...this.attributes},events:[...this.spanEvents],status:{...this.status},startTime:this.startTime,endTime:this.endTime,durationMs:this.endTime-this.startTime}}},J=class{spans=[];startSpan(e,t){let n=t?.spanId??`fallback-${crypto.randomUUID()}`,s=t?.traceId??`fallback-${crypto.randomUUID()}`,c=t?.parentSpanId;return new L(e,n,s,c,t?.attributes,a=>{this.spans.push(a.toSpanData());})}clear(){this.spans.length=0;}};function _n(r){let e=r.spanPrefix??"directive.ai",t=r.instrumentEvents,n=r.spanTtlMs??3e5,s=!r.tracer,c=s?new J:null,a=r.tracer??c,u=0;function o(){return `${Date.now().toString(36)}-${(u++).toString(36)}`}function m(){return `${Date.now().toString(36)}-${crypto.randomUUID().slice(0,8)}`}let d=new Map,b=0,y=new Map,p=[],f=null,C=false;function E(i){return t?t.has(i):true}function v(i,h){return `${i}:${h}:${b++}`}function l(i,h){let R=`${i}:${h}`,T=y.get(R);if(T){for(let k=T.length-1;k>=0;k--){let O=d.get(T[k]);if(O)return {key:T[k],entry:O}}y.delete(R);}return null}function g(i,h,R,T){let k=`${i}:${h}`;T.indexKey=k,d.set(R,T);let O=y.get(k);O?O.push(R):y.set(k,[R]);}function S(i){let h=d.get(i);d.delete(i);let R=h?.indexKey;if(R){let T=y.get(R);if(T){let k=T.indexOf(i);k!==-1&&T.splice(k,1),T.length===0&&y.delete(R);}}}function A(){let i=Date.now();if(d.size<1e4){for(let[R,T]of d)i-T.startTime>n&&(M(T,"directive.stale",true),D(T,{code:I.ERROR,message:"Span TTL exceeded \u2014 cleaned up"}),w(T),S(R),true);return void 0}for(let[h,R]of d)i-R.startTime>n&&(M(R,"directive.stale",true),D(R,{code:I.ERROR,message:"Span TTL exceeded \u2014 cleaned up"}),w(R),S(h));}function x(i,h,R){let T=o(),k=R?.traceId??m(),O=R?.spanId,B;s?B=a.startSpan(i,{attributes:h,spanId:T,traceId:k,parentSpanId:O}):B=a.startSpan(i,{attributes:h});let z={span:B,spanId:T,traceId:k,startTime:Date.now()};return s||(z.shadow={span:B,name:i,spanId:T,traceId:k,parentSpanId:O,attributes:{...h},events:[],status:{code:I.UNSET},startTime:z.startTime}),{span:B,entry:z}}function w(i){i.span.end(),r.onSpanEnd&&r.onSpanEnd(P(i));}function P(i){if(i.span instanceof L)return i.span.toSpanData();if(i.shadow){let R=Date.now();return {name:i.shadow.name,traceId:i.shadow.traceId,spanId:i.shadow.spanId,parentSpanId:i.shadow.parentSpanId,attributes:{...i.shadow.attributes},events:[...i.shadow.events],status:{...i.shadow.status},startTime:i.shadow.startTime,endTime:R,durationMs:R-i.shadow.startTime}}let h=Date.now();return {name:"unknown",traceId:i.traceId,spanId:i.spanId,attributes:{},events:[],status:{code:I.UNSET},startTime:i.startTime,endTime:h,durationMs:h-i.startTime}}function M(i,h,R){i.span.setAttribute(h,R),i.shadow&&(i.shadow.attributes[h]=R);}function q(i,h,R){i.span.addEvent(h,R),i.shadow&&i.shadow.events.push({name:h,attributes:R,timestamp:Date.now()});}function D(i,h){i.span.setStatus(h),i.shadow&&(i.shadow.status={...h});}function ue(i){if(E(i.type))switch(A(),i.type){case "agent_start":le(i);break;case "agent_complete":de(i);break;case "agent_error":pe(i);break;case "guardrail_check":ge(i);break;case "constraint_evaluate":me(i);break;case "resolver_start":fe(i);break;case "resolver_complete":ye(i);break;case "resolver_error":he(i);break;case "pattern_start":Se(i);break;case "pattern_complete":ve(i);break;default:if(i.agentId){let h=l("agent",i.agentId);h&&q(h.entry,i.type,{"event.id":i.id,"event.timestamp":i.timestamp});}}}function le(i){let h=p.length>0?p[p.length-1]:null,{entry:R}=x(`${e}.agent.run`,{"directive.service":r.serviceName,"directive.agent.name":i.agentId,"directive.agent.input_length":i.inputLength,"gen_ai.operation.name":"agent.run","gen_ai.agent.name":i.agentId},h),T=v("agent",i.agentId);g("agent",i.agentId,T,R);}function de(i){let h=l("agent",i.agentId);h&&(M(h.entry,"directive.agent.output_length",i.outputLength),M(h.entry,"directive.agent.total_tokens",i.totalTokens),M(h.entry,"directive.agent.duration_ms",i.durationMs),M(h.entry,"gen_ai.usage.total_tokens",i.totalTokens),D(h.entry,{code:I.OK}),w(h.entry),S(h.key));}function pe(i){let h=l("agent",i.agentId);h&&(M(h.entry,"directive.agent.duration_ms",i.durationMs),M(h.entry,"directive.agent.error",i.errorMessage),M(h.entry,"gen_ai.error.message",i.errorMessage),D(h.entry,{code:I.ERROR,message:i.errorMessage}),w(h.entry),S(h.key));}function ge(i){let h=i.agentId?l("agent",i.agentId)?.entry??null:null,{entry:R}=x(`${e}.guardrail.check`,{"directive.service":r.serviceName,"directive.guardrail.name":i.guardrailName,"directive.guardrail.type":i.guardrailType,"directive.guardrail.passed":i.passed,"directive.guardrail.duration_ms":i.durationMs,"gen_ai.guardrail.name":i.guardrailName,"gen_ai.guardrail.type":i.guardrailType,"gen_ai.guardrail.passed":i.passed},h);i.reason&&M(R,"directive.guardrail.reason",i.reason),D(R,{code:i.passed?I.OK:I.ERROR,message:i.passed?void 0:i.reason}),w(R);}function me(i){if(i.agentId){let R=l("agent",i.agentId);if(R){q(R.entry,"constraint_evaluate",{"directive.constraint.id":i.constraintId,"directive.constraint.fired":i.fired});return}}let{entry:h}=x(`${e}.constraint.evaluate`,{"directive.service":r.serviceName,"directive.constraint.id":i.constraintId,"directive.constraint.fired":i.fired},null);D(h,{code:I.OK}),w(h);}function fe(i){let R=(i.agentId?l("agent",i.agentId)?.entry??null:null)??(p.length>0?p[p.length-1]:null),{entry:T}=x(`${e}.resolver.execute`,{"directive.service":r.serviceName,"directive.resolver.id":i.resolverId,"directive.resolver.requirement_type":i.requirementType},R),k=v("resolver",i.resolverId);g("resolver",i.resolverId,k,T);}function ye(i){let h=l("resolver",i.resolverId);h&&(M(h.entry,"directive.resolver.duration_ms",i.durationMs),D(h.entry,{code:I.OK}),w(h.entry),S(h.key));}function he(i){let h=l("resolver",i.resolverId);h&&(M(h.entry,"directive.resolver.duration_ms",i.durationMs),M(h.entry,"directive.resolver.error",i.errorMessage),D(h.entry,{code:I.ERROR,message:i.errorMessage}),w(h.entry),S(h.key));}function Se(i){let h=p.length>0?p[p.length-1]:null,{entry:R}=x(`${e}.pattern.${i.patternType}`,{"directive.service":r.serviceName,"directive.pattern.id":i.patternId,"directive.pattern.type":i.patternType},h),T=v("pattern",i.patternId);g("pattern",i.patternId,T,R),p.length<100&&p.push(R);}function ve(i){let h=l("pattern",i.patternId);if(h){M(h.entry,"directive.pattern.duration_ms",i.durationMs),i.error?(M(h.entry,"directive.pattern.error",i.error),D(h.entry,{code:I.ERROR,message:i.error})):D(h.entry,{code:I.OK}),w(h.entry),S(h.key);let R=p.indexOf(h.entry);R!==-1&&p.splice(R,1);}}return {attach(i){if(f&&f!==i)throw new Error("[Directive OTEL] Plugin already attached to a different timeline. Create a new plugin instance.");f=i;let h=i.subscribe(ue),R=setInterval(A,Math.min(n,6e4));return ()=>{h(),clearInterval(R),f=null;for(let[T,k]of d)M(k,"directive.detached",true),D(k,{code:I.ERROR,message:"Plugin detached while span was active"}),w(k);d.clear(),y.clear(),p.length=0;}},getSpans(){return c?[...c.spans]:(C||(C=true,typeof process<"u"&&process.env?.NODE_ENV!=="production"&&console.warn("[Directive OTEL] getSpans() returns [] when using an external tracer. Use the onSpanEnd callback to collect span data instead.")),[])},clearSpans(){c?.clear();},getTracer(){return a},getActiveSpanCount(){return d.size}}}Object.defineProperty(exports,"DEFAULT_INJECTION_PATTERNS",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.n}});Object.defineProperty(exports,"STRICT_INJECTION_PATTERNS",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.o}});Object.defineProperty(exports,"createBatchedEmbedder",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.z}});Object.defineProperty(exports,"createBruteForceIndex",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.A}});Object.defineProperty(exports,"createContentFilterGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.h}});Object.defineProperty(exports,"createEnhancedPIIGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.j}});Object.defineProperty(exports,"createInMemoryStorage",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.v}});Object.defineProperty(exports,"createLengthGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.g}});Object.defineProperty(exports,"createModerationGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.b}});Object.defineProperty(exports,"createOutputPIIGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.k}});Object.defineProperty(exports,"createOutputSchemaGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.e}});Object.defineProperty(exports,"createOutputTypeGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.f}});Object.defineProperty(exports,"createPIIGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.a}});Object.defineProperty(exports,"createPromptInjectionGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.r}});Object.defineProperty(exports,"createRateLimitGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.c}});Object.defineProperty(exports,"createSemanticCache",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.w}});Object.defineProperty(exports,"createSemanticCacheGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.x}});Object.defineProperty(exports,"createTestEmbedder",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.y}});Object.defineProperty(exports,"createToolGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.d}});Object.defineProperty(exports,"createUntrustedContentGuardrail",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.t}});Object.defineProperty(exports,"createVPTreeIndex",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.B}});Object.defineProperty(exports,"detectAndRedactPII",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.m}});Object.defineProperty(exports,"detectPII",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.l}});Object.defineProperty(exports,"detectPromptInjection",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.p}});Object.defineProperty(exports,"markUntrustedContent",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.s}});Object.defineProperty(exports,"redactPII",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.i}});Object.defineProperty(exports,"sanitizeInjection",{enumerable:true,get:function(){return chunkA5K77UDX_cjs.q}});Object.defineProperty(exports,"connectDevTools",{enumerable:true,get:function(){return chunkIR3IHBVQ_cjs.b}});Object.defineProperty(exports,"createDevToolsServer",{enumerable:true,get:function(){return chunkIR3IHBVQ_cjs.a}});Object.defineProperty(exports,"createWsTransport",{enumerable:true,get:function(){return chunkIR3IHBVQ_cjs.c}});Object.defineProperty(exports,"createEvalSuite",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.k}});Object.defineProperty(exports,"evalAssert",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.l}});Object.defineProperty(exports,"evalCoherence",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.j}});Object.defineProperty(exports,"evalCost",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.a}});Object.defineProperty(exports,"evalFaithfulness",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.h}});Object.defineProperty(exports,"evalJudge",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.f}});Object.defineProperty(exports,"evalLatency",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.b}});Object.defineProperty(exports,"evalMatch",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.g}});Object.defineProperty(exports,"evalOutputLength",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.c}});Object.defineProperty(exports,"evalRelevance",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.i}});Object.defineProperty(exports,"evalSafety",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.d}});Object.defineProperty(exports,"evalStructure",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.e}});Object.defineProperty(exports,"convertToolsForLLM",{enumerable:true,get:function(){return chunkLKY4K5TV_cjs.b}});Object.defineProperty(exports,"createMCPAdapter",{enumerable:true,get:function(){return chunkLKY4K5TV_cjs.a}});Object.defineProperty(exports,"mcpCallTool",{enumerable:true,get:function(){return chunkLKY4K5TV_cjs.c}});Object.defineProperty(exports,"mcpGetPrompt",{enumerable:true,get:function(){return chunkLKY4K5TV_cjs.e}});Object.defineProperty(exports,"mcpReadResource",{enumerable:true,get:function(){return chunkLKY4K5TV_cjs.d}});Object.defineProperty(exports,"mcpSyncResources",{enumerable:true,get:function(){return chunkLKY4K5TV_cjs.f}});Object.defineProperty(exports,"createAgentOrchestrator",{enumerable:true,get:function(){return chunk2TD4ZSGZ_cjs.a}});Object.defineProperty(exports,"createRunner",{enumerable:true,get:function(){return chunk3WO4MWJM_cjs.f}});Object.defineProperty(exports,"estimateCost",{enumerable:true,get:function(){return chunk3WO4MWJM_cjs.c}});Object.defineProperty(exports,"hasPendingApprovals",{enumerable:true,get:function(){return chunk3WO4MWJM_cjs.b}});Object.defineProperty(exports,"isAgentRunning",{enumerable:true,get:function(){return chunk3WO4MWJM_cjs.a}});Object.defineProperty(exports,"validateBaseURL",{enumerable:true,get:function(){return chunk3WO4MWJM_cjs.d}});Object.defineProperty(exports,"createAgentNetwork",{enumerable:true,get:function(){return chunkFABDFT74_cjs.c}});Object.defineProperty(exports,"createDelegator",{enumerable:true,get:function(){return chunkFABDFT74_cjs.e}});Object.defineProperty(exports,"createMessageBus",{enumerable:true,get:function(){return chunkFABDFT74_cjs.b}});Object.defineProperty(exports,"createPubSub",{enumerable:true,get:function(){return chunkFABDFT74_cjs.f}});Object.defineProperty(exports,"createResponder",{enumerable:true,get:function(){return chunkFABDFT74_cjs.d}});Object.defineProperty(exports,"explainGoal",{enumerable:true,get:function(){return chunkFABDFT74_cjs.j}});Object.defineProperty(exports,"getDependencyGraph",{enumerable:true,get:function(){return chunkFABDFT74_cjs.g}});Object.defineProperty(exports,"patternToMermaid",{enumerable:true,get:function(){return chunkFABDFT74_cjs.a}});Object.defineProperty(exports,"planGoal",{enumerable:true,get:function(){return chunkFABDFT74_cjs.i}});Object.defineProperty(exports,"validateGoal",{enumerable:true,get:function(){return chunkFABDFT74_cjs.h}});Object.defineProperty(exports,"InMemoryCheckpointStore",{enumerable:true,get:function(){return chunkA22KLB23_cjs.y}});Object.defineProperty(exports,"MAX_BREAKPOINT_HISTORY",{enumerable:true,get:function(){return chunkA22KLB23_cjs.s}});Object.defineProperty(exports,"ReflectionExhaustedError",{enumerable:true,get:function(){return chunkA22KLB23_cjs.K}});Object.defineProperty(exports,"Semaphore",{enumerable:true,get:function(){return chunkA22KLB23_cjs.N}});Object.defineProperty(exports,"adaptOutputGuardrail",{enumerable:true,get:function(){return chunkA22KLB23_cjs.E}});Object.defineProperty(exports,"aggregateTokens",{enumerable:true,get:function(){return chunkA22KLB23_cjs.ia}});Object.defineProperty(exports,"allReadyStrategy",{enumerable:true,get:function(){return chunkA22KLB23_cjs._}});Object.defineProperty(exports,"capabilityRoute",{enumerable:true,get:function(){return chunkA22KLB23_cjs.la}});Object.defineProperty(exports,"collectOutputs",{enumerable:true,get:function(){return chunkA22KLB23_cjs.ha}});Object.defineProperty(exports,"collectTokens",{enumerable:true,get:function(){return chunkA22KLB23_cjs.F}});Object.defineProperty(exports,"combineStreamingGuardrails",{enumerable:true,get:function(){return chunkA22KLB23_cjs.D}});Object.defineProperty(exports,"composePatterns",{enumerable:true,get:function(){return chunkA22KLB23_cjs.ja}});Object.defineProperty(exports,"concatResults",{enumerable:true,get:function(){return chunkA22KLB23_cjs.fa}});Object.defineProperty(exports,"costEfficientStrategy",{enumerable:true,get:function(){return chunkA22KLB23_cjs.aa}});Object.defineProperty(exports,"createBreakpointId",{enumerable:true,get:function(){return chunkA22KLB23_cjs.t}});Object.defineProperty(exports,"createCheckpointId",{enumerable:true,get:function(){return chunkA22KLB23_cjs.w}});Object.defineProperty(exports,"createInitialBreakpointState",{enumerable:true,get:function(){return chunkA22KLB23_cjs.v}});Object.defineProperty(exports,"createLengthStreamingGuardrail",{enumerable:true,get:function(){return chunkA22KLB23_cjs.B}});Object.defineProperty(exports,"createMultiAgentOrchestrator",{enumerable:true,get:function(){return chunkA22KLB23_cjs.ra}});Object.defineProperty(exports,"createPatternStreamingGuardrail",{enumerable:true,get:function(){return chunkA22KLB23_cjs.C}});Object.defineProperty(exports,"createStreamingRunner",{enumerable:true,get:function(){return chunkA22KLB23_cjs.z}});Object.defineProperty(exports,"createToxicityStreamingGuardrail",{enumerable:true,get:function(){return chunkA22KLB23_cjs.A}});Object.defineProperty(exports,"dag",{enumerable:true,get:function(){return chunkA22KLB23_cjs.W}});Object.defineProperty(exports,"debate",{enumerable:true,get:function(){return chunkA22KLB23_cjs.na}});Object.defineProperty(exports,"derivedConstraint",{enumerable:true,get:function(){return chunkA22KLB23_cjs.pa}});Object.defineProperty(exports,"diffCheckpoints",{enumerable:true,get:function(){return chunkA22KLB23_cjs.Q}});Object.defineProperty(exports,"filterStream",{enumerable:true,get:function(){return chunkA22KLB23_cjs.H}});Object.defineProperty(exports,"findAgentsByCapability",{enumerable:true,get:function(){return chunkA22KLB23_cjs.ka}});Object.defineProperty(exports,"forkFromCheckpoint",{enumerable:true,get:function(){return chunkA22KLB23_cjs.R}});Object.defineProperty(exports,"formatSystemMeta",{enumerable:true,get:function(){return chunkA22KLB23_cjs.a}});Object.defineProperty(exports,"getCheckpointProgress",{enumerable:true,get:function(){return chunkA22KLB23_cjs.P}});Object.defineProperty(exports,"getPatternStep",{enumerable:true,get:function(){return chunkA22KLB23_cjs.O}});Object.defineProperty(exports,"goal",{enumerable:true,get:function(){return chunkA22KLB23_cjs.Z}});Object.defineProperty(exports,"highestImpactStrategy",{enumerable:true,get:function(){return chunkA22KLB23_cjs.$}});Object.defineProperty(exports,"mapStream",{enumerable:true,get:function(){return chunkA22KLB23_cjs.I}});Object.defineProperty(exports,"matchBreakpoint",{enumerable:true,get:function(){return chunkA22KLB23_cjs.u}});Object.defineProperty(exports,"mergeTaggedStreams",{enumerable:true,get:function(){return chunkA22KLB23_cjs.J}});Object.defineProperty(exports,"parallel",{enumerable:true,get:function(){return chunkA22KLB23_cjs.T}});Object.defineProperty(exports,"patternFromJSON",{enumerable:true,get:function(){return chunkA22KLB23_cjs.ca}});Object.defineProperty(exports,"patternToJSON",{enumerable:true,get:function(){return chunkA22KLB23_cjs.ba}});Object.defineProperty(exports,"pickBestResult",{enumerable:true,get:function(){return chunkA22KLB23_cjs.ga}});Object.defineProperty(exports,"race",{enumerable:true,get:function(){return chunkA22KLB23_cjs.Y}});Object.defineProperty(exports,"reflect",{enumerable:true,get:function(){return chunkA22KLB23_cjs.X}});Object.defineProperty(exports,"runAgentRequirement",{enumerable:true,get:function(){return chunkA22KLB23_cjs.ea}});Object.defineProperty(exports,"runDebate",{enumerable:true,get:function(){return chunkA22KLB23_cjs.oa}});Object.defineProperty(exports,"selectAgent",{enumerable:true,get:function(){return chunkA22KLB23_cjs.da}});Object.defineProperty(exports,"sequential",{enumerable:true,get:function(){return chunkA22KLB23_cjs.U}});Object.defineProperty(exports,"spawnOnCondition",{enumerable:true,get:function(){return chunkA22KLB23_cjs.ma}});Object.defineProperty(exports,"spawnPool",{enumerable:true,get:function(){return chunkA22KLB23_cjs.qa}});Object.defineProperty(exports,"supervisor",{enumerable:true,get:function(){return chunkA22KLB23_cjs.V}});Object.defineProperty(exports,"tapStream",{enumerable:true,get:function(){return chunkA22KLB23_cjs.G}});Object.defineProperty(exports,"toAIContext",{enumerable:true,get:function(){return chunkA22KLB23_cjs.b}});Object.defineProperty(exports,"validateCheckpoint",{enumerable:true,get:function(){return chunkA22KLB23_cjs.x}});Object.defineProperty(exports,"withReflection",{enumerable:true,get:function(){return chunkA22KLB23_cjs.L}});Object.defineProperty(exports,"GuardrailError",{enumerable:true,get:function(){return chunkK64WKZ22_cjs.a}});Object.defineProperty(exports,"isGuardrailError",{enumerable:true,get:function(){return chunkK64WKZ22_cjs.b}});Object.defineProperty(exports,"createDebugTimeline",{enumerable:true,get:function(){return chunkWOFIBIPW_cjs.a}});Object.defineProperty(exports,"createDebugTimelinePlugin",{enumerable:true,get:function(){return chunkWOFIBIPW_cjs.b}});Object.defineProperty(exports,"createHealthMonitor",{enumerable:true,get:function(){return chunkWOFIBIPW_cjs.c}});Object.defineProperty(exports,"PredicateFromIntentError",{enumerable:true,get:function(){return chunkPD772MSE_cjs.a}});Object.defineProperty(exports,"predicateFromIntent",{enumerable:true,get:function(){return chunkPD772MSE_cjs.b}});Object.defineProperty(exports,"predicateFromIntentRaw",{enumerable:true,get:function(){return chunkPD772MSE_cjs.c}});Object.defineProperty(exports,"predicateFromIntentWithProvenance",{enumerable:true,get:function(){return chunkPD772MSE_cjs.g}});Object.defineProperty(exports,"predicateToolSpec",{enumerable:true,get:function(){return chunkPD772MSE_cjs.f}});Object.defineProperty(exports,"predicateToolSpecAnthropic",{enumerable:true,get:function(){return chunkPD772MSE_cjs.e}});Object.defineProperty(exports,"predicateToolSpecOpenAI",{enumerable:true,get:function(){return chunkPD772MSE_cjs.d}});Object.defineProperty(exports,"StructuredOutputError",{enumerable:true,get:function(){return chunkFFRWQNK7_cjs.c}});Object.defineProperty(exports,"extractJsonFromOutput",{enumerable:true,get:function(){return chunkFFRWQNK7_cjs.a}});Object.defineProperty(exports,"withStructuredOutput",{enumerable:true,get:function(){return chunkFFRWQNK7_cjs.b}});Object.defineProperty(exports,"CircuitBreakerOpenError",{enumerable:true,get:function(){return plugins.CircuitBreakerOpenError}});Object.defineProperty(exports,"createCircuitBreaker",{enumerable:true,get:function(){return plugins.createCircuitBreaker}});Object.defineProperty(exports,"createOTLPExporter",{enumerable:true,get:function(){return plugins.createOTLPExporter}});exports.AllProvidersFailedError=F;exports.BudgetExceededError=G;exports.OtelStatusCode=I;exports.RetryExhaustedError=N;exports.byAgentName=Pn;exports.byInputLength=In;exports.byPattern=Dn;exports.createAgentAuditHandlers=on;exports.createAgentMemory=Vr;exports.createAuditTrail=nn;exports.createBatchQueue=Bn;exports.createBidirectionalStream=pn;exports.createCompliance=dn;exports.createConstraintRouter=Gn;exports.createHybridStrategy=Hr;exports.createInMemoryComplianceStorage=ln;exports.createJSONFileStore=bn;exports.createKeyPointsSummarizer=Wr;exports.createLLMSummarizer=Jr;exports.createOtelPlugin=_n;exports.createRAGEnricher=Sn;exports.createSSETransport=Cn;exports.createSlidingWindowStrategy=X;exports.createStreamChannel=K;exports.createTokenBasedStrategy=Y;exports.createTruncationSummarizer=Kr;exports.mergeStreams=mn;exports.parseHttpStatus=W;exports.parseRetryAfter=oe;exports.pipe=Ur;exports.pipeThrough=gn;exports.withBudget=Mn;exports.withFallback=kn;exports.withModelSelection=On;exports.withRetry=wn;//# sourceMappingURL=index.cjs.map
|
|
40
|
+
${t}`),this.name="AllProvidersFailedError",this.errors=Object.freeze([...e]),e.length>0&&(this.cause=e[e.length-1]);}};function kn(r,e={}){if(r.length===0)throw new Error("[Directive] withFallback requires at least one runner.");let{shouldFallback:t,onFallback:n}=e;return async(s,c,a)=>{let u=[];for(let o=0;o<r.length;o++)try{return await r[o](s,c,a)}catch(m){let d=m instanceof Error?m:new Error(String(m));if(u.push(d),o<r.length-1){if(t)try{if(!t(d))break}catch{break}try{n?.(o,o+1,d);}catch{}}}throw new F(u)}}var G=class extends Error{estimated;remaining;window;constructor(e){super(`[Directive] Budget exceeded (${e.window}): estimated $${e.estimated.toFixed(4)}, remaining $${e.remaining.toFixed(4)}`),this.name="BudgetExceededError",this.estimated=e.estimated,this.remaining=e.remaining,this.window=e.window;}},$=class{entries=[];record(e){this.entries.push({timestamp:Date.now(),cost:e});}getCostInWindow(e){let t=Date.now()-e;this.prune(t);let n=0;for(let s of this.entries)s.timestamp>=t&&(n+=s.cost);return n}prune(e){let t=0;for(;t<this.entries.length&&this.entries[t].timestamp<e;)t++;t>0&&this.entries.splice(0,t);}clear(){this.entries=[];}},ae={hour:3600*1e3,day:1440*60*1e3};function xn(r,e){return Math.ceil(r.length/e)}function se(r,e){return r.inputTokens/1e6*e.inputPerMillion+r.outputTokens/1e6*e.outputPerMillion}function ie(r,e,t=1){let n=Math.ceil(r*t);return r/1e6*e.inputPerMillion+n/1e6*e.outputPerMillion}function Mn(r,e){let{maxCostPerCall:t,budgets:n=[],pricing:s,charsPerToken:c=4,estimatedOutputMultiplier:a=1,onBudgetExceeded:u}=e;if(!Number.isFinite(c)||c<=0)throw new Error("[Directive] withBudget: charsPerToken must be a positive finite number.");if(t!=null&&(!Number.isFinite(t)||t<0))throw new Error("[Directive] withBudget: maxCostPerCall must be a non-negative finite number.");if(!Number.isFinite(a)||a<0)throw new Error("[Directive] withBudget: estimatedOutputMultiplier must be a non-negative finite number.");t!=null&&!s&&console.warn("[Directive] withBudget: maxCostPerCall has no effect without pricing. Provide a pricing config to enable per-call cost estimation.");for(let y of n)if(!Number.isFinite(y.maxCost)||y.maxCost<0)throw new Error(`[Directive] withBudget: budgets[${y.window}].maxCost must be a non-negative finite number.`);let o=new Map;for(let y of n)o.set(y.window,new $);let m=new $,d=async(y,p,f)=>{let C=xn(p,c);if(t!=null&&s){let v=ie(C,s,a);if(v>t){let l={estimated:v,remaining:t,window:"per-call"};try{u?.(l);}catch{}throw new G(l)}}for(let v of n){let l=ae[v.window],S=o.get(v.window).getCostInWindow(l),A=v.maxCost-S,x=ie(C,v.pricing,a);if(x>A){let w={estimated:x,remaining:Math.max(0,A),window:v.window};try{u?.(w);}catch{}throw new G(w)}}let E=await r(y,p,f);if(E.tokenUsage){for(let v of n){let l=o.get(v.window),g=se(E.tokenUsage,v.pricing);l.record(g);}if(s&&n.length===0){let v=se(E.tokenUsage,s);m.record(v);}}return E};function b(y){let p=o.get(y);if(!p)return 0;let f=ae[y];return p.getCostInWindow(f)}return d.getSpent=b,d}function In(r,e){return {match:(t,n)=>n.length<=r,model:e}}function Pn(r,e){return {match:t=>t.name===r,model:e}}function Dn(r,e){return {match:(t,n)=>(r.lastIndex=0,r.test(n)),model:e}}function On(r,e){let t=Array.isArray(e)?{rules:e}:e,{rules:n,onModelSelected:s}=t;return async(c,a,u)=>{let o=c.model;for(let d of n)try{if(d.match(c,a)){o=d.model;break}}catch{}try{s?.(c.model,o);}catch{}let m=o!==c.model?{...c,model:o}:c;return r(m,a,u)}}function Bn(r,e={}){let{maxBatchSize:t=20,maxWaitMs:n=5e3,concurrency:s=5}=e;if(!Number.isFinite(t)||t<1)throw new Error("[Directive] createBatchQueue: maxBatchSize must be a positive finite number (>= 1).");if(!Number.isFinite(n)||n<0)throw new Error("[Directive] createBatchQueue: maxWaitMs must be a non-negative finite number.");if(!Number.isFinite(s)||s<1)throw new Error("[Directive] createBatchQueue: concurrency must be a positive finite number (>= 1).");let c=[],a=null,u=false,o=null;function m(){a===null&&(a=setTimeout(()=>{a=null,y().catch(()=>{});},n));}function d(){a!==null&&(clearTimeout(a),a=null);}async function b(p){let f=0;async function C(){for(;f<p.length;){let v=f++,l=p[v];try{let g=await r(l.agent,l.input,l.options);l.resolve(g);}catch(g){l.reject(g instanceof Error?g:new Error(String(g)));}}}let E=Array.from({length:Math.min(s,p.length)},()=>C());await Promise.all(E);}async function y(){if(o&&await o,c.length===0)return;d();let p=c.splice(0);o=b(p).finally(()=>{o=null,c.length>0&&m();}),await o;}return {submit(p,f,C){return u?Promise.reject(new Error("[Directive] BatchQueue has been destroyed.")):new Promise((E,v)=>{c.push({agent:p,input:f,options:C,resolve:E,reject:v}),c.length>=t?(d(),y().catch(()=>{})):m();})},async flush(){await y();},get pending(){return c.length},async destroy(){u||(u=true,d(),c.length>0&&await y());}}}function ce(){return {callCount:0,errorCount:0,totalCost:0,avgLatencyMs:0,lastErrorAt:null}}function jn(r,e){return !r||!e?0:r.inputTokens/1e6*e.inputPerMillion+r.outputTokens/1e6*e.outputPerMillion}function Gn(r){let{providers:e,defaultProvider:t,constraints:n=[],onProviderSelected:s,errorCooldownMs:c=3e4,preferCheapest:a=false}=r;if(!Number.isFinite(c)||c<0)throw new Error("[Directive] createConstraintRouter: errorCooldownMs must be a non-negative finite number.");let u=new Map;for(let f of e)u.set(f.name,f);if(!u.has(t))throw new Error(`[Directive] Default provider "${t}" not found in providers list.`);let o={totalCost:0,callCount:0,errorCount:0,lastProvider:null,avgLatencyMs:0,providers:Object.create(null)};for(let f of e)o.providers[f.name]=ce();let m=0,d=[...n].sort((f,C)=>(C.priority??0)-(f.priority??0));function b(){let f=Date.now();for(let E of d)try{if(E.when(o)){let v=u.get(E.provider);if(v)return {provider:v,reason:"constraint"}}}catch{}let C=e.filter(E=>{let v=o.providers[E.name];return v?!(v.lastErrorAt&&f-v.lastErrorAt<c):true});if(a&&C.length>0){let E=[...C].sort((v,l)=>{let g=v.pricing?v.pricing.inputPerMillion+v.pricing.outputPerMillion:Number.POSITIVE_INFINITY,S=l.pricing?l.pricing.inputPerMillion+l.pricing.outputPerMillion:Number.POSITIVE_INFINITY;return g!==S?g-S:v.name===t?-1:l.name===t?1:0});if(E[0]!==u.get(t))return {provider:E[0],reason:"cheapest"}}return C.length>0&&!C.some(E=>E.name===t)?{provider:C[0],reason:"default"}:{provider:u.get(t),reason:"default"}}function y(f,C,E,v,l){let g=o.providers[f]??ce();if(g.callCount++,o.callCount++,l)g.errorCount++,o.errorCount++,g.lastErrorAt=Date.now();else {let A=jn(E,v);g.totalCost+=A,o.totalCost+=A;}m+=C,o.avgLatencyMs=m/o.callCount;let S=g.callCount>0?(g.avgLatencyMs*(g.callCount-1)+C)/g.callCount:C;g.avgLatencyMs=S,o.providers[f]=g,o.lastProvider=f;}let p=async(f,C,E)=>{let{provider:v,reason:l}=b();try{s?.(v.name,l);}catch{}let g=Date.now();try{let S=await v.runner(f,C,E),A=Date.now()-g;return y(v.name,A,S.tokenUsage,v.pricing),S}catch(S){let A=Date.now()-g,x=S instanceof Error?S:new Error(String(S));throw y(v.name,A,void 0,v.pricing,x),x}};return Object.defineProperty(p,"facts",{get:()=>{let f=Object.create(null);for(let C of Object.keys(o.providers))f[C]={...o.providers[C]};return {...o,providers:f}},enumerable:true}),p}var I={UNSET:0,OK:1,ERROR:2},L=class{constructor(e,t,n,s,c,a){this.name=e;this.spanId=t;this.traceId=n;this.parentSpanId=s;this.onEnd=a;if(this.startTime=Date.now(),c)for(let[u,o]of Object.entries(c))this.attributes[u]=o;}attributes=Object.create(null);spanEvents=[];status={code:I.UNSET};startTime;endTime=0;setAttribute(e,t){this.attributes[e]=t;}addEvent(e,t){this.spanEvents.push({name:e,attributes:t,timestamp:Date.now()});}setStatus(e){this.status=e;}end(){this.endTime=Date.now(),this.onEnd?.(this);}toSpanData(){return {name:this.name,traceId:this.traceId,spanId:this.spanId,parentSpanId:this.parentSpanId,attributes:{...this.attributes},events:[...this.spanEvents],status:{...this.status},startTime:this.startTime,endTime:this.endTime,durationMs:this.endTime-this.startTime}}},J=class{spans=[];startSpan(e,t){let n=t?.spanId??`fallback-${crypto.randomUUID()}`,s=t?.traceId??`fallback-${crypto.randomUUID()}`,c=t?.parentSpanId;return new L(e,n,s,c,t?.attributes,a=>{this.spans.push(a.toSpanData());})}clear(){this.spans.length=0;}};function _n(r){let e=r.spanPrefix??"directive.ai",t=r.instrumentEvents,n=r.spanTtlMs??3e5,s=!r.tracer,c=s?new J:null,a=r.tracer??c,u=0;function o(){return `${Date.now().toString(36)}-${(u++).toString(36)}`}function m(){return `${Date.now().toString(36)}-${crypto.randomUUID().slice(0,8)}`}let d=new Map,b=0,y=new Map,p=[],f=null,C=false;function E(i){return t?t.has(i):true}function v(i,h){return `${i}:${h}:${b++}`}function l(i,h){let R=`${i}:${h}`,T=y.get(R);if(T){for(let k=T.length-1;k>=0;k--){let O=d.get(T[k]);if(O)return {key:T[k],entry:O}}y.delete(R);}return null}function g(i,h,R,T){let k=`${i}:${h}`;T.indexKey=k,d.set(R,T);let O=y.get(k);O?O.push(R):y.set(k,[R]);}function S(i){let h=d.get(i);d.delete(i);let R=h?.indexKey;if(R){let T=y.get(R);if(T){let k=T.indexOf(i);k!==-1&&T.splice(k,1),T.length===0&&y.delete(R);}}}function A(){let i=Date.now();if(d.size<1e4){for(let[R,T]of d)i-T.startTime>n&&(M(T,"directive.stale",true),D(T,{code:I.ERROR,message:"Span TTL exceeded \u2014 cleaned up"}),w(T),S(R),true);return void 0}for(let[h,R]of d)i-R.startTime>n&&(M(R,"directive.stale",true),D(R,{code:I.ERROR,message:"Span TTL exceeded \u2014 cleaned up"}),w(R),S(h));}function x(i,h,R){let T=o(),k=R?.traceId??m(),O=R?.spanId,B;s?B=a.startSpan(i,{attributes:h,spanId:T,traceId:k,parentSpanId:O}):B=a.startSpan(i,{attributes:h});let z={span:B,spanId:T,traceId:k,startTime:Date.now()};return s||(z.shadow={span:B,name:i,spanId:T,traceId:k,parentSpanId:O,attributes:{...h},events:[],status:{code:I.UNSET},startTime:z.startTime}),{span:B,entry:z}}function w(i){i.span.end(),r.onSpanEnd&&r.onSpanEnd(P(i));}function P(i){if(i.span instanceof L)return i.span.toSpanData();if(i.shadow){let R=Date.now();return {name:i.shadow.name,traceId:i.shadow.traceId,spanId:i.shadow.spanId,parentSpanId:i.shadow.parentSpanId,attributes:{...i.shadow.attributes},events:[...i.shadow.events],status:{...i.shadow.status},startTime:i.shadow.startTime,endTime:R,durationMs:R-i.shadow.startTime}}let h=Date.now();return {name:"unknown",traceId:i.traceId,spanId:i.spanId,attributes:{},events:[],status:{code:I.UNSET},startTime:i.startTime,endTime:h,durationMs:h-i.startTime}}function M(i,h,R){i.span.setAttribute(h,R),i.shadow&&(i.shadow.attributes[h]=R);}function q(i,h,R){i.span.addEvent(h,R),i.shadow&&i.shadow.events.push({name:h,attributes:R,timestamp:Date.now()});}function D(i,h){i.span.setStatus(h),i.shadow&&(i.shadow.status={...h});}function ue(i){if(E(i.type))switch(A(),i.type){case "agent_start":le(i);break;case "agent_complete":de(i);break;case "agent_error":pe(i);break;case "guardrail_check":ge(i);break;case "constraint_evaluate":me(i);break;case "resolver_start":fe(i);break;case "resolver_complete":ye(i);break;case "resolver_error":he(i);break;case "pattern_start":Se(i);break;case "pattern_complete":ve(i);break;default:if(i.agentId){let h=l("agent",i.agentId);h&&q(h.entry,i.type,{"event.id":i.id,"event.timestamp":i.timestamp});}}}function le(i){let h=p.length>0?p[p.length-1]:null,{entry:R}=x(`${e}.agent.run`,{"directive.service":r.serviceName,"directive.agent.name":i.agentId,"directive.agent.input_length":i.inputLength,"gen_ai.operation.name":"agent.run","gen_ai.agent.name":i.agentId},h),T=v("agent",i.agentId);g("agent",i.agentId,T,R);}function de(i){let h=l("agent",i.agentId);h&&(M(h.entry,"directive.agent.output_length",i.outputLength),M(h.entry,"directive.agent.total_tokens",i.totalTokens),M(h.entry,"directive.agent.duration_ms",i.durationMs),M(h.entry,"gen_ai.usage.total_tokens",i.totalTokens),D(h.entry,{code:I.OK}),w(h.entry),S(h.key));}function pe(i){let h=l("agent",i.agentId);h&&(M(h.entry,"directive.agent.duration_ms",i.durationMs),M(h.entry,"directive.agent.error",i.errorMessage),M(h.entry,"gen_ai.error.message",i.errorMessage),D(h.entry,{code:I.ERROR,message:i.errorMessage}),w(h.entry),S(h.key));}function ge(i){let h=i.agentId?l("agent",i.agentId)?.entry??null:null,{entry:R}=x(`${e}.guardrail.check`,{"directive.service":r.serviceName,"directive.guardrail.name":i.guardrailName,"directive.guardrail.type":i.guardrailType,"directive.guardrail.passed":i.passed,"directive.guardrail.duration_ms":i.durationMs,"gen_ai.guardrail.name":i.guardrailName,"gen_ai.guardrail.type":i.guardrailType,"gen_ai.guardrail.passed":i.passed},h);i.reason&&M(R,"directive.guardrail.reason",i.reason),D(R,{code:i.passed?I.OK:I.ERROR,message:i.passed?void 0:i.reason}),w(R);}function me(i){if(i.agentId){let R=l("agent",i.agentId);if(R){q(R.entry,"constraint_evaluate",{"directive.constraint.id":i.constraintId,"directive.constraint.fired":i.fired});return}}let{entry:h}=x(`${e}.constraint.evaluate`,{"directive.service":r.serviceName,"directive.constraint.id":i.constraintId,"directive.constraint.fired":i.fired},null);D(h,{code:I.OK}),w(h);}function fe(i){let R=(i.agentId?l("agent",i.agentId)?.entry??null:null)??(p.length>0?p[p.length-1]:null),{entry:T}=x(`${e}.resolver.execute`,{"directive.service":r.serviceName,"directive.resolver.id":i.resolverId,"directive.resolver.requirement_type":i.requirementType},R),k=v("resolver",i.resolverId);g("resolver",i.resolverId,k,T);}function ye(i){let h=l("resolver",i.resolverId);h&&(M(h.entry,"directive.resolver.duration_ms",i.durationMs),D(h.entry,{code:I.OK}),w(h.entry),S(h.key));}function he(i){let h=l("resolver",i.resolverId);h&&(M(h.entry,"directive.resolver.duration_ms",i.durationMs),M(h.entry,"directive.resolver.error",i.errorMessage),D(h.entry,{code:I.ERROR,message:i.errorMessage}),w(h.entry),S(h.key));}function Se(i){let h=p.length>0?p[p.length-1]:null,{entry:R}=x(`${e}.pattern.${i.patternType}`,{"directive.service":r.serviceName,"directive.pattern.id":i.patternId,"directive.pattern.type":i.patternType},h),T=v("pattern",i.patternId);g("pattern",i.patternId,T,R),p.length<100&&p.push(R);}function ve(i){let h=l("pattern",i.patternId);if(h){M(h.entry,"directive.pattern.duration_ms",i.durationMs),i.error?(M(h.entry,"directive.pattern.error",i.error),D(h.entry,{code:I.ERROR,message:i.error})):D(h.entry,{code:I.OK}),w(h.entry),S(h.key);let R=p.indexOf(h.entry);R!==-1&&p.splice(R,1);}}return {attach(i){if(f&&f!==i)throw new Error("[Directive OTEL] Plugin already attached to a different timeline. Create a new plugin instance.");f=i;let h=i.subscribe(ue),R=setInterval(A,Math.min(n,6e4));return ()=>{h(),clearInterval(R),f=null;for(let[T,k]of d)M(k,"directive.detached",true),D(k,{code:I.ERROR,message:"Plugin detached while span was active"}),w(k);d.clear(),y.clear(),p.length=0;}},getSpans(){return c?[...c.spans]:(C||(C=true,typeof process<"u"&&process.env?.NODE_ENV!=="production"&&console.warn("[Directive OTEL] getSpans() returns [] when using an external tracer. Use the onSpanEnd callback to collect span data instead.")),[])},clearSpans(){c?.clear();},getTracer(){return a},getActiveSpanCount(){return d.size}}}Object.defineProperty(exports,"DEFAULT_INJECTION_PATTERNS",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.n}});Object.defineProperty(exports,"STRICT_INJECTION_PATTERNS",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.o}});Object.defineProperty(exports,"createBatchedEmbedder",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.z}});Object.defineProperty(exports,"createBruteForceIndex",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.A}});Object.defineProperty(exports,"createContentFilterGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.h}});Object.defineProperty(exports,"createEnhancedPIIGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.j}});Object.defineProperty(exports,"createInMemoryStorage",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.v}});Object.defineProperty(exports,"createLengthGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.g}});Object.defineProperty(exports,"createModerationGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.b}});Object.defineProperty(exports,"createOutputPIIGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.k}});Object.defineProperty(exports,"createOutputSchemaGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.e}});Object.defineProperty(exports,"createOutputTypeGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.f}});Object.defineProperty(exports,"createPIIGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.a}});Object.defineProperty(exports,"createPromptInjectionGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.r}});Object.defineProperty(exports,"createRateLimitGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.c}});Object.defineProperty(exports,"createSemanticCache",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.w}});Object.defineProperty(exports,"createSemanticCacheGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.x}});Object.defineProperty(exports,"createTestEmbedder",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.y}});Object.defineProperty(exports,"createToolGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.d}});Object.defineProperty(exports,"createUntrustedContentGuardrail",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.t}});Object.defineProperty(exports,"createVPTreeIndex",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.B}});Object.defineProperty(exports,"detectAndRedactPII",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.m}});Object.defineProperty(exports,"detectPII",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.l}});Object.defineProperty(exports,"detectPromptInjection",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.p}});Object.defineProperty(exports,"markUntrustedContent",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.s}});Object.defineProperty(exports,"redactPII",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.i}});Object.defineProperty(exports,"sanitizeInjection",{enumerable:true,get:function(){return chunkCAA6Q4YY_cjs.q}});Object.defineProperty(exports,"connectDevTools",{enumerable:true,get:function(){return chunkIR3IHBVQ_cjs.b}});Object.defineProperty(exports,"createDevToolsServer",{enumerable:true,get:function(){return chunkIR3IHBVQ_cjs.a}});Object.defineProperty(exports,"createWsTransport",{enumerable:true,get:function(){return chunkIR3IHBVQ_cjs.c}});Object.defineProperty(exports,"createEvalSuite",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.k}});Object.defineProperty(exports,"evalAssert",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.l}});Object.defineProperty(exports,"evalCoherence",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.j}});Object.defineProperty(exports,"evalCost",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.a}});Object.defineProperty(exports,"evalFaithfulness",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.h}});Object.defineProperty(exports,"evalJudge",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.f}});Object.defineProperty(exports,"evalLatency",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.b}});Object.defineProperty(exports,"evalMatch",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.g}});Object.defineProperty(exports,"evalOutputLength",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.c}});Object.defineProperty(exports,"evalRelevance",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.i}});Object.defineProperty(exports,"evalSafety",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.d}});Object.defineProperty(exports,"evalStructure",{enumerable:true,get:function(){return chunkXN5LUOVS_cjs.e}});Object.defineProperty(exports,"convertToolsForLLM",{enumerable:true,get:function(){return chunkC6MQ4WL6_cjs.b}});Object.defineProperty(exports,"createMCPAdapter",{enumerable:true,get:function(){return chunkC6MQ4WL6_cjs.a}});Object.defineProperty(exports,"mcpCallTool",{enumerable:true,get:function(){return chunkC6MQ4WL6_cjs.c}});Object.defineProperty(exports,"mcpGetPrompt",{enumerable:true,get:function(){return chunkC6MQ4WL6_cjs.e}});Object.defineProperty(exports,"mcpReadResource",{enumerable:true,get:function(){return chunkC6MQ4WL6_cjs.d}});Object.defineProperty(exports,"mcpSyncResources",{enumerable:true,get:function(){return chunkC6MQ4WL6_cjs.f}});Object.defineProperty(exports,"createAgentOrchestrator",{enumerable:true,get:function(){return chunkD5APTMCT_cjs.a}});Object.defineProperty(exports,"createRunner",{enumerable:true,get:function(){return chunk3WO4MWJM_cjs.f}});Object.defineProperty(exports,"estimateCost",{enumerable:true,get:function(){return chunk3WO4MWJM_cjs.c}});Object.defineProperty(exports,"hasPendingApprovals",{enumerable:true,get:function(){return chunk3WO4MWJM_cjs.b}});Object.defineProperty(exports,"isAgentRunning",{enumerable:true,get:function(){return chunk3WO4MWJM_cjs.a}});Object.defineProperty(exports,"validateBaseURL",{enumerable:true,get:function(){return chunk3WO4MWJM_cjs.d}});Object.defineProperty(exports,"createAgentNetwork",{enumerable:true,get:function(){return chunkPB276BX2_cjs.c}});Object.defineProperty(exports,"createDelegator",{enumerable:true,get:function(){return chunkPB276BX2_cjs.e}});Object.defineProperty(exports,"createMessageBus",{enumerable:true,get:function(){return chunkPB276BX2_cjs.b}});Object.defineProperty(exports,"createPubSub",{enumerable:true,get:function(){return chunkPB276BX2_cjs.f}});Object.defineProperty(exports,"createResponder",{enumerable:true,get:function(){return chunkPB276BX2_cjs.d}});Object.defineProperty(exports,"explainGoal",{enumerable:true,get:function(){return chunkPB276BX2_cjs.j}});Object.defineProperty(exports,"getDependencyGraph",{enumerable:true,get:function(){return chunkPB276BX2_cjs.g}});Object.defineProperty(exports,"patternToMermaid",{enumerable:true,get:function(){return chunkPB276BX2_cjs.a}});Object.defineProperty(exports,"planGoal",{enumerable:true,get:function(){return chunkPB276BX2_cjs.i}});Object.defineProperty(exports,"validateGoal",{enumerable:true,get:function(){return chunkPB276BX2_cjs.h}});Object.defineProperty(exports,"InMemoryCheckpointStore",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.y}});Object.defineProperty(exports,"MAX_BREAKPOINT_HISTORY",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.s}});Object.defineProperty(exports,"ReflectionExhaustedError",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.K}});Object.defineProperty(exports,"Semaphore",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.N}});Object.defineProperty(exports,"adaptOutputGuardrail",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.E}});Object.defineProperty(exports,"aggregateTokens",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.ia}});Object.defineProperty(exports,"allReadyStrategy",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs._}});Object.defineProperty(exports,"capabilityRoute",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.la}});Object.defineProperty(exports,"collectOutputs",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.ha}});Object.defineProperty(exports,"collectTokens",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.F}});Object.defineProperty(exports,"combineStreamingGuardrails",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.D}});Object.defineProperty(exports,"composePatterns",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.ja}});Object.defineProperty(exports,"concatResults",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.fa}});Object.defineProperty(exports,"costEfficientStrategy",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.aa}});Object.defineProperty(exports,"createBreakpointId",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.t}});Object.defineProperty(exports,"createCheckpointId",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.w}});Object.defineProperty(exports,"createInitialBreakpointState",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.v}});Object.defineProperty(exports,"createLengthStreamingGuardrail",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.B}});Object.defineProperty(exports,"createMultiAgentOrchestrator",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.ra}});Object.defineProperty(exports,"createPatternStreamingGuardrail",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.C}});Object.defineProperty(exports,"createStreamingRunner",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.z}});Object.defineProperty(exports,"createToxicityStreamingGuardrail",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.A}});Object.defineProperty(exports,"dag",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.W}});Object.defineProperty(exports,"debate",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.na}});Object.defineProperty(exports,"derivedConstraint",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.pa}});Object.defineProperty(exports,"diffCheckpoints",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.Q}});Object.defineProperty(exports,"filterStream",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.H}});Object.defineProperty(exports,"findAgentsByCapability",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.ka}});Object.defineProperty(exports,"forkFromCheckpoint",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.R}});Object.defineProperty(exports,"formatSystemMeta",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.a}});Object.defineProperty(exports,"getCheckpointProgress",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.P}});Object.defineProperty(exports,"getPatternStep",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.O}});Object.defineProperty(exports,"goal",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.Z}});Object.defineProperty(exports,"highestImpactStrategy",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.$}});Object.defineProperty(exports,"mapStream",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.I}});Object.defineProperty(exports,"matchBreakpoint",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.u}});Object.defineProperty(exports,"mergeTaggedStreams",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.J}});Object.defineProperty(exports,"parallel",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.T}});Object.defineProperty(exports,"patternFromJSON",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.ca}});Object.defineProperty(exports,"patternToJSON",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.ba}});Object.defineProperty(exports,"pickBestResult",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.ga}});Object.defineProperty(exports,"race",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.Y}});Object.defineProperty(exports,"reflect",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.X}});Object.defineProperty(exports,"runAgentRequirement",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.ea}});Object.defineProperty(exports,"runDebate",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.oa}});Object.defineProperty(exports,"selectAgent",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.da}});Object.defineProperty(exports,"sequential",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.U}});Object.defineProperty(exports,"spawnOnCondition",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.ma}});Object.defineProperty(exports,"spawnPool",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.qa}});Object.defineProperty(exports,"supervisor",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.V}});Object.defineProperty(exports,"tapStream",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.G}});Object.defineProperty(exports,"toAIContext",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.b}});Object.defineProperty(exports,"validateCheckpoint",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.x}});Object.defineProperty(exports,"withReflection",{enumerable:true,get:function(){return chunk7DPTXZZI_cjs.L}});Object.defineProperty(exports,"GuardrailError",{enumerable:true,get:function(){return chunkK64WKZ22_cjs.a}});Object.defineProperty(exports,"isGuardrailError",{enumerable:true,get:function(){return chunkK64WKZ22_cjs.b}});Object.defineProperty(exports,"createDebugTimeline",{enumerable:true,get:function(){return chunkWOFIBIPW_cjs.a}});Object.defineProperty(exports,"createDebugTimelinePlugin",{enumerable:true,get:function(){return chunkWOFIBIPW_cjs.b}});Object.defineProperty(exports,"createHealthMonitor",{enumerable:true,get:function(){return chunkWOFIBIPW_cjs.c}});Object.defineProperty(exports,"PredicateFromIntentError",{enumerable:true,get:function(){return chunkMDXDPECP_cjs.a}});Object.defineProperty(exports,"predicateFromIntent",{enumerable:true,get:function(){return chunkMDXDPECP_cjs.b}});Object.defineProperty(exports,"predicateFromIntentRaw",{enumerable:true,get:function(){return chunkMDXDPECP_cjs.c}});Object.defineProperty(exports,"predicateFromIntentWithProvenance",{enumerable:true,get:function(){return chunkMDXDPECP_cjs.g}});Object.defineProperty(exports,"predicateToolSpec",{enumerable:true,get:function(){return chunkMDXDPECP_cjs.f}});Object.defineProperty(exports,"predicateToolSpecAnthropic",{enumerable:true,get:function(){return chunkMDXDPECP_cjs.e}});Object.defineProperty(exports,"predicateToolSpecOpenAI",{enumerable:true,get:function(){return chunkMDXDPECP_cjs.d}});Object.defineProperty(exports,"StructuredOutputError",{enumerable:true,get:function(){return chunkWCQK3JOR_cjs.c}});Object.defineProperty(exports,"extractJsonFromOutput",{enumerable:true,get:function(){return chunkWCQK3JOR_cjs.a}});Object.defineProperty(exports,"withStructuredOutput",{enumerable:true,get:function(){return chunkWCQK3JOR_cjs.b}});Object.defineProperty(exports,"CircuitBreakerOpenError",{enumerable:true,get:function(){return plugins.CircuitBreakerOpenError}});Object.defineProperty(exports,"createCircuitBreaker",{enumerable:true,get:function(){return plugins.createCircuitBreaker}});Object.defineProperty(exports,"createOTLPExporter",{enumerable:true,get:function(){return plugins.createOTLPExporter}});exports.AllProvidersFailedError=F;exports.BudgetExceededError=G;exports.OtelStatusCode=I;exports.RetryExhaustedError=N;exports.byAgentName=Pn;exports.byInputLength=In;exports.byPattern=Dn;exports.createAgentAuditHandlers=on;exports.createAgentMemory=Vr;exports.createAuditTrail=nn;exports.createBatchQueue=Bn;exports.createBidirectionalStream=pn;exports.createCompliance=dn;exports.createConstraintRouter=Gn;exports.createHybridStrategy=Hr;exports.createInMemoryComplianceStorage=ln;exports.createJSONFileStore=bn;exports.createKeyPointsSummarizer=Wr;exports.createLLMSummarizer=Jr;exports.createOtelPlugin=_n;exports.createRAGEnricher=Sn;exports.createSSETransport=Cn;exports.createSlidingWindowStrategy=X;exports.createStreamChannel=K;exports.createTokenBasedStrategy=Y;exports.createTruncationSummarizer=Kr;exports.mergeStreams=mn;exports.parseHttpStatus=W;exports.parseRetryAfter=oe;exports.pipe=Ur;exports.pipeThrough=gn;exports.withBudget=Mn;exports.withFallback=kn;exports.withModelSelection=On;exports.withRetry=wn;//# sourceMappingURL=index.cjs.map
|
|
41
41
|
//# sourceMappingURL=index.cjs.map
|