@shepai/cli 1.17.0 → 1.19.0

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.
Files changed (119) hide show
  1. package/dist/eslint.config.mjs +8 -1
  2. package/dist/src/application/ports/output/agents/agent-executor.interface.d.ts +4 -0
  3. package/dist/src/application/ports/output/agents/agent-executor.interface.d.ts.map +1 -1
  4. package/dist/src/domain/factories/settings-defaults.factory.js +2 -2
  5. package/dist/src/domain/generated/output.d.ts +8 -1
  6. package/dist/src/domain/generated/output.d.ts.map +1 -1
  7. package/dist/src/domain/generated/output.js +8 -0
  8. package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  9. package/dist/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
  10. package/dist/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +4 -0
  11. package/dist/src/infrastructure/services/agents/feature-agent/nodes/implement.node.d.ts.map +1 -1
  12. package/dist/src/infrastructure/services/agents/feature-agent/nodes/implement.node.js +13 -3
  13. package/dist/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +35 -1
  14. package/dist/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  15. package/dist/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +96 -1
  16. package/dist/src/infrastructure/services/ide-launchers/antigravity.launcher.d.ts +10 -0
  17. package/dist/src/infrastructure/services/ide-launchers/antigravity.launcher.d.ts.map +1 -0
  18. package/dist/src/infrastructure/services/ide-launchers/antigravity.launcher.js +21 -0
  19. package/dist/src/infrastructure/services/ide-launchers/cursor.launcher.d.ts +10 -0
  20. package/dist/src/infrastructure/services/ide-launchers/cursor.launcher.d.ts.map +1 -0
  21. package/dist/src/infrastructure/services/ide-launchers/cursor.launcher.js +21 -0
  22. package/dist/src/infrastructure/services/ide-launchers/ide-launcher.interface.d.ts +31 -0
  23. package/dist/src/infrastructure/services/ide-launchers/ide-launcher.interface.d.ts.map +1 -0
  24. package/dist/src/infrastructure/services/ide-launchers/ide-launcher.interface.js +8 -0
  25. package/dist/src/infrastructure/services/ide-launchers/ide-launcher.registry.d.ts +9 -0
  26. package/dist/src/infrastructure/services/ide-launchers/ide-launcher.registry.d.ts.map +1 -0
  27. package/dist/src/infrastructure/services/ide-launchers/ide-launcher.registry.js +24 -0
  28. package/dist/src/infrastructure/services/ide-launchers/vscode.launcher.d.ts +10 -0
  29. package/dist/src/infrastructure/services/ide-launchers/vscode.launcher.d.ts.map +1 -0
  30. package/dist/src/infrastructure/services/ide-launchers/vscode.launcher.js +21 -0
  31. package/dist/src/infrastructure/services/ide-launchers/windsurf.launcher.d.ts +10 -0
  32. package/dist/src/infrastructure/services/ide-launchers/windsurf.launcher.d.ts.map +1 -0
  33. package/dist/src/infrastructure/services/ide-launchers/windsurf.launcher.js +21 -0
  34. package/dist/src/infrastructure/services/ide-launchers/zed.launcher.d.ts +10 -0
  35. package/dist/src/infrastructure/services/ide-launchers/zed.launcher.d.ts.map +1 -0
  36. package/dist/src/infrastructure/services/ide-launchers/zed.launcher.js +21 -0
  37. package/dist/src/presentation/cli/commands/ide-open.command.d.ts +10 -0
  38. package/dist/src/presentation/cli/commands/ide-open.command.d.ts.map +1 -0
  39. package/dist/src/presentation/cli/commands/ide-open.command.js +77 -0
  40. package/dist/src/presentation/cli/commands/settings/ide.command.d.ts +15 -0
  41. package/dist/src/presentation/cli/commands/settings/ide.command.d.ts.map +1 -0
  42. package/dist/src/presentation/cli/commands/settings/ide.command.js +76 -0
  43. package/dist/src/presentation/cli/commands/settings/index.d.ts.map +1 -1
  44. package/dist/src/presentation/cli/commands/settings/index.js +3 -1
  45. package/dist/src/presentation/cli/index.js +2 -0
  46. package/dist/src/presentation/tui/prompts/ide-select.prompt.d.ts +45 -0
  47. package/dist/src/presentation/tui/prompts/ide-select.prompt.d.ts.map +1 -0
  48. package/dist/src/presentation/tui/prompts/ide-select.prompt.js +44 -0
  49. package/dist/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.js +1 -1
  50. package/dist/src/presentation/web/components/ui/alert.js +1 -1
  51. package/dist/src/presentation/web/components/ui/badge.js +4 -4
  52. package/dist/src/presentation/web/components/ui/button.js +3 -3
  53. package/dist/src/presentation/web/components/ui/sidebar.js +2 -2
  54. package/dist/tsconfig.build.tsbuildinfo +1 -1
  55. package/package.json +1 -1
  56. package/web/.next/BUILD_ID +1 -1
  57. package/web/.next/build-manifest.json +2 -2
  58. package/web/.next/cache/.previewinfo +1 -1
  59. package/web/.next/cache/.rscinfo +1 -1
  60. package/web/.next/cache/.tsbuildinfo +1 -1
  61. package/web/.next/cache/config.json +3 -3
  62. package/web/.next/fallback-build-manifest.json +2 -2
  63. package/web/.next/prerender-manifest.json +3 -3
  64. package/web/.next/required-server-files.js +1 -1
  65. package/web/.next/required-server-files.json +1 -1
  66. package/web/.next/server/app/_global-error.html +2 -2
  67. package/web/.next/server/app/_global-error.rsc +1 -1
  68. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  69. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  70. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  71. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  72. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  73. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/_not-found.html +2 -2
  75. package/web/.next/server/app/_not-found.rsc +8 -8
  76. package/web/.next/server/app/_not-found.segments/_full.segment.rsc +8 -8
  77. package/web/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
  78. package/web/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  79. package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  80. package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  81. package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  82. package/web/.next/server/app/index.html +2 -2
  83. package/web/.next/server/app/index.rsc +3 -3
  84. package/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  85. package/web/.next/server/app/index.segments/_full.segment.rsc +3 -3
  86. package/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  87. package/web/.next/server/app/index.segments/_index.segment.rsc +2 -2
  88. package/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  89. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  91. package/web/.next/server/app/version.html +2 -2
  92. package/web/.next/server/app/version.rsc +3 -3
  93. package/web/.next/server/app/version.segments/_full.segment.rsc +3 -3
  94. package/web/.next/server/app/version.segments/_head.segment.rsc +1 -1
  95. package/web/.next/server/app/version.segments/_index.segment.rsc +2 -2
  96. package/web/.next/server/app/version.segments/_tree.segment.rsc +1 -1
  97. package/web/.next/server/app/version.segments/version/__PAGE__.segment.rsc +2 -2
  98. package/web/.next/server/app/version.segments/version.segment.rsc +1 -1
  99. package/web/.next/server/chunks/ssr/_0f02ab66._.js +1 -1
  100. package/web/.next/server/chunks/ssr/_0f02ab66._.js.map +1 -1
  101. package/web/.next/server/chunks/ssr/_19be0743._.js +1 -1
  102. package/web/.next/server/chunks/ssr/_4582f3c3._.js +1 -1
  103. package/web/.next/server/chunks/ssr/_4582f3c3._.js.map +1 -1
  104. package/web/.next/server/chunks/ssr/_a0c04017._.js +1 -1
  105. package/web/.next/server/chunks/ssr/_a0c04017._.js.map +1 -1
  106. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_version_version-page-client_tsx_fe9db753._.js +1 -1
  107. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_version_version-page-client_tsx_fe9db753._.js.map +1 -1
  108. package/web/.next/server/pages/404.html +2 -2
  109. package/web/.next/server/pages/500.html +2 -2
  110. package/web/.next/server/server-reference-manifest.js +1 -1
  111. package/web/.next/server/server-reference-manifest.json +1 -1
  112. package/web/.next/static/chunks/{5130d7093ad39f4a.js → 26d260496abf3ed8.js} +1 -1
  113. package/web/.next/static/chunks/{ef1296dbe67d5aae.js → 8353f5690707d9a5.js} +1 -1
  114. package/web/.next/static/chunks/{523c5cfe0570712c.js → f74cb59a5a6c94f1.js} +1 -1
  115. package/web/.next/trace +1 -1
  116. package/web/.next/trace-build +1 -1
  117. /package/web/.next/static/{Wgd1DC_QfVhpAi62LjpwI → nw4IT0rr_mE5Tx22X9OgO}/_buildManifest.js +0 -0
  118. /package/web/.next/static/{Wgd1DC_QfVhpAi62LjpwI → nw4IT0rr_mE5Tx22X9OgO}/_clientMiddlewareManifest.json +0 -0
  119. /package/web/.next/static/{Wgd1DC_QfVhpAi62LjpwI → nw4IT0rr_mE5Tx22X9OgO}/_ssgManifest.js +0 -0
