@statechange/council 0.9.1 → 0.11.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 (135) hide show
  1. package/README.md +22 -8
  2. package/dist/backends/anthropic.js +12 -1
  3. package/dist/backends/anthropic.js.map +1 -1
  4. package/dist/backends/google.js +14 -0
  5. package/dist/backends/google.js.map +1 -1
  6. package/dist/backends/ollama.js +10 -0
  7. package/dist/backends/ollama.js.map +1 -1
  8. package/dist/backends/openai.js +11 -0
  9. package/dist/backends/openai.js.map +1 -1
  10. package/dist/backends/types.d.ts +1 -1
  11. package/dist/cli.js +13 -0
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands/discuss.js +20 -4
  14. package/dist/commands/discuss.js.map +1 -1
  15. package/dist/commands/models.d.ts +5 -0
  16. package/dist/commands/models.js +54 -0
  17. package/dist/commands/models.js.map +1 -0
  18. package/dist/commands/update.d.ts +1 -0
  19. package/dist/commands/update.js +100 -0
  20. package/dist/commands/update.js.map +1 -0
  21. package/dist/core/conversation-engine.js +15 -0
  22. package/dist/core/conversation-engine.js.map +1 -1
  23. package/dist/core/preflight.d.ts +17 -0
  24. package/dist/core/preflight.js +56 -0
  25. package/dist/core/preflight.js.map +1 -0
  26. package/dist/electron/ipc-handlers.js +40 -3
  27. package/dist/electron/ipc-handlers.js.map +1 -1
  28. package/dist/electron/preload.js +1 -0
  29. package/dist/electron/preload.js.map +1 -1
  30. package/dist/types.d.ts +9 -0
  31. package/dist-electron/main.js +764 -654
  32. package/dist-electron/preload.mjs +1 -1
  33. package/dist-renderer/assets/{ar-SA-G6X2FPQ2-DJTj94ZY.js → ar-SA-G6X2FPQ2-DT1ABS9g.js} +1 -1
  34. package/dist-renderer/assets/{arc-3qXpUeCd.js → arc-B7OfCKe9.js} +1 -1
  35. package/dist-renderer/assets/{az-AZ-76LH7QW2-1qnzBARG.js → az-AZ-76LH7QW2-D8wBYMaH.js} +1 -1
  36. package/dist-renderer/assets/{bg-BG-XCXSNQG7-BIZ5IFAv.js → bg-BG-XCXSNQG7-BzDdz5-g.js} +1 -1
  37. package/dist-renderer/assets/{blockDiagram-38ab4fdb-JwSYiuLB.js → blockDiagram-38ab4fdb-DRwhQ-xk.js} +1 -1
  38. package/dist-renderer/assets/{bn-BD-2XOGV67Q-DiYpgYAg.js → bn-BD-2XOGV67Q-Bhihwwmv.js} +1 -1
  39. package/dist-renderer/assets/{c4Diagram-3d4e48cf-DUCtOTzV.js → c4Diagram-3d4e48cf-BKt-lwYH.js} +1 -1
  40. package/dist-renderer/assets/{ca-ES-6MX7JW3Y-CV2JFVcm.js → ca-ES-6MX7JW3Y-BXRLXOfx.js} +1 -1
  41. package/dist-renderer/assets/channel-BThr2Pht.js +1 -0
  42. package/dist-renderer/assets/{classDiagram-70f12bd4-DY_je9I9.js → classDiagram-70f12bd4-DCF0wJjS.js} +1 -1
  43. package/dist-renderer/assets/{classDiagram-v2-f2320105-Dm2xf0kS.js → classDiagram-v2-f2320105-DUqV3auX.js} +1 -1
  44. package/dist-renderer/assets/clone-Dzrmu-hX.js +1 -0
  45. package/dist-renderer/assets/{createText-2e5e7dd3-BU4YlynJ.js → createText-2e5e7dd3-jZiKHT8b.js} +1 -1
  46. package/dist-renderer/assets/{cs-CZ-2BRQDIVT-DgefxJv2.js → cs-CZ-2BRQDIVT-C2n_W20l.js} +1 -1
  47. package/dist-renderer/assets/{da-DK-5WZEPLOC-CQeMoU_Y.js → da-DK-5WZEPLOC-BMyGcTrK.js} +1 -1
  48. package/dist-renderer/assets/{de-DE-XR44H4JA-Cm7XiExL.js → de-DE-XR44H4JA-DSalSqLg.js} +1 -1
  49. package/dist-renderer/assets/{edges-e0da2a9e-DU4SF3SK.js → edges-e0da2a9e-CxH4eozj.js} +1 -1
  50. package/dist-renderer/assets/{el-GR-BZB4AONW-BKDtOlnf.js → el-GR-BZB4AONW-6JczKU8m.js} +1 -1
  51. package/dist-renderer/assets/{erDiagram-9861fffd-D_cCijmv.js → erDiagram-9861fffd-zrWbiPwE.js} +1 -1
  52. package/dist-renderer/assets/{es-ES-U4NZUMDT-Blb_L7K-.js → es-ES-U4NZUMDT-W3x9nuJM.js} +1 -1
  53. package/dist-renderer/assets/{eu-ES-A7QVB2H4-BZJBLMeO.js → eu-ES-A7QVB2H4-DWPIl7U2.js} +1 -1
  54. package/dist-renderer/assets/{fa-IR-HGAKTJCU-C8gu07sI.js → fa-IR-HGAKTJCU-6f-gS7va.js} +1 -1
  55. package/dist-renderer/assets/{fi-FI-Z5N7JZ37-0j8c6s09.js → fi-FI-Z5N7JZ37-D9INJayl.js} +1 -1
  56. package/dist-renderer/assets/{flowDb-956e92f1-BYeD7SW0.js → flowDb-956e92f1-BcD3knfQ.js} +1 -1
  57. package/dist-renderer/assets/{flowDiagram-66a62f08-D_7wXttk.js → flowDiagram-66a62f08-ueJuroOL.js} +1 -1
  58. package/dist-renderer/assets/flowDiagram-v2-96b9c2cf-Bc_edFJX.js +1 -0
  59. package/dist-renderer/assets/{flowchart-elk-definition-4a651766-G1tSg-iY.js → flowchart-elk-definition-4a651766-YvyrdIKN.js} +1 -1
  60. package/dist-renderer/assets/{fr-FR-RHASNOE6-_cfaQNNq.js → fr-FR-RHASNOE6-Cs8X8O3s.js} +1 -1
  61. package/dist-renderer/assets/{ganttDiagram-c361ad54-Dk5lBh7P.js → ganttDiagram-c361ad54-DUs5xgl-.js} +1 -1
  62. package/dist-renderer/assets/{gitGraphDiagram-72cf32ee-BzJAQtIC.js → gitGraphDiagram-72cf32ee-DerrZoOI.js} +1 -1
  63. package/dist-renderer/assets/{gl-ES-HMX3MZ6V-GM5nrSrW.js → gl-ES-HMX3MZ6V-id5cZnrR.js} +1 -1
  64. package/dist-renderer/assets/{graph-C_xi4PaI.js → graph-qZGJ3a_0.js} +1 -1
  65. package/dist-renderer/assets/{he-IL-6SHJWFNN-DvBtF7-G.js → he-IL-6SHJWFNN-ClkmOrEY.js} +1 -1
  66. package/dist-renderer/assets/{hi-IN-IWLTKZ5I-CNEB0-5K.js → hi-IN-IWLTKZ5I-XcT0be4B.js} +1 -1
  67. package/dist-renderer/assets/{hu-HU-A5ZG7DT2-BmzYfJwp.js → hu-HU-A5ZG7DT2-BauiuWYa.js} +1 -1
  68. package/dist-renderer/assets/{id-ID-SAP4L64H-CGCjaOLU.js → id-ID-SAP4L64H-BjwDtEsw.js} +1 -1
  69. package/dist-renderer/assets/{index-3862675e-C8a4355J.js → index-3862675e--n2KjoQQ.js} +1 -1
  70. package/dist-renderer/assets/{index-Cc7m7vZn.js → index-Bff8gOpX.js} +29 -29
  71. package/dist-renderer/assets/{index-x_yLI1Xq.js → index-DiVVwzho.js} +4 -4
  72. package/dist-renderer/assets/index-qNRDTlPC.css +1 -0
  73. package/dist-renderer/assets/{infoDiagram-f8f76790-BsJdteru.js → infoDiagram-f8f76790-D5cAW55N.js} +1 -1
  74. package/dist-renderer/assets/{it-IT-JPQ66NNP-vK6cBs4I.js → it-IT-JPQ66NNP-GSOK3zyA.js} +1 -1
  75. package/dist-renderer/assets/{ja-JP-DBVTYXUO-oUvELdsq.js → ja-JP-DBVTYXUO-BqdBOVtd.js} +1 -1
  76. package/dist-renderer/assets/{journeyDiagram-49397b02-BZcn-joQ.js → journeyDiagram-49397b02-D3g-8QZM.js} +1 -1
  77. package/dist-renderer/assets/{kaa-6HZHGXH3-39-zh5xR.js → kaa-6HZHGXH3-BhCfH7Nw.js} +1 -1
  78. package/dist-renderer/assets/{kab-KAB-ZGHBKWFO-DIwwJSlv.js → kab-KAB-ZGHBKWFO-BiEpzhMA.js} +1 -1
  79. package/dist-renderer/assets/{kk-KZ-P5N5QNE5-jEG0G6v4.js → kk-KZ-P5N5QNE5-DQL7tI7B.js} +1 -1
  80. package/dist-renderer/assets/{km-KH-HSX4SM5Z-f0MtADYu.js → km-KH-HSX4SM5Z-BNzGZwqS.js} +1 -1
  81. package/dist-renderer/assets/{ko-KR-MTYHY66A-D0sjNbcb.js → ko-KR-MTYHY66A-BrTGfdJs.js} +1 -1
  82. package/dist-renderer/assets/{ku-TR-6OUDTVRD-D_uqAOZU.js → ku-TR-6OUDTVRD-DV6qxsd3.js} +1 -1
  83. package/dist-renderer/assets/{layout-Bho0HnCB.js → layout-qt9ncKQO.js} +1 -1
  84. package/dist-renderer/assets/{line-BvfrpBJA.js → line-LCvRLu_z.js} +1 -1
  85. package/dist-renderer/assets/{linear-CzjqC3F_.js → linear-B1dFt2Mi.js} +1 -1
  86. package/dist-renderer/assets/{lt-LT-XHIRWOB4-Ct0yC4CT.js → lt-LT-XHIRWOB4-WVGEZ27s.js} +1 -1
  87. package/dist-renderer/assets/{lv-LV-5QDEKY6T-nkNbPHg0.js → lv-LV-5QDEKY6T-77cng2TE.js} +1 -1
  88. package/dist-renderer/assets/{mindmap-definition-fc14e90a-BHot8rEp.js → mindmap-definition-fc14e90a-DNtcEEqa.js} +1 -1
  89. package/dist-renderer/assets/{mr-IN-CRQNXWMA-B861rik7.js → mr-IN-CRQNXWMA-BFexevhO.js} +1 -1
  90. package/dist-renderer/assets/{my-MM-5M5IBNSE-SOXg7PeE.js → my-MM-5M5IBNSE-C9Vf2u64.js} +1 -1
  91. package/dist-renderer/assets/{nb-NO-T6EIAALU-D22gGzt7.js → nb-NO-T6EIAALU-B6nE3WpA.js} +1 -1
  92. package/dist-renderer/assets/{nl-NL-IS3SIHDZ-CJxOBLb1.js → nl-NL-IS3SIHDZ-CaRaqbQC.js} +1 -1
  93. package/dist-renderer/assets/{nn-NO-6E72VCQL-FGcbdlO3.js → nn-NO-6E72VCQL-DgeqKi0O.js} +1 -1
  94. package/dist-renderer/assets/{oc-FR-POXYY2M6-s7Swo1Cu.js → oc-FR-POXYY2M6-BE5foCrM.js} +1 -1
  95. package/dist-renderer/assets/{pa-IN-N4M65BXN-DFJMREPh.js → pa-IN-N4M65BXN-YstXUC1N.js} +1 -1
  96. package/dist-renderer/assets/{percentages-BXMCSKIN-BhceqxTM.js → percentages-BXMCSKIN-ClEmrH5S.js} +7 -7
  97. package/dist-renderer/assets/{pica-ej4Z4fjh.js → pica-BzhwS7O9.js} +1 -1
  98. package/dist-renderer/assets/{pieDiagram-8a3498a8-CnDnQfd0.js → pieDiagram-8a3498a8-Gm6b2Dvv.js} +1 -1
  99. package/dist-renderer/assets/{pl-PL-T2D74RX3-uXVmB6im.js → pl-PL-T2D74RX3-BYANIPnT.js} +1 -1
  100. package/dist-renderer/assets/{pt-BR-5N22H2LF-8kdgECeZ.js → pt-BR-5N22H2LF-Crb41rJn.js} +1 -1
  101. package/dist-renderer/assets/{pt-PT-UZXXM6DQ-D4vr9vo6.js → pt-PT-UZXXM6DQ-BZb84OUI.js} +1 -1
  102. package/dist-renderer/assets/{quadrantDiagram-120e2f19-DlUESmO2.js → quadrantDiagram-120e2f19-uZf8ZOq7.js} +1 -1
  103. package/dist-renderer/assets/{requirementDiagram-deff3bca-CfOs9jR8.js → requirementDiagram-deff3bca-CXv-XkpA.js} +1 -1
  104. package/dist-renderer/assets/{ro-RO-JPDTUUEW-CztO0tWv.js → ro-RO-JPDTUUEW-pVMFDrzX.js} +1 -1
  105. package/dist-renderer/assets/{ru-RU-B4JR7IUQ-aVURliDr.js → ru-RU-B4JR7IUQ-BqvZXiAC.js} +1 -1
  106. package/dist-renderer/assets/{sankeyDiagram-04a897e0-DRRc8FSN.js → sankeyDiagram-04a897e0-BE7SzdTQ.js} +1 -1
  107. package/dist-renderer/assets/{sequenceDiagram-704730f1-BaswaqQO.js → sequenceDiagram-704730f1-mDPi1i-N.js} +1 -1
  108. package/dist-renderer/assets/{si-LK-N5RQ5JYF-B2KWtx6N.js → si-LK-N5RQ5JYF-CJNPpP3j.js} +1 -1
  109. package/dist-renderer/assets/{sk-SK-C5VTKIMK-DlRzLxRJ.js → sk-SK-C5VTKIMK-BrOHOeIl.js} +1 -1
  110. package/dist-renderer/assets/{sl-SI-NN7IZMDC-Ox8yiRTS.js → sl-SI-NN7IZMDC-CS9lfsZo.js} +1 -1
  111. package/dist-renderer/assets/{stateDiagram-587899a1-DSEEonbL.js → stateDiagram-587899a1-X1op9_rl.js} +1 -1
  112. package/dist-renderer/assets/{stateDiagram-v2-d93cdb3a-C135NgbB.js → stateDiagram-v2-d93cdb3a-DW1QycRH.js} +1 -1
  113. package/dist-renderer/assets/{styles-6aaf32cf-X5nh1pD3.js → styles-6aaf32cf-DPaq63ON.js} +1 -1
  114. package/dist-renderer/assets/{styles-9a916d00-BCZu272E.js → styles-9a916d00-BuzHNqFw.js} +1 -1
  115. package/dist-renderer/assets/{styles-c10674c1-C5JGHSaS.js → styles-c10674c1-DMm_j-y2.js} +1 -1
  116. package/dist-renderer/assets/{subset-shared.chunk-CzgdV5hf.js → subset-shared.chunk-3Aplsfln.js} +1 -1
  117. package/dist-renderer/assets/{subset-worker.chunk-DfLYxc1O.js → subset-worker.chunk-4W4tHba_.js} +1 -1
  118. package/dist-renderer/assets/{sv-SE-XGPEYMSR-CizFbLCT.js → sv-SE-XGPEYMSR-DmtGm_CR.js} +1 -1
  119. package/dist-renderer/assets/{svgDrawCommon-08f97a94-Cv5ZIzzk.js → svgDrawCommon-08f97a94-Cwi8wjQD.js} +1 -1
  120. package/dist-renderer/assets/{ta-IN-2NMHFXQM-B66K2LEN.js → ta-IN-2NMHFXQM-6iYbXM4R.js} +1 -1
  121. package/dist-renderer/assets/{th-TH-HPSO5L25-DvHt1SBY.js → th-TH-HPSO5L25-CeMt3K_X.js} +1 -1
  122. package/dist-renderer/assets/{timeline-definition-85554ec2-C955-u4m.js → timeline-definition-85554ec2-DDvzM2vU.js} +1 -1
  123. package/dist-renderer/assets/{tr-TR-DEFEU3FU-u0AuqRoD.js → tr-TR-DEFEU3FU-kKNTgK1x.js} +1 -1
  124. package/dist-renderer/assets/{uk-UA-QMV73CPH-IwAiPvJL.js → uk-UA-QMV73CPH-DXv_zymS.js} +1 -1
  125. package/dist-renderer/assets/{vi-VN-M7AON7JQ-Dh6Aj3f5.js → vi-VN-M7AON7JQ-DeRc6V7y.js} +1 -1
  126. package/dist-renderer/assets/{xychartDiagram-e933f94c-Bst4jMma.js → xychartDiagram-e933f94c-Bwdd1C-0.js} +1 -1
  127. package/dist-renderer/assets/{zh-CN-LNUGB5OW-BVXMa9T3.js → zh-CN-LNUGB5OW-DAkhZJEJ.js} +1 -1
  128. package/dist-renderer/assets/{zh-HK-E62DVLB3-DYEIu92z.js → zh-HK-E62DVLB3-MU8npHxs.js} +1 -1
  129. package/dist-renderer/assets/{zh-TW-RAJ6MFWO-Dm9oSthu.js → zh-TW-RAJ6MFWO-BHTDbzbd.js} +1 -1
  130. package/dist-renderer/index.html +2 -2
  131. package/package.json +1 -1
  132. package/dist-renderer/assets/channel-BFQOS5-A.js +0 -1
  133. package/dist-renderer/assets/clone-BdgQjyvt.js +0 -1
  134. package/dist-renderer/assets/flowDiagram-v2-96b9c2cf-ue4yLZei.js +0 -1
  135. package/dist-renderer/assets/index-CYsh274_.css +0 -1
