mulmoclaude 0.9.0 → 0.9.2

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 (458) hide show
  1. package/README.md +95 -38
  2. package/bin/mulmoclaude.js +1 -2
  3. package/client/assets/JsonEditor-CPJfn76E.css +1 -0
  4. package/client/assets/JsonEditor-CoWGJG3Y.js +10 -0
  5. package/client/assets/abnfDiagram-VRR7QNED-6nNByj6v-By7GJ3xW.js +1 -0
  6. package/client/assets/abnfDiagram-VRR7QNED-BrQlVixL.js +1 -0
  7. package/client/assets/arc-BXutyUAX.js +1 -0
  8. package/client/assets/arc-zT0wd74V-DulGJNnb.js +1 -0
  9. package/client/assets/architecture-TIHT7OUA-CYMWc3UT-C7HoFzWN.js +1 -0
  10. package/client/assets/architecture-TIHT7OUA-aml8u-G9.js +1 -0
  11. package/client/assets/architectureDiagram-ZJ3FMSHR-Bgnyaj_i-CCpEsCHN.js +36 -0
  12. package/client/assets/architectureDiagram-ZJ3FMSHR-DJTFpPjB.js +36 -0
  13. package/client/assets/array-BifhSqXX.js +1 -0
  14. package/client/assets/array-CApNbSU9-BifhSqXX.js +1 -0
  15. package/client/assets/blockDiagram-677ZJIJ3-DQ35o5E4-BXS11D3J.js +132 -0
  16. package/client/assets/blockDiagram-677ZJIJ3-aYvCODxv.js +132 -0
  17. package/client/assets/c4Diagram-LMCZKHZV-Bau6RMBb.js +10 -0
  18. package/client/assets/c4Diagram-LMCZKHZV-ClWZeiWo-DXGnOOUf.js +10 -0
  19. package/client/assets/channel-D9VSi_QV.js +1 -0
  20. package/client/assets/channel-Di5rtkx0-C3gZcytF.js +1 -0
  21. package/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  22. package/client/assets/chunk-2Q5K7J3B-DfKpwyl9-DTxwf5E9.js +1 -0
  23. package/client/assets/chunk-32BRIVSS-CCt9wtYd-Cwa_IP35.js +1 -0
  24. package/client/assets/chunk-32BRIVSS-CxzHeys5.js +1 -0
  25. package/client/assets/chunk-52WLFC77-BtNjbTdw.js +10 -0
  26. package/client/assets/chunk-52WLFC77-FbBbR4uI-wsNC5d-f.js +10 -0
  27. package/client/assets/chunk-5VM5RSS4-BYnnUiN6-C4rOnu9A.js +15 -0
  28. package/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  29. package/client/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
  30. package/client/assets/chunk-7BUUIJ7U-hh8aCuGX-mGEpPzQy.js +1 -0
  31. package/client/assets/chunk-C7G6YPKG-BE8ehsnc.js +1 -0
  32. package/client/assets/chunk-C7G6YPKG-C87hlS9c-BitbJpTa.js +1 -0
  33. package/client/assets/{chunk-D8eiyYIV-BY16KEZc.js → chunk-D8eiyYIV-BeeEsA1B.js} +1 -1
  34. package/client/assets/chunk-EX3LRPZG-Bhgskzyy.js +231 -0
  35. package/client/assets/chunk-EX3LRPZG-BqGqMXLN-Cl2Eo1_u.js +231 -0
  36. package/client/assets/chunk-FWX5IMBZ-BkbSAAuW-C2r4AuAO.js +2 -0
  37. package/client/assets/chunk-FWX5IMBZ-D9sskZb_.js +2 -0
  38. package/client/assets/chunk-HOUHSVGY-CBCXk7rb.js +1 -0
  39. package/client/assets/chunk-HOUHSVGY-Cxu0eDlh-owg_DcY0.js +1 -0
  40. package/client/assets/chunk-ICXQ74PX-DTqPpDQ9.js +2 -0
  41. package/client/assets/chunk-ICXQ74PX-hiraF_Xj-CdaEwVin.js +2 -0
  42. package/client/assets/chunk-JWPE2WC7-BQ3zXr2k-DSd3Ct95.js +1 -0
  43. package/client/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  44. package/client/assets/chunk-KEIR6QF5-DNzq6p3w.js +161 -0
  45. package/client/assets/chunk-MOJQB5TN-CqxshQHA-Cn_EpDyZ.js +88 -0
  46. package/client/assets/chunk-MOJQB5TN-D1s_zUGz.js +88 -0
  47. package/client/assets/chunk-OGEWGWER-CjCr7ceX-Dfk5-70y.js +1 -0
  48. package/client/assets/chunk-OGEWGWER-DzfhxoQd.js +1 -0
  49. package/client/assets/chunk-PUDLZKDR-BZlebNhn.js +156 -0
  50. package/client/assets/chunk-PUDLZKDR-Dx6M-vz1-CLyVurOz.js +156 -0
  51. package/client/assets/chunk-Q4XR5HBZ-BcJb7mwA.js +70 -0
  52. package/client/assets/chunk-Q4XR5HBZ-CZd-9lTB-qPEYoRNc.js +11 -0
  53. package/client/assets/chunk-RYQCIY6F-B_IgMG7T.js +1 -0
  54. package/client/assets/chunk-RYQCIY6F-YkbemkCt-CX4fncTQ.js +1 -0
  55. package/client/assets/chunk-V7JOEXUC-Buce04o6.js +206 -0
  56. package/client/assets/chunk-V7JOEXUC-rI0xlC_O-C607vJXy.js +206 -0
  57. package/client/assets/chunk-VAUOI2AC-CxhkzXN0.js +1 -0
  58. package/client/assets/chunk-VAUOI2AC-DrcykVNK-CSROJWdE.js +1 -0
  59. package/client/assets/chunk-VR4S4FIN-D5afNrsS.js +1 -0
  60. package/client/assets/chunk-VR4S4FIN-O6iF8Yvf-CLIwrgqU.js +1 -0
  61. package/client/assets/chunk-WYO6CB5R-B83L_z6I-Cs8mg9If.js +127 -0
  62. package/client/assets/chunk-WYO6CB5R-BXTIdTMw.js +125 -0
  63. package/client/assets/chunk-XXDRQBXY-DFXH_lWn-B5HjCp2c.js +1 -0
  64. package/client/assets/chunk-XXDRQBXY-DXMD6ofA.js +1 -0
  65. package/client/assets/chunk-Y2CYZVJY-Bdt8pFDJ-DsF7k-Jl.js +1 -0
  66. package/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  67. package/client/assets/chunk-ZGVPDNZ5-BpFv9JSP-CHYySMjV.js +62 -0
  68. package/client/assets/chunk-ZGVPDNZ5-CYusI0J_.js +62 -0
  69. package/client/assets/chunk-ZIRB5QZD-Biy6ZNFG-D1maAiXb.js +32 -0
  70. package/client/assets/chunk-ZIRB5QZD-C6fEPe3t.js +32 -0
  71. package/client/assets/classDiagram-OUVF2IWQ-BgAZMSbT-BgxEE1D3.js +1 -0
  72. package/client/assets/classDiagram-OUVF2IWQ-CBD3Eidl.js +1 -0
  73. package/client/assets/classDiagram-v2-EOCWNBFH-CBD3Eidl.js +1 -0
  74. package/client/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-BgxEE1D3.js +1 -0
  75. package/client/assets/cose-bilkent-JH36ORCC-CuSL2tA8-aMIqISfj.js +1 -0
  76. package/client/assets/cose-bilkent-JH36ORCC-WAJDBXv1.js +1 -0
  77. package/client/assets/cynefin-VYW2F7L2-DH2qkJKw.js +1 -0
  78. package/client/assets/cynefin-VYW2F7L2-DqA3n9nY-BNWhIK_n.js +1 -0
  79. package/client/assets/cynefinDiagram-TSTJHNR4-CUvPV9MV.js +62 -0
  80. package/client/assets/cynefinDiagram-TSTJHNR4-x0-0sQ15-Cq1gFcFu.js +62 -0
  81. package/client/assets/cytoscape.esm-CzdwbRaj-Djp6vQyU.js +321 -0
  82. package/client/assets/cytoscape.esm-Djp6vQyU.js +321 -0
  83. package/client/assets/dagre-CXRCoUWR.js +1 -0
  84. package/client/assets/dagre-VKFMJZFB-CQdfl-bx-CzZZuace.js +4 -0
  85. package/client/assets/dagre-VKFMJZFB-C_9IS7mB.js +4 -0
  86. package/client/assets/dagre-wczQIDso-CfevN9RO.js +1 -0
  87. package/client/assets/defaultLocale-C8Fc0cco.js +1 -0
  88. package/client/assets/defaultLocale-DUNguUWs-BbDo_yJX.js +1 -0
  89. package/client/assets/diagram-FQU43EPY-BOSB6VUb-isPdQ8WX.js +3 -0
  90. package/client/assets/diagram-FQU43EPY-BP8N00-b.js +3 -0
  91. package/client/assets/diagram-G47NLZAW-DLXrcXsN-BIqj7RKy.js +24 -0
  92. package/client/assets/diagram-G47NLZAW-ulE1JlWG.js +24 -0
  93. package/client/assets/diagram-NH7WQ7WH-BMQp1rkF-D6-fOq_v.js +24 -0
  94. package/client/assets/diagram-NH7WQ7WH-D_IXrL3i.js +24 -0
  95. package/client/assets/diagram-OA4YK3LP-C-pC6Eyu.js +30 -0
  96. package/client/assets/diagram-OA4YK3LP-D1wQ0vUj-BNi6QLCK.js +30 -0
  97. package/client/assets/diagram-WEI45ONY-Di9m35i-.js +41 -0
  98. package/client/assets/diagram-WEI45ONY-RR0DpF8R-BS3nrb3w.js +41 -0
  99. package/client/assets/dist-BQBs5pjy-BmtZ7Oc2.js +1 -0
  100. package/client/assets/dist-CQ3HaWOk.js +1 -0
  101. package/client/assets/ebnfDiagram-CCIWWBDH-Cbwnim2x.js +1 -0
  102. package/client/assets/ebnfDiagram-CCIWWBDH-M123uVJ8-9-dq55nQ.js +1 -0
  103. package/client/assets/erDiagram-Q63AITRT-BWx_-PXG-CWGfG4z5.js +85 -0
  104. package/client/assets/erDiagram-Q63AITRT-CMbtO3Sm.js +85 -0
  105. package/client/assets/eventmodeling-45OFAUF4--32SIpkL.js +1 -0
  106. package/client/assets/eventmodeling-45OFAUF4-_BVSjAXf-DQdL0Icr.js +1 -0
  107. package/client/assets/flowDiagram-23GEKE2U-BeOc_anm-CuVzKmmU.js +1 -0
  108. package/client/assets/flowDiagram-23GEKE2U-Dofa_qxG.js +1 -0
  109. package/client/assets/ganttDiagram-NO4QXBWP-BOoJ1eTw-TWoNmSvq.js +292 -0
  110. package/client/assets/ganttDiagram-NO4QXBWP-BgoAVKuc.js +292 -0
  111. package/client/assets/gitGraph-TEB2WS4Q-CH12KLTN-Bz4frAhV.js +1 -0
  112. package/client/assets/gitGraph-TEB2WS4Q-DIMvNvqt.js +1 -0
  113. package/client/assets/gitGraphDiagram-IHSO6WYX-B2CJhk_G-ClOKkjxw.js +106 -0
  114. package/client/assets/gitGraphDiagram-IHSO6WYX-Dmb6KnPz.js +106 -0
  115. package/client/assets/graphlib-B8gBHxth.js +1 -0
  116. package/client/assets/graphlib-hY-1btwe-DQjxxcnr.js +1 -0
  117. package/client/assets/{html2canvas-CDGcmOD3-CKJ6vKPo.js → html2canvas-CDGcmOD3-DRL9pFVl.js} +2 -2
  118. package/client/assets/{index-9lmYSaus.js → index-Dc0R-HW5.js} +129 -190
  119. package/client/assets/index-Dxo1Zdd-.css +2 -0
  120. package/client/assets/{index.es-DqtpmBm8-DFXjJgCa.js → index.es-DqtpmBm8-EQk3NgR8.js} +1 -1
  121. package/client/assets/info-DKCQHKI2-Cbw3mbiK-GsDZz9IO.js +1 -0
  122. package/client/assets/info-DKCQHKI2-ViCqobGo.js +1 -0
  123. package/client/assets/infoDiagram-FWYZ7A6U-HKV7LIG-.js +2 -0
  124. package/client/assets/infoDiagram-FWYZ7A6U-Mp1X3pBP-ATJv87Ur.js +2 -0
  125. package/client/assets/init-D6jRqBbL.js +1 -0
  126. package/client/assets/init-DEsX3bhM-D6jRqBbL.js +1 -0
  127. package/client/assets/ishikawaDiagram-FXEZZL3T-BNG7tkJu-CGCeOIlJ.js +70 -0
  128. package/client/assets/ishikawaDiagram-FXEZZL3T-CVDUj46f.js +70 -0
  129. package/client/assets/journeyDiagram-5HDEW3XC-BA-ESGLP.js +139 -0
  130. package/client/assets/journeyDiagram-5HDEW3XC-Dbp_hY9X-Bx-IoCe9.js +139 -0
  131. package/client/assets/kanban-definition-HUTT4EX6-Bqaet01L.js +89 -0
  132. package/client/assets/kanban-definition-HUTT4EX6-DSTc5u3q-C0JGckt1.js +89 -0
  133. package/client/assets/katex-CddkPoXu.js +257 -0
  134. package/client/assets/katex-M0IxphGf-CddkPoXu.js +257 -0
  135. package/client/assets/lib-4Tgx7rAy.js +114 -0
  136. package/client/assets/line-B1wBwzrY-f5wxpqoF.js +1 -0
  137. package/client/assets/line-CkyHfW7d.js +1 -0
  138. package/client/assets/linear-B9fuEF4c.js +1 -0
  139. package/client/assets/linear-lrGinF5_-CqNBync7.js +1 -0
  140. package/client/assets/map-CgrwEyH7-DWQFomlZ.js +1 -0
  141. package/client/assets/map-DsCK-0Cs.js +1 -0
  142. package/client/assets/marked.esm-CIU5FDdN.js +64 -0
  143. package/client/assets/marp-CSq0PPfK.js +3448 -0
  144. package/client/assets/material-symbols-outlined-DdRFxZLh.woff2 +0 -0
  145. package/client/assets/mermaid-parser.core-DC7NPJ_M-Ca6XzwfM.js +166 -0
  146. package/client/assets/mermaid-parser.core-SAwSf4_o.js +7 -0
  147. package/client/assets/mermaid.core-BBEQfkdJ.js +11 -0
  148. package/client/assets/mermaid.core-DZM3Ha-E-BxOo-RYG.js +11 -0
  149. package/client/assets/mindmap-definition-LN4V7U3C-B4BN0efL.js +96 -0
  150. package/client/assets/mindmap-definition-LN4V7U3C-DYtgcMsY-DynyLTNv.js +96 -0
  151. package/client/assets/ordinal-B9_Llu10-CU85fhaB.js +1 -0
  152. package/client/assets/ordinal-CopWnP7w.js +1 -0
  153. package/client/assets/packet-7NZHBO7P-CY4XRk9N.js +1 -0
  154. package/client/assets/packet-7NZHBO7P-lwb58iYx--vqSg65J.js +1 -0
  155. package/client/assets/path-BWPyau1x.js +1 -0
  156. package/client/assets/path-COivZ1Gw-C5riojK2.js +1 -0
  157. package/client/assets/pegDiagram-2B236MQR-BOKErjUu.js +1 -0
  158. package/client/assets/pegDiagram-2B236MQR-C43eIpKM-Bi_5Sxjt.js +1 -0
  159. package/client/assets/pie-RZYD4A2V-6BHB7bAx.js +1 -0
  160. package/client/assets/pie-RZYD4A2V-B1UWb4Gu-Dmn2hLWH.js +1 -0
  161. package/client/assets/pieDiagram-ENE6RG2P-BkTqgJyR-Bcdm19kR.js +39 -0
  162. package/client/assets/pieDiagram-ENE6RG2P-DtNjvz-U.js +39 -0
  163. package/client/assets/preload-helper-CZgWQFsJ.js +1 -0
  164. package/client/assets/purify.es-DY32g7DN.js +3 -0
  165. package/client/assets/quadrantDiagram-ABIIQ3AL-BQmAJL2v.js +7 -0
  166. package/client/assets/quadrantDiagram-ABIIQ3AL-Bm1Zjm45-B3orqx_f.js +7 -0
  167. package/client/assets/radar-I7S5WNFK-7CKcb_l--CqKdnR0v.js +1 -0
  168. package/client/assets/radar-I7S5WNFK-R7Jhjfdt.js +1 -0
  169. package/client/assets/railroad-3IZDKUUU-BepSPyHI.js +1 -0
  170. package/client/assets/railroad-3IZDKUUU-gCySKdnW-CKU26HTP.js +1 -0
  171. package/client/assets/railroad-abnf-AHOZXSZD-BlsHsp3c.js +1 -0
  172. package/client/assets/railroad-abnf-AHOZXSZD-BophH4r--CGkGHq54.js +1 -0
  173. package/client/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-B7bn_PF3.js +1 -0
  174. package/client/assets/railroad-ebnf-EBAXGLYW-B4fMcGEH.js +1 -0
  175. package/client/assets/railroad-peg-LSFZ7HO6-B1ZrjJIu.js +1 -0
  176. package/client/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-CP_B-N5g.js +1 -0
  177. package/client/assets/railroadDiagram-RFXS5EU6-8cz0Iby3.js +1 -0
  178. package/client/assets/railroadDiagram-RFXS5EU6-BkfbdeAs-Di6jH5I6.js +1 -0
  179. package/client/assets/requirementDiagram-TGXJPOKE-CrGTTjYg-DmIC7Shp.js +84 -0
  180. package/client/assets/requirementDiagram-TGXJPOKE-Dlqoe9TY.js +84 -0
  181. package/client/assets/rough.esm-CSKSodPl.js +1 -0
  182. package/client/assets/rough.esm-wVmwlXu7-CSKSodPl.js +1 -0
  183. package/client/assets/runtime-protocol-vue-WG3JLsjz.js +1 -0
  184. package/client/assets/runtime-vue-lHsY5zMj.js +1 -0
  185. package/client/assets/sankeyDiagram-HTMAVEWB-BkTKgu8Q.js +40 -0
  186. package/client/assets/sankeyDiagram-HTMAVEWB-rWXPf03Z-CjV9pCSJ.js +40 -0
  187. package/client/assets/{schemas-D_RbFtuQ.js → schemas-DGvl73AE.js} +3 -3
  188. package/client/assets/sequenceDiagram-DBY2YBRQ-BpuXUcFy.js +162 -0
  189. package/client/assets/sequenceDiagram-DBY2YBRQ-nkJYWO2m-BqS_sTCH.js +162 -0
  190. package/client/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  191. package/client/assets/sizeCapture-X5ZJPWSS-F5SadAuT-VHIb4_NU.js +1 -0
  192. package/client/assets/src-Brzfja-q-DNc4Or4z.js +1 -0
  193. package/client/assets/src-Cqa3Jy1j.js +1 -0
  194. package/client/assets/stateDiagram-2N3HPSRC-CdlGXuo7.js +1 -0
  195. package/client/assets/stateDiagram-2N3HPSRC-T4-clK8b-DQRiB4va.js +1 -0
  196. package/client/assets/stateDiagram-v2-6OUMAXLB-BN8Jr3ZM.js +1 -0
  197. package/client/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-DbrOhUn_.js +1 -0
  198. package/client/assets/swimlanes-5IMT3BWC-HmQNEntu-CNBgZdur.js +2 -0
  199. package/client/assets/swimlanes-5IMT3BWC-iEJg5gki.js +2 -0
  200. package/client/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-DpqgeNRA.js +8 -0
  201. package/client/assets/swimlanesDiagram-G3AALYLV-o-sS6aEP.js +8 -0
  202. package/client/assets/timeline-definition-FHXFAJF6-Bjh-7QmL.js +120 -0
  203. package/client/assets/timeline-definition-FHXFAJF6-CNc9jSTP-BKNSymgY.js +120 -0
  204. package/client/assets/treeView-QDETBFTQ-D3cqRl6k.js +1 -0
  205. package/client/assets/treeView-QDETBFTQ-nIQcG1h9-O_ri9HxD.js +1 -0
  206. package/client/assets/treemap-6X3UGDF4-BnsvC8yL-Cfsty1e3.js +1 -0
  207. package/client/assets/treemap-6X3UGDF4-DGkZcvDG.js +1 -0
  208. package/client/assets/v4-B29ayslu.js +1 -0
  209. package/client/assets/vennDiagram-L72KCM5P-Cz3dbe7b.js +34 -0
  210. package/client/assets/vennDiagram-L72KCM5P-Dr3pTJ_0-C38xwcVo.js +34 -0
  211. package/client/assets/vue-C6d2VveO.js +1 -0
  212. package/client/assets/vue-i18n-CL-ejuNu.js +3 -0
  213. package/client/assets/vue.runtime.esm-bundler-BeoTfMNc.js +4 -0
  214. package/client/assets/wardley-OPB4EBWU-8Odxkx6V-CCDIVuBs.js +1 -0
  215. package/client/assets/wardley-OPB4EBWU-CZsCDvKk.js +1 -0
  216. package/client/assets/wardleyDiagram-EHGQE667-DSFc7ZZa-mlWXRiWx.js +78 -0
  217. package/client/assets/wardleyDiagram-EHGQE667-DiyoyO_X.js +78 -0
  218. package/client/assets/xychartDiagram-FW5EYKEG-BP0Nn4Pp-DRRiStGZ.js +7 -0
  219. package/client/assets/xychartDiagram-FW5EYKEG-DhY1_UGM.js +7 -0
  220. package/client/index.html +16 -12
  221. package/package.json +17 -19
  222. package/server/agent/backend/types.ts +1 -1
  223. package/server/agent/backgroundSessions.ts +43 -0
  224. package/server/agent/config.ts +3 -2
  225. package/server/agent/mcp-tools/manageCollection.ts +4 -4
  226. package/server/agent/sandboxMounts.ts +1 -1
  227. package/server/agent/stream.ts +1 -3
  228. package/server/api/auth/viewToken.ts +1 -1
  229. package/server/api/bridge/sessionRole.ts +47 -0
  230. package/server/api/routes/agent.ts +79 -2
  231. package/server/api/routes/collections.ts +60 -7
  232. package/server/api/routes/collectionsRegistry.ts +113 -0
  233. package/server/api/routes/dashboard.ts +47 -0
  234. package/server/api/routes/feeds.ts +2 -2
  235. package/server/api/routes/files.ts +1 -2
  236. package/server/api/routes/pdf.ts +48 -9
  237. package/server/api/routes/plugins.ts +2 -2
  238. package/server/api/routes/remoteHost.ts +55 -0
  239. package/server/api/routes/sessions.ts +20 -11
  240. package/server/api/routes/share.ts +105 -0
  241. package/server/api/routes/transcribe.ts +1 -1
  242. package/server/api/routes/wiki/history.ts +2 -2
  243. package/server/api/routes/wiki.ts +29 -177
  244. package/server/api/sandboxStatus.ts +1 -1
  245. package/server/build/dispatcher.mjs +25 -14928
  246. package/server/events/collection-change.ts +4 -4
  247. package/server/events/file-change.ts +2 -2
  248. package/server/events/scheduler-adapter.ts +3 -3
  249. package/server/events/task-manager/index.ts +3 -3
  250. package/server/index.ts +53 -17
  251. package/server/notifier/engine.ts +3 -3
  252. package/server/notifier/types.ts +2 -2
  253. package/server/plugins/html-builtin.ts +15 -1
  254. package/server/prompts/system/system.md +4 -0
  255. package/server/remoteHost/auth.ts +29 -0
  256. package/server/remoteHost/commandChannel.ts +56 -0
  257. package/server/remoteHost/firebase.ts +16 -0
  258. package/server/remoteHost/handlers/collectionPage.ts +29 -0
  259. package/server/remoteHost/handlers/getCollection.ts +32 -0
  260. package/server/remoteHost/handlers/getFeed.ts +35 -0
  261. package/server/remoteHost/handlers/index.ts +19 -0
  262. package/server/remoteHost/handlers/listCollections.ts +29 -0
  263. package/server/remoteHost/handlers/listFeeds.ts +37 -0
  264. package/server/remoteHost/handlers/listShortcuts.ts +24 -0
  265. package/server/remoteHost/handlers/startChat.ts +78 -0
  266. package/server/remoteHost/hostRunner.ts +122 -0
  267. package/server/remoteHost/index.ts +117 -0
  268. package/server/system/config.ts +1 -1
  269. package/server/system/credentials.ts +2 -3
  270. package/server/system/docker.ts +9 -8
  271. package/server/system/env.ts +8 -0
  272. package/server/system/whisper/index.ts +4 -4
  273. package/server/utils/claudeConfigPath.ts +57 -0
  274. package/server/utils/files/dashboard-io.ts +87 -0
  275. package/server/utils/files/session-io.ts +11 -0
  276. package/server/utils/markdown/frontmatter.ts +8 -4
  277. package/server/utils/regex.ts +4 -3
  278. package/server/utils/share/packHtml.ts +108 -0
  279. package/server/utils/share/rewriteAssets.ts +178 -0
  280. package/server/workspace/chat-index/paths.ts +8 -2
  281. package/server/workspace/chat-index/summarizer.ts +23 -15
  282. package/server/workspace/collections/configure.ts +5 -3
  283. package/server/workspace/collections/index.ts +8 -6
  284. package/server/workspace/collections/notifications.ts +3 -3
  285. package/server/workspace/collections/types.ts +2 -2
  286. package/server/workspace/collections/watcher.ts +2 -2
  287. package/server/workspace/feeds/configure.ts +24 -0
  288. package/server/workspace/hooks/handlers/skillBridge.ts +2 -2
  289. package/server/workspace/hooks/handlers/wikiSnapshot.ts +1 -1
  290. package/server/workspace/paths.ts +8 -1
  291. package/server/workspace/skills/catalog.ts +1 -3
  292. package/server/workspace/skills/external/catalog.ts +1 -3
  293. package/server/workspace/skills/paths.ts +4 -3
  294. package/server/workspace/skills/writer.ts +1 -4
  295. package/server/workspace/skills-preset.ts +3 -3
  296. package/server/workspace/wiki-pages/io.ts +2 -2
  297. package/server/workspace/workspace.ts +2 -2
  298. package/src/App.vue +41 -18
  299. package/src/components/ChatInput.vue +1 -1
  300. package/src/components/DashboardView.vue +372 -0
  301. package/src/components/FileContentRenderer.vue +32 -7
  302. package/src/components/JsonEditor.vue +1 -1
  303. package/src/components/PluginLauncher.vue +122 -79
  304. package/src/components/RemoteHostControl.vue +159 -0
  305. package/src/components/SessionCountBadges.vue +32 -0
  306. package/src/components/SessionHeaderControls.vue +1 -8
  307. package/src/components/SessionHistoryPanel.vue +2 -0
  308. package/src/components/SessionHistoryToggleButton.vue +1 -15
  309. package/src/components/SidebarHeader.vue +2 -0
  310. package/src/components/collectionTypes.ts +2 -2
  311. package/src/composables/accountingHost.ts +24 -0
  312. package/src/composables/collections/uiHost.ts +17 -2
  313. package/src/composables/useDashboard.ts +191 -0
  314. package/src/composables/useMarkdownZip.ts +51 -0
  315. package/src/composables/useNotifications.ts +1 -4
  316. package/src/composables/useSharePack.ts +60 -0
  317. package/src/composables/useTranslatedQueries.ts +15 -95
  318. package/src/composables/useTranslatedStrings.ts +68 -0
  319. package/src/composables/useVoiceInput.ts +3 -3
  320. package/src/config/apiRoutes.ts +57 -9
  321. package/src/config/createFilePolicy.ts +1 -1
  322. package/src/config/firebase.ts +12 -0
  323. package/src/config/firebaseConfig.ts +18 -0
  324. package/src/config/historyFilters.ts +7 -0
  325. package/src/config/pubsubChannels.ts +7 -27
  326. package/src/config/roles.ts +12 -10
  327. package/src/config/workspacePaths.ts +10 -0
  328. package/src/index.css +1 -1
  329. package/src/lang/de.ts +39 -220
  330. package/src/lang/en.ts +39 -191
  331. package/src/lang/es.ts +39 -218
  332. package/src/lang/fr.ts +39 -220
  333. package/src/lang/ja.ts +39 -216
  334. package/src/lang/ko.ts +39 -216
  335. package/src/lang/pt-BR.ts +39 -217
  336. package/src/lang/zh.ts +39 -215
  337. package/src/main.ts +3 -0
  338. package/src/plugins/accounting/definition.ts +12 -8
  339. package/src/plugins/accounting/index.ts +7 -4
  340. package/src/plugins/accounting/meta.ts +23 -60
  341. package/src/plugins/manageSkills/View.vue +9 -1
  342. package/src/plugins/photoLocations/View.vue +2 -2
  343. package/src/plugins/presentCollection/definition.ts +2 -2
  344. package/src/plugins/presentCollection/plugin.ts +2 -2
  345. package/src/plugins/presentCollection/types.ts +2 -2
  346. package/src/plugins/presentHtml/definition.ts +1 -1
  347. package/src/plugins/presentMulmoScript/View.vue +2 -2
  348. package/src/plugins/presentMulmoScript/helpers.ts +1 -1
  349. package/src/plugins/presentSVG/View.vue +2 -2
  350. package/src/plugins/scheduler/TasksTab.vue +1 -2
  351. package/src/plugins/skill/View.vue +7 -3
  352. package/src/plugins/spreadsheet/View.vue +3 -3
  353. package/src/plugins/spreadsheet/engine/functions/logical.ts +8 -1
  354. package/src/plugins/textResponse/View.vue +43 -16
  355. package/src/plugins/wiki/View.vue +29 -2
  356. package/src/plugins/wiki/components/WikiGraphView.vue +1 -1
  357. package/src/plugins/wiki/components/WikiPageBody.vue +4 -1
  358. package/src/plugins/wiki/helpers.ts +13 -81
  359. package/src/plugins/wiki/index.ts +1 -1
  360. package/src/router/guards.ts +1 -1
  361. package/src/router/index.ts +12 -0
  362. package/src/router/pageRoutes.ts +2 -0
  363. package/src/types/dashboard.ts +40 -0
  364. package/src/types/session.ts +3 -0
  365. package/src/utils/blobDownload.ts +19 -0
  366. package/src/utils/collections/presentSeed.ts +1 -1
  367. package/src/utils/html/customViewSrcdoc.ts +31 -3
  368. package/src/utils/html/previewCsp.ts +1 -1
  369. package/src/utils/id.ts +1 -1
  370. package/src/utils/image/htmlSrcAttrs.ts +1 -1
  371. package/src/utils/markdown/frontmatter.ts +12 -7
  372. package/src/utils/markdown/highlight.ts +22 -0
  373. package/src/utils/markdown/marpCustomSize.ts +2 -2
  374. package/src/utils/markdown/mermaidExtension.ts +56 -0
  375. package/src/utils/markdown/mermaidRender.ts +147 -0
  376. package/src/utils/markdown/setup.ts +17 -4
  377. package/src/utils/markdown/useMermaid.ts +33 -0
  378. package/src/utils/session/longRunning.ts +33 -0
  379. package/src/utils/session/mergeSessions.ts +1 -1
  380. package/client/assets/JsonEditor-Di5xGeZY.css +0 -1
  381. package/client/assets/JsonEditor-o5--tPQH.js +0 -10
  382. package/client/assets/index-tOu5ArRZ.css +0 -2
  383. package/client/assets/lib-D6Xy0IFc.js +0 -114
  384. package/client/assets/marp-D6GXA-EB.js +0 -3452
  385. package/client/assets/material-symbols-outlined-DtIK7AQn.woff2 +0 -0
  386. package/client/assets/runtime-protocol-vue-pU0Mw7Zm.js +0 -1
  387. package/client/assets/runtime-vue-fFYhnNg3.js +0 -1
  388. package/client/assets/vue-UDIWDtr8.js +0 -1
  389. package/client/assets/vue-i18n-CQbxVmNs.js +0 -3
  390. package/client/assets/vue.runtime.esm-bundler-BTyIdNAI.js +0 -4
  391. package/server/accounting/accountNormalize.ts +0 -32
  392. package/server/accounting/defaultAccounts.ts +0 -87
  393. package/server/accounting/eventPublisher.ts +0 -52
  394. package/server/accounting/journal.ts +0 -252
  395. package/server/accounting/openingBalances.ts +0 -114
  396. package/server/accounting/report.ts +0 -237
  397. package/server/accounting/service.ts +0 -718
  398. package/server/accounting/snapshotCache.ts +0 -334
  399. package/server/accounting/timeSeries.ts +0 -265
  400. package/server/accounting/types.ts +0 -148
  401. package/server/api/routes/accounting.ts +0 -373
  402. package/server/api/routes/wiki/frontmatter.ts +0 -34
  403. package/server/api/routes/wiki/pageIndex.ts +0 -53
  404. package/server/system/logs/aaa +0 -737
  405. package/server/system/logs/bb +0 -446
  406. package/server/utils/files/accounting-io.ts +0 -294
  407. package/server/workspace/feeds/engine.ts +0 -143
  408. package/server/workspace/feeds/fetch/httpClient.ts +0 -127
  409. package/server/workspace/feeds/fetch/rssParser.ts +0 -117
  410. package/server/workspace/feeds/index.ts +0 -8
  411. package/server/workspace/feeds/ingestTypes.ts +0 -62
  412. package/server/workspace/feeds/pathResolver.ts +0 -74
  413. package/server/workspace/feeds/paths.ts +0 -30
  414. package/server/workspace/feeds/projectItem.ts +0 -92
  415. package/server/workspace/feeds/registry.ts +0 -43
  416. package/server/workspace/feeds/retrievers/httpJson.ts +0 -19
  417. package/server/workspace/feeds/retrievers/index.ts +0 -27
  418. package/server/workspace/feeds/retrievers/registerAll.ts +0 -5
  419. package/server/workspace/feeds/retrievers/rss.ts +0 -24
  420. package/server/workspace/feeds/state.ts +0 -55
  421. package/src/composables/useAccountingChannel.ts +0 -58
  422. package/src/lib/wiki-page/graph.ts +0 -108
  423. package/src/lib/wiki-page/index-parse.ts +0 -221
  424. package/src/lib/wiki-page/link.ts +0 -62
  425. package/src/lib/wiki-page/lint.ts +0 -105
  426. package/src/lib/wiki-page/paths.ts +0 -35
  427. package/src/lib/wiki-page/slug.ts +0 -54
  428. package/src/plugins/accounting/Preview.vue +0 -103
  429. package/src/plugins/accounting/View.vue +0 -633
  430. package/src/plugins/accounting/actions.ts +0 -34
  431. package/src/plugins/accounting/api.ts +0 -301
  432. package/src/plugins/accounting/components/AccountEditor.vue +0 -250
  433. package/src/plugins/accounting/components/AccountRow.vue +0 -50
  434. package/src/plugins/accounting/components/AccountsList.vue +0 -102
  435. package/src/plugins/accounting/components/AccountsModal.vue +0 -301
  436. package/src/plugins/accounting/components/BalanceSheet.vue +0 -186
  437. package/src/plugins/accounting/components/BookSettings.vue +0 -284
  438. package/src/plugins/accounting/components/BookSwitcher.vue +0 -78
  439. package/src/plugins/accounting/components/DateRangePicker.vue +0 -140
  440. package/src/plugins/accounting/components/JournalEntryForm.vue +0 -505
  441. package/src/plugins/accounting/components/JournalList.vue +0 -554
  442. package/src/plugins/accounting/components/Ledger.vue +0 -206
  443. package/src/plugins/accounting/components/NewBookForm.vue +0 -211
  444. package/src/plugins/accounting/components/OpeningBalancesForm.vue +0 -272
  445. package/src/plugins/accounting/components/ProfitLoss.vue +0 -160
  446. package/src/plugins/accounting/components/accountDraft.ts +0 -13
  447. package/src/plugins/accounting/components/accountNumbering.ts +0 -103
  448. package/src/plugins/accounting/components/accountValidation.ts +0 -75
  449. package/src/plugins/accounting/components/useLatestRequest.ts +0 -44
  450. package/src/plugins/accounting/countries.ts +0 -158
  451. package/src/plugins/accounting/currencies.ts +0 -77
  452. package/src/plugins/accounting/dates.ts +0 -51
  453. package/src/plugins/accounting/fiscalYear.ts +0 -136
  454. package/src/plugins/accounting/timeSeriesEnums.ts +0 -16
  455. package/src/plugins/wiki/route.ts +0 -137
  456. /package/client/assets/{_plugin-vue_export-helper-B67ILkmu.js → _plugin-vue_export-helper-BDNMzG2s.js} +0 -0
  457. /package/client/assets/{purify.es-B27wDFIb-51iYcXuK.js → purify.es-B27wDFIb-Bu4Grnl0.js} +0 -0
  458. /package/client/assets/{typeof-DBp4T-Ny-z2wCIsir.js → typeof-DBp4T-Ny-B5XbjTb1.js} +0 -0