@@ -8,6 +8,8 @@
8
8
  * @see https://eslint.org/docs/latest/use/configure/configuration-files
9
9
  * @see https://typescript-eslint.io/getting-started/
10
10
  */
11
+ import { dirname } from 'node:path';
12
+ import { fileURLToPath } from 'node:url';
11
13
  import eslint from '@eslint/js';
12
14
  import tseslint from 'typescript-eslint';
13
15
  import prettierConfig from 'eslint-config-prettier';
@@ -16,6 +18,7 @@ import reactHooksPlugin from 'eslint-plugin-react-hooks';
16
18
  import nextPlugin from '@next/eslint-plugin-next';
17
19
  import tailwindPlugin from 'eslint-plugin-tailwindcss';
18
20
  import storybookPlugin from 'eslint-plugin-storybook';
21
+ const __dirname = dirname(fileURLToPath(import.meta.url));
19
22
  export default tseslint.config(
20
23
  // =============================================================================
21
24
  // Global ignores (replaces .eslintignore)
@@ -193,6 +196,9 @@ eslint.configs.recommended,
193
196
  react: {
194
197
  version: 'detect',
195
198
  },
199
+ tailwindcss: {
200
+ config: `${__dirname}/src/presentation/web/app/globals.css`,
201
+ },
196
202
  },