package/README.md CHANGED
@@ -63,6 +63,13 @@ council history # List past discussions
63
63
  council history <id> # View a specific discussion
64
64
  ```
65
65
 
66
+ ### Browse available models
67
+
68
+ ```bash
69
+ council models # List models for all backends
70
+ council models google # List models for a specific backend
71
+ ```
72
+
66
73
  ### Configure backends
67
74
 
68
75
  ```bash
@@ -140,19 +147,26 @@ Enable post-discussion summaries (and debate interim summaries) by adding a `sec
140
147
  "backends": { "..." : "..." },
141
148
  "secretary": {
142
149
  "backend": "anthropic",
143
- "model": "claude-sonnet-4-5-20250929"
150
+ "model": "claude-sonnet-4-6"
144
151
  }
145
152
  }
146
153
  ```
147
154
 
148
155
  ### Supported Backends
149
156
 
150
- | Backend | Default Model | API Key |
151
- |---------|--------------|---------|
152
- | anthropic | claude-sonnet-4-5-20250929 | `ANTHROPIC_API_KEY` |
153
- | openai | gpt-4o | `OPENAI_API_KEY` |
154
- | google | gemini-2.0-flash | `GOOGLE_API_KEY` |
155
- | ollama | llama3.2 | None (local) |
157
+ | Backend | API Key | Example Models |
158
+ |---------|---------|----------------|
159
+ | anthropic | `ANTHROPIC_API_KEY` | All Claude models (Opus, Sonnet, Haiku) |
160
+ | openai | `OPENAI_API_KEY` | All GPT and o-series models |
161
+ | google | `GOOGLE_API_KEY` | All Gemini models (Pro, Flash, Flash-Lite) |
162
+ | ollama | None (local) | Any model you've pulled locally |
163
+
164
+ Each backend supports all current models from its provider. List available models with:
165
+
166
+ ```bash
167
+ council models # All backends
168
+ council models anthropic # Just one
169
+ ```
156
170
 
