@aiagentflow/cli 0.3.0 → 0.4.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 (46) 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 +37 -41
  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 +93 -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 +132 -75
  26. package/dist/core/config/schema.d.ts.map +1 -1
  27. package/dist/core/config/schema.js +9 -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 +15 -4
  32. package/dist/core/workflow/runner.js.map +1 -1
  33. package/dist/providers/gemini.d.ts +58 -0
  34. package/dist/providers/gemini.d.ts.map +1 -0
  35. package/dist/providers/gemini.js +254 -0
  36. package/dist/providers/gemini.js.map +1 -0
  37. package/dist/providers/metadata.d.ts +18 -0
  38. package/dist/providers/metadata.d.ts.map +1 -0
  39. package/dist/providers/metadata.js +32 -0
  40. package/dist/providers/metadata.js.map +1 -0
  41. package/dist/providers/registry.d.ts.map +1 -1
  42. package/dist/providers/registry.js +9 -1
  43. package/dist/providers/registry.js.map +1 -1
  44. package/dist/providers/types.d.ts +1 -1
  45. package/dist/providers/types.d.ts.map +1 -1
  46. 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":"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;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAiB,EAAE,SAA2B;QACjE,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,0BAA0B,CAAC,CAAC;QAEhD,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,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;gBAChE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAChB,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC;oBAC7B,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;YAED,SAAS,EAAE,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC;YAErC,2CAA2C;YAC3C,gDAAgD;YAChD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE1D,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,eAAe,eAAe,UAAU,CAAC,CAAC;YAEjE,OAAO;gBACH,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,eAAe;gBAC3B,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,kDAAkD,CAAC,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAQD,mEAAmE;IACzD,aAAa,CAAC,QAAsB;QAC1C,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;CACJ"}
