qlogicagent 2.20.3 → 2.20.5

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/protocol.js CHANGED
@@ -1 +1 @@
1
- var G="1.0.0",l={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},z={REQUEST:"tool.approval.request"};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 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 x(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)||_(t)||x(t)?t:null}import{randomUUID as $}from"node:crypto";var J=["settings.list","settings.get","settings.validate","provider.list","tools.list","todos.list","tasks.list","session.list","session.get","session.resolve","session.loadNativeTranscript","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","agent.health","agent.metrics"],Q=new Set(["memory.dream","memory.propose","memory.consolidate","media.stt"]),Z=["memory.","usage."],ee=new Set(["memory.atlas","memory.activity","memory.list","memory.read","memory.search","memory.attachment.locate","memory.attachment.adopt"]);function A(e){return Q.has(e)?{channel:"task",mutability:"write",defaultTimeoutMs:12e4}:J.some(t=>e===t||e.startsWith(`${t}.`)||e.startsWith(t))?{channel:"query",mutability:"read",defaultTimeoutMs:1e4}:{channel:"task",mutability:"write",defaultTimeoutMs:3e4}}function v(e){return ee.has(e)||A(e).mutability==="read"?!1:Z.some(t=>e.startsWith(t))}function te(e,t={}){let n=t.now??Date.now(),r=A(e),o=t.timeoutMs??r.defaultTimeoutMs;return{requestId:t.requestId??$(),createdAt:n,deadlineAt:n+o,channel:t.channel??r.channel,idempotencyKey:t.idempotencyKey,traceId:t.traceId}}function M(e,t=Date.now()){let n=e.meta;if(!n||typeof n!="object")return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta is required."}};if(typeof n.requestId!="string"||n.requestId.length===0)return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.requestId is required."}};if(n.channel!=="query"&&n.channel!=="task")return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.channel must be query or task."}};if(typeof n.createdAt!="number"||!Number.isFinite(n.createdAt))return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.createdAt is required."}};if(typeof n.deadlineAt!="number"||!Number.isFinite(n.deadlineAt))return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.deadlineAt is required."}};if(n.deadlineAt<=t)return{ok:!1,error:{code:l.REQUEST_DEADLINE_EXCEEDED,message:"RPC request deadline has already expired."}};let r=A(e.method).channel;return n.channel!==r?{ok:!1,error:{code:l.INVALID_REQUEST,message:`RPC request channel mismatch: expected ${r}, got ${n.channel}.`}}:v(e.method)&&(typeof n.idempotencyKey!="string"||n.idempotencyKey.length===0)?{ok:!1,error:{code:l.REQUEST_IDEMPOTENCY_REQUIRED,message:`RPC method ${e.method} requires meta.idempotencyKey.`}}:{ok:!0,meta:n}}var I=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,n){let r=M({method:t,meta:n},this.now());if(!r.ok)return this.counters.invalidRequests+=1,{status:"rejected",error:r.error};if(n.idempotencyKey){let o=this.idempotency.get(n.idempotencyKey);if(o)return this.counters.dedupedRequests+=1,o.error?{status:"deduped",error:o.error}:{status:"deduped",result:o.result}}return this.active.set(n.requestId,{method:t,meta:n,cancelled:!1,startedAt:this.now()}),{status:"started"}}cancel(t,n="cancelled"){let r=this.active.get(t);return!r||r.cancelled?!1:(r.cancelled=!0,r.cancelReason=n,this.counters.cancelledRequests+=1,!0)}expire(t){return this.active.get(t)?(this.active.delete(t),this.counters.deadlineExceededRequests+=1,!0):!1}settle(t,n,r){let o=this.active.get(t);return o?(this.active.delete(t),o.cancelled?(this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"cancelled"}):o.meta.deadlineAt<=this.now()?(this.counters.deadlineExceededRequests+=1,this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"deadline_exceeded"}):(this.counters.completedRequests+=1,o.meta.idempotencyKey&&this.idempotency.set(o.meta.idempotencyKey,{result:n,error:r,settledAt:this.now()}),{accepted:!0})):{accepted:!1,reason:"unknown"}}metrics(){return{activeRequests:this.active.size,...this.counters}}};var ne=["agent.health","agent.metrics","agent.cancel","provider.catalog","provider.list","provider.get","provider.install","provider.install.cancel","provider.update","provider.uninstall","provider.enable","provider.disable","provider.diagnose","provider.auth.status","provider.auth.setPreference","provider.auth.setUserKey","provider.auth.methods","provider.auth.start","provider.auth.attach","provider.auth.input","provider.auth.resize","provider.auth.cancel","provider.auth.logout","provider.models.list","provider.nativeSessions.list","provider.nativeSessions.load","provider.nativeSessions.resume","delegation.cancel","delegation.reset","session.list","session.get","session.create","session.update","session.delete","session.deleteAll","session.archive","session.loadNativeTranscript","session.adoptNative","session.moveToProject","session.getState","session.switchProject","session.getMessages","project.list","project.create","project.detach","project.delete","project.rename","project.archive","project.unarchive","project.update","instructions.list","instructions.read","instructions.write","instructions.delete","files.list","files.read","files.create","files.rename","files.move","files.copy","files.delete","files.search","files.undoOperation","files.gitStatus","turnBaseline.getSummary","turnBaseline.getFileDiff","turnBaseline.listRecent","turnBaseline.getFileBaseline","workingMaterials.get","workingMaterials.replace","workingMaterials.upsert","workingMaterials.remove","workingMaterials.reorder","skills.list","memory.list-files","memory.atlas","memory.activity","memory.propose","memory.consolidate","memory.update","memory.attachment.adopt","memory.attachment.locate"];var R=["turn.start","turn.delta","turn.end","turn.error","turn.recovery","turn.file_changes","turn.tool_call","turn.tool_result","turn.tool_blocked","turn.reasoning_delta","turn.approval_request","turn.ask_user","turn.media_result","turn.media_progress","turn.media_usage","turn.media_capability_check","turn.plan_update","turn.suggestions","turn.sidechain_started","turn.subagent_started","turn.subagent_delta","turn.subagent_activity","turn.subagent_ended","turn.subagent_completed","turn.subagent_decision","turn.sidechain_completed","turn.task_updated","turn.todos_updated","turn.exec_progress","turn.progress","turn.tool_use_summary","turn.tool_selection_policy","turn.lifecycle","turn.document_maintenance","turn.artifact_contract","turn.usage_update","team.member.notification","session.info","session.recovery_pending","memory.updated","skills.updated","turn.memory_recall","turn.memory_written","system.activity","workflow.created","workflow.updated","workflow.deleted","workflow.runStarted","workflow.runCompleted","workflow.runFailed","workflow.nodeStatus","workflow.triggerDropped","workflow.alert","workflow.approvalRequested","workflow.approvalTimedOut"],b=["solo.progress","solo.specProgress","solo.agentDelta","solo.agentActivity","solo.agentUsage","solo.evaluation","solo.agentDiff","solo.state","product.taskStarted","product.taskOutput","product.members","product.agentActivity","product.taskCompleted","product.taskFailed","product.budgetUpdate","product.budgetWarning","product.budgetExceeded","product.checkpointed","product.completed","product.dagTopology","plan.interrupted","product.planReady","product.planningDelta","product.leaderMessage","product.planFailed","product.planningAsk","goal.run_state_changed","goal.phase_boundary","goal.goal_edited","goal.message_queued","goal.acceptance_updated","goal.round_message","mention.delegate_started","mention.delegate_activity","mention.delegate_settled"],re=[...R,...b],w=re;import{MODEL_PURPOSES as rn}from"@xiaozhiclaw/module-sdk/model-access";var ie=["fact","preference","insight","lesson","decision","plan","event","pattern","context","procedure","general"],kt=new Set(ie),oe=["equals","includes","excludes"],Tt=new Set(oe);import{createHash as xt}from"node:crypto";import{resolve as Mt}from"node:path";var O=["efficiency","dev","cloud","data","industrial","marketing","ecommerce","procurement","hr","accounting","finance","legal","lifestyle"];var Nt=new Set(O);var m={request:"x/delegate",update:"x/delegate.update",respond:"x/delegate.respond",cancel:"x/delegate.cancel"},se=["search","addText","embedText","ingestExtracted","proposeExtracted","consumePendingProposals","feedback","findRelatedEvents","synthesizeTimeline","getActivitySummary","getAllProfiles","setProfile","getAtlas","setMemoryArchived","triggerDecay","resolveConflicts","readProcedureUsage","writeProcedureUsage","readDistillCandidates","writeDistillCandidates","readPromotionProposals","writePromotionProposals","listActiveMemoriesByTag","readDistilledProcedure","promoteDistilledProcedure","demoteDistilledProcedure","recordInjectedAccess","recordRecallOutcome","enqueueExtractionTurn","claimPendingExtractionTurns","completeExtractionTurn","releaseExtractionTurn","recordExtractionTurnFailure"],ae=["initialize","getIndex","addToIndex","replaceInIndex","removeFromIndex","createFile","writeFile","readFile","deleteFile","listFiles","searchLocal"],de=["getSkillSnapshot","readSkillFile","recordSkillInvocation","commitSkillMutation","applyCuratorPlan","prepareSkillInstall","finalizeSkillInstall"],pe=["loadForResume","appendTranscript","updateTitle","saveState","saveTaskSummary","groupSplit"],ce=["commitTurnTelemetry","listDistillableFeedback","markFeedbackDistilled","runUploadSweep"],le=["getSnapshot","create","switch","update"],qt=1024*1024,ue=["list","get","diagnose"],ge=["navigate","snapshot","click","type","screenshot","console","network"];var me=["open","openWithCheckpoint","recordEvent","checkpoint","get","list","delete","getCheckpoint","listCheckpoints","restoreCheckpoint"],fe=["getTunables","updateTunable","clearTunable","appendDirectoryAllowRule"];var Bt=new Set(se),Yt=new Set(ae),Gt=new Set(fe),zt=new Set(de),Xt=new Set(pe),$t=new Set(ce),Jt=new Set(le),Qt=new Set(me),Zt=new Set(ue),en=new Set(ge);var ye=1,Ae={INITIALIZE:"initialize",SESSION_NEW:"session/new",SESSION_PROMPT:"session/prompt",SESSION_CLOSE:"session/close",SESSION_SET_CONFIG:"session/set_config_option",SESSION_SET_MODEL:"session/set_model",SESSION_SET_MODE:"session/set_mode",SESSION_LOAD:"session/load",SESSION_CANCEL:"session/cancel",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"},Se={ABORT:"x/abort",DREAM:"x/dream",SOLO_START:"x/solo.start",SOLO_SELECT:"x/solo.select",SOLO_CANCEL:"x/solo.cancel",SOLO_DELETE:"x/solo.delete",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_REPLAY:"x/product.replay",SOLO_SUBSCRIBE:"x/solo.subscribe",SOLO_MESSAGE:"x/solo.message",SOLO_EVALUATE:"x/solo.evaluate",SOLO_SPEC_CHAT:"x/solo.specChat",SOLO_SPEC_JUDGE:"x/solo.specJudge",WORKFLOW_CHAT:"x/workflow.chat",WORKFLOW_MATCH_INTENT:"x/workflow.matchIntent",PRODUCT_SUBSCRIBE:"x/product.subscribe",GOAL_START:"x/goal.start",GOAL_PAUSE:"x/goal.pause",GOAL_RESUME:"x/goal.resume",GOAL_UPDATE_GOAL:"x/goal.updateGoal",GOAL_STOP:"x/goal.stop",GOAL_MESSAGE:"x/goal.message",GOAL_SUBSCRIBE:"x/goal.subscribe",DELEGATE:m.request,DELEGATE_UPDATE:m.update,DELEGATE_RESPOND:m.respond,DELEGATE_CANCEL:m.cancel},N={USER_MESSAGE_CHUNK:"user_message_chunk",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",CURRENT_MODE_UPDATE:"current_mode_update"},Ie={X_SESSION_INFO:"x_session_info",X_RELAY:"x_relay"};function D(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"&&typeof t.method=="string"&&!("id"in t)}function L(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&"id"in t&&!("method"in t)}function Re(e){let t;try{t=JSON.parse(e)}catch{return null}return L(t)||D(t)||H(t)?t:null}function be(e){return Object.values(N).includes(e)}function Ee(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 P(e){return e?e.map(t=>({...t})):void 0}function Pe(e){return e?[...e]:void 0}function U(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].sort((t,n)=>t.localeCompare(n))}function f(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:P(e.workspaceSummaries)}:{}}}function he(e){let{previous:t,update:n}=e;return!(n.syncMode==="diff"&&t&&(!n.baseSnapshotVersion||t.snapshotVersion===n.baseSnapshotVersion))||!t?f(n):{...f(t),snapshotVersion:n.snapshotVersion,updatedAt:n.updatedAt,...n.gatewayVersion!==void 0?{gatewayVersion:n.gatewayVersion}:{},...n.syncMode?{syncMode:n.syncMode}:{},...n.baseSnapshotVersion?{baseSnapshotVersion:n.baseSnapshotVersion}:{},...n.changedSections?{changedSections:[...n.changedSections]}:{},...n.toolNamespaces?{toolNamespaces:[...n.toolNamespaces]}:{},...n.workspaceIds?{workspaceIds:[...n.workspaceIds]}:{},...n.installedCapabilities?{installedCapabilities:[...n.installedCapabilities]}:{},...n.enabledCapabilities?{enabledCapabilities:[...n.enabledCapabilities]}:{},...n.features?{features:[...n.features]}:{},...n.approvalMode?{approvalMode:n.approvalMode}:{},...n.toolManifests?{toolManifests:g(n.toolManifests)}:{},...n.skillManifests?{skillManifests:g(n.skillManifests)}:{},...n.pluginManifests?{pluginManifests:g(n.pluginManifests)}:{},...n.mcpManifests?{mcpManifests:g(n.mcpManifests)}:{},...n.approvalPolicy?{approvalPolicy:{...n.approvalPolicy}}:{},...n.workspaceSummaries?{workspaceSummaries:P(n.workspaceSummaries)}:{}}}function ke(e){return U(e.map(t=>t.name.split(".")[0]??"").filter(Boolean))}function Te(e){return U(e.map(t=>t.id))}function _e(e){let{previous:t,current:n}=e;if(!t)return{...f(n),syncMode:"full"};if(t.snapshotVersion===n.snapshotVersion)return null;let r=E.filter(s=>JSON.stringify(t[s])!==JSON.stringify(n[s]));if(r.length===E.length)return{...f(n),syncMode:"full"};let o={snapshotVersion:n.snapshotVersion,updatedAt:n.updatedAt,syncMode:"diff",baseSnapshotVersion:t.snapshotVersion,changedSections:r,toolNamespaces:[...n.toolNamespaces],workspaceIds:[...n.workspaceIds]},p=o;for(let s of r){let i=n[s];if(i!==void 0)switch(s){case"toolNamespaces":case"workspaceIds":case"installedCapabilities":case"enabledCapabilities":case"features":p[s]=Pe(i);break;case"approvalPolicy":p[s]={...i};break;case"workspaceSummaries":p[s]=P(i);break;case"toolManifests":case"skillManifests":case"pluginManifests":case"mcpManifests":p[s]=g(i);break;default:p[s]=i;break}}return o}var Ce=["web_search","web_fetch","web_research","browser_execution"],xe=["web-intelligence","browser-execution"],ve=["discovery","read-url","multi-source-research","interactive-browser"],Me=["stateless","render-backend","interactive-session"],we=["stateless","stateless-single-step","stateful-session-required"],Oe=["required","conditional","none"],Ne=["browser-read","browser-authenticated-read","browser-state-changing"];var De=["read-page","read-authenticated-page","fill-form","submit-form","download-file","reuse-session"],He=["web_search","web_fetch","web_research","blocked"],Le=["requires-interaction","requires-login-state","requires-rendered-dom","requires-persistent-session","requires-state-changing-action"],Ue=["none","same-capability-once","degrade-only"];var je=["prefetch","sync_turn","on_pre_compress","on_session_end","on_delegation","on_memory_write"],Ke=["turn","sidechain","compress","session-end","agent-remember","auto-extract","implicit-extract","profile-extraction","dream"],Fe=["observe-only","parent-write","deny"];var Ve=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"},y={desktopDockerBridge:"desktop.docker-bridge",desktopEmbeddedWin32X64:"desktop.embedded.win32-x64"};function K(e){return{...e,artifacts:e.artifacts.map(t=>({...t}))}}function We(e){return{...e,assetIds:[...e.assetIds]}}function F(){return{[y.desktopDockerBridge]:{id:y.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."},[y.desktopEmbeddedWin32X64]:{id:y.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 qe(e,t){let n=W(e,t);return n?n.assetIds.map(r=>V(e,r)).filter(r=>!!r):[]}function Be(e,t){return e.assets[t.id]=K(t),q(e)}function h(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 q(e){let t=h(e.assets[a.gatewayImage]),n=h(e.assets[a.whisperModelTiny]);return{...e,gateway:t,whisperModel:n}}function j(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 Ye(e){let t=e&&typeof e=="object"?e:{},n={},r=t.assets&&typeof t.assets=="object"?t.assets:{};for(let[i,d]of Object.entries(r)){if(!d||typeof d!="object")continue;let u=d;!u.id||!Array.isArray(u.artifacts)||(n[i]=K(u))}if(!n[a.gatewayImage]&&t.gateway&&typeof t.gateway=="object"){let i=j(t.gateway,{id:a.gatewayImage,title:"XiaoZhiClaw Gateway Image (Desktop Slim)",kind:"container-image",delivery:"remote",platform:"any",description:"Desktop Docker mode gateway image."});i&&(n[i.id]=i)}if(!n[a.whisperModelTiny]&&t.whisperModel&&typeof t.whisperModel=="object"){let i=j(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."});i&&(n[i.id]=i)}let p={...F()},s=t.profiles&&typeof t.profiles=="object"?t.profiles:{};for(let[i,d]of Object.entries(s)){if(!d||typeof d!="object")continue;let u=d;!u.id||!Array.isArray(u.assetIds)||(p[i]=We(u))}return q({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:n,profiles:p})}var Ge=["pending","captured","failed","restored"],ze=["file","directory","missing"],Xe=["metadata-only","workspace-copy","shadow-git"];var $e=["api-key","oauth","token","aws-sdk"],Je=["rate_limit","auth","server_error","timeout","network","unknown"],Qe=["requiresOpenAiAnthropicToolPayload"];function Ze(e,t){return!e||typeof e!="object"||Array.isArray(e)?!1:e[t]===!0}var B="openai-codex";function S(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 Y(e){let t=S(e);return t==="volcengine-plan"?"volcengine":t==="qwen-coding"?"qwen":t==="byteplus-plan"?"byteplus":t}var et=Y,tt={anthropicToolSchemaMode:"native",anthropicToolChoiceMode:"native",providerFamily:"default",preserveAnthropicThinkingSignatures:!0,openAiCompatTurnValidation:!0,providerThoughtSignatureSanitization:!1,transcriptToolCallIdMode:"default",transcriptToolCallIdModelHints:[],providerThoughtSignatureModelHints:[],dropThinkingBlockModelHints:[]},nt={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 k(e,t){let n=(e??"").toLowerCase();return!!n&&t.some(r=>n.includes(r))}function c(e){let t=S(e??"");return{...tt,...nt[t]}}function rt(e){return c(e).preserveAnthropicThinkingSignatures}function it(e){let t=c(e);return t.anthropicToolSchemaMode!=="native"||t.anthropicToolChoiceMode!=="native"}function ot(e){return c(e).anthropicToolSchemaMode==="openai-functions"}function st(e){return c(e).anthropicToolChoiceMode==="openai-string-modes"}function at(e){return c(e).openAiCompatTurnValidation}function dt(e){return c(e).providerFamily==="openai"}function pt(e){return c(e).providerFamily==="anthropic"}function ct(e){return k(e.modelId,c(e.provider).dropThinkingBlockModelHints)}function lt(e){let t=c(e.provider);return t.providerThoughtSignatureSanitization&&k(e.modelId,t.providerThoughtSignatureModelHints)}function ut(e,t){let n=c(e),r=n.transcriptToolCallIdMode;if(r==="strict9")return r;if(k(t,n.transcriptToolCallIdModelHints))return"strict9"}var T={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"],qwen:["DASHSCOPE_API_KEY","QWEN_API_KEY"],"qwen-coding":["DASHSCOPE_API_KEY","QWEN_API_KEY"],volcengine:["VOLCANO_ENGINE_API_KEY","ARK_API_KEY","DOUBAO_API_KEY"],"volcengine-plan":["VOLCANO_ENGINE_API_KEY","ARK_API_KEY","DOUBAO_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 gt(){return[...new Set(Object.values(T).flat())]}function mt(e){let t=S(e.provider),n=e.env??process.env,r=new Set(e.appliedEnvKeys??[]),o=i=>{let d=n[i]?.trim();if(!d)return null;let u=r.has(i)?`shell env: ${i}`:`env: ${i}`;return{apiKey:d,source:u}},p=e.resolveSpecialApiKey?.(t,n,r);if(p)return p;let s=T[t];if(!s||s.length===0)return null;for(let i of s){let d=o(i);if(d)return d}return null}export{Se as ACP_EXTENDED_METHODS,Ie as ACP_EXTENDED_SESSION_UPDATE_TYPES,Ae as ACP_METHODS,ye as ACP_PROTOCOL_VERSION,N as ACP_SESSION_UPDATE_TYPES,z as AGENT_RPC_APPROVAL_METHODS,l as AGENT_RPC_ERROR_CODES,G as AGENT_RPC_PROTOCOL_VERSION,b as AGENT_TEAM_WS_EVENT_NAMES,R as AGENT_WS_EVENT_NAMES,w as ALL_AGENT_WS_EVENT_NAMES,E as CAPABILITY_MANIFEST_DIFF_SECTIONS,ne as GATEWAY_RPC_METHODS,I as GatewayRpcContract,je as MEMORY_OBSERVATION_HOOK_VALUES,Ke as MEMORY_OBSERVATION_SOURCE_VALUES,Fe as MEMORY_WRITE_ACCESS_VALUES,Xe as MUTATION_CHECKPOINT_BACKEND_VALUES,ze as MUTATION_CHECKPOINT_ENTRY_KIND_VALUES,Ge as MUTATION_CHECKPOINT_PHASE_VALUES,$e as PROVIDER_RUNTIME_AUTH_MODE_VALUES,Qe as PROVIDER_RUNTIME_COMPAT_FLAG_VALUES,T as PROVIDER_RUNTIME_ENV_API_KEY_CANDIDATES,B as PROVIDER_RUNTIME_OPENAI_CODEX_PROVIDER_ID,Je as PROVIDER_RUNTIME_VAULT_ERROR_TYPE_VALUES,Ve as RESOURCE_MANIFEST_SCHEMA_VERSION,a as RUNTIME_ASSET_IDS,y as RUNTIME_PROFILE_IDS,De as WEB_ACTION_SCOPE_VALUES,Oe as WEB_APPROVAL_DEFAULT_VALUES,xe as WEB_CAPABILITY_FAMILY_VALUES,Ce as WEB_CAPABILITY_ID_VALUES,He as WEB_DEGRADATION_TARGET_VALUES,Le as WEB_ESCALATION_REASON_VALUES,Me as WEB_EXECUTION_MODE_VALUES,Ne as WEB_POLICY_RISK_CLASS_VALUES,Ue as WEB_RETRY_POLICY_VALUES,we as WEB_STATEFULNESS_VALUES,ve as WEB_TASK_MODE_VALUES,te as buildAgentRpcMeta,A as classifyGatewayRpcMethod,f as cloneCapabilityManifestSnapshot,_e as createCapabilityManifestDiffPayload,F as createDefaultRuntimeResourceProfiles,ke as deriveCapabilityToolNamespaces,Te as deriveCapabilityWorkspaceIds,h as getManifestShortcutEntry,V as getRuntimeResourceAsset,W as getRuntimeResourceProfile,qe as getRuntimeResourceProfileAssets,H as isAcpJsonRpcNotification,D as isAcpJsonRpcRequest,L as isAcpJsonRpcResponse,x as isAgentRpcNotification,_ as isAgentRpcRequest,C as isAgentRpcResponse,pt as isAnthropicProviderRuntimeFamily,Ee as isExtendedSessionUpdateType,dt as isOpenAiProviderRuntimeFamily,be as isStandardSessionUpdateType,gt as listProviderRuntimeEnvApiKeyNames,he as mergeCapabilityManifestSnapshot,S as normalizeProviderRuntimeId,Y as normalizeProviderRuntimeIdForAuth,Ye as normalizeRuntimeResourceManifest,Re as parseAcpMessage,X as parseAgentRpcMessage,rt as preservesProviderRuntimeAnthropicThinkingSignatures,Ze as readProviderRuntimeCompatFlag,M as requireGatewayRpcMeta,v as requiresIdempotencyKey,it as requiresOpenAiCompatibleAnthropicToolPayloadForProviderRuntime,c as resolveProviderRuntimeCapabilities,mt as resolveProviderRuntimeEnvApiKey,et as resolveProviderRuntimeKeyFamily,ut as resolveProviderRuntimeTranscriptToolCallIdMode,ct as shouldDropThinkingBlocksForProviderRuntimeModel,lt as shouldSanitizeProviderRuntimeThoughtSignaturesForModel,at as supportsOpenAiCompatTurnValidationForProviderRuntime,Be as upsertRuntimeResourceAsset,ot as usesOpenAiFunctionAnthropicToolSchemaForProviderRuntime,st as usesOpenAiStringModeAnthropicToolChoiceForProviderRuntime};
1
+ var G="1.0.0",l={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},z={REQUEST:"tool.approval.request"};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 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 x(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)||_(t)||x(t)?t:null}import{randomUUID as $}from"node:crypto";var J=["settings.list","settings.get","settings.validate","provider.list","tools.list","todos.list","tasks.list","session.list","session.get","session.resolve","session.loadNativeTranscript","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","agent.health","agent.metrics"],Q=new Set(["memory.dream","memory.propose","memory.consolidate","media.stt"]),Z=["memory.","usage."],ee=new Set(["memory.atlas","memory.activity","memory.list","memory.read","memory.search","memory.attachment.locate","memory.attachment.adopt"]);function A(e){return Q.has(e)?{channel:"task",mutability:"write",defaultTimeoutMs:12e4}:J.some(t=>e===t||e.startsWith(`${t}.`)||e.startsWith(t))?{channel:"query",mutability:"read",defaultTimeoutMs:1e4}:{channel:"task",mutability:"write",defaultTimeoutMs:3e4}}function v(e){return ee.has(e)||A(e).mutability==="read"?!1:Z.some(t=>e.startsWith(t))}function te(e,t={}){let n=t.now??Date.now(),r=A(e),o=t.timeoutMs??r.defaultTimeoutMs;return{requestId:t.requestId??$(),createdAt:n,deadlineAt:n+o,channel:t.channel??r.channel,idempotencyKey:t.idempotencyKey,traceId:t.traceId}}function M(e,t=Date.now()){let n=e.meta;if(!n||typeof n!="object")return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta is required."}};if(typeof n.requestId!="string"||n.requestId.length===0)return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.requestId is required."}};if(n.channel!=="query"&&n.channel!=="task")return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.channel must be query or task."}};if(typeof n.createdAt!="number"||!Number.isFinite(n.createdAt))return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.createdAt is required."}};if(typeof n.deadlineAt!="number"||!Number.isFinite(n.deadlineAt))return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.deadlineAt is required."}};if(n.deadlineAt<=t)return{ok:!1,error:{code:l.REQUEST_DEADLINE_EXCEEDED,message:"RPC request deadline has already expired."}};let r=A(e.method).channel;return n.channel!==r?{ok:!1,error:{code:l.INVALID_REQUEST,message:`RPC request channel mismatch: expected ${r}, got ${n.channel}.`}}:v(e.method)&&(typeof n.idempotencyKey!="string"||n.idempotencyKey.length===0)?{ok:!1,error:{code:l.REQUEST_IDEMPOTENCY_REQUIRED,message:`RPC method ${e.method} requires meta.idempotencyKey.`}}:{ok:!0,meta:n}}var I=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,n){let r=M({method:t,meta:n},this.now());if(!r.ok)return this.counters.invalidRequests+=1,{status:"rejected",error:r.error};if(n.idempotencyKey){let o=this.idempotency.get(n.idempotencyKey);if(o)return this.counters.dedupedRequests+=1,o.error?{status:"deduped",error:o.error}:{status:"deduped",result:o.result}}return this.active.set(n.requestId,{method:t,meta:n,cancelled:!1,startedAt:this.now()}),{status:"started"}}cancel(t,n="cancelled"){let r=this.active.get(t);return!r||r.cancelled?!1:(r.cancelled=!0,r.cancelReason=n,this.counters.cancelledRequests+=1,!0)}expire(t){return this.active.get(t)?(this.active.delete(t),this.counters.deadlineExceededRequests+=1,!0):!1}settle(t,n,r){let o=this.active.get(t);return o?(this.active.delete(t),o.cancelled?(this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"cancelled"}):o.meta.deadlineAt<=this.now()?(this.counters.deadlineExceededRequests+=1,this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"deadline_exceeded"}):(this.counters.completedRequests+=1,o.meta.idempotencyKey&&this.idempotency.set(o.meta.idempotencyKey,{result:n,error:r,settledAt:this.now()}),{accepted:!0})):{accepted:!1,reason:"unknown"}}metrics(){return{activeRequests:this.active.size,...this.counters}}};var ne=["agent.health","agent.metrics","agent.cancel","provider.catalog","provider.list","provider.get","provider.install","provider.install.cancel","provider.update","provider.uninstall","provider.enable","provider.disable","provider.diagnose","provider.auth.status","provider.auth.setPreference","provider.auth.setUserKey","provider.auth.methods","provider.auth.start","provider.auth.attach","provider.auth.input","provider.auth.resize","provider.auth.cancel","provider.auth.logout","provider.models.list","provider.nativeSessions.list","provider.nativeSessions.load","provider.nativeSessions.resume","delegation.cancel","delegation.reset","session.list","session.get","session.create","session.update","session.delete","session.deleteAll","session.archive","session.loadNativeTranscript","session.adoptNative","session.moveToProject","session.getState","session.switchProject","session.getMessages","project.list","project.create","project.detach","project.delete","project.rename","project.archive","project.unarchive","project.update","instructions.list","instructions.read","instructions.write","instructions.delete","files.list","files.read","files.create","files.rename","files.move","files.copy","files.delete","files.search","files.undoOperation","files.gitStatus","turnBaseline.getSummary","turnBaseline.getFileDiff","turnBaseline.listRecent","turnBaseline.getFileBaseline","workingMaterials.get","workingMaterials.replace","workingMaterials.upsert","workingMaterials.remove","workingMaterials.reorder","skills.list","memory.list-files","memory.atlas","memory.activity","memory.propose","memory.consolidate","memory.update","memory.attachment.adopt","memory.attachment.locate"];var R=["turn.start","turn.delta","turn.end","turn.error","turn.recovery","turn.file_changes","turn.tool_call","turn.tool_result","turn.tool_blocked","turn.reasoning_delta","turn.approval_request","turn.ask_user","turn.media_result","turn.media_progress","turn.media_usage","turn.media_capability_check","turn.plan_update","turn.suggestions","turn.sidechain_started","turn.subagent_started","turn.subagent_delta","turn.subagent_activity","turn.subagent_ended","turn.subagent_completed","turn.subagent_decision","turn.sidechain_completed","turn.task_updated","turn.todos_updated","turn.exec_progress","turn.progress","turn.tool_use_summary","turn.tool_selection_policy","turn.lifecycle","turn.document_maintenance","turn.artifact_contract","turn.usage_update","team.member.notification","session.info","session.recovery_pending","memory.updated","skills.updated","turn.memory_recall","turn.memory_written","system.activity","workflow.created","workflow.updated","workflow.deleted","workflow.runStarted","workflow.runCompleted","workflow.runFailed","workflow.nodeStatus","workflow.triggerDropped","workflow.alert","workflow.approvalRequested","workflow.approvalTimedOut"],b=["solo.progress","solo.specProgress","solo.agentDelta","solo.agentActivity","solo.agentUsage","solo.evaluation","solo.agentDiff","solo.state","product.taskStarted","product.taskOutput","product.members","product.agentActivity","product.taskCompleted","product.taskFailed","product.budgetUpdate","product.budgetWarning","product.budgetExceeded","product.checkpointed","product.completed","product.dagTopology","plan.interrupted","product.planReady","product.planningDelta","product.leaderMessage","product.planFailed","product.planningAsk","goal.run_state_changed","goal.phase_boundary","goal.goal_edited","goal.message_queued","goal.acceptance_updated","goal.round_message","mention.delegate_started","mention.delegate_activity","mention.delegate_settled"],re=[...R,...b],w=re;import{MODEL_PURPOSES as dn}from"@xiaozhiclaw/module-sdk/model-access";var ie=["fact","preference","insight","lesson","decision","plan","event","pattern","context","procedure","general"],_t=new Set(ie),oe=["equals","includes","excludes"],Ct=new Set(oe);import{createHash as Mt}from"node:crypto";import{resolve as Ot}from"node:path";var O=["efficiency","dev","cloud","data","industrial","marketing","ecommerce","procurement","hr","accounting","finance","legal","lifestyle"];var Ht=new Set(O);var m={request:"x/delegate",update:"x/delegate.update",respond:"x/delegate.respond",cancel:"x/delegate.cancel"},se=["search","addText","embedText","ingestExtracted","proposeExtracted","consumePendingProposals","feedback","findRelatedEvents","synthesizeTimeline","getActivitySummary","getAllProfiles","setProfile","getAtlas","setMemoryArchived","triggerDecay","resolveConflicts","readProcedureUsage","writeProcedureUsage","readDistillCandidates","writeDistillCandidates","readPromotionProposals","writePromotionProposals","listActiveMemoriesByTag","readDistilledProcedure","promoteDistilledProcedure","demoteDistilledProcedure","recordInjectedAccess","recordRecallOutcome","enqueueExtractionTurn","claimPendingExtractionTurns","completeExtractionTurn","releaseExtractionTurn","recordExtractionTurnFailure"],ae=["initialize","getIndex","addToIndex","replaceInIndex","removeFromIndex","createFile","writeFile","readFile","deleteFile","listFiles","searchLocal"],de=["getSkillSnapshot","readSkillFile","recordSkillInvocation","commitSkillMutation","applyCuratorPlan","prepareSkillInstall","finalizeSkillInstall"],pe=["loadForResume","appendTranscript","updateTitle","saveState","saveTaskSummary","groupSplit"],ce=["commitTurnTelemetry","listDistillableFeedback","markFeedbackDistilled","runUploadSweep"],le=["getSnapshot","create","switch","update"],Yt=1024*1024,ue=["resolveInstall","listResourceVersions","resolveRuntime"],ge=["probeSession"],me=["list","get","diagnose"],fe=["navigate","snapshot","click","type","screenshot","console","network"];var ye=["open","openWithCheckpoint","recordEvent","checkpoint","get","list","delete","getCheckpoint","listCheckpoints","restoreCheckpoint"],Ae=["getTunables","updateTunable","clearTunable","appendDirectoryAllowRule"];var Gt=new Set(se),zt=new Set(ae),Xt=new Set(Ae),$t=new Set(de),Jt=new Set(pe),Qt=new Set(ce),Zt=new Set(le),en=new Set(ye),tn=new Set(me),nn=new Set(ue),rn=new Set(ge),on=new Set(fe);var Se=1,Ie={INITIALIZE:"initialize",SESSION_NEW:"session/new",SESSION_PROMPT:"session/prompt",SESSION_CLOSE:"session/close",SESSION_SET_CONFIG:"session/set_config_option",SESSION_SET_MODEL:"session/set_model",SESSION_SET_MODE:"session/set_mode",SESSION_LOAD:"session/load",SESSION_CANCEL:"session/cancel",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"},Re={ABORT:"x/abort",DREAM:"x/dream",SOLO_START:"x/solo.start",SOLO_SELECT:"x/solo.select",SOLO_CANCEL:"x/solo.cancel",SOLO_DELETE:"x/solo.delete",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_REPLAY:"x/product.replay",SOLO_SUBSCRIBE:"x/solo.subscribe",SOLO_MESSAGE:"x/solo.message",SOLO_EVALUATE:"x/solo.evaluate",SOLO_SPEC_CHAT:"x/solo.specChat",SOLO_SPEC_JUDGE:"x/solo.specJudge",WORKFLOW_CHAT:"x/workflow.chat",WORKFLOW_MATCH_INTENT:"x/workflow.matchIntent",PRODUCT_SUBSCRIBE:"x/product.subscribe",GOAL_START:"x/goal.start",GOAL_PAUSE:"x/goal.pause",GOAL_RESUME:"x/goal.resume",GOAL_UPDATE_GOAL:"x/goal.updateGoal",GOAL_STOP:"x/goal.stop",GOAL_MESSAGE:"x/goal.message",GOAL_SUBSCRIBE:"x/goal.subscribe",DELEGATE:m.request,DELEGATE_UPDATE:m.update,DELEGATE_RESPOND:m.respond,DELEGATE_CANCEL:m.cancel},N={USER_MESSAGE_CHUNK:"user_message_chunk",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",CURRENT_MODE_UPDATE:"current_mode_update"},be={X_SESSION_INFO:"x_session_info",X_RELAY:"x_relay"};function D(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"&&typeof t.method=="string"&&!("id"in t)}function L(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&"id"in t&&!("method"in t)}function he(e){let t;try{t=JSON.parse(e)}catch{return null}return L(t)||D(t)||H(t)?t:null}function Pe(e){return Object.values(N).includes(e)}function Ee(e){return e.startsWith("x_")}var h=["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 P(e){return e?e.map(t=>({...t})):void 0}function Te(e){return e?[...e]:void 0}function U(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].sort((t,n)=>t.localeCompare(n))}function f(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:P(e.workspaceSummaries)}:{}}}function ke(e){let{previous:t,update:n}=e;return!(n.syncMode==="diff"&&t&&(!n.baseSnapshotVersion||t.snapshotVersion===n.baseSnapshotVersion))||!t?f(n):{...f(t),snapshotVersion:n.snapshotVersion,updatedAt:n.updatedAt,...n.gatewayVersion!==void 0?{gatewayVersion:n.gatewayVersion}:{},...n.syncMode?{syncMode:n.syncMode}:{},...n.baseSnapshotVersion?{baseSnapshotVersion:n.baseSnapshotVersion}:{},...n.changedSections?{changedSections:[...n.changedSections]}:{},...n.toolNamespaces?{toolNamespaces:[...n.toolNamespaces]}:{},...n.workspaceIds?{workspaceIds:[...n.workspaceIds]}:{},...n.installedCapabilities?{installedCapabilities:[...n.installedCapabilities]}:{},...n.enabledCapabilities?{enabledCapabilities:[...n.enabledCapabilities]}:{},...n.features?{features:[...n.features]}:{},...n.approvalMode?{approvalMode:n.approvalMode}:{},...n.toolManifests?{toolManifests:g(n.toolManifests)}:{},...n.skillManifests?{skillManifests:g(n.skillManifests)}:{},...n.pluginManifests?{pluginManifests:g(n.pluginManifests)}:{},...n.mcpManifests?{mcpManifests:g(n.mcpManifests)}:{},...n.approvalPolicy?{approvalPolicy:{...n.approvalPolicy}}:{},...n.workspaceSummaries?{workspaceSummaries:P(n.workspaceSummaries)}:{}}}function _e(e){return U(e.map(t=>t.name.split(".")[0]??"").filter(Boolean))}function Ce(e){return U(e.map(t=>t.id))}function xe(e){let{previous:t,current:n}=e;if(!t)return{...f(n),syncMode:"full"};if(t.snapshotVersion===n.snapshotVersion)return null;let r=h.filter(s=>JSON.stringify(t[s])!==JSON.stringify(n[s]));if(r.length===h.length)return{...f(n),syncMode:"full"};let o={snapshotVersion:n.snapshotVersion,updatedAt:n.updatedAt,syncMode:"diff",baseSnapshotVersion:t.snapshotVersion,changedSections:r,toolNamespaces:[...n.toolNamespaces],workspaceIds:[...n.workspaceIds]},p=o;for(let s of r){let i=n[s];if(i!==void 0)switch(s){case"toolNamespaces":case"workspaceIds":case"installedCapabilities":case"enabledCapabilities":case"features":p[s]=Te(i);break;case"approvalPolicy":p[s]={...i};break;case"workspaceSummaries":p[s]=P(i);break;case"toolManifests":case"skillManifests":case"pluginManifests":case"mcpManifests":p[s]=g(i);break;default:p[s]=i;break}}return o}var ve=["web_search","web_fetch","web_research","browser_execution"],Me=["web-intelligence","browser-execution"],we=["discovery","read-url","multi-source-research","interactive-browser"],Oe=["stateless","render-backend","interactive-session"],Ne=["stateless","stateless-single-step","stateful-session-required"],De=["required","conditional","none"],He=["browser-read","browser-authenticated-read","browser-state-changing"];var Le=["read-page","read-authenticated-page","fill-form","submit-form","download-file","reuse-session"],Ue=["web_search","web_fetch","web_research","blocked"],je=["requires-interaction","requires-login-state","requires-rendered-dom","requires-persistent-session","requires-state-changing-action"],Ke=["none","same-capability-once","degrade-only"];var Fe=["prefetch","sync_turn","on_pre_compress","on_session_end","on_delegation","on_memory_write"],Ve=["turn","sidechain","compress","session-end","agent-remember","auto-extract","implicit-extract","profile-extraction","dream"],We=["observe-only","parent-write","deny"];var qe=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"},y={desktopDockerBridge:"desktop.docker-bridge",desktopEmbeddedWin32X64:"desktop.embedded.win32-x64"};function K(e){return{...e,artifacts:e.artifacts.map(t=>({...t}))}}function Be(e){return{...e,assetIds:[...e.assetIds]}}function F(){return{[y.desktopDockerBridge]:{id:y.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."},[y.desktopEmbeddedWin32X64]:{id:y.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 Ye(e,t){let n=W(e,t);return n?n.assetIds.map(r=>V(e,r)).filter(r=>!!r):[]}function Ge(e,t){return e.assets[t.id]=K(t),q(e)}function E(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 q(e){let t=E(e.assets[a.gatewayImage]),n=E(e.assets[a.whisperModelTiny]);return{...e,gateway:t,whisperModel:n}}function j(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 ze(e){let t=e&&typeof e=="object"?e:{},n={},r=t.assets&&typeof t.assets=="object"?t.assets:{};for(let[i,d]of Object.entries(r)){if(!d||typeof d!="object")continue;let u=d;!u.id||!Array.isArray(u.artifacts)||(n[i]=K(u))}if(!n[a.gatewayImage]&&t.gateway&&typeof t.gateway=="object"){let i=j(t.gateway,{id:a.gatewayImage,title:"XiaoZhiClaw Gateway Image (Desktop Slim)",kind:"container-image",delivery:"remote",platform:"any",description:"Desktop Docker mode gateway image."});i&&(n[i.id]=i)}if(!n[a.whisperModelTiny]&&t.whisperModel&&typeof t.whisperModel=="object"){let i=j(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."});i&&(n[i.id]=i)}let p={...F()},s=t.profiles&&typeof t.profiles=="object"?t.profiles:{};for(let[i,d]of Object.entries(s)){if(!d||typeof d!="object")continue;let u=d;!u.id||!Array.isArray(u.assetIds)||(p[i]=Be(u))}return q({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:n,profiles:p})}var Xe=["pending","captured","failed","restored"],$e=["file","directory","missing"],Je=["metadata-only","workspace-copy","shadow-git"];var Qe=["api-key","oauth","token","aws-sdk"],Ze=["rate_limit","auth","server_error","timeout","network","unknown"],et=["requiresOpenAiAnthropicToolPayload"];function tt(e,t){return!e||typeof e!="object"||Array.isArray(e)?!1:e[t]===!0}var B="openai-codex";function S(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 Y(e){let t=S(e);return t==="volcengine-plan"?"volcengine":t==="qwen-coding"?"qwen":t==="byteplus-plan"?"byteplus":t}var nt=Y,rt={anthropicToolSchemaMode:"native",anthropicToolChoiceMode:"native",providerFamily:"default",preserveAnthropicThinkingSignatures:!0,openAiCompatTurnValidation:!0,providerThoughtSignatureSanitization:!1,transcriptToolCallIdMode:"default",transcriptToolCallIdModelHints:[],providerThoughtSignatureModelHints:[],dropThinkingBlockModelHints:[]},it={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 n=(e??"").toLowerCase();return!!n&&t.some(r=>n.includes(r))}function c(e){let t=S(e??"");return{...rt,...it[t]}}function ot(e){return c(e).preserveAnthropicThinkingSignatures}function st(e){let t=c(e);return t.anthropicToolSchemaMode!=="native"||t.anthropicToolChoiceMode!=="native"}function at(e){return c(e).anthropicToolSchemaMode==="openai-functions"}function dt(e){return c(e).anthropicToolChoiceMode==="openai-string-modes"}function pt(e){return c(e).openAiCompatTurnValidation}function ct(e){return c(e).providerFamily==="openai"}function lt(e){return c(e).providerFamily==="anthropic"}function ut(e){return T(e.modelId,c(e.provider).dropThinkingBlockModelHints)}function gt(e){let t=c(e.provider);return t.providerThoughtSignatureSanitization&&T(e.modelId,t.providerThoughtSignatureModelHints)}function mt(e,t){let n=c(e),r=n.transcriptToolCallIdMode;if(r==="strict9")return r;if(T(t,n.transcriptToolCallIdModelHints))return"strict9"}var k={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"],qwen:["DASHSCOPE_API_KEY","QWEN_API_KEY"],"qwen-coding":["DASHSCOPE_API_KEY","QWEN_API_KEY"],volcengine:["VOLCANO_ENGINE_API_KEY","ARK_API_KEY","DOUBAO_API_KEY"],"volcengine-plan":["VOLCANO_ENGINE_API_KEY","ARK_API_KEY","DOUBAO_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 ft(){return[...new Set(Object.values(k).flat())]}function yt(e){let t=S(e.provider),n=e.env??process.env,r=new Set(e.appliedEnvKeys??[]),o=i=>{let d=n[i]?.trim();if(!d)return null;let u=r.has(i)?`shell env: ${i}`:`env: ${i}`;return{apiKey:d,source:u}},p=e.resolveSpecialApiKey?.(t,n,r);if(p)return p;let s=k[t];if(!s||s.length===0)return null;for(let i of s){let d=o(i);if(d)return d}return null}export{Re as ACP_EXTENDED_METHODS,be as ACP_EXTENDED_SESSION_UPDATE_TYPES,Ie as ACP_METHODS,Se as ACP_PROTOCOL_VERSION,N as ACP_SESSION_UPDATE_TYPES,z as AGENT_RPC_APPROVAL_METHODS,l as AGENT_RPC_ERROR_CODES,G as AGENT_RPC_PROTOCOL_VERSION,b as AGENT_TEAM_WS_EVENT_NAMES,R as AGENT_WS_EVENT_NAMES,w as ALL_AGENT_WS_EVENT_NAMES,h as CAPABILITY_MANIFEST_DIFF_SECTIONS,ne as GATEWAY_RPC_METHODS,I as GatewayRpcContract,Fe as MEMORY_OBSERVATION_HOOK_VALUES,Ve as MEMORY_OBSERVATION_SOURCE_VALUES,We as MEMORY_WRITE_ACCESS_VALUES,Je as MUTATION_CHECKPOINT_BACKEND_VALUES,$e as MUTATION_CHECKPOINT_ENTRY_KIND_VALUES,Xe as MUTATION_CHECKPOINT_PHASE_VALUES,Qe as PROVIDER_RUNTIME_AUTH_MODE_VALUES,et as PROVIDER_RUNTIME_COMPAT_FLAG_VALUES,k as PROVIDER_RUNTIME_ENV_API_KEY_CANDIDATES,B as PROVIDER_RUNTIME_OPENAI_CODEX_PROVIDER_ID,Ze as PROVIDER_RUNTIME_VAULT_ERROR_TYPE_VALUES,qe as RESOURCE_MANIFEST_SCHEMA_VERSION,a as RUNTIME_ASSET_IDS,y as RUNTIME_PROFILE_IDS,Le as WEB_ACTION_SCOPE_VALUES,De as WEB_APPROVAL_DEFAULT_VALUES,Me as WEB_CAPABILITY_FAMILY_VALUES,ve as WEB_CAPABILITY_ID_VALUES,Ue as WEB_DEGRADATION_TARGET_VALUES,je as WEB_ESCALATION_REASON_VALUES,Oe as WEB_EXECUTION_MODE_VALUES,He as WEB_POLICY_RISK_CLASS_VALUES,Ke as WEB_RETRY_POLICY_VALUES,Ne as WEB_STATEFULNESS_VALUES,we as WEB_TASK_MODE_VALUES,te as buildAgentRpcMeta,A as classifyGatewayRpcMethod,f as cloneCapabilityManifestSnapshot,xe as createCapabilityManifestDiffPayload,F as createDefaultRuntimeResourceProfiles,_e as deriveCapabilityToolNamespaces,Ce as deriveCapabilityWorkspaceIds,E as getManifestShortcutEntry,V as getRuntimeResourceAsset,W as getRuntimeResourceProfile,Ye as getRuntimeResourceProfileAssets,H as isAcpJsonRpcNotification,D as isAcpJsonRpcRequest,L as isAcpJsonRpcResponse,x as isAgentRpcNotification,_ as isAgentRpcRequest,C as isAgentRpcResponse,lt as isAnthropicProviderRuntimeFamily,Ee as isExtendedSessionUpdateType,ct as isOpenAiProviderRuntimeFamily,Pe as isStandardSessionUpdateType,ft as listProviderRuntimeEnvApiKeyNames,ke as mergeCapabilityManifestSnapshot,S as normalizeProviderRuntimeId,Y as normalizeProviderRuntimeIdForAuth,ze as normalizeRuntimeResourceManifest,he as parseAcpMessage,X as parseAgentRpcMessage,ot as preservesProviderRuntimeAnthropicThinkingSignatures,tt as readProviderRuntimeCompatFlag,M as requireGatewayRpcMeta,v as requiresIdempotencyKey,st as requiresOpenAiCompatibleAnthropicToolPayloadForProviderRuntime,c as resolveProviderRuntimeCapabilities,yt as resolveProviderRuntimeEnvApiKey,nt as resolveProviderRuntimeKeyFamily,mt as resolveProviderRuntimeTranscriptToolCallIdMode,ut as shouldDropThinkingBlocksForProviderRuntimeModel,gt as shouldSanitizeProviderRuntimeThoughtSignaturesForModel,pt as supportsOpenAiCompatTurnValidationForProviderRuntime,Ge as upsertRuntimeResourceAsset,at as usesOpenAiFunctionAnthropicToolSchemaForProviderRuntime,dt as usesOpenAiStringModeAnthropicToolChoiceForProviderRuntime};
@@ -24,14 +24,14 @@ requires: []
24
24
  如果找不到工具或 Prompt:
25
25
 
26
26
  1. 引导用户在桌面端“插件 → 连接器”安装并启用官方 **Astra Search**。
27
- 2. 优先建议 OAuth:在 Astra Search 设置中选择 OAuth 并点击“授权”。Runtime 会
28
- 打开 llmrouter 的授权页面;不要索取、显示或保存 OAuth token。
29
- 3. 如果用户选择 API Key:
27
+ 2. Xiaozhi Runtime 会在正常 llmrouter 握手后自动注入本机托管 API Key,不应再让
28
+ 用户选择认证模式或重复填写密钥;如果托管 Key 尚不可用,引导用户先完成桌面账号登录。
29
+ 3. 第三方 MCP Host 只支持用户自行配置普通 llmrouter API Key:
30
30
  - 未注册时打开或给出 <https://www.qlogicagent.com/signup>;
31
31
  - 登录后打开或给出 <https://www.qlogicagent.com/keys> 创建或重置密钥;
32
- - 让用户返回 Astra Search 设置,选择 API Key 并把密钥填入凭证框。
32
+ - 让用户返回 Astra Search 设置,把密钥填入 API Key 凭证框。
33
33
  4. 当前 Host 能安全打开外部链接时可以导航到上述页面;否则提供可点击链接。
34
34
  **不要把 API Key 发到聊天、写入项目文件、日志、记忆或 Skill。**
35
35
 
36
- 完成安装、授权、启用和连接测试后,重新发现 MCP 清单并读取 Prompt。不得改用旧
36
+ 完成安装、绑定、启用和连接测试后,重新发现 MCP 清单并读取 Prompt。不得改用旧
37
37
  REST 搜索、本地 provider 或其它隐藏 fallback。
@@ -1,10 +1,12 @@
1
1
  import { type CommunityConsentClient } from "../../runtime/community/community-consent-client.js";
2
2
  import { type AgentRpcError, type AgentRpcRequest } from "../../protocol/wire/index.js";
3
3
  import type { HostCapabilityClient } from "../../transport/host-capability-client.js";
4
+ import type { HostCommunityClient } from "../../transport/host-community-client.js";
4
5
  export type { CommunityConsentClient, CommunityInstallRiskTier, CommunityInstallResolution, } from "../../runtime/community/community-consent-client.js";
5
6
  export interface CommunityHandlerHost {
6
7
  resolveCommunityConsentClient?: () => CommunityConsentClient | null;
7
8
  getHostCapabilityClient?(): HostCapabilityClient | undefined;
9
+ getHostCommunityClient?(): HostCommunityClient | undefined;
8
10
  sendResponse(id: string | number, result?: unknown, error?: AgentRpcError): void;
9
11
  }
10
12
  export declare function handleCommunityResolveInstall(this: CommunityHandlerHost, msg: AgentRpcRequest): Promise<void>;
@@ -28,6 +28,8 @@ import { HostCapabilityClient } from "../transport/host-capability-client.js";
28
28
  import { HostSessionClient } from "../transport/host-session-client.js";
29
29
  import { HostProjectClient } from "../transport/host-project-client.js";
30
30
  import { HostFeedbackClient } from "../transport/host-feedback-client.js";
31
+ import { HostCommunityClient } from "../transport/host-community-client.js";
32
+ import { HostCloudAuthClient } from "../transport/host-cloud-auth-client.js";
31
33
  export interface StdioServerConfig {
32
34
  verbose: boolean;
33
35
  transport?: Transport;
@@ -152,6 +154,8 @@ export declare class StdioServer {
152
154
  getHostProfileClient(): HostProfileClient | undefined;
153
155
  /** Thin read-only facade; consumers fail loudly when the host did not advertise capability. */
154
156
  getHostCapabilityClient(): HostCapabilityClient | undefined;
157
+ getHostCommunityClient(): HostCommunityClient | undefined;
158
+ getHostCloudAuthClient(): HostCloudAuthClient | undefined;
155
159
  getHostAgentProviderDirectory(): import("../runtime/infra/host-agent-provider-directory.js").HostAgentProviderDirectory;
156
160
  /** Session durable-state facade; absent under gate-off/standalone so compatibility stays inert. */
157
161
  getHostSessionClient(): HostSessionClient | undefined;
@@ -1161,7 +1161,38 @@ export interface HostSkillInvocationResult {
1161
1161
  /** 单文件读取上限;host 在解码前按 bytes 检查。 */
1162
1162
  export declare const HOST_SKILL_FILE_MAX_BYTES: number;
1163
1163
  /** [X7-P] 单一 agent→host 一元请求通道的服务域。 */
1164
- export type HostRequestService = "memory" | "projectMemory" | "profile" | "preview" | "capability" | "session" | "feedback" | "project" | "runState" | "provider";
1164
+ export type HostRequestService = "memory" | "projectMemory" | "profile" | "preview" | "capability" | "session" | "feedback" | "project" | "runState" | "provider" | "community" | "cloudAuth";
1165
+ /** Host-owned authenticated Hub reads. The Agent never receives or refreshes the desktop session. */
1166
+ export declare const HOST_COMMUNITY_PROXY_METHODS: readonly ["resolveInstall", "listResourceVersions", "resolveRuntime"];
1167
+ export type HostCommunityProxyMethod = typeof HOST_COMMUNITY_PROXY_METHODS[number];
1168
+ export type HostCommunityRequestParams = {
1169
+ service: "community";
1170
+ method: "resolveInstall";
1171
+ params: {
1172
+ resourceId: string;
1173
+ version?: string;
1174
+ };
1175
+ } | {
1176
+ service: "community";
1177
+ method: "listResourceVersions";
1178
+ params: {
1179
+ resourceId: string;
1180
+ };
1181
+ } | {
1182
+ service: "community";
1183
+ method: "resolveRuntime";
1184
+ params: {
1185
+ id: string;
1186
+ platform: string;
1187
+ };
1188
+ };
1189
+ /** Narrow account-session probe for supervised runtimes; no credential material crosses the wire. */
1190
+ export declare const HOST_CLOUD_AUTH_PROXY_METHODS: readonly ["probeSession"];
1191
+ export type HostCloudAuthRequestParams = {
1192
+ service: "cloudAuth";
1193
+ method: "probeSession";
1194
+ params: Record<string, never>;
1195
+ };
1165
1196
  /** Read-only Provider projection exposed by the Gateway Host to supervised qlogicagent compute. */
1166
1197
  export declare const HOST_PROVIDER_PROXY_METHODS: readonly ["list", "get", "diagnose"];
1167
1198
  export type HostProviderProxyMethod = typeof HOST_PROVIDER_PROXY_METHODS[number];
@@ -1740,7 +1771,7 @@ export type HostPreviewRequestParams = {
1740
1771
  * [X7-P] 跨进程 HostRequest 判别联合。memory/profile/preview 共用 `x/host.request`,
1741
1772
  * service + method 二级分派;preview 的 method 与 payload 在类型层保持逐动作关联。
1742
1773
  */
1743
- export type HostRequestParams = HostMemoryRequestParams | HostProjectMemoryRequestParams | HostProfileRequestParams | HostPreviewRequestParams | HostCapabilityRequestParams | HostSessionRequestParams | HostFeedbackRequestParams | HostProjectRequestParams | HostRunStateRequestParams | HostProviderRequestParams;
1774
+ export type HostRequestParams = HostMemoryRequestParams | HostProjectMemoryRequestParams | HostProfileRequestParams | HostPreviewRequestParams | HostCapabilityRequestParams | HostSessionRequestParams | HostFeedbackRequestParams | HostProjectRequestParams | HostRunStateRequestParams | HostProviderRequestParams | HostCommunityRequestParams | HostCloudAuthRequestParams;
1744
1775
  /** initialize 声明的真实已装配 host-request 服务;version 只接受冻结版本 1。 */
1745
1776
  export type HostRequestCapability = {
1746
1777
  version: 1;
@@ -1,4 +1,5 @@
1
1
  import type { ConfigPort } from "../ports/index.js";
2
+ import type { HostCommunityClient } from "../../transport/host-community-client.js";
2
3
  export interface CommunityRuntimeResolution {
3
4
  id: string;
4
5
  platform: string;
@@ -62,4 +63,6 @@ export interface CommunityConsentClient {
62
63
  resolveRuntime(id: string, platform: string): Promise<CommunityRuntimeResolution>;
63
64
  }
64
65
  export declare function createCommunityConsentClient(options: CommunityConsentClientOptions): CommunityConsentClient;
66
+ /** Supervised desktop path: the Runtime Host owns refresh and performs authenticated Hub reads. */
67
+ export declare function createHostCommunityConsentClient(host: HostCommunityClient): CommunityConsentClient;
65
68
  export declare function createDefaultCommunityConsentClient(configPort?: ConfigPort): CommunityConsentClient | null;
@@ -0,0 +1,4 @@
1
+ import type { HostCloudAuthClient } from "../../transport/host-cloud-auth-client.js";
2
+ /** Process-lifetime binding installed after ACP Host capability negotiation. */
3
+ export declare function configureHostCloudAuthAuthority(resolver: () => HostCloudAuthClient | undefined): void;
4
+ export declare function getHostCloudAuthAuthority(): HostCloudAuthClient | undefined;
@@ -24,7 +24,6 @@ export interface UploadBatchResult {
24
24
  accepted?: number;
25
25
  status?: number;
26
26
  error?: string;
27
- refreshedToken?: boolean;
28
27
  }
29
28
  /**
30
29
  * Resolve the feedback ingest base, derived from the llmrouter base already injected into the agent
@@ -4,10 +4,4 @@ export interface LlmrouterFetchOptions {
4
4
  init?: RequestInit;
5
5
  signal?: AbortSignal;
6
6
  }
7
- export interface LlmrouterFetchResult {
8
- response: Response;
9
- refreshedToken: boolean;
10
- }
11
- export declare function isJwtExpiredOrNearExpiry(token: string | undefined, skewSeconds?: number): boolean;
12
- export declare function refreshLlmrouterAccessToken(baseUrl: string, options?: Pick<LlmrouterFetchOptions, "fetchFn" | "signal">): Promise<boolean>;
13
- export declare function fetchWithLlmrouterAccess(path: string, options?: LlmrouterFetchOptions): Promise<LlmrouterFetchResult>;
7
+ export declare function fetchWithLlmrouterAccess(path: string, options?: LlmrouterFetchOptions): Promise<Response>;
@@ -0,0 +1,10 @@
1
+ import type { HostRequestClient } from "./host-request-client.js";
2
+ export interface HostCloudAuthProbeResult {
3
+ ok: boolean;
4
+ status: number;
5
+ }
6
+ export declare class HostCloudAuthClient {
7
+ private readonly client;
8
+ constructor(client: Pick<HostRequestClient, "request">);
9
+ probeSession(): Promise<HostCloudAuthProbeResult>;
10
+ }
@@ -0,0 +1,8 @@
1
+ import type { HostRequestClient } from "./host-request-client.js";
2
+ export declare class HostCommunityClient {
3
+ private readonly client;
4
+ constructor(client: Pick<HostRequestClient, "request">);
5
+ resolveInstall(resourceId: string, version?: string): Promise<unknown>;
6
+ listResourceVersions(resourceId: string): Promise<unknown>;
7
+ resolveRuntime(id: string, platform: string): Promise<unknown>;
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qlogicagent",
3
- "version": "2.20.3",
3
+ "version": "2.20.5",
4
4
  "description": "XiaozhiClaw Agent CLI — subprocess architecture (JSON-RPC over stdio)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",