sudocode 1.1.20 → 1.1.22
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/package.json +9 -9
- package/node_modules/@sudocode-ai/cli/README.md +0 -1629
- package/node_modules/@sudocode-ai/cli/dist/auth/claude.d.ts +0 -19
- package/node_modules/@sudocode-ai/cli/dist/auth/claude.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/auth/claude.js +0 -179
- package/node_modules/@sudocode-ai/cli/dist/auth/claude.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/auth/clear.d.ts +0 -17
- package/node_modules/@sudocode-ai/cli/dist/auth/clear.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/auth/clear.js +0 -68
- package/node_modules/@sudocode-ai/cli/dist/auth/clear.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/auth/credentials.d.ts +0 -93
- package/node_modules/@sudocode-ai/cli/dist/auth/credentials.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/auth/credentials.js +0 -255
- package/node_modules/@sudocode-ai/cli/dist/auth/credentials.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/auth/index.d.ts +0 -13
- package/node_modules/@sudocode-ai/cli/dist/auth/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/auth/index.js +0 -19
- package/node_modules/@sudocode-ai/cli/dist/auth/index.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/auth/status.d.ts +0 -17
- package/node_modules/@sudocode-ai/cli/dist/auth/status.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/auth/status.js +0 -132
- package/node_modules/@sudocode-ai/cli/dist/auth/status.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/auth-commands.d.ts +0 -34
- package/node_modules/@sudocode-ai/cli/dist/cli/auth-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/auth-commands.js +0 -28
- package/node_modules/@sudocode-ai/cli/dist/cli/auth-commands.js.map +0 -1
- 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 -339
- 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 -20
- 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 -145
- 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 -46
- 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 -353
- package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.d.ts +0 -42
- package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.js +0 -680
- package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.d.ts +0 -62
- package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.js +0 -595
- package/node_modules/@sudocode-ai/cli/dist/cli/plugin-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 -83
- package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/remote-commands.d.ts +0 -59
- package/node_modules/@sudocode-ai/cli/dist/cli/remote-commands.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/cli/remote-commands.js +0 -391
- package/node_modules/@sudocode-ai/cli/dist/cli/remote-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 -123
- 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 -326
- 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 -429
- 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 -16
- 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 -216
- 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 -673
- package/node_modules/@sudocode-ai/cli/dist/cli.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/config.d.ts +0 -50
- package/node_modules/@sudocode-ai/cli/dist/config.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/config.js +0 -76
- package/node_modules/@sudocode-ai/cli/dist/config.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 -55
- package/node_modules/@sudocode-ai/cli/dist/db.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/export.d.ts +0 -84
- package/node_modules/@sudocode-ai/cli/dist/export.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/export.js +0 -265
- package/node_modules/@sudocode-ai/cli/dist/export.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts +0 -31
- 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 -103
- package/node_modules/@sudocode-ai/cli/dist/filename-generator.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/git-merge.d.ts +0 -88
- package/node_modules/@sudocode-ai/cli/dist/git-merge.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/git-merge.js +0 -214
- package/node_modules/@sudocode-ai/cli/dist/git-merge.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts +0 -63
- 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 -196
- package/node_modules/@sudocode-ai/cli/dist/id-generator.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/import.d.ts +0 -134
- package/node_modules/@sudocode-ai/cli/dist/import.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/import.js +0 -751
- package/node_modules/@sudocode-ai/cli/dist/import.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/index.d.ts +0 -17
- package/node_modules/@sudocode-ai/cli/dist/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/index.js +0 -17
- package/node_modules/@sudocode-ai/cli/dist/index.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.d.ts +0 -108
- package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.js +0 -80
- package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.d.ts +0 -62
- package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.js +0 -69
- package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.d.ts +0 -75
- package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.js +0 -129
- package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/index.d.ts +0 -14
- package/node_modules/@sudocode-ai/cli/dist/integrations/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/index.js +0 -20
- package/node_modules/@sudocode-ai/cli/dist/integrations/index.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.d.ts +0 -77
- package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.js +0 -265
- package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/registry.d.ts +0 -67
- package/node_modules/@sudocode-ai/cli/dist/integrations/registry.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/registry.js +0 -77
- package/node_modules/@sudocode-ai/cli/dist/integrations/registry.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.d.ts +0 -191
- package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.js +0 -798
- package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/types.d.ts +0 -142
- package/node_modules/@sudocode-ai/cli/dist/integrations/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/types.js +0 -6
- package/node_modules/@sudocode-ai/cli/dist/integrations/types.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.d.ts +0 -79
- package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.js +0 -106
- package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.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 -329
- package/node_modules/@sudocode-ai/cli/dist/markdown.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/merge-resolver.d.ts +0 -157
- package/node_modules/@sudocode-ai/cli/dist/merge-resolver.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/merge-resolver.js +0 -716
- package/node_modules/@sudocode-ai/cli/dist/merge-resolver.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/external-links.d.ts +0 -147
- package/node_modules/@sudocode-ai/cli/dist/operations/external-links.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/operations/external-links.js +0 -411
- package/node_modules/@sudocode-ai/cli/dist/operations/external-links.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 -94
- 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 -278
- 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 -11
- 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 -11
- 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 -88
- 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 -474
- 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 -64
- 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 -281
- 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 -69
- 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 -330
- 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/remote/claude-auth.d.ts +0 -65
- package/node_modules/@sudocode-ai/cli/dist/remote/claude-auth.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/claude-auth.js +0 -100
- package/node_modules/@sudocode-ai/cli/dist/remote/claude-auth.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/config.d.ts +0 -83
- package/node_modules/@sudocode-ai/cli/dist/remote/config.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/config.js +0 -266
- package/node_modules/@sudocode-ai/cli/dist/remote/config.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/errors.d.ts +0 -18
- package/node_modules/@sudocode-ai/cli/dist/remote/errors.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/errors.js +0 -27
- package/node_modules/@sudocode-ai/cli/dist/remote/errors.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/git-context.d.ts +0 -51
- package/node_modules/@sudocode-ai/cli/dist/remote/git-context.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/git-context.js +0 -107
- package/node_modules/@sudocode-ai/cli/dist/remote/git-context.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/spawn-service.d.ts +0 -86
- package/node_modules/@sudocode-ai/cli/dist/remote/spawn-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/spawn-service.js +0 -248
- package/node_modules/@sudocode-ai/cli/dist/remote/spawn-service.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/types.d.ts +0 -82
- package/node_modules/@sudocode-ai/cli/dist/remote/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/remote/types.js +0 -5
- package/node_modules/@sudocode-ai/cli/dist/remote/types.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 -464
- 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 -33
- 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 -193
- package/node_modules/@sudocode-ai/cli/dist/update-checker.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/validation.d.ts +0 -11
- package/node_modules/@sudocode-ai/cli/dist/validation.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/validation.js +0 -58
- package/node_modules/@sudocode-ai/cli/dist/validation.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 -75
- package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/watcher.js +0 -797
- package/node_modules/@sudocode-ai/cli/dist/watcher.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/yaml-conflict-resolver.d.ts +0 -91
- package/node_modules/@sudocode-ai/cli/dist/yaml-conflict-resolver.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/yaml-conflict-resolver.js +0 -197
- package/node_modules/@sudocode-ai/cli/dist/yaml-conflict-resolver.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/yaml-converter.d.ts +0 -68
- package/node_modules/@sudocode-ai/cli/dist/yaml-converter.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/cli/dist/yaml-converter.js +0 -109
- package/node_modules/@sudocode-ai/cli/dist/yaml-converter.js.map +0 -1
- package/node_modules/@sudocode-ai/cli/package.json +0 -76
- package/node_modules/@sudocode-ai/integration-beads/package.json +0 -44
- package/node_modules/@sudocode-ai/integration-github/package.json +0 -41
- package/node_modules/@sudocode-ai/integration-openspec/package.json +0 -43
- package/node_modules/@sudocode-ai/integration-speckit/package.json +0 -42
- package/node_modules/@sudocode-ai/local-server/README.md +0 -25
- 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/errors/agent-errors.d.ts +0 -43
- package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.js +0 -69
- package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.d.ts +0 -63
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.js +0 -83
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.d.ts +0 -67
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.js +0 -183
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.d.ts +0 -30
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.js +0 -110
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.d.ts +0 -94
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.js +0 -163
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.d.ts +0 -48
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.js +0 -125
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.d.ts +0 -66
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.js +0 -121
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.d.ts +0 -29
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.js +0 -49
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.d.ts +0 -102
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.js +0 -205
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.d.ts +0 -95
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.js +0 -163
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.d.ts +0 -8
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.js +0 -8
- package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/acp-executor-wrapper.d.ts +0 -331
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/acp-executor-wrapper.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/acp-executor-wrapper.js +0 -1126
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/acp-executor-wrapper.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-config-handlers.d.ts +0 -158
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-config-handlers.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-config-handlers.js +0 -352
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-config-handlers.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.d.ts +0 -170
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.js +0 -216
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/legacy-shim-executor-wrapper.d.ts +0 -216
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/legacy-shim-executor-wrapper.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/legacy-shim-executor-wrapper.js +0 -679
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/legacy-shim-executor-wrapper.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/permission-manager.d.ts +0 -118
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/permission-manager.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/permission-manager.js +0 -143
- package/node_modules/@sudocode-ai/local-server/dist/execution/executors/permission-manager.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/handlers/file-handler.d.ts +0 -60
- package/node_modules/@sudocode-ai/local-server/dist/execution/handlers/file-handler.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/handlers/file-handler.js +0 -115
- package/node_modules/@sudocode-ai/local-server/dist/execution/handlers/file-handler.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/coalesced-types.d.ts +0 -131
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/coalesced-types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/coalesced-types.js +0 -47
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/coalesced-types.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts +0 -16
- 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/normalized-to-coalesced.d.ts +0 -40
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-coalesced.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-coalesced.js +0 -165
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-coalesced.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/session-update-coalescer.d.ts +0 -99
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/session-update-coalescer.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/session-update-coalescer.js +0 -329
- package/node_modules/@sudocode-ai/local-server/dist/execution/output/session-update-coalescer.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 -53
- 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 -225
- 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/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/conflict-detector.d.ts +0 -85
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.js +0 -129
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts +0 -208
- 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 -280
- 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/git-sync-cli.d.ts +0 -225
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-cli.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-cli.js +0 -464
- package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-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 -221
- 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 -508
- 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 -3
- 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 -413
- package/node_modules/@sudocode-ai/local-server/dist/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.d.ts +0 -37
- package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.js +0 -91
- package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-6xIC1sAG.js +0 -3837
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-6xIC1sAG.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-QH6t9Xqh.css +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/ort-wasm-simd-threaded.jsep-B0T3yYHD.wasm +0 -0
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-DoNwlLhy.js +0 -60
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-DoNwlLhy.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-DlxvBun1.js +0 -54
- package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-DlxvBun1.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/kokoro-test.html +0 -197
- package/node_modules/@sudocode-ai/local-server/dist/public/logo.png +0 -0
- package/node_modules/@sudocode-ai/local-server/dist/routes/agents.d.ts +0 -3
- package/node_modules/@sudocode-ai/local-server/dist/routes/agents.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/agents.js +0 -188
- package/node_modules/@sudocode-ai/local-server/dist/routes/agents.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/config.d.ts +0 -3
- package/node_modules/@sudocode-ai/local-server/dist/routes/config.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/config.js +0 -155
- package/node_modules/@sudocode-ai/local-server/dist/routes/config.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/editors.d.ts +0 -15
- package/node_modules/@sudocode-ai/local-server/dist/routes/editors.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/editors.js +0 -98
- package/node_modules/@sudocode-ai/local-server/dist/routes/editors.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts +0 -18
- 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 -1570
- 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 -8
- 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 -340
- package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/files.d.ts +0 -18
- package/node_modules/@sudocode-ai/local-server/dist/routes/files.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/files.js +0 -89
- package/node_modules/@sudocode-ai/local-server/dist/routes/files.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/import.d.ts +0 -142
- package/node_modules/@sudocode-ai/local-server/dist/routes/import.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/import.js +0 -896
- package/node_modules/@sudocode-ai/local-server/dist/routes/import.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts +0 -8
- 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 -419
- package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.d.ts +0 -34
- package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.js +0 -602
- package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/projects.d.ts +0 -11
- package/node_modules/@sudocode-ai/local-server/dist/routes/projects.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/projects.js +0 -536
- package/node_modules/@sudocode-ai/local-server/dist/routes/projects.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts +0 -8
- 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 -310
- package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.d.ts +0 -3
- package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.js +0 -203
- package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts +0 -8
- 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 -414
- package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/update.d.ts +0 -7
- package/node_modules/@sudocode-ai/local-server/dist/routes/update.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/update.js +0 -194
- package/node_modules/@sudocode-ai/local-server/dist/routes/update.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/version.d.ts +0 -3
- package/node_modules/@sudocode-ai/local-server/dist/routes/version.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/version.js +0 -25
- package/node_modules/@sudocode-ai/local-server/dist/routes/version.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/voice.d.ts +0 -12
- package/node_modules/@sudocode-ai/local-server/dist/routes/voice.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/voice.js +0 -387
- package/node_modules/@sudocode-ai/local-server/dist/routes/voice.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.d.ts +0 -8
- package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.js +0 -1730
- package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.d.ts +0 -150
- package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.js +0 -312
- package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/command-discovery-service.d.ts +0 -43
- package/node_modules/@sudocode-ai/local-server/dist/services/command-discovery-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/command-discovery-service.js +0 -114
- package/node_modules/@sudocode-ai/local-server/dist/services/command-discovery-service.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 -90
- package/node_modules/@sudocode-ai/local-server/dist/services/db.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.d.ts +0 -57
- package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.js +0 -204
- package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.d.ts +0 -110
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.js +0 -710
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.d.ts +0 -73
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.js +0 -82
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts +0 -145
- 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 -392
- 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-logs-cleanup.d.ts +0 -88
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.js +0 -137
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.d.ts +0 -312
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.js +0 -518
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts +0 -409
- 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 -1694
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.d.ts +0 -116
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.js +0 -326
- package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts +0 -63
- 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 -177
- 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 -32
- 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 -114
- package/node_modules/@sudocode-ai/local-server/dist/services/export.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.d.ts +0 -104
- package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.js +0 -520
- package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts +0 -56
- 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 -78
- package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.d.ts +0 -72
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.js +0 -176
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.d.ts +0 -9
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.js +0 -10
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.d.ts +0 -97
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.js +0 -140
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.d.ts +0 -58
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.js +0 -8
- package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.d.ts +0 -185
- package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.js +0 -428
- package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.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/narration-service.d.ts +0 -312
- package/node_modules/@sudocode-ai/local-server/dist/services/narration-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/narration-service.js +0 -749
- package/node_modules/@sudocode-ai/local-server/dist/services/narration-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/project-context.d.ts +0 -93
- package/node_modules/@sudocode-ai/local-server/dist/services/project-context.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/project-context.js +0 -166
- package/node_modules/@sudocode-ai/local-server/dist/services/project-context.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.d.ts +0 -102
- package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.js +0 -500
- package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.d.ts +0 -98
- package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.js +0 -289
- package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.d.ts +0 -97
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.js +0 -377
- package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.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/repo-info.d.ts +0 -33
- package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.js +0 -136
- package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.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/stt-providers/index.d.ts +0 -21
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/index.js +0 -32
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/openai-whisper.d.ts +0 -66
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/openai-whisper.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/openai-whisper.js +0 -137
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/openai-whisper.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/whisper-local.d.ts +0 -64
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/whisper-local.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/whisper-local.js +0 -166
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/whisper-local.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-service.d.ts +0 -160
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-service.js +0 -246
- package/node_modules/@sudocode-ai/local-server/dist/services/stt-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/browser-tts.d.ts +0 -64
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/browser-tts.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/browser-tts.js +0 -89
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/browser-tts.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/index.d.ts +0 -20
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/index.js +0 -31
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-service.d.ts +0 -190
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-service.js +0 -296
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-sidecar-manager.d.ts +0 -276
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-sidecar-manager.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-sidecar-manager.js +0 -665
- package/node_modules/@sudocode-ai/local-server/dist/services/tts-sidecar-manager.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/version-service.d.ts +0 -14
- package/node_modules/@sudocode-ai/local-server/dist/services/version-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/version-service.js +0 -57
- package/node_modules/@sudocode-ai/local-server/dist/services/version-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts +0 -49
- 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 -52
- 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 -246
- 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 -758
- package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.d.ts +0 -43
- package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.js +0 -155
- package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.d.ts +0 -452
- package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.js +0 -1602
- package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/types/editor.d.ts +0 -49
- package/node_modules/@sudocode-ai/local-server/dist/types/editor.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/types/editor.js +0 -50
- package/node_modules/@sudocode-ai/local-server/dist/types/editor.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/types/project.d.ts +0 -58
- package/node_modules/@sudocode-ai/local-server/dist/types/project.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/types/project.js +0 -10
- package/node_modules/@sudocode-ai/local-server/dist/types/project.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.d.ts +0 -43
- package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.js +0 -53
- package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.d.ts +0 -36
- package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.js +0 -79
- package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.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/dist/utils/voice-config.d.ts +0 -26
- package/node_modules/@sudocode-ai/local-server/dist/utils/voice-config.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/utils/voice-config.js +0 -48
- package/node_modules/@sudocode-ai/local-server/dist/utils/voice-config.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.d.ts +0 -18
- package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.js +0 -344
- package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.d.ts +0 -84
- package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.js +0 -29
- package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.d.ts +0 -188
- package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.js +0 -557
- package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.d.ts +0 -78
- package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.js +0 -264
- package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.d.ts +0 -241
- package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.js +0 -752
- package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.d.ts +0 -283
- package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.js +0 -1190
- package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/index.d.ts +0 -15
- package/node_modules/@sudocode-ai/local-server/dist/workflow/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/index.js +0 -22
- package/node_modules/@sudocode-ai/local-server/dist/workflow/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.d.ts +0 -103
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.js +0 -193
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.d.ts +0 -16
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.js +0 -114
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.d.ts +0 -85
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.js +0 -520
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.d.ts +0 -36
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.js +0 -47
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.d.ts +0 -59
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.js +0 -67
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.d.ts +0 -82
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.js +0 -57
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.d.ts +0 -59
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.js +0 -40
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.d.ts +0 -345
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.js +0 -7
- package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.d.ts +0 -36
- package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.js +0 -329
- package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.d.ts +0 -262
- package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.js +0 -809
- package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.d.ts +0 -228
- package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.js +0 -94
- package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.d.ts +0 -278
- package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.js +0 -259
- package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.js.map +0 -1
- package/node_modules/@sudocode-ai/local-server/package.json +0 -83
- package/node_modules/@sudocode-ai/mcp/README.md +0 -226
- package/node_modules/@sudocode-ai/mcp/dist/api-client.d.ts +0 -296
- package/node_modules/@sudocode-ai/mcp/dist/api-client.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/api-client.js +0 -304
- package/node_modules/@sudocode-ai/mcp/dist/api-client.js.map +0 -1
- 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 -166
- 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 -167
- package/node_modules/@sudocode-ai/mcp/dist/index.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/scopes.d.ts +0 -126
- package/node_modules/@sudocode-ai/mcp/dist/scopes.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/scopes.js +0 -282
- package/node_modules/@sudocode-ai/mcp/dist/scopes.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/server.d.ts +0 -37
- package/node_modules/@sudocode-ai/mcp/dist/server.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/server.js +0 -442
- package/node_modules/@sudocode-ai/mcp/dist/server.js.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tool-registry.d.ts +0 -49
- package/node_modules/@sudocode-ai/mcp/dist/tool-registry.d.ts.map +0 -1
- package/node_modules/@sudocode-ai/mcp/dist/tool-registry.js +0 -720
- package/node_modules/@sudocode-ai/mcp/dist/tool-registry.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 -21
- 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 -30
- 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 -109
- 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 -46
- 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/package.json +0 -81
- package/node_modules/@sudocode-ai/types/src/agents.d.ts +0 -348
- package/node_modules/@sudocode-ai/types/src/artifacts.d.ts +0 -66
- package/node_modules/@sudocode-ai/types/src/events.d.ts +0 -70
- package/node_modules/@sudocode-ai/types/src/index.d.ts +0 -587
- package/node_modules/@sudocode-ai/types/src/integrations.d.ts +0 -454
- package/node_modules/@sudocode-ai/types/src/voice.d.ts +0 -465
- package/node_modules/@sudocode-ai/types/src/workflows.d.ts +0 -501
- package/node_modules/commander/LICENSE +0 -22
- package/node_modules/commander/Readme.md +0 -1149
- package/node_modules/commander/esm.mjs +0 -16
- package/node_modules/commander/index.js +0 -24
- package/node_modules/commander/lib/argument.js +0 -149
- package/node_modules/commander/lib/command.js +0 -2662
- package/node_modules/commander/lib/error.js +0 -39
- package/node_modules/commander/lib/help.js +0 -709
- package/node_modules/commander/lib/option.js +0 -367
- package/node_modules/commander/lib/suggestSimilar.js +0 -101
- package/node_modules/commander/package-support.json +0 -16
- package/node_modules/commander/package.json +0 -82
- package/node_modules/commander/typings/esm.d.mts +0 -3
- package/node_modules/commander/typings/index.d.ts +0 -1045
- package/node_modules/glob/LICENSE +0 -15
- package/node_modules/glob/README.md +0 -1265
- package/node_modules/glob/package.json +0 -99
- package/node_modules/isexe/LICENSE +0 -15
- package/node_modules/isexe/README.md +0 -74
- package/node_modules/isexe/package.json +0 -96
- package/node_modules/which/LICENSE +0 -15
- package/node_modules/which/README.md +0 -51
- package/node_modules/which/bin/which.js +0 -52
- package/node_modules/which/lib/index.js +0 -111
- package/node_modules/which/package.json +0 -52
package/node_modules/@sudocode-ai/local-server/dist/execution/executors/acp-executor-wrapper.js
DELETED
|
@@ -1,1126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AcpExecutorWrapper - Unified executor using Agent Client Protocol (ACP)
|
|
3
|
-
*
|
|
4
|
-
* Uses acp-factory for agent lifecycle management and streams SessionUpdate
|
|
5
|
-
* events directly to the frontend. Supports all ACP-native agents (claude-code,
|
|
6
|
-
* codex, gemini, opencode) with a unified interface.
|
|
7
|
-
*
|
|
8
|
-
* @module execution/executors/acp-executor-wrapper
|
|
9
|
-
*/
|
|
10
|
-
import { AgentFactory, } from "acp-factory";
|
|
11
|
-
import { PermissionManager } from "./permission-manager.js";
|
|
12
|
-
import { FileHandler } from "../handlers/file-handler.js";
|
|
13
|
-
import { SessionUpdateCoalescer } from "../output/session-update-coalescer.js";
|
|
14
|
-
import { serializeCoalescedUpdate, } from "../output/coalesced-types.js";
|
|
15
|
-
import { updateExecution, getExecution } from "../../services/executions.js";
|
|
16
|
-
import { broadcastExecutionUpdate, broadcastSessionEvent, websocketManager, } from "../../services/websocket.js";
|
|
17
|
-
import { execSync } from "child_process";
|
|
18
|
-
import { ExecutionChangesService } from "../../services/execution-changes-service.js";
|
|
19
|
-
import { notifyExecutionEvent } from "../../services/execution-event-callbacks.js";
|
|
20
|
-
import { getSessionPermissionMode } from "./agent-config-handlers.js";
|
|
21
|
-
/**
|
|
22
|
-
* Convert sudocode's MCP config format to acp-factory's McpServer[] format
|
|
23
|
-
*
|
|
24
|
-
* sudocode format: { "server-name": { command, args?, env?: Record } }
|
|
25
|
-
* acp-factory format: [{ name, command, args: [], env: [{name, value}] }]
|
|
26
|
-
*/
|
|
27
|
-
export function convertMcpServers(config) {
|
|
28
|
-
if (!config) {
|
|
29
|
-
return [];
|
|
30
|
-
}
|
|
31
|
-
// Already in array format (McpServer[])
|
|
32
|
-
if (Array.isArray(config)) {
|
|
33
|
-
return config;
|
|
34
|
-
}
|
|
35
|
-
// Convert from Record<string, SudocodeMcpServerConfig> to McpServer[]
|
|
36
|
-
return Object.entries(config).map(([name, serverConfig]) => ({
|
|
37
|
-
name,
|
|
38
|
-
command: serverConfig.command,
|
|
39
|
-
args: serverConfig.args ?? [],
|
|
40
|
-
env: serverConfig.env
|
|
41
|
-
? Object.entries(serverConfig.env).map(([envName, value]) => ({
|
|
42
|
-
name: envName,
|
|
43
|
-
value,
|
|
44
|
-
}))
|
|
45
|
-
: [],
|
|
46
|
-
}));
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* AcpExecutorWrapper
|
|
50
|
-
*
|
|
51
|
-
* Unified executor wrapper that uses acp-factory for agent lifecycle management.
|
|
52
|
-
* Streams SessionUpdate events directly to the frontend and coalesces them for storage.
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```typescript
|
|
56
|
-
* const wrapper = new AcpExecutorWrapper({
|
|
57
|
-
* agentType: "claude-code",
|
|
58
|
-
* acpConfig: {
|
|
59
|
-
* agentType: "claude-code",
|
|
60
|
-
* mcpServers: [{ name: "context", uri: "..." }],
|
|
61
|
-
* permissionMode: "auto-approve",
|
|
62
|
-
* },
|
|
63
|
-
* lifecycleService,
|
|
64
|
-
* logsStore,
|
|
65
|
-
* projectId: "my-project",
|
|
66
|
-
* db,
|
|
67
|
-
* });
|
|
68
|
-
*
|
|
69
|
-
* await wrapper.executeWithLifecycle(executionId, task, workDir);
|
|
70
|
-
* ```
|
|
71
|
-
*/
|
|
72
|
-
export class AcpExecutorWrapper {
|
|
73
|
-
agentType;
|
|
74
|
-
acpConfig;
|
|
75
|
-
logsStore;
|
|
76
|
-
projectId;
|
|
77
|
-
db;
|
|
78
|
-
/** Active agent handles by execution ID */
|
|
79
|
-
activeAgents = new Map();
|
|
80
|
-
/** Active sessions by execution ID */
|
|
81
|
-
activeSessions = new Map();
|
|
82
|
-
/** Permission managers by execution ID (for interactive mode) */
|
|
83
|
-
permissionManagers = new Map();
|
|
84
|
-
/** File handlers by execution ID */
|
|
85
|
-
fileHandlers = new Map();
|
|
86
|
-
/** Persistent session state by execution ID */
|
|
87
|
-
persistentSessions = new Map();
|
|
88
|
-
constructor(config) {
|
|
89
|
-
this.agentType = config.agentType;
|
|
90
|
-
this.acpConfig = config.acpConfig;
|
|
91
|
-
this.logsStore = config.logsStore;
|
|
92
|
-
this.projectId = config.projectId;
|
|
93
|
-
this.db = config.db;
|
|
94
|
-
console.log("[AcpExecutorWrapper] Initialized", {
|
|
95
|
-
agentType: this.agentType,
|
|
96
|
-
projectId: this.projectId,
|
|
97
|
-
hasLogsStore: !!this.logsStore,
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Execute a task with full lifecycle management
|
|
102
|
-
*
|
|
103
|
-
* @param executionId - Unique execution identifier
|
|
104
|
-
* @param task - Task to execute
|
|
105
|
-
* @param workDir - Working directory for execution
|
|
106
|
-
* @param options - Execution lifecycle options (sessionMode, sessionEndMode)
|
|
107
|
-
*/
|
|
108
|
-
async executeWithLifecycle(executionId, task, workDir, options) {
|
|
109
|
-
const isPersistent = options?.sessionMode === "persistent";
|
|
110
|
-
console.log(`[AcpExecutorWrapper] Starting execution ${executionId}`, {
|
|
111
|
-
agentType: this.agentType,
|
|
112
|
-
taskId: task.id,
|
|
113
|
-
workDir,
|
|
114
|
-
sessionMode: options?.sessionMode ?? "discrete",
|
|
115
|
-
});
|
|
116
|
-
// Initialize persistent session state if needed
|
|
117
|
-
if (isPersistent) {
|
|
118
|
-
const sessionConfig = options?.sessionEndMode ?? { explicit: true };
|
|
119
|
-
const persistentState = {
|
|
120
|
-
config: sessionConfig,
|
|
121
|
-
promptCount: 0,
|
|
122
|
-
state: "running",
|
|
123
|
-
workDir,
|
|
124
|
-
};
|
|
125
|
-
// Register disconnect callback if endOnDisconnect is enabled
|
|
126
|
-
if (sessionConfig.endOnDisconnect) {
|
|
127
|
-
persistentState.unregisterDisconnectCallback =
|
|
128
|
-
this.registerDisconnectHandler(executionId);
|
|
129
|
-
}
|
|
130
|
-
this.persistentSessions.set(executionId, persistentState);
|
|
131
|
-
}
|
|
132
|
-
let agent = null;
|
|
133
|
-
let session = null;
|
|
134
|
-
// Create permission manager for this execution (for interactive mode)
|
|
135
|
-
const permissionManager = new PermissionManager();
|
|
136
|
-
this.permissionManagers.set(executionId, permissionManager);
|
|
137
|
-
// Create file handler for this execution
|
|
138
|
-
// TODO: Set an explicit terminal handler if we need to explicitly manage terminals in the future.
|
|
139
|
-
const fileHandler = new FileHandler(workDir);
|
|
140
|
-
this.fileHandlers.set(executionId, fileHandler);
|
|
141
|
-
try {
|
|
142
|
-
// 1. Spawn agent via ACP factory
|
|
143
|
-
console.log(`[AcpExecutorWrapper] Spawning ${this.agentType} agent for ${executionId}`);
|
|
144
|
-
// Determine permission mode
|
|
145
|
-
const permissionMode = this.acpConfig.permissionMode ?? "interactive";
|
|
146
|
-
agent = await AgentFactory.spawn(this.agentType, {
|
|
147
|
-
env: this.acpConfig.env,
|
|
148
|
-
permissionMode,
|
|
149
|
-
// File handlers only - no terminal handlers means Claude Code uses native Bash
|
|
150
|
-
onFileRead: (path) => fileHandler.onRead(path),
|
|
151
|
-
onFileWrite: (path, content) => fileHandler.onWrite(path, content),
|
|
152
|
-
});
|
|
153
|
-
this.activeAgents.set(executionId, agent);
|
|
154
|
-
// 2. Create session with MCP servers
|
|
155
|
-
// Convert from sudocode format (Record<string, config>) to acp-factory format (McpServer[])
|
|
156
|
-
const mcpServers = convertMcpServers(task.metadata?.mcpServers ?? this.acpConfig.mcpServers);
|
|
157
|
-
// Build agentMeta for compaction settings (Claude Code specific)
|
|
158
|
-
const agentMeta = this.acpConfig.compaction?.enabled
|
|
159
|
-
? {
|
|
160
|
-
claudeCode: {
|
|
161
|
-
compaction: {
|
|
162
|
-
enabled: true,
|
|
163
|
-
contextTokenThreshold: this.acpConfig.compaction.contextTokenThreshold,
|
|
164
|
-
customInstructions: this.acpConfig.compaction.customInstructions,
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
}
|
|
168
|
-
: undefined;
|
|
169
|
-
console.log(`[AcpExecutorWrapper] Creating session for ${executionId}`, {
|
|
170
|
-
mcpServers: mcpServers.map((s) => s.name),
|
|
171
|
-
compactionEnabled: this.acpConfig.compaction?.enabled ?? false,
|
|
172
|
-
agentMeta: agentMeta ? JSON.stringify(agentMeta) : undefined,
|
|
173
|
-
});
|
|
174
|
-
session = await agent.createSession(workDir, {
|
|
175
|
-
mcpServers,
|
|
176
|
-
mode: this.acpConfig.mode,
|
|
177
|
-
agentMeta,
|
|
178
|
-
});
|
|
179
|
-
this.activeSessions.set(executionId, session);
|
|
180
|
-
// 2b. Set permission mode on the agent session using handler logic
|
|
181
|
-
const sessionPermissionMode = getSessionPermissionMode(this.agentType, {
|
|
182
|
-
skipPermissions: permissionMode === "auto-approve",
|
|
183
|
-
acpPermissionMode: permissionMode,
|
|
184
|
-
agentPermissionMode: this.acpConfig.agentPermissionMode,
|
|
185
|
-
});
|
|
186
|
-
if (sessionPermissionMode) {
|
|
187
|
-
try {
|
|
188
|
-
await session.setMode(sessionPermissionMode);
|
|
189
|
-
console.log(`[AcpExecutorWrapper] Set session permission mode to ${sessionPermissionMode} for ${executionId}`);
|
|
190
|
-
}
|
|
191
|
-
catch (modeError) {
|
|
192
|
-
console.warn(`[AcpExecutorWrapper] Failed to set ${sessionPermissionMode} mode (agent may not support it): ${modeError}`);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
// 3. Update execution status to running and capture session ID
|
|
196
|
-
updateExecution(this.db, executionId, {
|
|
197
|
-
status: "running",
|
|
198
|
-
session_id: session.id,
|
|
199
|
-
});
|
|
200
|
-
const execution = getExecution(this.db, executionId);
|
|
201
|
-
if (execution) {
|
|
202
|
-
broadcastExecutionUpdate(this.projectId, executionId, "status_changed", execution, execution.issue_id || undefined);
|
|
203
|
-
}
|
|
204
|
-
// 4. Stream prompt and process SessionUpdate events
|
|
205
|
-
const coalescer = new SessionUpdateCoalescer();
|
|
206
|
-
console.log(`[AcpExecutorWrapper] Sending prompt for ${executionId}`, {
|
|
207
|
-
promptLength: task.prompt.length,
|
|
208
|
-
});
|
|
209
|
-
let updateCount = 0;
|
|
210
|
-
for await (const update of session.prompt(task.prompt)) {
|
|
211
|
-
updateCount++;
|
|
212
|
-
// Log first 10 updates and every 100th update
|
|
213
|
-
if (updateCount <= 10 || updateCount % 100 === 0) {
|
|
214
|
-
console.log(`[AcpExecutorWrapper] Update ${updateCount} for ${executionId}:`, { sessionUpdate: update.sessionUpdate });
|
|
215
|
-
}
|
|
216
|
-
// Always log tool_call events with details for debugging
|
|
217
|
-
if (update.sessionUpdate === "tool_call" ||
|
|
218
|
-
update.sessionUpdate === "tool_call_update") {
|
|
219
|
-
const toolUpdate = update;
|
|
220
|
-
console.log(`[AcpExecutorWrapper] Tool call event:`, {
|
|
221
|
-
type: toolUpdate.sessionUpdate,
|
|
222
|
-
toolCallId: toolUpdate.toolCallId,
|
|
223
|
-
title: toolUpdate.title,
|
|
224
|
-
status: toolUpdate.status,
|
|
225
|
-
hasRawInput: !!toolUpdate.rawInput,
|
|
226
|
-
rawInputPreview: typeof toolUpdate.rawInput === "object"
|
|
227
|
-
? JSON.stringify(toolUpdate.rawInput).substring(0, 200)
|
|
228
|
-
: undefined,
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
// Handle permission requests (for interactive mode)
|
|
232
|
-
if (update.sessionUpdate === "permission_request") {
|
|
233
|
-
const permUpdate = update;
|
|
234
|
-
console.log(`[AcpExecutorWrapper] Permission request received:`, {
|
|
235
|
-
executionId,
|
|
236
|
-
requestId: permUpdate.requestId,
|
|
237
|
-
toolCall: permUpdate.toolCall?.title,
|
|
238
|
-
options: permUpdate.options?.map((o) => o.kind),
|
|
239
|
-
});
|
|
240
|
-
// Register with permission manager (non-blocking)
|
|
241
|
-
permissionManager.addPending({
|
|
242
|
-
requestId: permUpdate.requestId,
|
|
243
|
-
sessionId: permUpdate.sessionId,
|
|
244
|
-
toolCall: permUpdate.toolCall,
|
|
245
|
-
options: permUpdate.options,
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
// 5. Broadcast SessionUpdate to frontend via SSE
|
|
249
|
-
this.broadcastSessionUpdate(executionId, update);
|
|
250
|
-
// 6. Coalesce for storage
|
|
251
|
-
const coalescedUpdates = coalescer.process(update);
|
|
252
|
-
for (const coalesced of coalescedUpdates) {
|
|
253
|
-
this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
// 7. Flush remaining coalesced state
|
|
257
|
-
const remaining = coalescer.flush();
|
|
258
|
-
for (const coalesced of remaining) {
|
|
259
|
-
this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
|
|
260
|
-
}
|
|
261
|
-
console.log(`[AcpExecutorWrapper] Prompt completed for ${executionId}`, {
|
|
262
|
-
totalUpdates: updateCount,
|
|
263
|
-
isPersistent,
|
|
264
|
-
});
|
|
265
|
-
// 8. Handle completion based on session mode
|
|
266
|
-
if (isPersistent) {
|
|
267
|
-
// Persistent mode: transition to pending state
|
|
268
|
-
await this.transitionToWaiting(executionId);
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
// Discrete mode: complete the execution
|
|
272
|
-
await this.handleSuccess(executionId, workDir);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
catch (error) {
|
|
276
|
-
console.error(`[AcpExecutorWrapper] Execution failed for ${executionId}:`, error);
|
|
277
|
-
await this.handleError(executionId, error, workDir);
|
|
278
|
-
throw error;
|
|
279
|
-
}
|
|
280
|
-
finally {
|
|
281
|
-
// Skip cleanup for persistent sessions that are still alive
|
|
282
|
-
const persistentState = this.persistentSessions.get(executionId);
|
|
283
|
-
if (persistentState && persistentState.state !== "ended") {
|
|
284
|
-
console.log(`[AcpExecutorWrapper] Skipping cleanup for persistent session ${executionId} (state: ${persistentState.state})`);
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
// Cleanup for discrete sessions or ended persistent sessions
|
|
288
|
-
this.activeSessions.delete(executionId);
|
|
289
|
-
this.activeAgents.delete(executionId);
|
|
290
|
-
this.persistentSessions.delete(executionId);
|
|
291
|
-
// Cancel any pending permissions
|
|
292
|
-
const pm = this.permissionManagers.get(executionId);
|
|
293
|
-
if (pm) {
|
|
294
|
-
pm.cancelAll();
|
|
295
|
-
this.permissionManagers.delete(executionId);
|
|
296
|
-
}
|
|
297
|
-
// Cleanup file handler
|
|
298
|
-
this.fileHandlers.delete(executionId);
|
|
299
|
-
// Close agent if still running
|
|
300
|
-
if (agent?.isRunning()) {
|
|
301
|
-
try {
|
|
302
|
-
await agent.close();
|
|
303
|
-
console.log(`[AcpExecutorWrapper] Closed agent for ${executionId}`);
|
|
304
|
-
}
|
|
305
|
-
catch (closeError) {
|
|
306
|
-
console.warn(`[AcpExecutorWrapper] Error closing agent for ${executionId}:`, closeError);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* Resume a task from a previous session
|
|
313
|
-
*
|
|
314
|
-
* @param executionId - Unique execution identifier
|
|
315
|
-
* @param sessionId - Session ID to resume from
|
|
316
|
-
* @param task - Task to resume
|
|
317
|
-
* @param workDir - Working directory for execution
|
|
318
|
-
* @param options - Execution lifecycle options (sessionMode, sessionEndMode)
|
|
319
|
-
*/
|
|
320
|
-
async resumeWithLifecycle(executionId, sessionId, task, workDir, options) {
|
|
321
|
-
const isPersistent = options?.sessionMode === "persistent";
|
|
322
|
-
console.log(`[AcpExecutorWrapper] Resuming session ${sessionId} for ${executionId}`, { sessionMode: options?.sessionMode ?? "discrete" });
|
|
323
|
-
// Initialize persistent session state if needed
|
|
324
|
-
if (isPersistent) {
|
|
325
|
-
const sessionConfig = options?.sessionEndMode ?? { explicit: true };
|
|
326
|
-
const persistentState = {
|
|
327
|
-
config: sessionConfig,
|
|
328
|
-
promptCount: 0,
|
|
329
|
-
state: "running",
|
|
330
|
-
workDir,
|
|
331
|
-
};
|
|
332
|
-
this.persistentSessions.set(executionId, persistentState);
|
|
333
|
-
// Register for WebSocket disconnect events to handle cleanup
|
|
334
|
-
persistentState.unregisterDisconnectCallback =
|
|
335
|
-
this.registerDisconnectHandler(executionId);
|
|
336
|
-
}
|
|
337
|
-
let agent = null;
|
|
338
|
-
let session = null;
|
|
339
|
-
// Create permission manager for this execution
|
|
340
|
-
const permissionManager = new PermissionManager();
|
|
341
|
-
this.permissionManagers.set(executionId, permissionManager);
|
|
342
|
-
// Create file handler for this execution (no terminal handlers - use native Bash)
|
|
343
|
-
const fileHandler = new FileHandler(workDir);
|
|
344
|
-
this.fileHandlers.set(executionId, fileHandler);
|
|
345
|
-
try {
|
|
346
|
-
// 1. Spawn agent
|
|
347
|
-
const permissionMode = this.acpConfig.permissionMode ?? "interactive";
|
|
348
|
-
agent = await AgentFactory.spawn(this.agentType, {
|
|
349
|
-
env: this.acpConfig.env,
|
|
350
|
-
permissionMode,
|
|
351
|
-
// File handlers only - no terminal handlers means Claude Code uses native Bash
|
|
352
|
-
onFileRead: (path) => fileHandler.onRead(path),
|
|
353
|
-
onFileWrite: (path, content) => fileHandler.onWrite(path, content),
|
|
354
|
-
});
|
|
355
|
-
this.activeAgents.set(executionId, agent);
|
|
356
|
-
// Build agentMeta for compaction settings (Claude Code specific)
|
|
357
|
-
// This is needed for both loadSession and createSession to ensure compaction works on follow-ups
|
|
358
|
-
const agentMeta = this.acpConfig.compaction?.enabled
|
|
359
|
-
? {
|
|
360
|
-
claudeCode: {
|
|
361
|
-
compaction: {
|
|
362
|
-
enabled: true,
|
|
363
|
-
contextTokenThreshold: this.acpConfig.compaction.contextTokenThreshold,
|
|
364
|
-
customInstructions: this.acpConfig.compaction.customInstructions,
|
|
365
|
-
},
|
|
366
|
-
},
|
|
367
|
-
}
|
|
368
|
-
: undefined;
|
|
369
|
-
// 2. Load existing session or create new one if agent doesn't support loading
|
|
370
|
-
if (agent.capabilities?.loadSession) {
|
|
371
|
-
console.log(`[AcpExecutorWrapper] Loading session ${sessionId} for ${executionId}`);
|
|
372
|
-
// Pass agentMeta to loadSession so compaction config is re-applied on session resume
|
|
373
|
-
session = await agent.loadSession(sessionId, workDir, [], {
|
|
374
|
-
agentMeta,
|
|
375
|
-
});
|
|
376
|
-
}
|
|
377
|
-
else {
|
|
378
|
-
// Agent doesn't support session loading via ACP
|
|
379
|
-
// For agents like Copilot that use --resume <sessionId> CLI flag,
|
|
380
|
-
// the session ID is already passed to the CLI via agent-config-handlers
|
|
381
|
-
console.log(`[AcpExecutorWrapper] Agent doesn't support session loading via ACP, creating new session for ${executionId}`);
|
|
382
|
-
const mcpServers = convertMcpServers(task.metadata?.mcpServers ?? this.acpConfig.mcpServers);
|
|
383
|
-
session = await agent.createSession(workDir, {
|
|
384
|
-
mcpServers,
|
|
385
|
-
mode: this.acpConfig.mode,
|
|
386
|
-
agentMeta,
|
|
387
|
-
});
|
|
388
|
-
}
|
|
389
|
-
this.activeSessions.set(executionId, session);
|
|
390
|
-
// 2b. Set permission mode on the agent session using handler logic
|
|
391
|
-
const sessionPermissionMode = getSessionPermissionMode(this.agentType, {
|
|
392
|
-
skipPermissions: permissionMode === "auto-approve",
|
|
393
|
-
acpPermissionMode: permissionMode,
|
|
394
|
-
agentPermissionMode: this.acpConfig.agentPermissionMode,
|
|
395
|
-
});
|
|
396
|
-
if (sessionPermissionMode) {
|
|
397
|
-
try {
|
|
398
|
-
await session.setMode(sessionPermissionMode);
|
|
399
|
-
console.log(`[AcpExecutorWrapper] Set session permission mode to ${sessionPermissionMode} for ${executionId}`);
|
|
400
|
-
}
|
|
401
|
-
catch (modeError) {
|
|
402
|
-
console.warn(`[AcpExecutorWrapper] Failed to set ${sessionPermissionMode} mode (agent may not support it): ${modeError}`);
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
// 3. Update execution status
|
|
406
|
-
updateExecution(this.db, executionId, {
|
|
407
|
-
status: "running",
|
|
408
|
-
session_id: session.id,
|
|
409
|
-
});
|
|
410
|
-
const execution = getExecution(this.db, executionId);
|
|
411
|
-
if (execution) {
|
|
412
|
-
broadcastExecutionUpdate(this.projectId, executionId, "status_changed", execution, execution.issue_id || undefined);
|
|
413
|
-
}
|
|
414
|
-
// 4. Stream prompt and process updates
|
|
415
|
-
const coalescer = new SessionUpdateCoalescer();
|
|
416
|
-
let updateCount = 0;
|
|
417
|
-
for await (const update of session.prompt(task.prompt)) {
|
|
418
|
-
updateCount++;
|
|
419
|
-
// Debug: Log tool_call events
|
|
420
|
-
if (update.sessionUpdate === "tool_call" ||
|
|
421
|
-
update.sessionUpdate === "tool_call_update") {
|
|
422
|
-
const toolUpdate = update;
|
|
423
|
-
console.log(`[AcpExecutorWrapper] Tool call event (interactive):`, {
|
|
424
|
-
type: toolUpdate.sessionUpdate,
|
|
425
|
-
toolCallId: toolUpdate.toolCallId,
|
|
426
|
-
title: toolUpdate.title,
|
|
427
|
-
status: toolUpdate.status,
|
|
428
|
-
hasRawInput: !!toolUpdate.rawInput,
|
|
429
|
-
rawInputPreview: typeof toolUpdate.rawInput === "object"
|
|
430
|
-
? JSON.stringify(toolUpdate.rawInput).substring(0, 200)
|
|
431
|
-
: undefined,
|
|
432
|
-
});
|
|
433
|
-
}
|
|
434
|
-
// Handle permission requests (for interactive mode)
|
|
435
|
-
if (update.sessionUpdate === "permission_request") {
|
|
436
|
-
const permUpdate = update;
|
|
437
|
-
console.log(`[AcpExecutorWrapper] Permission request received:`, {
|
|
438
|
-
executionId,
|
|
439
|
-
requestId: permUpdate.requestId,
|
|
440
|
-
toolCall: permUpdate.toolCall?.title,
|
|
441
|
-
options: permUpdate.options?.map((o) => o.kind),
|
|
442
|
-
});
|
|
443
|
-
// Register with permission manager (non-blocking)
|
|
444
|
-
permissionManager.addPending({
|
|
445
|
-
requestId: permUpdate.requestId,
|
|
446
|
-
sessionId: permUpdate.sessionId,
|
|
447
|
-
toolCall: permUpdate.toolCall,
|
|
448
|
-
options: permUpdate.options,
|
|
449
|
-
});
|
|
450
|
-
}
|
|
451
|
-
// Broadcast to frontend
|
|
452
|
-
this.broadcastSessionUpdate(executionId, update);
|
|
453
|
-
// Coalesce for storage
|
|
454
|
-
const coalescedUpdates = coalescer.process(update);
|
|
455
|
-
for (const coalesced of coalescedUpdates) {
|
|
456
|
-
this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
// 5. Flush remaining state
|
|
460
|
-
const remaining = coalescer.flush();
|
|
461
|
-
for (const coalesced of remaining) {
|
|
462
|
-
this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
|
|
463
|
-
}
|
|
464
|
-
console.log(`[AcpExecutorWrapper] Resume completed for ${executionId}`, {
|
|
465
|
-
totalUpdates: updateCount,
|
|
466
|
-
isPersistent,
|
|
467
|
-
});
|
|
468
|
-
// 6. Handle completion based on session mode
|
|
469
|
-
if (isPersistent) {
|
|
470
|
-
// Persistent mode: transition to pending state
|
|
471
|
-
await this.transitionToWaiting(executionId);
|
|
472
|
-
}
|
|
473
|
-
else {
|
|
474
|
-
// Discrete mode: complete the execution
|
|
475
|
-
await this.handleSuccess(executionId, workDir);
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
catch (error) {
|
|
479
|
-
console.error(`[AcpExecutorWrapper] Resume failed for ${executionId}:`, error);
|
|
480
|
-
await this.handleError(executionId, error, workDir);
|
|
481
|
-
throw error;
|
|
482
|
-
}
|
|
483
|
-
finally {
|
|
484
|
-
// Skip cleanup for persistent sessions that are still alive
|
|
485
|
-
const persistentState = this.persistentSessions.get(executionId);
|
|
486
|
-
if (persistentState && persistentState.state !== "ended") {
|
|
487
|
-
console.log(`[AcpExecutorWrapper] Skipping cleanup for persistent session ${executionId} (state: ${persistentState.state})`);
|
|
488
|
-
return;
|
|
489
|
-
}
|
|
490
|
-
// Cleanup for discrete sessions or ended persistent sessions
|
|
491
|
-
this.activeSessions.delete(executionId);
|
|
492
|
-
this.activeAgents.delete(executionId);
|
|
493
|
-
this.persistentSessions.delete(executionId);
|
|
494
|
-
// Cancel any pending permissions
|
|
495
|
-
const pm = this.permissionManagers.get(executionId);
|
|
496
|
-
if (pm) {
|
|
497
|
-
pm.cancelAll();
|
|
498
|
-
this.permissionManagers.delete(executionId);
|
|
499
|
-
}
|
|
500
|
-
// Cleanup file handler
|
|
501
|
-
this.fileHandlers.delete(executionId);
|
|
502
|
-
if (agent?.isRunning()) {
|
|
503
|
-
try {
|
|
504
|
-
await agent.close();
|
|
505
|
-
}
|
|
506
|
-
catch (closeError) {
|
|
507
|
-
console.warn(`[AcpExecutorWrapper] Error closing agent for ${executionId}:`, closeError);
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
/**
|
|
513
|
-
* Cancel a running execution
|
|
514
|
-
*
|
|
515
|
-
* @param executionId - Execution ID to cancel
|
|
516
|
-
*/
|
|
517
|
-
async cancel(executionId) {
|
|
518
|
-
console.log(`[AcpExecutorWrapper] Cancel execution ${executionId}`);
|
|
519
|
-
// Get active session
|
|
520
|
-
const session = this.activeSessions.get(executionId);
|
|
521
|
-
if (session) {
|
|
522
|
-
try {
|
|
523
|
-
await session.cancel();
|
|
524
|
-
console.log(`[AcpExecutorWrapper] Session cancelled for ${executionId}`);
|
|
525
|
-
}
|
|
526
|
-
catch (error) {
|
|
527
|
-
console.warn(`[AcpExecutorWrapper] Error cancelling session for ${executionId}:`, error);
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
// Close agent
|
|
531
|
-
const agent = this.activeAgents.get(executionId);
|
|
532
|
-
if (agent?.isRunning()) {
|
|
533
|
-
try {
|
|
534
|
-
await agent.close();
|
|
535
|
-
console.log(`[AcpExecutorWrapper] Agent closed for ${executionId}`);
|
|
536
|
-
}
|
|
537
|
-
catch (error) {
|
|
538
|
-
console.warn(`[AcpExecutorWrapper] Error closing agent for ${executionId}:`, error);
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
// Capture final commit
|
|
542
|
-
const execution = getExecution(this.db, executionId);
|
|
543
|
-
const repoPath = execution?.worktree_path;
|
|
544
|
-
let afterCommit;
|
|
545
|
-
if (repoPath) {
|
|
546
|
-
try {
|
|
547
|
-
afterCommit = execSync("git rev-parse HEAD", {
|
|
548
|
-
cwd: repoPath,
|
|
549
|
-
encoding: "utf-8",
|
|
550
|
-
}).trim();
|
|
551
|
-
}
|
|
552
|
-
catch (error) {
|
|
553
|
-
console.warn(`[AcpExecutorWrapper] Failed to capture after_commit for cancelled execution ${executionId}:`, error instanceof Error ? error.message : String(error));
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
// Update database status
|
|
557
|
-
updateExecution(this.db, executionId, {
|
|
558
|
-
after_commit: afterCommit,
|
|
559
|
-
status: "stopped",
|
|
560
|
-
completed_at: new Date().toISOString(),
|
|
561
|
-
});
|
|
562
|
-
const updatedExecution = getExecution(this.db, executionId);
|
|
563
|
-
if (updatedExecution) {
|
|
564
|
-
broadcastExecutionUpdate(this.projectId, executionId, "status_changed", updatedExecution, updatedExecution.issue_id || undefined);
|
|
565
|
-
}
|
|
566
|
-
// Cleanup maps
|
|
567
|
-
this.activeSessions.delete(executionId);
|
|
568
|
-
this.activeAgents.delete(executionId);
|
|
569
|
-
// Cancel any pending permissions
|
|
570
|
-
const pm = this.permissionManagers.get(executionId);
|
|
571
|
-
if (pm) {
|
|
572
|
-
pm.cancelAll();
|
|
573
|
-
this.permissionManagers.delete(executionId);
|
|
574
|
-
}
|
|
575
|
-
// Cleanup file handler
|
|
576
|
-
this.fileHandlers.delete(executionId);
|
|
577
|
-
}
|
|
578
|
-
/**
|
|
579
|
-
* Respond to a permission request
|
|
580
|
-
*
|
|
581
|
-
* @param executionId - Execution ID
|
|
582
|
-
* @param requestId - Permission request ID
|
|
583
|
-
* @param optionId - Selected option ID (e.g., 'allow_once', 'reject_always')
|
|
584
|
-
* @returns true if the permission was found and responded to
|
|
585
|
-
*/
|
|
586
|
-
respondToPermission(executionId, requestId, optionId) {
|
|
587
|
-
console.log(`[AcpExecutorWrapper] Responding to permission ${requestId} for ${executionId} with ${optionId}`);
|
|
588
|
-
// Get the session and permission manager
|
|
589
|
-
const session = this.activeSessions.get(executionId);
|
|
590
|
-
const permissionManager = this.permissionManagers.get(executionId);
|
|
591
|
-
if (!session) {
|
|
592
|
-
console.warn(`[AcpExecutorWrapper] No active session for ${executionId}`);
|
|
593
|
-
return false;
|
|
594
|
-
}
|
|
595
|
-
if (!permissionManager) {
|
|
596
|
-
console.warn(`[AcpExecutorWrapper] No permission manager for ${executionId}`);
|
|
597
|
-
return false;
|
|
598
|
-
}
|
|
599
|
-
// Respond via the session (this unblocks the ACP session)
|
|
600
|
-
try {
|
|
601
|
-
session.respondToPermission(requestId, optionId);
|
|
602
|
-
}
|
|
603
|
-
catch (error) {
|
|
604
|
-
console.error(`[AcpExecutorWrapper] Error responding to permission via session:`, error);
|
|
605
|
-
return false;
|
|
606
|
-
}
|
|
607
|
-
// Also resolve in our permission manager (for tracking)
|
|
608
|
-
return permissionManager.respond(requestId, optionId);
|
|
609
|
-
}
|
|
610
|
-
/**
|
|
611
|
-
* Check if an execution has pending permissions
|
|
612
|
-
*
|
|
613
|
-
* @param executionId - Execution ID
|
|
614
|
-
* @returns true if there are pending permission requests
|
|
615
|
-
*/
|
|
616
|
-
hasPendingPermissions(executionId) {
|
|
617
|
-
const pm = this.permissionManagers.get(executionId);
|
|
618
|
-
return pm ? pm.pendingCount > 0 : false;
|
|
619
|
-
}
|
|
620
|
-
/**
|
|
621
|
-
* Get pending permission request IDs for an execution
|
|
622
|
-
*
|
|
623
|
-
* @param executionId - Execution ID
|
|
624
|
-
* @returns Array of pending request IDs
|
|
625
|
-
*/
|
|
626
|
-
getPendingPermissionIds(executionId) {
|
|
627
|
-
const pm = this.permissionManagers.get(executionId);
|
|
628
|
-
return pm ? pm.getPendingIds() : [];
|
|
629
|
-
}
|
|
630
|
-
/**
|
|
631
|
-
* Set the session mode for an active execution
|
|
632
|
-
*
|
|
633
|
-
* @param executionId - Execution ID
|
|
634
|
-
* @param mode - The mode to set (e.g., "code", "plan", "architect")
|
|
635
|
-
* @returns true if mode was set successfully, false otherwise
|
|
636
|
-
*/
|
|
637
|
-
setMode(executionId, mode) {
|
|
638
|
-
console.log(`[AcpExecutorWrapper] Setting mode to "${mode}" for execution ${executionId}`);
|
|
639
|
-
const session = this.activeSessions.get(executionId);
|
|
640
|
-
if (!session) {
|
|
641
|
-
console.warn(`[AcpExecutorWrapper] No active session for ${executionId}`);
|
|
642
|
-
return false;
|
|
643
|
-
}
|
|
644
|
-
try {
|
|
645
|
-
session.setMode(mode);
|
|
646
|
-
console.log(`[AcpExecutorWrapper] Mode set to "${mode}" for execution ${executionId}`);
|
|
647
|
-
return true;
|
|
648
|
-
}
|
|
649
|
-
catch (error) {
|
|
650
|
-
console.error(`[AcpExecutorWrapper] Error setting mode for ${executionId}:`, error);
|
|
651
|
-
return false;
|
|
652
|
-
}
|
|
653
|
-
}
|
|
654
|
-
/**
|
|
655
|
-
* Fork an active session into a new session
|
|
656
|
-
*
|
|
657
|
-
* Creates a new session that inherits the conversation history from the parent.
|
|
658
|
-
* The new session can be run independently while preserving context.
|
|
659
|
-
*
|
|
660
|
-
* @param executionId - Source execution ID to fork from
|
|
661
|
-
* @param newExecutionId - ID for the new forked execution
|
|
662
|
-
* @returns The forked Session, or null if forking failed
|
|
663
|
-
* @experimental This relies on the unstable session/fork ACP capability
|
|
664
|
-
*/
|
|
665
|
-
async forkSession(executionId, newExecutionId) {
|
|
666
|
-
console.log(`[AcpExecutorWrapper] Forking session from ${executionId} to ${newExecutionId}`);
|
|
667
|
-
const session = this.activeSessions.get(executionId);
|
|
668
|
-
if (!session) {
|
|
669
|
-
console.warn(`[AcpExecutorWrapper] No active session for ${executionId}`);
|
|
670
|
-
return null;
|
|
671
|
-
}
|
|
672
|
-
try {
|
|
673
|
-
// Use forkWithFlush which handles active sessions by flushing first
|
|
674
|
-
const forkedSession = await session.forkWithFlush();
|
|
675
|
-
// Register the new session
|
|
676
|
-
this.activeSessions.set(newExecutionId, forkedSession);
|
|
677
|
-
// Create a permission manager for the forked session
|
|
678
|
-
this.permissionManagers.set(newExecutionId, new PermissionManager());
|
|
679
|
-
console.log(`[AcpExecutorWrapper] Forked session created for ${newExecutionId}`);
|
|
680
|
-
return forkedSession;
|
|
681
|
-
}
|
|
682
|
-
catch (error) {
|
|
683
|
-
console.error(`[AcpExecutorWrapper] Error forking session from ${executionId}:`, error);
|
|
684
|
-
return null;
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
/**
|
|
688
|
-
* Cancel the current prompt for an active session
|
|
689
|
-
*
|
|
690
|
-
* Stops the agent's current work without providing new instructions.
|
|
691
|
-
* The session remains valid and can receive new prompts via follow-up.
|
|
692
|
-
*
|
|
693
|
-
* @param executionId - Execution ID to cancel
|
|
694
|
-
* @returns true if the cancel was initiated, false if no active session
|
|
695
|
-
*/
|
|
696
|
-
async cancelSession(executionId) {
|
|
697
|
-
console.log(`[AcpExecutorWrapper] Cancelling session for execution ${executionId}`);
|
|
698
|
-
const session = this.activeSessions.get(executionId);
|
|
699
|
-
if (!session) {
|
|
700
|
-
console.warn(`[AcpExecutorWrapper] No active session for ${executionId}`);
|
|
701
|
-
return false;
|
|
702
|
-
}
|
|
703
|
-
try {
|
|
704
|
-
await session.cancel();
|
|
705
|
-
console.log(`[AcpExecutorWrapper] Session cancelled for execution ${executionId}`);
|
|
706
|
-
return true;
|
|
707
|
-
}
|
|
708
|
-
catch (error) {
|
|
709
|
-
console.error(`[AcpExecutorWrapper] Error cancelling session for ${executionId}:`, error);
|
|
710
|
-
return false;
|
|
711
|
-
}
|
|
712
|
-
}
|
|
713
|
-
/**
|
|
714
|
-
* Interrupt the current prompt and continue with new content
|
|
715
|
-
*
|
|
716
|
-
* Cancels the agent's current work and immediately starts processing
|
|
717
|
-
* the new prompt. Returns an async iterator of session updates.
|
|
718
|
-
*
|
|
719
|
-
* @param executionId - Execution ID to interrupt
|
|
720
|
-
* @param newPrompt - New prompt to continue with
|
|
721
|
-
* @returns Async iterator of ExtendedSessionUpdate events, or null if no active session
|
|
722
|
-
* @experimental This relies on the interruptWith ACP capability
|
|
723
|
-
*/
|
|
724
|
-
async *interruptWithNewPrompt(executionId, newPrompt) {
|
|
725
|
-
console.log(`[AcpExecutorWrapper] Interrupting session for execution ${executionId} with new prompt`);
|
|
726
|
-
const session = this.activeSessions.get(executionId);
|
|
727
|
-
if (!session) {
|
|
728
|
-
console.warn(`[AcpExecutorWrapper] No active session for ${executionId}`);
|
|
729
|
-
return;
|
|
730
|
-
}
|
|
731
|
-
try {
|
|
732
|
-
for await (const update of session.interruptWith(newPrompt)) {
|
|
733
|
-
yield update;
|
|
734
|
-
}
|
|
735
|
-
console.log(`[AcpExecutorWrapper] Interrupt complete for execution ${executionId}`);
|
|
736
|
-
}
|
|
737
|
-
catch (error) {
|
|
738
|
-
console.error(`[AcpExecutorWrapper] Error during interrupt for ${executionId}:`, error);
|
|
739
|
-
throw error;
|
|
740
|
-
}
|
|
741
|
-
}
|
|
742
|
-
// ============================================================================
|
|
743
|
-
// Persistent Session Methods
|
|
744
|
-
// ============================================================================
|
|
745
|
-
/**
|
|
746
|
-
* Send an additional prompt to a persistent session
|
|
747
|
-
*
|
|
748
|
-
* Only works for executions started with sessionMode: "persistent" that are
|
|
749
|
-
* currently in the "pending" or "paused" state. Sending a prompt to a paused
|
|
750
|
-
* session will resume it.
|
|
751
|
-
*
|
|
752
|
-
* @param executionId - Execution ID with active persistent session
|
|
753
|
-
* @param prompt - The prompt to send
|
|
754
|
-
* @throws Error if no persistent session exists or session is not pending/paused
|
|
755
|
-
*/
|
|
756
|
-
async sendPrompt(executionId, prompt) {
|
|
757
|
-
const persistentState = this.persistentSessions.get(executionId);
|
|
758
|
-
if (!persistentState) {
|
|
759
|
-
throw new Error(`No persistent session found for execution ${executionId}`);
|
|
760
|
-
}
|
|
761
|
-
if (persistentState.state !== "pending" &&
|
|
762
|
-
persistentState.state !== "paused") {
|
|
763
|
-
throw new Error(`Cannot send prompt to session in state: ${persistentState.state}`);
|
|
764
|
-
}
|
|
765
|
-
const wasResumingFromPaused = persistentState.state === "paused";
|
|
766
|
-
if (wasResumingFromPaused) {
|
|
767
|
-
console.log(`[AcpExecutorWrapper] Resuming paused session ${executionId} with new prompt`);
|
|
768
|
-
}
|
|
769
|
-
const session = this.activeSessions.get(executionId);
|
|
770
|
-
if (!session) {
|
|
771
|
-
throw new Error(`No active session for execution ${executionId}`);
|
|
772
|
-
}
|
|
773
|
-
console.log(`[AcpExecutorWrapper] Sending prompt to persistent session ${executionId}`, { promptNumber: persistentState.promptCount + 1 });
|
|
774
|
-
// Clear any idle timeout
|
|
775
|
-
this.clearIdleTimeout(executionId);
|
|
776
|
-
// Update state to running
|
|
777
|
-
persistentState.state = "running";
|
|
778
|
-
// Update execution status
|
|
779
|
-
updateExecution(this.db, executionId, { status: "running" });
|
|
780
|
-
const execution = getExecution(this.db, executionId);
|
|
781
|
-
if (execution) {
|
|
782
|
-
broadcastExecutionUpdate(this.projectId, executionId, "status_changed", execution, execution.issue_id || undefined);
|
|
783
|
-
}
|
|
784
|
-
// Emit and store user message before streaming agent response
|
|
785
|
-
const userMessage = {
|
|
786
|
-
sessionUpdate: "user_message_complete",
|
|
787
|
-
content: { type: "text", text: prompt },
|
|
788
|
-
timestamp: new Date(),
|
|
789
|
-
};
|
|
790
|
-
// Broadcast to frontend
|
|
791
|
-
this.broadcastSessionUpdate(executionId, userMessage);
|
|
792
|
-
// Store in logs
|
|
793
|
-
this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(userMessage));
|
|
794
|
-
// Stream prompt and process updates
|
|
795
|
-
const coalescer = new SessionUpdateCoalescer();
|
|
796
|
-
const permissionManager = this.permissionManagers.get(executionId);
|
|
797
|
-
try {
|
|
798
|
-
let updateCount = 0;
|
|
799
|
-
for await (const update of session.prompt(prompt)) {
|
|
800
|
-
updateCount++;
|
|
801
|
-
// Handle permission requests
|
|
802
|
-
if (update.sessionUpdate === "permission_request" &&
|
|
803
|
-
permissionManager) {
|
|
804
|
-
const permUpdate = update;
|
|
805
|
-
permissionManager.addPending({
|
|
806
|
-
requestId: permUpdate.requestId,
|
|
807
|
-
sessionId: permUpdate.sessionId,
|
|
808
|
-
toolCall: permUpdate.toolCall,
|
|
809
|
-
options: permUpdate.options,
|
|
810
|
-
});
|
|
811
|
-
}
|
|
812
|
-
// Broadcast to frontend
|
|
813
|
-
this.broadcastSessionUpdate(executionId, update);
|
|
814
|
-
// Coalesce for storage
|
|
815
|
-
const coalescedUpdates = coalescer.process(update);
|
|
816
|
-
for (const coalesced of coalescedUpdates) {
|
|
817
|
-
this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
|
|
818
|
-
}
|
|
819
|
-
}
|
|
820
|
-
// Flush remaining state
|
|
821
|
-
const remaining = coalescer.flush();
|
|
822
|
-
for (const coalesced of remaining) {
|
|
823
|
-
this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
|
|
824
|
-
}
|
|
825
|
-
console.log(`[AcpExecutorWrapper] Prompt ${persistentState.promptCount + 1} completed for ${executionId}`, { updateCount });
|
|
826
|
-
// Transition back to pending
|
|
827
|
-
await this.transitionToWaiting(executionId);
|
|
828
|
-
}
|
|
829
|
-
catch (error) {
|
|
830
|
-
console.error(`[AcpExecutorWrapper] Error sending prompt to persistent session ${executionId}:`, error);
|
|
831
|
-
// Mark session as ended on error
|
|
832
|
-
persistentState.state = "ended";
|
|
833
|
-
await this.handleError(executionId, error, persistentState.workDir);
|
|
834
|
-
throw error;
|
|
835
|
-
}
|
|
836
|
-
}
|
|
837
|
-
/**
|
|
838
|
-
* Explicitly end a persistent session
|
|
839
|
-
*
|
|
840
|
-
* Closes the agent, cleans up resources, and marks the execution as completed.
|
|
841
|
-
*
|
|
842
|
-
* @param executionId - Execution ID with active persistent session
|
|
843
|
-
* @param reason - Reason for ending the session (default: "explicit")
|
|
844
|
-
*/
|
|
845
|
-
async endSession(executionId, reason = "explicit") {
|
|
846
|
-
const persistentState = this.persistentSessions.get(executionId);
|
|
847
|
-
if (!persistentState) {
|
|
848
|
-
console.warn(`[AcpExecutorWrapper] No persistent session found for ${executionId}`);
|
|
849
|
-
return;
|
|
850
|
-
}
|
|
851
|
-
console.log(`[AcpExecutorWrapper] Ending persistent session ${executionId}`, { promptCount: persistentState.promptCount });
|
|
852
|
-
// Clear any idle timeout
|
|
853
|
-
this.clearIdleTimeout(executionId);
|
|
854
|
-
// Unregister disconnect callback if registered
|
|
855
|
-
if (persistentState.unregisterDisconnectCallback) {
|
|
856
|
-
persistentState.unregisterDisconnectCallback();
|
|
857
|
-
persistentState.unregisterDisconnectCallback = undefined;
|
|
858
|
-
}
|
|
859
|
-
// Mark as ended
|
|
860
|
-
persistentState.state = "ended";
|
|
861
|
-
// Complete the execution
|
|
862
|
-
await this.handleSuccess(executionId, persistentState.workDir);
|
|
863
|
-
// Cleanup
|
|
864
|
-
const agent = this.activeAgents.get(executionId);
|
|
865
|
-
if (agent?.isRunning()) {
|
|
866
|
-
try {
|
|
867
|
-
await agent.close();
|
|
868
|
-
console.log(`[AcpExecutorWrapper] Closed agent for ${executionId}`);
|
|
869
|
-
}
|
|
870
|
-
catch (closeError) {
|
|
871
|
-
console.warn(`[AcpExecutorWrapper] Error closing agent for ${executionId}:`, closeError);
|
|
872
|
-
}
|
|
873
|
-
}
|
|
874
|
-
// Remove from maps
|
|
875
|
-
this.activeSessions.delete(executionId);
|
|
876
|
-
this.activeAgents.delete(executionId);
|
|
877
|
-
this.persistentSessions.delete(executionId);
|
|
878
|
-
const pm = this.permissionManagers.get(executionId);
|
|
879
|
-
if (pm) {
|
|
880
|
-
pm.cancelAll();
|
|
881
|
-
this.permissionManagers.delete(executionId);
|
|
882
|
-
}
|
|
883
|
-
this.fileHandlers.delete(executionId);
|
|
884
|
-
// Broadcast session ended event with the specified reason
|
|
885
|
-
broadcastSessionEvent(this.projectId, executionId, "session_ended", {
|
|
886
|
-
reason,
|
|
887
|
-
});
|
|
888
|
-
}
|
|
889
|
-
/**
|
|
890
|
-
* Get the current state of a persistent session
|
|
891
|
-
*
|
|
892
|
-
* @param executionId - Execution ID to check
|
|
893
|
-
* @returns Session state info or null if not a persistent session
|
|
894
|
-
*/
|
|
895
|
-
getSessionState(executionId) {
|
|
896
|
-
const persistentState = this.persistentSessions.get(executionId);
|
|
897
|
-
if (!persistentState) {
|
|
898
|
-
return null;
|
|
899
|
-
}
|
|
900
|
-
return {
|
|
901
|
-
mode: "persistent",
|
|
902
|
-
state: persistentState.state,
|
|
903
|
-
promptCount: persistentState.promptCount,
|
|
904
|
-
idleTimeMs: persistentState.lastPromptCompletedAt
|
|
905
|
-
? Date.now() - persistentState.lastPromptCompletedAt.getTime()
|
|
906
|
-
: undefined,
|
|
907
|
-
};
|
|
908
|
-
}
|
|
909
|
-
/**
|
|
910
|
-
* Check if an execution has an active persistent session
|
|
911
|
-
*
|
|
912
|
-
* @param executionId - Execution ID to check
|
|
913
|
-
* @returns true if execution has a persistent session that's not ended
|
|
914
|
-
*/
|
|
915
|
-
isPersistentSession(executionId) {
|
|
916
|
-
const state = this.persistentSessions.get(executionId);
|
|
917
|
-
return state !== undefined && state.state !== "ended";
|
|
918
|
-
}
|
|
919
|
-
/**
|
|
920
|
-
* Check if an agent type is supported via ACP
|
|
921
|
-
*
|
|
922
|
-
* @param agentType - Agent type to check
|
|
923
|
-
* @returns true if the agent is registered in AgentFactory
|
|
924
|
-
*/
|
|
925
|
-
static isAcpSupported(agentType) {
|
|
926
|
-
return AgentFactory.listAgents().includes(agentType);
|
|
927
|
-
}
|
|
928
|
-
/**
|
|
929
|
-
* List all ACP-supported agent types
|
|
930
|
-
*
|
|
931
|
-
* @returns Array of agent type names
|
|
932
|
-
*/
|
|
933
|
-
static listAcpAgents() {
|
|
934
|
-
return AgentFactory.listAgents();
|
|
935
|
-
}
|
|
936
|
-
// ============================================================================
|
|
937
|
-
// Private helpers
|
|
938
|
-
// ============================================================================
|
|
939
|
-
/**
|
|
940
|
-
* Broadcast SessionUpdate to frontend via WebSocket
|
|
941
|
-
*
|
|
942
|
-
* Sends the raw SessionUpdate event to clients subscribed to this execution.
|
|
943
|
-
* This enables real-time streaming of agent output.
|
|
944
|
-
*/
|
|
945
|
-
broadcastSessionUpdate(executionId, update) {
|
|
946
|
-
// Broadcast to execution subscribers only
|
|
947
|
-
// Note: Do NOT broadcast to issue subscribers - this causes duplicate messages
|
|
948
|
-
// when a page is subscribed to both execution:X and issue:Y channels
|
|
949
|
-
websocketManager.broadcast(this.projectId, "execution", executionId, {
|
|
950
|
-
type: "session_update", // Type cast for internal use
|
|
951
|
-
data: { update, executionId },
|
|
952
|
-
});
|
|
953
|
-
}
|
|
954
|
-
/**
|
|
955
|
-
* Transition a persistent session to pending or paused state
|
|
956
|
-
*
|
|
957
|
-
* Updates the session state, increments prompt count, starts idle timeout if configured,
|
|
958
|
-
* and broadcasts the state change to clients. If pauseOnCompletion is enabled, the session
|
|
959
|
-
* transitions to "paused" instead of "pending".
|
|
960
|
-
*/
|
|
961
|
-
async transitionToWaiting(executionId) {
|
|
962
|
-
const persistentState = this.persistentSessions.get(executionId);
|
|
963
|
-
if (!persistentState) {
|
|
964
|
-
console.warn(`[AcpExecutorWrapper] No persistent session found for ${executionId} during transition`);
|
|
965
|
-
return;
|
|
966
|
-
}
|
|
967
|
-
// Update state - use "paused" if pauseOnCompletion is enabled
|
|
968
|
-
const targetState = persistentState.config.pauseOnCompletion
|
|
969
|
-
? "paused"
|
|
970
|
-
: "pending";
|
|
971
|
-
persistentState.state = targetState;
|
|
972
|
-
persistentState.promptCount++;
|
|
973
|
-
persistentState.lastPromptCompletedAt = new Date();
|
|
974
|
-
console.log(`[AcpExecutorWrapper] Transitioned to ${targetState} state for ${executionId}`, { promptCount: persistentState.promptCount });
|
|
975
|
-
// Start idle timeout if configured (only for pending state, not paused)
|
|
976
|
-
if (targetState === "pending" &&
|
|
977
|
-
persistentState.config.idleTimeoutMs &&
|
|
978
|
-
persistentState.config.idleTimeoutMs > 0) {
|
|
979
|
-
persistentState.idleTimeout = setTimeout(async () => {
|
|
980
|
-
console.log(`[AcpExecutorWrapper] Idle timeout reached for ${executionId}`);
|
|
981
|
-
await this.endSession(executionId, "timeout");
|
|
982
|
-
}, persistentState.config.idleTimeoutMs);
|
|
983
|
-
}
|
|
984
|
-
// Update execution status
|
|
985
|
-
updateExecution(this.db, executionId, { status: targetState });
|
|
986
|
-
const execution = getExecution(this.db, executionId);
|
|
987
|
-
if (execution) {
|
|
988
|
-
broadcastExecutionUpdate(this.projectId, executionId, "status_changed", execution, execution.issue_id || undefined);
|
|
989
|
-
}
|
|
990
|
-
// Broadcast session state change event
|
|
991
|
-
const eventType = targetState === "paused" ? "session_paused" : "session_pending";
|
|
992
|
-
broadcastSessionEvent(this.projectId, executionId, eventType, {
|
|
993
|
-
promptCount: persistentState.promptCount,
|
|
994
|
-
});
|
|
995
|
-
}
|
|
996
|
-
/**
|
|
997
|
-
* Clear the idle timeout for a persistent session
|
|
998
|
-
*/
|
|
999
|
-
clearIdleTimeout(executionId) {
|
|
1000
|
-
const persistentState = this.persistentSessions.get(executionId);
|
|
1001
|
-
if (persistentState?.idleTimeout) {
|
|
1002
|
-
clearTimeout(persistentState.idleTimeout);
|
|
1003
|
-
persistentState.idleTimeout = undefined;
|
|
1004
|
-
}
|
|
1005
|
-
}
|
|
1006
|
-
/**
|
|
1007
|
-
* Register a disconnect handler for endOnDisconnect mode
|
|
1008
|
-
*
|
|
1009
|
-
* Returns an unregister function to be called during cleanup.
|
|
1010
|
-
*/
|
|
1011
|
-
registerDisconnectHandler(executionId) {
|
|
1012
|
-
const unregister = websocketManager.onDisconnect(async (_clientId, subscriptions) => {
|
|
1013
|
-
const persistentState = this.persistentSessions.get(executionId);
|
|
1014
|
-
if (!persistentState || persistentState.state === "ended") {
|
|
1015
|
-
return;
|
|
1016
|
-
}
|
|
1017
|
-
// Check if the disconnected client was subscribed to this execution
|
|
1018
|
-
const executionSubscription = `${this.projectId}:execution:${executionId}`;
|
|
1019
|
-
const allSubscription = `${this.projectId}:all`;
|
|
1020
|
-
const typeSubscription = `${this.projectId}:execution:*`;
|
|
1021
|
-
const wasSubscribed = subscriptions.has(executionSubscription) ||
|
|
1022
|
-
subscriptions.has(allSubscription) ||
|
|
1023
|
-
subscriptions.has(typeSubscription);
|
|
1024
|
-
if (!wasSubscribed) {
|
|
1025
|
-
return;
|
|
1026
|
-
}
|
|
1027
|
-
// Check if there are still other subscribers
|
|
1028
|
-
const hasOtherSubscribers = websocketManager.hasSubscribers(this.projectId, "execution", executionId);
|
|
1029
|
-
if (!hasOtherSubscribers) {
|
|
1030
|
-
console.log(`[AcpExecutorWrapper] Last subscriber disconnected for ${executionId}, ending session`);
|
|
1031
|
-
await this.endSession(executionId, "disconnect");
|
|
1032
|
-
}
|
|
1033
|
-
});
|
|
1034
|
-
return unregister;
|
|
1035
|
-
}
|
|
1036
|
-
/**
|
|
1037
|
-
* Handle successful execution
|
|
1038
|
-
*/
|
|
1039
|
-
async handleSuccess(executionId, workDir) {
|
|
1040
|
-
console.log(`[AcpExecutorWrapper] Execution ${executionId} completed successfully`);
|
|
1041
|
-
// Get execution to find worktree path
|
|
1042
|
-
const execution = getExecution(this.db, executionId);
|
|
1043
|
-
const repoPath = execution?.worktree_path || workDir;
|
|
1044
|
-
// Capture final commit
|
|
1045
|
-
let afterCommit;
|
|
1046
|
-
try {
|
|
1047
|
-
afterCommit = execSync("git rev-parse HEAD", {
|
|
1048
|
-
cwd: repoPath,
|
|
1049
|
-
encoding: "utf-8",
|
|
1050
|
-
}).trim();
|
|
1051
|
-
}
|
|
1052
|
-
catch (error) {
|
|
1053
|
-
console.warn(`[AcpExecutorWrapper] Failed to capture after_commit for execution ${executionId}:`, error instanceof Error ? error.message : String(error));
|
|
1054
|
-
}
|
|
1055
|
-
// Calculate file changes
|
|
1056
|
-
let filesChangedJson = null;
|
|
1057
|
-
try {
|
|
1058
|
-
const changesService = new ExecutionChangesService(this.db, workDir);
|
|
1059
|
-
const changesResult = await changesService.getChanges(executionId);
|
|
1060
|
-
if (changesResult.available && changesResult.captured) {
|
|
1061
|
-
const filePaths = changesResult.captured.files.map((f) => f.path);
|
|
1062
|
-
filesChangedJson = JSON.stringify(filePaths);
|
|
1063
|
-
console.log(`[AcpExecutorWrapper] Captured ${filePaths.length} file changes for execution ${executionId}`);
|
|
1064
|
-
}
|
|
1065
|
-
}
|
|
1066
|
-
catch (error) {
|
|
1067
|
-
console.warn(`[AcpExecutorWrapper] Failed to calculate files_changed for execution ${executionId}:`, error instanceof Error ? error.message : String(error));
|
|
1068
|
-
}
|
|
1069
|
-
// Update execution status
|
|
1070
|
-
updateExecution(this.db, executionId, {
|
|
1071
|
-
after_commit: afterCommit,
|
|
1072
|
-
files_changed: filesChangedJson,
|
|
1073
|
-
status: "completed",
|
|
1074
|
-
completed_at: new Date().toISOString(),
|
|
1075
|
-
exit_code: 0,
|
|
1076
|
-
});
|
|
1077
|
-
const updatedExecution = getExecution(this.db, executionId);
|
|
1078
|
-
if (updatedExecution) {
|
|
1079
|
-
broadcastExecutionUpdate(this.projectId, executionId, "status_changed", updatedExecution, updatedExecution.issue_id || undefined);
|
|
1080
|
-
// Notify callbacks for workflow integration
|
|
1081
|
-
await notifyExecutionEvent("completed", {
|
|
1082
|
-
executionId,
|
|
1083
|
-
workflowId: updatedExecution.workflow_execution_id ?? undefined,
|
|
1084
|
-
issueId: updatedExecution.issue_id ?? undefined,
|
|
1085
|
-
});
|
|
1086
|
-
}
|
|
1087
|
-
}
|
|
1088
|
-
/**
|
|
1089
|
-
* Handle execution error
|
|
1090
|
-
*/
|
|
1091
|
-
async handleError(executionId, error, workDir) {
|
|
1092
|
-
console.error(`[AcpExecutorWrapper] Execution ${executionId} failed:`, error);
|
|
1093
|
-
// Calculate file changes even for failed executions
|
|
1094
|
-
let filesChangedJson = null;
|
|
1095
|
-
try {
|
|
1096
|
-
const changesService = new ExecutionChangesService(this.db, workDir);
|
|
1097
|
-
const changesResult = await changesService.getChanges(executionId);
|
|
1098
|
-
if (changesResult.available && changesResult.captured) {
|
|
1099
|
-
const filePaths = changesResult.captured.files.map((f) => f.path);
|
|
1100
|
-
filesChangedJson = JSON.stringify(filePaths);
|
|
1101
|
-
}
|
|
1102
|
-
}
|
|
1103
|
-
catch (calcError) {
|
|
1104
|
-
console.warn(`[AcpExecutorWrapper] Failed to calculate files_changed for failed execution ${executionId}:`, calcError instanceof Error ? calcError.message : String(calcError));
|
|
1105
|
-
}
|
|
1106
|
-
// Update execution status
|
|
1107
|
-
updateExecution(this.db, executionId, {
|
|
1108
|
-
status: "failed",
|
|
1109
|
-
completed_at: new Date().toISOString(),
|
|
1110
|
-
error_message: error.message,
|
|
1111
|
-
files_changed: filesChangedJson,
|
|
1112
|
-
});
|
|
1113
|
-
const execution = getExecution(this.db, executionId);
|
|
1114
|
-
if (execution) {
|
|
1115
|
-
broadcastExecutionUpdate(this.projectId, executionId, "status_changed", execution, execution.issue_id || undefined);
|
|
1116
|
-
// Notify callbacks for workflow integration
|
|
1117
|
-
await notifyExecutionEvent("failed", {
|
|
1118
|
-
executionId,
|
|
1119
|
-
workflowId: execution.workflow_execution_id ?? undefined,
|
|
1120
|
-
issueId: execution.issue_id ?? undefined,
|
|
1121
|
-
error: error.message,
|
|
1122
|
-
});
|
|
1123
|
-
}
|
|
1124
|
-
}
|
|
1125
|
-
}
|
|
1126
|
-
//# sourceMappingURL=acp-executor-wrapper.js.map
|