claude-flow-novice 1.6.1 → 1.6.3
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/.claude/agents/cfn-loop/product-owner.md +54 -4
- package/.claude/commands/cfn-claude-sync.md +303 -0
- package/.claude/commands/cfn-loop-epic.md +290 -0
- package/.claude/commands/cfn-loop-single.md +168 -0
- package/.claude/commands/cfn-loop-sprints.md +384 -0
- package/.claude/commands/cfn-loop.md +180 -0
- package/.claude/commands/metrics-summary.md +58 -0
- package/.claude/commands/parse-epic.md +357 -0
- package/.claude/settings.json +5 -4
- package/.claude/settings.local.json +9 -2
- package/.claude-flow-novice/.claude/agents/cfn-loop/product-owner.md +792 -0
- package/.claude-flow-novice/dist/mcp/server.js +21 -2
- package/.claude-flow-novice/dist/src/api/auth-service.js +84 -38
- package/.claude-flow-novice/dist/src/api/auth-service.js.map +1 -1
- package/.claude-flow-novice/dist/src/api/claude-client.js +138 -3
- package/.claude-flow-novice/dist/src/api/claude-client.js.map +1 -1
- package/.claude-flow-novice/dist/src/cfn-loop/phase-orchestrator-example.js +1 -1
- package/.claude-flow-novice/dist/src/cfn-loop/scope-control.js +247 -0
- package/.claude-flow-novice/dist/src/cfn-loop/scope-control.js.map +1 -0
- package/.claude-flow-novice/dist/src/cli/commands/swarm.js +32 -15
- package/.claude-flow-novice/dist/src/cli/commands/swarm.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/transparency.js +455 -0
- package/.claude-flow-novice/dist/src/cli/commands/transparency.js.map +1 -0
- package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/CLAUDE.md +129 -13
- package/.claude-flow-novice/dist/src/components/visualizations/index.js +9 -0
- package/.claude-flow-novice/dist/src/components/visualizations/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js +462 -0
- package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/config-translator.js +248 -0
- package/.claude-flow-novice/dist/src/coordination/config-translator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js +287 -0
- package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/distributed-consensus.js +68 -9
- package/.claude-flow-novice/dist/src/coordination/distributed-consensus.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/feature-flags.js +166 -0
- package/.claude-flow-novice/dist/src/coordination/feature-flags.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/queen-agent.js +18 -4
- package/.claude-flow-novice/dist/src/coordination/queen-agent.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/role-assignment.js +6 -110
- package/.claude-flow-novice/dist/src/coordination/role-assignment.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/cache/artifact-cache-optimizer.js +632 -0
- package/.claude-flow-novice/dist/src/coordination/v2/cache/artifact-cache-optimizer.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/cache/index.js +11 -0
- package/.claude-flow-novice/dist/src/coordination/v2/cache/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/checkpoints/checkpoint-compressor.js +318 -0
- package/.claude-flow-novice/dist/src/coordination/v2/checkpoints/checkpoint-compressor.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.example.js +364 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.example.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.js +492 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/hierarchical-coordinator.js +786 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/hierarchical-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/index.js +16 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/parent-child-manager.js +342 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/parent-child-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/swarm-coordinator-v2.js +601 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/swarm-coordinator-v2.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/help-request-metrics.js +211 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/help-request-metrics.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/index.js +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/core/message-broker.js +365 -6
- package/.claude-flow-novice/dist/src/coordination/v2/core/message-broker.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/core/resource-manager-safe.js +478 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/resource-manager-safe.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine-config.js +5 -2
- package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine-config.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine.js +189 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/deadlock-detector.js +424 -0
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/deadlock-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/index.js +9 -0
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/resource-manager.js +669 -0
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/resource-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/artifact-storage.js +451 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/artifact-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/cycle-detector.js +271 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/cycle-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-graph.js +335 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-graph.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-manager.js +439 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-request.js +92 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-request.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/index.js +21 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/topological-sort.js +223 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/topological-sort.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-coordinator.js +436 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-matcher.js +278 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-matcher.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request-handler.js +317 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request-handler.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request.js +273 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/index.js +15 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/waiting-agent-pool.js +512 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/waiting-agent-pool.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/index.js +6 -0
- package/.claude-flow-novice/dist/src/coordination/v2/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/integration/help-deadlock-integration.js +557 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/help-deadlock-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/index.js +14 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.example.js +212 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.example.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.js +552 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/memory/dependency-storage.js +367 -0
- package/.claude-flow-novice/dist/src/coordination/v2/memory/dependency-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/memory/index.js +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/memory/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channel.js +371 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js +355 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/help-channel.js +424 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/help-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/index.js +16 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/state-channel.js +295 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/state-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/task-channel.js +411 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/task-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/index.js +14 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-bus.js +387 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-bus.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-persistence.js +589 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-persistence.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-router.js +444 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-router.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/checkpoint-manager.js +29 -8
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/checkpoint-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/help-coordinator.js +470 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/help-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js +450 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/index.js +5 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/multi-level-control.js +545 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/multi-level-control.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-controller.js +44 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-controller.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-message-integration.js +415 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-message-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/session-pool-optimizer.js +615 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/session-pool-optimizer.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/security/payload-validator.js +259 -0
- package/.claude-flow-novice/dist/src/coordination/v2/security/payload-validator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/index.js +17 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-integration.js +357 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-system.js +679 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-system.js.map +1 -0
- package/.claude-flow-novice/dist/src/core/agent-manager.js +30 -0
- package/.claude-flow-novice/dist/src/core/agent-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/mcp/server.js +21 -2
- package/.claude-flow-novice/dist/src/mcp/server.js.map +1 -1
- package/.claude-flow-novice/dist/src/monitoring/apm/apm-integration.js +719 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/apm-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/datadog-collector.js +363 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/datadog-collector.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/index.js +97 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/newrelic-collector.js +384 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/newrelic-collector.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/performance-optimizer.js +612 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/performance-optimizer.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/metrics-collector.js +282 -0
- package/.claude-flow-novice/dist/src/monitoring/metrics-collector.js.map +1 -0
- package/.claude-flow-novice/dist/src/observability/metrics-counter.js +268 -0
- package/.claude-flow-novice/dist/src/observability/metrics-counter.js.map +1 -0
- package/.claude-flow-novice/dist/src/observability/metrics-storage.js +265 -0
- package/.claude-flow-novice/dist/src/observability/metrics-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/observability/telemetry.js +26 -0
- package/.claude-flow-novice/dist/src/observability/telemetry.js.map +1 -1
- package/.claude-flow-novice/dist/src/providers/tiered-router.js +64 -10
- package/.claude-flow-novice/dist/src/providers/tiered-router.js.map +1 -1
- package/.claude-flow-novice/dist/src/providers/zai-provider.js +196 -97
- package/.claude-flow-novice/dist/src/providers/zai-provider.js.map +1 -1
- package/.claude-flow-novice/dist/src/slash-commands/cfn-claude-sync.js +533 -0
- package/.claude-flow-novice/dist/src/slash-commands/index.js +5 -0
- package/.claude-flow-novice/dist/src/slash-commands/metrics-summary-class.js +74 -0
- package/.claude-flow-novice/dist/src/slash-commands/metrics-summary.js +335 -0
- package/.claude-flow-novice/dist/src/slash-commands/register-all-commands.js +12 -0
- package/.claude-flow-novice/dist/src/verification/checkpoint-compression-demo.js +96 -0
- package/.claude-flow-novice/dist/src/verification/checkpoint-compression-demo.js.map +1 -0
- package/.claude-flow-novice/dist/src/verification/checkpoint-compression.js +406 -0
- package/.claude-flow-novice/dist/src/verification/checkpoint-compression.js.map +1 -0
- package/.claude-flow-novice/dist/src/verification/checkpoint-manager.js +35 -5
- package/.claude-flow-novice/dist/src/verification/checkpoint-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/web/api/apm-routes.js +355 -0
- package/.claude-flow-novice/dist/src/web/api/apm-routes.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/config/api-config.js +186 -0
- package/.claude-flow-novice/dist/src/web/api/config/api-config.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/auth.js +205 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/auth.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/cache.js +262 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/cache.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/error-handler.js +250 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/error-handler.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/request-logger.js +217 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/request-logger.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/validation.js +325 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/validation.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/routes/events.js +465 -0
- package/.claude-flow-novice/dist/src/web/api/routes/events.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/routes/hierarchy.js +302 -0
- package/.claude-flow-novice/dist/src/web/api/routes/hierarchy.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/routes/index.js +14 -0
- package/.claude-flow-novice/dist/src/web/api/routes/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/routes/metrics.js +561 -0
- package/.claude-flow-novice/dist/src/web/api/routes/metrics.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/routes/status.js +450 -0
- package/.claude-flow-novice/dist/src/web/api/routes/status.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/server.js +451 -0
- package/.claude-flow-novice/dist/src/web/api/server.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/dashboard/hooks/useWebSocket.js +385 -0
- package/.claude-flow-novice/dist/src/web/dashboard/hooks/useWebSocket.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/dashboard/index.js +87 -0
- package/.claude-flow-novice/dist/src/web/dashboard/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/dashboard/types.js +6 -0
- package/.claude-flow-novice/dist/src/web/dashboard/types.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/frontend/src/utils/security.js +425 -0
- package/.claude-flow-novice/dist/src/web/frontend/src/utils/security.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/security/security-middleware.js +379 -0
- package/.claude-flow-novice/dist/src/web/security/security-middleware.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/websocket/apm-websocket-handler.js +441 -0
- package/.claude-flow-novice/dist/src/web/websocket/apm-websocket-handler.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/websocket/websocket-manager.js +255 -1
- package/.claude-flow-novice/dist/src/web/websocket/websocket-manager.js.map +1 -1
- package/.claude-flow-novice/metrics.db +0 -0
- package/.claude-flow-novice/metrics.db-shm +0 -0
- package/.claude-flow-novice/metrics.db-wal +0 -0
- package/AGENT_PERFORMANCE_GUIDELINES.md +88 -0
- package/CLAUDE.md +60 -3
- package/MEMORY_LEAK_ROOT_CAUSE.md +149 -0
- package/README.md +27 -0
- package/config/hooks/post-edit-pipeline.js +36 -2
- package/examples/metrics-counter-demo.ts +106 -0
- package/examples/persistent-metrics-demo.ts +83 -0
- package/examples/phase-5-multi-level-control.ts +282 -0
- package/examples/session-pool-optimizer-example.ts +311 -0
- package/package.json +18 -4
- package/scripts/check-routing-stats.cjs +122 -0
- package/scripts/monitor-loop.sh +65 -0
- package/scripts/monitor-memory.sh +47 -0
- package/scripts/monitor.py +43 -0
- package/scripts/pre-publish-validation.cjs +212 -0
- package/scripts/test-provider-routing.cjs +228 -0
- package/scripts/test-routing-telemetry.cjs +147 -0
- package/scripts/test-zai-10k.cjs +81 -0
- package/scripts/test-zai-api.cjs +191 -0
- package/scripts/test-zai-diagnostic.cjs +151 -0
- package/scripts/test-zai-final.cjs +128 -0
- package/scripts/test-zai-with-env.cjs +85 -0
- package/scripts/validate-coordination-cli.js +69 -0
- package/scripts/validate-coordination-toggle-integration.cjs +501 -0
- package/src/cli/simple-commands/init/templates/CLAUDE.md +29 -0
- package/src/observability/metrics-counter.ts +347 -0
- package/src/observability/metrics-storage.ts +356 -0
- package/src/observability/telemetry.ts +658 -0
- package/src/slash-commands/cfn-claude-sync.js +533 -0
- package/src/slash-commands/index.js +5 -0
- package/src/slash-commands/metrics-summary-class.js +74 -0
- package/src/slash-commands/metrics-summary.js +335 -0
- package/src/slash-commands/register-all-commands.js +12 -0
|
@@ -13,6 +13,7 @@ import { createSwarmTools } from './swarm-tools.js';
|
|
|
13
13
|
import { createRuvSwarmTools, isRuvSwarmAvailable, initializeRuvSwarmIntegration } from './ruv-swarm-tools.js';
|
|
14
14
|
import { platform, arch } from 'node:os';
|
|
15
15
|
import { performance } from 'node:perf_hooks';
|
|
16
|
+
import { incrementMetric, recordTiming } from '../observability/metrics-counter.js';
|
|
16
17
|
/**
|
|
17
18
|
* MCP server implementation
|
|
18
19
|
*/ export class MCPServer {
|
|
@@ -209,6 +210,12 @@ import { performance } from 'node:perf_hooks';
|
|
|
209
210
|
}
|
|
210
211
|
}
|
|
211
212
|
async handleRequest(request) {
|
|
213
|
+
const startTime = Date.now();
|
|
214
|
+
// Track incoming request
|
|
215
|
+
incrementMetric('api.request.received', 1, {
|
|
216
|
+
endpoint: request.method,
|
|
217
|
+
clientId: this.currentSession?.id || 'unknown'
|
|
218
|
+
});
|
|
212
219
|
this.logger.debug('Handling MCP request', {
|
|
213
220
|
id: request.id,
|
|
214
221
|
method: request.method
|
|
@@ -257,13 +264,25 @@ import { performance } from 'node:perf_hooks';
|
|
|
257
264
|
id: request.id,
|
|
258
265
|
result
|
|
259
266
|
};
|
|
260
|
-
// Record success
|
|
267
|
+
// Record success metrics
|
|
268
|
+
recordTiming('api.request.duration', Date.now() - startTime, {
|
|
269
|
+
endpoint: request.method,
|
|
270
|
+
status: 'success'
|
|
271
|
+
});
|
|
261
272
|
if (requestMetrics) {
|
|
262
273
|
this.loadBalancer?.recordRequestEnd(requestMetrics, response);
|
|
263
274
|
}
|
|
264
275
|
return response;
|
|
265
276
|
} catch (error) {
|
|
266
|
-
// Record failure
|
|
277
|
+
// Record failure metrics
|
|
278
|
+
recordTiming('api.request.duration', Date.now() - startTime, {
|
|
279
|
+
endpoint: request.method,
|
|
280
|
+
status: 'error'
|
|
281
|
+
});
|
|
282
|
+
incrementMetric('api.error.count', 1, {
|
|
283
|
+
errorType: error instanceof Error ? error.name : 'Unknown',
|
|
284
|
+
endpoint: request.method
|
|
285
|
+
});
|
|
267
286
|
if (requestMetrics) {
|
|
268
287
|
this.loadBalancer?.recordRequestEnd(requestMetrics, undefined, error);
|
|
269
288
|
}
|
|
@@ -67,7 +67,12 @@ const ROLE_PERMISSIONS = {
|
|
|
67
67
|
constructor(config, logger){
|
|
68
68
|
this.config = config;
|
|
69
69
|
this.logger = logger;
|
|
70
|
-
|
|
70
|
+
// Initialize asynchronously to avoid blocking constructor
|
|
71
|
+
this.initializeDefaultUsers().catch((error)=>{
|
|
72
|
+
this.logger.error('Failed to initialize default users', {
|
|
73
|
+
error
|
|
74
|
+
});
|
|
75
|
+
});
|
|
71
76
|
}
|
|
72
77
|
/**
|
|
73
78
|
* Authenticate user with email and password
|
|
@@ -328,6 +333,33 @@ const ROLE_PERMISSIONS = {
|
|
|
328
333
|
*/ listUsers() {
|
|
329
334
|
return Array.from(this.users.values());
|
|
330
335
|
}
|
|
336
|
+
/**
|
|
337
|
+
* Check if first-time admin setup is required
|
|
338
|
+
*/ isFirstTimeSetupRequired() {
|
|
339
|
+
const adminUsers = Array.from(this.users.values()).filter((u)=>u.role === 'admin' && u.isActive);
|
|
340
|
+
return adminUsers.length === 0;
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Complete first-time setup by creating initial admin user
|
|
344
|
+
*/ async completeFirstTimeSetup(userData) {
|
|
345
|
+
if (!this.isFirstTimeSetupRequired()) {
|
|
346
|
+
throw new AuthenticationError('First-time setup already completed');
|
|
347
|
+
}
|
|
348
|
+
const adminUser = await this.createUser({
|
|
349
|
+
email: userData.email,
|
|
350
|
+
password: userData.password,
|
|
351
|
+
role: 'admin',
|
|
352
|
+
isActive: true
|
|
353
|
+
});
|
|
354
|
+
this.logger.info('First-time setup completed', {
|
|
355
|
+
adminEmail: adminUser.email,
|
|
356
|
+
adminId: adminUser.id
|
|
357
|
+
});
|
|
358
|
+
return {
|
|
359
|
+
user: adminUser,
|
|
360
|
+
needsSetup: false
|
|
361
|
+
};
|
|
362
|
+
}
|
|
331
363
|
// Private helper methods
|
|
332
364
|
async checkRateLimit(email) {
|
|
333
365
|
const attempts = this.loginAttempts.get(email);
|
|
@@ -431,43 +463,57 @@ const ROLE_PERMISSIONS = {
|
|
|
431
463
|
const bufferB = Buffer.from(b, 'hex');
|
|
432
464
|
return timingSafeEqual(bufferA, bufferB);
|
|
433
465
|
}
|
|
434
|
-
initializeDefaultUsers() {
|
|
435
|
-
//
|
|
436
|
-
const
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
466
|
+
async initializeDefaultUsers() {
|
|
467
|
+
// Check if first-time setup is needed
|
|
468
|
+
const adminUser = Array.from(this.users.values()).find((u)=>u.role === 'admin');
|
|
469
|
+
if (!adminUser) {
|
|
470
|
+
// Check for environment-based admin configuration
|
|
471
|
+
const adminEmail = process.env.ADMIN_EMAIL;
|
|
472
|
+
const adminPassword = process.env.ADMIN_PASSWORD;
|
|
473
|
+
if (adminEmail && adminPassword) {
|
|
474
|
+
// Create admin from environment variables
|
|
475
|
+
const adminId = 'admin_env';
|
|
476
|
+
const passwordHash = createHash('sha256').update(adminPassword + 'salt').digest('hex');
|
|
477
|
+
const envAdminUser = {
|
|
478
|
+
id: adminId,
|
|
479
|
+
email: adminEmail,
|
|
480
|
+
passwordHash,
|
|
481
|
+
role: 'admin',
|
|
482
|
+
permissions: ROLE_PERMISSIONS.admin,
|
|
483
|
+
apiKeys: [],
|
|
484
|
+
isActive: true,
|
|
485
|
+
loginAttempts: 0,
|
|
486
|
+
mfaEnabled: false,
|
|
487
|
+
createdAt: new Date(),
|
|
488
|
+
updatedAt: new Date()
|
|
489
|
+
};
|
|
490
|
+
this.users.set(adminId, envAdminUser);
|
|
491
|
+
this.logger.info('Admin user created from environment', {
|
|
492
|
+
email: adminEmail
|
|
493
|
+
});
|
|
494
|
+
} else {
|
|
495
|
+
// Create temporary service user only
|
|
496
|
+
const serviceId = 'service_default';
|
|
497
|
+
const serviceUser = {
|
|
498
|
+
id: serviceId,
|
|
499
|
+
email: 'service@claude-flow.local',
|
|
500
|
+
passwordHash: createHash('sha256').update('service123' + 'salt').digest('hex'),
|
|
501
|
+
role: 'service',
|
|
502
|
+
permissions: ROLE_PERMISSIONS.service,
|
|
503
|
+
apiKeys: [],
|
|
504
|
+
isActive: true,
|
|
505
|
+
loginAttempts: 0,
|
|
506
|
+
mfaEnabled: false,
|
|
507
|
+
createdAt: new Date(),
|
|
508
|
+
updatedAt: new Date()
|
|
509
|
+
};
|
|
510
|
+
this.users.set(serviceId, serviceUser);
|
|
511
|
+
this.logger.warn('No admin user configured. First-time setup required.', {
|
|
512
|
+
setupRequired: true,
|
|
513
|
+
serviceAccount: serviceUser.email
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
}
|
|
471
517
|
}
|
|
472
518
|
}
|
|
473
519
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/api/auth-service.ts"],"names":["AuthenticationError","nanoid","createHash","createHmac","timingSafeEqual","ROLE_PERMISSIONS","admin","operator","developer","viewer","service","AuthService","users","Map","sessions","apiKeys","loginAttempts","config","logger","initializeDefaultUsers","authenticateUser","email","password","clientInfo","checkRateLimit","user","Array","from","values","find","u","recordFailedLogin","lockedUntil","Date","isActive","isValid","verifyPassword","passwordHash","delete","undefined","lastLogin","session","createSession","id","token","generateJWT","info","userId","sessionId","error","Error","message","authenticateApiKey","apiKey","keyHash","hashApiKey","storedKey","k","constantTimeCompare","expiresAt","lastUsed","some","keyId","keyName","name","key","verifyJWT","payload","decodeJWT","get","updatedAt","hasPermission","userOrPermissions","requiredPermission","permissions","isArray","includes","createUser","userData","existingUser","now","hashPassword","role","mfaEnabled","createdAt","set","createApiKey","keyData","generateApiKey","substring","push","revokeApiKey","filter","invalidateSession","cleanupSessions","cleaned","count","getUser","listUsers","attempts","maxAttempts","maxLoginAttempts","lockoutDuration","timeSinceLastAttempt","lastAttempt","getTime","sessionTimeout","iat","Math","floor","exp","header","alg","typ","encodedHeader","Buffer","JSON","stringify","toString","encodedPayload","signature","jwtSecret","update","digest","parts","split","length","expectedSignature","parse","apiKeyLength","hash","a","b","bufferA","bufferB","adminId","adminUser","serviceId","serviceUser"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/api/auth-service.ts"],"names":["AuthenticationError","nanoid","createHash","createHmac","timingSafeEqual","ROLE_PERMISSIONS","admin","operator","developer","viewer","service","AuthService","users","Map","sessions","apiKeys","loginAttempts","config","logger","initializeDefaultUsers","catch","error","authenticateUser","email","password","clientInfo","checkRateLimit","user","Array","from","values","find","u","recordFailedLogin","lockedUntil","Date","isActive","isValid","verifyPassword","passwordHash","delete","undefined","lastLogin","session","createSession","id","token","generateJWT","info","userId","sessionId","Error","message","authenticateApiKey","apiKey","keyHash","hashApiKey","storedKey","k","constantTimeCompare","expiresAt","lastUsed","some","keyId","keyName","name","key","verifyJWT","payload","decodeJWT","get","updatedAt","hasPermission","userOrPermissions","requiredPermission","permissions","isArray","includes","createUser","userData","existingUser","now","hashPassword","role","mfaEnabled","createdAt","set","createApiKey","keyData","generateApiKey","substring","push","revokeApiKey","filter","invalidateSession","cleanupSessions","cleaned","count","getUser","listUsers","isFirstTimeSetupRequired","adminUsers","length","completeFirstTimeSetup","adminUser","adminEmail","adminId","needsSetup","attempts","maxAttempts","maxLoginAttempts","lockoutDuration","timeSinceLastAttempt","lastAttempt","getTime","sessionTimeout","iat","Math","floor","exp","header","alg","typ","encodedHeader","Buffer","JSON","stringify","toString","encodedPayload","signature","jwtSecret","update","digest","parts","split","expectedSignature","parse","apiKeyLength","hash","a","b","bufferA","bufferB","process","env","ADMIN_EMAIL","adminPassword","ADMIN_PASSWORD","envAdminUser","serviceId","serviceUser","warn","setupRequired","serviceAccount"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/ import { EventEmitter } from 'events';
|
|
5
5
|
import { ClaudeAPIError, ClaudeInternalServerError, ClaudeServiceUnavailableError, ClaudeRateLimitError, ClaudeTimeoutError, ClaudeNetworkError, ClaudeAuthenticationError, ClaudeValidationError, getUserFriendlyError } from './claude-api-errors.js';
|
|
6
6
|
import { circuitBreaker } from '../utils/helpers.js';
|
|
7
|
+
import { incrementMetric, recordTiming } from '../observability/metrics-counter.js';
|
|
7
8
|
export class ClaudeAPIClient extends EventEmitter {
|
|
8
9
|
config;
|
|
9
10
|
logger;
|
|
@@ -154,6 +155,16 @@ export class ClaudeAPIClient extends EventEmitter {
|
|
|
154
155
|
/**
|
|
155
156
|
* Send a non-streaming request
|
|
156
157
|
*/ async sendRequest(request) {
|
|
158
|
+
const startTime = Date.now();
|
|
159
|
+
const model = request.model || 'unknown';
|
|
160
|
+
// Detect provider from apiUrl (z.ai vs anthropic)
|
|
161
|
+
const provider = this.config.apiUrl?.includes('z.ai') ? 'z.ai' : 'anthropic';
|
|
162
|
+
// Track API request
|
|
163
|
+
incrementMetric('claude.api.request', 1, {
|
|
164
|
+
model,
|
|
165
|
+
provider,
|
|
166
|
+
stream: 'false'
|
|
167
|
+
});
|
|
157
168
|
let lastError;
|
|
158
169
|
for(let attempt = 0; attempt < (this.config.retryAttempts || 3); attempt++){
|
|
159
170
|
try {
|
|
@@ -183,6 +194,24 @@ export class ClaudeAPIClient extends EventEmitter {
|
|
|
183
194
|
throw this.createAPIError(response.status, errorData);
|
|
184
195
|
}
|
|
185
196
|
const data = await response.json();
|
|
197
|
+
// Track successful response timing
|
|
198
|
+
recordTiming('claude.api.duration', Date.now() - startTime, {
|
|
199
|
+
model,
|
|
200
|
+
status: 'success',
|
|
201
|
+
stream: 'false'
|
|
202
|
+
});
|
|
203
|
+
// Track token usage
|
|
204
|
+
if (data.usage) {
|
|
205
|
+
incrementMetric('claude.tokens.input', data.usage.input_tokens, {
|
|
206
|
+
model
|
|
207
|
+
});
|
|
208
|
+
incrementMetric('claude.tokens.output', data.usage.output_tokens, {
|
|
209
|
+
model
|
|
210
|
+
});
|
|
211
|
+
incrementMetric('claude.tokens.total', data.usage.input_tokens + data.usage.output_tokens, {
|
|
212
|
+
model
|
|
213
|
+
});
|
|
214
|
+
}
|
|
186
215
|
this.logger.info('Claude API response received', {
|
|
187
216
|
model: data.model,
|
|
188
217
|
inputTokens: data.usage.input_tokens,
|
|
@@ -193,8 +222,20 @@ export class ClaudeAPIClient extends EventEmitter {
|
|
|
193
222
|
return data;
|
|
194
223
|
} catch (error) {
|
|
195
224
|
lastError = this.transformError(error);
|
|
225
|
+
// Track error
|
|
226
|
+
incrementMetric('claude.api.error', 1, {
|
|
227
|
+
model,
|
|
228
|
+
errorType: lastError.code || lastError.constructor.name || 'Unknown',
|
|
229
|
+
statusCode: lastError.statusCode?.toString() || 'unknown',
|
|
230
|
+
retryable: lastError.retryable ? 'true' : 'false'
|
|
231
|
+
});
|
|
196
232
|
// Don't retry non-retryable errors
|
|
197
233
|
if (!lastError.retryable) {
|
|
234
|
+
recordTiming('claude.api.duration', Date.now() - startTime, {
|
|
235
|
+
model,
|
|
236
|
+
status: 'error',
|
|
237
|
+
stream: 'false'
|
|
238
|
+
});
|
|
198
239
|
this.handleError(lastError);
|
|
199
240
|
throw lastError;
|
|
200
241
|
}
|
|
@@ -209,12 +250,30 @@ export class ClaudeAPIClient extends EventEmitter {
|
|
|
209
250
|
}
|
|
210
251
|
}
|
|
211
252
|
}
|
|
253
|
+
// Track final error timing after all retries exhausted
|
|
254
|
+
recordTiming('claude.api.duration', Date.now() - startTime, {
|
|
255
|
+
model,
|
|
256
|
+
status: 'error',
|
|
257
|
+
stream: 'false'
|
|
258
|
+
});
|
|
212
259
|
this.handleError(lastError);
|
|
213
260
|
throw lastError;
|
|
214
261
|
}
|
|
215
262
|
/**
|
|
216
263
|
* Send a streaming request
|
|
217
264
|
*/ async *streamRequest(request) {
|
|
265
|
+
const startTime = Date.now();
|
|
266
|
+
const model = request.model || 'unknown';
|
|
267
|
+
let totalInputTokens = 0;
|
|
268
|
+
let totalOutputTokens = 0;
|
|
269
|
+
// Detect provider from apiUrl (z.ai vs anthropic)
|
|
270
|
+
const provider = this.config.apiUrl?.includes('z.ai') ? 'z.ai' : 'anthropic';
|
|
271
|
+
// Track API request
|
|
272
|
+
incrementMetric('claude.api.request', 1, {
|
|
273
|
+
model,
|
|
274
|
+
provider,
|
|
275
|
+
stream: 'true'
|
|
276
|
+
});
|
|
218
277
|
const controller = new AbortController();
|
|
219
278
|
const timeout = setTimeout(()=>controller.abort(), (this.config.timeout || 30000) * 2); // Double timeout for streaming
|
|
220
279
|
try {
|
|
@@ -241,10 +300,35 @@ export class ClaudeAPIClient extends EventEmitter {
|
|
|
241
300
|
message: errorText
|
|
242
301
|
};
|
|
243
302
|
}
|
|
244
|
-
|
|
303
|
+
const apiError = this.createAPIError(response.status, errorData);
|
|
304
|
+
// Track error
|
|
305
|
+
incrementMetric('claude.api.error', 1, {
|
|
306
|
+
model,
|
|
307
|
+
errorType: apiError.code || apiError.constructor.name || 'Unknown',
|
|
308
|
+
statusCode: apiError.statusCode?.toString() || 'unknown',
|
|
309
|
+
retryable: apiError.retryable ? 'true' : 'false'
|
|
310
|
+
});
|
|
311
|
+
recordTiming('claude.api.duration', Date.now() - startTime, {
|
|
312
|
+
model,
|
|
313
|
+
status: 'error',
|
|
314
|
+
stream: 'true'
|
|
315
|
+
});
|
|
316
|
+
throw apiError;
|
|
245
317
|
}
|
|
246
318
|
if (!response.body) {
|
|
247
|
-
|
|
319
|
+
const bodyError = new ClaudeAPIError('Response body is null');
|
|
320
|
+
incrementMetric('claude.api.error', 1, {
|
|
321
|
+
model,
|
|
322
|
+
errorType: 'ResponseBodyNull',
|
|
323
|
+
statusCode: 'unknown',
|
|
324
|
+
retryable: 'false'
|
|
325
|
+
});
|
|
326
|
+
recordTiming('claude.api.duration', Date.now() - startTime, {
|
|
327
|
+
model,
|
|
328
|
+
status: 'error',
|
|
329
|
+
stream: 'true'
|
|
330
|
+
});
|
|
331
|
+
throw bodyError;
|
|
248
332
|
}
|
|
249
333
|
const reader = response.body.getReader();
|
|
250
334
|
const decoder = new TextDecoder();
|
|
@@ -263,6 +347,13 @@ export class ClaudeAPIClient extends EventEmitter {
|
|
|
263
347
|
if (data === '[DONE]') continue;
|
|
264
348
|
try {
|
|
265
349
|
const event = JSON.parse(data);
|
|
350
|
+
// Track token usage from stream events
|
|
351
|
+
if (event.type === 'message_start' && event.message?.usage) {
|
|
352
|
+
totalInputTokens = event.message.usage.input_tokens || 0;
|
|
353
|
+
}
|
|
354
|
+
if (event.type === 'message_delta' && event.usage) {
|
|
355
|
+
totalOutputTokens += event.usage.output_tokens || 0;
|
|
356
|
+
}
|
|
266
357
|
this.emit('stream_event', event);
|
|
267
358
|
yield event;
|
|
268
359
|
} catch (e) {
|
|
@@ -274,11 +365,55 @@ export class ClaudeAPIClient extends EventEmitter {
|
|
|
274
365
|
}
|
|
275
366
|
}
|
|
276
367
|
}
|
|
368
|
+
// Track successful completion
|
|
369
|
+
recordTiming('claude.api.duration', Date.now() - startTime, {
|
|
370
|
+
model,
|
|
371
|
+
status: 'success',
|
|
372
|
+
stream: 'true'
|
|
373
|
+
});
|
|
374
|
+
// Track token usage
|
|
375
|
+
if (totalInputTokens > 0 || totalOutputTokens > 0) {
|
|
376
|
+
incrementMetric('claude.tokens.input', totalInputTokens, {
|
|
377
|
+
model
|
|
378
|
+
});
|
|
379
|
+
incrementMetric('claude.tokens.output', totalOutputTokens, {
|
|
380
|
+
model
|
|
381
|
+
});
|
|
382
|
+
incrementMetric('claude.tokens.total', totalInputTokens + totalOutputTokens, {
|
|
383
|
+
model
|
|
384
|
+
});
|
|
385
|
+
}
|
|
277
386
|
} catch (error) {
|
|
278
387
|
clearTimeout(timeout);
|
|
279
388
|
// Handle abort/timeout
|
|
280
389
|
if (error instanceof Error && error.name === 'AbortError') {
|
|
281
|
-
|
|
390
|
+
const timeoutError = new ClaudeTimeoutError('Request timed out', this.config.timeout || 60000);
|
|
391
|
+
incrementMetric('claude.api.error', 1, {
|
|
392
|
+
model,
|
|
393
|
+
errorType: 'Timeout',
|
|
394
|
+
statusCode: 'timeout',
|
|
395
|
+
retryable: 'true'
|
|
396
|
+
});
|
|
397
|
+
recordTiming('claude.api.duration', Date.now() - startTime, {
|
|
398
|
+
model,
|
|
399
|
+
status: 'error',
|
|
400
|
+
stream: 'true'
|
|
401
|
+
});
|
|
402
|
+
throw timeoutError;
|
|
403
|
+
}
|
|
404
|
+
// Track error if not already tracked
|
|
405
|
+
if (!(error instanceof ClaudeAPIError)) {
|
|
406
|
+
incrementMetric('claude.api.error', 1, {
|
|
407
|
+
model,
|
|
408
|
+
errorType: error instanceof Error ? error.constructor.name : 'Unknown',
|
|
409
|
+
statusCode: 'unknown',
|
|
410
|
+
retryable: 'false'
|
|
411
|
+
});
|
|
412
|
+
recordTiming('claude.api.duration', Date.now() - startTime, {
|
|
413
|
+
model,
|
|
414
|
+
status: 'error',
|
|
415
|
+
stream: 'true'
|
|
416
|
+
});
|
|
282
417
|
}
|
|
283
418
|
throw error;
|
|
284
419
|
} finally{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/api/claude-client.ts"],"names":["EventEmitter","ClaudeAPIError","ClaudeInternalServerError","ClaudeServiceUnavailableError","ClaudeRateLimitError","ClaudeTimeoutError","ClaudeNetworkError","ClaudeAuthenticationError","ClaudeValidationError","getUserFriendlyError","circuitBreaker","ClaudeAPIClient","config","logger","configManager","defaultModel","defaultTemperature","defaultMaxTokens","lastHealthCheck","healthCheckTimer","loadConfiguration","threshold","circuitBreakerThreshold","timeout","circuitBreakerTimeout","resetTimeout","circuitBreakerResetTimeout","enableHealthCheck","startHealthCheck","overrides","apiKey","apiUrl","model","temperature","maxTokens","topP","topK","undefined","systemPrompt","retryAttempts","retryDelay","healthCheckInterval","retryJitter","process","env","ANTHROPIC_API_KEY","CLAUDE_API_URL","CLAUDE_MODEL","CLAUDE_TEMPERATURE","parseFloat","CLAUDE_MAX_TOKENS","parseInt","claudeConfig","get","Object","assign","validateConfiguration","updateConfig","updates","info","getConfig","sendMessage","messages","options","request","system","max_tokens","top_p","top_k","stream","debug","messageCount","length","streamRequest","sendRequest","lastError","attempt","controller","AbortController","setTimeout","abort","response","fetch","method","headers","body","JSON","stringify","signal","clearTimeout","ok","errorText","text","errorData","parse","message","createAPIError","status","data","json","inputTokens","usage","input_tokens","outputTokens","output_tokens","stopReason","stop_reason","emit","error","transformError","retryable","handleError","warn","statusCode","delay","calculateRetryDelay","reader","getReader","decoder","TextDecoder","buffer","done","value","read","decode","lines","split","pop","line","startsWith","slice","event","e","Error","name","complete","prompt","role","content","streamComplete","type","delta","getAvailableModels","getModelInfo","modelInfo","contextWindow","description","ms","Promise","resolve","performHealthCheck","setInterval","startTime","Date","now","latency","healthy","timestamp","getHealthStatus","retryAfter","retry_after","includes","String","baseDelay","maxDelay","Math","min","pow","jitter","random","floor","errorInfo","title","code","details","level","suggestions","userFriendly","destroy","clearInterval","removeAllListeners"],"mappings":"AAAA;;;CAGC,GAED,SAASA,YAAY,QAAQ,SAAS;AAItC,SACEC,cAAc,EACdC,yBAAyB,EACzBC,6BAA6B,EAC7BC,oBAAoB,EACpBC,kBAAkB,EAClBC,kBAAkB,EAClBC,yBAAyB,EACzBC,qBAAqB,EAErBC,oBAAoB,QACf,yBAAyB;AAChC,SAASC,cAAc,QAAwB,sBAAsB;AAmGrE,OAAO,MAAMC,wBAAwBX;IAC3BY,OAAwB;IACxBC,OAAgB;IAChBC,cAA6B;IAC7BC,eAA4B,2BAA2B;IACvDC,qBAA6B,IAAI;IACjCC,mBAA2B,KAAK;IAChCP,eAA+B;IAC/BQ,gBAAoC;IACpCC,iBAAkC;IAE1C,YAAYN,MAAe,EAAEC,aAA4B,EAAEF,MAAiC,CAAE;QAC5F,KAAK;QACL,IAAI,CAACC,MAAM,GAAGA;QACd,IAAI,CAACC,aAAa,GAAGA;QAErB,8DAA8D;QAC9D,IAAI,CAACF,MAAM,GAAG,IAAI,CAACQ,iBAAiB,CAACR;QAErC,iDAAiD;QACjD,IAAI,CAACF,cAAc,GAAGA,eAAe,cAAc;YACjDW,WAAW,IAAI,CAACT,MAAM,CAACU,uBAAuB,IAAI;YAClDC,SAAS,IAAI,CAACX,MAAM,CAACY,qBAAqB,IAAI;YAC9CC,cAAc,IAAI,CAACb,MAAM,CAACc,0BAA0B,IAAI;QAC1D;QAEA,gCAAgC;QAChC,IAAI,IAAI,CAACd,MAAM,CAACe,iBAAiB,EAAE;YACjC,IAAI,CAACC,gBAAgB;QACvB;IACF;IAEA;;GAEC,GACD,AAAQR,kBAAkBS,SAAoC,EAAmB;QAC/E,sBAAsB;QACtB,MAAMjB,SAA0B;YAC9BkB,QAAQ;YACRC,QAAQ;YACRC,OAAO,IAAI,CAACjB,YAAY;YACxBkB,aAAa,IAAI,CAACjB,kBAAkB;YACpCkB,WAAW,IAAI,CAACjB,gBAAgB;YAChCkB,MAAM;YACNC,MAAMC;YACNC,cAAcD;YACdd,SAAS;YACTgB,eAAe;YACfC,YAAY;YACZ,mCAAmC;YACnCb,mBAAmB;YACnBc,qBAAqB;YACrBnB,yBAAyB;YACzBE,uBAAuB;YACvBE,4BAA4B;YAC5BgB,aAAa;QACf;QAEA,kCAAkC;QAClC,IAAIC,QAAQC,GAAG,CAACC,iBAAiB,EAAE;YACjCjC,OAAOkB,MAAM,GAAGa,QAAQC,GAAG,CAACC,iBAAiB;QAC/C;QACA,IAAIF,QAAQC,GAAG,CAACE,cAAc,EAAE;YAC9BlC,OAAOmB,MAAM,GAAGY,QAAQC,GAAG,CAACE,cAAc;QAC5C;QACA,IAAIH,QAAQC,GAAG,CAACG,YAAY,EAAE;YAC5BnC,OAAOoB,KAAK,GAAGW,QAAQC,GAAG,CAACG,YAAY;QACzC;QACA,IAAIJ,QAAQC,GAAG,CAACI,kBAAkB,EAAE;YAClCpC,OAAOqB,WAAW,GAAGgB,WAAWN,QAAQC,GAAG,CAACI,kBAAkB;QAChE;QACA,IAAIL,QAAQC,GAAG,CAACM,iBAAiB,EAAE;YACjCtC,OAAOsB,SAAS,GAAGiB,SAASR,QAAQC,GAAG,CAACM,iBAAiB,EAAE;QAC7D;QAEA,wCAAwC;QACxC,MAAME,eAAe,IAAI,CAACtC,aAAa,CAACuC,GAAG,CAAC;QAC5C,IAAID,cAAc;YAChBE,OAAOC,MAAM,CAAC3C,QAAQwC;QACxB;QAEA,kBAAkB;QAClB,IAAIvB,WAAW;YACbyB,OAAOC,MAAM,CAAC3C,QAAQiB;QACxB;QAEA,yBAAyB;QACzB,IAAI,CAAC2B,qBAAqB,CAAC5C;QAE3B,OAAOA;IACT;IAEA;;GAEC,GACD,AAAQ4C,sBAAsB5C,MAAuB,EAAQ;QAC3D,IAAI,CAACA,OAAOkB,MAAM,EAAE;YAClB,MAAM,IAAIvB,0BACR;QAEJ;QAEA,IAAIK,OAAOqB,WAAW,KAAKI,WAAW;YACpC,IAAIzB,OAAOqB,WAAW,GAAG,KAAKrB,OAAOqB,WAAW,GAAG,GAAG;gBACpD,MAAM,IAAIzB,sBAAsB;YAClC;QACF;QAEA,IAAII,OAAOuB,IAAI,KAAKE,WAAW;YAC7B,IAAIzB,OAAOuB,IAAI,GAAG,KAAKvB,OAAOuB,IAAI,GAAG,GAAG;gBACtC,MAAM,IAAI3B,sBAAsB;YAClC;QACF;QAEA,IAAII,OAAOsB,SAAS,KAAKG,aAAczB,CAAAA,OAAOsB,SAAS,GAAG,KAAKtB,OAAOsB,SAAS,GAAG,MAAK,GAAI;YACzF,MAAM,IAAI1B,sBAAsB;QAClC;IACF;IAEA;;GAEC,GACDiD,aAAaC,OAAiC,EAAQ;QACpD,IAAI,CAAC9C,MAAM,GAAG;YAAE,GAAG,IAAI,CAACA,MAAM;YAAE,GAAG8C,OAAO;QAAC;QAC3C,IAAI,CAACF,qBAAqB,CAAC,IAAI,CAAC5C,MAAM;QACtC,IAAI,CAACC,MAAM,CAAC8C,IAAI,CAAC,oCAAoC;YACnD3B,OAAO,IAAI,CAACpB,MAAM,CAACoB,KAAK;YACxBC,aAAa,IAAI,CAACrB,MAAM,CAACqB,WAAW;YACpCC,WAAW,IAAI,CAACtB,MAAM,CAACsB,SAAS;QAClC;IACF;IAEA;;GAEC,GACD0B,YAA6B;QAC3B,OAAO;YAAE,GAAG,IAAI,CAAChD,MAAM;QAAC;IAC1B;IAEA;;GAEC,GACD,MAAMiD,YACJC,QAAyB,EACzBC,OAMC,EAC2D;QAC5D,MAAMC,UAAyB;YAC7BhC,OAAO+B,SAAS/B,SAAS,IAAI,CAACpB,MAAM,CAACoB,KAAK,IAAI;YAC9C8B;YACAG,QAAQF,SAASzB,gBAAgB,IAAI,CAAC1B,MAAM,CAAC0B,YAAY;YACzD4B,YAAYH,SAAS7B,aAAa,IAAI,CAACtB,MAAM,CAACsB,SAAS,IAAI;YAC3DD,aAAa8B,SAAS9B,eAAe,IAAI,CAACrB,MAAM,CAACqB,WAAW;YAC5DkC,OAAO,IAAI,CAACvD,MAAM,CAACuB,IAAI;YACvBiC,OAAO,IAAI,CAACxD,MAAM,CAACwB,IAAI;YACvBiC,QAAQN,SAASM,UAAU;QAC7B;QAEA,IAAI,CAACxD,MAAM,CAACyD,KAAK,CAAC,8BAA8B;YAC9CtC,OAAOgC,QAAQhC,KAAK;YACpBC,aAAa+B,QAAQ/B,WAAW;YAChCC,WAAW8B,QAAQE,UAAU;YAC7BK,cAAcT,SAASU,MAAM;YAC7BH,QAAQL,QAAQK,MAAM;QACxB;QAEA,IAAIL,QAAQK,MAAM,EAAE;YAClB,OAAO,IAAI,CAACI,aAAa,CAACT;QAC5B,OAAO;YACL,OAAO,IAAI,CAACU,WAAW,CAACV;QAC1B;IACF;IAEA;;GAEC,GACD,MAAcU,YAAYV,OAAsB,EAA2B;QACzE,IAAIW;QAEJ,IAAK,IAAIC,UAAU,GAAGA,UAAW,CAAA,IAAI,CAAChE,MAAM,CAAC2B,aAAa,IAAI,CAAA,GAAIqC,UAAW;YAC3E,IAAI;gBACF,MAAMC,aAAa,IAAIC;gBACvB,MAAMvD,UAAUwD,WAAW,IAAMF,WAAWG,KAAK,IAAI,IAAI,CAACpE,MAAM,CAACW,OAAO,IAAI;gBAE5E,MAAM0D,WAAW,MAAMC,MACrB,IAAI,CAACtE,MAAM,CAACmB,MAAM,IAAI,yCACtB;oBACEoD,QAAQ;oBACRC,SAAS;wBACP,gBAAgB;wBAChB,qBAAqB;wBACrB,aAAa,IAAI,CAACxE,MAAM,CAACkB,MAAM;oBACjC;oBACAuD,MAAMC,KAAKC,SAAS,CAACvB;oBACrBwB,QAAQX,WAAWW,MAAM;gBAC3B;gBAGFC,aAAalE;gBAEb,IAAI,CAAC0D,SAASS,EAAE,EAAE;oBAChB,MAAMC,YAAY,MAAMV,SAASW,IAAI;oBACrC,IAAIC;oBAEJ,IAAI;wBACFA,YAAYP,KAAKQ,KAAK,CAACH;oBACzB,EAAE,OAAM;wBACNE,YAAY;4BAAEE,SAASJ;wBAAU;oBACnC;oBAEA,MAAM,IAAI,CAACK,cAAc,CAACf,SAASgB,MAAM,EAAEJ;gBAC7C;gBAEA,MAAMK,OAAQ,MAAMjB,SAASkB,IAAI;gBAEjC,IAAI,CAACtF,MAAM,CAAC8C,IAAI,CAAC,gCAAgC;oBAC/C3B,OAAOkE,KAAKlE,KAAK;oBACjBoE,aAAaF,KAAKG,KAAK,CAACC,YAAY;oBACpCC,cAAcL,KAAKG,KAAK,CAACG,aAAa;oBACtCC,YAAYP,KAAKQ,WAAW;gBAC9B;gBAEA,IAAI,CAACC,IAAI,CAAC,YAAYT;gBACtB,OAAOA;YACT,EAAE,OAAOU,OAAO;gBACdjC,YAAY,IAAI,CAACkC,cAAc,CAACD;gBAEhC,mCAAmC;gBACnC,IAAI,CAACjC,UAAUmC,SAAS,EAAE;oBACxB,IAAI,CAACC,WAAW,CAACpC;oBACjB,MAAMA;gBACR;gBAEA,IAAI,CAAC9D,MAAM,CAACmG,IAAI,CACd,CAAC,mCAAmC,EAAEpC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAChE,MAAM,CAAC2B,aAAa,CAAC,CAAC,CAAC,EACjF;oBACEqE,OAAOjC,UAAUoB,OAAO;oBACxBkB,YAAYtC,UAAUsC,UAAU;oBAChCH,WAAWnC,UAAUmC,SAAS;gBAChC;gBAGF,IAAIlC,UAAU,AAAC,CAAA,IAAI,CAAChE,MAAM,CAAC2B,aAAa,IAAI,CAAA,IAAK,GAAG;oBAClD,MAAM2E,QAAQ,IAAI,CAACC,mBAAmB,CAACvC,SAASD;oBAChD,MAAM,IAAI,CAACuC,KAAK,CAACA;gBACnB;YACF;QACF;QAEA,IAAI,CAACH,WAAW,CAACpC;QACjB,MAAMA;IACR;IAEA;;GAEC,GACD,OAAeF,cAAcT,OAAsB,EAAoC;QACrF,MAAMa,aAAa,IAAIC;QACvB,MAAMvD,UAAUwD,WAAW,IAAMF,WAAWG,KAAK,IAAI,AAAC,CAAA,IAAI,CAACpE,MAAM,CAACW,OAAO,IAAI,KAAI,IAAK,IAAI,+BAA+B;QAEzH,IAAI;YACF,MAAM0D,WAAW,MAAMC,MAAM,IAAI,CAACtE,MAAM,CAACmB,MAAM,IAAI,yCAAyC;gBAC1FoD,QAAQ;gBACRC,SAAS;oBACP,gBAAgB;oBAChB,qBAAqB;oBACrB,aAAa,IAAI,CAACxE,MAAM,CAACkB,MAAM;gBACjC;gBACAuD,MAAMC,KAAKC,SAAS,CAAC;oBAAE,GAAGvB,OAAO;oBAAEK,QAAQ;gBAAK;gBAChDmB,QAAQX,WAAWW,MAAM;YAC3B;YAEA,IAAI,CAACP,SAASS,EAAE,EAAE;gBAChB,MAAMC,YAAY,MAAMV,SAASW,IAAI;gBACrC,IAAIC;gBAEJ,IAAI;oBACFA,YAAYP,KAAKQ,KAAK,CAACH;gBACzB,EAAE,OAAM;oBACNE,YAAY;wBAAEE,SAASJ;oBAAU;gBACnC;gBAEA,MAAM,IAAI,CAACK,cAAc,CAACf,SAASgB,MAAM,EAAEJ;YAC7C;YAEA,IAAI,CAACZ,SAASI,IAAI,EAAE;gBAClB,MAAM,IAAIpF,eAAe;YAC3B;YACA,MAAMmH,SAASnC,SAASI,IAAI,CAACgC,SAAS;YACtC,MAAMC,UAAU,IAAIC;YACpB,IAAIC,SAAS;YAEb,MAAO,KAAM;gBACX,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAG,MAAMN,OAAOO,IAAI;gBACzC,IAAIF,MAAM;gBAEVD,UAAUF,QAAQM,MAAM,CAACF,OAAO;oBAAErD,QAAQ;gBAAK;gBAC/C,MAAMwD,QAAQL,OAAOM,KAAK,CAAC;gBAC3BN,SAASK,MAAME,GAAG,MAAM;gBAExB,KAAK,MAAMC,QAAQH,MAAO;oBACxB,IAAIG,KAAKC,UAAU,CAAC,WAAW;wBAC7B,MAAM/B,OAAO8B,KAAKE,KAAK,CAAC;wBACxB,IAAIhC,SAAS,UAAU;wBAEvB,IAAI;4BACF,MAAMiC,QAAQ7C,KAAKQ,KAAK,CAACI;4BACzB,IAAI,CAACS,IAAI,CAAC,gBAAgBwB;4BAC1B,MAAMA;wBACR,EAAE,OAAOC,GAAG;4BACV,IAAI,CAACvH,MAAM,CAACmG,IAAI,CAAC,gCAAgC;gCAAEd;gCAAMU,OAAOwB;4BAAE;wBACpE;oBACF;gBACF;YACF;QACF,EAAE,OAAOxB,OAAO;YACdnB,aAAalE;YAEb,uBAAuB;YACvB,IAAIqF,iBAAiByB,SAASzB,MAAM0B,IAAI,KAAK,cAAc;gBACzD,MAAM,IAAIjI,mBAAmB,qBAAqB,IAAI,CAACO,MAAM,CAACW,OAAO,IAAI;YAC3E;YAEA,MAAMqF;QACR,SAAU;YACRnB,aAAalE;QACf;IACF;IAEA;;GAEC,GACD,MAAMgH,SACJC,MAAc,EACdzE,OAKC,EACgB;QACjB,MAAMD,WAA4B;YAAC;gBAAE2E,MAAM;gBAAQC,SAASF;YAAO;SAAE;QACrE,MAAMvD,WAAY,MAAM,IAAI,CAACpB,WAAW,CAACC,UAAUC;QACnD,OAAOkB,SAASyD,OAAO,CAAC,EAAE,CAAC9C,IAAI;IACjC;IAEA;;GAEC,GACD,OAAO+C,eACLH,MAAc,EACdzE,OAKC,EACsB;QACvB,MAAMD,WAA4B;YAAC;gBAAE2E,MAAM;gBAAQC,SAASF;YAAO;SAAE;QACrE,MAAMnE,SAAU,MAAM,IAAI,CAACR,WAAW,CAACC,UAAU;YAC/C,GAAGC,OAAO;YACVM,QAAQ;QACV;QAEA,WAAW,MAAM8D,SAAS9D,OAAQ;YAChC,IAAI8D,MAAMS,IAAI,KAAK,yBAAyBT,MAAMU,KAAK,EAAEjD,MAAM;gBAC7D,MAAMuC,MAAMU,KAAK,CAACjD,IAAI;YACxB;QACF;IACF;IAEA;;GAEC,GACDkD,qBAAoC;QAClC,OAAO;YACL;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IAEA;;GAEC,GACDC,aAAa/G,KAAkB,EAI7B;QACA,MAAMgH,YAGF;YACF,0BAA0B;gBACxBV,MAAM;gBACNW,eAAe;gBACfC,aAAa;YACf;YACA,4BAA4B;gBAC1BZ,MAAM;gBACNW,eAAe;gBACfC,aAAa;YACf;YACA,2BAA2B;gBACzBZ,MAAM;gBACNW,eAAe;gBACfC,aAAa;YACf;YACA,cAAc;gBACZZ,MAAM;gBACNW,eAAe;gBACfC,aAAa;YACf;YACA,cAAc;gBACZZ,MAAM;gBACNW,eAAe;gBACfC,aAAa;YACf;YACA,sBAAsB;gBACpBZ,MAAM;gBACNW,eAAe;gBACfC,aAAa;YACf;QACF;QAEA,OACEF,SAAS,CAAChH,MAAM,IAAI;YAClBsG,MAAMtG;YACNiH,eAAe;YACfC,aAAa;QACf;IAEJ;IAEA;;GAEC,GACD,AAAQhC,MAAMiC,EAAU,EAAiB;QACvC,OAAO,IAAIC,QAAQ,CAACC,UAAYtE,WAAWsE,SAASF;IACtD;IAEA;;GAEC,GACD,AAAQvH,mBAAyB;QAC/B,IAAI,CAAC0H,kBAAkB,IAAI,gBAAgB;QAE3C,IAAI,CAACnI,gBAAgB,GAAGoI,YACtB,IAAM,IAAI,CAACD,kBAAkB,IAC7B,IAAI,CAAC1I,MAAM,CAAC6B,mBAAmB,IAAI;IAEvC;IAEA;;GAEC,GACD,MAAM6G,qBAAiD;QACrD,MAAME,YAAYC,KAAKC,GAAG;QAE1B,IAAI;YACF,MAAM7E,aAAa,IAAIC;YACvB,MAAMvD,UAAUwD,WAAW,IAAMF,WAAWG,KAAK,IAAI,QAAQ,oBAAoB;YAEjF,MAAMC,WAAW,MAAMC,MAAM,IAAI,CAACtE,MAAM,CAACmB,MAAM,IAAI,IAAI;gBACrDoD,QAAQ;gBACRC,SAAS;oBACP,gBAAgB;oBAChB,qBAAqB;oBACrB,aAAa,IAAI,CAACxE,MAAM,CAACkB,MAAM;gBACjC;gBACAuD,MAAMC,KAAKC,SAAS,CAAC;oBACnBvD,OAAO,IAAI,CAACpB,MAAM,CAACoB,KAAK;oBACxB8B,UAAU;wBAAC;4BAAE2E,MAAM;4BAAQC,SAAS;wBAAK;qBAAE;oBAC3CxE,YAAY;gBACd;gBACAsB,QAAQX,WAAWW,MAAM;YAC3B;YAEAC,aAAalE;YAEb,MAAMoI,UAAUF,KAAKC,GAAG,KAAKF;YAC7B,MAAMI,UAAU3E,SAASS,EAAE,IAAIT,SAASgB,MAAM,KAAK,KAAK,gCAAgC;YAExF,IAAI,CAAC/E,eAAe,GAAG;gBACrB0I;gBACAD;gBACA/C,OAAOgD,UAAUvH,YAAY,CAAC,QAAQ,EAAE4C,SAASgB,MAAM,EAAE;gBACzD4D,WAAW,IAAIJ;YACjB;YAEA,IAAI,CAAC5I,MAAM,CAACyD,KAAK,CAAC,qCAAqC,IAAI,CAACpD,eAAe;YAC3E,IAAI,CAACyF,IAAI,CAAC,gBAAgB,IAAI,CAACzF,eAAe;YAE9C,OAAO,IAAI,CAACA,eAAe;QAC7B,EAAE,OAAO0F,OAAO;YACd,MAAM+C,UAAUF,KAAKC,GAAG,KAAKF;YAE7B,IAAI,CAACtI,eAAe,GAAG;gBACrB0I,SAAS;gBACTD;gBACA/C,OAAOA,iBAAiByB,QAAQzB,MAAMb,OAAO,GAAG;gBAChD8D,WAAW,IAAIJ;YACjB;YAEA,IAAI,CAAC5I,MAAM,CAACmG,IAAI,CAAC,kCAAkC,IAAI,CAAC9F,eAAe;YACvE,IAAI,CAACyF,IAAI,CAAC,gBAAgB,IAAI,CAACzF,eAAe;YAE9C,OAAO,IAAI,CAACA,eAAe;QAC7B;IACF;IAEA;;GAEC,GACD4I,kBAAiD;QAC/C,OAAO,IAAI,CAAC5I,eAAe;IAC7B;IAEA;;GAEC,GACD,AAAQ8E,eAAeiB,UAAkB,EAAEpB,SAAc,EAAkB;QACzE,MAAME,UAAUF,UAAUe,KAAK,EAAEb,WAAWF,UAAUE,OAAO,IAAI;QAEjE,OAAQkB;YACN,KAAK;gBACH,OAAO,IAAIzG,sBAAsBuF,SAASF;YAC5C,KAAK;YACL,KAAK;gBACH,OAAO,IAAItF,0BAA0BwF,SAASF;YAChD,KAAK;gBACH,MAAMkE,aAAalE,UAAUe,KAAK,EAAEoD;gBACpC,OAAO,IAAI5J,qBAAqB2F,SAASgE,YAAYlE;YACvD,KAAK;gBACH,OAAO,IAAI3F,0BAA0B6F,SAASF;YAChD,KAAK;gBACH,OAAO,IAAI1F,8BAA8B4F,SAASF;YACpD;gBACE,OAAO,IAAI5F,eAAe8F,SAASkB,YAAYA,cAAc,KAAKpB;QACtE;IACF;IAEA;;GAEC,GACD,AAAQgB,eAAeD,KAAc,EAAkB;QACrD,IAAIA,iBAAiB3G,gBAAgB;YACnC,OAAO2G;QACT;QAEA,IAAIA,iBAAiByB,OAAO;YAC1B,iBAAiB;YACjB,IAAIzB,MAAMb,OAAO,CAACkE,QAAQ,CAAC,mBAAmBrD,MAAMb,OAAO,CAACkE,QAAQ,CAAC,iBAAiB;gBACpF,OAAO,IAAI3J,mBAAmBsG,MAAMb,OAAO;YAC7C;YAEA,iBAAiB;YACjB,IAAIa,MAAM0B,IAAI,KAAK,gBAAgB1B,MAAMb,OAAO,CAACkE,QAAQ,CAAC,YAAY;gBACpE,OAAO,IAAI5J,mBAAmBuG,MAAMb,OAAO,EAAE,IAAI,CAACnF,MAAM,CAACW,OAAO,IAAI;YACtE;QACF;QAEA,OAAO,IAAItB,eACT2G,iBAAiByB,QAAQzB,MAAMb,OAAO,GAAGmE,OAAOtD,QAChDvE,WACA;IAEJ;IAEA;;GAEC,GACD,AAAQ8E,oBAAoBvC,OAAe,EAAEgC,KAAqB,EAAU;QAC1E,wDAAwD;QACxD,IAAIA,iBAAiBxG,wBAAwBwG,MAAMmD,UAAU,EAAE;YAC7D,OAAOnD,MAAMmD,UAAU,GAAG,MAAM,0BAA0B;QAC5D;QAEA,MAAMI,YAAY,IAAI,CAACvJ,MAAM,CAAC4B,UAAU,IAAI;QAC5C,MAAM4H,WAAW,OAAO,iBAAiB;QAEzC,yDAAyD;QACzD,IAAIlD,QAAQmD,KAAKC,GAAG,CAACH,YAAYE,KAAKE,GAAG,CAAC,GAAG3F,UAAUwF;QAEvD,wCAAwC;QACxC,IAAI,IAAI,CAACxJ,MAAM,CAAC8B,WAAW,EAAE;YAC3B,MAAM8H,SAASH,KAAKI,MAAM,KAAK,MAAMvD,OAAO,mBAAmB;YAC/DA,QAAQA,QAAQsD;QAClB;QAEA,OAAOH,KAAKK,KAAK,CAACxD;IACpB;IAEA;;GAEC,GACD,AAAQH,YAAYH,KAAqB,EAAQ;QAC/C,MAAM+D,YAAYlK,qBAAqBmG;QAEvC,IAAI,CAAC/F,MAAM,CAAC+F,KAAK,CAAC,GAAG+D,UAAUC,KAAK,CAAC,EAAE,EAAED,UAAU5E,OAAO,EAAE,EAAE;YAC5Da,OAAOA,MAAMb,OAAO;YACpB8E,MAAMjE,MAAMiE,IAAI;YAChB5D,YAAYL,MAAMK,UAAU;YAC5BH,WAAWF,MAAME,SAAS;YAC1BgE,SAASlE,MAAMkE,OAAO;QACxB;QAEA,gCAAgC;QAChC,IAAI,IAAI,CAACjK,MAAM,CAACkK,KAAK,KAAK,WAAWJ,UAAUK,WAAW,CAACxG,MAAM,GAAG,GAAG;YACrE,IAAI,CAAC3D,MAAM,CAACyD,KAAK,CAAC,qCAAqCqG,UAAUK,WAAW;QAC9E;QAEA,IAAI,CAACrE,IAAI,CAAC,SAAS;YACjBC;YACAqE,cAAcN;QAChB;IACF;IAEA;;GAEC,GACDO,UAAgB;QACd,IAAI,IAAI,CAAC/J,gBAAgB,EAAE;YACzBgK,cAAc,IAAI,CAAChK,gBAAgB;YACnC,IAAI,CAACA,gBAAgB,GAAGkB;QAC1B;QACA,IAAI,CAAC+I,kBAAkB;IACzB;AACF"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/api/claude-client.ts"],"names":["EventEmitter","ClaudeAPIError","ClaudeInternalServerError","ClaudeServiceUnavailableError","ClaudeRateLimitError","ClaudeTimeoutError","ClaudeNetworkError","ClaudeAuthenticationError","ClaudeValidationError","getUserFriendlyError","circuitBreaker","incrementMetric","recordTiming","ClaudeAPIClient","config","logger","configManager","defaultModel","defaultTemperature","defaultMaxTokens","lastHealthCheck","healthCheckTimer","loadConfiguration","threshold","circuitBreakerThreshold","timeout","circuitBreakerTimeout","resetTimeout","circuitBreakerResetTimeout","enableHealthCheck","startHealthCheck","overrides","apiKey","apiUrl","model","temperature","maxTokens","topP","topK","undefined","systemPrompt","retryAttempts","retryDelay","healthCheckInterval","retryJitter","process","env","ANTHROPIC_API_KEY","CLAUDE_API_URL","CLAUDE_MODEL","CLAUDE_TEMPERATURE","parseFloat","CLAUDE_MAX_TOKENS","parseInt","claudeConfig","get","Object","assign","validateConfiguration","updateConfig","updates","info","getConfig","sendMessage","messages","options","request","system","max_tokens","top_p","top_k","stream","debug","messageCount","length","streamRequest","sendRequest","startTime","Date","now","provider","includes","lastError","attempt","controller","AbortController","setTimeout","abort","response","fetch","method","headers","body","JSON","stringify","signal","clearTimeout","ok","errorText","text","errorData","parse","message","createAPIError","status","data","json","usage","input_tokens","output_tokens","inputTokens","outputTokens","stopReason","stop_reason","emit","error","transformError","errorType","code","name","statusCode","toString","retryable","handleError","warn","delay","calculateRetryDelay","totalInputTokens","totalOutputTokens","apiError","bodyError","reader","getReader","decoder","TextDecoder","buffer","done","value","read","decode","lines","split","pop","line","startsWith","slice","event","type","e","Error","timeoutError","complete","prompt","role","content","streamComplete","delta","getAvailableModels","getModelInfo","modelInfo","contextWindow","description","ms","Promise","resolve","performHealthCheck","setInterval","latency","healthy","timestamp","getHealthStatus","retryAfter","retry_after","String","baseDelay","maxDelay","Math","min","pow","jitter","random","floor","errorInfo","title","details","level","suggestions","userFriendly","destroy","clearInterval","removeAllListeners"],"mappings":"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"}
|
|
@@ -85,7 +85,7 @@ Key deliverables:
|
|
|
85
85
|
selfLoopingPrompt: `
|
|
86
86
|
Phase 1 (State Machine) complete with {consensusScore}% consensus.
|
|
87
87
|
|
|
88
|
-
✅ State transitions operational
|
|
88
|
+
✅ State transitions operational
|
|
89
89
|
✅ SDK auto-checkpoints working
|
|
90
90
|
|
|
91
91
|
🚀 **IMMEDIATELY proceed to Phase 2: Dependency Graph**
|