qlogicagent 2.20.6 → 2.20.7
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/README.md +27 -54
- package/dist/agent-contract.js +1 -1
- package/dist/agent.js +42 -41
- package/dist/cli.js +1 -1
- package/dist/host-contract.js +1 -1
- package/dist/index.js +539 -565
- package/dist/orchestration.js +14 -14
- package/dist/project-memory-host.js +30 -33
- package/dist/protocol.js +1 -1
- package/dist/types/agent/memory-recall-context.d.ts +7 -0
- package/dist/types/agent/tool-loop/artifact-final-contract.d.ts +2 -0
- package/dist/types/agent/tool-loop/direct-response-contract.d.ts +12 -0
- package/dist/types/agent/tool-loop/final-status-stream-suppressor.d.ts +22 -0
- package/dist/types/agent/tool-loop/loop-helpers.d.ts +2 -2
- package/dist/types/agent/tool-loop.d.ts +5 -1
- package/dist/types/agent/types.d.ts +27 -15
- package/dist/types/cli/acp-commands.d.ts +1 -1
- package/dist/types/cli/acp-extended-handlers.d.ts +13 -3
- package/dist/types/cli/agent-runtime-session-state.d.ts +1 -0
- package/dist/types/cli/base-tool-bootstrap.d.ts +0 -7
- package/dist/types/cli/community-skill-installer.d.ts +2 -0
- package/dist/types/cli/core-tool-coordinator.d.ts +0 -3
- package/dist/types/cli/core-tools/registry.d.ts +1 -4
- package/dist/types/cli/handlers/config-handler.d.ts +0 -1
- package/dist/types/cli/handlers/goal-handler.d.ts +24 -0
- package/dist/types/cli/handlers/memory-handler.d.ts +1 -2
- package/dist/types/cli/handlers/skill-curator-handler.d.ts +8 -0
- package/dist/types/cli/handlers/turn-handler.d.ts +9 -12
- package/dist/types/cli/memory-candidate-service.d.ts +1 -8
- package/dist/types/cli/memory-coordinator.d.ts +1 -13
- package/dist/types/cli/product-acp-params.d.ts +1 -0
- package/dist/types/cli/provider-core-facade.d.ts +2 -30
- package/dist/types/cli/rpc-registry.d.ts +2 -4
- package/dist/types/cli/runtime-hook-bootstrap.d.ts +1 -2
- package/dist/types/cli/stdio-acp-request-host.d.ts +1 -2
- package/dist/types/cli/stdio-rpc-handler-hosts.d.ts +0 -2
- package/dist/types/cli/stdio-runtime-bootstrap.d.ts +0 -7
- package/dist/types/cli/stdio-runtime-services.d.ts +1 -8
- package/dist/types/cli/stdio-server.d.ts +0 -4
- package/dist/types/cli/tool-bootstrap-core-registration.d.ts +0 -4
- package/dist/types/cli/tool-bootstrap.d.ts +0 -17
- package/dist/types/contracts/memory-recall-packet.d.ts +31 -0
- package/dist/types/contracts/memory-response-contract.d.ts +2 -0
- package/dist/types/contracts/tool-execution-evidence.d.ts +8 -0
- package/dist/types/contracts/tool-name.d.ts +10 -0
- package/dist/types/contracts/turn-event.d.ts +36 -3
- package/dist/types/host-contract/acp-content.d.ts +45 -0
- package/dist/types/host-contract/index.d.ts +59 -48
- package/dist/types/orchestration/agent-instance.d.ts +21 -1
- package/dist/types/orchestration/agent-roster.d.ts +14 -15
- package/dist/types/orchestration/dag-scheduler.d.ts +4 -0
- package/dist/types/orchestration/goal-context-envelope.d.ts +7 -0
- package/dist/types/orchestration/goal-loop-coordinator.d.ts +55 -12
- package/dist/types/orchestration/goal-mode-adapters.d.ts +13 -1
- package/dist/types/orchestration/goal-run-persistence.d.ts +9 -2
- package/dist/types/orchestration/goal-run-types.d.ts +127 -13
- package/dist/types/orchestration/index.d.ts +1 -1
- package/dist/types/orchestration/product-persistence.d.ts +10 -1
- package/dist/types/orchestration/product-planner.d.ts +3 -3
- package/dist/types/orchestration/testing/delegate-test-bridge.d.ts +1 -0
- package/dist/types/orchestration/workflow/data-item.d.ts +1 -1
- package/dist/types/orchestration/workflow/expression.d.ts +1 -2
- package/dist/types/orchestration/workflow/workflow-patch.d.ts +1 -2
- package/dist/types/orchestration/workflow/workflow-render.d.ts +1 -2
- package/dist/types/project-memory-host.d.ts +1 -0
- package/dist/types/protocol/agent-contract.d.ts +10 -8
- package/dist/types/protocol/methods.d.ts +2 -19
- package/dist/types/protocol/notifications.d.ts +1 -1
- package/dist/types/protocol/wire/acp-agent-management.d.ts +48 -6
- package/dist/types/protocol/wire/acp-protocol.d.ts +11 -24
- package/dist/types/protocol/wire/agent-methods.d.ts +5 -142
- package/dist/types/protocol/wire/chat-types.d.ts +50 -0
- package/dist/types/protocol/wire/index.d.ts +2 -2
- package/dist/types/protocol/wire/notification-payloads.d.ts +73 -122
- package/dist/types/protocol/wire/thread-protocol.d.ts +4 -40
- package/dist/types/runtime/community/community-consent-client.d.ts +0 -13
- package/dist/types/runtime/context/context-compression-strategies.d.ts +29 -0
- package/dist/types/runtime/context/context-envelope.d.ts +3 -0
- package/dist/types/runtime/execution/dream-agent.d.ts +4 -5
- package/dist/types/runtime/execution/mcp-capability-selection.d.ts +54 -0
- package/dist/types/runtime/execution/memory-decay.d.ts +1 -1
- package/dist/types/runtime/execution/search-result-quality.d.ts +22 -0
- package/dist/types/runtime/execution/streaming-tool-executor.d.ts +2 -0
- package/dist/types/runtime/execution/tool-result-storage.d.ts +44 -0
- package/dist/types/runtime/hooks/memory-hooks.d.ts +3 -2
- package/dist/types/runtime/infra/agent-paths.d.ts +0 -8
- package/dist/types/runtime/infra/default-path-service.d.ts +0 -2
- package/dist/types/runtime/infra/llmrouter-managed-inference.d.ts +54 -1
- package/dist/types/runtime/infra/media-persistence.d.ts +6 -36
- package/dist/types/runtime/memory/implicit-extraction.d.ts +7 -15
- package/dist/types/runtime/memory/memory-recall-attribution.d.ts +24 -0
- package/dist/types/runtime/ports/agent-runtime-ports.d.ts +14 -0
- package/dist/types/runtime/ports/index.d.ts +1 -3
- package/dist/types/runtime/ports/memory-provider.d.ts +2 -19
- package/dist/types/runtime/ports/memory-writer.d.ts +1 -1
- package/dist/types/runtime/ports/path-service.d.ts +0 -2
- package/dist/types/runtime/prompt/capability-routing-policy.d.ts +13 -0
- package/dist/types/runtime/prompt/environment-context.d.ts +3 -6
- package/dist/types/runtime/prompt/fresh-workspace-evidence.d.ts +8 -13
- package/dist/types/runtime/prompt/tool-necessity-policy.d.ts +12 -0
- package/dist/types/skills/mcp/mcp-manager.d.ts +29 -4
- package/dist/types/skills/memory/host-memory-provider.d.ts +3 -9
- package/dist/types/skills/memory/memdir.d.ts +1 -1
- package/dist/types/skills/memory/memory-content-safety.d.ts +1 -0
- package/dist/types/skills/permissions/hook-runner.d.ts +3 -3
- package/dist/types/skills/portable-tool.d.ts +5 -0
- package/dist/types/skills/skill-system/skill-lifecycle.d.ts +1 -0
- package/dist/types/skills/tools/exec-tool.d.ts +1 -5
- package/dist/types/skills/tools/shell/command-compatibility.d.ts +3 -0
- package/dist/types/skills/tools/shell/index.d.ts +4 -3
- package/dist/types/skills/tools/shell/shell-exec.d.ts +15 -8
- package/dist/types/skills/tools/shell/shell-provider.d.ts +26 -0
- package/dist/types/transport/acp-server.d.ts +4 -1
- package/dist/types/transport/host-community-client.d.ts +0 -1
- package/dist/types/transport/host-request-client.d.ts +1 -0
- package/dist/types/transport/host-run-state-client.d.ts +1 -1
- package/dist/workflow-host.js +6 -6
- package/package.json +4 -3
- package/dist/skills/mcp/astraclaw-native-mcp-server.js +0 -12
- package/dist/types/cli/core-tools/checkpoint-tool-bootstrap.d.ts +0 -9
- package/dist/types/cli/core-tools/checkpoint-tool-service.d.ts +0 -7
- package/dist/types/cli/core-tools/config-tool-bootstrap.d.ts +0 -7
- package/dist/types/cli/core-tools/config-tool-service.d.ts +0 -13
- package/dist/types/cli/core-tools/monitor-tool-bootstrap.d.ts +0 -7
- package/dist/types/cli/core-tools/monitor-tool-service.d.ts +0 -6
- package/dist/types/cli/dev-tool-bootstrap.d.ts +0 -9
- package/dist/types/cli/dev-tools/dev-tool-bootstrap-service.d.ts +0 -7
- package/dist/types/cli/dev-tools/dev-tool-registry.d.ts +0 -8
- package/dist/types/cli/dev-tools/incremental-repo-map.d.ts +0 -81
- package/dist/types/cli/dev-tools/lsp-supervisor.d.ts +0 -59
- package/dist/types/cli/dev-tools/lsp-tool-service.d.ts +0 -7
- package/dist/types/cli/handlers/media-handler.d.ts +0 -19
- package/dist/types/cli/handlers/skills-handler.d.ts +0 -37
- package/dist/types/cli/industrial-runtime-store.d.ts +0 -16
- package/dist/types/cli/media-capability-schema.d.ts +0 -49
- package/dist/types/cli/media-file-api-service.d.ts +0 -73
- package/dist/types/cli/media-file-tool-service.d.ts +0 -13
- package/dist/types/cli/media-inline.d.ts +0 -31
- package/dist/types/cli/media-runtime-facade.d.ts +0 -51
- package/dist/types/cli/media-understanding.d.ts +0 -102
- package/dist/types/cli/skill-invocation-service.d.ts +0 -10
- package/dist/types/cli/skill-tools-bootstrap.d.ts +0 -35
- package/dist/types/cli/skills-query-service.d.ts +0 -41
- package/dist/types/cli/tool-bootstrap-media-registration.d.ts +0 -20
- package/dist/types/cli/turn-media-setup.d.ts +0 -34
- package/dist/types/cli/turn-preview-browser-setup.d.ts +0 -15
- package/dist/types/runtime/infra/astraclaw-capabilities.d.ts +0 -33
- package/dist/types/runtime/infra/builtin-skills-seed.d.ts +0 -31
- package/dist/types/runtime/infra/checkpoint-backend.d.ts +0 -9
- package/dist/types/runtime/infra/industrial-runtime-session-server.d.ts +0 -20
- package/dist/types/runtime/infra/migrate-project-skills.d.ts +0 -24
- package/dist/types/runtime/infra/project-skill-manifest.d.ts +0 -21
- package/dist/types/runtime/infra/skill-resolver.d.ts +0 -74
- package/dist/types/runtime/infra/worktree-backend.d.ts +0 -86
- package/dist/types/runtime/ports/checkpoint-contracts.d.ts +0 -19
- package/dist/types/runtime/ports/worktree-contracts.d.ts +0 -22
- package/dist/types/skills/mcp/astraclaw-native-mcp-server.d.ts +0 -1
- package/dist/types/skills/memory/memory-tool.d.ts +0 -87
- package/dist/types/skills/tools/checkpoint-tool.d.ts +0 -66
- package/dist/types/skills/tools/config-tool.d.ts +0 -61
- package/dist/types/skills/tools/file-management-tool.d.ts +0 -90
- package/dist/types/skills/tools/image-generate-tool.d.ts +0 -98
- package/dist/types/skills/tools/instructions-tool.d.ts +0 -65
- package/dist/types/skills/tools/lsp-tool.d.ts +0 -153
- package/dist/types/skills/tools/media-cancel-tool.d.ts +0 -30
- package/dist/types/skills/tools/media-understand-tool.d.ts +0 -28
- package/dist/types/skills/tools/monitor-tool.d.ts +0 -113
- package/dist/types/skills/tools/music-generate-tool.d.ts +0 -80
- package/dist/types/skills/tools/notebook-edit-tool.d.ts +0 -15
- package/dist/types/skills/tools/preview-browser-tool.d.ts +0 -136
- package/dist/types/skills/tools/repo-map-tool.d.ts +0 -52
- package/dist/types/skills/tools/skill-tool.d.ts +0 -142
- package/dist/types/skills/tools/sleep-tool.d.ts +0 -49
- package/dist/types/skills/tools/stt-tool.d.ts +0 -33
- package/dist/types/skills/tools/subagent-decision-tool.d.ts +0 -15
- package/dist/types/skills/tools/three-d-generate-tool.d.ts +0 -46
- package/dist/types/skills/tools/tts-tool.d.ts +0 -50
- package/dist/types/skills/tools/video-edit-tool.d.ts +0 -72
- package/dist/types/skills/tools/video-generate-tool.d.ts +0 -162
- package/dist/types/skills/tools/video-merge-tool.d.ts +0 -105
- package/dist/types/skills/tools/video-upscale-tool.d.ts +0 -45
- package/dist/types/skills/tools/voice-clone-tool.d.ts +0 -40
- package/dist/types/skills/tools/worktree-tool.d.ts +0 -69
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 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};
|
|
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","agent.health","agent.metrics"],Q=new Set(["memory.dream","memory.propose","memory.consolidate"]),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 M(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 v(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}.`}}:M(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=v({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.text_rollback","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.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","thread.item","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.taskHandoff","product.budgetUpdate","product.budgetWarning","product.budgetExceeded","product.checkpointed","product.completed","product.dagTopology","plan.interrupted","product.planReady","product.planningDelta","product.leaderMessage","product.planFailed","product.planningAsk","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 vt}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","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"],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_MUTATE_DAG:"x/product.mutateDag",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",WORKFLOW_PLAN_COMMAND:"x/workflow.planCommand",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_RECOVER:"x/goal.recover",GOAL_DISMISS:"x/goal.dismiss",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 Ee(e){return Object.values(N).includes(e)}function Pe(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 E(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:E(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:E(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]=E(i);break;case"toolManifests":case"skillManifests":case"pluginManifests":case"mcpManifests":p[s]=g(i);break;default:p[s]=i;break}}return o}var Me=["web_search","web_fetch","web_research","browser_execution"],ve=["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 Ve=["prefetch","sync_turn","on_pre_compress","on_session_end","on_delegation","on_memory_write"],Fe=["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 V(){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 F(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=>F(e,r)).filter(r=>!!r):[]}function Ge(e,t){return e.assets[t.id]=K(t),q(e)}function P(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=P(e.assets[a.gatewayImage]),n=P(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={...V()},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,Ve as MEMORY_OBSERVATION_HOOK_VALUES,Fe 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,ve as WEB_CAPABILITY_FAMILY_VALUES,Me 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,V as createDefaultRuntimeResourceProfiles,_e as deriveCapabilityToolNamespaces,Ce as deriveCapabilityWorkspaceIds,P as getManifestShortcutEntry,F 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,Pe as isExtendedSessionUpdateType,ct as isOpenAiProviderRuntimeFamily,Ee 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,v as requireGatewayRpcMeta,M 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};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type RecalledMemorySource = "l1-project-md" | "l2-long-term" | "skill" | "system" | "unknown";
|
|
2
2
|
export interface RecalledMemoryForPrompt {
|
|
3
|
+
id?: string;
|
|
3
4
|
text: string;
|
|
4
5
|
score?: number;
|
|
5
6
|
category?: string | null;
|
|
@@ -13,3 +14,9 @@ export interface RecalledMemoryForPrompt {
|
|
|
13
14
|
* only preserves the normalized evidence packet and its trust boundary.
|
|
14
15
|
*/
|
|
15
16
|
export declare function buildRecalledMemorySystemContent(memories: RecalledMemoryForPrompt[]): string;
|
|
17
|
+
/**
|
|
18
|
+
* Serializes one memory exactly as it will be shown to the answer model.
|
|
19
|
+
* L2 has no raw-text fallback: identity, schema, and canonical fact must all
|
|
20
|
+
* match the Host-owned claim packet before the entry is renderable.
|
|
21
|
+
*/
|
|
22
|
+
export declare function renderRecalledMemoryEntry(memory: RecalledMemoryForPrompt): string | null;
|
|
@@ -129,6 +129,8 @@ export interface FinalStatusReconciliation {
|
|
|
129
129
|
content: string;
|
|
130
130
|
/** A ```final-status block was present but not valid schema-1 JSON (treated as absent). */
|
|
131
131
|
malformedBlock: boolean;
|
|
132
|
+
/** Internal claim corrections for telemetry/logging. Never append these to assistant prose. */
|
|
133
|
+
notices: string[];
|
|
132
134
|
}
|
|
133
135
|
/**
|
|
134
136
|
* Locale for engine-authored final-status content. Only the fixed wording skeleton is localized;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** True when a no-tool answer leaked provider tool-protocol syntax as visible prose. */
|
|
2
|
+
export declare function containsToolProtocolMarkup(text: string): boolean;
|
|
3
|
+
export interface DirectResponseProtocolStreamFilter {
|
|
4
|
+
push(chunk: string): string;
|
|
5
|
+
flush(): string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Hold only the ambiguous beginning of a direct response. Provider protocol leaks start with
|
|
9
|
+
* an opening marker; keeping that short prefix out of the UI prevents a transient tool-call
|
|
10
|
+
* trace while preserving normal token streaming as soon as the prefix is proven ordinary text.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createDirectResponseProtocolStreamFilter(): DirectResponseProtocolStreamFilter;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 流式输出中的 final-status 围栏抑制。
|
|
3
|
+
*
|
|
4
|
+
* 为什么必须在**解析层**抑制而不是"先显示再回滚":final-status 是引擎内部协议块
|
|
5
|
+
* (```final-status + JSON),`reconcileFinalStatus` 会在回合末重写它。若照原样流给用户,
|
|
6
|
+
* 用户会看着一段裸 JSON 被逐字打出来,然后被终局文本替换。产品决定是内部协议文本
|
|
7
|
+
* **任何时候都不允许短暂展示**,所以它必须在进入 delta 流之前就被拦掉,回滚机制不适用于它。
|
|
8
|
+
*
|
|
9
|
+
* 关键约束:标记可能跨 chunk 边界到达("```final-" + "status\n"),因此不能逐 chunk 独立判断。
|
|
10
|
+
* 未确定安全之前必须扣住可能构成标记前缀的尾巴。
|
|
11
|
+
*
|
|
12
|
+
* 本模块只过滤**发给消费端的流**;完整原文仍照常进入 roundText/finalText,终局内容不受影响。
|
|
13
|
+
*/
|
|
14
|
+
export interface FinalStatusStreamSuppressor {
|
|
15
|
+
/** 吃进一段原文,返回此刻可安全外发的文本(可能为空)。 */
|
|
16
|
+
push(chunk: string): string;
|
|
17
|
+
/** 流结束:返回残留的安全文本。仍处于未闭合的抑制区时返回空串。 */
|
|
18
|
+
flush(): string;
|
|
19
|
+
/** 是否正处于 final-status 块内部(诊断用)。 */
|
|
20
|
+
isSuppressing(): boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare function createFinalStatusStreamSuppressor(): FinalStatusStreamSuppressor;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChatMessage } from "../types.js";
|
|
1
|
+
import type { ChatMessage, ToolCallExecutionEvidence } from "../types.js";
|
|
2
2
|
export { isEmptyToolResult } from "./tool-result-classification.js";
|
|
3
3
|
export declare const OUTPUT_REQUEST_CONTEXT_PATTERN: RegExp;
|
|
4
4
|
export declare function findLastToolError(messages: unknown[], _toolName: string): string | undefined;
|
|
@@ -29,7 +29,7 @@ export declare function buildRepeatedToolFailureStopContent(messages: ChatMessag
|
|
|
29
29
|
* for. Many CLIs (e.g. OfficeCLI) print a "run <tool> help" hint the model can act on; it just needs
|
|
30
30
|
* the error put in front of it once. Returns null when there is no tool error to correct from.
|
|
31
31
|
*/
|
|
32
|
-
export declare function buildToolFailureCorrectionNudge(messages: ChatMessage[]): ChatMessage | null;
|
|
32
|
+
export declare function buildToolFailureCorrectionNudge(messages: ChatMessage[], failureKind?: ToolCallExecutionEvidence["failureKind"]): ChatMessage | null;
|
|
33
33
|
/**
|
|
34
34
|
* exec 命令的"族"标识:程序名 + 子命令/脚本名(最多两段),用于 churn/变体失败
|
|
35
35
|
* 计数。审计 CASE2:按精确命令串 keying 时,每轮换一个转换/安装命令即可永远绕过
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
* Zero imports from express/pg/ioredis/ws.
|
|
20
20
|
*/
|
|
21
|
-
import type { AgentLogger, ChatMessage, ToolDefinition, ToolInvoker, TurnEvent, HookRegistry, LLMTransport, MaintainedDocumentIndex } from "./types.js";
|
|
21
|
+
import type { AgentLogger, ChatMessage, ToolDefinition, ToolInvoker, TurnEvent, HookRegistry, LLMTransport, MaintainedDocumentIndex, CapabilityRoutingEvidence } from "./types.js";
|
|
22
22
|
import type { ToolLoopRuntimePorts } from "../runtime/ports/index.js";
|
|
23
23
|
export interface ToolLoopParams {
|
|
24
24
|
turnId: string;
|
|
@@ -47,6 +47,10 @@ export interface ToolLoopParams {
|
|
|
47
47
|
* observed violation).
|
|
48
48
|
*/
|
|
49
49
|
freshEvidenceRequired?: boolean;
|
|
50
|
+
/** Exact Host Skill selections; execution stays gated until every required read completes. */
|
|
51
|
+
requiredSkillNames?: string[];
|
|
52
|
+
/** Versioned pre-model capability route for auditable product attribution. */
|
|
53
|
+
capabilityRoutingEvidence?: CapabilityRoutingEvidence;
|
|
50
54
|
/**
|
|
51
55
|
* Build/test verification gate (lever ②). Default true. Set false to disable the
|
|
52
56
|
* "fix-and-rerun until the test/build passes" recovery — used for A/B measurement.
|
|
@@ -7,13 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { HookRegistry } from "../contracts/hooks.js";
|
|
9
9
|
import type { AccumulatedToolCall, LLMChunk, LLMRequest, LLMTransport } from "../runtime/ports/index.js";
|
|
10
|
-
import type { ChatMessage as WireChatMessage, ChatMessageRole as WireChatMessageRole, ThinkingBlock as WireThinkingBlock, ToolCallMessage as WireToolCallMessage, ToolDefinition as WireToolDefinition, WireTokenUsage } from "../protocol/wire/index.js";
|
|
10
|
+
import type { ChatMessage as WireChatMessage, ChatMessageRole as WireChatMessageRole, ThinkingBlock as WireThinkingBlock, ToolCallMessage as WireToolCallMessage, ToolDefinition as WireToolDefinition, WireTokenUsage, CapabilityRoutingEvidence as WireCapabilityRoutingEvidence, FinalAnswerEvidence as WireFinalAnswerEvidence, ToolCallExecutionEvidence as WireToolCallExecutionEvidence } from "../protocol/wire/index.js";
|
|
11
11
|
export type ChatMessageRole = WireChatMessageRole;
|
|
12
12
|
export type ThinkingBlock = WireThinkingBlock;
|
|
13
13
|
export type ToolCallMessage = WireToolCallMessage;
|
|
14
14
|
export type ChatMessage = WireChatMessage;
|
|
15
15
|
export type { AccumulatedToolCall, LLMChunk, LLMRequest, LLMTransport, };
|
|
16
|
-
export type MediaCapability = "image" | "video" | "music" | "music_realtime" | "tts" | "3d" | "stt" | "embedding" | "video_understanding" | "image_understanding" | "voice_clone" | "rerank" | "document_parsing" | "realtime_audio" | "realtime_video";
|
|
17
16
|
export interface ToolDefinition extends WireToolDefinition {
|
|
18
17
|
/**
|
|
19
18
|
* Backfill derived/legacy fields onto a shallow copy of the tool input
|
|
@@ -75,10 +74,27 @@ export type ToolLoopTerminal = {
|
|
|
75
74
|
} | {
|
|
76
75
|
reason: "hook_stopped";
|
|
77
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* 提前发起的长期记忆召回。
|
|
79
|
+
*
|
|
80
|
+
* 召回实测每轮 1.5 秒,而它只依赖"最后一条用户消息",不依赖 MCP 就绪、工具清单或系统提示组装。
|
|
81
|
+
* 由 turn-handler 在这些前置工作**之前**发起,回合因此少串行等待一次召回。
|
|
82
|
+
*
|
|
83
|
+
* query 必须随 promise 一起带出:召回是有副作用的(before/after_recall 钩子、每轮字节预算、
|
|
84
|
+
* surfacedPaths 去重、召回决策账本),不能"查询串不符就再跑一次"—— 那会二次消耗预算并使
|
|
85
|
+
* 结果依赖执行顺序。消费端只做校验,不做补救。
|
|
86
|
+
*/
|
|
87
|
+
export interface MemoryRecallPrefetch {
|
|
88
|
+
/** 发起预取时使用的查询串,供消费端断言与最终查询串一致。 */
|
|
89
|
+
query: string;
|
|
90
|
+
promise: Promise<string | null>;
|
|
91
|
+
}
|
|
78
92
|
export interface TurnRequest {
|
|
79
93
|
turnId: string;
|
|
80
94
|
sessionId: string;
|
|
81
95
|
messages: ChatMessage[];
|
|
96
|
+
/** 见 MemoryRecallPrefetch。缺省时 Agent 自行同步召回(旧路径,语义不变)。 */
|
|
97
|
+
memoryRecallPrefetch?: MemoryRecallPrefetch;
|
|
82
98
|
/** Full registered tool surface before per-turn policy filtering. */
|
|
83
99
|
availableTools?: ToolDefinition[];
|
|
84
100
|
tools: ToolDefinition[];
|
|
@@ -112,9 +128,8 @@ export interface TurnRequest {
|
|
|
112
128
|
export interface TurnConfig {
|
|
113
129
|
/**
|
|
114
130
|
* Model purpose to resolve from the registry for this turn.
|
|
115
|
-
* Defaults to textGeneration.
|
|
116
|
-
*
|
|
117
|
-
* trying to fetch media URLs as plain text.
|
|
131
|
+
* Defaults to textGeneration. A Host-selected focused turn can override this
|
|
132
|
+
* when the main model itself must consume image or video input.
|
|
118
133
|
*/
|
|
119
134
|
modelPurpose?: "textGeneration" | "imageUnderstanding" | "videoUnderstanding";
|
|
120
135
|
/** LLM provider id, e.g. "deepseek" */
|
|
@@ -139,6 +154,10 @@ export interface TurnConfig {
|
|
|
139
154
|
toolChoice?: "auto" | "none" | "required";
|
|
140
155
|
/** Turn demands fresh tool evidence — arms the loop's reactive one-shot forced retry. */
|
|
141
156
|
freshEvidenceRequired?: boolean;
|
|
157
|
+
/** Exact Host Skill names explicitly selected for this turn. */
|
|
158
|
+
requiredSkillNames?: string[];
|
|
159
|
+
/** Versioned pre-model capability route used by product trace and baseline attribution. */
|
|
160
|
+
capabilityRoutingEvidence?: CapabilityRoutingEvidence;
|
|
142
161
|
/** Parent fork depth (0 = top-level, default 0). CC: depth tracking for fork recursion limit. */
|
|
143
162
|
parentDepth?: number;
|
|
144
163
|
/** Per-turn token budget (prompt + completion). 0 or undefined = unlimited. */
|
|
@@ -173,19 +192,12 @@ export interface TurnConfig {
|
|
|
173
192
|
parallelToolCalls?: boolean;
|
|
174
193
|
/** Text output verbosity hint: "low", "medium", "high". */
|
|
175
194
|
textVerbosity?: "low" | "medium" | "high";
|
|
176
|
-
/**
|
|
177
|
-
* User-designated provider+model per media category.
|
|
178
|
-
* Each entry maps a media type (image/video/music/tts/3d/...) to
|
|
179
|
-
* the specific provider and model the user chose. No failover
|
|
180
|
-
* if the designated provider fails, the error propagates directly.
|
|
181
|
-
*/
|
|
182
|
-
mediaProviders?: Partial<Record<MediaCapability, {
|
|
183
|
-
provider: string;
|
|
184
|
-
model: string;
|
|
185
|
-
}>>;
|
|
186
195
|
/** MCP server configurations (stdio/sse/http). Passed from host to agent per-turn. */
|
|
187
196
|
mcpServers?: Record<string, unknown>;
|
|
188
197
|
}
|
|
198
|
+
export type CapabilityRoutingEvidence = WireCapabilityRoutingEvidence;
|
|
199
|
+
export type FinalAnswerEvidence = WireFinalAnswerEvidence;
|
|
200
|
+
export type ToolCallExecutionEvidence = WireToolCallExecutionEvidence;
|
|
189
201
|
/**
|
|
190
202
|
* ToolInvoker: request tool execution from the host process (Gateway).
|
|
191
203
|
* In CLI mode this sends a JSON-RPC notification over stdio and waits for result.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* `buildAvailableCommands` (the list advertised via `available_commands_update` and summarized by
|
|
5
5
|
* `/help`) and `dispatchSlashCommand` (execution) share one source of truth — `BUILTIN_COMMANDS`.
|
|
6
6
|
* Each command's `dispatch` calls the same underlying data service the equivalent RPC handler uses
|
|
7
|
-
* (model-registry / tool-catalog /
|
|
7
|
+
* (model-registry / tool-catalog / Host Capability client / project-store / Host Provider directory / memory store) and
|
|
8
8
|
* formats the result as a text reply. No half-wiring: a command is only listed if it can run.
|
|
9
9
|
*
|
|
10
10
|
* Command-set decision (per plan): 9 direct commands + `/init` (degraded to a prompt, no automatic
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SoloSpecChatResult, SoloSpecJudgeResult, WorkflowChatResult } from "../protocol/wire/acp-agent-management.js";
|
|
2
|
+
import { GoalHandler } from "./handlers/goal-handler.js";
|
|
2
3
|
import type { DelegateBridge } from "../orchestration/delegate-bridge.js";
|
|
3
4
|
import { type DreamHandlerHost } from "./handlers/dream-handler.js";
|
|
4
5
|
import { type ProductCoordinatorHost } from "./handlers/product-handler.js";
|
|
@@ -73,10 +74,17 @@ export declare function handleAcpWorkflowChat(host: AcpExtendedHost, params: Rec
|
|
|
73
74
|
* 无 LLM / 分类失败 → {matched:null}(放行进正常聊天,绝不拦死用户消息)。
|
|
74
75
|
*/
|
|
75
76
|
export declare function handleAcpWorkflowMatchIntent(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
77
|
+
/**
|
|
78
|
+
* Interpret an explicit workflow-management request from the ordinary chat surface.
|
|
79
|
+
* This is stateless classification only: Runtime supplies the authoritative candidate snapshot,
|
|
80
|
+
* stores the confirmation plan, and remains the sole project/workflow mutation owner.
|
|
81
|
+
*/
|
|
82
|
+
export declare function handleAcpWorkflowPlanCommand(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
76
83
|
export declare function handleAcpProductCreate(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
77
84
|
export declare function handleAcpProductPlan(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
78
85
|
export declare function handleAcpProductConfirm(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
79
86
|
export declare function handleAcpProductMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
87
|
+
export declare function handleAcpProductMutateDag(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
80
88
|
export declare function handleAcpProductResume(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
81
89
|
export declare function handleAcpProductPause(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
82
90
|
export declare function handleAcpProductCancel(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
@@ -84,17 +92,19 @@ export declare function handleAcpProductRollback(host: AcpExtendedHost, params:
|
|
|
84
92
|
export declare function handleAcpProductReplay(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
85
93
|
/** Test-only reset. */
|
|
86
94
|
export declare function __resetGoalHandler(): void;
|
|
87
|
-
export declare function
|
|
95
|
+
export declare function __setGoalHandlerForTests(context: GatewayProjectContext, handler: GoalHandler, host: AcpExtendedHost, leaderAgentId?: string): void;
|
|
96
|
+
export declare function goalLeaderMemberOwner(context: GatewayProjectContext, leaderAgentId?: string): string;
|
|
88
97
|
export declare function handleAcpGoalStart(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
89
98
|
export declare function handleAcpGoalPause(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
90
99
|
export declare function handleAcpGoalResume(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
91
100
|
export declare function handleAcpGoalUpdateGoal(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
92
101
|
export declare function handleAcpGoalStop(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
93
102
|
export declare function handleAcpGoalMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
94
|
-
export declare function
|
|
103
|
+
export declare function emitThreadItem(method: string, payload: Record<string, unknown>, hosts: {
|
|
95
104
|
currentSessionId?: string;
|
|
96
105
|
sendNotification: (m: string, p: Record<string, unknown>) => void;
|
|
97
106
|
}[]): void;
|
|
98
|
-
export declare function
|
|
107
|
+
export declare function handleAcpGoalRecover(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
108
|
+
export declare function handleAcpGoalDismiss(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
99
109
|
export declare function handleAcpProductSubscribe(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
100
110
|
export {};
|
|
@@ -36,6 +36,7 @@ export declare class AgentRuntimeSessionState {
|
|
|
36
36
|
getMcpManager(sessionId: string): McpManager | null;
|
|
37
37
|
setMcpManager(sessionId: string, baseCatalog: ToolCatalog, manager: McpManager | null): void;
|
|
38
38
|
getMcpReady(sessionId: string): Promise<void>;
|
|
39
|
+
refreshMcpTools(sessionId: string): Promise<void>;
|
|
39
40
|
setMcpReady(sessionId: string, baseCatalog: ToolCatalog, ready: Promise<void>): void;
|
|
40
41
|
getMcpConfigKey(sessionId: string): string;
|
|
41
42
|
setMcpConfigKey(sessionId: string, baseCatalog: ToolCatalog, configKey: string): void;
|
|
@@ -2,8 +2,6 @@ import type { NotificationMethod, NotificationMethodMap } from "../protocol/noti
|
|
|
2
2
|
import type { ToolBootstrap } from "../runtime/ports/index.js";
|
|
3
3
|
import type { PathService } from "../runtime/ports/index.js";
|
|
4
4
|
import type { MediaPersistence } from "../runtime/infra/media-persistence.js";
|
|
5
|
-
import type { ModelPurpose } from "../runtime/infra/model-registry.js";
|
|
6
|
-
import type { LLMTransport } from "./provider-core-facade.js";
|
|
7
5
|
export interface BaseToolBootstrapDeps {
|
|
8
6
|
verbose: boolean;
|
|
9
7
|
toolBootstrap: ToolBootstrap;
|
|
@@ -11,11 +9,6 @@ export interface BaseToolBootstrapDeps {
|
|
|
11
9
|
mediaPersistence?: MediaPersistence;
|
|
12
10
|
log(message: string): void;
|
|
13
11
|
sendNotification<M extends NotificationMethod>(method: M, params: NotificationMethodMap[M]): void;
|
|
14
|
-
resolveClientForPurpose?(purpose: ModelPurpose): {
|
|
15
|
-
transport: LLMTransport;
|
|
16
|
-
apiKey: string;
|
|
17
|
-
model: string;
|
|
18
|
-
} | null;
|
|
19
12
|
getTaskScopeKey?(): string | undefined;
|
|
20
13
|
getCurrentTurnId?(): string | undefined;
|
|
21
14
|
isGroupSecurityMode?(): boolean;
|
|
@@ -11,6 +11,8 @@ export interface InstallCommunitySkillOptions {
|
|
|
11
11
|
fetchFn?: typeof fetch;
|
|
12
12
|
/** Replace an existing install in place (update flow) instead of erroring. */
|
|
13
13
|
allowReplace?: boolean;
|
|
14
|
+
/** Required for replacement. Automated updaters use managed-unmodified. */
|
|
15
|
+
replacementPolicy?: "managed-unmodified" | "user-confirmed";
|
|
14
16
|
hostCapabilityClient?: Pick<HostCapabilityClient, "prepareSkillInstall" | "finalizeSkillInstall">;
|
|
15
17
|
}
|
|
16
18
|
export declare function installCommunitySkillResource(install: CommunityInstallResolution, options?: InstallCommunitySkillOptions): Promise<CommunityInstalledResource>;
|
|
@@ -4,7 +4,6 @@ import type { BackgroundTaskManager } from "../runtime/infra/background-tasks.js
|
|
|
4
4
|
import type { ToolCatalog } from "../runtime/ports/index.js";
|
|
5
5
|
import type { LLMTransport } from "./provider-core-facade.js";
|
|
6
6
|
import type { HostProfileClient } from "../transport/host-profile-client.js";
|
|
7
|
-
import type { HostCapabilityClient } from "../transport/host-capability-client.js";
|
|
8
7
|
export interface CliCoreToolHostDeps {
|
|
9
8
|
getAgent(): unknown | null;
|
|
10
9
|
getCurrentTransport(): LLMTransport | null;
|
|
@@ -23,10 +22,8 @@ export interface CliCoreToolHostDeps {
|
|
|
23
22
|
sendNotification(method: string, params: Record<string, unknown>): void;
|
|
24
23
|
handleMcpToolCall(memberId: string, toolName: string, args: Record<string, unknown>): Promise<unknown>;
|
|
25
24
|
getHostProfileClient?(): HostProfileClient | undefined;
|
|
26
|
-
getHostCapabilityClient?(): HostCapabilityClient | undefined;
|
|
27
25
|
}
|
|
28
26
|
export interface CliCoreToolCoordinatorDeps {
|
|
29
|
-
config: Record<string, unknown>;
|
|
30
27
|
host: CliCoreToolHostDeps;
|
|
31
28
|
hooks: HookRegistry;
|
|
32
29
|
log: AgentLogger;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
import { type AgentToolRegistrationDeps } from "./agent-tool-bootstrap.js";
|
|
2
|
-
|
|
3
|
-
import { type ConfigToolRegistrationDeps } from "./config-tool-bootstrap.js";
|
|
4
|
-
import { type MonitorToolRegistrationDeps } from "./monitor-tool-bootstrap.js";
|
|
5
|
-
export type CoreToolSetRegistrationDeps = AgentToolRegistrationDeps & CheckpointToolRegistrationDeps & ConfigToolRegistrationDeps & MonitorToolRegistrationDeps;
|
|
2
|
+
export type CoreToolSetRegistrationDeps = AgentToolRegistrationDeps;
|
|
6
3
|
export declare function registerCoreToolSet(deps: CoreToolSetRegistrationDeps): void;
|
|
@@ -10,7 +10,6 @@ export interface ConfigHandlerHost {
|
|
|
10
10
|
taskStore: TaskStore;
|
|
11
11
|
backgroundTasks: BackgroundTaskManager;
|
|
12
12
|
toolCatalog?: ToolCatalog;
|
|
13
|
-
syncToolListMediaConfig?(): void;
|
|
14
13
|
sendResponse(id: string | number, result?: unknown, error?: AgentRpcError): void;
|
|
15
14
|
}
|
|
16
15
|
export declare function handleToolsList(this: ConfigHandlerHost, msg: AgentRpcRequest): void;
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import type { GoalLoopCoordinator } from "../../orchestration/goal-loop-coordinator.js";
|
|
2
|
+
import type { GoalInstructionKind, GoalTurnContext } from "../../orchestration/goal-run-types.js";
|
|
2
3
|
export declare class GoalHandler {
|
|
3
4
|
private readonly coordinator;
|
|
5
|
+
private readonly activeDrivers;
|
|
4
6
|
constructor(coordinator: GoalLoopCoordinator);
|
|
7
|
+
private scheduleDrive;
|
|
5
8
|
start(params: {
|
|
6
9
|
goal: string;
|
|
7
10
|
cwd?: string;
|
|
8
11
|
agentPool?: string[];
|
|
12
|
+
budget?: {
|
|
13
|
+
maxTotalTokens?: number;
|
|
14
|
+
maxDurationMs?: number;
|
|
15
|
+
};
|
|
16
|
+
turnContext?: GoalTurnContext;
|
|
9
17
|
}): Promise<{
|
|
10
18
|
ok: true;
|
|
11
19
|
goalRunId: string;
|
|
@@ -13,6 +21,7 @@ export declare class GoalHandler {
|
|
|
13
21
|
message(params: {
|
|
14
22
|
goalRunId: string;
|
|
15
23
|
text: string;
|
|
24
|
+
kind?: GoalInstructionKind;
|
|
16
25
|
}): Promise<{
|
|
17
26
|
ok: true;
|
|
18
27
|
queued: true;
|
|
@@ -25,6 +34,10 @@ export declare class GoalHandler {
|
|
|
25
34
|
resume(params: {
|
|
26
35
|
goalRunId: string;
|
|
27
36
|
newGoal?: string;
|
|
37
|
+
additionalBudget?: {
|
|
38
|
+
maxTotalTokens?: number;
|
|
39
|
+
maxDurationMs?: number;
|
|
40
|
+
};
|
|
28
41
|
}): Promise<{
|
|
29
42
|
ok: true;
|
|
30
43
|
}>;
|
|
@@ -39,4 +52,15 @@ export declare class GoalHandler {
|
|
|
39
52
|
}): Promise<{
|
|
40
53
|
ok: true;
|
|
41
54
|
}>;
|
|
55
|
+
recover(params: {
|
|
56
|
+
goalRunId: string;
|
|
57
|
+
}): Promise<{
|
|
58
|
+
ok: true;
|
|
59
|
+
recovered: boolean;
|
|
60
|
+
}>;
|
|
61
|
+
dismiss(params: {
|
|
62
|
+
goalRunId: string;
|
|
63
|
+
}): Promise<{
|
|
64
|
+
ok: true;
|
|
65
|
+
}>;
|
|
42
66
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Agent-resident proposal extraction
|
|
1
|
+
/** Agent-resident proposal extraction. Public search is Runtime Host-native. */
|
|
2
2
|
import { type AgentRpcError, type AgentRpcRequest } from "../../protocol/wire/index.js";
|
|
3
3
|
import type { MemoryHandlerProvider } from "../../runtime/ports/index.js";
|
|
4
4
|
import { type MemoryModelPurpose } from "../memory-candidate-service.js";
|
|
@@ -20,5 +20,4 @@ export interface MemoryHandlerHost {
|
|
|
20
20
|
sendResponse(id: string | number, result?: unknown, error?: AgentRpcError): void;
|
|
21
21
|
}
|
|
22
22
|
export declare function handleMemoryPropose(this: MemoryHandlerHost, msg: AgentRpcRequest): Promise<void>;
|
|
23
|
-
export declare function handleMemorySearch(this: MemoryHandlerHost, msg: AgentRpcRequest): Promise<void>;
|
|
24
23
|
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AgentRpcError, type AgentRpcRequest } from "../../protocol/wire/index.js";
|
|
2
|
+
import type { HostCapabilityClient } from "../../transport/host-capability-client.js";
|
|
3
|
+
export interface SkillCuratorHandlerHost {
|
|
4
|
+
getHostCapabilityClient(): HostCapabilityClient | undefined;
|
|
5
|
+
sendResponse(id: string | number, result?: unknown, error?: AgentRpcError): void;
|
|
6
|
+
}
|
|
7
|
+
export declare function handleSkillsPromote(this: SkillCuratorHandlerHost, msg: AgentRpcRequest): Promise<void>;
|
|
8
|
+
export declare function handleSkillsCurator(this: SkillCuratorHandlerHost, msg: AgentRpcRequest): Promise<void>;
|