157
171
  ## Creating Councilors
158
172
 
@@ -173,7 +187,7 @@ name: "The Strategist"
173
187
  description: "Thinks in systems, moats, and long-term positioning"
174
188
  interests: ["strategy", "markets", "competition"]
175
189
  backend: "anthropic"
176
- model: "claude-sonnet-4-5-20250929"
190
+ model: "claude-sonnet-4-6"
177
191
  temperature: 0.7
178
192
  avatar: "avatar.jpg"
179
193
  ---
@@ -6,7 +6,7 @@ export function createAnthropicBackend(config) {
6
6
  });
7
7
  return {
8
8
  name: "anthropic",
9
- defaultModel: "claude-sonnet-4-5-20250929",
9
+ defaultModel: "claude-sonnet-4-6",
10
10
  async chat(request) {
11
11
  const response = await client.messages.create({
12
12
  model: request.model,
@@ -52,6 +52,17 @@ export function createAnthropicBackend(config) {
52
52
  },
53
53
  };
54
54
  },
55
+ async listModels() {
56
+ const models = [];
57
+ for await (const page of client.models.list({ limit: 100 })) {
58
+ models.push({
59
+ id: page.id,
60
+ name: page.display_name,
61
+ created: page.created_at,
62
+ });
63
+ }
64
+ return models.sort((a, b) => a.id.localeCompare(b.id));
65
+ },
55
66
  };
56
67
  }
