@zhin.js/agent 0.1.28 → 0.1.30
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 +1 -1
- package/lib/agent-prompt/resolver.d.ts.map +1 -1
- package/lib/agent-prompt/resolver.js +0 -1
- package/lib/agent-prompt/resolver.js.map +1 -1
- package/lib/ai-event-bus.d.ts.map +1 -1
- package/lib/ai-event-bus.js +19 -12
- package/lib/ai-event-bus.js.map +1 -1
- package/lib/assistant/config.d.ts +67 -0
- package/lib/assistant/config.d.ts.map +1 -0
- package/lib/assistant/config.js +47 -0
- package/lib/assistant/config.js.map +1 -0
- package/lib/assistant/domains/home-assistant.d.ts +37 -0
- package/lib/assistant/domains/home-assistant.d.ts.map +1 -0
- package/lib/assistant/domains/home-assistant.js +113 -0
- package/lib/assistant/domains/home-assistant.js.map +1 -0
- package/lib/assistant/event-ingress.d.ts +28 -0
- package/lib/assistant/event-ingress.d.ts.map +1 -0
- package/lib/assistant/event-ingress.js +132 -0
- package/lib/assistant/event-ingress.js.map +1 -0
- package/lib/assistant/event-types.d.ts +28 -0
- package/lib/assistant/event-types.d.ts.map +1 -0
- package/lib/assistant/event-types.js +2 -0
- package/lib/assistant/event-types.js.map +1 -0
- package/lib/assistant/home-config.d.ts +36 -0
- package/lib/assistant/home-config.d.ts.map +1 -0
- package/lib/assistant/home-config.js +21 -0
- package/lib/assistant/home-config.js.map +1 -0
- package/lib/assistant/home-mcp-bridge.d.ts +12 -0
- package/lib/assistant/home-mcp-bridge.d.ts.map +1 -0
- package/lib/assistant/home-mcp-bridge.js +26 -0
- package/lib/assistant/home-mcp-bridge.js.map +1 -0
- package/lib/assistant/home-policy.d.ts +16 -0
- package/lib/assistant/home-policy.d.ts.map +1 -0
- package/lib/assistant/home-policy.js +46 -0
- package/lib/assistant/home-policy.js.map +1 -0
- package/lib/assistant/home-tools.d.ts +15 -0
- package/lib/assistant/home-tools.d.ts.map +1 -0
- package/lib/assistant/home-tools.js +141 -0
- package/lib/assistant/home-tools.js.map +1 -0
- package/lib/assistant/index.d.ts +31 -0
- package/lib/assistant/index.d.ts.map +1 -0
- package/lib/assistant/index.js +18 -0
- package/lib/assistant/index.js.map +1 -0
- package/lib/assistant/job-engine.d.ts +40 -0
- package/lib/assistant/job-engine.d.ts.map +1 -0
- package/lib/assistant/job-engine.js +155 -0
- package/lib/assistant/job-engine.js.map +1 -0
- package/lib/assistant/job-scheduler.d.ts +6 -0
- package/lib/assistant/job-scheduler.d.ts.map +1 -0
- package/lib/assistant/job-scheduler.js +59 -0
- package/lib/assistant/job-scheduler.js.map +1 -0
- package/lib/assistant/job-store.d.ts +55 -0
- package/lib/assistant/job-store.d.ts.map +1 -0
- package/lib/assistant/job-store.js +280 -0
- package/lib/assistant/job-store.js.map +1 -0
- package/lib/assistant/job-worker.d.ts +20 -0
- package/lib/assistant/job-worker.d.ts.map +1 -0
- package/lib/assistant/job-worker.js +73 -0
- package/lib/assistant/job-worker.js.map +1 -0
- package/lib/assistant/legacy-convert.d.ts +48 -0
- package/lib/assistant/legacy-convert.d.ts.map +1 -0
- package/lib/assistant/legacy-convert.js +108 -0
- package/lib/assistant/legacy-convert.js.map +1 -0
- package/lib/assistant/notification-router.d.ts +34 -0
- package/lib/assistant/notification-router.d.ts.map +1 -0
- package/lib/assistant/notification-router.js +96 -0
- package/lib/assistant/notification-router.js.map +1 -0
- package/lib/assistant/profile-loader.d.ts +29 -0
- package/lib/assistant/profile-loader.d.ts.map +1 -0
- package/lib/assistant/profile-loader.js +168 -0
- package/lib/assistant/profile-loader.js.map +1 -0
- package/lib/assistant/profile-types.d.ts +56 -0
- package/lib/assistant/profile-types.d.ts.map +1 -0
- package/lib/assistant/profile-types.js +9 -0
- package/lib/assistant/profile-types.js.map +1 -0
- package/lib/assistant/runtime-registry.d.ts +20 -0
- package/lib/assistant/runtime-registry.d.ts.map +1 -0
- package/lib/assistant/runtime-registry.js +19 -0
- package/lib/assistant/runtime-registry.js.map +1 -0
- package/lib/assistant/types.d.ts +75 -0
- package/lib/assistant/types.d.ts.map +1 -0
- package/lib/assistant/types.js +6 -0
- package/lib/assistant/types.js.map +1 -0
- package/lib/bootstrap.d.ts +2 -6
- package/lib/bootstrap.d.ts.map +1 -1
- package/lib/bootstrap.js +5 -38
- package/lib/bootstrap.js.map +1 -1
- package/lib/builtin/analyze-media-tool.d.ts +13 -0
- package/lib/builtin/analyze-media-tool.d.ts.map +1 -0
- package/lib/builtin/analyze-media-tool.js +100 -0
- package/lib/builtin/analyze-media-tool.js.map +1 -0
- package/lib/builtin/ask-user-tool.d.ts +1 -1
- package/lib/builtin/ask-user-tool.d.ts.map +1 -1
- package/lib/builtin/ask-user-tool.js +9 -9
- package/lib/builtin/ask-user-tool.js.map +1 -1
- package/lib/builtin/edit-file-tool.d.ts.map +1 -1
- package/lib/builtin/edit-file-tool.js +5 -1
- package/lib/builtin/edit-file-tool.js.map +1 -1
- package/lib/builtin/generate-image-tool.d.ts +21 -0
- package/lib/builtin/generate-image-tool.d.ts.map +1 -0
- package/lib/builtin/generate-image-tool.js +138 -0
- package/lib/builtin/generate-image-tool.js.map +1 -0
- package/lib/builtin/read-file-tool.d.ts +1 -1
- package/lib/builtin/read-file-tool.d.ts.map +1 -1
- package/lib/builtin/read-file-tool.js +2 -7
- package/lib/builtin/read-file-tool.js.map +1 -1
- package/lib/builtin/spawn-task-tool.d.ts +1 -1
- package/lib/builtin/spawn-task-tool.d.ts.map +1 -1
- package/lib/builtin/spawn-task-tool.js +25 -4
- package/lib/builtin/spawn-task-tool.js.map +1 -1
- package/lib/builtin/write-file-tool.d.ts.map +1 -1
- package/lib/builtin/write-file-tool.js +6 -1
- package/lib/builtin/write-file-tool.js.map +1 -1
- package/lib/builtin-tools.d.ts.map +1 -1
- package/lib/builtin-tools.js +2 -0
- package/lib/builtin-tools.js.map +1 -1
- package/lib/common-adapter-tools.d.ts.map +1 -1
- package/lib/common-adapter-tools.js +1 -1
- package/lib/common-adapter-tools.js.map +1 -1
- package/lib/config/agent-binding-registry.d.ts +14 -0
- package/lib/config/agent-binding-registry.d.ts.map +1 -0
- package/lib/config/agent-binding-registry.js +30 -0
- package/lib/config/agent-binding-registry.js.map +1 -0
- package/lib/config/agent-bindings.d.ts +4 -0
- package/lib/config/agent-bindings.d.ts.map +1 -0
- package/lib/config/agent-bindings.js +16 -0
- package/lib/config/agent-bindings.js.map +1 -0
- package/lib/config/normalize-ai-config.d.ts +11 -0
- package/lib/config/normalize-ai-config.d.ts.map +1 -0
- package/lib/config/normalize-ai-config.js +55 -0
- package/lib/config/normalize-ai-config.js.map +1 -0
- package/lib/config/provider-instance.d.ts +5 -0
- package/lib/config/provider-instance.d.ts.map +1 -0
- package/lib/config/provider-instance.js +46 -0
- package/lib/config/provider-instance.js.map +1 -0
- package/lib/config/types.d.ts +35 -0
- package/lib/config/types.d.ts.map +1 -0
- package/lib/config/types.js +2 -0
- package/lib/config/types.js.map +1 -0
- package/lib/config/validate-ai-config.d.ts +3 -0
- package/lib/config/validate-ai-config.d.ts.map +1 -0
- package/lib/config/validate-ai-config.js +35 -0
- package/lib/config/validate-ai-config.js.map +1 -0
- package/lib/cron-engine.d.ts +20 -18
- package/lib/cron-engine.d.ts.map +1 -1
- package/lib/cron-engine.js +42 -18
- package/lib/cron-engine.js.map +1 -1
- package/lib/deferred-worker-runner.d.ts.map +1 -1
- package/lib/deferred-worker-runner.js +0 -1
- package/lib/deferred-worker-runner.js.map +1 -1
- package/lib/discovery/agents.d.ts +2 -0
- package/lib/discovery/agents.d.ts.map +1 -1
- package/lib/discovery/agents.js +5 -0
- package/lib/discovery/agents.js.map +1 -1
- package/lib/discovery/tools.d.ts +1 -1
- package/lib/discovery/tools.d.ts.map +1 -1
- package/lib/discovery/tools.js +7 -7
- package/lib/discovery/tools.js.map +1 -1
- package/lib/hooks.d.ts +0 -1
- package/lib/hooks.d.ts.map +1 -1
- package/lib/hooks.js.map +1 -1
- package/lib/index.d.ts +14 -6
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -3
- package/lib/index.js.map +1 -1
- package/lib/init/activate-ai-database-storage.d.ts +7 -0
- package/lib/init/activate-ai-database-storage.d.ts.map +1 -0
- package/lib/init/activate-ai-database-storage.js +28 -0
- package/lib/init/activate-ai-database-storage.js.map +1 -0
- package/lib/init/create-zhin-agent.d.ts.map +1 -1
- package/lib/init/create-zhin-agent.js +179 -67
- package/lib/init/create-zhin-agent.js.map +1 -1
- package/lib/init/introspection-commands-format.d.ts +40 -0
- package/lib/init/introspection-commands-format.d.ts.map +1 -0
- package/lib/init/introspection-commands-format.js +93 -0
- package/lib/init/introspection-commands-format.js.map +1 -0
- package/lib/init/message-media.d.ts.map +1 -1
- package/lib/init/message-media.js +12 -0
- package/lib/init/message-media.js.map +1 -1
- package/lib/init/output-renderer.d.ts +4 -0
- package/lib/init/output-renderer.d.ts.map +1 -1
- package/lib/init/output-renderer.js +6 -0
- package/lib/init/output-renderer.js.map +1 -1
- package/lib/init/register-ai-trigger.d.ts.map +1 -1
- package/lib/init/register-ai-trigger.js +165 -24
- package/lib/init/register-ai-trigger.js.map +1 -1
- package/lib/init/register-builtin-tools.d.ts.map +1 -1
- package/lib/init/register-builtin-tools.js +13 -3
- package/lib/init/register-builtin-tools.js.map +1 -1
- package/lib/init/register-db-models.d.ts.map +1 -1
- package/lib/init/register-db-models.js +3 -5
- package/lib/init/register-db-models.js.map +1 -1
- package/lib/init/register-db-upgrade.d.ts +1 -4
- package/lib/init/register-db-upgrade.d.ts.map +1 -1
- package/lib/init/register-db-upgrade.js +25 -41
- package/lib/init/register-db-upgrade.js.map +1 -1
- package/lib/init/register-home-tools.d.ts +2 -0
- package/lib/init/register-home-tools.d.ts.map +1 -0
- package/lib/init/register-home-tools.js +51 -0
- package/lib/init/register-home-tools.js.map +1 -0
- package/lib/init/register-introspection-commands.d.ts +3 -0
- package/lib/init/register-introspection-commands.d.ts.map +1 -0
- package/lib/init/register-introspection-commands.js +97 -0
- package/lib/init/register-introspection-commands.js.map +1 -0
- package/lib/init/register-management-tools.d.ts +3 -2
- package/lib/init/register-management-tools.d.ts.map +1 -1
- package/lib/init/register-management-tools.js +43 -14
- package/lib/init/register-management-tools.js.map +1 -1
- package/lib/init/register-mcp-memory-default.d.ts.map +1 -1
- package/lib/init/register-mcp-memory-default.js +1 -0
- package/lib/init/register-mcp-memory-default.js.map +1 -1
- package/lib/init/register-owner-approve-commands.d.ts.map +1 -1
- package/lib/init/register-owner-approve-commands.js +103 -111
- package/lib/init/register-owner-approve-commands.js.map +1 -1
- package/lib/init/register-typing-indicator.d.ts.map +1 -1
- package/lib/init/register-typing-indicator.js +111 -115
- package/lib/init/register-typing-indicator.js.map +1 -1
- package/lib/init.d.ts +0 -1
- package/lib/init.d.ts.map +1 -1
- package/lib/init.js +5 -4
- package/lib/init.js.map +1 -1
- package/lib/media/constants.d.ts +3 -0
- package/lib/media/constants.d.ts.map +1 -0
- package/lib/media/constants.js +3 -0
- package/lib/media/constants.js.map +1 -0
- package/lib/media/deliver-subagent-result.d.ts +15 -0
- package/lib/media/deliver-subagent-result.d.ts.map +1 -0
- package/lib/media/deliver-subagent-result.js +35 -0
- package/lib/media/deliver-subagent-result.js.map +1 -0
- package/lib/media/index.d.ts +14 -0
- package/lib/media/index.d.ts.map +1 -0
- package/lib/media/index.js +14 -0
- package/lib/media/index.js.map +1 -0
- package/lib/media/media-capabilities.d.ts +3 -0
- package/lib/media/media-capabilities.d.ts.map +1 -0
- package/lib/media/media-capabilities.js +15 -0
- package/lib/media/media-capabilities.js.map +1 -0
- package/lib/media/media-normalize.d.ts +10 -0
- package/lib/media/media-normalize.d.ts.map +1 -0
- package/lib/media/media-normalize.js +108 -0
- package/lib/media/media-normalize.js.map +1 -0
- package/lib/media/media-publisher.d.ts +8 -0
- package/lib/media/media-publisher.d.ts.map +1 -0
- package/lib/media/media-publisher.js +254 -0
- package/lib/media/media-publisher.js.map +1 -0
- package/lib/media/media-router.d.ts +7 -0
- package/lib/media/media-router.d.ts.map +1 -0
- package/lib/media/media-router.js +59 -0
- package/lib/media/media-router.js.map +1 -0
- package/lib/media/media-spool.d.ts +3 -0
- package/lib/media/media-spool.d.ts.map +1 -0
- package/lib/media/media-spool.js +25 -0
- package/lib/media/media-spool.js.map +1 -0
- package/lib/media/media-tool-bridge.d.ts +9 -0
- package/lib/media/media-tool-bridge.d.ts.map +1 -0
- package/lib/media/media-tool-bridge.js +61 -0
- package/lib/media/media-tool-bridge.js.map +1 -0
- package/lib/media/media-types.d.ts +50 -0
- package/lib/media/media-types.d.ts.map +1 -0
- package/lib/media/media-types.js +18 -0
- package/lib/media/media-types.js.map +1 -0
- package/lib/media/resolve-config.d.ts +3 -0
- package/lib/media/resolve-config.d.ts.map +1 -0
- package/lib/media/resolve-config.js +32 -0
- package/lib/media/resolve-config.js.map +1 -0
- package/lib/media/subagent-inbound.d.ts +20 -0
- package/lib/media/subagent-inbound.d.ts.map +1 -0
- package/lib/media/subagent-inbound.js +88 -0
- package/lib/media/subagent-inbound.js.map +1 -0
- package/lib/media/subagent-user-delivery.d.ts +23 -0
- package/lib/media/subagent-user-delivery.d.ts.map +1 -0
- package/lib/media/subagent-user-delivery.js +62 -0
- package/lib/media/subagent-user-delivery.js.map +1 -0
- package/lib/media/vision-capability.d.ts +5 -0
- package/lib/media/vision-capability.d.ts.map +1 -0
- package/lib/media/vision-capability.js +19 -0
- package/lib/media/vision-capability.js.map +1 -0
- package/lib/memory-layers.d.ts +57 -0
- package/lib/memory-layers.d.ts.map +1 -0
- package/lib/memory-layers.js +327 -0
- package/lib/memory-layers.js.map +1 -0
- package/lib/monitoring/metrics.d.ts +4 -0
- package/lib/monitoring/metrics.d.ts.map +1 -1
- package/lib/monitoring/metrics.js +20 -0
- package/lib/monitoring/metrics.js.map +1 -1
- package/lib/orchestrator/agent-dispatcher.d.ts +14 -2
- package/lib/orchestrator/agent-dispatcher.d.ts.map +1 -1
- package/lib/orchestrator/agent-dispatcher.js +58 -3
- package/lib/orchestrator/agent-dispatcher.js.map +1 -1
- package/lib/orchestrator/index.d.ts +1 -1
- package/lib/orchestrator/index.d.ts.map +1 -1
- package/lib/orchestrator/index.js +1 -1
- package/lib/orchestrator/index.js.map +1 -1
- package/lib/orchestrator/mcp-lifecycle.d.ts +3 -0
- package/lib/orchestrator/mcp-lifecycle.d.ts.map +1 -1
- package/lib/orchestrator/mcp-lifecycle.js +34 -0
- package/lib/orchestrator/mcp-lifecycle.js.map +1 -1
- package/lib/orchestrator/resolve-subagent-tools.d.ts +20 -0
- package/lib/orchestrator/resolve-subagent-tools.d.ts.map +1 -0
- package/lib/orchestrator/resolve-subagent-tools.js +52 -0
- package/lib/orchestrator/resolve-subagent-tools.js.map +1 -0
- package/lib/orchestrator/task-queue.d.ts +4 -0
- package/lib/orchestrator/task-queue.d.ts.map +1 -1
- package/lib/orchestrator/task-queue.js +24 -0
- package/lib/orchestrator/task-queue.js.map +1 -1
- package/lib/orchestrator/tool-registry.d.ts +3 -3
- package/lib/orchestrator/tool-registry.d.ts.map +1 -1
- package/lib/orchestrator/tool-registry.js +9 -9
- package/lib/orchestrator/tool-registry.js.map +1 -1
- package/lib/orchestrator/tool-selection.d.ts +2 -7
- package/lib/orchestrator/tool-selection.d.ts.map +1 -1
- package/lib/orchestrator/tool-selection.js +8 -44
- package/lib/orchestrator/tool-selection.js.map +1 -1
- package/lib/orchestrator/types.d.ts +4 -24
- package/lib/orchestrator/types.d.ts.map +1 -1
- package/lib/routing/route-matcher.d.ts +12 -0
- package/lib/routing/route-matcher.d.ts.map +1 -0
- package/lib/routing/route-matcher.js +72 -0
- package/lib/routing/route-matcher.js.map +1 -0
- package/lib/routing/runtime-binding.d.ts +10 -0
- package/lib/routing/runtime-binding.d.ts.map +1 -0
- package/lib/routing/runtime-binding.js +6 -0
- package/lib/routing/runtime-binding.js.map +1 -0
- package/lib/routing/subagent-summarize.d.ts +6 -0
- package/lib/routing/subagent-summarize.d.ts.map +1 -0
- package/lib/routing/subagent-summarize.js +23 -0
- package/lib/routing/subagent-summarize.js.map +1 -0
- package/lib/security/anomaly-detection.d.ts +2 -0
- package/lib/security/anomaly-detection.d.ts.map +1 -1
- package/lib/security/anomaly-detection.js +10 -4
- package/lib/security/anomaly-detection.js.map +1 -1
- package/lib/security/budget-limiter.d.ts +2 -0
- package/lib/security/budget-limiter.d.ts.map +1 -1
- package/lib/security/budget-limiter.js +13 -1
- package/lib/security/budget-limiter.js.map +1 -1
- package/lib/security/dangerous-tool-policy.d.ts.map +1 -1
- package/lib/security/dangerous-tool-policy.js +56 -19
- package/lib/security/dangerous-tool-policy.js.map +1 -1
- package/lib/security/exec-policy.js +4 -4
- package/lib/security/exec-policy.js.map +1 -1
- package/lib/security/file-policy.d.ts +7 -1
- package/lib/security/file-policy.d.ts.map +1 -1
- package/lib/security/file-policy.js +34 -1
- package/lib/security/file-policy.js.map +1 -1
- package/lib/security/file-role-policy.d.ts +11 -20
- package/lib/security/file-role-policy.d.ts.map +1 -1
- package/lib/security/file-role-policy.js +24 -26
- package/lib/security/file-role-policy.js.map +1 -1
- package/lib/security/network-policy.d.ts +2 -0
- package/lib/security/network-policy.d.ts.map +1 -1
- package/lib/security/network-policy.js +11 -1
- package/lib/security/network-policy.js.map +1 -1
- package/lib/security/owner-approve-always-store.d.ts +2 -1
- package/lib/security/owner-approve-always-store.d.ts.map +1 -1
- package/lib/security/owner-approve-always-store.js +32 -30
- package/lib/security/owner-approve-always-store.js.map +1 -1
- package/lib/service.d.ts +13 -3
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +45 -37
- package/lib/service.js.map +1 -1
- package/lib/subagent-ai-events.d.ts +30 -0
- package/lib/subagent-ai-events.d.ts.map +1 -0
- package/lib/subagent-ai-events.js +114 -0
- package/lib/subagent-ai-events.js.map +1 -0
- package/lib/subagent-goal-notify.d.ts +27 -6
- package/lib/subagent-goal-notify.d.ts.map +1 -1
- package/lib/subagent-goal-notify.js +46 -12
- package/lib/subagent-goal-notify.js.map +1 -1
- package/lib/subagent.d.ts +43 -3
- package/lib/subagent.d.ts.map +1 -1
- package/lib/subagent.js +173 -48
- package/lib/subagent.js.map +1 -1
- package/lib/task-executor.d.ts +10 -18
- package/lib/task-executor.d.ts.map +1 -1
- package/lib/task-executor.js +11 -34
- package/lib/task-executor.js.map +1 -1
- package/lib/typing-indicator/adapter-integration.d.ts.map +1 -1
- package/lib/typing-indicator/adapter-integration.js +2 -1
- package/lib/typing-indicator/adapter-integration.js.map +1 -1
- package/lib/typing-indicator/index.d.ts.map +1 -1
- package/lib/typing-indicator/index.js +18 -5
- package/lib/typing-indicator/index.js.map +1 -1
- package/lib/zhin-agent/builtin-tools.d.ts +2 -2
- package/lib/zhin-agent/builtin-tools.d.ts.map +1 -1
- package/lib/zhin-agent/builtin-tools.js +33 -46
- package/lib/zhin-agent/builtin-tools.js.map +1 -1
- package/lib/zhin-agent/config.d.ts +15 -13
- package/lib/zhin-agent/config.d.ts.map +1 -1
- package/lib/zhin-agent/config.js +16 -13
- package/lib/zhin-agent/config.js.map +1 -1
- package/lib/zhin-agent/event-emitter.d.ts.map +1 -1
- package/lib/zhin-agent/event-emitter.js +3 -2
- package/lib/zhin-agent/event-emitter.js.map +1 -1
- package/lib/zhin-agent/index.d.ts +29 -5
- package/lib/zhin-agent/index.d.ts.map +1 -1
- package/lib/zhin-agent/index.js +110 -9
- package/lib/zhin-agent/index.js.map +1 -1
- package/lib/zhin-agent/llm-runner.d.ts +3 -1
- package/lib/zhin-agent/llm-runner.d.ts.map +1 -1
- package/lib/zhin-agent/llm-runner.js +78 -0
- package/lib/zhin-agent/llm-runner.js.map +1 -1
- package/lib/zhin-agent/prompt-assembly.d.ts.map +1 -1
- package/lib/zhin-agent/prompt-assembly.js +4 -9
- package/lib/zhin-agent/prompt-assembly.js.map +1 -1
- package/lib/zhin-agent/prompt.d.ts +8 -3
- package/lib/zhin-agent/prompt.d.ts.map +1 -1
- package/lib/zhin-agent/prompt.js +239 -150
- package/lib/zhin-agent/prompt.js.map +1 -1
- package/lib/zhin-agent/session-io.d.ts +17 -7
- package/lib/zhin-agent/session-io.d.ts.map +1 -1
- package/lib/zhin-agent/session-io.js +62 -11
- package/lib/zhin-agent/session-io.js.map +1 -1
- package/lib/zhin-agent/task-continuation.d.ts.map +1 -1
- package/lib/zhin-agent/task-continuation.js +8 -2
- package/lib/zhin-agent/task-continuation.js.map +1 -1
- package/lib/zhin-agent/tool-calls-user-format.d.ts.map +1 -1
- package/lib/zhin-agent/tool-calls-user-format.js +5 -1
- package/lib/zhin-agent/tool-calls-user-format.js.map +1 -1
- package/lib/zhin-agent/tool-orchestration.d.ts.map +1 -1
- package/lib/zhin-agent/tool-orchestration.js +18 -9
- package/lib/zhin-agent/tool-orchestration.js.map +1 -1
- package/lib/zhin-agent/tool-runtime.d.ts +2 -4
- package/lib/zhin-agent/tool-runtime.d.ts.map +1 -1
- package/lib/zhin-agent/tool-runtime.js +4 -6
- package/lib/zhin-agent/tool-runtime.js.map +1 -1
- package/lib/zhin-agent/tool-search-orchestrator.d.ts +3 -0
- package/lib/zhin-agent/tool-search-orchestrator.d.ts.map +1 -1
- package/lib/zhin-agent/tool-search-orchestrator.js +8 -3
- package/lib/zhin-agent/tool-search-orchestrator.js.map +1 -1
- package/lib/zhin-agent/turn-pipeline.d.ts.map +1 -1
- package/lib/zhin-agent/turn-pipeline.js +135 -47
- package/lib/zhin-agent/turn-pipeline.js.map +1 -1
- package/lib/zhin-agent/turn-tracker.d.ts +2 -0
- package/lib/zhin-agent/turn-tracker.d.ts.map +1 -1
- package/lib/zhin-agent/turn-tracker.js +11 -6
- package/lib/zhin-agent/turn-tracker.js.map +1 -1
- package/lib/zhin-agent/zhin-agent-private.d.ts +12 -3
- package/lib/zhin-agent/zhin-agent-private.d.ts.map +1 -1
- package/lib/zhin-agent/zhin-agent-private.js.map +1 -1
- package/package.json +4 -4
- package/lib/init/register-message-recorder.d.ts +0 -3
- package/lib/init/register-message-recorder.d.ts.map +0 -1
- package/lib/init/register-message-recorder.js +0 -27
- package/lib/init/register-message-recorder.js.map +0 -1
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { getPlugin } from '@zhin.js/core';
|
|
2
2
|
import { formatCompact, truncatePreview, Logger } from '@zhin.js/logger';
|
|
3
3
|
import { createAgent } from '@zhin.js/ai';
|
|
4
|
-
import {
|
|
4
|
+
import { resolveIMSessionIdFromToolContext } from '@zhin.js/ai';
|
|
5
5
|
import { parseOutput } from '@zhin.js/ai';
|
|
6
6
|
import { detectTone } from '@zhin.js/ai';
|
|
7
|
-
import {
|
|
7
|
+
import { ensureMcpConnectionsForBinding, getMcpToolsForBinding, } from '../orchestrator/mcp-lifecycle.js';
|
|
8
8
|
import { applyExecPolicyToTools } from '../security/exec-policy.js';
|
|
9
9
|
import { runWithBashToolContext } from '../security/bash-tool-context.js';
|
|
10
10
|
import { triggerAIHook, createAIHookEvent } from '../hooks.js';
|
|
11
11
|
import { resolveModelCandidates } from './model-resolver.js';
|
|
12
|
-
import { streamChatWithHistory } from './llm-runner.js';
|
|
13
|
-
import {
|
|
12
|
+
import { streamChatWithHistory, streamChatWithVisionMedia } from './llm-runner.js';
|
|
13
|
+
import { INBOUND_MEDIA_PARTS_EXTRA_KEY } from '../media/constants.js';
|
|
14
|
+
import { mergeToolOutboundElements } from '../media/media-tool-bridge.js';
|
|
15
|
+
import { providerSupportsVision } from '../media/vision-capability.js';
|
|
16
|
+
import { buildSessionCreateInput, touchSession, buildHistoryMessages, formatUserContentForSession, resolveSessionIsNewBeforeCreate, } from './session-io.js';
|
|
14
17
|
import { buildEnhancedPersona } from './prompt.js';
|
|
15
18
|
import { collectRuntimeTools, planToolRun } from './tool-runtime.js';
|
|
16
19
|
import { sanitizeAssistantReply, stripThinkBlocks } from './text-sanitize.js';
|
|
@@ -27,17 +30,41 @@ import { resolveAgentToolsForTurn } from './tool-orchestration.js';
|
|
|
27
30
|
import { buildAgentPathSystemPrompt, buildChatPathSystemPrompt, buildFastPathSystemPrompt, buildAgentUserMessage, } from './prompt-assembly.js';
|
|
28
31
|
const logger = new Logger(null, 'ZhinAgent');
|
|
29
32
|
const now = () => performance.now();
|
|
33
|
+
function sessionDeps(host) {
|
|
34
|
+
return { chatHistory: host.chatHistory, imSessionStore: host.imSessionStore };
|
|
35
|
+
}
|
|
36
|
+
async function beginTurnSession(host, context) {
|
|
37
|
+
const sessionKey = resolveIMSessionIdFromToolContext({
|
|
38
|
+
platform: context.platform,
|
|
39
|
+
botId: context.botId,
|
|
40
|
+
scope: context.scope,
|
|
41
|
+
sceneId: context.sceneId,
|
|
42
|
+
senderId: context.senderId,
|
|
43
|
+
});
|
|
44
|
+
const imSession = await host.imSessionStore.getOrCreateActive(buildSessionCreateInput(sessionKey, context));
|
|
45
|
+
return { sessionKey, sessionId: imSession.session_id };
|
|
46
|
+
}
|
|
30
47
|
export async function processTextTurn(host, content, context, externalTools = [], onChunk) {
|
|
31
48
|
const t0 = now();
|
|
32
49
|
const { senderId, sceneId, platform, botId, messageId } = context;
|
|
33
|
-
const
|
|
50
|
+
const sessionUserContent = formatUserContentForSession(context, content);
|
|
34
51
|
const userId = senderId || 'unknown';
|
|
52
|
+
const sessionKey = resolveIMSessionIdFromToolContext({
|
|
53
|
+
platform,
|
|
54
|
+
botId,
|
|
55
|
+
scope: context.scope,
|
|
56
|
+
sceneId,
|
|
57
|
+
senderId,
|
|
58
|
+
});
|
|
59
|
+
const isNewSession = await resolveSessionIsNewBeforeCreate(sessionDeps(host), sessionKey, context);
|
|
60
|
+
await host.waitForMemoryPersistence();
|
|
61
|
+
const { sessionId } = await beginTurnSession(host, context);
|
|
35
62
|
await host.emitter.dispatch('ai.processing.start', host.emitter.createPayload(sessionId, context, 'text', {
|
|
36
63
|
content,
|
|
37
64
|
}));
|
|
38
65
|
logPhase(host.phaseConfig, 'turn.start', sessionId, {
|
|
39
66
|
mode: 'text',
|
|
40
|
-
provider: host.
|
|
67
|
+
provider: host.getTurnProvider().name,
|
|
41
68
|
});
|
|
42
69
|
// 0. Rate limit
|
|
43
70
|
const rateCheck = host.rateLimiter.check(userId);
|
|
@@ -64,9 +91,11 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
64
91
|
content,
|
|
65
92
|
platform: platform || '',
|
|
66
93
|
})).catch(() => { });
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
94
|
+
const turnBinding = host.activeBinding;
|
|
95
|
+
const mcpServerNames = turnBinding?.mcpServers ?? [];
|
|
96
|
+
// 0.9 Lazy-connect MCP servers listed on active agent binding
|
|
97
|
+
if (host.orchestrator && mcpServerNames.length > 0) {
|
|
98
|
+
await ensureMcpConnectionsForBinding(host.orchestrator.mcps, mcpServerNames, (event) => {
|
|
70
99
|
const payload = host.emitter.createPayload(sessionId, contextForTools, 'text', {
|
|
71
100
|
path: 'agent',
|
|
72
101
|
serverName: event.serverName,
|
|
@@ -87,8 +116,10 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
87
116
|
}
|
|
88
117
|
// 1. Collect tools
|
|
89
118
|
const tFilter = now();
|
|
90
|
-
const mcpTools = host.orchestrator
|
|
91
|
-
|
|
119
|
+
const mcpTools = host.orchestrator && mcpServerNames.length > 0
|
|
120
|
+
? getMcpToolsForBinding(host.orchestrator.mcps, mcpServerNames)
|
|
121
|
+
: [];
|
|
122
|
+
let allTools = collectRuntimeTools({
|
|
92
123
|
content,
|
|
93
124
|
context: contextForTools,
|
|
94
125
|
externalTools,
|
|
@@ -97,9 +128,8 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
97
128
|
externalRegistered: host.externalTools,
|
|
98
129
|
sessionId,
|
|
99
130
|
userId,
|
|
100
|
-
|
|
131
|
+
chatHistory: host.chatHistory,
|
|
101
132
|
userProfiles: host.userProfiles,
|
|
102
|
-
subagentManager: host.subagentManager,
|
|
103
133
|
mcpTools,
|
|
104
134
|
});
|
|
105
135
|
const { tools: resolvedTools, deferredStats } = resolveAgentToolsForTurn(host, allTools, contextForTools);
|
|
@@ -108,20 +138,20 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
108
138
|
logPhase(host.phaseConfig, 'tools.collected', sessionId, { count: resolvedTools.length });
|
|
109
139
|
logger.debug(formatCompact({
|
|
110
140
|
tools: resolvedTools.length,
|
|
111
|
-
tool_search:
|
|
141
|
+
tool_search: true,
|
|
112
142
|
names: resolvedTools.map(t => t.name).join(',') || '(none)',
|
|
113
143
|
}));
|
|
114
144
|
// 2. History + profile (parallel)
|
|
115
145
|
const tMem = now();
|
|
116
146
|
const [rawHistoryMessages, profileSummary] = await Promise.all([
|
|
117
|
-
buildHistoryMessages(host
|
|
147
|
+
buildHistoryMessages(sessionDeps(host), sessionId, context, sessionUserContent),
|
|
118
148
|
host.userProfiles.buildProfileSummary(userId),
|
|
119
149
|
]);
|
|
120
|
-
const chatCandidates = resolveModelCandidates(host.
|
|
150
|
+
const chatCandidates = resolveModelCandidates(host.getTurnProvider().models, host.modelRegistry, host.getTurnProvider().name, host.config, 'chat');
|
|
121
151
|
const { messages: historyMessages, result: pruneResult, budget: contextBudget, } = pruneHistoryWithBudget({
|
|
122
152
|
messages: rawHistoryMessages,
|
|
123
153
|
config: host.config,
|
|
124
|
-
provider: host.
|
|
154
|
+
provider: host.getTurnProvider(),
|
|
125
155
|
modelRegistry: host.modelRegistry,
|
|
126
156
|
model: chatCandidates[0],
|
|
127
157
|
});
|
|
@@ -145,7 +175,10 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
145
175
|
}));
|
|
146
176
|
const tLLM = now();
|
|
147
177
|
logPhase(host.phaseConfig, 'chat.llm.start', sessionId, { model: liteModel || chatCandidates[0] || '' });
|
|
148
|
-
const
|
|
178
|
+
const inboundVision = contextForTools.extra?.[INBOUND_MEDIA_PARTS_EXTRA_KEY];
|
|
179
|
+
const chatResult = inboundVision?.length
|
|
180
|
+
? await streamChatWithVisionMedia({ provider: host.getTurnProvider(), modelRegistry: host.modelRegistry, config: host.config }, sessionUserContent, inboundVision, chatSystemPrompt, historyMessages, onChunk, liteModel || host.config.visionModel)
|
|
181
|
+
: await streamChatWithHistory({ provider: host.getTurnProvider(), modelRegistry: host.modelRegistry, config: host.config }, sessionUserContent, chatSystemPrompt, historyMessages, onChunk, liteModel);
|
|
149
182
|
let reply = sanitizeAssistantReply(chatResult.content);
|
|
150
183
|
await host.emitter.dispatch('ai.response', host.emitter.createPayload(sessionId, context, 'text', {
|
|
151
184
|
path: 'chat',
|
|
@@ -164,10 +197,9 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
164
197
|
llm_ms: llmMs,
|
|
165
198
|
total_ms: Math.round(now() - t0),
|
|
166
199
|
}));
|
|
167
|
-
|
|
168
|
-
await saveToSession({ memory: host.memory, sessions: host.sessions, contextManager: host.contextManager }, sessionId, content, reply, sceneId);
|
|
200
|
+
await touchSession(sessionDeps(host), sessionId);
|
|
169
201
|
if (isNewSession) {
|
|
170
|
-
host.emitSessionNewEvent(sessionId, context, 'text',
|
|
202
|
+
host.emitSessionNewEvent(sessionId, context, 'text', sessionUserContent, reply);
|
|
171
203
|
}
|
|
172
204
|
await host.finalizeActiveTurn({
|
|
173
205
|
usage: chatResult.usage ?? EMPTY_USAGE,
|
|
@@ -203,6 +235,7 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
203
235
|
}
|
|
204
236
|
// 6. Path selection
|
|
205
237
|
let reply;
|
|
238
|
+
let agentToolCalls = [];
|
|
206
239
|
if (toolRun.mode === 'pre-exec-fast-path') {
|
|
207
240
|
logPhase(host.phaseConfig, 'path.pre_exec_fast', sessionId, { toolCount: allTools.length });
|
|
208
241
|
// Fast path
|
|
@@ -210,7 +243,7 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
210
243
|
const prompt = buildFastPathSystemPrompt(host, personaEnhanced, preData, contextForTools);
|
|
211
244
|
logger.debug(formatCompact({ mode: 'fast', prompt_chars: prompt.length }));
|
|
212
245
|
logPhase(host.phaseConfig, 'fast.llm.start', sessionId, { model: chatCandidates[0] || '' });
|
|
213
|
-
const fastResult = await streamChatWithHistory({ provider: host.
|
|
246
|
+
const fastResult = await streamChatWithHistory({ provider: host.getTurnProvider(), modelRegistry: host.modelRegistry, config: host.config }, sessionUserContent, prompt, historyMessages, onChunk);
|
|
214
247
|
reply = sanitizeAssistantReply(fastResult.content);
|
|
215
248
|
logPhase(host.phaseConfig, 'fast.llm.end', sessionId, {
|
|
216
249
|
durationMs: Math.round(now() - tLLM),
|
|
@@ -243,7 +276,7 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
243
276
|
// Adaptive maxIterations: boost when skills are active (multi-step skill flows)
|
|
244
277
|
const SKILL_ITERATION_BOOST = 3;
|
|
245
278
|
const hasSkillActivation = agentTools.some(t => t.name === 'activate_skill' || t.name === 'install_skill');
|
|
246
|
-
const harness = resolveModelHarness(host.
|
|
279
|
+
const harness = resolveModelHarness(host.getTurnProvider().name, chatCandidates[0] || '', host.config.modelHarness);
|
|
247
280
|
const baseIterations = harness.maxIterations ?? host.config.maxIterations;
|
|
248
281
|
const effectiveMaxIterations = hasSkillActivation
|
|
249
282
|
? baseIterations + SKILL_ITERATION_BOOST
|
|
@@ -262,7 +295,7 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
262
295
|
logger.warn(formatCompact({ warn: 'no_host_plugin' }));
|
|
263
296
|
}
|
|
264
297
|
}
|
|
265
|
-
const llmAgent = createAgent(host.
|
|
298
|
+
const llmAgent = createAgent(host.getTurnProvider(), {
|
|
266
299
|
model: chatCandidates[0],
|
|
267
300
|
modelFallbacks: chatCandidates.slice(1),
|
|
268
301
|
systemPrompt,
|
|
@@ -302,7 +335,7 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
302
335
|
llmAgent.on('compaction', (info) => {
|
|
303
336
|
host.emitSessionCompactEvent(sessionId, contextForTools, 'text', info);
|
|
304
337
|
});
|
|
305
|
-
const userMessageWithHistory = buildAgentUserMessage(historyMessages,
|
|
338
|
+
const userMessageWithHistory = buildAgentUserMessage(historyMessages, sessionUserContent);
|
|
306
339
|
let result;
|
|
307
340
|
try {
|
|
308
341
|
await host.emitter.dispatch('ai.agent.start', host.emitter.createPayload(sessionId, contextForTools, 'text', {
|
|
@@ -332,9 +365,25 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
332
365
|
finally {
|
|
333
366
|
llmAgent.dispose();
|
|
334
367
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
368
|
+
agentToolCalls = result.toolCalls;
|
|
369
|
+
const spawnedSubagent = result.toolCalls.some(tc => tc.tool === 'spawn_task');
|
|
370
|
+
if (spawnedSubagent) {
|
|
371
|
+
await host.turnTracker.waitForPendingSubagents();
|
|
372
|
+
}
|
|
373
|
+
const delegatedOnly = spawnedSubagent
|
|
374
|
+
&& !result.toolCalls.some(tc => tc.tool === 'run_deferred_task')
|
|
375
|
+
&& !result.toolCalls.some(tc => tc.tool === 'generate_image'
|
|
376
|
+
&& tc.result
|
|
377
|
+
&& typeof tc.result === 'object'
|
|
378
|
+
&& typeof tc.result.image === 'string');
|
|
379
|
+
if (delegatedOnly) {
|
|
380
|
+
reply = '';
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
reply = sanitizeAssistantReply(result.content, {
|
|
384
|
+
toolSummary: formatToolCallsForUser(result.toolCalls),
|
|
385
|
+
});
|
|
386
|
+
}
|
|
338
387
|
await host.emitter.dispatch('ai.response', host.emitter.createPayload(sessionId, contextForTools, 'text', {
|
|
339
388
|
path: 'agent',
|
|
340
389
|
model: result.model ?? (chatCandidates[0] || undefined),
|
|
@@ -349,9 +398,10 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
349
398
|
: {}),
|
|
350
399
|
}));
|
|
351
400
|
for (const tc of result.toolCalls) {
|
|
401
|
+
const preview = toolCallResultDebugPreview(tc);
|
|
352
402
|
logger.debug(formatCompact({
|
|
353
403
|
tool_result: tc.tool,
|
|
354
|
-
preview: truncatePreview(
|
|
404
|
+
preview: truncatePreview(preview, 480),
|
|
355
405
|
}));
|
|
356
406
|
}
|
|
357
407
|
logger.debug(`[Agent 路径] 过滤=${filterMs}ms, 记忆=${memMs}ms, Agent=${(now() - tAgent).toFixed(0)}ms, 总=${(now() - t0).toFixed(0)}ms`);
|
|
@@ -362,10 +412,9 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
362
412
|
model: result.model ?? (chatCandidates[0] || undefined),
|
|
363
413
|
});
|
|
364
414
|
}
|
|
365
|
-
|
|
366
|
-
await saveToSession({ memory: host.memory, sessions: host.sessions, contextManager: host.contextManager }, sessionId, content, reply, sceneId);
|
|
415
|
+
await touchSession(sessionDeps(host), sessionId);
|
|
367
416
|
if (isNewSession) {
|
|
368
|
-
host.emitSessionNewEvent(sessionId, context, 'text',
|
|
417
|
+
host.emitSessionNewEvent(sessionId, context, 'text', sessionUserContent, reply);
|
|
369
418
|
}
|
|
370
419
|
triggerAIHook(createAIHookEvent('message', 'sent', sessionId, {
|
|
371
420
|
userId,
|
|
@@ -380,12 +429,37 @@ export async function processTextTurn(host, content, context, externalTools = []
|
|
|
380
429
|
host.emitter.emit('ai.typing.stop', host.emitter.createPayload(sessionId, context, 'text', {
|
|
381
430
|
reason: 'processing_complete',
|
|
382
431
|
}));
|
|
383
|
-
|
|
432
|
+
const outbound = mergeToolOutboundElements(parseOutput(reply), agentToolCalls);
|
|
433
|
+
if (!reply.trim() && outbound.length === 0)
|
|
434
|
+
return [];
|
|
435
|
+
return outbound;
|
|
436
|
+
}
|
|
437
|
+
function toolCallResultDebugPreview(tc) {
|
|
438
|
+
if (tc.tool === 'generate_image' && tc.result && typeof tc.result === 'object' && !Array.isArray(tc.result)) {
|
|
439
|
+
const image = tc.result.image;
|
|
440
|
+
const len = typeof image === 'string' ? image.length : 0;
|
|
441
|
+
return len > 0 ? `[image generated, ${len} b64 chars]` : '[generate_image: no image field]';
|
|
442
|
+
}
|
|
443
|
+
if (tc.tool === 'voice_tts' && tc.result && typeof tc.result === 'object' && !Array.isArray(tc.result)) {
|
|
444
|
+
const audio = tc.result.audio;
|
|
445
|
+
const len = typeof audio === 'string' ? audio.length : 0;
|
|
446
|
+
return len > 0 ? `[audio generated, ${len} b64 chars]` : '[voice_tts: no audio field]';
|
|
447
|
+
}
|
|
448
|
+
return typeof tc.result === 'string' ? tc.result : JSON.stringify(tc.result);
|
|
384
449
|
}
|
|
385
450
|
export async function processMultimodalTurn(host, parts, context, onChunk) {
|
|
386
|
-
const { senderId, sceneId, platform } = context;
|
|
387
|
-
const sessionId = SessionManager.generateId(platform || '', senderId || '', sceneId);
|
|
451
|
+
const { senderId, sceneId, platform, botId } = context;
|
|
388
452
|
const userId = senderId || 'unknown';
|
|
453
|
+
const sessionKey = resolveIMSessionIdFromToolContext({
|
|
454
|
+
platform,
|
|
455
|
+
botId,
|
|
456
|
+
scope: context.scope,
|
|
457
|
+
sceneId,
|
|
458
|
+
senderId,
|
|
459
|
+
});
|
|
460
|
+
const isNewSession = await resolveSessionIsNewBeforeCreate(sessionDeps(host), sessionKey, context);
|
|
461
|
+
await host.waitForMemoryPersistence();
|
|
462
|
+
const { sessionId } = await beginTurnSession(host, context);
|
|
389
463
|
await host.emitter.dispatch('ai.processing.start', host.emitter.createPayload(sessionId, context, 'multimodal'));
|
|
390
464
|
const rateCheck = host.rateLimiter.check(userId);
|
|
391
465
|
if (!rateCheck.allowed) {
|
|
@@ -401,11 +475,19 @@ export async function processMultimodalTurn(host, parts, context, onChunk) {
|
|
|
401
475
|
reason: 'processing',
|
|
402
476
|
}));
|
|
403
477
|
host.beginActiveTurn();
|
|
404
|
-
const
|
|
478
|
+
const textFragmentsEarly = [];
|
|
479
|
+
for (const p of parts) {
|
|
480
|
+
if (p.type === 'text')
|
|
481
|
+
textFragmentsEarly.push(p.text);
|
|
482
|
+
}
|
|
483
|
+
const textContentEarly = textFragmentsEarly.join(' ') || '[多模态消息]';
|
|
484
|
+
const sessionUserContentEarly = formatUserContentForSession(context, textContentEarly);
|
|
485
|
+
const rawHistoryMessages = await buildHistoryMessages(sessionDeps(host), sessionId, context, sessionUserContentEarly);
|
|
405
486
|
const profileSummary = await host.userProfiles.buildProfileSummary(userId);
|
|
406
487
|
const personaEnhanced = host.buildDisciplinedPrompt(buildEnhancedPersona(host.config, profileSummary, ''));
|
|
407
488
|
const textFragments = [];
|
|
408
489
|
const llmParts = [];
|
|
490
|
+
const supportsVision = providerSupportsVision(host.getTurnProvider());
|
|
409
491
|
for (const p of parts) {
|
|
410
492
|
switch (p.type) {
|
|
411
493
|
case 'text':
|
|
@@ -414,7 +496,10 @@ export async function processMultimodalTurn(host, parts, context, onChunk) {
|
|
|
414
496
|
break;
|
|
415
497
|
case 'image_url':
|
|
416
498
|
textFragments.push('[图片]');
|
|
417
|
-
|
|
499
|
+
if (supportsVision)
|
|
500
|
+
llmParts.push(p);
|
|
501
|
+
else
|
|
502
|
+
llmParts.push({ type: 'text', text: '[用户发送了一张图片]' });
|
|
418
503
|
break;
|
|
419
504
|
case 'video_url':
|
|
420
505
|
textFragments.push('[视频]');
|
|
@@ -422,7 +507,10 @@ export async function processMultimodalTurn(host, parts, context, onChunk) {
|
|
|
422
507
|
break;
|
|
423
508
|
case 'audio':
|
|
424
509
|
textFragments.push('[音频]');
|
|
425
|
-
|
|
510
|
+
if (supportsVision)
|
|
511
|
+
llmParts.push(p);
|
|
512
|
+
else
|
|
513
|
+
llmParts.push({ type: 'text', text: '[用户发送了一段音频]' });
|
|
426
514
|
break;
|
|
427
515
|
case 'face':
|
|
428
516
|
textFragments.push(p.face.text || `[表情:${p.face.id}]`);
|
|
@@ -434,17 +522,18 @@ export async function processMultimodalTurn(host, parts, context, onChunk) {
|
|
|
434
522
|
}
|
|
435
523
|
}
|
|
436
524
|
const textContent = textFragments.join(' ') || '[多模态消息]';
|
|
525
|
+
const sessionUserContent = formatUserContentForSession(context, textContent);
|
|
437
526
|
const visionSystemPrompt = await buildMultimodalVisionSystemPrompt(host, {
|
|
438
527
|
context,
|
|
439
528
|
sessionId,
|
|
440
529
|
textContent,
|
|
441
530
|
personaEnhanced,
|
|
442
531
|
});
|
|
443
|
-
const visionCandidates = resolveModelCandidates(host.
|
|
532
|
+
const visionCandidates = resolveModelCandidates(host.getTurnProvider().models, host.modelRegistry, host.getTurnProvider().name, host.config, 'vision');
|
|
444
533
|
const { messages: historyMessages, result: pruneResult } = pruneHistoryWithBudget({
|
|
445
534
|
messages: rawHistoryMessages,
|
|
446
535
|
config: host.config,
|
|
447
|
-
provider: host.
|
|
536
|
+
provider: host.getTurnProvider(),
|
|
448
537
|
modelRegistry: host.modelRegistry,
|
|
449
538
|
model: visionCandidates[0],
|
|
450
539
|
});
|
|
@@ -464,7 +553,7 @@ export async function processMultimodalTurn(host, parts, context, onChunk) {
|
|
|
464
553
|
usedVisionModel = visionModel;
|
|
465
554
|
try {
|
|
466
555
|
reply = '';
|
|
467
|
-
for await (const chunk of host.
|
|
556
|
+
for await (const chunk of host.getTurnProvider().chatStream({ model: visionModel, messages })) {
|
|
468
557
|
if (chunk.usage)
|
|
469
558
|
lastUsage = chunk.usage;
|
|
470
559
|
const delta = chunk.choices?.[0]?.delta;
|
|
@@ -480,7 +569,7 @@ export async function processMultimodalTurn(host, parts, context, onChunk) {
|
|
|
480
569
|
reply = stripThinkBlocks(reply);
|
|
481
570
|
if (!reply) {
|
|
482
571
|
logger.warn(formatCompact({ mode: 'multimodal', fallback: visionModel, reason: 'empty_stream' }));
|
|
483
|
-
const response = await host.
|
|
572
|
+
const response = await host.getTurnProvider().chat({ model: visionModel, messages });
|
|
484
573
|
if (response.usage)
|
|
485
574
|
lastUsage = response.usage;
|
|
486
575
|
const msg = response.choices[0]?.message?.content;
|
|
@@ -493,7 +582,7 @@ export async function processMultimodalTurn(host, parts, context, onChunk) {
|
|
|
493
582
|
const isLast = i === visionCandidates.length - 1;
|
|
494
583
|
if (isLast) {
|
|
495
584
|
try {
|
|
496
|
-
const response = await host.
|
|
585
|
+
const response = await host.getTurnProvider().chat({ model: visionModel, messages });
|
|
497
586
|
if (response.usage)
|
|
498
587
|
lastUsage = response.usage;
|
|
499
588
|
const msg = response.choices[0]?.message?.content;
|
|
@@ -518,10 +607,9 @@ export async function processMultimodalTurn(host, parts, context, onChunk) {
|
|
|
518
607
|
model: usedVisionModel,
|
|
519
608
|
reply,
|
|
520
609
|
}));
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
host.emitSessionNewEvent(sessionId, context, 'multimodal', textContent, reply);
|
|
610
|
+
await touchSession(sessionDeps(host), sessionId);
|
|
611
|
+
if (isNewSession) {
|
|
612
|
+
host.emitSessionNewEvent(sessionId, context, 'multimodal', sessionUserContent, reply);
|
|
525
613
|
}
|
|
526
614
|
await host.finalizeActiveTurn({
|
|
527
615
|
usage: lastUsage ?? EMPTY_USAGE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-pipeline.js","sourceRoot":"","sources":["../../src/zhin-agent/turn-pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"turn-pipeline.js","sourceRoot":"","sources":["../../src/zhin-agent/turn-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,8 @@ export declare class TurnTracker {
|
|
|
9
9
|
begin(): void;
|
|
10
10
|
addSubagentUsage(usage: Usage): void;
|
|
11
11
|
trackSubagent(done: Promise<void>): void;
|
|
12
|
+
/** 主回合在生成最终回复前等待本轮 spawn 的子 agent(与 finalize 内逻辑相同) */
|
|
13
|
+
waitForPendingSubagents(): Promise<void>;
|
|
12
14
|
finalize(partial: Omit<ZhinAgentTurnMetrics, 'usage' | 'mainUsage' | 'subagentUsage'> & {
|
|
13
15
|
usage: Usage;
|
|
14
16
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-tracker.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/turn-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAyB,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAErF,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM;IAI1B,KAAK,IAAI,IAAI;IAKb,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKpC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"turn-tracker.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/turn-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAyB,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAErF,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM;IAI1B,KAAK,IAAI,IAAI;IAKb,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKpC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAKxC,uDAAuD;IACjD,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IASxC,QAAQ,CACZ,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,WAAW,GAAG,eAAe,CAAC,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,GAC9F,OAAO,CAAC,IAAI,CAAC;IAyBhB,IAAI,WAAW,IAAI,oBAAoB,GAAG,IAAI,CAE7C;CACF"}
|
|
@@ -21,13 +21,18 @@ export class TurnTracker {
|
|
|
21
21
|
return;
|
|
22
22
|
this.activeWaits.push(done);
|
|
23
23
|
}
|
|
24
|
+
/** 主回合在生成最终回复前等待本轮 spawn 的子 agent(与 finalize 内逻辑相同) */
|
|
25
|
+
async waitForPendingSubagents() {
|
|
26
|
+
if (this.activeWaits.length === 0 || this.waitMs <= 0)
|
|
27
|
+
return;
|
|
28
|
+
await Promise.race([
|
|
29
|
+
Promise.allSettled(this.activeWaits),
|
|
30
|
+
new Promise(resolve => setTimeout(resolve, this.waitMs)),
|
|
31
|
+
]);
|
|
32
|
+
this.activeWaits = [];
|
|
33
|
+
}
|
|
24
34
|
async finalize(partial) {
|
|
25
|
-
|
|
26
|
-
await Promise.race([
|
|
27
|
-
Promise.allSettled(this.activeWaits),
|
|
28
|
-
new Promise(resolve => setTimeout(resolve, this.waitMs)),
|
|
29
|
-
]);
|
|
30
|
-
}
|
|
35
|
+
await this.waitForPendingSubagents();
|
|
31
36
|
const mainUsage = { ...partial.usage };
|
|
32
37
|
const subagentUsage = this.activeUsage
|
|
33
38
|
&& (this.activeUsage.total_tokens > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-tracker.js","sourceRoot":"","sources":["../../src/zhin-agent/turn-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAA6B,MAAM,mBAAmB,CAAC;AAErF,MAAM,OAAO,WAAW;IACd,YAAY,GAAgC,IAAI,CAAC;IACjD,WAAW,GAAiB,IAAI,CAAC;IACjC,WAAW,GAAoB,EAAE,CAAC;IACzB,MAAM,CAAS;IAEhC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,KAAY;QAC3B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,IAAmB;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"turn-tracker.js","sourceRoot":"","sources":["../../src/zhin-agent/turn-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAA6B,MAAM,mBAAmB,CAAC;AAErF,MAAM,OAAO,WAAW;IACd,YAAY,GAAgC,IAAI,CAAC;IACjD,WAAW,GAAiB,IAAI,CAAC;IACjC,WAAW,GAAoB,EAAE,CAAC;IACzB,MAAM,CAAS;IAEhC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,KAAY;QAC3B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,IAAmB;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,uBAAuB;QAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO;QAC9D,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YACpC,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/D,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAA+F;QAE/F,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAErC,MAAM,SAAS,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW;eACjC,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,CAAC;mBAChC,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,CAAC;mBAClC,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;YACzB,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,UAAU,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QACpC,IAAI,aAAa;YAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEvD,IAAI,CAAC,YAAY,GAAG;YAClB,GAAG,OAAO;YACV,KAAK,EAAE,UAAU;YACjB,SAAS;YACT,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { AIProvider, AgentTool, ContentPart, Usage } from '@zhin.js/ai';
|
|
6
6
|
import type { OutputElement } from '@zhin.js/ai';
|
|
7
|
-
import type {
|
|
7
|
+
import type { ChatHistoryContext } from '@zhin.js/ai';
|
|
8
|
+
import type { IMSessionStore, MemoryIMSessionStore } from '@zhin.js/ai';
|
|
8
9
|
import type { ModelRegistry } from '@zhin.js/ai';
|
|
9
10
|
import type { Plugin } from '@zhin.js/core';
|
|
10
11
|
import type { Tool, ToolContext } from '../orchestrator/types.js';
|
|
@@ -21,13 +22,17 @@ import type { DeferredWorkerRunner } from '../deferred-worker-runner.js';
|
|
|
21
22
|
import type { ZhinAgentConfig, OnChunkCallback } from './config.js';
|
|
22
23
|
import type { PhaseTraceConfig } from './phase-trace.js';
|
|
23
24
|
import type { ZhinAgentTurnMetrics } from './turn-metrics.js';
|
|
25
|
+
import type { ResolvedAgentBinding } from '../config/types.js';
|
|
24
26
|
export interface ZhinAgentPrivate {
|
|
25
27
|
readonly config: Required<ZhinAgentConfig>;
|
|
26
28
|
readonly provider: AIProvider;
|
|
29
|
+
readonly activeBinding: ResolvedAgentBinding | null;
|
|
30
|
+
getTurnProvider(): AIProvider;
|
|
27
31
|
readonly skillRegistry: SkillRegistry | null;
|
|
28
32
|
readonly orchestrator: AgentOrchestrator | null;
|
|
29
33
|
readonly sessions: SessionManager;
|
|
30
|
-
readonly
|
|
34
|
+
readonly chatHistory: ChatHistoryContext | null;
|
|
35
|
+
readonly imSessionStore: IMSessionStore | MemoryIMSessionStore;
|
|
31
36
|
readonly memory: ConversationMemory;
|
|
32
37
|
readonly externalTools: Map<string, AgentTool>;
|
|
33
38
|
readonly userProfiles: UserProfileStore;
|
|
@@ -43,6 +48,7 @@ export interface ZhinAgentPrivate {
|
|
|
43
48
|
readonly deferredWorkerRunner: DeferredWorkerRunner;
|
|
44
49
|
lastToolSearchDeferredStats?: string;
|
|
45
50
|
readonly turnTracker: TurnTracker;
|
|
51
|
+
waitForMemoryPersistence(): Promise<void>;
|
|
46
52
|
beginActiveTurn(): void;
|
|
47
53
|
finalizeActiveTurn(partial: Omit<ZhinAgentTurnMetrics, 'usage' | 'mainUsage' | 'subagentUsage'> & {
|
|
48
54
|
usage: Usage;
|
|
@@ -61,6 +67,9 @@ export interface ZhinAgentPrivate {
|
|
|
61
67
|
};
|
|
62
68
|
runDeferredWorker(goal: string, toolQuery: string | undefined, context: ToolContext, allTools: AgentTool[]): Promise<string>;
|
|
63
69
|
}
|
|
64
|
-
export declare function asPrivate(agent:
|
|
70
|
+
export declare function asPrivate(agent: {
|
|
71
|
+
getTurnProvider(): AIProvider;
|
|
72
|
+
getActiveBinding(): ResolvedAgentBinding | null;
|
|
73
|
+
}): ZhinAgentPrivate;
|
|
65
74
|
export type { OnChunkCallback, OutputElement, Tool, ToolContext, Plugin, ContentPart };
|
|
66
75
|
//# sourceMappingURL=zhin-agent-private.d.ts.map
|