clavix 2.7.0 → 2.8.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 (165) hide show
  1. package/README.md +22 -8
  2. package/bin/clavix.js +12 -5
  3. package/dist/cli/commands/archive.d.ts +5 -4
  4. package/dist/cli/commands/archive.js +135 -161
  5. package/dist/cli/commands/config.d.ts +4 -4
  6. package/dist/cli/commands/config.js +66 -105
  7. package/dist/cli/commands/deep.d.ts +3 -3
  8. package/dist/cli/commands/deep.js +97 -103
  9. package/dist/cli/commands/execute.d.ts +4 -4
  10. package/dist/cli/commands/execute.js +57 -63
  11. package/dist/cli/commands/fast.d.ts +3 -3
  12. package/dist/cli/commands/fast.js +122 -128
  13. package/dist/cli/commands/implement.d.ts +4 -4
  14. package/dist/cli/commands/implement.js +84 -148
  15. package/dist/cli/commands/init.js +87 -126
  16. package/dist/cli/commands/list.d.ts +5 -5
  17. package/dist/cli/commands/list.js +72 -111
  18. package/dist/cli/commands/plan.d.ts +7 -7
  19. package/dist/cli/commands/plan.js +92 -131
  20. package/dist/cli/commands/prd.d.ts +4 -4
  21. package/dist/cli/commands/prd.js +76 -111
  22. package/dist/cli/commands/prompts/clear.d.ts +6 -6
  23. package/dist/cli/commands/prompts/clear.js +70 -76
  24. package/dist/cli/commands/prompts/list.js +37 -43
  25. package/dist/cli/commands/show.d.ts +4 -4
  26. package/dist/cli/commands/show.js +72 -111
  27. package/dist/cli/commands/start.d.ts +3 -3
  28. package/dist/cli/commands/start.js +63 -101
  29. package/dist/cli/commands/summarize.d.ts +4 -4
  30. package/dist/cli/commands/summarize.js +81 -120
  31. package/dist/cli/commands/task-complete.d.ts +4 -4
  32. package/dist/cli/commands/task-complete.js +86 -123
  33. package/dist/cli/commands/update.d.ts +3 -3
  34. package/dist/cli/commands/update.js +97 -130
  35. package/dist/cli/commands/version.js +13 -48
  36. package/dist/core/adapters/agents-md-generator.js +17 -50
  37. package/dist/core/adapters/amp-adapter.d.ts +1 -1
  38. package/dist/core/adapters/amp-adapter.js +13 -21
  39. package/dist/core/adapters/augment-adapter.d.ts +2 -2
  40. package/dist/core/adapters/augment-adapter.js +16 -56
  41. package/dist/core/adapters/base-adapter.d.ts +1 -1
  42. package/dist/core/adapters/base-adapter.js +11 -47
  43. package/dist/core/adapters/claude-code-adapter.d.ts +2 -2
  44. package/dist/core/adapters/claude-code-adapter.js +19 -60
  45. package/dist/core/adapters/cline-adapter.d.ts +1 -1
  46. package/dist/core/adapters/cline-adapter.js +13 -21
  47. package/dist/core/adapters/codebuddy-adapter.d.ts +2 -2
  48. package/dist/core/adapters/codebuddy-adapter.js +17 -57
  49. package/dist/core/adapters/codex-adapter.d.ts +2 -2
  50. package/dist/core/adapters/codex-adapter.js +16 -56
  51. package/dist/core/adapters/copilot-instructions-generator.js +18 -51
  52. package/dist/core/adapters/crush-adapter.d.ts +2 -2
  53. package/dist/core/adapters/crush-adapter.js +13 -20
  54. package/dist/core/adapters/cursor-adapter.d.ts +1 -1
  55. package/dist/core/adapters/cursor-adapter.js +12 -20
  56. package/dist/core/adapters/droid-adapter.d.ts +2 -2
  57. package/dist/core/adapters/droid-adapter.js +14 -21
  58. package/dist/core/adapters/gemini-adapter.d.ts +2 -2
  59. package/dist/core/adapters/gemini-adapter.js +16 -52
  60. package/dist/core/adapters/kilocode-adapter.d.ts +1 -1
  61. package/dist/core/adapters/kilocode-adapter.js +12 -20
  62. package/dist/core/adapters/octo-md-generator.js +17 -50
  63. package/dist/core/adapters/opencode-adapter.d.ts +2 -2
  64. package/dist/core/adapters/opencode-adapter.js +14 -21
  65. package/dist/core/adapters/qwen-adapter.d.ts +2 -2
  66. package/dist/core/adapters/qwen-adapter.js +16 -52
  67. package/dist/core/adapters/roocode-adapter.d.ts +2 -2
  68. package/dist/core/adapters/roocode-adapter.js +12 -19
  69. package/dist/core/adapters/warp-md-generator.js +17 -50
  70. package/dist/core/adapters/windsurf-adapter.d.ts +1 -1
  71. package/dist/core/adapters/windsurf-adapter.js +12 -20
  72. package/dist/core/agent-manager.d.ts +1 -1
  73. package/dist/core/agent-manager.js +34 -38
  74. package/dist/core/archive-manager.js +10 -46
  75. package/dist/core/config-manager.d.ts +2 -2
  76. package/dist/core/config-manager.js +3 -40
  77. package/dist/core/conversation-analyzer.d.ts +1 -1
  78. package/dist/core/conversation-analyzer.js +1 -5
  79. package/dist/core/doc-injector.js +23 -60
  80. package/dist/core/git-manager.js +11 -48
  81. package/dist/core/prd-generator.js +16 -51
  82. package/dist/core/prompt-manager.js +6 -42
  83. package/dist/core/prompt-optimizer.js +1 -5
  84. package/dist/core/question-engine.js +6 -45
  85. package/dist/core/session-manager.d.ts +1 -1
  86. package/dist/core/session-manager.js +11 -49
  87. package/dist/core/task-manager.d.ts +26 -0
  88. package/dist/core/task-manager.js +243 -101
  89. package/dist/index.d.ts +2 -1
  90. package/dist/index.js +8 -12
  91. package/dist/templates/agents/agents.md +31 -2
  92. package/dist/templates/agents/copilot-instructions.md +1 -1
  93. package/dist/templates/agents/octo.md +20 -1
  94. package/dist/templates/agents/warp.md +1 -1
  95. package/dist/templates/slash-commands/_canonical/implement.md +33 -11
  96. package/dist/types/agent.js +1 -2
  97. package/dist/types/config.js +3 -8
  98. package/dist/types/errors.js +7 -13
  99. package/dist/types/session.js +1 -2
  100. package/dist/utils/agent-error-messages.js +1 -5
  101. package/dist/utils/error-utils.js +5 -12
  102. package/dist/utils/file-system.js +20 -57
  103. package/dist/utils/legacy-command-cleanup.d.ts +1 -1
  104. package/dist/utils/legacy-command-cleanup.js +9 -45
  105. package/dist/utils/template-loader.d.ts +1 -1
  106. package/dist/utils/template-loader.js +9 -41
  107. package/dist/utils/toml-templates.js +1 -4
  108. package/package.json +12 -7
  109. package/dist/core/adapters 2/agents-md-generator.d.ts +0 -26
  110. package/dist/core/adapters 2/agents-md-generator.js +0 -102
  111. package/dist/core/adapters 2/amp-adapter.d.ts +0 -27
  112. package/dist/core/adapters 2/amp-adapter.js +0 -42
  113. package/dist/core/adapters 2/augment-adapter.d.ts +0 -22
  114. package/dist/core/adapters 2/augment-adapter.js +0 -77
  115. package/dist/core/adapters 2/base-adapter.d.ts +0 -45
  116. package/dist/core/adapters 2/base-adapter.js +0 -142
  117. package/dist/core/adapters 2/claude-code-adapter.d.ts +0 -32
  118. package/dist/core/adapters 2/claude-code-adapter.js +0 -116
  119. package/dist/core/adapters 2/cline-adapter.d.ts +0 -34
  120. package/dist/core/adapters 2/cline-adapter.js +0 -52
  121. package/dist/core/adapters 2/codebuddy-adapter.d.ts +0 -24
  122. package/dist/core/adapters 2/codebuddy-adapter.js +0 -82
  123. package/dist/core/adapters 2/codex-adapter.d.ts +0 -24
  124. package/dist/core/adapters 2/codex-adapter.js +0 -79
  125. package/dist/core/adapters 2/copilot-instructions-generator.d.ts +0 -26
  126. package/dist/core/adapters 2/copilot-instructions-generator.js +0 -104
  127. package/dist/core/adapters 2/crush-adapter.d.ts +0 -35
  128. package/dist/core/adapters 2/crush-adapter.js +0 -49
  129. package/dist/core/adapters 2/cursor-adapter.d.ts +0 -25
  130. package/dist/core/adapters 2/cursor-adapter.js +0 -40
  131. package/dist/core/adapters 2/droid-adapter.d.ts +0 -33
  132. package/dist/core/adapters 2/droid-adapter.js +0 -57
  133. package/dist/core/adapters 2/gemini-adapter.d.ts +0 -27
  134. package/dist/core/adapters 2/gemini-adapter.js +0 -90
  135. package/dist/core/adapters 2/kilocode-adapter.d.ts +0 -34
  136. package/dist/core/adapters 2/kilocode-adapter.js +0 -49
  137. package/dist/core/adapters 2/octo-md-generator.d.ts +0 -26
  138. package/dist/core/adapters 2/octo-md-generator.js +0 -102
  139. package/dist/core/adapters 2/opencode-adapter.d.ts +0 -33
  140. package/dist/core/adapters 2/opencode-adapter.js +0 -56
  141. package/dist/core/adapters 2/qwen-adapter.d.ts +0 -27
  142. package/dist/core/adapters 2/qwen-adapter.js +0 -90
  143. package/dist/core/adapters 2/roocode-adapter.d.ts +0 -40
  144. package/dist/core/adapters 2/roocode-adapter.js +0 -68
  145. package/dist/core/adapters 2/warp-md-generator.d.ts +0 -17
  146. package/dist/core/adapters 2/warp-md-generator.js +0 -88
  147. package/dist/core/adapters 2/windsurf-adapter.d.ts +0 -34
  148. package/dist/core/adapters 2/windsurf-adapter.js +0 -49
  149. package/dist/core/agent-manager 2.js +0 -126
  150. package/dist/core/agent-manager.d 2.ts +0 -51
  151. package/dist/core/archive-manager 2.js +0 -338
  152. package/dist/core/archive-manager.d 2.ts +0 -100
  153. package/dist/core/conversation-analyzer.d 2.ts +0 -86
  154. package/dist/core/doc-injector 2.js +0 -236
  155. package/dist/core/doc-injector.d 2.ts +0 -51
  156. package/dist/core/git-manager 2.js +0 -214
  157. package/dist/core/git-manager.d 2.ts +0 -100
  158. package/dist/core/prompt-optimizer 2.js +0 -963
  159. package/dist/core/prompt-optimizer.d 2.ts +0 -268
  160. package/dist/core/question-engine 2.js +0 -395
  161. package/dist/core/question-engine.d 2.ts +0 -167
  162. package/dist/core/session-manager 2.js +0 -403
  163. package/dist/core/session-manager.d 2.ts +0 -139
  164. package/dist/core/task-manager 2.js +0 -689
  165. package/dist/core/task-manager.d 2.ts +0 -155