57
68
  //# sourceMappingURL=anthropic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/backends/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/backends/anthropic.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,20 @@ export function createGoogleBackend(config) {
63
63
  : undefined,
64
64
  };
65
65
  },
66
+ async listModels() {
67
+ const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey}&pageSize=100`);
68
+ if (!response.ok)
69
+ throw new Error(`Google API error: ${response.status}`);
70
+ const data = (await response.json());
71
+ return (data.models || [])
72
+ .filter((m) => m.name.startsWith("models/gemini"))
73
+ .map((m) => ({
74
+ id: m.name.replace("models/", ""),
75
+ name: m.displayName,
76
+ description: m.description,
77
+ }))
78
+ .sort((a, b) => a.id.localeCompare(b.id));
79
+ },
66
80
  };
67
81
  }
68
82
  //# sourceMappingURL=google.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/backends/google.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/backends/google.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,16 @@ export function createOllamaBackend(config) {
63
63
  : undefined,
64
64
  };
65
65
  },
66
+ async listModels() {
67
+ const response = await client.list();
68
+ return response.models
69
+ .map((m) => ({
70
+ id: m.name,
71
+ name: m.name,
72
+ created: m.modified_at?.toString(),
73
+ }))
74
+ .sort((a, b) => a.id.localeCompare(b.id));
75
+ },
66
76
  };
67
77
  }
68
78
  //# sourceMappingURL=ollama.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/backends/ollama.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/backends/ollama.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,17 @@ export function createOpenAIBackend(config) {
57
57
  }
58
58
  }
59
59
  },
60
+ async listModels() {
61
+ const response = await client.models.list();
62
+ const models = [];
63
+ for await (const model of response) {
64
+ models.push({
65
+ id: model.id,
66
+ created: new Date(model.created * 1000).toISOString(),
67
+ });
68
+ }
69
+ return models.sort((a, b) => a.id.localeCompare(b.id));
70
+ },
60
71
  };
61
72
  }
62
73
  //# sourceMappingURL=openai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/backends/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/backends/openai.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export type { BackendProvider, BackendConfig, ChatRequest, ChatResponse, ChatStreamChunk } from "../types.js";
1
+ export type { BackendProvider, BackendConfig, ChatRequest, ChatResponse, ChatStreamChunk, ModelInfo } from "../types.js";
package/dist/cli.js CHANGED
@@ -11,6 +11,8 @@ import { CouncilorCommand } from "./commands/councilor.js";
11
11
  import { HistoryCommand } from "./commands/history.js";
12
12
  import { GuiCommand } from "./commands/gui.js";
13
13
  import { InstallCommand } from "./commands/install.js";
14
+ import { ModelsCommand } from "./commands/models.js";
15
+ import { UpdateCommand } from "./commands/update.js";
14
16
  const cli = meow(`
