@xopcai/xopc 0.0.115 → 0.0.117
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 +26 -10
- package/README.zh-CN.md +26 -10
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/demo-memory/src/index.d.ts +6 -0
- package/dist/extensions/demo-memory/src/index.js +132 -0
- package/dist/extensions/demo-memory/src/index.js.map +1 -0
- package/dist/extensions/demo-memory/xopc.extension.json +15 -0
- package/dist/extensions/feishu/src/schema/config-schema.d.ts +3 -3
- package/dist/extensions/telegram/src/command-handler.js +1 -2
- package/dist/extensions/telegram/src/command-handler.js.map +1 -1
- package/dist/extensions/telegram/src/config-schema.d.ts +8 -8
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/config-schema.d.ts +3 -3
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DVnBfANm.js → agent-avatar-dicebear-BBLhJ2C6.js} +1 -1
- package/dist/gateway/static/root/assets/agents-C6xgagZd.js +71 -0
- package/dist/gateway/static/root/assets/app-management-settings-panel-CBpLONvG.js +1 -0
- package/dist/gateway/static/root/assets/{appearance-settings-BQpPSTHD.js → appearance-settings-CGcc54yj.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-DdDx0V4z.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-CXu-Csep.js → archive-plugin-DZsVqMhU.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-BAjgOoGY.js → attachment-load-CIol6JWX.js} +1 -1
- package/dist/gateway/static/root/assets/{binary-plugins-BSBgB2hO.js → binary-plugins-B3UauMfp.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-BpXw9TTR.js → block-editor-2HJoFchH.js} +3 -3
- package/dist/gateway/static/root/assets/browser-settings-page-CUOO-PQk.js +8 -0
- package/dist/gateway/static/root/assets/capability-presets-api-XQoMTI0A.js +1 -0
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-CfqF-kGr.js +1 -0
- package/dist/gateway/static/root/assets/{channels-settings-BbPUpzWB.js → channels-settings-BYyRzsex.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-DIvEz4NX.js +2 -0
- package/dist/gateway/static/root/assets/cron-api-R41aQCX9.js +1 -0
- package/dist/gateway/static/root/assets/cron-page-D97nFqQD.js +3 -0
- package/dist/gateway/static/root/assets/dreaming-settings-Bceaw1PG.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-D9kgUHCc.js → extension-debug-page-DX5WRE_t.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CGyhXqzR.js → extension-page-Buah7Bw-.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DL8Xquqd.js → extension-settings-page-DuroLVnf.js} +1 -1
- package/dist/gateway/static/root/assets/{fetch-D0VXA932.js → fetch-B5zdl27C.js} +1 -1
- package/dist/gateway/static/root/assets/{format-interval-label-Be8SmgUw.js → format-interval-label-Dn_QKIqb.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-config-api-gT4ZhE7h.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-iISWAZRm.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DERUH61L.js → gateway-startup-retry-B3kL8KGY.js} +1 -1
- package/dist/gateway/static/root/assets/goal-detail-page-DCUROLMQ.js +1 -0
- package/dist/gateway/static/root/assets/{goals-config-api-BPmqWk90.js → goals-config-api-AR-fVh0P.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-Cpb21ezg.js +2 -0
- package/dist/gateway/static/root/assets/goals-settings-CPAuFwoD.js +1 -0
- package/dist/gateway/static/root/assets/{heartbeat-config-api-Bfdzr8oV.js → heartbeat-config-api-D7bKFEeO.js} +1 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-CC69vNx0.js +1 -0
- package/dist/gateway/static/root/assets/index-CwhK8qCh.js +122 -0
- package/dist/gateway/static/root/assets/index-CyfhARL-.css +1 -0
- package/dist/gateway/static/root/assets/{interval-presets-utKbuCRY.js → interval-presets-0DtsnxE0.js} +1 -1
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CjqS6c6V.js → keyboard-shortcuts-settings-BPREtN8B.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-DefCgF4o.js +2 -0
- package/dist/gateway/static/root/assets/{markdown-split-DW8C47iB.js → markdown-split-ChbR9LGO.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-D6HwDhDT.js → media-plugins-B82oP80n.js} +1 -1
- package/dist/gateway/static/root/assets/messages-Cf1O9JB0.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-panel-DmKiIihT.js +2 -0
- package/dist/gateway/static/root/assets/note-detail-page-CxxfLRJZ.js +2 -0
- package/dist/gateway/static/root/assets/{note-image-lightbox-pJM35Pz5.js → note-image-lightbox-CDknITM3.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-X2slSx7V.js +1 -0
- package/dist/gateway/static/root/assets/{preview-open-alternatives-CVwHuyN6.js → preview-open-alternatives-DV3xQsWB.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BvmUWqgu.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-Ba-UEk7x.js → save-bar-controls-BODCXnvY.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-CNN9595U.js → schedule-field-CgJSCD3B.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-DnNMmtD5.js → schema-form-qtfEI6QM.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-B0yESuuL.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-q2M8RKOo.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-CmOz80i5.js → settings-collapsible-section-BHZKjVcS.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-BmK7JJOV.js → settings-form-section-5i35D-J1.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-CGozabLD.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-FoOSe6nU.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-Dp2qGrHC.js → share-preview-page-B0H63tDv.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-Cy5zWyYQ.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DaZNFro9.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-CnwtUzvw.js +2 -0
- package/dist/gateway/static/root/assets/system-settings-panel-DXs2VmBt.js +1 -0
- package/dist/gateway/static/root/assets/typed-models-lib-4gPuydz_.js +1 -0
- package/dist/gateway/static/root/assets/{use-channel-catalog-CHlO8J9G.js → use-channel-catalog-BCjP_VHb.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-DvKiOglO.js +1 -0
- package/dist/gateway/static/root/assets/{voice-player-store-DDDWYHvg.js → voice-player-store-BlF9V05n.js} +1 -1
- package/dist/gateway/static/root/assets/workflows-page-CAVZcONQ.js +18 -0
- package/dist/gateway/static/root/index.html +5 -5
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +1 -1
- package/dist/src/agent/agent-manager.js +7 -8
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/agent-scope.js +6 -8
- package/dist/src/agent/agent-scope.js.map +1 -1
- package/dist/src/agent/background-review/coordinator.js +0 -1
- package/dist/src/agent/background-review/coordinator.js.map +1 -1
- package/dist/src/agent/background-review/run-background-review.d.ts +0 -2
- package/dist/src/agent/background-review/run-background-review.js +2 -4
- package/dist/src/agent/background-review/run-background-review.js.map +1 -1
- package/dist/src/agent/background-review/settings.js +8 -7
- package/dist/src/agent/background-review/settings.js.map +1 -1
- package/dist/src/agent/bootstrap/bootstrap-context.d.ts +2 -2
- package/dist/src/agent/bootstrap/bootstrap-context.js +4 -4
- package/dist/src/agent/bootstrap/bootstrap-context.js.map +1 -1
- package/dist/src/agent/context/workspace-seed.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js.map +1 -1
- package/dist/src/agent/fallback/candidates.js +6 -3
- package/dist/src/agent/fallback/candidates.js.map +1 -1
- package/dist/src/agent/goals/checklist-judge.d.ts +1 -0
- package/dist/src/agent/goals/checklist-judge.js +1 -1
- package/dist/src/agent/goals/checklist-judge.js.map +1 -1
- package/dist/src/agent/goals/evaluate-turn.d.ts +1 -0
- package/dist/src/agent/goals/evaluate-turn.js +1 -0
- package/dist/src/agent/goals/evaluate-turn.js.map +1 -1
- package/dist/src/agent/goals/post-turn.js +8 -1
- package/dist/src/agent/goals/post-turn.js.map +1 -1
- package/dist/src/agent/image/generation/runtime-types.d.ts +2 -0
- package/dist/src/agent/image/generation/runtime.js +1 -1
- package/dist/src/agent/image/generation/runtime.js.map +1 -1
- package/dist/src/agent/image/image-helpers.d.ts +1 -1
- package/dist/src/agent/image/image-helpers.js +4 -17
- package/dist/src/agent/image/image-helpers.js.map +1 -1
- package/dist/src/agent/image/image-model-fallback.js +1 -1
- package/dist/src/agent/image/image-model-fallback.js.map +1 -1
- package/dist/src/agent/image/inbound-image-handling.js +1 -1
- package/dist/src/agent/image/inbound-image-handling.js.map +1 -1
- package/dist/src/agent/image/tool-model-config.d.ts +1 -1
- package/dist/src/agent/image/tool-model-config.js +2 -2
- package/dist/src/agent/image/tool-model-config.js.map +1 -1
- package/dist/src/agent/image/understanding/pi-ai-provider.js +5 -2
- package/dist/src/agent/image/understanding/pi-ai-provider.js.map +1 -1
- package/dist/src/agent/image/understanding/provider-registry.d.ts +1 -0
- package/dist/src/agent/image/understanding/provider-registry.js +16 -2
- package/dist/src/agent/image/understanding/provider-registry.js.map +1 -1
- package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +1 -1
- package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js.map +1 -1
- package/dist/src/agent/media-generation/runtime-shared.d.ts +5 -2
- package/dist/src/agent/media-generation/runtime-shared.js +1 -1
- package/dist/src/agent/media-generation/runtime-shared.js.map +1 -1
- package/dist/src/agent/memory/builtin-memory-store.d.ts +2 -0
- package/dist/src/agent/memory/builtin-memory-store.js +4 -0
- package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
- package/dist/src/agent/memory/builtin-provider.d.ts +31 -9
- package/dist/src/agent/memory/builtin-provider.js +261 -11
- package/dist/src/agent/memory/builtin-provider.js.map +1 -1
- package/dist/src/agent/memory/context-assembler.d.ts +10 -0
- package/dist/src/agent/memory/context-assembler.js +26 -0
- package/dist/src/agent/memory/context-assembler.js.map +1 -0
- package/dist/src/agent/memory/create-memory-manager.js +25 -7
- package/dist/src/agent/memory/create-memory-manager.js.map +1 -1
- package/dist/src/agent/memory/dreaming/config.d.ts +1 -6
- package/dist/src/agent/memory/dreaming/config.js +8 -8
- package/dist/src/agent/memory/dreaming/config.js.map +1 -1
- package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +2 -0
- package/dist/src/agent/memory/dreaming/deep-promotion.js +24 -0
- package/dist/src/agent/memory/dreaming/deep-promotion.js.map +1 -1
- package/dist/src/agent/memory/index.d.ts +1 -0
- package/dist/src/agent/memory/index.js +4 -3
- package/dist/src/agent/memory/inject-prefetch.js +6 -2
- package/dist/src/agent/memory/inject-prefetch.js.map +1 -1
- package/dist/src/agent/memory/manager.d.ts +37 -1
- package/dist/src/agent/memory/manager.js +332 -40
- package/dist/src/agent/memory/manager.js.map +1 -1
- package/dist/src/agent/memory/memory-config.js +12 -15
- package/dist/src/agent/memory/memory-config.js.map +1 -1
- package/dist/src/agent/memory/plugin-discovery.d.ts +19 -5
- package/dist/src/agent/memory/plugin-discovery.js +97 -31
- package/dist/src/agent/memory/plugin-discovery.js.map +1 -1
- package/dist/src/agent/memory/provider.d.ts +20 -15
- package/dist/src/agent/memory/stub-memory-provider.d.ts +17 -2
- package/dist/src/agent/memory/stub-memory-provider.js +20 -3
- package/dist/src/agent/memory/stub-memory-provider.js.map +1 -1
- package/dist/src/agent/memory/types.d.ts +136 -0
- package/dist/src/agent/models/manager.d.ts +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/models/manager.js.map +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.d.ts +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js +2 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.d.ts +2 -2
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js.map +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +2 -6
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +2 -8
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js.map +1 -1
- package/dist/src/agent/reply/post-compaction-context.js +11 -6
- package/dist/src/agent/reply/post-compaction-context.js.map +1 -1
- package/dist/src/agent/reply/startup-context.js +8 -9
- package/dist/src/agent/reply/startup-context.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +1 -4
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service/session-context-report.js +1 -1
- package/dist/src/agent/service/session-context-report.js.map +1 -1
- package/dist/src/agent/service.js +21 -25
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/service.types.d.ts +1 -2
- package/dist/src/agent/session/session-hydrator.js +1 -2
- package/dist/src/agent/session/session-hydrator.js.map +1 -1
- package/dist/src/agent/session/session-inspector.d.ts +1 -1
- package/dist/src/agent/session/session-inspector.js +9 -14
- package/dist/src/agent/session/session-inspector.js.map +1 -1
- package/dist/src/agent/skills/hub-pull.js +1 -1
- package/dist/src/agent/starter-agents.d.ts +1 -3
- package/dist/src/agent/starter-agents.js +13 -21
- package/dist/src/agent/starter-agents.js.map +1 -1
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js +1 -2
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
- package/dist/src/agent/tools/composio-tool.d.ts +8 -0
- package/dist/src/agent/tools/composio-tool.js +46 -0
- package/dist/src/agent/tools/composio-tool.js.map +1 -0
- package/dist/src/agent/tools/curated-memory-tool.d.ts +2 -5
- package/dist/src/agent/tools/curated-memory-tool.js +20 -16
- package/dist/src/agent/tools/curated-memory-tool.js.map +1 -1
- package/dist/src/agent/tools/factory.d.ts +0 -4
- package/dist/src/agent/tools/factory.js +32 -66
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/image-generate-tool.d.ts +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +19 -14
- package/dist/src/agent/tools/image-generate-tool.js.map +1 -1
- package/dist/src/agent/tools/image-tool.js +1 -3
- package/dist/src/agent/tools/image-tool.js.map +1 -1
- package/dist/src/agent/tools/index.d.ts +1 -0
- package/dist/src/agent/tools/index.js +2 -1
- package/dist/src/agent/tools/memory-tool.d.ts +2 -2
- package/dist/src/agent/tools/memory-tool.js +39 -14
- package/dist/src/agent/tools/memory-tool.js.map +1 -1
- package/dist/src/agent/tools/session-search-tool.js +1 -3
- package/dist/src/agent/tools/session-search-tool.js.map +1 -1
- package/dist/src/agent/tools/web-extract.js +6 -5
- package/dist/src/agent/tools/web-extract.js.map +1 -1
- package/dist/src/agent/workflow/builtins/audit-repo.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/audit-repo.js +15 -2
- package/dist/src/agent/workflow/builtins/audit-repo.js.map +1 -1
- package/dist/src/agent/workflow/builtins/client-proposal.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/client-proposal.js +10 -1
- package/dist/src/agent/workflow/builtins/client-proposal.js.map +1 -1
- package/dist/src/agent/workflow/builtins/competitor-scan.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/competitor-scan.js +16 -2
- package/dist/src/agent/workflow/builtins/competitor-scan.js.map +1 -1
- package/dist/src/agent/workflow/builtins/content-draft.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/content-draft.js +15 -2
- package/dist/src/agent/workflow/builtins/content-draft.js.map +1 -1
- package/dist/src/agent/workflow/builtins/content-repurpose.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/content-repurpose.js +10 -1
- package/dist/src/agent/workflow/builtins/content-repurpose.js.map +1 -1
- package/dist/src/agent/workflow/builtins/debug-incident.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/debug-incident.js +9 -1
- package/dist/src/agent/workflow/builtins/debug-incident.js.map +1 -1
- package/dist/src/agent/workflow/builtins/decision-compare.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/decision-compare.js +16 -2
- package/dist/src/agent/workflow/builtins/decision-compare.js.map +1 -1
- package/dist/src/agent/workflow/builtins/implementation-plan.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/implementation-plan.js +11 -1
- package/dist/src/agent/workflow/builtins/implementation-plan.js.map +1 -1
- package/dist/src/agent/workflow/builtins/inbox-triage.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/inbox-triage.js +11 -1
- package/dist/src/agent/workflow/builtins/inbox-triage.js.map +1 -1
- package/dist/src/agent/workflow/builtins/meeting-prep.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/meeting-prep.js +9 -1
- package/dist/src/agent/workflow/builtins/meeting-prep.js.map +1 -1
- package/dist/src/agent/workflow/builtins/multi-perspective-review.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/multi-perspective-review.js +9 -1
- package/dist/src/agent/workflow/builtins/multi-perspective-review.js.map +1 -1
- package/dist/src/agent/workflow/builtins/offer-design.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/offer-design.js +10 -1
- package/dist/src/agent/workflow/builtins/offer-design.js.map +1 -1
- package/dist/src/agent/workflow/builtins/pr-review.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/pr-review.js +9 -1
- package/dist/src/agent/workflow/builtins/pr-review.js.map +1 -1
- package/dist/src/agent/workflow/builtins/release-check.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/release-check.js +10 -1
- package/dist/src/agent/workflow/builtins/release-check.js.map +1 -1
- package/dist/src/agent/workflow/builtins/research.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/research.js +16 -2
- package/dist/src/agent/workflow/builtins/research.js.map +1 -1
- package/dist/src/agent/workflow/builtins/weekly-review.d.ts +1 -1
- package/dist/src/agent/workflow/builtins/weekly-review.js +9 -1
- package/dist/src/agent/workflow/builtins/weekly-review.js.map +1 -1
- package/dist/src/agent/workflow/subagent-runner.js +1 -3
- package/dist/src/agent/workflow/subagent-runner.js.map +1 -1
- package/dist/src/agent-manifest/index.d.ts +4 -0
- package/dist/src/agent-manifest/index.js +10 -0
- package/dist/src/agent-manifest/index.js.map +1 -0
- package/dist/src/agent-manifest/prompt.d.ts +2 -0
- package/dist/src/agent-manifest/prompt.js +57 -0
- package/dist/src/agent-manifest/prompt.js.map +1 -0
- package/dist/src/agent-manifest/resolver.d.ts +11 -0
- package/dist/src/agent-manifest/resolver.js +93 -0
- package/dist/src/agent-manifest/resolver.js.map +1 -0
- package/dist/src/agent-manifest/schema.d.ts +778 -0
- package/dist/src/agent-manifest/schema.js +267 -0
- package/dist/src/agent-manifest/schema.js.map +1 -0
- package/dist/src/agent-manifest/validator.d.ts +24 -0
- package/dist/src/agent-manifest/validator.js +87 -0
- package/dist/src/agent-manifest/validator.js.map +1 -0
- package/dist/src/agent-runtime/boundary-guard.d.ts +12 -0
- package/dist/src/agent-runtime/boundary-guard.js +23 -0
- package/dist/src/agent-runtime/boundary-guard.js.map +1 -0
- package/dist/src/agent-runtime/index.d.ts +7 -0
- package/dist/src/agent-runtime/index.js +8 -0
- package/dist/src/agent-runtime/memory-runtime.d.ts +21 -0
- package/dist/src/agent-runtime/memory-runtime.js +50 -0
- package/dist/src/agent-runtime/memory-runtime.js.map +1 -0
- package/dist/src/agent-runtime/model-router.d.ts +11 -0
- package/dist/src/agent-runtime/model-router.js +16 -0
- package/dist/src/agent-runtime/model-router.js.map +1 -0
- package/dist/src/agent-runtime/run-trace.d.ts +27 -0
- package/dist/src/agent-runtime/run-trace.js +53 -0
- package/dist/src/agent-runtime/run-trace.js.map +1 -0
- package/dist/src/agent-runtime/runtime-profile.d.ts +24 -0
- package/dist/src/agent-runtime/runtime-profile.js +44 -0
- package/dist/src/agent-runtime/runtime-profile.js.map +1 -0
- package/dist/src/agent-runtime/tool-registry.d.ts +28 -0
- package/dist/src/agent-runtime/tool-registry.js +52 -0
- package/dist/src/agent-runtime/tool-registry.js.map +1 -0
- package/dist/src/agent-runtime/workflow-runtime.d.ts +31 -0
- package/dist/src/agent-runtime/workflow-runtime.js +34 -0
- package/dist/src/agent-runtime/workflow-runtime.js.map +1 -0
- package/dist/src/browser/actions/extension-registry-bridge.js +1 -1
- package/dist/src/browser/actions/extension-registry-bridge.js.map +1 -1
- package/dist/src/browser/actions/registry.js +5 -8
- package/dist/src/browser/actions/registry.js.map +1 -1
- package/dist/src/browser/backend-from-config.d.ts +1 -1
- package/dist/src/browser/backend-from-config.js +50 -71
- package/dist/src/browser/backend-from-config.js.map +1 -1
- package/dist/src/browser/browser-command-timeout.d.ts +0 -1
- package/dist/src/browser/browser-command-timeout.js +3 -7
- package/dist/src/browser/browser-command-timeout.js.map +1 -1
- package/dist/src/browser/providers/browser-ext-install.d.ts +2 -12
- package/dist/src/browser/providers/browser-ext-install.js +3 -8
- package/dist/src/browser/providers/browser-ext-install.js.map +1 -1
- package/dist/src/browser/readiness.js +16 -16
- package/dist/src/browser/readiness.js.map +1 -1
- package/dist/src/browser/schemas.js +1 -1
- package/dist/src/browser/schemas.js.map +1 -1
- package/dist/src/chat-commands/builtins/config.js +4 -4
- package/dist/src/chat-commands/builtins/config.js.map +1 -1
- package/dist/src/chat-commands/builtins/thinking.js +16 -42
- package/dist/src/chat-commands/builtins/thinking.js.map +1 -1
- package/dist/src/chat-commands/config-paths.js +1 -1
- package/dist/src/chat-commands/config-paths.js.map +1 -1
- package/dist/src/chat-commands/context.js +3 -4
- package/dist/src/chat-commands/context.js.map +1 -1
- package/dist/src/cli/command-manifest.js +1 -1
- package/dist/src/cli/command-manifest.js.map +1 -1
- package/dist/src/cli/commands/agent.js +3 -1
- package/dist/src/cli/commands/agent.js.map +1 -1
- package/dist/src/cli/commands/agents.js +3 -6
- package/dist/src/cli/commands/agents.js.map +1 -1
- package/dist/src/cli/commands/browser-cli-helpers.js +9 -11
- package/dist/src/cli/commands/browser-cli-helpers.js.map +1 -1
- package/dist/src/cli/commands/config.js +5 -5
- package/dist/src/cli/commands/config.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -17
- package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +1 -1
- package/dist/src/cli/commands/goal.js +1 -1
- package/dist/src/cli/commands/image.js +13 -372
- package/dist/src/cli/commands/image.js.map +1 -1
- package/dist/src/cli/commands/models.js +26 -10
- package/dist/src/cli/commands/models.js.map +1 -1
- package/dist/src/cli/commands/onboard/channels/registry.js.map +1 -1
- package/dist/src/cli/commands/onboard/model.js +20 -22
- package/dist/src/cli/commands/onboard/model.js.map +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/utils/init-workspace-core.d.ts +1 -4
- package/dist/src/cli/utils/init-workspace-core.js +7 -6
- package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
- package/dist/src/commands/agents.config.d.ts +0 -1
- package/dist/src/commands/agents.config.js +66 -12
- package/dist/src/commands/agents.config.js.map +1 -1
- package/dist/src/config/agent-profile.d.ts +5 -17
- package/dist/src/config/agent-profile.js +31 -64
- package/dist/src/config/agent-profile.js.map +1 -1
- package/dist/src/config/agent-typed-models.d.ts +1 -1
- package/dist/src/config/agent-typed-models.js +0 -1
- package/dist/src/config/agent-typed-models.js.map +1 -1
- package/dist/src/config/index.js +3 -3
- package/dist/src/config/integration.d.ts +1 -1
- package/dist/src/config/reload.js +1 -1
- package/dist/src/config/reload.js.map +1 -1
- package/dist/src/config/rules.js +6 -56
- package/dist/src/config/rules.js.map +1 -1
- package/dist/src/config/schema.d.ts +925 -781
- package/dist/src/config/schema.js +157 -424
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/connectors/composio-triggers.d.ts +10 -0
- package/dist/src/connectors/composio-triggers.js +32 -0
- package/dist/src/connectors/composio-triggers.js.map +1 -0
- package/dist/src/connectors/composio.d.ts +54 -0
- package/dist/src/connectors/composio.js +334 -0
- package/dist/src/connectors/composio.js.map +1 -0
- package/dist/src/connectors/health.js +16 -1
- package/dist/src/connectors/health.js.map +1 -1
- package/dist/src/connectors/install.d.ts +2 -1
- package/dist/src/connectors/install.js +50 -13
- package/dist/src/connectors/install.js.map +1 -1
- package/dist/src/connectors/instances.js +57 -6
- package/dist/src/connectors/instances.js.map +1 -1
- package/dist/src/connectors/lifecycle.d.ts +3 -0
- package/dist/src/connectors/lifecycle.js +23 -0
- package/dist/src/connectors/lifecycle.js.map +1 -0
- package/dist/src/connectors/materialize.js +2 -1
- package/dist/src/connectors/materialize.js.map +1 -1
- package/dist/src/connectors/providers.d.ts +1 -0
- package/dist/src/connectors/providers.js +10 -2
- package/dist/src/connectors/providers.js.map +1 -1
- package/dist/src/connectors/registries/modelscope.d.ts +2 -0
- package/dist/src/connectors/registries/modelscope.js +205 -0
- package/dist/src/connectors/registries/modelscope.js.map +1 -0
- package/dist/src/connectors/registries/official-mcp.d.ts +2 -0
- package/dist/src/connectors/registries/official-mcp.js +142 -0
- package/dist/src/connectors/registries/official-mcp.js.map +1 -0
- package/dist/src/connectors/registries/search.d.ts +12 -0
- package/dist/src/connectors/registries/search.js +89 -0
- package/dist/src/connectors/registries/search.js.map +1 -0
- package/dist/src/connectors/registries/smithery.d.ts +2 -0
- package/dist/src/connectors/registries/smithery.js +98 -0
- package/dist/src/connectors/registries/smithery.js.map +1 -0
- package/dist/src/connectors/registries/types.d.ts +20 -0
- package/dist/src/connectors/registries/types.js +1 -0
- package/dist/src/connectors/secret-store.js +4 -2
- package/dist/src/connectors/secret-store.js.map +1 -1
- package/dist/src/connectors/setup-secrets.d.ts +15 -0
- package/dist/src/connectors/setup-secrets.js +64 -0
- package/dist/src/connectors/setup-secrets.js.map +1 -0
- package/dist/src/connectors/supervisor.d.ts +15 -0
- package/dist/src/connectors/supervisor.js +73 -0
- package/dist/src/connectors/supervisor.js.map +1 -0
- package/dist/src/connectors/types.d.ts +27 -3
- package/dist/src/connectors/usage.js +6 -1
- package/dist/src/connectors/usage.js.map +1 -1
- package/dist/src/cron/index.js +1 -1
- package/dist/src/cron/service.js +1 -1
- package/dist/src/cron/validation.d.ts +3 -3
- package/dist/src/extensions/activation-context.js +13 -7
- package/dist/src/extensions/activation-context.js.map +1 -1
- package/dist/src/gateway/agents-admin.d.ts +17 -18
- package/dist/src/gateway/agents-admin.js +123 -88
- package/dist/src/gateway/agents-admin.js.map +1 -1
- package/dist/src/gateway/capability-presets-admin.d.ts +56 -0
- package/dist/src/gateway/capability-presets-admin.js +214 -0
- package/dist/src/gateway/capability-presets-admin.js.map +1 -0
- package/dist/src/gateway/hono/lib/agent-model.d.ts +1 -1
- package/dist/src/gateway/hono/lib/agent-model.js +1 -1
- package/dist/src/gateway/hono/lib/agent-model.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +234 -127
- package/dist/src/gateway/hono/lib/config-payload.js +13 -37
- package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
- package/dist/src/gateway/hono/routes/agents.js +56 -33
- package/dist/src/gateway/hono/routes/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/browser.js +8 -15
- package/dist/src/gateway/hono/routes/browser.js.map +1 -1
- package/dist/src/gateway/hono/routes/capability-presets.d.ts +3 -0
- package/dist/src/gateway/hono/routes/capability-presets.js +145 -0
- package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -0
- package/dist/src/gateway/hono/routes/config-patch/agents.d.ts +1 -17
- package/dist/src/gateway/hono/routes/config-patch/agents.js +2 -443
- package/dist/src/gateway/hono/routes/config-patch/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +7 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -1
- package/dist/src/gateway/hono/routes/config.js +1 -1
- package/dist/src/gateway/hono/routes/config.js.map +1 -1
- package/dist/src/gateway/hono/routes/connectors.js +230 -3
- package/dist/src/gateway/hono/routes/connectors.js.map +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +7 -0
- package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
- package/dist/src/gateway/hono/routes/goals.js +52 -5
- package/dist/src/gateway/hono/routes/goals.js.map +1 -1
- package/dist/src/gateway/hono/routes/index.js +2 -0
- package/dist/src/gateway/hono/routes/index.js.map +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/memory.d.ts +3 -0
- package/dist/src/gateway/hono/routes/memory.js +290 -0
- package/dist/src/gateway/hono/routes/memory.js.map +1 -0
- package/dist/src/gateway/hono/routes/voice.js +14 -1
- package/dist/src/gateway/hono/routes/voice.js.map +1 -1
- package/dist/src/gateway/hono/sse.js.map +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +5 -12
- package/dist/src/gateway/service/agent-runner.js +8 -8
- package/dist/src/gateway/service/agent-runner.js.map +1 -1
- package/dist/src/gateway/service/run-gateway-agent.d.ts +2 -10
- package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
- package/dist/src/gateway/service.d.ts +2 -2
- package/dist/src/gateway/service.js +20 -16
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/gateway/user-turn-input.d.ts +18 -0
- package/dist/src/gateway/user-turn-input.js +16 -0
- package/dist/src/gateway/user-turn-input.js.map +1 -0
- package/dist/src/goals/goal-queue-store.d.ts +2 -1
- package/dist/src/goals/goal-queue-store.js +2 -2
- package/dist/src/goals/goal-queue-store.js.map +1 -1
- package/dist/src/goals/goal-queue-types.d.ts +4 -3
- package/dist/src/goals/goal-runner.js +25 -3
- package/dist/src/goals/goal-runner.js.map +1 -1
- package/dist/src/goals/goal-service.d.ts +6 -1
- package/dist/src/goals/goal-service.js +9 -2
- package/dist/src/goals/goal-service.js.map +1 -1
- package/dist/src/goals/goal-store.d.ts +7 -1
- package/dist/src/goals/goal-store.js +42 -0
- package/dist/src/goals/goal-store.js.map +1 -1
- package/dist/src/goals/types.d.ts +10 -0
- package/dist/src/notes/agent-context.js +2 -2
- package/dist/src/providers/index.d.ts +2 -2
- package/dist/src/providers/index.js +10 -14
- package/dist/src/providers/index.js.map +1 -1
- package/dist/src/session/index.js +1 -1
- package/dist/src/session/session-workspace.js +7 -2
- package/dist/src/session/session-workspace.js.map +1 -1
- package/dist/src/session/store.js +5 -0
- package/dist/src/session/store.js.map +1 -1
- package/dist/src/session/thinking-resolve.d.ts +1 -1
- package/dist/src/session/thinking-resolve.js +1 -1
- package/dist/src/session/thinking-resolve.js.map +1 -1
- package/dist/src/storage/sqlite/connection.js +1 -1
- package/dist/src/storage/sqlite/index.d.ts +1 -0
- package/dist/src/storage/sqlite/index.js +2 -1
- package/dist/src/storage/sqlite/memory-records-repository.d.ts +101 -0
- package/dist/src/storage/sqlite/memory-records-repository.js +309 -0
- package/dist/src/storage/sqlite/memory-records-repository.js.map +1 -0
- package/dist/src/storage/sqlite/migrations/011_goal_context_messages.sql +8 -0
- package/dist/src/storage/sqlite/migrations/012_memory_records.sql +63 -0
- package/dist/src/storage/sqlite/migrations/013_memory_trace_events.sql +21 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +2 -2
- package/dist/src/storage/sqlite/migrations/runner.js +4 -4
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +2 -2
- package/dist/src/storage/sqlite/schema.js +3 -3
- package/dist/src/storage/sqlite/schema.sql +95 -0
- package/dist/src/tui/backends/embedded-backend.js +6 -4
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/extension-host/load-extensions.js.map +1 -1
- package/dist/src/voice/tts/openai-compatible-speech.d.ts +1 -1
- package/dist/src/voice/tts/openai-compatible-speech.js.map +1 -1
- package/dist/src/voice/tts/providers/edge-speech.js +14 -2
- package/dist/src/voice/tts/providers/edge-speech.js.map +1 -1
- package/dist/src/voice/tts/speak-core.js +3 -3
- package/dist/src/voice/tts/speak-core.js.map +1 -1
- package/dist/src/voice/tts/speech-provider-types.d.ts +2 -2
- package/dist/src/voice/tts/types.js +1 -1
- package/dist/src/voice/tts/types.js.map +1 -1
- package/dist/src/workflows/domain/result.d.ts +0 -1
- package/dist/src/workflows/engine/workflow-engine.js +7 -23
- package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +3 -4
- package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
- package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
- package/package.json +4 -3
- package/dist/gateway/static/root/assets/agent-browser-settings-page-DPXc4hz8.js +0 -6
- package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-CTJ0YnRQ.js +0 -1
- package/dist/gateway/static/root/assets/agents-zJXQfJ_W.js +0 -71
- package/dist/gateway/static/root/assets/app-management-settings-panel-DzGbdr04.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-CPjfyzSD.js +0 -1
- package/dist/gateway/static/root/assets/config-api-NOoPiIYz.js +0 -3
- package/dist/gateway/static/root/assets/connectors-settings-CAXYMOdp.js +0 -2
- package/dist/gateway/static/root/assets/cron-api-C9BOqAXd.js +0 -1
- package/dist/gateway/static/root/assets/cron-page-DuUbBeKI.js +0 -3
- package/dist/gateway/static/root/assets/dreaming-settings-DQ4DtiK1.js +0 -1
- package/dist/gateway/static/root/assets/gateway-config-api-C-xjn__h.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-BMPwIjKI.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-BJsyjJnF.js +0 -1
- package/dist/gateway/static/root/assets/goals-page-BerDgIhw.js +0 -2
- package/dist/gateway/static/root/assets/goals-settings-ByTjeAto.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-TbHgcjTn.js +0 -1
- package/dist/gateway/static/root/assets/index-AkTrf6Pb.js +0 -122
- package/dist/gateway/static/root/assets/index-fh5sXTj9.css +0 -1
- package/dist/gateway/static/root/assets/logs-page-DGXuPf5B.js +0 -2
- package/dist/gateway/static/root/assets/messages-upgxw6Ub.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-Bot16nn7.js +0 -2
- package/dist/gateway/static/root/assets/note-detail-page-Brlyou8M.js +0 -2
- package/dist/gateway/static/root/assets/notes-page-DvZ4pwc-.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BZEDmxbZ.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-DdGGlsfn.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-DlkEkPf9.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-DFPTrsPF.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-CYCCfgh4.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-Bff1pGd0.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-CJGKpBur.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-C6ocduTD.js +0 -2
- package/dist/gateway/static/root/assets/system-settings-panel-5jrIEr5b.js +0 -1
- package/dist/gateway/static/root/assets/use-agent-defaults-form-BuiXLIs5.js +0 -1
- package/dist/gateway/static/root/assets/use-settings-tab-guard-CW5JORnl.js +0 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-DDoQyghO.js +0 -1
- package/dist/gateway/static/root/assets/workflow-page.utils-CKjeEGqx.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-B604ehHG.js +0 -18
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
//#region src/agent-manifest/schema.ts
|
|
4
|
+
var IdSchema, ManifestModelRoleSchema, ModelPolicySchema, ModelPolicyPatchSchema, ToolModeSchema, ToolScopeSchema, ToolPolicySchema, ToolPolicySetSchema, SkillPolicySchema, DreamingPhasePolicySchema, DreamingLightPolicySchema, DreamingDeepPolicySchema, DreamingRemPolicySchema, DreamingPolicySchema, MemoryPolicySchema, WorkflowPolicySchema, BoundaryPolicySchema, WorkspacePolicySchema, RuntimePolicySchema, PromptPolicySchema, AgentIdentitySchema, AgentResponsibilitiesSchema, AgentManifestSchema, CapabilityPresetSchema;
|
|
5
|
+
var init_schema = __esmMin((() => {
|
|
6
|
+
IdSchema = z.string().regex(/^[a-z][a-z0-9_-]{0,63}$/);
|
|
7
|
+
ManifestModelRoleSchema = z.object({
|
|
8
|
+
model: z.string().min(1),
|
|
9
|
+
description: z.string().max(500).optional()
|
|
10
|
+
}).strict().superRefine((entry, ctx) => {
|
|
11
|
+
const trimmed = entry.model.trim();
|
|
12
|
+
const idx = trimmed.indexOf("/");
|
|
13
|
+
if (idx <= 0 || idx === trimmed.length - 1) ctx.addIssue({
|
|
14
|
+
code: "custom",
|
|
15
|
+
message: `model must be provider/model format (got '${entry.model}')`,
|
|
16
|
+
path: ["model"]
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
ModelPolicySchema = z.object({
|
|
20
|
+
defaultRole: IdSchema,
|
|
21
|
+
roles: z.record(IdSchema, ManifestModelRoleSchema).default({}),
|
|
22
|
+
policy: z.object({
|
|
23
|
+
allowFallbacks: z.boolean().optional(),
|
|
24
|
+
maxCostTier: z.enum([
|
|
25
|
+
"low",
|
|
26
|
+
"medium",
|
|
27
|
+
"high"
|
|
28
|
+
]).optional()
|
|
29
|
+
}).strict().optional()
|
|
30
|
+
}).strict();
|
|
31
|
+
ModelPolicyPatchSchema = z.object({
|
|
32
|
+
defaultRole: IdSchema.optional(),
|
|
33
|
+
roles: z.record(IdSchema, ManifestModelRoleSchema).optional(),
|
|
34
|
+
policy: z.object({
|
|
35
|
+
allowFallbacks: z.boolean().optional(),
|
|
36
|
+
maxCostTier: z.enum([
|
|
37
|
+
"low",
|
|
38
|
+
"medium",
|
|
39
|
+
"high"
|
|
40
|
+
]).optional()
|
|
41
|
+
}).strict().optional()
|
|
42
|
+
}).strict();
|
|
43
|
+
ToolModeSchema = z.enum([
|
|
44
|
+
"allow",
|
|
45
|
+
"confirm",
|
|
46
|
+
"deny"
|
|
47
|
+
]);
|
|
48
|
+
ToolScopeSchema = z.enum([
|
|
49
|
+
"readonly",
|
|
50
|
+
"workspace",
|
|
51
|
+
"unrestricted"
|
|
52
|
+
]);
|
|
53
|
+
ToolPolicySchema = z.object({
|
|
54
|
+
mode: ToolModeSchema,
|
|
55
|
+
scope: ToolScopeSchema.optional(),
|
|
56
|
+
limits: z.object({
|
|
57
|
+
maxCallsPerTurn: z.number().int().positive().optional(),
|
|
58
|
+
timeoutMs: z.number().int().positive().optional()
|
|
59
|
+
}).strict().optional()
|
|
60
|
+
}).strict();
|
|
61
|
+
ToolPolicySetSchema = z.object({
|
|
62
|
+
builtin: z.record(z.string().min(1), ToolPolicySchema).default({}),
|
|
63
|
+
mcp: z.object({
|
|
64
|
+
servers: z.record(z.string().min(1), ToolPolicySchema).optional(),
|
|
65
|
+
tools: z.record(z.string().min(1), ToolPolicySchema).optional()
|
|
66
|
+
}).strict().optional()
|
|
67
|
+
}).strict().default({ builtin: {} });
|
|
68
|
+
SkillPolicySchema = z.object({
|
|
69
|
+
mode: z.enum([
|
|
70
|
+
"all",
|
|
71
|
+
"allowlist",
|
|
72
|
+
"denylist",
|
|
73
|
+
"off"
|
|
74
|
+
]).default("all"),
|
|
75
|
+
allow: z.array(z.string().min(1)).optional(),
|
|
76
|
+
deny: z.array(z.string().min(1)).optional()
|
|
77
|
+
}).strict().default({ mode: "all" });
|
|
78
|
+
DreamingPhasePolicySchema = z.object({
|
|
79
|
+
enabled: z.boolean().optional(),
|
|
80
|
+
cron: z.string().min(1).optional()
|
|
81
|
+
}).strict();
|
|
82
|
+
DreamingLightPolicySchema = DreamingPhasePolicySchema.extend({
|
|
83
|
+
lookbackDays: z.number().int().positive().optional(),
|
|
84
|
+
limit: z.number().int().nonnegative().optional(),
|
|
85
|
+
dedupeSimilarity: z.number().min(0).max(1).optional()
|
|
86
|
+
}).strict();
|
|
87
|
+
DreamingDeepPolicySchema = DreamingPhasePolicySchema.extend({
|
|
88
|
+
minScore: z.number().min(0).max(1).optional(),
|
|
89
|
+
minRecallCount: z.number().int().positive().optional(),
|
|
90
|
+
minUniqueQueries: z.number().int().positive().optional(),
|
|
91
|
+
limit: z.number().int().nonnegative().optional(),
|
|
92
|
+
recencyHalfLifeDays: z.number().positive().optional(),
|
|
93
|
+
maxAgeDays: z.number().positive().optional()
|
|
94
|
+
}).strict();
|
|
95
|
+
DreamingRemPolicySchema = DreamingPhasePolicySchema.extend({
|
|
96
|
+
lookbackDays: z.number().int().positive().optional(),
|
|
97
|
+
limit: z.number().int().nonnegative().optional(),
|
|
98
|
+
minPatternStrength: z.number().min(0).max(1).optional()
|
|
99
|
+
}).strict();
|
|
100
|
+
DreamingPolicySchema = z.object({
|
|
101
|
+
enabled: z.boolean().default(false),
|
|
102
|
+
frequency: z.string().min(1).optional(),
|
|
103
|
+
timezone: z.string().optional(),
|
|
104
|
+
phases: z.object({
|
|
105
|
+
light: DreamingLightPolicySchema.optional(),
|
|
106
|
+
deep: DreamingDeepPolicySchema.optional(),
|
|
107
|
+
rem: DreamingRemPolicySchema.optional()
|
|
108
|
+
}).strict().optional()
|
|
109
|
+
}).strict().optional();
|
|
110
|
+
MemoryPolicySchema = z.object({
|
|
111
|
+
mode: z.enum([
|
|
112
|
+
"off",
|
|
113
|
+
"readOnly",
|
|
114
|
+
"confirmWrite",
|
|
115
|
+
"auto"
|
|
116
|
+
]).default("off"),
|
|
117
|
+
sources: z.array(z.enum([
|
|
118
|
+
"session",
|
|
119
|
+
"userProfile",
|
|
120
|
+
"agentProfile",
|
|
121
|
+
"curated",
|
|
122
|
+
"workspace"
|
|
123
|
+
])).default(["session"]),
|
|
124
|
+
writePolicy: z.object({
|
|
125
|
+
userProfile: z.enum([
|
|
126
|
+
"deny",
|
|
127
|
+
"confirm",
|
|
128
|
+
"allow"
|
|
129
|
+
]).optional(),
|
|
130
|
+
agentProfile: z.enum([
|
|
131
|
+
"deny",
|
|
132
|
+
"confirm",
|
|
133
|
+
"allow"
|
|
134
|
+
]).optional(),
|
|
135
|
+
curated: z.enum([
|
|
136
|
+
"deny",
|
|
137
|
+
"confirm",
|
|
138
|
+
"allow"
|
|
139
|
+
]).optional(),
|
|
140
|
+
workspace: z.enum([
|
|
141
|
+
"deny",
|
|
142
|
+
"confirm",
|
|
143
|
+
"allow"
|
|
144
|
+
]).optional()
|
|
145
|
+
}).strict().optional(),
|
|
146
|
+
retention: z.object({
|
|
147
|
+
compaction: z.boolean().default(true),
|
|
148
|
+
maxAgeDays: z.number().int().positive().optional(),
|
|
149
|
+
maxItems: z.number().int().positive().optional()
|
|
150
|
+
}).strict().optional(),
|
|
151
|
+
privacy: z.object({
|
|
152
|
+
crossAgentSharing: z.enum([
|
|
153
|
+
"deny",
|
|
154
|
+
"readOnly",
|
|
155
|
+
"allow"
|
|
156
|
+
]).default("deny"),
|
|
157
|
+
sensitiveWritePolicy: z.enum([
|
|
158
|
+
"deny",
|
|
159
|
+
"confirm",
|
|
160
|
+
"allow"
|
|
161
|
+
]).default("confirm")
|
|
162
|
+
}).strict().optional(),
|
|
163
|
+
providerRouting: z.object({
|
|
164
|
+
searchStrategy: z.enum([
|
|
165
|
+
"local-first",
|
|
166
|
+
"external-first",
|
|
167
|
+
"fanout",
|
|
168
|
+
"local-only",
|
|
169
|
+
"external-only"
|
|
170
|
+
]).default("fanout"),
|
|
171
|
+
writeStrategy: z.enum([
|
|
172
|
+
"local-first",
|
|
173
|
+
"external-first",
|
|
174
|
+
"write-through",
|
|
175
|
+
"local-only",
|
|
176
|
+
"external-only"
|
|
177
|
+
]).default("local-first"),
|
|
178
|
+
allowExternalWrites: z.boolean().default(false),
|
|
179
|
+
allowedProviderIds: z.array(z.string().min(1)).optional(),
|
|
180
|
+
autoWriteKinds: z.array(z.enum([
|
|
181
|
+
"user_profile",
|
|
182
|
+
"agent_note",
|
|
183
|
+
"workspace_fact",
|
|
184
|
+
"daily_note",
|
|
185
|
+
"session_summary",
|
|
186
|
+
"derived_insight"
|
|
187
|
+
])).optional()
|
|
188
|
+
}).strict().optional(),
|
|
189
|
+
dreaming: DreamingPolicySchema
|
|
190
|
+
}).strict().default({
|
|
191
|
+
mode: "off",
|
|
192
|
+
sources: ["session"]
|
|
193
|
+
});
|
|
194
|
+
WorkflowPolicySchema = z.object({
|
|
195
|
+
default: z.string().min(1).optional(),
|
|
196
|
+
allowed: z.array(z.string().min(1)).optional(),
|
|
197
|
+
suggested: z.array(z.object({
|
|
198
|
+
intent: z.string().min(1),
|
|
199
|
+
workflow: z.string().min(1)
|
|
200
|
+
}).strict()).optional()
|
|
201
|
+
}).strict().default({});
|
|
202
|
+
BoundaryPolicySchema = z.object({
|
|
203
|
+
requiresConfirmation: z.array(z.string().min(1)).default([]),
|
|
204
|
+
forbidden: z.array(z.string().min(1)).default([]),
|
|
205
|
+
escalation: z.array(z.string().min(1)).default([])
|
|
206
|
+
}).strict().default({
|
|
207
|
+
requiresConfirmation: [],
|
|
208
|
+
forbidden: [],
|
|
209
|
+
escalation: []
|
|
210
|
+
});
|
|
211
|
+
WorkspacePolicySchema = z.object({ root: z.string().min(1) }).strict();
|
|
212
|
+
RuntimePolicySchema = z.object({
|
|
213
|
+
maxTurns: z.number().int().positive().optional(),
|
|
214
|
+
timeoutMs: z.number().int().positive().optional(),
|
|
215
|
+
maxToolFailuresPerTurn: z.number().int().positive().optional()
|
|
216
|
+
}).strict().optional();
|
|
217
|
+
PromptPolicySchema = z.object({ customInstructions: z.string().optional() }).strict().optional();
|
|
218
|
+
AgentIdentitySchema = z.object({
|
|
219
|
+
name: z.string().min(1),
|
|
220
|
+
description: z.string().optional(),
|
|
221
|
+
role: z.string().min(1),
|
|
222
|
+
language: z.string().min(1).default("en"),
|
|
223
|
+
tone: z.string().min(1).default("direct"),
|
|
224
|
+
avatar: z.string().optional()
|
|
225
|
+
}).strict();
|
|
226
|
+
AgentResponsibilitiesSchema = z.object({
|
|
227
|
+
primary: z.array(z.string().min(1)).min(1),
|
|
228
|
+
secondary: z.array(z.string().min(1)).optional(),
|
|
229
|
+
outOfScope: z.array(z.string().min(1)).optional()
|
|
230
|
+
}).strict();
|
|
231
|
+
AgentManifestSchema = z.object({
|
|
232
|
+
id: IdSchema,
|
|
233
|
+
enabled: z.boolean().default(true),
|
|
234
|
+
extends: z.array(IdSchema).optional(),
|
|
235
|
+
identity: AgentIdentitySchema,
|
|
236
|
+
responsibilities: AgentResponsibilitiesSchema,
|
|
237
|
+
workspace: WorkspacePolicySchema,
|
|
238
|
+
models: ModelPolicySchema,
|
|
239
|
+
tools: ToolPolicySetSchema,
|
|
240
|
+
skills: SkillPolicySchema,
|
|
241
|
+
memory: MemoryPolicySchema,
|
|
242
|
+
workflows: WorkflowPolicySchema,
|
|
243
|
+
boundaries: BoundaryPolicySchema,
|
|
244
|
+
runtime: RuntimePolicySchema,
|
|
245
|
+
prompt: PromptPolicySchema
|
|
246
|
+
}).strict();
|
|
247
|
+
CapabilityPresetSchema = z.object({
|
|
248
|
+
id: IdSchema,
|
|
249
|
+
name: z.string().min(1),
|
|
250
|
+
description: z.string().optional(),
|
|
251
|
+
version: z.number().int().positive().default(1),
|
|
252
|
+
extends: z.array(IdSchema).optional(),
|
|
253
|
+
models: ModelPolicyPatchSchema.optional(),
|
|
254
|
+
tools: ToolPolicySetSchema.optional(),
|
|
255
|
+
skills: SkillPolicySchema.optional(),
|
|
256
|
+
memory: MemoryPolicySchema.optional(),
|
|
257
|
+
workflows: WorkflowPolicySchema.optional(),
|
|
258
|
+
boundaries: BoundaryPolicySchema.optional(),
|
|
259
|
+
runtime: RuntimePolicySchema,
|
|
260
|
+
locks: z.array(z.string().min(1)).optional()
|
|
261
|
+
}).strict();
|
|
262
|
+
}));
|
|
263
|
+
//#endregion
|
|
264
|
+
init_schema();
|
|
265
|
+
export { AgentIdentitySchema, AgentManifestSchema, AgentResponsibilitiesSchema, BoundaryPolicySchema, CapabilityPresetSchema, DreamingDeepPolicySchema, DreamingLightPolicySchema, DreamingPhasePolicySchema, DreamingPolicySchema, DreamingRemPolicySchema, ManifestModelRoleSchema, MemoryPolicySchema, ModelPolicyPatchSchema, ModelPolicySchema, PromptPolicySchema, RuntimePolicySchema, SkillPolicySchema, ToolModeSchema, ToolPolicySchema, ToolPolicySetSchema, ToolScopeSchema, WorkflowPolicySchema, WorkspacePolicySchema, init_schema };
|
|
266
|
+
|
|
267
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../src/agent-manifest/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nconst IdSchema = z.string().regex(/^[a-z][a-z0-9_-]{0,63}$/);\n\nexport const ManifestModelRoleSchema = z\n .object({\n model: z.string().min(1),\n description: z.string().max(500).optional(),\n })\n .strict()\n .superRefine((entry, ctx) => {\n const trimmed = entry.model.trim();\n const idx = trimmed.indexOf('/');\n if (idx <= 0 || idx === trimmed.length - 1) {\n ctx.addIssue({\n code: 'custom',\n message: `model must be provider/model format (got '${entry.model}')`,\n path: ['model'],\n });\n }\n });\n\nexport const ModelPolicySchema = z\n .object({\n defaultRole: IdSchema,\n roles: z.record(IdSchema, ManifestModelRoleSchema).default({}),\n policy: z\n .object({\n allowFallbacks: z.boolean().optional(),\n maxCostTier: z.enum(['low', 'medium', 'high']).optional(),\n })\n .strict()\n .optional(),\n })\n .strict();\n\nexport const ModelPolicyPatchSchema = z\n .object({\n defaultRole: IdSchema.optional(),\n roles: z.record(IdSchema, ManifestModelRoleSchema).optional(),\n policy: z\n .object({\n allowFallbacks: z.boolean().optional(),\n maxCostTier: z.enum(['low', 'medium', 'high']).optional(),\n })\n .strict()\n .optional(),\n })\n .strict();\n\nexport const ToolModeSchema = z.enum(['allow', 'confirm', 'deny']);\nexport const ToolScopeSchema = z.enum(['readonly', 'workspace', 'unrestricted']);\n\nexport const ToolPolicySchema = z\n .object({\n mode: ToolModeSchema,\n scope: ToolScopeSchema.optional(),\n limits: z\n .object({\n maxCallsPerTurn: z.number().int().positive().optional(),\n timeoutMs: z.number().int().positive().optional(),\n })\n .strict()\n .optional(),\n })\n .strict();\n\nexport const ToolPolicySetSchema = z\n .object({\n builtin: z.record(z.string().min(1), ToolPolicySchema).default({}),\n mcp: z\n .object({\n servers: z.record(z.string().min(1), ToolPolicySchema).optional(),\n tools: z.record(z.string().min(1), ToolPolicySchema).optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .default({ builtin: {} });\n\nexport const SkillPolicySchema = z\n .object({\n mode: z.enum(['all', 'allowlist', 'denylist', 'off']).default('all'),\n allow: z.array(z.string().min(1)).optional(),\n deny: z.array(z.string().min(1)).optional(),\n })\n .strict()\n .default({ mode: 'all' });\n\nexport const DreamingPhasePolicySchema = z\n .object({\n enabled: z.boolean().optional(),\n cron: z.string().min(1).optional(),\n })\n .strict();\n\nexport const DreamingLightPolicySchema = DreamingPhasePolicySchema.extend({\n lookbackDays: z.number().int().positive().optional(),\n limit: z.number().int().nonnegative().optional(),\n dedupeSimilarity: z.number().min(0).max(1).optional(),\n}).strict();\n\nexport const DreamingDeepPolicySchema = DreamingPhasePolicySchema.extend({\n minScore: z.number().min(0).max(1).optional(),\n minRecallCount: z.number().int().positive().optional(),\n minUniqueQueries: z.number().int().positive().optional(),\n limit: z.number().int().nonnegative().optional(),\n recencyHalfLifeDays: z.number().positive().optional(),\n maxAgeDays: z.number().positive().optional(),\n}).strict();\n\nexport const DreamingRemPolicySchema = DreamingPhasePolicySchema.extend({\n lookbackDays: z.number().int().positive().optional(),\n limit: z.number().int().nonnegative().optional(),\n minPatternStrength: z.number().min(0).max(1).optional(),\n}).strict();\n\nexport const DreamingPolicySchema = z\n .object({\n enabled: z.boolean().default(false),\n frequency: z.string().min(1).optional(),\n timezone: z.string().optional(),\n phases: z\n .object({\n light: DreamingLightPolicySchema.optional(),\n deep: DreamingDeepPolicySchema.optional(),\n rem: DreamingRemPolicySchema.optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional();\n\nexport const MemoryPolicySchema = z\n .object({\n mode: z.enum(['off', 'readOnly', 'confirmWrite', 'auto']).default('off'),\n sources: z\n .array(z.enum(['session', 'userProfile', 'agentProfile', 'curated', 'workspace']))\n .default(['session']),\n writePolicy: z\n .object({\n userProfile: z.enum(['deny', 'confirm', 'allow']).optional(),\n agentProfile: z.enum(['deny', 'confirm', 'allow']).optional(),\n curated: z.enum(['deny', 'confirm', 'allow']).optional(),\n workspace: z.enum(['deny', 'confirm', 'allow']).optional(),\n })\n .strict()\n .optional(),\n retention: z\n .object({\n compaction: z.boolean().default(true),\n maxAgeDays: z.number().int().positive().optional(),\n maxItems: z.number().int().positive().optional(),\n })\n .strict()\n .optional(),\n privacy: z\n .object({\n crossAgentSharing: z.enum(['deny', 'readOnly', 'allow']).default('deny'),\n sensitiveWritePolicy: z.enum(['deny', 'confirm', 'allow']).default('confirm'),\n })\n .strict()\n .optional(),\n providerRouting: z\n .object({\n searchStrategy: z\n .enum(['local-first', 'external-first', 'fanout', 'local-only', 'external-only'])\n .default('fanout'),\n writeStrategy: z\n .enum(['local-first', 'external-first', 'write-through', 'local-only', 'external-only'])\n .default('local-first'),\n allowExternalWrites: z.boolean().default(false),\n allowedProviderIds: z.array(z.string().min(1)).optional(),\n autoWriteKinds: z\n .array(\n z.enum([\n 'user_profile',\n 'agent_note',\n 'workspace_fact',\n 'daily_note',\n 'session_summary',\n 'derived_insight',\n ]),\n )\n .optional(),\n })\n .strict()\n .optional(),\n dreaming: DreamingPolicySchema,\n })\n .strict()\n .default({ mode: 'off', sources: ['session'] });\n\nexport const WorkflowPolicySchema = z\n .object({\n default: z.string().min(1).optional(),\n allowed: z.array(z.string().min(1)).optional(),\n suggested: z\n .array(\n z\n .object({\n intent: z.string().min(1),\n workflow: z.string().min(1),\n })\n .strict(),\n )\n .optional(),\n })\n .strict()\n .default({});\n\nexport const BoundaryPolicySchema = z\n .object({\n requiresConfirmation: z.array(z.string().min(1)).default([]),\n forbidden: z.array(z.string().min(1)).default([]),\n escalation: z.array(z.string().min(1)).default([]),\n })\n .strict()\n .default({ requiresConfirmation: [], forbidden: [], escalation: [] });\n\nexport const WorkspacePolicySchema = z\n .object({\n root: z.string().min(1),\n })\n .strict();\n\nexport const RuntimePolicySchema = z\n .object({\n maxTurns: z.number().int().positive().optional(),\n timeoutMs: z.number().int().positive().optional(),\n maxToolFailuresPerTurn: z.number().int().positive().optional(),\n })\n .strict()\n .optional();\n\nexport const PromptPolicySchema = z\n .object({\n customInstructions: z.string().optional(),\n })\n .strict()\n .optional();\n\nexport const AgentIdentitySchema = z\n .object({\n name: z.string().min(1),\n description: z.string().optional(),\n role: z.string().min(1),\n language: z.string().min(1).default('en'),\n tone: z.string().min(1).default('direct'),\n avatar: z.string().optional(),\n })\n .strict();\n\nexport const AgentResponsibilitiesSchema = z\n .object({\n primary: z.array(z.string().min(1)).min(1),\n secondary: z.array(z.string().min(1)).optional(),\n outOfScope: z.array(z.string().min(1)).optional(),\n })\n .strict();\n\nexport const AgentManifestSchema = z\n .object({\n id: IdSchema,\n enabled: z.boolean().default(true),\n extends: z.array(IdSchema).optional(),\n identity: AgentIdentitySchema,\n responsibilities: AgentResponsibilitiesSchema,\n workspace: WorkspacePolicySchema,\n models: ModelPolicySchema,\n tools: ToolPolicySetSchema,\n skills: SkillPolicySchema,\n memory: MemoryPolicySchema,\n workflows: WorkflowPolicySchema,\n boundaries: BoundaryPolicySchema,\n runtime: RuntimePolicySchema,\n prompt: PromptPolicySchema,\n })\n .strict();\n\nexport const CapabilityPresetSchema = z\n .object({\n id: IdSchema,\n name: z.string().min(1),\n description: z.string().optional(),\n version: z.number().int().positive().default(1),\n extends: z.array(IdSchema).optional(),\n models: ModelPolicyPatchSchema.optional(),\n tools: ToolPolicySetSchema.optional(),\n skills: SkillPolicySchema.optional(),\n memory: MemoryPolicySchema.optional(),\n workflows: WorkflowPolicySchema.optional(),\n boundaries: BoundaryPolicySchema.optional(),\n runtime: RuntimePolicySchema,\n locks: z.array(z.string().min(1)).optional(),\n })\n .strict();\n\nexport type AgentManifest = z.infer<typeof AgentManifestSchema>;\nexport type CapabilityPreset = z.infer<typeof CapabilityPresetSchema>;\nexport type EffectiveAgentManifest = AgentManifest;\nexport type ToolPolicy = z.infer<typeof ToolPolicySchema>;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AgentManifest, CapabilityPreset, EffectiveAgentManifest } from './schema.js';
|
|
2
|
+
export type ManifestIssueSeverity = 'error' | 'warning';
|
|
3
|
+
export interface ManifestIssue {
|
|
4
|
+
severity: ManifestIssueSeverity;
|
|
5
|
+
path: string;
|
|
6
|
+
message: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ManifestCatalogs {
|
|
9
|
+
tools?: Iterable<string>;
|
|
10
|
+
skills?: Iterable<string>;
|
|
11
|
+
workflows?: Iterable<string>;
|
|
12
|
+
mcpServers?: Iterable<string>;
|
|
13
|
+
}
|
|
14
|
+
export interface ValidateManifestParams {
|
|
15
|
+
agent: AgentManifest;
|
|
16
|
+
presets?: Record<string, CapabilityPreset>;
|
|
17
|
+
catalogs?: ManifestCatalogs;
|
|
18
|
+
}
|
|
19
|
+
export interface ValidateManifestResult {
|
|
20
|
+
ok: boolean;
|
|
21
|
+
manifest?: EffectiveAgentManifest;
|
|
22
|
+
issues: ManifestIssue[];
|
|
23
|
+
}
|
|
24
|
+
export declare function validateAgentManifest(params: ValidateManifestParams): ValidateManifestResult;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { resolveEffectiveAgentManifest } from "./resolver.js";
|
|
2
|
+
//#region src/agent-manifest/validator.ts
|
|
3
|
+
function toSet(values) {
|
|
4
|
+
if (!values) return void 0;
|
|
5
|
+
return new Set([...values].map((value) => value.toLowerCase()));
|
|
6
|
+
}
|
|
7
|
+
function hasValue(set, value) {
|
|
8
|
+
return set === void 0 || set.has(value.toLowerCase());
|
|
9
|
+
}
|
|
10
|
+
function addIssue(issues, severity, path, message) {
|
|
11
|
+
issues.push({
|
|
12
|
+
severity,
|
|
13
|
+
path,
|
|
14
|
+
message
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function validateModels(manifest, issues) {
|
|
18
|
+
if (!manifest.models.roles[manifest.models.defaultRole]) addIssue(issues, "error", "models.defaultRole", `defaultRole "${manifest.models.defaultRole}" does not exist in models.roles`);
|
|
19
|
+
}
|
|
20
|
+
function validateTools(manifest, issues, catalogs) {
|
|
21
|
+
const tools = toSet(catalogs.tools);
|
|
22
|
+
for (const [name, policy] of Object.entries(manifest.tools.builtin)) {
|
|
23
|
+
if (!hasValue(tools, name)) addIssue(issues, "error", `tools.builtin.${name}`, `tool "${name}" is not in the tool catalog`);
|
|
24
|
+
if (policy.mode === "allow" && policy.scope === "unrestricted") addIssue(issues, "warning", `tools.builtin.${name}.scope`, `tool "${name}" is unrestricted; consider using confirm or a narrower scope`);
|
|
25
|
+
}
|
|
26
|
+
const mcpServers = toSet(catalogs.mcpServers);
|
|
27
|
+
for (const serverName of Object.keys(manifest.tools.mcp?.servers ?? {})) if (!hasValue(mcpServers, serverName)) addIssue(issues, "error", `tools.mcp.servers.${serverName}`, `MCP server "${serverName}" is not configured`);
|
|
28
|
+
}
|
|
29
|
+
function validateSkills(manifest, issues, catalogs) {
|
|
30
|
+
const skills = toSet(catalogs.skills);
|
|
31
|
+
for (const name of manifest.skills.allow ?? []) if (!hasValue(skills, name)) addIssue(issues, "error", `skills.allow`, `skill "${name}" is not installed`);
|
|
32
|
+
for (const name of manifest.skills.deny ?? []) if (!hasValue(skills, name)) addIssue(issues, "warning", `skills.deny`, `skill "${name}" is not installed`);
|
|
33
|
+
if (manifest.skills.mode === "allowlist" && (manifest.skills.allow?.length ?? 0) === 0) addIssue(issues, "warning", "skills.allow", "allowlist mode has no allowed skills");
|
|
34
|
+
}
|
|
35
|
+
function validateMemory(manifest, issues) {
|
|
36
|
+
if (manifest.memory.mode === "off" && manifest.memory.sources.some((source) => source !== "session")) addIssue(issues, "warning", "memory.sources", "memory sources are configured while memory mode is off");
|
|
37
|
+
if (manifest.memory.mode === "auto") {
|
|
38
|
+
const privacy = manifest.memory.privacy;
|
|
39
|
+
if (!privacy || privacy.sensitiveWritePolicy === "allow") addIssue(issues, "warning", "memory.privacy", "auto memory writes should configure sensitiveWritePolicy");
|
|
40
|
+
}
|
|
41
|
+
if (manifest.memory.mode !== "off") {
|
|
42
|
+
const policy = manifest.memory.writePolicy ?? {};
|
|
43
|
+
if (!Object.values(policy).some(Boolean) && manifest.memory.mode !== "readOnly") addIssue(issues, "warning", "memory.writePolicy", "write-capable memory mode has no write policy");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function validateWorkflows(manifest, issues, catalogs) {
|
|
47
|
+
const workflows = toSet(catalogs.workflows);
|
|
48
|
+
const check = (path, value) => {
|
|
49
|
+
if (value && !hasValue(workflows, value)) addIssue(issues, "error", path, `workflow "${value}" is not in the workflow catalog`);
|
|
50
|
+
};
|
|
51
|
+
check("workflows.default", manifest.workflows.default);
|
|
52
|
+
for (const [index, value] of (manifest.workflows.allowed ?? []).entries()) check(`workflows.allowed.${index}`, value);
|
|
53
|
+
for (const [index, entry] of (manifest.workflows.suggested ?? []).entries()) check(`workflows.suggested.${index}.workflow`, entry.workflow);
|
|
54
|
+
}
|
|
55
|
+
function validateAgentManifest(params) {
|
|
56
|
+
const issues = [];
|
|
57
|
+
let manifest;
|
|
58
|
+
try {
|
|
59
|
+
manifest = resolveEffectiveAgentManifest({
|
|
60
|
+
agent: params.agent,
|
|
61
|
+
presets: params.presets
|
|
62
|
+
}).manifest;
|
|
63
|
+
} catch (error) {
|
|
64
|
+
return {
|
|
65
|
+
ok: false,
|
|
66
|
+
issues: [{
|
|
67
|
+
severity: "error",
|
|
68
|
+
path: "manifest",
|
|
69
|
+
message: error instanceof Error ? error.message : String(error)
|
|
70
|
+
}]
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
validateModels(manifest, issues);
|
|
74
|
+
validateTools(manifest, issues, params.catalogs ?? {});
|
|
75
|
+
validateSkills(manifest, issues, params.catalogs ?? {});
|
|
76
|
+
validateMemory(manifest, issues);
|
|
77
|
+
validateWorkflows(manifest, issues, params.catalogs ?? {});
|
|
78
|
+
return {
|
|
79
|
+
ok: issues.every((issue) => issue.severity !== "error"),
|
|
80
|
+
manifest,
|
|
81
|
+
issues
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
export { validateAgentManifest };
|
|
86
|
+
|
|
87
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","names":[],"sources":["../../../src/agent-manifest/validator.ts"],"sourcesContent":["import type { AgentManifest, CapabilityPreset, EffectiveAgentManifest } from './schema.js';\nimport { resolveEffectiveAgentManifest } from './resolver.js';\n\nexport type ManifestIssueSeverity = 'error' | 'warning';\n\nexport interface ManifestIssue {\n severity: ManifestIssueSeverity;\n path: string;\n message: string;\n}\n\nexport interface ManifestCatalogs {\n tools?: Iterable<string>;\n skills?: Iterable<string>;\n workflows?: Iterable<string>;\n mcpServers?: Iterable<string>;\n}\n\nexport interface ValidateManifestParams {\n agent: AgentManifest;\n presets?: Record<string, CapabilityPreset>;\n catalogs?: ManifestCatalogs;\n}\n\nexport interface ValidateManifestResult {\n ok: boolean;\n manifest?: EffectiveAgentManifest;\n issues: ManifestIssue[];\n}\n\nfunction toSet(values: Iterable<string> | undefined): Set<string> | undefined {\n if (!values) return undefined;\n return new Set([...values].map((value) => value.toLowerCase()));\n}\n\nfunction hasValue(set: Set<string> | undefined, value: string): boolean {\n return set === undefined || set.has(value.toLowerCase());\n}\n\nfunction addIssue(issues: ManifestIssue[], severity: ManifestIssueSeverity, path: string, message: string): void {\n issues.push({ severity, path, message });\n}\n\nfunction validateModels(manifest: EffectiveAgentManifest, issues: ManifestIssue[]): void {\n if (!manifest.models.roles[manifest.models.defaultRole]) {\n addIssue(\n issues,\n 'error',\n 'models.defaultRole',\n `defaultRole \"${manifest.models.defaultRole}\" does not exist in models.roles`,\n );\n }\n}\n\nfunction validateTools(manifest: EffectiveAgentManifest, issues: ManifestIssue[], catalogs: ManifestCatalogs): void {\n const tools = toSet(catalogs.tools);\n for (const [name, policy] of Object.entries(manifest.tools.builtin)) {\n if (!hasValue(tools, name)) {\n addIssue(issues, 'error', `tools.builtin.${name}`, `tool \"${name}\" is not in the tool catalog`);\n }\n if (policy.mode === 'allow' && policy.scope === 'unrestricted') {\n addIssue(\n issues,\n 'warning',\n `tools.builtin.${name}.scope`,\n `tool \"${name}\" is unrestricted; consider using confirm or a narrower scope`,\n );\n }\n }\n\n const mcpServers = toSet(catalogs.mcpServers);\n for (const serverName of Object.keys(manifest.tools.mcp?.servers ?? {})) {\n if (!hasValue(mcpServers, serverName)) {\n addIssue(issues, 'error', `tools.mcp.servers.${serverName}`, `MCP server \"${serverName}\" is not configured`);\n }\n }\n}\n\nfunction validateSkills(manifest: EffectiveAgentManifest, issues: ManifestIssue[], catalogs: ManifestCatalogs): void {\n const skills = toSet(catalogs.skills);\n for (const name of manifest.skills.allow ?? []) {\n if (!hasValue(skills, name)) {\n addIssue(issues, 'error', `skills.allow`, `skill \"${name}\" is not installed`);\n }\n }\n for (const name of manifest.skills.deny ?? []) {\n if (!hasValue(skills, name)) {\n addIssue(issues, 'warning', `skills.deny`, `skill \"${name}\" is not installed`);\n }\n }\n if (manifest.skills.mode === 'allowlist' && (manifest.skills.allow?.length ?? 0) === 0) {\n addIssue(issues, 'warning', 'skills.allow', 'allowlist mode has no allowed skills');\n }\n}\n\nfunction validateMemory(manifest: EffectiveAgentManifest, issues: ManifestIssue[]): void {\n if (manifest.memory.mode === 'off' && manifest.memory.sources.some((source) => source !== 'session')) {\n addIssue(issues, 'warning', 'memory.sources', 'memory sources are configured while memory mode is off');\n }\n if (manifest.memory.mode === 'auto') {\n const privacy = manifest.memory.privacy;\n if (!privacy || privacy.sensitiveWritePolicy === 'allow') {\n addIssue(issues, 'warning', 'memory.privacy', 'auto memory writes should configure sensitiveWritePolicy');\n }\n }\n if (manifest.memory.mode !== 'off') {\n const policy = manifest.memory.writePolicy ?? {};\n const hasWritePolicy = Object.values(policy).some(Boolean);\n if (!hasWritePolicy && manifest.memory.mode !== 'readOnly') {\n addIssue(issues, 'warning', 'memory.writePolicy', 'write-capable memory mode has no write policy');\n }\n }\n}\n\nfunction validateWorkflows(manifest: EffectiveAgentManifest, issues: ManifestIssue[], catalogs: ManifestCatalogs): void {\n const workflows = toSet(catalogs.workflows);\n const check = (path: string, value: string | undefined) => {\n if (value && !hasValue(workflows, value)) {\n addIssue(issues, 'error', path, `workflow \"${value}\" is not in the workflow catalog`);\n }\n };\n check('workflows.default', manifest.workflows.default);\n for (const [index, value] of (manifest.workflows.allowed ?? []).entries()) {\n check(`workflows.allowed.${index}`, value);\n }\n for (const [index, entry] of (manifest.workflows.suggested ?? []).entries()) {\n check(`workflows.suggested.${index}.workflow`, entry.workflow);\n }\n}\n\nexport function validateAgentManifest(params: ValidateManifestParams): ValidateManifestResult {\n const issues: ManifestIssue[] = [];\n let manifest: EffectiveAgentManifest;\n try {\n manifest = resolveEffectiveAgentManifest({\n agent: params.agent,\n presets: params.presets,\n }).manifest;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return {\n ok: false,\n issues: [{ severity: 'error', path: 'manifest', message }],\n };\n }\n\n validateModels(manifest, issues);\n validateTools(manifest, issues, params.catalogs ?? {});\n validateSkills(manifest, issues, params.catalogs ?? {});\n validateMemory(manifest, issues);\n validateWorkflows(manifest, issues, params.catalogs ?? {});\n\n return {\n ok: issues.every((issue) => issue.severity !== 'error'),\n manifest,\n issues,\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';
|
|
2
|
+
export type BoundaryDecision = 'allow' | 'confirm' | 'deny' | 'escalate';
|
|
3
|
+
export interface BoundaryCheckParams {
|
|
4
|
+
manifest: EffectiveAgentManifest;
|
|
5
|
+
action: string;
|
|
6
|
+
detail?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface BoundaryCheckResult {
|
|
9
|
+
decision: BoundaryDecision;
|
|
10
|
+
matchedRule?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function checkBoundary(params: BoundaryCheckParams): BoundaryCheckResult;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/agent-runtime/boundary-guard.ts
|
|
2
|
+
function matchesRule(action, detail, rule) {
|
|
3
|
+
return `${action}\n${detail ?? ""}`.toLowerCase().includes(rule.toLowerCase());
|
|
4
|
+
}
|
|
5
|
+
function checkBoundary(params) {
|
|
6
|
+
for (const rule of params.manifest.boundaries.forbidden) if (matchesRule(params.action, params.detail, rule)) return {
|
|
7
|
+
decision: "deny",
|
|
8
|
+
matchedRule: rule
|
|
9
|
+
};
|
|
10
|
+
for (const rule of params.manifest.boundaries.escalation) if (matchesRule(params.action, params.detail, rule)) return {
|
|
11
|
+
decision: "escalate",
|
|
12
|
+
matchedRule: rule
|
|
13
|
+
};
|
|
14
|
+
for (const rule of params.manifest.boundaries.requiresConfirmation) if (matchesRule(params.action, params.detail, rule)) return {
|
|
15
|
+
decision: "confirm",
|
|
16
|
+
matchedRule: rule
|
|
17
|
+
};
|
|
18
|
+
return { decision: "allow" };
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { checkBoundary };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=boundary-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boundary-guard.js","names":[],"sources":["../../../src/agent-runtime/boundary-guard.ts"],"sourcesContent":["import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';\n\nexport type BoundaryDecision = 'allow' | 'confirm' | 'deny' | 'escalate';\n\nexport interface BoundaryCheckParams {\n manifest: EffectiveAgentManifest;\n action: string;\n detail?: string;\n}\n\nexport interface BoundaryCheckResult {\n decision: BoundaryDecision;\n matchedRule?: string;\n}\n\nfunction matchesRule(action: string, detail: string | undefined, rule: string): boolean {\n const haystack = `${action}\\n${detail ?? ''}`.toLowerCase();\n return haystack.includes(rule.toLowerCase());\n}\n\nexport function checkBoundary(params: BoundaryCheckParams): BoundaryCheckResult {\n for (const rule of params.manifest.boundaries.forbidden) {\n if (matchesRule(params.action, params.detail, rule)) {\n return { decision: 'deny', matchedRule: rule };\n }\n }\n for (const rule of params.manifest.boundaries.escalation) {\n if (matchesRule(params.action, params.detail, rule)) {\n return { decision: 'escalate', matchedRule: rule };\n }\n }\n for (const rule of params.manifest.boundaries.requiresConfirmation) {\n if (matchesRule(params.action, params.detail, rule)) {\n return { decision: 'confirm', matchedRule: rule };\n }\n }\n return { decision: 'allow' };\n}\n"],"mappings":";AAeA,SAAS,YAAY,QAAgB,QAA4B,MAAuB;AAEtF,QADiB,GAAG,OAAO,IAAI,UAAU,KAAK,aAC/B,CAAC,SAAS,KAAK,aAAa,CAAC;;AAG9C,SAAgB,cAAc,QAAkD;AAC9E,MAAK,MAAM,QAAQ,OAAO,SAAS,WAAW,UAC5C,KAAI,YAAY,OAAO,QAAQ,OAAO,QAAQ,KAAK,CACjD,QAAO;EAAE,UAAU;EAAQ,aAAa;EAAM;AAGlD,MAAK,MAAM,QAAQ,OAAO,SAAS,WAAW,WAC5C,KAAI,YAAY,OAAO,QAAQ,OAAO,QAAQ,KAAK,CACjD,QAAO;EAAE,UAAU;EAAY,aAAa;EAAM;AAGtD,MAAK,MAAM,QAAQ,OAAO,SAAS,WAAW,qBAC5C,KAAI,YAAY,OAAO,QAAQ,OAAO,QAAQ,KAAK,CACjD,QAAO;EAAE,UAAU;EAAW,aAAa;EAAM;AAGrD,QAAO,EAAE,UAAU,SAAS"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { checkBoundary } from "./boundary-guard.js";
|
|
2
|
+
import { resolveModelRole } from "./model-router.js";
|
|
3
|
+
import { buildRuntimeToolRegistry } from "./tool-registry.js";
|
|
4
|
+
import { buildMemoryRuntime } from "./memory-runtime.js";
|
|
5
|
+
import { resolveWorkflow, validateWorkflowForRuntime } from "./workflow-runtime.js";
|
|
6
|
+
import { buildAgentRuntimeProfile } from "./runtime-profile.js";
|
|
7
|
+
import { appendAgentRunEvent, createAgentRunTrace, finishAgentRunTrace, hashEffectiveManifest } from "./run-trace.js";
|
|
8
|
+
export { appendAgentRunEvent, buildAgentRuntimeProfile, buildMemoryRuntime, buildRuntimeToolRegistry, checkBoundary, createAgentRunTrace, finishAgentRunTrace, hashEffectiveManifest, resolveModelRole, resolveWorkflow, validateWorkflowForRuntime };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';
|
|
2
|
+
export type MemorySource = 'session' | 'userProfile' | 'agentProfile' | 'curated' | 'workspace';
|
|
3
|
+
export type MemoryWriteTarget = 'userProfile' | 'agentProfile' | 'curated' | 'workspace';
|
|
4
|
+
export type MemoryWriteDecision = 'allow' | 'confirm' | 'deny';
|
|
5
|
+
export interface MemoryCandidate {
|
|
6
|
+
target: MemoryWriteTarget;
|
|
7
|
+
content: string;
|
|
8
|
+
source: string;
|
|
9
|
+
confidence?: number;
|
|
10
|
+
sensitive?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface MemoryWriteCheckResult {
|
|
13
|
+
decision: MemoryWriteDecision;
|
|
14
|
+
reason: string;
|
|
15
|
+
}
|
|
16
|
+
export interface MemoryRuntime {
|
|
17
|
+
readableSources: MemorySource[];
|
|
18
|
+
canRead: (source: MemorySource) => boolean;
|
|
19
|
+
checkWrite: (candidate: MemoryCandidate) => MemoryWriteCheckResult;
|
|
20
|
+
}
|
|
21
|
+
export declare function buildMemoryRuntime(manifest: EffectiveAgentManifest): MemoryRuntime;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//#region src/agent-runtime/memory-runtime.ts
|
|
2
|
+
const READ_ONLY_MODES = new Set(["readOnly"]);
|
|
3
|
+
function normalizeConfidence(value) {
|
|
4
|
+
if (typeof value !== "number" || !Number.isFinite(value)) return .5;
|
|
5
|
+
return Math.max(0, Math.min(1, value));
|
|
6
|
+
}
|
|
7
|
+
function buildMemoryRuntime(manifest) {
|
|
8
|
+
const readableSources = manifest.memory.mode === "off" ? [] : [...manifest.memory.sources];
|
|
9
|
+
const sourceSet = new Set(readableSources);
|
|
10
|
+
return {
|
|
11
|
+
readableSources,
|
|
12
|
+
canRead: (source) => sourceSet.has(source),
|
|
13
|
+
checkWrite: (candidate) => {
|
|
14
|
+
if (manifest.memory.mode === "off") return {
|
|
15
|
+
decision: "deny",
|
|
16
|
+
reason: "memory is disabled"
|
|
17
|
+
};
|
|
18
|
+
if (READ_ONLY_MODES.has(manifest.memory.mode)) return {
|
|
19
|
+
decision: "deny",
|
|
20
|
+
reason: "memory is read-only"
|
|
21
|
+
};
|
|
22
|
+
if (!candidate.content.trim()) return {
|
|
23
|
+
decision: "deny",
|
|
24
|
+
reason: "memory content is empty"
|
|
25
|
+
};
|
|
26
|
+
if (normalizeConfidence(candidate.confidence) < .3) return {
|
|
27
|
+
decision: "deny",
|
|
28
|
+
reason: "memory confidence is too low"
|
|
29
|
+
};
|
|
30
|
+
const sensitivePolicy = manifest.memory.privacy?.sensitiveWritePolicy ?? "confirm";
|
|
31
|
+
if (candidate.sensitive && sensitivePolicy !== "allow") return {
|
|
32
|
+
decision: sensitivePolicy,
|
|
33
|
+
reason: "memory candidate is sensitive"
|
|
34
|
+
};
|
|
35
|
+
const targetPolicy = manifest.memory.writePolicy?.[candidate.target] ?? "deny";
|
|
36
|
+
if (manifest.memory.mode === "confirmWrite" && targetPolicy === "allow") return {
|
|
37
|
+
decision: "confirm",
|
|
38
|
+
reason: "agent memory mode requires confirmation"
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
decision: targetPolicy,
|
|
42
|
+
reason: `target policy is ${targetPolicy}`
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { buildMemoryRuntime };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=memory-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-runtime.js","names":[],"sources":["../../../src/agent-runtime/memory-runtime.ts"],"sourcesContent":["import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';\n\nexport type MemorySource = 'session' | 'userProfile' | 'agentProfile' | 'curated' | 'workspace';\nexport type MemoryWriteTarget = 'userProfile' | 'agentProfile' | 'curated' | 'workspace';\nexport type MemoryWriteDecision = 'allow' | 'confirm' | 'deny';\n\nexport interface MemoryCandidate {\n target: MemoryWriteTarget;\n content: string;\n source: string;\n confidence?: number;\n sensitive?: boolean;\n}\n\nexport interface MemoryWriteCheckResult {\n decision: MemoryWriteDecision;\n reason: string;\n}\n\nexport interface MemoryRuntime {\n readableSources: MemorySource[];\n canRead: (source: MemorySource) => boolean;\n checkWrite: (candidate: MemoryCandidate) => MemoryWriteCheckResult;\n}\n\nconst READ_ONLY_MODES = new Set(['readOnly']);\n\nfunction normalizeConfidence(value: number | undefined): number {\n if (typeof value !== 'number' || !Number.isFinite(value)) return 0.5;\n return Math.max(0, Math.min(1, value));\n}\n\nexport function buildMemoryRuntime(manifest: EffectiveAgentManifest): MemoryRuntime {\n const readableSources = manifest.memory.mode === 'off' ? [] : [...manifest.memory.sources];\n const sourceSet = new Set<MemorySource>(readableSources);\n\n return {\n readableSources,\n canRead: (source) => sourceSet.has(source),\n checkWrite: (candidate) => {\n if (manifest.memory.mode === 'off') {\n return { decision: 'deny', reason: 'memory is disabled' };\n }\n if (READ_ONLY_MODES.has(manifest.memory.mode)) {\n return { decision: 'deny', reason: 'memory is read-only' };\n }\n if (!candidate.content.trim()) {\n return { decision: 'deny', reason: 'memory content is empty' };\n }\n const confidence = normalizeConfidence(candidate.confidence);\n if (confidence < 0.3) {\n return { decision: 'deny', reason: 'memory confidence is too low' };\n }\n const sensitivePolicy = manifest.memory.privacy?.sensitiveWritePolicy ?? 'confirm';\n if (candidate.sensitive && sensitivePolicy !== 'allow') {\n return {\n decision: sensitivePolicy,\n reason: 'memory candidate is sensitive',\n };\n }\n const targetPolicy = manifest.memory.writePolicy?.[candidate.target] ?? 'deny';\n if (manifest.memory.mode === 'confirmWrite' && targetPolicy === 'allow') {\n return { decision: 'confirm', reason: 'agent memory mode requires confirmation' };\n }\n return {\n decision: targetPolicy,\n reason: `target policy is ${targetPolicy}`,\n };\n },\n };\n}\n"],"mappings":";AAyBA,MAAM,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC;AAE7C,SAAS,oBAAoB,OAAmC;AAC9D,KAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,MAAM,CAAE,QAAO;AACjE,QAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,MAAM,CAAC;;AAGxC,SAAgB,mBAAmB,UAAiD;CAClF,MAAM,kBAAkB,SAAS,OAAO,SAAS,QAAQ,EAAE,GAAG,CAAC,GAAG,SAAS,OAAO,QAAQ;CAC1F,MAAM,YAAY,IAAI,IAAkB,gBAAgB;AAExD,QAAO;EACL;EACA,UAAU,WAAW,UAAU,IAAI,OAAO;EAC1C,aAAa,cAAc;AACzB,OAAI,SAAS,OAAO,SAAS,MAC3B,QAAO;IAAE,UAAU;IAAQ,QAAQ;IAAsB;AAE3D,OAAI,gBAAgB,IAAI,SAAS,OAAO,KAAK,CAC3C,QAAO;IAAE,UAAU;IAAQ,QAAQ;IAAuB;AAE5D,OAAI,CAAC,UAAU,QAAQ,MAAM,CAC3B,QAAO;IAAE,UAAU;IAAQ,QAAQ;IAA2B;AAGhE,OADmB,oBAAoB,UAAU,WACnC,GAAG,GACf,QAAO;IAAE,UAAU;IAAQ,QAAQ;IAAgC;GAErE,MAAM,kBAAkB,SAAS,OAAO,SAAS,wBAAwB;AACzE,OAAI,UAAU,aAAa,oBAAoB,QAC7C,QAAO;IACL,UAAU;IACV,QAAQ;IACT;GAEH,MAAM,eAAe,SAAS,OAAO,cAAc,UAAU,WAAW;AACxE,OAAI,SAAS,OAAO,SAAS,kBAAkB,iBAAiB,QAC9D,QAAO;IAAE,UAAU;IAAW,QAAQ;IAA2C;AAEnF,UAAO;IACL,UAAU;IACV,QAAQ,oBAAoB;IAC7B;;EAEJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';
|
|
2
|
+
export interface ResolveModelRoleParams {
|
|
3
|
+
manifest: EffectiveAgentManifest;
|
|
4
|
+
role?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ResolvedModelRole {
|
|
7
|
+
role: string;
|
|
8
|
+
model: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function resolveModelRole(params: ResolveModelRoleParams): ResolvedModelRole;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/agent-runtime/model-router.ts
|
|
2
|
+
function resolveModelRole(params) {
|
|
3
|
+
const requested = params.role?.trim() || params.manifest.models.defaultRole;
|
|
4
|
+
const role = params.manifest.models.roles[requested] ? requested : params.manifest.models.defaultRole;
|
|
5
|
+
const entry = params.manifest.models.roles[role];
|
|
6
|
+
if (!entry) throw new Error(`Model role "${role}" is not configured`);
|
|
7
|
+
return {
|
|
8
|
+
role,
|
|
9
|
+
model: entry.model,
|
|
10
|
+
...entry.description !== void 0 ? { description: entry.description } : {}
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { resolveModelRole };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=model-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-router.js","names":[],"sources":["../../../src/agent-runtime/model-router.ts"],"sourcesContent":["import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';\n\nexport interface ResolveModelRoleParams {\n manifest: EffectiveAgentManifest;\n role?: string;\n}\n\nexport interface ResolvedModelRole {\n role: string;\n model: string;\n description?: string;\n}\n\nexport function resolveModelRole(params: ResolveModelRoleParams): ResolvedModelRole {\n const requested = params.role?.trim() || params.manifest.models.defaultRole;\n const role = params.manifest.models.roles[requested] ? requested : params.manifest.models.defaultRole;\n const entry = params.manifest.models.roles[role];\n if (!entry) {\n throw new Error(`Model role \"${role}\" is not configured`);\n }\n return {\n role,\n model: entry.model,\n ...(entry.description !== undefined ? { description: entry.description } : {}),\n };\n}\n"],"mappings":";AAaA,SAAgB,iBAAiB,QAAmD;CAClF,MAAM,YAAY,OAAO,MAAM,MAAM,IAAI,OAAO,SAAS,OAAO;CAChE,MAAM,OAAO,OAAO,SAAS,OAAO,MAAM,aAAa,YAAY,OAAO,SAAS,OAAO;CAC1F,MAAM,QAAQ,OAAO,SAAS,OAAO,MAAM;AAC3C,KAAI,CAAC,MACH,OAAM,IAAI,MAAM,eAAe,KAAK,qBAAqB;AAE3D,QAAO;EACL;EACA,OAAO,MAAM;EACb,GAAI,MAAM,gBAAgB,KAAA,IAAY,EAAE,aAAa,MAAM,aAAa,GAAG,EAAE;EAC9E"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';
|
|
2
|
+
export type AgentRunStatus = 'running' | 'completed' | 'failed' | 'cancelled';
|
|
3
|
+
export type AgentRunEventType = 'run.started' | 'model.selected' | 'tool.called' | 'memory.read' | 'memory.write.checked' | 'workflow.selected' | 'boundary.checked' | 'run.completed' | 'run.failed';
|
|
4
|
+
export interface AgentRunEvent {
|
|
5
|
+
id: string;
|
|
6
|
+
runId: string;
|
|
7
|
+
type: AgentRunEventType;
|
|
8
|
+
payload: Record<string, unknown>;
|
|
9
|
+
createdAt: string;
|
|
10
|
+
}
|
|
11
|
+
export interface AgentRunTrace {
|
|
12
|
+
id: string;
|
|
13
|
+
agentId: string;
|
|
14
|
+
status: AgentRunStatus;
|
|
15
|
+
effectiveManifestHash: string;
|
|
16
|
+
startedAt: string;
|
|
17
|
+
endedAt?: string;
|
|
18
|
+
events: AgentRunEvent[];
|
|
19
|
+
}
|
|
20
|
+
export declare function hashEffectiveManifest(manifest: EffectiveAgentManifest): string;
|
|
21
|
+
export declare function createAgentRunTrace(params: {
|
|
22
|
+
agentId: string;
|
|
23
|
+
manifest: EffectiveAgentManifest;
|
|
24
|
+
now?: Date;
|
|
25
|
+
}): AgentRunTrace;
|
|
26
|
+
export declare function appendAgentRunEvent(trace: AgentRunTrace, type: AgentRunEventType, payload: Record<string, unknown>, now?: Date): AgentRunTrace;
|
|
27
|
+
export declare function finishAgentRunTrace(trace: AgentRunTrace, status: Exclude<AgentRunStatus, 'running'>, payload?: Record<string, unknown>, now?: Date): AgentRunTrace;
|