197
203
  rules: {
198
204
  // React rules
@@ -216,7 +222,8 @@ eslint.configs.recommended,
216
222
  '@next/next/no-img-element': 'warn',
217
223
  '@next/next/no-sync-scripts': 'error',
218
224
  // Tailwind CSS rules
219
- 'tailwindcss/classnames-order': 'warn',
225
+ // Class sorting is handled by prettier-plugin-tailwindcss
226
+ 'tailwindcss/classnames-order': 'off',
220
227
  'tailwindcss/no-contradicting-classname': 'error',
221
228
  'tailwindcss/no-unnecessary-arbitrary-value': 'warn',
222
229
  'tailwindcss/enforces-shorthand': 'warn',
@@ -70,6 +70,10 @@ export interface AgentExecutionOptions {
70
70
  timeout?: number;
71
71
  /** Suppress executor debug logging (e.g. for quick foreground calls) */
72
72
  silent?: boolean;
73
+ /** When true, adds --strict-mcp-config to disable all MCP tools */
74
+ disableMcp?: boolean;
75
+ /** Restrict available built-in tools via --tools flag */
76
+ tools?: string[];
73
77
  }
74
78
  /**
75
79
  * Port interface for executing prompts against an AI agent.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-executor.interface.d.ts","sourceRoot":"","sources":["../../../../../../src/application/ports/output/agents/agent-executor.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,2DAA2D;IAC3D,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtC,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAExF;;;;;;OAMG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;CACjD"}
1
+ {"version":3,"file":"agent-executor.interface.d.ts","sourceRoot":"","sources":["../../../../../../src/application/ports/output/agents/agent-executor.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,2DAA2D;IAC3D,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtC,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAExF;;;;;;OAMG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;CACjD"}
@@ -12,7 +12,7 @@
12
12
  * - Unique IDs and timestamps generated for each instance
13
13
  */
14
14
  import { randomUUID } from 'node:crypto';
15
- import { AgentType, AgentAuthMethod } from '../generated/output.js';
15
+ import { AgentType, AgentAuthMethod, EditorType } from '../generated/output.js';
16
16
  /**
17
17
  * Default AI model for all SDLC agents.
18
18
  * Provides balanced performance and cost for all workflow stages.
@@ -22,7 +22,7 @@ const DEFAULT_MODEL = 'claude-sonnet-4-5';
22
22
  * Default code editor preference.
23
23
  * Most widely used editor in the development community.
24
24
  */
25
- const DEFAULT_EDITOR = 'vscode';
25
+ const DEFAULT_EDITOR = EditorType.VsCode;
26
26
  /**
27
27
  * Default shell preference.
28
28
  * Most common shell across Unix-like systems.
@@ -266,6 +266,13 @@ export type UserProfile = {
266
266
  */
267
267
  githubUsername?: string;
268
268
  };
269
+ export declare enum EditorType {
270
+ VsCode = "vscode",
271
+ Cursor = "cursor",
272
+ Windsurf = "windsurf",
273
+ Zed = "zed",
274
+ Antigravity = "antigravity"
275
+ }
269
276
  /**
270
277
  * Environment and tooling preferences
271
278
  */
@@ -273,7 +280,7 @@ export type EnvironmentConfig = {
273
280
  /**
274
281
  * Preferred code editor
275
282
  */
276
- defaultEditor: string;
283
+ defaultEditor: EditorType;
277
284
  /**
278
285
  * Preferred shell
279
286
  */
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/domain/generated/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/domain/generated/output.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,14 @@ export var ResearchState;
34
34
  ResearchState["Running"] = "Running";
35
35
  ResearchState["Finished"] = "Finished";
36
36
  })(ResearchState || (ResearchState = {}));
