@aiagentflow/cli 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/agents/base.d.ts +8 -1
  2. package/dist/agents/base.d.ts.map +1 -1
  3. package/dist/agents/base.js +46 -0
  4. package/dist/agents/base.js.map +1 -1
  5. package/dist/agents/types.d.ts +7 -0
  6. package/dist/agents/types.d.ts.map +1 -1
  7. package/dist/agents/types.js.map +1 -1
  8. package/dist/cli/commands/doctor.d.ts.map +1 -1
  9. package/dist/cli/commands/doctor.js +1 -3
  10. package/dist/cli/commands/doctor.js.map +1 -1
  11. package/dist/cli/commands/init.d.ts.map +1 -1
  12. package/dist/cli/commands/init.js +73 -42
  13. package/dist/cli/commands/init.js.map +1 -1
  14. package/dist/cli/commands/run.d.ts.map +1 -1
  15. package/dist/cli/commands/run.js +2 -0
  16. package/dist/cli/commands/run.js.map +1 -1
  17. package/dist/cli/utils/model-picker.d.ts +20 -0
  18. package/dist/cli/utils/model-picker.d.ts.map +1 -0
  19. package/dist/cli/utils/model-picker.js +97 -0
  20. package/dist/cli/utils/model-picker.js.map +1 -0
  21. package/dist/cli/utils/stream-renderer.d.ts +21 -0
  22. package/dist/cli/utils/stream-renderer.d.ts.map +1 -0
  23. package/dist/cli/utils/stream-renderer.js +57 -0
  24. package/dist/cli/utils/stream-renderer.js.map +1 -0
  25. package/dist/core/config/schema.d.ts +142 -75
  26. package/dist/core/config/schema.d.ts.map +1 -1
  27. package/dist/core/config/schema.js +11 -1
  28. package/dist/core/config/schema.js.map +1 -1
  29. package/dist/core/workflow/runner.d.ts +2 -0
  30. package/dist/core/workflow/runner.d.ts.map +1 -1
  31. package/dist/core/workflow/runner.js +46 -8
  32. package/dist/core/workflow/runner.js.map +1 -1
  33. package/dist/prompts/library.js +24 -24
  34. package/dist/prompts/library.js.map +1 -1
  35. package/dist/providers/gemini.d.ts +58 -0
  36. package/dist/providers/gemini.d.ts.map +1 -0
  37. package/dist/providers/gemini.js +254 -0
  38. package/dist/providers/gemini.js.map +1 -0
  39. package/dist/providers/metadata.d.ts +18 -0
  40. package/dist/providers/metadata.d.ts.map +1 -0
  41. package/dist/providers/metadata.js +32 -0
  42. package/dist/providers/metadata.js.map +1 -0
  43. package/dist/providers/registry.d.ts.map +1 -1
  44. package/dist/providers/registry.js +9 -1
  45. package/dist/providers/registry.js.map +1 -1
  46. package/dist/providers/types.d.ts +1 -1
  47. package/dist/providers/types.d.ts.map +1 -1
  48. package/package.json +1 -1
@@ -8,7 +8,7 @@
8
8
  * Used by: all agent implementations
9
9
  */
10
10
  import type { LLMProvider, ChatResponse } from '../providers/types.js';
11
- import type { AgentRole } from './types.js';
11
+ import type { AgentRole, StreamCallbacks } from './types.js';
12
12
  /** Input that an agent receives to do its work. */
