@roackb2/heddle 1.5.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/examples/conversation-engine.js +10 -10
- package/dist/examples/conversation-engine.js.map +1 -1
- package/dist/examples/heartbeat-scheduler.js +2 -2
- package/dist/examples/heartbeat-scheduler.js.map +1 -1
- package/dist/examples/heartbeat.js +2 -2
- package/dist/examples/heartbeat.js.map +1 -1
- package/dist/examples/programmatic-loop.js +2 -2
- package/dist/examples/programmatic-loop.js.map +1 -1
- package/dist/examples/repo-investigator.js +4 -4
- package/dist/examples/repo-investigator.js.map +1 -1
- package/dist/src/cli/ask.d.ts.map +1 -1
- package/dist/src/cli/ask.js +5 -5
- package/dist/src/cli/ask.js.map +1 -1
- package/dist/src/cli/auth.d.ts +14 -7
- package/dist/src/cli/auth.d.ts.map +1 -1
- package/dist/src/cli/auth.js +75 -70
- package/dist/src/cli/auth.js.map +1 -1
- package/dist/src/cli/chat/adapters/conversation-activity-adapter.d.ts +1 -1
- package/dist/src/cli/chat/adapters/conversation-activity-adapter.d.ts.map +1 -1
- package/dist/src/cli/chat/adapters/conversation-activity-adapter.js +29 -19
- package/dist/src/cli/chat/adapters/conversation-activity-adapter.js.map +1 -1
- package/dist/src/cli/chat/adapters/slash-command-context.js +4 -4
- package/dist/src/cli/chat/adapters/slash-command-context.js.map +1 -1
- package/dist/src/cli/chat/commands/debug-snapshot-command.js +2 -2
- package/dist/src/cli/chat/commands/debug-snapshot-command.js.map +1 -1
- package/dist/src/cli/chat/components/ModelPickerPanel.d.ts +1 -1
- package/dist/src/cli/chat/components/ModelPickerPanel.js +1 -1
- package/dist/src/cli/chat/debug/tui-debug-snapshot.d.ts +1 -1
- package/dist/src/cli/chat/debug/tui-debug-snapshot.js +1 -1
- package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell-result.js +3 -3
- package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell-result.js.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js +2 -2
- package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.js +3 -3
- package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.js.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/useAgentRunController.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js +16 -6
- package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/useChatAppController.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/useChatAppController.js +9 -10
- package/dist/src/cli/chat/hooks/controllers/useChatAppController.js.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/usePromptSubmissionController.d.ts +1 -1
- package/dist/src/cli/chat/hooks/useChatPickers.d.ts +1 -1
- package/dist/src/cli/chat/hooks/useChatPickers.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useChatPickers.js +7 -8
- package/dist/src/cli/chat/hooks/useChatPickers.js.map +1 -1
- package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useChatStatusSummary.js +3 -4
- package/dist/src/cli/chat/hooks/useChatStatusSummary.js.map +1 -1
- package/dist/src/cli/chat/state/local-commands.d.ts +1 -1
- package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -1
- package/dist/src/cli/chat/state/local-commands.js +6 -6
- package/dist/src/cli/chat/state/local-commands.js.map +1 -1
- package/dist/src/cli/chat/utils/format.d.ts +0 -1
- package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/format.js +0 -1
- package/dist/src/cli/chat/utils/format.js.map +1 -1
- package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/runtime.js +6 -6
- package/dist/src/cli/chat/utils/runtime.js.map +1 -1
- package/dist/src/cli/main.js +32 -27
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/remote/control-plane-client.d.ts +3 -3
- package/dist/src/core/agent/budget/index.d.ts +2 -0
- package/dist/src/core/agent/budget/index.d.ts.map +1 -0
- package/dist/src/core/agent/budget/index.js +2 -0
- package/dist/src/core/agent/budget/index.js.map +1 -0
- package/dist/src/core/agent/budget/step-budget.d.ts +12 -0
- package/dist/src/core/agent/budget/step-budget.d.ts.map +1 -0
- package/dist/src/core/agent/budget/step-budget.js +21 -0
- package/dist/src/core/agent/budget/step-budget.js.map +1 -0
- package/dist/src/core/agent/context/run-context-builder.js +6 -6
- package/dist/src/core/agent/context/run-context-builder.js.map +1 -1
- package/dist/src/core/agent/tools/tool-dispatcher.d.ts +3 -4
- package/dist/src/core/agent/tools/tool-dispatcher.d.ts.map +1 -1
- package/dist/src/core/agent/tools/tool-dispatcher.js +2 -2
- package/dist/src/core/agent/tools/tool-dispatcher.js.map +1 -1
- package/dist/src/core/agent/types.d.ts +5 -5
- package/dist/src/core/agent/types.d.ts.map +1 -1
- package/dist/src/core/approvals/remembered-rules/schemas.d.ts +3 -3
- package/dist/src/core/auth/index.d.ts +4 -0
- package/dist/src/core/auth/index.d.ts.map +1 -0
- package/dist/src/core/auth/index.js +3 -0
- package/dist/src/core/auth/index.js.map +1 -0
- package/dist/src/core/auth/openai-oauth.d.ts +41 -61
- package/dist/src/core/auth/openai-oauth.d.ts.map +1 -1
- package/dist/src/core/auth/openai-oauth.js +264 -258
- package/dist/src/core/auth/openai-oauth.js.map +1 -1
- package/dist/src/core/auth/provider-credentials.d.ts +23 -51
- package/dist/src/core/auth/provider-credentials.d.ts.map +1 -1
- package/dist/src/core/auth/provider-credentials.js +69 -134
- package/dist/src/core/auth/provider-credentials.js.map +1 -1
- package/dist/src/core/auth/schemas.d.ts +54 -0
- package/dist/src/core/auth/schemas.d.ts.map +1 -0
- package/dist/src/core/auth/schemas.js +63 -0
- package/dist/src/core/auth/schemas.js.map +1 -0
- package/dist/src/core/auth/types.d.ts +80 -0
- package/dist/src/core/auth/types.d.ts.map +1 -0
- package/dist/src/core/auth/types.js +2 -0
- package/dist/src/core/auth/types.js.map +1 -0
- package/dist/src/core/chat/engine/compaction/service.js +2 -2
- package/dist/src/core/chat/engine/compaction/service.js.map +1 -1
- package/dist/src/core/chat/engine/compaction/summarizer/service.d.ts.map +1 -1
- package/dist/src/core/chat/engine/compaction/summarizer/service.js +9 -6
- package/dist/src/core/chat/engine/compaction/summarizer/service.js.map +1 -1
- package/dist/src/core/chat/engine/compaction/transcript-renderer.js +2 -2
- package/dist/src/core/chat/engine/compaction/transcript-renderer.js.map +1 -1
- package/dist/src/core/chat/engine/config.d.ts +2 -2
- package/dist/src/core/chat/engine/config.d.ts.map +1 -1
- package/dist/src/core/chat/engine/sessions/preferences/service.js +3 -3
- package/dist/src/core/chat/engine/sessions/preferences/service.js.map +1 -1
- package/dist/src/core/chat/engine/sessions/records/records.js +3 -3
- package/dist/src/core/chat/engine/sessions/records/records.js.map +1 -1
- package/dist/src/core/chat/engine/sessions/records/types.d.ts +2 -2
- package/dist/src/core/chat/engine/sessions/records/types.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/host/host-normalizer.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/host/host-normalizer.js +4 -4
- package/dist/src/core/chat/engine/turns/host/host-normalizer.js.map +1 -1
- package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.js +11 -7
- package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.js.map +1 -1
- package/dist/src/core/chat/engine/turns/persistence/types.d.ts +3 -3
- package/dist/src/core/chat/engine/turns/persistence/types.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js +12 -10
- package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js.map +1 -1
- package/dist/src/core/chat/engine/turns/types.d.ts +2 -3
- package/dist/src/core/chat/engine/turns/types.d.ts.map +1 -1
- package/dist/src/core/chat/engine/types.d.ts +4 -5
- package/dist/src/core/chat/engine/types.d.ts.map +1 -1
- package/dist/src/core/commands/slash/autocomplete.d.ts +9 -4
- package/dist/src/core/commands/slash/autocomplete.d.ts.map +1 -1
- package/dist/src/core/commands/slash/autocomplete.js +53 -48
- package/dist/src/core/commands/slash/autocomplete.js.map +1 -1
- package/dist/src/core/commands/slash/modules/auth/auth-commands.js +4 -4
- package/dist/src/core/commands/slash/modules/auth/auth-commands.js.map +1 -1
- package/dist/src/core/commands/slash/modules/compaction/compaction-commands.js +2 -2
- package/dist/src/core/commands/slash/modules/compaction/compaction-commands.js.map +1 -1
- package/dist/src/core/commands/slash/modules/drift/drift-commands.js +4 -4
- package/dist/src/core/commands/slash/modules/drift/drift-commands.js.map +1 -1
- package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js +3 -3
- package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js.map +1 -1
- package/dist/src/core/commands/slash/modules/model/model-commands.d.ts.map +1 -1
- package/dist/src/core/commands/slash/modules/model/model-commands.js +14 -15
- package/dist/src/core/commands/slash/modules/model/model-commands.js.map +1 -1
- package/dist/src/core/commands/slash/modules/session/session-commands.js +6 -6
- package/dist/src/core/commands/slash/modules/session/session-commands.js.map +1 -1
- package/dist/src/core/commands/slash/parser.d.ts +10 -5
- package/dist/src/core/commands/slash/parser.d.ts.map +1 -1
- package/dist/src/core/commands/slash/parser.js +42 -37
- package/dist/src/core/commands/slash/parser.js.map +1 -1
- package/dist/src/core/commands/slash/registry.d.ts +12 -3
- package/dist/src/core/commands/slash/registry.d.ts.map +1 -1
- package/dist/src/core/commands/slash/registry.js +50 -45
- package/dist/src/core/commands/slash/registry.js.map +1 -1
- package/dist/src/core/heartbeat/wake/service.d.ts.map +1 -1
- package/dist/src/core/heartbeat/wake/service.js +2 -3
- package/dist/src/core/heartbeat/wake/service.js.map +1 -1
- package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.d.ts +21 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.d.ts.map +1 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.js +66 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.js.map +1 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-codec.d.ts +16 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-codec.d.ts.map +1 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-codec.js +64 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-codec.js.map +1 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.d.ts +17 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.d.ts.map +1 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.js +20 -0
- package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.js.map +1 -0
- package/dist/src/core/llm/adapters/anthropic/index.d.ts +4 -0
- package/dist/src/core/llm/adapters/anthropic/index.d.ts.map +1 -0
- package/dist/src/core/llm/adapters/anthropic/index.js +3 -0
- package/dist/src/core/llm/adapters/anthropic/index.js.map +1 -0
- package/dist/src/core/llm/adapters/openai/index.d.ts +4 -0
- package/dist/src/core/llm/adapters/openai/index.d.ts.map +1 -0
- package/dist/src/core/llm/adapters/openai/index.js +3 -0
- package/dist/src/core/llm/adapters/openai/index.js.map +1 -0
- package/dist/src/core/llm/adapters/openai/openai-adapter.d.ts +53 -0
- package/dist/src/core/llm/adapters/openai/openai-adapter.d.ts.map +1 -0
- package/dist/src/core/llm/adapters/openai/openai-adapter.js +266 -0
- package/dist/src/core/llm/adapters/openai/openai-adapter.js.map +1 -0
- package/dist/src/core/llm/adapters/openai/openai-codec.d.ts +41 -0
- package/dist/src/core/llm/adapters/openai/openai-codec.d.ts.map +1 -0
- package/dist/src/core/llm/adapters/openai/openai-codec.js +169 -0
- package/dist/src/core/llm/adapters/openai/openai-codec.js.map +1 -0
- package/dist/src/core/llm/adapters/openai/openai-provider-adapter.d.ts +17 -0
- package/dist/src/core/llm/adapters/openai/openai-provider-adapter.d.ts.map +1 -0
- package/dist/src/core/llm/adapters/openai/openai-provider-adapter.js +20 -0
- package/dist/src/core/llm/adapters/openai/openai-provider-adapter.js.map +1 -0
- package/dist/src/core/llm/index.d.ts +9 -0
- package/dist/src/core/llm/index.d.ts.map +1 -0
- package/dist/src/core/llm/index.js +5 -0
- package/dist/src/core/llm/index.js.map +1 -0
- package/dist/src/core/llm/models/index.d.ts +5 -0
- package/dist/src/core/llm/models/index.d.ts.map +1 -0
- package/dist/src/core/llm/models/index.js +3 -0
- package/dist/src/core/llm/models/index.js.map +1 -0
- package/dist/src/core/llm/models/model-catalog.d.ts +23 -0
- package/dist/src/core/llm/models/model-catalog.d.ts.map +1 -0
- package/dist/src/core/llm/models/model-catalog.js +132 -0
- package/dist/src/core/llm/models/model-catalog.js.map +1 -0
- package/dist/src/core/llm/models/model-policy-service.d.ts +70 -0
- package/dist/src/core/llm/models/model-policy-service.d.ts.map +1 -0
- package/dist/src/core/llm/models/model-policy-service.js +137 -0
- package/dist/src/core/llm/models/model-policy-service.js.map +1 -0
- package/dist/src/core/llm/registry/builtin-llm-providers.d.ts +5 -0
- package/dist/src/core/llm/registry/builtin-llm-providers.d.ts.map +1 -0
- package/dist/src/core/llm/registry/builtin-llm-providers.js +16 -0
- package/dist/src/core/llm/registry/builtin-llm-providers.js.map +1 -0
- package/dist/src/core/llm/registry/index.d.ts +5 -0
- package/dist/src/core/llm/registry/index.d.ts.map +1 -0
- package/dist/src/core/llm/registry/index.js +4 -0
- package/dist/src/core/llm/registry/index.js.map +1 -0
- package/dist/src/core/llm/registry/llm-provider-registry.d.ts +17 -0
- package/dist/src/core/llm/registry/llm-provider-registry.d.ts.map +1 -0
- package/dist/src/core/llm/registry/llm-provider-registry.js +51 -0
- package/dist/src/core/llm/registry/llm-provider-registry.js.map +1 -0
- package/dist/src/core/llm/registry/provider-inference.d.ts +18 -0
- package/dist/src/core/llm/registry/provider-inference.d.ts.map +1 -0
- package/dist/src/core/llm/registry/provider-inference.js +41 -0
- package/dist/src/core/llm/registry/provider-inference.js.map +1 -0
- package/dist/src/core/llm/registry/types.d.ts +16 -0
- package/dist/src/core/llm/registry/types.d.ts.map +1 -0
- package/dist/src/core/llm/registry/types.js +2 -0
- package/dist/src/core/llm/registry/types.js.map +1 -0
- package/dist/src/core/llm/service.d.ts +15 -0
- package/dist/src/core/llm/service.d.ts.map +1 -0
- package/dist/src/core/llm/service.js +44 -0
- package/dist/src/core/llm/service.js.map +1 -0
- package/dist/src/core/llm/types.d.ts +18 -1
- package/dist/src/core/llm/types.d.ts.map +1 -1
- package/dist/src/core/memory/catalog.d.ts +22 -40
- package/dist/src/core/memory/catalog.d.ts.map +1 -1
- package/dist/src/core/memory/catalog.js +166 -155
- package/dist/src/core/memory/catalog.js.map +1 -1
- package/dist/src/core/memory/index.d.ts +14 -0
- package/dist/src/core/memory/index.d.ts.map +1 -0
- package/dist/src/core/memory/index.js +13 -0
- package/dist/src/core/memory/index.js.map +1 -0
- package/dist/src/core/memory/maintainer-prompt.d.ts +14 -0
- package/dist/src/core/memory/maintainer-prompt.d.ts.map +1 -0
- package/dist/src/core/memory/maintainer-prompt.js +58 -0
- package/dist/src/core/memory/maintainer-prompt.js.map +1 -0
- package/dist/src/core/memory/maintainer.d.ts +20 -44
- package/dist/src/core/memory/maintainer.d.ts.map +1 -1
- package/dist/src/core/memory/maintainer.js +124 -184
- package/dist/src/core/memory/maintainer.js.map +1 -1
- package/dist/src/core/memory/maintenance-integration.d.ts +22 -19
- package/dist/src/core/memory/maintenance-integration.d.ts.map +1 -1
- package/dist/src/core/memory/maintenance-integration.js +158 -163
- package/dist/src/core/memory/maintenance-integration.js.map +1 -1
- package/dist/src/core/memory/maintenance-repository.d.ts +27 -0
- package/dist/src/core/memory/maintenance-repository.d.ts.map +1 -0
- package/dist/src/core/memory/maintenance-repository.js +134 -0
- package/dist/src/core/memory/maintenance-repository.js.map +1 -0
- package/dist/src/core/memory/note-service.d.ts +23 -0
- package/dist/src/core/memory/note-service.d.ts.map +1 -0
- package/dist/src/core/memory/note-service.js +165 -0
- package/dist/src/core/memory/note-service.js.map +1 -0
- package/dist/src/core/memory/path-utils.d.ts +15 -0
- package/dist/src/core/memory/path-utils.d.ts.map +1 -0
- package/dist/src/core/memory/path-utils.js +31 -0
- package/dist/src/core/memory/path-utils.js.map +1 -0
- package/dist/src/core/memory/schemas.d.ts +116 -0
- package/dist/src/core/memory/schemas.d.ts.map +1 -0
- package/dist/src/core/memory/schemas.js +53 -0
- package/dist/src/core/memory/schemas.js.map +1 -0
- package/dist/src/core/memory/types.d.ts +149 -0
- package/dist/src/core/memory/types.d.ts.map +1 -0
- package/dist/src/core/memory/types.js +2 -0
- package/dist/src/core/memory/types.js.map +1 -0
- package/dist/src/core/memory/validation.d.ts +20 -38
- package/dist/src/core/memory/validation.d.ts.map +1 -1
- package/dist/src/core/memory/validation.js +98 -83
- package/dist/src/core/memory/validation.js.map +1 -1
- package/dist/src/core/memory/visibility.d.ts +19 -41
- package/dist/src/core/memory/visibility.d.ts.map +1 -1
- package/dist/src/core/memory/visibility.js +53 -153
- package/dist/src/core/memory/visibility.js.map +1 -1
- package/dist/src/core/observability/activity/conversation-activity-projector.d.ts +24 -0
- package/dist/src/core/observability/activity/conversation-activity-projector.d.ts.map +1 -0
- package/dist/src/core/observability/activity/conversation-activity-projector.js +146 -0
- package/dist/src/core/observability/activity/conversation-activity-projector.js.map +1 -0
- package/dist/src/core/observability/activity/index.d.ts +4 -0
- package/dist/src/core/observability/activity/index.d.ts.map +1 -0
- package/dist/src/core/observability/activity/index.js +3 -0
- package/dist/src/core/observability/activity/index.js.map +1 -0
- package/dist/src/core/observability/activity/tool-activity-summarizer.d.ts +15 -0
- package/dist/src/core/observability/activity/tool-activity-summarizer.d.ts.map +1 -0
- package/dist/src/core/observability/activity/tool-activity-summarizer.js +92 -0
- package/dist/src/core/observability/activity/tool-activity-summarizer.js.map +1 -0
- package/dist/src/core/observability/activity/types.d.ts +87 -0
- package/dist/src/core/observability/activity/types.d.ts.map +1 -0
- package/dist/src/core/observability/activity/types.js +2 -0
- package/dist/src/core/observability/activity/types.js.map +1 -0
- package/dist/src/core/observability/index.d.ts +6 -0
- package/dist/src/core/observability/index.d.ts.map +1 -0
- package/dist/src/core/observability/index.js +4 -0
- package/dist/src/core/observability/index.js.map +1 -0
- package/dist/src/core/observability/semantics/index.d.ts +2 -0
- package/dist/src/core/observability/semantics/index.d.ts.map +1 -0
- package/dist/src/core/observability/semantics/index.js +2 -0
- package/dist/src/core/observability/semantics/index.js.map +1 -0
- package/dist/src/core/observability/{semantic-conventions.d.ts → semantics/trace-semantics.d.ts} +1 -1
- package/dist/src/core/observability/semantics/trace-semantics.d.ts.map +1 -0
- package/dist/src/core/observability/{semantic-conventions.js → semantics/trace-semantics.js} +1 -1
- package/dist/src/core/observability/semantics/trace-semantics.js.map +1 -0
- package/dist/src/core/observability/summaries/default-trace-summarizers.d.ts +3 -0
- package/dist/src/core/observability/summaries/default-trace-summarizers.d.ts.map +1 -0
- package/dist/src/core/observability/summaries/default-trace-summarizers.js +29 -0
- package/dist/src/core/observability/summaries/default-trace-summarizers.js.map +1 -0
- package/dist/src/core/observability/summaries/index.d.ts +4 -0
- package/dist/src/core/observability/summaries/index.d.ts.map +1 -0
- package/dist/src/core/observability/summaries/index.js +3 -0
- package/dist/src/core/observability/summaries/index.js.map +1 -0
- package/dist/src/core/observability/summaries/trace-summary-service.d.ts +17 -0
- package/dist/src/core/observability/summaries/trace-summary-service.d.ts.map +1 -0
- package/dist/src/core/observability/summaries/trace-summary-service.js +32 -0
- package/dist/src/core/observability/summaries/trace-summary-service.js.map +1 -0
- package/dist/src/core/observability/summaries/types.d.ts +15 -0
- package/dist/src/core/observability/summaries/types.d.ts.map +1 -0
- package/dist/src/core/observability/summaries/types.js +2 -0
- package/dist/src/core/observability/summaries/types.js.map +1 -0
- package/dist/src/core/review/index.d.ts +3 -0
- package/dist/src/core/review/index.d.ts.map +1 -0
- package/dist/src/core/review/index.js +2 -0
- package/dist/src/core/review/index.js.map +1 -0
- package/dist/src/core/review/service.d.ts +22 -0
- package/dist/src/core/review/service.d.ts.map +1 -0
- package/dist/src/core/review/service.js +143 -0
- package/dist/src/core/review/service.js.map +1 -0
- package/dist/src/core/review/{diff-domain.d.ts → types.d.ts} +1 -3
- package/dist/src/core/review/types.d.ts.map +1 -0
- package/dist/src/core/review/types.js +2 -0
- package/dist/src/core/review/types.js.map +1 -0
- package/dist/src/core/runtime/credentials/service.d.ts +1 -1
- package/dist/src/core/runtime/credentials/service.d.ts.map +1 -1
- package/dist/src/core/runtime/credentials/service.js +8 -6
- package/dist/src/core/runtime/credentials/service.js.map +1 -1
- package/dist/src/core/runtime/loop/service.d.ts.map +1 -1
- package/dist/src/core/runtime/loop/service.js +14 -6
- package/dist/src/core/runtime/loop/service.js.map +1 -1
- package/dist/src/core/runtime/tools/service.js +2 -2
- package/dist/src/core/runtime/tools/service.js.map +1 -1
- package/dist/src/core/tools/execute-tool.d.ts +5 -4
- package/dist/src/core/tools/execute-tool.d.ts.map +1 -1
- package/dist/src/core/tools/execute-tool.js +23 -25
- package/dist/src/core/tools/execute-tool.js.map +1 -1
- package/dist/src/core/tools/index.d.ts +5 -0
- package/dist/src/core/tools/index.d.ts.map +1 -0
- package/dist/src/core/tools/index.js +4 -0
- package/dist/src/core/tools/index.js.map +1 -0
- package/dist/src/core/tools/registry.d.ts +8 -7
- package/dist/src/core/tools/registry.d.ts.map +1 -1
- package/dist/src/core/tools/registry.js +18 -21
- package/dist/src/core/tools/registry.js.map +1 -1
- package/dist/src/core/tools/toolkit.d.ts +9 -4
- package/dist/src/core/tools/toolkit.d.ts.map +1 -1
- package/dist/src/core/tools/toolkit.js +21 -16
- package/dist/src/core/tools/toolkit.js.map +1 -1
- package/dist/src/core/tools/toolkits/external-context/view-image.d.ts.map +1 -1
- package/dist/src/core/tools/toolkits/external-context/view-image.js +15 -9
- package/dist/src/core/tools/toolkits/external-context/view-image.js.map +1 -1
- package/dist/src/core/tools/toolkits/external-context/web-search.d.ts.map +1 -1
- package/dist/src/core/tools/toolkits/external-context/web-search.js +15 -9
- package/dist/src/core/tools/toolkits/external-context/web-search.js.map +1 -1
- package/dist/src/core/tools/toolkits/knowledge/memory-notes.d.ts +1 -1
- package/dist/src/core/tools/toolkits/knowledge/memory-notes.d.ts.map +1 -1
- package/dist/src/core/tools/toolkits/knowledge/memory-notes.js +48 -238
- package/dist/src/core/tools/toolkits/knowledge/memory-notes.js.map +1 -1
- package/dist/src/core/tools/toolkits/knowledge/record-knowledge.d.ts.map +1 -1
- package/dist/src/core/tools/toolkits/knowledge/record-knowledge.js +75 -105
- package/dist/src/core/tools/toolkits/knowledge/record-knowledge.js.map +1 -1
- package/dist/src/core/trace/format.d.ts +9 -3
- package/dist/src/core/trace/format.d.ts.map +1 -1
- package/dist/src/core/trace/format.js +106 -107
- package/dist/src/core/trace/format.js.map +1 -1
- package/dist/src/core/trace/index.d.ts +4 -0
- package/dist/src/core/trace/index.d.ts.map +1 -0
- package/dist/src/core/trace/index.js +3 -0
- package/dist/src/core/trace/index.js.map +1 -0
- package/dist/src/core/trace/recorder.d.ts +10 -7
- package/dist/src/core/trace/recorder.d.ts.map +1 -1
- package/dist/src/core/trace/recorder.js +15 -17
- package/dist/src/core/trace/recorder.js.map +1 -1
- package/dist/src/core/trace/types.d.ts +7 -0
- package/dist/src/core/trace/types.d.ts.map +1 -0
- package/dist/src/core/trace/types.js +2 -0
- package/dist/src/core/trace/types.js.map +1 -0
- package/dist/src/index.d.ts +23 -28
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +15 -15
- package/dist/src/index.js.map +1 -1
- package/dist/src/server/features/control-plane/controllers/ask.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/controllers/ask.js +10 -8
- package/dist/src/server/features/control-plane/controllers/ask.js.map +1 -1
- package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js +5 -5
- package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js.map +1 -1
- package/dist/src/server/features/control-plane/controllers/chat-turn-review-presenter.js +3 -3
- package/dist/src/server/features/control-plane/controllers/chat-turn-review-presenter.js.map +1 -1
- package/dist/src/server/features/control-plane/controllers/memory.d.ts +2 -1
- package/dist/src/server/features/control-plane/controllers/memory.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/controllers/memory.js +8 -7
- package/dist/src/server/features/control-plane/controllers/memory.js.map +1 -1
- package/dist/src/server/features/control-plane/controllers/workspace-diff.js +2 -2
- package/dist/src/server/features/control-plane/controllers/workspace-diff.js.map +1 -1
- package/dist/src/server/features/control-plane/router.d.ts +3 -3
- package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/router.js +5 -6
- package/dist/src/server/features/control-plane/router.js.map +1 -1
- package/dist/src/server/features/control-plane/types.d.ts +2 -2
- package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
- package/dist/src/server/router.d.ts +3 -3
- package/dist/src/web/assets/{MonacoDiffViewer-F3AOHIps.js → MonacoDiffViewer-D_Fh9ndN.js} +1 -1
- package/dist/src/web/assets/index-B1wQ0pS4.js +87 -0
- package/dist/src/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/src/core/llm/anthropic.d.ts +0 -7
- package/dist/src/core/llm/anthropic.d.ts.map +0 -1
- package/dist/src/core/llm/anthropic.js +0 -115
- package/dist/src/core/llm/anthropic.js.map +0 -1
- package/dist/src/core/llm/factory.d.ts +0 -14
- package/dist/src/core/llm/factory.d.ts.map +0 -1
- package/dist/src/core/llm/factory.js +0 -46
- package/dist/src/core/llm/factory.js.map +0 -1
- package/dist/src/core/llm/model-policy.d.ts +0 -63
- package/dist/src/core/llm/model-policy.d.ts.map +0 -1
- package/dist/src/core/llm/model-policy.js +0 -131
- package/dist/src/core/llm/model-policy.js.map +0 -1
- package/dist/src/core/llm/openai-models.d.ts +0 -17
- package/dist/src/core/llm/openai-models.d.ts.map +0 -1
- package/dist/src/core/llm/openai-models.js +0 -127
- package/dist/src/core/llm/openai-models.js.map +0 -1
- package/dist/src/core/llm/openai.d.ts +0 -31
- package/dist/src/core/llm/openai.d.ts.map +0 -1
- package/dist/src/core/llm/openai.js +0 -405
- package/dist/src/core/llm/openai.js.map +0 -1
- package/dist/src/core/llm/providers.d.ts +0 -3
- package/dist/src/core/llm/providers.d.ts.map +0 -1
- package/dist/src/core/llm/providers.js +0 -21
- package/dist/src/core/llm/providers.js.map +0 -1
- package/dist/src/core/observability/conversation-activity.d.ts +0 -116
- package/dist/src/core/observability/conversation-activity.d.ts.map +0 -1
- package/dist/src/core/observability/conversation-activity.js +0 -255
- package/dist/src/core/observability/conversation-activity.js.map +0 -1
- package/dist/src/core/observability/semantic-conventions.d.ts.map +0 -1
- package/dist/src/core/observability/semantic-conventions.js.map +0 -1
- package/dist/src/core/observability/trace-summarizers.d.ts +0 -23
- package/dist/src/core/observability/trace-summarizers.d.ts.map +0 -1
- package/dist/src/core/observability/trace-summarizers.js +0 -60
- package/dist/src/core/observability/trace-summarizers.js.map +0 -1
- package/dist/src/core/review/diff-domain.d.ts.map +0 -1
- package/dist/src/core/review/diff-domain.js +0 -134
- package/dist/src/core/review/diff-domain.js.map +0 -1
- package/dist/src/core/utils/budget.d.ts +0 -13
- package/dist/src/core/utils/budget.d.ts.map +0 -1
- package/dist/src/core/utils/budget.js +0 -22
- package/dist/src/core/utils/budget.js.map +0 -1
- package/dist/src/web/assets/index-D6aK1OFb.js +0 -81
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { ToolActivitySummarizer } from './tool-activity-summarizer.js';
|
|
2
|
+
/**
|
|
3
|
+
* Projects raw runtime, trace, and compaction events into host-agnostic
|
|
4
|
+
* conversation activities. Activities retain their source event and only add
|
|
5
|
+
* derived fields when this boundary performs real semantic work.
|
|
6
|
+
*/
|
|
7
|
+
export class ConversationActivityProjector {
|
|
8
|
+
static traceProjectors = {
|
|
9
|
+
'run.started': (event) => [ConversationActivityProjector.traceActivity(event)],
|
|
10
|
+
'assistant.turn': (event) => [ConversationActivityProjector.traceActivity(event)],
|
|
11
|
+
'host.warning': () => [],
|
|
12
|
+
'tool.approval_requested': (event) => [ConversationActivityProjector.traceActivity(event, {
|
|
13
|
+
kind: 'tool-summary',
|
|
14
|
+
summary: ToolActivitySummarizer.summarizeCall(event.call),
|
|
15
|
+
})],
|
|
16
|
+
'tool.approval_resolved': (event) => [ConversationActivityProjector.traceActivity(event, {
|
|
17
|
+
kind: 'tool-summary',
|
|
18
|
+
summary: ToolActivitySummarizer.summarizeCall(event.call),
|
|
19
|
+
})],
|
|
20
|
+
'tool.fallback': (event) => [ConversationActivityProjector.traceActivity(event, {
|
|
21
|
+
kind: 'tool-fallback-summary',
|
|
22
|
+
fromSummary: ToolActivitySummarizer.summarizeCall(event.fromCall),
|
|
23
|
+
toSummary: ToolActivitySummarizer.summarizeCall(event.toCall),
|
|
24
|
+
})],
|
|
25
|
+
'tool.call': (event) => [ConversationActivityProjector.traceActivity(event, {
|
|
26
|
+
kind: 'tool-summary',
|
|
27
|
+
summary: ToolActivitySummarizer.summarizeCall(event.call),
|
|
28
|
+
})],
|
|
29
|
+
'tool.result': (event) => [ConversationActivityProjector.traceActivity(event, {
|
|
30
|
+
kind: 'tool-summary',
|
|
31
|
+
summary: ToolActivitySummarizer.summarizeResult(event),
|
|
32
|
+
})],
|
|
33
|
+
'memory.candidate_recorded': (event) => [ConversationActivityProjector.traceActivity(event)],
|
|
34
|
+
'memory.checkpoint_skipped': () => [],
|
|
35
|
+
'memory.maintenance_started': (event) => [ConversationActivityProjector.traceActivity(event)],
|
|
36
|
+
'memory.maintenance_finished': (event) => [ConversationActivityProjector.traceActivity(event)],
|
|
37
|
+
'memory.maintenance_failed': (event) => [ConversationActivityProjector.traceActivity(event)],
|
|
38
|
+
'cyberloop.annotation': (event) => (event.driftLevel === 'unknown' ? [] : [ConversationActivityProjector.traceActivity(event, {
|
|
39
|
+
kind: 'cyberloop-metrics',
|
|
40
|
+
metrics: ConversationActivityProjector.formatCyberLoopMetrics(event.metadata),
|
|
41
|
+
})]),
|
|
42
|
+
'run.finished': (event) => [ConversationActivityProjector.traceActivity(event)],
|
|
43
|
+
};
|
|
44
|
+
static agentLoopProjectors = {
|
|
45
|
+
'loop.started': (event) => [ConversationActivityProjector.agentLoopActivity(event)],
|
|
46
|
+
'assistant.stream': (event) => [ConversationActivityProjector.agentLoopActivity(event)],
|
|
47
|
+
'tool.calling': (event) => [ConversationActivityProjector.agentLoopActivity(event, {
|
|
48
|
+
kind: 'tool-summary',
|
|
49
|
+
summary: ToolActivitySummarizer.summarizeCall(event),
|
|
50
|
+
})],
|
|
51
|
+
'tool.completed': (event) => [ConversationActivityProjector.agentLoopActivity(event)],
|
|
52
|
+
trace: (event) => ConversationActivityProjector.fromTraceEvent(event.event)
|
|
53
|
+
.map((activity) => activity.source === 'trace' ? {
|
|
54
|
+
...activity,
|
|
55
|
+
correlation: { ...activity.correlation, runId: event.runId },
|
|
56
|
+
} : activity),
|
|
57
|
+
'loop.finished': (event) => [ConversationActivityProjector.agentLoopActivity(event)],
|
|
58
|
+
};
|
|
59
|
+
static compactionProjectors = {
|
|
60
|
+
running: (event) => [{ source: 'compaction', type: 'compaction.running', event }],
|
|
61
|
+
finished: (event) => [{ source: 'compaction', type: 'compaction.finished', event }],
|
|
62
|
+
failed: (event) => [{ source: 'compaction', type: 'compaction.failed', event }],
|
|
63
|
+
};
|
|
64
|
+
static fromTraceEvent(event) {
|
|
65
|
+
const projector = ConversationActivityProjector.traceProjectors[event.type];
|
|
66
|
+
return projector(event);
|
|
67
|
+
}
|
|
68
|
+
static fromAgentLoopEvent(event) {
|
|
69
|
+
const projector = ConversationActivityProjector.agentLoopProjectors[event.type];
|
|
70
|
+
return projector?.(event) ?? [];
|
|
71
|
+
}
|
|
72
|
+
static fromCompactionStatus(event) {
|
|
73
|
+
const projector = ConversationActivityProjector.compactionProjectors[event.status];
|
|
74
|
+
return projector(event);
|
|
75
|
+
}
|
|
76
|
+
static applyHandler(args) {
|
|
77
|
+
const handler = args.handlers[args.activity.type];
|
|
78
|
+
return handler?.(args.activity, args.context);
|
|
79
|
+
}
|
|
80
|
+
static traceActivity(event, derived) {
|
|
81
|
+
return {
|
|
82
|
+
source: 'trace',
|
|
83
|
+
type: event.type,
|
|
84
|
+
event,
|
|
85
|
+
correlation: ConversationActivityProjector.traceCorrelation(event),
|
|
86
|
+
derived,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
static agentLoopActivity(event, derived) {
|
|
90
|
+
return {
|
|
91
|
+
source: 'agent-loop',
|
|
92
|
+
type: event.type,
|
|
93
|
+
event,
|
|
94
|
+
correlation: ConversationActivityProjector.agentLoopCorrelation(event),
|
|
95
|
+
derived,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
static traceCorrelation(event) {
|
|
99
|
+
const correlation = { timestamp: event.timestamp };
|
|
100
|
+
if ('runId' in event) {
|
|
101
|
+
correlation.runId = event.runId;
|
|
102
|
+
}
|
|
103
|
+
if ('step' in event) {
|
|
104
|
+
correlation.step = event.step;
|
|
105
|
+
}
|
|
106
|
+
return correlation;
|
|
107
|
+
}
|
|
108
|
+
static agentLoopCorrelation(event) {
|
|
109
|
+
const correlation = {
|
|
110
|
+
runId: event.runId,
|
|
111
|
+
timestamp: event.timestamp,
|
|
112
|
+
};
|
|
113
|
+
if ('step' in event) {
|
|
114
|
+
correlation.step = event.step;
|
|
115
|
+
}
|
|
116
|
+
return correlation;
|
|
117
|
+
}
|
|
118
|
+
static formatCyberLoopMetrics(metadata) {
|
|
119
|
+
const kinematics = metadata.kinematics;
|
|
120
|
+
if (!kinematics || typeof kinematics !== 'object' || Array.isArray(kinematics)) {
|
|
121
|
+
return '';
|
|
122
|
+
}
|
|
123
|
+
const snapshot = kinematics;
|
|
124
|
+
const parts = [];
|
|
125
|
+
if (typeof snapshot.errorMagnitude === 'number') {
|
|
126
|
+
parts.push(`err=${ConversationActivityProjector.formatMetric(snapshot.errorMagnitude)}`);
|
|
127
|
+
}
|
|
128
|
+
if (typeof snapshot.correctionMagnitude === 'number') {
|
|
129
|
+
parts.push(`corr=${ConversationActivityProjector.formatMetric(snapshot.correctionMagnitude)}`);
|
|
130
|
+
}
|
|
131
|
+
if (typeof snapshot.isStable === 'boolean') {
|
|
132
|
+
parts.push(`stable=${snapshot.isStable}`);
|
|
133
|
+
}
|
|
134
|
+
return parts.length ? ` (${parts.join(' ')})` : '';
|
|
135
|
+
}
|
|
136
|
+
static formatMetric(value) {
|
|
137
|
+
if (!Number.isFinite(value)) {
|
|
138
|
+
return String(value);
|
|
139
|
+
}
|
|
140
|
+
if (Math.abs(value) < 0.001 && value !== 0) {
|
|
141
|
+
return value.toExponential(2);
|
|
142
|
+
}
|
|
143
|
+
return value.toFixed(3);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=conversation-activity-projector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-activity-projector.js","sourceRoot":"","sources":["../../../../../src/core/observability/activity/conversation-activity-projector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ConversationActivityProjector } from './conversation-activity-projector.js';
|
|
2
|
+
export { ToolActivitySummarizer } from './tool-activity-summarizer.js';
|
|
3
|
+
export type { ApplyConversationActivityHandlerArgs, ConversationAgentLoopActivityEvent, ConversationActivity, ConversationActivityCorrelation, ConversationActivityDerived, ConversationActivityHandlerMap, ConversationActivityOf, ConversationCompactionStatus, ToolCallSummaryInput, ToolResultSummaryOptions, ToolSummaryOptions, } from './types.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/activity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EACV,oCAAoC,EACpC,kCAAkC,EAClC,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/observability/activity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ToolCallSummaryInput, ToolResultSummaryOptions, ToolSummaryOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Builds compact tool call/result labels for live activity and durable trace
|
|
4
|
+
* summaries. It owns presentation-safe summarization, not tool execution.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ToolActivitySummarizer {
|
|
7
|
+
static summarizeCall(call: ToolCallSummaryInput, options?: ToolSummaryOptions): string;
|
|
8
|
+
static summarizeResult(options: ToolResultSummaryOptions): string;
|
|
9
|
+
private static summarizeMoveInput;
|
|
10
|
+
private static summarizeSearchInput;
|
|
11
|
+
private static summarizePlanInput;
|
|
12
|
+
private static getPlanItemStep;
|
|
13
|
+
private static readStringField;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=tool-activity-summarizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-activity-summarizer.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/activity/tool-activity-summarizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIrG;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM;IAwB1F,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM;IAoBjE,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAWjC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAcnC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAgBjC,OAAO,CAAC,MAAM,CAAC,eAAe;IAS9B,OAAO,CAAC,MAAM,CAAC,eAAe;CAQ/B"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { truncate } from '../../../core/utils/text.js';
|
|
2
|
+
const DEFAULT_MAX_TOOL_SUMMARY_CHARS = 96;
|
|
3
|
+
/**
|
|
4
|
+
* Builds compact tool call/result labels for live activity and durable trace
|
|
5
|
+
* summaries. It owns presentation-safe summarization, not tool execution.
|
|
6
|
+
*/
|
|
7
|
+
export class ToolActivitySummarizer {
|
|
8
|
+
static summarizeCall(call, options = {}) {
|
|
9
|
+
const maxChars = options.maxChars ?? DEFAULT_MAX_TOOL_SUMMARY_CHARS;
|
|
10
|
+
if (call.tool === 'update_plan') {
|
|
11
|
+
return ToolActivitySummarizer.summarizePlanInput(call.tool, call.input, maxChars);
|
|
12
|
+
}
|
|
13
|
+
const command = ToolActivitySummarizer.readStringField(call.input, 'command');
|
|
14
|
+
if (command) {
|
|
15
|
+
return `${call.tool} (${truncate(command, maxChars)})`;
|
|
16
|
+
}
|
|
17
|
+
if (call.tool === 'search_files') {
|
|
18
|
+
return ToolActivitySummarizer.summarizeSearchInput(call.tool, call.input, maxChars);
|
|
19
|
+
}
|
|
20
|
+
const moveSummary = ToolActivitySummarizer.summarizeMoveInput(call.tool, call.input, maxChars);
|
|
21
|
+
if (moveSummary) {
|
|
22
|
+
return moveSummary;
|
|
23
|
+
}
|
|
24
|
+
const path = ToolActivitySummarizer.readStringField(call.input, 'path');
|
|
25
|
+
return path ? `${call.tool} (${truncate(path, maxChars)})` : call.tool;
|
|
26
|
+
}
|
|
27
|
+
static summarizeResult(options) {
|
|
28
|
+
const maxChars = options.maxChars ?? DEFAULT_MAX_TOOL_SUMMARY_CHARS;
|
|
29
|
+
const command = ToolActivitySummarizer.readStringField(options.result.output, 'command');
|
|
30
|
+
if (command) {
|
|
31
|
+
return `${options.tool} (${truncate(command, maxChars)})`;
|
|
32
|
+
}
|
|
33
|
+
const moveSummary = ToolActivitySummarizer.summarizeMoveInput(options.tool, options.result.output, maxChars);
|
|
34
|
+
if (moveSummary) {
|
|
35
|
+
return moveSummary;
|
|
36
|
+
}
|
|
37
|
+
const outputPath = ToolActivitySummarizer.readStringField(options.result.output, 'path');
|
|
38
|
+
if (outputPath) {
|
|
39
|
+
return `${options.tool} (${truncate(outputPath, maxChars)})`;
|
|
40
|
+
}
|
|
41
|
+
return options.tool;
|
|
42
|
+
}
|
|
43
|
+
static summarizeMoveInput(tool, input, maxChars) {
|
|
44
|
+
const from = ToolActivitySummarizer.readStringField(input, 'from');
|
|
45
|
+
const to = ToolActivitySummarizer.readStringField(input, 'to');
|
|
46
|
+
if (!from && !to) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const segmentChars = Math.max(12, Math.floor(maxChars / 2));
|
|
50
|
+
return `${tool} (${from ? truncate(from, segmentChars) : '?'} -> ${to ? truncate(to, segmentChars) : '?'})`;
|
|
51
|
+
}
|
|
52
|
+
static summarizeSearchInput(tool, input, maxChars) {
|
|
53
|
+
const query = ToolActivitySummarizer.readStringField(input, 'query');
|
|
54
|
+
if (!query) {
|
|
55
|
+
return tool;
|
|
56
|
+
}
|
|
57
|
+
const path = ToolActivitySummarizer.readStringField(input, 'path');
|
|
58
|
+
const segmentChars = Math.max(12, Math.floor(maxChars / 2));
|
|
59
|
+
const querySummary = truncate(JSON.stringify(query), segmentChars);
|
|
60
|
+
return path ?
|
|
61
|
+
`${tool} (${querySummary} in ${truncate(path, segmentChars)})`
|
|
62
|
+
: `${tool} (${querySummary})`;
|
|
63
|
+
}
|
|
64
|
+
static summarizePlanInput(tool, input, maxChars) {
|
|
65
|
+
if (!input || typeof input !== 'object' || Array.isArray(input)) {
|
|
66
|
+
return tool;
|
|
67
|
+
}
|
|
68
|
+
const plan = input.plan;
|
|
69
|
+
if (!Array.isArray(plan) || plan.length === 0) {
|
|
70
|
+
return tool;
|
|
71
|
+
}
|
|
72
|
+
const currentStep = plan
|
|
73
|
+
.map((item) => ToolActivitySummarizer.getPlanItemStep(item, 'in_progress'))
|
|
74
|
+
.find((step) => Boolean(step));
|
|
75
|
+
return currentStep ? `${tool} (${truncate(currentStep, maxChars)})` : `${tool} (${plan.length} items)`;
|
|
76
|
+
}
|
|
77
|
+
static getPlanItemStep(item, status) {
|
|
78
|
+
if (!item || typeof item !== 'object' || Array.isArray(item)) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
const candidate = item;
|
|
82
|
+
return candidate.status === status && typeof candidate.step === 'string' ? candidate.step : undefined;
|
|
83
|
+
}
|
|
84
|
+
static readStringField(value, field) {
|
|
85
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
const candidate = value[field];
|
|
89
|
+
return typeof candidate === 'string' && candidate.trim() ? candidate.trim() : undefined;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=tool-activity-summarizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-activity-summarizer.js","sourceRoot":"","sources":["../../../../../src/core/observability/activity/tool-activity-summarizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { AgentLoopEvent } from '../../../core/runtime/loop/index.js';
|
|
2
|
+
import type { ToolCall, ToolResult, TraceEvent } from '../../../core/types.js';
|
|
3
|
+
export type ConversationActivityCorrelation = {
|
|
4
|
+
runId?: string;
|
|
5
|
+
step?: number;
|
|
6
|
+
timestamp?: string;
|
|
7
|
+
};
|
|
8
|
+
export type ConversationCompactionStatus = {
|
|
9
|
+
status: 'running';
|
|
10
|
+
archivePath?: string;
|
|
11
|
+
} | {
|
|
12
|
+
status: 'finished';
|
|
13
|
+
summaryPath?: string;
|
|
14
|
+
} | {
|
|
15
|
+
status: 'failed';
|
|
16
|
+
error?: string;
|
|
17
|
+
};
|
|
18
|
+
export type ConversationToolSummary = {
|
|
19
|
+
kind: 'tool-summary';
|
|
20
|
+
summary: string;
|
|
21
|
+
};
|
|
22
|
+
export type ConversationToolFallbackSummary = {
|
|
23
|
+
kind: 'tool-fallback-summary';
|
|
24
|
+
fromSummary: string;
|
|
25
|
+
toSummary: string;
|
|
26
|
+
};
|
|
27
|
+
export type ConversationCyberLoopMetricsSummary = {
|
|
28
|
+
kind: 'cyberloop-metrics';
|
|
29
|
+
metrics: string;
|
|
30
|
+
};
|
|
31
|
+
export type ConversationActivityDerived = ConversationToolSummary | ConversationToolFallbackSummary | ConversationCyberLoopMetricsSummary;
|
|
32
|
+
type TraceActivity = {
|
|
33
|
+
[Type in TraceEvent['type']]: {
|
|
34
|
+
source: 'trace';
|
|
35
|
+
type: Type;
|
|
36
|
+
event: Extract<TraceEvent, {
|
|
37
|
+
type: Type;
|
|
38
|
+
}>;
|
|
39
|
+
correlation: ConversationActivityCorrelation;
|
|
40
|
+
derived?: ConversationActivityDerived;
|
|
41
|
+
};
|
|
42
|
+
}[TraceEvent['type']];
|
|
43
|
+
export type ConversationAgentLoopActivityEvent = Exclude<AgentLoopEvent, {
|
|
44
|
+
type: 'trace' | 'checkpoint.saved' | 'loop.resumed';
|
|
45
|
+
}>;
|
|
46
|
+
type AgentLoopActivity = {
|
|
47
|
+
[Type in ConversationAgentLoopActivityEvent['type']]: {
|
|
48
|
+
source: 'agent-loop';
|
|
49
|
+
type: Type;
|
|
50
|
+
event: Extract<ConversationAgentLoopActivityEvent, {
|
|
51
|
+
type: Type;
|
|
52
|
+
}>;
|
|
53
|
+
correlation: ConversationActivityCorrelation;
|
|
54
|
+
derived?: ConversationActivityDerived;
|
|
55
|
+
};
|
|
56
|
+
}[ConversationAgentLoopActivityEvent['type']];
|
|
57
|
+
type CompactionActivity = {
|
|
58
|
+
[Status in ConversationCompactionStatus['status']]: {
|
|
59
|
+
source: 'compaction';
|
|
60
|
+
type: `compaction.${Status}`;
|
|
61
|
+
event: Extract<ConversationCompactionStatus, {
|
|
62
|
+
status: Status;
|
|
63
|
+
}>;
|
|
64
|
+
};
|
|
65
|
+
}[ConversationCompactionStatus['status']];
|
|
66
|
+
export type ConversationActivity = TraceActivity | AgentLoopActivity | CompactionActivity;
|
|
67
|
+
export type ConversationActivityOf<Type extends ConversationActivity['type']> = Extract<ConversationActivity, {
|
|
68
|
+
type: Type;
|
|
69
|
+
}>;
|
|
70
|
+
export type ConversationActivityHandlerMap<Context, Result = void> = {
|
|
71
|
+
[Type in ConversationActivity['type']]?: (activity: ConversationActivityOf<Type>, context: Context) => Result;
|
|
72
|
+
};
|
|
73
|
+
export type ApplyConversationActivityHandlerArgs<Context, Result = void> = {
|
|
74
|
+
activity: ConversationActivity;
|
|
75
|
+
handlers: ConversationActivityHandlerMap<Context, Result>;
|
|
76
|
+
context: Context;
|
|
77
|
+
};
|
|
78
|
+
export type ToolSummaryOptions = {
|
|
79
|
+
maxChars?: number;
|
|
80
|
+
};
|
|
81
|
+
export type ToolResultSummaryOptions = ToolSummaryOptions & {
|
|
82
|
+
tool: string;
|
|
83
|
+
result: ToolResult;
|
|
84
|
+
};
|
|
85
|
+
export type ToolCallSummaryInput = Pick<ToolCall, 'tool' | 'input'>;
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/activity/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/observability/activity/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ConversationActivityProjector, ToolActivitySummarizer } from './activity/index.js';
|
|
2
|
+
export type { ApplyConversationActivityHandlerArgs, ConversationAgentLoopActivityEvent, ConversationActivity, ConversationActivityCorrelation, ConversationActivityDerived, ConversationActivityHandlerMap, ConversationActivityOf, ConversationCompactionStatus, ToolCallSummaryInput, ToolResultSummaryOptions, ToolSummaryOptions, } from './activity/index.js';
|
|
3
|
+
export { DEFAULT_TRACE_SUMMARIZERS, TraceSummaryService } from './summaries/index.js';
|
|
4
|
+
export type { TraceEventOfType, TraceEventType, TraceSummarizer, TraceSummarizerMap, TraceSummaryContext, TraceSummaryValue, } from './summaries/index.js';
|
|
5
|
+
export { TRACE_CORRELATION_FIELDS, TRACE_EVENT_DOMAINS, TRACE_EVENT_TYPES, } from './semantics/index.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,YAAY,EACV,oCAAoC,EACpC,kCAAkC,EAClC,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ConversationActivityProjector, ToolActivitySummarizer } from './activity/index.js';
|
|
2
|
+
export { DEFAULT_TRACE_SUMMARIZERS, TraceSummaryService } from './summaries/index.js';
|
|
3
|
+
export { TRACE_CORRELATION_FIELDS, TRACE_EVENT_DOMAINS, TRACE_EVENT_TYPES, } from './semantics/index.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAc5F,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAStF,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/semantics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/observability/semantics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-semantics.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/semantics/trace-semantics.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;CAOtB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAgByB,CAAC;AAExD,eAAO,MAAM,wBAAwB;;;;;;CAM3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-semantics.js","sourceRoot":"","sources":["../../../../../src/core/observability/semantics/trace-semantics.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;IAC3B,aAAa,EAAE,gBAAgB;IAC/B,WAAW,EAAE,cAAc;IAC3B,qBAAqB,EAAE,yBAAyB;IAChD,oBAAoB,EAAE,wBAAwB;IAC9C,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,aAAa;IACzB,uBAAuB,EAAE,2BAA2B;IACpD,uBAAuB,EAAE,2BAA2B;IACpD,wBAAwB,EAAE,4BAA4B;IACtD,yBAAyB,EAAE,6BAA6B;IACxD,uBAAuB,EAAE,2BAA2B;IACpD,mBAAmB,EAAE,sBAAsB;CACU,CAAC;AAExD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;CACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-trace-summarizers.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/default-trace-summarizers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,eAAO,MAAM,yBAAyB,EAAE,kBAyBvC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { truncate } from '../../../core/utils/text.js';
|
|
2
|
+
import { ToolActivitySummarizer } from '../activity/index.js';
|
|
3
|
+
export const DEFAULT_TRACE_SUMMARIZERS = {
|
|
4
|
+
'run.started': () => undefined,
|
|
5
|
+
'assistant.turn': (event) => [
|
|
6
|
+
...(event.diagnostics?.rationale ? [`reasoning: ${truncate(event.diagnostics.rationale, 140)}`] : []),
|
|
7
|
+
event.requestedTools ?
|
|
8
|
+
`assistant requested ${event.toolCalls?.map((call) => ToolActivitySummarizer.summarizeCall(call)).join(', ')}`
|
|
9
|
+
: 'assistant answered',
|
|
10
|
+
],
|
|
11
|
+
'host.warning': (event) => [`host warning ${event.code}: ${truncate(event.message, 140)}`],
|
|
12
|
+
'tool.approval_requested': (event) => [`approval requested for ${ToolActivitySummarizer.summarizeCall(event.call)}`],
|
|
13
|
+
'tool.approval_resolved': (event) => [
|
|
14
|
+
`approval ${event.approved ? 'granted' : 'denied'} for ${ToolActivitySummarizer.summarizeCall(event.call)}${event.reason ? ` (${truncate(event.reason, 80)})` : ''}`,
|
|
15
|
+
],
|
|
16
|
+
'tool.fallback': (event) => [
|
|
17
|
+
`fallback ${ToolActivitySummarizer.summarizeCall(event.fromCall)} -> ${ToolActivitySummarizer.summarizeCall(event.toCall)} (${event.reason})`,
|
|
18
|
+
],
|
|
19
|
+
'tool.call': (event) => [`tool call ${ToolActivitySummarizer.summarizeCall(event.call)}`],
|
|
20
|
+
'tool.result': (event) => [`tool result ${event.tool}: ${event.result.ok ? 'ok' : event.result.error ?? 'error'}`],
|
|
21
|
+
'memory.candidate_recorded': (event) => [`memory candidate recorded: ${event.candidateId}`],
|
|
22
|
+
'memory.checkpoint_skipped': (event) => [`memory checkpoint skipped: ${truncate(event.rationale, 100)}`],
|
|
23
|
+
'memory.maintenance_started': (event) => [`memory maintenance started: ${event.candidateIds.join(', ')}`],
|
|
24
|
+
'memory.maintenance_finished': (event) => [`memory maintenance finished: ${event.outcome}`],
|
|
25
|
+
'memory.maintenance_failed': (event) => [`memory maintenance failed: ${event.error}`],
|
|
26
|
+
'cyberloop.annotation': () => undefined,
|
|
27
|
+
'run.finished': (event) => [`run finished: ${event.outcome}`],
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=default-trace-summarizers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-trace-summarizers.js","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/default-trace-summarizers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { DEFAULT_TRACE_SUMMARIZERS } from './default-trace-summarizers.js';
|
|
2
|
+
export { TraceSummaryService } from './trace-summary-service.js';
|
|
3
|
+
export type { TraceEventOfType, TraceEventType, TraceSummarizer, TraceSummarizerMap, TraceSummaryContext, TraceSummaryValue, } from './types.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TraceEvent } from '../../../core/types.js';
|
|
2
|
+
import type { TraceSummarizerMap, TraceSummaryContext } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Summarizes trace events into durable evidence strings for turn/session
|
|
5
|
+
* records. It owns event summarization policy, not live host status rendering.
|
|
6
|
+
*/
|
|
7
|
+
export declare class TraceSummaryService {
|
|
8
|
+
private static readonly defaultService;
|
|
9
|
+
private readonly summarizers;
|
|
10
|
+
constructor(summarizers?: TraceSummarizerMap);
|
|
11
|
+
static default(): TraceSummaryService;
|
|
12
|
+
summarizeEvent(event: TraceEvent, context: TraceSummaryContext): string[];
|
|
13
|
+
summarizeTrace(trace: TraceEvent[]): string[];
|
|
14
|
+
countAssistantSteps(trace: TraceEvent[]): number;
|
|
15
|
+
private static normalizeSummary;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=trace-summary-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-summary-service.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/trace-summary-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAqB,MAAM,YAAY,CAAC;AAE7F;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAEnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,WAAW,GAAE,kBAAuB;IAIhD,MAAM,CAAC,OAAO,IAAI,mBAAmB;IAIrC,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE;IAKzE,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE;IAI7C,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM;IAIhD,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAOhC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { DEFAULT_TRACE_SUMMARIZERS } from './default-trace-summarizers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Summarizes trace events into durable evidence strings for turn/session
|
|
4
|
+
* records. It owns event summarization policy, not live host status rendering.
|
|
5
|
+
*/
|
|
6
|
+
export class TraceSummaryService {
|
|
7
|
+
static defaultService = new TraceSummaryService();
|
|
8
|
+
summarizers;
|
|
9
|
+
constructor(summarizers = {}) {
|
|
10
|
+
this.summarizers = { ...DEFAULT_TRACE_SUMMARIZERS, ...summarizers };
|
|
11
|
+
}
|
|
12
|
+
static default() {
|
|
13
|
+
return TraceSummaryService.defaultService;
|
|
14
|
+
}
|
|
15
|
+
summarizeEvent(event, context) {
|
|
16
|
+
const handler = this.summarizers[event.type];
|
|
17
|
+
return TraceSummaryService.normalizeSummary(handler?.(event, context));
|
|
18
|
+
}
|
|
19
|
+
summarizeTrace(trace) {
|
|
20
|
+
return trace.flatMap((event, index) => this.summarizeEvent(event, { trace, index }));
|
|
21
|
+
}
|
|
22
|
+
countAssistantSteps(trace) {
|
|
23
|
+
return trace.filter((event) => event.type === 'assistant.turn').length;
|
|
24
|
+
}
|
|
25
|
+
static normalizeSummary(summary) {
|
|
26
|
+
if (Array.isArray(summary)) {
|
|
27
|
+
return summary;
|
|
28
|
+
}
|
|
29
|
+
return summary ? [summary] : [];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=trace-summary-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-summary-service.js","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/trace-summary-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAU,cAAc,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAElD,WAAW,CAAqB;IAEjD,YAAY,cAAkC,EAAE;QAC9C,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,WAAW,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,mBAAmB,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,KAAiB,EAAE,OAA4B;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAyF,CAAC;QACrI,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,cAAc,CAAC,KAAmB;QAChC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,mBAAmB,CAAC,KAAmB;QACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,MAAM,CAAC;IACzE,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,OAA0B;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TraceEvent } from '../../../core/types.js';
|
|
2
|
+
export type TraceEventType = TraceEvent['type'];
|
|
3
|
+
export type TraceSummaryContext = {
|
|
4
|
+
trace: TraceEvent[];
|
|
5
|
+
index: number;
|
|
6
|
+
};
|
|
7
|
+
export type TraceEventOfType<Type extends TraceEventType> = Extract<TraceEvent, {
|
|
8
|
+
type: Type;
|
|
9
|
+
}>;
|
|
10
|
+
export type TraceSummaryValue = string | string[] | undefined;
|
|
11
|
+
export type TraceSummarizer<Type extends TraceEventType = TraceEventType> = (event: TraceEventOfType<Type>, context: TraceSummaryContext) => TraceSummaryValue;
|
|
12
|
+
export type TraceSummarizerMap = {
|
|
13
|
+
[Type in TraceEventType]?: TraceSummarizer<Type>;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,IAAI,SAAS,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AAEhG,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAE9D,MAAM,MAAM,eAAe,CAAC,IAAI,SAAS,cAAc,GAAG,cAAc,IAAI,CAC1E,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAC7B,OAAO,EAAE,mBAAmB,KACzB,iBAAiB,CAAC;AAEvB,MAAM,MAAM,kBAAkB,GAAG;KAC9B,IAAI,IAAI,cAAc,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;CACjD,CAAC"}
|