@zhin.js/agent 1.1.36 → 1.1.39
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/lib/activity-feedback/adapter-integration.d.ts +0 -1
- package/lib/activity-feedback/adapter-integration.js.map +1 -1
- package/lib/activity-feedback/config-resolver.d.ts +0 -1
- package/lib/activity-feedback/config-resolver.js.map +1 -1
- package/lib/activity-feedback/event-context.d.ts +0 -1
- package/lib/activity-feedback/event-context.js.map +1 -1
- package/lib/activity-feedback/index.d.ts +0 -1
- package/lib/activity-feedback/index.js.map +1 -1
- package/lib/activity-feedback/manager.d.ts +0 -1
- package/lib/activity-feedback/manager.js.map +1 -1
- package/lib/activity-feedback/schedule-guard.d.ts +0 -1
- package/lib/activity-feedback/schedule-guard.js.map +1 -1
- package/lib/activity-feedback/subagent-prefix.d.ts +0 -1
- package/lib/activity-feedback/subagent-prefix.js.map +1 -1
- package/lib/activity-feedback/turn-event-projector.d.ts +0 -1
- package/lib/activity-feedback/turn-event-projector.js.map +1 -1
- package/lib/activity-feedback/types.d.ts +0 -1
- package/lib/activity-feedback/types.js.map +1 -1
- package/lib/ai-event-bus.d.ts +0 -1
- package/lib/ai-event-bus.js.map +1 -1
- package/lib/ai-event-contract.d.ts +0 -1
- package/lib/ai-event-contract.js.map +1 -1
- package/lib/ai-event-subscriber.d.ts +0 -1
- package/lib/ai-event-subscriber.js.map +1 -1
- package/lib/ai-hook-runtime-bus.d.ts +0 -1
- package/lib/ai-hook-runtime-bus.js.map +1 -1
- package/lib/assistant/bootstrap-assistant-home.d.ts +0 -1
- package/lib/assistant/bootstrap-assistant-home.js.map +1 -1
- package/lib/assistant/config.d.ts +0 -1
- package/lib/assistant/config.js.map +1 -1
- package/lib/assistant/deliver-schedule-to-adapter.d.ts +0 -1
- package/lib/assistant/deliver-schedule-to-adapter.js.map +1 -1
- package/lib/assistant/domains/ha-home-backend.d.ts +0 -1
- package/lib/assistant/domains/ha-home-backend.js.map +1 -1
- package/lib/assistant/domains/ha-ws-transport.d.ts +0 -1
- package/lib/assistant/domains/ha-ws-transport.js.map +1 -1
- package/lib/assistant/domains/home-entity.d.ts +0 -1
- package/lib/assistant/domains/home-entity.js.map +1 -1
- package/lib/assistant/domains/home-state-watch.d.ts +0 -1
- package/lib/assistant/domains/home-state-watch.js.map +1 -1
- package/lib/assistant/event-ingress.d.ts +0 -1
- package/lib/assistant/event-ingress.js.map +1 -1
- package/lib/assistant/event-types.d.ts +0 -1
- package/lib/assistant/event-types.js.map +1 -1
- package/lib/assistant/home-config.d.ts +0 -1
- package/lib/assistant/home-config.js.map +1 -1
- package/lib/assistant/home-facade.d.ts +0 -1
- package/lib/assistant/home-facade.js.map +1 -1
- package/lib/assistant/home-mcp-bridge.d.ts +0 -1
- package/lib/assistant/home-mcp-bridge.js.map +1 -1
- package/lib/assistant/home-policy.d.ts +0 -1
- package/lib/assistant/home-policy.js.map +1 -1
- package/lib/assistant/home-tools.d.ts +0 -1
- package/lib/assistant/home-tools.js.map +1 -1
- package/lib/assistant/index.d.ts +0 -1
- package/lib/assistant/index.js.map +1 -1
- package/lib/assistant/job-creator.d.ts +0 -1
- package/lib/assistant/job-creator.js.map +1 -1
- package/lib/assistant/job-engine.d.ts +5 -1
- package/lib/assistant/job-engine.js +20 -1
- package/lib/assistant/job-engine.js.map +1 -1
- package/lib/assistant/job-scheduler.d.ts +0 -1
- package/lib/assistant/job-scheduler.js.map +1 -1
- package/lib/assistant/job-store.d.ts +0 -1
- package/lib/assistant/job-store.js.map +1 -1
- package/lib/assistant/job-utils.d.ts +0 -1
- package/lib/assistant/job-utils.js.map +1 -1
- package/lib/assistant/job-worker.d.ts +0 -1
- package/lib/assistant/job-worker.js.map +1 -1
- package/lib/assistant/notification-router.d.ts +0 -1
- package/lib/assistant/notification-router.js.map +1 -1
- package/lib/assistant/profile-loader.d.ts +0 -1
- package/lib/assistant/profile-loader.js.map +1 -1
- package/lib/assistant/profile-types.d.ts +0 -1
- package/lib/assistant/profile-types.js.map +1 -1
- package/lib/assistant/runtime-contract.d.ts +0 -1
- package/lib/assistant/runtime-contract.js.map +1 -1
- package/lib/assistant/schedule-execution.d.ts +0 -1
- package/lib/assistant/schedule-execution.js.map +1 -1
- package/lib/assistant/schedule-job-service.d.ts +0 -1
- package/lib/assistant/schedule-job-service.js.map +1 -1
- package/lib/assistant/schedule-skills.d.ts +0 -1
- package/lib/assistant/schedule-skills.js.map +1 -1
- package/lib/assistant/types.d.ts +0 -1
- package/lib/assistant/types.js.map +1 -1
- package/lib/authoring/bridge.d.ts +0 -1
- package/lib/authoring/bridge.js.map +1 -1
- package/lib/authoring/define-eval.d.ts +0 -1
- package/lib/authoring/define-eval.js.map +1 -1
- package/lib/authoring/define-hook.d.ts +0 -1
- package/lib/authoring/define-hook.js.map +1 -1
- package/lib/authoring/define-skill.d.ts +0 -1
- package/lib/authoring/define-skill.js.map +1 -1
- package/lib/authoring/disable-tool.d.ts +0 -1
- package/lib/authoring/disable-tool.js.map +1 -1
- package/lib/authoring/entries/evals.d.ts +0 -1
- package/lib/authoring/entries/evals.js.map +1 -1
- package/lib/authoring/entries/hooks.d.ts +0 -1
- package/lib/authoring/entries/hooks.js.map +1 -1
- package/lib/authoring/entries/skills.d.ts +0 -1
- package/lib/authoring/entries/skills.js.map +1 -1
- package/lib/authoring/index.d.ts +0 -1
- package/lib/authoring/index.js.map +1 -1
- package/lib/authoring/types.d.ts +0 -1
- package/lib/authoring/types.js.map +1 -1
- package/lib/bootstrap.d.ts +0 -1
- package/lib/bootstrap.js.map +1 -1
- package/lib/builtins/builtin-tool-service.d.ts +0 -1
- package/lib/builtins/builtin-tool-service.js.map +1 -1
- package/lib/common-adapter-tools.d.ts +0 -1
- package/lib/common-adapter-tools.js.map +1 -1
- package/lib/config/agent-binding-registry.d.ts +0 -1
- package/lib/config/agent-binding-registry.js.map +1 -1
- package/lib/config/agent-bindings.d.ts +0 -1
- package/lib/config/agent-bindings.js.map +1 -1
- package/lib/config/agent-interfaces.d.ts +0 -1
- package/lib/config/agent-interfaces.js.map +1 -1
- package/lib/config/deprecated-agent-binding-keys.d.ts +0 -1
- package/lib/config/deprecated-agent-binding-keys.js.map +1 -1
- package/lib/config/deprecated-agent-keys.d.ts +0 -1
- package/lib/config/deprecated-agent-keys.js.map +1 -1
- package/lib/config/fix-ai-config.d.ts +0 -1
- package/lib/config/fix-ai-config.js.map +1 -1
- package/lib/config/index.d.ts +0 -1
- package/lib/config/index.js.map +1 -1
- package/lib/config/keyword-triggers.d.ts +0 -1
- package/lib/config/keyword-triggers.js.map +1 -1
- package/lib/config/model-harness-runtime.d.ts +0 -1
- package/lib/config/model-harness-runtime.js.map +1 -1
- package/lib/config/model-harness.d.ts +0 -1
- package/lib/config/model-harness.js.map +1 -1
- package/lib/config/normalize-ai-config.d.ts +0 -1
- package/lib/config/normalize-ai-config.js.map +1 -1
- package/lib/config/perception-config.d.ts +0 -1
- package/lib/config/perception-config.js.map +1 -1
- package/lib/config/provider-instance.d.ts +0 -1
- package/lib/config/provider-instance.js.map +1 -1
- package/lib/config/resolve-five-agent-binding.d.ts +0 -1
- package/lib/config/resolve-five-agent-binding.js.map +1 -1
- package/lib/config/types.d.ts +0 -1
- package/lib/config/types.js.map +1 -1
- package/lib/config/validate-ai-config.d.ts +0 -1
- package/lib/config/validate-ai-config.js.map +1 -1
- package/lib/config/zhin-agent-config.d.ts +0 -1
- package/lib/config/zhin-agent-config.js.map +1 -1
- package/lib/config/zhin-agent-constants.d.ts +0 -1
- package/lib/config/zhin-agent-constants.js.map +1 -1
- package/lib/config/zhin-agent-defaults.d.ts +0 -1
- package/lib/config/zhin-agent-defaults.js +1 -1
- package/lib/config/zhin-agent-defaults.js.map +1 -1
- package/lib/config/zhin-agent-dependencies.d.ts +0 -1
- package/lib/config/zhin-agent-dependencies.js.map +1 -1
- package/lib/config/zhin-agent-runtime.d.ts +0 -1
- package/lib/config/zhin-agent-runtime.js.map +1 -1
- package/lib/context/agents-instruction.d.ts +0 -1
- package/lib/context/agents-instruction.js.map +1 -1
- package/lib/context/context-system.d.ts +0 -1
- package/lib/context/context-system.js.map +1 -1
- package/lib/context/context-tail-limit.d.ts +0 -1
- package/lib/context/context-tail-limit.js.map +1 -1
- package/lib/context/contracts.d.ts +0 -1
- package/lib/context/contracts.js.map +1 -1
- package/lib/context/default-builders.d.ts +0 -1
- package/lib/context/default-builders.js.map +1 -1
- package/lib/context/envelope-parts.d.ts +0 -1
- package/lib/context/envelope-parts.js.map +1 -1
- package/lib/context/im-turn-context-adapter.d.ts +0 -1
- package/lib/context/im-turn-context-adapter.js.map +1 -1
- package/lib/context/index.d.ts +1 -2
- package/lib/context/index.js +1 -1
- package/lib/context/index.js.map +1 -1
- package/lib/context/model-resolver.d.ts +0 -1
- package/lib/context/model-resolver.js.map +1 -1
- package/lib/context/turn-envelope.d.ts +3 -2
- package/lib/context/turn-envelope.js +6 -0
- package/lib/context/turn-envelope.js.map +1 -1
- package/lib/context/turn-user-message.d.ts +0 -1
- package/lib/context/turn-user-message.js.map +1 -1
- package/lib/core/agent-core-run.d.ts +3 -1
- package/lib/core/agent-core-run.js +40 -36
- package/lib/core/agent-core-run.js.map +1 -1
- package/lib/core/agent-core.d.ts +0 -1
- package/lib/core/agent-core.js.map +1 -1
- package/lib/core/agent-loop-standalone.d.ts +0 -1
- package/lib/core/agent-loop-standalone.js.map +1 -1
- package/lib/core/agent-loop-turn.d.ts +0 -1
- package/lib/core/agent-loop-turn.js.map +1 -1
- package/lib/core/agent-run-shared.d.ts +0 -1
- package/lib/core/agent-run-shared.js.map +1 -1
- package/lib/core/compose-deps.d.ts +0 -1
- package/lib/core/compose-deps.js.map +1 -1
- package/lib/core/contracts.d.ts +0 -1
- package/lib/core/contracts.js.map +1 -1
- package/lib/core/exhausted-turn-reply.d.ts +0 -1
- package/lib/core/exhausted-turn-reply.js.map +1 -1
- package/lib/core/exploration-budget.d.ts +0 -1
- package/lib/core/exploration-budget.js.map +1 -1
- package/lib/core/index.d.ts +0 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/missing-tool-resolver.d.ts +0 -1
- package/lib/core/missing-tool-resolver.js.map +1 -1
- package/lib/core/progress-reporter.d.ts +0 -1
- package/lib/core/progress-reporter.js.map +1 -1
- package/lib/core/spawn-delegation.d.ts +0 -1
- package/lib/core/spawn-delegation.js.map +1 -1
- package/lib/core/structured-reply-recovery.d.ts +18 -3
- package/lib/core/structured-reply-recovery.js +28 -7
- package/lib/core/structured-reply-recovery.js.map +1 -1
- package/lib/core/text-sanitize.d.ts +0 -1
- package/lib/core/text-sanitize.js.map +1 -1
- package/lib/core/tool-calls-user-format.d.ts +0 -1
- package/lib/core/tool-calls-user-format.js.map +1 -1
- package/lib/core/tool-execution-authority.d.ts +0 -1
- package/lib/core/tool-execution-authority.js.map +1 -1
- package/lib/core/turn-completion-usage.d.ts +0 -1
- package/lib/core/turn-completion-usage.js.map +1 -1
- package/lib/core/turn-event-mapper.d.ts +0 -1
- package/lib/core/turn-event-mapper.js.map +1 -1
- package/lib/core/turn-progress.d.ts +0 -1
- package/lib/core/turn-progress.js.map +1 -1
- package/lib/create-agent-session.d.ts +0 -1
- package/lib/create-agent-session.js.map +1 -1
- package/lib/decision/approval-judgment.d.ts +0 -1
- package/lib/decision/approval-judgment.js.map +1 -1
- package/lib/decision/approval.d.ts +0 -1
- package/lib/decision/approval.js.map +1 -1
- package/lib/decision/config.d.ts +0 -1
- package/lib/decision/config.js.map +1 -1
- package/lib/decision/index.d.ts +0 -1
- package/lib/decision/index.js.map +1 -1
- package/lib/decision/rank.d.ts +0 -1
- package/lib/decision/rank.js.map +1 -1
- package/lib/decision/retrieval.d.ts +0 -1
- package/lib/decision/retrieval.js.map +1 -1
- package/lib/decision/types.d.ts +0 -1
- package/lib/decision/types.js.map +1 -1
- package/lib/deferred-worker-runner.d.ts +0 -1
- package/lib/deferred-worker-runner.js.map +1 -1
- package/lib/deferred-worker-tool-load.d.ts +0 -1
- package/lib/deferred-worker-tool-load.js.map +1 -1
- package/lib/detached-task/index.d.ts +0 -1
- package/lib/detached-task/index.js.map +1 -1
- package/lib/detached-task/interjection.d.ts +0 -1
- package/lib/detached-task/interjection.js.map +1 -1
- package/lib/detached-task/runner.d.ts +0 -1
- package/lib/detached-task/runner.js.map +1 -1
- package/lib/detached-task/store.d.ts +0 -1
- package/lib/detached-task/store.js.map +1 -1
- package/lib/detached-task/token.d.ts +0 -1
- package/lib/detached-task/token.js.map +1 -1
- package/lib/detached-task/types.d.ts +0 -1
- package/lib/detached-task/types.js.map +1 -1
- package/lib/discovery/agent-surface-info.d.ts +0 -1
- package/lib/discovery/agent-surface-info.js.map +1 -1
- package/lib/discovery/agent-surface.d.ts +0 -1
- package/lib/discovery/agent-surface.js.map +1 -1
- package/lib/discovery/agents.d.ts +0 -1
- package/lib/discovery/agents.js.map +1 -1
- package/lib/discovery/utils.d.ts +0 -1
- package/lib/discovery/utils.js.map +1 -1
- package/lib/event/agent-stream-bus.d.ts +0 -1
- package/lib/event/agent-stream-bus.js.map +1 -1
- package/lib/event/agent-stream-hooks.d.ts +0 -1
- package/lib/event/agent-stream-hooks.js.map +1 -1
- package/lib/event/ai-event-bus.d.ts +0 -1
- package/lib/event/ai-event-bus.js.map +1 -1
- package/lib/event/contracts.d.ts +0 -1
- package/lib/event/contracts.js.map +1 -1
- package/lib/event/event-emitter.d.ts +0 -1
- package/lib/event/event-emitter.js.map +1 -1
- package/lib/event/event-system.d.ts +0 -1
- package/lib/event/event-system.js.map +1 -1
- package/lib/event/filtering-middleware.d.ts +0 -1
- package/lib/event/filtering-middleware.js.map +1 -1
- package/lib/event/hook-stream-sink.d.ts +0 -1
- package/lib/event/hook-stream-sink.js.map +1 -1
- package/lib/event/index.d.ts +0 -1
- package/lib/event/index.js.map +1 -1
- package/lib/event/logging-middleware.d.ts +0 -1
- package/lib/event/logging-middleware.js.map +1 -1
- package/lib/event/publish-agent-stream.d.ts +0 -1
- package/lib/event/publish-agent-stream.js.map +1 -1
- package/lib/event/session-events.d.ts +0 -1
- package/lib/event/session-events.js.map +1 -1
- package/lib/event/turn-event.d.ts +0 -1
- package/lib/event/turn-event.js.map +1 -1
- package/lib/event/turn-to-agent-stream.d.ts +0 -1
- package/lib/event/turn-to-agent-stream.js.map +1 -1
- package/lib/index.d.ts +4 -5
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/init/activate-ai-database-storage.d.ts +0 -1
- package/lib/init/activate-ai-database-storage.js.map +1 -1
- package/lib/init/compose-zhin-agent-runtime.d.ts +0 -1
- package/lib/init/compose-zhin-agent-runtime.js.map +1 -1
- package/lib/init/configure-zhin-agent.d.ts +0 -1
- package/lib/init/configure-zhin-agent.js.map +1 -1
- package/lib/init/define-ai-database-models.d.ts +0 -1
- package/lib/init/define-ai-database-models.js.map +1 -1
- package/lib/init/dispose-zhin-agent.d.ts +0 -1
- package/lib/init/dispose-zhin-agent.js.map +1 -1
- package/lib/init/introspection-output.d.ts +0 -1
- package/lib/init/introspection-output.js.map +1 -1
- package/lib/init/runtime-management-commands.d.ts +0 -1
- package/lib/init/runtime-management-commands.js.map +1 -1
- package/lib/interaction/index.d.ts +0 -1
- package/lib/interaction/index.js.map +1 -1
- package/lib/interaction/interaction-router.d.ts +0 -1
- package/lib/interaction/interaction-router.js.map +1 -1
- package/lib/internal/agent-host.d.ts +0 -1
- package/lib/internal/agent-host.js.map +1 -1
- package/lib/internal/ai-service-refs.d.ts +0 -1
- package/lib/internal/ai-service-refs.js.map +1 -1
- package/lib/internal/as-private.d.ts +0 -1
- package/lib/internal/as-private.js.map +1 -1
- package/lib/internal/host-types.d.ts +0 -1
- package/lib/internal/host-types.js.map +1 -1
- package/lib/internal/phase-trace.d.ts +0 -1
- package/lib/internal/phase-trace.js.map +1 -1
- package/lib/internal/prompt-trace.d.ts +0 -1
- package/lib/internal/prompt-trace.js.map +1 -1
- package/lib/internal/turn-context.d.ts +0 -1
- package/lib/internal/turn-context.js.map +1 -1
- package/lib/journal/file-journal-store.d.ts +0 -1
- package/lib/journal/file-journal-store.js.map +1 -1
- package/lib/journal/index.d.ts +0 -1
- package/lib/journal/index.js.map +1 -1
- package/lib/journal/persistent-turn-journal.d.ts +0 -1
- package/lib/journal/persistent-turn-journal.js.map +1 -1
- package/lib/mcp-client/bridge.d.ts +0 -1
- package/lib/mcp-client/bridge.js.map +1 -1
- package/lib/mcp-client/connection.d.ts +0 -1
- package/lib/mcp-client/connection.js.map +1 -1
- package/lib/mcp-client/index.d.ts +0 -1
- package/lib/mcp-client/index.js.map +1 -1
- package/lib/media/deliver-subagent-result.d.ts +0 -1
- package/lib/media/deliver-subagent-result.js +4 -1
- package/lib/media/deliver-subagent-result.js.map +1 -1
- package/lib/media/inbound-refs.d.ts +0 -1
- package/lib/media/inbound-refs.js.map +1 -1
- package/lib/media/index.d.ts +0 -1
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capabilities.d.ts +0 -1
- package/lib/media/media-capabilities.js.map +1 -1
- package/lib/media/media-normalize.d.ts +31 -3
- package/lib/media/media-normalize.js +38 -5
- package/lib/media/media-normalize.js.map +1 -1
- package/lib/media/media-publisher.d.ts +4 -2
- package/lib/media/media-publisher.js +50 -31
- package/lib/media/media-publisher.js.map +1 -1
- package/lib/media/media-router.d.ts +0 -1
- package/lib/media/media-router.js.map +1 -1
- package/lib/media/media-spool.d.ts +0 -1
- package/lib/media/media-spool.js.map +1 -1
- package/lib/media/media-tool-bridge.d.ts +0 -1
- package/lib/media/media-tool-bridge.js.map +1 -1
- package/lib/media/media-types.d.ts +0 -1
- package/lib/media/media-types.js.map +1 -1
- package/lib/media/perception.d.ts +8 -2
- package/lib/media/perception.js +55 -5
- package/lib/media/perception.js.map +1 -1
- package/lib/media/resolve-config.d.ts +0 -1
- package/lib/media/resolve-config.js.map +1 -1
- package/lib/media/subagent-inbound.d.ts +0 -1
- package/lib/media/subagent-inbound.js.map +1 -1
- package/lib/media/subagent-user-delivery.d.ts +0 -1
- package/lib/media/subagent-user-delivery.js.map +1 -1
- package/lib/media/vision-capability.d.ts +0 -1
- package/lib/media/vision-capability.js.map +1 -1
- package/lib/memory/ai-compaction-strategy.d.ts +0 -1
- package/lib/memory/ai-compaction-strategy.js.map +1 -1
- package/lib/memory/compaction-runtime.d.ts +0 -1
- package/lib/memory/compaction-runtime.js.map +1 -1
- package/lib/memory/context-repository-store.d.ts +0 -1
- package/lib/memory/context-repository-store.js.map +1 -1
- package/lib/memory/contracts.d.ts +0 -1
- package/lib/memory/contracts.js.map +1 -1
- package/lib/memory/index.d.ts +0 -1
- package/lib/memory/index.js.map +1 -1
- package/lib/memory/memory-system.d.ts +0 -1
- package/lib/memory/memory-system.js.map +1 -1
- package/lib/memory/memory-write-policy.d.ts +0 -1
- package/lib/memory/memory-write-policy.js.map +1 -1
- package/lib/memory/semantic-recall.d.ts +0 -1
- package/lib/memory/semantic-recall.js.map +1 -1
- package/lib/memory/told-ledger.d.ts +0 -1
- package/lib/memory/told-ledger.js.map +1 -1
- package/lib/memory-layers.d.ts +0 -1
- package/lib/memory-layers.js.map +1 -1
- package/lib/orchestration/five-agent/index.d.ts +0 -1
- package/lib/orchestration/five-agent/index.js.map +1 -1
- package/lib/orchestration/five-agent/prompts.d.ts +0 -1
- package/lib/orchestration/five-agent/prompts.js.map +1 -1
- package/lib/orchestration/five-agent/role-capability-policy.d.ts +0 -1
- package/lib/orchestration/five-agent/role-capability-policy.js.map +1 -1
- package/lib/orchestration/five-agent/roles.d.ts +0 -1
- package/lib/orchestration/five-agent/roles.js.map +1 -1
- package/lib/outbound/agent-output.d.ts +5 -1
- package/lib/outbound/agent-output.js +14 -0
- package/lib/outbound/agent-output.js.map +1 -1
- package/lib/outbound/send-proactive.d.ts +0 -1
- package/lib/outbound/send-proactive.js.map +1 -1
- package/lib/outbound/structured-reply.d.ts +6 -2
- package/lib/outbound/structured-reply.js +85 -14
- package/lib/outbound/structured-reply.js.map +1 -1
- package/lib/plugin-ai-hook-bus.d.ts +0 -1
- package/lib/plugin-ai-hook-bus.js.map +1 -1
- package/lib/plugin-loop-hooks.d.ts +0 -1
- package/lib/plugin-loop-hooks.js.map +1 -1
- package/lib/plugin-runtime/agent-event-bus.d.ts +0 -1
- package/lib/plugin-runtime/agent-event-bus.js.map +1 -1
- package/lib/plugin-runtime/agent-host-port.d.ts +0 -1
- package/lib/plugin-runtime/agent-host-port.js.map +1 -1
- package/lib/plugin-runtime/agent-runtime.d.ts +0 -1
- package/lib/plugin-runtime/agent-runtime.js.map +1 -1
- package/lib/plugin-runtime/agent-trace-runtime.d.ts +0 -1
- package/lib/plugin-runtime/agent-trace-runtime.js.map +1 -1
- package/lib/plugin-runtime/ai-completion.d.ts +11 -43
- package/lib/plugin-runtime/ai-completion.js +28 -10
- package/lib/plugin-runtime/ai-completion.js.map +1 -1
- package/lib/plugin-runtime/capability-ingress.d.ts +0 -1
- package/lib/plugin-runtime/capability-ingress.js.map +1 -1
- package/lib/plugin-runtime/capability-tools.d.ts +0 -1
- package/lib/plugin-runtime/capability-tools.js.map +1 -1
- package/lib/plugin-runtime/decision-runtime.d.ts +0 -1
- package/lib/plugin-runtime/decision-runtime.js.map +1 -1
- package/lib/plugin-runtime/deferred-capability-plan.d.ts +20 -1
- package/lib/plugin-runtime/deferred-capability-plan.js +40 -0
- package/lib/plugin-runtime/deferred-capability-plan.js.map +1 -1
- package/lib/plugin-runtime/file-edit-quote-utils.d.ts +0 -1
- package/lib/plugin-runtime/file-edit-quote-utils.js.map +1 -1
- package/lib/plugin-runtime/file-search-scope.d.ts +0 -1
- package/lib/plugin-runtime/file-search-scope.js.map +1 -1
- package/lib/plugin-runtime/full-agent-turn-engine.d.ts +0 -1
- package/lib/plugin-runtime/full-agent-turn-engine.js +13 -3
- package/lib/plugin-runtime/full-agent-turn-engine.js.map +1 -1
- package/lib/plugin-runtime/host-mcp-projection.d.ts +0 -1
- package/lib/plugin-runtime/host-mcp-projection.js.map +1 -1
- package/lib/plugin-runtime/host-tool-projection.d.ts +0 -1
- package/lib/plugin-runtime/host-tool-projection.js.map +1 -1
- package/lib/plugin-runtime/index.d.ts +0 -1
- package/lib/plugin-runtime/index.js.map +1 -1
- package/lib/plugin-runtime/native-bash-tool.d.ts +0 -1
- package/lib/plugin-runtime/native-bash-tool.js.map +1 -1
- package/lib/plugin-runtime/native-file-tools.d.ts +0 -1
- package/lib/plugin-runtime/native-file-tools.js.map +1 -1
- package/lib/plugin-runtime/native-image-tool.d.ts +0 -1
- package/lib/plugin-runtime/native-image-tool.js.map +1 -1
- package/lib/plugin-runtime/native-interaction-tools.d.ts +0 -1
- package/lib/plugin-runtime/native-interaction-tools.js.map +1 -1
- package/lib/plugin-runtime/native-knowledge-tool.d.ts +0 -1
- package/lib/plugin-runtime/native-knowledge-tool.js.map +1 -1
- package/lib/plugin-runtime/native-semantic-memory-tools.d.ts +0 -1
- package/lib/plugin-runtime/native-semantic-memory-tools.js.map +1 -1
- package/lib/plugin-runtime/native-todo-tools.d.ts +0 -1
- package/lib/plugin-runtime/native-todo-tools.js.map +1 -1
- package/lib/plugin-runtime/native-tool-suite.d.ts +0 -1
- package/lib/plugin-runtime/native-tool-suite.js.map +1 -1
- package/lib/plugin-runtime/native-web-tools.d.ts +0 -1
- package/lib/plugin-runtime/native-web-tools.js.map +1 -1
- package/lib/plugin-runtime/schedule-capability-plan.d.ts +0 -1
- package/lib/plugin-runtime/schedule-capability-plan.js.map +1 -1
- package/lib/plugin-runtime/subagent-turn-capability.d.ts +0 -1
- package/lib/plugin-runtime/subagent-turn-capability.js.map +1 -1
- package/lib/plugin-runtime/turn-intent-resolver.d.ts +0 -1
- package/lib/plugin-runtime/turn-intent-resolver.js.map +1 -1
- package/lib/prompt/assembly.d.ts +0 -1
- package/lib/prompt/assembly.js +2 -2
- package/lib/prompt/assembly.js.map +1 -1
- package/lib/prompt/estimate-tokens.d.ts +0 -1
- package/lib/prompt/estimate-tokens.js.map +1 -1
- package/lib/prompt/git-context.d.ts +0 -1
- package/lib/prompt/git-context.js.map +1 -1
- package/lib/prompt/index.d.ts +0 -1
- package/lib/prompt/index.js.map +1 -1
- package/lib/prompt/model-aware-builder.d.ts +0 -1
- package/lib/prompt/model-aware-builder.js.map +1 -1
- package/lib/prompt/model-prompt-strategy.d.ts +0 -1
- package/lib/prompt/model-prompt-strategy.js.map +1 -1
- package/lib/prompt/prompt-assembly-registry.d.ts +0 -1
- package/lib/prompt/prompt-assembly-registry.js.map +1 -1
- package/lib/prompt/prompt-budget.d.ts +0 -1
- package/lib/prompt/prompt-budget.js.map +1 -1
- package/lib/prompt/prompt-builder.d.ts +0 -1
- package/lib/prompt/prompt-builder.js.map +1 -1
- package/lib/prompt/rules/chat-rules.d.ts +6 -0
- package/lib/prompt/rules/chat-rules.js +20 -0
- package/lib/prompt/rules/chat-rules.js.map +1 -0
- package/lib/prompt/rules/code-references.d.ts +0 -1
- package/lib/prompt/rules/code-references.js.map +1 -1
- package/lib/prompt/rules/critical-rules.d.ts +0 -1
- package/lib/prompt/rules/critical-rules.js +2 -2
- package/lib/prompt/rules/critical-rules.js.map +1 -1
- package/lib/prompt/rules/editing.d.ts +0 -1
- package/lib/prompt/rules/editing.js.map +1 -1
- package/lib/prompt/rules/error-handling.d.ts +0 -1
- package/lib/prompt/rules/error-handling.js.map +1 -1
- package/lib/prompt/rules/index.d.ts +1 -1
- package/lib/prompt/rules/index.js +1 -0
- package/lib/prompt/rules/index.js.map +1 -1
- package/lib/prompt/rules/memory.d.ts +0 -1
- package/lib/prompt/rules/memory.js.map +1 -1
- package/lib/prompt/rules/task-completion.d.ts +0 -1
- package/lib/prompt/rules/task-completion.js.map +1 -1
- package/lib/prompt/rules/workflow-rules.d.ts +0 -1
- package/lib/prompt/rules/workflow-rules.js.map +1 -1
- package/lib/prompt/system-prompt.d.ts +7 -1
- package/lib/prompt/system-prompt.js +31 -12
- package/lib/prompt/system-prompt.js.map +1 -1
- package/lib/prompt/templates.d.ts +0 -1
- package/lib/prompt/templates.js.map +1 -1
- package/lib/prompt/tokens.d.ts +0 -1
- package/lib/prompt/tokens.js.map +1 -1
- package/lib/prompt/turn-prompt-profile.d.ts +0 -1
- package/lib/prompt/turn-prompt-profile.js.map +1 -1
- package/lib/prompt/workspace-prompt.d.ts +0 -1
- package/lib/prompt/workspace-prompt.js.map +1 -1
- package/lib/reserved-tools.d.ts +0 -1
- package/lib/reserved-tools.js.map +1 -1
- package/lib/resource-hub/hook-registry.d.ts +0 -1
- package/lib/resource-hub/hook-registry.js.map +1 -1
- package/lib/resource-hub/index.d.ts +0 -1
- package/lib/resource-hub/index.js.map +1 -1
- package/lib/resource-hub/mcp-lifecycle.d.ts +0 -1
- package/lib/resource-hub/mcp-lifecycle.js.map +1 -1
- package/lib/resource-hub/mcp-registry.d.ts +0 -1
- package/lib/resource-hub/mcp-registry.js.map +1 -1
- package/lib/resource-hub/public-api.d.ts +0 -1
- package/lib/resource-hub/public-api.js.map +1 -1
- package/lib/resource-hub/resolve-subagent-tools.d.ts +0 -1
- package/lib/resource-hub/resolve-subagent-tools.js.map +1 -1
- package/lib/resource-hub/resource-registry.d.ts +0 -1
- package/lib/resource-hub/resource-registry.js.map +1 -1
- package/lib/resource-hub/role-configs.d.ts +0 -1
- package/lib/resource-hub/role-configs.js.map +1 -1
- package/lib/resource-hub/skill-registry.d.ts +0 -1
- package/lib/resource-hub/skill-registry.js.map +1 -1
- package/lib/resource-hub/subagent-registry.d.ts +0 -1
- package/lib/resource-hub/subagent-registry.js.map +1 -1
- package/lib/resource-hub/tool-selection.d.ts +0 -1
- package/lib/resource-hub/tool-selection.js.map +1 -1
- package/lib/resource-hub/types.d.ts +0 -1
- package/lib/resource-hub/types.js.map +1 -1
- package/lib/routing/runtime-binding.d.ts +0 -1
- package/lib/routing/runtime-binding.js.map +1 -1
- package/lib/routing/subagent-summarize.d.ts +0 -1
- package/lib/routing/subagent-summarize.js.map +1 -1
- package/lib/schedule-cron.d.ts +0 -1
- package/lib/schedule-cron.js.map +1 -1
- package/lib/schedule-domain/audit-logger.d.ts +0 -1
- package/lib/schedule-domain/audit-logger.js.map +1 -1
- package/lib/schedule-domain/budget-guard.d.ts +0 -1
- package/lib/schedule-domain/budget-guard.js.map +1 -1
- package/lib/schedule-domain/execution-domain.d.ts +0 -1
- package/lib/schedule-domain/execution-domain.js.map +1 -1
- package/lib/schedule-domain/index.d.ts +0 -1
- package/lib/schedule-domain/index.js.map +1 -1
- package/lib/schedule-domain/output-validator.d.ts +0 -1
- package/lib/schedule-domain/output-validator.js.map +1 -1
- package/lib/schedule-domain/prompt-assembler.d.ts +0 -1
- package/lib/schedule-domain/prompt-assembler.js.map +1 -1
- package/lib/schedule-domain/schedule-execution-queue.d.ts +0 -1
- package/lib/schedule-domain/schedule-execution-queue.js.map +1 -1
- package/lib/schedule-domain/security-harness.d.ts +0 -1
- package/lib/schedule-domain/security-harness.js.map +1 -1
- package/lib/schedule-manager.d.ts +0 -1
- package/lib/schedule-manager.js.map +1 -1
- package/lib/seam/index.d.ts +0 -1
- package/lib/seam/index.js.map +1 -1
- package/lib/seam/seam-integration.d.ts +0 -1
- package/lib/seam/seam-integration.js.map +1 -1
- package/lib/seam/seam-provider.d.ts +0 -1
- package/lib/seam/seam-provider.js.map +1 -1
- package/lib/seam/skill-service.d.ts +0 -1
- package/lib/seam/skill-service.js.map +1 -1
- package/lib/seam/tokens.d.ts +0 -1
- package/lib/seam/tokens.js.map +1 -1
- package/lib/seam/tool-service.d.ts +0 -1
- package/lib/seam/tool-service.js.map +1 -1
- package/lib/security/anomaly-detection.d.ts +0 -1
- package/lib/security/anomaly-detection.js.map +1 -1
- package/lib/security/audit-logger.d.ts +0 -1
- package/lib/security/audit-logger.js.map +1 -1
- package/lib/security/comm-message-context.d.ts +0 -1
- package/lib/security/comm-message-context.js.map +1 -1
- package/lib/security/dangerous-tool-policy.d.ts +0 -1
- package/lib/security/dangerous-tool-policy.js.map +1 -1
- package/lib/security/exec-policy.d.ts +0 -1
- package/lib/security/exec-policy.js.map +1 -1
- package/lib/security/file-policy.d.ts +0 -1
- package/lib/security/file-policy.js.map +1 -1
- package/lib/security/file-role-policy.d.ts +0 -1
- package/lib/security/file-role-policy.js.map +1 -1
- package/lib/security/index.d.ts +0 -1
- package/lib/security/index.js.map +1 -1
- package/lib/security/network-authority.d.ts +0 -1
- package/lib/security/network-authority.js.map +1 -1
- package/lib/security/network-policy-context.d.ts +0 -1
- package/lib/security/network-policy-context.js.map +1 -1
- package/lib/security/network-policy.d.ts +0 -1
- package/lib/security/network-policy.js.map +1 -1
- package/lib/security/outbound-leak-guard.d.ts +0 -1
- package/lib/security/outbound-leak-guard.js.map +1 -1
- package/lib/security/owner-approval-contracts.d.ts +0 -1
- package/lib/security/owner-approval-contracts.js.map +1 -1
- package/lib/security/owner-approval-runtime.d.ts +0 -1
- package/lib/security/owner-approval-runtime.js.map +1 -1
- package/lib/security/owner-approval-store.d.ts +0 -1
- package/lib/security/owner-approval-store.js.map +1 -1
- package/lib/security/policy-facade.d.ts +0 -1
- package/lib/security/policy-facade.js.map +1 -1
- package/lib/security/policy-narrowing.d.ts +0 -1
- package/lib/security/policy-narrowing.js.map +1 -1
- package/lib/security/provenance.d.ts +0 -1
- package/lib/security/provenance.js.map +1 -1
- package/lib/security/sandbox-docker.d.ts +0 -1
- package/lib/security/sandbox-docker.js.map +1 -1
- package/lib/security/sandbox.d.ts +0 -1
- package/lib/security/sandbox.js.map +1 -1
- package/lib/security/trust-level.d.ts +0 -1
- package/lib/security/trust-level.js.map +1 -1
- package/lib/security/turn-file-authority.d.ts +0 -1
- package/lib/security/turn-file-authority.js.map +1 -1
- package/lib/security/turn-network-client.d.ts +0 -1
- package/lib/security/turn-network-client.js.map +1 -1
- package/lib/security/usage-quota.d.ts +3 -7
- package/lib/security/usage-quota.js.map +1 -1
- package/lib/segment/filter-im-delivery.d.ts +0 -1
- package/lib/segment/filter-im-delivery.js.map +1 -1
- package/lib/service.d.ts +0 -1
- package/lib/service.js.map +1 -1
- package/lib/session/approval-port.d.ts +0 -1
- package/lib/session/approval-port.js.map +1 -1
- package/lib/session/approval-review-agent.d.ts +0 -1
- package/lib/session/approval-review-agent.js.map +1 -1
- package/lib/session/branch-summarization-runtime.d.ts +0 -1
- package/lib/session/branch-summarization-runtime.js.map +1 -1
- package/lib/session/contracts.d.ts +0 -1
- package/lib/session/contracts.js.map +1 -1
- package/lib/session/index.d.ts +0 -1
- package/lib/session/index.js.map +1 -1
- package/lib/session/session-io.d.ts +0 -1
- package/lib/session/session-io.js.map +1 -1
- package/lib/session/session-key.d.ts +0 -1
- package/lib/session/session-key.js.map +1 -1
- package/lib/session/session-system.d.ts +7 -1
- package/lib/session/session-system.js +26 -12
- package/lib/session/session-system.js.map +1 -1
- package/lib/session/session-tree-commands.d.ts +0 -1
- package/lib/session/session-tree-commands.js.map +1 -1
- package/lib/session/strategies.d.ts +0 -1
- package/lib/session/strategies.js.map +1 -1
- package/lib/session/turn-ingress-session.d.ts +0 -1
- package/lib/session/turn-ingress-session.js.map +1 -1
- package/lib/session-tree-runtime.d.ts +0 -1
- package/lib/session-tree-runtime.js.map +1 -1
- package/lib/skill/capability-catalog.d.ts +0 -1
- package/lib/skill/capability-catalog.js.map +1 -1
- package/lib/skill/contracts.d.ts +0 -1
- package/lib/skill/contracts.js.map +1 -1
- package/lib/skill/index.d.ts +0 -1
- package/lib/skill/index.js.map +1 -1
- package/lib/skill/progressive-disclosure.d.ts +0 -1
- package/lib/skill/progressive-disclosure.js.map +1 -1
- package/lib/skill/skill-instruction-reader-factory.d.ts +0 -1
- package/lib/skill/skill-instruction-reader-factory.js.map +1 -1
- package/lib/skill/skill-instruction-reader.d.ts +0 -1
- package/lib/skill/skill-instruction-reader.js.map +1 -1
- package/lib/skill/skill-instructions.d.ts +0 -1
- package/lib/skill/skill-instructions.js.map +1 -1
- package/lib/skill/skill-registry-as-service.d.ts +0 -1
- package/lib/skill/skill-registry-as-service.js.map +1 -1
- package/lib/skill/skill-system.d.ts +0 -1
- package/lib/skill/skill-system.js.map +1 -1
- package/lib/spawn/permission-task.d.ts +0 -1
- package/lib/spawn/permission-task.js.map +1 -1
- package/lib/spawn/spawn-task-tool.d.ts +0 -1
- package/lib/spawn/spawn-task-tool.js.map +1 -1
- package/lib/stability/memory-pressure.d.ts +0 -1
- package/lib/stability/memory-pressure.js.map +1 -1
- package/lib/standalone/standalone-tool-catalog.d.ts +0 -1
- package/lib/standalone/standalone-tool-catalog.js.map +1 -1
- package/lib/subagent/contracts.d.ts +0 -1
- package/lib/subagent/contracts.js.map +1 -1
- package/lib/subagent/im-result-sink.d.ts +0 -1
- package/lib/subagent/im-result-sink.js.map +1 -1
- package/lib/subagent/index.d.ts +0 -1
- package/lib/subagent/index.js.map +1 -1
- package/lib/subagent/subagent-runtime.d.ts +0 -1
- package/lib/subagent/subagent-runtime.js.map +1 -1
- package/lib/subagent/subagent-system-init.d.ts +0 -1
- package/lib/subagent/subagent-system-init.js.map +1 -1
- package/lib/subagent/subagent-system.d.ts +0 -1
- package/lib/subagent/subagent-system.js.map +1 -1
- package/lib/subagent-ai-events.d.ts +0 -1
- package/lib/subagent-ai-events.js.map +1 -1
- package/lib/subagent-artifact.d.ts +0 -1
- package/lib/subagent-artifact.js.map +1 -1
- package/lib/subagent-goal-notify.d.ts +0 -1
- package/lib/subagent-goal-notify.js.map +1 -1
- package/lib/subagent-parent-context.d.ts +0 -1
- package/lib/subagent-parent-context.js.map +1 -1
- package/lib/subagent-preset.d.ts +0 -1
- package/lib/subagent-preset.js.map +1 -1
- package/lib/subagent-prompt.d.ts +0 -1
- package/lib/subagent-prompt.js.map +1 -1
- package/lib/task-executor.d.ts +0 -1
- package/lib/task-executor.js.map +1 -1
- package/lib/tool/builtin-policy-extractors.d.ts +0 -1
- package/lib/tool/builtin-policy-extractors.js.map +1 -1
- package/lib/tool/context-tools.d.ts +0 -1
- package/lib/tool/context-tools.js.map +1 -1
- package/lib/tool/contracts.d.ts +0 -1
- package/lib/tool/contracts.js.map +1 -1
- package/lib/tool/conversation-reference-tool.d.ts +0 -1
- package/lib/tool/conversation-reference-tool.js.map +1 -1
- package/lib/tool/deferred-resolution.d.ts +0 -1
- package/lib/tool/deferred-resolution.js.map +1 -1
- package/lib/tool/executable-tool-registry.d.ts +0 -1
- package/lib/tool/executable-tool-registry.js.map +1 -1
- package/lib/tool/index.d.ts +0 -1
- package/lib/tool/index.js.map +1 -1
- package/lib/tool/pre-exec.d.ts +0 -1
- package/lib/tool/pre-exec.js.map +1 -1
- package/lib/tool/prepare-turn-tools.d.ts +0 -1
- package/lib/tool/prepare-turn-tools.js.map +1 -1
- package/lib/tool/runtime.d.ts +0 -1
- package/lib/tool/runtime.js.map +1 -1
- package/lib/tool/sources.d.ts +0 -1
- package/lib/tool/sources.js.map +1 -1
- package/lib/tool/tool-approval-gate.d.ts +0 -1
- package/lib/tool/tool-approval-gate.js.map +1 -1
- package/lib/tool/tool-approval-once-store.d.ts +0 -1
- package/lib/tool/tool-approval-once-store.js.map +1 -1
- package/lib/tool/tool-execution-authority.d.ts +0 -1
- package/lib/tool/tool-execution-authority.js.map +1 -1
- package/lib/tool/tool-model-output.d.ts +0 -1
- package/lib/tool/tool-model-output.js.map +1 -1
- package/lib/tool/tool-runtime.d.ts +0 -1
- package/lib/tool/tool-runtime.js.map +1 -1
- package/lib/tool/tool-system.d.ts +0 -1
- package/lib/tool/tool-system.js.map +1 -1
- package/lib/tool/turn-tool-runtime.d.ts +0 -1
- package/lib/tool/turn-tool-runtime.js.map +1 -1
- package/lib/tool-bridge.d.ts +0 -1
- package/lib/tool-bridge.js.map +1 -1
- package/lib/tool-catalog/deferred-turn-controller.d.ts +0 -1
- package/lib/tool-catalog/deferred-turn-controller.js.map +1 -1
- package/lib/tool-catalog/index.d.ts +0 -1
- package/lib/tool-catalog/index.js.map +1 -1
- package/lib/tool-catalog/resolve-config.d.ts +0 -1
- package/lib/tool-catalog/resolve-config.js.map +1 -1
- package/lib/tool-catalog/session-deferred-store.d.ts +0 -1
- package/lib/tool-catalog/session-deferred-store.js.map +1 -1
- package/lib/tool-catalog/tool-catalog.d.ts +8 -1
- package/lib/tool-catalog/tool-catalog.js +15 -0
- package/lib/tool-catalog/tool-catalog.js.map +1 -1
- package/lib/tool-catalog/types.d.ts +0 -1
- package/lib/tool-catalog/types.js.map +1 -1
- package/lib/trace/context-budget.d.ts +0 -1
- package/lib/trace/context-budget.js.map +1 -1
- package/lib/trace/index.d.ts +0 -1
- package/lib/trace/index.js.map +1 -1
- package/lib/trace/turn-trace-archive.d.ts +0 -1
- package/lib/trace/turn-trace-archive.js.map +1 -1
- package/lib/trace/turn-trace-format.d.ts +0 -1
- package/lib/trace/turn-trace-format.js.map +1 -1
- package/lib/trace/turn-trace-registry.d.ts +0 -1
- package/lib/trace/turn-trace-registry.js.map +1 -1
- package/lib/trace/turn-trace-store.d.ts +0 -1
- package/lib/trace/turn-trace-store.js.map +1 -1
- package/lib/trace/turn-trace.d.ts +0 -1
- package/lib/trace/turn-trace.js.map +1 -1
- package/lib/turn/agent-turn-context.d.ts +0 -1
- package/lib/turn/agent-turn-context.js.map +1 -1
- package/lib/turn/auto-continue.d.ts +0 -1
- package/lib/turn/auto-continue.js.map +1 -1
- package/lib/turn/cancel-intent.d.ts +0 -1
- package/lib/turn/cancel-intent.js.map +1 -1
- package/lib/turn/deferred-auto-continue.d.ts +0 -1
- package/lib/turn/deferred-auto-continue.js.map +1 -1
- package/lib/turn/deferred-delivery.d.ts +0 -1
- package/lib/turn/deferred-delivery.js.map +1 -1
- package/lib/turn/deferred-turn-state.d.ts +0 -1
- package/lib/turn/deferred-turn-state.js.map +1 -1
- package/lib/turn/execute-agent-turn.d.ts +0 -1
- package/lib/turn/execute-agent-turn.js.map +1 -1
- package/lib/turn/inbound-media.d.ts +3 -2
- package/lib/turn/inbound-media.js +15 -2
- package/lib/turn/inbound-media.js.map +1 -1
- package/lib/turn/inbound-queue-config.d.ts +0 -1
- package/lib/turn/inbound-queue-config.js.map +1 -1
- package/lib/turn/inbound-queue-runtime.d.ts +0 -1
- package/lib/turn/inbound-queue-runtime.js.map +1 -1
- package/lib/turn/inbound-turn-queue.d.ts +0 -1
- package/lib/turn/inbound-turn-queue.js.map +1 -1
- package/lib/turn/index.d.ts +0 -1
- package/lib/turn/index.js.map +1 -1
- package/lib/turn/journal-feed.d.ts +0 -1
- package/lib/turn/journal-feed.js.map +1 -1
- package/lib/turn/journal-integrity.d.ts +0 -1
- package/lib/turn/journal-integrity.js.map +1 -1
- package/lib/turn/persist-deferred-context.d.ts +0 -1
- package/lib/turn/persist-deferred-context.js.map +1 -1
- package/lib/turn/persist-subagent-context.d.ts +0 -1
- package/lib/turn/persist-subagent-context.js.map +1 -1
- package/lib/turn/process-stream.d.ts +0 -1
- package/lib/turn/process-stream.js.map +1 -1
- package/lib/turn/prompt-access.d.ts +0 -1
- package/lib/turn/prompt-access.js.map +1 -1
- package/lib/turn/prompt-api.d.ts +0 -1
- package/lib/turn/prompt-api.js.map +1 -1
- package/lib/turn/prompt-controller.d.ts +0 -1
- package/lib/turn/prompt-controller.js.map +1 -1
- package/lib/turn/prompt-input.d.ts +0 -1
- package/lib/turn/prompt-input.js.map +1 -1
- package/lib/turn/session-message-queue.d.ts +0 -1
- package/lib/turn/session-message-queue.js.map +1 -1
- package/lib/turn/subagent-auto-continue.d.ts +0 -1
- package/lib/turn/subagent-auto-continue.js.map +1 -1
- package/lib/turn/task-continuation.d.ts +0 -1
- package/lib/turn/task-continuation.js.map +1 -1
- package/lib/turn/trigger-cancelled-error.d.ts +0 -1
- package/lib/turn/trigger-cancelled-error.js.map +1 -1
- package/lib/turn/turn-admission-gate.d.ts +0 -1
- package/lib/turn/turn-admission-gate.js.map +1 -1
- package/lib/turn/turn-complete.d.ts +0 -1
- package/lib/turn/turn-complete.js.map +1 -1
- package/lib/turn/turn-context-bridge.d.ts +0 -1
- package/lib/turn/turn-context-bridge.js.map +1 -1
- package/lib/turn/turn-deferred-delta.d.ts +0 -1
- package/lib/turn/turn-deferred-delta.js.map +1 -1
- package/lib/turn/turn-event-source.d.ts +0 -1
- package/lib/turn/turn-event-source.js.map +1 -1
- package/lib/turn/turn-ingress.d.ts +3 -1
- package/lib/turn/turn-ingress.js.map +1 -1
- package/lib/turn/turn-metrics.d.ts +0 -1
- package/lib/turn/turn-metrics.js.map +1 -1
- package/lib/turn/turn-pipeline.d.ts +0 -1
- package/lib/turn/turn-pipeline.js.map +1 -1
- package/lib/turn/turn-terminal.d.ts +0 -1
- package/lib/turn/turn-terminal.js.map +1 -1
- package/lib/turn/turn-tracker.d.ts +0 -1
- package/lib/turn/turn-tracker.js.map +1 -1
- package/lib/types/disposable.d.ts +0 -1
- package/lib/types/disposable.js.map +1 -1
- package/lib/typing-indicator/adapter-integration.d.ts +0 -1
- package/lib/typing-indicator/adapter-integration.js.map +1 -1
- package/lib/typing-indicator/index.d.ts +0 -1
- package/lib/typing-indicator/index.js.map +1 -1
- package/lib/user-profile.d.ts +0 -1
- package/lib/user-profile.js.map +1 -1
- package/lib/utils/config-env.d.ts +0 -1
- package/lib/utils/config-env.js.map +1 -1
- package/lib/utils/keyed-mutex.d.ts +0 -1
- package/lib/utils/keyed-mutex.js.map +1 -1
- package/lib/web/bing-search-html.d.ts +0 -1
- package/lib/web/bing-search-html.js.map +1 -1
- package/lib/web/web-search-locale.d.ts +0 -1
- package/lib/web/web-search-locale.js.map +1 -1
- package/lib/web/web-tool-utils.d.ts +0 -1
- package/lib/web/web-tool-utils.js.map +1 -1
- package/lib/zhin-agent/index.d.ts +0 -1
- package/lib/zhin-agent/index.js.map +1 -1
- package/lib/zhin-agent/runtime-modules.d.ts +0 -1
- package/lib/zhin-agent/runtime-modules.js.map +1 -1
- package/package.json +12 -12
- package/lib/activity-feedback/adapter-integration.d.ts.map +0 -1
- package/lib/activity-feedback/config-resolver.d.ts.map +0 -1
- package/lib/activity-feedback/event-context.d.ts.map +0 -1
- package/lib/activity-feedback/index.d.ts.map +0 -1
- package/lib/activity-feedback/manager.d.ts.map +0 -1
- package/lib/activity-feedback/schedule-guard.d.ts.map +0 -1
- package/lib/activity-feedback/subagent-prefix.d.ts.map +0 -1
- package/lib/activity-feedback/turn-event-projector.d.ts.map +0 -1
- package/lib/activity-feedback/types.d.ts.map +0 -1
- package/lib/ai-event-bus.d.ts.map +0 -1
- package/lib/ai-event-contract.d.ts.map +0 -1
- package/lib/ai-event-subscriber.d.ts.map +0 -1
- package/lib/ai-hook-runtime-bus.d.ts.map +0 -1
- package/lib/assistant/bootstrap-assistant-home.d.ts.map +0 -1
- package/lib/assistant/config.d.ts.map +0 -1
- package/lib/assistant/deliver-schedule-to-adapter.d.ts.map +0 -1
- package/lib/assistant/domains/ha-home-backend.d.ts.map +0 -1
- package/lib/assistant/domains/ha-ws-transport.d.ts.map +0 -1
- package/lib/assistant/domains/home-entity.d.ts.map +0 -1
- package/lib/assistant/domains/home-state-watch.d.ts.map +0 -1
- package/lib/assistant/event-ingress.d.ts.map +0 -1
- package/lib/assistant/event-types.d.ts.map +0 -1
- package/lib/assistant/home-config.d.ts.map +0 -1
- package/lib/assistant/home-facade.d.ts.map +0 -1
- package/lib/assistant/home-mcp-bridge.d.ts.map +0 -1
- package/lib/assistant/home-policy.d.ts.map +0 -1
- package/lib/assistant/home-tools.d.ts.map +0 -1
- package/lib/assistant/index.d.ts.map +0 -1
- package/lib/assistant/job-creator.d.ts.map +0 -1
- package/lib/assistant/job-engine.d.ts.map +0 -1
- package/lib/assistant/job-scheduler.d.ts.map +0 -1
- package/lib/assistant/job-store.d.ts.map +0 -1
- package/lib/assistant/job-utils.d.ts.map +0 -1
- package/lib/assistant/job-worker.d.ts.map +0 -1
- package/lib/assistant/notification-router.d.ts.map +0 -1
- package/lib/assistant/profile-loader.d.ts.map +0 -1
- package/lib/assistant/profile-types.d.ts.map +0 -1
- package/lib/assistant/runtime-contract.d.ts.map +0 -1
- package/lib/assistant/schedule-execution.d.ts.map +0 -1
- package/lib/assistant/schedule-job-service.d.ts.map +0 -1
- package/lib/assistant/schedule-skills.d.ts.map +0 -1
- package/lib/assistant/types.d.ts.map +0 -1
- package/lib/authoring/bridge.d.ts.map +0 -1
- package/lib/authoring/define-eval.d.ts.map +0 -1
- package/lib/authoring/define-hook.d.ts.map +0 -1
- package/lib/authoring/define-skill.d.ts.map +0 -1
- package/lib/authoring/disable-tool.d.ts.map +0 -1
- package/lib/authoring/entries/evals.d.ts.map +0 -1
- package/lib/authoring/entries/hooks.d.ts.map +0 -1
- package/lib/authoring/entries/skills.d.ts.map +0 -1
- package/lib/authoring/index.d.ts.map +0 -1
- package/lib/authoring/types.d.ts.map +0 -1
- package/lib/bootstrap.d.ts.map +0 -1
- package/lib/builtins/builtin-tool-service.d.ts.map +0 -1
- package/lib/common-adapter-tools.d.ts.map +0 -1
- package/lib/config/agent-binding-registry.d.ts.map +0 -1
- package/lib/config/agent-bindings.d.ts.map +0 -1
- package/lib/config/agent-interfaces.d.ts.map +0 -1
- package/lib/config/deprecated-agent-binding-keys.d.ts.map +0 -1
- package/lib/config/deprecated-agent-keys.d.ts.map +0 -1
- package/lib/config/fix-ai-config.d.ts.map +0 -1
- package/lib/config/index.d.ts.map +0 -1
- package/lib/config/keyword-triggers.d.ts.map +0 -1
- package/lib/config/model-harness-runtime.d.ts.map +0 -1
- package/lib/config/model-harness.d.ts.map +0 -1
- package/lib/config/normalize-ai-config.d.ts.map +0 -1
- package/lib/config/perception-config.d.ts.map +0 -1
- package/lib/config/provider-instance.d.ts.map +0 -1
- package/lib/config/resolve-five-agent-binding.d.ts.map +0 -1
- package/lib/config/types.d.ts.map +0 -1
- package/lib/config/validate-ai-config.d.ts.map +0 -1
- package/lib/config/zhin-agent-config.d.ts.map +0 -1
- package/lib/config/zhin-agent-constants.d.ts.map +0 -1
- package/lib/config/zhin-agent-defaults.d.ts.map +0 -1
- package/lib/config/zhin-agent-dependencies.d.ts.map +0 -1
- package/lib/config/zhin-agent-runtime.d.ts.map +0 -1
- package/lib/context/agents-instruction.d.ts.map +0 -1
- package/lib/context/context-system.d.ts.map +0 -1
- package/lib/context/context-tail-limit.d.ts.map +0 -1
- package/lib/context/contracts.d.ts.map +0 -1
- package/lib/context/default-builders.d.ts.map +0 -1
- package/lib/context/envelope-parts.d.ts.map +0 -1
- package/lib/context/im-turn-context-adapter.d.ts.map +0 -1
- package/lib/context/index.d.ts.map +0 -1
- package/lib/context/model-resolver.d.ts.map +0 -1
- package/lib/context/turn-envelope.d.ts.map +0 -1
- package/lib/context/turn-user-message.d.ts.map +0 -1
- package/lib/core/agent-core-run.d.ts.map +0 -1
- package/lib/core/agent-core.d.ts.map +0 -1
- package/lib/core/agent-loop-standalone.d.ts.map +0 -1
- package/lib/core/agent-loop-turn.d.ts.map +0 -1
- package/lib/core/agent-run-shared.d.ts.map +0 -1
- package/lib/core/compose-deps.d.ts.map +0 -1
- package/lib/core/contracts.d.ts.map +0 -1
- package/lib/core/exhausted-turn-reply.d.ts.map +0 -1
- package/lib/core/exploration-budget.d.ts.map +0 -1
- package/lib/core/index.d.ts.map +0 -1
- package/lib/core/missing-tool-resolver.d.ts.map +0 -1
- package/lib/core/progress-reporter.d.ts.map +0 -1
- package/lib/core/spawn-delegation.d.ts.map +0 -1
- package/lib/core/structured-reply-recovery.d.ts.map +0 -1
- package/lib/core/text-sanitize.d.ts.map +0 -1
- package/lib/core/tool-calls-user-format.d.ts.map +0 -1
- package/lib/core/tool-execution-authority.d.ts.map +0 -1
- package/lib/core/turn-completion-usage.d.ts.map +0 -1
- package/lib/core/turn-event-mapper.d.ts.map +0 -1
- package/lib/core/turn-progress.d.ts.map +0 -1
- package/lib/create-agent-session.d.ts.map +0 -1
- package/lib/decision/approval-judgment.d.ts.map +0 -1
- package/lib/decision/approval.d.ts.map +0 -1
- package/lib/decision/config.d.ts.map +0 -1
- package/lib/decision/index.d.ts.map +0 -1
- package/lib/decision/rank.d.ts.map +0 -1
- package/lib/decision/retrieval.d.ts.map +0 -1
- package/lib/decision/types.d.ts.map +0 -1
- package/lib/deferred-worker-runner.d.ts.map +0 -1
- package/lib/deferred-worker-tool-load.d.ts.map +0 -1
- package/lib/detached-task/index.d.ts.map +0 -1
- package/lib/detached-task/interjection.d.ts.map +0 -1
- package/lib/detached-task/runner.d.ts.map +0 -1
- package/lib/detached-task/store.d.ts.map +0 -1
- package/lib/detached-task/token.d.ts.map +0 -1
- package/lib/detached-task/types.d.ts.map +0 -1
- package/lib/discovery/agent-surface-info.d.ts.map +0 -1
- package/lib/discovery/agent-surface.d.ts.map +0 -1
- package/lib/discovery/agents.d.ts.map +0 -1
- package/lib/discovery/utils.d.ts.map +0 -1
- package/lib/event/agent-stream-bus.d.ts.map +0 -1
- package/lib/event/agent-stream-hooks.d.ts.map +0 -1
- package/lib/event/ai-event-bus.d.ts.map +0 -1
- package/lib/event/contracts.d.ts.map +0 -1
- package/lib/event/event-emitter.d.ts.map +0 -1
- package/lib/event/event-system.d.ts.map +0 -1
- package/lib/event/filtering-middleware.d.ts.map +0 -1
- package/lib/event/hook-stream-sink.d.ts.map +0 -1
- package/lib/event/index.d.ts.map +0 -1
- package/lib/event/logging-middleware.d.ts.map +0 -1
- package/lib/event/publish-agent-stream.d.ts.map +0 -1
- package/lib/event/session-events.d.ts.map +0 -1
- package/lib/event/turn-event.d.ts.map +0 -1
- package/lib/event/turn-to-agent-stream.d.ts.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/init/activate-ai-database-storage.d.ts.map +0 -1
- package/lib/init/compose-zhin-agent-runtime.d.ts.map +0 -1
- package/lib/init/configure-zhin-agent.d.ts.map +0 -1
- package/lib/init/define-ai-database-models.d.ts.map +0 -1
- package/lib/init/dispose-zhin-agent.d.ts.map +0 -1
- package/lib/init/introspection-output.d.ts.map +0 -1
- package/lib/init/runtime-management-commands.d.ts.map +0 -1
- package/lib/interaction/index.d.ts.map +0 -1
- package/lib/interaction/interaction-router.d.ts.map +0 -1
- package/lib/internal/agent-host.d.ts.map +0 -1
- package/lib/internal/ai-service-refs.d.ts.map +0 -1
- package/lib/internal/as-private.d.ts.map +0 -1
- package/lib/internal/host-types.d.ts.map +0 -1
- package/lib/internal/phase-trace.d.ts.map +0 -1
- package/lib/internal/prompt-trace.d.ts.map +0 -1
- package/lib/internal/turn-context.d.ts.map +0 -1
- package/lib/journal/file-journal-store.d.ts.map +0 -1
- package/lib/journal/index.d.ts.map +0 -1
- package/lib/journal/persistent-turn-journal.d.ts.map +0 -1
- package/lib/mcp-client/bridge.d.ts.map +0 -1
- package/lib/mcp-client/connection.d.ts.map +0 -1
- package/lib/mcp-client/index.d.ts.map +0 -1
- package/lib/media/deliver-subagent-result.d.ts.map +0 -1
- package/lib/media/inbound-refs.d.ts.map +0 -1
- package/lib/media/index.d.ts.map +0 -1
- package/lib/media/media-capabilities.d.ts.map +0 -1
- package/lib/media/media-normalize.d.ts.map +0 -1
- package/lib/media/media-publisher.d.ts.map +0 -1
- package/lib/media/media-router.d.ts.map +0 -1
- package/lib/media/media-spool.d.ts.map +0 -1
- package/lib/media/media-tool-bridge.d.ts.map +0 -1
- package/lib/media/media-types.d.ts.map +0 -1
- package/lib/media/perception.d.ts.map +0 -1
- package/lib/media/resolve-config.d.ts.map +0 -1
- package/lib/media/subagent-inbound.d.ts.map +0 -1
- package/lib/media/subagent-user-delivery.d.ts.map +0 -1
- package/lib/media/vision-capability.d.ts.map +0 -1
- package/lib/memory/ai-compaction-strategy.d.ts.map +0 -1
- package/lib/memory/compaction-runtime.d.ts.map +0 -1
- package/lib/memory/context-repository-store.d.ts.map +0 -1
- package/lib/memory/contracts.d.ts.map +0 -1
- package/lib/memory/index.d.ts.map +0 -1
- package/lib/memory/memory-system.d.ts.map +0 -1
- package/lib/memory/memory-write-policy.d.ts.map +0 -1
- package/lib/memory/semantic-recall.d.ts.map +0 -1
- package/lib/memory/told-ledger.d.ts.map +0 -1
- package/lib/memory-layers.d.ts.map +0 -1
- package/lib/orchestration/five-agent/index.d.ts.map +0 -1
- package/lib/orchestration/five-agent/prompts.d.ts.map +0 -1
- package/lib/orchestration/five-agent/role-capability-policy.d.ts.map +0 -1
- package/lib/orchestration/five-agent/roles.d.ts.map +0 -1
- package/lib/outbound/agent-output.d.ts.map +0 -1
- package/lib/outbound/send-proactive.d.ts.map +0 -1
- package/lib/outbound/structured-reply.d.ts.map +0 -1
- package/lib/plugin-ai-hook-bus.d.ts.map +0 -1
- package/lib/plugin-loop-hooks.d.ts.map +0 -1
- package/lib/plugin-runtime/agent-event-bus.d.ts.map +0 -1
- package/lib/plugin-runtime/agent-host-port.d.ts.map +0 -1
- package/lib/plugin-runtime/agent-runtime.d.ts.map +0 -1
- package/lib/plugin-runtime/agent-trace-runtime.d.ts.map +0 -1
- package/lib/plugin-runtime/ai-completion.d.ts.map +0 -1
- package/lib/plugin-runtime/capability-ingress.d.ts.map +0 -1
- package/lib/plugin-runtime/capability-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/decision-runtime.d.ts.map +0 -1
- package/lib/plugin-runtime/deferred-capability-plan.d.ts.map +0 -1
- package/lib/plugin-runtime/file-edit-quote-utils.d.ts.map +0 -1
- package/lib/plugin-runtime/file-search-scope.d.ts.map +0 -1
- package/lib/plugin-runtime/full-agent-turn-engine.d.ts.map +0 -1
- package/lib/plugin-runtime/host-mcp-projection.d.ts.map +0 -1
- package/lib/plugin-runtime/host-tool-projection.d.ts.map +0 -1
- package/lib/plugin-runtime/index.d.ts.map +0 -1
- package/lib/plugin-runtime/native-bash-tool.d.ts.map +0 -1
- package/lib/plugin-runtime/native-file-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/native-image-tool.d.ts.map +0 -1
- package/lib/plugin-runtime/native-interaction-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/native-knowledge-tool.d.ts.map +0 -1
- package/lib/plugin-runtime/native-semantic-memory-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/native-todo-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/native-tool-suite.d.ts.map +0 -1
- package/lib/plugin-runtime/native-web-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/schedule-capability-plan.d.ts.map +0 -1
- package/lib/plugin-runtime/subagent-turn-capability.d.ts.map +0 -1
- package/lib/plugin-runtime/turn-intent-resolver.d.ts.map +0 -1
- package/lib/prompt/assembly.d.ts.map +0 -1
- package/lib/prompt/estimate-tokens.d.ts.map +0 -1
- package/lib/prompt/git-context.d.ts.map +0 -1
- package/lib/prompt/index.d.ts.map +0 -1
- package/lib/prompt/model-aware-builder.d.ts.map +0 -1
- package/lib/prompt/model-prompt-strategy.d.ts.map +0 -1
- package/lib/prompt/prompt-assembly-registry.d.ts.map +0 -1
- package/lib/prompt/prompt-budget.d.ts.map +0 -1
- package/lib/prompt/prompt-builder.d.ts.map +0 -1
- package/lib/prompt/rules/code-references.d.ts.map +0 -1
- package/lib/prompt/rules/critical-rules.d.ts.map +0 -1
- package/lib/prompt/rules/editing.d.ts.map +0 -1
- package/lib/prompt/rules/error-handling.d.ts.map +0 -1
- package/lib/prompt/rules/index.d.ts.map +0 -1
- package/lib/prompt/rules/memory.d.ts.map +0 -1
- package/lib/prompt/rules/task-completion.d.ts.map +0 -1
- package/lib/prompt/rules/workflow-rules.d.ts.map +0 -1
- package/lib/prompt/system-prompt.d.ts.map +0 -1
- package/lib/prompt/templates.d.ts.map +0 -1
- package/lib/prompt/tokens.d.ts.map +0 -1
- package/lib/prompt/turn-prompt-profile.d.ts.map +0 -1
- package/lib/prompt/workspace-prompt.d.ts.map +0 -1
- package/lib/reserved-tools.d.ts.map +0 -1
- package/lib/resource-hub/hook-registry.d.ts.map +0 -1
- package/lib/resource-hub/index.d.ts.map +0 -1
- package/lib/resource-hub/mcp-lifecycle.d.ts.map +0 -1
- package/lib/resource-hub/mcp-registry.d.ts.map +0 -1
- package/lib/resource-hub/public-api.d.ts.map +0 -1
- package/lib/resource-hub/resolve-subagent-tools.d.ts.map +0 -1
- package/lib/resource-hub/resource-registry.d.ts.map +0 -1
- package/lib/resource-hub/role-configs.d.ts.map +0 -1
- package/lib/resource-hub/skill-registry.d.ts.map +0 -1
- package/lib/resource-hub/subagent-registry.d.ts.map +0 -1
- package/lib/resource-hub/tool-selection.d.ts.map +0 -1
- package/lib/resource-hub/types.d.ts.map +0 -1
- package/lib/routing/runtime-binding.d.ts.map +0 -1
- package/lib/routing/subagent-summarize.d.ts.map +0 -1
- package/lib/schedule-cron.d.ts.map +0 -1
- package/lib/schedule-domain/audit-logger.d.ts.map +0 -1
- package/lib/schedule-domain/budget-guard.d.ts.map +0 -1
- package/lib/schedule-domain/execution-domain.d.ts.map +0 -1
- package/lib/schedule-domain/index.d.ts.map +0 -1
- package/lib/schedule-domain/output-validator.d.ts.map +0 -1
- package/lib/schedule-domain/prompt-assembler.d.ts.map +0 -1
- package/lib/schedule-domain/schedule-execution-queue.d.ts.map +0 -1
- package/lib/schedule-domain/security-harness.d.ts.map +0 -1
- package/lib/schedule-manager.d.ts.map +0 -1
- package/lib/seam/index.d.ts.map +0 -1
- package/lib/seam/seam-integration.d.ts.map +0 -1
- package/lib/seam/seam-provider.d.ts.map +0 -1
- package/lib/seam/skill-service.d.ts.map +0 -1
- package/lib/seam/tokens.d.ts.map +0 -1
- package/lib/seam/tool-service.d.ts.map +0 -1
- package/lib/security/anomaly-detection.d.ts.map +0 -1
- package/lib/security/audit-logger.d.ts.map +0 -1
- package/lib/security/comm-message-context.d.ts.map +0 -1
- package/lib/security/dangerous-tool-policy.d.ts.map +0 -1
- package/lib/security/exec-policy.d.ts.map +0 -1
- package/lib/security/file-policy.d.ts.map +0 -1
- package/lib/security/file-role-policy.d.ts.map +0 -1
- package/lib/security/index.d.ts.map +0 -1
- package/lib/security/network-authority.d.ts.map +0 -1
- package/lib/security/network-policy-context.d.ts.map +0 -1
- package/lib/security/network-policy.d.ts.map +0 -1
- package/lib/security/outbound-leak-guard.d.ts.map +0 -1
- package/lib/security/owner-approval-contracts.d.ts.map +0 -1
- package/lib/security/owner-approval-runtime.d.ts.map +0 -1
- package/lib/security/owner-approval-store.d.ts.map +0 -1
- package/lib/security/policy-facade.d.ts.map +0 -1
- package/lib/security/policy-narrowing.d.ts.map +0 -1
- package/lib/security/provenance.d.ts.map +0 -1
- package/lib/security/sandbox-docker.d.ts.map +0 -1
- package/lib/security/sandbox.d.ts.map +0 -1
- package/lib/security/trust-level.d.ts.map +0 -1
- package/lib/security/turn-file-authority.d.ts.map +0 -1
- package/lib/security/turn-network-client.d.ts.map +0 -1
- package/lib/security/usage-quota.d.ts.map +0 -1
- package/lib/segment/filter-im-delivery.d.ts.map +0 -1
- package/lib/service.d.ts.map +0 -1
- package/lib/session/approval-port.d.ts.map +0 -1
- package/lib/session/approval-review-agent.d.ts.map +0 -1
- package/lib/session/branch-summarization-runtime.d.ts.map +0 -1
- package/lib/session/contracts.d.ts.map +0 -1
- package/lib/session/index.d.ts.map +0 -1
- package/lib/session/session-io.d.ts.map +0 -1
- package/lib/session/session-key.d.ts.map +0 -1
- package/lib/session/session-system.d.ts.map +0 -1
- package/lib/session/session-tree-commands.d.ts.map +0 -1
- package/lib/session/strategies.d.ts.map +0 -1
- package/lib/session/turn-ingress-session.d.ts.map +0 -1
- package/lib/session-tree-runtime.d.ts.map +0 -1
- package/lib/skill/capability-catalog.d.ts.map +0 -1
- package/lib/skill/contracts.d.ts.map +0 -1
- package/lib/skill/index.d.ts.map +0 -1
- package/lib/skill/progressive-disclosure.d.ts.map +0 -1
- package/lib/skill/skill-instruction-reader-factory.d.ts.map +0 -1
- package/lib/skill/skill-instruction-reader.d.ts.map +0 -1
- package/lib/skill/skill-instructions.d.ts.map +0 -1
- package/lib/skill/skill-registry-as-service.d.ts.map +0 -1
- package/lib/skill/skill-system.d.ts.map +0 -1
- package/lib/spawn/permission-task.d.ts.map +0 -1
- package/lib/spawn/spawn-task-tool.d.ts.map +0 -1
- package/lib/stability/memory-pressure.d.ts.map +0 -1
- package/lib/standalone/standalone-tool-catalog.d.ts.map +0 -1
- package/lib/subagent/contracts.d.ts.map +0 -1
- package/lib/subagent/im-result-sink.d.ts.map +0 -1
- package/lib/subagent/index.d.ts.map +0 -1
- package/lib/subagent/subagent-runtime.d.ts.map +0 -1
- package/lib/subagent/subagent-system-init.d.ts.map +0 -1
- package/lib/subagent/subagent-system.d.ts.map +0 -1
- package/lib/subagent-ai-events.d.ts.map +0 -1
- package/lib/subagent-artifact.d.ts.map +0 -1
- package/lib/subagent-goal-notify.d.ts.map +0 -1
- package/lib/subagent-parent-context.d.ts.map +0 -1
- package/lib/subagent-preset.d.ts.map +0 -1
- package/lib/subagent-prompt.d.ts.map +0 -1
- package/lib/task-executor.d.ts.map +0 -1
- package/lib/tool/builtin-policy-extractors.d.ts.map +0 -1
- package/lib/tool/context-tools.d.ts.map +0 -1
- package/lib/tool/contracts.d.ts.map +0 -1
- package/lib/tool/conversation-reference-tool.d.ts.map +0 -1
- package/lib/tool/deferred-resolution.d.ts.map +0 -1
- package/lib/tool/executable-tool-registry.d.ts.map +0 -1
- package/lib/tool/index.d.ts.map +0 -1
- package/lib/tool/pre-exec.d.ts.map +0 -1
- package/lib/tool/prepare-turn-tools.d.ts.map +0 -1
- package/lib/tool/runtime.d.ts.map +0 -1
- package/lib/tool/sources.d.ts.map +0 -1
- package/lib/tool/tool-approval-gate.d.ts.map +0 -1
- package/lib/tool/tool-approval-once-store.d.ts.map +0 -1
- package/lib/tool/tool-execution-authority.d.ts.map +0 -1
- package/lib/tool/tool-model-output.d.ts.map +0 -1
- package/lib/tool/tool-runtime.d.ts.map +0 -1
- package/lib/tool/tool-system.d.ts.map +0 -1
- package/lib/tool/turn-tool-runtime.d.ts.map +0 -1
- package/lib/tool-bridge.d.ts.map +0 -1
- package/lib/tool-catalog/deferred-turn-controller.d.ts.map +0 -1
- package/lib/tool-catalog/index.d.ts.map +0 -1
- package/lib/tool-catalog/resolve-config.d.ts.map +0 -1
- package/lib/tool-catalog/session-deferred-store.d.ts.map +0 -1
- package/lib/tool-catalog/tool-catalog.d.ts.map +0 -1
- package/lib/tool-catalog/types.d.ts.map +0 -1
- package/lib/trace/context-budget.d.ts.map +0 -1
- package/lib/trace/index.d.ts.map +0 -1
- package/lib/trace/turn-trace-archive.d.ts.map +0 -1
- package/lib/trace/turn-trace-format.d.ts.map +0 -1
- package/lib/trace/turn-trace-registry.d.ts.map +0 -1
- package/lib/trace/turn-trace-store.d.ts.map +0 -1
- package/lib/trace/turn-trace.d.ts.map +0 -1
- package/lib/turn/agent-turn-context.d.ts.map +0 -1
- package/lib/turn/auto-continue.d.ts.map +0 -1
- package/lib/turn/cancel-intent.d.ts.map +0 -1
- package/lib/turn/deferred-auto-continue.d.ts.map +0 -1
- package/lib/turn/deferred-delivery.d.ts.map +0 -1
- package/lib/turn/deferred-turn-state.d.ts.map +0 -1
- package/lib/turn/execute-agent-turn.d.ts.map +0 -1
- package/lib/turn/inbound-media.d.ts.map +0 -1
- package/lib/turn/inbound-queue-config.d.ts.map +0 -1
- package/lib/turn/inbound-queue-runtime.d.ts.map +0 -1
- package/lib/turn/inbound-turn-queue.d.ts.map +0 -1
- package/lib/turn/index.d.ts.map +0 -1
- package/lib/turn/journal-feed.d.ts.map +0 -1
- package/lib/turn/journal-integrity.d.ts.map +0 -1
- package/lib/turn/persist-deferred-context.d.ts.map +0 -1
- package/lib/turn/persist-subagent-context.d.ts.map +0 -1
- package/lib/turn/process-stream.d.ts.map +0 -1
- package/lib/turn/prompt-access.d.ts.map +0 -1
- package/lib/turn/prompt-api.d.ts.map +0 -1
- package/lib/turn/prompt-controller.d.ts.map +0 -1
- package/lib/turn/prompt-input.d.ts.map +0 -1
- package/lib/turn/session-message-queue.d.ts.map +0 -1
- package/lib/turn/subagent-auto-continue.d.ts.map +0 -1
- package/lib/turn/task-continuation.d.ts.map +0 -1
- package/lib/turn/trigger-cancelled-error.d.ts.map +0 -1
- package/lib/turn/turn-admission-gate.d.ts.map +0 -1
- package/lib/turn/turn-complete.d.ts.map +0 -1
- package/lib/turn/turn-context-bridge.d.ts.map +0 -1
- package/lib/turn/turn-deferred-delta.d.ts.map +0 -1
- package/lib/turn/turn-event-source.d.ts.map +0 -1
- package/lib/turn/turn-ingress.d.ts.map +0 -1
- package/lib/turn/turn-metrics.d.ts.map +0 -1
- package/lib/turn/turn-pipeline.d.ts.map +0 -1
- package/lib/turn/turn-terminal.d.ts.map +0 -1
- package/lib/turn/turn-tracker.d.ts.map +0 -1
- package/lib/types/disposable.d.ts.map +0 -1
- package/lib/typing-indicator/adapter-integration.d.ts.map +0 -1
- package/lib/typing-indicator/index.d.ts.map +0 -1
- package/lib/user-profile.d.ts.map +0 -1
- package/lib/utils/config-env.d.ts.map +0 -1
- package/lib/utils/keyed-mutex.d.ts.map +0 -1
- package/lib/web/bing-search-html.d.ts.map +0 -1
- package/lib/web/web-search-locale.d.ts.map +0 -1
- package/lib/web/web-tool-utils.d.ts.map +0 -1
- package/lib/zhin-agent/index.d.ts.map +0 -1
- package/lib/zhin-agent/runtime-modules.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancel-intent.js","sourceRoot":"","sources":["../../src/turn/cancel-intent.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE7D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACxD,CAAC"}
|
|
1
|
+
{"version":3,"file":"cancel-intent.js","sourceRoot":"","sources":["../../src/turn/cancel-intent.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE7D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACxD,CAAC","sourcesContent":["const CANCEL_KEYWORDS = new Set(['取消', '/cancel', 'cancel']);\n\nexport function isCancelIntent(text: string): boolean {\n return CANCEL_KEYWORDS.has(text.trim().toLowerCase());\n}\n"]}
|
|
@@ -8,4 +8,3 @@ export declare const DEFERRED_AUTO_CONTINUE_MARKER = "[Deferred worker \u5B8C\u6
|
|
|
8
8
|
export declare function isDeferredAutoContinueEnabled(config: Required<ZhinAgentConfig>, env?: NodeJS.ProcessEnv): boolean;
|
|
9
9
|
export declare function shouldDeferredAutoContinue(config: Required<ZhinAgentConfig>, result: DeferredWorkerResult, depth: number, persisted: boolean, env?: NodeJS.ProcessEnv): boolean;
|
|
10
10
|
export declare function buildDeferredAutoContinueUserMessage(taskId: string, goal: string, status: DeferredWorkerResult['status']): UserMessage;
|
|
11
|
-
//# sourceMappingURL=deferred-auto-continue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deferred-auto-continue.js","sourceRoot":"","sources":["../../src/turn/deferred-auto-continue.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,MAAM,CAAC,MAAM,6BAA6B,GAAG,6BAA6B,CAAC;AAE3E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAErD,MAAM,UAAU,6BAA6B,CAC3C,MAAiC,EACjC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClE,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,MAAM,CAAC,oBAAoB,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAiC,EACjC,MAA4B,EAC5B,KAAa,EACb,SAAkB,EAClB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,IAAI,MAAM,CAAC,4BAA4B;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,MAAc,EACd,IAAY,EACZ,MAAsC;IAEtC,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG;QACX,6BAA6B;QAC7B,MAAM,MAAM,MAAM,KAAK,EAAE;QACzB,aAAa,MAAM,GAAG;QACtB,8EAA8E;QAC9E,oDAAoD;QACpD,2BAA2B;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"deferred-auto-continue.js","sourceRoot":"","sources":["../../src/turn/deferred-auto-continue.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,MAAM,CAAC,MAAM,6BAA6B,GAAG,6BAA6B,CAAC;AAE3E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAErD,MAAM,UAAU,6BAA6B,CAC3C,MAAiC,EACjC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClE,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,MAAM,CAAC,oBAAoB,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAiC,EACjC,MAA4B,EAC5B,KAAa,EACb,SAAkB,EAClB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,IAAI,MAAM,CAAC,4BAA4B;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,MAAc,EACd,IAAY,EACZ,MAAsC;IAEtC,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG;QACX,6BAA6B;QAC7B,MAAM,MAAM,MAAM,KAAK,EAAE;QACzB,aAAa,MAAM,GAAG;QACtB,8EAA8E;QAC9E,oDAAoD;QACpD,2BAA2B;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC","sourcesContent":["/**\n * Deferred worker 完成后自动唤醒主 Agent 续聊(方案 B)。\n */\nimport { createUserMessage, type UserMessage } from '@zhin.js/ai';\nimport type { DeferredWorkerResult } from '../deferred-worker-runner.js';\nimport { resolveSubagentDisplayLabel } from '../subagent-goal-notify.js';\nimport { extractDeferredBody } from './deferred-delivery.js';\nimport type { ZhinAgentConfig } from '../config/index.js';\n\nexport const DEFERRED_AUTO_CONTINUE_MARKER = '[Deferred worker 完成 — 自动续聊]';\n\nconst FALSE_ENV = new Set(['0', 'false', 'off', 'no']);\nconst TRUE_ENV = new Set(['1', 'true', 'on', 'yes']);\n\nexport function isDeferredAutoContinueEnabled(\n config: Required<ZhinAgentConfig>,\n env: NodeJS.ProcessEnv = process.env,\n): boolean {\n const raw = env.ZHIN_DEFERRED_AUTO_CONTINUE?.trim().toLowerCase();\n if (raw && FALSE_ENV.has(raw)) return false;\n if (raw && TRUE_ENV.has(raw)) return true;\n return config.deferredAutoContinue;\n}\n\nexport function shouldDeferredAutoContinue(\n config: Required<ZhinAgentConfig>,\n result: DeferredWorkerResult,\n depth: number,\n persisted: boolean,\n env: NodeJS.ProcessEnv = process.env,\n): boolean {\n if (!isDeferredAutoContinueEnabled(config, env)) return false;\n if (!persisted) return false;\n if (result.status === 'error') return false;\n if (depth >= config.deferredAutoContinueMaxDepth) return false;\n return extractDeferredBody(result).trim().length > 0;\n}\n\nexport function buildDeferredAutoContinueUserMessage(\n taskId: string,\n goal: string,\n status: DeferredWorkerResult['status'],\n): UserMessage {\n const label = resolveSubagentDisplayLabel(undefined, goal);\n const text = [\n DEFERRED_AUTO_CONTINUE_MARKER,\n `任务【${taskId}】· ${label}`,\n `Worker 状态:${status}。`,\n '请根据上下文中 `[Deferred worker 完成]` 的 Worker 输出继续推进任务(含答题、提交、后续 API 调用);无需等待用户输入。',\n '若任务已全部完成,向用户简要汇报结果;否则继续调用当前可用工具或 spawn_task 执行下一步。',\n '不要向用户重复粘贴 Worker 的完整原始输出。',\n ].join('\\n');\n return createUserMessage(text);\n}\n"]}
|
|
@@ -6,4 +6,3 @@ export declare function extractDeferredBody(result: DeferredWorkerResult): strin
|
|
|
6
6
|
export declare function deliverDeferredWorkerResult(sender: SubagentResultSender, commMessage: Message, goal: string, taskId: string, result: DeferredWorkerResult): Promise<void>;
|
|
7
7
|
/** deferred auto-continue 完成后将主 Agent 续聊回复推送到 IM */
|
|
8
8
|
export declare function deliverDeferredAutoContinueReply(sender: SubagentResultSender, commMessage: Message, elements: AgentOutputElement[]): Promise<void>;
|
|
9
|
-
//# sourceMappingURL=deferred-delivery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deferred-delivery.js","sourceRoot":"","sources":["../../src/turn/deferred-delivery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,UAAU,mBAAmB,CAAC,MAA4B;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAIvC,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA4B,EAC5B,WAAoB,EACpB,IAAY,EACZ,MAAc,EACd,MAA4B;IAE5B,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,yBAAyB,CAAC;QACzC,KAAK,EAAE,YAAY,MAAM,IAAI,KAAK,EAAE;QACpC,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAClD,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAA4B,EAC5B,WAAoB,EACpB,QAA8B;IAE9B,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO;IAC7B,MAAM,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
1
|
+
{"version":3,"file":"deferred-delivery.js","sourceRoot":"","sources":["../../src/turn/deferred-delivery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,UAAU,mBAAmB,CAAC,MAA4B;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAIvC,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA4B,EAC5B,WAAoB,EACpB,IAAY,EACZ,MAAc,EACd,MAA4B;IAE5B,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,yBAAyB,CAAC;QACzC,KAAK,EAAE,YAAY,MAAM,IAAI,KAAK,EAAE;QACpC,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAClD,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAA4B,EAC5B,WAAoB,EACpB,QAA8B;IAE9B,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO;IAC7B,MAAM,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACvE,CAAC","sourcesContent":["import type { AgentOutputElement } from '../outbound/agent-output.js';\n\nimport { truncatePreview } from '@zhin.js/logger';\nimport type { DeferredWorkerResult } from '../deferred-worker-runner.js';\nimport { originFromMessage } from '../spawn/spawn-task-tool.js';\nimport type { Message } from '../resource-hub/types.js';\nimport { buildSubagentUserDelivery } from '../media/subagent-user-delivery.js';\nimport type { SubagentResultSender } from '../subagent/index.js';\nimport { resolveSubagentDisplayLabel } from '../subagent-goal-notify.js';\n\nexport function extractDeferredBody(result: DeferredWorkerResult): string {\n try {\n const parsed = JSON.parse(result.summary) as {\n summary?: string;\n error?: string;\n status?: string;\n };\n if (parsed.error?.trim()) return parsed.error.trim();\n if (parsed.summary?.trim()) return parsed.summary.trim();\n } catch {\n // fall through\n }\n return result.summary.trim();\n}\n\nexport async function deliverDeferredWorkerResult(\n sender: SubagentResultSender,\n commMessage: Message,\n goal: string,\n taskId: string,\n result: DeferredWorkerResult,\n): Promise<void> {\n const label = resolveSubagentDisplayLabel(undefined, goal);\n const body = extractDeferredBody(result) || truncatePreview(goal, 300);\n const delivery = buildSubagentUserDelivery({\n label: `deferred:${taskId} ${label}`,\n status: result.status === 'error' ? 'error' : 'ok',\n result: body,\n toolCalls: result.toolCalls ?? [],\n });\n await sender(originFromMessage(commMessage), delivery);\n}\n\n/** deferred auto-continue 完成后将主 Agent 续聊回复推送到 IM */\nexport async function deliverDeferredAutoContinueReply(\n sender: SubagentResultSender,\n commMessage: Message,\n elements: AgentOutputElement[],\n): Promise<void> {\n if (!elements.length) return;\n await sender(originFromMessage(commMessage), { text: '', elements });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deferred-turn-state.js","sourceRoot":"","sources":["../../src/turn/deferred-turn-state.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,iBAAiB;IAC5B,6CAA6C;IAC7C,OAAO,GAAgB,EAAE,CAAC;IAC1B,kCAAkC;IAClC,WAAW,CAAqB;IAChC,8BAA8B;IAC9B,mBAAmB,CAA+B;IAClD,4BAA4B;IAC5B,kBAAkB,CAA+B;IACjD,uCAAuC;IACvC,mBAAmB,CAAU;IAC7B,qDAAqD;IACrD,YAAY,GAAgC,IAAI,CAAC;IAEjD,2BAA2B,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExD,oBAAoB,CAAC,UAAkB;QACrC,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,oBAAoB,CAAC,UAAkB,EAAE,KAAa;QACpD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,sBAAsB,CAAC,UAAkB;QACvC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,4CAA4C;IAC5C,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"deferred-turn-state.js","sourceRoot":"","sources":["../../src/turn/deferred-turn-state.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,iBAAiB;IAC5B,6CAA6C;IAC7C,OAAO,GAAgB,EAAE,CAAC;IAC1B,kCAAkC;IAClC,WAAW,CAAqB;IAChC,8BAA8B;IAC9B,mBAAmB,CAA+B;IAClD,4BAA4B;IAC5B,kBAAkB,CAA+B;IACjD,uCAAuC;IACvC,mBAAmB,CAAU;IAC7B,qDAAqD;IACrD,YAAY,GAAgC,IAAI,CAAC;IAEjD,2BAA2B,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExD,oBAAoB,CAAC,UAAkB;QACrC,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,oBAAoB,CAAC,UAAkB,EAAE,KAAa;QACpD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,sBAAsB,CAAC,UAAkB;QACvC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,4CAA4C;IAC5C,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;CACF","sourcesContent":["/**\n * DeferredTurnState — deferred 工具族的跨 turn 可变状态。\n * 从 ZhinAgentPrivate 的散字段收敛而来(第一刀);由 ZhinAgent 持有一个实例,\n * 消费方经 `priv.deferred` 访问。\n */\nimport type { AgentTool, DeferredToolSessionSnapshot } from '@zhin.js/ai';\nimport type { ToolCatalogItem } from '../tool-catalog/types.js';\nimport type { SubagentResultSender } from '../subagent/index.js';\n\nexport class DeferredTurnState {\n /** 当前 turn 可用的 deferred 工具目录(全量 Tool 形态)。 */\n catalog: AgentTool[] = [];\n /** 最近一次展示的目录条目(toolSearch 结果)。 */\n lastCatalog?: ToolCatalogItem[];\n /** 最近一次写入的会话级 deferred 快照。 */\n lastSessionSnapshot?: DeferredToolSessionSnapshot;\n /** 上turn 快照(计算 delta 用)。 */\n lastSnapshotBefore?: DeferredToolSessionSnapshot;\n /** 最近一次 toolSearch 的 deferred 统计文本。 */\n lastToolSearchStats?: string;\n /** deferred/subagent 结果回投器(未装配时为 null,调用方按无回投降级)。 */\n resultSender: SubagentResultSender | null = null;\n\n #autoContinueDepthBySession = new Map<string, number>();\n\n getAutoContinueDepth(sessionKey: string): number {\n return this.#autoContinueDepthBySession.get(sessionKey) ?? 0;\n }\n\n setAutoContinueDepth(sessionKey: string, depth: number): void {\n this.#autoContinueDepthBySession.set(sessionKey, depth);\n }\n\n resetAutoContinueDepth(sessionKey: string): void {\n this.#autoContinueDepthBySession.delete(sessionKey);\n }\n\n /** Generation/实例 teardown:清空全部跨 turn 状态。 */\n clear(): void {\n this.catalog = [];\n this.lastCatalog = undefined;\n this.lastSessionSnapshot = undefined;\n this.lastSnapshotBefore = undefined;\n this.lastToolSearchStats = undefined;\n this.resultSender = null;\n this.#autoContinueDepthBySession.clear();\n }\n}\n"]}
|
|
@@ -11,4 +11,3 @@ export type TurnEventObserver = (event: TurnEvent) => void | Promise<void>;
|
|
|
11
11
|
* they cannot replace or fabricate the terminal result.
|
|
12
12
|
*/
|
|
13
13
|
export declare function executeAgentTurn(turn: TurnIngress, run: TurnEventSource, observe?: TurnEventObserver): Promise<TurnOutcome>;
|
|
14
|
-
//# sourceMappingURL=execute-agent-turn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-agent-turn.js","sourceRoot":"","sources":["../../src/turn/execute-agent-turn.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"execute-agent-turn.js","sourceRoot":"","sources":["../../src/turn/execute-agent-turn.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Usage } from '@zhin.js/ai';\nimport type { TurnEvent, TurnTerminalEvent } from '../event/turn-event.js';\nimport type { TurnIngress, TurnOutcome } from './turn-ingress.js';\nimport { TurnTerminalGate } from './turn-terminal.js';\nimport { TurnJournalCommitError } from './journal-integrity.js';\nimport { journalFeedOf } from './journal-feed.js';\n\nexport interface TurnTerminalProjection {\n project(): void | Promise<void>;\n}\n\nexport type TurnEventSource = (\n turn: TurnIngress,\n) => AsyncGenerator<TurnEvent, TurnTerminalProjection | void>;\nexport type TurnEventObserver = (event: TurnEvent) => void | Promise<void>;\n\nconst emptyUsage: Usage = Object.freeze({\n prompt_tokens: 0,\n completion_tokens: 0,\n total_tokens: 0,\n});\n\n/**\n * Agent's single public execution algebra: one immutable ingress enters and\n * exactly one discriminated outcome leaves. Event observers are projections;\n * they cannot replace or fabricate the terminal result.\n */\nexport async function executeAgentTurn(\n turn: TurnIngress,\n run: TurnEventSource,\n observe?: TurnEventObserver,\n): Promise<TurnOutcome> {\n const gate = new TurnTerminalGate();\n let observedUsage = emptyUsage;\n let stream: ReturnType<TurnEventSource> | undefined;\n // When the journal carries a feed, observers read committed journal facts\n // (including authority tool events) instead of the raw engine stream.\n const feed = journalFeedOf(turn.ports.journal);\n const closeFeed = feed?.open();\n try {\n stream = run(turn);\n while (true) {\n const step = await stream.next();\n if (step.done) break;\n const event = step.value;\n try {\n await turn.ports.journal.append(event);\n } catch (error) {\n return failedOutcome('turn_journal_commit_failed', error, true, observedUsage);\n }\n const committed = feed ? feed.drain() : [event];\n for (const fact of committed) {\n if (!gate.accept(fact)) continue;\n if (fact.type === 'usage') observedUsage = addUsage(observedUsage, fact.usage);\n try {\n await observe?.(fact);\n } catch {\n // Observers are projections. Once an event is accepted by the terminal\n // gate, projection failure cannot rewrite the execution fact.\n }\n if (gate.terminal) break;\n }\n if (gate.terminal) {\n try {\n const completion = await stream.next();\n if (!completion.done) {\n await publishProjectionFailure(turn, new Error('Agent engine emitted an event after terminal'));\n } else if (completion.value) {\n await runProjection(turn, completion.value);\n }\n } catch (error) {\n await publishProjectionFailure(turn, error);\n }\n break;\n }\n }\n } catch (error) {\n if (gate.terminal) return outcomeFromTerminal(gate.terminal, observedUsage);\n const terminal: TurnTerminalEvent = turn.signal.aborted\n ? {\n type: 'turn_cancelled',\n code: 'cancelled',\n reason: errorMessage(turn.signal.reason ?? error, 'cancelled'),\n }\n : {\n type: 'error',\n code: error instanceof TurnJournalCommitError\n ? 'turn_journal_commit_failed'\n : 'turn_engine_failed',\n error: asError(error),\n recoverable: !(error instanceof TurnJournalCommitError),\n };\n return commitSyntheticTerminal(turn, gate, terminal, observedUsage);\n } finally {\n closeFeed?.();\n try {\n await stream?.return(undefined);\n } catch {\n // Cleanup cannot replace an already recorded execution outcome.\n }\n }\n\n if (gate.terminal) return outcomeFromTerminal(gate.terminal, observedUsage);\n return commitSyntheticTerminal(turn, gate, {\n type: 'error',\n code: 'turn_terminal_missing',\n error: new Error('Agent turn engine ended without a terminal event'),\n recoverable: false,\n }, observedUsage);\n}\n\nasync function runProjection(turn: TurnIngress, projection: TurnTerminalProjection): Promise<void> {\n try {\n await projection.project();\n } catch (error) {\n await publishProjectionFailure(turn, error);\n }\n}\n\nasync function publishProjectionFailure(turn: TurnIngress, error: unknown): Promise<void> {\n try {\n await turn.ports.activity?.publish({\n type: 'turn_projection_failed',\n data: errorMessage(error, 'turn projection failed'),\n });\n } catch {\n // Diagnostics are projections too; the durable terminal remains authority.\n }\n}\n\nasync function commitSyntheticTerminal(\n turn: TurnIngress,\n gate: TurnTerminalGate,\n terminal: TurnTerminalEvent,\n usage: Usage,\n): Promise<TurnOutcome> {\n try {\n await turn.ports.journal.append(terminal);\n } catch (error) {\n return failedOutcome('turn_journal_commit_failed', error, true, usage);\n }\n if (!gate.accept(terminal) || !gate.terminal) {\n return failedOutcome(\n 'turn_terminal_commit_rejected',\n new Error('Turn terminal gate rejected a synthesized terminal fact'),\n false,\n usage,\n );\n }\n return outcomeFromTerminal(gate.terminal, usage);\n}\n\nfunction outcomeFromTerminal(event: TurnTerminalEvent, observedUsage: Usage): TurnOutcome {\n switch (event.type) {\n case 'turn_end':\n return Object.freeze({\n status: 'completed',\n output: Object.freeze([...event.output]),\n usage: usageFromTurn(event.usage),\n });\n case 'turn_cancelled':\n return Object.freeze({\n status: 'cancelled',\n reason: event.reason,\n usage: observedUsage,\n });\n case 'error':\n return failedOutcome(event.code ?? 'turn_failed', event.error, event.recoverable, observedUsage);\n case 'budget_exceeded':\n return Object.freeze({\n status: 'budget_exceeded',\n budget: event.budget,\n usage: usageFromTurn(event.usage),\n });\n }\n}\n\nfunction usageFromTurn(usage: {\n promptTokens: number;\n completionTokens: number;\n totalTokens: number;\n}): Usage {\n return Object.freeze({\n prompt_tokens: usage.promptTokens,\n completion_tokens: usage.completionTokens,\n total_tokens: usage.totalTokens,\n });\n}\n\nfunction failedOutcome(code: string, error: unknown, retryable: boolean, usage: Usage): TurnOutcome {\n return Object.freeze({\n status: 'failed',\n error: Object.freeze({\n code,\n message: error instanceof Error ? error.message : String(error),\n retryable,\n }),\n usage,\n });\n}\n\nfunction asError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\n\nfunction errorMessage(reason: unknown, fallback: string): string {\n return reason instanceof Error ? reason.message : String(reason ?? fallback);\n}\n\nfunction addUsage(current: Usage, next: {\n promptTokens: number;\n completionTokens: number;\n totalTokens: number;\n}): Usage {\n return Object.freeze({\n prompt_tokens: current.prompt_tokens + next.promptTokens,\n completion_tokens: current.completion_tokens + next.completionTokens,\n total_tokens: current.total_tokens + next.totalTokens,\n });\n}\n"]}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* `ai.multimodal.perception` 时,图片 / 视频 / PDF 由感知模型描述后以
|
|
11
11
|
* untrusted 文本注入(`[图片描述]` 等),失败或超出单回合上限时保持原占位。
|
|
12
12
|
*/
|
|
13
|
-
import { type MediaContentBlock, type ModelInputModality } from '@zhin.js/ai';
|
|
13
|
+
import { type Usage, type MediaContentBlock, type ModelInputModality } from '@zhin.js/ai';
|
|
14
14
|
import type { AudioTranscriptionPort } from '../media/media-types.js';
|
|
15
15
|
import { type MediaPerceptionPort } from '../media/perception.js';
|
|
16
16
|
import type { ReferencePort, TurnMedia } from './turn-ingress.js';
|
|
@@ -21,6 +21,8 @@ export interface InboundMediaInjection {
|
|
|
21
21
|
readonly textAppends: string[];
|
|
22
22
|
/** 与输入媒体一一对应的终态。 */
|
|
23
23
|
readonly outcomes: InboundMediaOutcome[];
|
|
24
|
+
/** Tokens spent by the perception pre-pass (not part of the turn's own completion usage). */
|
|
25
|
+
readonly perceptionUsage?: Usage;
|
|
24
26
|
}
|
|
25
27
|
export interface InboundMediaOutcome {
|
|
26
28
|
readonly kind: TurnMedia['kind'];
|
|
@@ -49,4 +51,3 @@ export declare function resolveTurnMediaInjection(turnMedia: readonly TurnMedia[
|
|
|
49
51
|
* textAppends 以独立 text 块追加在其后(不改动历史消息)。
|
|
50
52
|
*/
|
|
51
53
|
export declare function applyInboundMediaInjection(userMessages: readonly import('@zhin.js/ai').AgentMessage[], injection: InboundMediaInjection): import('@zhin.js/ai').AgentMessage[];
|
|
52
|
-
//# sourceMappingURL=inbound-media.d.ts.map
|
|
@@ -15,7 +15,7 @@ import { formatCompact, getLogger } from '@zhin.js/logger';
|
|
|
15
15
|
import { normalizeMediaRefsToPayloads, } from '../media/media-normalize.js';
|
|
16
16
|
import { transcribeAudioPayload } from '../media/media-router.js';
|
|
17
17
|
import { resolveMultimodalConfig } from '../media/resolve-config.js';
|
|
18
|
-
import { renderPerceptionCaption } from '../media/perception.js';
|
|
18
|
+
import { MediaPerceptionFailedError, renderPerceptionCaption } from '../media/perception.js';
|
|
19
19
|
const logger = getLogger('ZhinAgent');
|
|
20
20
|
const EMPTY_INJECTION = Object.freeze({
|
|
21
21
|
blocks: Object.freeze([]),
|
|
@@ -60,6 +60,7 @@ export async function resolveTurnMediaInjection(turnMedia, options = {}) {
|
|
|
60
60
|
const textAppends = [];
|
|
61
61
|
const outcomes = [];
|
|
62
62
|
let perceived = 0;
|
|
63
|
+
let perceptionUsage;
|
|
63
64
|
for (const { entry, type, media: initialMedia } of refs) {
|
|
64
65
|
let media = initialMedia;
|
|
65
66
|
if (entry.source.kind === 'platform_ref') {
|
|
@@ -126,6 +127,8 @@ export async function resolveTurnMediaInjection(turnMedia, options = {}) {
|
|
|
126
127
|
perceived += 1;
|
|
127
128
|
try {
|
|
128
129
|
const result = await perception.describe(payload, signal);
|
|
130
|
+
if (result?.usage)
|
|
131
|
+
perceptionUsage = addUsage(perceptionUsage, result.usage);
|
|
129
132
|
if (result?.text.trim()) {
|
|
130
133
|
textAppends.push(renderPerceptionCaption(type, result.text));
|
|
131
134
|
outcomes.push({
|
|
@@ -143,6 +146,9 @@ export async function resolveTurnMediaInjection(turnMedia, options = {}) {
|
|
|
143
146
|
}
|
|
144
147
|
}
|
|
145
148
|
catch (error) {
|
|
149
|
+
// A call that failed after reaching the provider still counts against the quota.
|
|
150
|
+
if (error instanceof MediaPerceptionFailedError)
|
|
151
|
+
perceptionUsage = addUsage(perceptionUsage, error.usage);
|
|
146
152
|
signal.throwIfAborted();
|
|
147
153
|
logger.warn(formatCompact({
|
|
148
154
|
op: 'inbound_perception_failed',
|
|
@@ -161,7 +167,14 @@ export async function resolveTurnMediaInjection(turnMedia, options = {}) {
|
|
|
161
167
|
}
|
|
162
168
|
if (blocks.length === 0 && textAppends.length === 0 && outcomes.length === 0)
|
|
163
169
|
return EMPTY_INJECTION;
|
|
164
|
-
return { blocks, textAppends, outcomes };
|
|
170
|
+
return { blocks, textAppends, outcomes, ...(perceptionUsage ? { perceptionUsage } : {}) };
|
|
171
|
+
}
|
|
172
|
+
function addUsage(a, b) {
|
|
173
|
+
return {
|
|
174
|
+
prompt_tokens: (a?.prompt_tokens ?? 0) + b.prompt_tokens,
|
|
175
|
+
completion_tokens: (a?.completion_tokens ?? 0) + b.completion_tokens,
|
|
176
|
+
total_tokens: (a?.total_tokens ?? 0) + b.total_tokens,
|
|
177
|
+
};
|
|
165
178
|
}
|
|
166
179
|
/**
|
|
167
180
|
* 把注入结果合入 LLM 绑定的 userMessages:最后一个 user 消息挂 media 块,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-media.js","sourceRoot":"","sources":["../../src/turn/inbound-media.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inbound-media.js","sourceRoot":"","sources":["../../src/turn/inbound-media.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 入站媒体注入 — TurnIngress 的 canonical media → 当前 turn 的\n * `UserMessage.media`(MediaContentBlock,不随 session 持久化)。\n *\n * 策略(`ai.multimodal`):\n * 每个输入媒体必须产生 accepted / derived / unsupported / rejected / failed\n * 之一;失败不得伪装成已经被模型识别的媒体占位。\n *\n * 当前模型收不了的媒体:音频先走 STT(`[语音转写]`);配置了\n * `ai.multimodal.perception` 时,图片 / 视频 / PDF 由感知模型描述后以\n * untrusted 文本注入(`[图片描述]` 等),失败或超出单回合上限时保持原占位。\n */\nimport { isMediaBlockRef, type Usage, type MediaContentBlock, type MediaBlockRef, type ModelInputModality } from '@zhin.js/ai';\nimport { formatCompact, getLogger } from '@zhin.js/logger';\nimport {\n normalizeMediaRefsToPayloads,\n} from '../media/media-normalize.js';\nimport type { AudioTranscriptionPort, MediaBinaryPayload } from '../media/media-types.js';\nimport { transcribeAudioPayload } from '../media/media-router.js';\nimport { resolveMultimodalConfig } from '../media/resolve-config.js';\nimport { MediaPerceptionFailedError, renderPerceptionCaption, type MediaPerceptionPort } from '../media/perception.js';\nimport type { ReferencePort, TurnMedia } from './turn-ingress.js';\n\nconst logger = getLogger('ZhinAgent');\n\nexport interface InboundMediaInjection {\n /** 挂到当前 turn UserMessage.media 的媒体块 */\n readonly blocks: MediaContentBlock[];\n /** 需要拼进用户消息文本的补充(STT 转写 / 占位) */\n readonly textAppends: string[];\n /** 与输入媒体一一对应的终态。 */\n readonly outcomes: InboundMediaOutcome[];\n /** Tokens spent by the perception pre-pass (not part of the turn's own completion usage). */\n readonly perceptionUsage?: Usage;\n}\n\nexport interface InboundMediaOutcome {\n readonly kind: TurnMedia['kind'];\n readonly status: 'accepted' | 'derived' | 'unsupported' | 'rejected' | 'failed';\n readonly code: string;\n /** Where derived text came from (perception pre-pass); the text is untrusted external content. */\n readonly provenance?: InboundMediaProvenance;\n}\n\nexport interface InboundMediaProvenance {\n readonly source: 'media_perception';\n readonly provider: string;\n readonly model: string;\n readonly cached: boolean;\n}\n\nexport interface ResolveTurnMediaOptions {\n readonly references?: ReferencePort;\n readonly signal?: AbortSignal;\n readonly providerInput?: readonly ModelInputModality[];\n readonly transcriber?: AudioTranscriptionPort;\n /** `ai.multimodal.perception`: describes media the turn's model cannot take. Absent = placeholders. */\n readonly perception?: MediaPerceptionPort;\n}\n\nconst EMPTY_INJECTION: InboundMediaInjection = Object.freeze({\n blocks: Object.freeze([]) as unknown as MediaContentBlock[],\n textAppends: Object.freeze([]) as unknown as string[],\n outcomes: Object.freeze([]) as unknown as InboundMediaOutcome[],\n});\n\nfunction failureText(type: string, code: string, ref: MediaBlockRef): string {\n const label = ref.file_name ? `; ${ref.file_name}` : '';\n return `[Media ${code}: ${type}${label}]`;\n}\n\nfunction toBase64Block(\n type: MediaContentBlock['type'],\n payload: MediaBinaryPayload,\n alt?: string,\n): MediaContentBlock {\n return {\n type,\n data: {\n media: {\n kind: 'base64',\n value: payload.base64,\n mime_type: payload.mimeType,\n ...(payload.fileName ? { file_name: payload.fileName } : {}),\n },\n ...(alt ? { alt } : {}),\n },\n };\n}\n\nexport async function resolveTurnMediaInjection(\n turnMedia: readonly TurnMedia[] | undefined,\n options: ResolveTurnMediaOptions = {},\n): Promise<InboundMediaInjection> {\n const {\n references,\n signal = new AbortController().signal,\n providerInput,\n transcriber,\n perception,\n } = options;\n const refs = (turnMedia ?? []).map((entry) => ({\n entry,\n type: entry.kind,\n media: {\n kind: entry.source.kind === 'platform_ref' ? 'file' as const : entry.source.kind,\n value: entry.source.value,\n ...(entry.mimeType ? { mime_type: entry.mimeType } : {}),\n ...(entry.name ? { file_name: entry.name } : {}),\n } satisfies MediaBlockRef,\n }));\n if (refs.length === 0) return EMPTY_INJECTION;\n\n const config = resolveMultimodalConfig();\n const supportedInput = new Set<ModelInputModality>(providerInput ?? ['text']);\n const blocks: MediaContentBlock[] = [];\n const textAppends: string[] = [];\n const outcomes: InboundMediaOutcome[] = [];\n let perceived = 0;\n let perceptionUsage: Usage | undefined;\n\n for (const { entry, type, media: initialMedia } of refs) {\n let media = initialMedia;\n if (entry.source.kind === 'platform_ref') {\n if (!entry.referenceKey || !references) {\n textAppends.push(failureText(type, 'unsupported:unresolved_platform_reference', media));\n outcomes.push({ kind: type, status: 'unsupported', code: 'unresolved_platform_reference' });\n continue;\n }\n const resolution = await references.resolve(entry.referenceKey, {\n depth: 0,\n maxEntries: 1,\n maxChars: 0,\n }, signal);\n if (resolution.status !== 'resolved' || !isMediaBlockRef(resolution.content)) {\n const code = resolution.status === 'resolved' ? 'invalid_platform_media' : resolution.code;\n textAppends.push(failureText(type, `failed:${code}`, media));\n outcomes.push({ kind: type, status: resolution.status === 'forbidden' ? 'rejected' : 'failed', code });\n continue;\n }\n media = resolution.content;\n }\n signal.throwIfAborted();\n const payload = (await normalizeMediaRefsToPayloads(\n [{ type, media: media as never }],\n config.maxFileBytes,\n signal,\n ))[0];\n signal.throwIfAborted();\n if (!payload) {\n const code = media.kind === 'file' ? 'unmaterialized_platform_reference' : 'media_validation_failed';\n logger.warn(formatCompact({ op: 'inbound_media_rejected', type, reason: code }));\n textAppends.push(failureText(type, `rejected:${code}`, media));\n outcomes.push({ kind: type, status: 'rejected', code });\n continue;\n }\n\n if (type === 'audio') {\n if (config.audio.strategy === 'transcribe') {\n try {\n const text = await transcribeAudioPayload(payload, transcriber, signal);\n if (text?.trim()) {\n textAppends.push(`[语音转写] ${text.trim()}`);\n outcomes.push({ kind: type, status: 'derived', code: 'speech_transcription' });\n continue;\n }\n } catch (error) {\n logger.warn(formatCompact({\n op: 'inbound_stt_failed',\n error: error instanceof Error ? error.message : String(error),\n }));\n }\n }\n if (!supportedInput.has('audio')) {\n textAppends.push(failureText(type, 'unsupported:provider_input', media));\n outcomes.push({ kind: type, status: 'unsupported', code: 'provider_input' });\n continue;\n }\n blocks.push(toBase64Block('audio', payload));\n outcomes.push({ kind: type, status: 'accepted', code: 'validated_provider_input' });\n continue;\n }\n\n if (!supportedInput.has(type)) {\n if (perception?.accepts(payload)) {\n if (perceived >= perception.maxItemsPerTurn) {\n logger.warn(formatCompact({ op: 'inbound_perception_skipped', type, reason: 'max_items_per_turn' }));\n } else {\n perceived += 1;\n try {\n const result = await perception.describe(payload, signal);\n if (result?.usage) perceptionUsage = addUsage(perceptionUsage, result.usage);\n if (result?.text.trim()) {\n textAppends.push(renderPerceptionCaption(type, result.text));\n outcomes.push({\n kind: type,\n status: 'derived',\n code: 'media_perception',\n provenance: Object.freeze({\n source: 'media_perception' as const,\n provider: result.provider,\n model: result.model,\n cached: result.cached,\n }),\n });\n continue;\n }\n } catch (error) {\n // A call that failed after reaching the provider still counts against the quota.\n if (error instanceof MediaPerceptionFailedError) perceptionUsage = addUsage(perceptionUsage, error.usage);\n signal.throwIfAborted();\n logger.warn(formatCompact({\n op: 'inbound_perception_failed',\n type,\n error: error instanceof Error ? error.message : String(error),\n }));\n }\n }\n }\n textAppends.push(failureText(type, 'unsupported:provider_input', media));\n outcomes.push({ kind: type, status: 'unsupported', code: 'provider_input' });\n continue;\n }\n blocks.push(toBase64Block(type, payload));\n outcomes.push({ kind: type, status: 'accepted', code: 'validated_provider_input' });\n }\n\n if (blocks.length === 0 && textAppends.length === 0 && outcomes.length === 0) return EMPTY_INJECTION;\n return { blocks, textAppends, outcomes, ...(perceptionUsage ? { perceptionUsage } : {}) };\n}\n\nfunction addUsage(a: Usage | undefined, b: Usage): Usage {\n return {\n prompt_tokens: (a?.prompt_tokens ?? 0) + b.prompt_tokens,\n completion_tokens: (a?.completion_tokens ?? 0) + b.completion_tokens,\n total_tokens: (a?.total_tokens ?? 0) + b.total_tokens,\n };\n}\n\n/**\n * 把注入结果合入 LLM 绑定的 userMessages:最后一个 user 消息挂 media 块,\n * textAppends 以独立 text 块追加在其后(不改动历史消息)。\n */\nexport function applyInboundMediaInjection(\n userMessages: readonly import('@zhin.js/ai').AgentMessage[],\n injection: InboundMediaInjection,\n): import('@zhin.js/ai').AgentMessage[] {\n if (!injection.blocks.length && !injection.textAppends.length) {\n return [...userMessages];\n }\n const out = [...userMessages];\n for (let i = out.length - 1; i >= 0; i -= 1) {\n const msg = out[i]!;\n if (msg.role !== 'user') continue;\n const content = Array.isArray(msg.content) ? msg.content : [];\n out[i] = {\n ...msg,\n content: [\n ...content,\n ...injection.textAppends.map((text) => ({ type: 'text' as const, text })),\n ],\n ...(injection.blocks.length ? { media: injection.blocks } : {}),\n };\n break;\n }\n return out;\n}\n"]}
|
|
@@ -12,4 +12,3 @@ export declare function normalizeInboundQueueConfig(raw?: InboundQueueConfig | n
|
|
|
12
12
|
export declare function validateInboundQueueConfig(raw?: InboundQueueConfig | null): string[];
|
|
13
13
|
export declare function isGroupOrChannelMessage(message: Message): boolean;
|
|
14
14
|
export declare function shouldUseGroupFifoQueue(message: Message, config: ResolvedInboundQueueConfig): boolean;
|
|
15
|
-
//# sourceMappingURL=inbound-queue-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-queue-config.js","sourceRoot":"","sources":["../../src/turn/inbound-queue-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inbound-queue-config.js","sourceRoot":"","sources":["../../src/turn/inbound-queue-config.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Message } from '../resource-hub/types.js';\n\nimport type { InboundQueueConfig, InboundGroupQueueMode } from '../config/zhin-agent-config.js';\n\nexport type { InboundQueueConfig, InboundGroupQueueMode } from '../config/zhin-agent-config.js';\n\nexport interface ResolvedInboundQueueConfig {\n groupMode: InboundGroupQueueMode;\n ttlMs: number;\n coalesceWindowMs: number;\n maxQueuedTurns: number;\n}\n\nexport const DEFAULT_INBOUND_QUEUE_CONFIG: ResolvedInboundQueueConfig = {\n groupMode: 'supersede',\n ttlMs: 180_000,\n coalesceWindowMs: 30_000,\n maxQueuedTurns: 5,\n};\n\nexport function normalizeInboundQueueConfig(\n raw?: InboundQueueConfig | null,\n): ResolvedInboundQueueConfig {\n const groupMode = raw?.groupMode === 'fifo' ? 'fifo' : 'supersede';\n const ttlMs = typeof raw?.ttlMs === 'number' && raw.ttlMs >= 0\n ? raw.ttlMs\n : DEFAULT_INBOUND_QUEUE_CONFIG.ttlMs;\n const coalesceWindowMs = typeof raw?.coalesceWindowMs === 'number' && raw.coalesceWindowMs >= 0\n ? raw.coalesceWindowMs\n : DEFAULT_INBOUND_QUEUE_CONFIG.coalesceWindowMs;\n const maxQueuedTurns = typeof raw?.maxQueuedTurns === 'number' && Number.isInteger(raw.maxQueuedTurns) && raw.maxQueuedTurns >= 0\n ? raw.maxQueuedTurns\n : DEFAULT_INBOUND_QUEUE_CONFIG.maxQueuedTurns;\n return { groupMode, ttlMs, coalesceWindowMs, maxQueuedTurns };\n}\n\nexport function validateInboundQueueConfig(raw?: InboundQueueConfig | null): string[] {\n const errors: string[] = [];\n if (!raw) return errors;\n if (raw.groupMode !== undefined && raw.groupMode !== 'supersede' && raw.groupMode !== 'fifo') {\n errors.push('ai.agent.inboundQueue.groupMode must be supersede or fifo');\n }\n if (raw.ttlMs !== undefined && (typeof raw.ttlMs !== 'number' || !Number.isFinite(raw.ttlMs) || raw.ttlMs < 0)) {\n errors.push('ai.agent.inboundQueue.ttlMs must be a non-negative number');\n }\n if (\n raw.coalesceWindowMs !== undefined\n && (typeof raw.coalesceWindowMs !== 'number' || !Number.isFinite(raw.coalesceWindowMs) || raw.coalesceWindowMs < 0)\n ) {\n errors.push('ai.agent.inboundQueue.coalesceWindowMs must be a non-negative number');\n }\n if (\n raw.maxQueuedTurns !== undefined\n && (typeof raw.maxQueuedTurns !== 'number' || !Number.isInteger(raw.maxQueuedTurns) || raw.maxQueuedTurns < 0)\n ) {\n errors.push('ai.agent.inboundQueue.maxQueuedTurns must be a non-negative integer');\n }\n return errors;\n}\n\nexport function isGroupOrChannelMessage(message: Message): boolean {\n const kind = message.conversation.kind;\n return kind === 'group' || kind === 'channel';\n}\n\nexport function shouldUseGroupFifoQueue(\n message: Message,\n config: ResolvedInboundQueueConfig,\n): boolean {\n return config.groupMode === 'fifo' && isGroupOrChannelMessage(message);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-queue-runtime.js","sourceRoot":"","sources":["../../src/turn/inbound-queue-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GAExB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,UAAU,sBAAsB,CACpC,MAAiC,EACjC,OAA8B;IAE9B,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,kBAAkB,EAAE;QACrD,eAAe,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CACV,0BAA0B,EAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE;gBACrD,WAAW,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE;aAChD,CAAC,CACH,CAAC;QACJ,CAAC;QACD,eAAe,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CACV,0BAA0B,EAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE;gBACrD,WAAW,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE;aAChD,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAoB,EACpB,kBAA8C,EAC9C,KAAuB,EACvB,IAKC;IAED,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,QAAQ,CAAC;QACpB,UAAU;QACV,WAAW;QACX,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"inbound-queue-runtime.js","sourceRoot":"","sources":["../../src/turn/inbound-queue-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GAExB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,UAAU,sBAAsB,CACpC,MAAiC,EACjC,OAA8B;IAE9B,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,kBAAkB,EAAE;QACrD,eAAe,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CACV,0BAA0B,EAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE;gBACrD,WAAW,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE;aAChD,CAAC,CACH,CAAC;QACJ,CAAC;QACD,eAAe,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CACV,0BAA0B,EAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE;gBACrD,WAAW,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE;aAChD,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAoB,EACpB,kBAA8C,EAC9C,KAAuB,EACvB,IAKC;IAED,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,QAAQ,CAAC;QACpB,UAAU;QACV,WAAW;QACX,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { resolveIMSessionIdFromMessage } from '@zhin.js/core';\nimport type { Message } from '../resource-hub/types.js';\nimport type { ZhinAgentEventEmitter } from '../event/event-emitter.js';\nimport { InboundTurnQueue } from './inbound-turn-queue.js';\nimport {\n normalizeInboundQueueConfig,\n shouldUseGroupFifoQueue,\n type ResolvedInboundQueueConfig,\n} from './inbound-queue-config.js';\nimport type { ZhinAgentConfig } from '../config/index.js';\n\nexport function createInboundTurnQueue(\n config: Required<ZhinAgentConfig>,\n emitter: ZhinAgentEventEmitter,\n): { config: ResolvedInboundQueueConfig; queue: InboundTurnQueue } {\n const inboundQueueConfig = normalizeInboundQueueConfig(config.inboundQueue);\n const queue = new InboundTurnQueue(inboundQueueConfig, {\n emitQueuedStart: (commMessage, sessionKey) => {\n emitter.emit(\n 'ai.activity.queued.start',\n emitter.createPayload(sessionKey, commMessage, 'text', {\n hookContext: { activityFeedbackEligible: true },\n }),\n );\n },\n emitQueuedClear: (commMessage, sessionKey) => {\n emitter.emit(\n 'ai.activity.queued.clear',\n emitter.createPayload(sessionKey, commMessage, 'text', {\n hookContext: { activityFeedbackEligible: true },\n }),\n );\n },\n });\n return { config: inboundQueueConfig, queue };\n}\n\nexport async function runWithInboundQueue<T>(\n commMessage: Message,\n inboundQueueConfig: ResolvedInboundQueueConfig,\n queue: InboundTurnQueue,\n opts: {\n content?: string;\n coalesce?: boolean;\n signal?: AbortSignal;\n run: (mergedContent: string) => Promise<T>;\n },\n): Promise<T> {\n if (!shouldUseGroupFifoQueue(commMessage, inboundQueueConfig)) {\n return opts.run(opts.content ?? '');\n }\n const sessionKey = resolveIMSessionIdFromMessage(commMessage);\n return queue.schedule({\n sessionKey,\n commMessage,\n content: opts.content,\n coalesce: opts.coalesce,\n signal: opts.signal,\n run: opts.run,\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-turn-queue.js","sourceRoot":"","sources":["../../src/turn/inbound-turn-queue.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inbound-turn-queue.js","sourceRoot":"","sources":["../../src/turn/inbound-turn-queue.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,UAAkB;QAC5B,KAAK,CAAC,6CAA6C,UAAU,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,UAAkB,EAAE,MAAgB;QAC9C,KAAK,CAAC,+CAA+C,UAAU,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzH,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAyBD,MAAM,WAAW,GAAgC;IAC/C,eAAe,KAAI,CAAC;IACpB,eAAe,KAAI,CAAC;CACrB,CAAC;AAEF,MAAM,OAAO,gBAAgB;IAKjB;IACA;IALO,MAAM,GAAG,IAAI,GAAG,EAAwC,CAAC;IACzD,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE7D,YACU,MAAkC,EAClC,kBAA+C,WAAW;QAD1D,WAAM,GAAN,MAAM,CAA4B;QAClC,oBAAe,GAAf,eAAe,CAA2C;IACjE,CAAC;IAEJ,YAAY,CAAC,MAAkC;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ,CAAI,OAOX;QACC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACjD,wEAAwE;QACxE,0DAA0D;QAC1D,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;QACnF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAEnC,IAAI,eAAe,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAyB,CAAC;YAC7D,IACE,IAAI,CAAC,QAAQ,KAAK,QAAQ;mBACvB,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC3D,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;gBAC1B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;gBAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAC9D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9C,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3B,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,OAA4B,CAAC;QACjC,IAAI,MAAkC,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1C,OAAO,GAAG,GAAG,CAAC;YACd,MAAM,GAAG,GAAG,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAyB;YAClC,UAAU;YACV,QAAQ;YACR,WAAW;YACX,sBAAsB,EAAE,EAAE;YAC1B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YACnC,UAAU,EAAE,GAAG;YACf,cAAc,EAAE,GAAG;YACnB,eAAe;YACf,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,KAAK;YACd,OAAO;YACP,GAAG;YACH,OAAO;YACP,MAAM;SACP,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAmC,CAAC,CAAC;YAChF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,KAAK,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAmC,CAAC,CAAC;QAEhD,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5E,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAC9D,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1B,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBAC/B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAChC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEO,SAAS,CAAC,KAAiC,EAAE,GAAW;QAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO;QAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC/B,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,UAAkB;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO;QAE1C,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;YACxC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC1C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;gBAED,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAChC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;gBAErB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACvC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;wBAAS,CAAC;oBACT,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC;IACf,CAAC;IAEO,iBAAiB,CAAC,KAAiC;QACzD,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QACzB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7D,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEO,mBAAmB,CAAC,KAAiC;QAC3D,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACtE,CAAC;QACD,KAAK,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,MAAgB;IAC9D,IAAI,MAAM,YAAY,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC;IAC3E,OAAO,IAAI,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["import type { Message } from '../resource-hub/types.js';\nimport type { ResolvedInboundQueueConfig } from './inbound-queue-config.js';\n\nexport class InboundTurnExpiredError extends Error {\n constructor(sessionKey: string) {\n super(`Inbound turn expired in queue for session ${sessionKey}`);\n this.name = 'InboundTurnExpiredError';\n }\n}\n\nexport class InboundTurnCancelledError extends Error {\n constructor(sessionKey: string, reason?: unknown) {\n super(`Inbound turn cancelled in queue for session ${sessionKey}`, reason === undefined ? undefined : { cause: reason });\n this.name = 'InboundTurnCancelledError';\n }\n}\n\ninterface QueuedInboundTurn<T> {\n sessionKey: string;\n senderId: string;\n commMessage: Message;\n queuedFeedbackMessages: Message[];\n textParts: string[];\n enqueuedAt: number;\n lastEnqueuedAt: number;\n coalesceEnabled: boolean;\n signal?: AbortSignal;\n started: boolean;\n disposeAbortListener?: () => void;\n promise: Promise<T>;\n run: (mergedContent: string) => Promise<T>;\n resolve: (value: T) => void;\n reject: (reason: unknown) => void;\n}\n\nexport interface InboundQueueActivityEmitter {\n emitQueuedStart(commMessage: Message, sessionKey: string): void;\n emitQueuedClear(commMessage: Message, sessionKey: string): void;\n}\n\nconst noopEmitter: InboundQueueActivityEmitter = {\n emitQueuedStart() {},\n emitQueuedClear() {},\n};\n\nexport class InboundTurnQueue {\n private readonly queues = new Map<string, QueuedInboundTurn<unknown>[]>();\n private readonly inFlight = new Map<string, Promise<void>>();\n\n constructor(\n private config: ResolvedInboundQueueConfig,\n private activityEmitter: InboundQueueActivityEmitter = noopEmitter,\n ) {}\n\n updateConfig(config: ResolvedInboundQueueConfig): void {\n this.config = config;\n }\n\n schedule<T>(options: {\n sessionKey: string;\n commMessage: Message;\n content?: string;\n coalesce?: boolean;\n signal?: AbortSignal;\n run: (mergedContent: string) => Promise<T>;\n }): Promise<T> {\n const { sessionKey, commMessage, run } = options;\n // A cancellable caller owns an individual deadline, so it cannot safely\n // share a coalesced promise with another inbound message.\n const coalesceEnabled = options.coalesce !== false && options.signal === undefined;\n const content = options.content ?? '';\n if (options.signal?.aborted) {\n return Promise.reject(inboundAbortReason(sessionKey, options.signal.reason));\n }\n const senderId = String(commMessage.sender?.id ?? 'unknown');\n const now = Date.now();\n const queue = this.queues.get(sessionKey) ?? [];\n this.queues.set(sessionKey, queue);\n\n if (coalesceEnabled && content && queue.length > 0) {\n const tail = queue[queue.length - 1] as QueuedInboundTurn<T>;\n if (\n tail.senderId === senderId\n && now - tail.lastEnqueuedAt < this.config.coalesceWindowMs\n ) {\n tail.textParts.push(content);\n tail.lastEnqueuedAt = now;\n tail.commMessage = commMessage;\n tail.run = run;\n this.activityEmitter.emitQueuedStart(commMessage, sessionKey);\n tail.queuedFeedbackMessages.push(commMessage);\n void this.pump(sessionKey);\n return tail.promise;\n }\n }\n\n let resolve!: (value: T) => void;\n let reject!: (reason: unknown) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n const entry: QueuedInboundTurn<T> = {\n sessionKey,\n senderId,\n commMessage,\n queuedFeedbackMessages: [],\n textParts: content ? [content] : [],\n enqueuedAt: now,\n lastEnqueuedAt: now,\n coalesceEnabled,\n signal: options.signal,\n started: false,\n promise,\n run,\n resolve,\n reject,\n };\n\n if (options.signal) {\n const abort = () => this.cancelQueuedEntry(entry as QueuedInboundTurn<unknown>);\n options.signal.addEventListener('abort', abort, { once: true });\n entry.disposeAbortListener = () => options.signal?.removeEventListener('abort', abort);\n }\n\n queue.push(entry as QueuedInboundTurn<unknown>);\n\n const shouldShowPending = this.inFlight.has(sessionKey) || queue.length > 1;\n if (shouldShowPending) {\n this.activityEmitter.emitQueuedStart(commMessage, sessionKey);\n entry.queuedFeedbackMessages.push(commMessage);\n }\n\n void this.pump(sessionKey);\n return promise;\n }\n\n dispose(): void {\n for (const queue of this.queues.values()) {\n for (const entry of queue) {\n entry.disposeAbortListener?.();\n this.clearQueuedFeedback(entry);\n entry.reject(new Error('InboundTurnQueue disposed'));\n }\n }\n this.queues.clear();\n this.inFlight.clear();\n }\n\n private isExpired(entry: QueuedInboundTurn<unknown>, now: number): boolean {\n return this.config.ttlMs > 0 && entry.enqueuedAt + this.config.ttlMs < now;\n }\n\n private async discardExpired(sessionKey: string): Promise<void> {\n const queue = this.queues.get(sessionKey);\n if (!queue?.length) return;\n\n const now = Date.now();\n while (queue.length > 0 && this.isExpired(queue[0]!, now)) {\n const expired = queue.shift()!;\n expired.disposeAbortListener?.();\n this.clearQueuedFeedback(expired);\n expired.reject(new InboundTurnExpiredError(sessionKey));\n }\n\n if (!queue.length) {\n this.queues.delete(sessionKey);\n }\n }\n\n private async pump(sessionKey: string): Promise<void> {\n if (this.inFlight.has(sessionKey)) return;\n\n const runLoop = async (): Promise<void> => {\n while (true) {\n await this.discardExpired(sessionKey);\n const queue = this.queues.get(sessionKey);\n if (!queue?.length) {\n this.queues.delete(sessionKey);\n return;\n }\n\n const entry = queue.shift()!;\n if (!queue.length) {\n this.queues.delete(sessionKey);\n }\n\n this.clearQueuedFeedback(entry);\n entry.started = true;\n\n try {\n const merged = entry.textParts.filter(Boolean).join('\\n');\n const result = await entry.run(merged);\n entry.resolve(result);\n } catch (error) {\n entry.reject(error);\n } finally {\n entry.disposeAbortListener?.();\n }\n }\n };\n\n const flight = runLoop().finally(() => {\n if (this.inFlight.get(sessionKey) === flight) {\n this.inFlight.delete(sessionKey);\n }\n });\n this.inFlight.set(sessionKey, flight);\n await flight;\n }\n\n private cancelQueuedEntry(entry: QueuedInboundTurn<unknown>): void {\n if (entry.started) return;\n const queue = this.queues.get(entry.sessionKey);\n if (!queue) return;\n const index = queue.indexOf(entry);\n if (index === -1) return;\n queue.splice(index, 1);\n if (queue.length === 0) this.queues.delete(entry.sessionKey);\n entry.disposeAbortListener?.();\n this.clearQueuedFeedback(entry);\n entry.reject(inboundAbortReason(entry.sessionKey, entry.signal?.reason));\n }\n\n private clearQueuedFeedback(entry: QueuedInboundTurn<unknown>): void {\n for (const commMessage of entry.queuedFeedbackMessages) {\n this.activityEmitter.emitQueuedClear(commMessage, entry.sessionKey);\n }\n entry.queuedFeedbackMessages.length = 0;\n }\n}\n\nfunction inboundAbortReason(sessionKey: string, reason?: unknown): Error {\n if (reason instanceof Error && reason.name !== 'AbortError') return reason;\n return new InboundTurnCancelledError(sessionKey, reason);\n}\n"]}
|
package/lib/turn/index.d.ts
CHANGED
|
@@ -44,4 +44,3 @@ export type { TaskStatus, TaskProgress, TaskDecomposition, } from './task-contin
|
|
|
44
44
|
export { DEFAULT_MAX_QUEUED_TURNS, TurnAdmissionGate, } from './turn-admission-gate.js';
|
|
45
45
|
export type { TurnAdmission, TurnAdmissionFacts, TurnAdmissionGateOptions, TurnAdmissionRequest, TurnStopResult, } from './turn-admission-gate.js';
|
|
46
46
|
export { runWithAgentTurnConfiguration } from './agent-turn-context.js';
|
|
47
|
-
//# sourceMappingURL=index.d.ts.map
|
package/lib/turn/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/turn/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AA4B3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,eAAe,EACf,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAE5H,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,0BAA0B,EAC1B,oCAAoC,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,uBAAuB,EACvB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AASlC,oDAAoD;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/turn/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AA4B3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,eAAe,EACf,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAE5H,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,0BAA0B,EAC1B,oCAAoC,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,uBAAuB,EACvB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AASlC,oDAAoD;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["/**\n * Turn module — IM turn pipeline, scheduling, metrics.\n */\n\nexport { processTextTurn } from './turn-pipeline.js';\nexport type { ProcessTextTurnOptions } from './turn-pipeline.js';\n\nexport { executeAgentTurn } from './execute-agent-turn.js';\nexport { createJournalFeed, journalFeedOf } from './journal-feed.js';\nexport type { JournalFeed } from './journal-feed.js';\nexport type { TurnEventObserver, TurnEventSource } from './execute-agent-turn.js';\nexport { streamTurnEvents } from './turn-event-source.js';\nexport type { TurnEventSink, TurnEventSourceInput } from './turn-event-source.js';\n\nexport {\n createTurnIngress,\n resolveTurnContextValue,\n turnPermissionSubject,\n} from './turn-ingress.js';\nexport type {\n ActivityPort,\n DeliveryIntent,\n DeliveryOutcome,\n DeliveryPort,\n FrozenCapabilityCatalog,\n ReplyPort,\n TurnIdentity,\n TurnAccessContext,\n TurnIngress,\n TurnIngressInput,\n TurnIntent,\n TurnIntentKind,\n TurnJournalPort,\n TurnInput,\n TurnMedia,\n TurnOrigin,\n TurnOutcome,\n TurnPolicyContext,\n TurnPorts,\n TurnPrincipal,\n TurnRequest,\n TurnRequestPorts,\n TurnScope,\n TurnSessionAddress,\n} from './turn-ingress.js';\n\nexport { processTextTurnStream } from './process-stream.js';\n\nexport {\n PromptController,\n TurnCancelledError,\n TurnSupersededError,\n} from './prompt-controller.js';\nexport type { PromptTurnHooks, PromptTurnRequest } from './prompt-controller.js';\n\nexport { TriggerCancelledError, TriggerTimeoutError } from './trigger-cancelled-error.js';\n\nexport { isCancelIntent } from './cancel-intent.js';\n\nexport { SessionMessageQueue } from './session-message-queue.js';\n\nexport {\n addUsage,\n EMPTY_USAGE,\n formatAiHandlerTurnTable,\n formatOutputElementsPreview,\n} from './turn-metrics.js';\nexport type { ZhinAgentTurnMetrics, ZhinAgentTurnPath } from './turn-metrics.js';\n\nexport { TurnTracker } from './turn-tracker.js';\n\nexport {\n InboundTurnQueue,\n InboundTurnCancelledError,\n InboundTurnExpiredError,\n} from './inbound-turn-queue.js';\nexport type { InboundQueueActivityEmitter } from './inbound-turn-queue.js';\n\nexport {\n DEFAULT_INBOUND_QUEUE_CONFIG,\n normalizeInboundQueueConfig,\n validateInboundQueueConfig,\n isGroupOrChannelMessage,\n shouldUseGroupFifoQueue,\n} from './inbound-queue-config.js';\nexport type { ResolvedInboundQueueConfig } from './inbound-queue-config.js';\n\nexport { createInboundTurnQueue, runWithInboundQueue } from './inbound-queue-runtime.js';\n\nexport {\n continueAfterDeferredWorker,\n continueAfterSubagent,\n} from './auto-continue.js';\nexport type { AutoContinueHost } from './auto-continue.js';\n\nexport {\n runPromptTurn,\n steerMessage,\n followUpMessage,\n assertMasterForPromptControl,\n} from './prompt-api.js';\n\nexport { PromptAccessDeniedError } from './prompt-access.js';\n\nexport { normalizePromptMessages } from './prompt-input.js';\n\nexport { extractDeferredBody, deliverDeferredWorkerResult, deliverDeferredAutoContinueReply } from './deferred-delivery.js';\n\nexport {\n DEFERRED_AUTO_CONTINUE_MARKER,\n isDeferredAutoContinueEnabled,\n shouldDeferredAutoContinue,\n buildDeferredAutoContinueUserMessage,\n} from './deferred-auto-continue.js';\n\nexport {\n SUBAGENT_AUTO_CONTINUE_MARKER,\n buildSubagentAutoContinueUserMessage,\n} from './subagent-auto-continue.js';\n\nexport { persistDeferredWorkerResultToContext } from './persist-deferred-context.js';\nexport { persistSubagentResultToContext } from './persist-subagent-context.js';\n\nexport { computeDeferredDelta } from './turn-deferred-delta.js';\nexport { DeferredTurnState } from './deferred-turn-state.js';\n\nexport {\n getTurnActiveSkills,\n runInTurnContext,\n appendActiveSkills,\n} from './turn-context-bridge.js';\nexport type { TurnContextBridgeState } from './turn-context-bridge.js';\n\nexport {\n TaskContinuationManager,\n decomposeTask,\n} from './task-continuation.js';\nexport type {\n TaskStatus,\n TaskProgress,\n TaskDecomposition,\n} from './task-continuation.js';\nexport {\n DEFAULT_MAX_QUEUED_TURNS,\n TurnAdmissionGate,\n} from './turn-admission-gate.js';\nexport type {\n TurnAdmission,\n TurnAdmissionFacts,\n TurnAdmissionGateOptions,\n TurnAdmissionRequest,\n TurnStopResult,\n} from './turn-admission-gate.js';\n\n// Host-integration seam for external host packages.\nexport { runWithAgentTurnConfiguration } from './agent-turn-context.js';\n"]}
|
|
@@ -28,4 +28,3 @@ export declare function createJournalFeed(journal: TurnJournalPort, scope: Reado
|
|
|
28
28
|
}>): TurnJournalPort;
|
|
29
29
|
/** The feed attached to a journal port by `createJournalFeed`, if any. */
|
|
30
30
|
export declare function journalFeedOf(journal: TurnJournalPort): JournalFeed | undefined;
|
|
31
|
-
//# sourceMappingURL=journal-feed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal-feed.js","sourceRoot":"","sources":["../../src/turn/journal-feed.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AASnE,MAAM,KAAK,GAAG,IAAI,OAAO,EAAgC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAwB,EACxB,KAAmC;IAEnC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAoB,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,MAAM,CAAC,KAAgB;YAC3B,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,WAAW,KAAK,CAAC;gBAAE,OAAO;YAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM;gBAAE,OAAO;YAC1D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;IACH,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI;YACF,WAAW,IAAI,CAAC,CAAC;YACjB,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,IAAI;oBAAE,OAAO;gBAClB,IAAI,GAAG,KAAK,CAAC;gBACb,WAAW,IAAI,CAAC,CAAC;gBACjB,IAAI,WAAW,KAAK,CAAC;oBAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC;QACJ,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/B,CAAC,CAAC,CAAC;IACJ,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,OAAwB;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"journal-feed.js","sourceRoot":"","sources":["../../src/turn/journal-feed.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AASnE,MAAM,KAAK,GAAG,IAAI,OAAO,EAAgC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAwB,EACxB,KAAmC;IAEnC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAoB,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,MAAM,CAAC,KAAgB;YAC3B,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,WAAW,KAAK,CAAC;gBAAE,OAAO;YAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM;gBAAE,OAAO;YAC1D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;IACH,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI;YACF,WAAW,IAAI,CAAC,CAAC;YACjB,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,IAAI;oBAAE,OAAO;gBAClB,IAAI,GAAG,KAAK,CAAC;gBACb,WAAW,IAAI,CAAC,CAAC;gBACjB,IAAI,WAAW,KAAK,CAAC;oBAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC;QACJ,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/B,CAAC,CAAC,CAAC;IACJ,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,OAAwB;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["/**\n * Journal-derived event feed (#748).\n *\n * The turn journal is the single source of truth for what happened in a\n * turn. Some facts reach it without passing through the engine stream — most\n * importantly the authority's `tool_call` / `tool_result` / `tool_denied`\n * events, which TurnToolRuntime commits before a tool executes. Stream\n * consumers (the `observe` projection of `executeAgentTurn`) read this feed\n * instead of the raw engine stream, so they see exactly the committed\n * events, in commit order, with the existing TurnEvent shape and no second\n * journal append.\n */\nimport type { TurnEvent } from '../event/turn-event.js';\nimport type { TurnJournalPort } from './turn-ingress.js';\nimport { traceScopeTurnId } from '../trace/turn-trace-registry.js';\n\nexport interface JournalFeed {\n /** Start buffering committed events; returns a function that stops it. */\n open(): () => void;\n /** Committed events since the last drain, in commit order. */\n drain(): TurnEvent[];\n}\n\nconst feeds = new WeakMap<TurnJournalPort, JournalFeed>();\n\n/**\n * Wraps a turn's journal port so every successfully committed event of this\n * turn is also offered to the feed. Events tagged for another (sub-agent)\n * turn stay out of this turn's feed.\n */\nexport function createJournalFeed(\n journal: TurnJournalPort,\n scope: Readonly<{ turnId: string }>,\n): TurnJournalPort {\n let subscribers = 0;\n const pending: TurnEvent[] = [];\n const port: TurnJournalPort = Object.freeze({\n async append(event: TurnEvent) {\n await journal.append(event);\n if (subscribers === 0) return;\n const owner = traceScopeTurnId(event);\n if (owner !== undefined && owner !== scope.turnId) return;\n pending.push(event);\n },\n });\n feeds.set(port, Object.freeze({\n open() {\n subscribers += 1;\n let open = true;\n return () => {\n if (!open) return;\n open = false;\n subscribers -= 1;\n if (subscribers === 0) pending.length = 0;\n };\n },\n drain: () => pending.splice(0),\n }));\n return port;\n}\n\n/** The feed attached to a journal port by `createJournalFeed`, if any. */\nexport function journalFeedOf(journal: TurnJournalPort): JournalFeed | undefined {\n return feeds.get(journal);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal-integrity.js","sourceRoot":"","sources":["../../src/turn/journal-integrity.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,KAAc;QACxB,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"journal-integrity.js","sourceRoot":"","sources":["../../src/turn/journal-integrity.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,KAAc;QACxB,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF","sourcesContent":["/** A required Turn fact could not be committed to the durable Journal. */\nexport class TurnJournalCommitError extends Error {\n constructor(cause: unknown) {\n super(cause instanceof Error ? cause.message : String(cause), { cause });\n this.name = 'TurnJournalCommitError';\n }\n}\n"]}
|
|
@@ -2,4 +2,3 @@ import type { DeferredWorkerResult } from '../deferred-worker-runner.js';
|
|
|
2
2
|
import type { Message } from '../resource-hub/types.js';
|
|
3
3
|
import type { ZhinAgentPrivate } from '../internal/agent-host.js';
|
|
4
4
|
export declare function persistDeferredWorkerResultToContext(agent: ZhinAgentPrivate, commMessage: Message, taskId: string, goal: string, result: DeferredWorkerResult): Promise<boolean>;
|
|
5
|
-
//# sourceMappingURL=persist-deferred-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist-deferred-context.js","sourceRoot":"","sources":["../../src/turn/persist-deferred-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,KAAuB,EACvB,WAAoB,EACpB,MAAc,EACd,IAAY,EACZ,MAA4B;IAE5B,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,8BAA8B,MAAM,MAAM,KAAK,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEpF,MAAM,gBAAgB,GAAqB;QACzC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,iBAAiB;QAC3B,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;IAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"persist-deferred-context.js","sourceRoot":"","sources":["../../src/turn/persist-deferred-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,KAAuB,EACvB,WAAoB,EACpB,MAAc,EACd,IAAY,EACZ,MAA4B;IAE5B,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,8BAA8B,MAAM,MAAM,KAAK,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEpF,MAAM,gBAAgB,GAAqB;QACzC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,iBAAiB;QAC3B,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;IAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["/**\n * Deferred worker 完成后将结果写入主会话 ContextRepository,\n * 让下一轮主 Agent 能直接读取已完成 Worker 的结果。\n */\nimport {\n EMPTY_TOKEN_USAGE,\n type AssistantMessage,\n} from '@zhin.js/ai';\nimport { resolveAgentTurnSessionKey } from '../session/session-key.js';\nimport type { DeferredWorkerResult } from '../deferred-worker-runner.js';\nimport { resolveSubagentDisplayLabel } from '../subagent-goal-notify.js';\nimport { packageSubagentResult } from '../subagent-artifact.js';\nimport type { Message } from '../resource-hub/types.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\nimport { extractDeferredBody } from './deferred-delivery.js';\n\nexport async function persistDeferredWorkerResultToContext(\n agent: ZhinAgentPrivate,\n commMessage: Message,\n taskId: string,\n goal: string,\n result: DeferredWorkerResult,\n): Promise<boolean> {\n const body = extractDeferredBody(result);\n if (!body.trim()) return false;\n\n const sessionKey = resolveAgentTurnSessionKey(commMessage);\n const active = await agent.agentSessionStore.findActive(sessionKey);\n const sessionId = active?.session_id;\n if (!sessionId) return false;\n\n const label = resolveSubagentDisplayLabel(undefined, goal);\n const packaged = packageSubagentResult(body, taskId);\n const text = `[Deferred worker 完成 · task:${taskId} · ${label}]\\n\\n${packaged.text}`;\n\n const assistantMessage: AssistantMessage = {\n role: 'assistant',\n content: [{ type: 'text', text }],\n api: 'openai-completions',\n provider: 'deferred-worker',\n model: 'worker',\n usage: EMPTY_TOKEN_USAGE,\n stopReason: 'stop',\n timestamp: Date.now(),\n };\n\n await agent.contextRepository.appendMessages(sessionId, [assistantMessage]);\n return true;\n}\n"]}
|
|
@@ -2,4 +2,3 @@ import type { SubagentCompletePayload } from '../subagent/index.js';
|
|
|
2
2
|
import type { Message } from '../resource-hub/types.js';
|
|
3
3
|
import type { ZhinAgentPrivate } from '../internal/agent-host.js';
|
|
4
4
|
export declare function persistSubagentResultToContext(agent: ZhinAgentPrivate, commMessage: Message, payload: SubagentCompletePayload): Promise<boolean>;
|
|
5
|
-
//# sourceMappingURL=persist-subagent-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist-subagent-context.js","sourceRoot":"","sources":["../../src/turn/persist-subagent-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,KAAuB,EACvB,WAAoB,EACpB,OAAgC;IAEhC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG;QACX,8BAA8B,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,KAAK,GAAG;QAClE,WAAW,OAAO,CAAC,MAAM,EAAE;QAC3B,EAAE;QACF,QAAQ,CAAC,IAAI;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,gBAAgB,GAAqB;QACzC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU;QAClC,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;IAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"persist-subagent-context.js","sourceRoot":"","sources":["../../src/turn/persist-subagent-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,KAAuB,EACvB,WAAoB,EACpB,OAAgC;IAEhC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG;QACX,8BAA8B,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,KAAK,GAAG;QAClE,WAAW,OAAO,CAAC,MAAM,EAAE;QAC3B,EAAE;QACF,QAAQ,CAAC,IAAI;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,gBAAgB,GAAqB;QACzC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU;QAClC,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;IAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["/**\n * Persist async subagent result into main session context before auto-continue.\n */\nimport {\n EMPTY_TOKEN_USAGE,\n type AssistantMessage,\n} from '@zhin.js/ai';\nimport { resolveAgentTurnSessionKey } from '../session/session-key.js';\nimport type { SubagentCompletePayload } from '../subagent/index.js';\nimport { packageSubagentResult } from '../subagent-artifact.js';\nimport type { Message } from '../resource-hub/types.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\n\nexport async function persistSubagentResultToContext(\n agent: ZhinAgentPrivate,\n commMessage: Message,\n payload: SubagentCompletePayload,\n): Promise<boolean> {\n const body = payload.result.trim();\n if (!body) return false;\n\n const sessionKey = resolveAgentTurnSessionKey(commMessage);\n const active = await agent.agentSessionStore.findActive(sessionKey);\n const sessionId = active?.session_id;\n if (!sessionId) return false;\n\n const packaged = packageSubagentResult(body, payload.taskId);\n const text = [\n `[Subagent completed · task:${payload.taskId} · ${payload.label}]`,\n `status: ${payload.status}`,\n '',\n packaged.text,\n ].join('\\n');\n\n const assistantMessage: AssistantMessage = {\n role: 'assistant',\n content: [{ type: 'text', text }],\n api: 'openai-completions',\n provider: 'subagent',\n model: payload.agent ?? 'subagent',\n usage: EMPTY_TOKEN_USAGE,\n stopReason: 'stop',\n timestamp: Date.now(),\n };\n\n await agent.contextRepository.appendMessages(sessionId, [assistantMessage]);\n return true;\n}\n"]}
|
|
@@ -11,4 +11,3 @@ export declare function processTextTurnStream(agent: ZhinAgentPrivate, opts: {
|
|
|
11
11
|
inboundTurnQueue: InboundTurnQueue;
|
|
12
12
|
runInTurnContext: <T>(turnId: string, fn: () => Promise<T>) => Promise<T>;
|
|
13
13
|
}): AsyncGenerator<TurnEvent, void, undefined>;
|
|
14
|
-
//# sourceMappingURL=process-stream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-stream.js","sourceRoot":"","sources":["../../src/turn/process-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAC1C,KAAuB,EACvB,IAOC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC7G,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;QACvB,SAAS;QACT,MAAM;KACP,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3D,MAAM,SAAS,GAAc,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACvE,MAAM,SAAS,CAAC;IAChB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAC/C,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;YACrE,OAAO;YACP,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE,CACrB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE;gBAC3E,WAAW,EAAE,IAAI;gBACjB,OAAO;aACR,CAAC;SACL,CAAC,CAAC;QACL,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC5C,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChE,WAAW,EAAE,KAAK;aACnB;KACN,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"process-stream.js","sourceRoot":"","sources":["../../src/turn/process-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAC1C,KAAuB,EACvB,IAOC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC7G,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;QACvB,SAAS;QACT,MAAM;KACP,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3D,MAAM,SAAS,GAAc,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACvE,MAAM,SAAS,CAAC;IAChB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAC/C,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;YACrE,OAAO;YACP,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE,CACrB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE;gBAC3E,WAAW,EAAE,IAAI;gBACjB,OAAO;aACR,CAAC;SACL,CAAC,CAAC;QACL,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC5C,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChE,WAAW,EAAE,KAAK;aACnB;KACN,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { resolveIMSessionIdFromMessage } from '@zhin.js/core';\nimport { AgentRunJournal } from '@zhin.js/ai/agent-stream';\nimport type { Message, Tool } from '../resource-hub/types.js';\nimport type { TurnEvent } from '../event/turn-event.js';\nimport { publishTurnStreamEvents } from '../event/publish-agent-stream.js';\nimport type { InboundTurnQueue } from '../turn/inbound-turn-queue.js';\nimport type { ResolvedInboundQueueConfig } from '../turn/inbound-queue-config.js';\nimport { runWithInboundQueue } from '../turn/inbound-queue-runtime.js';\nimport { processTextTurn } from './turn-pipeline.js';\nimport { isTurnCancellation, turnCancelledEvent } from './turn-terminal.js';\nimport { streamTurnEvents } from './turn-event-source.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\n\nexport async function* processTextTurnStream(\n agent: ZhinAgentPrivate,\n opts: {\n content: string;\n commMessage: Message;\n externalTools: Tool[];\n inboundQueueConfig: ResolvedInboundQueueConfig;\n inboundTurnQueue: InboundTurnQueue;\n runInTurnContext: <T>(turnId: string, fn: () => Promise<T>) => Promise<T>;\n },\n): AsyncGenerator<TurnEvent, void, undefined> {\n const { content, commMessage, externalTools, inboundQueueConfig, inboundTurnQueue, runInTurnContext } = opts;\n const turnId = randomUUID();\n const sessionId = resolveIMSessionIdFromMessage(commMessage);\n\n const streamCtx = () => ({\n sessionId,\n turnId,\n });\n const journal = new AgentRunJournal({ sessionId, turnId });\n\n const turnStart: TurnEvent = { type: 'turn_start', sessionId, turnId };\n yield turnStart;\n publishTurnStreamEvents(agent, turnStart, streamCtx(), journal);\n\n const source = streamTurnEvents({\n execute: (emit) => runInTurnContext(turnId, () =>\n runWithInboundQueue(commMessage, inboundQueueConfig, inboundTurnQueue, {\n content,\n run: (mergedContent) =>\n processTextTurn(agent, mergedContent, commMessage, externalTools, undefined, {\n onTurnEvent: emit,\n journal,\n }),\n })),\n mapError: (error) => isTurnCancellation(error)\n ? turnCancelledEvent(error)\n : {\n type: 'error',\n error: error instanceof Error ? error : new Error(String(error)),\n recoverable: false,\n },\n });\n\n for await (const event of source) {\n publishTurnStreamEvents(agent, event, streamCtx(), journal);\n yield event;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-access.js","sourceRoot":"","sources":["../../src/turn/prompt-access.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"prompt-access.js","sourceRoot":"","sources":["../../src/turn/prompt-access.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF","sourcesContent":["export class PromptAccessDeniedError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'PromptAccessDeniedError';\n }\n}\n"]}
|
package/lib/turn/prompt-api.d.ts
CHANGED
|
@@ -11,4 +11,3 @@ export declare function runPromptTurn(agent: ZhinAgentPrivate, input: string | A
|
|
|
11
11
|
}): Promise<AgentOutputElement[]>;
|
|
12
12
|
export declare function steerMessage(promptController: PromptController, message: AgentMessage, commMessage: Message): void;
|
|
13
13
|
export declare function followUpMessage(promptController: PromptController, message: AgentMessage, commMessage: Message): void;
|
|
14
|
-
//# sourceMappingURL=prompt-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-api.js","sourceRoot":"","sources":["../../src/turn/prompt-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,MAAM,UAAU,4BAA4B,CAC1C,WAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,uBAAuB,CAAC,4BAA4B,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,uBAAuB;YAAE,MAAM,KAAK,CAAC;QAC1D,MAAM,IAAI,uBAAuB,CAAC,iCAAiC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAuB,EACvB,KAA6C,EAC7C,WAAoB,EACpB,gBAAyE,EACzE,OAAoE;IAEpE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,QAAQ;SAClB,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,EAAc,CAAC;QACnD,MAAM,IAAI,GAAG,OAAsB,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;aACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;IACV,OAAO,gBAAgB,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CACzC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;QAC9D,gBAAgB,EAAE,QAAQ;KAC3B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,gBAAkC,EAClC,OAAqB,EACrB,WAAoB;IAEpB,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,gBAAkC,EAClC,OAAqB,EACrB,WAAoB;IAEpB,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompt-api.js","sourceRoot":"","sources":["../../src/turn/prompt-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,MAAM,UAAU,4BAA4B,CAC1C,WAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,uBAAuB,CAAC,4BAA4B,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,uBAAuB;YAAE,MAAM,KAAK,CAAC;QAC1D,MAAM,IAAI,uBAAuB,CAAC,iCAAiC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAuB,EACvB,KAA6C,EAC7C,WAAoB,EACpB,gBAAyE,EACzE,OAAoE;IAEpE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,QAAQ;SAClB,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,EAAc,CAAC;QACnD,MAAM,IAAI,GAAG,OAAsB,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;aACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;IACV,OAAO,gBAAgB,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CACzC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;QAC9D,gBAAgB,EAAE,QAAQ;KAC3B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,gBAAkC,EAClC,OAAqB,EACrB,WAAoB;IAEpB,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,gBAAkC,EAClC,OAAqB,EACrB,WAAoB;IAEpB,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC","sourcesContent":["import type { AgentOutputElement } from '../outbound/agent-output.js';\nimport { randomUUID } from 'node:crypto';\nimport { resolveIMSessionIdFromMessage } from '@zhin.js/core';\nimport type { AgentMessage, MediaContentBlock, UserMessage } from '@zhin.js/ai';\nimport type { Message } from '../resource-hub/types.js';\nimport { PromptAccessDeniedError } from './prompt-access.js';\nimport { resolveToolRequesterRole } from '../security/owner-approval-runtime.js';\nimport { normalizePromptMessages } from './prompt-input.js';\nimport { processTextTurn } from '../turn/turn-pipeline.js';\nimport type { OnChunkCallback } from '../config/index.js';\nimport type { PromptController } from '../turn/prompt-controller.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\nexport function assertMasterForPromptControl(\n commMessage: Message,\n): void {\n try {\n const role = resolveToolRequesterRole(commMessage);\n if (role !== 'master') {\n throw new PromptAccessDeniedError('steer/followUp 仅 master 可用');\n }\n } catch (error) {\n if (error instanceof PromptAccessDeniedError) throw error;\n throw new PromptAccessDeniedError('steer/followUp 需要有效的 master 上下文');\n }\n}\n\nexport async function runPromptTurn(\n agent: ZhinAgentPrivate,\n input: string | AgentMessage | AgentMessage[],\n commMessage: Message,\n runInTurnContext: <T>(turnId: string, fn: () => Promise<T>) => Promise<T>,\n options?: { media?: MediaContentBlock[]; onChunk?: OnChunkCallback },\n): Promise<AgentOutputElement[]> {\n const messages = normalizePromptMessages(input, options?.media);\n const text = messages\n .flatMap((message) => {\n if (message.role !== 'user') return [] as string[];\n const user = message as UserMessage;\n return user.content\n .filter((block) => block.type === 'text')\n .map((block) => block.text);\n })\n .join('\\n')\n .trim();\n return runInTurnContext(randomUUID(), () =>\n processTextTurn(agent, text, commMessage, [], options?.onChunk, {\n prebuiltMessages: messages,\n }),\n );\n}\n\nexport function steerMessage(\n promptController: PromptController,\n message: AgentMessage,\n commMessage: Message,\n): void {\n assertMasterForPromptControl(commMessage);\n const sessionKey = resolveIMSessionIdFromMessage(commMessage);\n promptController.steer(sessionKey, message);\n}\n\nexport function followUpMessage(\n promptController: PromptController,\n message: AgentMessage,\n commMessage: Message,\n): void {\n assertMasterForPromptControl(commMessage);\n const sessionKey = resolveIMSessionIdFromMessage(commMessage);\n promptController.followUp(sessionKey, message);\n}\n"]}
|