@@ -0,0 +1,18 @@
1
+ // Firebase web-app config for the remote-host command channel.
2
+ //
3
+ // These are the *public* Firebase web-config values for the shared `mulmoserver`
4
+ // project (apiKey et al. are not secrets — they identify the project to the
5
+ // client SDK; access is gated by Firestore security rules, not by this key).
6
+ // Safe to commit. Kept as a pure, side-effect-free constant so both the browser
7
+ // init (src/config/firebase.ts) and the Node host init
8
+ // (server/remoteHost/firebase.ts) can import it without pulling in either
9
+ // runtime's SDK initialization.
10
+ export const firebaseConfig = {
11
+ apiKey: "AIzaSyC5IrhcCtfVQ4nZeI89Owa7da_D-It0b9s",
12
+ authDomain: "mulmoserver.firebaseapp.com",
13
+ projectId: "mulmoserver",
14
+ storageBucket: "mulmoserver.firebasestorage.app",
15
+ messagingSenderId: "830257137330",
16
+ appId: "1:830257137330:web:5cb8db01ae61b5d161abab",
17
+ measurementId: "G-Y75JGK1G4T",
18
+ } as const;
@@ -10,6 +10,12 @@ export const HISTORY_FILTERS = {
10
10
  all: "all",
11
11
  unread: "unread",
12
12
  bookmarked: "bookmarked",
13
+ // Session-property filter (not an origin): conversations alive for
14
+ // 24h+ (updatedAt − startedAt). Lets a long-running chat be told
15
+ // apart from a one-shot. Scheduler-origin sessions are excluded — a
16
+ // recurring schedule keeps one session alive for days, so it would
17
+ // always match without being a real conversation.
18
+ longRunning: "longRunning",
13
19
  human: SESSION_ORIGINS.human,
14
20
  scheduler: SESSION_ORIGINS.scheduler,
15
21
  skill: SESSION_ORIGINS.skill,
@@ -25,6 +31,7 @@ export const HISTORY_FILTER_ORDER: readonly HistoryFilter[] = [
25
31
  HISTORY_FILTERS.all,
26
32
  HISTORY_FILTERS.unread,
27
33
  HISTORY_FILTERS.bookmarked,
34
+ HISTORY_FILTERS.longRunning,
28
35
  HISTORY_FILTERS.human,
29
36
  HISTORY_FILTERS.scheduler,
30
37
  HISTORY_FILTERS.skill,
@@ -19,12 +19,6 @@
19
19
  // First slice of issue #289 (item 6: pub-sub channels).
20
20
 
21
21
  import { BUILT_IN_PLUGIN_METAS, defineHostAggregate, type BuiltInPluginMetas, type HostPluginCollision, type IntraPluginCollision } from "../plugins/metas";
22
- import {
23
- bookChannel as accountingBookChannelFromMeta,
24
- BOOK_EVENT_KINDS as ACCOUNTING_BOOK_EVENT_KINDS_FROM_META,
25
- type BookEventKind as AccountingBookEventKindFromMeta,
26
- type BookChannelPayload as AccountingBookChannelPayloadFromMeta,
27
- } from "../plugins/accounting/meta";
28
22
 
29
23
  /**
30
24
  * Channel for the per-session event stream. One per chat session.
@@ -110,28 +104,14 @@ export interface SessionsChannelPayload {
110
104
  }
111
105
 
112
106
  /**
113
- * Per-book change channel one channel per book id. Publishers
114
- * fan out journal / opening / accounts / snapshot events scoped to
115
- * a single bookId (see `AccountingBookChannelPayload`).
116
- *
117
- * Publisher: `server/accounting/eventPublisher.ts` (called from
118
- * every mutating action in the service layer).
119
- * Subscribers: View.vue + sub-components via
120
- * `useAccountingChannel(bookId)`.
121
- *
122
- * Book-list-level events (a new book was created, an existing one
123
- * was deleted) ride the static `PUBSUB_CHANNELS.accountingBooks`
124
- * channel below — kept separate so a `JournalList.vue` viewing book
125
- * A doesn't repaint when the user creates book B from another window.
107
+ * Per-book accounting change channels (`accounting:<bookId>`) and the
108
+ * book-list channel (`PUBSUB_CHANNELS.accountingBooks`) are now owned
109
+ * by `@mulmoclaude/accounting-plugin` the channel factory + event
110
+ * kinds live in its `./shared` surface, the publisher in `./server`,
111
+ * and the subscriber (`useAccountingChannel`) in `./vue`. The host no
112
+ * longer re-exports them here; only the static channel name flows
113
+ * through the META aggregator below.
126
114
  */
127
- // Plugin-owned: re-export accounting helpers from `meta.ts` under
128
- // the existing public names so external consumers don't have to
129
- // migrate their imports.
130
- export const accountingBookChannel = accountingBookChannelFromMeta;
131
- export const ACCOUNTING_BOOK_EVENT_KINDS = ACCOUNTING_BOOK_EVENT_KINDS_FROM_META;
132
- export type AccountingBookEventKind = AccountingBookEventKindFromMeta;
133
- export type AccountingBookChannelPayload = AccountingBookChannelPayloadFromMeta;
134
-
135
115
  // Plugin-owned static channel names auto-merged from each plugin's
136
116
  // META. Mapped type preserves the literal channel string (e.g.
137
117
  // `"accounting:books"`) so consumers get string-literal types.
@@ -101,10 +101,9 @@ export const ROLES: Role[] = [
101
101
  TOOL_NAMES.manageSpotify,
102
102
  ],
103
103
  queries: [
104
- "Set up a todo list. First read `config/helps/todo-collection.md` and follow it exactly to author the todos collection — do not redesign the schema or ask me design questions.",
105
- "Create a contacts collection with name, company, title, email, phone, notes, and a business-card image. When I attach a photo of a business card, read the details off it and add a new contact.",
106
- "Create a reading-list collection with a title, a URL field, and a Read checkbox. While Read is unchecked, keep each item in the bell notifications, labeled with its title.",
107
- "Create a restaurants collection with name, cuisine, neighborhood, a website URL, a phone number, a Visited checkbox, a 1-to-5 rating, and notes. Hide the rating until I've marked a place as visited — there's nothing to rate before I've been.",
104
+ // Collection-creation starters moved to the Collections "New collection"
105
+ // modal (collection-plugin `starters.ts`) so they surface independent of
106
+ // the active role. See plans/done/feat-collection-starters-modal.md.
108
107
  "Register this feed. https://feeds.captivate.fm/guy-kawasakis-remarkable/",
109
108
  ],
110
109
  },
@@ -140,9 +139,9 @@ export const ROLES: Role[] = [
140
139
  "Write a one-page business report on the pros and cons of remote work.",
141
140
  "Create a 5-slide presentation on the current state of AI in business.",
142
141
  "Perform relevant search on X about OpenAI and Anthropic, pick top ten interesting topics from them and show the list to me. Then, create a presentation about each article, one by one.",
143
- "Create a bills collection to track recurring payments — payee, amount, due date, and status. Remind me 10 days before each bill is due, and when I mark one paid, automatically set up next month's bill.",
144
- "Set up client and time tracking for my consulting work. First read `config/helps/billing-clients-worklog.md` and follow it exactly to author the clients and worklog collections — do not redesign the schemas or ask me design questions.",
145
- "Set up invoicing for my business. First read `config/helps/billing-invoice.md` and follow it exactly to author the invoice and profile collections — do not redesign the schemas or ask me design questions.",
142
+ // Collection-creation starters (bills / clients+worklog / invoice) moved to
143
+ // the Collections "New collection" modal (collection-plugin `starters.ts`).
144
+ // See plans/done/feat-collection-starters-modal.md.
146
145
  ],
147
146
  },