@@ -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":"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;gBACnD,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;oBAC/C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YAEhC,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
+ {"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';
@@ -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,
@@ -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;AAOjE;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAC3B,YAAY,EAAE,eAAe,EAC7B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6DxB"}
@@ -0,0 +1,93 @@
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
+ /** Maximum number of models to show in a simple select list. */
14
+ const SELECT_THRESHOLD = 20;
15
+ /**
16
+ * Let the user pick a model from the provider's live model list.
17
+ *
18
+ * @param providerName - Which provider to query
19
+ * @param providerConfig - The providers section of the config (needs connection info)
20
+ * @param message - Prompt message shown to the user
21
+ * @returns The chosen model ID, or null if the user cancelled
22
+ */
23
+ export async function pickModel(providerName, providerConfig, message) {
24
+ const defaultModel = PROVIDER_DEFAULT_MODELS[providerName];
25
+ // Clear cache so we get a fresh provider with current config
26
+ clearProviderCache();
27
+ const spinner = ora('Fetching available models...').start();
28
+ try {
29
+ const provider = createProvider(providerName, providerConfig);
30
+ const models = await provider.listModels();
31
+ spinner.stop();
32
+ if (models.length === 0) {
33
+ return await fallbackTextInput(message, defaultModel);
34
+ }
35
+ // Build choices sorted alphabetically
36
+ const choices = models
37
+ .sort((a, b) => a.id.localeCompare(b.id))
38
+ .map((m) => {
39
+ const ctxInfo = m.contextWindow ? ` (${formatContextWindow(m.contextWindow)})` : '';
40
+ return {
41
+ title: `${m.id}${ctxInfo}`,
42
+ value: m.id,
43
+ };
44
+ });
45
+ // Find initial selection index
46
+ const defaultIndex = choices.findIndex((c) => c.value === defaultModel);
47
+ const initial = defaultIndex >= 0 ? defaultIndex : 0;
48
+ if (models.length <= SELECT_THRESHOLD) {
49
+ const { model } = await prompts({
50
+ type: 'select',
51
+ name: 'model',
52
+ message,
53
+ choices,
54
+ initial,
55
+ });
56
+ return model ?? null;
57
+ }
58
+ // Too many models — use autocomplete with filter
59
+ const { model } = await prompts({
60
+ type: 'autocomplete',
61
+ name: 'model',
62
+ message,
63
+ choices,
64
+ initial: defaultModel,
65
+ suggest: (input, choices) => {
66
+ const lower = input.toLowerCase();
67
+ return Promise.resolve(choices.filter((c) => c.title.toLowerCase().includes(lower)));
68
+ },
69
+ });
70
+ return model ?? null;
71
+ }
72
+ catch {
73
+ spinner.stop();
74
+ return await fallbackTextInput(message, defaultModel);
75
+ }
76
+ }
77
+ async function fallbackTextInput(message, defaultModel) {
78
+ const { model } = await prompts({
79
+ type: 'text',
80
+ name: 'model',
81
+ message: `${message} (could not fetch model list)`,
82
+ initial: defaultModel,
83
+ });
84
+ return model ?? null;
85
+ }
86
+ function formatContextWindow(tokens) {
87
+ if (tokens >= 1_000_000)
88
+ return `${(tokens / 1_000_000).toFixed(1)}M ctx`;
89
+ if (tokens >= 1_000)
90
+ return `${Math.round(tokens / 1_000)}K ctx`;
91
+ return `${tokens} ctx`;
92
+ }
93
+ //# 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"}
@@ -0,0 +1,57 @@
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 chalk from 'chalk';
11
+ import { AGENT_ROLE_LABELS } from '../../agents/types.js';
12
+ /** Max characters to show on the streaming preview line. */
13
+ const PREVIEW_MAX = 80;
14
+ /**
15
+ * Create a streaming renderer for a given agent role.
16
+ *
17
+ * @returns An object with `callbacks` (pass to executeStreaming) and
18
+ * `finish()` (call after the agent completes to clean up output).
19
+ */
20
+ export function createStreamRenderer(agentRole) {
21
+ const label = AGENT_ROLE_LABELS[agentRole];
22
+ let lineLength = 0;
23
+ let headerPrinted = false;
24
+ const callbacks = {
25
+ onChunk(text) {
26
+ if (!headerPrinted) {
27
+ process.stdout.write(chalk.bold(` ${label}: `));
28
+ headerPrinted = true;
29
+ }
30
+ // Only show the preview portion (single line, truncated)
31
+ for (const char of text) {
32
+ if (char === '\n')
33
+ continue; // Skip newlines for preview
34
+ if (lineLength >= PREVIEW_MAX)
35
+ continue;
36
+ process.stdout.write(chalk.gray(char));
37
+ lineLength++;
38
+ }
39
+ },
40
+ onComplete() {
41
+ if (lineLength > 0 || headerPrinted) {
42
+ if (lineLength >= PREVIEW_MAX) {
43
+ process.stdout.write(chalk.gray('…'));
44
+ }
45
+ process.stdout.write('\n');
46
+ }
47
+ },
48
+ };
49
+ function finish() {
50
+ // Ensure newline if nothing was printed
51
+ if (headerPrinted && lineLength === 0) {
52
+ process.stdout.write('\n');
53
+ }
54
+ }
55
+ return { callbacks, finish };
56
+ }
57
+ //# sourceMappingURL=stream-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-renderer.js","sourceRoot":"","sources":["../../../src/cli/utils/stream-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,4DAA4D;AAC5D,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAoB;IAIrD,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,MAAM,SAAS,GAAoB;QAC/B,OAAO,CAAC,IAAY;YAChB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;gBACjD,aAAa,GAAG,IAAI,CAAC;YACzB,CAAC;YAED,yDAAyD;YACzD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACtB,IAAI,IAAI,KAAK,IAAI;oBAAE,SAAS,CAAC,4BAA4B;gBACzD,IAAI,UAAU,IAAI,WAAW;oBAAE,SAAS;gBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvC,UAAU,EAAE,CAAC;YACjB,CAAC;QACL,CAAC;QACD,UAAU;YACN,IAAI,UAAU,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;gBAClC,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;oBAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;KACJ,CAAC;IAEF,SAAS,MAAM;QACX,wCAAwC;QACxC,IAAI,aAAa,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC"}