13
13
  export interface AgentInput {
14
14
  /** The task or instruction for the agent. */
@@ -59,6 +59,13 @@ export declare abstract class BaseAgent {
59
59
  * @throws {ProviderError} if the LLM call fails
60
60
  */
61
61
  execute(input: AgentInput): Promise<AgentOutput>;
62
+ /**
63
+ * Execute this agent's task with streaming output.
64
+ *
65
+ * Uses the provider's stream() method and calls callbacks for each chunk.
66
+ * Falls back to execute() if streaming fails.
67
+ */
68
+ executeStreaming(input: AgentInput, callbacks?: StreamCallbacks): Promise<AgentOutput>;
62
69
  /** Build the system prompt that defines this agent's role and behavior. */
63
70
  protected abstract buildSystemPrompt(): string;
64
71
  /** Build the user prompt from the input task and context. */
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAA4B,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK5C,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACvB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IACxB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;;;;;;GAQG;AACH,8BAAsB,SAAS;IAC3B,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAGjC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IASxE;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAuCtD,2EAA2E;IAC3E,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,MAAM;IAE9C,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAE7D,mEAAmE;IACnE,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;CAG1D"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAA4B,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK7D,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACvB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IACxB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;;;;;;GAQG;AACH,8BAAsB,SAAS;IAC3B,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAGjC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IASxE;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAuCtD;;;;;OAKG;IACG,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAgD5F,2EAA2E;IAC3E,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,MAAM;IAE9C,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAE7D,mEAAmE;IACnE,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;CAG1D"}
@@ -70,6 +70,52 @@ export class BaseAgent {
70
70
  throw new ProviderError(`${label} failed: ${err instanceof Error ? err.message : String(err)}`, { role: this.role, model: this.model });
71
71
  }
72
72
  }
73
+ /**
74
+ * Execute this agent's task with streaming output.
75
+ *
76
+ * Uses the provider's stream() method and calls callbacks for each chunk.
77
+ * Falls back to execute() if streaming fails.
78
+ */
79
+ async executeStreaming(input, callbacks) {
80
+ const label = AGENT_ROLE_LABELS[this.role];
81
+ logger.info(`${label} starting (streaming)...`);
82
+ const systemPrompt = this.buildSystemPrompt();
83
+ const userPrompt = this.buildUserPrompt(input);
84
+ const messages = [
85
+ { role: 'user', content: userPrompt },
86
+ ];
87
+ const options = {
88
+ model: this.model,
89
+ temperature: this.temperature,
90
+ maxTokens: this.maxTokens,
91
+ systemPrompt,
92
+ };
93
+ try {
94
+ let accumulated = '';
95
+ for await (const chunk of this.provider.stream(messages, options)) {
96
+ if (chunk.content) {
97
+ accumulated += chunk.content;
98
+ callbacks?.onChunk?.(chunk.content);
99
+ }
100
+ }
101
+ callbacks?.onComplete?.(accumulated);
102
+ // Estimate token count: ~4 chars per token
103
+ // TODO: use per-provider tokenizer for accuracy
104
+ const estimatedTokens = Math.ceil(accumulated.length / 4);
105
+ logger.success(`${label} complete (~${estimatedTokens} tokens)`);
106
+ return {
107
+ content: accumulated,
108
+ role: this.role,
109
+ tokensUsed: estimatedTokens,
110
+ success: true,
111
+ };
112
+ }
113
+ catch (err) {
114
+ logger.warn(`${label} streaming failed, falling back to non-streaming`);
115
+ logger.debug(`Stream error: ${err instanceof Error ? err.message : String(err)}`);
116
+ return this.execute(input);
117
+ }
118
+ }
73
119
  /** Parse the LLM response. Override to extract structured data. */
