@codemieai/code 0.15.5 → 0.15.7
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/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +3 -0
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts +4 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +15 -0
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/session/SessionStore.d.ts +6 -0
- package/dist/agents/core/session/SessionStore.d.ts.map +1 -1
- package/dist/agents/core/session/SessionStore.js +38 -0
- package/dist/agents/core/session/SessionStore.js.map +1 -1
- package/dist/agents/core/session/types.d.ts +2 -0
- package/dist/agents/core/session/types.d.ts.map +1 -1
- package/dist/agents/core/types.d.ts +10 -0
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/core/types.js +5 -1
- package/dist/agents/core/types.js.map +1 -1
- package/dist/agents/plugins/claude/claude.models.d.ts +19 -3
- package/dist/agents/plugins/claude/claude.models.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.models.js +116 -64
- package/dist/agents/plugins/claude/claude.models.js.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.js +25 -4
- package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/agents/plugins/claude/plugin/skills/codemie-assistant-builder/SKILL.md +177 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-assistant-builder/agents/grader.md +38 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-assistant-builder/agents/improver.md +40 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/SKILL.md +10 -1
- package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/assistants.md +23 -0
- package/dist/agents/plugins/claude/plugin/statusline.bundle.mjs +57 -21
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +13 -0
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +27 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts +6 -0
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +21 -0
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
- package/dist/agents/plugins/claude/session/processors/messages-before.d.ts +11 -0
- package/dist/agents/plugins/claude/session/processors/messages-before.d.ts.map +1 -0
- package/dist/agents/plugins/claude/session/processors/messages-before.js +15 -0
- package/dist/agents/plugins/claude/session/processors/messages-before.js.map +1 -0
- package/dist/agents/plugins/claude/statusline-installer.d.ts +9 -0
- package/dist/agents/plugins/claude/statusline-installer.d.ts.map +1 -1
- package/dist/agents/plugins/claude/statusline-installer.js +42 -27
- package/dist/agents/plugins/claude/statusline-installer.js.map +1 -1
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.d.ts +3 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.d.ts.map +1 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.js +3 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.js.map +1 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.d.ts +11 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.d.ts.map +1 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.js +65 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.js.map +1 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.d.ts +63 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.d.ts.map +1 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.js +13 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.js.map +1 -0
- package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +6 -4
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/agents/plugins/codex/codex-models.d.ts.map +1 -1
- package/dist/agents/plugins/codex/codex-models.js +9 -6
- package/dist/agents/plugins/codex/codex-models.js.map +1 -1
- package/dist/agents/plugins/codex/codex.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codex/codex.plugin.js +2 -1
- package/dist/agents/plugins/codex/codex.plugin.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode-dynamic-models.d.ts +3 -2
- package/dist/agents/plugins/opencode/opencode-dynamic-models.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode-dynamic-models.js +14 -6
- package/dist/agents/plugins/opencode/opencode-dynamic-models.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode.plugin.js +6 -4
- package/dist/agents/plugins/opencode/opencode.plugin.js.map +1 -1
- package/dist/agents/plugins/utils.d.ts +11 -0
- package/dist/agents/plugins/utils.d.ts.map +1 -0
- package/dist/agents/plugins/utils.js +46 -0
- package/dist/agents/plugins/utils.js.map +1 -0
- package/dist/agents/registry.d.ts +3 -1
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +12 -0
- package/dist/agents/registry.js.map +1 -1
- package/dist/bin/proxy-daemon.js +4 -0
- package/dist/bin/proxy-daemon.js.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/selection.d.ts +3 -1
- package/dist/cli/commands/assistants/setup/configuration/selection.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/selection.js +6 -3
- package/dist/cli/commands/assistants/setup/configuration/selection.js.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/types.d.ts +2 -0
- package/dist/cli/commands/assistants/setup/configuration/types.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/ui.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/ui.js +3 -0
- package/dist/cli/commands/assistants/setup/configuration/ui.js.map +1 -1
- package/dist/cli/commands/assistants/setup/data.d.ts +6 -2
- package/dist/cli/commands/assistants/setup/data.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/data.js +23 -8
- package/dist/cli/commands/assistants/setup/data.js.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.d.ts +1 -0
- package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.js +11 -0
- package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
- package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/index.js +24 -6
- package/dist/cli/commands/assistants/setup/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts +2 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.js +5 -3
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts +2 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js +3 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js.map +1 -1
- package/dist/cli/commands/hook.d.ts.map +1 -1
- package/dist/cli/commands/hook.js +24 -29
- package/dist/cli/commands/hook.js.map +1 -1
- package/dist/cli/commands/proxy/connect-orchestrator.d.ts +8 -1
- package/dist/cli/commands/proxy/connect-orchestrator.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connect-orchestrator.js +65 -4
- package/dist/cli/commands/proxy/connect-orchestrator.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/claude-code-otlp.d.ts +33 -0
- package/dist/cli/commands/proxy/connectors/claude-code-otlp.d.ts.map +1 -0
- package/dist/cli/commands/proxy/connectors/claude-code-otlp.js +299 -0
- package/dist/cli/commands/proxy/connectors/claude-code-otlp.js.map +1 -0
- package/dist/cli/commands/proxy/connectors/managed-mcp-remote.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connectors/managed-mcp-remote.js +5 -6
- package/dist/cli/commands/proxy/connectors/managed-mcp-remote.js.map +1 -1
- package/dist/cli/commands/proxy/disconnect-orchestrator.d.ts +2 -0
- package/dist/cli/commands/proxy/disconnect-orchestrator.d.ts.map +1 -1
- package/dist/cli/commands/proxy/disconnect-orchestrator.js +34 -5
- package/dist/cli/commands/proxy/disconnect-orchestrator.js.map +1 -1
- package/dist/cli/commands/proxy/index.d.ts.map +1 -1
- package/dist/cli/commands/proxy/index.js +19 -2
- package/dist/cli/commands/proxy/index.js.map +1 -1
- package/dist/cli/commands/sdk/assistant-builder/checks.d.ts +4 -0
- package/dist/cli/commands/sdk/assistant-builder/checks.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/checks.js +32 -0
- package/dist/cli/commands/sdk/assistant-builder/checks.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/commands.d.ts +6 -0
- package/dist/cli/commands/sdk/assistant-builder/commands.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/commands.js +278 -0
- package/dist/cli/commands/sdk/assistant-builder/commands.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/conversations.d.ts +26 -0
- package/dist/cli/commands/sdk/assistant-builder/conversations.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/conversations.js +45 -0
- package/dist/cli/commands/sdk/assistant-builder/conversations.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/normalize.d.ts +11 -0
- package/dist/cli/commands/sdk/assistant-builder/normalize.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/normalize.js +43 -0
- package/dist/cli/commands/sdk/assistant-builder/normalize.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/output.d.ts +10 -0
- package/dist/cli/commands/sdk/assistant-builder/output.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/output.js +29 -0
- package/dist/cli/commands/sdk/assistant-builder/output.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/report/compare.d.ts +23 -0
- package/dist/cli/commands/sdk/assistant-builder/report/compare.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/report/compare.js +66 -0
- package/dist/cli/commands/sdk/assistant-builder/report/compare.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/report/html.d.ts +9 -0
- package/dist/cli/commands/sdk/assistant-builder/report/html.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/report/html.js +87 -0
- package/dist/cli/commands/sdk/assistant-builder/report/html.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/report/summary.d.ts +31 -0
- package/dist/cli/commands/sdk/assistant-builder/report/summary.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/report/summary.js +56 -0
- package/dist/cli/commands/sdk/assistant-builder/report/summary.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/report/workspace.d.ts +19 -0
- package/dist/cli/commands/sdk/assistant-builder/report/workspace.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/report/workspace.js +112 -0
- package/dist/cli/commands/sdk/assistant-builder/report/workspace.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/runner.d.ts +32 -0
- package/dist/cli/commands/sdk/assistant-builder/runner.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/runner.js +109 -0
- package/dist/cli/commands/sdk/assistant-builder/runner.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/scenarios.d.ts +5 -0
- package/dist/cli/commands/sdk/assistant-builder/scenarios.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/scenarios.js +66 -0
- package/dist/cli/commands/sdk/assistant-builder/scenarios.js.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/types.d.ts +70 -0
- package/dist/cli/commands/sdk/assistant-builder/types.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistant-builder/types.js +2 -0
- package/dist/cli/commands/sdk/assistant-builder/types.js.map +1 -0
- package/dist/cli/commands/sdk/assistants.d.ts.map +1 -1
- package/dist/cli/commands/sdk/assistants.js +2 -0
- package/dist/cli/commands/sdk/assistants.js.map +1 -1
- package/dist/cli/commands/sdk/services/assistants.d.ts +20 -1
- package/dist/cli/commands/sdk/services/assistants.d.ts.map +1 -1
- package/dist/cli/commands/sdk/services/assistants.js +80 -2
- package/dist/cli/commands/sdk/services/assistants.js.map +1 -1
- package/dist/cli/commands/sdk/utils/cli-utils.js +1 -1
- package/dist/cli/commands/sdk/utils/cli-utils.js.map +1 -1
- package/dist/cli/commands/self-update.d.ts.map +1 -1
- package/dist/cli/commands/self-update.js +5 -1
- package/dist/cli/commands/self-update.js.map +1 -1
- package/dist/cli/commands/shared/constants.d.ts +3 -0
- package/dist/cli/commands/shared/constants.d.ts.map +1 -1
- package/dist/cli/commands/shared/constants.js +3 -0
- package/dist/cli/commands/shared/constants.js.map +1 -1
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts +3 -1
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts.map +1 -1
- package/dist/cli/commands/shared/prompts/storage-scope.js +5 -1
- package/dist/cli/commands/shared/prompts/storage-scope.js.map +1 -1
- package/dist/cli/commands/skills/setup/data.d.ts +5 -1
- package/dist/cli/commands/skills/setup/data.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/data.js +17 -8
- package/dist/cli/commands/skills/setup/data.js.map +1 -1
- package/dist/cli/commands/skills/setup/helpers.d.ts +1 -0
- package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/helpers.js +11 -0
- package/dist/cli/commands/skills/setup/helpers.js.map +1 -1
- package/dist/cli/commands/skills/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/index.js +7 -2
- package/dist/cli/commands/skills/setup/index.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/mcp/stdio-http-bridge.d.ts.map +1 -1
- package/dist/mcp/stdio-http-bridge.js +4 -0
- package/dist/mcp/stdio-http-bridge.js.map +1 -1
- package/dist/providers/core/base/http-client.d.ts.map +1 -1
- package/dist/providers/core/base/http-client.js +16 -3
- package/dist/providers/core/base/http-client.js.map +1 -1
- package/dist/providers/core/codemie-auth-helpers.d.ts.map +1 -1
- package/dist/providers/core/codemie-auth-helpers.js +2 -1
- package/dist/providers/core/codemie-auth-helpers.js.map +1 -1
- package/dist/providers/core/types.d.ts +3 -0
- package/dist/providers/core/types.d.ts.map +1 -1
- package/dist/providers/core/types.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js +2 -0
- package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.d.ts +3 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.js +19 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.d.ts +19 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.js +33 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.d.ts +14 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.js +287 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.d.ts +8 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.js +29 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.d.ts +40 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.js +82 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.d.ts +36 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.js +62 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.d.ts +39 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.js +110 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.d.ts +24 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.js +53 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.d.ts +39 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.js +61 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.d.ts +20 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.js +73 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.d.ts +12 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.js +55 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.d.ts +14 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.js +221 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +1 -4
- package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/proxy-http-client.js +10 -207
- package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.js +2 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
- package/dist/providers/plugins/sso/sso.auth-gate.d.ts +18 -0
- package/dist/providers/plugins/sso/sso.auth-gate.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.auth-gate.js +48 -0
- package/dist/providers/plugins/sso/sso.auth-gate.js.map +1 -0
- package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.auth.js +14 -4
- package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.d.ts +17 -0
- package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.js +33 -5
- package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.d.ts +3 -0
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.d.ts.map +1 -1
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js +43 -2
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js +12 -10
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js.map +1 -1
- package/dist/telemetry/runtime/DesktopRepositoryResolver.d.ts.map +1 -1
- package/dist/telemetry/runtime/DesktopRepositoryResolver.js +33 -6
- package/dist/telemetry/runtime/DesktopRepositoryResolver.js.map +1 -1
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts +2 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts.map +1 -1
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.js +61 -10
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.js.map +1 -1
- package/dist/telemetry/runtime/checkpoints.d.ts +6 -0
- package/dist/telemetry/runtime/checkpoints.d.ts.map +1 -1
- package/dist/telemetry/runtime/checkpoints.js.map +1 -1
- package/dist/telemetry/runtime/types.d.ts +5 -0
- package/dist/telemetry/runtime/types.d.ts.map +1 -1
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +4 -0
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/cli-updater.d.ts +7 -0
- package/dist/utils/cli-updater.d.ts.map +1 -1
- package/dist/utils/cli-updater.js +21 -0
- package/dist/utils/cli-updater.js.map +1 -1
- package/dist/utils/paths.d.ts +1 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +1 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/pricing.json +9 -1
- package/dist/utils/processes.d.ts.map +1 -1
- package/dist/utils/processes.js +3 -2
- package/dist/utils/processes.js.map +1 -1
- package/dist/utils/project-root.d.ts +10 -0
- package/dist/utils/project-root.d.ts.map +1 -0
- package/dist/utils/project-root.js +25 -0
- package/dist/utils/project-root.js.map +1 -0
- package/dist/utils/sdk-client.d.ts.map +1 -1
- package/dist/utils/sdk-client.js +4 -0
- package/dist/utils/sdk-client.js.map +1 -1
- package/dist/utils/system-proxy-dispatcher.d.ts +8 -0
- package/dist/utils/system-proxy-dispatcher.d.ts.map +1 -0
- package/dist/utils/system-proxy-dispatcher.js +100 -0
- package/dist/utils/system-proxy-dispatcher.js.map +1 -0
- package/dist/utils/system-proxy.d.ts +115 -0
- package/dist/utils/system-proxy.d.ts.map +1 -0
- package/dist/utils/system-proxy.js +899 -0
- package/dist/utils/system-proxy.js.map +1 -0
- package/dist/utils/windows-path.d.ts +5 -0
- package/dist/utils/windows-path.d.ts.map +1 -1
- package/dist/utils/windows-path.js +1 -1
- package/dist/utils/windows-path.js.map +1 -1
- package/package.json +5 -2
- package/scripts/bundle-statusline.mjs +14 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,wBAAgB,YAAY,CAC1B,YAAY,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACxD,OAAO,EAAE,OAAO,GACf,UAAU,CAUZ;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAElE;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC,CAoB9C;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,EAAE,CAAC,CASvB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { thoughtsToToolCalls } from "./normalize.js";
|
|
2
|
+
export function toTranscript(conversation, history) {
|
|
3
|
+
const items = Array.isArray(history) ? history : [];
|
|
4
|
+
const turns = items
|
|
5
|
+
.filter((item) => !!item && typeof item === "object")
|
|
6
|
+
.map((item) => ({
|
|
7
|
+
role: String(item.role ?? ""),
|
|
8
|
+
message: String(item.message ?? ""),
|
|
9
|
+
tool_calls: thoughtsToToolCalls(item.thoughts),
|
|
10
|
+
}));
|
|
11
|
+
return { id: conversation.id, date: conversation.date, name: conversation.name, turns };
|
|
12
|
+
}
|
|
13
|
+
const UUID = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;
|
|
14
|
+
export function extractConversationId(value) {
|
|
15
|
+
return UUID.exec(value)?.[0] ?? null;
|
|
16
|
+
}
|
|
17
|
+
export async function loadTranscriptsByIds(client, idsOrLinks) {
|
|
18
|
+
const out = [];
|
|
19
|
+
for (const value of idsOrLinks) {
|
|
20
|
+
const id = extractConversationId(value);
|
|
21
|
+
if (!id) {
|
|
22
|
+
out.push({ id: value, error: "No conversation ID found" });
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const details = (await client.conversations.get(id));
|
|
27
|
+
out.push(toTranscript({ id, date: details.date ?? "", name: details.conversation_name ?? "" }, details.history));
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
out.push({ id, error: error instanceof Error ? error.message : String(error) });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
35
|
+
export async function loadTranscripts(client, assistantId, limit) {
|
|
36
|
+
const conversations = await client.conversations.listByAssistantId(assistantId);
|
|
37
|
+
const newest = [...conversations].sort((a, b) => b.date.localeCompare(a.date)).slice(0, limit);
|
|
38
|
+
const transcripts = [];
|
|
39
|
+
for (const conversation of newest) {
|
|
40
|
+
const details = await client.conversations.get(conversation.id);
|
|
41
|
+
transcripts.push(toTranscript(conversation, details.history));
|
|
42
|
+
}
|
|
43
|
+
return transcripts;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=conversations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/conversations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAgBrD,MAAM,UAAU,YAAY,CAC1B,YAAwD,EACxD,OAAgB;IAEhB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK;SAChB,MAAM,CAAC,CAAC,IAAI,EAAmC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;SACrF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACnC,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC/C,CAAC,CAAC,CAAC;IACN,OAAO,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAC1F,CAAC;AAOD,MAAM,IAAI,GAAG,+DAA+D,CAAC;AAE7E,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAqB,EACrB,UAAoB;IAEpB,MAAM,GAAG,GAAwC,EAAE,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAIlD,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACnH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAqB,EACrB,WAAmB,EACnB,KAAa;IAEb,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/F,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,KAAK,MAAM,YAAY,IAAI,MAAM,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAChE,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAG,OAAiC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ToolCall } from "./types.js";
|
|
2
|
+
export declare const EXCERPT_LIMIT = 500;
|
|
3
|
+
export declare function truncate(value: string, max?: number): string;
|
|
4
|
+
/**
|
|
5
|
+
* Tool invocations appear in `thoughts` with author_type "Tool" and the tool's display name
|
|
6
|
+
* (e.g. "Get Project Dna" for MCP tool get_project_dna).
|
|
7
|
+
*/
|
|
8
|
+
export declare function isToolThought(thought: Record<string, unknown>): boolean;
|
|
9
|
+
export declare function thoughtsToToolCalls(thoughts: unknown): ToolCall[];
|
|
10
|
+
export declare function generatedToText(generated: unknown): string;
|
|
11
|
+
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,aAAa,MAAM,CAAC;AAOjC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,MAAM,CAE3E;AAKD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGvE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,EAAE,CAgBjE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export const EXCERPT_LIMIT = 500;
|
|
2
|
+
function toText(value) {
|
|
3
|
+
if (value === null || value === undefined)
|
|
4
|
+
return "";
|
|
5
|
+
return typeof value === "string" ? value : JSON.stringify(value);
|
|
6
|
+
}
|
|
7
|
+
export function truncate(value, max = EXCERPT_LIMIT) {
|
|
8
|
+
return value.length > max ? `${value.slice(0, max)}…` : value;
|
|
9
|
+
}
|
|
10
|
+
/** The platform reports its own reasoning step as a "Tool" thought with this name. */
|
|
11
|
+
const REASONING_PSEUDO_TOOL = "codemie thoughts";
|
|
12
|
+
/**
|
|
13
|
+
* Tool invocations appear in `thoughts` with author_type "Tool" and the tool's display name
|
|
14
|
+
* (e.g. "Get Project Dna" for MCP tool get_project_dna).
|
|
15
|
+
*/
|
|
16
|
+
export function isToolThought(thought) {
|
|
17
|
+
if (toText(thought.author_type).toLowerCase() !== "tool")
|
|
18
|
+
return false;
|
|
19
|
+
return toText(thought.author_name).trim().toLowerCase() !== REASONING_PSEUDO_TOOL;
|
|
20
|
+
}
|
|
21
|
+
export function thoughtsToToolCalls(thoughts) {
|
|
22
|
+
if (!Array.isArray(thoughts))
|
|
23
|
+
return [];
|
|
24
|
+
const calls = [];
|
|
25
|
+
for (const entry of thoughts) {
|
|
26
|
+
if (!entry || typeof entry !== "object")
|
|
27
|
+
continue;
|
|
28
|
+
const thought = entry;
|
|
29
|
+
if (!isToolThought(thought))
|
|
30
|
+
continue;
|
|
31
|
+
calls.push({
|
|
32
|
+
name: toText(thought.author_name) || "unknown",
|
|
33
|
+
input: truncate(toText(thought.input_text)),
|
|
34
|
+
output_excerpt: truncate(toText(thought.message)),
|
|
35
|
+
error: thought.error === true,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return calls;
|
|
39
|
+
}
|
|
40
|
+
export function generatedToText(generated) {
|
|
41
|
+
return toText(generated);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/normalize.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,MAAc,aAAa;IACjE,OAAO,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAChE,CAAC;AAED,sFAAsF;AACtF,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgC;IAC5D,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACvE,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,qBAAqB,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAiB;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,MAAM,OAAO,GAAG,KAAgC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAAE,SAAS;QACtC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,SAAS;YAC9C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3C,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjD,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAkB;IAChD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ScenarioRun } from "./runner.js";
|
|
2
|
+
import type { CheckVerdict, RunSummary, ScenarioFile } from "./types.js";
|
|
3
|
+
export declare function buildRunSummary(assistantId: string, version: number | null, startedAt: Date, finishedAt: Date, runs: ScenarioRun[]): RunSummary;
|
|
4
|
+
export declare function writeRunOutput(outDir: string, input: {
|
|
5
|
+
scenarioFile: ScenarioFile;
|
|
6
|
+
runs: ScenarioRun[];
|
|
7
|
+
checks: CheckVerdict[];
|
|
8
|
+
summary: RunSummary;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/output.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMzE,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,IAAI,EAChB,IAAI,EAAE,WAAW,EAAE,GAClB,UAAU,CAWZ;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GACtG,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
async function writeJson(path, data) {
|
|
4
|
+
await writeFile(path, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
|
|
5
|
+
}
|
|
6
|
+
export function buildRunSummary(assistantId, version, startedAt, finishedAt, runs) {
|
|
7
|
+
const errors = runs.filter((r) => r.result.status === "error").length;
|
|
8
|
+
return {
|
|
9
|
+
assistant_id: assistantId,
|
|
10
|
+
version,
|
|
11
|
+
started_at: startedAt.toISOString(),
|
|
12
|
+
finished_at: finishedAt.toISOString(),
|
|
13
|
+
total: runs.length,
|
|
14
|
+
ok: runs.length - errors,
|
|
15
|
+
errors,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export async function writeRunOutput(outDir, input) {
|
|
19
|
+
await mkdir(join(outDir, "results"), { recursive: true });
|
|
20
|
+
await mkdir(join(outDir, "raw"), { recursive: true });
|
|
21
|
+
for (const run of input.runs) {
|
|
22
|
+
await writeJson(join(outDir, "results", `${run.result.scenario_id}.json`), run.result);
|
|
23
|
+
await writeJson(join(outDir, "raw", `${run.result.scenario_id}.json`), run.rawThoughts);
|
|
24
|
+
}
|
|
25
|
+
await writeJson(join(outDir, "scenarios.json"), input.scenarioFile);
|
|
26
|
+
await writeJson(join(outDir, "checks.json"), { checks: input.checks });
|
|
27
|
+
await writeJson(join(outDir, "run.json"), input.summary);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,IAAa;IAClD,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,OAAsB,EACtB,SAAe,EACf,UAAgB,EAChB,IAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACtE,OAAO;QACL,YAAY,EAAE,WAAW;QACzB,OAAO;QACP,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE;QACrC,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;QACxB,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,KAAuG;IAEvG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACvF,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,OAAO,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACpE,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Verdict } from "../types.js";
|
|
2
|
+
import { type IterationData } from "./workspace.js";
|
|
3
|
+
export type CheckStatus = "fixed" | "regressed" | "still_failing" | "still_passing" | "new" | "expectation_changed" | "not_graded";
|
|
4
|
+
export interface ClassifiedCheck {
|
|
5
|
+
scenario_id: string;
|
|
6
|
+
check_id: string;
|
|
7
|
+
text: string;
|
|
8
|
+
status: CheckStatus;
|
|
9
|
+
verdict: Verdict | null;
|
|
10
|
+
reason: string;
|
|
11
|
+
}
|
|
12
|
+
export interface RoundScore {
|
|
13
|
+
version: number;
|
|
14
|
+
passed: number;
|
|
15
|
+
total: number;
|
|
16
|
+
graded: boolean;
|
|
17
|
+
fixed: string[];
|
|
18
|
+
regressed: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare function classifyIteration(current: IterationData, previous?: IterationData): ClassifiedCheck[];
|
|
21
|
+
export declare function scoreRounds(iterations: IterationData[]): RoundScore[];
|
|
22
|
+
export declare function bestVersion(rounds: RoundScore[]): number | null;
|
|
23
|
+
//# sourceMappingURL=compare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/compare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,WAAW,GACX,eAAe,GACf,eAAe,GACf,KAAK,GACL,qBAAqB,GACrB,YAAY,CAAC;AAEjB,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAUD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,eAAe,EAAE,CA8BrG;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,CAarE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAS/D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { checkKey } from "./workspace.js";
|
|
2
|
+
function checkTexts(iteration) {
|
|
3
|
+
const texts = new Map();
|
|
4
|
+
for (const scenario of iteration.scenarios?.scenarios ?? []) {
|
|
5
|
+
for (const check of scenario.checks)
|
|
6
|
+
texts.set(checkKey(scenario.id, check.id), check.text);
|
|
7
|
+
}
|
|
8
|
+
return texts;
|
|
9
|
+
}
|
|
10
|
+
export function classifyIteration(current, previous) {
|
|
11
|
+
const prevTexts = previous ? checkTexts(previous) : new Map();
|
|
12
|
+
const out = [];
|
|
13
|
+
for (const [key, text] of checkTexts(current)) {
|
|
14
|
+
const [scenarioId, checkId] = key.split("/");
|
|
15
|
+
const verdict = current.verdicts?.get(key) ?? null;
|
|
16
|
+
const base = { scenario_id: scenarioId, check_id: checkId, text, verdict: verdict?.verdict ?? null, reason: verdict?.reason ?? "" };
|
|
17
|
+
if (!verdict) {
|
|
18
|
+
out.push({ ...base, status: "not_graded" });
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const prevText = prevTexts.get(key);
|
|
22
|
+
if (!previous || prevText === undefined) {
|
|
23
|
+
out.push({ ...base, status: "new" });
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (prevText !== text) {
|
|
27
|
+
out.push({ ...base, status: "expectation_changed" });
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const prevPassed = previous.verdicts?.get(key)?.verdict === "pass";
|
|
31
|
+
const nowPassed = verdict.verdict === "pass";
|
|
32
|
+
const status = nowPassed
|
|
33
|
+
? prevPassed ? "still_passing" : "fixed"
|
|
34
|
+
: prevPassed ? "regressed" : "still_failing";
|
|
35
|
+
out.push({ ...base, status });
|
|
36
|
+
}
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
export function scoreRounds(iterations) {
|
|
40
|
+
return iterations.map((iteration, index) => {
|
|
41
|
+
const classified = classifyIteration(iteration, index > 0 ? iterations[index - 1] : undefined);
|
|
42
|
+
const keyOf = (c) => checkKey(c.scenario_id, c.check_id);
|
|
43
|
+
return {
|
|
44
|
+
version: iteration.version,
|
|
45
|
+
passed: classified.filter((c) => c.verdict === "pass").length,
|
|
46
|
+
total: classified.length,
|
|
47
|
+
graded: iteration.verdicts !== null,
|
|
48
|
+
fixed: classified.filter((c) => c.status === "fixed").map(keyOf),
|
|
49
|
+
regressed: classified.filter((c) => c.status === "regressed").map(keyOf),
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export function bestVersion(rounds) {
|
|
54
|
+
const graded = rounds.filter((r) => r.graded);
|
|
55
|
+
if (graded.length === 0)
|
|
56
|
+
return null;
|
|
57
|
+
const best = graded.reduce((a, b) => {
|
|
58
|
+
if (b.passed !== a.passed)
|
|
59
|
+
return b.passed > a.passed ? b : a;
|
|
60
|
+
if (b.regressed.length !== a.regressed.length)
|
|
61
|
+
return b.regressed.length < a.regressed.length ? b : a;
|
|
62
|
+
return b.version > a.version ? b : a;
|
|
63
|
+
});
|
|
64
|
+
return best.version;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/compare.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReportSummary } from "./summary.js";
|
|
2
|
+
import type { IterationData } from "./workspace.js";
|
|
3
|
+
export declare function escapeHtml(value: string): string;
|
|
4
|
+
export declare function renderHtmlReport(input: {
|
|
5
|
+
assistantName: string;
|
|
6
|
+
summary: ReportSummary;
|
|
7
|
+
iterations: IterationData[];
|
|
8
|
+
}): string;
|
|
9
|
+
//# sourceMappingURL=html.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/html.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhD;AA4DD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG,MAAM,CAwB9H"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { classifyIteration } from "./compare.js";
|
|
2
|
+
export function escapeHtml(value) {
|
|
3
|
+
return value
|
|
4
|
+
.replace(/&/g, "&")
|
|
5
|
+
.replace(/</g, "<")
|
|
6
|
+
.replace(/>/g, ">")
|
|
7
|
+
.replace(/"/g, """)
|
|
8
|
+
.replace(/'/g, "'");
|
|
9
|
+
}
|
|
10
|
+
const STYLE = `
|
|
11
|
+
:root{--bg:#1A1A1A;--card:#151515;--elev:#212224;--border:#333436;--text:#FFFFFF;--muted:#BBBBBB;
|
|
12
|
+
--ok:#259F4C;--ok-bg:#1B271F;--err:#F9303C;--err-bg:#262121;--warn:#E8A33D;
|
|
13
|
+
--font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--mono:'JetBrains Mono','Fira Code',monospace}
|
|
14
|
+
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font)}
|
|
15
|
+
main{max-width:1100px;margin:0 auto;padding:24px 16px}h1{font-size:24px;margin:0 0 4px}h2{font-size:16px;color:var(--muted);margin:32px 0 12px}
|
|
16
|
+
.meta{color:var(--muted)}.cards{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
|
|
17
|
+
.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px 16px;min-width:140px}
|
|
18
|
+
.card b{display:block;font-size:20px}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:8px}
|
|
19
|
+
th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{background:var(--elev);color:var(--muted);font-weight:500}
|
|
20
|
+
.pass{color:var(--ok)}.fail,.regressed{color:var(--err)}.error,.blocked,.not_graded{color:var(--warn)}
|
|
21
|
+
details{background:var(--card);border:1px solid var(--border);border-radius:8px;margin:8px 0;padding:8px 12px}
|
|
22
|
+
summary{cursor:pointer}pre{white-space:pre-wrap;word-break:break-word;font:12px/1.5 var(--mono);background:var(--elev);padding:8px;border-radius:6px}
|
|
23
|
+
.bar{display:inline-block;height:8px;background:var(--ok);border-radius:4px;vertical-align:middle}`;
|
|
24
|
+
const VERDICT_CLASSES = new Set(["pass", "fail", "error", "blocked"]);
|
|
25
|
+
function statusCell(check) {
|
|
26
|
+
const verdict = check.verdict && VERDICT_CLASSES.has(check.verdict) ? check.verdict : "not_graded";
|
|
27
|
+
return `<span class="${verdict}">${escapeHtml(verdict)}</span> <span class="meta">${escapeHtml(check.status.replace(/_/g, " "))}</span>`;
|
|
28
|
+
}
|
|
29
|
+
function roundsTable(summary, iterations) {
|
|
30
|
+
const rows = summary.rounds.map((round) => {
|
|
31
|
+
const change = iterations.find((i) => i.version === round.version)?.change ?? "";
|
|
32
|
+
const width = round.total ? Math.round((round.passed / round.total) * 120) : 0;
|
|
33
|
+
return `<tr><td>v${round.version}${round.version === summary.best_version ? " ★" : ""}</td>
|
|
34
|
+
<td>${round.graded ? `<span class="bar" style="width:${width}px"></span> ${round.passed}/${round.total}` : '<span class="not_graded">not graded</span>'}</td>
|
|
35
|
+
<td class="fail">${escapeHtml(round.regressed.join(", "))}</td><td class="pass">${escapeHtml(round.fixed.join(", "))}</td>
|
|
36
|
+
<td><pre>${escapeHtml(change.trim())}</pre></td></tr>`;
|
|
37
|
+
});
|
|
38
|
+
return `<table><tr><th>Version</th><th>Passing</th><th>Regressed</th><th>Fixed</th><th>What changed</th></tr>${rows.join("")}</table>`;
|
|
39
|
+
}
|
|
40
|
+
function scenarioPanels(latest, classified) {
|
|
41
|
+
return (latest.scenarios?.scenarios ?? [])
|
|
42
|
+
.map((scenario) => {
|
|
43
|
+
const result = latest.results.get(scenario.id);
|
|
44
|
+
const checks = classified.filter((c) => c.scenario_id === scenario.id);
|
|
45
|
+
const passed = checks.filter((c) => c.verdict === "pass").length;
|
|
46
|
+
const turns = (result?.turns ?? [])
|
|
47
|
+
.map((turn) => {
|
|
48
|
+
const tools = turn.tool_calls
|
|
49
|
+
.map((t) => `<li>${escapeHtml(t.name)}${t.error ? ' <span class="fail">error</span>' : ""}<pre>${escapeHtml(t.input)}\n→ ${escapeHtml(t.output_excerpt)}</pre></li>`)
|
|
50
|
+
.join("");
|
|
51
|
+
return `<p><b>User:</b></p><pre>${escapeHtml(turn.user)}</pre><p><b>Assistant</b> <span class="meta">${escapeHtml(String(turn.latency_ms))} ms · ${escapeHtml(String(turn.tokens ?? "?"))} tokens</span></p><pre>${escapeHtml(turn.assistant)}</pre>${tools ? `<ul>${tools}</ul>` : ""}`;
|
|
52
|
+
})
|
|
53
|
+
.join("");
|
|
54
|
+
const error = result?.status === "error" ? `<p class="error">Run error: ${escapeHtml(result.error_message ?? "unknown")}</p>` : "";
|
|
55
|
+
const checkRows = checks
|
|
56
|
+
.map((c) => `<tr><td>${escapeHtml(c.check_id)}</td><td>${escapeHtml(c.text)}</td><td>${statusCell(c)}</td><td>${escapeHtml(c.reason)}</td></tr>`)
|
|
57
|
+
.join("");
|
|
58
|
+
return `<details${passed < checks.length ? " open" : ""}><summary>${escapeHtml(scenario.title)} <span class="meta">(${escapeHtml(scenario.id)}) · ${passed}/${checks.length}</span></summary>
|
|
59
|
+
${error}<table><tr><th>Check</th><th>Expectation</th><th>Verdict</th><th>Reason</th></tr>${checkRows}</table>${turns}</details>`;
|
|
60
|
+
})
|
|
61
|
+
.join("");
|
|
62
|
+
}
|
|
63
|
+
export function renderHtmlReport(input) {
|
|
64
|
+
const { summary, iterations } = input;
|
|
65
|
+
const latest = iterations[iterations.length - 1];
|
|
66
|
+
const previous = iterations.length > 1 ? iterations[iterations.length - 2] : undefined;
|
|
67
|
+
const classified = classifyIteration(latest, previous);
|
|
68
|
+
const observations = summary.observations.map((o) => `<li>${escapeHtml(o)}</li>`).join("");
|
|
69
|
+
return `<!DOCTYPE html>
|
|
70
|
+
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
71
|
+
<title>${escapeHtml(input.assistantName)} · Assistant Test Report</title><style>${STYLE}</style></head>
|
|
72
|
+
<body><main>
|
|
73
|
+
<h1>${escapeHtml(input.assistantName)}</h1>
|
|
74
|
+
<div class="meta">Latest v${summary.latest_version}${summary.best_version !== null ? ` · best v${summary.best_version}` : ""}</div>
|
|
75
|
+
<div class="cards">
|
|
76
|
+
<div class="card"><span class="meta">Passing</span><b>${summary.latest.passed}/${summary.latest.total}</b></div>
|
|
77
|
+
<div class="card"><span class="meta">Fixed</span><b class="pass">${summary.latest.fixed.length}</b></div>
|
|
78
|
+
<div class="card"><span class="meta">Regressed</span><b class="fail">${summary.latest.regressed.length}</b></div>
|
|
79
|
+
<div class="card"><span class="meta">Rounds</span><b>${summary.rounds.length}</b></div>
|
|
80
|
+
</div>
|
|
81
|
+
<h2>Rounds</h2>${roundsTable(summary, iterations)}
|
|
82
|
+
${observations ? `<h2>Observations</h2><ul>${observations}</ul>` : ""}
|
|
83
|
+
<h2>Scenarios (v${latest.version})</h2>${scenarioPanels(latest, classified)}
|
|
84
|
+
</main></body></html>
|
|
85
|
+
`;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=html.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/html.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type ClassifiedCheck, type RoundScore } from "./compare.js";
|
|
2
|
+
import { type IterationData } from "./workspace.js";
|
|
3
|
+
export interface VerdictCounts {
|
|
4
|
+
pass: number;
|
|
5
|
+
fail: number;
|
|
6
|
+
error: number;
|
|
7
|
+
blocked: number;
|
|
8
|
+
not_graded: number;
|
|
9
|
+
}
|
|
10
|
+
export interface ReportSummary {
|
|
11
|
+
latest_version: number;
|
|
12
|
+
best_version: number | null;
|
|
13
|
+
rounds: RoundScore[];
|
|
14
|
+
latest: {
|
|
15
|
+
passed: number;
|
|
16
|
+
total: number;
|
|
17
|
+
fixed: string[];
|
|
18
|
+
regressed: string[];
|
|
19
|
+
still_failing: string[];
|
|
20
|
+
not_graded: number;
|
|
21
|
+
counts: VerdictCounts;
|
|
22
|
+
};
|
|
23
|
+
confirmation: {
|
|
24
|
+
passed: number;
|
|
25
|
+
total: number;
|
|
26
|
+
} | null;
|
|
27
|
+
observations: string[];
|
|
28
|
+
}
|
|
29
|
+
export declare function buildReportSummary(iterations: IterationData[]): ReportSummary;
|
|
30
|
+
export declare function formatTerminalSummary(summary: ReportSummary, failures: ClassifiedCheck[]): string;
|
|
31
|
+
//# sourceMappingURL=summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAClH,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,aAAa,CAAC;KACvB,CAAC;IACF,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,aAAa,CAkC7E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,CAgBjG"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { bestVersion, classifyIteration, scoreRounds } from "./compare.js";
|
|
2
|
+
import { checkKey } from "./workspace.js";
|
|
3
|
+
export function buildReportSummary(iterations) {
|
|
4
|
+
const rounds = scoreRounds(iterations);
|
|
5
|
+
const latest = iterations[iterations.length - 1];
|
|
6
|
+
const previous = iterations.length > 1 ? iterations[iterations.length - 2] : undefined;
|
|
7
|
+
const classified = classifyIteration(latest, previous);
|
|
8
|
+
const keys = (filter) => classified.filter(filter).map((c) => checkKey(c.scenario_id, c.check_id));
|
|
9
|
+
const confirmVerdicts = latest.confirm ? [...latest.confirm.values()] : null;
|
|
10
|
+
return {
|
|
11
|
+
latest_version: latest.version,
|
|
12
|
+
best_version: bestVersion(rounds),
|
|
13
|
+
rounds,
|
|
14
|
+
latest: {
|
|
15
|
+
passed: classified.filter((c) => c.verdict === "pass").length,
|
|
16
|
+
total: classified.length,
|
|
17
|
+
fixed: keys((c) => c.status === "fixed"),
|
|
18
|
+
regressed: keys((c) => c.status === "regressed"),
|
|
19
|
+
still_failing: keys((c) => c.verdict !== null && c.verdict !== "pass" && c.status !== "regressed"),
|
|
20
|
+
not_graded: classified.filter((c) => c.status === "not_graded").length,
|
|
21
|
+
counts: {
|
|
22
|
+
pass: classified.filter((c) => c.verdict === "pass").length,
|
|
23
|
+
fail: classified.filter((c) => c.verdict === "fail").length,
|
|
24
|
+
error: classified.filter((c) => c.verdict === "error").length,
|
|
25
|
+
blocked: classified.filter((c) => c.verdict === "blocked").length,
|
|
26
|
+
not_graded: classified.filter((c) => c.verdict === null).length,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
confirmation: confirmVerdicts
|
|
30
|
+
? { passed: confirmVerdicts.filter((v) => v.verdict === "pass").length, total: confirmVerdicts.length }
|
|
31
|
+
: null,
|
|
32
|
+
observations: latest.observations,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export function formatTerminalSummary(summary, failures) {
|
|
36
|
+
const lines = [];
|
|
37
|
+
lines.push(`Rounds: ${summary.rounds.map((r) => `v${r.version} ${r.graded ? `${r.passed}/${r.total}` : "not graded"}`).join(" → ")}`);
|
|
38
|
+
lines.push(`Latest v${summary.latest_version}: ${summary.latest.passed}/${summary.latest.total} checks pass` +
|
|
39
|
+
(summary.best_version !== null ? ` · best v${summary.best_version}` : ""));
|
|
40
|
+
if (summary.confirmation) {
|
|
41
|
+
lines.push(`Confirmation run: ${summary.confirmation.passed}/${summary.confirmation.total}`);
|
|
42
|
+
}
|
|
43
|
+
if (summary.latest.fixed.length)
|
|
44
|
+
lines.push(`Fixed: ${summary.latest.fixed.join(", ")}`);
|
|
45
|
+
if (summary.latest.regressed.length)
|
|
46
|
+
lines.push(`Regressed: ${summary.latest.regressed.join(", ")}`);
|
|
47
|
+
if (summary.latest.still_failing.length)
|
|
48
|
+
lines.push(`Still failing: ${summary.latest.still_failing.join(", ")}`);
|
|
49
|
+
if (summary.latest.not_graded)
|
|
50
|
+
lines.push(`Not graded: ${summary.latest.not_graded}`);
|
|
51
|
+
for (const failure of failures.slice(0, 3)) {
|
|
52
|
+
lines.push(` ✗ ${failure.scenario_id}/${failure.check_id} — ${failure.text}: ${failure.reason}`);
|
|
53
|
+
}
|
|
54
|
+
return lines.join("\n");
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CheckVerdict, ScenarioFile, ScenarioResult } from "../types.js";
|
|
2
|
+
export interface IterationData {
|
|
3
|
+
version: number;
|
|
4
|
+
dir: string;
|
|
5
|
+
scenarios: ScenarioFile | null;
|
|
6
|
+
results: Map<string, ScenarioResult>;
|
|
7
|
+
verdicts: Map<string, CheckVerdict> | null;
|
|
8
|
+
observations: string[];
|
|
9
|
+
change: string | null;
|
|
10
|
+
confirm: Map<string, CheckVerdict> | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function checkKey(scenarioId: string, checkId: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Deterministic tool checks win over the grader, except where the grader marked a check
|
|
15
|
+
* blocked or error — a missing integration or a failed run is not a prompt failure.
|
|
16
|
+
*/
|
|
17
|
+
export declare function mergeVerdicts(deterministic: CheckVerdict[], graded: CheckVerdict[]): Map<string, CheckVerdict>;
|
|
18
|
+
export declare function loadWorkspace(dir: string): Promise<IterationData[]>;
|
|
19
|
+
//# sourceMappingURL=workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/workspace.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAA2B,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvG,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAU9G;AAqDD,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAqCzE"}
|