sudocode 1.1.1 → 1.1.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/README.md +4 -3
- package/package.json +8 -38
- package/build.js +0 -75
- package/node_modules/@sudocode-ai/cli/README.md +0 -330
- package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts +0 -53
- package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js +0 -274
- package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts +0 -22
- package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js +0 -148
- package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts +0 -45
- package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js +0 -310
- package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts +0 -18
- package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js +0 -61
- package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts +0 -22
- package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js +0 -136
- package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts +0 -14
- package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js +0 -76
- package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts +0 -17
- package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js +0 -99
- package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts +0 -38
- package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js +0 -321
- package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts +0 -17
- package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js +0 -131
- package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts +0 -24
- package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js +0 -416
- package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts +0 -12
- package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js +0 -78
- package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli.d.ts +0 -6
- package/node_modules/@sudocode-ai/cli/dist/cli.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli.js +0 -426
- package/node_modules/@sudocode-ai/cli/dist/cli.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/db.d.ts +0 -21
- package/node_modules/@sudocode-ai/cli/dist/db.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/db.js +0 -54
- package/node_modules/@sudocode-ai/cli/dist/db.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/export.d.ts +0 -79
- package/node_modules/@sudocode-ai/cli/dist/export.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/export.js +0 -195
- package/node_modules/@sudocode-ai/cli/dist/export.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts +0 -30
- package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/filename-generator.js +0 -93
- package/node_modules/@sudocode-ai/cli/dist/filename-generator.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts +0 -26
- package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/id-generator.js +0 -123
- package/node_modules/@sudocode-ai/cli/dist/id-generator.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/import.d.ts +0 -118
- package/node_modules/@sudocode-ai/cli/dist/import.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/import.js +0 -608
- package/node_modules/@sudocode-ai/cli/dist/import.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/index.d.ts +0 -13
- package/node_modules/@sudocode-ai/cli/dist/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/index.js +0 -13
- package/node_modules/@sudocode-ai/cli/dist/index.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts +0 -69
- package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/jsonl.js +0 -333
- package/node_modules/@sudocode-ai/cli/dist/jsonl.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts +0 -146
- package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/markdown.js +0 -357
- package/node_modules/@sudocode-ai/cli/dist/markdown.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/migrations.d.ts +0 -23
- package/node_modules/@sudocode-ai/cli/dist/migrations.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/migrations.js +0 -57
- package/node_modules/@sudocode-ai/cli/dist/migrations.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts +0 -53
- package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/events.js +0 -108
- package/node_modules/@sudocode-ai/cli/dist/operations/events.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts +0 -92
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js +0 -444
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts +0 -76
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js +0 -234
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts +0 -10
- package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/index.js +0 -10
- package/node_modules/@sudocode-ai/cli/dist/operations/index.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts +0 -82
- package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/issues.js +0 -411
- package/node_modules/@sudocode-ai/cli/dist/operations/issues.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts +0 -34
- package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/references.js +0 -117
- package/node_modules/@sudocode-ai/cli/dist/operations/references.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts +0 -57
- package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js +0 -236
- package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts +0 -64
- package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/specs.js +0 -290
- package/node_modules/@sudocode-ai/cli/dist/operations/specs.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts +0 -42
- package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/tags.js +0 -127
- package/node_modules/@sudocode-ai/cli/dist/operations/tags.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts +0 -41
- package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js +0 -111
- package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/sync.d.ts +0 -47
- package/node_modules/@sudocode-ai/cli/dist/sync.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/sync.js +0 -442
- package/node_modules/@sudocode-ai/cli/dist/sync.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts +0 -5
- package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/test-schema.js +0 -46
- package/node_modules/@sudocode-ai/cli/dist/test-schema.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/types.d.ts +0 -7
- package/node_modules/@sudocode-ai/cli/dist/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/types.js +0 -7
- package/node_modules/@sudocode-ai/cli/dist/types.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts +0 -24
- package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/update-checker.js +0 -151
- package/node_modules/@sudocode-ai/cli/dist/update-checker.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/version.d.ts +0 -12
- package/node_modules/@sudocode-ai/cli/dist/version.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/version.js +0 -23
- package/node_modules/@sudocode-ai/cli/dist/version.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts +0 -63
- package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/watcher.js +0 -438
- package/node_modules/@sudocode-ai/cli/dist/watcher.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/package.json +0 -65
- package/node_modules/@sudocode-ai/local-server/README.md +0 -19
- package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts +0 -7
- package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/cli.js +0 -7
- package/node_modules/@sudocode-ai/local-server/dist/cli.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.d.ts +0 -103
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.js +0 -10
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.d.ts +0 -190
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.js +0 -611
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.d.ts +0 -116
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.js +0 -10
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.d.ts +0 -176
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.js +0 -438
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.d.ts +0 -96
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.js +0 -96
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.d.ts +0 -321
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.js +0 -769
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts +0 -18
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js +0 -15
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts +0 -421
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js +0 -22
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts +0 -86
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js +0 -59
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.d.ts +0 -15
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.js +0 -15
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.d.ts +0 -133
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.js +0 -10
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.d.ts +0 -102
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.js +0 -336
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.d.ts +0 -105
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.js +0 -10
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.d.ts +0 -53
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.js +0 -97
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.d.ts +0 -170
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.js +0 -291
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.d.ts +0 -109
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.js +0 -10
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.d.ts +0 -14
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.js +0 -15
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.d.ts +0 -86
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.js +0 -261
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.d.ts +0 -161
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.js +0 -234
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.d.ts +0 -226
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.js +0 -30
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.d.ts +0 -119
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.js +0 -208
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.d.ts +0 -10
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.js +0 -10
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.d.ts +0 -146
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.js +0 -282
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.d.ts +0 -176
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.js +0 -231
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.d.ts +0 -13
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.js +0 -13
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.d.ts +0 -216
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.js +0 -683
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.d.ts +0 -54
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.js +0 -68
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.d.ts +0 -158
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.js +0 -9
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.d.ts +0 -172
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.js +0 -9
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.d.ts +0 -89
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.js +0 -152
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts +0 -74
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js +0 -280
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts +0 -151
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js +0 -189
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts +0 -16
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js +0 -15
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts +0 -184
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js +0 -452
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts +0 -90
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js +0 -42
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/index.d.ts +0 -8
- package/node_modules/@sudocode-ai/local-server/dist/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/index.js +0 -356
- package/node_modules/@sudocode-ai/local-server/dist/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-C4SmlXoo.js +0 -568
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-C4SmlXoo.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-DE59j7ti.css +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-LX0UoTxg.js +0 -60
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-LX0UoTxg.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-_cxVHaqZ.js +0 -54
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-_cxVHaqZ.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/public/favicon.ico +0 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/index.html +0 -16
- package/node_modules/@sudocode-ai/local-server/dist/public/logo.png +0 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.d.ts +0 -24
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.js +0 -55
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts +0 -19
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js +0 -267
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts +0 -7
- package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js +0 -329
- package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts +0 -7
- package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js +0 -280
- package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts +0 -7
- package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js +0 -308
- package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts +0 -7
- package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js +0 -270
- package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts +0 -33
- package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/db.js +0 -85
- package/node_modules/@sudocode-ai/local-server/dist/services/db.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts +0 -108
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js +0 -286
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts +0 -185
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js +0 -676
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts +0 -59
- package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/executions.js +0 -164
- package/node_modules/@sudocode-ai/local-server/dist/services/executions.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts +0 -24
- package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/export.js +0 -106
- package/node_modules/@sudocode-ai/local-server/dist/services/export.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts +0 -40
- package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js +0 -54
- package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts +0 -27
- package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/issues.js +0 -35
- package/node_modules/@sudocode-ai/local-server/dist/services/issues.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts +0 -108
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js +0 -212
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts +0 -97
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js +0 -236
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts +0 -35
- package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js +0 -42
- package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts +0 -27
- package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/specs.js +0 -35
- package/node_modules/@sudocode-ai/local-server/dist/services/specs.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts +0 -50
- package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js +0 -69
- package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts +0 -127
- package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js +0 -389
- package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts +0 -6
- package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js +0 -9
- package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/package.json +0 -72
- package/node_modules/@sudocode-ai/mcp/LICENSE +0 -21
- package/node_modules/@sudocode-ai/mcp/README.md +0 -226
- package/node_modules/@sudocode-ai/mcp/dist/client.d.ts +0 -33
- package/node_modules/@sudocode-ai/mcp/dist/client.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/client.js +0 -159
- package/node_modules/@sudocode-ai/mcp/dist/client.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/index.d.ts +0 -6
- package/node_modules/@sudocode-ai/mcp/dist/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/index.js +0 -64
- package/node_modules/@sudocode-ai/mcp/dist/index.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/server.d.ts +0 -26
- package/node_modules/@sudocode-ai/mcp/dist/server.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/server.js +0 -575
- package/node_modules/@sudocode-ai/mcp/dist/server.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts +0 -41
- package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js +0 -21
- package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts +0 -19
- package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js +0 -24
- package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts +0 -17
- package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/init.js +0 -15
- package/node_modules/@sudocode-ai/mcp/dist/tools/init.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts +0 -44
- package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js +0 -106
- package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts +0 -21
- package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/references.js +0 -49
- package/node_modules/@sudocode-ai/mcp/dist/tools/references.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts +0 -15
- package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js +0 -18
- package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts +0 -35
- package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js +0 -85
- package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/types.d.ts +0 -35
- package/node_modules/@sudocode-ai/mcp/dist/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/types.js +0 -21
- package/node_modules/@sudocode-ai/mcp/dist/types.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/package.json +0 -67
- package/node_modules/@sudocode-ai/types/README.md +0 -7
- package/node_modules/@sudocode-ai/types/dist/schema.d.ts +0 -45
- package/node_modules/@sudocode-ai/types/dist/schema.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/types/dist/schema.js +0 -338
- package/node_modules/@sudocode-ai/types/dist/schema.js.map +0 -1
- package/node_modules/@sudocode-ai/types/package.json +0 -46
package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.js
DELETED
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resilient Executor Implementation
|
|
3
|
-
*
|
|
4
|
-
* Implements resilient task execution with retry logic and circuit breakers.
|
|
5
|
-
* Wraps the Engine Layer with fault tolerance mechanisms.
|
|
6
|
-
*
|
|
7
|
-
* @module execution/resilience/resilient-executor
|
|
8
|
-
*/
|
|
9
|
-
import { CircuitBreakerManager } from "./circuit-breaker.js";
|
|
10
|
-
import { calculateBackoff, isRetryableResult, sleep, createAttempt, } from "./retry.js";
|
|
11
|
-
import { DEFAULT_RETRY_POLICY } from "./types.js";
|
|
12
|
-
/**
|
|
13
|
-
* ResilientExecutor - Main implementation of resilient task execution
|
|
14
|
-
*
|
|
15
|
-
* Provides retry logic and circuit breaker protection for task execution.
|
|
16
|
-
* Wraps an IExecutionEngine with fault tolerance mechanisms.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* const engine = new SimpleExecutionEngine(processManager);
|
|
21
|
-
* const executor = new ResilientExecutor(engine);
|
|
22
|
-
*
|
|
23
|
-
* const task: ExecutionTask = {
|
|
24
|
-
* id: 'task-1',
|
|
25
|
-
* type: 'issue',
|
|
26
|
-
* prompt: 'Fix the bug in authentication',
|
|
27
|
-
* workDir: '/path/to/project',
|
|
28
|
-
* priority: 0,
|
|
29
|
-
* dependencies: [],
|
|
30
|
-
* createdAt: new Date(),
|
|
31
|
-
* config: {},
|
|
32
|
-
* };
|
|
33
|
-
*
|
|
34
|
-
* const result = await executor.executeTask(task);
|
|
35
|
-
* console.log(`Completed after ${result.totalAttempts} attempts`);
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
export class ResilientExecutor {
|
|
39
|
-
_engine;
|
|
40
|
-
_circuitManager;
|
|
41
|
-
_defaultPolicy;
|
|
42
|
-
_metrics;
|
|
43
|
-
// Event handlers
|
|
44
|
-
_retryHandlers = [];
|
|
45
|
-
_circuitOpenHandlers = [];
|
|
46
|
-
constructor(engine, defaultPolicy = DEFAULT_RETRY_POLICY) {
|
|
47
|
-
this._engine = engine;
|
|
48
|
-
this._circuitManager = new CircuitBreakerManager();
|
|
49
|
-
this._defaultPolicy = defaultPolicy;
|
|
50
|
-
this._metrics = {
|
|
51
|
-
totalRetries: 0,
|
|
52
|
-
successfulRetries: 0,
|
|
53
|
-
failedRetries: 0,
|
|
54
|
-
averageAttemptsToSuccess: 0,
|
|
55
|
-
circuitBreakers: new Map(),
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Execute a single task with retry and circuit breaker protection
|
|
60
|
-
*/
|
|
61
|
-
async executeTask(task, policy) {
|
|
62
|
-
const retryPolicy = policy || this._defaultPolicy;
|
|
63
|
-
const circuitBreakerName = task.type; // Use task type as circuit breaker name
|
|
64
|
-
const attempts = [];
|
|
65
|
-
// Get or create circuit breaker for this task type
|
|
66
|
-
const breaker = this._circuitManager.getOrCreate(circuitBreakerName, {
|
|
67
|
-
failureThreshold: 5,
|
|
68
|
-
successThreshold: 2,
|
|
69
|
-
timeout: 60000,
|
|
70
|
-
});
|
|
71
|
-
// Attempt execution with retries
|
|
72
|
-
for (let attemptNumber = 1; attemptNumber <= retryPolicy.maxAttempts; attemptNumber++) {
|
|
73
|
-
// Check circuit breaker before execution
|
|
74
|
-
if (!this._circuitManager.canExecute(circuitBreakerName)) {
|
|
75
|
-
// Call circuit open handlers
|
|
76
|
-
this._circuitOpenHandlers.forEach((handler) => {
|
|
77
|
-
handler(circuitBreakerName, breaker);
|
|
78
|
-
});
|
|
79
|
-
// Return result indicating circuit breaker triggered
|
|
80
|
-
const circuitOpenResult = {
|
|
81
|
-
taskId: task.id,
|
|
82
|
-
executionId: "circuit-breaker-open",
|
|
83
|
-
success: false,
|
|
84
|
-
exitCode: -1,
|
|
85
|
-
output: "",
|
|
86
|
-
error: `Circuit breaker is open for ${circuitBreakerName}`,
|
|
87
|
-
startedAt: new Date(),
|
|
88
|
-
completedAt: new Date(),
|
|
89
|
-
duration: 0,
|
|
90
|
-
attempts: [],
|
|
91
|
-
totalAttempts: 0,
|
|
92
|
-
finalAttempt: createAttempt(0, false, {
|
|
93
|
-
error: new Error(`Circuit breaker is open for ${circuitBreakerName}`),
|
|
94
|
-
}),
|
|
95
|
-
circuitBreakerTriggered: true,
|
|
96
|
-
};
|
|
97
|
-
return circuitOpenResult;
|
|
98
|
-
}
|
|
99
|
-
const attemptStart = new Date();
|
|
100
|
-
try {
|
|
101
|
-
// Submit task to engine and wait for result
|
|
102
|
-
const taskId = await this._engine.submitTask(task);
|
|
103
|
-
const result = await this._engine.waitForTask(taskId);
|
|
104
|
-
const attemptDuration = Date.now() - attemptStart.getTime();
|
|
105
|
-
// Check if execution was successful
|
|
106
|
-
if (result.success) {
|
|
107
|
-
// Success! Record in circuit breaker and return
|
|
108
|
-
this._circuitManager.recordSuccess(circuitBreakerName);
|
|
109
|
-
const successAttempt = createAttempt(attemptNumber, true, {
|
|
110
|
-
exitCode: result.exitCode,
|
|
111
|
-
duration: attemptDuration,
|
|
112
|
-
});
|
|
113
|
-
attempts.push(successAttempt);
|
|
114
|
-
// Update metrics for successful retry
|
|
115
|
-
if (attemptNumber > 1) {
|
|
116
|
-
this._metrics.successfulRetries++;
|
|
117
|
-
this._updateAverageAttempts(attemptNumber);
|
|
118
|
-
}
|
|
119
|
-
return this._createResilientResult(result, attempts);
|
|
120
|
-
}
|
|
121
|
-
// Execution completed but failed - check if retryable
|
|
122
|
-
const isRetryable = isRetryableResult(result, retryPolicy);
|
|
123
|
-
const willRetry = isRetryable && attemptNumber < retryPolicy.maxAttempts;
|
|
124
|
-
const failureAttempt = createAttempt(attemptNumber, false, {
|
|
125
|
-
error: new Error(result.error || "Task failed"),
|
|
126
|
-
exitCode: result.exitCode,
|
|
127
|
-
duration: attemptDuration,
|
|
128
|
-
willRetry,
|
|
129
|
-
});
|
|
130
|
-
if (willRetry) {
|
|
131
|
-
const backoffDelay = calculateBackoff(attemptNumber + 1, retryPolicy.backoff);
|
|
132
|
-
failureAttempt.nextRetryAt = new Date(Date.now() + backoffDelay);
|
|
133
|
-
// Call retry attempt handlers
|
|
134
|
-
this._retryHandlers.forEach((handler) => {
|
|
135
|
-
handler(task.id, failureAttempt);
|
|
136
|
-
});
|
|
137
|
-
this._metrics.totalRetries++;
|
|
138
|
-
attempts.push(failureAttempt);
|
|
139
|
-
// Wait before retry
|
|
140
|
-
await sleep(backoffDelay);
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
// Not retryable or max attempts reached - record failure
|
|
144
|
-
attempts.push(failureAttempt);
|
|
145
|
-
this._circuitManager.recordFailure(circuitBreakerName, new Error(result.error || "Task failed"));
|
|
146
|
-
// Update metrics for failed retries
|
|
147
|
-
// Count all retry attempts in this failed task
|
|
148
|
-
if (attemptNumber > 1) {
|
|
149
|
-
this._metrics.failedRetries += attemptNumber - 1;
|
|
150
|
-
}
|
|
151
|
-
return this._createResilientResult(result, attempts);
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
// Engine execution error (not a task failure)
|
|
155
|
-
const attemptDuration = Date.now() - attemptStart.getTime();
|
|
156
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
157
|
-
const isRetryable = retryPolicy.retryableErrors.some((pattern) => err.message.includes(pattern));
|
|
158
|
-
const willRetry = isRetryable && attemptNumber < retryPolicy.maxAttempts;
|
|
159
|
-
const errorAttempt = createAttempt(attemptNumber, false, {
|
|
160
|
-
error: err,
|
|
161
|
-
duration: attemptDuration,
|
|
162
|
-
willRetry,
|
|
163
|
-
});
|
|
164
|
-
if (willRetry) {
|
|
165
|
-
const backoffDelay = calculateBackoff(attemptNumber + 1, retryPolicy.backoff);
|
|
166
|
-
errorAttempt.nextRetryAt = new Date(Date.now() + backoffDelay);
|
|
167
|
-
// Call retry attempt handlers
|
|
168
|
-
this._retryHandlers.forEach((handler) => {
|
|
169
|
-
handler(task.id, errorAttempt);
|
|
170
|
-
});
|
|
171
|
-
this._metrics.totalRetries++;
|
|
172
|
-
attempts.push(errorAttempt);
|
|
173
|
-
// Wait before retry
|
|
174
|
-
await sleep(backoffDelay);
|
|
175
|
-
continue;
|
|
176
|
-
}
|
|
177
|
-
// Not retryable or max attempts reached
|
|
178
|
-
attempts.push(errorAttempt);
|
|
179
|
-
this._circuitManager.recordFailure(circuitBreakerName, err);
|
|
180
|
-
// Update metrics for failed retries
|
|
181
|
-
// Count all retry attempts in this failed task
|
|
182
|
-
if (attemptNumber > 1) {
|
|
183
|
-
this._metrics.failedRetries += attemptNumber - 1;
|
|
184
|
-
}
|
|
185
|
-
throw err;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
// Should never reach here, but TypeScript needs it
|
|
189
|
-
throw new Error("Unexpected state: exceeded max attempts without return");
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Execute multiple tasks with retry and circuit breaker protection
|
|
193
|
-
*/
|
|
194
|
-
async executeTasks(tasks, policy) {
|
|
195
|
-
// Execute all tasks in parallel
|
|
196
|
-
const promises = tasks.map((task) => this.executeTask(task, policy));
|
|
197
|
-
return Promise.all(promises);
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Get circuit breaker by name
|
|
201
|
-
*/
|
|
202
|
-
getCircuitBreaker(name) {
|
|
203
|
-
return this._circuitManager.get(name);
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Reset a circuit breaker to closed state
|
|
207
|
-
*/
|
|
208
|
-
resetCircuitBreaker(name) {
|
|
209
|
-
this._circuitManager.reset(name);
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Get aggregate retry metrics
|
|
213
|
-
*/
|
|
214
|
-
getRetryMetrics() {
|
|
215
|
-
// Update circuit breakers in metrics
|
|
216
|
-
this._metrics.circuitBreakers = this._circuitManager.getAll();
|
|
217
|
-
// Return defensive copy
|
|
218
|
-
return {
|
|
219
|
-
...this._metrics,
|
|
220
|
-
circuitBreakers: new Map(this._metrics.circuitBreakers),
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Register handler for retry attempt events
|
|
225
|
-
*/
|
|
226
|
-
onRetryAttempt(handler) {
|
|
227
|
-
this._retryHandlers.push(handler);
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Register handler for circuit breaker open events
|
|
231
|
-
*/
|
|
232
|
-
onCircuitOpen(handler) {
|
|
233
|
-
this._circuitOpenHandlers.push(handler);
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Helper to create ResilientExecutionResult from engine result
|
|
237
|
-
* @private
|
|
238
|
-
*/
|
|
239
|
-
_createResilientResult(result, attempts) {
|
|
240
|
-
const finalAttempt = attempts[attempts.length - 1];
|
|
241
|
-
return {
|
|
242
|
-
...result,
|
|
243
|
-
attempts,
|
|
244
|
-
totalAttempts: attempts.length,
|
|
245
|
-
finalAttempt,
|
|
246
|
-
failureReason: result.success ? undefined : result.error,
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Helper to update average attempts to success metric
|
|
251
|
-
* @private
|
|
252
|
-
*/
|
|
253
|
-
_updateAverageAttempts(attemptCount) {
|
|
254
|
-
const totalSuccessful = this._metrics.successfulRetries;
|
|
255
|
-
const previousAverage = this._metrics.averageAttemptsToSuccess;
|
|
256
|
-
const previousTotal = previousAverage * (totalSuccessful - 1);
|
|
257
|
-
this._metrics.averageAttemptsToSuccess =
|
|
258
|
-
(previousTotal + attemptCount) / totalSuccessful;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
//# sourceMappingURL=resilient-executor.js.map
|
package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resilient-executor.js","sourceRoot":"","sources":["../../../src/execution/resilience/resilient-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Retry Logic and Backoff Strategies
|
|
3
|
-
*
|
|
4
|
-
* Implements retry logic with various backoff strategies including
|
|
5
|
-
* exponential, linear, and fixed delays with optional jitter.
|
|
6
|
-
*
|
|
7
|
-
* @module execution/resilience/retry
|
|
8
|
-
*/
|
|
9
|
-
import type { RetryPolicy, ExecutionAttempt } from './types.js';
|
|
10
|
-
import type { ExecutionResult } from '../engine/types.js';
|
|
11
|
-
/**
|
|
12
|
-
* Calculate backoff delay for a given attempt
|
|
13
|
-
*
|
|
14
|
-
* Supports multiple backoff strategies:
|
|
15
|
-
* - Exponential: baseDelay * 2^(attempt-1) - e.g., 1s, 2s, 4s, 8s, 16s
|
|
16
|
-
* - Linear: baseDelay * attempt - e.g., 1s, 2s, 3s, 4s, 5s
|
|
17
|
-
* - Fixed: constant baseDelay - e.g., 1s, 1s, 1s, 1s, 1s
|
|
18
|
-
*
|
|
19
|
-
* Applies maxDelay cap and optional jitter to prevent thundering herd.
|
|
20
|
-
*
|
|
21
|
-
* @param attempt - Attempt number (1-indexed)
|
|
22
|
-
* @param config - Backoff configuration from retry policy
|
|
23
|
-
* @returns Delay in milliseconds
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* // Exponential backoff with jitter
|
|
28
|
-
* const delay = calculateBackoff(3, {
|
|
29
|
-
* type: 'exponential',
|
|
30
|
-
* baseDelayMs: 1000,
|
|
31
|
-
* maxDelayMs: 30000,
|
|
32
|
-
* jitter: true,
|
|
33
|
-
* });
|
|
34
|
-
* // Returns ~4000ms ± 10% jitter
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export declare function calculateBackoff(attempt: number, config: RetryPolicy['backoff']): number;
|
|
38
|
-
/**
|
|
39
|
-
* Check if an error should trigger a retry
|
|
40
|
-
*
|
|
41
|
-
* Matches error message against the list of retryable error patterns
|
|
42
|
-
* defined in the retry policy.
|
|
43
|
-
*
|
|
44
|
-
* @param error - Error that occurred
|
|
45
|
-
* @param policy - Retry policy with retryable error patterns
|
|
46
|
-
* @returns True if error should be retried
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
* ```typescript
|
|
50
|
-
* const error = new Error('Connection timeout');
|
|
51
|
-
* const shouldRetry = isRetryableError(error, {
|
|
52
|
-
* retryableErrors: ['timeout', 'ECONNREFUSED'],
|
|
53
|
-
* // ... other policy fields
|
|
54
|
-
* });
|
|
55
|
-
* // Returns true
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
export declare function isRetryableError(error: Error, policy: RetryPolicy): boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Check if an exit code should trigger a retry
|
|
61
|
-
*
|
|
62
|
-
* Matches exit code against the list of retryable exit codes
|
|
63
|
-
* defined in the retry policy.
|
|
64
|
-
*
|
|
65
|
-
* @param exitCode - Process exit code
|
|
66
|
-
* @param policy - Retry policy with retryable exit codes
|
|
67
|
-
* @returns True if exit code should be retried
|
|
68
|
-
*
|
|
69
|
-
* @example
|
|
70
|
-
* ```typescript
|
|
71
|
-
* const shouldRetry = isRetryableExitCode(1, {
|
|
72
|
-
* retryableExitCodes: [1, 137],
|
|
73
|
-
* // ... other policy fields
|
|
74
|
-
* });
|
|
75
|
-
* // Returns true
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
export declare function isRetryableExitCode(exitCode: number, policy: RetryPolicy): boolean;
|
|
79
|
-
/**
|
|
80
|
-
* Check if an execution result should trigger a retry
|
|
81
|
-
*
|
|
82
|
-
* Checks both the exit code and error message (if present) to determine
|
|
83
|
-
* if the execution should be retried.
|
|
84
|
-
*
|
|
85
|
-
* @param result - Execution result from task execution
|
|
86
|
-
* @param policy - Retry policy
|
|
87
|
-
* @returns True if execution should be retried
|
|
88
|
-
*
|
|
89
|
-
* @example
|
|
90
|
-
* ```typescript
|
|
91
|
-
* const result: ExecutionResult = {
|
|
92
|
-
* taskId: 'task-1',
|
|
93
|
-
* executionId: 'proc-123',
|
|
94
|
-
* success: false,
|
|
95
|
-
* exitCode: 1,
|
|
96
|
-
* error: 'Connection timeout',
|
|
97
|
-
* // ... other fields
|
|
98
|
-
* };
|
|
99
|
-
*
|
|
100
|
-
* const shouldRetry = isRetryableResult(result, policy);
|
|
101
|
-
* // Returns true if exitCode is retryable OR error contains retryable pattern
|
|
102
|
-
* ```
|
|
103
|
-
*/
|
|
104
|
-
export declare function isRetryableResult(result: ExecutionResult, policy: RetryPolicy): boolean;
|
|
105
|
-
/**
|
|
106
|
-
* Promise-based sleep utility
|
|
107
|
-
*
|
|
108
|
-
* Returns a promise that resolves after the specified delay.
|
|
109
|
-
* Useful for implementing retry backoff.
|
|
110
|
-
*
|
|
111
|
-
* @param ms - Delay in milliseconds
|
|
112
|
-
* @returns Promise that resolves after delay
|
|
113
|
-
*
|
|
114
|
-
* @example
|
|
115
|
-
* ```typescript
|
|
116
|
-
* console.log('Starting...');
|
|
117
|
-
* await sleep(1000);
|
|
118
|
-
* console.log('1 second later');
|
|
119
|
-
* ```
|
|
120
|
-
*/
|
|
121
|
-
export declare function sleep(ms: number): Promise<void>;
|
|
122
|
-
/**
|
|
123
|
-
* Create an execution attempt record
|
|
124
|
-
*
|
|
125
|
-
* Helper function to create a properly structured ExecutionAttempt object.
|
|
126
|
-
*
|
|
127
|
-
* @param attemptNumber - Attempt number (1-indexed)
|
|
128
|
-
* @param success - Whether the attempt succeeded
|
|
129
|
-
* @param options - Optional fields for the attempt
|
|
130
|
-
* @returns ExecutionAttempt object
|
|
131
|
-
*/
|
|
132
|
-
export declare function createAttempt(attemptNumber: number, success: boolean, options?: {
|
|
133
|
-
error?: Error;
|
|
134
|
-
exitCode?: number;
|
|
135
|
-
duration?: number;
|
|
136
|
-
willRetry?: boolean;
|
|
137
|
-
nextRetryAt?: Date;
|
|
138
|
-
}): ExecutionAttempt;
|
|
139
|
-
/**
|
|
140
|
-
* Calculate total delay from all retry attempts
|
|
141
|
-
*
|
|
142
|
-
* Sums up all the backoff delays that would be applied for a given
|
|
143
|
-
* number of retry attempts. Useful for timeout calculations.
|
|
144
|
-
*
|
|
145
|
-
* @param maxAttempts - Maximum number of attempts
|
|
146
|
-
* @param backoffConfig - Backoff configuration
|
|
147
|
-
* @returns Total delay in milliseconds
|
|
148
|
-
*
|
|
149
|
-
* @example
|
|
150
|
-
* ```typescript
|
|
151
|
-
* const totalDelay = calculateTotalRetryDelay(3, {
|
|
152
|
-
* type: 'exponential',
|
|
153
|
-
* baseDelayMs: 1000,
|
|
154
|
-
* maxDelayMs: 30000,
|
|
155
|
-
* jitter: false,
|
|
156
|
-
* });
|
|
157
|
-
* // Returns 7000ms (1s + 2s + 4s)
|
|
158
|
-
* ```
|
|
159
|
-
*/
|
|
160
|
-
export declare function calculateTotalRetryDelay(maxAttempts: number, backoffConfig: RetryPolicy['backoff']): number;
|
|
161
|
-
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/execution/resilience/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,GAC7B,MAAM,CAyCR;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAW3E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,OAAO,CAET;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,WAAW,GAClB,OAAO,CAiBT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,IAAI,CAAC;CACf,GACL,gBAAgB,CAclB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,GACpC,MAAM,CASR"}
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Retry Logic and Backoff Strategies
|
|
3
|
-
*
|
|
4
|
-
* Implements retry logic with various backoff strategies including
|
|
5
|
-
* exponential, linear, and fixed delays with optional jitter.
|
|
6
|
-
*
|
|
7
|
-
* @module execution/resilience/retry
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Calculate backoff delay for a given attempt
|
|
11
|
-
*
|
|
12
|
-
* Supports multiple backoff strategies:
|
|
13
|
-
* - Exponential: baseDelay * 2^(attempt-1) - e.g., 1s, 2s, 4s, 8s, 16s
|
|
14
|
-
* - Linear: baseDelay * attempt - e.g., 1s, 2s, 3s, 4s, 5s
|
|
15
|
-
* - Fixed: constant baseDelay - e.g., 1s, 1s, 1s, 1s, 1s
|
|
16
|
-
*
|
|
17
|
-
* Applies maxDelay cap and optional jitter to prevent thundering herd.
|
|
18
|
-
*
|
|
19
|
-
* @param attempt - Attempt number (1-indexed)
|
|
20
|
-
* @param config - Backoff configuration from retry policy
|
|
21
|
-
* @returns Delay in milliseconds
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript
|
|
25
|
-
* // Exponential backoff with jitter
|
|
26
|
-
* const delay = calculateBackoff(3, {
|
|
27
|
-
* type: 'exponential',
|
|
28
|
-
* baseDelayMs: 1000,
|
|
29
|
-
* maxDelayMs: 30000,
|
|
30
|
-
* jitter: true,
|
|
31
|
-
* });
|
|
32
|
-
* // Returns ~4000ms ± 10% jitter
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
export function calculateBackoff(attempt, config) {
|
|
36
|
-
let delay;
|
|
37
|
-
// Calculate base delay based on strategy
|
|
38
|
-
switch (config.type) {
|
|
39
|
-
case 'exponential':
|
|
40
|
-
// 2^(attempt-1) * baseDelay
|
|
41
|
-
// attempt 1: 2^0 = 1x, attempt 2: 2^1 = 2x, attempt 3: 2^2 = 4x
|
|
42
|
-
delay = config.baseDelayMs * Math.pow(2, attempt - 1);
|
|
43
|
-
break;
|
|
44
|
-
case 'linear':
|
|
45
|
-
// attempt * baseDelay
|
|
46
|
-
// attempt 1: 1x, attempt 2: 2x, attempt 3: 3x
|
|
47
|
-
delay = config.baseDelayMs * attempt;
|
|
48
|
-
break;
|
|
49
|
-
case 'fixed':
|
|
50
|
-
// constant baseDelay
|
|
51
|
-
delay = config.baseDelayMs;
|
|
52
|
-
break;
|
|
53
|
-
default:
|
|
54
|
-
// TypeScript should prevent this, but handle gracefully
|
|
55
|
-
delay = config.baseDelayMs;
|
|
56
|
-
}
|
|
57
|
-
// Enforce maximum delay cap
|
|
58
|
-
delay = Math.min(delay, config.maxDelayMs);
|
|
59
|
-
// Add jitter if configured (±10% randomness)
|
|
60
|
-
if (config.jitter) {
|
|
61
|
-
const jitterAmount = delay * 0.1; // 10% of delay
|
|
62
|
-
const jitterOffset = Math.random() * jitterAmount * 2 - jitterAmount;
|
|
63
|
-
delay += jitterOffset;
|
|
64
|
-
// Ensure delay stays positive and doesn't exceed max after jitter
|
|
65
|
-
delay = Math.max(0, Math.min(delay, config.maxDelayMs));
|
|
66
|
-
}
|
|
67
|
-
return Math.floor(delay);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Check if an error should trigger a retry
|
|
71
|
-
*
|
|
72
|
-
* Matches error message against the list of retryable error patterns
|
|
73
|
-
* defined in the retry policy.
|
|
74
|
-
*
|
|
75
|
-
* @param error - Error that occurred
|
|
76
|
-
* @param policy - Retry policy with retryable error patterns
|
|
77
|
-
* @returns True if error should be retried
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* ```typescript
|
|
81
|
-
* const error = new Error('Connection timeout');
|
|
82
|
-
* const shouldRetry = isRetryableError(error, {
|
|
83
|
-
* retryableErrors: ['timeout', 'ECONNREFUSED'],
|
|
84
|
-
* // ... other policy fields
|
|
85
|
-
* });
|
|
86
|
-
* // Returns true
|
|
87
|
-
* ```
|
|
88
|
-
*/
|
|
89
|
-
export function isRetryableError(error, policy) {
|
|
90
|
-
const errorMessage = error.message || '';
|
|
91
|
-
// Check if error message contains any retryable pattern
|
|
92
|
-
for (const retryablePattern of policy.retryableErrors) {
|
|
93
|
-
if (errorMessage.includes(retryablePattern)) {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Check if an exit code should trigger a retry
|
|
101
|
-
*
|
|
102
|
-
* Matches exit code against the list of retryable exit codes
|
|
103
|
-
* defined in the retry policy.
|
|
104
|
-
*
|
|
105
|
-
* @param exitCode - Process exit code
|
|
106
|
-
* @param policy - Retry policy with retryable exit codes
|
|
107
|
-
* @returns True if exit code should be retried
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* ```typescript
|
|
111
|
-
* const shouldRetry = isRetryableExitCode(1, {
|
|
112
|
-
* retryableExitCodes: [1, 137],
|
|
113
|
-
* // ... other policy fields
|
|
114
|
-
* });
|
|
115
|
-
* // Returns true
|
|
116
|
-
* ```
|
|
117
|
-
*/
|
|
118
|
-
export function isRetryableExitCode(exitCode, policy) {
|
|
119
|
-
return policy.retryableExitCodes.includes(exitCode);
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Check if an execution result should trigger a retry
|
|
123
|
-
*
|
|
124
|
-
* Checks both the exit code and error message (if present) to determine
|
|
125
|
-
* if the execution should be retried.
|
|
126
|
-
*
|
|
127
|
-
* @param result - Execution result from task execution
|
|
128
|
-
* @param policy - Retry policy
|
|
129
|
-
* @returns True if execution should be retried
|
|
130
|
-
*
|
|
131
|
-
* @example
|
|
132
|
-
* ```typescript
|
|
133
|
-
* const result: ExecutionResult = {
|
|
134
|
-
* taskId: 'task-1',
|
|
135
|
-
* executionId: 'proc-123',
|
|
136
|
-
* success: false,
|
|
137
|
-
* exitCode: 1,
|
|
138
|
-
* error: 'Connection timeout',
|
|
139
|
-
* // ... other fields
|
|
140
|
-
* };
|
|
141
|
-
*
|
|
142
|
-
* const shouldRetry = isRetryableResult(result, policy);
|
|
143
|
-
* // Returns true if exitCode is retryable OR error contains retryable pattern
|
|
144
|
-
* ```
|
|
145
|
-
*/
|
|
146
|
-
export function isRetryableResult(result, policy) {
|
|
147
|
-
// Check exit code
|
|
148
|
-
if (result.exitCode !== undefined && result.exitCode !== null) {
|
|
149
|
-
if (isRetryableExitCode(result.exitCode, policy)) {
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
// Check error message
|
|
154
|
-
if (result.error) {
|
|
155
|
-
const error = new Error(result.error);
|
|
156
|
-
if (isRetryableError(error, policy)) {
|
|
157
|
-
return true;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
return false;
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Promise-based sleep utility
|
|
164
|
-
*
|
|
165
|
-
* Returns a promise that resolves after the specified delay.
|
|
166
|
-
* Useful for implementing retry backoff.
|
|
167
|
-
*
|
|
168
|
-
* @param ms - Delay in milliseconds
|
|
169
|
-
* @returns Promise that resolves after delay
|
|
170
|
-
*
|
|
171
|
-
* @example
|
|
172
|
-
* ```typescript
|
|
173
|
-
* console.log('Starting...');
|
|
174
|
-
* await sleep(1000);
|
|
175
|
-
* console.log('1 second later');
|
|
176
|
-
* ```
|
|
177
|
-
*/
|
|
178
|
-
export function sleep(ms) {
|
|
179
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Create an execution attempt record
|
|
183
|
-
*
|
|
184
|
-
* Helper function to create a properly structured ExecutionAttempt object.
|
|
185
|
-
*
|
|
186
|
-
* @param attemptNumber - Attempt number (1-indexed)
|
|
187
|
-
* @param success - Whether the attempt succeeded
|
|
188
|
-
* @param options - Optional fields for the attempt
|
|
189
|
-
* @returns ExecutionAttempt object
|
|
190
|
-
*/
|
|
191
|
-
export function createAttempt(attemptNumber, success, options = {}) {
|
|
192
|
-
const now = new Date();
|
|
193
|
-
return {
|
|
194
|
-
attemptNumber,
|
|
195
|
-
startedAt: now,
|
|
196
|
-
completedAt: options.duration !== undefined ? now : undefined,
|
|
197
|
-
duration: options.duration,
|
|
198
|
-
success,
|
|
199
|
-
error: options.error,
|
|
200
|
-
exitCode: options.exitCode,
|
|
201
|
-
willRetry: options.willRetry || false,
|
|
202
|
-
nextRetryAt: options.nextRetryAt,
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Calculate total delay from all retry attempts
|
|
207
|
-
*
|
|
208
|
-
* Sums up all the backoff delays that would be applied for a given
|
|
209
|
-
* number of retry attempts. Useful for timeout calculations.
|
|
210
|
-
*
|
|
211
|
-
* @param maxAttempts - Maximum number of attempts
|
|
212
|
-
* @param backoffConfig - Backoff configuration
|
|
213
|
-
* @returns Total delay in milliseconds
|
|
214
|
-
*
|
|
215
|
-
* @example
|
|
216
|
-
* ```typescript
|
|
217
|
-
* const totalDelay = calculateTotalRetryDelay(3, {
|
|
218
|
-
* type: 'exponential',
|
|
219
|
-
* baseDelayMs: 1000,
|
|
220
|
-
* maxDelayMs: 30000,
|
|
221
|
-
* jitter: false,
|
|
222
|
-
* });
|
|
223
|
-
* // Returns 7000ms (1s + 2s + 4s)
|
|
224
|
-
* ```
|
|
225
|
-
*/
|
|
226
|
-
export function calculateTotalRetryDelay(maxAttempts, backoffConfig) {
|
|
227
|
-
let totalDelay = 0;
|
|
228
|
-
// Calculate delay for each attempt (excluding the first one)
|
|
229
|
-
for (let attempt = 2; attempt <= maxAttempts; attempt++) {
|
|
230
|
-
totalDelay += calculateBackoff(attempt, backoffConfig);
|
|
231
|
-
}
|
|
232
|
-
return totalDelay;
|
|
233
|
-
}
|
|
234
|
-
//# sourceMappingURL=retry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/execution/resilience/retry.ts"],"names":[],"mappings":"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"}
|