74
120
  parseResponse(response) {
75
121
  return response.content;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA0B/C;;;;;;;;GAQG;AACH,MAAM,OAAgB,SAAS;IACX,IAAI,CAAY;IACb,QAAQ,CAAc;IACtB,KAAK,CAAS;IACd,WAAW,CAAS;IACpB,SAAS,CAAS;IAErC,YACI,IAAe,EACf,QAAqB,EACrB,OAAoE;QAEpE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,KAAiB;QAC3B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;QAEpC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAkB;YAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;SACxC,CAAC;QAEF,MAAM,OAAO,GAAgB;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY;SACf,CAAC;QAEF,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAE7C,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,cAAc,QAAQ,CAAC,KAAK,CAAC,WAAW,UAAU,CAAC,CAAC;YAE3E,OAAO;gBACH,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW;gBACtC,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,GAAG,YAAY,aAAa;gBAAE,MAAM,GAAG,CAAC;YAC5C,MAAM,IAAI,aAAa,CACnB,GAAG,KAAK,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACtE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CACzC,CAAC;QACN,CAAC;IACL,CAAC;IAQD,mEAAmE;IACzD,aAAa,CAAC,QAAsB;QAC1C,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;CACJ"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,13 @@
8
8
  export type AgentRole = 'architect' | 'coder' | 'reviewer' | 'tester' | 'fixer' | 'judge';
9
9
  /** Display-friendly labels for each agent role. */
10
10
  export declare const AGENT_ROLE_LABELS: Record<AgentRole, string>;
11
+ /** Callbacks for streaming agent execution. */
12
+ export interface StreamCallbacks {
13
+ /** Called for each text chunk as it arrives. */
14
+ onChunk?: (text: string) => void;
15
+ /** Called once when the full response is complete. */
16
+ onComplete?: (fullText: string) => void;
17
+ }
11
18
  /** All valid agent roles as an array (for iteration and validation). */
12
19
  export declare const ALL_AGENT_ROLES: readonly AgentRole[];
13
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +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"}
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,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC5B,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,sDAAsD;IACtD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,wEAAwE;AACxE,eAAO,MAAM,eAAe,EAAE,SAAS,SAAS,EAOtC,CAAC"}
@@ -1 +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"}
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;AAUF,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAAyB;IACjD,WAAW;IACX,OAAO;IACP,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;CACD,CAAC"}
@@ -1 +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,SAyDpB,CAAC"}
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,SAsDpB,CAAC"}
@@ -41,9 +41,7 @@ export const doctorCommand = new Command('doctor')
41
41
  console.log(chalk.green(` ✔ ${name} — connected`));
42
42
  }
43
43
  else {
44
- const isConfigured = name === 'anthropic' ? !!config.providers.anthropic
45
- : name === 'openai' ? !!config.providers.openai
46
- : !!config.providers.ollama;
44
+ const isConfigured = !!config.providers[name];
47
45
  if (isConfigured) {
48
46
  console.log(chalk.red(` ✘ ${name} — connection failed`));
49
47
  allHealthy = false;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
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,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAqC,CAAC,CAAC;YAE/E,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"}
@@ -1 +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;AAgBpC,eAAO,MAAM,WAAW,SAwDlB,CAAC"}
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;AAkBpC,eAAO,MAAM,WAAW,SAwDlB,CAAC"}
@@ -17,6 +17,8 @@ import { configExists, saveConfig, getDefaultConfig, getConfigPath } from '../..
17
17
  import { CONFIG_DIR_NAME } from '../../core/config/defaults.js';
18
18
  import { ALL_AGENT_ROLES, AGENT_ROLE_LABELS } from '../../agents/types.js';
19
19
  import { getSupportedProviders } from '../../providers/registry.js';
20
+ import { PROVIDER_LABELS, PROVIDER_DEFAULT_MODELS, PROVIDER_DESCRIPTIONS } from '../../providers/metadata.js';
21
+ import { pickModel } from '../utils/model-picker.js';
20
22
  import { generateDefaultPrompts } from '../../prompts/library.js';
21
23
  import { ensureDir } from '../../utils/fs.js';
22
24
  import { logger } from '../../utils/logger.js';
@@ -103,7 +105,7 @@ async function runWizard(projectRoot) {
103
105
  type: 'text',
104
106
  name: 'testFramework',
105
107
  message: 'Test framework:',
106
- initial: 'vitest',
108
+ initial: (_prev, answers) => getDefaultTestFramework(answers.language ?? 'typescript'),
107
109
  },
108
110
  ]);
109
111
  if (!projectAnswers.language)
