qlogicagent 2.24.1 → 2.24.2
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 +52 -324
- package/dist/agent.js +38 -43
- package/dist/cli.js +7 -7
- package/dist/default-project-knowledge/INSTRUCTIONS.md +7 -7
- package/dist/default-project-knowledge/rules/project-workflow.md +6 -6
- package/dist/index.js +265 -1018
- package/dist/orchestration.js +10 -10
- package/dist/types/agent/runtime-vars.d.ts +1 -16
- package/dist/types/agent/tool-loop/compression-pipeline.d.ts +0 -2
- package/dist/types/agent/tool-loop.d.ts +0 -6
- package/dist/types/agent/types.d.ts +3 -22
- package/dist/types/cli/acp-commands.d.ts +4 -5
- package/dist/types/cli/acp-message-router.d.ts +1 -2
- package/dist/types/cli/acp-session-handlers.d.ts +6 -12
- package/dist/types/cli/acp-session-host.d.ts +5 -48
- package/dist/types/cli/adapter-launch-config.d.ts +14 -0
- package/dist/types/cli/agent-runtime-bootstrap.d.ts +2 -23
- package/dist/types/cli/agent-runtime-session-state.d.ts +1 -6
- package/dist/types/cli/base-tool-bootstrap.d.ts +0 -2
- package/dist/types/cli/cli-acp-request-handler.d.ts +3 -5
- package/dist/types/cli/core-tool-coordinator.d.ts +0 -4
- package/dist/types/cli/core-tools/agent-tool-service.d.ts +0 -3
- package/dist/types/cli/core-tools/fork-system-prompt.d.ts +1 -5
- package/dist/types/cli/handlers/files-handler.d.ts +0 -6
- package/dist/types/cli/handlers/turn-handler.d.ts +7 -83
- package/dist/types/cli/main.d.ts +2 -4
- package/dist/types/cli/permission-approval-bridge.d.ts +2 -6
- package/dist/types/cli/permission-bootstrap.d.ts +2 -12
- package/dist/types/cli/plugin-bootstrap.d.ts +2 -4
- package/dist/types/cli/runtime-hook-bootstrap.d.ts +0 -21
- package/dist/types/cli/session-context.d.ts +4 -14
- package/dist/types/cli/session-coordinator.d.ts +1 -9
- package/dist/types/cli/stdio-acp-protocol-coordinator.d.ts +2 -9
- package/dist/types/cli/stdio-acp-request-host.d.ts +3 -15
- package/dist/types/cli/stdio-agent-session-bootstrap.d.ts +3 -23
- package/dist/types/cli/stdio-runtime-bootstrap.d.ts +0 -8
- package/dist/types/cli/stdio-runtime-services.d.ts +2 -13
- package/dist/types/cli/stdio-server.d.ts +6 -128
- package/dist/types/cli/tool-bootstrap.d.ts +4 -8
- package/dist/types/cli/tool-catalog.d.ts +2 -2
- package/dist/types/cli/tool-invoker-factory.d.ts +0 -2
- package/dist/types/cli/tool-registry-adapter.d.ts +3 -7
- package/dist/types/cli/tool-result-processor.d.ts +0 -1
- package/dist/types/cli/turn-core.d.ts +6 -10
- package/dist/types/cli/turn-event-forwarder.d.ts +6 -3
- package/dist/types/cli/turn-lifecycle.d.ts +0 -3
- package/dist/types/cli/turn-project-router.d.ts +0 -7
- package/dist/types/contracts/hooks.d.ts +1 -20
- package/dist/types/contracts/tool-execution-evidence.d.ts +20 -1
- package/dist/types/contracts/turn-event.d.ts +2 -2
- package/dist/types/orchestration/index.d.ts +1 -1
- package/dist/types/protocol/notifications.d.ts +2 -9
- package/dist/types/protocol/wire/acp-protocol.d.ts +12 -186
- package/dist/types/protocol/wire/capability-transport.d.ts +0 -2
- package/dist/types/protocol/wire/index.d.ts +2 -10
- package/dist/types/protocol/wire/notification-payloads.d.ts +4 -989
- package/dist/types/protocol/wire/thread-protocol.d.ts +24 -3
- package/dist/types/runtime/config/tunable-defaults.d.ts +3 -75
- package/dist/types/runtime/execution/forked-agent.d.ts +2 -5
- package/dist/types/runtime/execution/streaming-tool-executor.d.ts +0 -2
- package/dist/types/runtime/execution/tool-result-storage.d.ts +13 -4
- package/dist/types/runtime/infra/agent-paths.d.ts +4 -54
- package/dist/types/runtime/infra/agent-project-projection.d.ts +20 -0
- package/dist/types/runtime/infra/background-tasks.d.ts +3 -3
- package/dist/types/runtime/infra/default-path-service.d.ts +0 -7
- package/dist/types/runtime/infra/llmrouter-catalog.d.ts +1 -1
- package/dist/types/runtime/infra/model-registry.d.ts +6 -9
- package/dist/types/runtime/infra/project-store.d.ts +3 -3
- package/dist/types/runtime/infra/subagent-turn-snapshot.d.ts +54 -7
- package/dist/types/runtime/infra/task-runtime.d.ts +1 -1
- package/dist/types/runtime/ports/agent-runtime-ports.d.ts +1 -3
- package/dist/types/runtime/ports/index.d.ts +0 -4
- package/dist/types/runtime/ports/path-service.d.ts +1 -9
- package/dist/types/runtime/ports/tool-contracts.d.ts +0 -1
- package/dist/types/runtime/session/agent-session-projection.d.ts +37 -0
- package/dist/types/runtime/tasks/task-types.d.ts +2 -25
- package/dist/types/skills/mcp/mcp-manager.d.ts +2 -2
- package/dist/types/skills/plugins/plugin-loader.d.ts +1 -1
- package/dist/types/skills/skill-system/skill-category.d.ts +4 -2
- package/dist/types/skills/tools.d.ts +1 -18
- package/dist/types/test-support/project-store-fixture.d.ts +4 -4
- package/dist/types/transport/acp-event-emitter.d.ts +1 -20
- package/dist/types/transport/acp-server.d.ts +8 -88
- package/package.json +4 -96
- package/dist/agent-contract.js +0 -1
- package/dist/host-contract.js +0 -1
- package/dist/host-session-collection-contract.js +0 -1
- package/dist/memory-category-contract.js +0 -1
- package/dist/permissions.js +0 -1
- package/dist/plugin-marketplace-compute.js +0 -1
- package/dist/project-memory-host.js +0 -38
- package/dist/protocol.js +0 -1
- package/dist/skill-category-contract.js +0 -1
- package/dist/tunables.js +0 -1
- package/dist/types/agent/memory-recall-context.d.ts +0 -22
- package/dist/types/agent/memory-recall-injection.d.ts +0 -32
- package/dist/types/cli/acp-extended-handlers.d.ts +0 -110
- package/dist/types/cli/acp-extended-host-adapter.d.ts +0 -20
- package/dist/types/cli/community-resource-installer.d.ts +0 -39
- package/dist/types/cli/community-skill-installer.d.ts +0 -18
- package/dist/types/cli/community-workflow-installer.d.ts +0 -29
- package/dist/types/cli/default-project-bootstrap.d.ts +0 -12
- package/dist/types/cli/dream-host-adapter.d.ts +0 -24
- package/dist/types/cli/gateway-rpc-connection.d.ts +0 -50
- package/dist/types/cli/handlers/community-handler.d.ts +0 -14
- package/dist/types/cli/handlers/config-handler.d.ts +0 -19
- package/dist/types/cli/handlers/control-handler.d.ts +0 -29
- package/dist/types/cli/handlers/dream-handler.d.ts +0 -41
- package/dist/types/cli/handlers/goal-handler.d.ts +0 -66
- package/dist/types/cli/handlers/memory-handler.d.ts +0 -23
- package/dist/types/cli/handlers/product-handler.d.ts +0 -35
- package/dist/types/cli/handlers/session-handler.d.ts +0 -29
- package/dist/types/cli/handlers/skill-curator-handler.d.ts +0 -8
- package/dist/types/cli/handlers/solo-handler.d.ts +0 -25
- package/dist/types/cli/handlers/turn-baseline-handler.d.ts +0 -8
- package/dist/types/cli/handlers/workflow-compute-handler.d.ts +0 -8
- package/dist/types/cli/handlers/working-materials-handler.d.ts +0 -9
- package/dist/types/cli/idle-dream-coordinator.d.ts +0 -57
- package/dist/types/cli/memory-background-coordinator.d.ts +0 -26
- package/dist/types/cli/memory-candidate-service.d.ts +0 -75
- package/dist/types/cli/memory-coordinator.d.ts +0 -40
- package/dist/types/cli/multi-agent-handler-host.d.ts +0 -16
- package/dist/types/cli/multi-agent-state-coordinator.d.ts +0 -8
- package/dist/types/cli/orchestration-memory-context.d.ts +0 -23
- package/dist/types/cli/product-acp-params.d.ts +0 -30
- package/dist/types/cli/product-coordinator.d.ts +0 -21
- package/dist/types/cli/project-memory-store-factory.d.ts +0 -12
- package/dist/types/cli/project-template-seeder.d.ts +0 -5
- package/dist/types/cli/rpc-registry.d.ts +0 -56
- package/dist/types/cli/session-history-coordinator.d.ts +0 -8
- package/dist/types/cli/session-query-service.d.ts +0 -27
- package/dist/types/cli/stdio-rpc-handler-hosts.d.ts +0 -56
- package/dist/types/cli/stdio-session-runtime-coordinator.d.ts +0 -17
- package/dist/types/cli/task-distillation-coordinator.d.ts +0 -146
- package/dist/types/cli/turn-ask-user-setup.d.ts +0 -24
- package/dist/types/cli/turn-suggestion-generator.d.ts +0 -15
- package/dist/types/contracts/memory-recall-packet.d.ts +0 -31
- package/dist/types/contracts/memory-response-contract.d.ts +0 -2
- package/dist/types/host-contract/fts-segment.d.ts +0 -20
- package/dist/types/host-contract/index.d.ts +0 -1819
- package/dist/types/host-contract/memory-category.d.ts +0 -8
- package/dist/types/host-contract/skill-category.d.ts +0 -5
- package/dist/types/host-session-collection-contract.d.ts +0 -65
- package/dist/types/orchestration/agent-instance.d.ts +0 -215
- package/dist/types/orchestration/agent-roster.d.ts +0 -32
- package/dist/types/orchestration/dag-scheduler.d.ts +0 -219
- package/dist/types/orchestration/delegate-approval-policy.d.ts +0 -8
- package/dist/types/orchestration/delegate-bridge.d.ts +0 -8
- package/dist/types/orchestration/goal-acceptance.d.ts +0 -17
- package/dist/types/orchestration/goal-context-envelope.d.ts +0 -7
- package/dist/types/orchestration/goal-loop-coordinator.d.ts +0 -151
- package/dist/types/orchestration/goal-mode-adapters.d.ts +0 -152
- package/dist/types/orchestration/goal-run-persistence.d.ts +0 -21
- package/dist/types/orchestration/goal-run-types.d.ts +0 -225
- package/dist/types/orchestration/planner-memory-brief.d.ts +0 -39
- package/dist/types/orchestration/product-budget.d.ts +0 -94
- package/dist/types/orchestration/product-checkpoint.d.ts +0 -50
- package/dist/types/orchestration/product-dag-mutation-applier.d.ts +0 -10
- package/dist/types/orchestration/product-persistence.d.ts +0 -90
- package/dist/types/orchestration/product-planner.d.ts +0 -332
- package/dist/types/orchestration/product-run-coordinator.d.ts +0 -49
- package/dist/types/orchestration/product-worktree.d.ts +0 -19
- package/dist/types/orchestration/run-state-host-authority.d.ts +0 -7
- package/dist/types/orchestration/solo-evaluator.d.ts +0 -179
- package/dist/types/orchestration/solo-persistence.d.ts +0 -47
- package/dist/types/orchestration/solo-spec-builder.d.ts +0 -58
- package/dist/types/orchestration/testing/delegate-test-bridge.d.ts +0 -23
- package/dist/types/orchestration/testing/host-agent-provider-directory-fixture.d.ts +0 -7
- package/dist/types/orchestration/testing/run-state-client-double.d.ts +0 -13
- package/dist/types/orchestration/workflow/budget-permission-gate.d.ts +0 -94
- package/dist/types/orchestration/workflow/builtin-capabilities.d.ts +0 -3
- package/dist/types/orchestration/workflow/builtin-executors.d.ts +0 -18
- package/dist/types/orchestration/workflow/capability-catalog.d.ts +0 -72
- package/dist/types/orchestration/workflow/cron-schedule.d.ts +0 -36
- package/dist/types/orchestration/workflow/data-item.d.ts +0 -39
- package/dist/types/orchestration/workflow/expression.d.ts +0 -60
- package/dist/types/orchestration/workflow/host-executors.d.ts +0 -15
- package/dist/types/orchestration/workflow/n8n-expression.d.ts +0 -48
- package/dist/types/orchestration/workflow/n8n-import.d.ts +0 -64
- package/dist/types/orchestration/workflow/n8n-template-compat.d.ts +0 -5
- package/dist/types/orchestration/workflow/node-registry.d.ts +0 -32
- package/dist/types/orchestration/workflow/node-schema.d.ts +0 -249
- package/dist/types/orchestration/workflow/params-schema.d.ts +0 -69
- package/dist/types/orchestration/workflow/qla-executor-host.d.ts +0 -63
- package/dist/types/orchestration/workflow/run-checkpoint-store.d.ts +0 -53
- package/dist/types/orchestration/workflow/run-history-store.d.ts +0 -103
- package/dist/types/orchestration/workflow/semantic-acceptance.d.ts +0 -65
- package/dist/types/orchestration/workflow/trigger-validation.d.ts +0 -22
- package/dist/types/orchestration/workflow/workflow-audit-store.d.ts +0 -31
- package/dist/types/orchestration/workflow/workflow-authoring.d.ts +0 -74
- package/dist/types/orchestration/workflow/workflow-bundle.d.ts +0 -51
- package/dist/types/orchestration/workflow/workflow-controller.d.ts +0 -237
- package/dist/types/orchestration/workflow/workflow-edit-context.d.ts +0 -46
- package/dist/types/orchestration/workflow/workflow-error.d.ts +0 -28
- package/dist/types/orchestration/workflow/workflow-intent-contract.d.ts +0 -56
- package/dist/types/orchestration/workflow/workflow-patch.d.ts +0 -122
- package/dist/types/orchestration/workflow/workflow-render.d.ts +0 -40
- package/dist/types/orchestration/workflow/workflow-runtime.d.ts +0 -184
- package/dist/types/orchestration/workflow/workflow-scheduler.d.ts +0 -122
- package/dist/types/orchestration/workflow/workflow-store.d.ts +0 -85
- package/dist/types/orchestration/workflow/workflow-template-setup.d.ts +0 -65
- package/dist/types/orchestration/workflow/workflow-trigger.d.ts +0 -43
- package/dist/types/orchestration/workflow-chat-builder.d.ts +0 -152
- package/dist/types/orchestration/worktree-task-prompt.d.ts +0 -1
- package/dist/types/permissions.d.ts +0 -4
- package/dist/types/project-memory-host.d.ts +0 -4
- package/dist/types/protocol/agent-contract.d.ts +0 -93
- package/dist/types/protocol/methods.d.ts +0 -645
- package/dist/types/protocol/wire/acp-agent-management.d.ts +0 -533
- package/dist/types/protocol/wire/agent-events.d.ts +0 -1
- package/dist/types/protocol/wire/agent-methods.d.ts +0 -500
- package/dist/types/protocol/wire/agent-rpc.d.ts +0 -100
- package/dist/types/protocol/wire/gateway-contract.d.ts +0 -61
- package/dist/types/protocol/wire/gateway-rpc.d.ts +0 -1177
- package/dist/types/protocol/wire/memory-provider-lifecycle.d.ts +0 -31
- package/dist/types/protocol/wire/turn.d.ts +0 -208
- package/dist/types/runtime/community/autonomy-budget.d.ts +0 -26
- package/dist/types/runtime/community/community-consent-client.d.ts +0 -55
- package/dist/types/runtime/community/package-materialize.d.ts +0 -19
- package/dist/types/runtime/community/ranged-download.d.ts +0 -21
- package/dist/types/runtime/community/registry-signature.d.ts +0 -48
- package/dist/types/runtime/execution/dream-agent.d.ts +0 -273
- package/dist/types/runtime/execution/dream-category-context.d.ts +0 -47
- package/dist/types/runtime/execution/memory-decay.d.ts +0 -73
- package/dist/types/runtime/execution/turn-progress-notifier.d.ts +0 -16
- package/dist/types/runtime/hooks/memory-hooks.d.ts +0 -111
- package/dist/types/runtime/infra/acp-host-handler.d.ts +0 -31
- package/dist/types/runtime/infra/acp-protocol-adapter.d.ts +0 -209
- package/dist/types/runtime/infra/acp-usage-tracker.d.ts +0 -46
- package/dist/types/runtime/infra/cloud-auth-host-authority.d.ts +0 -4
- package/dist/types/runtime/infra/feedback-distillation-worker.d.ts +0 -20
- package/dist/types/runtime/infra/feedback-distillation.d.ts +0 -32
- package/dist/types/runtime/infra/feedback-event-store.d.ts +0 -179
- package/dist/types/runtime/infra/feedback-host-authority.d.ts +0 -4
- package/dist/types/runtime/infra/feedback-outbox.d.ts +0 -26
- package/dist/types/runtime/infra/feedback-redaction.d.ts +0 -71
- package/dist/types/runtime/infra/feedback-upload-client.d.ts +0 -39
- package/dist/types/runtime/infra/feedback-upload-worker.d.ts +0 -11
- package/dist/types/runtime/infra/host-agent-provider-directory.d.ts +0 -17
- package/dist/types/runtime/infra/project-authority-facade.d.ts +0 -11
- package/dist/types/runtime/infra/project-data-paths.d.ts +0 -24
- package/dist/types/runtime/infra/project-host-authority.d.ts +0 -11
- package/dist/types/runtime/infra/project-instructions-store.d.ts +0 -30
- package/dist/types/runtime/infra/turn-baseline-store.d.ts +0 -102
- package/dist/types/runtime/infra/turn-telemetry-store.d.ts +0 -100
- package/dist/types/runtime/infra/working-materials-store.d.ts +0 -29
- package/dist/types/runtime/memory/find-relevant-memories.d.ts +0 -26
- package/dist/types/runtime/memory/implicit-extraction.d.ts +0 -69
- package/dist/types/runtime/memory/memory-recall-attribution.d.ts +0 -24
- package/dist/types/runtime/ports/memory-provider.d.ts +0 -219
- package/dist/types/runtime/ports/memory-recall-source.d.ts +0 -14
- package/dist/types/runtime/ports/memory-writer.d.ts +0 -70
- package/dist/types/runtime/ports/project-memory-store.d.ts +0 -49
- package/dist/types/runtime/prompt/host-skill-directory.d.ts +0 -16
- package/dist/types/runtime/session/group-session-split.d.ts +0 -38
- package/dist/types/runtime/session/inbound-upload-persistence.d.ts +0 -47
- package/dist/types/runtime/session/session-catalog.d.ts +0 -12
- package/dist/types/runtime/session/session-deletion-guard.d.ts +0 -4
- package/dist/types/runtime/session/session-locator.d.ts +0 -26
- package/dist/types/runtime/session/session-metadata-store.d.ts +0 -8
- package/dist/types/runtime/session/session-paths.d.ts +0 -8
- package/dist/types/runtime/session/session-permission-store.d.ts +0 -6
- package/dist/types/runtime/session/session-persistence.d.ts +0 -37
- package/dist/types/runtime/session/session-recovery.d.ts +0 -62
- package/dist/types/runtime/session/session-resource-key.d.ts +0 -28
- package/dist/types/runtime/session/session-resume.d.ts +0 -9
- package/dist/types/runtime/session/session-schema.d.ts +0 -10
- package/dist/types/runtime/session/session-summary.d.ts +0 -7
- package/dist/types/runtime/session/session-title.d.ts +0 -9
- package/dist/types/runtime/session/session-transcript-store.d.ts +0 -30
- package/dist/types/runtime/session/session-types.d.ts +0 -113
- package/dist/types/runtime/session/session-write-queue.d.ts +0 -3
- package/dist/types/skills/memory/host-memory-provider.d.ts +0 -235
- package/dist/types/skills/memory/memdir.d.ts +0 -111
- package/dist/types/skills/memory/memory-content-safety.d.ts +0 -1
- package/dist/types/skills/memory/memory-vector-utils.d.ts +0 -2
- package/dist/types/skills/memory/task-distillation.d.ts +0 -183
- package/dist/types/skills/plugins/plugin-marketplace.d.ts +0 -43
- package/dist/types/skills/skill-system/skill-bundles.d.ts +0 -8
- package/dist/types/skills/skill-system/skill-lifecycle.d.ts +0 -89
- package/dist/types/test-support/run-state-authority-setup.d.ts +0 -1
- package/dist/types/transport/delegate-client.d.ts +0 -82
- package/dist/types/transport/host-capability-client.d.ts +0 -21
- package/dist/types/transport/host-cloud-auth-client.d.ts +0 -10
- package/dist/types/transport/host-community-client.d.ts +0 -7
- package/dist/types/transport/host-feedback-client.d.ts +0 -25
- package/dist/types/transport/host-profile-client.d.ts +0 -19
- package/dist/types/transport/host-project-client.d.ts +0 -16
- package/dist/types/transport/host-request-client.d.ts +0 -42
- package/dist/types/transport/host-run-state-client.d.ts +0 -23
- package/dist/types/transport/host-session-client.d.ts +0 -30
- package/dist/types/tunables.d.ts +0 -2
- package/dist/types/workflow-host.d.ts +0 -38
- package/dist/workflow-host.js +0 -11
- /package/dist/types/{host-contract → protocol/wire}/acp-content.d.ts +0 -0
- /package/dist/types/{host-contract → runtime/infra}/project-id.d.ts +0 -0
- /package/dist/types/{host-contract → runtime/infra}/provider-profile.d.ts +0 -0
package/dist/host-contract.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{MODEL_PURPOSES as Zt}from"@xiaozhiclaw/module-sdk/model-access";function f(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function y(e,t){let n=new Set(t);return Object.keys(e).every(o=>n.has(o))}function l(e){return typeof e=="string"&&e.trim()===e&&e.length>0&&e.length<=512&&!e.includes("\0")}function b(e){return Number.isSafeInteger(e)&&Number(e)>0}function w(e){return f(e)&&y(e,["agentId","projectId","nativeId"])&&l(e.agentId)&&l(e.projectId)&&l(e.nativeId)}function M(e){if(!f(e)||!y(e,["resourceId","canonicalSessionId","source","projectId","agentId","title","titleSource","lastActiveAt","pinnedAt","lifecycle","availableCommands","nativeRef"])||!l(e.resourceId)||!l(e.projectId)||!l(e.agentId)||!l(e.lastActiveAt)||e.source!=="host"&&e.source!=="native-unadopted"||e.source==="host"&&!l(e.canonicalSessionId)||e.source==="native-unadopted"&&!w(e.nativeRef)||e.canonicalSessionId!==void 0&&!l(e.canonicalSessionId)||e.nativeRef!==void 0&&!w(e.nativeRef))return!1;let t=new Set(["host.setPinned","host.rename","host.setArchived","host.deleteRecord"]);return!Array.isArray(e.availableCommands)||!e.availableCommands.every(n=>typeof n=="string"&&t.has(n))||new Set(e.availableCommands).size!==e.availableCommands.length||e.source==="native-unadopted"&&e.availableCommands.length>0||e.title!==void 0&&typeof e.title!="string"||e.pinnedAt!==void 0&&!l(e.pinnedAt)||e.titleSource!==void 0&&e.titleSource!=="prompt"&&e.titleSource!=="generated"&&e.titleSource!=="user"&&e.titleSource!=="native"&&e.titleSource!=="repaired"?!1:e.lifecycle==="active"||e.lifecycle==="archived"||e.lifecycle==="source-missing"||e.lifecycle==="resume-unavailable"}function _(e){return f(e)&&y(e,["agentId","projectId","code","message","lastGoodRevision"])&&l(e.agentId)&&l(e.projectId)&&l(e.code)&&typeof e.message=="string"&&e.message.length>0&&e.message.length<=2e4&&(e.lastGoodRevision===void 0||b(e.lastGoodRevision))}function $(e){return typeof e=="string"&&e.length>0&&!Number.isNaN(Date.parse(e))}function X(e){return f(e)&&y(e,["id","role","content","createdAt"])&&Object.prototype.hasOwnProperty.call(e,"content")&&(e.id===void 0||l(e.id))&&(e.role==="user"||e.role==="assistant"||e.role==="tool")&&(e.createdAt===void 0||$(e.createdAt))}function W(e){return f(e)&&y(e,["messages","diagnostics"])&&Array.isArray(e.messages)&&e.messages.every(X)&&(e.diagnostics===void 0||Array.isArray(e.diagnostics))}function v(e){return f(e)&&y(e,["revision","scopeGeneration","items","diagnostics"])&&b(e.revision)&&b(e.scopeGeneration)&&Array.isArray(e.items)&&e.items.every(M)&&Array.isArray(e.diagnostics)&&e.diagnostics.every(_)}function Q(e){return f(e)&&y(e,["revision","scopeGeneration","addedOrUpdated","removed","diagnostics"])&&b(e.revision)&&b(e.scopeGeneration)&&(e.addedOrUpdated===void 0||Array.isArray(e.addedOrUpdated)&&e.addedOrUpdated.every(M))&&(e.removed===void 0||Array.isArray(e.removed)&&e.removed.every(l))&&(e.diagnostics===void 0||Array.isArray(e.diagnostics)&&e.diagnostics.every(_))}var P="llmrouter";function T(e){return e.baseUrl??e.base_url}function O(e){return{zhipu:"Zhipu GLM","zhipu-openai":"Zhipu GLM OpenAI","zhipu-coding":"Zhipu GLM Coding",qwen:"Alibaba Qwen (DashScope)","qwen-coding":"Alibaba Qwen (Coding Plan)",volcengine:"Doubao / Volcengine","volcengine-plan":"Doubao / Volcengine Plan"}[e.id]??e.displayName??e.name??e.id}function A(e){return e.id===P?P:e.group?.trim()||e.id}function J(e){return e.id===A(e)}function E(e){return O({...e,id:A(e)})}function Z(e){return{volcengine:"\u5E38\u89C4 Ark API Key","volcengine-plan":"\u8BA2\u9605 / Plan \u901A\u9053",qwen:"\u5E38\u89C4 DashScope API Key","qwen-coding":"Coding Plan \u901A\u9053",zhipu:"Anthropic \u901A\u9053","zhipu-openai":"OpenAI \u517C\u5BB9\u901A\u9053","zhipu-coding":"Coding \u901A\u9053"}[e.id]??O(e)}function ee(e){return e.authType==="none"?!1:e.apiKeyEnvVars===void 0||e.apiKeyEnvVars.length>0}function te(e){return{id:e.id,displayName:Z(e),baseUrl:T(e)??"",modelCount:e.models?.length??0}}function dt(e){let t=new Map;for(let n of e){if(!ee(n))continue;let o=A(n);if(o===P)continue;let d=n.models?.length??0,m=te(n),c=t.get(o);if(!c){t.set(o,{id:o,displayName:E(n),baseUrl:T(n)??"",modelCount:d,variants:[m]});continue}c.modelCount+=d,c.variants??=[],c.variants.some(p=>p.id===m.id)||c.variants.push(m),J(n)&&(c.displayName=E(n),c.baseUrl=T(n)??c.baseUrl)}return Array.from(t.values()).map(({variants:n,...o})=>({...o,...n&&n.length>1?{variants:n}:{}}))}function ne(e){return e.defaultModel??e.models?.find(t=>!!t.id)?.id}function re(e){let t=e.replace(/\/+$/,"");return[...new Set([`${t}/models`,/\/v\d+$/.test(t)?`${t}/models`:`${t}/v1/models`])]}function ct(e){return e===404||e===405||e===410||e===501}function x(e){return{accept:"application/json",Authorization:`Bearer ${e}`}}function se(e,t){let n=e.trim(),o=t?.baseUrl?.trim();return t?.transport==="anthropic-messages"&&o&&/\/anthropic\/?$/.test(o)&&!/\/anthropic\/?$/.test(n)?o:n}function ie(e){let t=e.trim().replace(/\/+$/,"");return t.endsWith("/v1")?`${t}/models`:`${t}/v1/models`}function pt(e,t,n,o){if(e===P)return[{method:"GET",url:ie(n),headers:x(t)}];let d=se(n,o).replace(/\/+$/,""),m=o?.transport,c=ne(o??{id:e}),p=[];if(m==="anthropic-messages")return/\/anthropic$/.test(d)&&p.push({method:"GET",url:`${d.replace(/\/anthropic$/,"")}/models`,headers:x(t)}),c&&p.push({method:"POST",url:`${d}/v1/messages`,headers:{"Content-Type":"application/json","x-api-key":t,"anthropic-version":"2023-06-01"},body:{model:c,messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1}}),p;if(m==="gemini-generatecontent")return c?[{method:"POST",url:`${d}/models/${encodeURIComponent(c)}:generateContent`,headers:{"Content-Type":"application/json","x-goog-api-key":t},body:{contents:[{role:"user",parts:[{text:"ping"}]}],generationConfig:{maxOutputTokens:1}}}]:p;if(m==="volcengine-responses")return c?[{method:"POST",url:`${d.replace(/\/v\d+$/,"")}/v3/responses`,headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:{model:c,input:[{role:"user",content:[{type:"input_text",text:"ping"}]}],max_output_tokens:1,stream:!1,store:!1}}]:p;for(let h of re(d))p.push({method:"GET",url:h,headers:x(t)});return p}var oe=["fact","preference","insight","lesson","decision","plan","event","pattern","context","procedure","general"],ae=new Set(oe),de=["equals","includes","excludes"],ce=new Set(de);function gt(e,t="general"){if(typeof e!="string")return t;let n=e.trim().toLowerCase().replace(/\s+/g,"_");return ae.has(n)?n:t}function mt(e,t="equals"){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return ce.has(n)?n:t}import{createHash as pe}from"node:crypto";import{resolve as le}from"node:path";function ge(e){return pe("sha256").update(le(e).toLowerCase()).digest("hex").slice(0,16)}var me=/[一-鿿]/;function D(e){let t=[],n=e.toLowerCase().match(/[\p{L}\p{N}_]+/gu)??[];for(let o of n){let d="",m=!1,c=()=>{if(d){if(m){d.length===1&&t.push(d);for(let p=0;p+1<d.length;p++)t.push(d.slice(p,p+2))}else t.push(d);d=""}};for(let p of o){let h=me.test(p);d&&h!==m&&c(),m=h,d+=p}c()}return t}function ue(e){return D(e).join(" ")}var j=["efficiency","dev","cloud","data","industrial","marketing","ecommerce","procurement","hr","accounting","finance","legal","lifestyle"],fe={efficiency:"\u529E\u516C\u534F\u4F5C",dev:"\u5F00\u53D1\u7F16\u7A0B",cloud:"\u4E91\u4E0E\u8FD0\u7EF4",data:"\u6570\u636E\u5206\u6790",industrial:"\u5DE5\u4E1A\u81EA\u52A8\u5316",marketing:"\u8425\u9500\u9500\u552E",ecommerce:"\u7535\u5546\u8FD0\u8425",procurement:"\u91C7\u8D2D\u4F9B\u5E94\u94FE",hr:"\u4EBA\u529B\u884C\u653F",accounting:"\u8D22\u52A1\u4F1A\u8BA1",finance:"\u91D1\u878D\u6295\u8D44",legal:"\u6CD5\u52A1\u5408\u89C4",lifestyle:"\u4E2A\u4EBA\u751F\u6D3B"},ye=new Set(j);function Ie(e){return typeof e=="string"&&ye.has(e)}var k=":";function bt(e){for(let[t,n]of[["kind",e.kind],["owner",e.owner],["name",e.name]])if(n.includes(k))throw new Error(`memberKey: field "${t}" contains reserved separator "${k}": ${n}`);return`${e.kind}${k}${e.owner}${k}${e.name}${k}${e.seq}`}function kt(e,t){return e.kind===t.kind&&e.owner===t.owner&&e.name===t.name&&e.seq===t.seq}var Pt=["CANCELLED","PROCESS_EXIT","HEARTBEAT_TIMEOUT","TURN_TIMEOUT","PROTOCOL_MISMATCH","UNKNOWN"],Rt=[["onboarding-v1","preference"],["onboarding-v1","boundary"],["onboarding-v1","workspace"],["onboarding-v1","identity"]],Se=1,xt={request:"x/delegate",update:"x/delegate.update",respond:"x/delegate.respond",cancel:"x/delegate.cancel"},he=["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"],be=["initialize","getIndex","addToIndex","replaceInIndex","removeFromIndex","createFile","writeFile","readFile","deleteFile","listFiles","searchLocal"],ke=["getSkillSnapshot","readSkillFile","recordSkillInvocation","commitSkillMutation","applyCuratorPlan","prepareSkillInstall","finalizeSkillInstall"],Pe=["loadForResume","appendTranscript","updateTitle","saveState","saveTaskSummary","groupSplit"],Re=["commitTurnTelemetry","listDistillableFeedback","markFeedbackDistilled","runUploadSweep"],xe=["getSnapshot","create","switch","update"],Tt=1024*1024,Te=["resolveInstall","listResourceVersions"],Ae=["probeSession"],He=["list","get","diagnose"],Ce=["navigate","snapshot","click","type","screenshot","console","network"],At=["navigate","click","type"],Ht=["snapshot","screenshot","console","network"];function Ct(e){if(typeof e!="string")return!1;let t=/^preview:([1-9]\d*)$/.exec(e);return t!==null&&Number.isSafeInteger(Number(t[1]))}var we=["open","openWithCheckpoint","recordEvent","checkpoint","get","list","delete","getCheckpoint","listCheckpoints","restoreCheckpoint"],Me=["getTunables","updateTunable","clearTunable","appendDirectoryAllowRule"],wt={request:"x/host.request"},H=new Set(["memory","projectMemory","profile","preview","capability","session","feedback","project","runState","provider","community","cloudAuth"]),_e=new Set(he),Ee=new Set(be),Oe=new Set(Me),De=new Set(ke),je=new Set(Pe),Fe=new Set(Re),Ne=new Set(xe),Le=new Set(we),qe=new Set(He),Ue=new Set(Te),Be=new Set(Ae),Ve=new Set(Ce);function s(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function R(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function q(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string")}function Ke(e){return s(e)?typeof e.name=="string"&&e.name.length>0&&(e.state==="active"||e.state==="stale"||e.state==="archived")&&typeof e.createdAt=="string"&&typeof e.pinned=="boolean"&&typeof e.useCount=="number"&&Number.isFinite(e.useCount)&&(e.source==="learned"||e.source==="created"||e.source==="installed"||e.source==="promoted")&&q(e,["lastUsedAt","lastViewedAt","lastPatchedAt","staleAt","archivedAt","resourceType","artifactDigest","contentTreeDigest","registryResourceId","registryVersion","registryKeptSignalAt","routingSummary","capabilityClass"])&&["launcherRequired","manualReviewRequired"].every(t=>e[t]===void 0||typeof e[t]=="boolean")&&["positiveCount","negativeCount"].every(t=>e[t]===void 0||typeof e[t]=="number"&&Number.isFinite(e[t]))&&["sourceTier","registrySourceTier"].every(t=>e[t]===void 0||e[t]==="official"||e[t]==="community")&&["riskTier","registryRiskTier","registryEffectiveRiskTier"].every(t=>e[t]===void 0||e[t]==="R0"||e[t]==="R1"||e[t]==="R2"||e[t]==="R3"):!1}function Ye(e){return s(e)?r(e,["name","filePath","baseDir","fileRevision","globallyDisabled","projectDisabled","active","systemGenerated","description","version","category","author","environments","source","registryVersion"])&&typeof e.name=="string"&&e.name.length>0&&typeof e.filePath=="string"&&e.filePath.length>0&&typeof e.baseDir=="string"&&e.baseDir.length>0&&typeof e.fileRevision=="string"&&e.fileRevision.length>0&&typeof e.globallyDisabled=="boolean"&&typeof e.projectDisabled=="boolean"&&typeof e.active=="boolean"&&typeof e.systemGenerated=="boolean"&&q(e,["description","version","category","author","registryVersion"])&&(e.source===void 0||e.source==="learned"||e.source==="created"||e.source==="installed"||e.source==="promoted")&&(e.environments===void 0||R(e.environments)):!1}function ze(e){return s(e)&&r(e,["name","skills","filePath"])&&typeof e.name=="string"&&e.name.length>0&&R(e.skills)&&typeof e.filePath=="string"&&e.filePath.length>0}function Mt(e){return!s(e)||typeof e.revision!="string"||e.revision.length===0?!1:e.notModified===!0?r(e,["revision","notModified"]):e.notModified!==!1||!r(e,["revision","notModified","skills","lifecycle","bundles"])?!1:Array.isArray(e.skills)&&e.skills.every(Ye)&&Array.isArray(e.lifecycle)&&e.lifecycle.every(Ke)&&Array.isArray(e.bundles)&&e.bundles.every(ze)}function _t(e){return s(e)&&r(e,["name","relativePath","content","baseDir","revision"])&&typeof e.name=="string"&&e.name.length>0&&typeof e.relativePath=="string"&&e.relativePath.length>0&&typeof e.content=="string"&&typeof e.baseDir=="string"&&e.baseDir.length>0&&typeof e.revision=="string"&&e.revision.length>0}function Et(e){return s(e)&&r(e,["name","lastUsedAt","useCount","positiveCount","negativeCount"])&&u(e.name)&&typeof e.lastUsedAt=="string"&&e.lastUsedAt.length>0&&["useCount","positiveCount","negativeCount"].every(t=>typeof e[t]=="number"&&Number.isFinite(e[t])&&e[t]>=0)}function Ot(e){return!s(e)||!u(e.name)||typeof e.kind!="string"?!1:e.kind==="create"||e.kind==="editContent"||e.kind==="editSupportingFile"?r(e,["kind","name","revision","changed"])&&typeof e.revision=="string"&&e.revision.length>0&&e.changed===!0:e.kind==="delete"?r(e,["kind","name","deleted"])&&e.deleted===!0:e.kind==="setGlobalDisabled"||e.kind==="setProjectDisabled"?r(e,["kind","name","disabled","changed"])&&typeof e.disabled=="boolean"&&typeof e.changed=="boolean":e.kind==="setPinned"?r(e,["kind","name","pinned","changed"])&&typeof e.pinned=="boolean"&&typeof e.changed=="boolean":e.kind==="promote"?r(e,["kind","name","promoted","changed"])&&e.promoted===!0&&typeof e.changed=="boolean":!1}function Ge(e,t){return e==="active"&&t==="stale"||e==="stale"&&(t==="archived"||t==="active")||e==="archived"&&t==="active"}function U(e){return s(e)&&r(e,["name","from","to"])&&u(e.name)&&Ge(e.from,e.to)}function Dt(e){return s(e)&&r(e,["revision","changed","transitioned"])&&typeof e.revision=="string"&&e.revision.length>0&&typeof e.changed=="boolean"&&Array.isArray(e.transitioned)&&e.transitioned.every(U)}function jt(e){return s(e)&&r(e,["installationId","artifactPath","contentDir","expiresAt"])&&["installationId","artifactPath","contentDir","expiresAt"].every(t=>typeof e[t]=="string"&&e[t].length>0)}function Ft(e){return s(e)?e.action==="discard"?r(e,["action","discarded"])&&e.discarded===!0:e.action==="adopt"&&r(e,["action","resourceId","version","skillName","installDir","checksum","replaced"])&&u(e.resourceId)&&e.skillName===e.resourceId&&typeof e.version=="string"&&e.version.length>0&&typeof e.installDir=="string"&&e.installDir.length>0&&typeof e.checksum=="string"&&/^[a-f0-9]{64}$/.test(e.checksum)&&typeof e.replaced=="boolean":!1}function r(e,t){let n=new Set(t);return Object.keys(e).every(o=>n.has(o))}function S(e,t){return e[t]===void 0||typeof e[t]=="string"}function g(e,t){return e[t]===void 0||typeof e[t]=="string"&&e[t].trim().length>0}function u(e){return typeof e=="string"&&/^[A-Za-z0-9_.-]+$/.test(e)&&e!=="."&&e!==".."}function B(e){return typeof e!="string"||e.trim()!==e||e.length===0||e.includes("\0")||/^(?:[A-Za-z]:[\\/]|[\\/])/.test(e)?!1:e.split(/[\\/]/).every(n=>n.length>0&&n!=="."&&n!=="..")}function F(e){return B(e)&&e.toLowerCase()!=="skill.md"}function $e(e,t){if(!s(t))return!1;if(e==="getSkillSnapshot")return r(t,["projectId","knownRevision"])&&g(t,"projectId")&&g(t,"knownRevision");if(e==="readSkillFile")return r(t,["name","relativePath","expectedRevision"])&&u(t.name)&&(t.relativePath===void 0||B(t.relativePath))&&g(t,"expectedRevision");if(e==="commitSkillMutation"){if(!r(t,["mutation"])||!s(t.mutation))return!1;let n=t.mutation;return!u(n.name)||typeof n.kind!="string"?!1:n.kind==="create"?!r(n,["kind","name","content","source","supportingFile"])||typeof n.content!="string"||n.source!==void 0&&n.source!=="created"&&n.source!=="learned"?!1:n.supportingFile===void 0?!0:s(n.supportingFile)&&r(n.supportingFile,["relativePath","content"])&&F(n.supportingFile.relativePath)&&typeof n.supportingFile.content=="string":n.kind==="editContent"?r(n,["kind","name","expectedRevision","content"])&&typeof n.expectedRevision=="string"&&n.expectedRevision.length>0&&typeof n.content=="string":n.kind==="editSupportingFile"?r(n,["kind","name","relativePath","expectedRevision","content"])&&F(n.relativePath)&&(n.expectedRevision===null||typeof n.expectedRevision=="string"&&n.expectedRevision.length>0)&&typeof n.content=="string":n.kind==="delete"?r(n,["kind","name"]):n.kind==="setGlobalDisabled"?r(n,["kind","name","disabled"])&&typeof n.disabled=="boolean":n.kind==="setProjectDisabled"?r(n,["kind","name","projectId","disabled"])&&typeof n.projectId=="string"&&n.projectId.length>0&&typeof n.disabled=="boolean":n.kind==="setPinned"?r(n,["kind","name","pinned"])&&typeof n.pinned=="boolean":n.kind==="promote"?r(n,["kind","name"]):!1}if(e==="applyCuratorPlan"){if(!r(t,["expectedRevision","transitions"])||typeof t.expectedRevision!="string"||t.expectedRevision.length===0||!Array.isArray(t.transitions)||t.transitions.length>500||!t.transitions.every(U))return!1;let n=t.transitions.map(o=>o.name);return new Set(n).size===n.length}if(e==="prepareSkillInstall"){if(!r(t,["name","version","checksum","sizeBytes","allowReplace","replacementPolicy","provenance","manifestSchemaVersion","manifestDigest","requiredCapabilities","credentials","searchTerms","routingSummary","capabilityClass"])||!u(t.name)||typeof t.version!="string"||!t.version.trim()||typeof t.checksum!="string"||!/^[a-f0-9]{64}$/.test(t.checksum)||!Number.isSafeInteger(t.sizeBytes)||t.sizeBytes<=0||t.sizeBytes>20*1024*1024||typeof t.allowReplace!="boolean"||(t.allowReplace===!0?t.replacementPolicy!=="managed-unmodified"&&t.replacementPolicy!=="user-confirmed":t.replacementPolicy!==void 0)||!s(t.provenance)||t.manifestSchemaVersion!==18||typeof t.manifestDigest!="string"||!/^sha256:[a-f0-9]{64}$/.test(t.manifestDigest)||!Array.isArray(t.requiredCapabilities)||!t.requiredCapabilities.every(o=>s(o)&&r(o,["capabilityId","optional","reason"])&&typeof o.capabilityId=="string"&&/^[a-z][a-z0-9]*(?:[._:-][a-z0-9-]+)*$/u.test(o.capabilityId)&&(o.optional===void 0||typeof o.optional=="boolean")&&(o.reason===void 0||typeof o.reason=="string"&&o.reason.trim().length>0))||t.credentials!==void 0&&(!Array.isArray(t.credentials)||t.credentials.length>32||!t.credentials.every(o=>s(o)&&r(o,["key","label","envKey","placeholder","secret","helpUrl"])&&typeof o.key=="string"&&o.key.trim().length>0&&o.key.length<=128&&typeof o.label=="string"&&o.label.trim().length>0&&o.label.length<=256&&typeof o.envKey=="string"&&/^[A-Z][A-Z0-9_]*$/.test(o.envKey)&&(o.placeholder===void 0||typeof o.placeholder=="string"&&o.placeholder.length<=256)&&(o.secret===void 0||typeof o.secret=="boolean")&&(o.helpUrl===void 0||typeof o.helpUrl=="string"&&/^https:\/\/[^\s]+$/i.test(o.helpUrl))))||t.searchTerms!==void 0&&(!Array.isArray(t.searchTerms)||t.searchTerms.length>64||t.searchTerms.some(o=>typeof o!="string"||!o.trim()||o.length>256))||t.routingSummary!==void 0&&(typeof t.routingSummary!="string"||!t.routingSummary.trim()||t.routingSummary.length>256||/[\r\n]/u.test(t.routingSummary))||t.capabilityClass!==void 0&&(typeof t.capabilityClass!="string"||!/^[a-z][a-z0-9-]{0,63}$/u.test(t.capabilityClass))||!r(t.provenance,["sourceTier","resourceRiskTier","effectiveRiskTier"]))return!1;let n=o=>o==="R0"||o==="R1"||o==="R2"||o==="R3";return(t.provenance.sourceTier==="official"||t.provenance.sourceTier==="community")&&n(t.provenance.resourceRiskTier)&&n(t.provenance.effectiveRiskTier)}return e==="finalizeSkillInstall"?r(t,["installationId","action"])&&typeof t.installationId=="string"&&t.installationId.trim().length>0&&(t.action==="adopt"||t.action==="discard"):r(t,["name","success"])&&u(t.name)&&typeof t.success=="boolean"}function i(e){return typeof e=="string"&&e.trim()===e&&e.length>0&&e.length<=512&&!e.includes("\0")}function a(e){return Number.isSafeInteger(e)&&e>=0}function V(e){return e==="installed"||e==="auth_required"||e==="ready"||e==="disabled"||e==="incompatible"||e==="unresponsive"||e==="failed"||e==="not_installed"}function Xe(e){return V(e)&&e!=="not_installed"}function We(e){return!s(e)||!r(e,["providerId","state","stage","code","message","retryable","providerVersion","payloadVersion"])?!1:i(e.providerId)&&V(e.state)&&["install","manifest","auth","launch","initialize","models","native_sessions","request"].includes(String(e.stage))&&i(e.code)&&typeof e.message=="string"&&typeof e.retryable=="boolean"&&g(e,"providerVersion")&&g(e,"payloadVersion")}function N(e,t){return s(e)&&r(e,t)&&t.every(n=>typeof e[n]=="boolean")}function ve(e){return s(e)?e.kind==="provider"?r(e,["kind","enumeration"])&&(e.enumeration==="protocol"||e.enumeration==="implicit-default"):e.kind==="host"&&r(e,["kind","managedPurposes"])&&R(e.managedPurposes):!1}function K(e){if(!s(e)||!r(e,["providerId","displayName","version","state","capabilities","diagnostic"])||!i(e.providerId)||!i(e.displayName)||!i(e.version)||!Xe(e.state)||e.diagnostic!==void 0&&!We(e.diagnostic)||!s(e.capabilities)||!r(e.capabilities,["execution","auth","models","nativeSessions","diagnostics"]))return!1;let t=e.capabilities;return!N(t.execution,["streaming","approvals","cancellation","resume"])||!s(t.auth)||!r(t.auth,["modes","terminal","logout"])||!Array.isArray(t.auth.modes)||!t.auth.modes.every(n=>n==="account"||n==="userKey"||n==="managed")||typeof t.auth.terminal!="boolean"||typeof t.auth.logout!="boolean"||!ve(t.models)||!N(t.nativeSessions,["discover","transcript","resume"])?!1:s(t.diagnostics)&&r(t.diagnostics,["readiness","version","structuredErrors"])&&t.diagnostics.readiness===!0&&t.diagnostics.version===!0&&t.diagnostics.structuredErrors===!0}function Nt(e){return s(e)&&r(e,["revision","providers"])&&a(e.revision)&&Array.isArray(e.providers)&&e.providers.every(K)}function Lt(e){return s(e)&&r(e,["revision","provider"])&&a(e.revision)&&(e.provider===null||K(e.provider))}function I(e,t=0){return t>12?!1:e===null||typeof e=="string"||typeof e=="boolean"?!0:typeof e=="number"?Number.isFinite(e):Array.isArray(e)?e.length<=1e4&&e.every(n=>I(n,t+1)):!s(e)||Object.keys(e).length>1e3?!1:Object.values(e).every(n=>I(n,t+1))}function Qe(e){return e===void 0||R(e)}function Y(e){return s(e)&&r(e,["inputTokens","outputTokens","totalTokens"])&&["inputTokens","outputTokens","totalTokens"].every(t=>e[t]===void 0||a(e[t]))}function z(e){if(!s(e)||!r(e,["role","content","threadId","turnId","itemId","contextAnchors","tool_calls","tool_call_id","name","is_error","reasoning_content","toolReferences","thinkingBlocks","imageUrls","imageDetail","imagePixelLimit","videoUrls","contentBlocks","structuredContent","mcpMeta","mcpIsError","videoFps","audioFormat","audioUrls","fileIds","blocks","attachmentEntries","timestamp","usage","displayMetadata"])||e.role!=="system"&&e.role!=="user"&&e.role!=="assistant"&&e.role!=="tool"||e.content!==null&&typeof e.content!="string"||!["threadId","turnId","itemId","tool_call_id","name","reasoning_content","timestamp"].every(t=>S(e,t))||e.contextAnchors!==void 0&&(!Array.isArray(e.contextAnchors)||!e.contextAnchors.every(t=>s(t)&&r(t,["category","value"])&&["objective","acceptance","decision","constraint","task","blocker","artifact"].includes(String(t.category))&&typeof t.value=="string"))||e.is_error!==void 0&&typeof e.is_error!="boolean"||e.mcpIsError!==void 0&&typeof e.mcpIsError!="boolean"||e.contentBlocks!==void 0&&(!Array.isArray(e.contentBlocks)||!e.contentBlocks.every(t=>s(t)&&I(t)))||!["structuredContent","mcpMeta"].every(t=>e[t]===void 0||s(e[t])&&I(e[t]))||!["toolReferences","imageUrls","videoUrls","audioUrls"].every(t=>Qe(e[t]))||e.imageDetail!==void 0&&e.imageDetail!=="auto"&&e.imageDetail!=="low"&&e.imageDetail!=="high"&&e.imageDetail!=="xhigh"||e.audioFormat!==void 0&&e.audioFormat!=="mp3"&&e.audioFormat!=="wav"&&e.audioFormat!=="aac"&&e.audioFormat!=="m4a"||e.videoFps!==void 0&&(typeof e.videoFps!="number"||!Number.isFinite(e.videoFps)||e.videoFps<.2||e.videoFps>5)||e.tool_calls!==void 0&&(!Array.isArray(e.tool_calls)||!e.tool_calls.every(t=>s(t)&&r(t,["id","type","function"])&&i(t.id)&&t.type==="function"&&s(t.function)&&r(t.function,["name","arguments"])&&i(t.function.name)&&typeof t.function.arguments=="string"))||e.thinkingBlocks!==void 0&&(!Array.isArray(e.thinkingBlocks)||!e.thinkingBlocks.every(t=>s(t)&&r(t,["thinking","signature"])&&typeof t.thinking=="string"&&typeof t.signature=="string")))return!1;if(e.imagePixelLimit!==void 0){if(!s(e.imagePixelLimit))return!1;let t=e.imagePixelLimit;if(!r(t,["minPixels","maxPixels"])||!["minPixels","maxPixels"].every(n=>t[n]===void 0||a(t[n])))return!1}return e.fileIds!==void 0&&(!Array.isArray(e.fileIds)||!e.fileIds.every(t=>s(t)&&r(t,["id","mimeType","size"])&&i(t.id)&&S(t,"mimeType")&&(t.size===void 0||a(t.size))))||e.usage!==void 0&&!Y(e.usage)?!1:["blocks","attachmentEntries","displayMetadata"].every(t=>e[t]===void 0||I(e[t]))}function Je(e,t){if(!s(t))return!1;if(e==="loadForResume")return r(t,["sessionId","projectId","includeMessages"])&&i(t.sessionId)&&g(t,"projectId")&&(t.includeMessages===void 0||typeof t.includeMessages=="boolean");if(e==="appendTranscript")return r(t,["sessionId","turnId","messageId","sequence","message","usage","displayMetadata"])&&i(t.sessionId)&&i(t.turnId)&&i(t.messageId)&&a(t.sequence)&&z(t.message)&&(t.usage===void 0||Y(t.usage))&&(t.displayMetadata===void 0||I(t.displayMetadata));if(e==="updateTitle")return r(t,["sessionId","operationId","title"])&&i(t.sessionId)&&i(t.operationId)&&typeof t.title=="string"&&t.title.length<=2e3;if(e==="saveState"){if(!r(t,["sessionId","turnId","operationId","model","usage"])||!i(t.sessionId)||!i(t.turnId)||!i(t.operationId)||!S(t,"model")||!s(t.usage))return!1;let n=t.usage;return r(n,["turnCount","totalInputTokens","totalOutputTokens"])&&["turnCount","totalInputTokens","totalOutputTokens"].every(o=>a(n[o]))}return e==="saveTaskSummary"?r(t,["sessionId","operationId","summary","generatedAtTurn"])&&i(t.sessionId)&&i(t.operationId)&&typeof t.summary=="string"&&t.summary.length<=2e5&&a(t.generatedAtTurn):r(t,["sessionId","operationId","reason","expectedLastActiveAt","expectedTurnCount"])&&i(t.sessionId)&&i(t.operationId)&&(t.reason==="idle"||t.reason==="turn-limit")&&S(t,"expectedLastActiveAt")&&(t.expectedTurnCount===void 0||a(t.expectedTurnCount))}function qt(e){if(!s(e)||!r(e,["session"]))return!1;if(e.session===null)return!0;if(!s(e.session)||!r(e.session,["metadata","messages","corruptLines"])||!s(e.session.metadata))return!1;let t=e.session.metadata;return r(t,["sessionId","projectId","createdAt","lastActiveAt","turnCount","messageCount","type","title","agentId","model","taskSummary","carryoverSummary","previousSessionId","pinnedAt","archivedAt","sealedAt"])&&["sessionId","projectId","createdAt","lastActiveAt"].every(n=>i(t[n]))&&["turnCount","messageCount"].every(n=>a(t[n]))&&(t.type===void 0||t.type==="personal"||t.type==="group")&&["title","agentId","model","taskSummary","carryoverSummary","previousSessionId","pinnedAt","archivedAt","sealedAt"].every(n=>S(t,n))&&Array.isArray(e.session.messages)&&e.session.messages.every(z)&&(e.session.corruptLines===void 0||a(e.session.corruptLines))}function Ut(e){return s(e)&&r(e,["status","messageCount"])&&(e.status==="appended"||e.status==="duplicate"||e.status==="session-deleted")&&a(e.messageCount)}function Bt(e){return s(e)&&r(e,["status"])&&(e.status==="updated"||e.status==="duplicate"||e.status==="session-deleted")}function Vt(e){return s(e)&&r(e,["status","nextSessionId"])&&(e.status==="updated"||e.status==="duplicate"||e.status==="session-deleted")&&(e.nextSessionId===void 0||i(e.nextSessionId))}function Ze(e,t){if(!s(t)||!S(t,"viewId")||!g(t,"sessionId"))return!1;switch(e){case"navigate":return r(t,["url","viewId","sessionId"])&&typeof t.url=="string";case"click":return r(t,["ref","viewId","sessionId"])&&typeof t.ref=="string";case"type":return r(t,["ref","text","submit","viewId","sessionId"])&&typeof t.ref=="string"&&typeof t.text=="string"&&(t.submit===void 0||typeof t.submit=="boolean");case"snapshot":case"screenshot":case"console":case"network":return r(t,["viewId","sessionId"])}}function C(e,t){return e[t]===void 0||a(e[t])}function et(e){if(!s(e)||!r(e,["schemaVersion","launched","completed","failed","cancelled","backgroundCount","automaticDeliveryCount","byAgentType","decisionCounts","argumentCorrections","durationMs","tokenUsage"])||e.schemaVersion!==1)return!1;for(let t of["launched","completed","failed","cancelled","backgroundCount","automaticDeliveryCount"])if(!a(e[t]))return!1;return!s(e.byAgentType)||!r(e.byAgentType,["general","explore","plan","code","research","verify"])||!Object.values(e.byAgentType).every(a)||!s(e.decisionCounts)||!r(e.decisionCounts,["adopted","partiallyAdopted","rejected","unreported"])||!Object.values(e.decisionCounts).every(a)||!s(e.argumentCorrections)||!r(e.argumentCorrections,["roleAlias","promptAlias","backgroundAlias","agentValue","backgroundValue"])||!Object.values(e.argumentCorrections).every(a)||!s(e.durationMs)||!r(e.durationMs,["total","max"])||!a(e.durationMs.total)||!a(e.durationMs.max)?!1:s(e.tokenUsage)&&r(e.tokenUsage,["total"])&&a(e.tokenUsage.total)}function tt(e){if(!s(e)||!r(e,["model","provider","agentMode","sourceChannel","usage","toolSummary","fileContext","delegationSummary","capabilityContext"]))return!1;for(let t of["model","provider","sourceChannel"])if(e[t]!==void 0&&!i(e[t]))return!1;if(e.agentMode!==void 0&&!["chat","solo","product","workflow","unknown"].includes(String(e.agentMode))||e.usage!==void 0&&(!s(e.usage)||!r(e.usage,["inputTokens","outputTokens","totalTokens"])||!["inputTokens","outputTokens","totalTokens"].every(t=>C(e.usage,t))))return!1;if(e.toolSummary!==void 0){if(!s(e.toolSummary)||!r(e.toolSummary,["calledTools","failedTools","blockedTools"]))return!1;for(let t of["calledTools","failedTools","blockedTools"]){let n=e.toolSummary[t];if(!Array.isArray(n)||!n.every(i))return!1}}if(e.fileContext!==void 0&&(!s(e.fileContext)||!r(e.fileContext,["changedFileCount","changedPathsPreview","hasTurnFileChanges"])||!C(e.fileContext,"changedFileCount")||e.fileContext.changedPathsPreview!==void 0&&(!Array.isArray(e.fileContext.changedPathsPreview)||!e.fileContext.changedPathsPreview.every(i))||e.fileContext.hasTurnFileChanges!==void 0&&typeof e.fileContext.hasTurnFileChanges!="boolean")||e.delegationSummary!==void 0&&!et(e.delegationSummary))return!1;if(e.capabilityContext!==void 0){if(!s(e.capabilityContext)||!r(e.capabilityContext,["skillDirectoryProjected","skillDirectoryRevision","skillDirectoryChars"])||typeof e.capabilityContext.skillDirectoryProjected!="boolean")return!1;if(e.capabilityContext.skillDirectoryProjected){if(typeof e.capabilityContext.skillDirectoryRevision!="string"||!/^sha256:[a-f0-9]{64}$/.test(e.capabilityContext.skillDirectoryRevision)||!a(e.capabilityContext.skillDirectoryChars))return!1}else if(e.capabilityContext.skillDirectoryRevision!==void 0||e.capabilityContext.skillDirectoryChars!==void 0)return!1}return!0}function nt(e,t){return s(t)?e==="commitTurnTelemetry"?r(t,["projectId","sessionId","turnId","telemetry"])&&i(t.projectId)&&i(t.sessionId)&&i(t.turnId)&&tt(t.telemetry):e==="listDistillableFeedback"||e==="runUploadSweep"?r(t,["projectId"])&&i(t.projectId):r(t,["projectId","turnId","clusterKey","idempotencyKey"])&&i(t.projectId)&&i(t.turnId)&&i(t.clusterKey)&&i(t.idempotencyKey):!1}function rt(e,t){if(!s(t))return!1;if(e==="getSnapshot")return Object.keys(t).length===0;if(e==="switch")return r(t,["projectIdOrQuery"])&&i(t.projectIdOrQuery);if(e==="create"){let n=t.workspaceDir!==void 0||typeof t.name=="string"&&t.name!=="."&&t.name!==".."&&!/[\\/]/.test(t.name);return r(t,["name","workspaceDir","type","groupId"])&&i(t.name)&&n&&g(t,"workspaceDir")&&g(t,"groupId")&&(t.type===void 0||["personal","group","solo","product","automation"].includes(String(t.type)))}return!r(t,["projectId","planStatus","planAgents","planWinnerId","leaderSessionId","primaryWorkflowId"])||!i(t.projectId)||t.planStatus!==void 0&&!["creating","running","completed","failed","cancelled"].includes(String(t.planStatus))||t.planAgents!==void 0&&(!Array.isArray(t.planAgents)||!t.planAgents.every(i))?!1:["planWinnerId","leaderSessionId","primaryWorkflowId"].every(n=>g(t,n))}function st(e){if(!s(e)||!r(e,["schemaVersion","at","sequence","threadId","turnId","item"])||e.schemaVersion!==Se||!i(e.at)||!C(e,"sequence")||!i(e.threadId)||!i(e.turnId)||!s(e.item))return!1;let t=e.item;return r(t,["id","type","kind","domain","role","state","text","data"])&&i(t.id)&&["message","state","plan","task","checklist","budget","input_request","summary","tool_call","tool_result","artifact","receipt"].includes(String(t.type))&&i(t.kind)&&["chat","solo","product","goal","workflow","system"].includes(String(t.domain))&&["user","assistant","system","tool"].includes(String(t.role))&&["pending","in_progress","completed","failed","blocked","cancelled"].includes(String(t.state))&&(t.text===void 0||typeof t.text=="string")&&s(t.data)}function it(e,t){return!s(t)||!i(t.sessionId)?!1:e==="open"?r(t,["runId","kind","projectId","sessionId"])&&i(t.runId)&&i(t.projectId)&&(t.kind==="solo"||t.kind==="product"||t.kind==="goal"):e==="openWithCheckpoint"?r(t,["runId","kind","projectId","snapshot","checkpointId","sessionId"])&&i(t.runId)&&i(t.projectId)&&(t.kind==="solo"||t.kind==="product"||t.kind==="goal")&&g(t,"checkpointId")&&Object.prototype.hasOwnProperty.call(t,"snapshot")&&t.snapshot!==void 0:e==="recordEvent"?r(t,["runId","event","sessionId"])&&i(t.runId)&&st(t.event):e==="checkpoint"?r(t,["runId","checkpointId","snapshot","sessionId"])&&i(t.runId)&&g(t,"checkpointId")&&Object.prototype.hasOwnProperty.call(t,"snapshot")&&t.snapshot!==void 0:e==="list"?r(t,["projectId","kind","sessionId"])&&i(t.projectId)&&(t.kind===void 0||t.kind==="solo"||t.kind==="product"||t.kind==="goal"):e==="getCheckpoint"||e==="restoreCheckpoint"?r(t,["runId","checkpointId","sessionId"])&&i(t.runId)&&i(t.checkpointId):e==="listCheckpoints"?r(t,["runId","sessionId"])&&i(t.runId):(e==="get"||e==="delete")&&r(t,["runId","sessionId"])&&i(t.runId)}function L(e){return typeof e=="string"&&/^[a-z0-9][a-z0-9._-]*\.md$/i.test(e)&&e!=="INDEX.md"&&!e.includes("..")&&!e.includes("/")&&!e.includes("\\")}function ot(e,t){return!s(t)||typeof t.sessionId!="string"||t.sessionId.trim().length===0?!1:e==="initialize"||e==="getIndex"||e==="listFiles"?r(t,["sessionId"]):e==="addToIndex"?r(t,["sessionId","content"])&&typeof t.content=="string"&&t.content.length>0:e==="replaceInIndex"?r(t,["sessionId","oldText","newText"])&&typeof t.oldText=="string"&&t.oldText.length>0&&typeof t.newText=="string"&&t.newText.length>0:e==="removeFromIndex"?r(t,["sessionId","oldText"])&&typeof t.oldText=="string"&&t.oldText.length>0:e==="createFile"||e==="writeFile"?r(t,["sessionId","name","content"])&&L(t.name)&&typeof t.content=="string":e==="readFile"||e==="deleteFile"?r(t,["sessionId","name"])&&L(t.name):e==="searchLocal"&&r(t,["sessionId","query"])&&typeof t.query=="string"&&t.query.length>0}function Kt(e){if(!s(e)||!r(e,["service","method","params","sessionId"])||typeof e.service!="string"||!H.has(e.service)||typeof e.method!="string"||e.method.length===0)return!1;if(e.service==="memory")return _e.has(e.method)&&Array.isArray(e.params)&&(e.sessionId===void 0||i(e.sessionId));if(e.sessionId!==void 0)return!1;if(e.service==="projectMemory")return Ee.has(e.method)&&ot(e.method,e.params);if(e.service==="profile"){if(!Oe.has(e.method)||!Array.isArray(e.params))return!1;switch(e.method){case"getTunables":return e.params.length===0;case"updateTunable":return e.params.length===2&&typeof e.params[0]=="string"&&e.params[0].trim().length>0&&e.params[1]!==void 0;case"clearTunable":case"appendDirectoryAllowRule":return e.params.length===1&&typeof e.params[0]=="string"&&e.params[0].trim().length>0}}return e.service==="capability"?De.has(e.method)&&$e(e.method,e.params):e.service==="session"?je.has(e.method)&&Je(e.method,e.params):e.service==="feedback"?Fe.has(e.method)&&nt(e.method,e.params):e.service==="project"?Ne.has(e.method)&&rt(e.method,e.params):e.service==="runState"?Le.has(e.method)&&it(e.method,e.params):e.service==="provider"?!qe.has(e.method)||!Array.isArray(e.params)?!1:e.method==="list"?e.params.length===0:e.params.length===1&&i(e.params[0]):e.service==="community"?!Ue.has(e.method)||!s(e.params)?!1:e.method==="resolveInstall"?r(e.params,["resourceId","version"])&&i(e.params.resourceId)&&g(e.params,"version"):e.method==="listResourceVersions"?r(e.params,["resourceId"])&&i(e.params.resourceId):r(e.params,["id","platform"])&&i(e.params.id)&&i(e.params.platform):e.service==="cloudAuth"?Be.has(e.method)&&e.method==="probeSession"&&s(e.params)&&Object.keys(e.params).length===0:Ve.has(e.method)?Ze(e.method,e.params):!1}function Yt(e){return s(e)&&r(e,["ok"])&&e.ok===!0}function zt(e){return!s(e)||!r(e,["events"])||!Array.isArray(e.events)?!1:e.events.every(t=>s(t)&&r(t,["feedbackId","rating","reason","state","sessionId","turnId"])&&i(t.feedbackId)&&(t.rating==="up"||t.rating==="down")&&(t.reason===void 0||["missed_requirement","incomplete","broken_file_link_or_panel","code_or_test_failed","factually_wrong","too_verbose","too_short","wrong_style","other"].includes(String(t.reason)))&&t.state==="active"&&i(t.sessionId)&&i(t.turnId))}function Gt(e){return s(e)&&r(e,["ok","updated"])&&e.ok===!0&&typeof e.updated=="boolean"}function $t(e){return s(e)&&r(e,["uploaded","queued","retried","exhausted"])&&["uploaded","queued","retried","exhausted"].every(t=>a(e[t]))}function G(e){return!s(e)||!r(e,["id","name","workspaceDir","type","status","groupId","createdAt","updatedAt","planStatus","planAgents","planWinnerId","leaderSessionId","primaryWorkflowId"])||!i(e.id)||!i(e.name)||!i(e.workspaceDir)||!["default","personal","group","solo","product","automation"].includes(String(e.type))||e.status!=="active"&&e.status!=="archived"||!i(e.createdAt)||!i(e.updatedAt)||!["groupId","planWinnerId","leaderSessionId","primaryWorkflowId"].every(t=>g(e,t))||e.planStatus!==void 0&&!["creating","running","completed","failed","cancelled"].includes(String(e.planStatus))?!1:e.planAgents===void 0||Array.isArray(e.planAgents)&&e.planAgents.every(i)}function Xt(e){return s(e)&&r(e,["activeProjectId","projects"])&&(e.activeProjectId===null||i(e.activeProjectId))&&Array.isArray(e.projects)&&e.projects.every(G)}function Wt(e){return s(e)&&r(e,["ok","project","deduplicated"])&&e.ok===!0&&G(e.project)&&(e.deduplicated===void 0||typeof e.deduplicated=="boolean")}function vt(e,t){return!s(e)||e.version!==1||!Array.isArray(e.services)||typeof t!="string"||!H.has(t)||!e.services.every(n=>typeof n=="string"&&H.has(n))?!1:e.services.includes(t)}export{xt as DELEGATE_WIRE_METHODS,ke as HOST_CAPABILITY_PROXY_METHODS,Ae as HOST_CLOUD_AUTH_PROXY_METHODS,Te as HOST_COMMUNITY_PROXY_METHODS,Re as HOST_FEEDBACK_PROXY_METHODS,he as HOST_MEMORY_PROXY_METHODS,Me as HOST_PROFILE_PROXY_METHODS,be as HOST_PROJECT_MEMORY_PROXY_METHODS,xe as HOST_PROJECT_PROXY_METHODS,He as HOST_PROVIDER_PROXY_METHODS,wt as HOST_REQUEST_WIRE_METHODS,we as HOST_RUN_STATE_PROXY_METHODS,Pe as HOST_SESSION_PROXY_METHODS,Tt as HOST_SKILL_FILE_MAX_BYTES,j as HUB_SKILL_CATEGORIES,fe as HUB_SKILL_CATEGORY_LABELS,Pt as LIFECYCLE_CODES,oe as LONG_TERM_MEMORY_CATEGORIES,de as MEMORY_CLAIM_RELATIONS,Rt as MEMORY_RESIDENT_TAG_GROUPS,Zt as MODEL_PURPOSES,Ce as PREVIEW_BROWSER_ACTIONS,At as PREVIEW_BROWSER_MUTATION_ACTIONS,Ht as PREVIEW_BROWSER_READ_ACTIONS,Se as THREAD_ITEM_PROTOCOL_VERSION,pt as buildProviderValidationProbes,ge as deriveProjectId,We as isHostAgentProviderDiagnostic,Lt as isHostAgentProviderGetResult,Nt as isHostAgentProviderListResult,K as isHostAgentProviderSnapshot,Dt as isHostApplyCuratorPlanResult,zt as isHostDistillableFeedbackResult,Yt as isHostFeedbackCommitResult,Gt as isHostFeedbackMarkResult,$t as isHostFeedbackSweepResult,Ft as isHostFinalizeSkillInstallResult,jt as isHostPrepareSkillInstallResult,Wt as isHostProjectMutationResult,Xt as isHostProjectSnapshotResult,Kt as isHostRequestParams,Ut as isHostSessionAppendResult,Q as isHostSessionCollectionDelta,v as isHostSessionCollectionSnapshot,Vt as isHostSessionGroupSplitResult,qt as isHostSessionLoadForResumeResult,Bt as isHostSessionMutationResult,_t as isHostSkillFileResponse,Et as isHostSkillInvocationResult,Ot as isHostSkillMutationResult,Mt as isHostSkillSnapshotResponse,Ie as isHubSkillCategory,W as isNativeTranscript,Ct as isPreviewTargetKey,ct as isProviderProbeEndpointUnavailable,dt as listSettingsProviderOptions,kt as memberEquals,bt as memberKey,gt as normalizeLongTermMemoryCategory,mt as normalizeMemoryClaimRelation,T as providerCatalogBaseUrl,O as providerCatalogDisplayName,D as segmentForFts,ue as segmentTextForFts,vt as supportsHostRequestService};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function t(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function s(e,r){let o=new Set(r);return Object.keys(e).every(f=>o.has(f))}function n(e){return typeof e=="string"&&e.trim()===e&&e.length>0&&e.length<=512&&!e.includes("\0")}function i(e){return Number.isSafeInteger(e)&&Number(e)>0}function d(e){return t(e)&&s(e,["agentId","projectId","nativeId"])&&n(e.agentId)&&n(e.projectId)&&n(e.nativeId)}function c(e){if(!t(e)||!s(e,["resourceId","canonicalSessionId","source","projectId","agentId","title","titleSource","lastActiveAt","pinnedAt","lifecycle","availableCommands","nativeRef"])||!n(e.resourceId)||!n(e.projectId)||!n(e.agentId)||!n(e.lastActiveAt)||e.source!=="host"&&e.source!=="native-unadopted"||e.source==="host"&&!n(e.canonicalSessionId)||e.source==="native-unadopted"&&!d(e.nativeRef)||e.canonicalSessionId!==void 0&&!n(e.canonicalSessionId)||e.nativeRef!==void 0&&!d(e.nativeRef))return!1;let r=new Set(["host.setPinned","host.rename","host.setArchived","host.deleteRecord"]);return!Array.isArray(e.availableCommands)||!e.availableCommands.every(o=>typeof o=="string"&&r.has(o))||new Set(e.availableCommands).size!==e.availableCommands.length||e.source==="native-unadopted"&&e.availableCommands.length>0||e.title!==void 0&&typeof e.title!="string"||e.pinnedAt!==void 0&&!n(e.pinnedAt)||e.titleSource!==void 0&&e.titleSource!=="prompt"&&e.titleSource!=="generated"&&e.titleSource!=="user"&&e.titleSource!=="native"&&e.titleSource!=="repaired"?!1:e.lifecycle==="active"||e.lifecycle==="archived"||e.lifecycle==="source-missing"||e.lifecycle==="resume-unavailable"}function a(e){return t(e)&&s(e,["agentId","projectId","code","message","lastGoodRevision"])&&n(e.agentId)&&n(e.projectId)&&n(e.code)&&typeof e.message=="string"&&e.message.length>0&&e.message.length<=2e4&&(e.lastGoodRevision===void 0||i(e.lastGoodRevision))}function p(e){return typeof e=="string"&&e.length>0&&!Number.isNaN(Date.parse(e))}function g(e){return t(e)&&s(e,["id","role","content","createdAt"])&&Object.prototype.hasOwnProperty.call(e,"content")&&(e.id===void 0||n(e.id))&&(e.role==="user"||e.role==="assistant"||e.role==="tool")&&(e.createdAt===void 0||p(e.createdAt))}function m(e){return t(e)&&s(e,["messages","diagnostics"])&&Array.isArray(e.messages)&&e.messages.every(g)&&(e.diagnostics===void 0||Array.isArray(e.diagnostics))}function S(e){return t(e)&&s(e,["revision","scopeGeneration","items","diagnostics"])&&i(e.revision)&&i(e.scopeGeneration)&&Array.isArray(e.items)&&e.items.every(c)&&Array.isArray(e.diagnostics)&&e.diagnostics.every(a)}function y(e){return t(e)&&s(e,["revision","scopeGeneration","addedOrUpdated","removed","diagnostics"])&&i(e.revision)&&i(e.scopeGeneration)&&(e.addedOrUpdated===void 0||Array.isArray(e.addedOrUpdated)&&e.addedOrUpdated.every(c))&&(e.removed===void 0||Array.isArray(e.removed)&&e.removed.every(n))&&(e.diagnostics===void 0||Array.isArray(e.diagnostics)&&e.diagnostics.every(a))}export{y as isHostSessionCollectionDelta,S as isHostSessionCollectionSnapshot,m as isNativeTranscript};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var n=["fact","preference","insight","lesson","decision","plan","event","pattern","context","procedure","general"],t=new Set(n),i=["equals","includes","excludes"],a=new Set(i);function s(e,r="general"){if(typeof e!="string")return r;let o=e.trim().toLowerCase().replace(/\s+/g,"_");return t.has(o)?o:r}function m(e,r="equals"){if(typeof e!="string")return r;let o=e.trim().toLowerCase();return a.has(o)?o:r}export{n as LONG_TERM_MEMORY_CATEGORIES,i as MEMORY_CLAIM_RELATIONS,s as normalizeLongTermMemoryCategory,m as normalizeMemoryClaimRelation};
|
package/dist/permissions.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var s=["default","auto","full_access"];var r=[{id:"default",label:"\u9ED8\u8BA4",summary:"\u5DE5\u4F5C\u533A",description:"\u5DE5\u4F5C\u533A\u5185\u81EA\u52A8\uFF1B\u8DE8\u533A/\u9AD8\u5371\u786E\u8BA4\u3002"},{id:"auto",label:"\u81EA\u52A8",summary:"\u5E38\u89C4",description:"\u5E38\u89C4\u64CD\u4F5C\u81EA\u52A8\uFF1B\u9AD8\u5371\u786E\u8BA4\u3002"},{id:"full_access",label:"\u5B8C\u5168\u8BBF\u95EE",summary:"\u5168\u653E\u884C",description:"\u672C\u8F6E\u5168\u90E8\u81EA\u52A8\uFF0C\u4E0D\u518D\u786E\u8BA4\u3002"}],i=["cross_workspace","high_risk_delete","high_risk_egress","destructive"];function n(e){return e==="cross_workspace"?[{optionId:"allow_dir",name:"\u5141\u8BB8\u6B64\u6587\u4EF6\u5939\uFF08\u672C\u6B21\u4F1A\u8BDD\u4E0D\u518D\u95EE\uFF09",kind:"allow_always",scope:"directory"},{optionId:"allow_dir_forever",name:"\u59CB\u7EC8\u5141\u8BB8\u6B64\u6587\u4EF6\u5939",kind:"allow_always",scope:"directory_persistent"},{optionId:"allow",name:"\u4EC5\u5141\u8BB8\u4E00\u6B21",kind:"allow_once",scope:"once"},{optionId:"deny",name:"\u62D2\u7EDD",kind:"reject_once"}]:e==="destructive"?[{optionId:"allow_dir",name:"\u5141\u8BB8\u6B64\u6587\u4EF6\u5939\uFF08\u672C\u6B21\u4F1A\u8BDD\u4E0D\u518D\u95EE\uFF09",kind:"allow_always",scope:"directory"},{optionId:"allow",name:"\u4EC5\u5141\u8BB8\u4E00\u6B21",kind:"allow_once",scope:"once"},{optionId:"deny",name:"\u62D2\u7EDD",kind:"reject_once"}]:[{optionId:"allow",name:e==="high_risk_egress"?"\u4ECD\u8981\u53D1\u9001":"\u5141\u8BB8\u4E00\u6B21",kind:"allow_once",scope:"once"},{optionId:"deny",name:"\u62D2\u7EDD",kind:"reject_once"}]}function t(){let e=Object.fromEntries(i.map(o=>[o,n(o)]));return{modes:r,promptOptions:e}}export{s as PERMISSION_MODES,t as buildPermissionModel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as r from"node:fs";import*as t from"node:path";import{execFile as h}from"node:child_process";import{promisify as y}from"node:util";function N(e){return/(?:^|[\\/])node(?:\.exe)?$/i.test(e)}function k(){let e=process.env.XIAOZHICLAW_NODE_EXE,n=process.env.XIAOZHICLAW_NPM_CLI;if(!e||!n)return null;if(!N(e))throw new Error("XIAOZHICLAW_NODE_EXE must reference the Host-vetted standard Node executable");return{nodeExe:e,npmCli:n,prefix:process.env.XIAOZHICLAW_NPM_GLOBAL_PREFIX||void 0}}function E(e){let n={...process.env};return delete n.ELECTRON_RUN_AS_NODE,e.prefix&&(n.npm_config_prefix=e.prefix),n}function w(e,n){return e?{file:e.nodeExe,argv:[e.npmCli,...n],env:E(e)}:{file:"npm",argv:n}}function S(e){if(!t.isAbsolute(e))throw new Error("marketplace compute requires an absolute gateway stageDir");let n=t.resolve(e);if(!r.statSync(n).isDirectory())throw new Error(`marketplace compute stageDir is not a directory: ${n}`);return n}async function A(e,n,d={}){let i=e.specifier.trim();if(!i||i.includes("\0"))throw new Error("marketplace compute requires a non-empty npm specifier");let c=S(e.stageDir),a=t.join(c,"content");if(r.existsSync(a))throw new Error(`marketplace compute content stage already exists: ${a}`);let u=d.execFile??y(h),g=(d.resolveNpm??k)(),f=e.version?`${i}@${e.version}`:i,l=w(g,["pack",f,"--pack-destination",c]),p=(await u(l.file,l.argv,{cwd:c,timeout:6e4,windowsHide:!0,...l.env?{env:l.env}:{}})).stdout.trim().split(/\r?\n/).at(-1)?.trim();if(!p||t.basename(p)!==p||!p.endsWith(".tgz"))throw new Error(`marketplace compute npm pack returned an invalid artifact name for ${f}`);let v=t.join(c,p);r.mkdirSync(a);try{await u("tar",["xzf",v,"-C",a,"--strip-components=1"],{cwd:c,timeout:3e4,windowsHide:!0})}finally{try{r.unlinkSync(v)}catch{}}let x=t.join(a,"package.json"),s;try{s=JSON.parse(r.readFileSync(x,"utf8"))}catch(o){throw new Error(`marketplace compute unpacked package has no valid package.json: ${o instanceof Error?o.message:String(o)}`)}if(s.name!==i)throw new Error(`marketplace compute package identity mismatch: requested ${i}, unpacked ${String(s.name)}`);if(typeof s.version!="string"||!s.version.trim())throw new Error("marketplace compute unpacked package has no version");let m=w(g,["install","--production","--no-save"]);try{await u(m.file,m.argv,{cwd:a,timeout:12e4,windowsHide:!0,...m.env?{env:m.env}:{}})}catch(o){throw n.warn(`[marketplace] npm install for ${i} failed; staged plugin may be incomplete: ${o instanceof Error?o.message:String(o)}`),o}return n.info(`[marketplace] staged ${i}@${s.version} for gateway adoption`),{name:i,version:s.version,contentDir:a}}export{w as resolveNpmExec,A as stageMarketplaceNpmPlugin};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import{readFile as _,readdir as et,unlink as rt,stat as nt,mkdir as Ut}from"node:fs/promises";import{existsSync as p,readFileSync as it,mkdirSync as st,writeFileSync as At}from"node:fs";import{join as f}from"node:path";import{resolve as xt}from"node:path";import{join as wt}from"node:path";import{homedir as gt}from"node:os";import{join as g}from"node:path";import{existsSync as zt}from"node:fs";import{createHash as ut}from"node:crypto";import{resolve as lt}from"node:path";function A(r){return ut("sha256").update(lt(r).toLowerCase()).digest("hex").slice(0,16)}var O=".qlogicagent";function j(){return process.env.QLOGICAGENT_HOME||g(gt(),O)}function S(){let r=process.env.QLOGIC_LLMROUTER_USER_ID?.trim();if(r)return r;let t=process.env.QLOGIC_IMPLICIT_OWNER_ID?.trim();if(t)return t;let e=process.env.QLOGIC_DEVICE_ID?.trim();return e?`oc_${e}`:"oc_local"}function ft(r){let t=r.trim();if(!t)throw new Error("ownerUserId is required for profile-scoped storage");return encodeURIComponent(t).replace(/\./g,"%2E")}function $(r=S()){return g(j(),"profiles",ft(r))}function W(r=S()){return g($(r),"memory")}var dt="projectData";function X(){return g(j(),dt)}function b(r){if(!r)throw new Error("getProjectDataDirById: projectId is required");return g(X(),r)}function T(){return g(j(),"plugins")}function B(){return g($(),"settings.json")}function G(){return g(j(),"plugin-cache")}function J(){return g(j(),"marketplace.json")}function v(r){if(!r)throw new Error("getProjectAgentDir: cwd is required (must not fall back to process.cwd())");return g(r,O)}function q(r){return g(v(r),"plugins")}function z(r){return g(v(r),"settings.json")}function Q(r){return g(v(r),"INSTRUCTIONS.md")}function V(r){return g(v(r),"rules")}import{resolve as Yt}from"node:path";var mt=()=>{},M;function K(){if(pt(),!M)throw new Error("host project authority negotiated but snapshot is not hydrated");return{activeProjectId:M.activeProjectId,projects:M.projects.map(r=>({...r}))}}function pt(){let r=mt();if(!r)throw new Error("gateway project authority is not available");return r}function ht(){let r=K();return{activeProjectId:r.activeProjectId,projects:r.projects.map(t=>({...t}))}}function Z(r){return ht().projects.find(t=>t.id===r)??null}function It(r){return Z(r)?r:A(r)}function jt(r){return b(It(r))}function Y(r){return wt(jt(r),"sessions")}var F=class{constructor(t={}){this.options=t}options;lastActiveWorkdir=null;getActiveProjectRoot(){return this.options.getActiveProjectRoot?.()??process.cwd()}setActiveWorkdir(t){let e=xt(t);this.lastActiveWorkdir=e,this.options.setActiveWorkdir?.(e)}getActiveWorkdir(){return this.lastActiveWorkdir??this.getActiveProjectRoot()}resolveProjectDir(t){return this.options.resolveProjectDir?.(t)}resolveActiveOwnerUserId(){return S()}getUserAgentHome(){return j()}getOwnerProfileDir(t){return $(t)}getProfileMemoryDir(t){return W(t)}getUserSettingsPath(){return B()}getUserPluginsDir(){return T()}getUserPluginCacheDir(){return G()}getUserMarketplaceConfigPath(){return J()}getProjectAgentDir(t=this.getActiveProjectRoot()){return v(t)}getProjectSettingsPath(t=this.getActiveProjectRoot()){return z(t)}getProjectInstructionsPath(t=this.getActiveProjectRoot()){return Q(t)}getProjectPluginsDir(t=this.getActiveProjectRoot()){return q(t)}getProjectRulesDir(t=this.getActiveProjectRoot()){return V(t)}getProjectSessionDataRoot(t=this.getActiveProjectRoot()){return Y(t)}},yt=new F;function tt(){return yt}import{readFile as ge,writeFile as vt,mkdir as Dt,rename as Et,unlink as kt}from"node:fs/promises";import{dirname as St,join as $t}from"node:path";import{randomUUID as Rt}from"node:crypto";async function D(r,t){let e=St(r);await Dt(e,{recursive:!0});let i=$t(e,`.tmp-${Rt()}`);try{await vt(i,t,"utf-8");let n;for(let o=0;o<3;o++)try{await Et(i,r);return}catch(s){if(n=s,s.code!=="EPERM")throw s;await new Promise(a=>setTimeout(a,50*(o+1)))}throw n}catch(n){throw await kt(i).catch(()=>{}),n}}var Nt=/[一-鿿]/;function R(r){let t=[],e=r.toLowerCase().match(/[\p{L}\p{N}_]+/gu)??[];for(let i of e){let n="",o=!1,s=()=>{if(n){if(o){n.length===1&&t.push(n);for(let a=0;a+1<n.length;a++)t.push(n.slice(a,a+2))}else t.push(n);n=""}};for(let a of i){let m=Nt.test(a);n&&m!==o&&s(),o=m,n+=a}s()}return t}var Ct=[/ignore\s+(previous|all|above|prior)\s+instructions/i,/you\s+are\s+now\s+/i,/do\s+not\s+tell\s+the\s+user/i,/system\s+prompt\s+override/i,/忽略(之前|以上|上面|前面|所有|全部)的?.{0,4}(指令|指示|提示|设定|规则)/,/你现在(是|就是|扮演)/,/不要(告诉|透露给?)用户/,/系统提示词?.{0,6}(覆盖|无效|作废|重写)/];function x(r){return!Ct.some(t=>t.test(r))}var u=12288,L=200,N=8192,bt="memory",I="INDEX.md";function Mt(r){return f(tt().getProjectAgentDir(r),bt)}var Ft=/^[a-z0-9][a-z0-9\-_.]*\.md$/i;function C(r){return!(!Ft.test(r)||r===I||r.includes("..")||r.includes("/")||r.includes("\\"))}function _t(r){return r.trim().match(/^([A-Za-z][A-Za-z0-9_-]{2,})\s*:/)?.[1]??null}function Lt(r,t){let e=r.split(`
|
|
2
|
-
`),i=[],n=!1;for(let o=0;o<e.length;o++){let s=e[o];if(Ht(s)&&s.includes(t)){for(n=!0;o+1<e.length&&at(e[o+1]);)o++;continue}i.push(s)}return n?i.join(`
|
|
3
|
-
`):null}function Ht(r){return r.trim()!==""&&!r.startsWith("#")&&!r.startsWith("<!--")&&!at(r)}function at(r){return r.startsWith(" ")||r.startsWith(" ")}var U=new Map;async function y(r,t){let e=U.get(r)??Promise.resolve(),i,n=new Promise(s=>{i=s}),o=e.catch(()=>{}).then(()=>n);U.set(r,o),await e.catch(()=>{});try{return await t()}finally{i(),U.get(r)===o&&U.delete(r)}}function Ot(r){return r.split(`
|
|
4
|
-
`).every(t=>{let e=t.trim();return e===""||e.startsWith("#")||e.startsWith("<!--")&&e.endsWith(">")})}var H=class{root;constructor(t){this.root=Mt(t)}getRootPath(){return this.root}ensureInitialized(){p(this.root)||st(this.root,{recursive:!0});let t=f(this.root,I);if(!p(t)){let e=["# Memory Index","","<!-- Host-managed project memory. Lines here are visible in the agent context.>","<!-- Use the Host project-memory capability to add notes or manage topic files.>","","## User Profile","","## Notes",""].join(`
|
|
5
|
-
`);Wt(t,e)}}getIndexForPrompt(){let t=f(this.root,I);if(!p(t))return"";let e;try{e=it(t,"utf-8")}catch(n){return n?.code!=="ENOENT"&&console.error(`[memdir] INDEX.md read failed \u2014 injected as empty this turn: ${n instanceof Error?n.message:String(n)}`),""}if(Ot(e))return"";let i=e.split(`
|
|
6
|
-
`);return i.length>L&&(e=i.slice(0,L).join(`
|
|
7
|
-
`)+`
|
|
8
|
-
|
|
9
|
-
<!-- INDEX.md truncated: ${i.length} lines total, showing first ${L}>`),Buffer.byteLength(e,"utf-8")>u&&(e=Buffer.from(e,"utf-8").subarray(0,u).toString("utf-8")+`
|
|
10
|
-
|
|
11
|
-
<!-- INDEX.md truncated at ${u} bytes>`),e}getIndexRaw(){let t=f(this.root,I);if(!p(t))return"";try{return it(t,"utf-8")}catch(e){return e?.code!=="ENOENT"&&console.error(`[memdir] INDEX.md read failed \u2014 treated as empty: ${e instanceof Error?e.message:String(e)}`),""}}getIndexUsage(){let t=this.getIndexRaw(),e=Buffer.byteLength(t,"utf-8"),i=t.split(`
|
|
12
|
-
`).length;return{chars:e,lines:i,percent:Math.round(e/u*100)}}async addToIndex(t){return t.trim()?x(t)?y(this.root,async()=>{let e=this.getIndexRaw(),i=e.endsWith(`
|
|
13
|
-
`)?e+t.trim()+`
|
|
14
|
-
`:e+`
|
|
15
|
-
`+t.trim()+`
|
|
16
|
-
`;if(Buffer.byteLength(i,"utf-8")>u){let o=this.autoCompactIndex(e,t.trim());if(o){await this.writeIndexUnlocked(o);let a=this.getIndexUsage();return{ok:!0,message:`Added to INDEX.md (auto-compacted old entries). [${a.chars}/${u} chars, ${a.percent}%]`,indexUsage:`${a.chars}/${u}`}}return{ok:!1,message:`INDEX.md would exceed limit (${this.getIndexUsage().chars}/${u} bytes) even after compaction. Create a topic file instead.`}}await this.writeIndexUnlocked(i);let n=this.getIndexUsage();return{ok:!0,message:`Added to INDEX.md. [${n.chars}/${u} chars, ${n.percent}%]`,indexUsage:`${n.chars}/${u}`}}):{ok:!1,message:"Content rejected: potential injection detected."}:{ok:!1,message:"Content cannot be empty."}}autoCompactIndex(t,e){let i=t.split(`
|
|
17
|
-
`),n=Buffer.byteLength(e+`
|
|
18
|
-
`,"utf-8"),o=u-n-64;if(o<256)return null;let s=l=>l.startsWith("#")||l.startsWith("<!--")||l.trim()==="",a=l=>l.startsWith(" ")||l.startsWith(" "),m=4,h=[...i],P=0;for(;Buffer.byteLength(h.join(`
|
|
19
|
-
`),"utf-8")>o&&P<i.length;){let l=h.findIndex((E,k)=>k>=m&&!s(E)&&!a(E));if(l===-1)break;let w=1;for(;l+w<h.length&&a(h[l+w]);)w++;h.splice(l,w),P++}let c=h.join(`
|
|
20
|
-
`),d=c.endsWith(`
|
|
21
|
-
`)?c+e+`
|
|
22
|
-
`:c+`
|
|
23
|
-
`+e+`
|
|
24
|
-
`;return Buffer.byteLength(d,"utf-8")<=u?d:null}async replaceInIndex(t,e){return t.trim()?e.trim()?x(e)?y(this.root,async()=>{let i=this.getIndexRaw(),n=i.split(t).length-1;if(n===0)return{ok:!1,message:`No match found for: "${t.slice(0,80)}"`};if(n>1)return{ok:!1,message:`Multiple matches (${n}) for: "${t.slice(0,80)}". Be more specific.`};let o=i.replace(t,e);if(Buffer.byteLength(o,"utf-8")>u)return{ok:!1,message:`Replacement would exceed INDEX.md limit (${Buffer.byteLength(o,"utf-8")}/${u} bytes).`};await this.writeIndexUnlocked(o);let s=this.getIndexUsage();return{ok:!0,message:`Replaced in INDEX.md. [${s.chars}/${u} chars]`,indexUsage:`${s.chars}/${u}`}}):{ok:!1,message:"Content rejected: potential injection detected."}:{ok:!1,message:"new_text cannot be empty. Use 'remove' to delete."}:{ok:!1,message:"old_text cannot be empty."}}async removeFromIndex(t){return t.trim()?y(this.root,async()=>{let e=this.getIndexRaw(),i=_t(t),n=i?Lt(e,i):null;if(n===null){if(!e.includes(t))return{ok:!1,message:`No match found for: "${t.slice(0,80)}"`};n=e.replace(t,"")}n=n.replace(/\n{3,}/g,`
|
|
25
|
-
|
|
26
|
-
`),await this.writeIndexUnlocked(n);let o=this.getIndexUsage();return{ok:!0,message:`Removed from INDEX.md. [${o.chars}/${u} chars]`,indexUsage:`${o.chars}/${u}`}}):{ok:!1,message:"old_text cannot be empty."}}async listFiles(){if(!p(this.root))return[];let t=await et(this.root),e=[];for(let i of t){if(i===I||!i.endsWith(".md"))continue;let n=f(this.root,i);try{let o=await nt(n);if(!o.isFile())continue;let a=(await _(n,"utf-8")).split(`
|
|
27
|
-
`).find(m=>m.trim()&&!m.startsWith("#"))?.trim();e.push({name:i,size:o.size,modifiedAt:o.mtime.toISOString(),preview:a?.slice(0,100)})}catch{}}return e.sort((i,n)=>n.modifiedAt.localeCompare(i.modifiedAt))}async createFile(t,e){if(!C(t))return{ok:!1,message:`Invalid filename: "${t}". Use kebab-case .md files (e.g. "project-notes.md").`};if(!x(e))return{ok:!1,message:"Content rejected: potential injection detected."};if(e.length>N)return{ok:!1,message:`Content too long (${e.length} chars, max ${N}).`};let i=f(this.root,t);if(p(i))return{ok:!1,message:`File already exists: "${t}". Use write_file to update.`};await this.ensureDir(),await D(i,e);let n=`- [${t}] \u2014 created ${new Date().toISOString().slice(0,10)}`;return{ok:!0,message:await this.appendIndexEntry(n)?`Created "${t}" (${e.length} chars). Entry added to INDEX.md.`:`Created "${t}" (${e.length} chars). WARNING: INDEX.md is full \u2014 the index entry was NOT added, so this file will not surface automatically. Remove stale INDEX.md entries, then add one for [${t}].`,file:t}}async writeFile(t,e){if(!C(t))return{ok:!1,message:`Invalid filename: "${t}". Use kebab-case .md files.`};if(!x(e))return{ok:!1,message:"Content rejected: potential injection detected."};if(e.length>N)return this.writeFileSplit(t,e);let i=f(this.root,t),n=!p(i);await this.ensureDir(),await D(i,e);let o=!0;if(n){let s=`- [${t}] \u2014 created ${new Date().toISOString().slice(0,10)}`;o=await this.appendIndexEntry(s)}return{ok:!0,message:`${n?"Created":"Updated"} "${t}" (${e.length} chars).`+(o?"":" WARNING: INDEX.md is full \u2014 no index entry was added, so this file will not surface automatically."),file:t}}async writeFileSplit(t,e){let i=t.replace(/\.md$/,""),n=e.split(/\n{2,}/),o=[],s="";for(let c of n)s.length+c.length+2>N*.9&&s.length>0?(o.push(s),s=c):s=s?s+`
|
|
28
|
-
|
|
29
|
-
`+c:c;s&&o.push(s);let a=[];for(let c=0;c<o.length;c++){let d=`${i}-${c+1}.md`,l=f(this.root,d);await this.ensureDir(),await D(l,o[c]),a.push(d)}let m=f(this.root,t);p(m)&&(await rt(m),await y(this.root,async()=>{let c=this.getIndexRaw(),d=new RegExp(`^.*\\[${ot(t)}\\].*$\\n?`,"m");d.test(c)&&await this.writeIndexUnlocked(c.replace(d,"").replace(/\n{3,}/g,`
|
|
30
|
-
|
|
31
|
-
`))}));let h=this.getIndexRaw(),P=0;for(let c of a)if(!h.includes(`[${c}]`)){let d=`- [${c}] \u2014 auto-split ${new Date().toISOString().slice(0,10)}`;await this.appendIndexEntry(d)||P++}return{ok:!0,message:`Auto-split "${t}" into ${o.length} parts (${e.length} chars total): ${a.join(", ")}`+(P>0?` WARNING: INDEX.md is full \u2014 ${P} part(s) got no index entry and will not surface automatically.`:""),file:a[0]}}async readFile(t){if(!C(t)&&t!==I)return{ok:!1,message:`Invalid filename: "${t}".`};let e=f(this.root,t);try{let i=await _(e,"utf-8");return{ok:!0,content:i,message:`Read "${t}" (${i.length} chars).`}}catch(i){return i.code==="ENOENT"?{ok:!1,message:`File not found: "${t}".`}:{ok:!1,message:`Error reading "${t}": ${i.message}`}}}async deleteFile(t){if(t===I)return{ok:!1,message:"Cannot delete INDEX.md. Use 'remove' to clear entries."};if(!C(t))return{ok:!1,message:`Invalid filename: "${t}".`};let e=f(this.root,t);return p(e)?(await rt(e),await y(this.root,async()=>{let i=this.getIndexRaw(),n=new RegExp(`^.*\\[${ot(t)}\\].*$\\n?`,"m");if(n.test(i)){let o=i.replace(n,"").replace(/\n{3,}/g,`
|
|
32
|
-
|
|
33
|
-
`);await this.writeIndexUnlocked(o)}}),{ok:!0,message:`Deleted "${t}" and removed INDEX.md entry.`,file:t}):{ok:!1,message:`File not found: "${t}".`}}async searchLocal(t){if(!p(this.root))return[];let e=Array.from(new Set(R(t)));if(e.length===0)return[];let i=await et(this.root),n=[];for(let o of i){if(!o.endsWith(".md")||o===I)continue;let s=f(this.root,o);try{let[a,m]=await Promise.all([_(s,"utf-8"),nt(s)]),h=new Set(R(a)),P=e.filter(w=>h.has(w)).length;if(P===0)continue;let c=a.split(`
|
|
34
|
-
`),d="",l=0;for(let w of c){let E=new Set(R(w)),k=e.filter(ct=>E.has(ct)).length;k>l&&(l=k,d=w.trim())}n.push({file:o,snippet:d.slice(0,200),score:P/e.length,mtimeMs:m.mtimeMs})}catch{}}return n.sort((o,s)=>s.score-o.score).slice(0,10)}async writeIndex(t){await y(this.root,()=>this.writeIndexUnlocked(t))}async writeIndexUnlocked(t){await this.ensureDir(),await D(f(this.root,I),t)}async ensureDir(){p(this.root)||await Ut(this.root,{recursive:!0})}async appendIndexEntry(t){return y(this.root,async()=>{let e=this.getIndexRaw();if(e.includes(t))return!0;let i=e.endsWith(`
|
|
35
|
-
`)?e+t+`
|
|
36
|
-
`:e+`
|
|
37
|
-
`+t+`
|
|
38
|
-
`;if(Buffer.byteLength(i,"utf-8")<=u)return await this.writeIndexUnlocked(i),!0;let n=this.autoCompactIndex(e,t);return n?(await this.writeIndexUnlocked(n),!0):(console.error(`[memdir] INDEX.md full \u2014 entry not added (file stays invisible to recall): ${t.slice(0,80)}`),!1)})}};function Wt(r,t){let e=f(r,"..");p(e)||st(e,{recursive:!0}),At(r,t,"utf-8")}function ot(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}export{H as Memdir,x as isMemoryContentSafe};
|
package/dist/protocol.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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 r=t.now??Date.now(),n=A(e),o=t.timeoutMs??n.defaultTimeoutMs;return{requestId:t.requestId??$(),createdAt:r,deadlineAt:r+o,channel:t.channel??n.channel,idempotencyKey:t.idempotencyKey,traceId:t.traceId}}function v(e,t=Date.now()){let r=e.meta;if(!r||typeof r!="object")return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta is required."}};if(typeof r.requestId!="string"||r.requestId.length===0)return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.requestId is required."}};if(r.channel!=="query"&&r.channel!=="task")return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.channel must be query or task."}};if(typeof r.createdAt!="number"||!Number.isFinite(r.createdAt))return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.createdAt is required."}};if(typeof r.deadlineAt!="number"||!Number.isFinite(r.deadlineAt))return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.deadlineAt is required."}};if(r.deadlineAt<=t)return{ok:!1,error:{code:l.REQUEST_DEADLINE_EXCEEDED,message:"RPC request deadline has already expired."}};let n=A(e.method).channel;return r.channel!==n?{ok:!1,error:{code:l.INVALID_REQUEST,message:`RPC request channel mismatch: expected ${n}, got ${r.channel}.`}}:M(e.method)&&(typeof r.idempotencyKey!="string"||r.idempotencyKey.length===0)?{ok:!1,error:{code:l.REQUEST_IDEMPOTENCY_REQUIRED,message:`RPC method ${e.method} requires meta.idempotencyKey.`}}:{ok:!0,meta:r}}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,r){let n=v({method:t,meta:r},this.now());if(!n.ok)return this.counters.invalidRequests+=1,{status:"rejected",error:n.error};if(r.idempotencyKey){let o=this.idempotency.get(r.idempotencyKey);if(o)return this.counters.dedupedRequests+=1,o.error?{status:"deduped",error:o.error}:{status:"deduped",result:o.result}}return this.active.set(r.requestId,{method:t,meta:r,cancelled:!1,startedAt:this.now()}),{status:"started"}}cancel(t,r="cancelled"){let n=this.active.get(t);return!n||n.cancelled?!1:(n.cancelled=!0,n.cancelReason=r,this.counters.cancelledRequests+=1,!0)}expire(t){return this.active.get(t)?(this.active.delete(t),this.counters.deadlineExceededRequests+=1,!0):!1}settle(t,r,n){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:r,error:n,settledAt:this.now()}),{accepted:!0})):{accepted:!1,reason:"unknown"}}metrics(){return{activeRequests:this.active.size,...this.counters}}};var re=["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"],ne=[...R,...b],w=ne;import{MODEL_PURPOSES as dr}from"@xiaozhiclaw/module-sdk/model-access";var ie=["fact","preference","insight","lesson","decision","plan","event","pattern","context","procedure","general"],Ct=new Set(ie),oe=["equals","includes","excludes"],xt=new Set(oe);import{createHash as wt}from"node:crypto";import{resolve as Nt}from"node:path";var O=["efficiency","dev","cloud","data","industrial","marketing","ecommerce","procurement","hr","accounting","finance","legal","lifestyle"];var Lt=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"],ce=["loadForResume","appendTranscript","updateTitle","saveState","saveTaskSummary","groupSplit"],pe=["commitTurnTelemetry","listDistillableFeedback","markFeedbackDistilled","runUploadSweep"],le=["getSnapshot","create","switch","update"],Gt=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 zt=new Set(se),Xt=new Set(ae),$t=new Set(Ae),Jt=new Set(de),Qt=new Set(ce),Zt=new Set(pe),er=new Set(le),tr=new Set(ye),rr=new Set(me),nr=new Set(ue),ir=new Set(ge),or=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"},he="xiaozhiclaw/permissionPresentation";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 Ee(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 ke(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,r)=>t.localeCompare(r))}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 _e(e){let{previous:t,update:r}=e;return!(r.syncMode==="diff"&&t&&(!r.baseSnapshotVersion||t.snapshotVersion===r.baseSnapshotVersion))||!t?f(r):{...f(t),snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,...r.gatewayVersion!==void 0?{gatewayVersion:r.gatewayVersion}:{},...r.syncMode?{syncMode:r.syncMode}:{},...r.baseSnapshotVersion?{baseSnapshotVersion:r.baseSnapshotVersion}:{},...r.changedSections?{changedSections:[...r.changedSections]}:{},...r.toolNamespaces?{toolNamespaces:[...r.toolNamespaces]}:{},...r.workspaceIds?{workspaceIds:[...r.workspaceIds]}:{},...r.installedCapabilities?{installedCapabilities:[...r.installedCapabilities]}:{},...r.enabledCapabilities?{enabledCapabilities:[...r.enabledCapabilities]}:{},...r.features?{features:[...r.features]}:{},...r.approvalMode?{approvalMode:r.approvalMode}:{},...r.toolManifests?{toolManifests:g(r.toolManifests)}:{},...r.skillManifests?{skillManifests:g(r.skillManifests)}:{},...r.pluginManifests?{pluginManifests:g(r.pluginManifests)}:{},...r.mcpManifests?{mcpManifests:g(r.mcpManifests)}:{},...r.approvalPolicy?{approvalPolicy:{...r.approvalPolicy}}:{},...r.workspaceSummaries?{workspaceSummaries:E(r.workspaceSummaries)}:{}}}function Ce(e){return U(e.map(t=>t.name.split(".")[0]??"").filter(Boolean))}function xe(e){return U(e.map(t=>t.id))}function Me(e){let{previous:t,current:r}=e;if(!t)return{...f(r),syncMode:"full"};if(t.snapshotVersion===r.snapshotVersion)return null;let n=h.filter(s=>JSON.stringify(t[s])!==JSON.stringify(r[s]));if(n.length===h.length)return{...f(r),syncMode:"full"};let o={snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,syncMode:"diff",baseSnapshotVersion:t.snapshotVersion,changedSections:n,toolNamespaces:[...r.toolNamespaces],workspaceIds:[...r.workspaceIds]},c=o;for(let s of n){let i=r[s];if(i!==void 0)switch(s){case"toolNamespaces":case"workspaceIds":case"installedCapabilities":case"enabledCapabilities":case"features":c[s]=Te(i);break;case"approvalPolicy":c[s]={...i};break;case"workspaceSummaries":c[s]=E(i);break;case"toolManifests":case"skillManifests":case"pluginManifests":case"mcpManifests":c[s]=g(i);break;default:c[s]=i;break}}return o}var ve=["web_search","web_fetch","web_research","browser_execution"],we=["web-intelligence","browser-execution"],Oe=["discovery","read-url","multi-source-research","interactive-browser"],Ne=["stateless","render-backend","interactive-session"],De=["stateless","stateless-single-step","stateful-session-required"],He=["required","conditional","none"],Le=["browser-read","browser-authenticated-read","browser-state-changing"];var Ue=["read-page","read-authenticated-page","fill-form","submit-form","download-file","reuse-session"],je=["web_search","web_fetch","web_research","blocked"],Ke=["requires-interaction","requires-login-state","requires-rendered-dom","requires-persistent-session","requires-state-changing-action"],Ve=["none","same-capability-once","degrade-only"];var Fe=["prefetch","sync_turn","on_pre_compress","on_session_end","on_delegation","on_memory_write"],We=["turn","sidechain","compress","session-end","agent-remember","auto-extract","implicit-extract","profile-extraction","dream"],qe=["observe-only","parent-write","deny"];var Be=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 Ye(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 Ge(e,t){let r=W(e,t);return r?r.assetIds.map(n=>F(e,n)).filter(n=>!!n):[]}function ze(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]),r=P(e.assets[a.whisperModelTiny]);return{...e,gateway:t,whisperModel:r}}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 Xe(e){let t=e&&typeof e=="object"?e:{},r={},n=t.assets&&typeof t.assets=="object"?t.assets:{};for(let[i,d]of Object.entries(n)){if(!d||typeof d!="object")continue;let u=d;!u.id||!Array.isArray(u.artifacts)||(r[i]=K(u))}if(!r[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&&(r[i.id]=i)}if(!r[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&&(r[i.id]=i)}let c={...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)||(c[i]=Ye(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:r,profiles:c})}var $e=["pending","captured","failed","restored"],Je=["file","directory","missing"],Qe=["metadata-only","workspace-copy","shadow-git"];var Ze=["api-key","oauth","token","aws-sdk"],et=["rate_limit","auth","server_error","timeout","network","unknown"],tt=["requiresOpenAiAnthropicToolPayload"];function rt(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,it={anthropicToolSchemaMode:"native",anthropicToolChoiceMode:"native",providerFamily:"default",preserveAnthropicThinkingSignatures:!0,openAiCompatTurnValidation:!0,providerThoughtSignatureSanitization:!1,transcriptToolCallIdMode:"default",transcriptToolCallIdModelHints:[],providerThoughtSignatureModelHints:[],dropThinkingBlockModelHints:[]},ot={anthropic:{providerFamily:"anthropic"},"amazon-bedrock":{providerFamily:"anthropic"},"kimi-coding":{anthropicToolSchemaMode:"openai-functions",anthropicToolChoiceMode:"openai-string-modes",preserveAnthropicThinkingSignatures:!1},mistral:{transcriptToolCallIdMode:"strict9",transcriptToolCallIdModelHints:["mistral","mixtral","codestral","pixtral","devstral","ministral","mistralai"]},openai:{providerFamily:"openai"},[B]:{providerFamily:"openai"},openrouter:{openAiCompatTurnValidation:!1,providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]},opencode:{openAiCompatTurnValidation:!1,providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]},kilocode:{providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]}};function k(e,t){let r=(e??"").toLowerCase();return!!r&&t.some(n=>r.includes(n))}function p(e){let t=S(e??"");return{...it,...ot[t]}}function st(e){return p(e).preserveAnthropicThinkingSignatures}function at(e){let t=p(e);return t.anthropicToolSchemaMode!=="native"||t.anthropicToolChoiceMode!=="native"}function dt(e){return p(e).anthropicToolSchemaMode==="openai-functions"}function ct(e){return p(e).anthropicToolChoiceMode==="openai-string-modes"}function pt(e){return p(e).openAiCompatTurnValidation}function lt(e){return p(e).providerFamily==="openai"}function ut(e){return p(e).providerFamily==="anthropic"}function gt(e){return k(e.modelId,p(e.provider).dropThinkingBlockModelHints)}function mt(e){let t=p(e.provider);return t.providerThoughtSignatureSanitization&&k(e.modelId,t.providerThoughtSignatureModelHints)}function ft(e,t){let r=p(e),n=r.transcriptToolCallIdMode;if(n==="strict9")return n;if(k(t,r.transcriptToolCallIdModelHints))return"strict9"}var T={anthropic:["ANTHROPIC_OAUTH_TOKEN","ANTHROPIC_API_KEY"],chutes:["CHUTES_OAUTH_TOKEN","CHUTES_API_KEY"],zai:["ZAI_API_KEY","Z_AI_API_KEY"],opencode:["OPENCODE_API_KEY","OPENCODE_ZEN_API_KEY"],qwen:["DASHSCOPE_API_KEY","QWEN_API_KEY"],"qwen-coding":["DASHSCOPE_API_KEY","QWEN_API_KEY"],volcengine:["VOLCANO_ENGINE_API_KEY","ARK_API_KEY","DOUBAO_API_KEY"],"volcengine-plan":["VOLCANO_ENGINE_API_KEY","ARK_API_KEY","DOUBAO_API_KEY"],byteplus:["BYTEPLUS_API_KEY"],"byteplus-plan":["BYTEPLUS_API_KEY"],"kimi-coding":["KIMI_API_KEY","KIMICODE_API_KEY"],huggingface:["HUGGINGFACE_HUB_TOKEN","HF_TOKEN"],openai:["OPENAI_API_KEY"],voyage:["VOYAGE_API_KEY"],groq:["GROQ_API_KEY"],deepgram:["DEEPGRAM_API_KEY"],cerebras:["CEREBRAS_API_KEY"],xai:["XAI_API_KEY"],openrouter:["OPENROUTER_API_KEY"],litellm:["LITELLM_API_KEY"],"vercel-ai-gateway":["AI_GATEWAY_API_KEY"],"cloudflare-ai-gateway":["CLOUDFLARE_AI_GATEWAY_API_KEY"],moonshot:["MOONSHOT_API_KEY"],minimax:["MINIMAX_API_KEY"],"minimax-cn":["MINIMAX_CN_API_KEY","MINIMAX_API_KEY"],nvidia:["NVIDIA_API_KEY"],xiaomi:["XIAOMI_API_KEY"],synthetic:["SYNTHETIC_API_KEY"],venice:["VENICE_API_KEY"],mistral:["MISTRAL_API_KEY"],together:["TOGETHER_API_KEY"],qianfan:["QIANFAN_API_KEY"],ollama:["OLLAMA_API_KEY"],vllm:["VLLM_API_KEY"],kilocode:["KILOCODE_API_KEY"]};function yt(){return[...new Set(Object.values(T).flat())]}function At(e){let t=S(e.provider),r=e.env??process.env,n=new Set(e.appliedEnvKeys??[]),o=i=>{let d=r[i]?.trim();if(!d)return null;let u=n.has(i)?`shell env: ${i}`:`env: ${i}`;return{apiKey:d,source:u}},c=e.resolveSpecialApiKey?.(t,r,n);if(c)return c;let s=T[t];if(!s||s.length===0)return null;for(let i of s){let d=o(i);if(d)return d}return null}export{Re as ACP_EXTENDED_METHODS,be as ACP_EXTENDED_SESSION_UPDATE_TYPES,Ie as ACP_METHODS,he as ACP_PERMISSION_PRESENTATION_META_KEY,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,re as GATEWAY_RPC_METHODS,I as GatewayRpcContract,Fe as MEMORY_OBSERVATION_HOOK_VALUES,We as MEMORY_OBSERVATION_SOURCE_VALUES,qe as MEMORY_WRITE_ACCESS_VALUES,Qe as MUTATION_CHECKPOINT_BACKEND_VALUES,Je as MUTATION_CHECKPOINT_ENTRY_KIND_VALUES,$e as MUTATION_CHECKPOINT_PHASE_VALUES,Ze as PROVIDER_RUNTIME_AUTH_MODE_VALUES,tt as PROVIDER_RUNTIME_COMPAT_FLAG_VALUES,T as PROVIDER_RUNTIME_ENV_API_KEY_CANDIDATES,B as PROVIDER_RUNTIME_OPENAI_CODEX_PROVIDER_ID,et as PROVIDER_RUNTIME_VAULT_ERROR_TYPE_VALUES,Be as RESOURCE_MANIFEST_SCHEMA_VERSION,a as RUNTIME_ASSET_IDS,y as RUNTIME_PROFILE_IDS,Ue as WEB_ACTION_SCOPE_VALUES,He as WEB_APPROVAL_DEFAULT_VALUES,we as WEB_CAPABILITY_FAMILY_VALUES,ve as WEB_CAPABILITY_ID_VALUES,je as WEB_DEGRADATION_TARGET_VALUES,Ke as WEB_ESCALATION_REASON_VALUES,Ne as WEB_EXECUTION_MODE_VALUES,Le as WEB_POLICY_RISK_CLASS_VALUES,Ve as WEB_RETRY_POLICY_VALUES,De as WEB_STATEFULNESS_VALUES,Oe as WEB_TASK_MODE_VALUES,te as buildAgentRpcMeta,A as classifyGatewayRpcMethod,f as cloneCapabilityManifestSnapshot,Me as createCapabilityManifestDiffPayload,V as createDefaultRuntimeResourceProfiles,Ce as deriveCapabilityToolNamespaces,xe as deriveCapabilityWorkspaceIds,P as getManifestShortcutEntry,F as getRuntimeResourceAsset,W as getRuntimeResourceProfile,Ge as getRuntimeResourceProfileAssets,H as isAcpJsonRpcNotification,D as isAcpJsonRpcRequest,L as isAcpJsonRpcResponse,x as isAgentRpcNotification,_ as isAgentRpcRequest,C as isAgentRpcResponse,ut as isAnthropicProviderRuntimeFamily,ke as isExtendedSessionUpdateType,lt as isOpenAiProviderRuntimeFamily,Pe as isStandardSessionUpdateType,yt as listProviderRuntimeEnvApiKeyNames,_e as mergeCapabilityManifestSnapshot,S as normalizeProviderRuntimeId,Y as normalizeProviderRuntimeIdForAuth,Xe as normalizeRuntimeResourceManifest,Ee as parseAcpMessage,X as parseAgentRpcMessage,st as preservesProviderRuntimeAnthropicThinkingSignatures,rt as readProviderRuntimeCompatFlag,v as requireGatewayRpcMeta,M as requiresIdempotencyKey,at as requiresOpenAiCompatibleAnthropicToolPayloadForProviderRuntime,p as resolveProviderRuntimeCapabilities,At as resolveProviderRuntimeEnvApiKey,nt as resolveProviderRuntimeKeyFamily,ft as resolveProviderRuntimeTranscriptToolCallIdMode,gt as shouldDropThinkingBlocksForProviderRuntimeModel,mt as shouldSanitizeProviderRuntimeThoughtSignaturesForModel,pt as supportsOpenAiCompatTurnValidationForProviderRuntime,ze as upsertRuntimeResourceAsset,dt as usesOpenAiFunctionAnthropicToolSchemaForProviderRuntime,ct as usesOpenAiStringModeAnthropicToolChoiceForProviderRuntime};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var t=["efficiency","dev","cloud","data","industrial","marketing","ecommerce","procurement","hr","accounting","finance","legal","lifestyle"],r={efficiency:"\u529E\u516C\u534F\u4F5C",dev:"\u5F00\u53D1\u7F16\u7A0B",cloud:"\u4E91\u4E0E\u8FD0\u7EF4",data:"\u6570\u636E\u5206\u6790",industrial:"\u5DE5\u4E1A\u81EA\u52A8\u5316",marketing:"\u8425\u9500\u9500\u552E",ecommerce:"\u7535\u5546\u8FD0\u8425",procurement:"\u91C7\u8D2D\u4F9B\u5E94\u94FE",hr:"\u4EBA\u529B\u884C\u653F",accounting:"\u8D22\u52A1\u4F1A\u8BA1",finance:"\u91D1\u878D\u6295\u8D44",legal:"\u6CD5\u52A1\u5408\u89C4",lifestyle:"\u4E2A\u4EBA\u751F\u6D3B"},n=new Set(t);function i(e){return typeof e=="string"&&n.has(e)}export{t as HUB_SKILL_CATEGORIES,r as HUB_SKILL_CATEGORY_LABELS,i as isHubSkillCategory};
|
package/dist/tunables.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var _=Math.min(Math.max(1,Number(process.env.TOOL_LOOP_DEFAULT_BUDGET)||25),100),u=Math.max(1e3,Number(process.env.TOOL_LOOP_TOOL_TIMEOUT_MS)||24e4),T=3,i=2;var m=128e3,M=13e3,E=16384,c=65536,S=3,p=65536,R=500,l=3,x=5e4,A=2e5,O=2e3,I=3e4,d=3,b=2,D=3e5,f=216e5,L=.75,N=16e3,C=12e4,U=3,P=4,k=50,B=3,F=2;var me=720*60*60*1e3,y=4,g=0,X=50,h=50,w=30,Me=3600*1e3;var K=5,G=4e4,H=50*1024,v=500*1024,V=500*1024*1024,Y=50*1024*1024,z=3e5,W=2,$=3e3,j=3,Z=5e3,q=1e3,J=3e3,Q=3e4,ee=60*1024,te=10,ne=100,re=24,oe=5,se=6e5,ae=30,_e=144e5,ue=3e5;function o(){return{maxRoundsLimit:100,defaultMaxRounds:25,defaultTemperature:0,maxToolBudgetCap:100,defaultToolBudget:_,defaultToolExecutionTimeoutMs:u,maxConsecutiveFailures:T,maxIdenticalCallRepeats:i,defaultContextWindowTokens:m,responseBufferTokens:M,defaultMaxOutputTokens:E,defaultModelMaxOutputTokens:c,maxOutputTokensRecoveryLimit:S,escalatedMaxOutputTokens:p,diminishingReturnsThreshold:R,diminishingReturnsMinContinuations:l,defaultMaxResultSizeChars:x,maxToolResultsPerMessageChars:A,toolResultPreviewBytes:O,heartbeatIntervalMs:I,max529Retries:d,maxApiRetries:b,persistentRetryMaxBackoffMs:D,persistentRetryResetCapMs:f,compressionTargetUsageRatio:L,compressionMinBudget:N,compressionMaxBudget:C,reactiveCompactMaxFailures:U,reactiveCompactMinMessages:P,reactiveCompactTargetPercent:k,minToolCallsForSkill:B,minDistinctToolsForSkill:F,maxForkDepth:y,maxSessions:X,taskSummaryTurnThreshold:h,taskSummaryRegenInterval:w,maxIncludeDepth:K,maxInstructionChars:G,instructionsMaxFileSize:H,instructionsMaxDirSize:v,mediaMaxDownloadSize:V,mediaMaxUploadSize:Y,mediaDownloadTimeoutMs:z,acpMaxSpawnRetries:W,acpRetryBackoffBase:$,acpRuntimeRestartMax:j,acpRuntimeRestartBackoffBase:Z,taskPollIntervalMs:q,taskStoppedDisplayMs:J,taskPanelGraceMs:Q,memoryPrefetchMaxSessionBytes:ee,memoryPrefetchLimitPerRecall:te,memoryMaxSurfacedEntries:ne,dreamMinIntervalHours:re,dreamMinSessions:oe,dreamScanIntervalMs:se,idleDreamMinutes:ae,dreamCooldownMs:_e,dreamMaxDurationMs:ue,teamBudgetTokens:g}}function a(t){let e=o();return Object.prototype.hasOwnProperty.call(e,t)?null:`Unknown tunable key: "${t}". Valid keys: ${Object.keys(e).join(", ")}`}function Te(t,e){let r=a(t);if(r)return r;let n=typeof o()[t];return e==null||typeof e!==n?`Invalid value for "${t}": expected ${n}, got ${e===null?"null":typeof e}`:n==="number"&&!Number.isFinite(e)?`Invalid value for "${t}": expected a finite number`:null}function ie(t,e){if(typeof e!="string")return e;let r=o();if(!Object.prototype.hasOwnProperty.call(r,t))return e;let s=typeof r[t];if(s==="number"){let n=Number(e);if(Number.isFinite(n)&&e.trim()!=="")return n}else if(s==="boolean"){if(e==="true")return!0;if(e==="false")return!1}return e}export{ie as coerceTunableValue,o as getTunableDefaults,a as validateTunableKey,Te as validateTunableUpdate};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export type RecalledMemorySource = "l1-project-md" | "l2-long-term" | "skill" | "system" | "unknown";
|
|
2
|
-
export interface RecalledMemoryForPrompt {
|
|
3
|
-
id?: string;
|
|
4
|
-
text: string;
|
|
5
|
-
score?: number;
|
|
6
|
-
category?: string | null;
|
|
7
|
-
source?: RecalledMemorySource | string;
|
|
8
|
-
label?: string;
|
|
9
|
-
metadata?: Record<string, unknown>;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Formats Host-selected memory for the answer model. Relevance, status,
|
|
13
|
-
* validity and abstention are decided by the Host retrieval chain; this layer
|
|
14
|
-
* only preserves the normalized evidence packet and its trust boundary.
|
|
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;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Turn-time QMemory recall orchestration (hippocampus bridge).
|
|
3
|
-
*
|
|
4
|
-
* Impure counterpart to the pure memory-recall-context.ts: it drives the
|
|
5
|
-
* `memory.before_recall` hook, caps the recalled set by a per-turn byte budget,
|
|
6
|
-
* and fires `memory.after_recall`. Kept out of Agent.run so the turn entrypoint
|
|
7
|
-
* stays a thin lifecycle wrapper; the pure prompt-building (and conflict
|
|
8
|
-
* detection) stays in memory-recall-context.ts.
|
|
9
|
-
*
|
|
10
|
-
* Returns the system-message content to inject, or null when
|
|
11
|
-
* there is nothing to inject. Recall failures are swallowed — a recall miss must
|
|
12
|
-
* never block the turn. The caller decides WHERE to splice the message; this
|
|
13
|
-
* module only decides WHAT (if anything) to inject.
|
|
14
|
-
*/
|
|
15
|
-
import type { AgentLogger, HookRegistry } from "./types.js";
|
|
16
|
-
export interface RecallMemoriesDeps {
|
|
17
|
-
hooks: HookRegistry;
|
|
18
|
-
log: AgentLogger;
|
|
19
|
-
sessionId: string;
|
|
20
|
-
turnId: string;
|
|
21
|
-
/** Last user message (already truncated by the caller). */
|
|
22
|
-
query: string;
|
|
23
|
-
/** Turn lifetime. Aborted recall must not be reported or injected as consumed. */
|
|
24
|
-
signal?: AbortSignal;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Recall long-term memories for this turn and build the system-message content
|
|
28
|
-
* to inject. Always fires `memory.after_recall` (with the real injected/dropped
|
|
29
|
-
* split — a pre-cap count would misreport what the model actually sees) when the
|
|
30
|
-
* recall hook runs. Returns null when there is nothing worth injecting.
|
|
31
|
-
*/
|
|
32
|
-
export declare function recallMemoriesForTurn(deps: RecallMemoriesDeps): Promise<string | null>;
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import type { SoloSpecChatResult, SoloSpecJudgeResult, WorkflowChatResult } from "../protocol/wire/acp-agent-management.js";
|
|
2
|
-
import { GoalHandler } from "./handlers/goal-handler.js";
|
|
3
|
-
import type { DelegateBridge } from "../orchestration/delegate-bridge.js";
|
|
4
|
-
import { type DreamHandlerHost } from "./handlers/dream-handler.js";
|
|
5
|
-
import { type ProductCoordinatorHost } from "./handlers/product-handler.js";
|
|
6
|
-
import { type SoloHandlerHost } from "./handlers/solo-handler.js";
|
|
7
|
-
import type { LLMTransport } from "./provider-core-facade.js";
|
|
8
|
-
export interface AcpExtendedHost extends DreamHandlerHost, SoloHandlerHost, ProductCoordinatorHost {
|
|
9
|
-
activeTurn?: AbortController | null;
|
|
10
|
-
currentTurnId?: string;
|
|
11
|
-
currentSessionId?: string;
|
|
12
|
-
getActiveProjectRoot(): string;
|
|
13
|
-
log(message: string): void;
|
|
14
|
-
/**
|
|
15
|
-
* Lazily reads the Gateway delegate bridge because ACP negotiation completes after host creation.
|
|
16
|
-
* A missing or unsupported bridge makes orchestration fail loud; there is no local spawn rail.
|
|
17
|
-
*/
|
|
18
|
-
getDelegateBridge?(): DelegateBridge | undefined;
|
|
19
|
-
resolveClientForPurpose(purpose: "textGeneration"): {
|
|
20
|
-
transport: LLMTransport;
|
|
21
|
-
apiKey: string;
|
|
22
|
-
model: string;
|
|
23
|
-
} | null;
|
|
24
|
-
/** Parked ask_user resolvers, keyed by requestId; resolved by thread.user_response. */
|
|
25
|
-
pendingAskUser: Map<string, {
|
|
26
|
-
resolve: (answers: Record<string, string> | null) => void;
|
|
27
|
-
}>;
|
|
28
|
-
}
|
|
29
|
-
interface GatewayProjectContext {
|
|
30
|
-
projectId: string;
|
|
31
|
-
canonicalSessionId: string;
|
|
32
|
-
cwd: string;
|
|
33
|
-
}
|
|
34
|
-
export declare function handleAcpDream(host: AcpExtendedHost, params: {
|
|
35
|
-
sessionId: string;
|
|
36
|
-
config?: Record<string, unknown>;
|
|
37
|
-
}): Promise<{
|
|
38
|
-
ok: boolean;
|
|
39
|
-
summary?: string;
|
|
40
|
-
}>;
|
|
41
|
-
/**
|
|
42
|
-
* Resolve a plan run's cwd from its project's workspaceDir (mutates params.cwd when unset), so
|
|
43
|
-
* Solo/Product worktrees land in the user's workspace (e.g. ~/.qlogicagent/workspaces/default) —
|
|
44
|
-
* not the gateway's own process.cwd(), which polluted xiaozhiclaw-runtime/.worktrees. The
|
|
45
|
-
* rpc-registry handler did this; the x/ ACP entry (the one the gateway actually calls) didn't.
|
|
46
|
-
*/
|
|
47
|
-
export declare function handleAcpSoloStart(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
48
|
-
export declare function handleAcpSoloSelect(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
49
|
-
export declare function handleAcpSoloCancel(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
50
|
-
export declare function handleAcpSoloDelete(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
51
|
-
export declare function handleAcpSoloSubscribe(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
52
|
-
export declare function handleAcpSoloMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
53
|
-
export declare function handleAcpSoloEvaluate(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
54
|
-
/**
|
|
55
|
-
* R3 多轮对话式 spec(x/solo.specChat):每轮带全量 history 跑一次 runSpecChatRound(受限工具
|
|
56
|
-
* ask_user + set_spec,纯推理不改文件)。澄清走 Cut6 的 turn.ask_user/thread.user_response 往返。
|
|
57
|
-
* 成功返回 { reply, spec };LLM/连接级失败降级 { error }(不抛,前端可重发)。
|
|
58
|
-
*/
|
|
59
|
-
export declare function handleAcpSoloSpecChat(host: AcpExtendedHost, params: Record<string, unknown>): Promise<SoloSpecChatResult>;
|
|
60
|
-
/**
|
|
61
|
-
* R3 启动软门防呆(x/solo.specJudge):用 host LLM 一次性评判 spec 是否达可开赛标准。
|
|
62
|
-
* 无 LLM → 降级放行({ ok:true })(软门本就"警告可走")。返回 { ok, issues[] }。
|
|
63
|
-
*/
|
|
64
|
-
export declare function handleAcpSoloSpecJudge(host: AcpExtendedHost, params: Record<string, unknown>): Promise<SoloSpecJudgeResult>;
|
|
65
|
-
/**
|
|
66
|
-
* 自动化页对话式搭图/改图:Agent 只提交有界 operations,确定性编译器产出唯一 proposal。
|
|
67
|
-
* 本计算面无持久化副作用;Runtime Host 是 proposal 的唯一校验和应用者。
|
|
68
|
-
*/
|
|
69
|
-
export declare function handleAcpWorkflowChat(host: AcpExtendedHost, params: Record<string, unknown>): Promise<WorkflowChatResult>;
|
|
70
|
-
/**
|
|
71
|
-
* x/workflow.matchIntent(spec D22 语义兜底)— 确定性短语在客户端已查过且未命中,且存在
|
|
72
|
-
* semantic:true 的活跃意图工作流时才会被调用:对 Gateway 提供的跨项目候选集做**一次**轻量
|
|
73
|
-
* LLM 分类(单发,非 agent turn)。本方法不读取 Workflow store。
|
|
74
|
-
* 无 LLM / 分类失败 → {matched:null}(放行进正常聊天,绝不拦死用户消息)。
|
|
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>;
|
|
83
|
-
export declare function handleAcpProductCreate(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
84
|
-
export declare function handleAcpProductPlan(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
85
|
-
export declare function handleAcpProductConfirm(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
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>;
|
|
88
|
-
export declare function handleAcpProductResume(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
89
|
-
export declare function handleAcpProductPause(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
90
|
-
export declare function handleAcpProductCancel(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
91
|
-
export declare function handleAcpProductRollback(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
92
|
-
export declare function handleAcpProductReplay(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
93
|
-
/** Test-only reset. */
|
|
94
|
-
export declare function __resetGoalHandler(): void;
|
|
95
|
-
export declare function __setGoalHandlerForTests(context: GatewayProjectContext, handler: GoalHandler, host: AcpExtendedHost, leaderAgentId?: string): void;
|
|
96
|
-
export declare function goalLeaderMemberOwner(context: GatewayProjectContext, leaderAgentId?: string): string;
|
|
97
|
-
export declare function handleAcpGoalStart(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
98
|
-
export declare function handleAcpGoalPause(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
99
|
-
export declare function handleAcpGoalResume(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
100
|
-
export declare function handleAcpGoalUpdateGoal(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
101
|
-
export declare function handleAcpGoalStop(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
102
|
-
export declare function handleAcpGoalMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
103
|
-
export declare function emitThreadItem(method: string, payload: Record<string, unknown>, hosts: {
|
|
104
|
-
currentSessionId?: string;
|
|
105
|
-
sendNotification: (m: string, p: Record<string, unknown>) => void;
|
|
106
|
-
}[]): void;
|
|
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>;
|
|
109
|
-
export declare function handleAcpProductSubscribe(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
|
|
110
|
-
export {};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { AgentRpcError } from "../protocol/wire/index.js";
|
|
2
|
-
import type { AcpExtendedHost } from "./acp-extended-handlers.js";
|
|
3
|
-
import type { DreamHandlerHost } from "./handlers/dream-handler.js";
|
|
4
|
-
import type { MultiAgentHandlerHost } from "./multi-agent-handler-host.js";
|
|
5
|
-
export interface AcpExtendedHostAdapterDeps {
|
|
6
|
-
dreamHost: DreamHandlerHost;
|
|
7
|
-
multiAgentHost: MultiAgentHandlerHost;
|
|
8
|
-
getCurrentSessionId(): string;
|
|
9
|
-
getActiveProjectRoot(): string;
|
|
10
|
-
log(message: string): void;
|
|
11
|
-
resolveAgent: DreamHandlerHost["resolveAgent"];
|
|
12
|
-
sendNotification(method: string, params: Record<string, unknown>): void;
|
|
13
|
-
sendResponse(id: string | number, result?: unknown, error?: AgentRpcError): void;
|
|
14
|
-
handleMcpToolCall(memberId: string, toolName: string, args: Record<string, unknown>): Promise<unknown>;
|
|
15
|
-
resolveClientForPurpose: AcpExtendedHost["resolveClientForPurpose"];
|
|
16
|
-
pendingAskUser: AcpExtendedHost["pendingAskUser"];
|
|
17
|
-
/** Lazily resolves the required Gateway delegate rail from AcpServer. */
|
|
18
|
-
getDelegateBridge?: AcpExtendedHost["getDelegateBridge"];
|
|
19
|
-
}
|
|
20
|
-
export declare function createAcpExtendedHostAdapter(deps: AcpExtendedHostAdapterDeps): AcpExtendedHost;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { CommunityInstallResolution } from "../runtime/community/community-consent-client.js";
|
|
2
|
-
import { type CommunityInstalledResource, type InstallCommunitySkillOptions } from "./community-skill-installer.js";
|
|
3
|
-
import { type CommunityWorkflowBundlePayload } from "./community-workflow-installer.js";
|
|
4
|
-
export type CommunityInstalledAnyResource = CommunityInstalledResource | CommunityPetAdoptionProposal | CommunityWorkflowBundlePayload;
|
|
5
|
-
export interface CommunityPetAdoptionProposal {
|
|
6
|
-
kind: "pet";
|
|
7
|
-
mode: "gateway-adoption";
|
|
8
|
-
resourceId: string;
|
|
9
|
-
version: string;
|
|
10
|
-
checksum: string;
|
|
11
|
-
fileName: string;
|
|
12
|
-
/** Verified package bytes only. Runtime owns PET validation and adoption. */
|
|
13
|
-
packageBase64: string;
|
|
14
|
-
}
|
|
15
|
-
export interface CommunityMcpInstallPreview {
|
|
16
|
-
kind: "mcp";
|
|
17
|
-
mode: "preview";
|
|
18
|
-
resourceId: string;
|
|
19
|
-
version: string;
|
|
20
|
-
sourceTier: string;
|
|
21
|
-
perUseConsentRequired: true;
|
|
22
|
-
declaredPermissions: string[];
|
|
23
|
-
manifest: unknown;
|
|
24
|
-
}
|
|
25
|
-
export interface CommunityExecutableLauncherGate {
|
|
26
|
-
kind: "executable";
|
|
27
|
-
mode: "launcher-required" | "manual-review-required";
|
|
28
|
-
resourceId: string;
|
|
29
|
-
version: string;
|
|
30
|
-
resourceType: string;
|
|
31
|
-
sourceTier: string;
|
|
32
|
-
riskTier: string;
|
|
33
|
-
artifactDigest: string;
|
|
34
|
-
launcherRequired: true;
|
|
35
|
-
manualReviewRequired: boolean;
|
|
36
|
-
autoRunBlocked: true;
|
|
37
|
-
manifest: unknown;
|
|
38
|
-
}
|
|
39
|
-
export declare function installCommunityResource(install: CommunityInstallResolution, options?: InstallCommunitySkillOptions): Promise<CommunityInstalledAnyResource | CommunityMcpInstallPreview | CommunityExecutableLauncherGate>;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { CommunityInstallResolution } from "../runtime/community/community-consent-client.js";
|
|
2
|
-
import type { HostCapabilityClient } from "../transport/host-capability-client.js";
|
|
3
|
-
export interface CommunityInstalledResource {
|
|
4
|
-
resourceId: string;
|
|
5
|
-
version: string;
|
|
6
|
-
skillName: string;
|
|
7
|
-
installDir: string;
|
|
8
|
-
checksum: string;
|
|
9
|
-
}
|
|
10
|
-
export interface InstallCommunitySkillOptions {
|
|
11
|
-
fetchFn?: typeof fetch;
|
|
12
|
-
/** Replace an existing install in place (update flow) instead of erroring. */
|
|
13
|
-
allowReplace?: boolean;
|
|
14
|
-
/** Required for replacement. Automated updaters use managed-unmodified. */
|
|
15
|
-
replacementPolicy?: "managed-unmodified" | "user-confirmed";
|
|
16
|
-
hostCapabilityClient?: Pick<HostCapabilityClient, "prepareSkillInstall" | "finalizeSkillInstall">;
|
|
17
|
-
}
|
|
18
|
-
export declare function installCommunitySkillResource(install: CommunityInstallResolution, options?: InstallCommunitySkillOptions): Promise<CommunityInstalledResource>;
|