dominds 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/LICENSE +157 -0
  2. package/README.md +250 -0
  3. package/README.zh.md +161 -0
  4. package/dist/access-control.js +253 -0
  5. package/dist/cli/create.js +263 -0
  6. package/dist/cli/read.js +84 -0
  7. package/dist/cli/tui.js +199 -0
  8. package/dist/cli/webui.js +169 -0
  9. package/dist/cli.js +227 -0
  10. package/dist/dialog-factory.js +53 -0
  11. package/dist/dialog-global-registry.js +68 -0
  12. package/dist/dialog-instance-registry.js +78 -0
  13. package/dist/dialog-run-state.js +198 -0
  14. package/dist/dialog.js +1024 -0
  15. package/dist/evt-registry.js +103 -0
  16. package/dist/index.js +8 -0
  17. package/dist/llm/client.js +69 -0
  18. package/dist/llm/defaults.yaml +386 -0
  19. package/dist/llm/driver.js +3214 -0
  20. package/dist/llm/gen/anthropic.js +611 -0
  21. package/dist/llm/gen/codex.js +375 -0
  22. package/dist/llm/gen/mock.js +326 -0
  23. package/dist/llm/gen/openai.js +470 -0
  24. package/dist/llm/gen/registry.js +26 -0
  25. package/dist/llm/gen.js +2 -0
  26. package/dist/llm/tools-projection.js +37 -0
  27. package/dist/log.js +228 -0
  28. package/dist/mcp/config.js +230 -0
  29. package/dist/mcp/sdk-client.js +129 -0
  30. package/dist/mcp/server-runtime.js +57 -0
  31. package/dist/mcp/stdio-client.js +280 -0
  32. package/dist/mcp/supervisor.js +979 -0
  33. package/dist/mcp/tool-names.js +109 -0
  34. package/dist/minds/builtin/cmdr/persona.md +3 -0
  35. package/dist/minds/builtin/dijiang/knowledge.md +287 -0
  36. package/dist/minds/builtin/dijiang/persona.md +7 -0
  37. package/dist/minds/builtin/fuxi/persona.en.md +59 -0
  38. package/dist/minds/builtin/fuxi/persona.zh.md +49 -0
  39. package/dist/minds/builtin/pangu/persona.en.md +78 -0
  40. package/dist/minds/builtin/pangu/persona.zh.md +71 -0
  41. package/dist/minds/load.js +617 -0
  42. package/dist/minds/minds-i18n.js +131 -0
  43. package/dist/minds/system-prompt.js +281 -0
  44. package/dist/persistence.js +3128 -0
  45. package/dist/problems.js +109 -0
  46. package/dist/server/api-routes.js +1031 -0
  47. package/dist/server/auth.js +180 -0
  48. package/dist/server/mime-types.js +32 -0
  49. package/dist/server/prompts-routes.js +543 -0
  50. package/dist/server/server-core.js +235 -0
  51. package/dist/server/setup-routes.js +697 -0
  52. package/dist/server/static-server.js +132 -0
  53. package/dist/server/websocket-handler.js +1011 -0
  54. package/dist/server.js +164 -0
  55. package/dist/shared/async-fifo-mutex.js +36 -0
  56. package/dist/shared/diligence.js +20 -0
  57. package/dist/shared/dotenv.js +144 -0
  58. package/dist/shared/evt.js +195 -0
  59. package/dist/shared/i18n/driver-messages.js +267 -0
  60. package/dist/shared/i18n/text.js +9 -0
  61. package/dist/shared/i18n/tool-result-messages.js +51 -0
  62. package/dist/shared/rtws-cli.js +73 -0
  63. package/dist/shared/runtime-language.js +47 -0
  64. package/dist/shared/team-mgmt-manual.js +116 -0
  65. package/dist/shared/types/context-health.js +2 -0
  66. package/dist/shared/types/dialog.js +11 -0
  67. package/dist/shared/types/i18n.js +2 -0
  68. package/dist/shared/types/index.js +26 -0
  69. package/dist/shared/types/language.js +40 -0
  70. package/dist/shared/types/problems.js +2 -0
  71. package/dist/shared/types/prompts.js +2 -0
  72. package/dist/shared/types/q4h.js +7 -0
  73. package/dist/shared/types/run-state.js +8 -0
  74. package/dist/shared/types/setup.js +2 -0
  75. package/dist/shared/types/storage.js +10 -0
  76. package/dist/shared/types/tellask.js +8 -0
  77. package/dist/shared/types/tools-registry.js +2 -0
  78. package/dist/shared/types/wire.js +12 -0
  79. package/dist/shared/utils/fmt.js +9 -0
  80. package/dist/shared/utils/html.js +20 -0
  81. package/dist/shared/utils/id.js +18 -0
  82. package/dist/shared/utils/inter-dialog-format.js +101 -0
  83. package/dist/shared/utils/time.js +13 -0
  84. package/dist/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  85. package/dist/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  86. package/dist/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  87. package/dist/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  88. package/dist/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  89. package/dist/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  90. package/dist/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  91. package/dist/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  92. package/dist/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  93. package/dist/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  94. package/dist/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  95. package/dist/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  96. package/dist/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  97. package/dist/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  98. package/dist/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  99. package/dist/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  100. package/dist/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  101. package/dist/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  102. package/dist/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  103. package/dist/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  104. package/dist/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  105. package/dist/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  106. package/dist/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  107. package/dist/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  108. package/dist/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  109. package/dist/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  110. package/dist/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  111. package/dist/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  112. package/dist/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  113. package/dist/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  114. package/dist/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  115. package/dist/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  116. package/dist/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  117. package/dist/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  118. package/dist/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  119. package/dist/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  120. package/dist/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  121. package/dist/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  122. package/dist/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  123. package/dist/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  124. package/dist/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  125. package/dist/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  126. package/dist/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  127. package/dist/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  128. package/dist/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  129. package/dist/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  130. package/dist/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  131. package/dist/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  132. package/dist/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  133. package/dist/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  134. package/dist/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  135. package/dist/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  136. package/dist/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  137. package/dist/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  138. package/dist/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  139. package/dist/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  140. package/dist/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  141. package/dist/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  142. package/dist/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  143. package/dist/static/assets/_baseUniq-Crfl3d5Y.js +661 -0
  144. package/dist/static/assets/_baseUniq-Crfl3d5Y.js.map +1 -0
  145. package/dist/static/assets/arc-CbA_x9GD.js +132 -0
  146. package/dist/static/assets/arc-CbA_x9GD.js.map +1 -0
  147. package/dist/static/assets/architectureDiagram-VXUJARFQ-lcFS8ZQJ.js +8685 -0
  148. package/dist/static/assets/architectureDiagram-VXUJARFQ-lcFS8ZQJ.js.map +1 -0
  149. package/dist/static/assets/blockDiagram-VD42YOAC-B3Q36qRc.js +3608 -0
  150. package/dist/static/assets/blockDiagram-VD42YOAC-B3Q36qRc.js.map +1 -0
  151. package/dist/static/assets/c4Diagram-YG6GDRKO-Mt-aq3VH.js +2482 -0
  152. package/dist/static/assets/c4Diagram-YG6GDRKO-Mt-aq3VH.js.map +1 -0
  153. package/dist/static/assets/channel-BVr1Yke-.js +8 -0
  154. package/dist/static/assets/channel-BVr1Yke-.js.map +1 -0
  155. package/dist/static/assets/chunk-4BX2VUAB-qCIn5Iic.js +17 -0
  156. package/dist/static/assets/chunk-4BX2VUAB-qCIn5Iic.js.map +1 -0
  157. package/dist/static/assets/chunk-55IACEB6-q172NeCV.js +14 -0
  158. package/dist/static/assets/chunk-55IACEB6-q172NeCV.js.map +1 -0
  159. package/dist/static/assets/chunk-B4BG7PRW-CMJmtYzq.js +1827 -0
  160. package/dist/static/assets/chunk-B4BG7PRW-CMJmtYzq.js.map +1 -0
  161. package/dist/static/assets/chunk-DI55MBZ5-DiuwwZPL.js +1916 -0
  162. package/dist/static/assets/chunk-DI55MBZ5-DiuwwZPL.js.map +1 -0
  163. package/dist/static/assets/chunk-FMBD7UC4-06sqZTTn.js +20 -0
  164. package/dist/static/assets/chunk-FMBD7UC4-06sqZTTn.js.map +1 -0
  165. package/dist/static/assets/chunk-QN33PNHL-CnpBNkpP.js +25 -0
  166. package/dist/static/assets/chunk-QN33PNHL-CnpBNkpP.js.map +1 -0
  167. package/dist/static/assets/chunk-QZHKN3VN-CNgjMR-e.js +18 -0
  168. package/dist/static/assets/chunk-QZHKN3VN-CNgjMR-e.js.map +1 -0
  169. package/dist/static/assets/chunk-TZMSLE5B-BxtzW6--.js +109 -0
  170. package/dist/static/assets/chunk-TZMSLE5B-BxtzW6--.js.map +1 -0
  171. package/dist/static/assets/classDiagram-2ON5EDUG-29huvmn-.js +23 -0
  172. package/dist/static/assets/classDiagram-2ON5EDUG-29huvmn-.js.map +1 -0
  173. package/dist/static/assets/classDiagram-v2-WZHVMYZB-29huvmn-.js +23 -0
  174. package/dist/static/assets/classDiagram-v2-WZHVMYZB-29huvmn-.js.map +1 -0
  175. package/dist/static/assets/clone-D2OgLSSn.js +9 -0
  176. package/dist/static/assets/clone-D2OgLSSn.js.map +1 -0
  177. package/dist/static/assets/cose-bilkent-S5V4N54A-BNegDCxl.js +4943 -0
  178. package/dist/static/assets/cose-bilkent-S5V4N54A-BNegDCxl.js.map +1 -0
  179. package/dist/static/assets/cytoscape.esm-Bm8DJGmZ.js +30240 -0
  180. package/dist/static/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -0
  181. package/dist/static/assets/dagre-6UL2VRFP-f1XrTRSn.js +695 -0
  182. package/dist/static/assets/dagre-6UL2VRFP-f1XrTRSn.js.map +1 -0
  183. package/dist/static/assets/defaultLocale-DVr69WTU.js +207 -0
  184. package/dist/static/assets/defaultLocale-DVr69WTU.js.map +1 -0
  185. package/dist/static/assets/diagram-PSM6KHXK-8w1WbeDi.js +849 -0
  186. package/dist/static/assets/diagram-PSM6KHXK-8w1WbeDi.js.map +1 -0
  187. package/dist/static/assets/diagram-QEK2KX5R-CF4wtMmR.js +303 -0
  188. package/dist/static/assets/diagram-QEK2KX5R-CF4wtMmR.js.map +1 -0
  189. package/dist/static/assets/diagram-S2PKOQOG-8p3Avgn2.js +213 -0
  190. package/dist/static/assets/diagram-S2PKOQOG-8p3Avgn2.js.map +1 -0
  191. package/dist/static/assets/erDiagram-Q2GNP2WA-BMKLxlM9.js +1159 -0
  192. package/dist/static/assets/erDiagram-Q2GNP2WA-BMKLxlM9.js.map +1 -0
  193. package/dist/static/assets/favicon-Cmg5RbCj.svg +8 -0
  194. package/dist/static/assets/flowDiagram-NV44I4VS-CgEuPNK2.js +2332 -0
  195. package/dist/static/assets/flowDiagram-NV44I4VS-CgEuPNK2.js.map +1 -0
  196. package/dist/static/assets/ganttDiagram-JELNMOA3-bJkDCf-9.js +3681 -0
  197. package/dist/static/assets/ganttDiagram-JELNMOA3-bJkDCf-9.js.map +1 -0
  198. package/dist/static/assets/gitGraphDiagram-NY62KEGX-4QE9kesp.js +1206 -0
  199. package/dist/static/assets/gitGraphDiagram-NY62KEGX-4QE9kesp.js.map +1 -0
  200. package/dist/static/assets/graph-CS0Pmm7c.js +597 -0
  201. package/dist/static/assets/graph-CS0Pmm7c.js.map +1 -0
  202. package/dist/static/assets/index-BS6HnGzC.js +112303 -0
  203. package/dist/static/assets/index-BS6HnGzC.js.map +1 -0
  204. package/dist/static/assets/index-DaIsSzC_.css +483 -0
  205. package/dist/static/assets/infoDiagram-WHAUD3N6-ypBcKfUs.js +34 -0
  206. package/dist/static/assets/infoDiagram-WHAUD3N6-ypBcKfUs.js.map +1 -0
  207. package/dist/static/assets/init-ZxktEp_H.js +17 -0
  208. package/dist/static/assets/init-ZxktEp_H.js.map +1 -0
  209. package/dist/static/assets/journeyDiagram-XKPGCS4Q-QnrxDowJ.js +1255 -0
  210. package/dist/static/assets/journeyDiagram-XKPGCS4Q-QnrxDowJ.js.map +1 -0
  211. package/dist/static/assets/kanban-definition-3W4ZIXB7-CfvEc4z5.js +1048 -0
  212. package/dist/static/assets/kanban-definition-3W4ZIXB7-CfvEc4z5.js.map +1 -0
  213. package/dist/static/assets/layout-8TGxpm23.js +2218 -0
  214. package/dist/static/assets/layout-8TGxpm23.js.map +1 -0
  215. package/dist/static/assets/linear-BATBPQQv.js +341 -0
  216. package/dist/static/assets/linear-BATBPQQv.js.map +1 -0
  217. package/dist/static/assets/min-B3oVH3AC.js +42 -0
  218. package/dist/static/assets/min-B3oVH3AC.js.map +1 -0
  219. package/dist/static/assets/mindmap-definition-VGOIOE7T-L7VLwwF8.js +1127 -0
  220. package/dist/static/assets/mindmap-definition-VGOIOE7T-L7VLwwF8.js.map +1 -0
  221. package/dist/static/assets/ordinal-CxptdPJm.js +77 -0
  222. package/dist/static/assets/ordinal-CxptdPJm.js.map +1 -0
  223. package/dist/static/assets/pieDiagram-ADFJNKIX-CFW3zIhM.js +241 -0
  224. package/dist/static/assets/pieDiagram-ADFJNKIX-CFW3zIhM.js.map +1 -0
  225. package/dist/static/assets/quadrantDiagram-AYHSOK5B-B7ssen3E.js +1338 -0
  226. package/dist/static/assets/quadrantDiagram-AYHSOK5B-B7ssen3E.js.map +1 -0
  227. package/dist/static/assets/requirementDiagram-UZGBJVZJ-D0v5BArv.js +1162 -0
  228. package/dist/static/assets/requirementDiagram-UZGBJVZJ-D0v5BArv.js.map +1 -0
  229. package/dist/static/assets/sankeyDiagram-TZEHDZUN-B7slncJe.js +1195 -0
  230. package/dist/static/assets/sankeyDiagram-TZEHDZUN-B7slncJe.js.map +1 -0
  231. package/dist/static/assets/sequenceDiagram-WL72ISMW-oXU2lRh_.js +3875 -0
  232. package/dist/static/assets/sequenceDiagram-WL72ISMW-oXU2lRh_.js.map +1 -0
  233. package/dist/static/assets/stateDiagram-FKZM4ZOC-CFYsEd0x.js +452 -0
  234. package/dist/static/assets/stateDiagram-FKZM4ZOC-CFYsEd0x.js.map +1 -0
  235. package/dist/static/assets/stateDiagram-v2-4FDKWEC3-C0UWaNA7.js +22 -0
  236. package/dist/static/assets/stateDiagram-v2-4FDKWEC3-C0UWaNA7.js.map +1 -0
  237. package/dist/static/assets/timeline-definition-IT6M3QCI-C3KODUrh.js +1223 -0
  238. package/dist/static/assets/timeline-definition-IT6M3QCI-C3KODUrh.js.map +1 -0
  239. package/dist/static/assets/treemap-KMMF4GRG-DAGDLhj2.js +18753 -0
  240. package/dist/static/assets/treemap-KMMF4GRG-DAGDLhj2.js.map +1 -0
  241. package/dist/static/assets/xychartDiagram-PRI3JC2R-C0J9iwTO.js +1888 -0
  242. package/dist/static/assets/xychartDiagram-PRI3JC2R-C0J9iwTO.js.map +1 -0
  243. package/dist/static/index.html +71 -0
  244. package/dist/static/testing/dom-observation-utils.js +425 -0
  245. package/dist/static/testing/e2e-test-helper.js +3119 -0
  246. package/dist/team.js +1160 -0
  247. package/dist/tellask.js +431 -0
  248. package/dist/tool.js +150 -0
  249. package/dist/tools/apply-patch.js +542 -0
  250. package/dist/tools/builtins.js +196 -0
  251. package/dist/tools/context-health.js +177 -0
  252. package/dist/tools/ctrl.js +478 -0
  253. package/dist/tools/diag.js +583 -0
  254. package/dist/tools/env.js +184 -0
  255. package/dist/tools/fs.js +818 -0
  256. package/dist/tools/mcp.js +138 -0
  257. package/dist/tools/mem.js +349 -0
  258. package/dist/tools/os.js +751 -0
  259. package/dist/tools/prompts/team_mgmt.en.md +70 -0
  260. package/dist/tools/prompts/team_mgmt.zh.md +70 -0
  261. package/dist/tools/prompts/ws_mod.en.md +86 -0
  262. package/dist/tools/prompts/ws_mod.zh.md +87 -0
  263. package/dist/tools/registry-snapshot.js +31 -0
  264. package/dist/tools/registry.js +121 -0
  265. package/dist/tools/ripgrep.js +678 -0
  266. package/dist/tools/team-mgmt.js +3300 -0
  267. package/dist/tools/txt.js +3178 -0
  268. package/dist/utils/id.js +72 -0
  269. package/dist/utils/task-doc.js +236 -0
  270. package/dist/utils/task-package.js +522 -0
  271. package/dist/utils/taskdoc-search.js +280 -0
  272. package/dist/utils/taskdoc.js +400 -0
  273. package/package.json +69 -0
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ /**
3
+ * Module: evt-registry
4
+ *
5
+ * PubChan registry for managing dialog event streams.
6
+ * Maps dialog IDs to PubChans for real-time event streaming during dialog driving.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.dialogEventRegistry = void 0;
10
+ exports.postDialogEvent = postDialogEvent;
11
+ exports.postDialogEventById = postDialogEventById;
12
+ exports.createEvent = createEvent;
13
+ const log_1 = require("./log");
14
+ const evt_1 = require("./shared/evt");
15
+ const time_1 = require("./shared/utils/time");
16
+ class DialogEventRegistryImpl {
17
+ constructor() {
18
+ this.pubChans = new Map();
19
+ this.log = (0, log_1.createLogger)('evt-registry');
20
+ }
21
+ /**
22
+ * Get or create a PubChan for a specific dialog ID
23
+ */
24
+ getPubChan(dialogId) {
25
+ let chan = this.pubChans.get(dialogId.key());
26
+ if (chan === undefined) {
27
+ chan = (0, evt_1.createPubChan)();
28
+ this.pubChans.set(dialogId.key(), chan);
29
+ }
30
+ return chan;
31
+ }
32
+ /**
33
+ * Create a SubChan for a specific dialog ID
34
+ */
35
+ createSubChan(dialogId) {
36
+ const pubChan = this.getPubChan(dialogId);
37
+ return (0, evt_1.createSubChan)(pubChan);
38
+ }
39
+ /**
40
+ * Remove PubChan for a dialog
41
+ */
42
+ removePubChan(dialogId) {
43
+ this.pubChans.delete(dialogId.key());
44
+ }
45
+ /**
46
+ * Create a TypedDialogEvent with common metadata (dialog info and timestamp)
47
+ */
48
+ createTypedEvent(dialogId, event) {
49
+ return {
50
+ dialog: {
51
+ selfId: dialogId.selfId,
52
+ rootId: dialogId.rootId,
53
+ },
54
+ timestamp: (0, time_1.formatUnifiedTimestamp)(new Date()),
55
+ ...event,
56
+ };
57
+ }
58
+ /**
59
+ * Post an event to the appropriate PubChan with proper hierarchy information
60
+ */
61
+ postEvent(dlg, event) {
62
+ const typedEvent = this.createTypedEvent(dlg.id, event);
63
+ const chan = this.getPubChan(dlg.id);
64
+ chan.write(typedEvent);
65
+ }
66
+ /**
67
+ * End-of-stream for a specific dialog
68
+ */
69
+ endStream(dialogId) {
70
+ const chan = this.pubChans.get(dialogId.key());
71
+ if (chan) {
72
+ chan.write(evt_1.EndOfStream);
73
+ }
74
+ }
75
+ /**
76
+ * Clean up all PubChans (for server shutdown)
77
+ */
78
+ cleanup() {
79
+ for (const chan of this.pubChans.values()) {
80
+ chan.write(evt_1.EndOfStream);
81
+ }
82
+ this.pubChans.clear();
83
+ }
84
+ }
85
+ // Export singleton instance
86
+ exports.dialogEventRegistry = new DialogEventRegistryImpl();
87
+ // Export helper function to import in other modules
88
+ function postDialogEvent(dlg, event) {
89
+ exports.dialogEventRegistry.postEvent(dlg, event);
90
+ }
91
+ /**
92
+ * Post an event to a specific dialog's PubChan by ID.
93
+ * Useful for posting subdialog events when only the subdialog ID is available.
94
+ */
95
+ function postDialogEventById(dialogId, event) {
96
+ const typedEvent = exports.dialogEventRegistry.createTypedEvent(dialogId, event);
97
+ const chan = exports.dialogEventRegistry.getPubChan(dialogId);
98
+ chan.write(typedEvent);
99
+ }
100
+ // Helper functions to create events with simpler API
101
+ function createEvent(type) {
102
+ return { type };
103
+ }
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * Module: index
4
+ *
5
+ * Package entry exports for `dominds`. Re-exports core modules and utilities.
6
+ *
7
+ * TODO: pre-release engineering task: cherrypick artefacts to re-export, as for dominds to be consumed as an sdk package
8
+ */
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LlmConfig = void 0;
7
+ const promises_1 = __importDefault(require("fs/promises"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const yaml_1 = __importDefault(require("yaml"));
10
+ const log_1 = require("../log");
11
+ /**
12
+ * LlmConfig
13
+ *
14
+ * Wraps provider configurations and exposes lookup helpers.
15
+ */
16
+ class LlmConfig {
17
+ constructor(providers) {
18
+ this._providers = providers;
19
+ }
20
+ get providers() {
21
+ return this._providers;
22
+ }
23
+ getProvider(providerKey) {
24
+ return this._providers[providerKey];
25
+ }
26
+ }
27
+ exports.LlmConfig = LlmConfig;
28
+ (function (LlmConfig) {
29
+ async function load() {
30
+ // Load default providers from YAML file
31
+ const defaultsPath = path_1.default.join(__dirname, 'defaults.yaml');
32
+ const rawDefaults = await promises_1.default.readFile(defaultsPath, 'utf-8');
33
+ const parsedDefaults = yaml_1.default.parse(rawDefaults);
34
+ if (!isRecord(parsedDefaults) || !isRecord(parsedDefaults.providers)) {
35
+ throw new Error('Invalid defaults.yaml: expected providers object');
36
+ }
37
+ const defaultProviders = parsedDefaults.providers;
38
+ // Load workspace configuration
39
+ const cfgPath = '.minds/llm.yaml';
40
+ let workspaceProviders = {};
41
+ try {
42
+ await promises_1.default.access(cfgPath);
43
+ try {
44
+ const raw = await promises_1.default.readFile(cfgPath, 'utf-8');
45
+ const parsed = yaml_1.default.parse(raw);
46
+ const providers = isRecord(parsed) ? parsed.providers : undefined;
47
+ if (isRecord(providers)) {
48
+ workspaceProviders = providers;
49
+ }
50
+ else {
51
+ throw new Error('Invalid llm.yaml: missing providers object');
52
+ }
53
+ }
54
+ catch (error) {
55
+ log_1.log.warn('Could not load workspace llm.yaml:', error);
56
+ }
57
+ }
58
+ catch (err) {
59
+ log_1.log.debug('No workspace llm.yaml found, using defaults');
60
+ }
61
+ // Merge defaults with workspace config (workspace overrides defaults)
62
+ const mergedProviders = { ...defaultProviders, ...workspaceProviders };
63
+ return new LlmConfig(mergedProviders);
64
+ }
65
+ LlmConfig.load = load;
66
+ })(LlmConfig || (exports.LlmConfig = LlmConfig = {}));
67
+ function isRecord(value) {
68
+ return typeof value === 'object' && value !== null;
69
+ }
@@ -0,0 +1,386 @@
1
+ providers:
2
+ codex:
3
+ name: Codex (ChatGPT)
4
+ apiType: codex
5
+ baseUrl: https://chatgpt.com/backend-api/
6
+ apiKeyEnvVar: CODEX_HOME
7
+ tech_spec_url: https://platform.openai.com/docs/api-reference/responses
8
+ api_mgmt_url: https://chatgpt.com/
9
+ # `model_param_options` documents common `.minds/team.yaml` `model_params` fields
10
+ # that this provider supports (as of this defaults.yaml).
11
+ #
12
+ # These are documentation hints for humans/agents; they are not auto-applied.
13
+ model_param_options:
14
+ general:
15
+ max_tokens:
16
+ # Provider-agnostic cap on generated tokens.
17
+ type: integer
18
+ min: 1
19
+ description: Maximum tokens to generate (provider-agnostic override).
20
+ codex:
21
+ reasoning_effort:
22
+ prominent: true
23
+ default: high
24
+ # Trade latency/cost for quality on reasoning-capable models.
25
+ # Allowed: none | minimal | low | medium | high | xhigh
26
+ type: enum
27
+ values: [none, minimal, low, medium, high, xhigh]
28
+ description: Reasoning effort level (when supported by the model).
29
+ verbosity:
30
+ prominent: true
31
+ default: medium
32
+ # Control response detail level on GPT-5 series models.
33
+ # Allowed: low | medium | high
34
+ type: enum
35
+ values: [low, medium, high]
36
+ description: Response verbosity/detail level (GPT-5 series).
37
+ temperature:
38
+ # Randomness; use 0–0.2 for tool-calling / deterministic behavior.
39
+ type: number
40
+ min: 0
41
+ max: 2
42
+ description: Sampling temperature (0–2).
43
+ top_p:
44
+ # Nucleus sampling; usually leave unset if using temperature.
45
+ type: number
46
+ min: 0
47
+ max: 1
48
+ description: Nucleus sampling probability (0–1).
49
+ parallel_tool_calls:
50
+ type: boolean
51
+ description: Allow the model to emit parallel tool calls (enable by default in Dominds).
52
+ max_tokens:
53
+ type: integer
54
+ min: 1
55
+ description: Provider-specific max tokens override.
56
+ models:
57
+ gpt-5.2-codex:
58
+ name: GPT-5.2 Codex
59
+ optimal_max_tokens: 200000
60
+ context_length: 272000
61
+ input_length: 272000
62
+ output_length: 32768
63
+ context_window: '272K'
64
+ gpt-5.2:
65
+ name: GPT-5.2
66
+ optimal_max_tokens: 200000
67
+ context_length: 272000
68
+ input_length: 272000
69
+ output_length: 32768
70
+ context_window: '272K'
71
+ minimaxi.com-coding-plan:
72
+ name: MiniMax CN Coding Plan
73
+ apiType: anthropic
74
+ baseUrl: https://api.minimaxi.com/anthropic
75
+ apiKeyEnvVar: MINIMAX_CN_CP_API_KEY
76
+ tech_spec_url: https://platform.minimaxi.com/document/guides
77
+ api_mgmt_url: https://platform.minimaxi.com/
78
+ models:
79
+ MiniMax-M2.1:
80
+ name: MiniMax M2.1
81
+ context_length: 204800
82
+ input_length: 204800
83
+ output_length: 8192
84
+ context_window: '204K'
85
+ MiniMax-M2:
86
+ name: MiniMax M2
87
+ context_length: 204800
88
+ input_length: 204800
89
+ output_length: 8192
90
+ context_window: '204K'
91
+ minimaxi.com:
92
+ name: MiniMax CN
93
+ apiType: anthropic
94
+ baseUrl: https://api.minimaxi.com/anthropic
95
+ apiKeyEnvVar: MINIMAX_CN_API_KEY
96
+ tech_spec_url: https://platform.minimaxi.com/document/guides
97
+ api_mgmt_url: https://platform.minimaxi.com/
98
+ models:
99
+ MiniMax-M2.1:
100
+ name: MiniMax M2.1
101
+ context_length: 204800
102
+ input_length: 204800
103
+ output_length: 8192
104
+ context_window: '204K'
105
+ MiniMax-M2:
106
+ name: MiniMax M2 Stable
107
+ context_length: 204800
108
+ input_length: 204800
109
+ output_length: 8192
110
+ context_window: '204K'
111
+ minimax.io-coding-plan:
112
+ name: MiniMax International Coding Plan
113
+ apiType: anthropic
114
+ baseUrl: https://api.minimax.io/anthropic
115
+ apiKeyEnvVar: MINIMAX_CP_API_KEY
116
+ tech_spec_url: https://platform.minimax.io/docs/api-reference
117
+ api_mgmt_url: https://platform.minimax.io/
118
+ models:
119
+ MiniMax-M2.1:
120
+ name: MiniMax M2.1
121
+ context_length: 204800
122
+ input_length: 204800
123
+ output_length: 8192
124
+ context_window: '204K'
125
+ MiniMax-M2:
126
+ name: MiniMax M2
127
+ context_length: 204800
128
+ input_length: 204800
129
+ output_length: 8192
130
+ context_window: '204K'
131
+ minimax.io:
132
+ name: MiniMax International
133
+ apiType: anthropic
134
+ baseUrl: https://api.minimax.io/anthropic
135
+ apiKeyEnvVar: MINIMAX_API_KEY
136
+ tech_spec_url: https://platform.minimax.io/docs/api-reference
137
+ api_mgmt_url: https://platform.minimax.io/
138
+ models:
139
+ MiniMax-M2.1:
140
+ name: MiniMax M2.1
141
+ context_length: 204800
142
+ input_length: 204800
143
+ output_length: 8192
144
+ context_window: '204K'
145
+ MiniMax-M2:
146
+ name: MiniMax M2 Stable
147
+ context_length: 204800
148
+ input_length: 204800
149
+ output_length: 8192
150
+ context_window: '204K'
151
+ bigmodel:
152
+ name: BigModel
153
+ apiType: anthropic
154
+ baseUrl: https://open.bigmodel.cn/api/anthropic
155
+ apiKeyEnvVar: ZHIPUAI_API_KEY
156
+ tech_spec_url: https://docs.bigmodel.cn/
157
+ api_mgmt_url: https://open.bigmodel.cn/usercenter/apikeys
158
+ models:
159
+ glm-4.7:
160
+ name: GLM-4.7
161
+ context_length: 200000
162
+ input_length: 200000
163
+ output_length: 8192
164
+ context_window: '200K'
165
+ glm-4.6:
166
+ name: GLM-4.6
167
+ context_length: 200000
168
+ input_length: 200000
169
+ output_length: 8192
170
+ context_window: '200K'
171
+ glm-4.5:
172
+ name: GLM-4.5
173
+ context_length: 128000
174
+ input_length: 128000
175
+ output_length: 8192
176
+ context_window: '128K'
177
+ glm-4.5-air:
178
+ name: GLM-4.5-Air
179
+ context_length: 128000
180
+ input_length: 128000
181
+ output_length: 8192
182
+ context_window: '128K'
183
+ z.ai:
184
+ name: Z.AI
185
+ apiType: anthropic
186
+ baseUrl: https://api.z.ai/api/anthropic
187
+ apiKeyEnvVar: ZAI_API_KEY
188
+ tech_spec_url: https://docs.z.ai/api-reference
189
+ api_mgmt_url: https://z.ai/manage-apikey/apikey-list
190
+ models:
191
+ glm-4.7:
192
+ name: GLM-4.7
193
+ context_length: 200000
194
+ input_length: 200000
195
+ output_length: 8192
196
+ context_window: '200K'
197
+ glm-4.6:
198
+ name: GLM-4.6
199
+ context_length: 200000
200
+ input_length: 200000
201
+ output_length: 8192
202
+ context_window: '200K'
203
+ glm-4.5:
204
+ name: GLM-4.5
205
+ context_length: 128000
206
+ input_length: 128000
207
+ output_length: 8192
208
+ context_window: '128K'
209
+ glm-4.5-air:
210
+ name: GLM-4.5-Air
211
+ context_length: 128000
212
+ input_length: 128000
213
+ output_length: 8192
214
+ context_window: '128K'
215
+ ark-coding-plan:
216
+ name: Ark Coding Plan
217
+ apiType: anthropic
218
+ baseUrl: https://ark.cn-beijing.volces.com/api/coding
219
+ apiKeyEnvVar: ARK_API_KEY
220
+ tech_spec_url: https://api.volcengine.com/api-docs/view?serviceCode=ark&version=2024-01-01
221
+ api_mgmt_url: https://console.volcengine.com/ark
222
+ models:
223
+ doubao-seed-code-preview-latest:
224
+ name: Doubao Seed Code Preview
225
+ context_length: 256000
226
+ input_length: 256000
227
+ output_length: 8192
228
+ context_window: '256K'
229
+ optimization: 专为Agentic Coding任务优化
230
+ ark:
231
+ name: Ark
232
+ apiType: openai
233
+ baseUrl: https://ark.cn-beijing.volces.com/api/v3
234
+ apiKeyEnvVar: ARK_API_KEY
235
+ tech_spec_url: https://api.volcengine.com/api-docs/view?serviceCode=ark&version=2024-01-01
236
+ api_mgmt_url: https://console.volcengine.com/ark
237
+ models:
238
+ deepseek-v3-2-251201:
239
+ name: DeepSeek-V3.2
240
+ context_length: 128000
241
+ input_length: 96000
242
+ output_length: 32000
243
+ context_window: '128K'
244
+ doubao-seed-code-preview-251028:
245
+ name: Doubao Seed Code Preview 251028
246
+ context_length: 256000
247
+ input_length: 256000
248
+ output_length: 8192
249
+ context_window: '256K'
250
+ doubao-seed-1-6-251015:
251
+ name: Doubao Seed 1.6
252
+ context_length: 256000
253
+ input_length: 256000
254
+ output_length: 8192
255
+ context_window: '256K'
256
+ doubao-seed-1-6-thinking-250715:
257
+ name: Doubao Seed 1.6 Thinking
258
+ context_length: 256000
259
+ input_length: 256000
260
+ output_length: 8192
261
+ context_window: '256K'
262
+ doubao-seed-1-6-lite-251015:
263
+ name: Doubao Seed 1.6 Lite
264
+ context_length: 32000
265
+ input_length: 32000
266
+ output_length: 8192
267
+ context_window: '32K'
268
+ kimi-k2-250905:
269
+ name: Kimi K2
270
+ context_length: 200000
271
+ input_length: 200000
272
+ output_length: 8192
273
+ context_window: '200K (约20万汉字)'
274
+ deepseek-v3-1-terminus:
275
+ name: DeepSeek V3.1 Terminus
276
+ context_length: 131072
277
+ input_length: 131072
278
+ output_length: 8192
279
+ context_window: '128K'
280
+ anthropic:
281
+ name: Anthropic
282
+ apiType: anthropic
283
+ baseUrl: https://api.anthropic.com
284
+ apiKeyEnvVar: ANTHROPIC_API_KEY
285
+ tech_spec_url: https://docs.anthropic.com/en/docs
286
+ api_mgmt_url: https://console.anthropic.com/
287
+ model_param_options:
288
+ general:
289
+ max_tokens:
290
+ type: integer
291
+ min: 1
292
+ description: Maximum tokens to generate (provider-agnostic override).
293
+ anthropic:
294
+ temperature:
295
+ type: number
296
+ min: 0
297
+ max: 1
298
+ description: Sampling temperature (0–1).
299
+ top_p:
300
+ type: number
301
+ min: 0
302
+ max: 1
303
+ description: Nucleus sampling probability (0–1).
304
+ top_k:
305
+ type: integer
306
+ min: 0
307
+ description: Top-k sampling (0 disables).
308
+ max_tokens:
309
+ type: integer
310
+ min: 1
311
+ description: Provider-specific max tokens override.
312
+ stop_sequences:
313
+ type: string_array
314
+ description: Stop sequences (array of strings).
315
+ reasoning_split:
316
+ # If supported, streams a separated "thinking/reasoning" channel.
317
+ type: boolean
318
+ description: Enable separated reasoning stream (when supported).
319
+ models:
320
+ claude-opus-4.5:
321
+ name: Claude Opus 4.5
322
+ context_length: 200000
323
+ input_length: 200000
324
+ output_length: 8192
325
+ context_window: '200K'
326
+ claude-sonnet-4.5:
327
+ name: Claude Sonnet 4.5
328
+ context_length: 200000
329
+ input_length: 200000
330
+ output_length: 8192
331
+ context_window: '200K'
332
+ claude-haiku-4.5:
333
+ name: Claude Haiku 4.5
334
+ context_length: 200000
335
+ input_length: 200000
336
+ output_length: 8192
337
+ context_window: '200K'
338
+ openai:
339
+ name: OpenAI
340
+ apiType: openai
341
+ baseUrl: https://api.openai.com/v1
342
+ apiKeyEnvVar: OPENAI_API_KEY
343
+ tech_spec_url: https://platform.openai.com/docs
344
+ api_mgmt_url: https://platform.openai.com/api-keys
345
+ model_param_options:
346
+ general:
347
+ max_tokens:
348
+ type: integer
349
+ min: 1
350
+ description: Maximum tokens to generate (provider-agnostic override).
351
+ openai:
352
+ reasoning_effort:
353
+ type: enum
354
+ values: [none, minimal, low, medium, high, xhigh]
355
+ description: Reasoning effort level (when supported by the model).
356
+ verbosity:
357
+ type: enum
358
+ values: [low, medium, high]
359
+ description: Response verbosity/detail level (GPT-5 series).
360
+ temperature:
361
+ type: number
362
+ min: 0
363
+ max: 2
364
+ description: Sampling temperature (0–2).
365
+ top_p:
366
+ type: number
367
+ min: 0
368
+ max: 1
369
+ description: Nucleus sampling probability (0–1).
370
+ max_tokens:
371
+ type: integer
372
+ min: 1
373
+ description: Provider-specific max tokens override.
374
+ models:
375
+ gpt-5.2:
376
+ name: GPT-5.2
377
+ context_length: 272000
378
+ input_length: 272000
379
+ output_length: 32768
380
+ context_window: '272K'
381
+ gpt-5.2-codex:
382
+ name: GPT-5.2 Codex
383
+ context_length: 272000
384
+ input_length: 272000
385
+ output_length: 32768
386
+ context_window: '272K'