@aiagentflow/cli 0.2.1 → 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 (50) 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 -1
  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 +55 -35
  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 +204 -75
  26. package/dist/core/config/schema.d.ts.map +1 -1
  27. package/dist/core/config/schema.js +18 -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/openai.d.ts +54 -0
  42. package/dist/providers/openai.d.ts.map +1 -0
  43. package/dist/providers/openai.js +232 -0
  44. package/dist/providers/openai.js.map +1 -0
  45. package/dist/providers/registry.d.ts.map +1 -1
  46. package/dist/providers/registry.js +17 -1
  47. package/dist/providers/registry.js.map +1 -1
  48. package/dist/providers/types.d.ts +1 -1
  49. package/dist/providers/types.d.ts.map +1 -1
  50. 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,SAuDpB,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,7 +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 : !!config.providers.ollama;
44
+ const isConfigured = !!config.providers[name];
45
45
  if (isConfigured) {
46
46
  console.log(chalk.red(` ✘ ${name} — connection failed`));
47
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,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"}
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,7 +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' : 'Ollama (Local Models) — free, no API key needed',
123
+ title: PROVIDER_DESCRIPTIONS[p],
122
124
  value: p,
123
125
  selected: p === 'ollama',
124
126
  })),
@@ -146,6 +148,38 @@ async function runWizard(projectRoot) {
146
148
  apiVersion: '2023-06-01',
147
149
  };
148
150
  }
