@posthog/wizard 2.9.1 → 2.10.1
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 +40 -0
- package/dist/McpScreen-DINVFEYh.js +3356 -0
- package/dist/McpScreen-DINVFEYh.js.map +1 -0
- package/dist/add-mcp-server-to-clients-BlbtWGU0.js +436 -0
- package/dist/add-mcp-server-to-clients-BlbtWGU0.js.map +1 -0
- package/dist/agent-runner-D_eXxXPp.js +1114 -0
- package/dist/agent-runner-D_eXxXPp.js.map +1 -0
- package/dist/agent-skill-BVjJqol6.js +59 -0
- package/dist/agent-skill-BVjJqol6.js.map +1 -0
- package/dist/analytics-Bu1XKP2S.js +207 -0
- package/dist/analytics-Bu1XKP2S.js.map +1 -0
- package/dist/analytics-DjWAOHun.js +2 -0
- package/dist/bin.d.ts +1 -2
- package/dist/bin.js +635 -521
- package/dist/bin.js.map +1 -1
- package/dist/craft-pre-release.sh +10 -0
- package/dist/debug-CIyf0ZGx.js +2 -0
- package/dist/debug-CyJ_3dTP.js +201 -0
- package/dist/debug-CyJ_3dTP.js.map +1 -0
- package/dist/defaults-DoVkE0gW.js +234 -0
- package/dist/defaults-DoVkE0gW.js.map +1 -0
- package/dist/detection-B6EEBoZk.js +122 -0
- package/dist/detection-B6EEBoZk.js.map +1 -0
- package/dist/env-api-key-K8TdTDII.js +20 -0
- package/dist/env-api-key-K8TdTDII.js.map +1 -0
- package/dist/file-utils-BWneZy6p.js +38 -0
- package/dist/file-utils-BWneZy6p.js.map +1 -0
- package/dist/generate-version.cjs +11 -0
- package/dist/package-json-BQgl5C3Z.js +2 -0
- package/dist/package-json-Ctq6LSl8.js +25 -0
- package/dist/package-json-Ctq6LSl8.js.map +1 -0
- package/dist/package-manager-BTZ75a-a.js +222 -0
- package/dist/package-manager-BTZ75a-a.js.map +1 -0
- package/dist/posthog-integration-_xd3kuTB.js +230 -0
- package/dist/posthog-integration-_xd3kuTB.js.map +1 -0
- package/dist/readiness-BPPVNQum.js +2156 -0
- package/dist/readiness-BPPVNQum.js.map +1 -0
- package/dist/registry-BY4HuKIE.js +2922 -0
- package/dist/registry-BY4HuKIE.js.map +1 -0
- package/dist/rolldown-runtime-B_-DWIq7.js +15 -0
- package/dist/router-D5A1Sb4p.js +141 -0
- package/dist/router-D5A1Sb4p.js.map +1 -0
- package/dist/setup-utils-Dymympue.js +928 -0
- package/dist/setup-utils-Dymympue.js.map +1 -0
- package/dist/smoke-test-ci.sh +165 -0
- package/dist/start-playground-BjIMB4sp.js +1005 -0
- package/dist/start-playground-BjIMB4sp.js.map +1 -0
- package/dist/start-tui-xs7DNbH9.js +1885 -0
- package/dist/start-tui-xs7DNbH9.js.map +1 -0
- package/dist/steps-CCz4dZOV.js +146 -0
- package/dist/steps-CCz4dZOV.js.map +1 -0
- package/dist/telemetry-DfPvsfxj.js +13 -0
- package/dist/telemetry-DfPvsfxj.js.map +1 -0
- package/dist/wizard-abort-BPf5l506.js +39 -0
- package/dist/wizard-abort-BPf5l506.js.map +1 -0
- package/dist/wizard-abort-WACKybRA.js +2 -0
- package/dist/wizard-session-Db6R023m.js +62 -0
- package/dist/wizard-session-Db6R023m.js.map +1 -0
- package/dist/wizard-session-y7nf6aKH.js +2 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +16 -8
- package/dist/src/__tests__/cli.test.d.ts +0 -1
- package/dist/src/__tests__/cli.test.js +0 -256
- package/dist/src/__tests__/cli.test.js.map +0 -1
- package/dist/src/__tests__/package-json.test.d.ts +0 -1
- package/dist/src/__tests__/package-json.test.js +0 -173
- package/dist/src/__tests__/package-json.test.js.map +0 -1
- package/dist/src/__tests__/wizard-abort.test.d.ts +0 -1
- package/dist/src/__tests__/wizard-abort.test.js +0 -148
- package/dist/src/__tests__/wizard-abort.test.js.map +0 -1
- package/dist/src/frameworks/android/android-wizard-agent.d.ts +0 -6
- package/dist/src/frameworks/android/android-wizard-agent.js +0 -142
- package/dist/src/frameworks/android/android-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/android/utils.d.ts +0 -11
- package/dist/src/frameworks/android/utils.js +0 -97
- package/dist/src/frameworks/android/utils.js.map +0 -1
- package/dist/src/frameworks/angular/angular-wizard-agent.d.ts +0 -4
- package/dist/src/frameworks/angular/angular-wizard-agent.js +0 -65
- package/dist/src/frameworks/angular/angular-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/angular/utils.d.ts +0 -4
- package/dist/src/frameworks/angular/utils.js +0 -9
- package/dist/src/frameworks/angular/utils.js.map +0 -1
- package/dist/src/frameworks/astro/astro-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/astro/astro-wizard-agent.js +0 -102
- package/dist/src/frameworks/astro/astro-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/astro/utils.d.ts +0 -14
- package/dist/src/frameworks/astro/utils.js +0 -114
- package/dist/src/frameworks/astro/utils.js.map +0 -1
- package/dist/src/frameworks/django/django-wizard-agent.d.ts +0 -8
- package/dist/src/frameworks/django/django-wizard-agent.js +0 -173
- package/dist/src/frameworks/django/django-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/django/utils.d.ts +0 -31
- package/dist/src/frameworks/django/utils.js +0 -306
- package/dist/src/frameworks/django/utils.js.map +0 -1
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.d.ts +0 -5
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js +0 -191
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/fastapi/utils.d.ts +0 -26
- package/dist/src/frameworks/fastapi/utils.js +0 -258
- package/dist/src/frameworks/fastapi/utils.js.map +0 -1
- package/dist/src/frameworks/flask/flask-wizard-agent.d.ts +0 -8
- package/dist/src/frameworks/flask/flask-wizard-agent.js +0 -179
- package/dist/src/frameworks/flask/flask-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/flask/utils.d.ts +0 -28
- package/dist/src/frameworks/flask/utils.js +0 -344
- package/dist/src/frameworks/flask/utils.js.map +0 -1
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.d.ts +0 -4
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js +0 -61
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.d.ts +0 -3
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js +0 -152
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/javascript-web/utils.d.ts +0 -28
- package/dist/src/frameworks/javascript-web/utils.js +0 -147
- package/dist/src/frameworks/javascript-web/utils.js.map +0 -1
- package/dist/src/frameworks/laravel/laravel-wizard-agent.d.ts +0 -10
- package/dist/src/frameworks/laravel/laravel-wizard-agent.js +0 -182
- package/dist/src/frameworks/laravel/laravel-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/laravel/utils.d.ts +0 -38
- package/dist/src/frameworks/laravel/utils.js +0 -238
- package/dist/src/frameworks/laravel/utils.js.map +0 -1
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js +0 -94
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/nextjs/utils.d.ts +0 -12
- package/dist/src/frameworks/nextjs/utils.js +0 -52
- package/dist/src/frameworks/nextjs/utils.js.map +0 -1
- package/dist/src/frameworks/nuxt/nuxt-wizard-agent.d.ts +0 -6
- package/dist/src/frameworks/nuxt/nuxt-wizard-agent.js +0 -77
- package/dist/src/frameworks/nuxt/nuxt-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/python/python-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/python/python-wizard-agent.js +0 -195
- package/dist/src/frameworks/python/python-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/python/utils.d.ts +0 -28
- package/dist/src/frameworks/python/utils.js +0 -147
- package/dist/src/frameworks/python/utils.js.map +0 -1
- package/dist/src/frameworks/rails/rails-wizard-agent.d.ts +0 -8
- package/dist/src/frameworks/rails/rails-wizard-agent.js +0 -90
- package/dist/src/frameworks/rails/rails-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/rails/utils.d.ts +0 -37
- package/dist/src/frameworks/rails/utils.js +0 -187
- package/dist/src/frameworks/rails/utils.js.map +0 -1
- package/dist/src/frameworks/react-native/react-native-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/react-native/react-native-wizard-agent.js +0 -89
- package/dist/src/frameworks/react-native/react-native-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/react-native/utils.d.ts +0 -8
- package/dist/src/frameworks/react-native/utils.js +0 -28
- package/dist/src/frameworks/react-native/utils.js.map +0 -1
- package/dist/src/frameworks/react-router/react-router-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/react-router/react-router-wizard-agent.js +0 -94
- package/dist/src/frameworks/react-router/react-router-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/react-router/utils.d.ts +0 -13
- package/dist/src/frameworks/react-router/utils.js +0 -161
- package/dist/src/frameworks/react-router/utils.js.map +0 -1
- package/dist/src/frameworks/ruby/ruby-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/ruby/ruby-wizard-agent.js +0 -113
- package/dist/src/frameworks/ruby/ruby-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/ruby/utils.d.ts +0 -25
- package/dist/src/frameworks/ruby/utils.js +0 -158
- package/dist/src/frameworks/ruby/utils.js.map +0 -1
- package/dist/src/frameworks/svelte/svelte-wizard-agent.d.ts +0 -4
- package/dist/src/frameworks/svelte/svelte-wizard-agent.js +0 -61
- package/dist/src/frameworks/svelte/svelte-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/swift/swift-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/swift/swift-wizard-agent.js +0 -143
- package/dist/src/frameworks/swift/swift-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/swift/utils.d.ts +0 -8
- package/dist/src/frameworks/swift/utils.js +0 -105
- package/dist/src/frameworks/swift/utils.js.map +0 -1
- package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.js +0 -96
- package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/tanstack-router/utils.d.ts +0 -11
- package/dist/src/frameworks/tanstack-router/utils.js +0 -149
- package/dist/src/frameworks/tanstack-router/utils.js.map +0 -1
- package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.d.ts +0 -4
- package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.js +0 -64
- package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/tanstack-start/utils.d.ts +0 -4
- package/dist/src/frameworks/tanstack-start/utils.js +0 -9
- package/dist/src/frameworks/tanstack-start/utils.js.map +0 -1
- package/dist/src/frameworks/vue/vue-wizard-agent.d.ts +0 -4
- package/dist/src/frameworks/vue/vue-wizard-agent.js +0 -62
- package/dist/src/frameworks/vue/vue-wizard-agent.js.map +0 -1
- package/dist/src/lib/__tests__/agent-interface.test.d.ts +0 -1
- package/dist/src/lib/__tests__/agent-interface.test.js +0 -317
- package/dist/src/lib/__tests__/agent-interface.test.js.map +0 -1
- package/dist/src/lib/__tests__/cloudflare-detection.test.d.ts +0 -1
- package/dist/src/lib/__tests__/cloudflare-detection.test.js +0 -119
- package/dist/src/lib/__tests__/cloudflare-detection.test.js.map +0 -1
- package/dist/src/lib/__tests__/wizard-tools.test.d.ts +0 -1
- package/dist/src/lib/__tests__/wizard-tools.test.js +0 -200
- package/dist/src/lib/__tests__/wizard-tools.test.js.map +0 -1
- package/dist/src/lib/__tests__/yara-hooks.test.d.ts +0 -1
- package/dist/src/lib/__tests__/yara-hooks.test.js +0 -432
- package/dist/src/lib/__tests__/yara-hooks.test.js.map +0 -1
- package/dist/src/lib/__tests__/yara-scanner.test.d.ts +0 -1
- package/dist/src/lib/__tests__/yara-scanner.test.js +0 -613
- package/dist/src/lib/__tests__/yara-scanner.test.js.map +0 -1
- package/dist/src/lib/agent/__tests__/agent-prompt.test.d.ts +0 -1
- package/dist/src/lib/agent/__tests__/agent-prompt.test.js +0 -57
- package/dist/src/lib/agent/__tests__/agent-prompt.test.js.map +0 -1
- package/dist/src/lib/agent/agent-interface.d.ts +0 -171
- package/dist/src/lib/agent/agent-interface.js +0 -1082
- package/dist/src/lib/agent/agent-interface.js.map +0 -1
- package/dist/src/lib/agent/agent-prompt.d.ts +0 -23
- package/dist/src/lib/agent/agent-prompt.js +0 -47
- package/dist/src/lib/agent/agent-prompt.js.map +0 -1
- package/dist/src/lib/agent/agent-runner.d.ts +0 -78
- package/dist/src/lib/agent/agent-runner.js +0 -325
- package/dist/src/lib/agent/agent-runner.js.map +0 -1
- package/dist/src/lib/agent/commandments.d.ts +0 -1
- package/dist/src/lib/agent/commandments.js +0 -26
- package/dist/src/lib/agent/commandments.js.map +0 -1
- package/dist/src/lib/api.d.ts +0 -75
- package/dist/src/lib/api.js +0 -105
- package/dist/src/lib/api.js.map +0 -1
- package/dist/src/lib/cloudflare-detection.d.ts +0 -14
- package/dist/src/lib/cloudflare-detection.js +0 -74
- package/dist/src/lib/cloudflare-detection.js.map +0 -1
- package/dist/src/lib/constants.d.ts +0 -74
- package/dist/src/lib/constants.js +0 -98
- package/dist/src/lib/constants.js.map +0 -1
- package/dist/src/lib/detection/__tests__/context.test.d.ts +0 -1
- package/dist/src/lib/detection/__tests__/context.test.js +0 -72
- package/dist/src/lib/detection/__tests__/context.test.js.map +0 -1
- package/dist/src/lib/detection/__tests__/features.test.d.ts +0 -1
- package/dist/src/lib/detection/__tests__/features.test.js +0 -75
- package/dist/src/lib/detection/__tests__/features.test.js.map +0 -1
- package/dist/src/lib/detection/__tests__/package-manager.test.d.ts +0 -1
- package/dist/src/lib/detection/__tests__/package-manager.test.js +0 -195
- package/dist/src/lib/detection/__tests__/package-manager.test.js.map +0 -1
- package/dist/src/lib/detection/context.d.ts +0 -31
- package/dist/src/lib/detection/context.js +0 -92
- package/dist/src/lib/detection/context.js.map +0 -1
- package/dist/src/lib/detection/features.d.ts +0 -16
- package/dist/src/lib/detection/features.js +0 -56
- package/dist/src/lib/detection/features.js.map +0 -1
- package/dist/src/lib/detection/framework.d.ts +0 -14
- package/dist/src/lib/detection/framework.js +0 -35
- package/dist/src/lib/detection/framework.js.map +0 -1
- package/dist/src/lib/detection/index.d.ts +0 -3
- package/dist/src/lib/detection/index.js +0 -11
- package/dist/src/lib/detection/index.js.map +0 -1
- package/dist/src/lib/detection/package-manager.d.ts +0 -37
- package/dist/src/lib/detection/package-manager.js +0 -183
- package/dist/src/lib/detection/package-manager.js.map +0 -1
- package/dist/src/lib/framework-config.d.ts +0 -175
- package/dist/src/lib/framework-config.js +0 -22
- package/dist/src/lib/framework-config.js.map +0 -1
- package/dist/src/lib/health-checks/__tests__/health-checks.test.d.ts +0 -18
- package/dist/src/lib/health-checks/__tests__/health-checks.test.js +0 -759
- package/dist/src/lib/health-checks/__tests__/health-checks.test.js.map +0 -1
- package/dist/src/lib/health-checks/endpoints.d.ts +0 -4
- package/dist/src/lib/health-checks/endpoints.js +0 -49
- package/dist/src/lib/health-checks/endpoints.js.map +0 -1
- package/dist/src/lib/health-checks/index.d.ts +0 -4
- package/dist/src/lib/health-checks/index.js +0 -24
- package/dist/src/lib/health-checks/index.js.map +0 -1
- package/dist/src/lib/health-checks/readiness.d.ts +0 -29
- package/dist/src/lib/health-checks/readiness.js +0 -188
- package/dist/src/lib/health-checks/readiness.js.map +0 -1
- package/dist/src/lib/health-checks/statuspage.d.ts +0 -9
- package/dist/src/lib/health-checks/statuspage.js +0 -105
- package/dist/src/lib/health-checks/statuspage.js.map +0 -1
- package/dist/src/lib/health-checks/types.d.ts +0 -32
- package/dist/src/lib/health-checks/types.js +0 -10
- package/dist/src/lib/health-checks/types.js.map +0 -1
- package/dist/src/lib/helper-functions.d.ts +0 -1
- package/dist/src/lib/helper-functions.js +0 -6
- package/dist/src/lib/helper-functions.js.map +0 -1
- package/dist/src/lib/middleware/benchmark.d.ts +0 -54
- package/dist/src/lib/middleware/benchmark.js +0 -45
- package/dist/src/lib/middleware/benchmark.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/cache-tracker.d.ts +0 -44
- package/dist/src/lib/middleware/benchmarks/cache-tracker.js +0 -81
- package/dist/src/lib/middleware/benchmarks/cache-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.d.ts +0 -29
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.js +0 -60
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/context-size-tracker.d.ts +0 -26
- package/dist/src/lib/middleware/benchmarks/context-size-tracker.js +0 -56
- package/dist/src/lib/middleware/benchmarks/context-size-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/cost-tracker.d.ts +0 -16
- package/dist/src/lib/middleware/benchmarks/cost-tracker.js +0 -76
- package/dist/src/lib/middleware/benchmarks/cost-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/duration-tracker.d.ts +0 -20
- package/dist/src/lib/middleware/benchmarks/duration-tracker.js +0 -40
- package/dist/src/lib/middleware/benchmarks/duration-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/index.d.ts +0 -9
- package/dist/src/lib/middleware/benchmarks/index.js +0 -60
- package/dist/src/lib/middleware/benchmarks/index.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/json-writer.d.ts +0 -15
- package/dist/src/lib/middleware/benchmarks/json-writer.js +0 -144
- package/dist/src/lib/middleware/benchmarks/json-writer.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/summary.d.ts +0 -9
- package/dist/src/lib/middleware/benchmarks/summary.js +0 -102
- package/dist/src/lib/middleware/benchmarks/summary.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/token-tracker.d.ts +0 -40
- package/dist/src/lib/middleware/benchmarks/token-tracker.js +0 -77
- package/dist/src/lib/middleware/benchmarks/token-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/turn-counter.d.ts +0 -34
- package/dist/src/lib/middleware/benchmarks/turn-counter.js +0 -59
- package/dist/src/lib/middleware/benchmarks/turn-counter.js.map +0 -1
- package/dist/src/lib/middleware/config.d.ts +0 -24
- package/dist/src/lib/middleware/config.js +0 -78
- package/dist/src/lib/middleware/config.js.map +0 -1
- package/dist/src/lib/middleware/index.d.ts +0 -11
- package/dist/src/lib/middleware/index.js +0 -18
- package/dist/src/lib/middleware/index.js.map +0 -1
- package/dist/src/lib/middleware/phase-detector.d.ts +0 -7
- package/dist/src/lib/middleware/phase-detector.js +0 -64
- package/dist/src/lib/middleware/phase-detector.js.map +0 -1
- package/dist/src/lib/middleware/pipeline.d.ts +0 -29
- package/dist/src/lib/middleware/pipeline.js +0 -82
- package/dist/src/lib/middleware/pipeline.js.map +0 -1
- package/dist/src/lib/middleware/types.d.ts +0 -40
- package/dist/src/lib/middleware/types.js +0 -9
- package/dist/src/lib/middleware/types.js.map +0 -1
- package/dist/src/lib/registry.d.ts +0 -3
- package/dist/src/lib/registry.js +0 -49
- package/dist/src/lib/registry.js.map +0 -1
- package/dist/src/lib/safe-tools.d.ts +0 -2
- package/dist/src/lib/safe-tools.js +0 -215
- package/dist/src/lib/safe-tools.js.map +0 -1
- package/dist/src/lib/skill-install.d.ts +0 -10
- package/dist/src/lib/skill-install.js +0 -23
- package/dist/src/lib/skill-install.js.map +0 -1
- package/dist/src/lib/version.d.ts +0 -1
- package/dist/src/lib/version.js +0 -6
- package/dist/src/lib/version.js.map +0 -1
- package/dist/src/lib/wizard-session.d.ts +0 -146
- package/dist/src/lib/wizard-session.js +0 -116
- package/dist/src/lib/wizard-session.js.map +0 -1
- package/dist/src/lib/wizard-tools.d.ts +0 -91
- package/dist/src/lib/wizard-tools.js +0 -389
- package/dist/src/lib/wizard-tools.js.map +0 -1
- package/dist/src/lib/workflows/__tests__/agent-skill.test.d.ts +0 -1
- package/dist/src/lib/workflows/__tests__/agent-skill.test.js +0 -73
- package/dist/src/lib/workflows/__tests__/agent-skill.test.js.map +0 -1
- package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.d.ts +0 -1
- package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.js +0 -101
- package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.js.map +0 -1
- package/dist/src/lib/workflows/__tests__/workflow-registry.test.d.ts +0 -1
- package/dist/src/lib/workflows/__tests__/workflow-registry.test.js +0 -32
- package/dist/src/lib/workflows/__tests__/workflow-registry.test.js.map +0 -1
- package/dist/src/lib/workflows/__tests__/workflow-step.test.d.ts +0 -1
- package/dist/src/lib/workflows/__tests__/workflow-step.test.js +0 -54
- package/dist/src/lib/workflows/__tests__/workflow-step.test.js.map +0 -1
- package/dist/src/lib/workflows/agent-skill/index.d.ts +0 -44
- package/dist/src/lib/workflows/agent-skill/index.js +0 -47
- package/dist/src/lib/workflows/agent-skill/index.js.map +0 -1
- package/dist/src/lib/workflows/agent-skill/steps.d.ts +0 -8
- package/dist/src/lib/workflows/agent-skill/steps.js +0 -43
- package/dist/src/lib/workflows/agent-skill/steps.js.map +0 -1
- package/dist/src/lib/workflows/posthog-integration/detect.d.ts +0 -12
- package/dist/src/lib/workflows/posthog-integration/detect.js +0 -57
- package/dist/src/lib/workflows/posthog-integration/detect.js.map +0 -1
- package/dist/src/lib/workflows/posthog-integration/index.d.ts +0 -3
- package/dist/src/lib/workflows/posthog-integration/index.js +0 -152
- package/dist/src/lib/workflows/posthog-integration/index.js.map +0 -1
- package/dist/src/lib/workflows/posthog-integration/steps.d.ts +0 -9
- package/dist/src/lib/workflows/posthog-integration/steps.js +0 -100
- package/dist/src/lib/workflows/posthog-integration/steps.js.map +0 -1
- package/dist/src/lib/workflows/revenue-analytics/detect.d.ts +0 -40
- package/dist/src/lib/workflows/revenue-analytics/detect.js +0 -156
- package/dist/src/lib/workflows/revenue-analytics/detect.js.map +0 -1
- package/dist/src/lib/workflows/revenue-analytics/index.d.ts +0 -4
- package/dist/src/lib/workflows/revenue-analytics/index.js +0 -30
- package/dist/src/lib/workflows/revenue-analytics/index.js.map +0 -1
- package/dist/src/lib/workflows/revenue-analytics/steps.d.ts +0 -8
- package/dist/src/lib/workflows/revenue-analytics/steps.js +0 -53
- package/dist/src/lib/workflows/revenue-analytics/steps.js.map +0 -1
- package/dist/src/lib/workflows/workflow-registry.d.ts +0 -18
- package/dist/src/lib/workflows/workflow-registry.js +0 -32
- package/dist/src/lib/workflows/workflow-registry.js.map +0 -1
- package/dist/src/lib/workflows/workflow-step.d.ts +0 -126
- package/dist/src/lib/workflows/workflow-step.js +0 -28
- package/dist/src/lib/workflows/workflow-step.js.map +0 -1
- package/dist/src/lib/yara-hooks.d.ts +0 -44
- package/dist/src/lib/yara-hooks.js +0 -377
- package/dist/src/lib/yara-hooks.js.map +0 -1
- package/dist/src/lib/yara-scanner.d.ts +0 -61
- package/dist/src/lib/yara-scanner.js +0 -328
- package/dist/src/lib/yara-scanner.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/MCPClient.d.ts +0 -30
- package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js +0 -138
- package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.d.ts +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.js +0 -72
- package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.d.ts +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.js +0 -341
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/codex.test.d.ts +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/codex.test.js +0 -108
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/codex.test.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.d.ts +0 -89
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js +0 -169
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude.d.ts +0 -80
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude.js +0 -64
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/codex.d.ts +0 -88
- package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js +0 -76
- package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.d.ts +0 -84
- package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js +0 -61
- package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.d.ts +0 -92
- package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js +0 -101
- package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/zed.d.ts +0 -110
- package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js +0 -102
- package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/defaults.d.ts +0 -119
- package/dist/src/steps/add-mcp-server-to-clients/defaults.js +0 -239
- package/dist/src/steps/add-mcp-server-to-clients/defaults.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/index.d.ts +0 -23
- package/dist/src/steps/add-mcp-server-to-clients/index.js +0 -111
- package/dist/src/steps/add-mcp-server-to-clients/index.js.map +0 -1
- package/dist/src/steps/add-or-update-environment-variables.d.ts +0 -10
- package/dist/src/steps/add-or-update-environment-variables.js +0 -188
- package/dist/src/steps/add-or-update-environment-variables.js.map +0 -1
- package/dist/src/steps/index.d.ts +0 -4
- package/dist/src/steps/index.js +0 -21
- package/dist/src/steps/index.js.map +0 -1
- package/dist/src/steps/run-prettier.d.ts +0 -5
- package/dist/src/steps/run-prettier.js +0 -91
- package/dist/src/steps/run-prettier.js.map +0 -1
- package/dist/src/steps/upload-environment-variables/EnvironmentProvider.d.ts +0 -11
- package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js +0 -12
- package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js.map +0 -1
- package/dist/src/steps/upload-environment-variables/index.d.ts +0 -6
- package/dist/src/steps/upload-environment-variables/index.js +0 -38
- package/dist/src/steps/upload-environment-variables/index.js.map +0 -1
- package/dist/src/steps/upload-environment-variables/providers/__tests__/vercel.test.d.ts +0 -1
- package/dist/src/steps/upload-environment-variables/providers/__tests__/vercel.test.js +0 -117
- package/dist/src/steps/upload-environment-variables/providers/__tests__/vercel.test.js.map +0 -1
- package/dist/src/steps/upload-environment-variables/providers/vercel.d.ts +0 -15
- package/dist/src/steps/upload-environment-variables/providers/vercel.js +0 -142
- package/dist/src/steps/upload-environment-variables/providers/vercel.js.map +0 -1
- package/dist/src/telemetry.d.ts +0 -2
- package/dist/src/telemetry.js +0 -13
- package/dist/src/telemetry.js.map +0 -1
- package/dist/src/ui/index.d.ts +0 -8
- package/dist/src/ui/index.js +0 -17
- package/dist/src/ui/index.js.map +0 -1
- package/dist/src/ui/logging-ui.d.ts +0 -52
- package/dist/src/ui/logging-ui.js +0 -121
- package/dist/src/ui/logging-ui.js.map +0 -1
- package/dist/src/ui/tui/App.d.ts +0 -6
- package/dist/src/ui/tui/App.js +0 -10
- package/dist/src/ui/tui/App.js.map +0 -1
- package/dist/src/ui/tui/__tests__/flows.test.d.ts +0 -1
- package/dist/src/ui/tui/__tests__/flows.test.js +0 -115
- package/dist/src/ui/tui/__tests__/flows.test.js.map +0 -1
- package/dist/src/ui/tui/__tests__/layout-helpers.test.d.ts +0 -1
- package/dist/src/ui/tui/__tests__/layout-helpers.test.js +0 -68
- package/dist/src/ui/tui/__tests__/layout-helpers.test.js.map +0 -1
- package/dist/src/ui/tui/__tests__/router.test.d.ts +0 -1
- package/dist/src/ui/tui/__tests__/router.test.js +0 -87
- package/dist/src/ui/tui/__tests__/router.test.js.map +0 -1
- package/dist/src/ui/tui/__tests__/store.test.d.ts +0 -1
- package/dist/src/ui/tui/__tests__/store.test.js +0 -935
- package/dist/src/ui/tui/__tests__/store.test.js.map +0 -1
- package/dist/src/ui/tui/components/LearnCard.d.ts +0 -10
- package/dist/src/ui/tui/components/LearnCard.js +0 -217
- package/dist/src/ui/tui/components/LearnCard.js.map +0 -1
- package/dist/src/ui/tui/components/ServiceHealthList.d.ts +0 -15
- package/dist/src/ui/tui/components/ServiceHealthList.js +0 -57
- package/dist/src/ui/tui/components/ServiceHealthList.js.map +0 -1
- package/dist/src/ui/tui/components/TipsCard.d.ts +0 -9
- package/dist/src/ui/tui/components/TipsCard.js +0 -55
- package/dist/src/ui/tui/components/TipsCard.js.map +0 -1
- package/dist/src/ui/tui/components/TitleBar.d.ts +0 -6
- package/dist/src/ui/tui/components/TitleBar.js +0 -17
- package/dist/src/ui/tui/components/TitleBar.js.map +0 -1
- package/dist/src/ui/tui/flows.d.ts +0 -52
- package/dist/src/ui/tui/flows.js +0 -76
- package/dist/src/ui/tui/flows.js.map +0 -1
- package/dist/src/ui/tui/hooks/useStdoutDimensions.d.ts +0 -9
- package/dist/src/ui/tui/hooks/useStdoutDimensions.js +0 -37
- package/dist/src/ui/tui/hooks/useStdoutDimensions.js.map +0 -1
- package/dist/src/ui/tui/ink-ui.d.ts +0 -58
- package/dist/src/ui/tui/ink-ui.js +0 -125
- package/dist/src/ui/tui/ink-ui.js.map +0 -1
- package/dist/src/ui/tui/package.json +0 -1
- package/dist/src/ui/tui/playground/PlaygroundApp.d.ts +0 -12
- package/dist/src/ui/tui/playground/PlaygroundApp.js +0 -50
- package/dist/src/ui/tui/playground/PlaygroundApp.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/HealthCheckDemo.d.ts +0 -11
- package/dist/src/ui/tui/playground/demos/HealthCheckDemo.js +0 -57
- package/dist/src/ui/tui/playground/demos/HealthCheckDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/InputDemo.d.ts +0 -4
- package/dist/src/ui/tui/playground/demos/InputDemo.js +0 -53
- package/dist/src/ui/tui/playground/demos/InputDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/LayoutDemo.d.ts +0 -5
- package/dist/src/ui/tui/playground/demos/LayoutDemo.js +0 -25
- package/dist/src/ui/tui/playground/demos/LayoutDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/LogDemo.d.ts +0 -5
- package/dist/src/ui/tui/playground/demos/LogDemo.js +0 -53
- package/dist/src/ui/tui/playground/demos/LogDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/McpDemo.d.ts +0 -12
- package/dist/src/ui/tui/playground/demos/McpDemo.js +0 -27
- package/dist/src/ui/tui/playground/demos/McpDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/ModalDemo.d.ts +0 -6
- package/dist/src/ui/tui/playground/demos/ModalDemo.js +0 -13
- package/dist/src/ui/tui/playground/demos/ModalDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/ProgressDemo.d.ts +0 -5
- package/dist/src/ui/tui/playground/demos/ProgressDemo.js +0 -58
- package/dist/src/ui/tui/playground/demos/ProgressDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/RunScreenDemo.d.ts +0 -11
- package/dist/src/ui/tui/playground/demos/RunScreenDemo.js +0 -159
- package/dist/src/ui/tui/playground/demos/RunScreenDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/WelcomeDemo.d.ts +0 -9
- package/dist/src/ui/tui/playground/demos/WelcomeDemo.js +0 -15
- package/dist/src/ui/tui/playground/demos/WelcomeDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/start-playground.d.ts +0 -4
- package/dist/src/ui/tui/playground/start-playground.js +0 -24
- package/dist/src/ui/tui/playground/start-playground.js.map +0 -1
- package/dist/src/ui/tui/primitives/CardLayout.d.ts +0 -12
- package/dist/src/ui/tui/primitives/CardLayout.js +0 -10
- package/dist/src/ui/tui/primitives/CardLayout.js.map +0 -1
- package/dist/src/ui/tui/primitives/ConfirmationInput.d.ts +0 -13
- package/dist/src/ui/tui/primitives/ConfirmationInput.js +0 -35
- package/dist/src/ui/tui/primitives/ConfirmationInput.js.map +0 -1
- package/dist/src/ui/tui/primitives/ContentSequencer.d.ts +0 -42
- package/dist/src/ui/tui/primitives/ContentSequencer.js +0 -137
- package/dist/src/ui/tui/primitives/ContentSequencer.js.map +0 -1
- package/dist/src/ui/tui/primitives/DissolveTransition.d.ts +0 -21
- package/dist/src/ui/tui/primitives/DissolveTransition.js +0 -149
- package/dist/src/ui/tui/primitives/DissolveTransition.js.map +0 -1
- package/dist/src/ui/tui/primitives/Divider.d.ts +0 -6
- package/dist/src/ui/tui/primitives/Divider.js +0 -15
- package/dist/src/ui/tui/primitives/Divider.js.map +0 -1
- package/dist/src/ui/tui/primitives/EventPlanViewer.d.ts +0 -9
- package/dist/src/ui/tui/primitives/EventPlanViewer.js +0 -9
- package/dist/src/ui/tui/primitives/EventPlanViewer.js.map +0 -1
- package/dist/src/ui/tui/primitives/GroupedPickerMenu.d.ts +0 -23
- package/dist/src/ui/tui/primitives/GroupedPickerMenu.js +0 -182
- package/dist/src/ui/tui/primitives/GroupedPickerMenu.js.map +0 -1
- package/dist/src/ui/tui/primitives/HNViewer.d.ts +0 -7
- package/dist/src/ui/tui/primitives/HNViewer.js +0 -63
- package/dist/src/ui/tui/primitives/HNViewer.js.map +0 -1
- package/dist/src/ui/tui/primitives/LinesBlock.d.ts +0 -16
- package/dist/src/ui/tui/primitives/LinesBlock.js +0 -37
- package/dist/src/ui/tui/primitives/LinesBlock.js.map +0 -1
- package/dist/src/ui/tui/primitives/LoadingBox.d.ts +0 -8
- package/dist/src/ui/tui/primitives/LoadingBox.js +0 -10
- package/dist/src/ui/tui/primitives/LoadingBox.js.map +0 -1
- package/dist/src/ui/tui/primitives/LogViewer.d.ts +0 -11
- package/dist/src/ui/tui/primitives/LogViewer.js +0 -55
- package/dist/src/ui/tui/primitives/LogViewer.js.map +0 -1
- package/dist/src/ui/tui/primitives/ModalOverlay.d.ts +0 -25
- package/dist/src/ui/tui/primitives/ModalOverlay.js +0 -7
- package/dist/src/ui/tui/primitives/ModalOverlay.js.map +0 -1
- package/dist/src/ui/tui/primitives/NodeBlock.d.ts +0 -13
- package/dist/src/ui/tui/primitives/NodeBlock.js +0 -17
- package/dist/src/ui/tui/primitives/NodeBlock.js.map +0 -1
- package/dist/src/ui/tui/primitives/PickerMenu.d.ts +0 -20
- package/dist/src/ui/tui/primitives/PickerMenu.js +0 -143
- package/dist/src/ui/tui/primitives/PickerMenu.js.map +0 -1
- package/dist/src/ui/tui/primitives/ProgressList.d.ts +0 -15
- package/dist/src/ui/tui/primitives/ProgressList.js +0 -32
- package/dist/src/ui/tui/primitives/ProgressList.js.map +0 -1
- package/dist/src/ui/tui/primitives/PromptLabel.d.ts +0 -11
- package/dist/src/ui/tui/primitives/PromptLabel.js +0 -13
- package/dist/src/ui/tui/primitives/PromptLabel.js.map +0 -1
- package/dist/src/ui/tui/primitives/ScreenContainer.d.ts +0 -16
- package/dist/src/ui/tui/primitives/ScreenContainer.js +0 -36
- package/dist/src/ui/tui/primitives/ScreenContainer.js.map +0 -1
- package/dist/src/ui/tui/primitives/ScreenErrorBoundary.d.ts +0 -22
- package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js +0 -35
- package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js.map +0 -1
- package/dist/src/ui/tui/primitives/SplitView.d.ts +0 -11
- package/dist/src/ui/tui/primitives/SplitView.js +0 -9
- package/dist/src/ui/tui/primitives/SplitView.js.map +0 -1
- package/dist/src/ui/tui/primitives/TabContainer.d.ts +0 -23
- package/dist/src/ui/tui/primitives/TabContainer.js +0 -45
- package/dist/src/ui/tui/primitives/TabContainer.js.map +0 -1
- package/dist/src/ui/tui/primitives/TextBlock.d.ts +0 -41
- package/dist/src/ui/tui/primitives/TextBlock.js +0 -144
- package/dist/src/ui/tui/primitives/TextBlock.js.map +0 -1
- package/dist/src/ui/tui/primitives/content-types.d.ts +0 -37
- package/dist/src/ui/tui/primitives/content-types.js +0 -19
- package/dist/src/ui/tui/primitives/content-types.js.map +0 -1
- package/dist/src/ui/tui/primitives/index.d.ts +0 -27
- package/dist/src/ui/tui/primitives/index.js +0 -24
- package/dist/src/ui/tui/primitives/index.js.map +0 -1
- package/dist/src/ui/tui/primitives/layout-helpers.d.ts +0 -36
- package/dist/src/ui/tui/primitives/layout-helpers.js +0 -95
- package/dist/src/ui/tui/primitives/layout-helpers.js.map +0 -1
- package/dist/src/ui/tui/primitives/text-helpers.d.ts +0 -10
- package/dist/src/ui/tui/primitives/text-helpers.js +0 -43
- package/dist/src/ui/tui/primitives/text-helpers.js.map +0 -1
- package/dist/src/ui/tui/router.d.ts +0 -58
- package/dist/src/ui/tui/router.js +0 -96
- package/dist/src/ui/tui/router.js.map +0 -1
- package/dist/src/ui/tui/screen-registry.d.ts +0 -19
- package/dist/src/ui/tui/screen-registry.js +0 -46
- package/dist/src/ui/tui/screen-registry.js.map +0 -1
- package/dist/src/ui/tui/screens/AgentSkillIntroScreen.d.ts +0 -12
- package/dist/src/ui/tui/screens/AgentSkillIntroScreen.js +0 -75
- package/dist/src/ui/tui/screens/AgentSkillIntroScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/AuthErrorScreen.d.ts +0 -7
- package/dist/src/ui/tui/screens/AuthErrorScreen.js +0 -16
- package/dist/src/ui/tui/screens/AuthErrorScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/AuthScreen.d.ts +0 -13
- package/dist/src/ui/tui/screens/AuthScreen.js +0 -20
- package/dist/src/ui/tui/screens/AuthScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/IntroScreenLayout.d.ts +0 -46
- package/dist/src/ui/tui/screens/IntroScreenLayout.js +0 -33
- package/dist/src/ui/tui/screens/IntroScreenLayout.js.map +0 -1
- package/dist/src/ui/tui/screens/KeepSkillsScreen.d.ts +0 -14
- package/dist/src/ui/tui/screens/KeepSkillsScreen.js +0 -74
- package/dist/src/ui/tui/screens/KeepSkillsScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/ManagedSettingsScreen.d.ts +0 -13
- package/dist/src/ui/tui/screens/ManagedSettingsScreen.js +0 -32
- package/dist/src/ui/tui/screens/ManagedSettingsScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/McpScreen.d.ts +0 -24
- package/dist/src/ui/tui/screens/McpScreen.js +0 -130
- package/dist/src/ui/tui/screens/McpScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/OutroScreen.d.ts +0 -11
- package/dist/src/ui/tui/screens/OutroScreen.js +0 -22
- package/dist/src/ui/tui/screens/OutroScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/PortConflictScreen.d.ts +0 -11
- package/dist/src/ui/tui/screens/PortConflictScreen.js +0 -30
- package/dist/src/ui/tui/screens/PortConflictScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/PostHogIntegrationIntroScreen.d.ts +0 -15
- package/dist/src/ui/tui/screens/PostHogIntegrationIntroScreen.js +0 -135
- package/dist/src/ui/tui/screens/PostHogIntegrationIntroScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/RevenueIntroScreen.d.ts +0 -16
- package/dist/src/ui/tui/screens/RevenueIntroScreen.js +0 -89
- package/dist/src/ui/tui/screens/RevenueIntroScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/RunScreen.d.ts +0 -16
- package/dist/src/ui/tui/screens/RunScreen.js +0 -73
- package/dist/src/ui/tui/screens/RunScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.d.ts +0 -6
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.js +0 -30
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/SetupScreen.d.ts +0 -13
- package/dist/src/ui/tui/screens/SetupScreen.js +0 -74
- package/dist/src/ui/tui/screens/SetupScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/health/HealthCheckScreen.d.ts +0 -14
- package/dist/src/ui/tui/screens/health/HealthCheckScreen.js +0 -77
- package/dist/src/ui/tui/screens/health/HealthCheckScreen.js.map +0 -1
- package/dist/src/ui/tui/services/mcp-installer.d.ts +0 -21
- package/dist/src/ui/tui/services/mcp-installer.js +0 -58
- package/dist/src/ui/tui/services/mcp-installer.js.map +0 -1
- package/dist/src/ui/tui/start-tui.d.ts +0 -9
- package/dist/src/ui/tui/start-tui.js +0 -41
- package/dist/src/ui/tui/start-tui.js.map +0 -1
- package/dist/src/ui/tui/store.d.ts +0 -190
- package/dist/src/ui/tui/store.js +0 -474
- package/dist/src/ui/tui/store.js.map +0 -1
- package/dist/src/ui/tui/styles.d.ts +0 -32
- package/dist/src/ui/tui/styles.js +0 -35
- package/dist/src/ui/tui/styles.js.map +0 -1
- package/dist/src/ui/wizard-ui.d.ts +0 -81
- package/dist/src/ui/wizard-ui.js +0 -19
- package/dist/src/ui/wizard-ui.js.map +0 -1
- package/dist/src/utils/__tests__/analytics.test.d.ts +0 -1
- package/dist/src/utils/__tests__/analytics.test.js +0 -136
- package/dist/src/utils/__tests__/analytics.test.js.map +0 -1
- package/dist/src/utils/__tests__/provisioning.test.d.ts +0 -1
- package/dist/src/utils/__tests__/provisioning.test.js +0 -192
- package/dist/src/utils/__tests__/provisioning.test.js.map +0 -1
- package/dist/src/utils/__tests__/semver.test.d.ts +0 -1
- package/dist/src/utils/__tests__/semver.test.js +0 -159
- package/dist/src/utils/__tests__/semver.test.js.map +0 -1
- package/dist/src/utils/__tests__/setup-utils.test.d.ts +0 -1
- package/dist/src/utils/__tests__/setup-utils.test.js +0 -138
- package/dist/src/utils/__tests__/setup-utils.test.js.map +0 -1
- package/dist/src/utils/analytics.d.ts +0 -33
- package/dist/src/utils/analytics.js +0 -137
- package/dist/src/utils/analytics.js.map +0 -1
- package/dist/src/utils/anthropic-status.d.ts +0 -17
- package/dist/src/utils/anthropic-status.js +0 -49
- package/dist/src/utils/anthropic-status.js.map +0 -1
- package/dist/src/utils/bash.d.ts +0 -2
- package/dist/src/utils/bash.js +0 -54
- package/dist/src/utils/bash.js.map +0 -1
- package/dist/src/utils/custom-headers.d.ts +0 -9
- package/dist/src/utils/custom-headers.js +0 -24
- package/dist/src/utils/custom-headers.js.map +0 -1
- package/dist/src/utils/debug.d.ts +0 -29
- package/dist/src/utils/debug.js +0 -87
- package/dist/src/utils/debug.js.map +0 -1
- package/dist/src/utils/env-api-key.d.ts +0 -5
- package/dist/src/utils/env-api-key.js +0 -57
- package/dist/src/utils/env-api-key.js.map +0 -1
- package/dist/src/utils/environment.d.ts +0 -4
- package/dist/src/utils/environment.js +0 -77
- package/dist/src/utils/environment.js.map +0 -1
- package/dist/src/utils/file-utils.d.ts +0 -10
- package/dist/src/utils/file-utils.js +0 -49
- package/dist/src/utils/file-utils.js.map +0 -1
- package/dist/src/utils/logging.d.ts +0 -9
- package/dist/src/utils/logging.js +0 -47
- package/dist/src/utils/logging.js.map +0 -1
- package/dist/src/utils/oauth.d.ts +0 -33
- package/dist/src/utils/oauth.js +0 -288
- package/dist/src/utils/oauth.js.map +0 -1
- package/dist/src/utils/package-json.d.ts +0 -30
- package/dist/src/utils/package-json.js +0 -47
- package/dist/src/utils/package-json.js.map +0 -1
- package/dist/src/utils/package-manager.d.ts +0 -21
- package/dist/src/utils/package-manager.js +0 -210
- package/dist/src/utils/package-manager.js.map +0 -1
- package/dist/src/utils/provisioning.d.ts +0 -25
- package/dist/src/utils/provisioning.js +0 -191
- package/dist/src/utils/provisioning.js.map +0 -1
- package/dist/src/utils/rules/astro-rules.md +0 -44
- package/dist/src/utils/rules/next-rules.md +0 -9
- package/dist/src/utils/rules/react-native-rules.md +0 -7
- package/dist/src/utils/rules/react-rules.md +0 -7
- package/dist/src/utils/rules/svelte-rules.md +0 -7
- package/dist/src/utils/rules/universal.md +0 -32
- package/dist/src/utils/semver.d.ts +0 -21
- package/dist/src/utils/semver.js +0 -87
- package/dist/src/utils/semver.js.map +0 -1
- package/dist/src/utils/setup-utils.d.ts +0 -79
- package/dist/src/utils/setup-utils.js +0 -406
- package/dist/src/utils/setup-utils.js.map +0 -1
- package/dist/src/utils/string.d.ts +0 -1
- package/dist/src/utils/string.js +0 -9
- package/dist/src/utils/string.js.map +0 -1
- package/dist/src/utils/types.d.ts +0 -85
- package/dist/src/utils/types.js +0 -3
- package/dist/src/utils/types.js.map +0 -1
- package/dist/src/utils/urls.d.ts +0 -7
- package/dist/src/utils/urls.js +0 -78
- package/dist/src/utils/urls.js.map +0 -1
- package/dist/src/utils/vendor/is-unicorn-supported.d.ts +0 -1
- package/dist/src/utils/vendor/is-unicorn-supported.js +0 -24
- package/dist/src/utils/vendor/is-unicorn-supported.js.map +0 -1
- package/dist/src/utils/wizard-abort.d.ts +0 -16
- package/dist/src/utils/wizard-abort.js +0 -59
- package/dist/src/utils/wizard-abort.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cost-tracker.js","sourceRoot":"","sources":["../../../../../src/lib/middleware/benchmarks/cost-tracker.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Middleware, MiddlewareContext, MiddlewareStore } from '../types';\nimport type { TokenData } from './token-tracker';\nimport type { CacheData } from './cache-tracker';\n\nexport interface CostData {\n totalCost: number;\n phaseCosts: Array<{ phase: string; cost: number }>;\n}\n\n/** Claude Sonnet 4.6 pricing (USD per 1M tokens) */\nconst PRICE_PER_MTOK = {\n input: 3,\n output: 15,\n cacheRead: 0.3,\n cacheCreation5m: 3.75,\n cacheCreation1h: 6,\n} as const;\n\nfunction computeCost(\n inputTokens: number,\n outputTokens: number,\n cacheReadTokens: number,\n cacheCreation5m: number,\n cacheCreation1h: number,\n cacheCreationFallback: number,\n): number {\n const hasBreakdown = cacheCreation5m > 0 || cacheCreation1h > 0;\n return (\n inputTokens * (PRICE_PER_MTOK.input / 1e6) +\n outputTokens * (PRICE_PER_MTOK.output / 1e6) +\n cacheReadTokens * (PRICE_PER_MTOK.cacheRead / 1e6) +\n (hasBreakdown\n ? cacheCreation5m * (PRICE_PER_MTOK.cacheCreation5m / 1e6) +\n cacheCreation1h * (PRICE_PER_MTOK.cacheCreation1h / 1e6)\n : cacheCreationFallback * (PRICE_PER_MTOK.cacheCreation5m / 1e6))\n );\n}\n\nexport class CostTrackerPlugin implements Middleware {\n readonly name = 'cost';\n\n private phaseCosts: Array<{ phase: string; cost: number }> = [];\n private totalCost = 0;\n\n onPhaseTransition(\n fromPhase: string,\n _toPhase: string,\n ctx: MiddlewareContext,\n store: MiddlewareStore,\n ): void {\n const tokens = ctx.get<TokenData>('tokens');\n const cache = ctx.get<CacheData>('cache');\n const tokenSnap = tokens?.phaseSnapshots.at(-1);\n const cacheSnap = cache?.phaseSnapshots.at(-1);\n\n const totalIn = tokenSnap?.inputTokens ?? 0;\n const read = cacheSnap?.cacheReadTokens ?? 0;\n const creation = cacheSnap?.cacheCreationTokens ?? 0;\n const c5m = cacheSnap?.cacheCreation5m ?? 0;\n const c1h = cacheSnap?.cacheCreation1h ?? 0;\n const baseIn = Math.max(0, totalIn - read - creation);\n\n const phaseCost = computeCost(\n baseIn,\n tokenSnap?.outputTokens ?? 0,\n read,\n c5m,\n c1h,\n creation,\n );\n\n this.phaseCosts.push({ phase: fromPhase, cost: phaseCost });\n this.totalCost += phaseCost;\n store.set('cost', this.getData());\n }\n\n onFinalize(\n resultMessage: any,\n _totalDurationMs: number,\n ctx: MiddlewareContext,\n store: MiddlewareStore,\n ): void {\n const tokens = ctx.get<TokenData>('tokens');\n const cache = ctx.get<CacheData>('cache');\n const tokenSnap = tokens?.phaseSnapshots.at(-1);\n const cacheSnap = cache?.phaseSnapshots.at(-1);\n\n const totalIn = tokenSnap?.inputTokens ?? 0;\n const read = cacheSnap?.cacheReadTokens ?? 0;\n const creation = cacheSnap?.cacheCreationTokens ?? 0;\n const c5m = cacheSnap?.cacheCreation5m ?? 0;\n const c1h = cacheSnap?.cacheCreation1h ?? 0;\n const baseIn = Math.max(0, totalIn - read - creation);\n\n const lastPhaseCost = computeCost(\n baseIn,\n tokenSnap?.outputTokens ?? 0,\n read,\n c5m,\n c1h,\n creation,\n );\n\n this.phaseCosts.push({ phase: ctx.currentPhase, cost: lastPhaseCost });\n this.totalCost += lastPhaseCost;\n\n const sdkTotal =\n Number(resultMessage?.usage?.total_cost_usd ?? 0) ||\n Number(resultMessage?.total_cost_usd ?? 0);\n\n if (sdkTotal > 0 && this.totalCost > 0) {\n const scale = sdkTotal / this.totalCost;\n this.phaseCosts = this.phaseCosts.map((p) => ({\n phase: p.phase,\n cost: p.cost * scale,\n }));\n this.totalCost = sdkTotal;\n }\n\n store.set('cost', this.getData());\n }\n\n private getData(): CostData {\n return {\n totalCost: this.totalCost,\n phaseCosts: [...this.phaseCosts],\n };\n }\n}\n"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Duration tracking plugin (per-phase and total).
|
|
3
|
-
*/
|
|
4
|
-
import type { Middleware, MiddlewareContext, MiddlewareStore } from '../types';
|
|
5
|
-
export interface DurationData {
|
|
6
|
-
phaseSnapshots: Array<{
|
|
7
|
-
phase: string;
|
|
8
|
-
startTime: number;
|
|
9
|
-
endTime: number;
|
|
10
|
-
durationMs: number;
|
|
11
|
-
}>;
|
|
12
|
-
totalDurationMs: number;
|
|
13
|
-
}
|
|
14
|
-
export declare class DurationTrackerPlugin implements Middleware {
|
|
15
|
-
readonly name = "duration";
|
|
16
|
-
private phaseStartTime;
|
|
17
|
-
private phaseSnapshots;
|
|
18
|
-
onPhaseTransition(fromPhase: string, _toPhase: string, _ctx: MiddlewareContext, store: MiddlewareStore): void;
|
|
19
|
-
onFinalize(_resultMessage: any, totalDurationMs: number, ctx: MiddlewareContext, store: MiddlewareStore): void;
|
|
20
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Duration tracking plugin (per-phase and total).
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DurationTrackerPlugin = void 0;
|
|
7
|
-
class DurationTrackerPlugin {
|
|
8
|
-
name = 'duration';
|
|
9
|
-
phaseStartTime = Date.now();
|
|
10
|
-
phaseSnapshots = [];
|
|
11
|
-
onPhaseTransition(fromPhase, _toPhase, _ctx, store) {
|
|
12
|
-
const now = Date.now();
|
|
13
|
-
this.phaseSnapshots.push({
|
|
14
|
-
phase: fromPhase,
|
|
15
|
-
startTime: this.phaseStartTime,
|
|
16
|
-
endTime: now,
|
|
17
|
-
durationMs: now - this.phaseStartTime,
|
|
18
|
-
});
|
|
19
|
-
this.phaseStartTime = now;
|
|
20
|
-
store.set('duration', {
|
|
21
|
-
phaseSnapshots: [...this.phaseSnapshots],
|
|
22
|
-
totalDurationMs: 0,
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
onFinalize(_resultMessage, totalDurationMs, ctx, store) {
|
|
26
|
-
const now = Date.now();
|
|
27
|
-
this.phaseSnapshots.push({
|
|
28
|
-
phase: ctx.currentPhase,
|
|
29
|
-
startTime: this.phaseStartTime,
|
|
30
|
-
endTime: now,
|
|
31
|
-
durationMs: now - this.phaseStartTime,
|
|
32
|
-
});
|
|
33
|
-
store.set('duration', {
|
|
34
|
-
phaseSnapshots: [...this.phaseSnapshots],
|
|
35
|
-
totalDurationMs,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.DurationTrackerPlugin = DurationTrackerPlugin;
|
|
40
|
-
//# sourceMappingURL=duration-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"duration-tracker.js","sourceRoot":"","sources":["../../../../../src/lib/middleware/benchmarks/duration-tracker.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAcH,MAAa,qBAAqB;IACvB,IAAI,GAAG,UAAU,CAAC;IAEnB,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,cAAc,GAKjB,EAAE,CAAC;IAER,iBAAiB,CACf,SAAiB,EACjB,QAAgB,EAChB,IAAuB,EACvB,KAAsB;QAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC,cAAc;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;YACpB,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YACxC,eAAe,EAAE,CAAC;SACI,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CACR,cAAmB,EACnB,eAAuB,EACvB,GAAsB,EACtB,KAAsB;QAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,GAAG,CAAC,YAAY;YACvB,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC,cAAc;SACtC,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;YACpB,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YACxC,eAAe;SACO,CAAC,CAAC;IAC5B,CAAC;CACF;AAlDD,sDAkDC","sourcesContent":["/**\n * Duration tracking plugin (per-phase and total).\n */\n\nimport type { Middleware, MiddlewareContext, MiddlewareStore } from '../types';\n\nexport interface DurationData {\n phaseSnapshots: Array<{\n phase: string;\n startTime: number;\n endTime: number;\n durationMs: number;\n }>;\n totalDurationMs: number;\n}\n\nexport class DurationTrackerPlugin implements Middleware {\n readonly name = 'duration';\n\n private phaseStartTime = Date.now();\n private phaseSnapshots: Array<{\n phase: string;\n startTime: number;\n endTime: number;\n durationMs: number;\n }> = [];\n\n onPhaseTransition(\n fromPhase: string,\n _toPhase: string,\n _ctx: MiddlewareContext,\n store: MiddlewareStore,\n ): void {\n const now = Date.now();\n this.phaseSnapshots.push({\n phase: fromPhase,\n startTime: this.phaseStartTime,\n endTime: now,\n durationMs: now - this.phaseStartTime,\n });\n this.phaseStartTime = now;\n store.set('duration', {\n phaseSnapshots: [...this.phaseSnapshots],\n totalDurationMs: 0,\n } satisfies DurationData);\n }\n\n onFinalize(\n _resultMessage: any,\n totalDurationMs: number,\n ctx: MiddlewareContext,\n store: MiddlewareStore,\n ): void {\n const now = Date.now();\n this.phaseSnapshots.push({\n phase: ctx.currentPhase,\n startTime: this.phaseStartTime,\n endTime: now,\n durationMs: now - this.phaseStartTime,\n });\n\n store.set('duration', {\n phaseSnapshots: [...this.phaseSnapshots],\n totalDurationMs,\n } satisfies DurationData);\n }\n}\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Plugin registry and factory.
|
|
3
|
-
*
|
|
4
|
-
* Maps plugin names to constructors and creates the ordered plugin list
|
|
5
|
-
* from a BenchmarkConfig.
|
|
6
|
-
*/
|
|
7
|
-
import type { Middleware, MiddlewareFactoryOptions } from '../types';
|
|
8
|
-
import type { BenchmarkConfig } from '../config';
|
|
9
|
-
export declare function createPluginsFromConfig(config: BenchmarkConfig, opts: MiddlewareFactoryOptions): Middleware[];
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Plugin registry and factory.
|
|
4
|
-
*
|
|
5
|
-
* Maps plugin names to constructors and creates the ordered plugin list
|
|
6
|
-
* from a BenchmarkConfig.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.createPluginsFromConfig = createPluginsFromConfig;
|
|
10
|
-
const turn_counter_1 = require("./turn-counter");
|
|
11
|
-
const token_tracker_1 = require("./token-tracker");
|
|
12
|
-
const cache_tracker_1 = require("./cache-tracker");
|
|
13
|
-
const compaction_tracker_1 = require("./compaction-tracker");
|
|
14
|
-
const context_size_tracker_1 = require("./context-size-tracker");
|
|
15
|
-
const cost_tracker_1 = require("./cost-tracker");
|
|
16
|
-
const duration_tracker_1 = require("./duration-tracker");
|
|
17
|
-
const summary_1 = require("./summary");
|
|
18
|
-
const json_writer_1 = require("./json-writer");
|
|
19
|
-
const PLUGIN_REGISTRY = {
|
|
20
|
-
turns: () => new turn_counter_1.TurnCounterPlugin(),
|
|
21
|
-
tokens: () => new token_tracker_1.TokenTrackerPlugin(),
|
|
22
|
-
cache: () => new cache_tracker_1.CacheTrackerPlugin(),
|
|
23
|
-
compactions: () => new compaction_tracker_1.CompactionTrackerPlugin(),
|
|
24
|
-
contextSize: () => new context_size_tracker_1.ContextSizeTrackerPlugin(),
|
|
25
|
-
cost: () => new cost_tracker_1.CostTrackerPlugin(),
|
|
26
|
-
duration: () => new duration_tracker_1.DurationTrackerPlugin(),
|
|
27
|
-
summary: (opts) => new summary_1.SummaryPlugin(opts.spinner),
|
|
28
|
-
jsonWriter: (opts) => new json_writer_1.JsonWriterPlugin(opts.outputPath),
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Execution order — data producers before consumers:
|
|
32
|
-
* turns (dedup) -> tokens -> cache -> compactions -> contextSize -> cost -> duration -> summary -> jsonWriter
|
|
33
|
-
*/
|
|
34
|
-
const PLUGIN_ORDER = [
|
|
35
|
-
'turns',
|
|
36
|
-
'tokens',
|
|
37
|
-
'cache',
|
|
38
|
-
'compactions',
|
|
39
|
-
'contextSize',
|
|
40
|
-
'cost',
|
|
41
|
-
'duration',
|
|
42
|
-
'summary',
|
|
43
|
-
'jsonWriter',
|
|
44
|
-
];
|
|
45
|
-
function createPluginsFromConfig(config, opts) {
|
|
46
|
-
const resolvedOpts = {
|
|
47
|
-
...opts,
|
|
48
|
-
outputPath: opts.outputPath ?? config.output.benchmarkPath,
|
|
49
|
-
};
|
|
50
|
-
// If suppressWizardLogs is set, disable the summary plugin
|
|
51
|
-
const effectivePlugins = { ...config.plugins };
|
|
52
|
-
if (config.output.suppressWizardLogs) {
|
|
53
|
-
effectivePlugins.summary = false;
|
|
54
|
-
}
|
|
55
|
-
return PLUGIN_ORDER.filter((name) => effectivePlugins[name] !== false)
|
|
56
|
-
.map((name) => PLUGIN_REGISTRY[name])
|
|
57
|
-
.filter(Boolean)
|
|
58
|
-
.map((factory) => factory(resolvedOpts));
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/middleware/benchmarks/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA4CH,0DAmBC;AA3DD,iDAAmD;AACnD,mDAAqD;AACrD,mDAAqD;AACrD,6DAA+D;AAC/D,iEAAkE;AAClE,iDAAmD;AACnD,yDAA2D;AAC3D,uCAA0C;AAC1C,+CAAiD;AAIjD,MAAM,eAAe,GAAkC;IACrD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,gCAAiB,EAAE;IACpC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAkB,EAAE;IACtC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAkB,EAAE;IACrC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,4CAAuB,EAAE;IAChD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,+CAAwB,EAAE;IACjD,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,gCAAiB,EAAE;IACnC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,wCAAqB,EAAE;IAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,uBAAa,CAAC,IAAI,CAAC,OAAQ,CAAC;IACnD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,8BAAgB,CAAC,IAAI,CAAC,UAAW,CAAC;CAC7D,CAAC;AAEF;;;GAGG;AACH,MAAM,YAAY,GAAG;IACnB,OAAO;IACP,QAAQ;IACR,OAAO;IACP,aAAa;IACb,aAAa;IACb,MAAM;IACN,UAAU;IACV,SAAS;IACT,YAAY;CACb,CAAC;AAEF,SAAgB,uBAAuB,CACrC,MAAuB,EACvB,IAA8B;IAE9B,MAAM,YAAY,GAA6B;QAC7C,GAAG,IAAI;QACP,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa;KAC3D,CAAC;IAEF,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACrC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;SACnE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SACpC,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["/**\n * Plugin registry and factory.\n *\n * Maps plugin names to constructors and creates the ordered plugin list\n * from a BenchmarkConfig.\n */\n\nimport type { Middleware, MiddlewareFactoryOptions } from '../types';\nimport type { BenchmarkConfig } from '../config';\nimport { TurnCounterPlugin } from './turn-counter';\nimport { TokenTrackerPlugin } from './token-tracker';\nimport { CacheTrackerPlugin } from './cache-tracker';\nimport { CompactionTrackerPlugin } from './compaction-tracker';\nimport { ContextSizeTrackerPlugin } from './context-size-tracker';\nimport { CostTrackerPlugin } from './cost-tracker';\nimport { DurationTrackerPlugin } from './duration-tracker';\nimport { SummaryPlugin } from './summary';\nimport { JsonWriterPlugin } from './json-writer';\n\ntype PluginFactory = (opts: MiddlewareFactoryOptions) => Middleware;\n\nconst PLUGIN_REGISTRY: Record<string, PluginFactory> = {\n turns: () => new TurnCounterPlugin(),\n tokens: () => new TokenTrackerPlugin(),\n cache: () => new CacheTrackerPlugin(),\n compactions: () => new CompactionTrackerPlugin(),\n contextSize: () => new ContextSizeTrackerPlugin(),\n cost: () => new CostTrackerPlugin(),\n duration: () => new DurationTrackerPlugin(),\n summary: (opts) => new SummaryPlugin(opts.spinner!),\n jsonWriter: (opts) => new JsonWriterPlugin(opts.outputPath!),\n};\n\n/**\n * Execution order — data producers before consumers:\n * turns (dedup) -> tokens -> cache -> compactions -> contextSize -> cost -> duration -> summary -> jsonWriter\n */\nconst PLUGIN_ORDER = [\n 'turns',\n 'tokens',\n 'cache',\n 'compactions',\n 'contextSize',\n 'cost',\n 'duration',\n 'summary',\n 'jsonWriter',\n];\n\nexport function createPluginsFromConfig(\n config: BenchmarkConfig,\n opts: MiddlewareFactoryOptions,\n): Middleware[] {\n const resolvedOpts: MiddlewareFactoryOptions = {\n ...opts,\n outputPath: opts.outputPath ?? config.output.benchmarkPath,\n };\n\n // If suppressWizardLogs is set, disable the summary plugin\n const effectivePlugins = { ...config.plugins };\n if (config.output.suppressWizardLogs) {\n effectivePlugins.summary = false;\n }\n\n return PLUGIN_ORDER.filter((name) => effectivePlugins[name] !== false)\n .map((name) => PLUGIN_REGISTRY[name])\n .filter(Boolean)\n .map((factory) => factory(resolvedOpts));\n}\n"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JSON file output plugin.
|
|
3
|
-
*
|
|
4
|
-
* Assembles the BenchmarkData structure from all upstream plugin data
|
|
5
|
-
* and writes it to a JSON file. Returns the BenchmarkData for backward compat.
|
|
6
|
-
*/
|
|
7
|
-
import type { Middleware, MiddlewareContext, MiddlewareStore } from '../types';
|
|
8
|
-
import type { BenchmarkData } from '../benchmark';
|
|
9
|
-
export declare class JsonWriterPlugin implements Middleware {
|
|
10
|
-
readonly name = "jsonWriter";
|
|
11
|
-
private outputPath;
|
|
12
|
-
constructor(outputPath: string);
|
|
13
|
-
onFinalize(resultMessage: any, totalDurationMs: number, ctx: MiddlewareContext, _store: MiddlewareStore): BenchmarkData;
|
|
14
|
-
private writeBenchmarkData;
|
|
15
|
-
}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* JSON file output plugin.
|
|
4
|
-
*
|
|
5
|
-
* Assembles the BenchmarkData structure from all upstream plugin data
|
|
6
|
-
* and writes it to a JSON file. Returns the BenchmarkData for backward compat.
|
|
7
|
-
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.JsonWriterPlugin = void 0;
|
|
13
|
-
const fs_1 = __importDefault(require("fs"));
|
|
14
|
-
const ui_1 = require("../../../ui");
|
|
15
|
-
const debug_1 = require("../../../utils/debug");
|
|
16
|
-
const agent_interface_1 = require("../../agent/agent-interface");
|
|
17
|
-
/**
|
|
18
|
-
* Sum token usage across all models from the SDK's modelUsage field.
|
|
19
|
-
*/
|
|
20
|
-
function sumModelUsage(modelUsage) {
|
|
21
|
-
let input_tokens = 0;
|
|
22
|
-
let output_tokens = 0;
|
|
23
|
-
let cache_creation_input_tokens = 0;
|
|
24
|
-
let cache_read_input_tokens = 0;
|
|
25
|
-
for (const model of Object.values(modelUsage)) {
|
|
26
|
-
input_tokens += model.inputTokens ?? 0;
|
|
27
|
-
output_tokens += model.outputTokens ?? 0;
|
|
28
|
-
cache_creation_input_tokens += model.cacheCreationInputTokens ?? 0;
|
|
29
|
-
cache_read_input_tokens += model.cacheReadInputTokens ?? 0;
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
input_tokens,
|
|
33
|
-
output_tokens,
|
|
34
|
-
cache_creation_input_tokens,
|
|
35
|
-
cache_read_input_tokens,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
class JsonWriterPlugin {
|
|
39
|
-
name = 'jsonWriter';
|
|
40
|
-
outputPath;
|
|
41
|
-
constructor(outputPath) {
|
|
42
|
-
this.outputPath = outputPath;
|
|
43
|
-
}
|
|
44
|
-
onFinalize(resultMessage, totalDurationMs, ctx, _store) {
|
|
45
|
-
const tokens = ctx.get('tokens');
|
|
46
|
-
const cache = ctx.get('cache');
|
|
47
|
-
const turns = ctx.get('turns');
|
|
48
|
-
const cost = ctx.get('cost');
|
|
49
|
-
const duration = ctx.get('duration');
|
|
50
|
-
const compactions = ctx.get('compactions');
|
|
51
|
-
const contextSize = ctx.get('contextSize');
|
|
52
|
-
const modelUsage = resultMessage?.modelUsage ?? {};
|
|
53
|
-
const aggregateUsage = sumModelUsage(modelUsage);
|
|
54
|
-
const phaseCount = duration?.phaseSnapshots.length ?? 0;
|
|
55
|
-
const steps = [];
|
|
56
|
-
for (let i = 0; i < phaseCount; i++) {
|
|
57
|
-
const dur = duration.phaseSnapshots[i];
|
|
58
|
-
const tokenSnap = tokens?.phaseSnapshots[i];
|
|
59
|
-
const cacheSnap = cache?.phaseSnapshots[i];
|
|
60
|
-
const turnSnap = turns?.phaseSnapshots[i];
|
|
61
|
-
const costSnap = cost?.phaseCosts[i];
|
|
62
|
-
const compSnap = compactions?.phaseSnapshots[i];
|
|
63
|
-
const ctxSnap = contextSize?.phaseSnapshots[i];
|
|
64
|
-
const step = {
|
|
65
|
-
name: dur.phase,
|
|
66
|
-
usage: {
|
|
67
|
-
input_tokens: tokenSnap?.inputTokens ?? 0,
|
|
68
|
-
output_tokens: tokenSnap?.outputTokens ?? 0,
|
|
69
|
-
cache_creation_input_tokens: cacheSnap?.cacheCreationTokens ?? 0,
|
|
70
|
-
cache_read_input_tokens: cacheSnap?.cacheReadTokens ?? 0,
|
|
71
|
-
...((cacheSnap?.cacheCreation5m ?? 0) +
|
|
72
|
-
(cacheSnap?.cacheCreation1h ?? 0) >
|
|
73
|
-
0 && {
|
|
74
|
-
cache_creation: {
|
|
75
|
-
ephemeral_5m_input_tokens: cacheSnap?.cacheCreation5m ?? 0,
|
|
76
|
-
ephemeral_1h_input_tokens: cacheSnap?.cacheCreation1h ?? 0,
|
|
77
|
-
},
|
|
78
|
-
}),
|
|
79
|
-
},
|
|
80
|
-
modelUsage: {},
|
|
81
|
-
totalCostUsd: costSnap?.cost ?? 0,
|
|
82
|
-
durationMs: dur.durationMs,
|
|
83
|
-
durationApiMs: 0,
|
|
84
|
-
numTurns: turnSnap?.turns ?? 0,
|
|
85
|
-
...(ctxSnap?.contextTokensIn !== undefined && {
|
|
86
|
-
contextTokensIn: ctxSnap.contextTokensIn,
|
|
87
|
-
}),
|
|
88
|
-
...(ctxSnap?.contextTokensOut !== undefined && {
|
|
89
|
-
contextTokensOut: ctxSnap.contextTokensOut,
|
|
90
|
-
}),
|
|
91
|
-
...(compSnap && compSnap.compactions > 0
|
|
92
|
-
? {
|
|
93
|
-
compactions: compSnap.compactions,
|
|
94
|
-
compactionPreTokens: compSnap.preTokens,
|
|
95
|
-
}
|
|
96
|
-
: {}),
|
|
97
|
-
};
|
|
98
|
-
steps.push(step);
|
|
99
|
-
}
|
|
100
|
-
const totalTurns = turns?.totalTurns ?? 0;
|
|
101
|
-
const totalCost = cost?.totalCost ?? 0;
|
|
102
|
-
const totalCompactions = compactions?.totalCompactions ?? 0;
|
|
103
|
-
const fromModelUsage = aggregateUsage.input_tokens +
|
|
104
|
-
aggregateUsage.cache_read_input_tokens +
|
|
105
|
-
aggregateUsage.cache_creation_input_tokens;
|
|
106
|
-
const inputTokens = fromModelUsage > 0
|
|
107
|
-
? fromModelUsage
|
|
108
|
-
: (tokens?.totalInput ?? 0) +
|
|
109
|
-
(cache?.totalRead ?? 0) +
|
|
110
|
-
(cache?.totalCreation ?? 0);
|
|
111
|
-
const outputTokens = aggregateUsage.output_tokens > 0
|
|
112
|
-
? aggregateUsage.output_tokens
|
|
113
|
-
: tokens?.totalOutput ?? 0;
|
|
114
|
-
const benchmark = {
|
|
115
|
-
timestamp: new Date().toISOString(),
|
|
116
|
-
steps,
|
|
117
|
-
totals: {
|
|
118
|
-
totalCostUsd: totalCost,
|
|
119
|
-
durationMs: totalDurationMs,
|
|
120
|
-
inputTokens,
|
|
121
|
-
outputTokens,
|
|
122
|
-
numTurns: resultMessage?.num_turns ?? totalTurns,
|
|
123
|
-
totalCompactions,
|
|
124
|
-
totalCacheReadTokens: cache?.totalRead ?? 0,
|
|
125
|
-
totalCacheCreation5mTokens: cache?.totalCreation5m ?? 0,
|
|
126
|
-
totalCacheCreation1hTokens: cache?.totalCreation1h ?? 0,
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
|
-
this.writeBenchmarkData(benchmark);
|
|
130
|
-
return benchmark;
|
|
131
|
-
}
|
|
132
|
-
writeBenchmarkData(data) {
|
|
133
|
-
try {
|
|
134
|
-
fs_1.default.writeFileSync(this.outputPath, JSON.stringify(data, null, 2));
|
|
135
|
-
(0, debug_1.logToFile)(`Benchmark data written to ${this.outputPath}`);
|
|
136
|
-
(0, ui_1.getUI)().log.info(`● ${agent_interface_1.AgentSignals.BENCHMARK} Results written to ${this.outputPath}`);
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
(0, debug_1.logToFile)('Failed to write benchmark data:', error);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
exports.JsonWriterPlugin = JsonWriterPlugin;
|
|
144
|
-
//# sourceMappingURL=json-writer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-writer.js","sourceRoot":"","sources":["../../../../../src/lib/middleware/benchmarks/json-writer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * JSON file output plugin.\n *\n * Assembles the BenchmarkData structure from all upstream plugin data\n * and writes it to a JSON file. Returns the BenchmarkData for backward compat.\n */\n\nimport fs from 'fs';\nimport { getUI } from '../../../ui';\nimport { logToFile } from '../../../utils/debug';\nimport { AgentSignals } from '../../agent/agent-interface';\nimport type { Middleware, MiddlewareContext, MiddlewareStore } from '../types';\nimport type { TokenData } from './token-tracker';\nimport type { CacheData } from './cache-tracker';\nimport type { TurnData } from './turn-counter';\nimport type { CostData } from './cost-tracker';\nimport type { DurationData } from './duration-tracker';\nimport type { CompactionData } from './compaction-tracker';\nimport type { ContextSizeData } from './context-size-tracker';\nimport type { BenchmarkData, StepUsage } from '../benchmark';\n\n/**\n * Sum token usage across all models from the SDK's modelUsage field.\n */\nfunction sumModelUsage(modelUsage: Record<string, any>): {\n input_tokens: number;\n output_tokens: number;\n cache_creation_input_tokens: number;\n cache_read_input_tokens: number;\n} {\n let input_tokens = 0;\n let output_tokens = 0;\n let cache_creation_input_tokens = 0;\n let cache_read_input_tokens = 0;\n\n for (const model of Object.values(modelUsage)) {\n input_tokens += model.inputTokens ?? 0;\n output_tokens += model.outputTokens ?? 0;\n cache_creation_input_tokens += model.cacheCreationInputTokens ?? 0;\n cache_read_input_tokens += model.cacheReadInputTokens ?? 0;\n }\n\n return {\n input_tokens,\n output_tokens,\n cache_creation_input_tokens,\n cache_read_input_tokens,\n };\n}\n\nexport class JsonWriterPlugin implements Middleware {\n readonly name = 'jsonWriter';\n\n private outputPath: string;\n\n constructor(outputPath: string) {\n this.outputPath = outputPath;\n }\n\n onFinalize(\n resultMessage: any,\n totalDurationMs: number,\n ctx: MiddlewareContext,\n _store: MiddlewareStore,\n ): BenchmarkData {\n const tokens = ctx.get<TokenData>('tokens');\n const cache = ctx.get<CacheData>('cache');\n const turns = ctx.get<TurnData>('turns');\n const cost = ctx.get<CostData>('cost');\n const duration = ctx.get<DurationData>('duration');\n const compactions = ctx.get<CompactionData>('compactions');\n const contextSize = ctx.get<ContextSizeData>('contextSize');\n\n const modelUsage = resultMessage?.modelUsage ?? {};\n const aggregateUsage = sumModelUsage(modelUsage);\n\n const phaseCount = duration?.phaseSnapshots.length ?? 0;\n const steps: StepUsage[] = [];\n\n for (let i = 0; i < phaseCount; i++) {\n const dur = duration!.phaseSnapshots[i];\n const tokenSnap = tokens?.phaseSnapshots[i];\n const cacheSnap = cache?.phaseSnapshots[i];\n const turnSnap = turns?.phaseSnapshots[i];\n const costSnap = cost?.phaseCosts[i];\n const compSnap = compactions?.phaseSnapshots[i];\n const ctxSnap = contextSize?.phaseSnapshots[i];\n\n const step: StepUsage = {\n name: dur.phase,\n usage: {\n input_tokens: tokenSnap?.inputTokens ?? 0,\n output_tokens: tokenSnap?.outputTokens ?? 0,\n cache_creation_input_tokens: cacheSnap?.cacheCreationTokens ?? 0,\n cache_read_input_tokens: cacheSnap?.cacheReadTokens ?? 0,\n ...((cacheSnap?.cacheCreation5m ?? 0) +\n (cacheSnap?.cacheCreation1h ?? 0) >\n 0 && {\n cache_creation: {\n ephemeral_5m_input_tokens: cacheSnap?.cacheCreation5m ?? 0,\n ephemeral_1h_input_tokens: cacheSnap?.cacheCreation1h ?? 0,\n },\n }),\n },\n modelUsage: {},\n totalCostUsd: costSnap?.cost ?? 0,\n durationMs: dur.durationMs,\n durationApiMs: 0,\n numTurns: turnSnap?.turns ?? 0,\n ...(ctxSnap?.contextTokensIn !== undefined && {\n contextTokensIn: ctxSnap.contextTokensIn,\n }),\n ...(ctxSnap?.contextTokensOut !== undefined && {\n contextTokensOut: ctxSnap.contextTokensOut,\n }),\n ...(compSnap && compSnap.compactions > 0\n ? {\n compactions: compSnap.compactions,\n compactionPreTokens: compSnap.preTokens,\n }\n : {}),\n };\n\n steps.push(step);\n }\n\n const totalTurns = turns?.totalTurns ?? 0;\n const totalCost = cost?.totalCost ?? 0;\n const totalCompactions = compactions?.totalCompactions ?? 0;\n const fromModelUsage =\n aggregateUsage.input_tokens +\n aggregateUsage.cache_read_input_tokens +\n aggregateUsage.cache_creation_input_tokens;\n const inputTokens =\n fromModelUsage > 0\n ? fromModelUsage\n : (tokens?.totalInput ?? 0) +\n (cache?.totalRead ?? 0) +\n (cache?.totalCreation ?? 0);\n const outputTokens =\n aggregateUsage.output_tokens > 0\n ? aggregateUsage.output_tokens\n : tokens?.totalOutput ?? 0;\n\n const benchmark: BenchmarkData = {\n timestamp: new Date().toISOString(),\n steps,\n totals: {\n totalCostUsd: totalCost,\n durationMs: totalDurationMs,\n inputTokens,\n outputTokens,\n numTurns: resultMessage?.num_turns ?? totalTurns,\n totalCompactions,\n totalCacheReadTokens: cache?.totalRead ?? 0,\n totalCacheCreation5mTokens: cache?.totalCreation5m ?? 0,\n totalCacheCreation1hTokens: cache?.totalCreation1h ?? 0,\n },\n };\n\n this.writeBenchmarkData(benchmark);\n return benchmark;\n }\n\n private writeBenchmarkData(data: BenchmarkData): void {\n try {\n fs.writeFileSync(this.outputPath, JSON.stringify(data, null, 2));\n logToFile(`Benchmark data written to ${this.outputPath}`);\n getUI().log.info(\n `● ${AgentSignals.BENCHMARK} Results written to ${this.outputPath}`,\n );\n } catch (error) {\n logToFile('Failed to write benchmark data:', error);\n }\n }\n}\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type SpinnerHandle } from '../../../ui';
|
|
2
|
-
import type { Middleware, MiddlewareContext, MiddlewareStore } from '../types';
|
|
3
|
-
export declare class SummaryPlugin implements Middleware {
|
|
4
|
-
readonly name = "summary";
|
|
5
|
-
private spinner;
|
|
6
|
-
constructor(spinner: SpinnerHandle);
|
|
7
|
-
onPhaseTransition(fromPhase: string, toPhase: string, ctx: MiddlewareContext, _store: MiddlewareStore): void;
|
|
8
|
-
onFinalize(_resultMessage: any, totalDurationMs: number, ctx: MiddlewareContext, _store: MiddlewareStore): void;
|
|
9
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SummaryPlugin = void 0;
|
|
4
|
-
const ui_1 = require("../../../ui");
|
|
5
|
-
const agent_interface_1 = require("../../agent/agent-interface");
|
|
6
|
-
function fmtDuration(ms) {
|
|
7
|
-
const s = Math.round(ms / 1000);
|
|
8
|
-
const m = Math.floor(s / 60);
|
|
9
|
-
return m > 0 ? `${m}m ${s % 60}s` : `${s}s`;
|
|
10
|
-
}
|
|
11
|
-
function fmtTok(n) {
|
|
12
|
-
if (n >= 1_000_000)
|
|
13
|
-
return `${(n / 1_000_000).toFixed(1)}M`;
|
|
14
|
-
if (n >= 1_000)
|
|
15
|
-
return `${(n / 1000).toFixed(1)}K`;
|
|
16
|
-
return n.toLocaleString();
|
|
17
|
-
}
|
|
18
|
-
function fmtCost(usd) {
|
|
19
|
-
if (usd > 0 && usd < 0.01)
|
|
20
|
-
return `$${usd.toFixed(4)}`;
|
|
21
|
-
return `$${usd.toFixed(2)}`;
|
|
22
|
-
}
|
|
23
|
-
function printPhase(s) {
|
|
24
|
-
const baseIn = Math.max(0, s.inputTokens - s.cacheRead - s.cacheCreation5m - s.cacheCreation1h);
|
|
25
|
-
return [
|
|
26
|
-
`${s.phase}: ${fmtDuration(s.durationMs)}, ${s.turns} turns, cost: ${fmtCost(s.cost)}`,
|
|
27
|
-
` in: ${fmtTok(baseIn)}, out: ${fmtTok(s.outputTokens)}, cache_read: ${fmtTok(s.cacheRead)}, cache_5m: ${fmtTok(s.cacheCreation5m)}, cache_1h: ${fmtTok(s.cacheCreation1h)}`,
|
|
28
|
-
s.compactions > 0 ? ` ${s.compactions} compaction(s)` : null,
|
|
29
|
-
s.contextOut !== undefined ? ` ctx_out: ${fmtTok(s.contextOut)}` : null,
|
|
30
|
-
]
|
|
31
|
-
.filter(Boolean)
|
|
32
|
-
.join('\n');
|
|
33
|
-
}
|
|
34
|
-
function getPhaseStats(i, ctx) {
|
|
35
|
-
const duration = ctx.get('duration');
|
|
36
|
-
const dur = duration?.phaseSnapshots[i];
|
|
37
|
-
if (!dur)
|
|
38
|
-
return null;
|
|
39
|
-
const tokens = ctx.get('tokens');
|
|
40
|
-
const turns = ctx.get('turns');
|
|
41
|
-
const cost = ctx.get('cost');
|
|
42
|
-
const compactions = ctx.get('compactions');
|
|
43
|
-
const contextSize = ctx.get('contextSize');
|
|
44
|
-
const cache = ctx.get('cache');
|
|
45
|
-
return {
|
|
46
|
-
phase: dur.phase,
|
|
47
|
-
durationMs: dur.durationMs,
|
|
48
|
-
turns: turns?.phaseSnapshots[i]?.turns ?? 0,
|
|
49
|
-
inputTokens: tokens?.phaseSnapshots[i]?.inputTokens ?? 0,
|
|
50
|
-
outputTokens: tokens?.phaseSnapshots[i]?.outputTokens ?? 0,
|
|
51
|
-
cacheRead: cache?.phaseSnapshots[i]?.cacheReadTokens ?? 0,
|
|
52
|
-
cacheCreation5m: cache?.phaseSnapshots[i]?.cacheCreation5m ?? 0,
|
|
53
|
-
cacheCreation1h: cache?.phaseSnapshots[i]?.cacheCreation1h ?? 0,
|
|
54
|
-
cost: cost?.phaseCosts[i]?.cost ?? 0,
|
|
55
|
-
compactions: compactions?.phaseSnapshots[i]?.compactions ?? 0,
|
|
56
|
-
contextOut: contextSize?.phaseSnapshots[i]?.contextTokensOut,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
class SummaryPlugin {
|
|
60
|
-
name = 'summary';
|
|
61
|
-
spinner;
|
|
62
|
-
constructor(spinner) {
|
|
63
|
-
this.spinner = spinner;
|
|
64
|
-
}
|
|
65
|
-
onPhaseTransition(fromPhase, toPhase, ctx, _store) {
|
|
66
|
-
const duration = ctx.get('duration');
|
|
67
|
-
const idx = (duration?.phaseSnapshots.length ?? 1) - 1;
|
|
68
|
-
const stats = getPhaseStats(idx, ctx);
|
|
69
|
-
if (stats) {
|
|
70
|
-
this.spinner.stop(`${agent_interface_1.AgentSignals.BENCHMARK} ${printPhase(stats)}`);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
this.spinner.stop(`${agent_interface_1.AgentSignals.BENCHMARK} ${fromPhase}`);
|
|
74
|
-
}
|
|
75
|
-
(0, ui_1.getUI)().log.info(`${agent_interface_1.AgentSignals.BENCHMARK} Starting phase: ${toPhase}`);
|
|
76
|
-
this.spinner.start(`Integrating PostHog (${toPhase})...`);
|
|
77
|
-
}
|
|
78
|
-
onFinalize(_resultMessage, totalDurationMs, ctx, _store) {
|
|
79
|
-
const duration = ctx.get('duration');
|
|
80
|
-
const cost = ctx.get('cost');
|
|
81
|
-
const tokens = ctx.get('tokens');
|
|
82
|
-
const cache = ctx.get('cache');
|
|
83
|
-
const phaseCount = duration?.phaseSnapshots.length ?? 0;
|
|
84
|
-
const totalCost = cost?.totalCost ?? 0;
|
|
85
|
-
(0, ui_1.getUI)().log.info('');
|
|
86
|
-
(0, ui_1.getUI)().log.info(`◇ ${agent_interface_1.AgentSignals.BENCHMARK} ${phaseCount} phases in ${fmtDuration(totalDurationMs)}, cost: ${fmtCost(totalCost)}`);
|
|
87
|
-
(0, ui_1.getUI)().log.info(` total in: ${fmtTok(tokens?.totalInput ?? 0)}, out: ${fmtTok(tokens?.totalOutput ?? 0)}, cache_read: ${fmtTok(cache?.totalRead ?? 0)}, cache_5m: ${fmtTok(cache?.totalCreation5m ?? 0)}, cache_1h: ${fmtTok(cache?.totalCreation1h ?? 0)}`);
|
|
88
|
-
(0, ui_1.getUI)().log.info('');
|
|
89
|
-
(0, ui_1.getUI)().log.info(`● ${agent_interface_1.AgentSignals.BENCHMARK} Summary by phase:`);
|
|
90
|
-
if (duration?.phaseSnapshots) {
|
|
91
|
-
for (let i = 0; i < duration.phaseSnapshots.length; i++) {
|
|
92
|
-
const stats = getPhaseStats(i, ctx);
|
|
93
|
-
if (stats) {
|
|
94
|
-
(0, ui_1.getUI)().log.info(printPhase(stats));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
(0, ui_1.getUI)().log.info('');
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
exports.SummaryPlugin = SummaryPlugin;
|
|
102
|
-
//# sourceMappingURL=summary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../../../src/lib/middleware/benchmarks/summary.ts"],"names":[],"mappings":"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","sourcesContent":["import { getUI, type SpinnerHandle } from '../../../ui';\nimport { AgentSignals } from '../../agent/agent-interface';\nimport type { Middleware, MiddlewareContext, MiddlewareStore } from '../types';\nimport type { TokenData } from './token-tracker';\nimport type { TurnData } from './turn-counter';\nimport type { CostData } from './cost-tracker';\nimport type { DurationData } from './duration-tracker';\nimport type { CompactionData } from './compaction-tracker';\nimport type { ContextSizeData } from './context-size-tracker';\nimport type { CacheData } from './cache-tracker';\n\nfunction fmtDuration(ms: number): string {\n const s = Math.round(ms / 1000);\n const m = Math.floor(s / 60);\n return m > 0 ? `${m}m ${s % 60}s` : `${s}s`;\n}\n\nfunction fmtTok(n: number): string {\n if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;\n if (n >= 1_000) return `${(n / 1000).toFixed(1)}K`;\n return n.toLocaleString();\n}\n\nfunction fmtCost(usd: number): string {\n if (usd > 0 && usd < 0.01) return `$${usd.toFixed(4)}`;\n return `$${usd.toFixed(2)}`;\n}\n\ninterface PhaseStats {\n phase: string;\n durationMs: number;\n turns: number;\n inputTokens: number;\n outputTokens: number;\n cacheRead: number;\n cacheCreation5m: number;\n cacheCreation1h: number;\n cost: number;\n compactions: number;\n contextOut: number | undefined;\n}\n\nfunction printPhase(s: PhaseStats): string {\n const baseIn = Math.max(\n 0,\n s.inputTokens - s.cacheRead - s.cacheCreation5m - s.cacheCreation1h,\n );\n return [\n `${s.phase}: ${fmtDuration(s.durationMs)}, ${\n s.turns\n } turns, cost: ${fmtCost(s.cost)}`,\n ` in: ${fmtTok(baseIn)}, out: ${fmtTok(\n s.outputTokens,\n )}, cache_read: ${fmtTok(s.cacheRead)}, cache_5m: ${fmtTok(\n s.cacheCreation5m,\n )}, cache_1h: ${fmtTok(s.cacheCreation1h)}`,\n s.compactions > 0 ? ` ${s.compactions} compaction(s)` : null,\n s.contextOut !== undefined ? ` ctx_out: ${fmtTok(s.contextOut)}` : null,\n ]\n .filter(Boolean)\n .join('\\n');\n}\n\nfunction getPhaseStats(i: number, ctx: MiddlewareContext): PhaseStats | null {\n const duration = ctx.get<DurationData>('duration');\n const dur = duration?.phaseSnapshots[i];\n if (!dur) return null;\n\n const tokens = ctx.get<TokenData>('tokens');\n const turns = ctx.get<TurnData>('turns');\n const cost = ctx.get<CostData>('cost');\n const compactions = ctx.get<CompactionData>('compactions');\n const contextSize = ctx.get<ContextSizeData>('contextSize');\n const cache = ctx.get<CacheData>('cache');\n\n return {\n phase: dur.phase,\n durationMs: dur.durationMs,\n turns: turns?.phaseSnapshots[i]?.turns ?? 0,\n inputTokens: tokens?.phaseSnapshots[i]?.inputTokens ?? 0,\n outputTokens: tokens?.phaseSnapshots[i]?.outputTokens ?? 0,\n cacheRead: cache?.phaseSnapshots[i]?.cacheReadTokens ?? 0,\n cacheCreation5m: cache?.phaseSnapshots[i]?.cacheCreation5m ?? 0,\n cacheCreation1h: cache?.phaseSnapshots[i]?.cacheCreation1h ?? 0,\n cost: cost?.phaseCosts[i]?.cost ?? 0,\n compactions: compactions?.phaseSnapshots[i]?.compactions ?? 0,\n contextOut: contextSize?.phaseSnapshots[i]?.contextTokensOut,\n };\n}\n\nexport class SummaryPlugin implements Middleware {\n readonly name = 'summary';\n\n private spinner: SpinnerHandle;\n\n constructor(spinner: SpinnerHandle) {\n this.spinner = spinner;\n }\n\n onPhaseTransition(\n fromPhase: string,\n toPhase: string,\n ctx: MiddlewareContext,\n _store: MiddlewareStore,\n ): void {\n const duration = ctx.get<DurationData>('duration');\n const idx = (duration?.phaseSnapshots.length ?? 1) - 1;\n const stats = getPhaseStats(idx, ctx);\n\n if (stats) {\n this.spinner.stop(`${AgentSignals.BENCHMARK} ${printPhase(stats)}`);\n } else {\n this.spinner.stop(`${AgentSignals.BENCHMARK} ${fromPhase}`);\n }\n\n getUI().log.info(`${AgentSignals.BENCHMARK} Starting phase: ${toPhase}`);\n this.spinner.start(`Integrating PostHog (${toPhase})...`);\n }\n\n onFinalize(\n _resultMessage: any,\n totalDurationMs: number,\n ctx: MiddlewareContext,\n _store: MiddlewareStore,\n ): void {\n const duration = ctx.get<DurationData>('duration');\n const cost = ctx.get<CostData>('cost');\n const tokens = ctx.get<TokenData>('tokens');\n const cache = ctx.get<CacheData>('cache');\n\n const phaseCount = duration?.phaseSnapshots.length ?? 0;\n const totalCost = cost?.totalCost ?? 0;\n\n getUI().log.info('');\n getUI().log.info(\n `◇ ${AgentSignals.BENCHMARK} ${phaseCount} phases in ${fmtDuration(\n totalDurationMs,\n )}, cost: ${fmtCost(totalCost)}`,\n );\n getUI().log.info(\n ` total in: ${fmtTok(tokens?.totalInput ?? 0)}, out: ${fmtTok(\n tokens?.totalOutput ?? 0,\n )}, cache_read: ${fmtTok(cache?.totalRead ?? 0)}, cache_5m: ${fmtTok(\n cache?.totalCreation5m ?? 0,\n )}, cache_1h: ${fmtTok(cache?.totalCreation1h ?? 0)}`,\n );\n getUI().log.info('');\n getUI().log.info(`● ${AgentSignals.BENCHMARK} Summary by phase:`);\n\n if (duration?.phaseSnapshots) {\n for (let i = 0; i < duration.phaseSnapshots.length; i++) {\n const stats = getPhaseStats(i, ctx);\n if (stats) {\n getUI().log.info(printPhase(stats));\n }\n }\n }\n\n getUI().log.info('');\n }\n}\n"]}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Token tracking plugin for input/output tokens.
|
|
3
|
-
*
|
|
4
|
-
* Accumulates per-turn token usage (input_tokens + cache_read_input_tokens
|
|
5
|
-
* + cache_creation_input_tokens = total input; output_tokens = output).
|
|
6
|
-
* Respects the dedup flag from TurnCounterPlugin. Cache breakdown (r/5m/1h)
|
|
7
|
-
* is tracked by CacheTrackerPlugin for reporting and pricing.
|
|
8
|
-
*/
|
|
9
|
-
import type { Middleware, MiddlewareContext, MiddlewareStore } from '../types';
|
|
10
|
-
export interface TokenData {
|
|
11
|
-
phaseInput: number;
|
|
12
|
-
phaseOutput: number;
|
|
13
|
-
totalInput: number;
|
|
14
|
-
totalOutput: number;
|
|
15
|
-
/** The raw usage object from the last non-duplicate assistant message */
|
|
16
|
-
lastUsage: any;
|
|
17
|
-
/** Per-phase token snapshots */
|
|
18
|
-
phaseSnapshots: Array<{
|
|
19
|
-
phase: string;
|
|
20
|
-
inputTokens: number;
|
|
21
|
-
outputTokens: number;
|
|
22
|
-
/** Number of turns in this phase that had usage (SDK may not report all) */
|
|
23
|
-
messagesWithUsage: number;
|
|
24
|
-
}>;
|
|
25
|
-
}
|
|
26
|
-
export declare class TokenTrackerPlugin implements Middleware {
|
|
27
|
-
readonly name = "tokens";
|
|
28
|
-
private phaseInput;
|
|
29
|
-
private phaseOutput;
|
|
30
|
-
private totalInput;
|
|
31
|
-
private totalOutput;
|
|
32
|
-
private lastUsage;
|
|
33
|
-
private phaseSnapshots;
|
|
34
|
-
private currentPhase;
|
|
35
|
-
private phaseMessagesWithUsage;
|
|
36
|
-
onMessage(message: any, ctx: MiddlewareContext, store: MiddlewareStore): void;
|
|
37
|
-
onPhaseTransition(fromPhase: string, toPhase: string, _ctx: MiddlewareContext, store: MiddlewareStore): void;
|
|
38
|
-
onFinalize(_resultMessage: any, _totalDurationMs: number, _ctx: MiddlewareContext, store: MiddlewareStore): void;
|
|
39
|
-
private getData;
|
|
40
|
-
}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Token tracking plugin for input/output tokens.
|
|
4
|
-
*
|
|
5
|
-
* Accumulates per-turn token usage (input_tokens + cache_read_input_tokens
|
|
6
|
-
* + cache_creation_input_tokens = total input; output_tokens = output).
|
|
7
|
-
* Respects the dedup flag from TurnCounterPlugin. Cache breakdown (r/5m/1h)
|
|
8
|
-
* is tracked by CacheTrackerPlugin for reporting and pricing.
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.TokenTrackerPlugin = void 0;
|
|
12
|
-
class TokenTrackerPlugin {
|
|
13
|
-
name = 'tokens';
|
|
14
|
-
phaseInput = 0;
|
|
15
|
-
phaseOutput = 0;
|
|
16
|
-
totalInput = 0;
|
|
17
|
-
totalOutput = 0;
|
|
18
|
-
lastUsage = null;
|
|
19
|
-
phaseSnapshots = [];
|
|
20
|
-
currentPhase = 'setup';
|
|
21
|
-
phaseMessagesWithUsage = 0;
|
|
22
|
-
onMessage(message, ctx, store) {
|
|
23
|
-
if (message.type !== 'assistant')
|
|
24
|
-
return;
|
|
25
|
-
const turns = ctx.get('turns');
|
|
26
|
-
if (turns?.isDuplicate)
|
|
27
|
-
return;
|
|
28
|
-
const usage = message.message?.usage;
|
|
29
|
-
if (usage) {
|
|
30
|
-
const input = Number(usage.input_tokens ?? 0) +
|
|
31
|
-
Number(usage.cache_read_input_tokens ?? 0) +
|
|
32
|
-
Number(usage.cache_creation_input_tokens ?? 0);
|
|
33
|
-
const output = Number(usage.output_tokens ?? 0);
|
|
34
|
-
this.phaseInput += input;
|
|
35
|
-
this.phaseOutput += output;
|
|
36
|
-
this.totalInput += input;
|
|
37
|
-
this.totalOutput += output;
|
|
38
|
-
this.lastUsage = usage;
|
|
39
|
-
this.phaseMessagesWithUsage += 1;
|
|
40
|
-
}
|
|
41
|
-
store.set('tokens', this.getData());
|
|
42
|
-
}
|
|
43
|
-
onPhaseTransition(fromPhase, toPhase, _ctx, store) {
|
|
44
|
-
this.phaseSnapshots.push({
|
|
45
|
-
phase: fromPhase,
|
|
46
|
-
inputTokens: this.phaseInput,
|
|
47
|
-
outputTokens: this.phaseOutput,
|
|
48
|
-
messagesWithUsage: this.phaseMessagesWithUsage,
|
|
49
|
-
});
|
|
50
|
-
this.currentPhase = toPhase;
|
|
51
|
-
this.phaseInput = 0;
|
|
52
|
-
this.phaseOutput = 0;
|
|
53
|
-
this.phaseMessagesWithUsage = 0;
|
|
54
|
-
store.set('tokens', this.getData());
|
|
55
|
-
}
|
|
56
|
-
onFinalize(_resultMessage, _totalDurationMs, _ctx, store) {
|
|
57
|
-
this.phaseSnapshots.push({
|
|
58
|
-
phase: this.currentPhase,
|
|
59
|
-
inputTokens: this.phaseInput,
|
|
60
|
-
outputTokens: this.phaseOutput,
|
|
61
|
-
messagesWithUsage: this.phaseMessagesWithUsage,
|
|
62
|
-
});
|
|
63
|
-
store.set('tokens', this.getData());
|
|
64
|
-
}
|
|
65
|
-
getData() {
|
|
66
|
-
return {
|
|
67
|
-
phaseInput: this.phaseInput,
|
|
68
|
-
phaseOutput: this.phaseOutput,
|
|
69
|
-
totalInput: this.totalInput,
|
|
70
|
-
totalOutput: this.totalOutput,
|
|
71
|
-
lastUsage: this.lastUsage,
|
|
72
|
-
phaseSnapshots: [...this.phaseSnapshots],
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.TokenTrackerPlugin = TokenTrackerPlugin;
|
|
77
|
-
//# sourceMappingURL=token-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token-tracker.js","sourceRoot":"","sources":["../../../../../src/lib/middleware/benchmarks/token-tracker.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Token tracking plugin for input/output tokens.\n *\n * Accumulates per-turn token usage (input_tokens + cache_read_input_tokens\n * + cache_creation_input_tokens = total input; output_tokens = output).\n * Respects the dedup flag from TurnCounterPlugin. Cache breakdown (r/5m/1h)\n * is tracked by CacheTrackerPlugin for reporting and pricing.\n */\n\nimport type { Middleware, MiddlewareContext, MiddlewareStore } from '../types';\nimport type { TurnData } from './turn-counter';\n\nexport interface TokenData {\n phaseInput: number;\n phaseOutput: number;\n totalInput: number;\n totalOutput: number;\n /** The raw usage object from the last non-duplicate assistant message */\n lastUsage: any;\n /** Per-phase token snapshots */\n phaseSnapshots: Array<{\n phase: string;\n inputTokens: number;\n outputTokens: number;\n /** Number of turns in this phase that had usage (SDK may not report all) */\n messagesWithUsage: number;\n }>;\n}\n\nexport class TokenTrackerPlugin implements Middleware {\n readonly name = 'tokens';\n\n private phaseInput = 0;\n private phaseOutput = 0;\n private totalInput = 0;\n private totalOutput = 0;\n private lastUsage: any = null;\n private phaseSnapshots: Array<{\n phase: string;\n inputTokens: number;\n outputTokens: number;\n messagesWithUsage: number;\n }> = [];\n private currentPhase = 'setup';\n private phaseMessagesWithUsage = 0;\n\n onMessage(\n message: any,\n ctx: MiddlewareContext,\n store: MiddlewareStore,\n ): void {\n if (message.type !== 'assistant') return;\n\n const turns = ctx.get<TurnData>('turns');\n if (turns?.isDuplicate) return;\n\n const usage = message.message?.usage;\n if (usage) {\n const input =\n Number(usage.input_tokens ?? 0) +\n Number(usage.cache_read_input_tokens ?? 0) +\n Number(usage.cache_creation_input_tokens ?? 0);\n const output = Number(usage.output_tokens ?? 0);\n this.phaseInput += input;\n this.phaseOutput += output;\n this.totalInput += input;\n this.totalOutput += output;\n this.lastUsage = usage;\n this.phaseMessagesWithUsage += 1;\n }\n\n store.set('tokens', this.getData());\n }\n\n onPhaseTransition(\n fromPhase: string,\n toPhase: string,\n _ctx: MiddlewareContext,\n store: MiddlewareStore,\n ): void {\n this.phaseSnapshots.push({\n phase: fromPhase,\n inputTokens: this.phaseInput,\n outputTokens: this.phaseOutput,\n messagesWithUsage: this.phaseMessagesWithUsage,\n });\n this.currentPhase = toPhase;\n this.phaseInput = 0;\n this.phaseOutput = 0;\n this.phaseMessagesWithUsage = 0;\n store.set('tokens', this.getData());\n }\n\n onFinalize(\n _resultMessage: any,\n _totalDurationMs: number,\n _ctx: MiddlewareContext,\n store: MiddlewareStore,\n ): void {\n this.phaseSnapshots.push({\n phase: this.currentPhase,\n inputTokens: this.phaseInput,\n outputTokens: this.phaseOutput,\n messagesWithUsage: this.phaseMessagesWithUsage,\n });\n store.set('tokens', this.getData());\n }\n\n private getData(): TokenData {\n return {\n phaseInput: this.phaseInput,\n phaseOutput: this.phaseOutput,\n totalInput: this.totalInput,\n totalOutput: this.totalOutput,\n lastUsage: this.lastUsage,\n phaseSnapshots: [...this.phaseSnapshots],\n };\n }\n}\n"]}
|