@@ -118,9 +120,7 @@ async function runWizard(projectRoot) {
118
120
  name: 'providers',
119
121
  message: 'Select LLM providers to configure (space to toggle, enter to confirm):',
120
122
  choices: availableProviders.map((p) => ({
121
- title: p === 'anthropic' ? 'Anthropic (Claude) — requires API key'
122
- : p === 'openai' ? 'OpenAI (GPT) — requires API key'
123
- : 'Ollama (Local Models) — free, no API key needed',
123
+ title: PROVIDER_DESCRIPTIONS[p],
124
124
  value: p,
125
125
  selected: p === 'ollama',
126
126
  })),
@@ -164,6 +164,22 @@ async function runWizard(projectRoot) {
164
164
  baseUrl: 'https://api.openai.com',
165
165
  };
166
166
  }
167
+ if (selectedProviders.includes('gemini')) {
168
+ const geminiAnswers = await prompts([
169
+ {
170
+ type: 'password',
171
+ name: 'apiKey',
172
+ message: 'Google Gemini API key:',
173
+ validate: (val) => val.length >= 8 || 'API key seems too short',
174
+ },
175
+ ]);
176
+ if (!geminiAnswers.apiKey)
177
+ return null;
178
+ config.providers.gemini = {
179
+ apiKey: geminiAnswers.apiKey,
180
+ baseUrl: 'https://generativelanguage.googleapis.com',
181
+ };
182
+ }
167
183
  if (selectedProviders.includes('ollama')) {
168
184
  const ollamaAnswers = await prompts({
169
185
  type: 'text',
@@ -178,13 +194,8 @@ async function runWizard(projectRoot) {
178
194
  // ── Step 4: Agent Model Assignment ──
179
195
  logger.step(4, 6, 'Agent Model Assignment');
180
196
  const hasMixableProviders = selectedProviders.length > 1;
181
- // Helper to get default model for a provider
182
- const getDefaultModel = (p) => p === 'anthropic' ? 'claude-sonnet-4-20250514'
183
- : p === 'openai' ? 'gpt-4o-mini'
184
- : 'llama3.2:latest';
185
- const providerLabel = (p) => p === 'anthropic' ? 'Anthropic (Claude)'
186
- : p === 'openai' ? 'OpenAI (GPT)'
187
- : 'Ollama (Local)';
197
+ const getDefaultModel = (p) => PROVIDER_DEFAULT_MODELS[p];
198
+ const providerLabel = (p) => PROVIDER_LABELS[p];
188
199
  if (hasMixableProviders) {
189
200
  // Multiple providers — let user choose assignment strategy
190
201
  console.log(chalk.gray(' You have multiple providers. You can assign them per agent role.'));
@@ -215,7 +226,7 @@ async function runWizard(projectRoot) {
215
226
  });
216
227
  if (!preferredProvider)
217
228
  return null;
218
- const model = getDefaultModel(preferredProvider);
229
+ const model = await pickModel(preferredProvider, config.providers, 'Model for all agents:') ?? getDefaultModel(preferredProvider);
219
230
  for (const role of ALL_AGENT_ROLES) {
220
231
  config.agents[role] = {
221
232
  ...config.agents[role],
@@ -229,7 +240,8 @@ async function runWizard(projectRoot) {
229
240
  // Reasoning roles → cloud (anthropic), generation roles → local (ollama)
230
241
  const cloudProvider = selectedProviders.includes('anthropic') ? 'anthropic'
231
242
  : selectedProviders.includes('openai') ? 'openai'
232
- : selectedProviders[0];
243
+ : selectedProviders.includes('gemini') ? 'gemini'
244
+ : selectedProviders[0];
233
245
  const localProvider = selectedProviders.includes('ollama') ? 'ollama' : selectedProviders[0];
234
246
  const reasoningRoles = ['architect', 'reviewer', 'judge'];
235
247
  const generationRoles = ['coder', 'tester', 'fixer'];
@@ -258,26 +270,20 @@ async function runWizard(projectRoot) {
258
270
  // Custom: ask per role
259
271
  for (const role of ALL_AGENT_ROLES) {
260
272
  const label = AGENT_ROLE_LABELS[role];
261
- const roleAnswers = await prompts([
262
- {
263
- type: 'select',
264
- name: 'provider',
265
- message: `${label} provider:`,
266
- choices: selectedProviders.map((p) => ({ title: providerLabel(p), value: p })),
267
- },
268
- {
269
- type: 'text',
270
- name: 'model',
271
- message: `${label} — model:`,
272
- initial: (_prev, answers) => getDefaultModel((answers.provider ?? selectedProviders[0])),
273
- },
274
- ]);
275
- if (!roleAnswers.provider)
273
+ const { provider: roleProvider } = await prompts({
274
+ type: 'select',
275
+ name: 'provider',
276
+ message: `${label} — provider:`,
277
+ choices: selectedProviders.map((p) => ({ title: providerLabel(p), value: p })),
278
+ });
279
+ if (!roleProvider)
276
280
  return null;
281
+ const chosenProvider = roleProvider;
282
+ const model = await pickModel(chosenProvider, config.providers, `${label} — model:`) ?? getDefaultModel(chosenProvider);
277
283
  config.agents[role] = {
278
284
  ...config.agents[role],
279
- provider: roleAnswers.provider,
280
- model: roleAnswers.model,
285
+ provider: chosenProvider,
286
+ model,
281
287
  };
282
288
  }
283
289
  }
@@ -294,12 +300,7 @@ async function runWizard(projectRoot) {
294
300
  initial: true,
295
301
  });
296
302
  if (customizeModel) {
297
- const { model } = await prompts({
298
- type: 'text',
299
- name: 'model',
300
- message: 'Model to use for all agents:',
301
- initial: defaultModel,
302
- });
303
+ const model = await pickModel(defaultProvider, config.providers, 'Model to use for all agents:');
303
304
  for (const role of ALL_AGENT_ROLES) {
304
305
  config.agents[role] = {
305
306
  ...config.agents[role],
@@ -311,12 +312,7 @@ async function runWizard(projectRoot) {
311
312
  else {
312
313
  for (const role of ALL_AGENT_ROLES) {
313
314
  const label = AGENT_ROLE_LABELS[role];
314
- const { model } = await prompts({
315
- type: 'text',
316
- name: 'model',
317
- message: `${label} — model:`,
318
- initial: defaultModel,
319
- });
315
+ const model = await pickModel(defaultProvider, config.providers, `${label} — model:`);
320
316
  config.agents[role] = {
321
317
  ...config.agents[role],
322
318
  provider: defaultProvider,
@@ -352,6 +348,16 @@ async function runWizard(projectRoot) {
352
348
  config.workflow.maxIterations = workflowAnswers.maxIterations ?? 5;
353
349
  config.workflow.humanApproval = workflowAnswers.humanApproval ?? true;
354
350
  config.workflow.autoCreateBranch = workflowAnswers.autoCreateBranch ?? true;
351
+ const defaultTestCmd = getDefaultTestCommand(config.project.testFramework);
352
+ const { testCommand } = await prompts({
353
+ type: 'text',
354
+ name: 'testCommand',
355
+ message: 'Test command:',
356
+ initial: defaultTestCmd,
357
+ });
358
+ if (testCommand && testCommand !== defaultTestCmd) {
359
+ config.workflow.testCommand = testCommand;
360
+ }
355
361
  // ── Step 6: Context Documents ──
356
362
  logger.step(6, 6, 'Context Documents');
357
363
  console.log(chalk.gray(' Agents perform better with reference docs (specs, PRDs, guidelines).'));
@@ -395,4 +401,29 @@ async function runWizard(projectRoot) {
395
401
  }
396
402
  return config;
397
403
  }
404
+ /** Get the default test framework based on the selected language. */
405
+ function getDefaultTestFramework(language) {
406
+ const defaults = {
407
+ typescript: 'vitest',
408
+ javascript: 'vitest',
409
+ python: 'pytest',
410
+ go: 'go test',
411
+ rust: 'cargo test',
412
+ java: 'junit',
413
+ };
414
+ return defaults[language] ?? 'npm test';
415
+ }
416
+ /** Get the default test command for a given test framework. */
417
+ function getDefaultTestCommand(testFramework) {
418
+ const commands = {
419
+ 'vitest': 'npx vitest run',
420
+ 'jest': 'npx jest',
421
+ 'pytest': 'pytest',
422
+ 'go test': 'go test ./...',
423
+ 'cargo test': 'cargo test',
424
+ 'junit': 'mvn test',
425
+ 'rspec': 'bundle exec rspec',
426
+ };
427
+ return commands[testFramework] ?? 'npm test';
428
+ }
398
429
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,UAAU,SA2DjB,CAAC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,UAAU,SA6DjB,CAAC"}
@@ -19,6 +19,7 @@ export const runCommand = new Command('run')
19
19
  .option('--batch', 'Treat the argument as a task list file (one task per line)')
20
20
  .option('--stop-on-failure', 'Stop the queue on first failure (batch mode)')
21
21
  .option('--context <paths...>', 'Context files to load as reference documents')
22
+ .option('-s, --stream', 'Stream agent output in real time')
22
23
  .action(async (task, options) => {
23
24
  const projectRoot = process.cwd();
24
25
  if (!configExists(projectRoot)) {
@@ -56,6 +57,7 @@ export const runCommand = new Command('run')
56
57
  task,
57
58
  auto: options.auto,
58
59
  contextPaths: options.context,
60
+ streaming: options.stream,
59
61
  });
60
62
  if (result.state === 'failed') {
61
63
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Model picker — fetches available models from a provider and lets the user choose.
3
+ *
4
+ * Falls back to free-text input if the model list cannot be fetched.
5
+ *
6
+ * Dependency direction: model-picker.ts → providers/types, providers/registry, providers/metadata, prompts, ora
7
+ * Used by: cli/commands/init.ts
8
+ */
9
+ import type { LLMProviderName } from '../../providers/types.js';
10
+ import type { ProviderConfig } from '../../core/config/types.js';
11
+ /**
12
+ * Let the user pick a model from the provider's live model list.
13
+ *
14
+ * @param providerName - Which provider to query
15
+ * @param providerConfig - The providers section of the config (needs connection info)
16
+ * @param message - Prompt message shown to the user
17
+ * @returns The chosen model ID, or null if the user cancelled
18
+ */
19
+ export declare function pickModel(providerName: LLMProviderName, providerConfig: ProviderConfig, message: string): Promise<string | null>;
20
+ //# sourceMappingURL=model-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-picker.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/model-picker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQjE;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAC3B,YAAY,EAAE,eAAe,EAC7B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+DxB"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Model picker — fetches available models from a provider and lets the user choose.
3
+ *
4
+ * Falls back to free-text input if the model list cannot be fetched.
5
+ *
6
+ * Dependency direction: model-picker.ts → providers/types, providers/registry, providers/metadata, prompts, ora
7
+ * Used by: cli/commands/init.ts
8
+ */
9
+ import prompts from 'prompts';
10
+ import ora from 'ora';
11
+ import { createProvider, clearProviderCache } from '../../providers/registry.js';
12
+ import { PROVIDER_DEFAULT_MODELS } from '../../providers/metadata.js';
13
+ import { logger } from '../../utils/logger.js';
14
+ /** Maximum number of models to show in a simple select list. */
15
+ const SELECT_THRESHOLD = 20;
16
+ /**
17
+ * Let the user pick a model from the provider's live model list.
18
+ *
19
+ * @param providerName - Which provider to query
20
+ * @param providerConfig - The providers section of the config (needs connection info)
21
+ * @param message - Prompt message shown to the user
22
+ * @returns The chosen model ID, or null if the user cancelled
23
+ */
24
+ export async function pickModel(providerName, providerConfig, message) {
25
+ const defaultModel = PROVIDER_DEFAULT_MODELS[providerName];
26
+ // Clear cache so we get a fresh provider with current config
27
+ clearProviderCache();
28
+ const spinner = ora('Fetching available models...').start();
29
+ try {
30
+ const provider = createProvider(providerName, providerConfig);
31
+ const models = await provider.listModels();
32
+ spinner.stop();
33
+ if (models.length === 0) {
34
+ return await fallbackTextInput(message, defaultModel, 'no models installed');
35
+ }
36
+ // Build choices sorted alphabetically
37
+ const choices = models
38
+ .sort((a, b) => a.id.localeCompare(b.id))
39
+ .map((m) => {
40
+ const ctxInfo = m.contextWindow ? ` (${formatContextWindow(m.contextWindow)})` : '';
41
+ return {
42
+ title: `${m.id}${ctxInfo}`,
43
+ value: m.id,
44
+ };
45
+ });
46
+ // Find initial selection index
47
+ const defaultIndex = choices.findIndex((c) => c.value === defaultModel);
48
+ const initial = defaultIndex >= 0 ? defaultIndex : 0;
49
+ if (models.length <= SELECT_THRESHOLD) {
50
+ const { model } = await prompts({
51
+ type: 'select',
52
+ name: 'model',
53
+ message,
54
+ choices,
55
+ initial,
56
+ });
57
+ return model ?? null;
58
+ }
59
+ // Too many models — use autocomplete with filter
60
+ const { model } = await prompts({
61
+ type: 'autocomplete',
62
+ name: 'model',
63
+ message,
64
+ choices,
65
+ initial: defaultModel,
66
+ suggest: (input, choices) => {
67
+ const lower = input.toLowerCase();
68
+ return Promise.resolve(choices.filter((c) => c.title.toLowerCase().includes(lower)));
69
+ },
70
+ });
71
+ return model ?? null;
72
+ }
73
+ catch (err) {
74
+ spinner.stop();
75
+ const reason = err instanceof Error ? err.message : String(err);
76
+ logger.debug(`Model picker failed for ${providerName}: ${reason}`);
77
+ return await fallbackTextInput(message, defaultModel, 'connection failed');
78
+ }
79
+ }
80
+ async function fallbackTextInput(message, defaultModel, reason) {
81
+ const hint = reason ? ` (${reason} — enter model manually)` : ' (enter model manually)';
82
+ const { model } = await prompts({
83
+ type: 'text',
84
+ name: 'model',
85
+ message: `${message}${hint}`,
86
+ initial: defaultModel,
87
+ });
88
+ return model ?? null;
89
+ }
90
+ function formatContextWindow(tokens) {
91
+ if (tokens >= 1_000_000)
92
+ return `${(tokens / 1_000_000).toFixed(1)}M ctx`;
93
+ if (tokens >= 1_000)
94
+ return `${Math.round(tokens / 1_000)}K ctx`;
95
+ return `${tokens} ctx`;
96
+ }
97
+ //# sourceMappingURL=model-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-picker.js","sourceRoot":"","sources":["../../../src/cli/utils/model-picker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Streaming UI renderer — shows live agent output in the terminal.
3
+ *
4
+ * Prints the agent name header, streams gray text as a preview
5
+ * (truncated to 80 chars), and prints a newline when complete.
6
+ *
7
+ * Dependency direction: stream-renderer.ts → agents/types, chalk
8
+ * Used by: core/workflow/runner.ts
9
+ */
10
+ import type { StreamCallbacks, AgentRole } from '../../agents/types.js';
11
+ /**
12
+ * Create a streaming renderer for a given agent role.
13
+ *
14
+ * @returns An object with `callbacks` (pass to executeStreaming) and
15
+ * `finish()` (call after the agent completes to clean up output).
16
+ */
17
+ export declare function createStreamRenderer(agentRole: AgentRole): {
18
+ callbacks: StreamCallbacks;
19
+ finish: () => void;
20
+ };
21
+ //# sourceMappingURL=stream-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-renderer.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/stream-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMxE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG;IACxD,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB,CAsCA"}