151
+ if (selectedProviders.includes('openai')) {
152
+ const openaiAnswers = await prompts([
153
+ {
154
+ type: 'password',
155
+ name: 'apiKey',
156
+ message: 'OpenAI API key:',
157
+ validate: (val) => val.length >= 8 || 'API key seems too short',
158
+ },
159
+ ]);
160
+ if (!openaiAnswers.apiKey)
161
+ return null;
162
+ config.providers.openai = {
163
+ apiKey: openaiAnswers.apiKey,
164
+ baseUrl: 'https://api.openai.com',
165
+ };
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
+ }
149
183
  if (selectedProviders.includes('ollama')) {
150
184
  const ollamaAnswers = await prompts({
151
185
  type: 'text',
@@ -160,9 +194,8 @@ async function runWizard(projectRoot) {
160
194
  // ── Step 4: Agent Model Assignment ──
161
195
  logger.step(4, 6, 'Agent Model Assignment');
162
196
  const hasMixableProviders = selectedProviders.length > 1;
163
- // Helper to get default model for a provider
164
- const getDefaultModel = (p) => p === 'anthropic' ? 'claude-sonnet-4-20250514' : 'llama3.2:latest';
165
- const providerLabel = (p) => p === 'anthropic' ? 'Anthropic (Claude)' : 'Ollama (Local)';
197
+ const getDefaultModel = (p) => PROVIDER_DEFAULT_MODELS[p];
198
+ const providerLabel = (p) => PROVIDER_LABELS[p];
166
199
  if (hasMixableProviders) {
167
200
  // Multiple providers — let user choose assignment strategy
168
201
  console.log(chalk.gray(' You have multiple providers. You can assign them per agent role.'));
@@ -193,7 +226,7 @@ async function runWizard(projectRoot) {
193
226
  });
194
227
  if (!preferredProvider)
195
228
  return null;
196
- const model = getDefaultModel(preferredProvider);
229
+ const model = await pickModel(preferredProvider, config.providers, 'Model for all agents:') ?? getDefaultModel(preferredProvider);
197
230
  for (const role of ALL_AGENT_ROLES) {
198
231
  config.agents[role] = {
199
232
  ...config.agents[role],
@@ -205,7 +238,10 @@ async function runWizard(projectRoot) {
205
238
  }
206
239
  else if (assignmentMode === 'smart') {
207
240
  // Reasoning roles → cloud (anthropic), generation roles → local (ollama)
208
- const cloudProvider = selectedProviders.includes('anthropic') ? 'anthropic' : selectedProviders[0];
241
+ const cloudProvider = selectedProviders.includes('anthropic') ? 'anthropic'
242
+ : selectedProviders.includes('openai') ? 'openai'
243
+ : selectedProviders.includes('gemini') ? 'gemini'
244
+ : selectedProviders[0];
209
245
  const localProvider = selectedProviders.includes('ollama') ? 'ollama' : selectedProviders[0];
210
246
  const reasoningRoles = ['architect', 'reviewer', 'judge'];
211
247
  const generationRoles = ['coder', 'tester', 'fixer'];
@@ -234,26 +270,20 @@ async function runWizard(projectRoot) {
234
270
  // Custom: ask per role
235
271
  for (const role of ALL_AGENT_ROLES) {
236
272
  const label = AGENT_ROLE_LABELS[role];
237
- const roleAnswers = await prompts([
238
- {
239
- type: 'select',
240
- name: 'provider',
241
- message: `${label} provider:`,
242
- choices: selectedProviders.map((p) => ({ title: providerLabel(p), value: p })),
243
- },
244
- {
245
- type: 'text',
246
- name: 'model',
247
- message: `${label} — model:`,
248
- initial: (_prev, answers) => getDefaultModel((answers.provider ?? selectedProviders[0])),
249
- },
250
- ]);
251
- 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)
252
280
  return null;
281
+ const chosenProvider = roleProvider;
282
+ const model = await pickModel(chosenProvider, config.providers, `${label} — model:`) ?? getDefaultModel(chosenProvider);
253
283
  config.agents[role] = {
254
284
  ...config.agents[role],
255
- provider: roleAnswers.provider,
256
- model: roleAnswers.model,
285
+ provider: chosenProvider,
286
+ model,
257
287
  };
258
288
  }
259
289
  }
@@ -270,12 +300,7 @@ async function runWizard(projectRoot) {
270
300
  initial: true,
271
301
  });
272
302
  if (customizeModel) {
273
- const { model } = await prompts({
274
- type: 'text',
275
- name: 'model',
276
- message: 'Model to use for all agents:',
277
- initial: defaultModel,
278
- });
303
+ const model = await pickModel(defaultProvider, config.providers, 'Model to use for all agents:');
279
304
  for (const role of ALL_AGENT_ROLES) {
280
305
  config.agents[role] = {
281
306
  ...config.agents[role],
@@ -287,12 +312,7 @@ async function runWizard(projectRoot) {
287
312
  else {
288
313
  for (const role of ALL_AGENT_ROLES) {
289
314
  const label = AGENT_ROLE_LABELS[role];
290
- const { model } = await prompts({
291
- type: 'text',
292
- name: 'model',
293
- message: `${label} — model:`,
294
- initial: defaultModel,
295
- });
315
+ const model = await pickModel(defaultProvider, config.providers, `${label} — model:`);
296
316
  config.agents[role] = {
297
317
  ...config.agents[role],
298
318
  provider: defaultProvider,
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACzG,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAkB,MAAM,uBAAuB,CAAC;AAE3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KACzC,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,aAAa,EAAE,kCAAkC,CAAC;KACzD,MAAM,CAAC,WAAW,EAAE,mCAAmC,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,OAA2C,EAAE,EAAE;IAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAE7C,4BAA4B;IAC5B,IAAI,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC;YAChC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,0CAA0C;YACnD,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO;QACX,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QACvD,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAChC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,CAAC,OAAO,CAAC,0BAA0B,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC;QACjF,OAAO;IACX,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IACvD,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChC,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,CAAC,OAAO,CAAC,0BAA0B,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAExE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,GAAG,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEP;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,WAAmB;IACxC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IAEnD,kCAAkC;IAClC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACtC,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC;QACjC;YACI,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE;gBACL,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;gBAC5C,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;gBAC5C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACpC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC5B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;aACrC;YACD,OAAO,EAAE,CAAC;SACb;QACD;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,wBAAwB;YACjC,OAAO,EAAE,MAAM;SAClB;QACD;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,QAAQ;SACpB;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE1C,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IAClD,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;IACpD,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC;IAE5D,mCAAmC;IACnC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC;QAClC,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,wEAAwE;QACjF,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,KAAK,EAAE,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,iDAAiD;YACtH,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC,KAAK,QAAQ;SAC3B,CAAC,CAAC;QACH,GAAG,EAAE,CAAC;KACT,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,iBAAiB,GAAG,eAAe,CAAC,SAA8B,CAAC;IAEzE,uCAAuC;IACvC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAEvC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1C,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC;YACnC;gBACI,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,oBAAoB;gBAC7B,QAAQ,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,yBAAyB;aAC1E;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAE1C,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG;YACzB,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,OAAO,EAAE,2BAA2B;YACpC,UAAU,EAAE,YAAY;SAC3B,CAAC;IACN,CAAC;IAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;YAChC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,wBAAwB;SACpC,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG;YACtB,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,wBAAwB;SAC7D,CAAC;IACN,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,wBAAwB,CAAC,CAAC;IAE5C,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IAEzD,6CAA6C;IAC7C,MAAM,eAAe,GAAG,CAAC,CAAkB,EAAE,EAAE,CAC3C,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEvE,MAAM,aAAa,GAAG,CAAC,CAAkB,EAAE,EAAE,CACzC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAEhE,IAAI,mBAAmB,EAAE,CAAC;QACtB,2DAA2D;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,OAAO,CAAC;YACrC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,gDAAgD;YACzD,OAAO,EAAE;gBACL,EAAE,KAAK,EAAE,kCAAkC,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAC9D,EAAE,KAAK,EAAE,qDAAqD,EAAE,KAAK,EAAE,OAAO,EAAE;gBAChF,EAAE,KAAK,EAAE,mCAAmC,EAAE,KAAK,EAAE,QAAQ,EAAE;aAClE;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEjC,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,OAAO,CAAC;gBACxC,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,gCAAgC;gBACzC,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;oBACvB,KAAK,EAAE,CAAC;iBACX,CAAC,CAAC;aACN,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB;gBAAE,OAAO,IAAI,CAAC;YAEpC,MAAM,KAAK,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;YACjD,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;oBAClB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,iBAAiB;oBAC3B,KAAK;iBACR,CAAC;YACN,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,iBAAiB,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;QAE9E,CAAC;aAAM,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;YACpC,yEAAyE;YACzE,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAE,CAAC;YACpG,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAE,CAAC;YAE9F,MAAM,cAAc,GAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACvE,MAAM,eAAe,GAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;oBAClB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,aAAa;oBACvB,KAAK,EAAE,eAAe,CAAC,aAAa,CAAC;iBACxC,CAAC;YACN,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;oBAClB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,aAAa;oBACvB,KAAK,EAAE,eAAe,CAAC,aAAa,CAAC;iBACxC,CAAC;YACN,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YACzC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpG,CAAC;QAEL,CAAC;aAAM,CAAC;YACJ,uBAAuB;YACvB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;oBAC9B;wBACI,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,GAAG,KAAK,cAAc;wBAC/B,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;qBACjF;oBACD;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,GAAG,KAAK,WAAW;wBAC5B,OAAO,EAAE,CAAC,KAAc,EAAE,OAA8B,EAAE,EAAE,CACxD,eAAe,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC,CAAC,CAAE,CAAoB,CAAC;qBACtF;iBACJ,CAAC,CAAC;gBAEH,IAAI,CAAC,WAAW,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAEvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;oBAClB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,KAAK,EAAE,WAAW,CAAC,KAAK;iBAC3B,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,iCAAiC;QACjC,MAAM,eAAe,GAAG,iBAAiB,CAAC,CAAC,CAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,OAAO,CAAC;YACrC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,8DAA8D;YACvE,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,IAAI,cAAc,EAAE,CAAC;YACjB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC;gBAC5B,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,8BAA8B;gBACvC,OAAO,EAAE,YAAY;aACxB,CAAC,CAAC;YAEH,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;oBAClB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,eAAe;oBACzB,KAAK,EAAE,KAAK,IAAI,YAAY;iBAC/B,CAAC;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC;oBAC5B,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,GAAG,KAAK,WAAW;oBAC5B,OAAO,EAAE,YAAY;iBACxB,CAAC,CAAC;gBAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;oBAClB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,eAAe;oBACzB,KAAK,EAAE,KAAK,IAAI,YAAY;iBAC/B,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC;QAClC;YACI,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,8BAA8B;YACvC,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,EAAE;SACV;QACD;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,wCAAwC;YACjD,OAAO,EAAE,IAAI;SAChB;QACD;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,uCAAuC;YAChD,OAAO,EAAE,IAAI;SAChB;KACJ,CAAC,CAAC;IAEH,MAAM,CAAC,QAAQ,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,QAAQ,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa,IAAI,IAAI,CAAC;IACtE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,IAAI,IAAI,CAAC;IAE5E,kCAAkC;IAClC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC,CAAC;IAClG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,OAAO,CAAC;QACrC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,qEAAqE;QAC9E,OAAO,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,IAAI,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC;YAC/B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,uCAAuC;YAChD,SAAS,EAAE,GAAG;SACjB,CAAC,CAAC;QAEH,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;YACjE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEtB,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAEvB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;oBACpD,SAAS;gBACb,CAAC;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClD,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,UAAU,OAAO,2BAA2B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC/E,MAAM,EAAE,CAAC;YACb,CAAC;YAED,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACb,MAAM,CAAC,OAAO,CAAC,UAAU,MAAM,uCAAuC,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
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"}