qlogicagent 2.10.13 → 2.10.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +331 -256
- package/dist/index.js +330 -255
- package/dist/protocol.js +1 -1
- package/dist/types/cli/handlers/memory-handler.d.ts +3 -0
- package/dist/types/cli/stdio-server.contract.test.d.ts +1 -0
- package/dist/types/cli/stdio-server.d.ts +11 -0
- package/dist/types/protocol/wire/agent-rpc.d.ts +14 -0
- package/dist/types/protocol/wire/gateway-contract.d.ts +61 -0
- package/dist/types/protocol/wire/gateway-contract.test.d.ts +1 -0
- package/dist/types/protocol/wire/gateway-rpc.d.ts +169 -1
- package/dist/types/protocol/wire/index.d.ts +3 -2
- package/dist/types/protocol/wire/memory-provider-lifecycle.d.ts +1 -1
- package/dist/types/runtime/pet/index.d.ts +0 -1
- package/dist/types/skills/memory/local-embedding.d.ts +4 -100
- package/dist/types/skills/memory/local-memory-provider.d.ts +18 -5
- package/dist/types/skills/memory/local-store.d.ts +70 -0
- package/dist/types/skills/memory/memory-provider-factory.d.ts +5 -11
- package/package.json +1 -4
- package/dist/types/runtime/pet/pet-context-injection.d.ts +0 -8
package/dist/protocol.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var V="1.0.0",W={PARSE_ERROR:-32700,INVALID_REQUEST:-32600,METHOD_NOT_FOUND:-32601,INVALID_PARAMS:-32602,INTERNAL_ERROR:-32603,TURN_ABORTED:-32e3,TURN_TIMEOUT:-32001,LLM_ERROR:-32010,LLM_AUTH_ERROR:-32011,LLM_RATE_LIMIT:-32012,LLM_QUOTA_EXHAUSTED:-32013,LLM_MODEL_NOT_FOUND:-32014,TOOL_INVOKE_FAILED:-32020,TOOL_TIMEOUT:-32021,PROTOCOL_MISMATCH:-32030},F={REQUEST:"tool.approval.request",RESPONSE:"tool.approval.response"};function _(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&t.method.length>0}function P(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&(typeof t.id=="string"||typeof t.id=="number")&&!("method"in t)}function T(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&!("id"in t)}function B(e){let t;try{t=JSON.parse(e)}catch{return null}return P(t)||_(t)||T(t)?t:null}var j=["session.list","session.get","session.create","session.update","session.delete","session.deleteAll","session.archive","session.moveToProject","session.getState","session.switchProject","session.getMessages","project.list","project.create","project.delete","project.rename","project.archive","project.unarchive","project.update","project.archiveByGroup","project.purgeAll","instructions.list","instructions.read","instructions.write","instructions.delete","files.list","files.read","files.create","files.rename","files.delete","files.gitStatus","skills.list","memory.list-files","memory.atlas","memory.activity","memory.addManual"];var C=["turn.start","turn.delta","turn.end","turn.error","turn.recovery","turn.tool_call","turn.tool_result","turn.tool_blocked","turn.reasoning_delta","turn.approval_request","turn.skill_instruction","turn.ask_user","turn.media_result","turn.media_progress","turn.plan_update","turn.suggestions","turn.sidechain_started","turn.subagent_delta","turn.sidechain_completed","turn.task_updated","turn.todos_updated","turn.exec_progress","turn.usage_update","team.member.notification","session.info","memory.updated","skills.updated","pet.soul_ready","pet.reaction","pet.growth","pet.state","pet.confirm","pet.forged","system.activity"],b=["solo.progress","solo.agentDelta","solo.agentUsage","solo.agentDiff","solo.evaluation","product.taskStarted","product.taskOutput","product.taskCompleted","product.taskFailed","product.budgetUpdate","product.checkpointed","product.dagTopology","plan.interrupted"],Y=[...C,...b];var X=1,H={INITIALIZE:"initialize",SESSION_NEW:"session/new",SESSION_PROMPT:"session/prompt",SESSION_END:"session/end",SESSION_SET_CONFIG:"session/set_config_option",SESSION_SET_MODEL:"session/set_model",SESSION_SET_MODE:"session/set_mode",SESSION_UPDATE:"session/update",SESSION_REQUEST_PERMISSION:"session/request_permission",FS_READ_TEXT_FILE:"fs/read_text_file",FS_WRITE_TEXT_FILE:"fs/write_text_file"},G={ABORT:"x/abort",DREAM:"x/dream",AGENTS_LIST:"x/agents.list",SOLO_START:"x/solo.start",SOLO_STATUS:"x/solo.status",SOLO_SELECT:"x/solo.select",SOLO_CANCEL:"x/solo.cancel",PRODUCT_CREATE:"x/product.create",PRODUCT_PLAN:"x/product.plan",PRODUCT_CONFIRM:"x/product.confirm",PRODUCT_MESSAGE:"x/product.message",PRODUCT_RESUME:"x/product.resume",PRODUCT_PAUSE:"x/product.pause",PRODUCT_CANCEL:"x/product.cancel",PRODUCT_ROLLBACK:"x/product.rollback",PRODUCT_STATUS:"x/product.status",SOLO_SUBSCRIBE:"x/solo.subscribe",SOLO_MESSAGE:"x/solo.message",SOLO_EVALUATE:"x/solo.evaluate",PRODUCT_SUBSCRIBE:"x/product.subscribe",TEAM_DELEGATE:"x/team.delegate"},I={AGENT_MESSAGE_CHUNK:"agent_message_chunk",AGENT_THOUGHT_CHUNK:"agent_thought_chunk",TOOL_CALL:"tool_call",TOOL_CALL_UPDATE:"tool_call_update",PLAN:"plan",USAGE_UPDATE:"usage_update",CONFIG_OPTION_UPDATE:"config_option_update",SESSION_INFO_UPDATE:"session_info_update",AVAILABLE_COMMANDS_UPDATE:"available_commands_update"},q={X_SUBAGENT_STARTED:"x_subagent_started",X_SUBAGENT_DELTA:"x_subagent_delta",X_SUBAGENT_ENDED:"x_subagent_ended",X_MEDIA_RESULT:"x_media_result",X_MEDIA_PROGRESS:"x_media_progress",X_SKILL_INSTRUCTION:"x_skill_instruction",X_RECOVERY:"x_recovery",X_SIDECHAIN_STARTED:"x_sidechain_started",X_SIDECHAIN_COMPLETED:"x_sidechain_completed",X_SUGGESTIONS:"x_suggestions",X_ASK_USER:"x_ask_user",X_SESSION_INFO:"x_session_info",X_MEMORY_UPDATED:"x_memory_updated",X_TEAM_MEMBER_UPDATE:"x_team_member_update",X_SOLO_STARTED:"x_solo_started",X_SOLO_AGENT_FINISHED:"x_solo_agent_finished",X_SOLO_SELECTED:"x_solo_selected",X_PRODUCT_TASK_STARTED:"x_product_task_started",X_PRODUCT_TASK_COMPLETED:"x_product_task_completed",X_PRODUCT_CHECKPOINT:"x_product_checkpoint"};function v(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&"id"in t}function M(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&!("id"in t)}function h(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&"id"in t&&!("method"in t)}function z(e){let t;try{t=JSON.parse(e)}catch{return null}return h(t)||v(t)||M(t)?t:null}function J(e){return Object.values(I).includes(e)}function $(e){return e.startsWith("x_")}var f=["gatewayVersion","toolNamespaces","workspaceIds","installedCapabilities","enabledCapabilities","features","approvalMode","toolManifests","skillManifests","pluginManifests","mcpManifests","approvalPolicy","workspaceSummaries"];function d(e){return e?e.map(t=>({...t})):void 0}function A(e){return e?e.map(t=>({...t})):void 0}function Q(e){return e?[...e]:void 0}function k(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].sort((t,r)=>t.localeCompare(r))}function g(e){return{...e,toolNamespaces:[...e.toolNamespaces],workspaceIds:[...e.workspaceIds],...e.changedSections?{changedSections:[...e.changedSections]}:{},...e.installedCapabilities?{installedCapabilities:[...e.installedCapabilities]}:{},...e.enabledCapabilities?{enabledCapabilities:[...e.enabledCapabilities]}:{},...e.features?{features:[...e.features]}:{},...e.toolManifests?{toolManifests:d(e.toolManifests)}:{},...e.skillManifests?{skillManifests:d(e.skillManifests)}:{},...e.pluginManifests?{pluginManifests:d(e.pluginManifests)}:{},...e.mcpManifests?{mcpManifests:d(e.mcpManifests)}:{},...e.approvalPolicy?{approvalPolicy:{...e.approvalPolicy}}:{},...e.workspaceSummaries?{workspaceSummaries:A(e.workspaceSummaries)}:{}}}function Z(e){let{previous:t,update:r}=e;return!(r.syncMode==="diff"&&t&&(!r.baseSnapshotVersion||t.snapshotVersion===r.baseSnapshotVersion))||!t?g(r):{...g(t),snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,...r.gatewayVersion!==void 0?{gatewayVersion:r.gatewayVersion}:{},...r.syncMode?{syncMode:r.syncMode}:{},...r.baseSnapshotVersion?{baseSnapshotVersion:r.baseSnapshotVersion}:{},...r.changedSections?{changedSections:[...r.changedSections]}:{},...r.toolNamespaces?{toolNamespaces:[...r.toolNamespaces]}:{},...r.workspaceIds?{workspaceIds:[...r.workspaceIds]}:{},...r.installedCapabilities?{installedCapabilities:[...r.installedCapabilities]}:{},...r.enabledCapabilities?{enabledCapabilities:[...r.enabledCapabilities]}:{},...r.features?{features:[...r.features]}:{},...r.approvalMode?{approvalMode:r.approvalMode}:{},...r.toolManifests?{toolManifests:d(r.toolManifests)}:{},...r.skillManifests?{skillManifests:d(r.skillManifests)}:{},...r.pluginManifests?{pluginManifests:d(r.pluginManifests)}:{},...r.mcpManifests?{mcpManifests:d(r.mcpManifests)}:{},...r.approvalPolicy?{approvalPolicy:{...r.approvalPolicy}}:{},...r.workspaceSummaries?{workspaceSummaries:A(r.workspaceSummaries)}:{}}}function ee(e){return k(e.map(t=>t.name.split(".")[0]??"").filter(Boolean))}function te(e){return k(e.map(t=>t.id))}function re(e){let{previous:t,current:r}=e;if(!t)return{...g(r),syncMode:"full"};if(t.snapshotVersion===r.snapshotVersion)return null;let i=f.filter(n=>JSON.stringify(t[n])!==JSON.stringify(r[n]));if(i.length===f.length)return{...g(r),syncMode:"full"};let u={snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,syncMode:"diff",baseSnapshotVersion:t.snapshotVersion,changedSections:i,toolNamespaces:[...r.toolNamespaces],workspaceIds:[...r.workspaceIds]},p=u;for(let n of i){let o=r[n];if(o!==void 0)switch(n){case"toolNamespaces":case"workspaceIds":case"installedCapabilities":case"enabledCapabilities":case"features":p[n]=Q(o);break;case"approvalPolicy":p[n]={...o};break;case"workspaceSummaries":p[n]=A(o);break;case"toolManifests":case"skillManifests":case"pluginManifests":case"mcpManifests":p[n]=d(o);break;default:p[n]=o;break}}return u}var oe=["web_search","web_fetch","deep_research","browser_execution"],ie=["web-intelligence","browser-execution"],ne=["discovery","read-url","multi-source-research","interactive-browser"],se=["stateless","render-backend","interactive-session"],ae=["stateless","stateless-single-step","stateful-session-required"],pe=["required","conditional","none"],ce=["browser-read","browser-authenticated-read","browser-state-changing"],le=["read-page","read-authenticated-page","fill-form","submit-form","download-file","reuse-session"],de=["web_search","web_fetch","deep_research","blocked"],ue=["requires-interaction","requires-login-state","requires-rendered-dom","requires-persistent-session","requires-state-changing-action"],ge=["none","same-capability-once","degrade-only"];var ye=["prefetch","sync_turn","on_pre_compress","on_session_end","on_delegation","on_memory_write"],me=["turn","sidechain","compress","session-end","agent-remember","auto-extract","implicit-extract","profile-extraction","dream"],fe=["observe-only","parent-write","deny"];var Ae=2,s={gatewayImage:"gateway.image.desktop-slim",whisperModelTiny:"speech.whisper.model.tiny",ffmpegWin32X64:"runtime.ffmpeg.win32-x64",nodeWin32X64:"runtime.node.win32-x64",dockerDesktopWin32X64:"runtime.docker-desktop.win32-x64",dockerDesktopDarwinX64:"runtime.docker-desktop.darwin-x64",dockerDesktopDarwinArm64:"runtime.docker-desktop.darwin-arm64"},y={desktopDockerBridge:"desktop.docker-bridge",desktopEmbeddedWin32X64:"desktop.embedded.win32-x64"};function O(e){return{...e,artifacts:e.artifacts.map(t=>({...t}))}}function Re(e){return{...e,assetIds:[...e.assetIds]}}function N(){return{[y.desktopDockerBridge]:{id:y.desktopDockerBridge,title:"Desktop Docker Bridge",platform:"any",assetIds:[s.gatewayImage,s.dockerDesktopWin32X64,s.dockerDesktopDarwinX64,s.dockerDesktopDarwinArm64],description:"Docker bridge mode downloads the desktop slim gateway image on demand."},[y.desktopEmbeddedWin32X64]:{id:y.desktopEmbeddedWin32X64,title:"Desktop Embedded Win32 x64",platform:"win32-x64",assetIds:[s.nodeWin32X64,s.ffmpegWin32X64,s.whisperModelTiny],description:"Embedded desktop mode requires the bundled Node/FFmpeg runtimes and the whisper model asset."}}}function D(e,t){return e.assets[t]}function w(e,t){return e.profiles[t]}function Ee(e,t){let r=w(e,t);return r?r.assetIds.map(i=>D(e,i)).filter(i=>!!i):[]}function Se(e,t){return e.assets[t.id]=O(t),U(e)}function R(e){if(!e)return;let t=e.artifacts[0];if(!(!t?.url||!t.sha256||typeof t.size!="number"))return{version:e.version,sha256:t.sha256,size:t.size,url:t.url}}function U(e){let t=R(e.assets[s.gatewayImage]),r=R(e.assets[s.whisperModelTiny]);return{...e,gateway:t,whisperModel:r}}function x(e,t){if(!(typeof e.version!="string"||typeof e.url!="string"))return{...t,version:e.version,artifacts:[{fileName:e.url.split("/").pop()||`${t.id}.bin`,url:e.url,sha256:typeof e.sha256=="string"?e.sha256:void 0,size:typeof e.size=="number"?e.size:void 0}]}}function _e(e){let t=e&&typeof e=="object"?e:{},r={},i=t.assets&&typeof t.assets=="object"?t.assets:{};for(let[o,a]of Object.entries(i)){if(!a||typeof a!="object")continue;let l=a;!l.id||!Array.isArray(l.artifacts)||(r[o]=O(l))}if(!r[s.gatewayImage]&&t.gateway&&typeof t.gateway=="object"){let o=x(t.gateway,{id:s.gatewayImage,title:"OpenClaw Gateway Image (Desktop Slim)",kind:"container-image",delivery:"remote",platform:"any",description:"Desktop Docker mode gateway image."});o&&(r[o.id]=o)}if(!r[s.whisperModelTiny]&&t.whisperModel&&typeof t.whisperModel=="object"){let o=x(t.whisperModel,{id:s.whisperModelTiny,title:"Whisper Tiny Model",kind:"model",delivery:"remote",platform:"any",description:"Shared whisper.cpp tiny model asset for embedded desktop speech recognition."});o&&(r[o.id]=o)}let p={...N()},n=t.profiles&&typeof t.profiles=="object"?t.profiles:{};for(let[o,a]of Object.entries(n)){if(!a||typeof a!="object")continue;let l=a;!l.id||!Array.isArray(l.assetIds)||(p[o]=Re(l))}return U({schemaVersion:typeof t.schemaVersion=="number"?t.schemaVersion:2,channel:typeof t.channel=="string"?t.channel:void 0,publishedAt:typeof t.publishedAt=="string"?t.publishedAt:void 0,minElectronVersion:typeof t.minElectronVersion=="string"?t.minElectronVersion:void 0,releaseNotes:typeof t.releaseNotes=="string"?t.releaseNotes:void 0,assets:r,profiles:p})}var Pe=["pending","captured","failed","restored"],Te=["file","directory","missing"],Ce=["metadata-only","workspace-copy","shadow-git"];var be=["api-key","oauth","token","aws-sdk"],Ie=["rate_limit","auth","server_error","timeout","network","unknown"],ve=["requiresOpenAiAnthropicToolPayload"];function Me(e,t){return!e||typeof e!="object"||Array.isArray(e)?!1:e[t]===!0}var L="openai-codex";function m(e){let t=e.trim().toLowerCase();return t==="z.ai"||t==="z-ai"?"zai":t==="opencode-zen"?"opencode":t==="kimi-code"?"kimi-coding":t==="bedrock"||t==="aws-bedrock"?"amazon-bedrock":t==="bytedance"||t==="doubao"?"volcengine":t}function K(e){let t=m(e);return t==="volcengine-plan"?"volcengine":t==="byteplus-plan"?"byteplus":t}var he=K,ke={anthropicToolSchemaMode:"native",anthropicToolChoiceMode:"native",providerFamily:"default",preserveAnthropicThinkingSignatures:!0,openAiCompatTurnValidation:!0,providerThoughtSignatureSanitization:!1,transcriptToolCallIdMode:"default",transcriptToolCallIdModelHints:[],providerThoughtSignatureModelHints:[],dropThinkingBlockModelHints:[]},xe={anthropic:{providerFamily:"anthropic"},"amazon-bedrock":{providerFamily:"anthropic"},"kimi-coding":{anthropicToolSchemaMode:"openai-functions",anthropicToolChoiceMode:"openai-string-modes",preserveAnthropicThinkingSignatures:!1},mistral:{transcriptToolCallIdMode:"strict9",transcriptToolCallIdModelHints:["mistral","mixtral","codestral","pixtral","devstral","ministral","mistralai"]},openai:{providerFamily:"openai"},[L]:{providerFamily:"openai"},openrouter:{openAiCompatTurnValidation:!1,providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]},opencode:{openAiCompatTurnValidation:!1,providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]},kilocode:{providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]}};function E(e,t){let r=(e??"").toLowerCase();return!!r&&t.some(i=>r.includes(i))}function c(e){let t=m(e??"");return{...ke,...xe[t]}}function Oe(e){return c(e).preserveAnthropicThinkingSignatures}function Ne(e){let t=c(e);return t.anthropicToolSchemaMode!=="native"||t.anthropicToolChoiceMode!=="native"}function De(e){return c(e).anthropicToolSchemaMode==="openai-functions"}function we(e){return c(e).anthropicToolChoiceMode==="openai-string-modes"}function Ue(e){return c(e).openAiCompatTurnValidation}function Le(e){return c(e).providerFamily==="openai"}function Ke(e){return c(e).providerFamily==="anthropic"}function Ve(e){return E(e.modelId,c(e.provider).dropThinkingBlockModelHints)}function We(e){let t=c(e.provider);return t.providerThoughtSignatureSanitization&&E(e.modelId,t.providerThoughtSignatureModelHints)}function Fe(e,t){let r=c(e),i=r.transcriptToolCallIdMode;if(i==="strict9")return i;if(E(t,r.transcriptToolCallIdModelHints))return"strict9"}var S={anthropic:["ANTHROPIC_OAUTH_TOKEN","ANTHROPIC_API_KEY"],chutes:["CHUTES_OAUTH_TOKEN","CHUTES_API_KEY"],zai:["ZAI_API_KEY","Z_AI_API_KEY"],opencode:["OPENCODE_API_KEY","OPENCODE_ZEN_API_KEY"],volcengine:["VOLCANO_ENGINE_API_KEY"],"volcengine-plan":["VOLCANO_ENGINE_API_KEY"],byteplus:["BYTEPLUS_API_KEY"],"byteplus-plan":["BYTEPLUS_API_KEY"],"kimi-coding":["KIMI_API_KEY","KIMICODE_API_KEY"],huggingface:["HUGGINGFACE_HUB_TOKEN","HF_TOKEN"],openai:["OPENAI_API_KEY"],voyage:["VOYAGE_API_KEY"],groq:["GROQ_API_KEY"],deepgram:["DEEPGRAM_API_KEY"],cerebras:["CEREBRAS_API_KEY"],xai:["XAI_API_KEY"],openrouter:["OPENROUTER_API_KEY"],litellm:["LITELLM_API_KEY"],"vercel-ai-gateway":["AI_GATEWAY_API_KEY"],"cloudflare-ai-gateway":["CLOUDFLARE_AI_GATEWAY_API_KEY"],moonshot:["MOONSHOT_API_KEY"],minimax:["MINIMAX_API_KEY"],"minimax-cn":["MINIMAX_CN_API_KEY","MINIMAX_API_KEY"],nvidia:["NVIDIA_API_KEY"],xiaomi:["XIAOMI_API_KEY"],synthetic:["SYNTHETIC_API_KEY"],venice:["VENICE_API_KEY"],mistral:["MISTRAL_API_KEY"],together:["TOGETHER_API_KEY"],qianfan:["QIANFAN_API_KEY"],ollama:["OLLAMA_API_KEY"],vllm:["VLLM_API_KEY"],kilocode:["KILOCODE_API_KEY"]};function Be(){return[...new Set(Object.values(S).flat())]}function je(e){let t=m(e.provider),r=e.env??process.env,i=new Set(e.appliedEnvKeys??[]),u=o=>{let a=r[o]?.trim();if(!a)return null;let l=i.has(o)?`shell env: ${o}`:`env: ${o}`;return{apiKey:a,source:l}},p=e.resolveSpecialApiKey?.(t,r,i);if(p)return p;let n=S[t];if(!n||n.length===0)return null;for(let o of n){let a=u(o);if(a)return a}return null}export{G as ACP_EXTENDED_METHODS,q as ACP_EXTENDED_SESSION_UPDATE_TYPES,H as ACP_METHODS,X as ACP_PROTOCOL_VERSION,I as ACP_SESSION_UPDATE_TYPES,F as AGENT_RPC_APPROVAL_METHODS,W as AGENT_RPC_ERROR_CODES,V as AGENT_RPC_PROTOCOL_VERSION,b as AGENT_TEAM_WS_EVENT_NAMES,C as AGENT_WS_EVENT_NAMES,Y as ALL_AGENT_WS_EVENT_NAMES,f as CAPABILITY_MANIFEST_DIFF_SECTIONS,j as GATEWAY_RPC_METHODS,ye as MEMORY_OBSERVATION_HOOK_VALUES,me as MEMORY_OBSERVATION_SOURCE_VALUES,fe as MEMORY_WRITE_ACCESS_VALUES,Ce as MUTATION_CHECKPOINT_BACKEND_VALUES,Te as MUTATION_CHECKPOINT_ENTRY_KIND_VALUES,Pe as MUTATION_CHECKPOINT_PHASE_VALUES,be as PROVIDER_RUNTIME_AUTH_MODE_VALUES,ve as PROVIDER_RUNTIME_COMPAT_FLAG_VALUES,S as PROVIDER_RUNTIME_ENV_API_KEY_CANDIDATES,L as PROVIDER_RUNTIME_OPENAI_CODEX_PROVIDER_ID,Ie as PROVIDER_RUNTIME_VAULT_ERROR_TYPE_VALUES,Ae as RESOURCE_MANIFEST_SCHEMA_VERSION,s as RUNTIME_ASSET_IDS,y as RUNTIME_PROFILE_IDS,le as WEB_ACTION_SCOPE_VALUES,pe as WEB_APPROVAL_DEFAULT_VALUES,ie as WEB_CAPABILITY_FAMILY_VALUES,oe as WEB_CAPABILITY_ID_VALUES,de as WEB_DEGRADATION_TARGET_VALUES,ue as WEB_ESCALATION_REASON_VALUES,se as WEB_EXECUTION_MODE_VALUES,ce as WEB_POLICY_RISK_CLASS_VALUES,ge as WEB_RETRY_POLICY_VALUES,ae as WEB_STATEFULNESS_VALUES,ne as WEB_TASK_MODE_VALUES,g as cloneCapabilityManifestSnapshot,re as createCapabilityManifestDiffPayload,N as createDefaultRuntimeResourceProfiles,ee as deriveCapabilityToolNamespaces,te as deriveCapabilityWorkspaceIds,R as getManifestShortcutEntry,D as getRuntimeResourceAsset,w as getRuntimeResourceProfile,Ee as getRuntimeResourceProfileAssets,M as isAcpJsonRpcNotification,v as isAcpJsonRpcRequest,h as isAcpJsonRpcResponse,T as isAgentRpcNotification,_ as isAgentRpcRequest,P as isAgentRpcResponse,Ke as isAnthropicProviderRuntimeFamily,$ as isExtendedSessionUpdateType,Le as isOpenAiProviderRuntimeFamily,J as isStandardSessionUpdateType,Be as listProviderRuntimeEnvApiKeyNames,Z as mergeCapabilityManifestSnapshot,m as normalizeProviderRuntimeId,K as normalizeProviderRuntimeIdForAuth,_e as normalizeRuntimeResourceManifest,z as parseAcpMessage,B as parseAgentRpcMessage,Oe as preservesProviderRuntimeAnthropicThinkingSignatures,Me as readProviderRuntimeCompatFlag,Ne as requiresOpenAiCompatibleAnthropicToolPayloadForProviderRuntime,c as resolveProviderRuntimeCapabilities,je as resolveProviderRuntimeEnvApiKey,he as resolveProviderRuntimeKeyFamily,Fe as resolveProviderRuntimeTranscriptToolCallIdMode,Ve as shouldDropThinkingBlocksForProviderRuntimeModel,We as shouldSanitizeProviderRuntimeThoughtSignaturesForModel,Ue as supportsOpenAiCompatTurnValidationForProviderRuntime,Se as upsertRuntimeResourceAsset,De as usesOpenAiFunctionAnthropicToolSchemaForProviderRuntime,we as usesOpenAiStringModeAnthropicToolChoiceForProviderRuntime};
|
|
1
|
+
var q="1.0.0",d={PARSE_ERROR:-32700,INVALID_REQUEST:-32600,METHOD_NOT_FOUND:-32601,INVALID_PARAMS:-32602,INTERNAL_ERROR:-32603,TURN_ABORTED:-32e3,TURN_TIMEOUT:-32001,LLM_ERROR:-32010,LLM_AUTH_ERROR:-32011,LLM_RATE_LIMIT:-32012,LLM_QUOTA_EXHAUSTED:-32013,LLM_MODEL_NOT_FOUND:-32014,TOOL_INVOKE_FAILED:-32020,TOOL_TIMEOUT:-32021,PROTOCOL_MISMATCH:-32030,REQUEST_DEADLINE_EXCEEDED:-32040,REQUEST_CANCELLED:-32041,REQUEST_DEDUPED:-32042,REQUEST_IDEMPOTENCY_REQUIRED:-32043},Y={REQUEST:"tool.approval.request",RESPONSE:"tool.approval.response"};function b(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&t.method.length>0}function C(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&(typeof t.id=="string"||typeof t.id=="number")&&!("method"in t)}function I(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&!("id"in t)}function X(e){let t;try{t=JSON.parse(e)}catch{return null}return C(t)||b(t)||I(t)?t:null}import{randomUUID as H}from"node:crypto";var G=["settings.list","settings.get","settings.validate","provider.list","config.get","config.tunables","tools.list","todos.list","tasks.list","agents.list","agents.get","agents.processes","agents.scan","session.list","session.get","session.resolve","thread.list","project.list","files.list","files.gitStatus","instructions.list","instructions.read","skills.list","skills.stats","memory.atlas","memory.activity","memory.list","memory.read","memory.search","media.listModels","media.status","pet.status","agent.health","agent.metrics"],z=new Set(["thread.turn","memory.dream","memory.ingest","media.stt","pet.forge","solo.start","solo.evaluate","product.plan","product.create","product.message"]),J=["memory.","pet.","usage."],Q=new Set(["memory.atlas","memory.activity","memory.list","memory.read","memory.search","pet.status"]);function f(e){return z.has(e)?{channel:"task",mutability:"write",defaultTimeoutMs:e==="thread.turn"?3e5:12e4}:G.some(t=>e===t||e.startsWith(`${t}.`)||e.startsWith(t))?{channel:"query",mutability:"read",defaultTimeoutMs:1e4}:{channel:"task",mutability:"write",defaultTimeoutMs:3e4}}function h(e){return Q.has(e)||f(e).mutability==="read"?!1:J.some(t=>e.startsWith(t))}function $(e,t={}){let r=t.now??Date.now(),o=f(e),i=t.timeoutMs??o.defaultTimeoutMs;return{requestId:t.requestId??H(),createdAt:r,deadlineAt:r+i,channel:t.channel??o.channel,idempotencyKey:t.idempotencyKey,traceId:t.traceId}}function v(e,t=Date.now()){let r=e.meta;if(!r||typeof r!="object")return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta is required."}};if(typeof r.requestId!="string"||r.requestId.length===0)return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.requestId is required."}};if(r.channel!=="query"&&r.channel!=="task")return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.channel must be query or task."}};if(typeof r.createdAt!="number"||!Number.isFinite(r.createdAt))return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.createdAt is required."}};if(typeof r.deadlineAt!="number"||!Number.isFinite(r.deadlineAt))return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.deadlineAt is required."}};if(r.deadlineAt<=t)return{ok:!1,error:{code:d.REQUEST_DEADLINE_EXCEEDED,message:"RPC request deadline has already expired."}};let o=f(e.method).channel;return r.channel!==o?{ok:!1,error:{code:d.INVALID_REQUEST,message:`RPC request channel mismatch: expected ${o}, got ${r.channel}.`}}:h(e.method)&&(typeof r.idempotencyKey!="string"||r.idempotencyKey.length===0)?{ok:!1,error:{code:d.REQUEST_IDEMPOTENCY_REQUIRED,message:`RPC method ${e.method} requires meta.idempotencyKey.`}}:{ok:!0,meta:r}}var R=class{now;active=new Map;idempotency=new Map;counters={completedRequests:0,cancelledRequests:0,deadlineExceededRequests:0,dedupedRequests:0,lateResponsesDropped:0,invalidRequests:0};constructor(t={}){this.now=t.now??(()=>Date.now())}begin(t,r){let o=v({method:t,meta:r},this.now());if(!o.ok)return this.counters.invalidRequests+=1,{status:"rejected",error:o.error};if(r.idempotencyKey){let i=this.idempotency.get(r.idempotencyKey);if(i)return this.counters.dedupedRequests+=1,i.error?{status:"deduped",error:i.error}:{status:"deduped",result:i.result}}return this.active.set(r.requestId,{method:t,meta:r,cancelled:!1,startedAt:this.now()}),{status:"started"}}cancel(t,r="cancelled"){let o=this.active.get(t);return!o||o.cancelled?!1:(o.cancelled=!0,o.cancelReason=r,this.counters.cancelledRequests+=1,!0)}expire(t){return this.active.get(t)?(this.active.delete(t),this.counters.deadlineExceededRequests+=1,!0):!1}settle(t,r,o){let i=this.active.get(t);return i?(this.active.delete(t),i.cancelled?(this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"cancelled"}):i.meta.deadlineAt<=this.now()?(this.counters.deadlineExceededRequests+=1,this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"deadline_exceeded"}):(this.counters.completedRequests+=1,i.meta.idempotencyKey&&this.idempotency.set(i.meta.idempotencyKey,{result:r,error:o,settledAt:this.now()}),{accepted:!0})):{accepted:!1,reason:"unknown"}}metrics(){return{activeRequests:this.active.size,...this.counters}}};var Z=["agent.health","agent.metrics","agent.cancel","session.list","session.get","session.create","session.update","session.delete","session.deleteAll","session.archive","session.moveToProject","session.getState","session.switchProject","session.getMessages","project.list","project.create","project.delete","project.rename","project.archive","project.unarchive","project.update","project.archiveByGroup","project.purgeAll","instructions.list","instructions.read","instructions.write","instructions.delete","files.list","files.read","files.create","files.rename","files.delete","files.gitStatus","skills.list","memory.list-files","memory.atlas","memory.activity","memory.ingest","memory.commit","memory.addManual","memory.update"];var M=["turn.start","turn.delta","turn.end","turn.error","turn.recovery","turn.tool_call","turn.tool_result","turn.tool_blocked","turn.reasoning_delta","turn.approval_request","turn.skill_instruction","turn.ask_user","turn.media_result","turn.media_progress","turn.plan_update","turn.suggestions","turn.sidechain_started","turn.subagent_delta","turn.sidechain_completed","turn.task_updated","turn.todos_updated","turn.exec_progress","turn.usage_update","team.member.notification","session.info","memory.updated","skills.updated","pet.soul_ready","pet.reaction","pet.growth","pet.state","pet.confirm","pet.forged","system.activity"],k=["solo.progress","solo.agentDelta","solo.agentUsage","solo.agentDiff","solo.evaluation","product.taskStarted","product.taskOutput","product.taskCompleted","product.taskFailed","product.budgetUpdate","product.checkpointed","product.dagTopology","plan.interrupted"],ee=[...M,...k];var te=1,re={INITIALIZE:"initialize",SESSION_NEW:"session/new",SESSION_PROMPT:"session/prompt",SESSION_END:"session/end",SESSION_SET_CONFIG:"session/set_config_option",SESSION_SET_MODEL:"session/set_model",SESSION_SET_MODE:"session/set_mode",SESSION_UPDATE:"session/update",SESSION_REQUEST_PERMISSION:"session/request_permission",FS_READ_TEXT_FILE:"fs/read_text_file",FS_WRITE_TEXT_FILE:"fs/write_text_file"},oe={ABORT:"x/abort",DREAM:"x/dream",AGENTS_LIST:"x/agents.list",SOLO_START:"x/solo.start",SOLO_STATUS:"x/solo.status",SOLO_SELECT:"x/solo.select",SOLO_CANCEL:"x/solo.cancel",PRODUCT_CREATE:"x/product.create",PRODUCT_PLAN:"x/product.plan",PRODUCT_CONFIRM:"x/product.confirm",PRODUCT_MESSAGE:"x/product.message",PRODUCT_RESUME:"x/product.resume",PRODUCT_PAUSE:"x/product.pause",PRODUCT_CANCEL:"x/product.cancel",PRODUCT_ROLLBACK:"x/product.rollback",PRODUCT_STATUS:"x/product.status",SOLO_SUBSCRIBE:"x/solo.subscribe",SOLO_MESSAGE:"x/solo.message",SOLO_EVALUATE:"x/solo.evaluate",PRODUCT_SUBSCRIBE:"x/product.subscribe",TEAM_DELEGATE:"x/team.delegate"},x={AGENT_MESSAGE_CHUNK:"agent_message_chunk",AGENT_THOUGHT_CHUNK:"agent_thought_chunk",TOOL_CALL:"tool_call",TOOL_CALL_UPDATE:"tool_call_update",PLAN:"plan",USAGE_UPDATE:"usage_update",CONFIG_OPTION_UPDATE:"config_option_update",SESSION_INFO_UPDATE:"session_info_update",AVAILABLE_COMMANDS_UPDATE:"available_commands_update"},ne={X_SUBAGENT_STARTED:"x_subagent_started",X_SUBAGENT_DELTA:"x_subagent_delta",X_SUBAGENT_ENDED:"x_subagent_ended",X_MEDIA_RESULT:"x_media_result",X_MEDIA_PROGRESS:"x_media_progress",X_SKILL_INSTRUCTION:"x_skill_instruction",X_RECOVERY:"x_recovery",X_SIDECHAIN_STARTED:"x_sidechain_started",X_SIDECHAIN_COMPLETED:"x_sidechain_completed",X_SUGGESTIONS:"x_suggestions",X_ASK_USER:"x_ask_user",X_SESSION_INFO:"x_session_info",X_MEMORY_UPDATED:"x_memory_updated",X_TEAM_MEMBER_UPDATE:"x_team_member_update",X_SOLO_STARTED:"x_solo_started",X_SOLO_AGENT_FINISHED:"x_solo_agent_finished",X_SOLO_SELECTED:"x_solo_selected",X_PRODUCT_TASK_STARTED:"x_product_task_started",X_PRODUCT_TASK_COMPLETED:"x_product_task_completed",X_PRODUCT_CHECKPOINT:"x_product_checkpoint"};function O(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&"id"in t}function N(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&!("id"in t)}function D(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&"id"in t&&!("method"in t)}function ie(e){let t;try{t=JSON.parse(e)}catch{return null}return D(t)||O(t)||N(t)?t:null}function se(e){return Object.values(x).includes(e)}function ae(e){return e.startsWith("x_")}var E=["gatewayVersion","toolNamespaces","workspaceIds","installedCapabilities","enabledCapabilities","features","approvalMode","toolManifests","skillManifests","pluginManifests","mcpManifests","approvalPolicy","workspaceSummaries"];function g(e){return e?e.map(t=>({...t})):void 0}function _(e){return e?e.map(t=>({...t})):void 0}function pe(e){return e?[...e]:void 0}function w(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].sort((t,r)=>t.localeCompare(r))}function y(e){return{...e,toolNamespaces:[...e.toolNamespaces],workspaceIds:[...e.workspaceIds],...e.changedSections?{changedSections:[...e.changedSections]}:{},...e.installedCapabilities?{installedCapabilities:[...e.installedCapabilities]}:{},...e.enabledCapabilities?{enabledCapabilities:[...e.enabledCapabilities]}:{},...e.features?{features:[...e.features]}:{},...e.toolManifests?{toolManifests:g(e.toolManifests)}:{},...e.skillManifests?{skillManifests:g(e.skillManifests)}:{},...e.pluginManifests?{pluginManifests:g(e.pluginManifests)}:{},...e.mcpManifests?{mcpManifests:g(e.mcpManifests)}:{},...e.approvalPolicy?{approvalPolicy:{...e.approvalPolicy}}:{},...e.workspaceSummaries?{workspaceSummaries:_(e.workspaceSummaries)}:{}}}function ce(e){let{previous:t,update:r}=e;return!(r.syncMode==="diff"&&t&&(!r.baseSnapshotVersion||t.snapshotVersion===r.baseSnapshotVersion))||!t?y(r):{...y(t),snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,...r.gatewayVersion!==void 0?{gatewayVersion:r.gatewayVersion}:{},...r.syncMode?{syncMode:r.syncMode}:{},...r.baseSnapshotVersion?{baseSnapshotVersion:r.baseSnapshotVersion}:{},...r.changedSections?{changedSections:[...r.changedSections]}:{},...r.toolNamespaces?{toolNamespaces:[...r.toolNamespaces]}:{},...r.workspaceIds?{workspaceIds:[...r.workspaceIds]}:{},...r.installedCapabilities?{installedCapabilities:[...r.installedCapabilities]}:{},...r.enabledCapabilities?{enabledCapabilities:[...r.enabledCapabilities]}:{},...r.features?{features:[...r.features]}:{},...r.approvalMode?{approvalMode:r.approvalMode}:{},...r.toolManifests?{toolManifests:g(r.toolManifests)}:{},...r.skillManifests?{skillManifests:g(r.skillManifests)}:{},...r.pluginManifests?{pluginManifests:g(r.pluginManifests)}:{},...r.mcpManifests?{mcpManifests:g(r.mcpManifests)}:{},...r.approvalPolicy?{approvalPolicy:{...r.approvalPolicy}}:{},...r.workspaceSummaries?{workspaceSummaries:_(r.workspaceSummaries)}:{}}}function le(e){return w(e.map(t=>t.name.split(".")[0]??"").filter(Boolean))}function de(e){return w(e.map(t=>t.id))}function ue(e){let{previous:t,current:r}=e;if(!t)return{...y(r),syncMode:"full"};if(t.snapshotVersion===r.snapshotVersion)return null;let o=E.filter(s=>JSON.stringify(t[s])!==JSON.stringify(r[s]));if(o.length===E.length)return{...y(r),syncMode:"full"};let i={snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,syncMode:"diff",baseSnapshotVersion:t.snapshotVersion,changedSections:o,toolNamespaces:[...r.toolNamespaces],workspaceIds:[...r.workspaceIds]},c=i;for(let s of o){let n=r[s];if(n!==void 0)switch(s){case"toolNamespaces":case"workspaceIds":case"installedCapabilities":case"enabledCapabilities":case"features":c[s]=pe(n);break;case"approvalPolicy":c[s]={...n};break;case"workspaceSummaries":c[s]=_(n);break;case"toolManifests":case"skillManifests":case"pluginManifests":case"mcpManifests":c[s]=g(n);break;default:c[s]=n;break}}return i}var ge=["web_search","web_fetch","deep_research","browser_execution"],ye=["web-intelligence","browser-execution"],me=["discovery","read-url","multi-source-research","interactive-browser"],fe=["stateless","render-backend","interactive-session"],Ae=["stateless","stateless-single-step","stateful-session-required"],Re=["required","conditional","none"],Ee=["browser-read","browser-authenticated-read","browser-state-changing"],_e=["read-page","read-authenticated-page","fill-form","submit-form","download-file","reuse-session"],Se=["web_search","web_fetch","deep_research","blocked"],Te=["requires-interaction","requires-login-state","requires-rendered-dom","requires-persistent-session","requires-state-changing-action"],Pe=["none","same-capability-once","degrade-only"];var be=["prefetch","sync_turn","on_pre_compress","on_session_end","on_delegation","on_memory_write"],Ce=["turn","sidechain","compress","session-end","agent-remember","auto-extract","implicit-extract","profile-extraction","dream"],Ie=["observe-only","parent-write","deny"];var he=2,a={gatewayImage:"gateway.image.desktop-slim",whisperModelTiny:"speech.whisper.model.tiny",ffmpegWin32X64:"runtime.ffmpeg.win32-x64",nodeWin32X64:"runtime.node.win32-x64",dockerDesktopWin32X64:"runtime.docker-desktop.win32-x64",dockerDesktopDarwinX64:"runtime.docker-desktop.darwin-x64",dockerDesktopDarwinArm64:"runtime.docker-desktop.darwin-arm64"},m={desktopDockerBridge:"desktop.docker-bridge",desktopEmbeddedWin32X64:"desktop.embedded.win32-x64"};function L(e){return{...e,artifacts:e.artifacts.map(t=>({...t}))}}function ve(e){return{...e,assetIds:[...e.assetIds]}}function K(){return{[m.desktopDockerBridge]:{id:m.desktopDockerBridge,title:"Desktop Docker Bridge",platform:"any",assetIds:[a.gatewayImage,a.dockerDesktopWin32X64,a.dockerDesktopDarwinX64,a.dockerDesktopDarwinArm64],description:"Docker bridge mode downloads the desktop slim gateway image on demand."},[m.desktopEmbeddedWin32X64]:{id:m.desktopEmbeddedWin32X64,title:"Desktop Embedded Win32 x64",platform:"win32-x64",assetIds:[a.nodeWin32X64,a.ffmpegWin32X64,a.whisperModelTiny],description:"Embedded desktop mode requires the bundled Node/FFmpeg runtimes and the whisper model asset."}}}function V(e,t){return e.assets[t]}function W(e,t){return e.profiles[t]}function Me(e,t){let r=W(e,t);return r?r.assetIds.map(o=>V(e,o)).filter(o=>!!o):[]}function ke(e,t){return e.assets[t.id]=L(t),F(e)}function S(e){if(!e)return;let t=e.artifacts[0];if(!(!t?.url||!t.sha256||typeof t.size!="number"))return{version:e.version,sha256:t.sha256,size:t.size,url:t.url}}function F(e){let t=S(e.assets[a.gatewayImage]),r=S(e.assets[a.whisperModelTiny]);return{...e,gateway:t,whisperModel:r}}function U(e,t){if(!(typeof e.version!="string"||typeof e.url!="string"))return{...t,version:e.version,artifacts:[{fileName:e.url.split("/").pop()||`${t.id}.bin`,url:e.url,sha256:typeof e.sha256=="string"?e.sha256:void 0,size:typeof e.size=="number"?e.size:void 0}]}}function xe(e){let t=e&&typeof e=="object"?e:{},r={},o=t.assets&&typeof t.assets=="object"?t.assets:{};for(let[n,p]of Object.entries(o)){if(!p||typeof p!="object")continue;let u=p;!u.id||!Array.isArray(u.artifacts)||(r[n]=L(u))}if(!r[a.gatewayImage]&&t.gateway&&typeof t.gateway=="object"){let n=U(t.gateway,{id:a.gatewayImage,title:"OpenClaw Gateway Image (Desktop Slim)",kind:"container-image",delivery:"remote",platform:"any",description:"Desktop Docker mode gateway image."});n&&(r[n.id]=n)}if(!r[a.whisperModelTiny]&&t.whisperModel&&typeof t.whisperModel=="object"){let n=U(t.whisperModel,{id:a.whisperModelTiny,title:"Whisper Tiny Model",kind:"model",delivery:"remote",platform:"any",description:"Shared whisper.cpp tiny model asset for embedded desktop speech recognition."});n&&(r[n.id]=n)}let c={...K()},s=t.profiles&&typeof t.profiles=="object"?t.profiles:{};for(let[n,p]of Object.entries(s)){if(!p||typeof p!="object")continue;let u=p;!u.id||!Array.isArray(u.assetIds)||(c[n]=ve(u))}return F({schemaVersion:typeof t.schemaVersion=="number"?t.schemaVersion:2,channel:typeof t.channel=="string"?t.channel:void 0,publishedAt:typeof t.publishedAt=="string"?t.publishedAt:void 0,minElectronVersion:typeof t.minElectronVersion=="string"?t.minElectronVersion:void 0,releaseNotes:typeof t.releaseNotes=="string"?t.releaseNotes:void 0,assets:r,profiles:c})}var Oe=["pending","captured","failed","restored"],Ne=["file","directory","missing"],De=["metadata-only","workspace-copy","shadow-git"];var we=["api-key","oauth","token","aws-sdk"],Ue=["rate_limit","auth","server_error","timeout","network","unknown"],Le=["requiresOpenAiAnthropicToolPayload"];function Ke(e,t){return!e||typeof e!="object"||Array.isArray(e)?!1:e[t]===!0}var B="openai-codex";function A(e){let t=e.trim().toLowerCase();return t==="z.ai"||t==="z-ai"?"zai":t==="opencode-zen"?"opencode":t==="kimi-code"?"kimi-coding":t==="bedrock"||t==="aws-bedrock"?"amazon-bedrock":t==="bytedance"||t==="doubao"?"volcengine":t}function j(e){let t=A(e);return t==="volcengine-plan"?"volcengine":t==="byteplus-plan"?"byteplus":t}var Ve=j,We={anthropicToolSchemaMode:"native",anthropicToolChoiceMode:"native",providerFamily:"default",preserveAnthropicThinkingSignatures:!0,openAiCompatTurnValidation:!0,providerThoughtSignatureSanitization:!1,transcriptToolCallIdMode:"default",transcriptToolCallIdModelHints:[],providerThoughtSignatureModelHints:[],dropThinkingBlockModelHints:[]},Fe={anthropic:{providerFamily:"anthropic"},"amazon-bedrock":{providerFamily:"anthropic"},"kimi-coding":{anthropicToolSchemaMode:"openai-functions",anthropicToolChoiceMode:"openai-string-modes",preserveAnthropicThinkingSignatures:!1},mistral:{transcriptToolCallIdMode:"strict9",transcriptToolCallIdModelHints:["mistral","mixtral","codestral","pixtral","devstral","ministral","mistralai"]},openai:{providerFamily:"openai"},[B]:{providerFamily:"openai"},openrouter:{openAiCompatTurnValidation:!1,providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]},opencode:{openAiCompatTurnValidation:!1,providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]},kilocode:{providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]}};function T(e,t){let r=(e??"").toLowerCase();return!!r&&t.some(o=>r.includes(o))}function l(e){let t=A(e??"");return{...We,...Fe[t]}}function Be(e){return l(e).preserveAnthropicThinkingSignatures}function je(e){let t=l(e);return t.anthropicToolSchemaMode!=="native"||t.anthropicToolChoiceMode!=="native"}function qe(e){return l(e).anthropicToolSchemaMode==="openai-functions"}function Ye(e){return l(e).anthropicToolChoiceMode==="openai-string-modes"}function Xe(e){return l(e).openAiCompatTurnValidation}function He(e){return l(e).providerFamily==="openai"}function Ge(e){return l(e).providerFamily==="anthropic"}function ze(e){return T(e.modelId,l(e.provider).dropThinkingBlockModelHints)}function Je(e){let t=l(e.provider);return t.providerThoughtSignatureSanitization&&T(e.modelId,t.providerThoughtSignatureModelHints)}function Qe(e,t){let r=l(e),o=r.transcriptToolCallIdMode;if(o==="strict9")return o;if(T(t,r.transcriptToolCallIdModelHints))return"strict9"}var P={anthropic:["ANTHROPIC_OAUTH_TOKEN","ANTHROPIC_API_KEY"],chutes:["CHUTES_OAUTH_TOKEN","CHUTES_API_KEY"],zai:["ZAI_API_KEY","Z_AI_API_KEY"],opencode:["OPENCODE_API_KEY","OPENCODE_ZEN_API_KEY"],volcengine:["VOLCANO_ENGINE_API_KEY"],"volcengine-plan":["VOLCANO_ENGINE_API_KEY"],byteplus:["BYTEPLUS_API_KEY"],"byteplus-plan":["BYTEPLUS_API_KEY"],"kimi-coding":["KIMI_API_KEY","KIMICODE_API_KEY"],huggingface:["HUGGINGFACE_HUB_TOKEN","HF_TOKEN"],openai:["OPENAI_API_KEY"],voyage:["VOYAGE_API_KEY"],groq:["GROQ_API_KEY"],deepgram:["DEEPGRAM_API_KEY"],cerebras:["CEREBRAS_API_KEY"],xai:["XAI_API_KEY"],openrouter:["OPENROUTER_API_KEY"],litellm:["LITELLM_API_KEY"],"vercel-ai-gateway":["AI_GATEWAY_API_KEY"],"cloudflare-ai-gateway":["CLOUDFLARE_AI_GATEWAY_API_KEY"],moonshot:["MOONSHOT_API_KEY"],minimax:["MINIMAX_API_KEY"],"minimax-cn":["MINIMAX_CN_API_KEY","MINIMAX_API_KEY"],nvidia:["NVIDIA_API_KEY"],xiaomi:["XIAOMI_API_KEY"],synthetic:["SYNTHETIC_API_KEY"],venice:["VENICE_API_KEY"],mistral:["MISTRAL_API_KEY"],together:["TOGETHER_API_KEY"],qianfan:["QIANFAN_API_KEY"],ollama:["OLLAMA_API_KEY"],vllm:["VLLM_API_KEY"],kilocode:["KILOCODE_API_KEY"]};function $e(){return[...new Set(Object.values(P).flat())]}function Ze(e){let t=A(e.provider),r=e.env??process.env,o=new Set(e.appliedEnvKeys??[]),i=n=>{let p=r[n]?.trim();if(!p)return null;let u=o.has(n)?`shell env: ${n}`:`env: ${n}`;return{apiKey:p,source:u}},c=e.resolveSpecialApiKey?.(t,r,o);if(c)return c;let s=P[t];if(!s||s.length===0)return null;for(let n of s){let p=i(n);if(p)return p}return null}export{oe as ACP_EXTENDED_METHODS,ne as ACP_EXTENDED_SESSION_UPDATE_TYPES,re as ACP_METHODS,te as ACP_PROTOCOL_VERSION,x as ACP_SESSION_UPDATE_TYPES,Y as AGENT_RPC_APPROVAL_METHODS,d as AGENT_RPC_ERROR_CODES,q as AGENT_RPC_PROTOCOL_VERSION,k as AGENT_TEAM_WS_EVENT_NAMES,M as AGENT_WS_EVENT_NAMES,ee as ALL_AGENT_WS_EVENT_NAMES,E as CAPABILITY_MANIFEST_DIFF_SECTIONS,Z as GATEWAY_RPC_METHODS,R as GatewayRpcContract,be as MEMORY_OBSERVATION_HOOK_VALUES,Ce as MEMORY_OBSERVATION_SOURCE_VALUES,Ie as MEMORY_WRITE_ACCESS_VALUES,De as MUTATION_CHECKPOINT_BACKEND_VALUES,Ne as MUTATION_CHECKPOINT_ENTRY_KIND_VALUES,Oe as MUTATION_CHECKPOINT_PHASE_VALUES,we as PROVIDER_RUNTIME_AUTH_MODE_VALUES,Le as PROVIDER_RUNTIME_COMPAT_FLAG_VALUES,P as PROVIDER_RUNTIME_ENV_API_KEY_CANDIDATES,B as PROVIDER_RUNTIME_OPENAI_CODEX_PROVIDER_ID,Ue as PROVIDER_RUNTIME_VAULT_ERROR_TYPE_VALUES,he as RESOURCE_MANIFEST_SCHEMA_VERSION,a as RUNTIME_ASSET_IDS,m as RUNTIME_PROFILE_IDS,_e as WEB_ACTION_SCOPE_VALUES,Re as WEB_APPROVAL_DEFAULT_VALUES,ye as WEB_CAPABILITY_FAMILY_VALUES,ge as WEB_CAPABILITY_ID_VALUES,Se as WEB_DEGRADATION_TARGET_VALUES,Te as WEB_ESCALATION_REASON_VALUES,fe as WEB_EXECUTION_MODE_VALUES,Ee as WEB_POLICY_RISK_CLASS_VALUES,Pe as WEB_RETRY_POLICY_VALUES,Ae as WEB_STATEFULNESS_VALUES,me as WEB_TASK_MODE_VALUES,$ as buildAgentRpcMeta,f as classifyGatewayRpcMethod,y as cloneCapabilityManifestSnapshot,ue as createCapabilityManifestDiffPayload,K as createDefaultRuntimeResourceProfiles,le as deriveCapabilityToolNamespaces,de as deriveCapabilityWorkspaceIds,S as getManifestShortcutEntry,V as getRuntimeResourceAsset,W as getRuntimeResourceProfile,Me as getRuntimeResourceProfileAssets,N as isAcpJsonRpcNotification,O as isAcpJsonRpcRequest,D as isAcpJsonRpcResponse,I as isAgentRpcNotification,b as isAgentRpcRequest,C as isAgentRpcResponse,Ge as isAnthropicProviderRuntimeFamily,ae as isExtendedSessionUpdateType,He as isOpenAiProviderRuntimeFamily,se as isStandardSessionUpdateType,$e as listProviderRuntimeEnvApiKeyNames,ce as mergeCapabilityManifestSnapshot,A as normalizeProviderRuntimeId,j as normalizeProviderRuntimeIdForAuth,xe as normalizeRuntimeResourceManifest,ie as parseAcpMessage,X as parseAgentRpcMessage,Be as preservesProviderRuntimeAnthropicThinkingSignatures,Ke as readProviderRuntimeCompatFlag,v as requireGatewayRpcMeta,h as requiresIdempotencyKey,je as requiresOpenAiCompatibleAnthropicToolPayloadForProviderRuntime,l as resolveProviderRuntimeCapabilities,Ze as resolveProviderRuntimeEnvApiKey,Ve as resolveProviderRuntimeKeyFamily,Qe as resolveProviderRuntimeTranscriptToolCallIdMode,ze as shouldDropThinkingBlocksForProviderRuntimeModel,Je as shouldSanitizeProviderRuntimeThoughtSignaturesForModel,Xe as supportsOpenAiCompatTurnValidationForProviderRuntime,ke as upsertRuntimeResourceAsset,qe as usesOpenAiFunctionAnthropicToolSchemaForProviderRuntime,Ye as usesOpenAiStringModeAnthropicToolChoiceForProviderRuntime};
|
|
@@ -16,7 +16,10 @@ export declare function handleMemoryAtlas(this: any, msg: any): Promise<void>;
|
|
|
16
16
|
*/
|
|
17
17
|
export declare function handleMemoryActivity(this: any, msg: any): Promise<void>;
|
|
18
18
|
export declare function handleMemoryAddManual(this: any, msg: any): Promise<void>;
|
|
19
|
+
export declare function handleMemoryIngest(this: any, msg: any): Promise<void>;
|
|
20
|
+
export declare function handleMemoryCommit(this: any, msg: any): Promise<void>;
|
|
19
21
|
export declare function handleMemoryRead(this: any, msg: any): Promise<void>;
|
|
20
22
|
export declare function handleMemoryWrite(this: any, msg: any): Promise<void>;
|
|
21
23
|
export declare function handleMemorySearch(this: any, msg: any): Promise<void>;
|
|
22
24
|
export declare function handleMemoryDelete(this: any, msg: any): Promise<void>;
|
|
25
|
+
export declare function handleMemoryUpdate(this: any, msg: any): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -16,6 +16,10 @@ export interface StdioServerConfig {
|
|
|
16
16
|
}
|
|
17
17
|
export declare class StdioServer {
|
|
18
18
|
private running;
|
|
19
|
+
private readonly startedAt;
|
|
20
|
+
private readonly rpcContract;
|
|
21
|
+
private readonly rpcIds;
|
|
22
|
+
private readonly rpcDeadlineTimers;
|
|
19
23
|
private activeTurn;
|
|
20
24
|
/** Resolves when the active turn fully completes (including post-abort flush). */
|
|
21
25
|
private turnDone;
|
|
@@ -127,6 +131,9 @@ export declare class StdioServer {
|
|
|
127
131
|
* If not found, create a new session and return it.
|
|
128
132
|
*/
|
|
129
133
|
private handlePing;
|
|
134
|
+
private handleHealth;
|
|
135
|
+
private handleMetrics;
|
|
136
|
+
private handleCancel;
|
|
130
137
|
private static readonly SUGGESTION_PROMPT;
|
|
131
138
|
/**
|
|
132
139
|
* Atomically resolve transport + model + apiKey for a given ModelPurpose.
|
|
@@ -319,6 +326,10 @@ export declare class StdioServer {
|
|
|
319
326
|
/** `product.cancel` — Cancel a running product. */
|
|
320
327
|
/** `product.rollback` — Rollback a product to a checkpoint. */
|
|
321
328
|
private sendResponse;
|
|
329
|
+
private sendContractError;
|
|
330
|
+
private sendContractErrorOrResult;
|
|
331
|
+
private scheduleRpcDeadline;
|
|
332
|
+
private clearRpcLifecycle;
|
|
322
333
|
private sendNotification;
|
|
323
334
|
private writeStdout;
|
|
324
335
|
private log;
|
|
@@ -19,6 +19,10 @@ export declare const AGENT_RPC_ERROR_CODES: {
|
|
|
19
19
|
readonly TOOL_INVOKE_FAILED: -32020;
|
|
20
20
|
readonly TOOL_TIMEOUT: -32021;
|
|
21
21
|
readonly PROTOCOL_MISMATCH: -32030;
|
|
22
|
+
readonly REQUEST_DEADLINE_EXCEEDED: -32040;
|
|
23
|
+
readonly REQUEST_CANCELLED: -32041;
|
|
24
|
+
readonly REQUEST_DEDUPED: -32042;
|
|
25
|
+
readonly REQUEST_IDEMPOTENCY_REQUIRED: -32043;
|
|
22
26
|
};
|
|
23
27
|
export type AgentRpcErrorCode = (typeof AGENT_RPC_ERROR_CODES)[keyof typeof AGENT_RPC_ERROR_CODES];
|
|
24
28
|
export interface AgentRpcRequest {
|
|
@@ -26,6 +30,16 @@ export interface AgentRpcRequest {
|
|
|
26
30
|
method: string;
|
|
27
31
|
params?: Record<string, unknown>;
|
|
28
32
|
id?: string | number;
|
|
33
|
+
meta?: AgentRpcMeta;
|
|
34
|
+
}
|
|
35
|
+
export type AgentRpcChannel = "query" | "task";
|
|
36
|
+
export interface AgentRpcMeta {
|
|
37
|
+
requestId: string;
|
|
38
|
+
deadlineAt: number;
|
|
39
|
+
createdAt: number;
|
|
40
|
+
channel: AgentRpcChannel;
|
|
41
|
+
idempotencyKey?: string;
|
|
42
|
+
traceId?: string;
|
|
29
43
|
}
|
|
30
44
|
export interface AgentRpcError {
|
|
31
45
|
code: AgentRpcErrorCode | number;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type AgentRpcError, type AgentRpcMeta, type AgentRpcRequest, type AgentRpcChannel } from "./agent-rpc.js";
|
|
2
|
+
export type GatewayRpcMutability = "read" | "write";
|
|
3
|
+
export interface GatewayRpcClassification {
|
|
4
|
+
channel: AgentRpcChannel;
|
|
5
|
+
mutability: GatewayRpcMutability;
|
|
6
|
+
defaultTimeoutMs: number;
|
|
7
|
+
}
|
|
8
|
+
export interface GatewayRpcMetrics {
|
|
9
|
+
activeRequests: number;
|
|
10
|
+
completedRequests: number;
|
|
11
|
+
cancelledRequests: number;
|
|
12
|
+
deadlineExceededRequests: number;
|
|
13
|
+
dedupedRequests: number;
|
|
14
|
+
lateResponsesDropped: number;
|
|
15
|
+
invalidRequests: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function classifyGatewayRpcMethod(method: string): GatewayRpcClassification;
|
|
18
|
+
export declare function requiresIdempotencyKey(method: string): boolean;
|
|
19
|
+
export declare function buildAgentRpcMeta(method: string, options?: {
|
|
20
|
+
now?: number;
|
|
21
|
+
timeoutMs?: number;
|
|
22
|
+
requestId?: string;
|
|
23
|
+
idempotencyKey?: string;
|
|
24
|
+
traceId?: string;
|
|
25
|
+
channel?: AgentRpcChannel;
|
|
26
|
+
}): AgentRpcMeta;
|
|
27
|
+
export declare function requireGatewayRpcMeta(request: Pick<AgentRpcRequest, "method" | "meta">, now?: number): {
|
|
28
|
+
ok: true;
|
|
29
|
+
meta: AgentRpcMeta;
|
|
30
|
+
} | {
|
|
31
|
+
ok: false;
|
|
32
|
+
error: AgentRpcError;
|
|
33
|
+
};
|
|
34
|
+
export declare class GatewayRpcContract {
|
|
35
|
+
private readonly now;
|
|
36
|
+
private readonly active;
|
|
37
|
+
private readonly idempotency;
|
|
38
|
+
private readonly counters;
|
|
39
|
+
constructor(options?: {
|
|
40
|
+
now?: () => number;
|
|
41
|
+
});
|
|
42
|
+
begin(method: string, meta: AgentRpcMeta): {
|
|
43
|
+
status: "started";
|
|
44
|
+
} | {
|
|
45
|
+
status: "deduped";
|
|
46
|
+
result?: unknown;
|
|
47
|
+
error?: AgentRpcError;
|
|
48
|
+
} | {
|
|
49
|
+
status: "rejected";
|
|
50
|
+
error: AgentRpcError;
|
|
51
|
+
};
|
|
52
|
+
cancel(requestId: string, reason?: string): boolean;
|
|
53
|
+
expire(requestId: string): boolean;
|
|
54
|
+
settle(requestId: string, result?: unknown, error?: AgentRpcError): {
|
|
55
|
+
accepted: true;
|
|
56
|
+
} | {
|
|
57
|
+
accepted: false;
|
|
58
|
+
reason: "unknown" | "cancelled" | "deadline_exceeded";
|
|
59
|
+
};
|
|
60
|
+
metrics(): GatewayRpcMetrics;
|
|
61
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -27,6 +27,40 @@ export interface ProjectInfo {
|
|
|
27
27
|
leaderSessionId?: string;
|
|
28
28
|
}
|
|
29
29
|
export interface GatewayRpcMethodMap {
|
|
30
|
+
"agent.health": {
|
|
31
|
+
params: {};
|
|
32
|
+
result: {
|
|
33
|
+
ok: boolean;
|
|
34
|
+
status: "healthy" | "degraded" | "stopping";
|
|
35
|
+
uptimeMs: number;
|
|
36
|
+
protocolVersion: string;
|
|
37
|
+
version: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
"agent.metrics": {
|
|
41
|
+
params: {};
|
|
42
|
+
result: {
|
|
43
|
+
rpc: {
|
|
44
|
+
activeRequests: number;
|
|
45
|
+
completedRequests: number;
|
|
46
|
+
cancelledRequests: number;
|
|
47
|
+
deadlineExceededRequests: number;
|
|
48
|
+
dedupedRequests: number;
|
|
49
|
+
lateResponsesDropped: number;
|
|
50
|
+
invalidRequests: number;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
"agent.cancel": {
|
|
55
|
+
params: {
|
|
56
|
+
requestId: string;
|
|
57
|
+
reason?: string;
|
|
58
|
+
};
|
|
59
|
+
result: {
|
|
60
|
+
ok: boolean;
|
|
61
|
+
cancelled: boolean;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
30
64
|
"session.list": {
|
|
31
65
|
params: {
|
|
32
66
|
limit?: number;
|
|
@@ -381,8 +415,14 @@ export interface GatewayRpcMethodMap {
|
|
|
381
415
|
params: {
|
|
382
416
|
userId?: string;
|
|
383
417
|
pageSize?: number;
|
|
418
|
+
windowStartAt?: number;
|
|
419
|
+
windowEndAt?: number;
|
|
420
|
+
windowCenterAt?: number;
|
|
421
|
+
bucketCount?: number;
|
|
422
|
+
clusterLimit?: number;
|
|
384
423
|
};
|
|
385
424
|
result: {
|
|
425
|
+
totalCount: number;
|
|
386
426
|
records: Array<{
|
|
387
427
|
id: string;
|
|
388
428
|
text: string;
|
|
@@ -399,6 +439,38 @@ export interface GatewayRpcMethodMap {
|
|
|
399
439
|
lastAccessedAt: number;
|
|
400
440
|
isArchived: boolean;
|
|
401
441
|
}>;
|
|
442
|
+
buckets: Array<{
|
|
443
|
+
id: string;
|
|
444
|
+
startAt: number;
|
|
445
|
+
endAt: number;
|
|
446
|
+
count: number;
|
|
447
|
+
avgImportance: number;
|
|
448
|
+
avgConfidence: number;
|
|
449
|
+
topCategory: string;
|
|
450
|
+
}>;
|
|
451
|
+
clusters: Array<{
|
|
452
|
+
id: string;
|
|
453
|
+
label: string;
|
|
454
|
+
kind: "source" | "category" | "tag";
|
|
455
|
+
count: number;
|
|
456
|
+
startAt: number;
|
|
457
|
+
endAt: number;
|
|
458
|
+
avgImportance: number;
|
|
459
|
+
avgConfidence: number;
|
|
460
|
+
topCategory: string;
|
|
461
|
+
}>;
|
|
462
|
+
windowCursor: {
|
|
463
|
+
startAt: number;
|
|
464
|
+
endAt: number;
|
|
465
|
+
centerAt: number;
|
|
466
|
+
pageSize: number;
|
|
467
|
+
hasBefore: boolean;
|
|
468
|
+
hasAfter: boolean;
|
|
469
|
+
} | null;
|
|
470
|
+
timeRange: {
|
|
471
|
+
startAt: number;
|
|
472
|
+
endAt: number;
|
|
473
|
+
} | null;
|
|
402
474
|
stats: {
|
|
403
475
|
formed: number;
|
|
404
476
|
insights: number;
|
|
@@ -433,17 +505,113 @@ export interface GatewayRpcMethodMap {
|
|
|
433
505
|
importance?: number;
|
|
434
506
|
source?: string;
|
|
435
507
|
tags?: string[];
|
|
508
|
+
attachments?: Array<{
|
|
509
|
+
type: "image" | "audio" | "video" | "file" | string;
|
|
510
|
+
filename: string;
|
|
511
|
+
mimeType?: string;
|
|
512
|
+
size?: number;
|
|
513
|
+
text?: string;
|
|
514
|
+
url?: string;
|
|
515
|
+
path?: string;
|
|
516
|
+
}>;
|
|
517
|
+
autoExtract?: boolean;
|
|
436
518
|
};
|
|
437
519
|
result: {
|
|
438
520
|
ok: boolean;
|
|
439
521
|
memoriesAdded: number;
|
|
440
522
|
};
|
|
441
523
|
};
|
|
524
|
+
"memory.ingest": {
|
|
525
|
+
params: {
|
|
526
|
+
userId?: string;
|
|
527
|
+
text?: string;
|
|
528
|
+
category?: string;
|
|
529
|
+
importance?: number;
|
|
530
|
+
source?: string;
|
|
531
|
+
tags?: string[];
|
|
532
|
+
autoExtract?: boolean;
|
|
533
|
+
attachments?: Array<{
|
|
534
|
+
type: "image" | "audio" | "video" | "file" | string;
|
|
535
|
+
filename: string;
|
|
536
|
+
mimeType?: string;
|
|
537
|
+
size?: number;
|
|
538
|
+
text?: string;
|
|
539
|
+
url?: string;
|
|
540
|
+
path?: string;
|
|
541
|
+
}>;
|
|
542
|
+
};
|
|
543
|
+
result: {
|
|
544
|
+
ok: boolean;
|
|
545
|
+
extractor: "llm" | "deterministic";
|
|
546
|
+
candidates: Array<{
|
|
547
|
+
id: string;
|
|
548
|
+
text: string;
|
|
549
|
+
category: string;
|
|
550
|
+
importance: number;
|
|
551
|
+
confidence: number;
|
|
552
|
+
source: string;
|
|
553
|
+
eventDate?: string;
|
|
554
|
+
tags: string[];
|
|
555
|
+
relatedMemoryIds: string[];
|
|
556
|
+
evidence: Array<Record<string, unknown>>;
|
|
557
|
+
requiresConfirmation: boolean;
|
|
558
|
+
reason?: string;
|
|
559
|
+
}>;
|
|
560
|
+
relatedMemories: Array<{
|
|
561
|
+
id: string;
|
|
562
|
+
text: string;
|
|
563
|
+
score: number;
|
|
564
|
+
category?: string;
|
|
565
|
+
}>;
|
|
566
|
+
};
|
|
567
|
+
};
|
|
568
|
+
"memory.commit": {
|
|
569
|
+
params: {
|
|
570
|
+
userId?: string;
|
|
571
|
+
candidates: Array<{
|
|
572
|
+
id?: string;
|
|
573
|
+
text: string;
|
|
574
|
+
category?: string;
|
|
575
|
+
importance?: number;
|
|
576
|
+
confidence?: number;
|
|
577
|
+
source?: string;
|
|
578
|
+
eventDate?: string;
|
|
579
|
+
tags?: string[];
|
|
580
|
+
relatedMemoryIds?: string[];
|
|
581
|
+
}>;
|
|
582
|
+
};
|
|
583
|
+
result: {
|
|
584
|
+
ok: boolean;
|
|
585
|
+
memoriesAdded: number;
|
|
586
|
+
};
|
|
587
|
+
};
|
|
588
|
+
"memory.update": {
|
|
589
|
+
params: {
|
|
590
|
+
userId?: string;
|
|
591
|
+
id: string;
|
|
592
|
+
text?: string;
|
|
593
|
+
category?: string;
|
|
594
|
+
importance?: number;
|
|
595
|
+
source?: string;
|
|
596
|
+
eventDate?: string;
|
|
597
|
+
tags?: string[];
|
|
598
|
+
};
|
|
599
|
+
result: {
|
|
600
|
+
ok: boolean;
|
|
601
|
+
updated: number;
|
|
602
|
+
};
|
|
603
|
+
};
|
|
442
604
|
}
|
|
443
605
|
/**
|
|
444
606
|
* Type-safe Agent RPC caller.
|
|
445
607
|
* Gateway passes this around instead of `(string, Record<string, unknown>) => Promise<unknown>`.
|
|
446
608
|
*/
|
|
447
|
-
export
|
|
609
|
+
export interface AgentCallOptions {
|
|
610
|
+
timeoutMs?: number;
|
|
611
|
+
requestId?: string;
|
|
612
|
+
idempotencyKey?: string;
|
|
613
|
+
traceId?: string;
|
|
614
|
+
}
|
|
615
|
+
export type AgentCall = <M extends keyof GatewayRpcMethodMap>(method: M, params: GatewayRpcMethodMap[M]["params"], options?: AgentCallOptions) => Promise<GatewayRpcMethodMap[M]["result"]>;
|
|
448
616
|
/** All gateway-facing RPC method names (runtime array). */
|
|
449
617
|
export declare const GATEWAY_RPC_METHODS: (keyof GatewayRpcMethodMap)[];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export { AGENT_RPC_APPROVAL_METHODS, AGENT_RPC_ERROR_CODES, AGENT_RPC_PROTOCOL_VERSION, isAgentRpcNotification, isAgentRpcRequest, isAgentRpcResponse, parseAgentRpcMessage, type AgentHelloParams, type AgentHelloResult, type AgentRpcError, type AgentRpcErrorCode, type AgentRpcMessage, type AgentRpcNotification, type AgentRpcRequest, type AgentRpcResponse, type ToolApprovalRequestParams, type ToolApprovalResponseParams, } from "./agent-rpc.js";
|
|
2
|
-
export {
|
|
1
|
+
export { AGENT_RPC_APPROVAL_METHODS, AGENT_RPC_ERROR_CODES, AGENT_RPC_PROTOCOL_VERSION, isAgentRpcNotification, isAgentRpcRequest, isAgentRpcResponse, parseAgentRpcMessage, type AgentHelloParams, type AgentHelloResult, type AgentRpcError, type AgentRpcErrorCode, type AgentRpcMeta, type AgentRpcChannel, type AgentRpcMessage, type AgentRpcNotification, type AgentRpcRequest, type AgentRpcResponse, type ToolApprovalRequestParams, type ToolApprovalResponseParams, } from "./agent-rpc.js";
|
|
2
|
+
export { GatewayRpcContract, buildAgentRpcMeta, classifyGatewayRpcMethod, requireGatewayRpcMeta, requiresIdempotencyKey, type GatewayRpcClassification, type GatewayRpcMetrics, type GatewayRpcMutability, } from "./gateway-contract.js";
|
|
3
|
+
export { GATEWAY_RPC_METHODS, type AgentCall, type AgentCallOptions, type GatewayRpcMethodMap, type ProjectInfo as RpcProjectInfo, type ProjectStatus as RpcProjectStatus, type ProjectType as RpcProjectType, } from "./gateway-rpc.js";
|
|
3
4
|
export { type ChatMessage, type ChatMessageRole, type ThinkingBlock, type ToolCallMessage, type ToolDefinition, } from "./chat-types.js";
|
|
4
5
|
export { type AgentCapabilities, type AgentCategory, type AgentConfig, type AgentDescriptor, type AgentProtocol, type AgentRpcMethodMap, type AgentStatus, type CustomAgentDef, type ProductInstanceDef, type ProductPhase, type ProductStatus, type ProductSummary, type ProductTaskDef, type ProductTaskStatus, type SoloAgentResult, type SoloAgentState, type SoloState, type SoloStatus, } from "./agent-methods.js";
|
|
5
6
|
export { AGENT_TEAM_WS_EVENT_NAMES, AGENT_WS_EVENT_NAMES, ALL_AGENT_WS_EVENT_NAMES, type AgentTeamWsEventName, type AgentWsEventName, type AllAgentWsEventName, } from "./agent-events.js";
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { PetSoulService, type PetSoul, type PetStats, type PetBreed } from "./pet-soul-service.js";
|
|
5
5
|
export { maybeGenerateReaction, generateLLMReaction, type ReactionPool, type LLMReactionContext, type ReactionStyle } from "./pet-reaction-service.js";
|
|
6
|
-
export { petContextInjection } from "./pet-context-injection.js";
|
|
7
6
|
export { PetGrowthEngine, type GrowthEvent, type MoltResult, type PetAbility } from "./pet-growth-engine.js";
|
|
8
7
|
export { loadPetFile, validatePetManifest, sanitizeSvg, type PetManifest, type PetFileBundle } from "./pet-file-loader.js";
|
|
9
8
|
export { buildSkeletonPrompt, parseSkeleton, renderState, extractColors, validateSkeleton, STATE_ANIMATION_MAP, type PetSkeleton, type SkeletonPart, type StateAnimationParams } from "./pet-skeleton.js";
|
|
@@ -2,10 +2,7 @@
|
|
|
2
2
|
* Local Embedding — Pluggable embedding interface for local memory.
|
|
3
3
|
*
|
|
4
4
|
* Provides a unified interface for text → vector embedding.
|
|
5
|
-
*
|
|
6
|
-
* 1. "api" — calls an external embedding API (OpenAI-compatible)
|
|
7
|
-
* 2. "onnx" — @xenova/transformers for fully offline embedding
|
|
8
|
-
* 3. "none" — no embeddings, FTS-only search (zero-dep fallback)
|
|
5
|
+
* If no API config is provided, memory search falls back to FTS-only.
|
|
9
6
|
*/
|
|
10
7
|
export interface EmbeddingProvider {
|
|
11
8
|
readonly dimensions: number;
|
|
@@ -38,29 +35,6 @@ export declare class NullEmbeddingProvider implements EmbeddingProvider {
|
|
|
38
35
|
embed(_text: string): Promise<Float32Array>;
|
|
39
36
|
embedBatch(_texts: string[]): Promise<Float32Array[]>;
|
|
40
37
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Wraps a primary EmbeddingProvider with automatic fallback to a local provider.
|
|
43
|
-
* When the primary fails (timeout, network error, 5xx), transparently retries with local.
|
|
44
|
-
*
|
|
45
|
-
* IMPORTANT: primary and fallback MUST have the same dimensions.
|
|
46
|
-
* If they differ, vectors in the same index will be incomparable.
|
|
47
|
-
* Use this only when both produce the same dimensionality (e.g. hub TEI bge-m3 1024d
|
|
48
|
-
* + local ONNX bge-m3-small 1024d).
|
|
49
|
-
*/
|
|
50
|
-
export declare class FallbackEmbeddingProvider implements EmbeddingProvider {
|
|
51
|
-
readonly dimensions: number;
|
|
52
|
-
readonly model: string;
|
|
53
|
-
private primary;
|
|
54
|
-
private fallback;
|
|
55
|
-
private onFallback?;
|
|
56
|
-
constructor(opts: {
|
|
57
|
-
primary: EmbeddingProvider;
|
|
58
|
-
fallback: EmbeddingProvider;
|
|
59
|
-
onFallback?: (error: Error) => void;
|
|
60
|
-
});
|
|
61
|
-
embed(text: string): Promise<Float32Array>;
|
|
62
|
-
embedBatch(texts: string[]): Promise<Float32Array[]>;
|
|
63
|
-
}
|
|
64
38
|
export declare class ApiEmbeddingProvider implements EmbeddingProvider {
|
|
65
39
|
readonly dimensions: number;
|
|
66
40
|
readonly model: string;
|
|
@@ -75,89 +49,19 @@ export declare class ApiEmbeddingProvider implements EmbeddingProvider {
|
|
|
75
49
|
private parseResponse;
|
|
76
50
|
}
|
|
77
51
|
export interface LocalEmbeddingConfig {
|
|
78
|
-
strategy: "api" | "onnx" | "none";
|
|
79
52
|
api?: EmbeddingApiConfig;
|
|
80
|
-
onnx?: OnnxEmbeddingConfig;
|
|
81
|
-
/**
|
|
82
|
-
* When strategy=api, if the API fails (timeout/error), fallback to this.
|
|
83
|
-
* - "onnx": use local ONNX model (download on first use, ~23MB)
|
|
84
|
-
* - "none": give up embedding (FTS-only)
|
|
85
|
-
* Requires same dimensions for vector compatibility. Default ONNX model
|
|
86
|
-
* (bge-small-zh-v1.5, 512d) differs from bge-m3 (1024d).
|
|
87
|
-
* Accept dimension mismatch for degraded recall in fallback mode.
|
|
88
|
-
*/
|
|
89
|
-
fallbackStrategy?: "onnx" | "none";
|
|
90
|
-
fallbackOnnx?: OnnxEmbeddingConfig;
|
|
91
|
-
}
|
|
92
|
-
export interface OnnxEmbeddingConfig {
|
|
93
|
-
/** Model ID for @xenova/transformers (default: "Xenova/bge-small-zh-v1.5") */
|
|
94
|
-
modelId?: string;
|
|
95
|
-
/** Expected dimensions (default: 512 for bge-small-zh-v1.5) */
|
|
96
|
-
dimensions?: number;
|
|
97
|
-
/** Max sequence length before truncation (default: 256) */
|
|
98
|
-
maxLength?: number;
|
|
99
|
-
/** Override local model path (for testing). */
|
|
100
|
-
localModelPath?: string;
|
|
101
53
|
}
|
|
102
|
-
/**
|
|
103
|
-
* Offline embedding provider using ONNX Runtime via @xenova/transformers.
|
|
104
|
-
*
|
|
105
|
-
* Model is lazily downloaded on first use (~24MB for bge-small-zh-v1.5 quantized).
|
|
106
|
-
* Subsequent loads are instant from local cache (~/.qlogicagent/models/).
|
|
107
|
-
*
|
|
108
|
-
* For China network: set ONNX_MODEL_MIRROR to OSS URL or HF_MIRROR=https://hf-mirror.com
|
|
109
|
-
*/
|
|
110
|
-
export declare class OnnxEmbeddingProvider implements EmbeddingProvider {
|
|
111
|
-
readonly dimensions: number;
|
|
112
|
-
readonly model: string;
|
|
113
|
-
private maxLength;
|
|
114
|
-
private localModelPath;
|
|
115
|
-
private pipeline;
|
|
116
|
-
private loading;
|
|
117
|
-
constructor(config?: OnnxEmbeddingConfig);
|
|
118
|
-
private getPipeline;
|
|
119
|
-
embed(text: string): Promise<Float32Array>;
|
|
120
|
-
embedBatch(texts: string[]): Promise<Float32Array[]>;
|
|
121
|
-
/**
|
|
122
|
-
* Pre-download and load the ONNX model without blocking.
|
|
123
|
-
* Call this at process startup for instant readiness on first real embed().
|
|
124
|
-
*/
|
|
125
|
-
warmup(): Promise<void>;
|
|
126
|
-
}
|
|
127
|
-
export interface WarmupResult {
|
|
128
|
-
onnxAvailable: boolean;
|
|
129
|
-
modelCached: boolean;
|
|
130
|
-
modelDownloaded: boolean;
|
|
131
|
-
dimensions: number;
|
|
132
|
-
error?: string;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Run at process startup to verify environment and pre-download ONNX model.
|
|
136
|
-
*
|
|
137
|
-
* - Checks if @xenova/transformers is installed
|
|
138
|
-
* - Checks if model already in local cache
|
|
139
|
-
* - If not cached, downloads from OSS CDN in background
|
|
140
|
-
* - Returns status for diagnostics logging
|
|
141
|
-
*
|
|
142
|
-
* Fire-and-forget: never throws, never blocks critical path.
|
|
143
|
-
*/
|
|
144
|
-
export declare function warmupEmbeddingModel(config?: OnnxEmbeddingConfig): Promise<WarmupResult>;
|
|
145
54
|
/**
|
|
146
55
|
* Create an embedding provider based on configuration.
|
|
147
56
|
*
|
|
148
57
|
* Resolution order:
|
|
149
|
-
* 1.
|
|
150
|
-
* 2.
|
|
151
|
-
* 3. Fallback to NullEmbeddingProvider (FTS-only)
|
|
152
|
-
*
|
|
153
|
-
* When config.fallbackStrategy is set and strategy=api, wraps primary in
|
|
154
|
-
* FallbackEmbeddingProvider for automatic local retry on API failure.
|
|
58
|
+
* 1. API config → ApiEmbeddingProvider
|
|
59
|
+
* 2. No API config → NullEmbeddingProvider (FTS-only)
|
|
155
60
|
*/
|
|
156
61
|
export declare function createEmbeddingProvider(config?: LocalEmbeddingConfig): EmbeddingProvider;
|
|
157
62
|
/**
|
|
158
63
|
* Known provider → format mapping.
|
|
159
|
-
* Used
|
|
160
|
-
* when the user's LLM provider also has an embedding API.
|
|
64
|
+
* Used only for the explicit ModelRegistry embedding binding.
|
|
161
65
|
*/
|
|
162
66
|
export declare const PROVIDER_EMBEDDING_REGISTRY: Record<string, {
|
|
163
67
|
format: "openai" | "minimax" | "volcengine";
|