15
17
  Usage
16
18
  $ council <command> [options]
@@ -23,6 +25,8 @@ const cli = meow(`
23
25
  councilor add <path-or-url> Register a councilor from a local path or git URL
24
26
  councilor remove <id> Unregister a councilor (--yes to delete cloned files)
25
27
  councilor list List all registered councilors
28
+ models [backend] List available models (all backends, or specify one)
29
+ update Update council to the latest version
26
30
  gui Launch the Electron GUI
27
31
  install Install AI Council as a macOS application
28
32
  install --uninstall Remove AI Council from Applications
@@ -151,6 +155,15 @@ switch (command) {
151
155
  case "install":
152
156
  render(_jsx(InstallCommand, { uninstall: cli.flags.uninstall }));
153
157
  break;
158
+ case "update": {
159
+ render(_jsx(UpdateCommand, {}));
160
+ break;
161
+ }
162
+ case "models": {
163
+ const backendName = cli.input[1];
164
+ render(_jsx(ModelsCommand, { backend: backendName }));
165
+ break;
166
+ }
154
167
  case "config": {
155
168
  const sub = cli.input[1];
156
169
  if (!sub || !["show", "scan", "import"].includes(sub)) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { writeOutput } from "../core/output-formatter.js";
13
13
  import { saveToHistory } from "../core/history.js";
14
14
  import { runSecretary } from "../core/secretary.js";
15
15
  import { generateInfographic } from "../core/infographic.js";
16
+ import { preflightCheck } from "../core/preflight.js";
16
17
  import { log } from "../core/logger.js";
17
18
  import { enrichTopic } from "../core/topic-enricher.js";
18
19
  export function DiscussCommand({ topic, councilDir, councilorPaths, rounds, outputDir, format, infographic: generateInfographicFlag, mode = "freeform", }) {
@@ -28,6 +29,7 @@ export function DiscussCommand({ topic, councilDir, councilorPaths, rounds, outp
28
29
  const [infographicSaved, setInfographicSaved] = useState(false);
29
30
  const [roundSummaries, setRoundSummaries] = useState({});
30
31
  const [activeRoundSummary, setActiveRoundSummary] = useState("");
32
+ const [preflightIssues, setPreflightIssues] = useState([]);
31
33
  useEffect(() => {
32
34
  async function run() {
33
35
  try {
@@ -49,9 +51,22 @@ export function DiscussCommand({ topic, councilDir, councilorPaths, rounds, outp
49
51
  registeredPaths = getRegisteredPaths(cfg);
50
52
  }
51
53
  catch { /* no config */ }
52
- const councilors = councilorPaths?.length
54
+ const allCouncilors = councilorPaths?.length
53
55
  ? await loadSpecificCouncilors(councilorPaths)
54
56
  : await loadCouncilors(councilDir, registeredPaths);
57
+ // Pre-flight check: validate backends and models
58
+ setStatus("Validating councilors...");
59
+ const preflight = await preflightCheck(allCouncilors, setStatus);
60
+ if (preflight.invalid.length > 0) {
61
+ const issues = preflight.invalid.map((r) => ` ${r.councilor.frontmatter.name}: ${r.issues.join("; ")}`);
62
+ setPreflightIssues(issues);
63
+ log.warn("cli:discuss", `Preflight: ${preflight.invalid.length} councilor(s) have issues`, issues);
64
+ }
65
+ const councilors = preflight.valid;
66
+ if (councilors.length === 0) {
67
+ setError("No councilors passed pre-flight validation. Check backend API keys and model names.");
68
+ return;
69
+ }
55
70
  setStatus(`Starting ${mode === "debate" ? "debate" : "discussion"} with ${councilors.length} councilor${councilors.length > 1 ? "s" : ""} over ${rounds} round${rounds > 1 ? "s" : ""}`);
56
71
  const onEvent = (event) => {
57
72
  switch (event.type) {
@@ -147,12 +162,13 @@ export function DiscussCommand({ topic, councilDir, councilorPaths, rounds, outp
147
162
  }
148
163
  run();
149
164
  }, []);
165
+ const preflightWarnings = preflightIssues.length > 0 ? (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { color: "yellow", bold: true, children: ["Skipped ", preflightIssues.length, " councilor", preflightIssues.length > 1 ? "s" : "", " (failed pre-flight):"] }), preflightIssues.map((issue, i) => (_jsx(Text, { color: "yellow", children: issue }, i)))] })) : null;
150
166
  if (error) {
151
- return (_jsx(Box, { flexDirection: "column", children: _jsxs(Text, { color: "red", children: ["Error: ", error] }) }));
167
+ return (_jsxs(Box, { flexDirection: "column", children: [preflightWarnings, _jsxs(Text, { color: "red", children: ["Error: ", error] })] }));
152
168
  }
153
169
  if (done) {
154
- return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsx(Text, { color: "green", children: "Discussion complete!" }), _jsxs(Text, { children: [completedTurns.length, " turns across ", currentRound, " round", currentRound > 1 ? "s" : ""] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { bold: true, children: "Output files:" }), outputFiles.map((f) => (_jsxs(Text, { color: "cyan", children: [" ", f] }, f)))] }), Object.keys(roundSummaries).length > 0 && (_jsx(Box, { flexDirection: "column", marginTop: 1, children: Object.entries(roundSummaries).map(([round, summary]) => (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { bold: true, color: "yellow", children: ["Round ", round, " Summary:"] }), _jsx(Text, { children: summary })] }, round))) })), summaryStatus === "complete" && summaryText && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { bold: true, color: "blue", children: "Secretary's Summary:" }), _jsx(Text, { children: summaryText })] })), infographicSaved && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "magenta", children: "Infographic saved to history." }) }))] }));
170
+ return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [preflightWarnings, _jsx(Text, { color: "green", children: "Discussion complete!" }), _jsxs(Text, { children: [completedTurns.length, " turns across ", currentRound, " round", currentRound > 1 ? "s" : ""] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { bold: true, children: "Output files:" }), outputFiles.map((f) => (_jsxs(Text, { color: "cyan", children: [" ", f] }, f)))] }), Object.keys(roundSummaries).length > 0 && (_jsx(Box, { flexDirection: "column", marginTop: 1, children: Object.entries(roundSummaries).map(([round, summary]) => (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { bold: true, color: "yellow", children: ["Round ", round, " Summary:"] }), _jsx(Text, { children: summary })] }, round))) })), summaryStatus === "complete" && summaryText && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { bold: true, color: "blue", children: "Secretary's Summary:" }), _jsx(Text, { children: summaryText })] })), infographicSaved && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "magenta", children: "Infographic saved to history." }) }))] }));
155
171
  }
156
- return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: "green", children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { children: [" ", status] })] }), completedTurns.length > 0 && (_jsx(Box, { flexDirection: "column", marginTop: 1, children: completedTurns.slice(-3).map((turn, i) => (_jsxs(Text, { dimColor: true, children: ["Round ", turn.round, " \u2014 ", turn.councilorName, ": ", turn.content.slice(0, 80), "..."] }, i))) })), activeRoundSummary && (_jsx(Box, { flexDirection: "column", marginTop: 1, children: _jsxs(Text, { color: "yellow", dimColor: true, children: [activeRoundSummary.slice(0, 120), "..."] }) }))] }));
172
+ return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: "green", children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { children: [" ", status] })] }), completedTurns.length > 0 && (_jsx(Box, { flexDirection: "column", marginTop: 1, children: completedTurns.slice(-3).map((turn, i) => (_jsxs(Text, { dimColor: true, color: turn.error ? "red" : undefined, children: ["Round ", turn.round, " \u2014 ", turn.councilorName, ": ", turn.error ? `[Error: ${turn.error.slice(0, 60)}]` : `${turn.content.slice(0, 80)}...`] }, i))) })), activeRoundSummary && (_jsx(Box, { flexDirection: "column", marginTop: 1, children: _jsxs(Text, { color: "yellow", dimColor: true, children: [activeRoundSummary.slice(0, 120), "..."] }) }))] }));
157
173
  }
158
174
  //# sourceMappingURL=discuss.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discuss.js","sourceRoot":"","sources":["../../src/commands/discuss.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAcxD,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,UAAU,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,MAAM,EACN,WAAW,EAAE,uBAAuB,EACpC,IAAI,GAAG,UAAU,GACX;IACN,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAC9D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAqB,EAAE,CAAC,CAAC;IAC7E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAkC,MAAM,CAAC,CAAC;IAC5F,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAyB,EAAE,CAAC,CAAC;IACjF,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAEzE,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,UAAU,GAAG;YAChB,IAAI,CAAC;gBACH,gBAAgB;gBAChB,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,IAAI,WAAW,GAAsB,QAAQ,CAAC;gBAC9C,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtB,aAAa,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAC/C,WAAW,GAAG,MAAM,CAAC;gBACvB,CAAC;gBACD,mCAAmC;gBACnC,SAAS,CAAC,uBAAuB,CAAC,CAAC;gBACnC,aAAa,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAEvE,6BAA6B;gBAC7B,IAAI,GAAG,GAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAC1C,IAAI,eAAe,GAAa,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CACd,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CACvE,CAAC;oBACF,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;gBAE3B,MAAM,UAAU,GAAG,cAAc,EAAE,MAAM;oBACvC,CAAC,CAAC,MAAM,sBAAsB,CAAC,cAAc,CAAC;oBAC9C,CAAC,CAAC,MAAM,cAAc,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;gBAEtD,SAAS,CACP,YAAY,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,SAAS,UAAU,CAAC,MAAM,aAAa,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,MAAM,SAAS,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9K,CAAC;gBAEF,MAAM,OAAO,GAAG,CAAC,KAAwB,EAAE,EAAE;oBAC3C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;wBACnB,KAAK,YAAY;4BACf,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BAC7B,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;4BACvC,SAAS,CAAC,SAAS,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,aAAa,iBAAiB,CAAC,CAAC;4BAC1E,MAAM;wBACR,KAAK,eAAe;4BAClB,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;4BACnD,iBAAiB,CAAC,IAAI,CAAC,CAAC;4BACxB,MAAM;wBACR,KAAK,gBAAgB;4BACnB,SAAS,CAAC,SAAS,KAAK,CAAC,KAAK,WAAW,CAAC,CAAC;4BAC3C,MAAM;wBACR,KAAK,qBAAqB;4BACxB,qBAAqB,CAAC,EAAE,CAAC,CAAC;4BAC1B,SAAS,CAAC,qBAAqB,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;4BACjD,MAAM;wBACR,KAAK,qBAAqB;4BACxB,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;4BACpD,MAAM;wBACR,KAAK,wBAAwB;4BAC3B,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BACzE,qBAAqB,CAAC,EAAE,CAAC,CAAC;4BAC1B,MAAM;wBACR,KAAK,OAAO;4BACV,QAAQ,CAAC,cAAc,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;4BAC9D,MAAM;oBACV,CAAC;gBACH,CAAC,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;oBACnC,KAAK,EAAE,aAAa;oBACpB,WAAW;oBACX,UAAU;oBACV,MAAM;oBACN,OAAO;oBACP,IAAI;oBACJ,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;gBAEH,SAAS,CAAC,mBAAmB,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC3D,cAAc,CAAC,KAAK,CAAC,CAAC;gBAEtB,8BAA8B;gBAC9B,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,gBAAgB,CAAC,SAAS,CAAC,CAAC;wBAC5B,SAAS,CAAC,6BAA6B,CAAC,CAAC;wBACzC,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC;4BACzC,MAAM;4BACN,MAAM,EAAE,GAAG;4BACX,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gCACjB,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;4BACzC,CAAC;yBACF,CAAC,CAAC;wBACH,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC;wBACtC,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;4BAC5B,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;wBAC3C,CAAC;wBACD,gBAAgB,CAAC,UAAU,CAAC,CAAC;wBAC7B,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACvC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBAED,oCAAoC;gBACpC,IAAI,uBAAuB,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACH,SAAS,CAAC,2BAA2B,CAAC,CAAC;wBACvC,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;wBAC1E,IAAI,CAAC,MAAM,CAAC,YAAY;4BAAE,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;wBACnD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBAC1C,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC;oBAAC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBAChD,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,2BAA2B,EAAE,GAAG,CAAC,CAAC;gBAC7D,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;gBACnD,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,GAAG,EAAE,CAAC;IACR,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAS,KAAK,IAAQ,GACnC,CACP,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACrC,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,qCAA4B,EAC/C,MAAC,IAAI,eACF,cAAc,CAAC,MAAM,oBAAgB,YAAY,YACjD,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IACvB,EACP,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,IAAI,oCAAqB,EAC9B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACtB,MAAC,IAAI,IAAS,KAAK,EAAC,MAAM,aACvB,IAAI,EAAE,CAAC,KADC,CAAC,CAEL,CACR,CAAC,IACE,EACL,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CACzC,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CACxD,MAAC,GAAG,IAAa,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACrD,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,QAAQ,uBAAQ,KAAK,iBAAiB,EACvD,KAAC,IAAI,cAAE,OAAO,GAAQ,KAFd,KAAK,CAGT,CACP,CAAC,GACE,CACP,EACA,aAAa,KAAK,UAAU,IAAI,WAAW,IAAI,CAC9C,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,qCAA4B,EACnD,KAAC,IAAI,cAAE,WAAW,GAAQ,IACtB,CACP,EACA,gBAAgB,IAAI,CACnB,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,8CAAqC,GACtD,CACP,IACG,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACrC,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YACjB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,EACP,MAAC,IAAI,oBAAG,MAAM,IAAQ,IAClB,EACL,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5B,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACzC,MAAC,IAAI,IAAS,QAAQ,6BACb,IAAI,CAAC,KAAK,cAAK,IAAI,CAAC,aAAa,QAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,YAD5D,CAAC,CAEL,CACR,CAAC,GACE,CACP,EACA,kBAAkB,IAAI,CACrB,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACtC,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,mBAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,GACtE,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"discuss.js","sourceRoot":"","sources":["../../src/commands/discuss.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ interface Props {
2
+ backend?: string;
3
+ }
4
+ export declare function ModelsCommand({ backend }: Props): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { Box, Text } from "ink";
4
+ import Spinner from "ink-spinner";
5
+ import { getBackend } from "../backends/index.js";
6
+ const BACKENDS = ["anthropic", "openai", "google", "ollama"];
7
+ export function ModelsCommand({ backend }) {
8
+ const [results, setResults] = useState([]);
9
+ const [done, setDone] = useState(false);
10
+ useEffect(() => {
11
+ async function run() {
12
+ const backends = backend ? [backend] : BACKENDS;
13
+ // Validate backend name
14
+ if (backend && !BACKENDS.includes(backend)) {
15
+ setResults([{ backend, error: `Unknown backend "${backend}". Available: ${BACKENDS.join(", ")}`, loading: false }]);
16
+ setDone(true);
17
+ return;
18
+ }
19
+ // Initialize loading state
20
+ setResults(backends.map((b) => ({ backend: b, loading: true })));
21
+ // Fetch models for each backend
22
+ const promises = backends.map(async (name, idx) => {
23
+ try {
24
+ const provider = await getBackend(name);
25
+ if (!provider.listModels) {
26
+ return { backend: name, error: "Model listing not supported", loading: false };
27
+ }
28
+ const models = await provider.listModels();
29
+ return { backend: name, models, loading: false };
30
+ }
31
+ catch (err) {
32
+ const msg = err instanceof Error ? err.message : String(err);
33
+ // Simplify common auth errors
34
+ if (msg.includes("API key") || msg.includes("api_key") || msg.includes("401") || msg.includes("403")) {
35
+ return { backend: name, error: "No API key configured", loading: false };
36
+ }
37
+ if (msg.includes("ECONNREFUSED") || msg.includes("fetch failed")) {
38
+ return { backend: name, error: "Connection refused (is the service running?)", loading: false };
39
+ }
40
+ return { backend: name, error: msg, loading: false };
41
+ }
42
+ });
43
+ const settled = await Promise.all(promises);
44
+ setResults(settled);
45
+ setDone(true);
46
+ }
47
+ run();
48
+ }, []);
49
+ if (!done) {
50
+ return (_jsxs(Box, { children: [_jsx(Text, { color: "green", children: _jsx(Spinner, { type: "dots" }) }), _jsx(Text, { children: " Fetching available models..." })] }));
51
+ }
52
+ return (_jsx(Box, { flexDirection: "column", paddingY: 1, children: results.map((r) => (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: r.backend }), r.error ? (_jsxs(Text, { color: "yellow", children: [" ", r.error] })) : r.models && r.models.length > 0 ? (r.models.map((m) => (_jsxs(Text, { children: [" ", m.id, m.name && m.name !== m.id ? _jsxs(Text, { dimColor: true, children: [" \u2014 ", m.name] }) : ""] }, m.id)))) : (_jsx(Text, { dimColor: true, children: " No models found" }))] }, r.backend))) }));
53
+ }
54
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function UpdateCommand(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,100 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { Box, Text } from "ink";
4
+ import Spinner from "ink-spinner";
5
+ import { execSync } from "node:child_process";
6
+ export function UpdateCommand() {
7
+ const [status, setStatus] = useState("Checking for updates...");
8
+ const [done, setDone] = useState(false);
9
+ const [error, setError] = useState(null);
10
+ const [details, setDetails] = useState(null);
11
+ useEffect(() => {
12
+ async function run() {
13
+ try {
14
+ // Get current version from our own package.json
15
+ const { createRequire } = await import("node:module");
16
+ const { fileURLToPath } = await import("node:url");
17
+ const { resolve, dirname } = await import("node:path");
18
+ const { readFileSync } = await import("node:fs");
19
+ const pkgRoot = resolve(dirname(fileURLToPath(import.meta.url)), "../..");
20
+ const pkg = JSON.parse(readFileSync(resolve(pkgRoot, "package.json"), "utf-8"));
21
+ const current = pkg.version;
22
+ // Check latest version on npm
23
+ setStatus("Checking npm for latest version...");
24
+ let latest;
25
+ try {
26
+ latest = execSync("npm view @statechange/council version", {
27
+ encoding: "utf-8",
28
+ timeout: 15000,
29
+ }).trim();
30
+ }
31
+ catch {
32
+ setError("Could not reach npm registry. Check your internet connection.");
33
+ setDone(true);
34
+ return;
35
+ }
36
+ if (current === latest) {
37
+ setDetails({ current, latest, updated: false });
38
+ setStatus(`Already on the latest version (${current}).`);
39
+ setDone(true);
40
+ return;
41
+ }
42
+ // Update
43
+ setStatus(`Updating from ${current} → ${latest}...`);
44
+ // Detect package manager — prefer whatever installed us globally
45
+ let installCmd = "npm install -g @statechange/council@latest";
46
+ try {
47
+ const bunPath = execSync("which bun", { encoding: "utf-8", timeout: 5000 }).trim();
48
+ if (bunPath) {
49
+ // Check if we were installed via bun
50
+ const bunGlobalDir = execSync("bun pm -g ls 2>/dev/null || true", {
51
+ encoding: "utf-8",
52
+ timeout: 10000,
53
+ });
54
+ if (bunGlobalDir.includes("@statechange/council")) {
55
+ installCmd = "bun install -g @statechange/council@latest";
56
+ }
57
+ }
58
+ }
59
+ catch {
60
+ // npm fallback is fine
61
+ }
62
+ try {
63
+ execSync(installCmd, {
64
+ encoding: "utf-8",
65
+ timeout: 120000,
66
+ stdio: "pipe",
67
+ });
68
+ }
69
+ catch (err) {
70
+ // npm install can fail for permission reasons
71
+ const msg = err.stderr || err.message || String(err);
72
+ if (msg.includes("EACCES") || msg.includes("permission")) {
73
+ setError(`Permission denied. Try running with sudo:\n\n sudo npm install -g @statechange/council@latest`);
74
+ }
75
+ else {
76
+ setError(`Update failed: ${msg.slice(0, 200)}`);
77
+ }
78
+ setDone(true);
79
+ return;
80
+ }
81
+ setDetails({ current, latest, updated: true });
82
+ setStatus(`Updated from ${current} → ${latest}`);
83
+ setDone(true);
84
+ }
85
+ catch (err) {
86
+ setError(err instanceof Error ? err.message : String(err));
87
+ setDone(true);
88
+ }
89
+ }
90
+ run();
91
+ }, []);
92
+ if (error) {
93
+ return (_jsx(Box, { flexDirection: "column", paddingY: 1, children: _jsx(Text, { color: "red", children: error }) }));
94
+ }
95
+ if (!done) {
96
+ return (_jsxs(Box, { children: [_jsx(Text, { color: "green", children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { children: [" ", status] })] }));
97
+ }
98
+ return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsx(Text, { color: details?.updated ? "green" : "cyan", children: status }), details?.updated && (_jsx(Text, { dimColor: true, children: "Restart any running council processes to use the new version." }))] }));
99
+ }
100
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.tsx"],"names":[],"mappings":"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"}
@@ -221,6 +221,21 @@ export async function runConversation(topicOrOpts, topicSource, councilors, roun
221
221
  const message = err instanceof Error ? err.message : String(err);
222
222
  log.error("conversation", `Turn failed for ${councilor.frontmatter.name} (round ${round}, model ${councilor.frontmatter.model ?? "default"}, backend ${councilor.frontmatter.backend})`, err);
223
223
  opts.onEvent({ type: "error", councilorName: councilor.frontmatter.name, error: message });
224
+ // Emit a turn_complete with the error as content so the UI can
225
+ // clean up the streaming bubble and show the failure inline.
226
+ const errorTurn = {
227
+ round: displayRound,
228
+ councilorId: councilor.id,
229
+ councilorName: councilor.frontmatter.name,
230
+ content: "",
231
+ timestamp: new Date().toISOString(),
232
+ model: councilor.frontmatter.model ?? "default",
233
+ backend: councilor.frontmatter.backend,
234
+ avatarUrl: councilor.avatarUrl,
235
+ error: message,
236
+ };
237
+ turns.push(errorTurn);
238
+ opts.onEvent({ type: "turn_complete", turn: errorTurn });
224
239
  }
225
240
  }
226
241
  opts.onEvent({ type: "round_complete", round });