@kodax-ai/kodax 0.7.97-beta.2 → 0.7.97-beta.3
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/CHANGELOG.md +96 -0
- package/README.md +55 -2
- package/README_CN.md +37 -1
- package/dist/artifacts/dist/contract.js +1 -1
- package/dist/artifacts/dist/contract.js.map +1 -1
- package/dist/artifacts/dist/document-render.d.ts +1 -1
- package/dist/artifacts/dist/document-render.js +41 -10
- package/dist/artifacts/dist/document-render.js.map +1 -1
- package/dist/artifacts/dist/kodax.js +1 -1
- package/dist/artifacts/dist/kodax.js.map +1 -1
- package/dist/artifacts/dist/libreoffice.d.ts +6 -1
- package/dist/artifacts/dist/libreoffice.js +37 -13
- package/dist/artifacts/dist/libreoffice.js.map +1 -1
- package/dist/artifacts/dist/runtime.js +13 -6
- package/dist/artifacts/dist/runtime.js.map +1 -1
- package/dist/artifacts/skills/artifact-review/SKILL.md +5 -1
- package/dist/chunks/agent-NWQPMZ7B.js +2 -0
- package/dist/chunks/agent-adapter-V3IPADCX.js +2 -0
- package/dist/chunks/argument-completer-VNKHT4X4.js +2 -0
- package/dist/chunks/{bedrock-native-Z5VNWF5U.js → bedrock-native-OEPOBW6W.js} +1 -1
- package/dist/chunks/{chunk-NSR4RW2F.js → chunk-3I2MIS4D.js} +1 -1
- package/dist/chunks/{chunk-RYBUYHDL.js → chunk-3Y5PBEOD.js} +1 -1
- package/dist/chunks/chunk-4FVCMKG2.js +20 -0
- package/dist/chunks/{chunk-F6GJXQNA.js → chunk-4GYXZTOD.js} +7 -7
- package/dist/chunks/{chunk-EISRVOBJ.js → chunk-4Z7ZHL6V.js} +2 -2
- package/dist/chunks/{chunk-W2CWO4PQ.js → chunk-576AAIQM.js} +1 -1
- package/dist/chunks/chunk-5E2P4RYS.js +4 -0
- package/dist/chunks/{chunk-X5M7TLJV.js → chunk-5LFQ5FVY.js} +1 -1
- package/dist/chunks/{chunk-WMMESRP3.js → chunk-6RDMSU4B.js} +1 -1
- package/dist/chunks/{chunk-3CP7AUWY.js → chunk-7BA4TSKC.js} +1 -1
- package/dist/chunks/{chunk-I325ER7D.js → chunk-AUU3N4V4.js} +1 -1
- package/dist/chunks/{chunk-DCE7XQUG.js → chunk-AYDLX2UK.js} +1 -1
- package/dist/chunks/{chunk-D36OIMV7.js → chunk-BP3NAYKY.js} +64 -64
- package/dist/chunks/{chunk-6TITQQAI.js → chunk-BSCSKJNC.js} +230 -229
- package/dist/chunks/{chunk-2HH5AS7E.js → chunk-DAQGOWKD.js} +88 -462
- package/dist/chunks/{chunk-UF3GZ5PO.js → chunk-EZF6ZRCO.js} +1 -1
- package/dist/chunks/chunk-F2TFWNVZ.js +2 -0
- package/dist/chunks/{chunk-53CJDQS2.js → chunk-FVXZ5L33.js} +1 -1
- package/dist/chunks/{chunk-MCDZNQWD.js → chunk-G32BMSHH.js} +75 -71
- package/dist/chunks/chunk-HJLYZ5AX.js +361 -0
- package/dist/chunks/{chunk-P55RJIOG.js → chunk-IOIFCU46.js} +1 -1
- package/dist/chunks/{chunk-DV5YPYLW.js → chunk-IR46ZHXU.js} +1 -1
- package/dist/chunks/chunk-NJDR5EEF.js +6 -0
- package/dist/chunks/{chunk-KDSO7V4O.js → chunk-OC3DQXN6.js} +1 -1
- package/dist/chunks/{chunk-J2L2NK6E.js → chunk-OMVAPRQI.js} +90 -57
- package/dist/chunks/chunk-OXCB2TRF.js +42 -0
- package/dist/chunks/{chunk-C6JGLEYD.js → chunk-P6R6V7EW.js} +1 -1
- package/dist/chunks/{chunk-SK3RRGHJ.js → chunk-PFBZ4ZXO.js} +28 -28
- package/dist/chunks/{chunk-V2XJSFFE.js → chunk-QDE6THC5.js} +1 -1
- package/dist/chunks/{chunk-EPK6EWRI.js → chunk-QRYEP34M.js} +1 -1
- package/dist/chunks/chunk-ROWYE472.js +460 -0
- package/dist/chunks/{chunk-R42S4BLA.js → chunk-SQGESMNC.js} +1 -1
- package/dist/chunks/{chunk-XZSFUGPN.js → chunk-U73VEVMP.js} +1 -1
- package/dist/chunks/{chunk-D425EZGC.js → chunk-V2TG7GNW.js} +1 -1
- package/dist/chunks/{chunk-QSZCR5GC.js → chunk-VRO2CDBY.js} +97 -97
- package/dist/chunks/{chunk-BBZWF2EA.js → chunk-WMQQQY3D.js} +1 -1
- package/dist/chunks/{chunk-JAF2YLZO.js → chunk-X3YYJJTF.js} +2 -2
- package/dist/chunks/{chunk-UL6YIT4M.js → chunk-XYRI6ER5.js} +1 -1
- package/dist/chunks/chunk-YRPB3LID.js +3 -0
- package/dist/chunks/{chunk-5MUVRFMU.js → chunk-ZDAU3LZ2.js} +1 -1
- package/dist/chunks/{chunk-WWPVEK6B.js → chunk-ZP3YSYWM.js} +10 -10
- package/dist/chunks/{client-LTIFNED5.js → client-NJ32JBC3.js} +1 -1
- package/dist/chunks/compaction-config-JBQGU3NO.js +2 -0
- package/dist/chunks/{construction-bootstrap-OAZKGI5Y.js → construction-bootstrap-CM47ZXG7.js} +1 -1
- package/dist/chunks/dist-O6BHIQEP.js +2 -0
- package/dist/chunks/{google-native-WLL27OV7.js → google-native-BV5GKT5B.js} +1 -1
- package/dist/chunks/host-PI5NL4W4.js +2 -0
- package/dist/chunks/{mistral-native-JXPIDDYZ.js → mistral-native-X42JCFZH.js} +1 -1
- package/dist/chunks/{model-DZF6URW3.js → model-MT3WJX76.js} +1 -1
- package/dist/chunks/{permission-YVVMLQ5I.js → permission-YVDVSE6H.js} +1 -1
- package/dist/chunks/{pi-messages-5LLOZH57.js → pi-messages-DVJANXV5.js} +1 -1
- package/dist/chunks/readline-helpers-5JS7UGTE.js +2 -0
- package/dist/chunks/run-manager-Y6VYEWSJ.js +2 -0
- package/dist/chunks/running-session-ANMBA5XV.js +2 -0
- package/dist/chunks/skills-XL2XIBWV.js +2 -0
- package/dist/chunks/{tool-dispatch-MLM3QTSU.js → tool-dispatch-2FOG65FC.js} +1 -1
- package/dist/chunks/{utils-2QNMYRGA.js → utils-XZ22R6VB.js} +1 -1
- package/dist/client-history.js +2 -0
- package/dist/history-turn.js +3 -0
- package/dist/index.d.ts +19 -19
- package/dist/index.js +2 -2
- package/dist/kodax_bootstrap.js +1 -1
- package/dist/kodax_cli.js +1472 -1810
- package/dist/kodax_doctor.js +1 -1
- package/dist/maintenance-scheduler.js +2 -0
- package/dist/manual-topics.json +32 -3
- package/dist/native/win32-x64/kodax-windows-sandbox.exe +0 -0
- package/dist/native/win32-x64/kodax-windows-text-transaction.node +0 -0
- package/dist/native/win32-x64/manifest.json +2 -2
- package/dist/one-shot-task.js +1 -1
- package/dist/provider-auth-cli.js +1 -1
- package/dist/runtime-daemon-schema.json +1 -1
- package/dist/sandbox-network-broker.js +93 -441
- package/dist/sdk-a2a.d.ts +13 -13
- package/dist/sdk-a2a.js +1 -1
- package/dist/sdk-agent.d.ts +17 -12
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-client.d.ts +6 -6
- package/dist/sdk-client.js +1 -1
- package/dist/sdk-coding.d.ts +17 -17
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +2 -2
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +4 -2
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +13 -13
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +16 -16
- package/dist/sdk-repl.js +1 -1
- package/dist/sdk-runtime.d.ts +46 -46
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.js +1 -1
- package/dist/sdk-session.d.ts +7 -7
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +87 -435
- package/dist/storage-repair-cli.js +1 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-CJliu5-D.d.ts → bash-prefix-extractor.d-BghXa_md.d.ts} +9 -3
- package/dist/types-chunks/{capsule.d-EMwSALqK.d.ts → capsule.d-BTlvC5qq.d.ts} +4 -4
- package/dist/types-chunks/{client-contract-B7q69yMA.d.ts → client-contract-B7ZSFKTv.d.ts} +52 -4
- package/dist/types-chunks/{controller.d-C0SAuNKu.d.ts → controller.d-Btu5FDdw.d.ts} +1 -1
- package/dist/types-chunks/{controller.d-D-hPLKaA.d.ts → controller.d-D6rEz5LS.d.ts} +3 -3
- package/dist/types-chunks/{history-retrieval.d-BwEUR9cb.d.ts → history-retrieval.d-B_AriUJp.d.ts} +1 -1
- package/dist/types-chunks/{manifest.d-YE3-AIeO.d.ts → manifest.d-Yyce-hHj.d.ts} +1 -1
- package/dist/types-chunks/{public-api.d-BhDU643p.d.ts → public-api.d-BLv3lFmw.d.ts} +9 -4
- package/dist/types-chunks/{review-inbox.d-Bgt46S7L.d.ts → review-inbox.d-yREk25Vf.d.ts} +2 -0
- package/dist/types-chunks/{review-packet.d-ChOfJaNI.d.ts → review-packet.d-xwXxHmML.d.ts} +1 -1
- package/dist/types-chunks/{run-manager.d-ChzguipG.d.ts → run-manager.d-D4sa9JYz.d.ts} +26 -12
- package/dist/types-chunks/{runtime-client-info-P_mRDG7j.d.ts → runtime-client-info-oRMrkHmb.d.ts} +2 -2
- package/dist/types-chunks/{runtime-event-BW5Pla7a.d.ts → runtime-event-BOyaILWg.d.ts} +3 -1
- package/dist/types-chunks/{sdk-runtime-cDe7qmN3.d.ts → sdk-runtime-CYyXmQok.d.ts} +27 -13
- package/dist/types-chunks/{sdk-session-D3pcSbnA.d.ts → sdk-session-D6mS5qgO.d.ts} +6 -3
- package/dist/types-chunks/{skill-invocation-error.d-gsNNDnnt.d.ts → skill-invocation-error.d-Be3qg4JQ.d.ts} +3 -3
- package/dist/types-chunks/{trusted-repl-entry-Bbkd2HlO.d.ts → trusted-repl-entry-YWNc4m-Z.d.ts} +7 -7
- package/dist/types-chunks/{types.d-BlXTogOo.d.ts → types.d-BQ-hbni4.d.ts} +1 -1
- package/dist/types-chunks/{utils.d-CxHyBvO6.d.ts → utils.d-C0F3Uf2X.d.ts} +6 -6
- package/dist/windows-effect-job-programs.json +4 -0
- package/docs/ARTIFACT_SDK.md +3 -3
- package/docs/CLIENT_CONTRACT.md +4 -2
- package/docs/SDK_MIGRATION.md +9 -5
- package/docs/SPACE_SDK_SEAMS.md +12 -1
- package/package.json +4 -3
- package/public_docs/README.md +10 -3
- package/public_docs/sdk/embedder-guide.md +1 -1
- package/dist/chunks/agent-DS7M57WD.js +0 -2
- package/dist/chunks/agent-adapter-TLWGGK3V.js +0 -2
- package/dist/chunks/argument-completer-OGCXKTRQ.js +0 -2
- package/dist/chunks/chunk-GJXOTOZB.js +0 -465
- package/dist/chunks/chunk-KE2NBMAP.js +0 -20
- package/dist/chunks/chunk-OGTRDK4Q.js +0 -359
- package/dist/chunks/chunk-R2HTPDI7.js +0 -2
- package/dist/chunks/chunk-SDPZFH6M.js +0 -4
- package/dist/chunks/chunk-XDMNJW6J.js +0 -42
- package/dist/chunks/compaction-config-ECMOFP5H.js +0 -2
- package/dist/chunks/dist-5J53DGAO.js +0 -2
- package/dist/chunks/host-65E5NM5P.js +0 -2
- package/dist/chunks/readline-helpers-UZXWBRXQ.js +0 -2
- package/dist/chunks/run-manager-ZFACIZM2.js +0 -2
- package/dist/chunks/running-session-Q5Y6A2QV.js +0 -2
- package/dist/chunks/skills-TJP6BLZJ.js +0 -2
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
+
import{A as re,I as _e,J as Se,K as Re,N as Te,O as Ce,Q as H,R as Ae,d as we,e as ee,f as te,l as be,s as xe,v as ke,x as ne}from"./chunk-V5RCDBKU.js";import{a as he,b as g,c as K,d as Ee,e as ye,f as ve}from"./chunk-KDLOPBFZ.js";import{a as s}from"./chunk-V4WSBIXB.js";var Oe=32768,En=32e3,yn=64e3,Me="[Tool Error] No result was recorded for this tool call \u2014 its execution status is unknown (the turn may have been cancelled or the provider switched mid-run). Check whether the tool already produced side effects (files written, commits made) before re-issuing it.",vn=.5;var ft=new Set(["type","properties","required","additionalProperties","items","anyOf","enum","const","$ref","$defs","definitions","description","title","format","minimum","maximum","multipleOf","minLength","maxLength","pattern","minItems","maxItems"]);function P(t){if(!t||typeof t!="object"||Array.isArray(t))throw new Error("Tool constraints require an object schema.");return t}s(P,"record");function I(t,e=0){let n=P(t);if(e>32||Object.keys(n).some(i=>!ft.has(i)))throw new Error("Tool schema exceeds the supported strict subset.");if(n.additionalProperties!==void 0&&n.additionalProperties!==!1)throw new Error("Strict tools cannot retain additional properties.");let r=structuredClone(n);if(n.type==="object"||n.properties!==void 0){let i=P(n.properties??{}),o=n.required??[];if(!Array.isArray(o)||o.some(a=>typeof a!="string"||!Object.hasOwn(i,a)))throw new Error("Invalid strict schema required keys.");r.properties=Object.fromEntries(Object.entries(i).map(([a,d])=>{let f=I(d,e+1),c=!o.includes(a)&&f.type!=="null"&&!(Array.isArray(f.type)&&f.type.includes("null"));return[a,c?{anyOf:[f,{type:"null"}]}:f]})),r.required=Object.keys(i),r.additionalProperties=!1}if(n.items!==void 0&&(r.items=I(n.items,e+1)),n.anyOf!==void 0){if(!Array.isArray(n.anyOf))throw new Error("Invalid strict anyOf.");r.anyOf=n.anyOf.map(i=>I(i,e+1))}for(let i of["$defs","definitions"])n[i]!==void 0&&(r[i]=Object.fromEntries(Object.entries(P(n[i])).map(([o,a])=>[o,I(a,e+1)])));return r}s(I,"strictSchema");function xn(t){if(t===void 0)return;let e=P(t);if(e.strict!==void 0&&typeof e.strict!="boolean"||e.grammar!==void 0&&(!Array.isArray(e.grammar)||e.grammar.some(n=>!["lark","regex"].includes(n))))throw new Error("Invalid declared tool capabilities.")}s(xn,"validateToolCapabilities");function ie(t,e,n){if(t.grammar&&Ie(t,{...e,grammar:[]},n),t.strict===void 0)return{input_schema:t.input_schema,strict:!1};if(!["require","prefer"].includes(t.strict))throw new g("Invalid tool strict policy.",n,{failureCode:"request_build_failed",retryable:!1});try{if(!e.strict)throw new Error("This connection/model does not declare strict tools.");return{input_schema:I(t.input_schema),strict:!0}}catch(r){if(t.strict==="require")throw new g(r instanceof Error?r.message:"Strict tool constraints cannot be satisfied.",n,{failureCode:"request_build_failed",stage:"request_build",retryable:!1});return{input_schema:t.input_schema,strict:!1}}}s(ie,"toolParameters");function kn(t,e,n){return t.map(r=>{let i=ie(r,e,n);return{type:"function",function:{name:r.name,description:r.description,parameters:i.input_schema,...i.strict?{strict:!0}:{}}}})}s(kn,"openAIChatTools");function _n(t,e,n){return t.map(r=>{let i=ie(r,e,n);return{name:r.name,description:r.description,input_schema:i.input_schema,...i.strict?{strict:!0}:{}}})}s(_n,"anthropicTools");function De(t,e){return e?t.map(n=>({...n,...n.strict==="prefer"?{strict:void 0}:{},...n.grammar?.mode==="prefer"?{grammar:void 0}:{}})):t}s(De,"withoutPreferredToolConstraints");function Ie(t,e,n){if(t.grammar)try{let r=t.grammar;if(t.strict!==void 0||!["lark","regex"].includes(r.syntax)||typeof r.definition!="string"||!r.definition.trim()||r.mode!==void 0&&!["require","prefer"].includes(r.mode))throw new Error("Invalid or conflicting grammar tool constraints.");let i=Object.keys(t.input_schema.properties),o=i[0];if(i.length!==1||!o.trim()||o.length>256||P(t.input_schema.properties[o]).type!=="string"||t.input_schema.required?.length!==1||t.input_schema.required[0]!==o)throw new Error("Grammar tools require exactly one required string property.");if(!e.grammar?.includes(r.syntax))throw new Error("This connection/model does not declare the requested grammar.");return{property:o,format:{type:"grammar",syntax:r.syntax,definition:r.definition}}}catch(r){if(t.grammar.mode==="prefer"&&t.strict===void 0)return;throw new g(r instanceof Error?r.message:"Grammar constraints cannot be satisfied.",n,{failureCode:"request_build_failed",stage:"request_build",retryable:!1})}}s(Ie,"toolGrammar");function Sn(t,e,n){let r=new Map,i=new Set;return{tools:t.map(a=>{let d=Ie(a,e,n);if(d&&(typeof a.name!="string"||!a.name.trim()||a.name.length>256)||i.has(a.name)&&(d||r.has(a.name)))throw new g("Custom tool names must be non-empty and unique.",n,{failureCode:"request_build_failed",stage:"request_build",retryable:!1});if(i.add(a.name),d)return r.set(a.name,d.property),{type:"custom",name:a.name,description:a.description,format:d.format};let f=ie(a,e,n);return{type:"function",name:a.name,description:a.description,parameters:f.input_schema,strict:f.strict}}),customProperties:r}}s(Sn,"responseTools");function Pe(t,e){return(t===400||t===422)&&/strict|constrained|grammar|json.?schema/i.test(e)&&/unsupported|not.support|exceed|too many|limit|invalid schema/i.test(e)}s(Pe,"isToolConstraintRejection");import{AsyncLocalStorage as dt}from"node:async_hooks";var Le=new dt,ct=8,lt=32;function pt(t){if(t===void 0)return;let e=Number.parseInt(t,10);return Number.isInteger(e)&&e>0?e:void 0}s(pt,"parsePositiveInt");function An(){let t=W()?.workflow?.maxConcurrency,e=typeof t=="number"&&Number.isInteger(t)&&t>0?t:pt(process.env.KODAX_WORKFLOW_MAX_CONCURRENCY)??ct;return Math.max(1,Math.min(lt,e))}s(An,"resolveWorkflowMaxConcurrency");function On(t,e){return Le.run(t,e)}s(On,"runWithScopedConfig");function W(){return Le.getStore()}s(W,"getRunScopedConfig");function Fe(t){if(t!==void 0)return t;let e=W()?.disablePromptCache;return e!==void 0?e:process.env.KODAX_DISABLE_PROMPT_CACHE==="1"}s(Fe,"resolvePromptCacheDisabled");import{createHash as mt}from"node:crypto";function Ne(t){let e=t.cloud,n=e?.service==="vertex"?[e.service,e.project,e.location]:e?.service==="bedrock"?[e.service,e.region]:e?[e.service]:void 0,r=t.baseUrl?new URL(t.baseUrl).href.replace(/\/$/,""):void 0,i=t.authentication??(t.api==="anthropic-messages"?"api-key":t.api==="google-generate-content"?"google-native":t.cloud?.service==="azure"?"azure-native":t.api==="bedrock-converse"?"bedrock-native":"bearer");return mt("sha256").update(JSON.stringify([t.provider,t.api,r,i,t.oauth,n])).digest("hex")}s(Ne,"credentialConnectionFingerprint");var je=new Set(["1308","insufficient_quota","billing_hard_limit_reached","credit_balance_too_low","usage_limit_reached","subscription_sharing_usage_limit_exceeded","subscription_sharing_workplace_individual_usage_limit_exceeded","gousagelimiterror","freeusagelimiterror"]);function L(t,e=0){if(t===null||typeof t!="object"||e>4)return!1;let n=t;if([n.code,n.type,n.upstreamCode].some(r=>(typeof r=="string"||typeof r=="number")&&je.has(String(r).toLowerCase())))return!0;if(typeof n.message=="string"){let r=n.message;if(r.toLowerCase().split(/\W+/).some(i=>i!=="1308"&&je.has(i))||/(?:\[1308\]|["']?code["']?\s*:\s*["']?1308\b)/i.test(r)||/\b(?:monthly|weekly|daily|subscription) usage limit (?:reached|exceeded)\b/i.test(r)||/\b(?:insufficient (?:balance|credits)|credit balance (?:is )?too low|out of budget)\b/i.test(r)||/余额不足|已达到.{0,20}(?:小时|天|月)使用上限/.test(r))return!0}return L(n.error,e+1)||L(n.cause,e+1)||L(n.metadata,e+1)}s(L,"isProviderQuotaError");function X(t,e){if(!t)return;if(typeof t.get=="function")return t.get(e)??void 0;let n=t,r=e.toLowerCase(),i=n[e]??n[r]??n[r.replace(/\b\w/g,o=>o.toUpperCase())];if(i!==void 0)return Array.isArray(i)?i[0]:i}s(X,"readHeader");function Ue(t){if(!t)return;let e=t.trim();if(e.length===0)return;let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n}s(Ue,"parsePositiveNumber");function gt(t,e){if(!t)return;let n=t.trim();if(n.length===0)return;let r=Date.parse(n);if(!Number.isFinite(r))return;let i=r-e;return i>0?i:void 0}s(gt,"parseHttpDate");function F(t,e){let n=e.baseBackoffMs??1e3,r=e.maxBackoffMs??3e4,i=e.maxHeaderWaitMs??12e4,o=e.now?e.now():Date.now(),a=Ue(X(t,"retry-after-ms"));if(a!==void 0){let w=Math.min(a,i);return{type:"header",waitMs:Math.round(w),source:"retry-after-ms",cappedFromHeader:w!==a}}let d=X(t,"retry-after");if(d!==void 0&&d.trim().length>0){let w=Ue(d);if(w!==void 0){let y=w*1e3,R=Math.min(y,i);return{type:"header",waitMs:Math.round(R),source:"retry-after-seconds",cappedFromHeader:R!==y}}let h=gt(d,o);if(h!==void 0){let y=Math.min(h,i);return{type:"header",waitMs:Math.round(y),source:"retry-after-date",cappedFromHeader:y!==h}}}let f=n*Math.pow(2,Math.max(0,e.attempt)),c=Math.min(f,r),u=e.withJitter!==!1?Math.random()*.25*c:0;return{type:"backoff",waitMs:Math.round(c+u),source:"exponential-backoff",attempt:e.attempt}}s(F,"parseRetryAfter");function N(t){if(!t||typeof t!="object")return;let e=t;return e.headers??e.response?.headers??e.cause?.headers??e.cause?.response?.headers}s(N,"extractHeadersFromError");var oe={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},$n={...oe,multimodalSupport:"image-input"},ht={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},qn={...ht,multimodalSupport:"image-input"};function Et(t){return{transport:t.transport,conversationSemantics:t.conversationSemantics,mcpSupport:t.mcpSupport,contextFidelity:t.contextFidelity??"full",toolCallingFidelity:t.toolCallingFidelity??"full",sessionSupport:t.sessionSupport??"full",longRunningSupport:t.longRunningSupport??"full",multimodalSupport:t.multimodalSupport??"none",evidenceSupport:t.evidenceSupport??"full"}}s(Et,"normalizeCapabilityProfile");function $e(t){return{...Et(t)}}s($e,"cloneCapabilityProfile");var se=["max","xhigh","high","medium","low","minimal"];function qe(t,e="auto"){if(t.effortStrategy==="none"||t.effortStrategy==="prompt-only")return[void 0];let n=s(c=>t.effortAliases?.[c]??c,"alias"),r=t.supportedEfforts?.map(c=>n(c.value)),i=se.filter(c=>!t.disabledEfforts?.includes(c)&&(!r||r.includes(c))),o=e==="auto"?t.defaultEffort??t.supportedEfforts?.find(c=>c.isDefault)?.value??"max":e,a=n(o),f=o==="none"||t.disabledEfforts?.includes(o)?[...t.supportsDisabledThinking===!1?[]:["none"],...i.slice().reverse()]:[a,...i.filter(c=>se.indexOf(c)>se.indexOf(a))];return[...new Set(f.filter(c=>!t.localRejectEfforts?.includes(c)&&(c==="none"||!r||r.includes(c)||t.allowCustomEffort))),void 0]}s(qe,"buildReasoningEffortLadder");function Be(t){return t?.effortStrategy==="openai-chat-effort"||t?.effortStrategy==="openai-responses-effort"}s(Be,"usesReasoningEffortLadder");var zn=["off","auto","quick","balanced","deep"],q=["auto","none","low","medium","high"],yt={low:6e3,medium:1e4,high:2e4},vt=4096,ae=[{value:"none",description:"Disable thinking"},{value:"minimal",description:"Disable thinking",isUserVisible:!1},{value:"low",description:"Enable thinking"},{value:"medium",description:"Enable thinking",isDefault:!0},{value:"high",description:"Enable thinking"},{value:"xhigh",description:"Enable thinking"},{value:"max",description:"Enable thinking"}],ue=[{value:"none",description:"Disable thinking"},{value:"minimal",description:"Disable thinking",isUserVisible:!1},{value:"low",description:"Alias to high"},{value:"medium",description:"Alias to high"},{value:"high",description:"High reasoning",isDefault:!0},{value:"xhigh",description:"Alias to max"},{value:"max",description:"Maximum reasoning"}],wt=[{value:"none",description:"Disable thinking"},{value:"minimal",description:"Disable thinking",isUserVisible:!1},{value:"low",description:"Low reasoning"},{value:"medium",description:"Alias to high"},{value:"high",description:"High reasoning",isDefault:!0},{value:"xhigh",description:"Alias to high"},{value:"max",description:"Maximum reasoning"}],bt=[{value:"low",description:"Thinking is always on"},{value:"medium",description:"Thinking is always on"},{value:"high",description:"Thinking is always on",isDefault:!0},{value:"xhigh",description:"Thinking is always on"},{value:"max",description:"Thinking is always on"}];function Vn(t,e={}){return{...xt(t),...e,reasoningPreset:t}}s(Vn,"createReasoningProfileFromPreset");function xt(t){switch(t){case"zai-glm-5.3":return{reasoningPreset:t,effortStrategy:"openai-chat-effort",thinkingStrategy:"provider-toggle",defaultEffort:"max",supportedEfforts:[{value:"none",description:"Maps to low reasoning"},{value:"minimal",description:"Alias to low",isUserVisible:!1},{value:"low",description:"Low reasoning"},{value:"medium",description:"Alias to high"},{value:"high",description:"High reasoning"},{value:"xhigh",description:"Alias to max"},{value:"max",description:"Maximum reasoning",isDefault:!0}],effortAliases:{none:"low",minimal:"low",minimum:"low",light:"low",medium:"high",xhigh:"max",ultra:"max"},disabledEfforts:["none"],supportsReasoningEffort:!0,supportsDisabledThinking:!1};case"zai-glm-5.2":return{reasoningPreset:t,effortStrategy:"openai-chat-effort",thinkingStrategy:"provider-toggle",defaultEffort:"max",supportedEfforts:ue,effortAliases:{low:"high",medium:"high",xhigh:"max"},disabledEfforts:["none","minimal"],supportsReasoningEffort:!0,supportsDisabledThinking:!0};case"deepseek-v4-flash-openai":return{reasoningPreset:t,effortStrategy:"openai-chat-effort",thinkingStrategy:"provider-toggle",defaultEffort:"high",supportedEfforts:wt,effortAliases:{medium:"high",xhigh:"high"},disabledEfforts:["none","minimal"],supportsReasoningEffort:!0,supportsDisabledThinking:!0};case"deepseek-v4-openai":case"deepseek-v4-pro-openai":return{reasoningPreset:t,effortStrategy:"openai-chat-effort",thinkingStrategy:"provider-toggle",defaultEffort:"high",supportedEfforts:ue,effortAliases:{low:"high",medium:"high",xhigh:"max"},disabledEfforts:["none","minimal"],supportsReasoningEffort:!0,supportsDisabledThinking:!0};case"deepseek-v4-anthropic":return{reasoningPreset:t,effortStrategy:"anthropic-output-effort",thinkingStrategy:"provider-toggle",defaultEffort:"high",supportedEfforts:ue,effortAliases:{low:"high",medium:"high",xhigh:"max"},disabledEfforts:["none","minimal"],supportsReasoningEffort:!0,supportsDisabledThinking:!0};case"zai-glm-toggle":case"deepseek-toggle":case"kimi-hybrid-toggle":case"mimo-v2.5-toggle":case"generic-thinking-toggle":return{reasoningPreset:t,effortStrategy:"provider-toggle",thinkingStrategy:"provider-toggle",supportedEfforts:ae,disabledEfforts:["none","minimal"],supportsDisabledThinking:!0};case"kimi-k3.1":return{reasoningPreset:t,effortStrategy:"provider-toggle",defaultEffort:"max",supportedEfforts:[{value:"low",description:"Low thinking effort"},{value:"high",description:"High thinking effort"},{value:"max",description:"Maximum thinking effort",isDefault:!0}],effortAliases:{minimal:"low",minimum:"low",light:"low",medium:"high",xhigh:"max",ultra:"max"},localRejectEfforts:["none"],supportsReasoningEffort:!0,supportsDisabledThinking:!1};case"kimi-k3":return{reasoningPreset:t,effortStrategy:"provider-toggle",thinkingStrategy:"provider-toggle",defaultEffort:"high",supportedEfforts:[{value:"none",description:"Disable thinking"},{value:"low",description:"Low thinking effort"},{value:"high",description:"High thinking effort",isDefault:!0},{value:"max",description:"Maximum thinking effort"}],effortAliases:{minimal:"low",minimum:"low",light:"low",medium:"high",xhigh:"max",ultra:"max"},disabledEfforts:["none"],supportsReasoningEffort:!0,supportsDisabledThinking:!0};case"kimi-k2.7-code":case"minimax-m2-always":return{reasoningPreset:t,effortStrategy:"prompt-only",defaultEffort:"high",supportedEfforts:bt,localRejectEfforts:["none","minimal"]};case"minimax-m3":return{reasoningPreset:t,effortStrategy:"provider-toggle",thinkingStrategy:"anthropic-adaptive",supportedEfforts:ae,disabledEfforts:["none","minimal"],supportsAdaptiveThinking:!0,supportsDisabledThinking:!0};case"qwen-hybrid-thinking":return{reasoningPreset:t,effortStrategy:"provider-budget",thinkingStrategy:"provider-budget",defaultEffort:"medium",supportedEfforts:ae,budgetByEffort:{low:6e3,medium:1e4,high:16e3,xhigh:24e3,max:32e3},disabledEfforts:["none","minimal"],supportsManualThinkingBudget:!0,supportsDisabledThinking:!0};case"claude-adaptive-xhigh":return{reasoningPreset:t,effortStrategy:"anthropic-output-effort",thinkingStrategy:"anthropic-adaptive",defaultEffort:"high",supportedEfforts:[{value:"low"},{value:"medium"},{value:"high",isDefault:!0},{value:"xhigh"},{value:"max"}],supportsReasoningEffort:!0,supportsAdaptiveThinking:!0};case"claude-adaptive-max":return{reasoningPreset:t,effortStrategy:"anthropic-output-effort",thinkingStrategy:"anthropic-adaptive",defaultEffort:"high",supportedEfforts:[{value:"low"},{value:"medium"},{value:"high",isDefault:!0},{value:"max"}],supportsReasoningEffort:!0,supportsAdaptiveThinking:!0};case"anthropic-budget":return{reasoningPreset:t,effortStrategy:"provider-budget",thinkingStrategy:"anthropic-budget",defaultEffort:"medium",supportedEfforts:[{value:"none"},{value:"low"},{value:"medium",isDefault:!0},{value:"high"}],budgetByEffort:{low:6e3,medium:1e4,high:16e3},disabledEfforts:["none"],supportsManualThinkingBudget:!0,supportsDisabledThinking:!0};case"openai-chat-reasoning":case"openai-responses-reasoning":return{reasoningPreset:t,effortStrategy:t==="openai-chat-reasoning"?"openai-chat-effort":"openai-responses-effort",defaultEffort:"medium",supportedEfforts:[{value:"none"},{value:"minimal"},{value:"low"},{value:"medium",isDefault:!0},{value:"high"},{value:"xhigh"}],disabledEfforts:["none"],supportsReasoningEffort:!0,supportsReasoningSummary:!0,supportsEncryptedReasoningReplay:!0};case"codex-cli-effort":return{reasoningPreset:t,effortStrategy:"codex-cli-config",defaultEffort:"medium",supportedEfforts:[{value:"none"},{value:"minimal"},{value:"low"},{value:"medium",isDefault:!0},{value:"high"},{value:"xhigh"}],allowCustomEffort:!0,supportsReasoningEffort:!0};case"none":return{reasoningPreset:t,effortStrategy:"none",thinkingStrategy:"none"}}}s(xt,"createBaseReasoningProfileFromPreset");function Ke(t){return t.reasoningCapability?t.reasoningCapability:t.supportsThinking?"native-toggle":"prompt-only"}s(Ke,"getReasoningCapability");function Gn(t){return de(t).enabled}s(Gn,"isReasoningEnabled");function de(t){if(typeof t=="boolean")return{enabled:t,effort:t?"auto":"none",effortSource:"legacy",taskType:"unknown",executionMode:"implementation"};let e=t?.effort?z(t.effort):void 0,n=e??(t?.enabled===!0?"auto":"none");return{enabled:n!=="none",effort:n,effortSource:e!==void 0?"explicit":t===void 0?"omitted":"legacy",taskType:t?.taskType??"unknown",executionMode:t?.executionMode??"implementation"}}s(de,"normalizeReasoningRequest");function z(t){let e=t.trim().toLowerCase();if(!e)throw new Error("Reasoning effort cannot be empty.");if(/\s/.test(e))throw new Error(`Reasoning effort cannot contain whitespace: "${t}".`);return e==="off"?"none":e}s(z,"normalizeReasoningEffortValue");function kt(t){switch(t){case"off":return"none";case"auto":return"auto";case"quick":return"low";case"balanced":return"medium";case"deep":return"high";default:return t}}s(kt,"mapLegacyReasoningModeToEffortIntent");function Yn(t){switch(t){case"none":return"off";case"auto":return"auto";case"low":return"quick";case"medium":return"balanced";case"high":return"deep";default:return}}s(Yn,"effortToLegacyReasoningMode");function _t(t){let e=t?.trim();if(!e)return{kind:"unset"};let n=z(e);return n==="auto"||n==="unset"?{kind:"clear"}:{kind:"value",value:n}}s(_t,"parseReasoningEffortEnv");function He(t){let e=_t(t.envEffort),n=[];if(j(n,t.explicitEffort,"explicit",!0),e.kind==="value"&&n.push({value:e.value,source:"env",isExplicit:!0}),j(n,t.sessionEffort,"session",!1),t.legacyReasoningMode?n.push({value:kt(t.legacyReasoningMode),source:"legacy",isExplicit:!1}):t.thinking!==void 0&&n.push({value:t.thinking?"auto":"none",source:"legacy",isExplicit:!1}),Be(t.capability)){let o=n[0]??{value:"auto",source:"fallback",isExplicit:!1},a={...t.capability,defaultEffort:t.modelDefaultEffort??t.capability.defaultEffort??C(t.capability)??t.providerDefaultEffort??t.fallbackEffort},d=qe(a,o.value)[0];return{configuredEffort:o.value,effectiveEffort:d,source:o.source,isExplicit:o.isExplicit,diagnostics:[]}}j(n,t.modelDefaultEffort??t.capability?.defaultEffort??C(t.capability),"model-default",!1),j(n,t.providerDefaultEffort,"provider-default",!1),j(n,t.fallbackEffort??$(t.capability),"fallback",!1);let r=n[0]??{value:"none",source:"fallback",isExplicit:!1};if(r.value==="auto")return{configuredEffort:"auto",effectiveEffort:St(n.slice(1),t.capability),source:r.source,isExplicit:r.isExplicit,diagnostics:[]};let i=We(r.value,t.capability,r.isExplicit);return{configuredEffort:r.value,effectiveEffort:i,source:r.source,isExplicit:r.isExplicit,diagnostics:[]}}s(He,"resolveReasoningEffort");function Jn(t){let e=t.currentEffort?z(t.currentEffort):void 0;if(e&&Xe(e,t.capability))return{effectiveEffort:U(e,t.capability),preserved:!0};let n=t.capability?.defaultEffort??C(t.capability)??fe(t.capability)??$(t.capability),r=n&&U(n,t.capability);return e?{effectiveEffort:r,preserved:!1,diagnostic:r?`Effort ${e} is not supported by the selected model; using ${r}.`:`Effort ${e} is not supported by the selected model; clearing effort.`}:{effectiveEffort:r,preserved:!1}}s(Jn,"resolveReasoningEffortForModelSwitch");function j(t,e,n,r){if(e===void 0)return;let i=z(e);t.push({value:i,source:n,isExplicit:r})}s(j,"pushEffortCandidate");function St(t,e){let n=t.find(r=>r.value!=="auto");return n?We(n.value,e,n.isExplicit):C(e)??$(e)}s(St,"resolveAutoEffectiveEffort");function We(t,e,n){if(e?.localRejectEfforts?.includes(t)){if(n)throw new Error(`Unsupported reasoning effort "${t}" for the selected model.`);return C(e)??fe(e)??$(e)??t}if(t==="none")return e?.supportsDisabledThinking===!1?U(t,e):t;if(Xe(t,e))return U(t,e);if(n)throw new Error(`Unsupported reasoning effort "${t}" for the selected model.`);return C(e)??fe(e)??$(e)??t}s(We,"validateReasoningEffort");function U(t,e){return e?.effortAliases?.[t]??t}s(U,"applyEffortAlias");function Xe(t,e){if(e?.localRejectEfforts?.includes(t))return!1;if(t==="auto"||t==="none"||e?.allowCustomEffort===!0)return!0;let n=Rt(e);return n.length===0?q.includes(t):n.includes(t)||n.includes(U(t,e))}s(Xe,"isSupportedReasoningEffort");function Rt(t){return t?.supportedEfforts?.map(e=>e.value)??[]}s(Rt,"getSupportedEffortValues");function C(t){return t?.supportedEfforts?.find(e=>e.isDefault)?.value}s(C,"getDefaultPresetValue");function fe(t){let e=t?.supportedEfforts?.filter(Tt).map(n=>n.value);if(!(!e||e.length===0))return e[Math.floor((e.length-1)/2)]}s(fe,"getMiddleVisiblePresetValue");function Tt(t){return t.isUserVisible!==!1}s(Tt,"isUserVisiblePreset");function $(t){if(!t||t.effortStrategy==="none"||t.effortStrategy==="prompt-only")return"none";if(!(t.effortStrategy==="anthropic-output-effort"&&t.thinkingStrategy==="anthropic-adaptive"))return"medium"}s($,"getFallbackEffortForCapability");function Qn(t){switch(t){case"quick":return"low";case"balanced":case"auto":return"medium";case"deep":return"high";default:return"off"}}s(Qn,"getDefaultThinkingDepthForMode");function Zn(t){switch(t){case"none":return"off";case"low":return"low";case void 0:case"medium":case"auto":return"medium";default:return"high"}}s(Zn,"effortToThinkingDepth");function er(t,e,n="unknown"){if(e==="off")return 0;let r={...yt,...t.defaultThinkingBudgets??{}},o=t.taskBudgetOverrides?.[n]?.[e]??r[e];return t.thinkingBudgetCap?Math.min(o,t.thinkingBudgetCap):o}s(er,"resolveThinkingBudget");function tr(t,e,n=vt){let r=Math.max(1024,e-n);return Math.max(1024,Math.min(t,r))}s(tr,"clampThinkingBudget");function nr(t){switch(t){case"low":return"low";case"medium":return"medium";case"high":return"high";default:return}}s(nr,"mapDepthToOpenAIReasoningEffort");import{createHash as Lt}from"node:crypto";import{AsyncLocalStorage as Ft}from"node:async_hooks";function b(t){let e=Number(t?.replace(/,/g,""));return Number.isSafeInteger(e)&&e>0?e:void 0}s(b,"tokens");function ze(t){return/prompt (?:is )?too long|context[_ ]length|context window|context limit|上下文长度/i.test(t)||/input token count.*exceeds the maximum|request exceeded model token limit|prompt has [\d,]+ tokens?, but the configured context size is [\d,]+ tokens?|request exceeds the available context size|range of input length should be\s*\[1,\s*[\d,]+\]|input is too long for requested model/i.test(t)}s(ze,"isContextOverflowMessage");function V(t){let e=/input token count\s*\(([\d,]+)\).*maximum number of tokens allowed\s*\(([\d,]+)\)/i.exec(t)??/prompt has\s*([\d,]+)\s*tokens?, but the configured context size is\s*([\d,]+)\s*tokens?/i.exec(t);if(e)return{inputTokens:b(e[1]),contextWindow:b(e[2]),inputTokensKind:"exact"};let n=/request exceeded model token limit:\s*([\d,]+)\s*\(requested:\s*([\d,]+)\)/i.exec(t);if(n)return{contextWindow:b(n[1]),inputTokensKind:"unknown"};let r=/range of input length should be\s*\[1,\s*([\d,]+)\]/i.exec(t);if(r)return{contextWindow:b(r[1]),inputTokensKind:"unknown"};let i=/maximum context length is\s*(\d[\d,]*)\s*tokens/i.exec(t),o=/your prompt contains\s+(at least\s+)?(\d[\d,]*)\s+input tokens/i.exec(t);if(i&&o)return{contextWindow:b(i[1]),inputTokens:b(o[2]),inputTokensKind:o[1]?"lower_bound":"exact"};if(/upper bound|at least/i.test(t))return{contextWindow:b(i?.[1]),inputTokensKind:"unknown"};let a=/Input length\s*\((\d[\d,]*)\).*?maximum context length\s*\((\d[\d,]*)\)/i.exec(t)??/prompt (?:is )?too long:\s*(\d[\d,]*)\s*tokens?\s*>\s*(\d[\d,]*)/i.exec(t)??/exceeds?\s+(\d[\d,]*)\s*tokens?\s*上限\s*(\d[\d,]*)/i.exec(t);if(a)return{inputTokens:b(a[1]),contextWindow:b(a[2]),inputTokensKind:"exact"};let d=/\((\d[\d,]*)\s+in (?:your|the) (?:prompt|messages)/i.exec(t);return{contextWindow:b(i?.[1]),inputTokens:b(d?.[1]),inputTokensKind:d?"exact":"unknown"}}s(V,"parseContextOverflowFacts");var Ct=new Set(["ECONNRESET","EPIPE","ECONNREFUSED","ENOTFOUND","EAI_AGAIN","ETIMEDOUT","UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT"]),Ve=new WeakSet;function Ge(t){if(!t||typeof t!="object")return;let e=t,n=new Set;for(;t&&typeof t=="object"&&!n.has(t);){n.add(t);let r=t;if(typeof r.code=="string"&&Ct.has(r.code)){Ve.add(e);return}t=r.cause}}s(Ge,"markProviderConnectionFailure");function Ye(t){return!!t&&typeof t=="object"&&Ve.has(t)}s(Ye,"isProviderConnectionFailure");function Je(t){if(!t||typeof t!="object")return;let e=t,n=e.status??e.statusCode??e.code;return typeof n=="number"&&Number.isInteger(n)?n:typeof n=="string"&&/^\d{3}$/.test(n)?Number(n):Je(e.cause)}s(Je,"getStatus");function At(t){if(t instanceof Error)return t.message.toLowerCase();if(typeof t=="string")return t.toLowerCase();if(t&&typeof t=="object"){let e=t;return[e.message,e.error,e.detail,e.body].filter(r=>typeof r=="string").join(" ").toLowerCase()}return""}s(At,"getMessage");var Ot=["reasoning_effort","reasoning effort","reasoninglevel","reasoning_level","reasoning.effort","output_config.effort","thinking.effort","thinking.type"],Mt=["unsupported","not supported","invalid","does not support","is not one of","not allowed","unknown","unexpected","unrecognized"],Dt=["minimal","none","low","medium","high","xhigh","max"];function It(t){let e=`(?:${Ot.map(d=>d.replaceAll(".","\\.")).join("|")})`,n=`(?:${Mt.join("|")})`,r="['\"`][^'\"`\\n]{0,80}['\"`]",i="[\\s'\"`:]",o=`(?:${i}|\\b(?:value|parameter|field|for|of|the)\\b|${r})*`,a=`(?:${i}|\\b(?:value|parameter|is)\\b|${r})*`;return new RegExp(`${n}${o}${e}\\b|${e}${a}${n}`).test(t)}s(It,"namesRejectedEffort");function Pt(t,e){if(e!==void 0)return e;for(let n of Dt)if(new RegExp(`['"\`]${n}['"\`]`).test(t))return n;return e}s(Pt,"extractRejectedEffort");function A(t,e){let n=Je(t);if(n!==400&&n!==422)return null;let r=At(t);if(!r)return null;let i=/(?:unknown|unrecognized|unexpected|unsupported|not supported)\s+(?:parameter|field|argument)s?\s*:?\s*['"`]*(output_config\.effort\b|reasoning_effort|reasoning\b|thinking\b|enable_thinking|thinking_budget|budget_tokens)/.exec(r)?.[1]??/\b(enable_thinking|thinking_budget|budget_tokens)\b['"`]*\s+(?:is\s+)?(?:unsupported|not supported)/.exec(r)?.[1]??/does not support\s+(?:the\s+)?['"`]*(reasoning_effort|reasoning|thinking)['"`]*\s+(?:parameter|field)/.exec(r)?.[1];if(i)return{rejectedEffort:e??"*",parameterRejected:!0,parameter:i};if(!It(r))return null;let o=Pt(r,e);return o?{rejectedEffort:o}:null}s(A,"classifyReasoningEffortRejection");function Nt(t){if(!t)return;let e=parseInt(t,10);return Number.isFinite(e)&&e>0?e:void 0}s(Nt,"parseEnvInt");function jt(t){switch(t.reasoningPreset){case"zai-glm-5.3":case"zai-glm-5.2":case"deepseek-v4-flash-openai":case"deepseek-v4-pro-openai":case"deepseek-v4-openai":case"deepseek-v4-anthropic":case"qwen-hybrid-thinking":return!0;default:break}return t.effortStrategy==="provider-budget"}s(jt,"shouldLowerAutoReasoningEffort");function Ut(t){let e=new Set;for(;t&&typeof t=="object"&&!e.has(t)&&e.size<16;){if(t instanceof g&&t.metadata?.retryable===!1)return t;e.add(t),t="cause"in t?t.cause:void 0}}s(Ut,"nonRetryableCause");function G(){return new DOMException("Request aborted","AbortError")}s(G,"abortError");async function Qe(t,e){let[n,r]=await Promise.allSettled([import("@anthropic-ai/sdk"),import("openai")]);return n.status==="fulfilled"&&t instanceof n.value[e]||r.status==="fulfilled"&&t instanceof r.value[e]}s(Qe,"isProviderSdkError");function ce(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(G()):new Promise((n,r)=>{let i,o=s(()=>{e&&e.removeEventListener("abort",a)},"cleanup"),a=s(()=>{i&&clearTimeout(i),o(),r(G())},"onAbort");e&&e.addEventListener("abort",a,{once:!0}),i=setTimeout(()=>{o(),n()},t)})}s(ce,"waitForRetryDelay");function le(t){let e=typeof t=="number"&&Number.isInteger(t)?t:typeof t=="string"&&/^\d{3}$/.test(t)?Number(t):void 0;return e!==void 0&&e>=100&&e<=599?e:void 0}s(le,"normalizeHttpStatus");function O(t,e=0){if(!t||typeof t!="object"||e>4)return;let n=t;return le(n.status)??le(n.statusCode)??le(n.code)??O(n.cause,e+1)}s(O,"extractHttpStatus");function pe(t,e=0){return!(t instanceof Error)||e>4?!1:t.name==="TimeoutError"||pe(t.cause,e+1)}s(pe,"hasTypedTimeout");function Y(t,e=0){if(!t||typeof t!="object"||e>4)return"";let n=t;return typeof n.code=="string"?n.code:typeof n.code=="number"&&Number.isSafeInteger(n.code)?String(n.code):Y(n.cause,e+1)||Y(n.error,e+1)}s(Y,"extractErrorCode");function Ze(t,e,n=0){if(!t||typeof t!="object"||n>4)return;let r=t;for(let i of e){let o=r[i];if(typeof o=="string"&&/^[\w.:-]{1,200}$/.test(o))return o}return Ze(r.cause,e,n+1)}s(Ze,"extractDiagnosticString");function $t(t){let e=Ze(t,["requestId","request_id"]);if(e!==void 0)return e;let n=N(t),r=["x-request-id","request-id","anthropic-request-id","cf-ray"];for(let i of r){let o=n instanceof Headers?n.get(i)??void 0:n?.[i]??n?.[i.replace(/\b\w/g,d=>d.toUpperCase())],a=Array.isArray(o)?o[0]:o;if(typeof a=="string"&&/^[\w.:-]{1,200}$/.test(a))return a}}s($t,"extractRequestId");function S(t){if(t instanceof Error)return t.message.toLowerCase();if(t&&typeof t=="object"){let e=t.message;if(typeof e=="string")return e.toLowerCase()}return String(t).toLowerCase()}s(S,"getErrorMessage");var J=class{static{s(this,"KodaXBaseProvider")}scopedReasoningRejections=new Map;usesScopedReasoningLearning(){return!1}getReasoningApi(){return"provider-operation"}getCredentialCloudConnection(){}getCredentialConnectionFingerprint(){return Ne({provider:this.name,api:this.getReasoningApi(),baseUrl:this.getBaseUrl(),authentication:this.config.authentication,oauth:this.config.oauth,cloud:this.getCredentialCloudConnection()})}getReasoningLearningScope(e){let n=this.getRequestCredentialFingerprint();if(n)return Lt("sha256").update(JSON.stringify([this.name,this.getReasoningApi(),this.getBaseUrl(),this.getWireModelId(e),this.getReasoningProfile(e),this.config.authentication,this.config.oauth,n])).digest("hex")}getRequestCredentialFingerprint(){let e=Re(this.name);if(e)return re(["trusted-registration",e],te());let r=H(this.name,this.config.credentialSource==="broker"?void 0:ee(this.config.apiKeyEnv))??Te(this.name);if(r)return re(r,te())}knownReasoningRejections(e,n){let r=this.getReasoningLearningScope(e);return r?[...this.scopedReasoningRejections.get(r)??[],...n?.resolveRejectedReasoningEfforts?.(r)??n?.rejectedReasoningEfforts??[]]:n?.rejectedReasoningEfforts??[]}rememberReasoningRejection(e,n,r){let i=this.getReasoningLearningScope(e);if(i){let o=this.scopedReasoningRejections.get(i)??new Set;o.add(n),this.scopedReasoningRejections.set(i,o)}r?.onReasoningEffortRejected?.({provider:this.name,model:e,effort:n,...i?{cacheScope:i}:{}})}async withRequestContext(e,n,r){if(e?.transport!==void 0&&(!["sse","auto","websocket","websocket-cached"].includes(e.transport)||e.transport!=="sse"&&this.getReasoningApi()!=="openai-responses"))throw new g("Selected transport requires Responses.",this.name,{retryable:!1});let i=[n,e?.signal,e?.transport&&e.transport!=="sse"?e.webSocketLifetime:void 0].filter(a=>a!==void 0),o=i.length>1?AbortSignal.any(i):i[0];return we(this.name,this.getWireModelId(e?.modelOverride),e,()=>Se(this,o,r),this.getCacheCapabilities(e?.modelOverride),Fe())}requestObservationBoundary="provider_operation";useLegacyReasoningFallback=!0;activeLegacyRequestOverride=new Ft;pendingLegacyMaxOutputTokensOverride;setMaxOutputTokensOverride(e){this.pendingLegacyMaxOutputTokensOverride=e}getEffectiveMaxOutputTokens(e,n){let r=this.getModelDescriptor(e),i=this.activeLegacyRequestOverride.getStore()?.maxOutputTokensOverride??this.pendingLegacyMaxOutputTokensOverride,o=[n,i,W()?.maxOutputTokens,Nt(process.env.KODAX_MAX_OUTPUT_TOKENS)].find(d=>typeof d=="number"&&Number.isFinite(d)&&d>0)??r?.maxOutputTokens??this.config.maxOutputTokens??32768,a=r?.outputTokenLimit??this.config.outputTokenLimit;return a!==void 0&&Number.isSafeInteger(a)&&a>0?Math.min(o,a):o}getStreamMaxDurationMs(e){let n=this.getModelDescriptor(e)?.streamMaxDurationMs;return n!==void 0?n:this.config.streamMaxDurationMs}getEffectiveReplayReasoningContent(e){let n=this.getModelDescriptor(e)?.replayReasoningContent;return n!==void 0?n:this.config.replayReasoningContent??!1}getEffectiveStrictThinkingSignature(e){let n=this.getModelDescriptor(e)?.strictThinkingSignature;return n!==void 0?n:this.config.strictThinkingSignature??!1}getProviderSupportsThinking(){return this.config.supportsThinking}getEffectiveThinkingBudgetCap(e){return this.getModelDescriptor(e)?.thinkingBudgetCap??this.config.thinkingBudgetCap}supportsEphemeralSuffix(){return!1}usesPromptCacheAffinity(){return this.config.promptCacheAffinity===!0}supportsNonStreamingFallback(){return!1}async complete(e,n,r,i,o,a){throw new g(`${this.name} does not support non-streaming fallback`,this.name,{failureCode:"protocol_mismatch",stage:"response_stream"})}isConfigured(){let e=Ce(this.name);return e!==void 0?e:this.config.credentialSource==="broker"?!1:H(this.name,process.env[this.config.apiKeyEnv])!==void 0}async verifyCredential(e){return{ok:!1,error:"unsupported",strategy:this.config.verifyStrategy??"unsupported",durationMs:0,approxTokensSpent:0,message:`Provider class "${this.name}" does not implement verifyCredential()`}}getModel(){return this.config.model}getAvailableModels(){return this.config.models?.length?[...new Set([this.config.model,...this.config.models.map(e=>e.id)])]:[this.config.model]}getModelDescriptor(e){let n=e??this.config.model,r=this.config.models?.find(i=>i.id===n);if(r){let i=r.wireModel?this.config.models?.find(o=>o.id===r.wireModel):void 0;return i?{...i,...r}:r}if(n===this.config.model)return{id:this.config.model}}getWireModelId(e){let n=e??this.config.model;return this.getModelDescriptor(n)?.wireModel??n}getWireModel(e){return this.getWireModelId(e)}getBaseUrl(){return this.config.baseUrl}getToolCapabilities(e){return structuredClone(this.getModelDescriptor(e)?.toolCapabilities??this.config.toolCapabilities??{})}getCacheCapabilities(e){let n=this.getModelDescriptor(e)?.cacheCapabilities??this.config.cacheCapabilities;return n?structuredClone(n):void 0}getApiKeyEnv(){return this.config.apiKeyEnv}getCapabilityProfile(e){let n=$e(this.config.capabilityProfile??oe),r=this.getModelDescriptor(e)?.multimodalSupport;return r===void 0?n:{...n,multimodalSupport:r}}getConfiguredReasoningCapability(e){let n=this.getModelDescriptor(e);return n?.reasoningCapability?n.reasoningCapability:Ke(this.config)}getReasoningCapability(e){return this.getConfiguredReasoningCapability(e)}getReasoningProfile(e){return this.getModelDescriptor(e)?.reasoningProfile??this.config.reasoningProfile}shouldFallbackForReasoningError(e,...n){if(A(e,void 0))return!1;let r=e instanceof Error?e.message.toLowerCase():String(e).toLowerCase(),o=n.map(d=>d.toLowerCase()).some(d=>r.includes(d)),a=r.includes("parameter")||o;return r.includes("unknown parameter")||r.includes("invalid parameter")||r.includes("unsupported")&&a}shouldFallbackForSpecificReasoningError(e,...n){let r=e instanceof Error?e.message.toLowerCase():String(e).toLowerCase();return n.map(a=>a.toLowerCase()).some(a=>r.includes(a))?r.includes("unknown parameter")||r.includes("invalid parameter")||r.includes("unsupported"):!1}shouldFallbackForForcedToolChoiceError(e){let n=S(e);return(n.includes("tool_choice")||n.includes("tool choice")||n.includes("toolchoice"))&&(n.includes("unknown parameter")||n.includes("invalid parameter")||n.includes("unsupported")||n.includes("does not support")||n.includes("incompatible"))?!0:this.isServerError(e)}isServerError(e){let n=O(e);if(n!==void 0&&n>=500&&n<=599)return!0;let r=S(e);return r.includes("internal server error")||r.includes("server error")}getReasoningFallbackChain(e){switch(e){case"native-budget":return["native-budget","native-toggle","none"];case"native-effort":return["native-effort","none"];case"native-adaptive":return["native-adaptive","none"];case"native-toggle":return["native-toggle","none"];default:return["none"]}}getContextWindow(){return this.getEffectiveContextWindow()}getEffectiveContextWindow(e){let n=this.getModelDescriptor(e)?.contextWindow;return n!==void 0?n:this.config.contextWindow??2e5}getApiKey(){let e=H(this.name,this.config.credentialSource==="broker"?void 0:ee(this.config.apiKeyEnv));if(!e)throw new Error(`${this.config.apiKeyEnv} not set`);return e}shouldLogStreamDiagnostics(){return!!process.env.KODAX_DEBUG_STREAM}logStreamDiagnostic(...e){this.shouldLogStreamDiagnostics()&&console.error(...e)}normalizeReasoning(e){return de(e)}validateExplicitReasoningEffort(e,n){if(e.effortSource!=="explicit")return;let r=e.effort;if(!r||r==="auto")return;let i=q.includes(r),o=this.getReasoningProfile(n);if(!o){if(r==="none"||i)return;let l=n?`/${n}`:"";throw new g(`${this.name}${l} does not advertise provider-specific reasoning effort "${r}". Supported stable efforts: ${q.join(", ")}.`,this.name,{failureCode:"request_build_failed",stage:"request_build"})}if(o.localRejectEfforts?.includes(r)){let l=n?`/${n}`:"";throw new g(`${this.name}${l} does not support reasoning effort "${r}".`,this.name,{failureCode:"request_build_failed",stage:"request_build"})}if(r==="none"||o.disabledEfforts?.includes(r)||o.allowCustomEffort)return;let a=o.supportedEfforts?.map(l=>l.value)??[],d=o.effortAliases?.[r]??r;if(a.includes(r)||a.includes(d)||a.length===0&&i)return;let f=n?`/${n}`:"",c=a.length>0?a.join(", "):q.join(", ");throw new g(`${this.name}${f} does not support reasoning effort "${r}". Supported efforts: ${c}.`,this.name,{failureCode:"request_build_failed",stage:"request_build"})}resolveReasoningProfileIntent(e,n,r){let i=e.effort;if(i&&n.localRejectEfforts?.includes(i)){if(e.effortSource==="explicit"){let o=r?`/${r}`:"";throw new g(`${this.name}${o} does not support reasoning effort "${i}".`,this.name,{failureCode:"request_build_failed",stage:"request_build"})}if(n.defaultEffort)return{disabled:!1,effort:n.defaultEffort,requestedEffort:i}}if(!e.enabled||i==="none"||i!==void 0&&n.disabledEfforts?.includes(i))return{disabled:!0,requestedEffort:i};if(!i||i==="auto"){if(jt(n)){let o=He({capability:n,explicitEffort:i??"auto"}).effectiveEffort;return o==="none"||o!==void 0&&n.disabledEfforts?.includes(o)?{disabled:!0,effort:o,requestedEffort:i}:{disabled:!1,effort:o,requestedEffort:i}}return{disabled:!1,requestedEffort:i}}return{disabled:!1,effort:n.effortAliases?.[i]??i,requestedEffort:i}}onStaleConnection(){}isRateLimitError(e){if(!(e instanceof Error))return!1;if(O(e)===429)return!0;let n=e.message.toLowerCase();return["rate","limit","\u901F\u7387","\u9891\u7387","1302","429","too many","overload","overwhelmed","503","529","busy"].some(r=>n.includes(r))}classifyRateLimitReason(e){let n=e instanceof Error?e.message.toLowerCase():String(e).toLowerCase();return n.includes("overload")||n.includes("overwhelmed")||n.includes("503")||n.includes("529")||n.includes("busy")?"overloaded":"rate-limit"}extractRetryAfterMs(e){let n=N(e);if(!n)return;let r=F(n,{attempt:0,withJitter:!1});return r.type==="header"?r.waitMs:void 0}providerErrorMetadata(e){let n=O(e),r=Y(e),i=$t(e),o=this.extractRetryAfterMs(e);return{stage:"transport",...n!==void 0?{httpStatus:n}:{},...r!==""&&/^[\w.:-]{1,200}$/.test(r)?{upstreamCode:r}:{},...i!==void 0?{requestId:i}:{},...o!==void 0?{retryAfterMs:o}:{},...e instanceof g?e.metadata:{}}}parseContextOverflow(e){let n=V(S(e));if(n.inputTokensKind!=="exact"||n.inputTokens===void 0||n.contextWindow===void 0)return;let r=n.contextWindow-n.inputTokens-1e3;return r>=3e3?r:void 0}isContextOverflowError(e){return O(e)===429?!1:ze(S(e))||this.providerErrorMetadata(e).upstreamCode==="context_length_exceeded"}async withRateLimit(e,n,r=3,i,o,a){let d=!1,f=this.pendingLegacyMaxOutputTokensOverride;this.pendingLegacyMaxOutputTokensOverride=void 0;let c={...f===void 0?{}:{maxOutputTokensOverride:f},suppressReasoningEffort:!1};for(let l=0;l<r;l++)try{return await this.activeLegacyRequestOverride.run(c.maxOutputTokensOverride===void 0?{}:{maxOutputTokensOverride:c.maxOutputTokensOverride},()=>xe(this.name,a?.model??this.getModel(),()=>e(c),this.requestObservationBoundary==="physical_attempt"))}catch(u){let w=Ut(u);if(w)throw w;if(u instanceof K)throw u;let h=N(u),y=X(h,"x-should-retry"),R=L(u);if(!R&&y==="false"&&this.isContextOverflowError(u))throw new K(V(S(u)),this.name,{...this.providerErrorMetadata(u),retryable:!1});if(R||y==="false"||u instanceof g&&u.metadata?.retryable===!1)throw new g(`${this.name} API error: ${u instanceof Error?u.message:S(u)}`,this.name,{...this.providerErrorMetadata(u),retryable:!1});let x=O(u);if(l<r-1&&!c.disablePreferredToolConstraints&&a?.tools?.some(p=>p.strict==="prefer"||p.grammar?.mode==="prefer")&&Pe(x,S(u))){c.disablePreferredToolConstraints=!0;continue}if(x===408||x===409||x!==void 0&&x>=500||x!==429&&y==="true"&&!this.isContextOverflowError(u)){if(l===r-1)throw new g(u instanceof Error?u.message:String(u),this.name,this.providerErrorMetadata(u));let p=F(h,{attempt:l,baseBackoffMs:500});x!==void 0&&x>=500&&o?.({provider:this.name,...p,reason:"overloaded",attempt:l+1,maxAttempts:r}),i?.(l+1,r,p.waitMs),await ce(p.waitMs,n);continue}if(!n?.aborted&&l<r-1&&u instanceof Error&&!pe(u)&&(Ye(u)||await Qe(u,"APIConnectionError"))){this.onStaleConnection(),await ce(F({},{attempt:l,baseBackoffMs:500}).waitMs,n);continue}if(r>1&&this.isContextOverflowError(u)&&c.maxOutputTokensOverride===void 0){let p=this.parseContextOverflow(u),m=c.maxOutputTokensLimit;if(p&&(m===void 0||p<m)){c.maxOutputTokensOverride=p,i?.(l+1,r,0);continue}}if(this.isContextOverflowError(u))throw new K(V(S(u)),this.name,this.providerErrorMetadata(u));if(this.isRateLimitError(u)){if(l===r-1){let D=S(u).trim(),T=D?`
|
|
3
|
+
${D}`:"",_=this.providerErrorMetadata(u);throw new Ee(`API rate limit exceeded after ${r} retries. Please wait and try again later.${T}`,_.retryAfterMs??6e4,_)}let p=N(u)??{},m=F(p,{attempt:l,baseBackoffMs:500,maxBackoffMs:32e3,withJitter:!0}),E=m.waitMs,M=this.classifyRateLimitReason(u);if(o?.({provider:this.name,waitMs:E,reason:M,source:m.source,attempt:l+1,maxAttempts:r}),i?i(l+1,r,E):o||console.log(`[Rate Limit] Retrying in ${E/1e3}s (${l+1}/${r})...`),n?.aborted||(await ce(E,n),n?.aborted))throw G();continue}if(r>1&&this.useLegacyReasoningFallback&&a&&!d){let p=A(u,a.effort);if(p){a.onRejected?.({provider:this.name,model:a.model,effort:p.rejectedEffort}),c.suppressReasoningEffort=!0,d=!0;continue}}if(a&&d){let p=A(u,a.effort);if(p)throw new ve(`${this.name} rejected reasoning effort "${p.rejectedEffort}" even after dropping it.`,this.name,p.rejectedEffort,a.model)}if(u instanceof Error){if(u.name==="TimeoutError")throw u;if(n?.aborted&&(u.name==="AbortError"||await Qe(u,"APIUserAbortError")))throw u.name==="AbortError"?u:new DOMException(u.message||"Request aborted","AbortError");let p=Y(u);throw(p==="ECONNRESET"||p==="EPIPE")&&this.onStaleConnection(),u instanceof g?u:pe(u)?ne(u,new ye(`${this.name} API error: ${u.message}`,!0)):ne(u,new g(`${this.name} API error: ${u.message}`,this.name,this.providerErrorMetadata(u)))}throw u}throw new he("Unexpected end of withRateLimit")}};var qt=8e3;async function et(t){if(t.strategy==="unsupported")return{ok:!1,error:"unsupported",strategy:"unsupported",durationMs:0,approxTokensSpent:0,message:"Provider does not support credential verification"};let e=t.runners.find(c=>c.strategy===t.strategy);if(!e)return{ok:!1,error:"unsupported",strategy:t.strategy,durationMs:0,approxTokensSpent:0,message:`verifyStrategy="${t.strategy}" is not implemented for this provider's base class`};if(t.signal?.aborted)return{ok:!1,error:"unknown",strategy:t.strategy,durationMs:0,approxTokensSpent:0,message:"caller aborted before verifyCredential started"};let n=new AbortController,r=t.timeoutMs??qt,i,o=s(c=>{i||(i=c),n.abort()},"recordAbort"),a=setTimeout(()=>o("timeout"),r),d=s(()=>o("parent"),"onParentAbort");t.signal&&t.signal.addEventListener("abort",d,{once:!0});let f=Date.now();try{return await e.run(n.signal),{ok:!0,strategy:t.strategy,durationMs:Date.now()-f,approxTokensSpent:e.approxTokensSpent}}catch(c){return Kt(c,{strategy:t.strategy,durationMs:Date.now()-f,approxTokensSpent:0,abortCause:i,providerName:t.providerName})}finally{clearTimeout(a),t.signal&&t.signal.removeEventListener("abort",d)}}s(et,"runVerifyCredential");function Bt(t){return t.replace(/\bsk-[A-Za-z0-9_-]{6,}/g,"sk-***")}s(Bt,"redactKeyMaterial");function Kt(t,e){let n=Ae(t),r=n,i=r.status??r.statusCode??r.response?.status,o=Bt(String(r.message??n)).slice(0,240),a=r.cause?.code??r.code,d=r.constructor?.name??"",f;return e.abortCause==="timeout"?f="timeout":e.abortCause==="parent"?f="unknown":d==="AuthenticationError"||d==="PermissionDeniedError"||i===401||i===403?f="unauthorized":i===429?f="rate_limited":i===400&&e.strategy==="count-tokens"&&e.providerName==="kimi-code"?f="unauthorized":i!==void 0&&i>=500&&i<600?f="server_error":a!==void 0&&/ENOTFOUND|ECONNREFUSED|ECONNRESET|EAI_AGAIN|EPIPE|ETIMEDOUT|ENETUNREACH|ENETDOWN|EHOSTUNREACH/i.test(a)?f="network":/timeout/i.test(o)?f="timeout":f="unknown",{ok:!1,error:f,status:i,message:o,durationMs:e.durationMs,approxTokensSpent:e.approxTokensSpent,strategy:e.strategy}}s(Kt,"classifyVerifyError");import{createHash as Ht}from"node:crypto";import{AsyncLocalStorage as Wt}from"node:async_hooks";import{existsSync as tt}from"node:fs";import{createRequire as Xt}from"node:module";import nt from"node:path";import{Worker as zt}from"node:worker_threads";var Vt={jpg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp"},rt=10*1024*1024,Gt=4e7,Yt=1e4,Jt=256,k=new Map,Q,Qt=Wt.snapshot(),Zt=`
|
|
4
|
+
const { parentPort, workerData } = require('node:worker_threads');
|
|
5
|
+
let photon;
|
|
6
|
+
try { photon = require(workerData.modulePath); }
|
|
7
|
+
catch { parentPort.postMessage('unavailable'); }
|
|
8
|
+
if (photon) {
|
|
9
|
+
let image;
|
|
10
|
+
try {
|
|
11
|
+
image = photon.PhotonImage.new_from_byteslice(workerData.bytes);
|
|
12
|
+
parentPort.postMessage(image.get_width() > 0 && image.get_height() > 0 ? 'valid' : 'invalid');
|
|
13
|
+
} catch (error) {
|
|
14
|
+
parentPort.postMessage(/memory|allocation|limit/i.test(String(error)) ? 'unavailable' : 'invalid');
|
|
15
|
+
} finally { if (image) image.free(); }
|
|
16
|
+
}
|
|
17
|
+
`;function en(){let t=nt.join(nt.dirname(process.execPath),"image-codec","photon_rs.js");if(process.env.KODAX_BUNDLED==="true")return tt(t)?t:void 0;try{return Xt(import.meta.url).resolve("@silvia-odwyer/photon-node")}catch{return tt(t)?t:void 0}}s(en,"codecPath");async function tn(t,e,n){if(n<=0)return{status:"unverified",reason:"processing_limit",mediaType:e};let r=en();return r?new Promise(i=>{let o;try{o=new zt(Zt,{eval:!0,workerData:{modulePath:r,bytes:t},resourceLimits:{maxOldGenerationSizeMb:128}})}catch{i({status:"unverified",reason:"decoder_unavailable",mediaType:e});return}let a=!1,d=s(c=>{a||(a=!0,clearTimeout(f),o.terminate().then(()=>i(c==="valid"?{status:c,mediaType:e}:c==="invalid"?{status:c}:{status:"unverified",reason:"decoder_unavailable",mediaType:e}),()=>i({status:"unverified",reason:"decoder_unavailable",mediaType:e})))},"finish"),f=setTimeout(()=>d("unavailable"),n);o.once("message",d),o.once("error",()=>d("unavailable")),o.once("exit",()=>d("unavailable"))}):{status:"unverified",reason:"decoder_unavailable",mediaType:e}}s(tn,"decode");async function nn(t){let e=performance.now()+Yt;if(!t.length)return{status:"invalid"};if(t.length>rt)return{status:"unverified",reason:"processing_limit"};let n;try{({imageSize:n}=await import("image-size"))}catch{return{status:"unverified",reason:"decoder_unavailable"}}let r;try{r=n(t)}catch{return{status:"invalid"}}let i=Vt[r.type??""];if(!i)return{status:"unverified",reason:"unsupported_format"};if(!r.width||!r.height)return{status:"invalid"};if(r.width*r.height>Gt)return{status:"unverified",reason:"processing_limit",mediaType:i};let o=(Q??Promise.resolve()).then(()=>tn(t,i,e-performance.now())),a=o.then(()=>{},()=>{});return Q=a,a.then(()=>{Q===a&&(Q=void 0)}),o}s(nn,"inspect");async function me(t){if(t.length>rt)return{status:"unverified",reason:"processing_limit"};let e=Ht("sha256").update(t).digest("hex"),n=k.get(e);n||(n=Qt(()=>nn(Buffer.from(t))),k.set(e,n),k.size>Jt&&k.delete(k.keys().next().value));try{let r=await n;return k.get(e)===n&&(r.status==="unverified"?k.delete(e):k.set(e,r)),r}catch(r){throw k.get(e)===n&&k.delete(e),r}}s(me,"validateImageBytes");import{readFile as rn,stat as on}from"node:fs/promises";import sn from"node:path";import{AsyncLocalStorage as an}from"node:async_hooks";import{createHash as it}from"node:crypto";var un={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},fn="[Historical image unavailable: the local attachment file is missing.]",Yr="[Image content omitted: this provider does not support inline images in tool results. Visual properties of this image are unverified.]",Jr="[Image content omitted: the selected model does not support image input. Visual properties of this image are unverified.]",dn="[Image unavailable: this attachment cannot be decoded. Re-extract or replace this image; other content remains available.]",v=new an;function Qr(t,e,n){return v.run({images:new WeakMap,signal:e,shouldPrepare:n},t)}s(Qr,"withPreparedImageHistory");function cn(t){return v.getStore()?.signal?.throwIfAborted(),ge(me(t))}s(cn,"validateImageBytesInRun");function Zr(t,e,n){if(v.getStore()?.shouldPrepare?.()===!1)return;let r=v.getStore()?.images;if(!r)return;v.getStore()?.signal?.throwIfAborted();let i={image:at(e,t.path,t.mediaType,n)};r.set(t,{path:t.path,mediaType:t.mediaType,result:i,value:Promise.resolve(i)})}s(Zr,"prepareValidatedImageBlock");function ei(t){let e=v.getStore()?.images.get(t);if(!e||e.path!==t.path||e.mediaType!==t.mediaType||!e.result||!("image"in e.result))return;let n=e.result.image;return e.diagnostic??="placeholder"in n?n:{dataHash:it("sha256").update(Buffer.from(n.data,"base64")).digest("hex"),mediaType:n.mediaType,...n.notice?{notice:n.notice}:{}},e.diagnostic}s(ei,"getPreparedImageDiagnostic");async function ti(t){let e=await ln(t);if("placeholder"in e)return e;let n=Buffer.from(e.data,"base64");return{validation:await cn(n),dataHash:it("sha256").update(n).digest("hex")}}s(ti,"inspectPreparedImage");function ni(t){if(v.getStore()?.shouldPrepare?.()===!1)return;let e=v.getStore()?.images;if(!e)return;let n=[],r=s(i=>{let o=e.get(i);(!o?.result||o.path!==i.path||o.mediaType!==i.mediaType)&&n.push(i)},"collect");for(let i of t)if(typeof i.content!="string"){for(let o of i.content)if(o.type==="image"&&r(o),o.type==="tool_result"&&typeof o.content!="string")for(let a of o.content)a.type==="image"&&r(a)}if(n.length)return(async()=>{for(let i of n)v.getStore()?.signal?.throwIfAborted(),await ge(ot(e,i).value)})()}s(ni,"prepareHistoryImages");async function ln(t){let e=v.getStore()?.images;if(!e)return st(t.path,t.mediaType);v.getStore()?.signal?.throwIfAborted();let n=ot(e,t),r=await ge(n.value);if("image"in r)return r.image;throw e.get(t)===n&&e.delete(t),r.error}s(ln,"prepareImageBlock");function ge(t){let e=v.getStore()?.signal;return e?(e.throwIfAborted(),new Promise((n,r)=>{let i=s(()=>{e.removeEventListener("abort",i),r(e.reason)},"abort");e.addEventListener("abort",i,{once:!0}),t.then(o=>{e.removeEventListener("abort",i),n(o)},o=>{e.removeEventListener("abort",i),r(o)})})):t}s(ge,"waitForPreparation");function ot(t,e){let n=t.get(e);return n&&n.path===e.path&&n.mediaType===e.mediaType?n:pn(t,e,st(e.path,e.mediaType))}s(ot,"prepareEntry");function pn(t,e,n){let r={path:e.path,mediaType:e.mediaType,value:n.then(i=>r.result={image:i},i=>r.result={error:i})};return t.set(e,r),r}s(pn,"rememberEntry");async function st(t,e){let n;try{n=await rn(t)}catch(r){let i=r.code;if(i==="ENOENT"||i==="ENOTDIR")return{placeholder:fn};throw r}return mn(n,t,e)}s(st,"prepareImageFile");async function mn(t,e,n){let r=await me(t);return at(t,e,n,r)}s(mn,"prepareImageBytes");function at(t,e,n,r){return r.status==="invalid"?{placeholder:dn}:{data:t.toString("base64"),mediaType:r.mediaType??gn(e,n),...r.status==="unverified"?{notice:`[Local image validation unavailable (${r.reason}); original image bytes retained.]`}:{}}}s(at,"serializeValidatedImage");async function ri(t){try{return await on(t),!1}catch(e){let n=e.code;return n==="ENOENT"||n==="ENOTDIR"}}s(ri,"isImageFileMissing");function gn(t,e){return e??un[sn.extname(t).toLowerCase()]??"image/png"}s(gn,"resolveImageMediaType");var ut=class extends J{static{s(this,"KodaXNativeProvider")}name;config;nativeApi;usesScopedReasoningLearning(){return!0}getReasoningApi(){return this.nativeApi}supportsThinking=!0;requestObservationBoundary="physical_attempt";useLegacyReasoningFallback=!1;constructor(e,n,r){super(),this.name=e,this.config=n,this.nativeApi=r}supportsEphemeralSuffix(){return!0}usesPromptCacheAffinity(){return!1}supportsNonStreamingFallback(){return!0}getGenerationSource(e){return{provider:this.name,api:this.nativeApi,model:this.getWireModelId(e),baseUrl:this.config.baseUrl,credentialScope:this.getRequestCredentialFingerprint()??"unavailable"}}stream(e,n,r,i,o,a){return this.run(!0,e,n,r,i,o,a)}complete(e,n,r,i,o,a){return this.run(!1,e,n,r,i,o,a)}verifyCredential(e){return this.config.verifyStrategy==="unsupported"?super.verifyCredential(e):et({strategy:"minimal-message",providerName:this.name,...e,runners:[{strategy:"minimal-message",approxTokensSpent:22,run:s(n=>_e(this,"utility",n,r=>this.complete([{role:"user",content:"hi"}],[],"",void 0,{singleAttempt:!0,maxOutputTokensOverride:16},r).then(()=>{})),"run")}]})}protocolError(e,n=!1){return new g(e,this.name,{failureCode:"response_stream_error",stage:"response_stream",retryable:n})}assertCredential(){this.getApiKey()}invokeNative(e){return this.invoke(e)}boundThinkingBudget(e,n){let r=e.thinkingBudgetCap;if(!Number.isSafeInteger(n)||n<-1||r!==void 0&&(!Number.isSafeInteger(r)||r<=0))throw this.protocolError("Invalid declared thinking budget or cap.");return r===void 0?n:n===-1?r:Math.min(n,r)}finish(e,n,r,i){e.signal?.throwIfAborted();let o=n.filter(l=>l.type==="text"),a=n.filter(l=>l.type==="thinking"||l.type==="redacted_thinking"),d=n.filter(l=>l.type==="tool_use");if(!e.streaming){for(let l of o)e.options?.onTextDelta?.(l.text);for(let l of a)l.type==="thinking"&&e.options?.onThinkingDelta?.(l.thinking)}let f=a.filter(l=>l.type==="thinking").map(l=>l.thinking).join("");f&&e.options?.onThinkingEnd?.(f),e.signal?.throwIfAborted();let c={provider:this.name,model:e.logicalModel,requestedEffort:e.requestedEffort,sentEffort:e.sentReasoningEffort,verified:!1,fallbacks:e.reasoningFallbacks?.length?e.reasoningFallbacks:e.requestedEffort!=="auto"&&e.requestedEffort!==e.sentReasoningEffort?[{effort:e.requestedEffort,reason:"profile"}]:[]};return e.options?.onReasoningResolved?.(c),{contentBlocks:n,textBlocks:o,thinkingBlocks:a,toolBlocks:d,usage:r,stopReason:i==="end_turn"&&d.length?"tool_use":i,reasoningResolution:c}}async run(e,n,r,i,o,a,d){if(a?.forcedToolName&&!r.some(m=>m.name===a.forcedToolName))throw this.protocolError("Forced tool is absent from current tools.");let f=a?.modelOverride??this.getModel(),c=this.normalizeReasoning(o);this.validateExplicitReasoningEffort(c,f);let l=this.getReasoningProfile(f),u=l?this.resolveReasoningProfileIntent(c,l,f):void 0,w=c.effortSource==="omitted"||c.effort==="auto",h=l?.effortStrategy==="none"||l?.effortStrategy==="prompt-only"?void 0:w?l?.defaultEffort??l?.supportedEfforts?.find(m=>m.isDefault)?.value:u?.effort,y=h==="none"||h!==void 0&&l?.disabledEfforts?.includes(h)===!0||!w&&u?.disabled===!0,R=y||h===void 0?void 0:l?.effortAliases?.[h]??h,x=[i,...n.filter(m=>m.role==="system").map(m=>typeof m.content=="string"?m.content:m.content.filter(E=>E.type==="text").map(E=>E.text).join(`
|
|
18
|
+
`))].filter(m=>m.trim()),p=n.filter(m=>m.role!=="system");return a?.ephemeralSuffix?.content&&p.push({role:"user",content:a.ephemeralSuffix.content}),this.withRequestContext(a,d,m=>this.withRateLimit(async E=>{m?.throwIfAborted(),this.assertCredential();let M=this.getEffectiveMaxOutputTokens(f,a?.maxOutputTokensOverride);E.maxOutputTokensLimit??=M;let D=this.knownReasoningRejections(f,a),T=E.suppressReasoningEffort||D.includes("*")||h!==void 0&&D.includes(h),_={streaming:e,messages:p,tools:De(r,E.disablePreferredToolConstraints),system:x.join(`
|
|
19
|
+
|
|
20
|
+
`),model:this.getWireModelId(f),source:this.getGenerationSource(f),maxOutputTokens:Math.min(E.maxOutputTokensOverride??M,M),profile:l,toolCapabilities:this.getToolCapabilities(f),requestedEffort:c.effortSource==="omitted"?"auto":c.effort,logicalModel:f,...T&&!E.suppressReasoningEffort?{reasoningFallbacks:[{effort:h,reason:"cached-rejection"}]}:{},effort:T?void 0:R,disabled:T?!1:y,thinkingBudgetCap:this.getEffectiveThinkingBudgetCap(f),options:a,signal:m};T&&(_.profile=void 0);try{return await this.invoke(_)}catch(Z){let B=_.sentReasoningEffort===void 0?null:A(Z,_.sentReasoningEffort);if(!B||(this.rememberReasoningRejection(f,B.parameterRejected?"*":B.rejectedEffort,a),a?.singleAttempt||m?.aborted||T))throw Z;return this.invoke({..._,profile:void 0,effort:void 0,disabled:!1,sentReasoningEffort:void 0,reasoningFallbacks:[{effort:_.sentReasoningEffort,reason:B.parameterRejected?"unsupported-parameter":"unsupported-effort"}]})}},m,a?.singleAttempt?1:3,a?.onRateLimit,a?.onRetryAfter,{model:f,tools:r}))}};async function hn(t,e,n=!1){try{return await ke(be(globalThis.fetch),n)(t,{...e,redirect:"error"})}catch(r){throw Ge(r),r}}s(hn,"nativeFetch");async function Ei(t,e){let n=await hn(t,e);if(n.ok)return n;let r=await n.text(),i;try{i=JSON.parse(r)}catch{i=void 0}let o=i&&typeof i=="object"&&"error"in i?i.error:i,a=o&&typeof o=="object"&&"message"in o&&typeof o.message=="string"?o.message:`Upstream HTTP ${n.status}`;throw Object.assign(new Error(a),{status:n.status,headers:n.headers,error:o})}s(Ei,"nativeResponse");function bi(t,e){return t.provider===e.provider&&t.api===e.api&&t.model===e.model&&t.baseUrl===e.baseUrl&&t.credentialScope===e.credentialScope}s(bi,"sameCloudSource");function xi(t){let e=[],n=new Set,r=new Set,i=s(()=>{n.size&&e.push({role:"user",content:[...n].map(o=>({type:"tool_result",tool_use_id:o,content:`${Me} Tool execution was interrupted; no result is available.`,is_error:!0}))}),n.clear()},"settle");for(let o of t){if(typeof o.content=="string"){i(),e.push(o);continue}if(o.role==="assistant"){i();for(let a of o.content)if(a.type==="tool_use"){if(!a.id||r.has(a.id))throw new Error("Cloud history has an empty or duplicate tool call ID.");n.add(a.id),r.add(a.id)}e.push(o)}else{let a=o.content.filter(f=>f.type==="tool_result").filter(f=>n.delete(f.tool_use_id));a.length&&e.push({...o,content:a});let d=o.content.filter(f=>f.type!=="tool_result");d.length&&(i(),e.push({...o,content:d}))}}return i(),e}s(xi,"repairCloudToolHistory");export{Oe as a,En as b,yn as c,Me as d,vn as e,xn as f,ie as g,kn as h,_n as i,De as j,Ie as k,Sn as l,ct as m,lt as n,An as o,On as p,W as q,Fe as r,Ne as s,L as t,A as u,F as v,N as w,oe as x,$n as y,ht as z,qn as A,Et as B,$e as C,qe as D,Be as E,zn as F,q as G,yt as H,vt as I,Vn as J,Ke as K,Gn as L,de as M,z as N,kt as O,Yn as P,_t as Q,He as R,Jn as S,Qn as T,Zn as U,er as V,tr as W,nr as X,J as Y,et as Z,Kt as _,me as $,fn as aa,Yr as ba,Jr as ca,Qr as da,cn as ea,Zr as fa,ei as ga,ti as ha,ni as ia,ln as ja,ri as ka,ut as la,bi as ma,xi as na,hn as oa,Ei as pa};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{a as
|
|
2
|
+
import{a as Z,b as _,c as Ne}from"./chunk-576AAIQM.js";import{a as Ee,b as K,q as Be,r as He,s as A,t as We}from"./chunk-OXCB2TRF.js";import{f as je,g as Le}from"./chunk-ISLK6R2P.js";import{Ac as Re,Od as Me,Qd as $e,Vd as $,a as z,da as Y,ea as Pe,fc as J,hc as Q,he as _e,ie as Oe,ke as De,ma as Se,pb as Te,xc as Ce,zc as Ae}from"./chunk-HJLYZ5AX.js";import{c as be}from"./chunk-GZUWQZJD.js";import{ff as ke,qf as Ie}from"./chunk-DAQGOWKD.js";import{E as X,h as S,q as xe,x as ye}from"./chunk-OMVAPRQI.js";import{b as q,d as D}from"./chunk-OC3DQXN6.js";import{N as ve,q as we}from"./chunk-4FVCMKG2.js";import{D as he,E as B,F as pe,G as H,H as W,n as me}from"./chunk-V5RCDBKU.js";import{a}from"./chunk-V4WSBIXB.js";function ee(t){if(t.workMode!==void 0&&!["coding","agent","script"].includes(t.workMode))throw new Error(`Unsupported work mode: ${String(t.workMode)}. Supported modes: agent, coding, script.`);let e=t.context;if(e?.workModePolicy!==void 0&&e.workModePolicy!=="intersect")throw new Error(`Unsupported work mode policy: ${String(e.workModePolicy)}. Supported policy: intersect.`);return e?.currentAgentId||e?.workModePolicy!=="intersect"&&(e?.agentProfile||e?.systemPromptOverride||e?.toolVisibilityPolicy)?"coding":t.workMode??"coding"}a(ee,"resolveWorkMode");async function wn(t){if(ee(t)!=="script")return;let{runScriptCell:e}=await import("./cell-LV7MNPNQ.js"),{SCRIPT_MODEL_LIMITS:r}=await import("./model-MT3WJX76.js");try{let n=await e({code:"return true;",toolNames:[],limits:{...r,timeoutMs:5e3},invoke:a(async()=>{throw new Error("Script readiness check has no tool authority.")},"invoke")});if(n.status!=="completed"||n.value!==!0)throw new Error(n.error??n.status)}catch(n){throw new Error(`Script executor unavailable: ${n instanceof Error?n.message:String(n)}`,{cause:n})}}a(wn,"assertWorkModeAvailable");var yt=Object.freeze({1:"ERROR",2:"WARN",3:"INFO",4:"HINT"});function kt(t){let e=yt[t.severity??1]??"ERROR",r=t.range.start.line+1,n=t.range.start.character+1;return`${e} [${r}:${n}] ${t.message}`}a(kt,"pretty");function qe(t,e){let r=e.filter(s=>(s.severity??1)===1);if(r.length===0)return"";let n=r.slice(0,20),i=r.length-20,o=i>0?`
|
|
3
3
|
... and ${i} more`:"";return`<diagnostics file="${t}">
|
|
4
4
|
${n.map(kt).join(`
|
|
5
5
|
`)}${o}
|
|
6
|
-
</diagnostics>`}a(qe,"report");import{existsSync as ze,readFileSync as It,statSync as bt}from"fs";import T from"path";import{createRequire as Fe}from"module";var
|
|
6
|
+
</diagnostics>`}a(qe,"report");import{existsSync as ze,readFileSync as It,statSync as bt}from"fs";import T from"path";import{createRequire as Fe}from"module";var Et=process.platform==="win32",Pt=Et?(process.env.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""];function Ge(t){try{return ze(t)&&bt(t).isFile()}catch{return!1}}a(Ge,"isFile");function Ue(t){let e=(process.env.PATH??"").split(T.delimiter).filter(Boolean);for(let r of e)for(let n of Pt){let i=n&&t.toLowerCase().endsWith(n.toLowerCase()),o=T.join(r,i?t:t+n);if(Ge(o))return o}}a(Ue,"whichGlobal");function Ve(t){return Fe(T.join(t,"__kodax_lsp_resolve__.js"))}a(Ve,"requireFrom");function te(t,e,r){let n;try{n=Ve(e).resolve(`${t}/package.json`)}catch{return}let i;try{i=JSON.parse(It(n,"utf8")).bin}catch{return}let o;if(typeof i=="string")o=i;else if(i&&typeof i=="object"){let c=i;o=r&&c[r]||c[t]||Object.values(c)[0]}if(!o)return;let s=T.join(T.dirname(n),o);if(Ge(s))return{command:process.execPath,args:[s],kind:"javascript"}}a(te,"resolveNodePackageBin");function Xe(t,e){try{return Ve(t).resolve("typescript/lib/tsserver.js")}catch{}if(e)try{return Fe(e).resolve("typescript/lib/tsserver.js")}catch{return}}a(Xe,"resolveTsserver");function ne(t,e,r){let n=T.resolve(r),i=_(n),o=T.dirname(T.resolve(t));if(!_(o).startsWith(i))return n;for(;;){for(let c of e)if(ze(T.join(o,c)))return o;if(_(o)===i)return n;let s=T.dirname(o);if(s===o)return n;o=s}}a(ne,"findNearestRoot");function re(){return process.env.KODAX_LSP_DOWNLOAD==="1"&&process.env.KODAX_LSP_NO_DOWNLOAD!=="1"}a(re,"isAutoInstallEnabled");var St=5*6e4;function Ke(t,e={}){return e.signal?.aborted?Promise.resolve(!1):new Promise(r=>{let n=!1,i,o,s=a(f=>{n||(n=!0,o&&clearTimeout(o),i&&e.signal?.removeEventListener("abort",i),r(f))},"done"),c=Ne(t.command,t.args,{stdio:"ignore",env:process.env,detached:process.platform!=="win32"});ye(c),i=a(()=>{X(c),s(!1)},"onAbort"),e.signal?.addEventListener("abort",i,{once:!0}),o=setTimeout(()=>{X(c),e.debug?.(`install timed out: ${t.command} ${t.args.join(" ")}`),s(!1)},e.timeoutMs??St),c.on("error",f=>{e.debug?.(`install failed to start: ${f.message}`),s(!1)}),c.on("exit",f=>s(f===0))})}a(Ke,"runInstallCommand");function j(t,e=[]){let r=Ue(t);return r?{command:r,args:e}:void 0}a(j,"globalLaunch");function Tt({root:t,moduleUrl:e}){let r=Xe(t,e);if(!r)return;let i=te("typescript-language-server",t,"typescript-language-server")??j("typescript-language-server");if(i)return{command:i.command,args:[...i.args,"--stdio"],kind:i.kind,initializationOptions:{tsserver:{path:r}}}}a(Tt,"discoverTypescript");var Ct={id:"typescript",languageIds:["typescript","typescriptreact","javascript","javascriptreact"],rootMarkers:["tsconfig.json","jsconfig.json","package.json",".git"],discover:Tt,installGuidance:"Install the TypeScript language server for in-editor diagnostics: `npm i -D typescript typescript-language-server` (project-local, recommended) or `npm i -g typescript-language-server`."};function At({root:t}){let r=te("pyright",t,"pyright-langserver")??j("pyright-langserver");if(r)return{command:r.command,args:[...r.args,"--stdio"],kind:r.kind}}a(At,"discoverPyright");var Rt={id:"pyright",languageIds:["python"],rootMarkers:["pyproject.toml","setup.py","setup.cfg","requirements.txt","Pipfile",".git"],discover:At,installGuidance:"Install pyright for Python diagnostics: `npm i -g pyright` (or `pip install pyright`)."};function Ye(){return j("gopls")}a(Ye,"discoverGopls");var Mt={id:"gopls",languageIds:["go"],rootMarkers:["go.mod","go.work",".git"],discover:Ye,async acquire({signal:t,onProgress:e,debug:r}){return e?.("Installing gopls via `go install`\u2026"),await Ke({command:"go",args:["install","golang.org/x/tools/gopls@latest"]},{signal:t,debug:r})?Ye():void 0},installGuidance:"Install gopls for Go diagnostics: `go install golang.org/x/tools/gopls@latest` (requires the Go toolchain; ensure GOBIN is on PATH)."};function $t(){return j("rust-analyzer")}a($t,"discoverRustAnalyzer");var _t={id:"rust-analyzer",languageIds:["rust"],rootMarkers:["Cargo.toml","Cargo.lock","rust-project.json",".git"],discover:$t,installGuidance:"Install rust-analyzer for Rust diagnostics: `rustup component add rust-analyzer` (or download a release from https://github.com/rust-lang/rust-analyzer/releases)."};function Ot(){return j("jdtls")}a(Ot,"discoverJdtls");var Dt={id:"jdtls",languageIds:["java"],rootMarkers:["pom.xml","build.gradle","build.gradle.kts","settings.gradle",".git"],discover:Ot,installGuidance:"Install the Eclipse JDT language server (jdtls) for Java diagnostics and put its launcher on PATH; it requires a Java 21+ runtime. See https://github.com/eclipse-jdtls/eclipse.jdt.ls."},Je=Object.freeze([Ct,Rt,Mt,_t,Dt]);import x from"path";import{fileURLToPath as jt}from"url";function oe(t){try{return jt(t)}catch{return t}}a(oe,"uriToPath");function G(t,e){return t.length===0?e:t.map(r=>`${oe(r.uri)}:${r.range.start.line+1}:${r.range.start.character+1}`).join(`
|
|
7
7
|
`)}a(G,"formatLocations");function Qe(t){return typeof t=="string"?t:t.value}a(Qe,"markedToString");function Ze(t){if(!t)return"No hover information.";let e=t.contents;return typeof e=="string"?e.trim()||"No hover information.":Array.isArray(e)?e.map(Qe).join(`
|
|
8
8
|
`).trim()||"No hover information.":"kind"in e?e.value.trim()||"No hover information.":Qe(e).trim()||"No hover information."}a(Ze,"formatHover");var Lt=Object.freeze({1:"File",2:"Module",3:"Namespace",4:"Package",5:"Class",6:"Method",7:"Property",8:"Field",9:"Constructor",10:"Enum",11:"Interface",12:"Function",13:"Variable",14:"Constant",22:"EnumMember",23:"Struct",26:"TypeParameter"});function F(t){return Lt[t]??"Symbol"}a(F,"kindName");function ie(t){return`${t.start.line+1}:${t.start.character+1}`}a(ie,"rangeStart");function Nt(t){let e=oe(t.uri);return"range"in t?`${e}:${ie(t.range)}`:e}a(Nt,"locationText");function et(t,e){if(t.length===0)return e;let r=[],n=a((i,o)=>{for(let s of i){let c=" ".repeat(o);"location"in s?r.push(`${c}${F(s.kind)} ${s.name} (${s.location.range.start.line+1})`):(r.push(`${c}${F(s.kind)} ${s.name} (${s.range.start.line+1})`),s.children&&s.children.length>0&&n(s.children,o+1))}},"walk");return n(t,0),r.join(`
|
|
9
9
|
`)}a(et,"formatSymbols");function tt(t,e){return t.length===0?e:t.map(r=>{let n=r.containerName?` in ${r.containerName}`:"";return`${F(r.kind)} ${r.name}${n} ${Nt(r.location)}`}).join(`
|
|
10
10
|
`)}a(tt,"formatWorkspaceSymbols");function ae(t){let e=t.detail?` - ${t.detail}`:"";return`${F(t.kind)} ${t.name} ${oe(t.uri)}:${ie(t.selectionRange)}${e}`}a(ae,"formatCallHierarchyItem");function nt(t){return t.length===0?"unknown call site":t.map(ie).join(", ")}a(nt,"formatRanges");function rt(t,e){return t.length===0?e:t.map(ae).join(`
|
|
11
11
|
`)}a(rt,"formatCallHierarchyItems");function ot(t,e){return t.length===0?e:t.map(r=>`${ae(r.from)} calls at ${nt(r.fromRanges)}`).join(`
|
|
12
12
|
`)}a(ot,"formatIncomingCalls");function it(t,e){return t.length===0?e:t.map(r=>`${ae(r.to)} called at ${nt(r.fromRanges)}`).join(`
|
|
13
|
-
`)}a(it,"formatOutgoingCalls");var Bt=5e3,se=class{static{a(this,"LspService")}config;clients=new Map;broken=new Set;spawning=new Map;servers;shuttingDown=!1;constructor(e={}){this.config=e,this.servers=e.servers??Je}async getDiagnosticsBlock(e,r={}){if(r.signal?.aborted)return"";let n=Z(e);if(!n)return"";let i=this.servers.filter(d=>d.languageIds.includes(n));if(i.length===0)return"";let o=x.resolve(e),s=r.gitRoot??x.dirname(o),c=this.config.documentTimeoutMs??Bt,f=[];for(let d of i){let
|
|
13
|
+
`)}a(it,"formatOutgoingCalls");var Bt=5e3,se=class{static{a(this,"LspService")}config;clients=new Map;broken=new Set;spawning=new Map;servers;shuttingDown=!1;constructor(e={}){this.config=e,this.servers=e.servers??Je}async getDiagnosticsBlock(e,r={}){if(r.signal?.aborted)return"";let n=Z(e);if(!n)return"";let i=this.servers.filter(d=>d.languageIds.includes(n));if(i.length===0)return"";let o=x.resolve(e),s=r.gitRoot??x.dirname(o),c=this.config.documentTimeoutMs??Bt,f=[];for(let d of i){let h=ne(o,d.rootMarkers,s),l=await this.getClient(d,h,r);l&&f.push(l)}if(f.length===0)return"";await Promise.all(f.map(async d=>{try{let h=await d.notifyOpenOrChange(o);await d.waitForDiagnostics(o,{afterMs:h,timeoutMs:c})}catch(h){this.config.debug?.(`diagnostics wait failed (${d.serverId}): ${h.message}`)}}));let u=[];for(let d of f)u.push(...d.diagnostics(o));let m=qe(o,u);return m?`
|
|
14
14
|
|
|
15
15
|
LSP errors detected in this file, please fix:
|
|
16
|
-
${
|
|
17
|
-
`)}}async workspaceClients(e){let r=x.resolve(e.gitRoot??process.cwd()),n=[];for(let i of this.servers){let o=await this.getClient(i,r,e);o&&n.push(o)}return n}async shutdownAll(){this.shuttingDown=!0;try{await Promise.all([...this.spawning.values()].map(r=>r.catch(()=>{})));let e=[...this.clients.values()];this.clients.clear(),this.broken.clear(),await Promise.all(e.map(r=>r.shutdown().catch(()=>{})))}finally{this.shuttingDown=!1}}killAllSync(){for(let e of this.clients.values())e.killSync();this.clients.clear()}resetBroken(e){e?this.broken.delete(e):this.broken.clear()}async getClient(e,r,n){let i=`${_(r)}|${e.id}`,o=this.clients.get(i);if(o)return o;if(this.broken.has(i))return;let s=this.spawning.get(i);if(s)return s;let c=this.spawnClient(e,r,i,n);this.spawning.set(i,c);try{return await c}finally{this.spawning.delete(i)}}async spawnClient(e,r,n,i){try{let o=e.discover({root:r,moduleUrl:this.config.moduleUrl});if(o||(o=await this.acquireIfEnabled(e,r,i)),!o){this.broken.add(n),this.config.debug?.(`${e.id} not installed at ${r} \u2014 ${e.installGuidance}`);return}i.onProgress?.(`Starting ${e.id} language server\u2026`);let c=await(this.config.createClient??(await import("./client-LTIFNED5.js")).createLspClient)({serverId:e.id,root:r,launch:o,debug:this.config.debug});if(this.shuttingDown){await c.shutdown().catch(()=>{});return}return this.clients.set(n,c),c}catch(o){this.broken.add(n),this.config.debug?.(`${e.id} failed to start at ${r}: ${o.message}`);return}}async acquireIfEnabled(e,r,n){if(!(!e.acquire||!re()))try{return await e.acquire({root:r,signal:n.signal,onProgress:n.onProgress,debug:this.config.debug})}catch(i){this.config.debug?.(`${e.id} auto-install failed: ${i.message}`);return}}},L,at=!1;function st(){let t=we()?.lsp;if(!(t===!1||t===void 0&&process.env.KODAX_LSP==="0"))return L||(L=new se({moduleUrl:import.meta.url,debug:process.env.KODAX_DEBUG_LSP?e=>S({source:"coding:lsp",level:"debug",message:e}):void 0}),!at&&!xe()&&(at=!0,process.once("exit",()=>L?.killAllSync()))),L}a(st,"getDefaultLspService");async function Kn(){await L?.shutdownAll()}a(Kn,"shutdownDefaultLspService");import{createHash as Ht}from"node:crypto";var ct=200;function ht(t,e){let r=t.checkpoint;if(!(!r||typeof r!="object"||Array.isArray(r)||!("kind"in r)||r.kind!=="generation"||r.actorPath!==e||r.actorTurnId!==t.turnId))return Pe(r.history)}a(ht,"readActorGenerationCheckpoint");var N=class{static{a(this,"CodingActorSession")}sessionOptions;controller;turnExecutors=new Map;turnCredentialAccess=new Map;turnEnvironments=new Map;environmentsByActor=new Map;clientTurnOwners=new Map;executingTurns=new Map;environment;activeBudget;constructor(e={}){this.sessionOptions=e,this.activeBudget=e.budget;let r={execute:a(n=>{let i=a(()=>{let s=a(async()=>{let m=this.turnEnvironments.get(n.turn.turnId);this.turnEnvironments.delete(n.turn.turnId);let l=P(n.turn.metadata?.executionKey),p=l?this.turnExecutors.get(l):void 0;if(p&&m===void 0)return p.execute(n);if(n.actor.kind==="external"&&e.executor)return e.executor.execute(n);let y;for(let g=n.actor.parentPath;g&&(y=this.environmentsByActor.get(g),!y);g=g.slice(0,g.lastIndexOf("/")));let w=m===void 0?y??this.environment:await m(n);if(!w)throw new Error("Actor session is not attached to an active KodaX run.");m!==void 0&&this.environmentsByActor.set(n.actor.path,w);try{n.turn.checkpoint&&w.options.context?.runtimeRunId&&await this.resumeGenerationChildren(w.options.context.runtimeRunId,n.actor.path);let g={...n,signal:w.signal?AbortSignal.any([n.signal,w.signal]):n.signal,actor:w.tools===void 0?n.actor:{...n.actor,capabilities:{...n.actor.capabilities,tools:w.tools.filter(b=>n.actor.capabilities.tools.includes("*")||n.actor.capabilities.tools.includes(b))}}},v=a(async()=>l?p?p.execute(g):(await import("./agent-adapter-TLWGGK3V.js")).resumeWorkflowGenerationTurn(g,{...w.parentCtx,actorHost:this,actorControl:this.controller.bind(n.actor.parentPath??"/root")},w.options):Gt(g,w.parentCtx,w.options,this.controller.bind(n.actor.path)),"operation"),I=await(m!==void 0&&w.run?w.run(v):v());return m!==void 0&&w.release?.(I),I}catch(g){throw m!==void 0&&w.release?.(void 0,g),g}},"executeTurn"),c=this.turnCredentialAccess.get(n.turn.turnId);if(this.turnCredentialAccess.delete(n.turn.turnId),n.actor.kind==="external"){if(c!==void 0)throw new Error("External Agent turns cannot bind Runtime Provider credentials; use credentialRef.");return pe(s)}if(c!==void 0)return zt(n,c.allowedProviders),lt(me(c),n.signal,s);let f=W();if(f===void 0)return s();let u=n.actor.capabilities.providers,h=f.filter(m=>u.includes("*")||u.includes(m)),d=H(h,{kind:"actor_turn",actorPath:n.actor.path,turnId:n.turn.turnId});return d===void 0?s():lt(d,n.signal,s)},"dispatch"),o=he({kind:"actor_turn",actorPath:n.actor.path,turnId:n.turn.turnId},i);return this.executingTurns.set(n.turn.turnId,{actorPath:n.actor.path,principalId:this.clientTurnOwners.get(n.turn.turnId)??this.turnOwner(n.actor.path),settled:o}),o.then(()=>this.executingTurns.delete(n.turn.turnId),()=>this.executingTurns.delete(n.turn.turnId)),o},"execute")};this.controller=new Ie({validateCheckpoint:a(async(n,i)=>{let o=ht(i,n.path);return!o||!e.historyStorage?!1:(await K(e.historyStorage,o)).scope==="managed-task-worker"},"validateCheckpoint"),maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,store:e.store,owner:e.owner,isOwnerAlive:e.isOwnerAlive,executor:r,budget:{admit:a(n=>this.activeBudget?.admit(n)??Promise.resolve({admitted:!0}),"admit"),refund:a(n=>this.activeBudget?.refund?.(n)??Promise.resolve(),"refund"),snapshot:a(()=>this.activeBudget?.snapshot?.(),"snapshot")},warn:a(n=>S({source:"coding:actors",level:"warn",message:n}),"warn"),onBackgroundError:a(n=>S({source:"coding:actors",level:"error",message:n instanceof Error?n.message:String(n)}),"onBackgroundError"),onHealthChanged:e.onHealthChanged,onMessageCommitted:a(n=>Ft(this.controller,n,e.sessionId),"onMessageCommitted")})}async initialize(){await this.controller.initialize()}attach(e,r,n="/root"){return this.environment={parentCtx:e,options:r},this.activeBudget=r.context?.managedWorkBudget?nn(r.context.managedWorkBudget):this.sessionOptions.budget,this.controller.bind(n)}rootControl(){return this.controller.bind("/root")}async resumeCheckpointTurn(e,r,n,i,o){let s=this.controller.get("/root",e).actor,c=this.controller.get("/root",e).turns.find(d=>d.turnId===r),f=P(c?.metadata?.executionKey),u=c?.checkpoint;if(f&&!this.turnExecutors.has(f)&&(!u||typeof u!="object"||Array.isArray(u)||!("workflow"in u)||!u.workflow||typeof u.workflow!="object"||Array.isArray(u.workflow)||!("customExecutor"in u.workflow)||u.workflow.customExecutor!==!1))throw new Error("Actor recovery requires its original executor binding.");let h=!1;try{return await this.controller.resumeCheckpointTurn(e,r,()=>{let d=n?.({actorPath:e,turnId:r,providers:s.capabilities.providers});if(d&&!s.capabilities.providers.includes("*")&&d.allowedProviders.some(m=>!s.capabilities.providers.includes(m)))throw new Error("Actor recovery credentials exceed the original provider ceiling.");h=!0,d&&this.turnCredentialAccess.set(r,d),i&&this.turnEnvironments.set(r,i),o&&this.clientTurnOwners.set(r,o)}),{actorPath:e,turnId:r,state:"running"}}catch(d){throw h&&(this.turnCredentialAccess.delete(r),this.turnEnvironments.delete(r),this.clientTurnOwners.delete(r)),d}}async resumeGenerationChildren(e,r="/root"){for(let n of this.rootControl().list().actors){if(n.parentPath!==r)continue;if(n.kind==="workflow"){await this.resumeGenerationChildren(e,n.path);continue}if(!n.currentTurnId)continue;let o=this.rootControl().get(n.path).turns.find(s=>s.turnId===n.currentTurnId)?.checkpoint;o&&typeof o=="object"&&"ownerRunId"in o&&o.ownerRunId===e&&await this.resumeCheckpointTurn(n.path,n.currentTurnId)}}spawnRoot(e,r,n,i){let o;return this.controller.spawn("/root",e,{...r,...n===void 0&&r?.executionPrincipalId===void 0?{}:{beforeLaunch:a(c=>{if(n!==void 0&&c.actor.kind==="external")throw dt();o=c.turn.turnId,r?.executionPrincipalId!==void 0&&this.clientTurnOwners.set(c.turn.turnId,r.executionPrincipalId),i!==void 0&&this.turnEnvironments.set(c.turn.turnId,i),n!==void 0&&this.turnCredentialAccess.set(c.turn.turnId,n({actorPath:c.actor.path,turnId:c.turn.turnId,providers:c.actor.capabilities.providers})),c.abortController.signal.addEventListener("abort",()=>this.turnCredentialAccess.delete(c.turn.turnId),{once:!0})},"beforeLaunch")}}).catch(c=>{throw o!==void 0&&this.turnCredentialAccess.delete(o),o!==void 0&&this.turnEnvironments.delete(o),o!==void 0&&this.clientTurnOwners.delete(o),c})}followupRoot(e,r,n,i,o=!1,s){let c,f=i===void 0?o?d=>{if(d.kind!=="external"&&d.currentTurnId===void 0)throw qt()}:void 0:d=>{if(d.kind==="external")throw dt();if(d.currentTurnId!==void 0)throw Wt(d.path)},u=i===void 0&&n?.executionPrincipalId===void 0?void 0:d=>{c=d.turn.turnId,n?.executionPrincipalId!==void 0&&this.clientTurnOwners.set(d.turn.turnId,n.executionPrincipalId),s!==void 0&&this.turnEnvironments.set(d.turn.turnId,s),i!==void 0&&this.turnCredentialAccess.set(d.turn.turnId,i({actorPath:d.actor.path,turnId:d.turn.turnId,providers:d.actor.capabilities.providers})),d.abortController.signal.addEventListener("abort",()=>this.turnCredentialAccess.delete(d.turn.turnId),{once:!0})};return this.controller.followup("/root",e,r,void 0,{...n,...i===void 0?{}:{requireNewTurn:!0},...f===void 0?{}:{validateTarget:f},...u===void 0?{}:{beforeLaunch:u}}).catch(d=>{throw c!==void 0&&this.turnCredentialAccess.delete(c),c!==void 0&&this.turnEnvironments.delete(c),c!==void 0&&this.clientTurnOwners.delete(c),d})}health(){return this.controller.healthSnapshot()}turnOwner(e){let r=new Map(this.rootControl().list().actors.map(n=>[n.path,n]));for(let n=r.get(e);n;n=n.parentPath?r.get(n.parentPath):void 0){let i=n.currentTurnId??n.turnIds.at(-1),o=i===void 0?void 0:this.clientTurnOwners.get(i);if(o!==void 0)return o}}independentTurnIds(){return new Set(this.rootControl().list().actors.flatMap(e=>e.currentTurnId&&(this.executingTurns.get(e.currentTurnId)?.principalId??this.turnOwner(e.path))!==void 0?[e.currentTurnId]:[]))}async quiesceClient(e){let r=this.rootControl().list(),n=new Map(r.actors.flatMap(s=>s.currentTurnId&&(this.executingTurns.get(s.currentTurnId)?.principalId??this.turnOwner(s.path))===e?[[s.currentTurnId,{actorPath:s.path,turnId:s.currentTurnId}]]:[]));for(let[s,c]of this.executingTurns)c.principalId===e&&n.set(s,{actorPath:c.actorPath,turnId:s});if(n.size===0)return{turns:[],unsettledTurnIds:[]};let i=new Set(r.actors.flatMap(s=>s.currentTurnId&&!n.has(s.currentTurnId)?[s.currentTurnId]:[]));await this.controller.quiesce("client exit requested",i);let o;try{await Promise.race([Promise.allSettled([...n.keys()].flatMap(s=>this.executingTurns.get(s)?.settled??[])),new Promise(s=>{o=setTimeout(s,1e3)})])}finally{o&&clearTimeout(o)}return{turns:[...n.values()],unsettledTurnIds:[...n.keys()].filter(s=>this.executingTurns.has(s))}}ownerId(){return this.sessionOptions.owner?.ownerId}ownsDurableFence(){return this.controller.ownsDurableFence()}createWorkflowOwner(e,r){return this.controller.createProtocolOwner(e,r)}workflowOwnerSignal(e){return this.controller.protocolOwnerSignal(e)}async waitForWorkflowExecutors(e,r){r.throwIfAborted();let n=`/root/workflow:${e}/`,i,o=new Promise((s,c)=>{i=a(()=>c(r.reason??new Error("Workflow resource settlement aborted.")),"abort"),r.addEventListener("abort",i,{once:!0})});try{for(;;){r.throwIfAborted();let s=[...this.executingTurns.values()].filter(c=>c.actorPath.startsWith(n));if(s.length===0)return;await Promise.race([Promise.allSettled(s.map(c=>c.settled)),o])}}finally{i&&r.removeEventListener("abort",i)}}settleWorkflowOwner(e,r,n){return this.controller.settleProtocolOwner(e,r,n)}bindActor(e){return this.controller.bind(e)}closeActor(e,r){return this.controller.close("/root",e,r)}registerTurnExecutor(e,r){if(this.turnExecutors.has(e))throw new Error(`Actor turn executor is already registered: ${e}`);return this.turnExecutors.set(e,r),()=>{this.turnExecutors.get(e)===r&&this.turnExecutors.delete(e)}}async waitForAgentCapacity(e){let r=this.controller.bind("/root"),n=r.eventSnapshot().at(-1)?.sequence??0;for(;;){if(e?.aborted)return!1;let i=r.list();if(i.maxConcurrentThreads<=1)return!1;if(i.activeNonRootTurns<i.maxConcurrentThreads-1)return!0;let o=await r.wait(n,250);o&&(n=o.sequence)}}async close(e="runtime closed"){await this.controller.shutdown(e),this.turnExecutors.clear(),this.turnCredentialAccess.clear(),this.turnEnvironments.clear(),this.environmentsByActor.clear(),this.clientTurnOwners.clear(),this.environment=void 0}quiesce(e="runtime quiesced",r){return this.controller.quiesce(e,r)}disposeAfterStoreRemoval(e="session removed"){this.controller.disposeAfterStoreRemoval(e),this.turnExecutors.clear(),this.turnCredentialAccess.clear(),this.turnEnvironments.clear(),this.environmentsByActor.clear(),this.clientTurnOwners.clear(),this.environment=void 0}};function lt(t,e,r){let n=a(()=>t.close("Agent turn cancelled"),"closeOnAbort");return e.aborted?n():e.addEventListener("abort",n,{once:!0}),B(t,async()=>{try{return await r()}finally{e.removeEventListener("abort",n),t.close("Agent turn settled")}})}a(lt,"runActorTurnInCredentialScope");function dt(){return Object.assign(new Error("External Agent turns cannot bind Runtime Provider credentials; use credentialRef."),{code:"invalid_params"})}a(dt,"externalCredentialBindingError");function Wt(t){return Object.assign(new Error(`${t} already has a credential-bound turn; follow-up credentials cannot replace it.`),{code:"invalid_params"})}a(Wt,"currentTurnCredentialBindingError");function qt(){return Object.assign(new Error("A new internal Agent turn requires an explicit scoped credential binding."),{code:"credential_unavailable"})}a(qt,"missingAgentCredentialBindingError");function zt(t,e){if(t.actor.capabilities.providers.includes("*"))return;let r=e.find(n=>!t.actor.capabilities.providers.includes(n));if(r!==void 0)throw new Error(`Actor ${t.actor.path} is not authorized to use provider ${r}.`)}a(zt,"assertCredentialProvidersAllowed");function ar(t,e){return new N({maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,sessionId:t.sessionId}).attach(t,e)}a(ar,"createLocalCodingActorControl");function sr(t){return{execute(e){if(e.actor.kind!=="external")throw new Error("Detached Runtime Actor execution only supports external actors.");return mt(e,t)}}}a(sr,"createExternalActorTurnExecutor");function Ft(t,e,r){if(e.recipientPath!=="/root")return;if(e.kind!=="completion"||!e.turnId){q().enqueue({priority:e.kind==="followup"?"user":"background",mode:"agent-message",agentId:D(r,"/root"),content:ce(e)});return}let n=t.output("/root",e.senderPath,e.turnId),i=q(),o=D(r,"/root");if(i.has({agentId:o,maxPriority:"background",mode:"task-notification",predicate:a(f=>f.taskResult?.source==="child_task"&&f.taskResult.taskId===e.turnId,"predicate")}))return;let s=n.state==="completed"?"completed":n.state==="failed"?"failed":"cancelled",c=[n.terminationReason?n.error:void 0,n.output??n.error??s].filter(Boolean).join(`
|
|
16
|
+
${m}`:""}async getDefinition(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=await i.client.definition(x.resolve(e),r).catch(()=>[]);return G(o,"No definition found at that position.")}async getHover(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=await i.client.hover(x.resolve(e),r).catch(()=>null);return Ze(o)}async getReferences(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=await i.client.references(x.resolve(e),r).catch(()=>[]);return G(o,"No references found at that position.")}async getDocumentSymbols(e,r={}){let n=await this.navClient(e,r);if(n.kind!=="client")return n.message;let i=await n.client.documentSymbols(x.resolve(e)).catch(()=>[]);return et(i,"No symbols found in this file.")}async getWorkspaceSymbols(e,r={}){let n=await this.workspaceClients(r);if(n.length===0)return"No language server is available for workspace symbol search.";let i=await Promise.all(n.map(o=>o.workspaceSymbols(e).catch(()=>[])));return tt(i.flat(),"No workspace symbols found for that query.")}async getImplementation(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=await i.client.implementation(x.resolve(e),r).catch(()=>[]);return G(o,"No implementation found at that position.")}async getPrepareCallHierarchy(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=await i.client.prepareCallHierarchy(x.resolve(e),r).catch(()=>[]);return rt(o,"No call hierarchy item found at that position.")}async getIncomingCalls(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=x.resolve(e),s=await i.client.prepareCallHierarchy(o,r).catch(()=>[]);if(s.length===0)return"No call hierarchy item found at that position.";let c=await Promise.all(s.map(f=>i.client.incomingCalls(f).catch(()=>[])));return ot(c.flat(),"No incoming calls found for that symbol.")}async getOutgoingCalls(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=x.resolve(e),s=await i.client.prepareCallHierarchy(o,r).catch(()=>[]);if(s.length===0)return"No call hierarchy item found at that position.";let c=await Promise.all(s.map(f=>i.client.outgoingCalls(f).catch(()=>[])));return it(c.flat(),"No outgoing calls found for that symbol.")}async navClient(e,r){let n=Z(e);if(!n)return{kind:"message",message:`No language server is configured for ${x.basename(e)}.`};let i=this.servers.filter(c=>c.languageIds.includes(n));if(i.length===0)return{kind:"message",message:`No language server is configured for ${x.basename(e)}.`};let o=x.resolve(e),s=r.gitRoot??x.dirname(o);for(let c of i){let f=ne(o,c.rootMarkers,s),u=await this.getClient(c,f,r);if(u)return await u.notifyOpenOrChange(o).catch(()=>{}),{kind:"client",client:u}}return{kind:"message",message:i.map(c=>c.installGuidance).join(`
|
|
17
|
+
`)}}async workspaceClients(e){let r=x.resolve(e.gitRoot??process.cwd()),n=[];for(let i of this.servers){let o=await this.getClient(i,r,e);o&&n.push(o)}return n}async shutdownAll(){this.shuttingDown=!0;try{await Promise.all([...this.spawning.values()].map(r=>r.catch(()=>{})));let e=[...this.clients.values()];this.clients.clear(),this.broken.clear(),await Promise.all(e.map(r=>r.shutdown().catch(()=>{})))}finally{this.shuttingDown=!1}}killAllSync(){for(let e of this.clients.values())e.killSync();this.clients.clear()}resetBroken(e){e?this.broken.delete(e):this.broken.clear()}async getClient(e,r,n){let i=`${_(r)}|${e.id}`,o=this.clients.get(i);if(o)return o;if(this.broken.has(i))return;let s=this.spawning.get(i);if(s)return s;let c=this.spawnClient(e,r,i,n);this.spawning.set(i,c);try{return await c}finally{this.spawning.delete(i)}}async spawnClient(e,r,n,i){try{let o=e.discover({root:r,moduleUrl:this.config.moduleUrl});if(o||(o=await this.acquireIfEnabled(e,r,i)),!o){this.broken.add(n),this.config.debug?.(`${e.id} not installed at ${r} \u2014 ${e.installGuidance}`);return}i.onProgress?.(`Starting ${e.id} language server\u2026`);let c=await(this.config.createClient??(await import("./client-NJ32JBC3.js")).createLspClient)({serverId:e.id,root:r,launch:o,debug:this.config.debug});if(this.shuttingDown){await c.shutdown().catch(()=>{});return}return this.clients.set(n,c),c}catch(o){this.broken.add(n),this.config.debug?.(`${e.id} failed to start at ${r}: ${o.message}`);return}}async acquireIfEnabled(e,r,n){if(!(!e.acquire||!re()))try{return await e.acquire({root:r,signal:n.signal,onProgress:n.onProgress,debug:this.config.debug})}catch(i){this.config.debug?.(`${e.id} auto-install failed: ${i.message}`);return}}},L,at=!1;function st(){let t=we()?.lsp;if(!(t===!1||t===void 0&&process.env.KODAX_LSP==="0"))return L||(L=new se({moduleUrl:import.meta.url,debug:process.env.KODAX_DEBUG_LSP?e=>S({source:"coding:lsp",level:"debug",message:e}):void 0}),!at&&!xe()&&(at=!0,process.once("exit",()=>L?.killAllSync()))),L}a(st,"getDefaultLspService");async function Kn(){await L?.shutdownAll()}a(Kn,"shutdownDefaultLspService");import{createHash as Ht}from"node:crypto";var ct=200;function mt(t,e){let r=t.checkpoint;if(!(!r||typeof r!="object"||Array.isArray(r)||!("kind"in r)||r.kind!=="generation"||r.actorPath!==e||r.actorTurnId!==t.turnId))return Ee(r.history)}a(mt,"readActorGenerationCheckpoint");var N=class{static{a(this,"CodingActorSession")}sessionOptions;controller;turnExecutors=new Map;turnCredentialAccess=new Map;turnEnvironments=new Map;environmentsByActor=new Map;clientTurnOwners=new Map;executingTurns=new Map;environment;activeBudget;constructor(e={}){this.sessionOptions=e,this.activeBudget=e.budget;let r={execute:a(n=>{let i=a(()=>{let s=a(async()=>{let h=this.turnEnvironments.get(n.turn.turnId);this.turnEnvironments.delete(n.turn.turnId);let l=E(n.turn.metadata?.executionKey),p=l?this.turnExecutors.get(l):void 0;if(p&&h===void 0)return p.execute(n);if(n.actor.kind==="external"&&e.executor)return e.executor.execute(n);let y;for(let g=n.actor.parentPath;g&&(y=this.environmentsByActor.get(g),!y);g=g.slice(0,g.lastIndexOf("/")));let w=h===void 0?y??this.environment:await h(n);if(!w)throw new Error("Actor session is not attached to an active KodaX run.");h!==void 0&&this.environmentsByActor.set(n.actor.path,w);try{n.turn.checkpoint&&w.options.context?.runtimeRunId&&await this.resumeGenerationChildren(w.options.context.runtimeRunId,n.actor.path);let g={...n,signal:w.signal?AbortSignal.any([n.signal,w.signal]):n.signal,actor:w.tools===void 0?n.actor:{...n.actor,capabilities:{...n.actor.capabilities,tools:w.tools.filter(b=>n.actor.capabilities.tools.includes("*")||n.actor.capabilities.tools.includes(b))}}},v=a(async()=>l?p?p.execute(g):(await import("./agent-adapter-V3IPADCX.js")).resumeWorkflowGenerationTurn(g,{...w.parentCtx,actorHost:this,actorControl:this.controller.bind(n.actor.parentPath??"/root")},w.options):Gt(g,w.parentCtx,w.options,this.controller.bind(n.actor.path)),"operation"),I=await(h!==void 0&&w.run?w.run(v):v());return h!==void 0&&w.release?.(I),I}catch(g){throw h!==void 0&&w.release?.(void 0,g),g}},"executeTurn"),c=this.turnCredentialAccess.get(n.turn.turnId);if(this.turnCredentialAccess.delete(n.turn.turnId),n.actor.kind==="external"){if(c!==void 0)throw new Error("External Agent turns cannot bind Runtime Provider credentials; use credentialRef.");return pe(s)}if(c!==void 0)return zt(n,c.allowedProviders),lt(he(c),n.signal,s);let f=W();if(f===void 0)return s();let u=n.actor.capabilities.providers,m=f.filter(h=>u.includes("*")||u.includes(h)),d=H(m,{kind:"actor_turn",actorPath:n.actor.path,turnId:n.turn.turnId});return d===void 0?s():lt(d,n.signal,s)},"dispatch"),o=me({kind:"actor_turn",actorPath:n.actor.path,turnId:n.turn.turnId},i);return this.executingTurns.set(n.turn.turnId,{actorPath:n.actor.path,principalId:this.clientTurnOwners.get(n.turn.turnId)??this.turnOwner(n.actor.path),settled:o}),o.then(()=>this.executingTurns.delete(n.turn.turnId),()=>this.executingTurns.delete(n.turn.turnId)),o},"execute")};this.controller=new Ie({validateCheckpoint:a(async(n,i)=>{let o=mt(i,n.path);return!o||!e.historyStorage?!1:(await K(e.historyStorage,o)).scope==="managed-task-worker"},"validateCheckpoint"),maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,store:e.store,owner:e.owner,isOwnerAlive:e.isOwnerAlive,executor:r,budget:{admit:a(n=>this.activeBudget?.admit(n)??Promise.resolve({admitted:!0}),"admit"),refund:a(n=>this.activeBudget?.refund?.(n)??Promise.resolve(),"refund"),snapshot:a(()=>this.activeBudget?.snapshot?.(),"snapshot")},warn:a(n=>S({source:"coding:actors",level:"warn",message:n}),"warn"),onBackgroundError:a(n=>S({source:"coding:actors",level:"error",message:n instanceof Error?n.message:String(n)}),"onBackgroundError"),onHealthChanged:e.onHealthChanged,onEventCommitted:e.onEventCommitted,onMessageCommitted:a(n=>Ft(this.controller,n,e.sessionId),"onMessageCommitted")})}async initialize(){await this.controller.initialize()}attach(e,r,n="/root"){return this.environment={parentCtx:e,options:r},this.activeBudget=r.context?.managedWorkBudget?nn(r.context.managedWorkBudget):this.sessionOptions.budget,this.controller.bind(n)}rootControl(){return this.controller.bind("/root")}async resumeCheckpointTurn(e,r,n,i,o){let s=this.controller.get("/root",e).actor,c=this.controller.get("/root",e).turns.find(d=>d.turnId===r),f=E(c?.metadata?.executionKey),u=c?.checkpoint;if(f&&!this.turnExecutors.has(f)&&(!u||typeof u!="object"||Array.isArray(u)||!("workflow"in u)||!u.workflow||typeof u.workflow!="object"||Array.isArray(u.workflow)||!("customExecutor"in u.workflow)||u.workflow.customExecutor!==!1))throw new Error("Actor recovery requires its original executor binding.");let m=!1;try{return await this.controller.resumeCheckpointTurn(e,r,()=>{let d=n?.({actorPath:e,turnId:r,providers:s.capabilities.providers});if(d&&!s.capabilities.providers.includes("*")&&d.allowedProviders.some(h=>!s.capabilities.providers.includes(h)))throw new Error("Actor recovery credentials exceed the original provider ceiling.");m=!0,d&&this.turnCredentialAccess.set(r,d),i&&this.turnEnvironments.set(r,i),o&&this.clientTurnOwners.set(r,o)}),{actorPath:e,turnId:r,state:"running"}}catch(d){throw m&&(this.turnCredentialAccess.delete(r),this.turnEnvironments.delete(r),this.clientTurnOwners.delete(r)),d}}async resumeGenerationChildren(e,r="/root"){for(let n of this.rootControl().list().actors){if(n.parentPath!==r)continue;if(n.kind==="workflow"){await this.resumeGenerationChildren(e,n.path);continue}if(!n.currentTurnId)continue;let o=this.rootControl().get(n.path).turns.find(s=>s.turnId===n.currentTurnId)?.checkpoint;o&&typeof o=="object"&&"ownerRunId"in o&&o.ownerRunId===e&&await this.resumeCheckpointTurn(n.path,n.currentTurnId)}}spawnRoot(e,r,n,i){let o;return this.controller.spawn("/root",e,{...r,...n===void 0&&r?.executionPrincipalId===void 0?{}:{beforeLaunch:a(c=>{if(n!==void 0&&c.actor.kind==="external")throw dt();o=c.turn.turnId,r?.executionPrincipalId!==void 0&&this.clientTurnOwners.set(c.turn.turnId,r.executionPrincipalId),i!==void 0&&this.turnEnvironments.set(c.turn.turnId,i),n!==void 0&&this.turnCredentialAccess.set(c.turn.turnId,n({actorPath:c.actor.path,turnId:c.turn.turnId,providers:c.actor.capabilities.providers})),c.abortController.signal.addEventListener("abort",()=>this.turnCredentialAccess.delete(c.turn.turnId),{once:!0})},"beforeLaunch")}}).catch(c=>{throw o!==void 0&&this.turnCredentialAccess.delete(o),o!==void 0&&this.turnEnvironments.delete(o),o!==void 0&&this.clientTurnOwners.delete(o),c})}followupRoot(e,r,n,i,o=!1,s){let c,f=i===void 0?o?d=>{if(d.kind!=="external"&&d.currentTurnId===void 0)throw qt()}:void 0:d=>{if(d.kind==="external")throw dt();if(d.currentTurnId!==void 0)throw Wt(d.path)},u=i===void 0&&n?.executionPrincipalId===void 0?void 0:d=>{c=d.turn.turnId,n?.executionPrincipalId!==void 0&&this.clientTurnOwners.set(d.turn.turnId,n.executionPrincipalId),s!==void 0&&this.turnEnvironments.set(d.turn.turnId,s),i!==void 0&&this.turnCredentialAccess.set(d.turn.turnId,i({actorPath:d.actor.path,turnId:d.turn.turnId,providers:d.actor.capabilities.providers})),d.abortController.signal.addEventListener("abort",()=>this.turnCredentialAccess.delete(d.turn.turnId),{once:!0})};return this.controller.followup("/root",e,r,void 0,{...n,...i===void 0?{}:{requireNewTurn:!0},...f===void 0?{}:{validateTarget:f},...u===void 0?{}:{beforeLaunch:u}}).catch(d=>{throw c!==void 0&&this.turnCredentialAccess.delete(c),c!==void 0&&this.turnEnvironments.delete(c),c!==void 0&&this.clientTurnOwners.delete(c),d})}health(){return this.controller.healthSnapshot()}turnOwner(e){let r=new Map(this.rootControl().list().actors.map(n=>[n.path,n]));for(let n=r.get(e);n;n=n.parentPath?r.get(n.parentPath):void 0){let i=n.currentTurnId??n.turnIds.at(-1),o=i===void 0?void 0:this.clientTurnOwners.get(i);if(o!==void 0)return o}}independentTurnIds(){return new Set(this.rootControl().list().actors.flatMap(e=>e.currentTurnId&&(this.executingTurns.get(e.currentTurnId)?.principalId??this.turnOwner(e.path))!==void 0?[e.currentTurnId]:[]))}async quiesceClient(e){let r=this.rootControl().list(),n=new Map(r.actors.flatMap(s=>s.currentTurnId&&(this.executingTurns.get(s.currentTurnId)?.principalId??this.turnOwner(s.path))===e?[[s.currentTurnId,{actorPath:s.path,turnId:s.currentTurnId}]]:[]));for(let[s,c]of this.executingTurns)c.principalId===e&&n.set(s,{actorPath:c.actorPath,turnId:s});if(n.size===0)return{turns:[],unsettledTurnIds:[]};let i=new Set(r.actors.flatMap(s=>s.currentTurnId&&!n.has(s.currentTurnId)?[s.currentTurnId]:[]));await this.controller.quiesce("client exit requested",i);let o;try{await Promise.race([Promise.allSettled([...n.keys()].flatMap(s=>this.executingTurns.get(s)?.settled??[])),new Promise(s=>{o=setTimeout(s,1e3)})])}finally{o&&clearTimeout(o)}return{turns:[...n.values()],unsettledTurnIds:[...n.keys()].filter(s=>this.executingTurns.has(s))}}ownerId(){return this.sessionOptions.owner?.ownerId}ownsDurableFence(){return this.controller.ownsDurableFence()}createWorkflowOwner(e,r){return this.controller.createProtocolOwner(e,r)}workflowOwnerSignal(e){return this.controller.protocolOwnerSignal(e)}async waitForWorkflowExecutors(e,r){r.throwIfAborted();let n=`/root/workflow:${e}/`,i,o=new Promise((s,c)=>{i=a(()=>c(r.reason??new Error("Workflow resource settlement aborted.")),"abort"),r.addEventListener("abort",i,{once:!0})});try{for(;;){r.throwIfAborted();let s=[...this.executingTurns.values()].filter(c=>c.actorPath.startsWith(n));if(s.length===0)return;await Promise.race([Promise.allSettled(s.map(c=>c.settled)),o])}}finally{i&&r.removeEventListener("abort",i)}}settleWorkflowOwner(e,r,n){return this.controller.settleProtocolOwner(e,r,n)}bindActor(e){return this.controller.bind(e)}closeActor(e,r){return this.controller.close("/root",e,r)}registerTurnExecutor(e,r){if(this.turnExecutors.has(e))throw new Error(`Actor turn executor is already registered: ${e}`);return this.turnExecutors.set(e,r),()=>{this.turnExecutors.get(e)===r&&this.turnExecutors.delete(e)}}async waitForAgentCapacity(e){let r=this.controller.bind("/root"),n=r.eventSnapshot().at(-1)?.sequence??0;for(;;){if(e?.aborted)return!1;let i=r.list();if(i.maxConcurrentThreads<=1)return!1;if(i.activeNonRootTurns<i.maxConcurrentThreads-1)return!0;let o=await r.wait(n,250);o&&(n=o.sequence)}}async close(e="runtime closed"){await this.controller.shutdown(e),this.turnExecutors.clear(),this.turnCredentialAccess.clear(),this.turnEnvironments.clear(),this.environmentsByActor.clear(),this.clientTurnOwners.clear(),this.environment=void 0}quiesceTurn(e,r){return this.controller.quiesce(r,void 0,e)}quiesce(e="runtime quiesced",r){return this.controller.quiesce(e,r)}disposeAfterStoreRemoval(e="session removed"){this.controller.disposeAfterStoreRemoval(e),this.turnExecutors.clear(),this.turnCredentialAccess.clear(),this.turnEnvironments.clear(),this.environmentsByActor.clear(),this.clientTurnOwners.clear(),this.environment=void 0}};function lt(t,e,r){let n=a(()=>t.close("Agent turn cancelled"),"closeOnAbort");return e.aborted?n():e.addEventListener("abort",n,{once:!0}),B(t,async()=>{try{return await r()}finally{e.removeEventListener("abort",n),t.close("Agent turn settled")}})}a(lt,"runActorTurnInCredentialScope");function dt(){return Object.assign(new Error("External Agent turns cannot bind Runtime Provider credentials; use credentialRef."),{code:"invalid_params"})}a(dt,"externalCredentialBindingError");function Wt(t){return Object.assign(new Error(`${t} already has a credential-bound turn; follow-up credentials cannot replace it.`),{code:"invalid_params"})}a(Wt,"currentTurnCredentialBindingError");function qt(){return Object.assign(new Error("A new internal Agent turn requires an explicit scoped credential binding."),{code:"credential_unavailable"})}a(qt,"missingAgentCredentialBindingError");function zt(t,e){if(t.actor.capabilities.providers.includes("*"))return;let r=e.find(n=>!t.actor.capabilities.providers.includes(n));if(r!==void 0)throw new Error(`Actor ${t.actor.path} is not authorized to use provider ${r}.`)}a(zt,"assertCredentialProvidersAllowed");function ar(t,e){return new N({maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,sessionId:t.sessionId}).attach(t,e)}a(ar,"createLocalCodingActorControl");function sr(t){return{execute(e){if(e.actor.kind!=="external")throw new Error("Detached Runtime Actor execution only supports external actors.");return ht(e,t)}}}a(sr,"createExternalActorTurnExecutor");function Ft(t,e,r){if(e.recipientPath!=="/root")return;if(e.kind!=="completion"||!e.turnId){q().enqueue({priority:e.kind==="followup"?"user":"background",mode:"agent-message",agentId:D(r,"/root"),content:ce(e)});return}let n=t.output("/root",e.senderPath,e.turnId),i=q(),o=D(r,"/root");if(i.has({agentId:o,maxPriority:"background",mode:"task-notification",predicate:a(f=>f.taskResult?.source==="child_task"&&f.taskResult.taskId===e.turnId,"predicate")}))return;let s=n.state==="completed"?"completed":n.state==="failed"?"failed":"cancelled",c=[n.terminationReason?n.error:void 0,n.output??n.error??s].filter(Boolean).join(`
|
|
18
18
|
`);i.enqueue({priority:"background",mode:"task-notification",agentId:o,content:`<agent-completed id="${k(e.messageId)}" path="${k(e.senderPath)}" turn_id="${k(e.turnId)}" state="${s}">
|
|
19
19
|
${k(c)}
|
|
20
|
-
</agent-completed>`,taskResult:{type:"task_result",source:"child_task",taskId:e.turnId,status:s,summary:c,title:e.senderPath,...n.artifacts.length>0?{artifactRefs:[...n.artifacts]}:{}}})}a(Ft,"publishRootMailboxMessage");async function Gt(t,e,r,n){if(t.actor.kind==="external"){let g=`external-actor:${t.turn.turnId}`,v=ut(t,"External Actor"),I={childAgentId:t.actor.path,childAgentName:t.actor.taskName,toolId:g,liveOnly:!0};try{return await
|
|
20
|
+
</agent-completed>`,taskResult:{type:"task_result",source:"child_task",taskId:e.turnId,status:s,summary:c,title:e.senderPath,...n.artifacts.length>0?{artifactRefs:[...n.artifacts]}:{}}})}a(Ft,"publishRootMailboxMessage");async function Gt(t,e,r,n){if(t.actor.kind==="external"){let g=`external-actor:${t.turn.turnId}`,v=ut(t,"External Actor"),I={childAgentId:t.actor.path,childAgentName:t.actor.taskName,toolId:g,liveOnly:!0};try{return await ht(t,e.agentExecutorPlane,b=>{v.report(b),e.reportToolProgress?.(`[agent ${t.actor.path}] ${b}`),e.parentEvents?.onToolProgress?.({id:g,message:b},I)})}finally{v.finish(),e.parentEvents?.onChildActivityEnd?.(I)}}let i=Yt(t),o=e.parentAgentConfig;tn(t,i.provider??o?.provider??r.provider);let s=mt(t.turn,t.actor.path);if(s){if(!r.session?.storage)throw new Error("Actor recovery requires its original worker history storage.");await K(r.session.storage,s),await t.reportCheckpoint?.(void 0)}let c=s?[]:await t.drainMailbox(),f=s?[]:[...Jt(t.priorTurns,t.turn.forkTurns),...c.map(g=>Qt(g,pt(n,g)))],u=ut(t,"Actor"),m=new AbortController,d=Zt(t,e.sessionId,n,m.signal),h;try{h=await We([i],e,{maxParallel:1,maxIterationsPerChild:ct,abortSignal:t.signal,...r.session?.storage!==void 0?{historyStorage:r.session.storage}:{},parentOptions:{provider:o?.provider??r.provider,model:o?.model??r.modelOverride??r.model,effort:o?.effort??r.effort,reasoningMode:o?.reasoningMode??r.reasoningMode,thinking:o?.thinking??r.thinking,repoIntelligenceMode:o?.repoIntelligenceMode,repoIntelligenceTrace:o?.repoIntelligenceTrace,compaction:o?.compaction??r.compaction,contextDiagnostics:o?.contextDiagnostics??r.context?.contextDiagnostics,disablePromptCache:o?.disablePromptCache??r.disablePromptCache,shellExecution:o?.shellExecution??r.context?.shellExecution,sandbox:o?.sandbox??r.sandbox,permissionIntent:o?.permissionIntent??r.context?.permissionIntent,extensionRuntime:e.extensionRuntime,events:e.parentEvents?.onContextCapacityBlocked?{...e.parentEvents,onContextCapacityBlocked:a(async(g,v,I)=>{g.checkpoint&&await t.reportCheckpoint?.(A({kind:"generation",actorPath:t.actor.path,actorTurnId:t.turn.turnId,history:g.checkpoint,...r.context?.runtimeRunId?{ownerRunId:r.context.runtimeRunId}:{}}));let b=await e.parentEvents.onContextCapacityBlocked(g,v,I);return v?.throwIfAborted(),await t.reportCheckpoint?.(void 0),b},"onContextCapacityBlocked")}:e.parentEvents},parentRole:"worker",parentHarness:"tool-dispatch",planModeBlockCheck:e.planModeBlockCheck,guardrails:e.guardrails,actorControl:n,actorHost:e.actorHost,...t.actor.parentPath!==void 0&&t.actor.parentPath!=="/root"?{actorParentAgentId:t.actor.parentPath}:{},actorTurnId:t.turn.turnId,...s?{generationCheckpoint:s}:{},initialMessages:f,actorCapabilities:t.actor.capabilities,onIteration:a(g=>u.report(`Iteration ${g.current}${g.max>0?`/${g.max}`:""}`,g),"onIteration"),onProgress:a(g=>{u.report(g),e.reportToolProgress?.(`[agent ${t.actor.path}] ${g}`)},"onProgress")})}finally{m.abort(),u.finish(),await d}let l=h.results[0];if(l?.limitReached)return{output:l.summary,artifacts:l.artifactPaths??[],...l.structured===void 0?{}:{structured:A(l.structured)},terminationReason:"iteration_limit",turnMetadata:{...l.provider===void 0?{}:{effectiveProvider:l.provider},...l.model===void 0?{}:{effectiveModel:l.model}},...l.iteration?{iteration:l.iteration}:l.actualIterations!==void 0?{iteration:{current:l.actualIterations,max:ct}}:{}};if(!l||l.status!=="completed"){let g=l?.failure?.provider??l?.provider,v=l?.failure?.model??l?.model,I={...g===void 0?{}:{effectiveProvider:g},...v===void 0?{}:{effectiveModel:v},...l?.failure===void 0?{}:{executionFailure:A(l.failure)??null}},b=l?.failure?.message||l?.failure?.safeMessage||l?.summary||`Agent turn ${t.turn.turnId} failed without output.`;throw new ke(b,I)}let p=Q(t.turn.metadata?.qualityStrategy),y=p===void 0?{structured:A(l.structured),degradedReasons:[]}:await Ut(l.structured,p,e,n);p!==void 0&&S({source:"coding:actors",level:"debug",message:[`strategy stage=${p.stageId}`,`pattern=${p.pattern}`,`role=${p.role}`,`turn=${t.turn.turnId}`,`status=${y.degradedReasons.length===0?"completed":"degraded"}`].join(" ")});let w={...l.provider===void 0?{}:{effectiveProvider:l.provider},...l.model===void 0?{}:{effectiveModel:l.model},...y.degradedReasons.length===0?{}:{qualityStrategyDegradedReasons:y.degradedReasons}};return{output:l.summary,...l.iteration?{iteration:l.iteration}:{},...l.artifactPaths&&l.artifactPaths.length>0?{artifacts:l.artifactPaths}:{},...y.structured===void 0?{}:{structured:y.structured},...Object.keys(w).length===0?{}:{turnMetadata:w}}}a(Gt,"executeCodingActorTurn");function ut(t,e){let r=!1,n=a((i,o)=>{t.reportProgress({kind:"status",summary:i,...o?{iteration:o}:{}}).catch(s=>{S({source:"coding:actors",level:"warn",message:`${e} progress projection failed: ${s instanceof Error?s.message:String(s)}`})})},"report");return{report(i,o){r||n(i,o)},finish(){r=!0}}}a(ut,"createDurableProgressProjector");async function Ut(t,e,r,n){let i=He(t);if(i===void 0)return{structured:A(t),degradedReasons:[]};let o=new Set(e.targetEvidenceRefs??[]),s=new Set,c=[],f={...r,actorControl:n};for(let m of i.outcomes){let d="evidenceRef"in m.target?m.target.evidenceRef:`agent-turn:${m.target.actorPath}#turn=${m.target.turnId}`;if(!o.has(d)){s.add("undeclared_disposition_target");continue}try{await J(d,r);for(let h of m.evidenceRefs)await J(h,f);c.push(m)}catch{s.add("invalid_disposition_evidence")}}let u={schemaVersion:1,outcomes:c,assertedCoverage:s.size===0?i.assertedCoverage:[]};return{structured:A(u),degradedReasons:[...s].sort()}}a(Ut,"validatePatternDispositionResult");async function ht(t,e,r){let n=E(t.turn.metadata?.agentId);if(!e||!n)throw new Error("External Agent execution is not bound to this Runtime.");if(t.signal.aborted)throw new Error("External Agent execution was interrupted before start.");let i=Kt(e.context.actorId,t.turn.turnId),o,s,c=a(()=>{if(s)return s;let u=e.plane.tasks.cancel(i,String(t.signal.reason??"interrupted"));return s=u,u.catch(()=>{s===u&&(s=void 0)}),u},"requestCancellation"),f=a(()=>{o!==void 0&&O(o.state)||c().catch(u=>S({source:"coding:actors",level:"warn",message:`External Agent cancellation failed: ${u instanceof Error?u.message:String(u)}`}))},"cancel");t.signal.addEventListener("abort",f,{once:!0}),t.signal.aborted&&f();try{try{o=await e.plane.tasks.start({taskId:i,agentId:n,objective:t.turn.objective,context:{...e.context,parentTaskId:t.actor.parentPath??e.context.parentTaskId,...E(t.turn.metadata?.workflowRunId)?{workflowId:E(t.turn.metadata?.workflowRunId)}:{}},readOnly:t.turn.metadata?.readOnly!==!1,...E(t.turn.metadata?.expectedConfigurationRevision)?{expectedConfigurationRevision:E(t.turn.metadata?.expectedConfigurationRevision)}:{}},t.signal)}catch(m){if(t.signal.aborted)try{await c()}catch(d){S({source:"coding:actors",level:"warn",message:`External Agent cancellation after an ambiguous start failed: ${d instanceof Error?d.message:String(d)}`})}throw m}if(o.state==="failed"||o.state==="rejected")throw new Error(o.error??`External Agent entered ${o.state}.`);if(t.signal.aborted&&Vt(o.cancellation))throw new Error(o.cancellationError??`External Agent cancellation cannot converge (${o.cancellation}).`);let u=ft(o.progress,void 0,r);for(;!O(o.state);){if(t.signal.aborted&&(o=await c(),!O(o.state)&&o.cancellation!=="requested"&&o.cancellation!=="confirmed"))throw new Error(`External Agent cancellation was not accepted (${o.cancellation}).`);if(!t.signal.aborted)for(let m of await t.drainMailbox()){if(t.signal.aborted)break;m.kind!=="completion"&&(o=await e.plane.tasks.sendInput(i,{content:m.content}))}O(o.state)||(await new Promise(m=>setTimeout(m,25)),o=await e.plane.tasks.get(i),u=ft(o.progress,u,r),t.signal.aborted&&!O(o.state)&&Xt(o))}if(o.state!=="completed")throw new Error(o.error??o.cancellationError??`External Agent ended in ${o.state}.`);return{output:o.output??"",...o.artifacts&&o.artifacts.length>0?{artifacts:o.artifacts.map(m=>m.uri??m.name),artifactDetails:o.artifacts.map(m=>({...m}))}:{}}}finally{t.signal.removeEventListener("abort",f)}}a(ht,"executeExternalActorTurn");function O(t){return t==="completed"||t==="failed"||t==="canceled"||t==="rejected"}a(O,"isExternalTerminal");function Vt(t){return t==="unknown"||t==="failed"||t==="unsupported"}a(Vt,"isExternalCancellationFailure");function Xt(t){if(!(O(t.state)||t.cancellation==="requested"||t.cancellation==="confirmed"))throw new Error(t.cancellationError??`External Agent cancellation was not accepted (${t.cancellation}).`)}a(Xt,"assertExternalCancellationAccepted");function ft(t,e,r){let n=t?.message?.trim()||(t?.percent===void 0?void 0:`${t.percent}% complete`);return!n||n===e?e:(r?.(n),n)}a(ft,"reportExternalProgress");function Kt(t,e){return`actor-${Ht("sha256").update(`${t}\0${e}`).digest("hex").slice(0,24)}`}a(Kt,"externalTaskId");function Yt(t){let e=t.turn.metadata??{},r=Q(e.qualityStrategy),n=r?.role==="filter"||r?.role==="judge"||r?.role==="challenger";return{id:t.actor.path,fanoutClass:"evidence-scan",objective:t.turn.objective,scopeSummary:E(e.scope),evidenceRefs:[...new Set([...gt(e.evidenceRefs),...r?.targetEvidenceRefs??[]])],constraints:gt(e.constraints),readOnly:t.actor.capabilities.filesystem!=="write",modelHint:on(e.modelHint),isolation:e.isolation==="worktree"?"worktree":void 0,specialistName:rn(e,t),provider:E(e.provider),model:E(e.model),effort:an(e.effort),...n?{outputSchema:Be,structuredOutputContract:"pattern-disposition-parse-only"}:{}}}a(Yt,"actorBundle");function Jt(t,e){return(e==="none"?[]:e==="all"?t:t.slice(-e)).flatMap(n=>{let i=n.output??n.error??n.state;return[{role:"user",content:`<actor-prior-turn id="${k(n.turnId)}">
|
|
21
21
|
${k(n.objective)}
|
|
22
22
|
</actor-prior-turn>`},{role:"assistant",content:`<actor-prior-result state="${n.state}">
|
|
23
23
|
${k(i)}
|
|
@@ -26,4 +26,4 @@ ${k(i)}
|
|
|
26
26
|
${k(e?.summary??t.content)}
|
|
27
27
|
</agent-completed>`}return`<agent-message id="${k(t.messageId)}" from="${k(t.senderPath)}" classification="${t.classification}">
|
|
28
28
|
${k(t.content)}
|
|
29
|
-
</agent-message>`}a(ce,"renderMailboxMessage");function tn(t,e){if(!(!e||t.actor.capabilities.providers.includes("*"))&&!t.actor.capabilities.providers.includes(e))throw new Error(`Actor ${t.actor.path} is not authorized to use provider ${e}.`)}a(tn,"assertProviderAuthority");function k(t){return t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}a(k,"escapeXml");function nn(t){return{async admit(e){return t.spentBudget+e.units>t.totalBudget?{admitted:!1,fact:{code:"agent_budget_exhausted",retryable:!1,reason:`shared root work budget exhausted (${t.spentBudget}/${t.totalBudget})`}}:(t.spentBudget+=e.units,{admitted:!0})},async refund(){t.spentBudget=Math.max(0,t.spentBudget-1)},snapshot:a(()=>({...t}),"snapshot")}}a(nn,"managedWorkBudgetPort");function rn(t,e){let r=P(t.specialistName);if(r)return r;let n=P(t.agentId);if(!(!n||e.actor.kind==="native"))throw new Error(`Agent selector ${n} was not resolved before execution.`)}a(rn,"specialistName");function on(t){return t==="fast"||t==="balanced"||t==="deep"?t:void 0}a(on,"modelHint");function an(t){let e=P(t);if(!e)return;let r=ve(e);return r==="auto"?void 0:r}a(an,"effort");function P(t){return typeof t=="string"&&t.length>0?t:void 0}a(P,"metadataString");function gt(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}a(gt,"metadataStringArray");import wt from"node:path";var sn=80;function cn(t){let e=t.trim().replace(/[^A-Za-z0-9._-]+/g,"_").replace(/^_+|_+$/g,"").slice(0,sn);return!e||e==="."||e===".."?"session":e}a(cn,"sanitizeScratchSessionId");function vt(t){let e=t.session?.id?.trim();if(!e)return;let r=t.context?.gitRoot?.trim(),n=r?wt.resolve(r):z(t.context);return wt.resolve(n,".agent","tmp","sessions",cn(e))}a(vt,"getSessionScratchDir");function ln(t){let e=new Set(t.map(r=>r.name));return t.filter(r=>{let n=r.name==="multi_edit"?["edit"]:r.name==="changed_diff_bundle"?["changed_diff"]:r.name==="tool_describe"?["tool_search"]:r.name==="todo_get"?["todo_list"]:r.name==="lsp_prepare_call_hierarchy"?["lsp_incoming_calls","lsp_outgoing_calls"]:[];return n.length===0||$(r.name)?.source.kind!=="builtin"||!n.every(i=>e.has(i)&&$(i)?.source.kind==="builtin")})}a(ln,"filterModelToolAliases");function Ir(t){return de(le(t.extensionRuntime?.getDefaults?.().activeTools??["skill"],t.context?.excludeTools),t.context?.toolVisibilityPolicy).includes("skill")?t.context?.skillsPrompt?.trim():void 0}a(Ir,"getModelSkillCatalog");function le(t,e){if(!e||e.length===0)return t;let r=new Set(e);return t.filter(n=>!r.has(n))}a(le,"filterExcludedTools");function de(t,e,r){return e?t.filter(n=>{let i=$(n)??r?.get(n);return i?e({name:i.name,sideEffect:i.sideEffect,planModeAllowed:i.planModeAllowed===!0}):!1}):t}a(de,"applyToolVisibilityPolicy");function dn(t,e,r=!1,n,i=!1){let o=Te(e)==="off"?Oe(t):t;return r||(o=De(o)),o=Me(o,n),o=$e(o,n),i||(o=o.filter(s=>s!=="list_dispatchable_agents")),o}a(dn,"getRuntimeActiveToolNames");function br(t,e,r=!1,n=!1,i,o,s,c=!1,f){let u=_e(),h=new Set(u.map(l=>l.name)),d=[...u,...(f??[]).filter(l=>!h.has(l.name)).map(Ce)];if(t.length===0)return[];let m=new Set(dn(t,e,n,i,c));return ln(d.filter(l=>m.has(l.name)&&(r||!je(l.name)))).map(l=>{let p=Se(be(l,$(l.name)?.source),s);if(!Re(p.name)||$(p.name)?.source.kind!=="builtin"||o&&o.has(p.name))return p;let y=Ae[p.name];return y?{...p,description:y}:p})}a(br,"getActiveToolDefinitions");import{randomUUID as un}from"node:crypto";import{join as fn}from"node:path";function gn(t,e){if(e&&/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(e)&&!e.includes(".."))return fn(t,e)}a(gn,"resolveResumeFromRunDir");function Nr(t){let{options:e,runtime:r,managedProtocolPayloadRef:n,sessionId:i}=t,o=ee(e),s=e.events??{},c=z(e.context),f=vt(e),u=e.context?.lspService??st(),h=de(le([...Y],e.context?.excludeTools),e.context?.toolVisibilityPolicy),d=Y.every(l=>h.includes(l))?Ee({sessionId:i,currentAgentId:e.context?.currentAgentId,sessionScope:e.session?.scope,storage:e.session?.storage}):void 0,m={workMode:o,configHome:e.context?.configHome,runtimeRunId:e.context?.runtimeRunId,registerShellCleanup:e.events?.registerShellCleanup,backups:new Map,actorControl:e.context?.actorControl,actorQueueAgentId:e.context?.actorQueueAgentId,contextIdentitySessionId:e.context?.contextIdentitySessionId??i,actorHost:e.context?.actorHost,managedWorkBudget:e.context?.managedWorkBudget,permissionIntent:e.context?.permissionIntent,gitRoot:e.context?.gitRoot??void 0,sessionId:i,...d!==void 0?{loadSessionHistory:d}:{},taskSurface:e.context?.taskSurface,agentProfile:e.context?.agentProfile,agentScope:e.context?.agentScope,agentExecutorPlane:e.context?.agentExecutorPlane,selfManual:e.selfManual,skillDynamicContext:e.skillDynamicContext,skillRegistry:e.context?.skillRegistry,activateModelSkill:e.context?.activateModelSkill,admitLearnedSkillInvocation:e.context?.admitLearnedSkillInvocation,skillScriptRunner:e.context?.skillScriptRunner,isPagedContentRecoveryAllowed:e.context?.isPagedContentRecoveryAllowed,toolResultRecovery:e.context?.toolResultRecovery,assertReadablePath:e.context?.assertReadablePath,toolVisibilityPolicy:e.context?.toolVisibilityPolicy,excludeTools:e.context?.excludeTools,lspService:u,lspNavigationDisabled:u===void 0,executionCwd:c,shellExecution:e.context?.shellExecution,sandbox:e.sandbox,shellSandbox:e.context?.shellSandbox,resolveShellPermissionMode:e.context?.resolveShellPermissionMode,authorizeShellHostExecution:e.context?.authorizeShellHostExecution,trustedTextMutationHost:e.context?.trustedTextMutationHost,workspaceSandboxRoots:e.context?.workspaceSandboxRoots,sessionScratchDir:f,extensionRuntime:r,askUser:s.askUser,askUserMulti:s.askUserMulti,askUserInput:s.askUserInput,exitPlanMode:s.exitPlanMode,abortSignal:e.abortSignal,managedProtocolRole:e.context?.managedProtocolEmission?.enabled?e.context.managedProtocolEmission.role:void 0,emitManagedProtocol:e.context?.managedProtocolEmission?.enabled?l=>{n.current=Le(n.current,l)}:void 0,mutationTracker:e.context?.mutationTracker,planModeBlockCheck:e.context?.planModeBlockCheck,guardrails:e.guardrails,parentAgentConfig:{get provider(){return e.provider},get model(){return e.modelOverride??e.model},get reasoningMode(){return e.reasoningMode},get effort(){return e.effort},get thinking(){return e.thinking},repoIntelligenceMode:e.context?.repoIntelligenceMode,repoIntelligenceTrace:e.context?.repoIntelligenceTrace,...e.compaction!==void 0?{compaction:{...e.compaction}}:{},...e.context?.contextDiagnostics!==void 0?{contextDiagnostics:e.context.contextDiagnostics}:{},...e.disablePromptCache!==void 0?{disablePromptCache:e.disablePromptCache}:{},...e.context?.shellExecution!==void 0?{shellExecution:e.context.shellExecution}:{},...e.sandbox!==void 0?{sandbox:e.sandbox}:{},...e.context?.permissionIntent!==void 0?{permissionIntent:e.context.permissionIntent}:{}},parentEvents:s,onChildProgress:void 0,currentAgentId:e.context?.currentAgentId,parentAgentId:e.context?.parentAgentId,sendMessageTurnCounter:{count:0},goalContext:e.context?.goalRuntime?.goalContext};if(!m.actorControl&&(e.agentMode==="ama"||e.context?.actorSession)){let l=e.context?.actorSession??new N({maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,sessionId:i});m.actorHost=l,m.actorControl=l.attach(m,e)}return m.workflowHost=mn(e,i,m.actorControl,m.actorHost),m}a(Nr,"buildToolExecutionContext");function hn(t,e){return{...e?{sessionId:e}:{},...t.context?.agentProfile?.surface?{surface:t.context.agentProfile.surface}:{},...t.context?.taskSurface?{taskSurface:t.context.taskSurface}:{},...t.context?.gitRoot?{projectRoot:t.context.gitRoot}:{}}}a(hn,"buildWorkflowHostMetadata");function mn(t,e,r,n){let i=t.workflowRunsBaseDir;if(process.env.KODAX_DEBUG_WORKFLOW_GATE){let s=i===void 0?"no-host: workflowRunsBaseDir undefined":t.agentMode!=="ama"?`no-host: agentMode=${String(t.agentMode)} (need ama)`:t.context?.workflowIntent!=="explicit"?"no-host: explicit Workflow intent absent":"host wired";S({source:"coding:workflow-gate",level:"debug",message:"Workflow host gate evaluated.",detail:{agentMode:t.agentMode,runsBaseDir:i,decision:s}})}if(i===void 0||t.agentMode!=="ama"||t.context?.workflowIntent!=="explicit")return;let o=a(async({manifest:s,source:c,args:f,resumeFromRunId:u,signal:h})=>{let[{startManagedWorkflow:d},{getDefaultWorkflowRunManager:m}]=await Promise.all([import("./host-65E5NM5P.js"),import("./run-manager-ZFACIZM2.js")]),l=[t.abortSignal,h].filter(E=>E!==void 0),p=l.length===0?void 0:l.length===1?l[0]:AbortSignal.any(l),y=r&&n?{...t,context:{...t.context,actorControl:r,actorHost:n}}:t,w=W(),g=w===void 0?void 0:`run-${Date.now().toString(36)}-${un().replace(/-/g,"").slice(0,8)}`,v=w===void 0||g===void 0?void 0:H(w,{kind:"workflow",workflowRunId:g}),I=a(()=>{v?.close("Workflow cancelled")},"closeCredentialScopeOnAbort");v!==void 0&&p!==void 0&&(p.aborted?I():p.addEventListener("abort",I,{once:!0}));let b=a(()=>{p?.removeEventListener("abort",I)},"releaseCredentialAbort"),ue=a(()=>d({source:{kind:"inline",manifest:s,source:c},args:f,options:y,runsBaseDir:i,...g===void 0?{}:{runId:g},manager:m(),...(()=>{let E=gn(i,u);return E?{resumeFromRunDir:E}:{}})(),...p?{signal:p}:{},processMetadata:{hostMetadata:hn(t,e)}}),"startWorkflow"),C;try{C=v===void 0?await ue():await B(v,ue)}catch(E){throw b(),v?.close("Workflow start failed"),E}if(C.kind==="declined")return b(),v?.close("Workflow declined"),{kind:"declined",reason:C.reason};let R=C.qualityWarnings?.map(E=>`${E.code}: ${E.message}`),xt=(v===void 0?C.managed.done:C.managed.done.finally(()=>{b(),v.close("Workflow settled")})).then(E=>{let M=C.managed.getSnapshot?.(),fe=E.kind==="completed"?E.state.events.reduce((ge,U)=>{if(U.type==="agent_unverified"){let V=U.data?.name??U.data?.taskId;ge.push(typeof V=="string"&&V.length>0?V:"agent")}return ge},[]):[];return{kind:"started",runId:C.runId,...M?.status!==void 0?{status:M.status}:{},...M?.resultText!==void 0?{resultText:M.resultText}:{},...M?.error!==void 0?{error:M.error}:{},...fe.length>0?{verificationWarnings:fe}:{},...R&&R.length>0?{workflowQualityWarnings:R}:{}}});return{kind:"started",runId:C.runId,done:xt,...R&&R.length>0?{workflowQualityWarnings:R}:{}}},"startInline");return{startInline:o,runInline:a(async s=>{let c=await o(s);return c.kind==="declined"?{kind:"declined",reason:c.reason}:await c.done},"runInline")}}a(mn,"buildWorkflowToolHost");export{ee as a,wn as b,vt as c,qe as d,Je as e,se as f,st as g,Kn as h,ln as i,Ir as j,le as k,de as l,dn as m,br as n,N as o,ar as p,sr as q,Nr as r};
|
|
29
|
+
</agent-message>`}a(ce,"renderMailboxMessage");function tn(t,e){if(!(!e||t.actor.capabilities.providers.includes("*"))&&!t.actor.capabilities.providers.includes(e))throw new Error(`Actor ${t.actor.path} is not authorized to use provider ${e}.`)}a(tn,"assertProviderAuthority");function k(t){return t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}a(k,"escapeXml");function nn(t){return{async admit(e){return t.spentBudget+e.units>t.totalBudget?{admitted:!1,fact:{code:"agent_budget_exhausted",retryable:!1,reason:`shared root work budget exhausted (${t.spentBudget}/${t.totalBudget})`}}:(t.spentBudget+=e.units,{admitted:!0})},async refund(){t.spentBudget=Math.max(0,t.spentBudget-1)},snapshot:a(()=>({...t}),"snapshot")}}a(nn,"managedWorkBudgetPort");function rn(t,e){let r=E(t.specialistName);if(r)return r;let n=E(t.agentId);if(!(!n||e.actor.kind==="native"))throw new Error(`Agent selector ${n} was not resolved before execution.`)}a(rn,"specialistName");function on(t){return t==="fast"||t==="balanced"||t==="deep"?t:void 0}a(on,"modelHint");function an(t){let e=E(t);if(!e)return;let r=ve(e);return r==="auto"?void 0:r}a(an,"effort");function E(t){return typeof t=="string"&&t.length>0?t:void 0}a(E,"metadataString");function gt(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}a(gt,"metadataStringArray");import wt from"node:path";var sn=80;function cn(t){let e=t.trim().replace(/[^A-Za-z0-9._-]+/g,"_").replace(/^_+|_+$/g,"").slice(0,sn);return!e||e==="."||e===".."?"session":e}a(cn,"sanitizeScratchSessionId");function vt(t){let e=t.session?.id?.trim();if(!e)return;let r=t.context?.gitRoot?.trim(),n=r?wt.resolve(r):z(t.context);return wt.resolve(n,".agent","tmp","sessions",cn(e))}a(vt,"getSessionScratchDir");function ln(t){let e=new Set(t.map(r=>r.name));return t.filter(r=>{let n=r.name==="multi_edit"?["edit"]:r.name==="changed_diff_bundle"?["changed_diff"]:r.name==="tool_describe"?["tool_search"]:r.name==="todo_get"?["todo_list"]:r.name==="lsp_prepare_call_hierarchy"?["lsp_incoming_calls","lsp_outgoing_calls"]:[];return n.length===0||$(r.name)?.source.kind!=="builtin"||!n.every(i=>e.has(i)&&$(i)?.source.kind==="builtin")})}a(ln,"filterModelToolAliases");function Ir(t){return de(le(t.extensionRuntime?.getDefaults?.().activeTools??["skill"],t.context?.excludeTools),t.context?.toolVisibilityPolicy).includes("skill")?t.context?.skillsPrompt?.trim():void 0}a(Ir,"getModelSkillCatalog");function le(t,e){if(!e||e.length===0)return t;let r=new Set(e);return t.filter(n=>!r.has(n))}a(le,"filterExcludedTools");function de(t,e,r){return e?t.filter(n=>{let i=$(n)??r?.get(n);return i?e({name:i.name,sideEffect:i.sideEffect,planModeAllowed:i.planModeAllowed===!0}):!1}):t}a(de,"applyToolVisibilityPolicy");function dn(t,e,r=!1,n,i=!1){let o=Te(e)==="off"?Oe(t):t;return r||(o=De(o)),o=Me(o,n),o=$e(o,n),i||(o=o.filter(s=>s!=="list_dispatchable_agents")),o}a(dn,"getRuntimeActiveToolNames");function br(t,e,r=!1,n=!1,i,o,s,c=!1,f){let u=_e(),m=new Set(u.map(l=>l.name)),d=[...u,...(f??[]).filter(l=>!m.has(l.name)).map(Ce)];if(t.length===0)return[];let h=new Set(dn(t,e,n,i,c));return ln(d.filter(l=>h.has(l.name)&&(r||!je(l.name)))).map(l=>{let p=Se(be(l,$(l.name)?.source),s);if(!Re(p.name)||$(p.name)?.source.kind!=="builtin"||o&&o.has(p.name))return p;let y=Ae[p.name];return y?{...p,description:y}:p})}a(br,"getActiveToolDefinitions");import{randomUUID as un}from"node:crypto";import{join as fn}from"node:path";function gn(t,e){if(e&&/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(e)&&!e.includes(".."))return fn(t,e)}a(gn,"resolveResumeFromRunDir");function Nr(t){let{options:e,runtime:r,managedProtocolPayloadRef:n,sessionId:i}=t,o=ee(e),s=e.events??{},c=z(e.context),f=vt(e),u=e.context?.lspService??st(),m=de(le([...Y],e.context?.excludeTools),e.context?.toolVisibilityPolicy),d=Y.every(l=>m.includes(l))?Pe({sessionId:i,currentAgentId:e.context?.currentAgentId,sessionScope:e.session?.scope,storage:e.session?.storage}):void 0,h={workMode:o,configHome:e.context?.configHome,runtimeRunId:e.context?.runtimeRunId,registerShellCleanup:e.events?.registerShellCleanup,backups:new Map,actorControl:e.context?.actorControl,actorQueueAgentId:e.context?.actorQueueAgentId,contextIdentitySessionId:e.context?.contextIdentitySessionId??i,actorHost:e.context?.actorHost,managedWorkBudget:e.context?.managedWorkBudget,permissionIntent:e.context?.permissionIntent,gitRoot:e.context?.gitRoot??void 0,sessionId:i,...d!==void 0?{loadSessionHistory:d}:{},taskSurface:e.context?.taskSurface,agentProfile:e.context?.agentProfile,agentScope:e.context?.agentScope,agentExecutorPlane:e.context?.agentExecutorPlane,selfManual:e.selfManual,skillDynamicContext:e.skillDynamicContext,skillRegistry:e.context?.skillRegistry,activateModelSkill:e.context?.activateModelSkill,admitLearnedSkillInvocation:e.context?.admitLearnedSkillInvocation,skillScriptRunner:e.context?.skillScriptRunner,isPagedContentRecoveryAllowed:e.context?.isPagedContentRecoveryAllowed,toolResultRecovery:e.context?.toolResultRecovery,assertReadablePath:e.context?.assertReadablePath,projectRulesRoot:e.context?.projectRulesRoot,toolVisibilityPolicy:e.context?.toolVisibilityPolicy,excludeTools:e.context?.excludeTools,lspService:u,lspNavigationDisabled:u===void 0,executionCwd:c,shellExecution:e.context?.shellExecution,sandbox:e.sandbox,shellSandbox:e.context?.shellSandbox,resolveShellPermissionMode:e.context?.resolveShellPermissionMode,authorizeShellHostExecution:e.context?.authorizeShellHostExecution,trustedTextMutationHost:e.context?.trustedTextMutationHost,workspaceSandboxRoots:e.context?.workspaceSandboxRoots,sessionScratchDir:f,extensionRuntime:r,askUser:s.askUser,askUserMulti:s.askUserMulti,askUserInput:s.askUserInput,exitPlanMode:s.exitPlanMode,abortSignal:e.abortSignal,managedProtocolRole:e.context?.managedProtocolEmission?.enabled?e.context.managedProtocolEmission.role:void 0,emitManagedProtocol:e.context?.managedProtocolEmission?.enabled?l=>{n.current=Le(n.current,l)}:void 0,mutationTracker:e.context?.mutationTracker,planModeBlockCheck:e.context?.planModeBlockCheck,guardrails:e.guardrails,parentAgentConfig:{get provider(){return e.provider},get model(){return e.modelOverride??e.model},get reasoningMode(){return e.reasoningMode},get effort(){return e.effort},get thinking(){return e.thinking},repoIntelligenceMode:e.context?.repoIntelligenceMode,repoIntelligenceTrace:e.context?.repoIntelligenceTrace,...e.compaction!==void 0?{compaction:{...e.compaction}}:{},...e.context?.contextDiagnostics!==void 0?{contextDiagnostics:e.context.contextDiagnostics}:{},...e.disablePromptCache!==void 0?{disablePromptCache:e.disablePromptCache}:{},...e.context?.shellExecution!==void 0?{shellExecution:e.context.shellExecution}:{},...e.sandbox!==void 0?{sandbox:e.sandbox}:{},...e.context?.permissionIntent!==void 0?{permissionIntent:e.context.permissionIntent}:{}},parentEvents:s,onChildProgress:void 0,currentAgentId:e.context?.currentAgentId,parentAgentId:e.context?.parentAgentId,sendMessageTurnCounter:{count:0},goalContext:e.context?.goalRuntime?.goalContext};if(!h.actorControl&&(e.agentMode==="ama"||e.context?.actorSession)){let l=e.context?.actorSession??new N({maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,sessionId:i});h.actorHost=l,h.actorControl=l.attach(h,e)}return h.workflowHost=hn(e,i,h.actorControl,h.actorHost),h}a(Nr,"buildToolExecutionContext");function mn(t,e){return{...e?{sessionId:e}:{},...t.context?.agentProfile?.surface?{surface:t.context.agentProfile.surface}:{},...t.context?.taskSurface?{taskSurface:t.context.taskSurface}:{},...t.context?.gitRoot?{projectRoot:t.context.gitRoot}:{}}}a(mn,"buildWorkflowHostMetadata");function hn(t,e,r,n){let i=t.workflowRunsBaseDir;if(process.env.KODAX_DEBUG_WORKFLOW_GATE){let s=i===void 0?"no-host: workflowRunsBaseDir undefined":t.agentMode!=="ama"?`no-host: agentMode=${String(t.agentMode)} (need ama)`:t.context?.workflowIntent!=="explicit"?"no-host: explicit Workflow intent absent":"host wired";S({source:"coding:workflow-gate",level:"debug",message:"Workflow host gate evaluated.",detail:{agentMode:t.agentMode,runsBaseDir:i,decision:s}})}if(i===void 0||t.agentMode!=="ama"||t.context?.workflowIntent!=="explicit")return;let o=a(async({manifest:s,source:c,args:f,resumeFromRunId:u,signal:m})=>{let[{startManagedWorkflow:d},{getDefaultWorkflowRunManager:h}]=await Promise.all([import("./host-PI5NL4W4.js"),import("./run-manager-Y6VYEWSJ.js")]),l=[t.abortSignal,m].filter(P=>P!==void 0),p=l.length===0?void 0:l.length===1?l[0]:AbortSignal.any(l),y=r&&n?{...t,context:{...t.context,actorControl:r,actorHost:n}}:t,w=W(),g=w===void 0?void 0:`run-${Date.now().toString(36)}-${un().replace(/-/g,"").slice(0,8)}`,v=w===void 0||g===void 0?void 0:H(w,{kind:"workflow",workflowRunId:g}),I=a(()=>{v?.close("Workflow cancelled")},"closeCredentialScopeOnAbort");v!==void 0&&p!==void 0&&(p.aborted?I():p.addEventListener("abort",I,{once:!0}));let b=a(()=>{p?.removeEventListener("abort",I)},"releaseCredentialAbort"),ue=a(()=>d({source:{kind:"inline",manifest:s,source:c},args:f,options:y,runsBaseDir:i,...g===void 0?{}:{runId:g},manager:h(),...(()=>{let P=gn(i,u);return P?{resumeFromRunDir:P}:{}})(),...p?{signal:p}:{},processMetadata:{hostMetadata:mn(t,e)}}),"startWorkflow"),C;try{C=v===void 0?await ue():await B(v,ue)}catch(P){throw b(),v?.close("Workflow start failed"),P}if(C.kind==="declined")return b(),v?.close("Workflow declined"),{kind:"declined",reason:C.reason};let R=C.qualityWarnings?.map(P=>`${P.code}: ${P.message}`),xt=(v===void 0?C.managed.done:C.managed.done.finally(()=>{b(),v.close("Workflow settled")})).then(P=>{let M=C.managed.getSnapshot?.(),fe=P.kind==="completed"?P.state.events.reduce((ge,U)=>{if(U.type==="agent_unverified"){let V=U.data?.name??U.data?.taskId;ge.push(typeof V=="string"&&V.length>0?V:"agent")}return ge},[]):[];return{kind:"started",runId:C.runId,...M?.status!==void 0?{status:M.status}:{},...M?.resultText!==void 0?{resultText:M.resultText}:{},...M?.error!==void 0?{error:M.error}:{},...fe.length>0?{verificationWarnings:fe}:{},...R&&R.length>0?{workflowQualityWarnings:R}:{}}});return{kind:"started",runId:C.runId,done:xt,...R&&R.length>0?{workflowQualityWarnings:R}:{}}},"startInline");return{startInline:o,runInline:a(async s=>{let c=await o(s);return c.kind==="declined"?{kind:"declined",reason:c.reason}:await c.done},"runInline")}}a(hn,"buildWorkflowToolHost");export{ee as a,wn as b,vt as c,qe as d,Je as e,se as f,st as g,Kn as h,ln as i,Ir as j,le as k,de as l,dn as m,br as n,N as o,ar as p,sr as q,Nr as r};
|