37
+ export var EditorType;
38
+ (function (EditorType) {
39
+ EditorType["VsCode"] = "vscode";
40
+ EditorType["Cursor"] = "cursor";
41
+ EditorType["Windsurf"] = "windsurf";
42
+ EditorType["Zed"] = "zed";
43
+ EditorType["Antigravity"] = "antigravity";
44
+ })(EditorType || (EditorType = {}));
37
45
  export var AgentType;
38
46
  (function (AgentType) {
39
47
  AgentType["ClaudeCode"] = "claude-code";
@@ -1 +1 @@
1
- {"version":3,"file":"settings.mapper.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/persistence/sqlite/mappers/settings.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAGvE;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IAGxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAiC1D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,QAAQ,CAyCvD"}
1
+ {"version":3,"file":"settings.mapper.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/persistence/sqlite/mappers/settings.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAOvE;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IAGxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAiC1D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,QAAQ,CAyCvD"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../src/infrastructure/services/agents/common/executors/claude-code-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,cAAc;IAMlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IALlC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAA8B;IAE3D,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAAS;gBAEM,KAAK,EAAE,aAAa;IAEjD,4EAA4E;IAC5E,OAAO,CAAC,GAAG;IAML,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmHtF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IA+F3C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmCtB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI/C,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,eAAe;CAkExB"}
1
+ {"version":3,"file":"claude-code-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../src/infrastructure/services/agents/common/executors/claude-code-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,cAAc;IAMlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IALlC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAA8B;IAE3D,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAAS;gBAEM,KAAK,EAAE,aAAa;IAEjD,4EAA4E;IAC5E,OAAO,CAAC,GAAG;IAML,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmHtF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IA+F3C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmCtB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI/C,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,eAAe;CAkExB"}
@@ -269,6 +269,10 @@ export class ClaudeCodeExecutorService {
269
269
  args.push('--json-schema', JSON.stringify(options.outputSchema));
270
270
  if (options?.maxTurns)
271
271
  args.push('--max-turns', String(options.maxTurns));
272
+ if (options?.disableMcp)
273
+ args.push('--strict-mcp-config');
274
+ if (options?.tools?.length)
275
+ args.push('--tools', options.tools.join(','));
272
276
  return args;
273
277
  }
274
278
  buildStreamArgs(prompt, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"implement.node.d.ts","sourceRoot":"","sources":["../../../../../../../src/infrastructure/services/agents/feature-agent/nodes/implement.node.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA4DrD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,IAG5C,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAoJ7E"}
1
+ {"version":3,"file":"implement.node.d.ts","sourceRoot":"","sources":["../../../../../../../src/infrastructure/services/agents/feature-agent/nodes/implement.node.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA+DrD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,IAG5C,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAgK7E"}
@@ -10,7 +10,7 @@ import yaml from 'js-yaml';
10
10
  import { writeFileSync } from 'node:fs';
11
11
  import { join } from 'node:path';
12
12
  import { interrupt, isGraphBubbleUp } from '@langchain/langgraph';
13
- import { createNodeLogger, readSpecFile, buildExecutorOptions, shouldInterrupt, safeYamlLoad, } from './node-helpers.js';
13
+ import { createNodeLogger, readSpecFile, buildExecutorOptions, shouldInterrupt, safeYamlLoad, retryExecute, getCompletedPhases, markPhaseComplete, } from './node-helpers.js';
14
14
  import { reportNodeStart } from '../heartbeat.js';
15
15
  import { buildImplementPhasePrompt, } from './prompts/implement.prompt.js';
16
16
  /**
@@ -71,6 +71,9 @@ export function createImplementNode(executor) {
71
71
  const totalTasks = tasksData.tasks.length;
72
72
  let completedTasks = 0;
73
73
  const totalPhases = planData.phases.length;
74
+ // --- Check for completed phases (skip on resume) ---
75
+ const completedPhaseIds = getCompletedPhases(state.specDir);
76
+ const retryOpts = { logger: log };
74
77
  // --- Execute phases in order ---
75
78
  for (let i = 0; i < totalPhases; i++) {
76
79
  const phase = planData.phases[i];
@@ -81,6 +84,12 @@ export function createImplementNode(executor) {
81
84
  .map((id) => taskMap.get(id))
82
85
  .filter((t) => t !== undefined)
83
86
  : tasksData.tasks.filter((t) => t.phaseId === phase.id);
87
+ // Skip already-completed phases
88
+ if (completedPhaseIds.includes(phase.id)) {
89
+ completedTasks += phaseTasks.length;
90
+ log.info(`Phase ${phase.id} "${phase.name}" — already complete, skipping`);
91
+ continue;
92
+ }
84
93
  if (phaseTasks.length === 0) {
85
94
  log.info(`Phase ${phase.id} "${phase.name}" — no tasks, skipping`);
86
95
  continue;
@@ -99,7 +108,7 @@ export function createImplementNode(executor) {
99
108
  };
100
109
  const prompt = buildImplementPhasePrompt(state, singleTaskPhase, [task], promptContext);
101
110
  log.info(` [parallel] Task ${task.id}: "${task.title}" — ${prompt.length} chars`);
102
- return executor.execute(prompt, options);
111
+ return retryExecute(executor, prompt, options, retryOpts);
103
112
  }));
104
113
  for (let j = 0; j < results.length; j++) {
105
114
  log.info(` [parallel] Task ${phaseTasks[j].id} complete (${results[j].result.length} chars)`);
@@ -109,10 +118,11 @@ export function createImplementNode(executor) {
109
118
  // Sequential: single executor call with all phase tasks
110
119
  const prompt = buildImplementPhasePrompt(state, phase, phaseTasks, promptContext);
111
120
  log.info(`Executing phase prompt — ${prompt.length} chars`);
112
- const result = await executor.execute(prompt, options);
121
+ const result = await retryExecute(executor, prompt, options, retryOpts);
113
122
  log.info(`Phase complete (${result.result.length} chars)`);
114
123
  }
115
124
  completedTasks += phaseTasks.length;
125
+ markPhaseComplete(state.specDir, phase.id, log);
116
126
  const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
117
127
  messages.push(`[implement] Phase ${phase.id} "${phase.name}" — ${phaseTasks.length} task(s) done (${elapsed}s)`);
118
128
  updateFeatureProgress(state.specDir, completedTasks, totalTasks, `implementing-${phase.id}`, null, log);
@@ -4,7 +4,7 @@
4
4
  * Provides consistent logging, spec file reading, executor invocation,
5
5
  * and error handling so every node follows the same patterns.
6
6
  */
7
- import type { IAgentExecutor, AgentExecutionOptions } from '../../../../../application/ports/output/agents/agent-executor.interface.js';
7
+ import type { IAgentExecutor, AgentExecutionOptions, AgentExecutionResult } from '../../../../../application/ports/output/agents/agent-executor.interface.js';
8
8
  import type { FeatureAgentState } from '../state.js';
9
9
  /**
10
10
  * Create a scoped logger that prefixes messages with the node name.
@@ -34,6 +34,40 @@ export declare function safeYamlLoad(content: string): unknown;
34
34
  * for human approval given the configured approval mode.
35
35
  */
36
36
  export declare function shouldInterrupt(nodeName: string, approvalMode: string | undefined): boolean;
37
+ export type ErrorCategory = 'retryable-api' | 'retryable-network' | 'non-retryable' | 'unknown';
38
+ /**
39
+ * Classify an error message into a retry category.
40
+ *
41
+ * - **retryable-api**: Transient API errors (rate-limit, overload, bad request)
42
+ * - **retryable-network**: Network-level failures (DNS, timeouts, connection refused)
43
+ * - **non-retryable**: Logic / filesystem / syntax errors that won't resolve on retry
44
+ * - **unknown**: Anything unrecognised (callers may choose to retry cautiously)
45
+ */
46
+ export declare function classifyError(errorMessage: string): ErrorCategory;
47
+ export interface RetryOptions {
48
+ /** Maximum number of execution attempts (default 3). */
49
+ maxAttempts?: number;
50
+ /** Base delay in ms before the first retry (default 2000). Doubles each retry. */
51
+ baseDelayMs?: number;
52
+ /** Optional logger for retry messages. */
53
+ logger?: NodeLogger;
54
+ }
55
+ /**
56
+ * Execute a prompt via the given executor with automatic retry and
57
+ * exponential back-off for transient errors.
58
+ *
59
+ * Non-retryable errors are thrown immediately. Unknown errors are
60
+ * retried (conservative stance: could be transient).
61
+ */
62
+ export declare function retryExecute(executor: IAgentExecutor, prompt: string, options: AgentExecutionOptions, retryOpts?: RetryOptions): Promise<AgentExecutionResult>;
63
+ /**
64
+ * Read completed phases from feature.yaml.
65
+ */
66
+ export declare function getCompletedPhases(specDir: string): string[];
67
+ /**
68
+ * Mark a phase as complete in feature.yaml by adding its ID to completedPhases.
69
+ */
70
+ export declare function markPhaseComplete(specDir: string, phaseId: string, log?: NodeLogger): void;
37
71
  /**
38
72
  * Execute a node with consistent logging and error handling.
39
73
  *
@@ -1 +1 @@
1
- {"version":3,"file":"node-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../src/infrastructure/services/agents/feature-agent/nodes/node-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACtB,MAAM,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM;kBAE/B,MAAM,GAAG,IAAI;mBAIZ,MAAM,GAAG,IAAI;EAK/B;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,CAIpF;AAeD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQrD;AAUD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI3F;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,KAAK,MAAM,GACjE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAgDnE"}
1
+ {"version":3,"file":"node-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../src/infrastructure/services/agents/feature-agent/nodes/node-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM;kBAE/B,MAAM,GAAG,IAAI;mBAIZ,MAAM,GAAG,IAAI;EAK/B;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,CAMpF;AAeD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQrD;AAUD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI3F;AAMD,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,mBAAmB,GAAG,eAAe,GAAG,SAAS,CAAC;AAMhG;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAKjE;AAED,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB,EAC9B,SAAS,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,oBAAoB,CAAC,CA6B/B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAW5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAwB1F;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,KAAK,MAAM,GACjE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAgDnE"}
@@ -5,7 +5,7 @@
5
5
  * and error handling so every node follows the same patterns.
6
6
  */
7
7
  import yaml from 'js-yaml';
8
- import { readFileSync } from 'node:fs';
8
+ import { readFileSync, writeFileSync } from 'node:fs';
9
9
  import { join } from 'node:path';
10
10
  import { interrupt, isGraphBubbleUp } from '@langchain/langgraph';
11
11
  import { reportNodeStart } from '../heartbeat.js';
@@ -42,6 +42,8 @@ export function readSpecFile(specDir, filename) {
42
42
  export function buildExecutorOptions(state) {
43
43
  return {
44
44
  cwd: state.worktreePath || state.repositoryPath,
45
+ maxTurns: 50,
46
+ disableMcp: true,
45
47
  };
46
48
  }
47
49
  /**
@@ -85,6 +87,99 @@ export function shouldInterrupt(nodeName, approvalMode) {
85
87
  const autoApproved = AUTO_APPROVED_NODES[approvalMode] ?? [];
86
88
  return !autoApproved.includes(nodeName);
87
89
  }
90
+ const API_ERROR_RE = /API Error: (400|429|5\d{2})/;
91
+ const NETWORK_ERROR_RE = /ECONNREFUSED|ETIMEDOUT|ENOTFOUND|timed out/i;
92
+ const NON_RETRYABLE_RE = /Process exited with code|ENOENT|SyntaxError/;
93
+ /**
94
+ * Classify an error message into a retry category.
95
+ *
96
+ * - **retryable-api**: Transient API errors (rate-limit, overload, bad request)
97
+ * - **retryable-network**: Network-level failures (DNS, timeouts, connection refused)
98
+ * - **non-retryable**: Logic / filesystem / syntax errors that won't resolve on retry
99
+ * - **unknown**: Anything unrecognised (callers may choose to retry cautiously)
100
+ */
101
+ export function classifyError(errorMessage) {
102
+ if (API_ERROR_RE.test(errorMessage))
103
+ return 'retryable-api';
104
+ if (NETWORK_ERROR_RE.test(errorMessage))
105
+ return 'retryable-network';
106
+ if (NON_RETRYABLE_RE.test(errorMessage))
107
+ return 'non-retryable';
108
+ return 'unknown';
109
+ }
110
+ /**
111
+ * Execute a prompt via the given executor with automatic retry and
112
+ * exponential back-off for transient errors.
113
+ *
114
+ * Non-retryable errors are thrown immediately. Unknown errors are
115
+ * retried (conservative stance: could be transient).
116
+ */
117
+ export async function retryExecute(executor, prompt, options, retryOpts) {
118
+ const maxAttempts = retryOpts?.maxAttempts ?? 3;
119
+ const baseDelayMs = retryOpts?.baseDelayMs ?? 2000;
120
+ const log = retryOpts?.logger;
121
+ let lastError;
122
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
123
+ try {
124
+ return await executor.execute(prompt, options);
125
+ }
126
+ catch (err) {
127
+ lastError = err instanceof Error ? err : new Error(String(err));
128
+ const category = classifyError(lastError.message);
129
+ if (category === 'non-retryable') {
130
+ throw lastError;
131
+ }
132
+ if (attempt < maxAttempts) {
133
+ const delayMs = baseDelayMs * Math.pow(2, attempt - 1);
134
+ log?.info(`Attempt ${attempt}/${maxAttempts} failed (${category}), retrying in ${delayMs}ms`);
135
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
136
+ }
137
+ }
138
+ }
139
+ throw lastError;
140
+ }
141
+ /**
142
+ * Read completed phases from feature.yaml.
143
+ */
144
+ export function getCompletedPhases(specDir) {
145
+ const content = readSpecFile(specDir, 'feature.yaml');
146
+ if (!content)
147
+ return [];
148
+ try {
149
+ const data = yaml.load(content);
150
+ const status = (data?.status ?? {});
151
+ const phases = status.completedPhases;
152
+ return Array.isArray(phases) ? phases : [];
153
+ }
154
+ catch {
155
+ return [];
156
+ }
157
+ }
158
+ /**
159
+ * Mark a phase as complete in feature.yaml by adding its ID to completedPhases.
160
+ */
161
+ export function markPhaseComplete(specDir, phaseId, log) {
162
+ try {
163
+ const content = readSpecFile(specDir, 'feature.yaml');
164
+ if (!content)
165
+ return;
166
+ const data = yaml.load(content);
167
+ if (!data || typeof data !== 'object')
168
+ return;
169
+ const status = (data.status ?? {});
170
+ const completedPhases = Array.isArray(status.completedPhases)
171
+ ? [...status.completedPhases]
172
+ : [];
173
+ if (!completedPhases.includes(phaseId)) {
174
+ completedPhases.push(phaseId);
175
+ }
176
+ data.status = { ...status, completedPhases };
177
+ writeFileSync(join(specDir, 'feature.yaml'), yaml.dump(data, { indent: 2, lineWidth: -1 }), 'utf-8');
178
+ }
179
+ catch (err) {
180
+ log?.error(`Failed to mark phase complete: ${err instanceof Error ? err.message : String(err)}`);
181
+ }
182
+ }
88
183
  /**
89
184
  * Execute a node with consistent logging and error handling.
90
185
  *
@@ -0,0 +1,10 @@
1
+ import { EditorType } from '../../../domain/generated/output.js';
2
+ import type { IdeLauncher } from './ide-launcher.interface';
3
+ export declare class AntigravityLauncher implements IdeLauncher {
4
+ readonly name = "Antigravity";
5
+ readonly editorId = EditorType.Antigravity;
6
+ readonly binary = "antigravity";
7
+ launch(path: string): Promise<void>;
8
+ checkAvailable(): Promise<boolean>;
9
+ }
10
+ //# sourceMappingURL=antigravity.launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity.launcher.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/services/ide-launchers/antigravity.launcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,mBAAoB,YAAW,WAAW;IACrD,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,QAAQ,0BAA0B;IAC3C,QAAQ,CAAC,MAAM,iBAAiB;IAE1B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAOnC"}
@@ -0,0 +1,21 @@
1
+ import { spawn, execFile } from 'node:child_process';
2
+ import { EditorType } from '../../../domain/generated/output.js';
3
+ export class AntigravityLauncher {
4
+ name = 'Antigravity';
5
+ editorId = EditorType.Antigravity;
6
+ binary = 'antigravity';
7
+ async launch(path) {
8
+ const child = spawn(this.binary, [path], {
9
+ detached: true,
10
+ stdio: 'ignore',
11
+ });
12
+ child.unref();
13
+ }
14
+ checkAvailable() {
15
+ return new Promise((resolve) => {
16
+ execFile('which', [this.binary], (err) => {
17
+ resolve(!err);
18
+ });
19
+ });
20
+ }
21
+ }
@@ -0,0 +1,10 @@
1
+ import { EditorType } from '../../../domain/generated/output.js';
2
+ import type { IdeLauncher } from './ide-launcher.interface';
3
+ export declare class CursorLauncher implements IdeLauncher {
4
+ readonly name = "Cursor";
5
+ readonly editorId = EditorType.Cursor;
6
+ readonly binary = "cursor";
7
+ launch(path: string): Promise<void>;
8
+ checkAvailable(): Promise<boolean>;
9
+ }
10
+ //# sourceMappingURL=cursor.launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.launcher.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/services/ide-launchers/cursor.launcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,QAAQ,qBAAqB;IACtC,QAAQ,CAAC,MAAM,YAAY;IAErB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAOnC"}
@@ -0,0 +1,21 @@
1
+ import { spawn, execFile } from 'node:child_process';
2
+ import { EditorType } from '../../../domain/generated/output.js';
3
+ export class CursorLauncher {
4
+ name = 'Cursor';
5
+ editorId = EditorType.Cursor;
6
+ binary = 'cursor';
7
+ async launch(path) {
8
+ const child = spawn(this.binary, [path], {
9
+ detached: true,
10
+ stdio: 'ignore',
11
+ });
12
+ child.unref();
13
+ }
14
+ checkAvailable() {
15
+ return new Promise((resolve) => {
16
+ execFile('which', [this.binary], (err) => {
17
+ resolve(!err);
18
+ });
19
+ });
20
+ }
21
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Interface for IDE launcher implementations.
3
+ *
4
+ * Each supported IDE (VS Code, Cursor, Windsurf, Zed, Antigravity) provides
5
+ * its own implementation of this interface. Launchers are responsible for
6
+ * spawning a detached editor process and checking binary availability.
7
+ */
8
+ import type { EditorType } from '../../../domain/generated/output.js';
9
+ export interface IdeLauncher {
10
+ /** Display name shown to the user (e.g., "VS Code"). */
11
+ readonly name: string;
12
+ /** Editor identifier matching the EditorType enum value. */
13
+ readonly editorId: EditorType;
14
+ /** CLI binary used to launch the editor (e.g., "code"). */
15
+ readonly binary: string;
16
+ /**
17
+ * Open the IDE at the given filesystem path.
18
+ *
19
+ * Spawns a detached process so the CLI does not block.
20
+ *
21
+ * @param path - Absolute path to the file or directory to open.
22
+ */
23
+ launch(path: string): Promise<void>;
24
+ /**
25
+ * Check whether the IDE binary is available on the system PATH.
26
+ *
27
+ * @returns `true` if the binary can be found and executed, `false` otherwise.
28
+ */
29
+ checkAvailable(): Promise<boolean>;
30
+ }
31
+ //# sourceMappingURL=ide-launcher.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ide-launcher.interface.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/services/ide-launchers/ide-launcher.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAE9B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACpC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Interface for IDE launcher implementations.
3
+ *
4
+ * Each supported IDE (VS Code, Cursor, Windsurf, Zed, Antigravity) provides
5
+ * its own implementation of this interface. Launchers are responsible for
6
+ * spawning a detached editor process and checking binary availability.
7
+ */
8
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { EditorType } from '../../../domain/generated/output.js';
2
+ import type { IdeLauncher } from './ide-launcher.interface.js';
3
+ /**
4
+ * Create a registry of all supported IDE launchers, keyed by EditorType.
5
+ *
6
+ * @returns A Map from EditorType to its IdeLauncher instance.
7
+ */
8
+ export declare function createLauncherRegistry(): Map<EditorType, IdeLauncher>;
9
+ //# sourceMappingURL=ide-launcher.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ide-launcher.registry.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/services/ide-launchers/ide-launcher.registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAO/D;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAcrE"}
@@ -0,0 +1,24 @@
1
+ import { AntigravityLauncher } from './antigravity.launcher.js';
2
+ import { CursorLauncher } from './cursor.launcher.js';
3
+ import { VsCodeLauncher } from './vscode.launcher.js';
4
+ import { WindsurfLauncher } from './windsurf.launcher.js';
5
+ import { ZedLauncher } from './zed.launcher.js';
6
+ /**
7
+ * Create a registry of all supported IDE launchers, keyed by EditorType.
8
+ *
9
+ * @returns A Map from EditorType to its IdeLauncher instance.
10
+ */
11
+ export function createLauncherRegistry() {
12
+ const launchers = [
13
+ new VsCodeLauncher(),
14
+ new CursorLauncher(),
15
+ new WindsurfLauncher(),
16
+ new ZedLauncher(),
17
+ new AntigravityLauncher(),
18
+ ];
19
+ const registry = new Map();
20
+ for (const launcher of launchers) {
21
+ registry.set(launcher.editorId, launcher);
22
+ }
23
+ return registry;
24
+ }
@@ -0,0 +1,10 @@
1
+ import { EditorType } from '../../../domain/generated/output.js';
2
+ import type { IdeLauncher } from './ide-launcher.interface';
3
+ export declare class VsCodeLauncher implements IdeLauncher {
4
+ readonly name = "VS Code";
5
+ readonly editorId = EditorType.VsCode;
6
+ readonly binary = "code";
7
+ launch(path: string): Promise<void>;
8
+ checkAvailable(): Promise<boolean>;
9
+ }
10
+ //# sourceMappingURL=vscode.launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vscode.launcher.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/services/ide-launchers/vscode.launcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,QAAQ,qBAAqB;IACtC,QAAQ,CAAC,MAAM,UAAU;IAEnB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAOnC"}