148
147
  {
@@ -215,8 +214,9 @@ export const ROLES: Role[] = [
215
214
  "Explain how sorting algorithms compare visually",
216
215
  "Help me understand fractions and decimals",
217
216
  "Teach me about the water cycle",
218
- "I want to build my vocabulary in a new language — ask me which language I'm learning and my current level, then read config/helps/vocabulary.md, set up a vocabulary collection, and fill it with fifty words and sample sentences appropriate for my level to track my progress",
219
- "I want to learn a topic as a tracked course — ask me the topic, my goal, and my current level, then read config/helps/lessons-collection.md, set up a lessons collection, and plan the curriculum before teaching the first lesson",
217
+ // Collection-creation starters (vocabulary / lessons) moved to the
218
+ // Collections "New collection" modal (collection-plugin `starters.ts`).
219
+ // See plans/done/feat-collection-starters-modal.md.
220
220
  ],
221
221
  },
222
222
  {
@@ -341,7 +341,9 @@ export const ROLES: Role[] = [
341
341
  "Chart MSFT's stock price over the last 5 years",
342
342
  "What did TSLA say about FSD revenue in their latest 10-Q?",
343
343
  "Show insider transactions filed by META officers in the last 90 days",
344
- "Set up a stock portfolio tracker a stock-quotes watchlist plus a portfolio that values my holdings against it. First read `config/helps/portfolio-tracker.md` and follow it exactly to author both collections — do not redesign the schemas or ask me design questions.",
344
+ // Collection-creation starter (stock portfolio tracker) moved to the
345
+ // Collections "New collection" modal (collection-plugin `starters.ts`).
346
+ // See plans/done/feat-collection-starters-modal.md.
345
347
  "Fetch AAPL's revenue and net profit for the last several quarters and visualize the trends using D3.js.",
346
348
  "Fetch NVDA's latest financial data and present it as a modern financial infographic with a left-to-right Sankey diagram using D3.js.",
347
349
  "Get the weekly closing prices of the Magnificent 7 stocks for the last five years, and multiply each by the number of shares outstanding to compute the market cap. Then plot them on a single graph so we can compare their market caps over time.",
@@ -30,6 +30,11 @@ export const WORKSPACE_FILES = {
30
30
  * data — tied to specific content slugs — so it lives with the
31
31
  * workspace, not in browser localStorage. Shape: `{ shortcuts: [] }`. */
32
32
  shortcuts: "config/shortcuts.json",
33
+ /** Dashboard layout — per-tile view mode + tile order for the grid of
34
+ * favorite collections on the /dashboard page. Workspace data (tied
35
+ * to content slugs), so it lives with the workspace, not in browser
36
+ * localStorage. Shape: `{ tiles: [] }`. */
37
+ dashboard: "config/dashboard.json",
33
38
  /** Install ledger for runtime-loaded plugins (#1043 C-2). One row
34
39
  * per installed plugin; the tgz files sit alongside in `plugins/`,
35
40
  * extracted to `plugins/.cache/<name>/<version>/` on first boot. */
@@ -41,4 +46,9 @@ export const WORKSPACE_FILES = {
41
46
  /** Terminated notifier entries (cleared / cancelled), newest-first,
42
47
  * FIFO-capped. Source for the bell popup's History section. */
43
48
  notifierHistory: "data/notifier/history.json",
49
+ /** Optional user-supplied list of extra collection registries to surface in
50
+ * the Discover tab alongside the official one. Shape:
51
+ * `[{ name, indexUrl, rawBaseUrl }]`. Absent file ⇒ only the official
52
+ * registry is shown. */
53
+ collectionsRegistries: "config/collections-registries.json",
44
54
  } as const;
package/src/index.css CHANGED
@@ -74,7 +74,7 @@
74
74
  padding: 0.1rem 0.3rem;
75
75
  border-radius: 0.25rem;
76
76
  font-size: 0.85em;
77
- font-family: ui-monospace, SFMono-Regular, monospace;
77
+ font-family: ui-monospace, SFMono-Regular, Consolas, "MS Gothic", "BIZ UDGothic", monospace;
78
78
  }
79
79
  .markdown-content pre {
80
80
  background: #f3f4f6;
package/src/lang/de.ts CHANGED
@@ -3,6 +3,8 @@
3
3
 
4
4
  const deMessages = {
5
5
  common: {
6
+ downloadZip: "ZIP",
7
+ downloadFailed: "Download fehlgeschlagen",
6
8
  save: "Speichern",
7
9
  cancel: "Abbrechen",
8
10
  loading: "Wird geladen...",
@@ -52,6 +54,7 @@ const deMessages = {
52
54
  all: "Alle",
53
55
  unread: "Ungelesen",
54
56
  bookmarked: "Gemerkt",
57
+ longRunning: "Langlaufend (24h+)",
55
58
  human: "Mensch",
56
59
  scheduler: "Scheduler",
57
60
  skill: "Skill",
@@ -119,6 +122,21 @@ const deMessages = {
119
122
  hideDetails: "Details ausblenden",
120
123
  retry: "Erneut versuchen",
121
124
  },
125
+ remoteHost: {
126
+ title: "Remote-Host",
127
+ online: "Remote-Host online",
128
+ offline: "Remote-Host offline",
129
+ uid: "uid {uid}",
130
+ signIn: "Mit Google anmelden",
131
+ connecting: "Verbinden…",
132
+ disconnect: "Trennen",
133
+ disconnecting: "Wird getrennt…",
134
+ noToken: "Google-Anmeldung hat kein idToken zurückgegeben",
135
+ connectFailed: "Verbindung fehlgeschlagen",
136
+ disconnectFailed: "Trennen fehlgeschlagen",
137
+ signInFailed: "Google-Anmeldung fehlgeschlagen",
138
+ statusFailed: "Status konnte nicht geladen werden",
139
+ },
122
140
  sidebarHeader: {
123
141
  home: "Zum neuesten Chat",
124
142
  toolCallHistory: "Tool-Aufrufverlauf",
@@ -336,11 +354,25 @@ const deMessages = {
336
354
  errAlreadyExists: "Existiert bereits",
337
355
  errLabelConflict: 'Label "{label}" existiert bereits',
338
356
  },
357
+ dashboard: {
358
+ empty: "Noch keine Lieblingssammlungen.",
359
+ emptyHint: "Hefte eine Sammlung (★) an, um sie hier zu sehen.",
360
+ viewTable: "Tabelle",
361
+ viewCalendar: "Kalender",
362
+ viewKanban: "Kanban",
363
+ viewPickerLabel: "Ansicht wählen",
364
+ openFull: "Zum Öffnen der Vollansicht doppelklicken",
365
+ dragHint: "Zum Neuordnen ziehen",
366
+ resizeHint: "Zum Ändern der Höhe ziehen",
367
+ },
339
368
  pluginLauncher: {
369
+ chat: { label: "Chat" },
370
+ dashboard: { label: "Dashboard" },
340
371
  automations: { label: "Aktionen" },
341
372
  wiki: { label: "Wiki" },
342
373
  collections: { label: "Sammlungen" },
343
374
  feeds: { label: "Feeds" },
375
+ accounting: { label: "Buchhaltung" },
344
376
  files: { label: "Dateien" },
345
377
  },
346
378
  shortcuts: {
@@ -356,6 +388,9 @@ const deMessages = {
356
388
  closeFile: "Datei schließen",
357
389
  },
358
390
  fileContentRenderer: {
391
+ download: "ZIP",
392
+ downloadZip: "Als eigenständiges ZIP herunterladen (Assets gebündelt)",
393
+ downloadError: "Download fehlgeschlagen",
359
394
  selectFile: "Datei auswählen",
360
395
  htmlPreview: "HTML-Vorschau",
361
396
  pdfPreview: "PDF-Vorschau",
@@ -659,226 +694,6 @@ const deMessages = {
659
694
  stylePromptWithPath: "Wandle das Bild unter `{path}` in ein Bild im {style}-Stil um.",
660
695
  stylePromptNoPath: "Wandle meine Zeichnung auf dem Canvas in ein Bild im {style}-Stil um.",
661
696
  },
662
- pluginAccounting: {
663
- title: "Buchhaltung",
664
- noBook: 'Noch keine Bücher — klicken Sie oben auf "+ Neues Buch", um das erste anzulegen.',
665
- common: {
666
- cancel: "Abbrechen",
667
- loading: "Lädt…",
668
- error: "Fehler: {error}",
669
- empty: "Noch keine Einträge.",
670
- },
671
- tabs: {
672
- journal: "Journal",
673
- newEntry: "Neuer Eintrag",
674
- opening: "Eröffnung",
675
- accounts: "Konten",
676
- ledger: "Hauptbuch",
677
- balanceSheet: "Bilanz",
678
- profitLoss: "GuV",
679
- settings: "Einstellungen",
680
- },
681
- bookSwitcher: {
682
- label: "Buch",
683
- newBook: "Neues Buch…",
684
- create: "Anlegen",
685
- nameLabel: "Name",
686
- currencyLabel: "Währung",
687
- countryLabel: "Land",
688
- countryPlaceholder: "Land auswählen…",
689
- countryHint:
690
- "Das Land legt die Steuerjurisdiktion fest, damit der Assistent länderspezifische Hinweise geben kann (T-Nummer in Japan, USt-IdNr. in der EU usw.).",
691
- fiscalYearEndLabel: "Geschäftsjahresende",
692
- fiscalYearEndQ1: "31. März (Q1)",
693
- fiscalYearEndQ2: "30. Juni (Q2)",
694
- fiscalYearEndQ3: "30. September (Q3)",
695
- fiscalYearEndQ4: "31. Dezember (Q4)",
696
- fiscalYearEndHint:
697
- "Bestimmt die Geschäftsjahresgrenze, die für die Datumsbereich-Schnellauswahl in diesem Buch verwendet wird. Standard: 31. Dezember (Q4 — Kalenderjahr).",
698
- placeholder: "Buch auswählen…",
699
- firstRunHint:
700
- "Wählen Sie Name, Währung, Land und Geschäftsjahresende für Ihr erstes Buch. Die Währung ist pro Buch fest und nach den ersten Buchungen schwer zu ändern.",
701
- },
702
- deletedNotice: {
703
- title: 'Das Buch "{bookName}" wurde gelöscht.',
704
- body: "Wählen Sie oben ein anderes Buch aus oder legen Sie ein neues an.",
705
- },
706
- journalList: {
707
- fromLabel: "Von",
708
- toLabel: "Bis",
709
- accountLabel: "Konto",
710
- allAccounts: "Alle Konten",
711
- void: "Stornieren",
712
- edit: "Bearbeiten",
713
- voidConfirm: "Diesen Eintrag stornieren? Das Original bleibt im Journal; ein Stornopaar wird angehängt.",
714
- voidReason: "Grund (optional):",
715
- columns: {
716
- date: "Datum",
717
- kind: "Art",
718
- memo: "Memo",
719
- lines: "Zeilen",
720
- },
721
- kind: {
722
- normal: "—",
723
- opening: "Eröffnung",
724
- void: "Storno",
725
- voidMarker: "Storno-Marker",
726
- },
727
- },
728
- entryForm: {
729
- title: "Neuer Eintrag",
730
- editTitle: "Eintrag bearbeiten",
731
- editBanner: "Beim Absenden wird der Originaleintrag storniert und durch diesen ersetzt.",
732
- dateLabel: "Datum",
733
- memoLabel: "Memo",
734
- accountLabel: "Konto",
735
- debitLabel: "Soll",
736
- creditLabel: "Haben",
737
- taxRegistrationIdLabel: "Steuernummer",
738
- taxRegistrationIdPlaceholder: "USt-IdNr. / VAT ID / GSTIN…",
739
- taxRegistrationIdMissingWarning: "Erforderlich",
740
- addLine: "Zeile hinzufügen",
741
- removeLine: "Entfernen",
742
- submit: "Buchen",
743
- submitting: "Bucht…",
744
- update: "Aktualisieren",
745
- updating: "Aktualisiert…",
746
- cancelEdit: "Abbrechen",
747
- success: "Eintrag gebucht.",
748
- editSuccess: "Eintrag aktualisiert.",
749
- editVoidReason: "bearbeitet",
750
- imbalance: "Differenz: {amount}",
751
- balanced: "Ausgeglichen ✓",
752
- },
753
- openingForm: {
754
- title: "Eröffnungsbilanz",
755
- asOfLabel: "Per",
756
- explainer: "Nur Bilanzkonten (Aktiva/Passiva/Eigenkapital). Σ Soll = Σ Haben; die Differenz fließt in Retained Earnings.",
757
- emptyHint:
758
- "Sie können das Formular leer speichern — die Eröffnungsbilanz lässt sich später aktualisieren. Es reicht, dass einmalig eine Eröffnung hinterlegt ist, damit die übrigen Tabs freigeschaltet werden.",
759
- explainer2: "Nur Bilanzkonten.",
760
- submit: "Eröffnungsbilanz speichern",
761
- replaceWarning: "Beim Speichern wird die bestehende Eröffnung ersetzt (die alte wird im Journal storniert).",
762
- none: "Noch keine Eröffnungsbilanz.",
763
- setBy: "Per {date} festgelegt",
764
- success: "Eröffnungsbilanz gespeichert.",
765
- },
766
- ledger: {
767
- selectAccount: "Konto wählen",
768
- closingBalance: "Schlusssaldo",
769
- columns: {
770
- date: "Datum",
771
- memo: "Memo",
772
- debit: "Soll",
773
- credit: "Haben",
774
- balance: "Saldo",
775
- taxRegistrationId: "Steuernummer",
776
- },
777
- },
778
- dateRange: {
779
- shortcutLabel: "Bereich",
780
- currentQuarter: "Aktuelles Quartal",
781
- previousQuarter: "Letztes Quartal",
782
- currentYear: "Aktuelles Jahr",
783
- previousYear: "Letztes Jahr",
784
- lifetime: "Seit Eröffnung",
785
- all: "Alle",
786
- fromLabel: "Von",
787
- toLabel: "Bis",
788
- },
789
- balanceSheet: {
790
- asOfLabel: "Periode",
791
- sections: {
792
- asset: "Aktiva",
793
- liability: "Passiva",
794
- equity: "Eigenkapital",
795
- },
796
- total: "Summe",
797
- imbalance: "Differenz: {amount}",
798
- currentEarnings: "Periodenergebnis",
799
- shortcutLabel: "Schnellauswahl",
800
- thisMonth: "Dieser Monat",
801
- lastMonth: "Letzter Monat",
802
- lastQuarter: "Letztes Quartal",
803
- lastYear: "Letztes Jahr",
804
- },
805
- profitLoss: {
806
- fromLabel: "Von",
807
- toLabel: "Bis",
808
- income: "Erträge",
809
- expense: "Aufwendungen",
810
- netIncome: "Jahresüberschuss:",
811
- },
812
- accounts: {
813
- listEmpty: "In dieser Kategorie sind noch keine Konten vorhanden.",
814
- openLedgerAria: "Hauptbuch für {code} {name} öffnen",
815
- manageButton: "Konten verwalten",
816
- modalTitle: "Konten verwalten",
817
- addAccount: "Konto hinzufügen",
818
- sectionTitle: {
819
- asset: "Aktiva",
820
- liability: "Passiva",
821
- equity: "Eigenkapital",
822
- income: "Erträge",
823
- expense: "Aufwendungen",
824
- },
825
- columnCode: "Code",
826
- columnName: "Name",
827
- columnType: "Typ",
828
- columnNote: "Notiz",
829
- typeOption: {
830
- asset: "Aktivkonto",
831
- liability: "Passivkonto",
832
- equity: "Eigenkapital",
833
- income: "Ertrag",
834
- expense: "Aufwand",
835
- },
836
- edit: "Bearbeiten",
837
- save: "Speichern",
838
- cancel: "Abbrechen",
839
- saving: "Wird gespeichert…",
840
- addToCategory: "Konto vom Typ {type} hinzufügen",
841
- deactivate: "Deaktivieren",
842
- reactivate: "Aktivieren",
843
- deactivateConfirm: "Soll „{name}“ aus den Buchungs- und Kontodropdowns ausgeblendet werden? Bestehende Buchungen bleiben unberührt.",
844
- errorEmptyCode: "Code ist erforderlich.",
845
- errorReservedCode: "Codes, die mit „_“ beginnen, sind für Systemzeilen reserviert.",
846
- errorInvalidCodeFormat: "Der Kontocode muss genau 4 Ziffern haben.",
847
- errorCodeTypeMismatch: "Der Code muss zur Kontoart passen: 1xxx Aktivkonto, 2xxx Passivkonto, 3xxx Eigenkapital, 4xxx Ertrag, 5xxx Aufwand.",
848
- errorEmptyName: "Name ist erforderlich.",
849
- errorDuplicateCode: "Ein Konto mit diesem Code existiert bereits.",
850
- errorDuplicateName: "Ein Konto mit diesem Namen existiert bereits.",
851
- success: "Konto gespeichert.",
852
- codeReadOnlyHint: "Der Code kann nach dem Anlegen des Kontos nicht mehr geändert werden.",
853
- noteOptional: "(optional)",
854
- },
855
- settings: {
856
- bookInfo: "Buchinformationen",
857
- bookInfoExplain:
858
- "Ändern Sie das Land, um die Hinweise zur Steuerjurisdiktion zu aktualisieren. Die Währung kann nach gebuchten Einträgen nicht mehr geändert werden.",
859
- countryUnset: "(nicht gesetzt)",
860
- fiscalYearEndExplain: "Ändert nur, wie die Datumsbereich-Schnellauswahl ab jetzt aufgelöst wird; bestehende Buchungen werden nicht verschoben.",
861
- saveChanges: "Änderungen speichern",
862
- updateOk: "Buch aktualisiert.",
863
- rebuild: "Snapshots neu aufbauen",
864
- rebuildExplain: "Verwirft alle Monats-Snapshots und berechnet sie aus dem Journal neu. Nützlich nach manueller Bearbeitung.",
865
- rebuildOk: "{count} Periode(n) neu aufgebaut.",
866
- advanced: "Erweitert…",
867
- deleteBook: "Buch löschen",
868
- deleteBookExplain: "Löscht das Buch-Verzeichnis dauerhaft. Nicht rückgängig zu machen.",
869
- deleteBookConfirm: 'Tippen Sie "{bookName}" zur Bestätigung:',
870
- deleteBookButton: "Endgültig löschen",
871
- },
872
- preview: {
873
- entry: "Eintrag am {date} gebucht",
874
- pl: "GuV {from} → {to}: netto {net}",
875
- bs: "Bilanz per {date} · Aktiva {assets}",
876
- bookCreated: 'Buch "{name}" ({id}) angelegt',
877
- },
878
- previewSummary: "Buchhaltung · {bookId}",
879
- previewError: "Buchhaltung: {error}",
880
- previewGeneric: "Buchhaltungs-Ergebnis",
881
- },
882
697
  pluginWiki: {
883
698
  backToIndex: "Zurück zum Index",
884
699
  pdf: "PDF",
@@ -1120,6 +935,10 @@ const deMessages = {
1120
935
  marpSplitExit: "Quelleneditor schließen",
1121
936
  marpSplitEditorLabel: "Quelle",
1122
937
  },
938
+ markdownMermaid: {
939
+ loadFailed: "⚠ Mermaid konnte nicht geladen werden: {error}",
940
+ renderFailed: "⚠ Mermaid-Rendering fehlgeschlagen: {error}",
941
+ },
1123
942
  pluginTextResponse: {
1124
943
  pdf: "PDF",
1125
944
  pdfFailed: "⚠ PDF fehlgeschlagen",