@@ -1,70 +1,35 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.QwenAdapter = void 0;
37
- const os = __importStar(require("os"));
38
- const path = __importStar(require("path"));
39
- const base_adapter_1 = require("./base-adapter");
40
- const file_system_1 = require("../../utils/file-system");
1
+ import * as os from 'os';
2
+ import * as path from 'path';
3
+ import { BaseAdapter } from './base-adapter.js';
4
+ import { FileSystem } from '../../utils/file-system.js';
41
5
  /**
42
6
  * Qwen Code CLI adapter
43
7
  * Commands stored as TOML files under .qwen/commands/clavix by default
44
8
  */
45
- class QwenAdapter extends base_adapter_1.BaseAdapter {
9
+ export class QwenAdapter extends BaseAdapter {
10
+ options;
11
+ name = 'qwen';
12
+ displayName = 'Qwen Code';
13
+ fileExtension = '.toml';
14
+ features = {
15
+ supportsSubdirectories: true,
16
+ supportsFrontmatter: false,
17
+ argumentPlaceholder: '{{args}}',
18
+ };
46
19
  constructor(options = {}) {
47
20
  super();
48
21
  this.options = options;
49
- this.name = 'qwen';
50
- this.displayName = 'Qwen Code';
51
- this.fileExtension = '.toml';
52
- this.features = {
53
- supportsSubdirectories: true,
54
- supportsFrontmatter: false,
55
- argumentPlaceholder: '{{args}}',
56
- };
57
22
  }
58
23
  get directory() {
59
24
  const useNamespace = this.options.useNamespace ?? true;
60
25
  return useNamespace ? path.join('.qwen', 'commands', 'clavix') : path.join('.qwen', 'commands');
61
26
  }
62
27
  async detectProject() {
63
- if (await file_system_1.FileSystem.exists('.qwen')) {
28
+ if (await FileSystem.exists('.qwen')) {
64
29
  return true;
65
30
  }
66
31
  const homePath = path.join(this.getHomeDir(), '.qwen');
67
- return await file_system_1.FileSystem.exists(homePath);
32
+ return await FileSystem.exists(homePath);
68
33
  }
69
34
  getCommandPath() {
70
35
  return this.directory;
@@ -86,5 +51,4 @@ class QwenAdapter extends base_adapter_1.BaseAdapter {
86
51
  return process.env.CLAVIX_HOME_OVERRIDE || os.homedir();
87
52
  }
88
53
  }
89
- exports.QwenAdapter = QwenAdapter;
90
54
  //# sourceMappingURL=qwen-adapter.js.map
@@ -1,5 +1,5 @@
1
- import { BaseAdapter } from './base-adapter';
2
- import { CommandTemplate } from '../../types/agent';
1
+ import { BaseAdapter } from './base-adapter.js';
2
+ import { CommandTemplate } from '../../types/agent.js';
3
3
  /**
4
4
  * Roocode adapter
5
5
  * Commands stored in .roo/commands/ (flat structure, no subdirectories)
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RoocodeAdapter = void 0;
4
- const base_adapter_1 = require("./base-adapter");
5
- const file_system_1 = require("../../utils/file-system");
1
+ import { BaseAdapter } from './base-adapter.js';
2
+ import { FileSystem } from '../../utils/file-system.js';
6
3
  /**
7
4
  * Roocode adapter
8
5
  * Commands stored in .roo/commands/ (flat structure, no subdirectories)
@@ -15,24 +12,21 @@ const file_system_1 = require("../../utils/file-system");
15
12
  *
16
13
  * Reference: https://docs.roocode.com/features/slash-commands
17
14
  */
18
- class RoocodeAdapter extends base_adapter_1.BaseAdapter {
19
- constructor() {
20
- super(...arguments);
21
- this.name = 'roocode';
22
- this.displayName = 'Roocode';
23
- this.directory = '.roo/commands';
24
- this.fileExtension = '.md';
25
- this.features = {
26
- supportsSubdirectories: false,
27
- supportsFrontmatter: true,
28
- };
29
- }
15
+ export class RoocodeAdapter extends BaseAdapter {
16
+ name = 'roocode';
17
+ displayName = 'Roocode';
18
+ directory = '.roo/commands';
19
+ fileExtension = '.md';
20
+ features = {
21
+ supportsSubdirectories: false,
22
+ supportsFrontmatter: true,
23
+ };
30
24
  /**
31
25
  * Detect if Roocode is available in the project
32
26
  * Checks for .roo directory
33
27
  */
34
28
  async detectProject() {
35
- return await file_system_1.FileSystem.exists('.roo');
29
+ return await FileSystem.exists('.roo');
36
30
  }
37
31
  /**
38
32
  * Get command path for Roocode
@@ -64,5 +58,4 @@ argument-hint: <prompt>
64
58
  return frontmatter + content;
65
59
  }
66
60
  }
67
- exports.RoocodeAdapter = RoocodeAdapter;
68
61
  //# sourceMappingURL=roocode-adapter.js.map
@@ -1,61 +1,32 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.WarpMdGenerator = void 0;
37
- const file_system_1 = require("../../utils/file-system");
38
- const path = __importStar(require("path"));
1
+ import { FileSystem } from '../../utils/file-system.js';
2
+ import * as path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ import { dirname } from 'path';
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
39
7
  /**
40
8
  * Generator for Warp WARP.md file
41
9
  * Provides workflow instructions optimized for Warp users
42
10
  */
43
- class WarpMdGenerator {
11
+ export class WarpMdGenerator {
12
+ static TARGET_FILE = 'WARP.md';
13
+ static START_MARKER = '<!-- CLAVIX:START -->';
14
+ static END_MARKER = '<!-- CLAVIX:END -->';
44
15
  /**
45
16
  * Generate or update WARP.md with Clavix workflows
46
17
  */
47
18
  static async generate() {
48
19
  const templatePath = path.join(__dirname, '../../templates/agents/warp.md');
49
- if (!(await file_system_1.FileSystem.exists(templatePath))) {
20
+ if (!(await FileSystem.exists(templatePath))) {
50
21
  throw new Error(`WARP.md template not found at ${templatePath}`);
51
22
  }
52
- const template = await file_system_1.FileSystem.readFile(templatePath);
23
+ const template = await FileSystem.readFile(templatePath);
53
24
  await this.injectManagedBlock(this.TARGET_FILE, template);
54
25
  }
55
26
  static async injectManagedBlock(filePath, content) {
56
27
  let fileContent = '';
57
- if (await file_system_1.FileSystem.exists(filePath)) {
58
- fileContent = await file_system_1.FileSystem.readFile(filePath);
28
+ if (await FileSystem.exists(filePath)) {
29
+ fileContent = await FileSystem.readFile(filePath);
59
30
  }
60
31
  const blockRegex = new RegExp(`${this.escapeRegex(this.START_MARKER)}[\\s\\S]*?${this.escapeRegex(this.END_MARKER)}`, 'g');
61
32
  const wrappedContent = `${this.START_MARKER}\n${content}\n${this.END_MARKER}`;
@@ -68,21 +39,17 @@ class WarpMdGenerator {
68
39
  }
69
40
  fileContent += wrappedContent + '\n';
70
41
  }
71
- await file_system_1.FileSystem.writeFileAtomic(filePath, fileContent);
42
+ await FileSystem.writeFileAtomic(filePath, fileContent);
72
43
  }
73
44
  static escapeRegex(str) {
74
45
  return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
75
46
  }
76
47
  static async hasClavixBlock() {
77
- if (!(await file_system_1.FileSystem.exists(this.TARGET_FILE))) {
48
+ if (!(await FileSystem.exists(this.TARGET_FILE))) {
78
49
  return false;
79
50
  }
80
- const content = await file_system_1.FileSystem.readFile(this.TARGET_FILE);
51
+ const content = await FileSystem.readFile(this.TARGET_FILE);
81
52
  return content.includes(this.START_MARKER);
82
53
  }
83
54
  }
84
- exports.WarpMdGenerator = WarpMdGenerator;
85
- WarpMdGenerator.TARGET_FILE = 'WARP.md';
86
- WarpMdGenerator.START_MARKER = '<!-- CLAVIX:START -->';
87
- WarpMdGenerator.END_MARKER = '<!-- CLAVIX:END -->';
88
55
  //# sourceMappingURL=warp-md-generator.js.map
@@ -1,4 +1,4 @@
1
- import { BaseAdapter } from './base-adapter';
1
+ import { BaseAdapter } from './base-adapter.js';
2
2
  /**
3
3
  * Windsurf adapter
4
4
  * Workflows stored in .windsurf/workflows/ (supports subdirectories)
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WindsurfAdapter = void 0;
4
- const base_adapter_1 = require("./base-adapter");
5
- const file_system_1 = require("../../utils/file-system");
1
+ import { BaseAdapter } from './base-adapter.js';
2
+ import { FileSystem } from '../../utils/file-system.js';
6
3
  /**
7
4
  * Windsurf adapter
8
5
  * Workflows stored in .windsurf/workflows/ (supports subdirectories)
@@ -15,25 +12,21 @@ const file_system_1 = require("../../utils/file-system");
15
12
  *
16
13
  * Reference: https://docs.windsurf.com/windsurf/cascade/workflows
17
14
  */
18
- class WindsurfAdapter extends base_adapter_1.BaseAdapter {
19
- constructor() {
20
- super(...arguments);
21
- this.name = 'windsurf';
22
- this.displayName = 'Windsurf';
23
- this.directory = '.windsurf/workflows';
24
- this.fileExtension = '.md';
25
- this.features = {
26
- supportsSubdirectories: true,
27
- supportsFrontmatter: false,
28
- };
29
- // Uses default formatCommand and generateCommands from BaseAdapter
30
- }
15
+ export class WindsurfAdapter extends BaseAdapter {
16
+ name = 'windsurf';
17
+ displayName = 'Windsurf';
18
+ directory = '.windsurf/workflows';
19
+ fileExtension = '.md';
20
+ features = {
21
+ supportsSubdirectories: true,
22
+ supportsFrontmatter: false,
23
+ };
31
24
  /**
32
25
  * Detect if Windsurf is available in the project
33
26
  * Checks for .windsurf directory
34
27
  */
35
28
  async detectProject() {
36
- return await file_system_1.FileSystem.exists('.windsurf');
29
+ return await FileSystem.exists('.windsurf');
37
30
  }
38
31
  /**
39
32
  * Get command path for Windsurf
@@ -45,5 +38,4 @@ class WindsurfAdapter extends base_adapter_1.BaseAdapter {
45
38
  return `clavix-${name}${this.fileExtension}`;
46
39
  }
47
40
  }
48
- exports.WindsurfAdapter = WindsurfAdapter;
49
41
  //# sourceMappingURL=windsurf-adapter.js.map
@@ -1,4 +1,4 @@
1
- import { AgentAdapter, ValidationResult } from '../types/agent';
1
+ import { AgentAdapter, ValidationResult } from '../types/agent.js';
2
2
  /**
3
3
  * Agent Manager - handles agent detection and registration
4
4
  */
@@ -1,44 +1,41 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgentManager = void 0;
4
- const claude_code_adapter_1 = require("./adapters/claude-code-adapter");
5
- const cursor_adapter_1 = require("./adapters/cursor-adapter");
6
- const droid_adapter_1 = require("./adapters/droid-adapter");
7
- const opencode_adapter_1 = require("./adapters/opencode-adapter");
8
- const amp_adapter_1 = require("./adapters/amp-adapter");
9
- const crush_adapter_1 = require("./adapters/crush-adapter");
10
- const windsurf_adapter_1 = require("./adapters/windsurf-adapter");
11
- const kilocode_adapter_1 = require("./adapters/kilocode-adapter");
12
- const cline_adapter_1 = require("./adapters/cline-adapter");
13
- const roocode_adapter_1 = require("./adapters/roocode-adapter");
14
- const errors_1 = require("../types/errors");
15
- const codebuddy_adapter_1 = require("./adapters/codebuddy-adapter");
16
- const gemini_adapter_1 = require("./adapters/gemini-adapter");
17
- const qwen_adapter_1 = require("./adapters/qwen-adapter");
18
- const codex_adapter_1 = require("./adapters/codex-adapter");
19
- const augment_adapter_1 = require("./adapters/augment-adapter");
1
+ import { ClaudeCodeAdapter } from './adapters/claude-code-adapter.js';
2
+ import { CursorAdapter } from './adapters/cursor-adapter.js';
3
+ import { DroidAdapter } from './adapters/droid-adapter.js';
4
+ import { OpenCodeAdapter } from './adapters/opencode-adapter.js';
5
+ import { AmpAdapter } from './adapters/amp-adapter.js';
6
+ import { CrushAdapter } from './adapters/crush-adapter.js';
7
+ import { WindsurfAdapter } from './adapters/windsurf-adapter.js';
8
+ import { KilocodeAdapter } from './adapters/kilocode-adapter.js';
9
+ import { ClineAdapter } from './adapters/cline-adapter.js';
10
+ import { RoocodeAdapter } from './adapters/roocode-adapter.js';
11
+ import { IntegrationError } from '../types/errors.js';
12
+ import { CodeBuddyAdapter } from './adapters/codebuddy-adapter.js';
13
+ import { GeminiAdapter } from './adapters/gemini-adapter.js';
14
+ import { QwenAdapter } from './adapters/qwen-adapter.js';
15
+ import { CodexAdapter } from './adapters/codex-adapter.js';
16
+ import { AugmentAdapter } from './adapters/augment-adapter.js';
20
17
  /**
21
18
  * Agent Manager - handles agent detection and registration
22
19
  */
23
- class AgentManager {
20
+ export class AgentManager {
21
+ adapters = new Map();
24
22
  constructor() {
25
- this.adapters = new Map();
26
23
  // Register all built-in adapters
27
- this.registerAdapter(new claude_code_adapter_1.ClaudeCodeAdapter());
28
- this.registerAdapter(new cursor_adapter_1.CursorAdapter());
29
- this.registerAdapter(new droid_adapter_1.DroidAdapter());
30
- this.registerAdapter(new opencode_adapter_1.OpenCodeAdapter());
31
- this.registerAdapter(new amp_adapter_1.AmpAdapter());
32
- this.registerAdapter(new crush_adapter_1.CrushAdapter());
33
- this.registerAdapter(new windsurf_adapter_1.WindsurfAdapter());
34
- this.registerAdapter(new kilocode_adapter_1.KilocodeAdapter());
35
- this.registerAdapter(new cline_adapter_1.ClineAdapter());
36
- this.registerAdapter(new roocode_adapter_1.RoocodeAdapter());
37
- this.registerAdapter(new augment_adapter_1.AugmentAdapter());
38
- this.registerAdapter(new codebuddy_adapter_1.CodeBuddyAdapter());
39
- this.registerAdapter(new gemini_adapter_1.GeminiAdapter());
40
- this.registerAdapter(new qwen_adapter_1.QwenAdapter());
41
- this.registerAdapter(new codex_adapter_1.CodexAdapter());
24
+ this.registerAdapter(new ClaudeCodeAdapter());
25
+ this.registerAdapter(new CursorAdapter());
26
+ this.registerAdapter(new DroidAdapter());
27
+ this.registerAdapter(new OpenCodeAdapter());
28
+ this.registerAdapter(new AmpAdapter());
29
+ this.registerAdapter(new CrushAdapter());
30
+ this.registerAdapter(new WindsurfAdapter());
31
+ this.registerAdapter(new KilocodeAdapter());
32
+ this.registerAdapter(new ClineAdapter());
33
+ this.registerAdapter(new RoocodeAdapter());
34
+ this.registerAdapter(new AugmentAdapter());
35
+ this.registerAdapter(new CodeBuddyAdapter());
36
+ this.registerAdapter(new GeminiAdapter());
37
+ this.registerAdapter(new QwenAdapter());
38
+ this.registerAdapter(new CodexAdapter());
42
39
  }
43
40
  /**
44
41
  * Register a new agent adapter
@@ -76,7 +73,7 @@ class AgentManager {
76
73
  requireAdapter(name) {
77
74
  const adapter = this.getAdapter(name);
78
75
  if (!adapter) {
79
- throw new errors_1.IntegrationError(`Agent "${name}" is not registered`, `Available agents: ${Array.from(this.adapters.keys()).join(', ')}`);
76
+ throw new IntegrationError(`Agent "${name}" is not registered`, `Available agents: ${Array.from(this.adapters.keys()).join(', ')}`);
80
77
  }
81
78
  return adapter;
82
79
  }
@@ -122,5 +119,4 @@ class AgentManager {
122
119
  }));
123
120
  }
124
121
  }
125
- exports.AgentManager = AgentManager;
126
122
  //# sourceMappingURL=agent-manager.js.map
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * ArchiveManager - Manages archival of completed PRD projects
4
3
  *
@@ -8,54 +7,20 @@
8
7
  * - Moving completed projects to archive
9
8
  * - Managing archive directory structure
10
9
  */
11
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- var desc = Object.getOwnPropertyDescriptor(m, k);
14
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
- desc = { enumerable: true, get: function() { return m[k]; } };
16
- }
17
- Object.defineProperty(o, k2, desc);
18
- }) : (function(o, m, k, k2) {
19
- if (k2 === undefined) k2 = k;
20
- o[k2] = m[k];
21
- }));
22
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
- Object.defineProperty(o, "default", { enumerable: true, value: v });
24
- }) : function(o, v) {
25
- o["default"] = v;
26
- });
27
- var __importStar = (this && this.__importStar) || (function () {
28
- var ownKeys = function(o) {
29
- ownKeys = Object.getOwnPropertyNames || function (o) {
30
- var ar = [];
31
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
- return ar;
33
- };
34
- return ownKeys(o);
35
- };
36
- return function (mod) {
37
- if (mod && mod.__esModule) return mod;
38
- var result = {};
39
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
- __setModuleDefault(result, mod);
41
- return result;
42
- };
43
- })();
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.ArchiveManager = void 0;
46
- const fs = __importStar(require("fs-extra"));
47
- const path = __importStar(require("path"));
48
- const task_manager_1 = require("./task-manager");
10
+ import fs from 'fs-extra';
11
+ import * as path from 'path';
12
+ import { TaskManager } from './task-manager.js';
49
13
  /**
50
14
  * ArchiveManager class
51
15
  *
52
16
  * Manages archival of completed PRD projects
53
17
  */
54
- class ArchiveManager {
18
+ export class ArchiveManager {
19
+ taskManager;
20
+ outputsDir = '.clavix/outputs';
21
+ archiveDir = '.clavix/outputs/archive';
55
22
  constructor() {
56
- this.outputsDir = '.clavix/outputs';
57
- this.archiveDir = '.clavix/outputs/archive';
58
- this.taskManager = new task_manager_1.TaskManager();
23
+ this.taskManager = new TaskManager();
59
24
  }
60
25
  /**
61
26
  * List all PRD projects in outputs directory
@@ -241,7 +206,7 @@ class ArchiveManager {
241
206
  };
242
207
  }
243
208
  catch (error) {
244
- const { getErrorMessage } = await Promise.resolve().then(() => __importStar(require('../utils/error-utils.js')));
209
+ const { getErrorMessage } = await import('../utils/error-utils.js');
245
210
  return {
246
211
  success: false,
247
212
  message: `Failed to archive project: ${getErrorMessage(error)}`,
@@ -279,7 +244,7 @@ class ArchiveManager {
279
244
  };
280
245
  }
281
246
  catch (error) {
282
- const { getErrorMessage } = await Promise.resolve().then(() => __importStar(require('../utils/error-utils.js')));
247
+ const { getErrorMessage } = await import('../utils/error-utils.js');
283
248
  return {
284
249
  success: false,
285
250
  message: `Failed to restore project: ${getErrorMessage(error)}`,
@@ -334,5 +299,4 @@ class ArchiveManager {
334
299
  }
335
300
  }
336
301
  }
337
- exports.ArchiveManager = ArchiveManager;
338
302
  //# sourceMappingURL=archive-manager.js.map
@@ -7,8 +7,8 @@
7
7
  * - Managing resume checkpoints
8
8
  * - Storing git commit strategy preferences
9
9
  */
10
- import { Task } from './task-manager';
11
- import { CommitStrategy } from './git-manager';
10
+ import { Task } from './task-manager.js';
11
+ import { CommitStrategy } from './git-manager.js';
12
12
  /**
13
13
  * Configuration for task implementation
14
14
  */
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * ConfigManager - Manages .clavix-implement-config.json
4
3
  *
@@ -8,49 +7,14 @@
8
7
  * - Managing resume checkpoints
9
8
  * - Storing git commit strategy preferences
10
9
  */
11
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- var desc = Object.getOwnPropertyDescriptor(m, k);
14
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
- desc = { enumerable: true, get: function() { return m[k]; } };
16
- }
17
- Object.defineProperty(o, k2, desc);
18
- }) : (function(o, m, k, k2) {
19
- if (k2 === undefined) k2 = k;
20
- o[k2] = m[k];
21
- }));
22
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
- Object.defineProperty(o, "default", { enumerable: true, value: v });
24
- }) : function(o, v) {
25
- o["default"] = v;
26
- });
27
- var __importStar = (this && this.__importStar) || (function () {
28
- var ownKeys = function(o) {
29
- ownKeys = Object.getOwnPropertyNames || function (o) {
30
- var ar = [];
31
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
- return ar;
33
- };
34
- return ownKeys(o);
35
- };
36
- return function (mod) {
37
- if (mod && mod.__esModule) return mod;
38
- var result = {};
39
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
- __setModuleDefault(result, mod);
41
- return result;
42
- };
43
- })();
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.ConfigManager = void 0;
46
- const fs = __importStar(require("fs-extra"));
47
- const path = __importStar(require("path"));
10
+ import fs from 'fs-extra';
11
+ import * as path from 'path';
48
12
  /**
49
13
  * ConfigManager class
50
14
  *
51
15
  * Manages implementation configuration and task tracking state
52
16
  */
