mulmoterminal 0.9.3 → 1.0.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.
- package/README.md +25 -0
- package/dist/assets/{abnfDiagram-VRR7QNED-6nNByj6v-DtVCunM4.js → abnfDiagram-VRR7QNED-6nNByj6v-DheBdjws.js} +1 -1
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-DKr4hbNv.js +1 -0
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-Bgnyaj_i-BlvfAzkT.js → architectureDiagram-ZJ3FMSHR-Bgnyaj_i-DeqjBmXv.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-DQ35o5E4-DV5mC34o.js → blockDiagram-677ZJIJ3-DQ35o5E4-C8GJRlOG.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-ClWZeiWo-gfTIn5Lw.js → c4Diagram-LMCZKHZV-ClWZeiWo-DCF_O6wa.js} +1 -1
- package/dist/assets/channel-Di5rtkx0-ENMPwr9m.js +1 -0
- package/dist/assets/{chunk-32BRIVSS-CCt9wtYd-DpyNEnwu.js → chunk-32BRIVSS-CCt9wtYd-aqSIoPX4.js} +1 -1
- package/dist/assets/{chunk-52WLFC77-FbBbR4uI-CcEzfpDT.js → chunk-52WLFC77-FbBbR4uI-o7EFRk-Z.js} +1 -1
- package/dist/assets/{chunk-C7G6YPKG-C87hlS9c-LvEVJ1IQ.js → chunk-C7G6YPKG-C87hlS9c-DYk1rPGy.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-BqGqMXLN-BmIsXusx.js → chunk-EX3LRPZG-BqGqMXLN-CFsO6w_h.js} +1 -1
- package/dist/assets/{chunk-FWX5IMBZ-BkbSAAuW-DQH0V6p8.js → chunk-FWX5IMBZ-BkbSAAuW-DM_MfscO.js} +2 -2
- package/dist/assets/{chunk-HOUHSVGY-Cxu0eDlh-CEUtBKYW.js → chunk-HOUHSVGY-Cxu0eDlh-BjDbxOps.js} +1 -1
- package/dist/assets/{chunk-ICXQ74PX-hiraF_Xj-DQR2BrrB.js → chunk-ICXQ74PX-hiraF_Xj-iUcDh2Ds.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-CqxshQHA-Czit54cz.js → chunk-MOJQB5TN-CqxshQHA-ozqXE506.js} +1 -1
- package/dist/assets/{chunk-OGEWGWER-CjCr7ceX-Dmr6jo33.js → chunk-OGEWGWER-CjCr7ceX-CVnG09pj.js} +1 -1
- package/dist/assets/{chunk-PUDLZKDR-Dx6M-vz1-C8-lXFhC.js → chunk-PUDLZKDR-Dx6M-vz1-B421SWPj.js} +1 -1
- package/dist/assets/{chunk-Q4XR5HBZ-CZd-9lTB-fUkYcZLq.js → chunk-Q4XR5HBZ-CZd-9lTB-CAiDWUlL.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-rI0xlC_O-BVaZytO-.js → chunk-V7JOEXUC-rI0xlC_O-CtYufueO.js} +1 -1
- package/dist/assets/{chunk-VAUOI2AC-DrcykVNK-yJ-tlNfF.js → chunk-VAUOI2AC-DrcykVNK-jGzw5YJX.js} +1 -1
- package/dist/assets/{chunk-VR4S4FIN-O6iF8Yvf-CVzjJQ5n.js → chunk-VR4S4FIN-O6iF8Yvf-BQZXqb5d.js} +1 -1
- package/dist/assets/{chunk-WYO6CB5R-B83L_z6I-TrxMG8rr.js → chunk-WYO6CB5R-B83L_z6I-CTQn5U85.js} +1 -1
- package/dist/assets/{chunk-ZGVPDNZ5-BpFv9JSP-BQhaQx6J.js → chunk-ZGVPDNZ5-BpFv9JSP-B_NX0SUE.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-C4hmeWEb.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-C4hmeWEb.js +1 -0
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-GgLCM_nw.js +1 -0
- package/dist/assets/{cynefinDiagram-TSTJHNR4-x0-0sQ15-9Tm1QSku.js → cynefinDiagram-TSTJHNR4-x0-0sQ15-CkdgUGoD.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-CQdfl-bx-Dwg9OMoG.js → dagre-VKFMJZFB-CQdfl-bx-FSrXzQxB.js} +1 -1
- package/dist/assets/{diagram-FQU43EPY-BOSB6VUb-DnnqZnYR.js → diagram-FQU43EPY-BOSB6VUb-yZdPA2Rw.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-DLXrcXsN-f983VIfA.js → diagram-G47NLZAW-DLXrcXsN-aq_xTmel.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-BMQp1rkF-BiLjP0he.js → diagram-NH7WQ7WH-BMQp1rkF-BkL1fZyU.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-D1wQ0vUj-DGc7Jn0K.js → diagram-OA4YK3LP-D1wQ0vUj-D2NsP5qB.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-RR0DpF8R-tDIw9Yke.js → diagram-WEI45ONY-RR0DpF8R-v-IWOK6D.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-M123uVJ8-CQ3Je5fz.js → ebnfDiagram-CCIWWBDH-M123uVJ8-CPXV_s7Q.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-BWx_-PXG-CezHcRTF.js → erDiagram-Q63AITRT-BWx_-PXG-DvFDPrMO.js} +1 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-ZNaf3uDd.js +1 -0
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-GSALmqQ3.js +1 -0
- package/dist/assets/{ganttDiagram-NO4QXBWP-BOoJ1eTw-Clcd2QEr.js → ganttDiagram-NO4QXBWP-BOoJ1eTw-C8hbgKqC.js} +1 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-BGOUxFnc.js +1 -0
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-B2CJhk_G-B2Hd148X.js → gitGraphDiagram-IHSO6WYX-B2CJhk_G-B5mO0MM2.js} +1 -1
- package/dist/assets/{index-BnjRaP6A.js → index-DnpR_CJG.js} +103 -103
- package/dist/assets/{index-8xyJ3JLz.css → index-DsRhtnU0.css} +1 -1
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-HXxrjjRx.js +1 -0
- package/dist/assets/{infoDiagram-FWYZ7A6U-Mp1X3pBP-734PnMyt.js → infoDiagram-FWYZ7A6U-Mp1X3pBP-D4u3DGcy.js} +1 -1
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-BNG7tkJu-Cch0pp0L.js → ishikawaDiagram-FXEZZL3T-BNG7tkJu-DX6cRWKX.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-Dbp_hY9X-Hgxk3xz1.js → journeyDiagram-5HDEW3XC-Dbp_hY9X-lR-zk1P5.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-DSTc5u3q-Dj2ygtwy.js → kanban-definition-HUTT4EX6-DSTc5u3q-B8BsOJR_.js} +1 -1
- package/dist/assets/{line-B1wBwzrY-BfNBRxmq.js → line-B1wBwzrY-CsBjF7T-.js} +1 -1
- package/dist/assets/{marp-CBSoH1Vt.js → marp-DZRmgRY9.js} +1 -1
- package/dist/assets/{mermaid-parser.core-DC7NPJ_M-Cfp31QX2.js → mermaid-parser.core-DC7NPJ_M-CcAjWs6c.js} +2 -2
- package/dist/assets/{mermaid.core-DZM3Ha-E-s4una8R5.js → mermaid.core-DZM3Ha-E-CFYYZVad.js} +3 -3
- package/dist/assets/{mindmap-definition-LN4V7U3C-DYtgcMsY-DBtBWMe3.js → mindmap-definition-LN4V7U3C-DYtgcMsY-BRIJMUm0.js} +1 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-DB-Dy5kn.js +1 -0
- package/dist/assets/{pegDiagram-2B236MQR-C43eIpKM-CGl0Mxne.js → pegDiagram-2B236MQR-C43eIpKM-BTRDK2Rn.js} +1 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-DGylsaHj.js +1 -0
- package/dist/assets/{pieDiagram-ENE6RG2P-BkTqgJyR-D2B2wsUi.js → pieDiagram-ENE6RG2P-BkTqgJyR-C0wYkdhk.js} +1 -1
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-Bm1Zjm45-OakSJ-Xf.js → quadrantDiagram-ABIIQ3AL-Bm1Zjm45-HKnKnEKU.js} +1 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--DjWDNt3M.js +1 -0
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-CYIDYmq5.js +1 -0
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--BcibSZfl.js +1 -0
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-ChODKeRY.js +1 -0
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-5nqohbXV.js +1 -0
- package/dist/assets/{railroadDiagram-RFXS5EU6-BkfbdeAs-BcsE6Ggi.js → railroadDiagram-RFXS5EU6-BkfbdeAs-BxYC_fFp.js} +1 -1
- package/dist/assets/{requirementDiagram-TGXJPOKE-CrGTTjYg-tOFWf7Wj.js → requirementDiagram-TGXJPOKE-CrGTTjYg-B3HYTfaW.js} +1 -1
- package/dist/assets/{sankeyDiagram-HTMAVEWB-rWXPf03Z-CynV8Q_B.js → sankeyDiagram-HTMAVEWB-rWXPf03Z-BSzqUsBJ.js} +1 -1
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-nkJYWO2m-CLgDqxDM.js → sequenceDiagram-DBY2YBRQ-nkJYWO2m-C911Onke.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-T4-clK8b-DbWlwbcm.js → stateDiagram-2N3HPSRC-T4-clK8b-B-giNW0K.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-DuCOmOmY.js +1 -0
- package/dist/assets/{swimlanes-5IMT3BWC-HmQNEntu-CULdZ2Ss.js → swimlanes-5IMT3BWC-HmQNEntu-CSiN22-5.js} +1 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-DG3vt7aV.js +8 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-CNc9jSTP-DmFMY1Mv.js → timeline-definition-FHXFAJF6-CNc9jSTP-CIyjGbiA.js} +1 -1
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-DbwA95vD.js +1 -0
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-DEq41o1Y.js +1 -0
- package/dist/assets/{vennDiagram-L72KCM5P-Dr3pTJ_0-BmBHfE4y.js → vennDiagram-L72KCM5P-Dr3pTJ_0-D-WU2GoG.js} +1 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-B-jvjF9O.js +1 -0
- package/dist/assets/{wardleyDiagram-EHGQE667-DSFc7ZZa-DWvD9JbG.js → wardleyDiagram-EHGQE667-DSFc7ZZa-BRv4D8qc.js} +1 -1
- package/dist/assets/{xychartDiagram-FW5EYKEG-BP0Nn4Pp-D2cjwNtU.js → xychartDiagram-FW5EYKEG-BP0Nn4Pp-ByYvhjoR.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +2 -1
- package/server/activity-hook.spec.ts +16 -1
- package/server/activity-hook.ts +9 -0
- package/server/app-config.spec.ts +40 -1
- package/server/app-config.ts +27 -0
- package/server/backends/worklog.spec.ts +49 -0
- package/server/backends/worklog.ts +75 -0
- package/server/config-routes.ts +8 -0
- package/server/index.ts +15 -7
- package/server/web-push.spec.ts +6 -28
- package/server/web-push.ts +6 -54
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-DwTylFBi.js +0 -1
- package/dist/assets/channel-Di5rtkx0-DkEgk-pd.js +0 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-B8VyQdV-.js +0 -1
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-B8VyQdV-.js +0 -1
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-BaTsKKi0.js +0 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-CyWTugzn.js +0 -1
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-CdmnRPZw.js +0 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-C_bw49Ma.js +0 -1
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-KtkQGqzk.js +0 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-DwSDPzqY.js +0 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-CiB48qnn.js +0 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--6l7KPMn8.js +0 -1
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-8ClzQSfW.js +0 -1
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--C0FLZOzv.js +0 -1
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-DGtEHnA9.js +0 -1
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-CreTgxNy.js +0 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-DgqIU_8B.js +0 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-Zht4hkxA.js +0 -8
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-CxgFefwU.js +0 -1
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-CyDDLqfk.js +0 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-DtA9dAOH.js +0 -1
package/README.md
CHANGED
|
@@ -303,6 +303,8 @@ The Settings modal (⚙) persists per-user UI choices to `~/.mulmoterminal/confi
|
|
|
303
303
|
| `buttons` | Header action buttons — see [Header buttons](#header-buttons). Omit to keep the defaults; set to replace them. |
|
|
304
304
|
| `chips` | Header info chips. Omit to keep the default set; `[]` hides all built-ins. |
|
|
305
305
|
| `pushEnabled` | `true` to send a **Web Push** to your registered devices when a background task finishes. Off by default; only sends while the **RemoteHost** channel is connected (see below). |
|
|
306
|
+
| `worklogEnabled` | `true` to run the built-in **dev worklog** batch (see below). Off by default (each run spawns an LLM session, so it costs tokens). |
|
|
307
|
+
| `worklogIntervalHours` | Worklog cadence in hours (default `6`, clamped to `1`–`168`). |
|
|
306
308
|
|
|
307
309
|
#### Header buttons
|
|
308
310
|
|
|
@@ -334,6 +336,29 @@ Cloud Function; MulmoTerminal only makes the call, and only while the **RemoteHo
|
|
|
334
336
|
channel is connected (its Google sign-in supplies the notification auth). With RemoteHost
|
|
335
337
|
disconnected, or with no device registered, the toggle is a no-op.
|
|
336
338
|
|
|
339
|
+
**Dev worklog (cross-clone).** Set `worklogEnabled: true` in
|
|
340
|
+
`~/.mulmoterminal/config.json` (and **restart** — the scheduler reads its tasks at boot)
|
|
341
|
+
to register a built-in scheduled task. Every `worklogIntervalHours` (default 6) it spawns
|
|
342
|
+
a Claude session that reviews the work you did across **all your saved working dirs**
|
|
343
|
+
(`cwdPresets`) since it last ran, and writes it up as a short manager-style report.
|
|
344
|
+
Multiple clones/worktrees of the same repo (e.g. `myapp`, `myapp2`) are **merged into one
|
|
345
|
+
per-repository section**, each covering what problem was addressed, what got solved, what's
|
|
346
|
+
still in progress, and — mined from the transcripts — decisions that were only *discussed
|
|
347
|
+
and not built*. The window is **since the last run** (tracked in
|
|
348
|
+
`config/scheduler/worklog-state.json`), not a fixed 6 h, so a missed/slept run doesn't drop
|
|
349
|
+
work. It reads and reconciles progress against `vision.md` / `milestones.md` (creating
|
|
350
|
+
empty ones if absent) so a long-running goal isn't forgotten.
|
|
351
|
+
|
|
352
|
+
Output lands in the wiki: one **weekly page** per ISO week
|
|
353
|
+
(`data/wiki/pages/dev-log-YYYY-www.md` — filenames are lowercase, or the wiki can't open
|
|
354
|
+
them), each tagged `worklog`. To browse them, open the **作業ログ 一覧** hub page
|
|
355
|
+
(`worklog`), which links every week, or click the **`#worklog`** tag in the wiki index.
|
|
356
|
+
|
|
357
|
+
Off by default because each run costs tokens — watch the cost readout and tune the cadence.
|
|
358
|
+
Run it on a single "hub" instance; running it in several instances sharing one workspace
|
|
359
|
+
double-fires it. The batch treats everything it reads (transcripts, git, wiki) as untrusted
|
|
360
|
+
data and only writes the worklog / hub / `vision` / `milestones` pages.
|
|
361
|
+
|
|
337
362
|
### Per-directory settings (`<project>/.mulmoterminal.json`)
|
|
338
363
|
|
|
339
364
|
Drop a `.mulmoterminal.json` in a project directory to give terminals opened **in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-Bdt8pFDJ-DsF7k-Jl.js";import{f as t}from"./src-Brzfja-q-ch1VcTiG.js";import{_ as n,g as r}from"./mermaid-parser.core-DC7NPJ_M-
|
|
1
|
+
import{n as e}from"./chunk-Y2CYZVJY-Bdt8pFDJ-DsF7k-Jl.js";import{f as t}from"./src-Brzfja-q-ch1VcTiG.js";import{_ as n,g as r}from"./mermaid-parser.core-DC7NPJ_M-CcAjWs6c.js";import"./chunk-WYO6CB5R-B83L_z6I-CTQn5U85.js";import"./chunk-VAUOI2AC-DrcykVNK-jGzw5YJX.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CqxshQHA-ozqXE506.js";import{t as s}from"./chunk-JWPE2WC7-BQ3zXr2k-DSd3Ct95.js";var c=r().RailroadAbnf.parser.LangiumParser,l=e(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=e(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=e(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=e(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=e(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=e(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=e(e=>{s(e,a),e.title&&a.setTitle(e.title),e.rules.map(e=>a.addRule(m(e)))},`populateDb`),g={parser:{parse:e(e=>{a.clear(),t.debug(`[ABNF Parser] Starting Langium parse`);let r=c.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new n(r);let i=r.value;t.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),t.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:a}},db:a,renderer:o,styles:i};export{g as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as e}from"./mermaid-parser.core-DC7NPJ_M-CcAjWs6c.js";export{e as createArchitectureServices};
|