@aiagentflow/cli 0.1.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 (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +232 -0
  3. package/dist/agents/base.d.ts +69 -0
  4. package/dist/agents/base.d.ts.map +1 -0
  5. package/dist/agents/base.js +78 -0
  6. package/dist/agents/base.js.map +1 -0
  7. package/dist/agents/factory.d.ts +21 -0
  8. package/dist/agents/factory.d.ts.map +1 -0
  9. package/dist/agents/factory.js +50 -0
  10. package/dist/agents/factory.js.map +1 -0
  11. package/dist/agents/roles/architect.d.ts +23 -0
  12. package/dist/agents/roles/architect.d.ts.map +1 -0
  13. package/dist/agents/roles/architect.js +39 -0
  14. package/dist/agents/roles/architect.js.map +1 -0
  15. package/dist/agents/roles/coder.d.ts +19 -0
  16. package/dist/agents/roles/coder.d.ts.map +1 -0
  17. package/dist/agents/roles/coder.js +38 -0
  18. package/dist/agents/roles/coder.js.map +1 -0
  19. package/dist/agents/roles/fixer.d.ts +19 -0
  20. package/dist/agents/roles/fixer.d.ts.map +1 -0
  21. package/dist/agents/roles/fixer.js +29 -0
  22. package/dist/agents/roles/fixer.js.map +1 -0
  23. package/dist/agents/roles/judge.d.ts +24 -0
  24. package/dist/agents/roles/judge.d.ts.map +1 -0
  25. package/dist/agents/roles/judge.js +38 -0
  26. package/dist/agents/roles/judge.js.map +1 -0
  27. package/dist/agents/roles/reviewer.d.ts +28 -0
  28. package/dist/agents/roles/reviewer.d.ts.map +1 -0
  29. package/dist/agents/roles/reviewer.js +49 -0
  30. package/dist/agents/roles/reviewer.js.map +1 -0
  31. package/dist/agents/roles/tester.d.ts +19 -0
  32. package/dist/agents/roles/tester.d.ts.map +1 -0
  33. package/dist/agents/roles/tester.js +29 -0
  34. package/dist/agents/roles/tester.js.map +1 -0
  35. package/dist/agents/types.d.ts +13 -0
  36. package/dist/agents/types.d.ts.map +1 -0
  37. package/dist/agents/types.js +25 -0
  38. package/dist/agents/types.js.map +1 -0
  39. package/dist/cli/commands/config.d.ts +9 -0
  40. package/dist/cli/commands/config.d.ts.map +1 -0
  41. package/dist/cli/commands/config.js +30 -0
  42. package/dist/cli/commands/config.js.map +1 -0
  43. package/dist/cli/commands/doctor.d.ts +12 -0
  44. package/dist/cli/commands/doctor.d.ts.map +1 -0
  45. package/dist/cli/commands/doctor.js +63 -0
  46. package/dist/cli/commands/doctor.js.map +1 -0
  47. package/dist/cli/commands/init.d.ts +12 -0
  48. package/dist/cli/commands/init.d.ts.map +1 -0
  49. package/dist/cli/commands/init.js +231 -0
  50. package/dist/cli/commands/init.js.map +1 -0
  51. package/dist/cli/commands/run.d.ts +11 -0
  52. package/dist/cli/commands/run.d.ts.map +1 -0
  53. package/dist/cli/commands/run.js +66 -0
  54. package/dist/cli/commands/run.js.map +1 -0
  55. package/dist/cli/index.d.ts +9 -0
  56. package/dist/cli/index.d.ts.map +1 -0
  57. package/dist/cli/index.js +24 -0
  58. package/dist/cli/index.js.map +1 -0
  59. package/dist/core/config/defaults.d.ts +22 -0
  60. package/dist/core/config/defaults.d.ts.map +1 -0
  61. package/dist/core/config/defaults.js +60 -0
  62. package/dist/core/config/defaults.js.map +1 -0
  63. package/dist/core/config/manager.d.ts +45 -0
  64. package/dist/core/config/manager.d.ts.map +1 -0
  65. package/dist/core/config/manager.js +106 -0
  66. package/dist/core/config/manager.js.map +1 -0
  67. package/dist/core/config/schema.d.ts +780 -0
  68. package/dist/core/config/schema.d.ts.map +1 -0
  69. package/dist/core/config/schema.js +102 -0
  70. package/dist/core/config/schema.js.map +1 -0
  71. package/dist/core/config/types.d.ts +24 -0
  72. package/dist/core/config/types.d.ts.map +1 -0
  73. package/dist/core/config/types.js +11 -0
  74. package/dist/core/config/types.js.map +1 -0
  75. package/dist/core/errors.d.ts +36 -0
  76. package/dist/core/errors.d.ts.map +1 -0
  77. package/dist/core/errors.js +60 -0
  78. package/dist/core/errors.js.map +1 -0
  79. package/dist/core/workflow/approval.d.ts +22 -0
  80. package/dist/core/workflow/approval.d.ts.map +1 -0
  81. package/dist/core/workflow/approval.js +54 -0
  82. package/dist/core/workflow/approval.js.map +1 -0
  83. package/dist/core/workflow/engine.d.ts +128 -0
  84. package/dist/core/workflow/engine.d.ts.map +1 -0
  85. package/dist/core/workflow/engine.js +159 -0
  86. package/dist/core/workflow/engine.js.map +1 -0
  87. package/dist/core/workflow/file-parser.d.ts +41 -0
  88. package/dist/core/workflow/file-parser.d.ts.map +1 -0
  89. package/dist/core/workflow/file-parser.js +138 -0
  90. package/dist/core/workflow/file-parser.js.map +1 -0
  91. package/dist/core/workflow/qa-policy.d.ts +55 -0
  92. package/dist/core/workflow/qa-policy.d.ts.map +1 -0
  93. package/dist/core/workflow/qa-policy.js +119 -0
  94. package/dist/core/workflow/qa-policy.js.map +1 -0
  95. package/dist/core/workflow/runner.d.ts +30 -0
  96. package/dist/core/workflow/runner.d.ts.map +1 -0
  97. package/dist/core/workflow/runner.js +273 -0
  98. package/dist/core/workflow/runner.js.map +1 -0
  99. package/dist/core/workflow/session.d.ts +37 -0
  100. package/dist/core/workflow/session.d.ts.map +1 -0
  101. package/dist/core/workflow/session.js +93 -0
  102. package/dist/core/workflow/session.js.map +1 -0
  103. package/dist/core/workflow/task-queue.d.ts +46 -0
  104. package/dist/core/workflow/task-queue.d.ts.map +1 -0
  105. package/dist/core/workflow/task-queue.js +106 -0
  106. package/dist/core/workflow/task-queue.js.map +1 -0
  107. package/dist/core/workflow/test-runner.d.ts +25 -0
  108. package/dist/core/workflow/test-runner.d.ts.map +1 -0
  109. package/dist/core/workflow/test-runner.js +50 -0
  110. package/dist/core/workflow/test-runner.js.map +1 -0
  111. package/dist/core/workflow/token-tracker.d.ts +54 -0
  112. package/dist/core/workflow/token-tracker.d.ts.map +1 -0
  113. package/dist/core/workflow/token-tracker.js +98 -0
  114. package/dist/core/workflow/token-tracker.js.map +1 -0
  115. package/dist/git/client.d.ts +47 -0
  116. package/dist/git/client.d.ts.map +1 -0
  117. package/dist/git/client.js +109 -0
  118. package/dist/git/client.js.map +1 -0
  119. package/dist/prompts/library.d.ts +35 -0
  120. package/dist/prompts/library.d.ts.map +1 -0
  121. package/dist/prompts/library.js +238 -0
  122. package/dist/prompts/library.js.map +1 -0
  123. package/dist/providers/anthropic.d.ts +55 -0
  124. package/dist/providers/anthropic.d.ts.map +1 -0
  125. package/dist/providers/anthropic.js +237 -0
  126. package/dist/providers/anthropic.js.map +1 -0
  127. package/dist/providers/ollama.d.ts +44 -0
  128. package/dist/providers/ollama.d.ts.map +1 -0
  129. package/dist/providers/ollama.js +211 -0
  130. package/dist/providers/ollama.js.map +1 -0
  131. package/dist/providers/registry.d.ts +36 -0
  132. package/dist/providers/registry.d.ts.map +1 -0
  133. package/dist/providers/registry.js +91 -0
  134. package/dist/providers/registry.js.map +1 -0
  135. package/dist/providers/types.d.ts +100 -0
  136. package/dist/providers/types.d.ts.map +1 -0
  137. package/dist/providers/types.js +12 -0
  138. package/dist/providers/types.js.map +1 -0
  139. package/dist/types/index.d.ts +11 -0
  140. package/dist/types/index.d.ts.map +1 -0
  141. package/dist/types/index.js +9 -0
  142. package/dist/types/index.js.map +1 -0
  143. package/dist/utils/fs.d.ts +30 -0
  144. package/dist/utils/fs.d.ts.map +1 -0
  145. package/dist/utils/fs.js +80 -0
  146. package/dist/utils/fs.js.map +1 -0
  147. package/dist/utils/logger.d.ts +46 -0
  148. package/dist/utils/logger.d.ts.map +1 -0
  149. package/dist/utils/logger.js +87 -0
  150. package/dist/utils/logger.js.map +1 -0
  151. package/dist/utils/validation.d.ts +28 -0
  152. package/dist/utils/validation.d.ts.map +1 -0
  153. package/dist/utils/validation.js +38 -0
  154. package/dist/utils/validation.js.map +1 -0
  155. package/package.json +62 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Fixer agent — fixes bugs found by reviewers and test failures.
3
+ *
4
+ * Dependency direction: fixer.ts → agents/base, prompts/library
5
+ * Used by: workflow runner
6
+ */
7
+ import { BaseAgent } from '../base.js';
8
+ import { loadAgentPrompt } from '../../prompts/library.js';
9
+ export class FixerAgent extends BaseAgent {
10
+ projectRoot;
11
+ constructor(provider, options, projectRoot) {
12
+ super('fixer', provider, { ...options, temperature: options.temperature ?? 0.3 });
13
+ this.projectRoot = projectRoot;
14
+ }
15
+ buildSystemPrompt() {
16
+ return loadAgentPrompt(this.projectRoot, 'fixer');
17
+ }
18
+ buildUserPrompt(input) {
19
+ let prompt = `## Original Task\n\n${input.task}\n\n`;
20
+ if (input.context) {
21
+ prompt += `## Error Details\n\n${input.context}\n\n`;
22
+ }
23
+ if (input.previousOutput) {
24
+ prompt += `## Current Code (with bugs)\n\n${input.previousOutput}\n`;
25
+ }
26
+ return prompt;
27
+ }
28
+ }
29
+ //# sourceMappingURL=fixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixer.js","sourceRoot":"","sources":["../../../src/agents/roles/fixer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,MAAM,OAAO,UAAW,SAAQ,SAAS;IACpB,WAAW,CAAS;IAErC,YACI,QAAqB,EACrB,OAAoE,EACpE,WAAmB;QAEnB,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAES,iBAAiB;QACvB,OAAO,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAES,eAAe,CAAC,KAAiB;QACvC,IAAI,MAAM,GAAG,uBAAuB,KAAK,CAAC,IAAI,MAAM,CAAC;QAErD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,IAAI,uBAAuB,KAAK,CAAC,OAAO,MAAM,CAAC;QACzD,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,IAAI,kCAAkC,KAAK,CAAC,cAAc,IAAI,CAAC;QACzE,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Judge agent — evaluates if a task is complete and meets quality standards.
3
+ *
4
+ * Dependency direction: judge.ts → agents/base, prompts/library
5
+ * Used by: workflow runner
6
+ */
7
+ import { BaseAgent, type AgentInput, type AgentOutput } from '../base.js';
8
+ import type { LLMProvider } from '../../providers/types.js';
9
+ export declare class JudgeAgent extends BaseAgent {
10
+ private readonly projectRoot;
11
+ constructor(provider: LLMProvider, options: {
12
+ model: string;
13
+ temperature?: number;
14
+ maxTokens?: number;
15
+ }, projectRoot: string);
16
+ protected buildSystemPrompt(): string;
17
+ protected buildUserPrompt(input: AgentInput): string;
18
+ /**
19
+ * Check if the judge approves.
20
+ * Looks for "PASS" in the output (case-insensitive).
21
+ */
22
+ static isPassed(output: AgentOutput): boolean;
23
+ }
24
+ //# sourceMappingURL=judge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judge.d.ts","sourceRoot":"","sources":["../../../src/agents/roles/judge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,UAAW,SAAQ,SAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAGjC,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EACpE,WAAW,EAAE,MAAM;IAOvB,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAcpD;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;CAIhD"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Judge agent — evaluates if a task is complete and meets quality standards.
3
+ *
4
+ * Dependency direction: judge.ts → agents/base, prompts/library
5
+ * Used by: workflow runner
6
+ */
7
+ import { BaseAgent } from '../base.js';
8
+ import { loadAgentPrompt } from '../../prompts/library.js';
9
+ export class JudgeAgent extends BaseAgent {
10
+ projectRoot;
11
+ constructor(provider, options, projectRoot) {
12
+ // Low temperature for consistent pass/fail decisions
13
+ super('judge', provider, { ...options, temperature: options.temperature ?? 0.2 });
14
+ this.projectRoot = projectRoot;
15
+ }
16
+ buildSystemPrompt() {
17
+ return loadAgentPrompt(this.projectRoot, 'judge');
18
+ }
19
+ buildUserPrompt(input) {
20
+ let prompt = `## Original Task\n\n${input.task}\n\n`;
21
+ if (input.previousOutput) {
22
+ prompt += `## Implementation Summary\n\n${input.previousOutput}\n`;
23
+ }
24
+ if (input.context) {
25
+ prompt += `\n## Review & Test Results\n\n${input.context}\n`;
26
+ }
27
+ return prompt;
28
+ }
29
+ /**
30
+ * Check if the judge approves.
31
+ * Looks for "PASS" in the output (case-insensitive).
32
+ */
33
+ static isPassed(output) {
34
+ const content = output.content.toUpperCase();
35
+ return content.includes('PASS') && !content.includes('FAIL');
36
+ }
37
+ }
38
+ //# sourceMappingURL=judge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judge.js","sourceRoot":"","sources":["../../../src/agents/roles/judge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAqC,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,MAAM,OAAO,UAAW,SAAQ,SAAS;IACpB,WAAW,CAAS;IAErC,YACI,QAAqB,EACrB,OAAoE,EACpE,WAAmB;QAEnB,qDAAqD;QACrD,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAES,iBAAiB;QACvB,OAAO,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAES,eAAe,CAAC,KAAiB;QACvC,IAAI,MAAM,GAAG,uBAAuB,KAAK,CAAC,IAAI,MAAM,CAAC;QAErD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,IAAI,gCAAgC,KAAK,CAAC,cAAc,IAAI,CAAC;QACvE,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,IAAI,iCAAiC,KAAK,CAAC,OAAO,IAAI,CAAC;QACjE,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAmB;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;CACJ"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Reviewer agent — reviews code and provides feedback.
3
+ *
4
+ * Dependency direction: reviewer.ts → agents/base, prompts/library
5
+ * Used by: workflow runner
6
+ */
7
+ import { BaseAgent, type AgentInput, type AgentOutput } from '../base.js';
8
+ import type { LLMProvider, ChatResponse } from '../../providers/types.js';
9
+ export declare class ReviewerAgent extends BaseAgent {
10
+ private readonly projectRoot;
11
+ constructor(provider: LLMProvider, options: {
12
+ model: string;
13
+ temperature?: number;
14
+ maxTokens?: number;
15
+ }, projectRoot: string);
16
+ protected buildSystemPrompt(): string;
17
+ protected buildUserPrompt(input: AgentInput): string;
18
+ /**
19
+ * Parse the review response to extract approval status.
20
+ */
21
+ protected parseResponse(response: ChatResponse): string;
22
+ /**
23
+ * Check if the review approves the code.
24
+ * Looks for "APPROVE" in the output (case-insensitive).
25
+ */
26
+ static isApproved(output: AgentOutput): boolean;
27
+ }
28
+ //# sourceMappingURL=reviewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../../src/agents/roles/reviewer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE1E,qBAAa,aAAc,SAAQ,SAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAGjC,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EACpE,WAAW,EAAE,MAAM;IAMvB,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAWrC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAcpD;;OAEG;cACgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;IAIhE;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;CAIlD"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Reviewer agent — reviews code and provides feedback.
3
+ *
4
+ * Dependency direction: reviewer.ts → agents/base, prompts/library
5
+ * Used by: workflow runner
6
+ */
7
+ import { BaseAgent } from '../base.js';
8
+ import { loadAgentPrompt, loadCodingStandards } from '../../prompts/library.js';
9
+ export class ReviewerAgent extends BaseAgent {
10
+ projectRoot;
11
+ constructor(provider, options, projectRoot) {
12
+ super('reviewer', provider, { ...options, temperature: options.temperature ?? 0.5 });
13
+ this.projectRoot = projectRoot;
14
+ }
15
+ buildSystemPrompt() {
16
+ const rolePrompt = loadAgentPrompt(this.projectRoot, 'reviewer');
17
+ const standards = loadCodingStandards(this.projectRoot);
18
+ let prompt = rolePrompt;
19
+ if (standards) {
20
+ prompt += `\n\n## Project Coding Standards (use these when reviewing)\n\n${standards}`;
21
+ }
22
+ return prompt;
23
+ }
24
+ buildUserPrompt(input) {
25
+ let prompt = `## Task Being Implemented\n\n${input.task}\n\n`;
26
+ if (input.previousOutput) {
27
+ prompt += `## Code To Review\n\n${input.previousOutput}\n`;
28
+ }
29
+ if (input.context) {
30
+ prompt += `\n## Additional Context\n\n${input.context}\n`;
31
+ }
32
+ return prompt;
33
+ }
34
+ /**
35
+ * Parse the review response to extract approval status.
36
+ */
37
+ parseResponse(response) {
38
+ return response.content;
39
+ }
40
+ /**
41
+ * Check if the review approves the code.
42
+ * Looks for "APPROVE" in the output (case-insensitive).
43
+ */
44
+ static isApproved(output) {
45
+ const content = output.content.toUpperCase();
46
+ return content.includes('APPROVE') && !content.includes('REQUEST_CHANGES');
47
+ }
48
+ }
49
+ //# sourceMappingURL=reviewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../../src/agents/roles/reviewer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAqC,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGhF,MAAM,OAAO,aAAc,SAAQ,SAAS;IACvB,WAAW,CAAS;IAErC,YACI,QAAqB,EACrB,OAAoE,EACpE,WAAmB;QAEnB,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAES,iBAAiB;QACvB,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExD,IAAI,MAAM,GAAG,UAAU,CAAC;QACxB,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,IAAI,iEAAiE,SAAS,EAAE,CAAC;QAC3F,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,eAAe,CAAC,KAAiB;QACvC,IAAI,MAAM,GAAG,gCAAgC,KAAK,CAAC,IAAI,MAAM,CAAC;QAE9D,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,IAAI,wBAAwB,KAAK,CAAC,cAAc,IAAI,CAAC;QAC/D,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,IAAI,8BAA8B,KAAK,CAAC,OAAO,IAAI,CAAC;QAC9D,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACgB,aAAa,CAAC,QAAsB;QACnD,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAmB;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC/E,CAAC;CACJ"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Tester agent — generates tests for implemented code.
3
+ *
4
+ * Dependency direction: tester.ts → agents/base, prompts/library
5
+ * Used by: workflow runner
6
+ */
7
+ import { BaseAgent, type AgentInput } from '../base.js';
8
+ import type { LLMProvider } from '../../providers/types.js';
9
+ export declare class TesterAgent extends BaseAgent {
10
+ private readonly projectRoot;
11
+ constructor(provider: LLMProvider, options: {
12
+ model: string;
13
+ temperature?: number;
14
+ maxTokens?: number;
15
+ }, projectRoot: string);
16
+ protected buildSystemPrompt(): string;
17
+ protected buildUserPrompt(input: AgentInput): string;
18
+ }
19
+ //# sourceMappingURL=tester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tester.d.ts","sourceRoot":"","sources":["../../../src/agents/roles/tester.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,WAAY,SAAQ,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAGjC,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EACpE,WAAW,EAAE,MAAM;IAMvB,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;CAavD"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Tester agent — generates tests for implemented code.
3
+ *
4
+ * Dependency direction: tester.ts → agents/base, prompts/library
5
+ * Used by: workflow runner
6
+ */
7
+ import { BaseAgent } from '../base.js';
8
+ import { loadAgentPrompt } from '../../prompts/library.js';
9
+ export class TesterAgent extends BaseAgent {
10
+ projectRoot;
11
+ constructor(provider, options, projectRoot) {
12
+ super('tester', provider, { ...options, temperature: options.temperature ?? 0.4 });
13
+ this.projectRoot = projectRoot;
14
+ }
15
+ buildSystemPrompt() {
16
+ return loadAgentPrompt(this.projectRoot, 'tester');
17
+ }
18
+ buildUserPrompt(input) {
19
+ let prompt = `## Task\n\n${input.task}\n\n`;
20
+ if (input.previousOutput) {
21
+ prompt += `## Code To Test\n\n${input.previousOutput}\n`;
22
+ }
23
+ if (input.context) {
24
+ prompt += `\n## Test Framework & Context\n\n${input.context}\n`;
25
+ }
26
+ return prompt;
27
+ }
28
+ }
29
+ //# sourceMappingURL=tester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tester.js","sourceRoot":"","sources":["../../../src/agents/roles/tester.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,MAAM,OAAO,WAAY,SAAQ,SAAS;IACrB,WAAW,CAAS;IAErC,YACI,QAAqB,EACrB,OAAoE,EACpE,WAAmB;QAEnB,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAES,iBAAiB;QACvB,OAAO,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAES,eAAe,CAAC,KAAiB;QACvC,IAAI,MAAM,GAAG,cAAc,KAAK,CAAC,IAAI,MAAM,CAAC;QAE5C,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,IAAI,sBAAsB,KAAK,CAAC,cAAc,IAAI,CAAC;QAC7D,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,IAAI,oCAAoC,KAAK,CAAC,OAAO,IAAI,CAAC;QACpE,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Agent role type definitions.
3
+ *
4
+ * Dependency direction: agents/types.ts → nothing (leaf module)
5
+ * Used by: config schemas, workflow engine, provider registry
6
+ */
7
+ /** All supported agent roles in the workflow. */
8
+ export type AgentRole = 'architect' | 'coder' | 'reviewer' | 'tester' | 'fixer' | 'judge';
9
+ /** Display-friendly labels for each agent role. */
10
+ export declare const AGENT_ROLE_LABELS: Record<AgentRole, string>;
11
+ /** All valid agent roles as an array (for iteration and validation). */
12
+ export declare const ALL_AGENT_ROLES: readonly AgentRole[];
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iDAAiD;AACjD,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1F,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAOvD,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,eAAe,EAAE,SAAS,SAAS,EAOtC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Agent role type definitions.
3
+ *
4
+ * Dependency direction: agents/types.ts → nothing (leaf module)
5
+ * Used by: config schemas, workflow engine, provider registry
6
+ */
7
+ /** Display-friendly labels for each agent role. */
8
+ export const AGENT_ROLE_LABELS = {
9
+ architect: '🧠 Architect',
10
+ coder: '💻 Coder',
11
+ reviewer: '🔍 Reviewer',
12
+ tester: '🧪 Tester',
13
+ fixer: '🐛 Fixer',
14
+ judge: '✅ Judge',
15
+ };
16
+ /** All valid agent roles as an array (for iteration and validation). */
17
+ export const ALL_AGENT_ROLES = [
18
+ 'architect',
19
+ 'coder',
20
+ 'reviewer',
21
+ 'tester',
22
+ 'fixer',
23
+ 'judge',
24
+ ];
25
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,mDAAmD;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IACxD,SAAS,EAAE,cAAc;IACzB,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;CACnB,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAAyB;IACjD,WAAW;IACX,OAAO;IACP,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;CACD,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `aiagentflow config` — View or edit configuration.
3
+ *
4
+ * Dependency direction: config.ts → commander, config module
5
+ * Used by: cli/index.ts
6
+ */
7
+ import { Command } from 'commander';
8
+ export declare const configCommand: Command;
9
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SAsBpB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * `aiagentflow config` — View or edit configuration.
3
+ *
4
+ * Dependency direction: config.ts → commander, config module
5
+ * Used by: cli/index.ts
6
+ */
7
+ import { Command } from 'commander';
8
+ import chalk from 'chalk';
9
+ import { configExists, loadConfig, getConfigPath } from '../../core/config/manager.js';
10
+ import { logger } from '../../utils/logger.js';
11
+ export const configCommand = new Command('config')
12
+ .description('View or manage configuration')
13
+ .option('-p, --path', 'Show config file path only')
14
+ .action((options) => {
15
+ const projectRoot = process.cwd();
16
+ if (!configExists(projectRoot)) {
17
+ logger.error('No configuration found. Run "aiagentflow init" first.');
18
+ process.exit(1);
19
+ }
20
+ if (options.path) {
21
+ console.log(getConfigPath(projectRoot));
22
+ return;
23
+ }
24
+ const config = loadConfig(projectRoot);
25
+ logger.header('Current Configuration');
26
+ console.log(chalk.gray(`File: ${getConfigPath(projectRoot)}`));
27
+ console.log();
28
+ console.log(JSON.stringify(config, null, 2));
29
+ });
30
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC7C,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,YAAY,EAAE,4BAA4B,CAAC;KAClD,MAAM,CAAC,CAAC,OAA2B,EAAE,EAAE;IACpC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;QACxC,OAAO;IACX,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAEvC,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `aiagentflow doctor` — Health check for providers and setup.
3
+ *
4
+ * Verifies that all configured providers can connect and that
5
+ * the project is properly set up.
6
+ *
7
+ * Dependency direction: doctor.ts → commander, ora, chalk, config module, registry
8
+ * Used by: cli/index.ts
9
+ */
10
+ import { Command } from 'commander';
11
+ export declare const doctorCommand: Command;
12
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,SAuDpB,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * `aiagentflow doctor` — Health check for providers and setup.
3
+ *
4
+ * Verifies that all configured providers can connect and that
5
+ * the project is properly set up.
6
+ *
7
+ * Dependency direction: doctor.ts → commander, ora, chalk, config module, registry
8
+ * Used by: cli/index.ts
9
+ */
10
+ import { Command } from 'commander';
11
+ import chalk from 'chalk';
12
+ import ora from 'ora';
13
+ import { configExists, loadConfig } from '../../core/config/manager.js';
14
+ import { validateAllProviders } from '../../providers/registry.js';
15
+ import { logger } from '../../utils/logger.js';
16
+ export const doctorCommand = new Command('doctor')
17
+ .description('Check project setup and provider health')
18
+ .action(async () => {
19
+ const projectRoot = process.cwd();
20
+ logger.header('AI Workflow — Health Check');
21
+ // Check config exists
22
+ const configCheck = configExists(projectRoot);
23
+ console.log(configCheck
24
+ ? chalk.green(' ✔ Configuration file found')
25
+ : chalk.red(' ✘ No configuration file — run "aiagentflow init"'));
26
+ if (!configCheck) {
27
+ process.exit(1);
28
+ }
29
+ // Load config
30
+ const config = loadConfig(projectRoot);
31
+ console.log(chalk.green(' ✔ Configuration is valid'));
32
+ // Check providers
33
+ console.log();
34
+ logger.info('Checking provider connections...');
35
+ const spinner = ora('Testing providers...').start();
36
+ const results = await validateAllProviders(config.providers);
37
+ spinner.stop();
38
+ let allHealthy = true;
39
+ for (const [name, healthy] of Object.entries(results)) {
40
+ if (healthy) {
41
+ console.log(chalk.green(` ✔ ${name} — connected`));
42
+ }
43
+ else {
44
+ const isConfigured = name === 'anthropic' ? !!config.providers.anthropic : !!config.providers.ollama;
45
+ if (isConfigured) {
46
+ console.log(chalk.red(` ✘ ${name} — connection failed`));
47
+ allHealthy = false;
48
+ }
49
+ else {
50
+ console.log(chalk.gray(` - ${name} — not configured (skipped)`));
51
+ }
52
+ }
53
+ }
54
+ // Summary
55
+ console.log();
56
+ if (allHealthy) {
57
+ logger.success('All checks passed! You\'re ready to go.');
58
+ }
59
+ else {
60
+ logger.warn('Some checks failed. Review the output above.');
61
+ }
62
+ });
63
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC7C,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAE5C,sBAAsB;IACtB,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CACP,WAAW;QACP,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC;QAC7C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CACxE,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,cAAc;IACd,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEvD,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,MAAM,YAAY,GACd,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YAEpF,IAAI,YAAY,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,sBAAsB,CAAC,CAAC,CAAC;gBAC1D,UAAU,GAAG,KAAK,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,6BAA6B,CAAC,CAAC,CAAC;YACtE,CAAC;QACL,CAAC;IACL,CAAC;IAED,UAAU;IACV,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACJ,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAChE,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `aiagentflow init` — Interactive setup wizard.
3
+ *
4
+ * Walks the user through configuring providers, models, and workflow settings.
5
+ * Generates `.aiagentflow/config.json` in the current project directory.
6
+ *
7
+ * Dependency direction: init.ts → commander, prompts, ora, chalk, config module
8
+ * Used by: cli/index.ts
9
+ */
10
+ import { Command } from 'commander';
11
+ export declare const initCommand: Command;
12
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,WAAW,SAsDlB,CAAC"}