53
- class ConfigManager {
17
+ export class ConfigManager {
54
18
  /**
55
19
  * Read implementation config from file
56
20
  * @param configPath - Path to config file (.clavix-implement-config.json)
@@ -263,5 +227,4 @@ class ConfigManager {
263
227
  return path.join(prdPath, '.clavix-implement-config.json');
264
228
  }
265
229
  }
266
- exports.ConfigManager = ConfigManager;
267
230
  //# sourceMappingURL=config-manager.js.map
@@ -8,7 +8,7 @@
8
8
  * - Success criteria identification
9
9
  * - Mini-PRD and optimized prompt generation
10
10
  */
11
- import { Session } from '../types/session';
11
+ import { Session } from '../types/session.js';
12
12
  /**
13
13
  * Analyzed conversation data
14
14
  */
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * ConversationAnalyzer - Analyzes conversation sessions and extracts structured requirements
4
3
  *
@@ -9,15 +8,13 @@
9
8
  * - Success criteria identification
10
9
  * - Mini-PRD and optimized prompt generation
11
10
  */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.ConversationAnalyzer = void 0;
14
11
  /**
15
12
  * ConversationAnalyzer class
16
13
  *
17
14
  * Analyzes conversational sessions to extract structured requirements
18
15
  * suitable for PRD generation or AI prompting
19
16
  */
20
- class ConversationAnalyzer {
17
+ export class ConversationAnalyzer {
21
18
  /**
22
19
  * Analyze a conversation session
23
20
  *
@@ -387,5 +384,4 @@ class ConversationAnalyzer {
387
384
  return false;
388
385
  }
389
386
  }
390
- exports.ConversationAnalyzer = ConversationAnalyzer;
391
387
  //# sourceMappingURL=conversation-analyzer.js.map