sudocode 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +222 -0
- package/build.js +75 -0
- package/node_modules/@sudocode-ai/cli/README.md +330 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts +53 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js +274 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts +22 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js +148 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts +45 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js +310 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts +18 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js +61 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts +22 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js +136 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts +14 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js +76 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts +17 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js +99 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts +38 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js +321 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts +17 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js +131 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts +24 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js +416 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts +12 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js +78 -0
- package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli.d.ts +6 -0
- package/node_modules/@sudocode-ai/cli/dist/cli.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/cli.js +426 -0
- package/node_modules/@sudocode-ai/cli/dist/cli.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/db.d.ts +21 -0
- package/node_modules/@sudocode-ai/cli/dist/db.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/db.js +54 -0
- package/node_modules/@sudocode-ai/cli/dist/db.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/export.d.ts +79 -0
- package/node_modules/@sudocode-ai/cli/dist/export.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/export.js +195 -0
- package/node_modules/@sudocode-ai/cli/dist/export.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts +30 -0
- package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/filename-generator.js +93 -0
- package/node_modules/@sudocode-ai/cli/dist/filename-generator.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts +26 -0
- package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/id-generator.js +123 -0
- package/node_modules/@sudocode-ai/cli/dist/id-generator.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/import.d.ts +118 -0
- package/node_modules/@sudocode-ai/cli/dist/import.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/import.js +608 -0
- package/node_modules/@sudocode-ai/cli/dist/import.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/index.d.ts +13 -0
- package/node_modules/@sudocode-ai/cli/dist/index.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/index.js +13 -0
- package/node_modules/@sudocode-ai/cli/dist/index.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts +69 -0
- package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/jsonl.js +333 -0
- package/node_modules/@sudocode-ai/cli/dist/jsonl.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts +146 -0
- package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/markdown.js +357 -0
- package/node_modules/@sudocode-ai/cli/dist/markdown.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/migrations.d.ts +23 -0
- package/node_modules/@sudocode-ai/cli/dist/migrations.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/migrations.js +57 -0
- package/node_modules/@sudocode-ai/cli/dist/migrations.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts +53 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/events.js +108 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/events.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts +92 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js +444 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts +76 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js +234 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts +10 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/index.js +10 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/index.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts +82 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/issues.js +411 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/issues.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts +34 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/references.js +117 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/references.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts +57 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js +236 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts +64 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/specs.js +290 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/specs.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts +42 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/tags.js +127 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/tags.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts +41 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js +111 -0
- package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/sync.d.ts +47 -0
- package/node_modules/@sudocode-ai/cli/dist/sync.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/sync.js +442 -0
- package/node_modules/@sudocode-ai/cli/dist/sync.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts +5 -0
- package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/test-schema.js +46 -0
- package/node_modules/@sudocode-ai/cli/dist/test-schema.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/types.d.ts +7 -0
- package/node_modules/@sudocode-ai/cli/dist/types.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/types.js +7 -0
- package/node_modules/@sudocode-ai/cli/dist/types.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts +24 -0
- package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/update-checker.js +151 -0
- package/node_modules/@sudocode-ai/cli/dist/update-checker.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/version.d.ts +12 -0
- package/node_modules/@sudocode-ai/cli/dist/version.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/version.js +23 -0
- package/node_modules/@sudocode-ai/cli/dist/version.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts +63 -0
- package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/cli/dist/watcher.js +438 -0
- package/node_modules/@sudocode-ai/cli/dist/watcher.js.map +1 -0
- package/node_modules/@sudocode-ai/cli/package.json +65 -0
- package/node_modules/@sudocode-ai/local-server/README.md +19 -0
- package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts +7 -0
- package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/cli.js +7 -0
- package/node_modules/@sudocode-ai/local-server/dist/cli.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.d.ts +103 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.js +10 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.d.ts +190 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.js +611 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.d.ts +116 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.js +10 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.d.ts +176 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.js +438 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.d.ts +96 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.js +96 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.d.ts +321 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.js +769 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts +18 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js +15 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts +421 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js +22 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts +86 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js +59 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.d.ts +15 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.js +15 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.d.ts +133 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.js +10 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.d.ts +102 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.js +336 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.d.ts +105 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.js +10 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.d.ts +53 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.js +97 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.d.ts +170 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.js +291 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.d.ts +109 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.js +10 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.d.ts +14 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.js +15 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.d.ts +86 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.js +261 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.d.ts +161 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.js +234 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.d.ts +226 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.js +30 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.d.ts +119 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.js +208 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.d.ts +10 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.js +10 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.d.ts +146 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.js +282 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.d.ts +176 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.js +231 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.d.ts +13 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.js +13 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.d.ts +216 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.js +683 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.d.ts +54 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.js +68 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.d.ts +158 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.js +9 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.d.ts +172 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.js +9 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.d.ts +89 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.js +152 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts +74 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js +280 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts +151 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js +189 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts +16 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js +15 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts +184 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js +452 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts +90 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js +42 -0
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/index.d.ts +8 -0
- package/node_modules/@sudocode-ai/local-server/dist/index.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/index.js +356 -0
- package/node_modules/@sudocode-ai/local-server/dist/index.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-C4SmlXoo.js +568 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-C4SmlXoo.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-DE59j7ti.css +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-LX0UoTxg.js +60 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-LX0UoTxg.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-_cxVHaqZ.js +54 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-_cxVHaqZ.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/favicon.ico +0 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/index.html +16 -0
- 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 +24 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.js +55 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts +19 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js +267 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts +7 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js +329 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts +7 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js +280 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts +7 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js +308 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts +7 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js +270 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts +33 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/db.js +85 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/db.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts +108 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js +286 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts +185 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js +676 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts +59 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/executions.js +164 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/executions.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts +24 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/export.js +106 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/export.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts +40 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js +54 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts +27 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/issues.js +35 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/issues.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts +108 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js +212 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts +97 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js +236 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts +35 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js +42 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts +27 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/specs.js +35 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/specs.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts +50 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js +69 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts +127 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js +389 -0
- package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts +6 -0
- package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js +9 -0
- package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js.map +1 -0
- package/node_modules/@sudocode-ai/local-server/package.json +72 -0
- package/node_modules/@sudocode-ai/mcp/LICENSE +21 -0
- package/node_modules/@sudocode-ai/mcp/README.md +226 -0
- package/node_modules/@sudocode-ai/mcp/dist/client.d.ts +33 -0
- package/node_modules/@sudocode-ai/mcp/dist/client.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/client.js +159 -0
- package/node_modules/@sudocode-ai/mcp/dist/client.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/index.d.ts +6 -0
- package/node_modules/@sudocode-ai/mcp/dist/index.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/index.js +64 -0
- package/node_modules/@sudocode-ai/mcp/dist/index.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/server.d.ts +26 -0
- package/node_modules/@sudocode-ai/mcp/dist/server.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/server.js +575 -0
- package/node_modules/@sudocode-ai/mcp/dist/server.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts +41 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js +21 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts +19 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js +24 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts +17 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/init.js +15 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/init.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts +44 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js +106 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts +21 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/references.js +49 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/references.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts +15 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js +18 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts +35 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js +85 -0
- package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/types.d.ts +35 -0
- package/node_modules/@sudocode-ai/mcp/dist/types.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/mcp/dist/types.js +21 -0
- package/node_modules/@sudocode-ai/mcp/dist/types.js.map +1 -0
- package/node_modules/@sudocode-ai/mcp/package.json +67 -0
- package/node_modules/@sudocode-ai/types/README.md +7 -0
- package/node_modules/@sudocode-ai/types/dist/schema.d.ts +45 -0
- package/node_modules/@sudocode-ai/types/dist/schema.d.ts.map +1 -0
- package/node_modules/@sudocode-ai/types/dist/schema.js +338 -0
- package/node_modules/@sudocode-ai/types/dist/schema.js.map +1 -0
- package/node_modules/@sudocode-ai/types/package.json +46 -0
- package/package.json +51 -12
- package/index.js +0 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/execution/process/builders/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAwB;IACxD,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,4CAA4C;IAC5C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,gEAAgE;IAChE,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,KAAK,aAAa,CAAC,EAAE,CAAC;QAC9E,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAED,0CAA0C;IAC1C,IAAI,MAAM,CAAC,0BAA0B,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC9C,CAAC;IAED,0CAA0C;IAC1C,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACL,cAAc,EAAE,MAAM,CAAC,UAAU,IAAI,QAAQ;QAC7C,IAAI;QACJ,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process Layer - Public API
|
|
3
|
+
*
|
|
4
|
+
* Barrel export for the Process Layer (Layer 1) of the execution system.
|
|
5
|
+
* Exports all public types, interfaces, and implementations.
|
|
6
|
+
*
|
|
7
|
+
* @module execution/process
|
|
8
|
+
*/
|
|
9
|
+
export type { ProcessStatus, ProcessConfig, ManagedProcess, OutputHandler, ErrorHandler, ProcessMetrics, } from './types.js';
|
|
10
|
+
export type { IProcessManager } from './manager.js';
|
|
11
|
+
export { SimpleProcessManager } from './simple-manager.js';
|
|
12
|
+
export { generateId, formatDuration, isValidSignal, formatProcessError, } from './utils.js';
|
|
13
|
+
export { buildClaudeConfig } from './builders/claude.js';
|
|
14
|
+
export type { ClaudeCodeConfig } from './builders/claude.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/execution/process/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process Layer - Public API
|
|
3
|
+
*
|
|
4
|
+
* Barrel export for the Process Layer (Layer 1) of the execution system.
|
|
5
|
+
* Exports all public types, interfaces, and implementations.
|
|
6
|
+
*
|
|
7
|
+
* @module execution/process
|
|
8
|
+
*/
|
|
9
|
+
// Implementations
|
|
10
|
+
export { SimpleProcessManager } from './simple-manager.js';
|
|
11
|
+
// Utilities
|
|
12
|
+
export { generateId, formatDuration, isValidSignal, formatProcessError, } from './utils.js';
|
|
13
|
+
// Configuration Builders
|
|
14
|
+
export { buildClaudeConfig } from './builders/claude.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/execution/process/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,YAAY;AACZ,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,yBAAyB;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process Manager Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract for all process managers in the Process Layer.
|
|
5
|
+
* Process managers handle spawning, monitoring, and terminating Claude Code processes.
|
|
6
|
+
*
|
|
7
|
+
* @module execution/process/manager
|
|
8
|
+
*/
|
|
9
|
+
import type { ManagedProcess, ProcessConfig, ProcessMetrics, OutputHandler, ErrorHandler } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Core abstraction for managing Claude Code CLI processes
|
|
12
|
+
*
|
|
13
|
+
* This interface defines the contract that all process manager implementations
|
|
14
|
+
* must follow. It provides methods for:
|
|
15
|
+
* - Process lifecycle management (acquire, release, terminate)
|
|
16
|
+
* - Process communication (I/O)
|
|
17
|
+
* - Monitoring and metrics
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const manager: IProcessManager = new SimpleProcessManager();
|
|
22
|
+
* const process = await manager.acquireProcess({
|
|
23
|
+
* claudePath: 'claude',
|
|
24
|
+
* workDir: '/path/to/project',
|
|
25
|
+
* args: {
|
|
26
|
+
* print: true,
|
|
27
|
+
* outputFormat: 'stream-json',
|
|
28
|
+
* dangerouslySkipPermissions: true,
|
|
29
|
+
* },
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export interface IProcessManager {
|
|
34
|
+
/**
|
|
35
|
+
* Acquire a new Claude Code process
|
|
36
|
+
*
|
|
37
|
+
* Spawns a new process with the given configuration and returns a managed
|
|
38
|
+
* process handle. The process will be tracked until it exits or is terminated.
|
|
39
|
+
*
|
|
40
|
+
* @param config - Configuration for the process
|
|
41
|
+
* @returns Promise resolving to the managed process
|
|
42
|
+
* @throws Error if process fails to spawn
|
|
43
|
+
*/
|
|
44
|
+
acquireProcess(config: ProcessConfig): Promise<ManagedProcess>;
|
|
45
|
+
/**
|
|
46
|
+
* Release a process (terminate it gracefully)
|
|
47
|
+
*
|
|
48
|
+
* Sends SIGTERM to the process and waits for it to exit. If it doesn't exit
|
|
49
|
+
* within a grace period, SIGKILL is sent.
|
|
50
|
+
*
|
|
51
|
+
* @param processId - ID of the process to release
|
|
52
|
+
* @returns Promise that resolves when process is terminated
|
|
53
|
+
*/
|
|
54
|
+
releaseProcess(processId: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Terminate a process with a specific signal
|
|
57
|
+
*
|
|
58
|
+
* Sends the specified signal to the process. Uses graceful shutdown with
|
|
59
|
+
* SIGTERM by default, followed by SIGKILL if needed.
|
|
60
|
+
*
|
|
61
|
+
* @param processId - ID of the process to terminate
|
|
62
|
+
* @param signal - Signal to send (defaults to SIGTERM)
|
|
63
|
+
* @returns Promise that resolves when process is terminated
|
|
64
|
+
*/
|
|
65
|
+
terminateProcess(processId: string, signal?: NodeJS.Signals): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Send input to a process's stdin
|
|
68
|
+
*
|
|
69
|
+
* @param processId - ID of the process
|
|
70
|
+
* @param input - Input string to send
|
|
71
|
+
* @returns Promise that resolves when input is written
|
|
72
|
+
* @throws Error if process is not found
|
|
73
|
+
*/
|
|
74
|
+
sendInput(processId: string, input: string): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Close stdin stream for a process
|
|
77
|
+
*
|
|
78
|
+
* Signals EOF to the process. This is useful for programs like Claude Code
|
|
79
|
+
* in --print mode that wait for stdin to close before processing input.
|
|
80
|
+
*
|
|
81
|
+
* @param processId - ID of the process
|
|
82
|
+
* @throws Error if process is not found
|
|
83
|
+
*/
|
|
84
|
+
closeInput(processId: string): void;
|
|
85
|
+
/**
|
|
86
|
+
* Register a handler for process output (stdout/stderr)
|
|
87
|
+
*
|
|
88
|
+
* The handler will be called whenever the process produces output.
|
|
89
|
+
* Multiple handlers can be registered for the same process.
|
|
90
|
+
*
|
|
91
|
+
* @param processId - ID of the process
|
|
92
|
+
* @param handler - Handler function to call on output
|
|
93
|
+
*/
|
|
94
|
+
onOutput(processId: string, handler: OutputHandler): void;
|
|
95
|
+
/**
|
|
96
|
+
* Register a handler for process errors
|
|
97
|
+
*
|
|
98
|
+
* The handler will be called when the process encounters an error.
|
|
99
|
+
*
|
|
100
|
+
* @param processId - ID of the process
|
|
101
|
+
* @param handler - Handler function to call on error
|
|
102
|
+
*/
|
|
103
|
+
onError(processId: string, handler: ErrorHandler): void;
|
|
104
|
+
/**
|
|
105
|
+
* Get a managed process by ID
|
|
106
|
+
*
|
|
107
|
+
* @param processId - ID of the process
|
|
108
|
+
* @returns The managed process or null if not found
|
|
109
|
+
*/
|
|
110
|
+
getProcess(processId: string): ManagedProcess | null;
|
|
111
|
+
/**
|
|
112
|
+
* Get all currently active processes
|
|
113
|
+
*
|
|
114
|
+
* @returns Array of all active managed processes
|
|
115
|
+
*/
|
|
116
|
+
getActiveProcesses(): ManagedProcess[];
|
|
117
|
+
/**
|
|
118
|
+
* Get aggregate metrics for all processes
|
|
119
|
+
*
|
|
120
|
+
* @returns Process metrics summary
|
|
121
|
+
*/
|
|
122
|
+
getMetrics(): ProcessMetrics;
|
|
123
|
+
/**
|
|
124
|
+
* Shutdown the process manager
|
|
125
|
+
*
|
|
126
|
+
* Terminates all active processes and cleans up resources.
|
|
127
|
+
* This should be called before the application exits.
|
|
128
|
+
*
|
|
129
|
+
* @returns Promise that resolves when all processes are terminated
|
|
130
|
+
*/
|
|
131
|
+
shutdown(): Promise<void>;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/execution/process/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,eAAe;IAK9B;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE/D;;;;;;;;OAQG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD;;;;;;;;;OASG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAM5E;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;;;;;;OAQG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAE1D;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAMxD;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IAErD;;;;OAIG;IACH,kBAAkB,IAAI,cAAc,EAAE,CAAC;IAEvC;;;;OAIG;IACH,UAAU,IAAI,cAAc,CAAC;IAM7B;;;;;;;OAOG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process Manager Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract for all process managers in the Process Layer.
|
|
5
|
+
* Process managers handle spawning, monitoring, and terminating Claude Code processes.
|
|
6
|
+
*
|
|
7
|
+
* @module execution/process/manager
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/execution/process/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple Process Manager Implementation
|
|
3
|
+
*
|
|
4
|
+
* A straightforward implementation of IProcessManager that spawns a fresh
|
|
5
|
+
* process for each task. This is the "simple first" approach that will later
|
|
6
|
+
* be upgraded to support process pooling.
|
|
7
|
+
*
|
|
8
|
+
* Supports any CLI tool/agent (Claude Code, Codex, Gemini CLI, etc.)
|
|
9
|
+
*
|
|
10
|
+
* Key features:
|
|
11
|
+
* - One process per task (no pooling)
|
|
12
|
+
* - Event-based I/O streaming
|
|
13
|
+
* - Graceful termination (SIGTERM → SIGKILL)
|
|
14
|
+
* - Automatic cleanup
|
|
15
|
+
* - Metrics tracking
|
|
16
|
+
* - Agent-agnostic design
|
|
17
|
+
*
|
|
18
|
+
* @module execution/process/simple-manager
|
|
19
|
+
*/
|
|
20
|
+
import type { ManagedProcess, ProcessConfig, ProcessMetrics, OutputHandler, ErrorHandler } from "./types.js";
|
|
21
|
+
import type { IProcessManager } from "./manager.js";
|
|
22
|
+
/**
|
|
23
|
+
* Simple process manager that spawns one process per task
|
|
24
|
+
*
|
|
25
|
+
* This implementation follows the "simple first" principle - it provides
|
|
26
|
+
* a production-ready process manager without the complexity of pooling.
|
|
27
|
+
*
|
|
28
|
+
* Works with any CLI tool/agent by accepting executable path and args.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // Claude Code example
|
|
33
|
+
* const manager = new SimpleProcessManager({
|
|
34
|
+
* executablePath: 'claude',
|
|
35
|
+
* args: ['--print', '--output-format', 'stream-json'],
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* const process = await manager.acquireProcess({
|
|
39
|
+
* executablePath: 'claude',
|
|
40
|
+
* args: ['--print', '--output-format', 'stream-json'],
|
|
41
|
+
* workDir: '/path/to/project',
|
|
42
|
+
* timeout: 300000,
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* // Codex example
|
|
46
|
+
* const codexProcess = await manager.acquireProcess({
|
|
47
|
+
* executablePath: 'codex',
|
|
48
|
+
* args: ['--mode', 'agent', '--json'],
|
|
49
|
+
* workDir: '/path/to/project',
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare class SimpleProcessManager implements IProcessManager {
|
|
54
|
+
private readonly _defaultConfig;
|
|
55
|
+
private _activeProcesses;
|
|
56
|
+
private _cleanupTimers;
|
|
57
|
+
private _metrics;
|
|
58
|
+
/**
|
|
59
|
+
* Create a new SimpleProcessManager
|
|
60
|
+
*
|
|
61
|
+
* @param defaultConfig - Default configuration to merge with per-process config
|
|
62
|
+
*/
|
|
63
|
+
constructor(_defaultConfig?: Partial<ProcessConfig>);
|
|
64
|
+
acquireProcess(config: ProcessConfig): Promise<ManagedProcess>;
|
|
65
|
+
/**
|
|
66
|
+
* Spawn a process with the given configuration
|
|
67
|
+
*
|
|
68
|
+
* @param config - Process configuration
|
|
69
|
+
* @returns ChildProcess instance
|
|
70
|
+
*/
|
|
71
|
+
private spawnProcess;
|
|
72
|
+
/**
|
|
73
|
+
* Set up event handlers for a managed process
|
|
74
|
+
*
|
|
75
|
+
* Handles lifecycle events:
|
|
76
|
+
* - exit: Process terminated normally or abnormally
|
|
77
|
+
* - error: Process encountered an error
|
|
78
|
+
* - stdout/stderr data: Track activity for idle detection
|
|
79
|
+
*
|
|
80
|
+
* @param managedProcess - The managed process to set up handlers for
|
|
81
|
+
* @param config - Process configuration (for timeout)
|
|
82
|
+
*/
|
|
83
|
+
private setupProcessHandlers;
|
|
84
|
+
releaseProcess(processId: string): Promise<void>;
|
|
85
|
+
terminateProcess(processId: string, signal?: NodeJS.Signals): Promise<void>;
|
|
86
|
+
sendInput(processId: string, input: string): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Close stdin stream for a process
|
|
89
|
+
*
|
|
90
|
+
* Signals EOF to the process, useful for programs that wait for stdin to close.
|
|
91
|
+
*
|
|
92
|
+
* @param processId - ID of the process
|
|
93
|
+
*/
|
|
94
|
+
closeInput(processId: string): void;
|
|
95
|
+
onOutput(processId: string, handler: OutputHandler): void;
|
|
96
|
+
onError(processId: string, handler: ErrorHandler): void;
|
|
97
|
+
getProcess(processId: string): ManagedProcess | null;
|
|
98
|
+
getActiveProcesses(): ManagedProcess[];
|
|
99
|
+
getMetrics(): ProcessMetrics;
|
|
100
|
+
shutdown(): Promise<void>;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=simple-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-manager.d.ts","sourceRoot":"","sources":["../../../src/execution/process/simple-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IAgB9C,OAAO,CAAC,QAAQ,CAAC,cAAc;IAf3C,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,QAAQ,CAMd;IAEF;;;;OAIG;gBAC0B,cAAc,GAAE,OAAO,CAAC,aAAa,CAAM;IAElE,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAsDpE;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAapB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IA8FtB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAM,CAAC,OAAmB,GACjC,OAAO,CAAC,IAAI,CAAC;IAkDV,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAchE;;;;;;OAMG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASnC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAezD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAWvD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIpD,kBAAkB,IAAI,cAAc,EAAE;IAItC,UAAU,IAAI,cAAc;IAKtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAahC"}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple Process Manager Implementation
|
|
3
|
+
*
|
|
4
|
+
* A straightforward implementation of IProcessManager that spawns a fresh
|
|
5
|
+
* process for each task. This is the "simple first" approach that will later
|
|
6
|
+
* be upgraded to support process pooling.
|
|
7
|
+
*
|
|
8
|
+
* Supports any CLI tool/agent (Claude Code, Codex, Gemini CLI, etc.)
|
|
9
|
+
*
|
|
10
|
+
* Key features:
|
|
11
|
+
* - One process per task (no pooling)
|
|
12
|
+
* - Event-based I/O streaming
|
|
13
|
+
* - Graceful termination (SIGTERM → SIGKILL)
|
|
14
|
+
* - Automatic cleanup
|
|
15
|
+
* - Metrics tracking
|
|
16
|
+
* - Agent-agnostic design
|
|
17
|
+
*
|
|
18
|
+
* @module execution/process/simple-manager
|
|
19
|
+
*/
|
|
20
|
+
import { spawn } from "child_process";
|
|
21
|
+
import { generateId } from "./utils.js";
|
|
22
|
+
/**
|
|
23
|
+
* Simple process manager that spawns one process per task
|
|
24
|
+
*
|
|
25
|
+
* This implementation follows the "simple first" principle - it provides
|
|
26
|
+
* a production-ready process manager without the complexity of pooling.
|
|
27
|
+
*
|
|
28
|
+
* Works with any CLI tool/agent by accepting executable path and args.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // Claude Code example
|
|
33
|
+
* const manager = new SimpleProcessManager({
|
|
34
|
+
* executablePath: 'claude',
|
|
35
|
+
* args: ['--print', '--output-format', 'stream-json'],
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* const process = await manager.acquireProcess({
|
|
39
|
+
* executablePath: 'claude',
|
|
40
|
+
* args: ['--print', '--output-format', 'stream-json'],
|
|
41
|
+
* workDir: '/path/to/project',
|
|
42
|
+
* timeout: 300000,
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* // Codex example
|
|
46
|
+
* const codexProcess = await manager.acquireProcess({
|
|
47
|
+
* executablePath: 'codex',
|
|
48
|
+
* args: ['--mode', 'agent', '--json'],
|
|
49
|
+
* workDir: '/path/to/project',
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export class SimpleProcessManager {
|
|
54
|
+
_defaultConfig;
|
|
55
|
+
_activeProcesses = new Map();
|
|
56
|
+
_cleanupTimers = new Map();
|
|
57
|
+
_metrics = {
|
|
58
|
+
totalSpawned: 0,
|
|
59
|
+
currentlyActive: 0,
|
|
60
|
+
totalCompleted: 0,
|
|
61
|
+
totalFailed: 0,
|
|
62
|
+
averageDuration: 0,
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Create a new SimpleProcessManager
|
|
66
|
+
*
|
|
67
|
+
* @param defaultConfig - Default configuration to merge with per-process config
|
|
68
|
+
*/
|
|
69
|
+
constructor(_defaultConfig = {}) {
|
|
70
|
+
this._defaultConfig = _defaultConfig;
|
|
71
|
+
}
|
|
72
|
+
async acquireProcess(config) {
|
|
73
|
+
// Merge with default config
|
|
74
|
+
const mergedConfig = { ...this._defaultConfig, ...config };
|
|
75
|
+
// Spawn the process
|
|
76
|
+
const childProcess = this.spawnProcess(mergedConfig);
|
|
77
|
+
// Validate process spawned successfully
|
|
78
|
+
if (!childProcess.pid) {
|
|
79
|
+
// Suppress error event to prevent uncaughtException
|
|
80
|
+
childProcess.once("error", () => {
|
|
81
|
+
// Error is expected when process fails to spawn
|
|
82
|
+
});
|
|
83
|
+
throw new Error("Failed to spawn process: no PID assigned");
|
|
84
|
+
}
|
|
85
|
+
// Generate unique ID for this process
|
|
86
|
+
const id = generateId("process");
|
|
87
|
+
// Create managed process object
|
|
88
|
+
const managedProcess = {
|
|
89
|
+
id,
|
|
90
|
+
pid: childProcess.pid,
|
|
91
|
+
status: "busy",
|
|
92
|
+
spawnedAt: new Date(),
|
|
93
|
+
lastActivity: new Date(),
|
|
94
|
+
exitCode: null,
|
|
95
|
+
signal: null,
|
|
96
|
+
process: childProcess,
|
|
97
|
+
streams: {
|
|
98
|
+
stdout: childProcess.stdout,
|
|
99
|
+
stderr: childProcess.stderr,
|
|
100
|
+
stdin: childProcess.stdin,
|
|
101
|
+
},
|
|
102
|
+
metrics: {
|
|
103
|
+
totalDuration: 0,
|
|
104
|
+
tasksCompleted: 0,
|
|
105
|
+
successRate: 1.0,
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
// Track the process
|
|
109
|
+
this._activeProcesses.set(id, managedProcess);
|
|
110
|
+
// Update metrics
|
|
111
|
+
this._metrics.totalSpawned++;
|
|
112
|
+
this._metrics.currentlyActive++;
|
|
113
|
+
// Set up event handlers for lifecycle management
|
|
114
|
+
this.setupProcessHandlers(managedProcess, mergedConfig);
|
|
115
|
+
return managedProcess;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Spawn a process with the given configuration
|
|
119
|
+
*
|
|
120
|
+
* @param config - Process configuration
|
|
121
|
+
* @returns ChildProcess instance
|
|
122
|
+
*/
|
|
123
|
+
spawnProcess(config) {
|
|
124
|
+
const childProcess = spawn(config.executablePath, config.args, {
|
|
125
|
+
cwd: config.workDir,
|
|
126
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
127
|
+
env: {
|
|
128
|
+
...process.env,
|
|
129
|
+
...config.env,
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
return childProcess;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Set up event handlers for a managed process
|
|
136
|
+
*
|
|
137
|
+
* Handles lifecycle events:
|
|
138
|
+
* - exit: Process terminated normally or abnormally
|
|
139
|
+
* - error: Process encountered an error
|
|
140
|
+
* - stdout/stderr data: Track activity for idle detection
|
|
141
|
+
*
|
|
142
|
+
* @param managedProcess - The managed process to set up handlers for
|
|
143
|
+
* @param config - Process configuration (for timeout)
|
|
144
|
+
*/
|
|
145
|
+
setupProcessHandlers(managedProcess, config) {
|
|
146
|
+
const { process: childProcess, id } = managedProcess;
|
|
147
|
+
let timeoutHandle = null;
|
|
148
|
+
// Set up timeout if configured
|
|
149
|
+
if (config.timeout) {
|
|
150
|
+
timeoutHandle = setTimeout(() => {
|
|
151
|
+
// Terminate process on timeout using graceful termination
|
|
152
|
+
if (managedProcess.status === "busy") {
|
|
153
|
+
this.terminateProcess(id).catch(() => {
|
|
154
|
+
// Ignore errors during timeout termination
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}, config.timeout);
|
|
158
|
+
}
|
|
159
|
+
// Exit event handler
|
|
160
|
+
childProcess.once("exit", (code, signal) => {
|
|
161
|
+
// Clear timeout
|
|
162
|
+
if (timeoutHandle) {
|
|
163
|
+
clearTimeout(timeoutHandle);
|
|
164
|
+
}
|
|
165
|
+
// Update process state
|
|
166
|
+
managedProcess.exitCode = code;
|
|
167
|
+
managedProcess.signal = signal;
|
|
168
|
+
managedProcess.status = code === 0 ? "completed" : "crashed";
|
|
169
|
+
// Calculate duration
|
|
170
|
+
const duration = Date.now() - managedProcess.spawnedAt.getTime();
|
|
171
|
+
managedProcess.metrics.totalDuration = duration;
|
|
172
|
+
// Update global metrics
|
|
173
|
+
this._metrics.currentlyActive--;
|
|
174
|
+
if (code === 0) {
|
|
175
|
+
this._metrics.totalCompleted++;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
this._metrics.totalFailed++;
|
|
179
|
+
}
|
|
180
|
+
// Calculate average duration
|
|
181
|
+
const totalProcesses = this._metrics.totalCompleted + this._metrics.totalFailed;
|
|
182
|
+
if (totalProcesses > 0) {
|
|
183
|
+
const currentTotal = this._metrics.averageDuration * (totalProcesses - 1);
|
|
184
|
+
this._metrics.averageDuration =
|
|
185
|
+
(currentTotal + duration) / totalProcesses;
|
|
186
|
+
}
|
|
187
|
+
// Clean up stdio streams to prevent event loop hang
|
|
188
|
+
managedProcess.streams.stdin.destroy();
|
|
189
|
+
managedProcess.streams.stdout.destroy();
|
|
190
|
+
managedProcess.streams.stderr.destroy();
|
|
191
|
+
// Schedule cleanup (delete from activeProcesses after 5s delay)
|
|
192
|
+
const cleanupTimer = setTimeout(() => {
|
|
193
|
+
this._activeProcesses.delete(id);
|
|
194
|
+
this._cleanupTimers.delete(id);
|
|
195
|
+
}, 5000);
|
|
196
|
+
this._cleanupTimers.set(id, cleanupTimer);
|
|
197
|
+
});
|
|
198
|
+
// Error event handler
|
|
199
|
+
childProcess.once("error", (error) => {
|
|
200
|
+
void error; // Error is logged but not used here
|
|
201
|
+
// Clear timeout
|
|
202
|
+
if (timeoutHandle) {
|
|
203
|
+
clearTimeout(timeoutHandle);
|
|
204
|
+
}
|
|
205
|
+
// Update process state
|
|
206
|
+
managedProcess.status = "crashed";
|
|
207
|
+
// Update global metrics
|
|
208
|
+
this._metrics.currentlyActive--;
|
|
209
|
+
this._metrics.totalFailed++;
|
|
210
|
+
});
|
|
211
|
+
// stdout data handler - track activity
|
|
212
|
+
childProcess.stdout?.on("data", () => {
|
|
213
|
+
managedProcess.lastActivity = new Date();
|
|
214
|
+
});
|
|
215
|
+
// stderr data handler - track activity
|
|
216
|
+
childProcess.stderr?.on("data", () => {
|
|
217
|
+
managedProcess.lastActivity = new Date();
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
async releaseProcess(processId) {
|
|
221
|
+
await this.terminateProcess(processId);
|
|
222
|
+
}
|
|
223
|
+
async terminateProcess(processId, signal = "SIGTERM") {
|
|
224
|
+
const managed = this._activeProcesses.get(processId);
|
|
225
|
+
if (!managed) {
|
|
226
|
+
return; // Process not found, nothing to terminate
|
|
227
|
+
}
|
|
228
|
+
// If already terminated, do nothing (idempotent)
|
|
229
|
+
if (managed.exitCode !== null) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
// Update status to terminating
|
|
233
|
+
managed.status = "terminating";
|
|
234
|
+
// Try graceful shutdown first
|
|
235
|
+
managed.process.kill(signal);
|
|
236
|
+
// Wait for process to exit (with 2 second timeout)
|
|
237
|
+
const exitPromise = new Promise((resolve) => {
|
|
238
|
+
if (managed.exitCode !== null) {
|
|
239
|
+
resolve();
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
managed.process.once("exit", () => resolve());
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
const timeoutPromise = new Promise((resolve) => {
|
|
246
|
+
setTimeout(resolve, 2000);
|
|
247
|
+
});
|
|
248
|
+
await Promise.race([exitPromise, timeoutPromise]);
|
|
249
|
+
// Force kill if still running
|
|
250
|
+
if (managed.exitCode === null) {
|
|
251
|
+
managed.process.kill("SIGKILL");
|
|
252
|
+
// Wait for SIGKILL to take effect (with timeout)
|
|
253
|
+
await Promise.race([
|
|
254
|
+
new Promise((resolve) => {
|
|
255
|
+
if (managed.exitCode !== null) {
|
|
256
|
+
resolve();
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
managed.process.once("exit", () => resolve());
|
|
260
|
+
}
|
|
261
|
+
}),
|
|
262
|
+
new Promise((resolve) => setTimeout(resolve, 1000)),
|
|
263
|
+
]);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
async sendInput(processId, input) {
|
|
267
|
+
const managed = this._activeProcesses.get(processId);
|
|
268
|
+
if (!managed) {
|
|
269
|
+
throw new Error(`Process ${processId} not found`);
|
|
270
|
+
}
|
|
271
|
+
return new Promise((resolve, reject) => {
|
|
272
|
+
managed.streams.stdin.write(input, (error) => {
|
|
273
|
+
if (error)
|
|
274
|
+
reject(error);
|
|
275
|
+
else
|
|
276
|
+
resolve();
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Close stdin stream for a process
|
|
282
|
+
*
|
|
283
|
+
* Signals EOF to the process, useful for programs that wait for stdin to close.
|
|
284
|
+
*
|
|
285
|
+
* @param processId - ID of the process
|
|
286
|
+
*/
|
|
287
|
+
closeInput(processId) {
|
|
288
|
+
const managed = this._activeProcesses.get(processId);
|
|
289
|
+
if (!managed) {
|
|
290
|
+
throw new Error(`Process ${processId} not found`);
|
|
291
|
+
}
|
|
292
|
+
managed.streams.stdin.end();
|
|
293
|
+
}
|
|
294
|
+
onOutput(processId, handler) {
|
|
295
|
+
const managed = this._activeProcesses.get(processId);
|
|
296
|
+
if (!managed) {
|
|
297
|
+
throw new Error(`Process ${processId} not found`);
|
|
298
|
+
}
|
|
299
|
+
managed.streams.stdout.on("data", (data) => {
|
|
300
|
+
handler(data, "stdout");
|
|
301
|
+
});
|
|
302
|
+
managed.streams.stderr.on("data", (data) => {
|
|
303
|
+
handler(data, "stderr");
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
onError(processId, handler) {
|
|
307
|
+
const managed = this._activeProcesses.get(processId);
|
|
308
|
+
if (!managed) {
|
|
309
|
+
throw new Error(`Process ${processId} not found`);
|
|
310
|
+
}
|
|
311
|
+
managed.process.on("error", (error) => {
|
|
312
|
+
handler(error);
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
getProcess(processId) {
|
|
316
|
+
return this._activeProcesses.get(processId) || null;
|
|
317
|
+
}
|
|
318
|
+
getActiveProcesses() {
|
|
319
|
+
return Array.from(this._activeProcesses.values());
|
|
320
|
+
}
|
|
321
|
+
getMetrics() {
|
|
322
|
+
// Return a copy to prevent external mutation
|
|
323
|
+
return { ...this._metrics };
|
|
324
|
+
}
|
|
325
|
+
async shutdown() {
|
|
326
|
+
// Terminate all active processes first
|
|
327
|
+
const processIds = Array.from(this._activeProcesses.keys());
|
|
328
|
+
await Promise.all(processIds.map((id) => this.terminateProcess(id, "SIGTERM")));
|
|
329
|
+
// Clear all pending cleanup timers (including ones scheduled by exit handlers)
|
|
330
|
+
for (const [id, timer] of this._cleanupTimers.entries()) {
|
|
331
|
+
clearTimeout(timer);
|
|
332
|
+
this._cleanupTimers.delete(id);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=simple-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-manager.js","sourceRoot":"","sources":["../../../src/execution/process/simple-manager.ts"],"names":[],"mappings":"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"}
|