mulmoterminal 0.9.3 → 1.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.
- package/README.md +83 -0
- package/dist/assets/{abnfDiagram-VRR7QNED-6nNByj6v-DtVCunM4.js → abnfDiagram-VRR7QNED-6nNByj6v-DGtwdUf8.js} +1 -1
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-DZ-Znbwf.js +1 -0
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-Bgnyaj_i-BlvfAzkT.js → architectureDiagram-ZJ3FMSHR-Bgnyaj_i-DGIWwfAV.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-DQ35o5E4-DV5mC34o.js → blockDiagram-677ZJIJ3-DQ35o5E4-27RPR53D.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-ClWZeiWo-gfTIn5Lw.js → c4Diagram-LMCZKHZV-ClWZeiWo-CqXuDI4P.js} +1 -1
- package/dist/assets/channel-Di5rtkx0-DQLsM284.js +1 -0
- package/dist/assets/{chunk-32BRIVSS-CCt9wtYd-DpyNEnwu.js → chunk-32BRIVSS-CCt9wtYd-CGaPp4LL.js} +1 -1
- package/dist/assets/{chunk-52WLFC77-FbBbR4uI-CcEzfpDT.js → chunk-52WLFC77-FbBbR4uI-UAwhz_M9.js} +1 -1
- package/dist/assets/{chunk-C7G6YPKG-C87hlS9c-LvEVJ1IQ.js → chunk-C7G6YPKG-C87hlS9c-DedqefeW.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-BqGqMXLN-BmIsXusx.js → chunk-EX3LRPZG-BqGqMXLN-Bb1Mz7iv.js} +1 -1
- package/dist/assets/{chunk-FWX5IMBZ-BkbSAAuW-DQH0V6p8.js → chunk-FWX5IMBZ-BkbSAAuW-C2rOKQ0W.js} +2 -2
- package/dist/assets/{chunk-HOUHSVGY-Cxu0eDlh-CEUtBKYW.js → chunk-HOUHSVGY-Cxu0eDlh-Di1lybq-.js} +1 -1
- package/dist/assets/{chunk-ICXQ74PX-hiraF_Xj-DQR2BrrB.js → chunk-ICXQ74PX-hiraF_Xj-CDR-rXNa.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-CqxshQHA-Czit54cz.js → chunk-MOJQB5TN-CqxshQHA--ID4cJe7.js} +1 -1
- package/dist/assets/{chunk-OGEWGWER-CjCr7ceX-Dmr6jo33.js → chunk-OGEWGWER-CjCr7ceX-D4uLoRem.js} +1 -1
- package/dist/assets/{chunk-PUDLZKDR-Dx6M-vz1-C8-lXFhC.js → chunk-PUDLZKDR-Dx6M-vz1-CAsrnK3r.js} +1 -1
- package/dist/assets/{chunk-Q4XR5HBZ-CZd-9lTB-fUkYcZLq.js → chunk-Q4XR5HBZ-CZd-9lTB-BJpdeIug.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-rI0xlC_O-BVaZytO-.js → chunk-V7JOEXUC-rI0xlC_O-f1PG3F-p.js} +1 -1
- package/dist/assets/{chunk-VAUOI2AC-DrcykVNK-yJ-tlNfF.js → chunk-VAUOI2AC-DrcykVNK-Dj0ZfRKp.js} +1 -1
- package/dist/assets/{chunk-VR4S4FIN-O6iF8Yvf-CVzjJQ5n.js → chunk-VR4S4FIN-O6iF8Yvf-BUapiHE2.js} +1 -1
- package/dist/assets/{chunk-WYO6CB5R-B83L_z6I-TrxMG8rr.js → chunk-WYO6CB5R-B83L_z6I-DOF2nExc.js} +1 -1
- package/dist/assets/{chunk-ZGVPDNZ5-BpFv9JSP-BQhaQx6J.js → chunk-ZGVPDNZ5-BpFv9JSP-DYPeNPBm.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-DkPZzR8t.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-DkPZzR8t.js +1 -0
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-BYm2Z0OV.js +1 -0
- package/dist/assets/{cynefinDiagram-TSTJHNR4-x0-0sQ15-9Tm1QSku.js → cynefinDiagram-TSTJHNR4-x0-0sQ15-BLbtiLIJ.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-CQdfl-bx-Dwg9OMoG.js → dagre-VKFMJZFB-CQdfl-bx-DZX-S9Hf.js} +1 -1
- package/dist/assets/{diagram-FQU43EPY-BOSB6VUb-DnnqZnYR.js → diagram-FQU43EPY-BOSB6VUb-DYrk9-JY.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-DLXrcXsN-f983VIfA.js → diagram-G47NLZAW-DLXrcXsN-DMUMSDYC.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-BMQp1rkF-BiLjP0he.js → diagram-NH7WQ7WH-BMQp1rkF-DZu3Xn7Y.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-D1wQ0vUj-DGc7Jn0K.js → diagram-OA4YK3LP-D1wQ0vUj-Ctkx0KEb.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-RR0DpF8R-tDIw9Yke.js → diagram-WEI45ONY-RR0DpF8R-sQWvPoC1.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-M123uVJ8-CQ3Je5fz.js → ebnfDiagram-CCIWWBDH-M123uVJ8-edZCdQvS.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-BWx_-PXG-CezHcRTF.js → erDiagram-Q63AITRT-BWx_-PXG-CfR7msPF.js} +1 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-BkWd65jm.js +1 -0
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-S4lNiAx3.js +1 -0
- package/dist/assets/{ganttDiagram-NO4QXBWP-BOoJ1eTw-Clcd2QEr.js → ganttDiagram-NO4QXBWP-BOoJ1eTw-B73WAEs4.js} +1 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-TRRwXHmK.js +1 -0
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-B2CJhk_G-B2Hd148X.js → gitGraphDiagram-IHSO6WYX-B2CJhk_G-D2IbZUGe.js} +1 -1
- package/dist/assets/index-SBAFcRMP.css +1 -0
- package/dist/assets/{index-BnjRaP6A.js → index-YA9xgtak.js} +128 -128
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-D8Wk2Q2C.js +1 -0
- package/dist/assets/{infoDiagram-FWYZ7A6U-Mp1X3pBP-734PnMyt.js → infoDiagram-FWYZ7A6U-Mp1X3pBP-C20vVR0c.js} +1 -1
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-BNG7tkJu-Cch0pp0L.js → ishikawaDiagram-FXEZZL3T-BNG7tkJu-Dtf3IBKS.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-Dbp_hY9X-Hgxk3xz1.js → journeyDiagram-5HDEW3XC-Dbp_hY9X-Z7iGrqwh.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-DSTc5u3q-Dj2ygtwy.js → kanban-definition-HUTT4EX6-DSTc5u3q-js-QvcYr.js} +1 -1
- package/dist/assets/{line-B1wBwzrY-BfNBRxmq.js → line-B1wBwzrY-yLbpFjgh.js} +1 -1
- package/dist/assets/{marp-CBSoH1Vt.js → marp-8yMkefyS.js} +1 -1
- package/dist/assets/{mermaid-parser.core-DC7NPJ_M-Cfp31QX2.js → mermaid-parser.core-DC7NPJ_M-IqvgPv4-.js} +2 -2
- package/dist/assets/{mermaid.core-DZM3Ha-E-s4una8R5.js → mermaid.core-DZM3Ha-E-964Ly4Uk.js} +3 -3
- package/dist/assets/{mindmap-definition-LN4V7U3C-DYtgcMsY-DBtBWMe3.js → mindmap-definition-LN4V7U3C-DYtgcMsY-DzFenrqW.js} +1 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-BUFe98QC.js +1 -0
- package/dist/assets/{pegDiagram-2B236MQR-C43eIpKM-CGl0Mxne.js → pegDiagram-2B236MQR-C43eIpKM-CPxm1zaJ.js} +1 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-CW09MPfM.js +1 -0
- package/dist/assets/{pieDiagram-ENE6RG2P-BkTqgJyR-D2B2wsUi.js → pieDiagram-ENE6RG2P-BkTqgJyR-SuQOUJv7.js} +1 -1
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-Bm1Zjm45-OakSJ-Xf.js → quadrantDiagram-ABIIQ3AL-Bm1Zjm45-CxN3pVD1.js} +1 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--DXFUvOtM.js +1 -0
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-BU8WcG97.js +1 -0
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--Bsm5mLm7.js +1 -0
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-BpVcU0NO.js +1 -0
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-Da2qBADq.js +1 -0
- package/dist/assets/{railroadDiagram-RFXS5EU6-BkfbdeAs-BcsE6Ggi.js → railroadDiagram-RFXS5EU6-BkfbdeAs-x3RjQYe5.js} +1 -1
- package/dist/assets/{requirementDiagram-TGXJPOKE-CrGTTjYg-tOFWf7Wj.js → requirementDiagram-TGXJPOKE-CrGTTjYg-CZVJXiB0.js} +1 -1
- package/dist/assets/{sankeyDiagram-HTMAVEWB-rWXPf03Z-CynV8Q_B.js → sankeyDiagram-HTMAVEWB-rWXPf03Z-DhdvF4v5.js} +1 -1
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-nkJYWO2m-CLgDqxDM.js → sequenceDiagram-DBY2YBRQ-nkJYWO2m-Dvi_zljF.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-T4-clK8b-DbWlwbcm.js → stateDiagram-2N3HPSRC-T4-clK8b-nnUFeTnz.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-BviIi3HE.js +1 -0
- package/dist/assets/{swimlanes-5IMT3BWC-HmQNEntu-CULdZ2Ss.js → swimlanes-5IMT3BWC-HmQNEntu-CnEGBQ_x.js} +1 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-gz62UWNS.js +8 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-CNc9jSTP-DmFMY1Mv.js → timeline-definition-FHXFAJF6-CNc9jSTP-DzXY5BW4.js} +1 -1
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-DfpLaR6K.js +1 -0
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-76EFh-rZ.js +1 -0
- package/dist/assets/{vennDiagram-L72KCM5P-Dr3pTJ_0-BmBHfE4y.js → vennDiagram-L72KCM5P-Dr3pTJ_0-Cz_J7qhF.js} +1 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-D573z6BH.js +1 -0
- package/dist/assets/{wardleyDiagram-EHGQE667-DSFc7ZZa-DWvD9JbG.js → wardleyDiagram-EHGQE667-DSFc7ZZa-dN8C2khV.js} +1 -1
- package/dist/assets/{xychartDiagram-FW5EYKEG-BP0Nn4Pp-D2cjwNtU.js → xychartDiagram-FW5EYKEG-BP0Nn4Pp-BhdsqgjF.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/remoteHost/skills.spec.ts +80 -1
- package/server/backends/remoteHost/skills.ts +78 -25
- package/server/backends/worklog.spec.ts +49 -0
- package/server/backends/worklog.ts +75 -0
- package/server/codex-skills.ts +4 -1
- package/server/config-routes.ts +8 -0
- package/server/config-schema.spec.ts +9 -1
- package/server/config-schema.ts +15 -0
- package/server/dir-config.spec.ts +15 -0
- package/server/dir-config.ts +15 -1
- package/server/file-cache.spec.ts +48 -0
- package/server/file-cache.ts +44 -0
- package/server/index.ts +113 -26
- package/server/skills/mulmoterminal-config/SKILL.md +12 -0
- package/server/tmux-routes.spec.ts +120 -0
- package/server/tmux-routes.ts +46 -0
- package/server/tmux.spec.ts +17 -1
- package/server/tmux.ts +13 -0
- package/server/transcript.spec.ts +45 -0
- package/server/transcript.ts +30 -19
- 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/index-8xyJ3JLz.css +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
|
@@ -71,6 +71,7 @@ server, and opens the browser. For local development from a clone, see
|
|
|
71
71
|
- [Configuration](#configuration)
|
|
72
72
|
- [Running](#running)
|
|
73
73
|
- [Scripts (Run menu)](#scripts-run-menu)
|
|
74
|
+
- [Skills (Skill menu)](#skills-skill-menu)
|
|
74
75
|
- [Files view (browse & edit)](#files-view-browse--edit)
|
|
75
76
|
- [Git worktrees & pull requests](#git-worktrees--pull-requests)
|
|
76
77
|
- [Cost & token usage](#cost--token-usage)
|
|
@@ -303,6 +304,8 @@ The Settings modal (⚙) persists per-user UI choices to `~/.mulmoterminal/confi
|
|
|
303
304
|
| `buttons` | Header action buttons — see [Header buttons](#header-buttons). Omit to keep the defaults; set to replace them. |
|
|
304
305
|
| `chips` | Header info chips. Omit to keep the default set; `[]` hides all built-ins. |
|
|
305
306
|
| `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). |
|
|
307
|
+
| `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). |
|
|
308
|
+
| `worklogIntervalHours` | Worklog cadence in hours (default `6`, clamped to `1`–`168`). |
|
|
306
309
|
|
|
307
310
|
#### Header buttons
|
|
308
311
|
|
|
@@ -334,6 +337,29 @@ Cloud Function; MulmoTerminal only makes the call, and only while the **RemoteHo
|
|
|
334
337
|
channel is connected (its Google sign-in supplies the notification auth). With RemoteHost
|
|
335
338
|
disconnected, or with no device registered, the toggle is a no-op.
|
|
336
339
|
|
|
340
|
+
**Dev worklog (cross-clone).** Set `worklogEnabled: true` in
|
|
341
|
+
`~/.mulmoterminal/config.json` (and **restart** — the scheduler reads its tasks at boot)
|
|
342
|
+
to register a built-in scheduled task. Every `worklogIntervalHours` (default 6) it spawns
|
|
343
|
+
a Claude session that reviews the work you did across **all your saved working dirs**
|
|
344
|
+
(`cwdPresets`) since it last ran, and writes it up as a short manager-style report.
|
|
345
|
+
Multiple clones/worktrees of the same repo (e.g. `myapp`, `myapp2`) are **merged into one
|
|
346
|
+
per-repository section**, each covering what problem was addressed, what got solved, what's
|
|
347
|
+
still in progress, and — mined from the transcripts — decisions that were only *discussed
|
|
348
|
+
and not built*. The window is **since the last run** (tracked in
|
|
349
|
+
`config/scheduler/worklog-state.json`), not a fixed 6 h, so a missed/slept run doesn't drop
|
|
350
|
+
work. It reads and reconciles progress against `vision.md` / `milestones.md` (creating
|
|
351
|
+
empty ones if absent) so a long-running goal isn't forgotten.
|
|
352
|
+
|
|
353
|
+
Output lands in the wiki: one **weekly page** per ISO week
|
|
354
|
+
(`data/wiki/pages/dev-log-YYYY-www.md` — filenames are lowercase, or the wiki can't open
|
|
355
|
+
them), each tagged `worklog`. To browse them, open the **作業ログ 一覧** hub page
|
|
356
|
+
(`worklog`), which links every week, or click the **`#worklog`** tag in the wiki index.
|
|
357
|
+
|
|
358
|
+
Off by default because each run costs tokens — watch the cost readout and tune the cadence.
|
|
359
|
+
Run it on a single "hub" instance; running it in several instances sharing one workspace
|
|
360
|
+
double-fires it. The batch treats everything it reads (transcripts, git, wiki) as untrusted
|
|
361
|
+
data and only writes the worklog / hub / `vision` / `milestones` pages.
|
|
362
|
+
|
|
337
363
|
### Per-directory settings (`<project>/.mulmoterminal.json`)
|
|
338
364
|
|
|
339
365
|
Drop a `.mulmoterminal.json` in a project directory to give terminals opened **in
|
|
@@ -470,6 +496,39 @@ the last 32 KB of output. See
|
|
|
470
496
|
|
|
471
497
|
---
|
|
472
498
|
|
|
499
|
+
## Skills (Skill menu)
|
|
500
|
+
|
|
501
|
+
Next to the **▶ Run ▾** dropdown, every running terminal's header has a **⚡ Skill ▾**
|
|
502
|
+
dropdown — in both the single view and each grid cell, and **only when the open
|
|
503
|
+
project has skills** (nothing discovered, no button). It lists the
|
|
504
|
+
[Claude skills](https://docs.claude.com/en/docs/claude-code/skills) discoverable for
|
|
505
|
+
that terminal's directory — both **project scope** (`<dir>/.claude/skills`) and **user
|
|
506
|
+
scope** (`~/.claude/skills`), the same skills Claude sees — and, on pick, **runs the
|
|
507
|
+
skill in that session**: it types the skill's invocation into the terminal and submits
|
|
508
|
+
it (for Claude, its `/<slug>` command; for Codex, which has no slash command, a plain
|
|
509
|
+
`Use the "<slug>" skill.` instruction). Unlike **▶ Run** — which launches a
|
|
510
|
+
`script.json` shell command in a spare cell — a skill runs **in the session you
|
|
511
|
+
picked it from**, continuing that conversation.
|
|
512
|
+
|
|
513
|
+
**Ordering:** working-dir (project) skills come **first**, then user-scope ones,
|
|
514
|
+
alphabetical within each group; a project skill of the same slug shadows the user one.
|
|
515
|
+
|
|
516
|
+
**Filtering:** add a `skills` array to the directory's
|
|
517
|
+
[`.mulmoterminal.json`](#per-directory-settings-projectmulmoterminaljson) to narrow the menu —
|
|
518
|
+
an allowlist of slugs that also sets the order (only those show, in that order). Omit
|
|
519
|
+
it to show everything.
|
|
520
|
+
|
|
521
|
+
```jsonc
|
|
522
|
+
// <dir>/.mulmoterminal.json
|
|
523
|
+
{ "skills": ["review-diff", "commit-msg"] }
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
Each menu item shows the skill's id, with its `SKILL.md` `description` as the hover
|
|
527
|
+
tooltip. A directory (or workspace) without any `.claude/skills` simply shows no
|
|
528
|
+
button. Skills are discovered read-only; the menu never creates or edits them.
|
|
529
|
+
|
|
530
|
+
---
|
|
531
|
+
|
|
473
532
|
## Files view (browse & edit)
|
|
474
533
|
|
|
475
534
|
A terminal header can carry a **📁 Files** button — add it as a [header button](#header-buttons)
|
|
@@ -658,6 +717,30 @@ position the client sends back to `/ws/run`).
|
|
|
658
717
|
A missing or invalid `script.json` is **not** an error — it yields an empty
|
|
659
718
|
`scripts` array.
|
|
660
719
|
|
|
720
|
+
### HTTP: `GET /api/skills`
|
|
721
|
+
|
|
722
|
+
The Claude skills discoverable for a terminal's chosen directory (`?cwd=<dir>`,
|
|
723
|
+
falling back to `CLAUDE_CWD`) — project scope (`<cwd>/.claude/skills`) plus user scope
|
|
724
|
+
(`~/.claude/skills`), deduped by slug (project shadows user), **working-dir skills
|
|
725
|
+
first**; see [Skills (Skill menu)](#skills-skill-menu). A `skills` allowlist in that
|
|
726
|
+
directory's `.mulmoterminal.json` narrows and reorders the result; absent → all. The
|
|
727
|
+
resolved `cwd` is echoed back. Each entry carries its `slug` (the skill invoked as
|
|
728
|
+
`/<slug>`) and the `SKILL.md` `description` (the menu tooltip).
|
|
729
|
+
|
|
730
|
+
```jsonc
|
|
731
|
+
// GET /api/skills?cwd=/Users/me/proj
|
|
732
|
+
{
|
|
733
|
+
"cwd": "/Users/me/proj",
|
|
734
|
+
"skills": [
|
|
735
|
+
{ "slug": "commit", "description": "Write a commit message" },
|
|
736
|
+
{ "slug": "review", "description": "Review the current diff" }
|
|
737
|
+
]
|
|
738
|
+
}
|
|
739
|
+
```
|
|
740
|
+
|
|
741
|
+
A directory without any discoverable skills is **not** an error — it yields an empty
|
|
742
|
+
`skills` array.
|
|
743
|
+
|
|
661
744
|
### HTTP: `POST /api/command/summarize`
|
|
662
745
|
|
|
663
746
|
Runs `claude -p` **headless** over a command cell's captured terminal output and
|
|
@@ -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-IqvgPv4-.js";import"./chunk-WYO6CB5R-B83L_z6I-DOF2nExc.js";import"./chunk-VAUOI2AC-DrcykVNK-Dj0ZfRKp.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CqxshQHA--ID4cJe7.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-IqvgPv4-.js";export{e as createArchitectureServices};
|