@zenuml/core 3.47.9 → 3.48.1

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 (205) hide show
  1. package/dist/cli/zenuml.mjs +13529 -0
  2. package/dist/cli/zenuml.mjs.map +1 -0
  3. package/dist/cloud-icons-eHuugVSv.js.map +1 -0
  4. package/dist/zenuml.esm.mjs +2153 -2156
  5. package/dist/zenuml.esm.mjs.map +1 -0
  6. package/dist/zenuml.js +82 -82
  7. package/dist/zenuml.js.map +1 -0
  8. package/package.json +18 -5
  9. package/.agents/skills/babysit-pr/SKILL.md +0 -223
  10. package/.agents/skills/babysit-pr/agents/openai.yaml +0 -7
  11. package/.agents/skills/dia-scoring/SKILL.md +0 -139
  12. package/.agents/skills/dia-scoring/agents/openai.yaml +0 -7
  13. package/.agents/skills/dia-scoring/references/selectors-and-keys.md +0 -253
  14. package/.agents/skills/land-pr/SKILL.md +0 -120
  15. package/.agents/skills/propagate-core-release/SKILL.md +0 -205
  16. package/.agents/skills/propagate-core-release/agents/openai.yaml +0 -7
  17. package/.agents/skills/propagate-core-release/references/downstreams.md +0 -42
  18. package/.agents/skills/ship-branch/SKILL.md +0 -105
  19. package/.agents/skills/submit-branch/SKILL.md +0 -76
  20. package/.agents/skills/validate-branch/SKILL.md +0 -72
  21. package/.claude/commands/README.md +0 -162
  22. package/.claude/commands/analyze.md +0 -101
  23. package/.claude/commands/clarify.md +0 -158
  24. package/.claude/commands/code-review.md +0 -322
  25. package/.claude/commands/constitution.md +0 -73
  26. package/.claude/commands/create-docs.md +0 -309
  27. package/.claude/commands/full-context.md +0 -121
  28. package/.claude/commands/gemini-consult.md +0 -164
  29. package/.claude/commands/handoff.md +0 -146
  30. package/.claude/commands/implement.md +0 -56
  31. package/.claude/commands/plan.md +0 -43
  32. package/.claude/commands/refactor.md +0 -188
  33. package/.claude/commands/specify.md +0 -21
  34. package/.claude/commands/tasks.md +0 -62
  35. package/.claude/commands/update-docs.md +0 -314
  36. package/.claude/hooks/README.md +0 -270
  37. package/.claude/hooks/config/sensitive-patterns.json +0 -86
  38. package/.claude/hooks/gemini-context-injector.sh +0 -129
  39. package/.claude/hooks/mcp-security-scan.sh +0 -147
  40. package/.claude/hooks/notify.sh +0 -103
  41. package/.claude/hooks/setup/hook-setup.md +0 -96
  42. package/.claude/hooks/setup/settings.json.template +0 -63
  43. package/.claude/hooks/sounds/complete.wav +0 -0
  44. package/.claude/hooks/sounds/input-needed.wav +0 -0
  45. package/.claude/hooks/subagent-context-injector.sh +0 -65
  46. package/.claude/skills/babysit-pr/SKILL.md +0 -223
  47. package/.claude/skills/babysit-pr/agents/openai.yaml +0 -7
  48. package/.claude/skills/dia-scoring/SKILL.md +0 -139
  49. package/.claude/skills/dia-scoring/agents/openai.yaml +0 -7
  50. package/.claude/skills/dia-scoring/references/selectors-and-keys.md +0 -253
  51. package/.claude/skills/emoji-eval/SKILL.md +0 -187
  52. package/.claude/skills/land-pr/SKILL.md +0 -120
  53. package/.claude/skills/propagate-core-release/SKILL.md +0 -205
  54. package/.claude/skills/propagate-core-release/agents/openai.yaml +0 -7
  55. package/.claude/skills/propagate-core-release/references/downstreams.md +0 -42
  56. package/.claude/skills/ship-branch/SKILL.md +0 -105
  57. package/.claude/skills/submit-branch/SKILL.md +0 -76
  58. package/.claude/skills/validate-branch/SKILL.md +0 -72
  59. package/.claude/skills/zenuml-ux-research/SKILL.md +0 -183
  60. package/.claude/skills/zenuml-ux-research/references/assertion-catalog.md +0 -261
  61. package/.claude/skills/zenuml-ux-research/references/best-practices-overview.md +0 -56
  62. package/.claude/skills/zenuml-ux-research/references/report-template.md +0 -89
  63. package/.claude/skills/zenuml-ux-research/references/scenarios/edit-message-label.md +0 -37
  64. package/.claude/skills/zenuml-ux-research/references/scenarios/insert-message.md +0 -36
  65. package/.claude/skills/zenuml-ux-research/references/scenarios/insert-participant.md +0 -31
  66. package/.claude/skills/zenuml-ux-research/references/scenarios/rename-participant.md +0 -33
  67. package/.claude/skills/zenuml-ux-research/references/scenarios/undo-insert.md +0 -35
  68. package/.devcontainer/devcontainer.json +0 -21
  69. package/.dockerignore +0 -19
  70. package/.eslintrc.js +0 -39
  71. package/.git-blame-ignore-revs +0 -6
  72. package/.kiro/hooks/README.md +0 -38
  73. package/.kiro/hooks/session-sound-notification.js +0 -44
  74. package/.kiro/hooks/session-sound-notification.json +0 -23
  75. package/.mcp.json.example +0 -17
  76. package/.nvmrc +0 -1
  77. package/.prettierignore +0 -4
  78. package/.prettierrc +0 -1
  79. package/.specify/memory/constitution.md +0 -33
  80. package/.specify/scripts/bash/check-prerequisites.sh +0 -166
  81. package/.specify/scripts/bash/common.sh +0 -113
  82. package/.specify/scripts/bash/create-new-feature.sh +0 -97
  83. package/.specify/scripts/bash/setup-plan.sh +0 -60
  84. package/.specify/scripts/bash/update-agent-context.sh +0 -728
  85. package/.specify/templates/agent-file-template.md +0 -23
  86. package/.specify/templates/plan-template.md +0 -219
  87. package/.specify/templates/spec-template.md +0 -116
  88. package/.specify/templates/tasks-template.md +0 -127
  89. package/.storybook/main.ts +0 -25
  90. package/.storybook/preview.ts +0 -29
  91. package/.watchmanconfig +0 -3
  92. package/AGENTS.md +0 -26
  93. package/CLAUDE.md +0 -124
  94. package/DEPLOYMENT.md +0 -62
  95. package/Dockerfile +0 -36
  96. package/IMPLEMENTATION_PLAN.md +0 -163
  97. package/Integration/vanilla-js/index.html +0 -42
  98. package/MCP-ASSISTANT-RULES.md +0 -85
  99. package/README_CN.md +0 -15
  100. package/TUTORIAL.md +0 -116
  101. package/antlr/antlr-4.11.1-complete.jar +0 -0
  102. package/bun.lock +0 -1544
  103. package/bunfig.toml +0 -52
  104. package/docs/UNICODE_SUPPORT.md +0 -179
  105. package/docs/ai-context/deployment-infrastructure.md +0 -21
  106. package/docs/ai-context/docs-overview.md +0 -89
  107. package/docs/ai-context/handoff.md +0 -174
  108. package/docs/ai-context/project-structure.md +0 -160
  109. package/docs/ai-context/system-integration.md +0 -21
  110. package/docs/asciidoc/contributor.adoc +0 -54
  111. package/docs/asciidoc/create-my-own-theme.adoc +0 -149
  112. package/docs/asciidoc/images/creation-component.png +0 -0
  113. package/docs/asciidoc/images/creation-rtl.png +0 -0
  114. package/docs/asciidoc/images/message-arrow-rtl.png +0 -0
  115. package/docs/asciidoc/images/occurrence.png +0 -0
  116. package/docs/asciidoc/images/return-message-conflict.png +0 -0
  117. package/docs/asciidoc/images/shift-up-half-the-height.png +0 -0
  118. package/docs/asciidoc/images/three-layer-info-arch.png +0 -0
  119. package/docs/asciidoc/images/vertical-alignment.svg +0 -1
  120. package/docs/asciidoc/images/vertically-aligning.png +0 -0
  121. package/docs/asciidoc/index.adoc +0 -277
  122. package/docs/asciidoc/theme-debug-web-app.png +0 -0
  123. package/docs/asciidoc/tutorial.adoc +0 -22
  124. package/docs/asciidoc/user-css.png +0 -0
  125. package/docs/async-vs-sync-parser-rules.md +0 -81
  126. package/docs/divider-parser-allow-spaces.md +0 -38
  127. package/docs/highlighting-messages.md +0 -52
  128. package/docs/images/editor-sample.png +0 -0
  129. package/docs/inherited-vs-provided-from.md +0 -64
  130. package/docs/parser/Assignment.md +0 -8
  131. package/docs/parser/PARSER_IMPROVEMENTS_CC.md +0 -425
  132. package/docs/parser/grammar_review_gemini.md +0 -116
  133. package/docs/participants-function.md +0 -25
  134. package/docs/responsive-participant-margin.md +0 -52
  135. package/docs/starter.md +0 -9
  136. package/docs/superpowers/plans/2026-03-27-e2e-test-reorg.md +0 -698
  137. package/docs/superpowers/plans/2026-03-30-emoji-support.md +0 -1220
  138. package/docs/superpowers/plans/2026-03-30-self-correcting-scoring.md +0 -206
  139. package/docs/superpowers/plans/2026-04-15-keyboard-editing-on-diagram.md +0 -1992
  140. package/docs/superpowers/plans/2026-04-15-zenuml-ux-research-skill.md +0 -1452
  141. package/docs/ux-research/.gitkeep +0 -0
  142. package/docs/ux-research/2026-04-15-rename-participant.md +0 -156
  143. package/docs/ux-research/2026-04-18-insert-participant.md +0 -151
  144. package/docs/width-translate-and-offsets.md +0 -62
  145. package/docs/xss.md +0 -59
  146. package/e2e/data/compare-cases.js +0 -1090
  147. package/e2e/data/diff-algorithm.js +0 -199
  148. package/e2e/fixtures/create-message.html +0 -26
  149. package/e2e/fixtures/editable-label.html +0 -35
  150. package/e2e/fixtures/editable-span.html +0 -122
  151. package/e2e/fixtures/empty-diagram.html +0 -23
  152. package/e2e/fixtures/fixture.html +0 -31
  153. package/e2e/fixtures/insert-participant.html +0 -23
  154. package/e2e/fixtures/reorder-cross-fragment.html +0 -31
  155. package/e2e/fixtures/reorder-fragment.html +0 -29
  156. package/e2e/fixtures/reorder-message.html +0 -27
  157. package/e2e/fixtures/svg-test.html +0 -21
  158. package/e2e/fixtures/type-switch.html +0 -29
  159. package/e2e/tools/canonical-history.html +0 -908
  160. package/e2e/tools/compare-case.html +0 -371
  161. package/e2e/tools/compare.html +0 -35
  162. package/e2e/tools/native-diff-ext/background.js +0 -60
  163. package/e2e/tools/native-diff-ext/bridge.js +0 -26
  164. package/e2e/tools/native-diff-ext/content.js +0 -194
  165. package/e2e/tools/svg-preview.html +0 -56
  166. package/embed.html +0 -193
  167. package/eslint.config.mjs +0 -35
  168. package/firebase-debug.log +0 -108
  169. package/iframe-container-demo/diagram.html +0 -124
  170. package/iframe-container-demo/host.html +0 -817
  171. package/index.html +0 -771
  172. package/mermaid-zenuml-async-spa-auth.png +0 -0
  173. package/mermaid-zenuml-async-spa-auth.snapshot.md +0 -96
  174. package/newsletter/unicode-support-announcement.md +0 -134
  175. package/playground/creation.html +0 -53
  176. package/playground/message.html +0 -63
  177. package/playwright.config.ts +0 -40
  178. package/renderer.html +0 -366
  179. package/scripts/analyze-compare-case/collect-data.mjs +0 -1134
  180. package/scripts/analyze-compare-case/config.mjs +0 -102
  181. package/scripts/analyze-compare-case/geometry.mjs +0 -101
  182. package/scripts/analyze-compare-case/native-diff.mjs +0 -224
  183. package/scripts/analyze-compare-case/output.mjs +0 -74
  184. package/scripts/analyze-compare-case/panel-diff.mjs +0 -114
  185. package/scripts/analyze-compare-case/report.mjs +0 -162
  186. package/scripts/analyze-compare-case/residual-scopes.mjs +0 -347
  187. package/scripts/analyze-compare-case/scoring.mjs +0 -829
  188. package/scripts/analyze-compare-case.mjs +0 -149
  189. package/scripts/bump-version.js +0 -117
  190. package/scripts/snapshot-dual.js +0 -173
  191. package/scripts/update-snapshots.js +0 -70
  192. package/skills/dia-scoring/SKILL.md +0 -129
  193. package/skills/dia-scoring/agents/openai.yaml +0 -7
  194. package/skills/dia-scoring/references/selectors-and-keys.md +0 -253
  195. package/tailwind.config.js +0 -126
  196. package/test-compression.html +0 -274
  197. package/test-mermaid-zenuml.html +0 -57
  198. package/test-setup.ts +0 -124
  199. package/test-url-params.html +0 -192
  200. package/tsconfig.app.json +0 -31
  201. package/tsconfig.node.json +0 -24
  202. package/tsconfig.test.json +0 -9
  203. package/vite.config.lib.ts +0 -93
  204. package/vite.config.ts +0 -84
  205. package/wrangler.toml +0 -18
@@ -1,89 +0,0 @@
1
- ---
2
- scenario_id: {{scenario_id}}
3
- scenario_title: {{scenario_title}}
4
- run_date: {{run_date}}
5
- zenuml_core_sha: {{zenuml_core_sha}}
6
- audited_url: {{audited_url}}
7
- skill_version: 0.1.0
8
- gap_count: { high: {{gap_count_high}}, med: {{gap_count_med}}, low: {{gap_count_low}} }
9
- ---
10
-
11
- # UX Research — {{scenario_title}}
12
-
13
- ## Executive summary
14
-
15
- {{executive_summary}}
16
-
17
- ## Scenario recap
18
-
19
- **User intent:** {{user_intent}}
20
-
21
- **Starting DSL:**
22
- ```
23
- {{starting_dsl}}
24
- ```
25
-
26
- **Target DSL:**
27
- ```
28
- {{target_dsl}}
29
- ```
30
-
31
- ## Observed walkthrough
32
-
33
- {{walkthrough_numbered_steps}}
34
-
35
- ## Gaps
36
-
37
- {{gap_blocks}}
38
-
39
- > Each gap block uses this structure:
40
- >
41
- > ```
42
- > ### Gap N — <short headline>
43
- > **Severity:** <low|med|high>
44
- > **Catalog ID:** <id or "novel — candidate for new rule">
45
- > **Observed:** <verbatim>
46
- > **Expected:** <from hypothesis>
47
- > **Exemplars:** <tools where expected behavior is seen>
48
- > **Rationale:** <why this matters>
49
- > **Suggested fix:** <grep result: file:line; or "no code path found">
50
- > ```
51
- >
52
- > (Blockquote is for documentation inside the template — the rendered report omits it.)
53
-
54
- ## Coverage
55
-
56
- Tested hypotheses (no gap found):
57
- {{coverage_tested}}
58
-
59
- Not tested (out of scope for this scenario):
60
- {{coverage_out_of_scope}}
61
-
62
- Skipped (couldn't form a testable hypothesis):
63
- {{coverage_skipped}}
64
-
65
- ## Best-practice sources
66
-
67
- **Bundled catalog IDs referenced:**
68
- {{bundled_sources}}
69
-
70
- **Web sources fetched during this run:**
71
- {{web_sources}}
72
-
73
- ## Playwright regression snippet
74
-
75
- Paste into `zenuml-core/tests/ux/{{scenario_id}}.spec.ts` once the gap is fixed. The skill emits this snippet; it does not run it.
76
-
77
- ```typescript
78
- {{playwright_snippet}}
79
- ```
80
-
81
- ---
82
-
83
- ## Zero-gap rendering
84
-
85
- If the scenario produced zero gaps, render the report omitting the **Gaps** and **Playwright regression snippet** sections. The **Observed walkthrough** section becomes a single line:
86
-
87
- > No gaps observed on zenuml-core @ {{zenuml_core_sha}}.
88
-
89
- All other sections (metadata, executive summary, scenario recap, coverage, best-practice sources) still render.
@@ -1,37 +0,0 @@
1
- ---
2
- id: edit-message-label
3
- title: Edit an existing message label
4
- ---
5
-
6
- ## User intent
7
- The user has a message `A->B: hello` on the canvas and wants to change the label to `hi`.
8
-
9
- ## Starting DSL
10
- ```
11
- A
12
- B
13
- A->B: hello
14
- ```
15
-
16
- ## Target DSL
17
- ```
18
- A
19
- B
20
- A->B: hi
21
- ```
22
-
23
- ## Relevant assertion categories
24
- EDT, KBD, SEL, FOC, UND
25
-
26
- ## Walkthrough hints (not prescriptive)
27
- - This scenario exercises the inline-edit contract on an existing piece of DSL, not a new one.
28
- - Candidate paths to try in order:
29
- 1. Click the message label `hello` once to select, press Enter, retype.
30
- 2. Double-click the message label.
31
- 3. Keyboard: navigate to the message via arrows, press Enter.
32
- 4. Fall back to editing the DSL editor directly.
33
- - Watch specifically for: undo granularity when the user types `hi` then changes their mind (one undo should revert the whole label, not one character at a time).
34
-
35
- ## Known issues to watch for (optional)
36
- - If undo is character-level during a label edit, that is a UND-02 violation.
37
- - If clicking the message selects the wrong thing (e.g., the arrow instead of the label), that is a SEL-01 violation.
@@ -1,36 +0,0 @@
1
- ---
2
- id: insert-message
3
- title: Insert a synchronous message between two participants
4
- ---
5
-
6
- ## User intent
7
- The user has two participants `A` and `B` on the canvas and wants to add a synchronous message from `A` to `B` with the label `hello`.
8
-
9
- ## Starting DSL
10
- ```
11
- A
12
- B
13
- ```
14
-
15
- ## Target DSL
16
- ```
17
- A
18
- B
19
- A->B: hello
20
- ```
21
-
22
- ## Relevant assertion categories
23
- INS, KBD, EDT, FOC, FBK
24
-
25
- ## Walkthrough hints (not prescriptive)
26
- - This is the most common creation action in any sequence diagramming tool; it is the load-bearing scenario for canvas-first editing of ZenUML.
27
- - Candidate paths to try in order:
28
- 1. Click `A`, look for a "send message" affordance or toolbar button, draw/click toward `B`.
29
- 2. Hover between `A` and `B` in the lifeline area for an inline "+" affordance.
30
- 3. Keyboard: Tab into widget, select `A`, press a hotkey for "new message".
31
- 4. Fall back to typing `A->B: hello` into the DSL editor.
32
- - Watch specifically for: whether a canvas-first path exists at all, whether message creation automatically enters label edit mode on the new message, whether Escape during message creation cancels cleanly.
33
-
34
- ## Known issues to watch for (optional)
35
- - If the canvas has no message-creation affordance at all, that is an INS-01 violation at high severity.
36
- - If the new message is not in edit mode immediately on creation, that is an EDT-03 / FOC-01 violation.
@@ -1,31 +0,0 @@
1
- ---
2
- id: insert-participant
3
- title: Insert a participant on a blank diagram
4
- ---
5
-
6
- ## User intent
7
- The user opens ZenUML to a blank diagram and wants to add one participant named `Alice` so they can start modelling.
8
-
9
- ## Starting DSL
10
- ```
11
- ```
12
-
13
- ## Target DSL
14
- ```
15
- Alice
16
- ```
17
-
18
- ## Relevant assertion categories
19
- INS, FOC, EDT, KBD
20
-
21
- ## Walkthrough hints (not prescriptive)
22
- - Blank canvas is the highest-stakes discoverability test — the skill should record how long it takes to find the insertion affordance.
23
- - Candidate insertion paths to try in order:
24
- 1. Click on the canvas background.
25
- 2. Look for a visible "+" or "Add participant" affordance.
26
- 3. Keyboard: try pressing Enter or `p` on an empty canvas.
27
- 4. Fall back to typing directly into the DSL editor pane.
28
- - The moment the user successfully names the new participant `Alice` is the scenario's end state.
29
-
30
- ## Known issues to watch for (optional)
31
- - If the only path is direct DSL editing, that itself is a finding (violates INS-01).
@@ -1,33 +0,0 @@
1
- ---
2
- id: rename-participant
3
- title: Rename a participant via keyboard
4
- ---
5
-
6
- ## User intent
7
- The user has a participant `A` on the canvas and wants to rename it to `Alice` without leaving the keyboard.
8
-
9
- ## Starting DSL
10
- ```
11
- A
12
- ```
13
-
14
- ## Target DSL
15
- ```
16
- Alice
17
- ```
18
-
19
- ## Relevant assertion categories
20
- KBD, EDT, SEL, FOC
21
-
22
- ## Walkthrough hints (not prescriptive)
23
- - This scenario is the canonical test of KBD-03 (Enter enters edit mode) and EDT-02 (caret at end of text).
24
- - Candidate paths to try in order:
25
- 1. Tab into the diagram widget, arrow-key to select `A`, press Enter, type `lice`, press Enter.
26
- 2. Click `A` to select, press Enter, retype.
27
- 3. Double-click `A` to enter edit mode.
28
- 4. Fall back to editing the DSL editor directly.
29
- - Watch specifically for: whether Enter does anything on the selected participant; whether the caret is placed at the end or the whole label is pre-selected; whether Escape cancels cleanly.
30
-
31
- ## Known issues to watch for (optional)
32
- - If Enter does nothing on a selected participant, that is a KBD-03 violation at high severity.
33
- - If only mouse double-click works, that is a KBD-only violation (no mouse-free path).
@@ -1,35 +0,0 @@
1
- ---
2
- id: undo-insert
3
- title: Undo a just-inserted message
4
- ---
5
-
6
- ## User intent
7
- The user has two participants `A` and `B`, inserts a message `A->B: hello`, then immediately presses Ctrl/Cmd+Z to undo. The expected result is that the message is removed and the state is back to just the two participants.
8
-
9
- ## Starting DSL
10
- ```
11
- A
12
- B
13
- ```
14
-
15
- ## Target DSL
16
- ```
17
- A
18
- B
19
- ```
20
- (after: insert `A->B: hello`, then undo)
21
-
22
- ## Relevant assertion categories
23
- UND, FOC, SEL, KBD
24
-
25
- ## Walkthrough hints (not prescriptive)
26
- - This scenario exercises the full insertion-then-undo round trip.
27
- - Steps:
28
- 1. Follow the `insert-message` scenario's walkthrough to get to the post-insert state.
29
- 2. Press Ctrl+Z (or Cmd+Z on macOS).
30
- 3. Observe: is the message removed? Is the DSL editor reverted? Is selection/focus restored to whatever it was before the insert?
31
- - Watch specifically for: undo granularity (one Ctrl+Z should undo the whole insert, not the individual keystrokes of the label edit) and focus restoration (FOC-03).
32
-
33
- ## Known issues to watch for (optional)
34
- - If the undo leaves the label partially typed, UND-02 is violated.
35
- - If focus ends up on the document body after undo, FOC-03 is violated.
@@ -1,21 +0,0 @@
1
- {
2
- "name": "Node.js & Browser Tools",
3
- "image": "mcr.microsoft.com/devcontainers/typescript-node:20",
4
- "features": {
5
- "ghcr.io/devcontainers/features/node:2": {
6
- "version": "none"
7
- }
8
- },
9
- "forwardPorts": [9323],
10
- "customizations": {
11
- "vscode": {
12
- "extensions": [
13
- "dbaeumer.vscode-eslint",
14
- "esbenp.prettier-vscode"
15
- ]
16
- }
17
- },
18
- // Add your source code to the container
19
- "postCreateCommand": "pnpm install",
20
- "remoteUser": "node"
21
- }
package/.dockerignore DELETED
@@ -1,19 +0,0 @@
1
- node_modules
2
- .git
3
- .gitignore
4
- .github
5
- *.md
6
- dist
7
- .watchmanconfig
8
- .prettierrc
9
- .prettierignore
10
- .editorconfig
11
- .eslintignore
12
- .eslintrc.js
13
- .git-blame-ignore-revs
14
- .vscode
15
- cypress
16
- cypress.config.ts
17
- docs
18
- test
19
- vite.config.lib.js
package/.eslintrc.js DELETED
@@ -1,39 +0,0 @@
1
- module.exports = {
2
- env: {
3
- browser: true,
4
- es2021: true,
5
- node: true,
6
- jest: true,
7
- },
8
- extends: [
9
- "eslint:recommended",
10
- "plugin:@typescript-eslint/recommended",
11
- "plugin:prettier/recommended",
12
- ],
13
- globals: {
14
- CodeMirror: "readonly",
15
- },
16
- overrides: [
17
- {
18
- env: {
19
- node: true,
20
- },
21
- files: [".eslintrc.{js,cjs}"],
22
- parserOptions: {
23
- sourceType: "script",
24
- },
25
- },
26
- ],
27
- parserOptions: {
28
- ecmaVersion: "latest",
29
- parser: "@typescript-eslint/parser",
30
- sourceType: "module",
31
- },
32
- plugins: ["@typescript-eslint", "html"],
33
- rules: {
34
- "@typescript-eslint/ban-ts-comment": "off",
35
- "@typescript-eslint/no-var-requires": "off",
36
- "@typescript-eslint/no-explicit-any": "off",
37
- "@typescript-eslint/no-this-alias": "off",
38
- },
39
- };
@@ -1,6 +0,0 @@
1
- # This file is used to configure to ignore the given commit sha in git blame
2
- # To apply this file, run the following command:
3
- # git config blame.ignorerevsfile .git-blame-ignore-revs
4
-
5
- # This commit formatted the entire codebase
6
- 80987154e7740ddae2c7c0a04607bc25da51586e
@@ -1,38 +0,0 @@
1
- # Kiro Agent Hooks
2
-
3
- This directory contains custom hooks that automatically execute when specific events occur in Kiro.
4
-
5
- ## Session Sound Notification Hook
6
-
7
- **File:** `session-sound-notification.json` and `session-sound-notification.js`
8
-
9
- **Purpose:** Plays system sounds to notify you when:
10
-
11
- - An AI session completes
12
- - User input is required to continue
13
- - An error occurs
14
-
15
- **Sounds Used (macOS):**
16
-
17
- - **Session Complete:** Glass.aiff - A pleasant chime when tasks finish
18
- - **Input Required:** Sosumi.aiff - An attention-getting sound when you need to respond
19
- - **Error:** Basso.aiff - A distinctive sound for errors
20
- - **Default:** Ping.aiff - Fallback sound
21
-
22
- **Configuration:**
23
- The hook is enabled by default and will auto-execute. You can disable it by setting `"enabled": false` in the JSON configuration file.
24
-
25
- **Platform Notes:**
26
-
27
- - Currently optimized for macOS using the `afplay` command
28
- - Uses built-in system sounds located in `/System/Library/Sounds/`
29
- - For other platforms, the sound files and playback command would need to be adjusted
30
-
31
- ## Managing Hooks
32
-
33
- You can:
34
-
35
- 1. View current hooks in the Kiro Explorer under "Agent Hooks"
36
- 2. Use Command Palette → "Open Kiro Hook UI" to create new hooks
37
- 3. Edit hook files directly in this directory
38
- 4. Enable/disable hooks by modifying the `enabled` property
@@ -1,44 +0,0 @@
1
- /**
2
- * Session Sound Notification Hook
3
- * Plays a sound when sessions end or user input is required
4
- */
5
-
6
- const playSound = (soundType = 'default') => {
7
- // For macOS, we can use the 'afplay' command to play system sounds
8
- const sounds = {
9
- default: '/System/Library/Sounds/Ping.aiff',
10
- complete: '/System/Library/Sounds/Glass.aiff',
11
- attention: '/System/Library/Sounds/Sosumi.aiff',
12
- error: '/System/Library/Sounds/Basso.aiff'
13
- };
14
-
15
- const soundFile = sounds[soundType] || sounds.default;
16
-
17
- try {
18
- // Use afplay to play the sound on macOS
19
- require('child_process').exec(`afplay "${soundFile}"`, (error) => {
20
- if (error) {
21
- console.log('Could not play sound:', error.message);
22
- }
23
- });
24
- } catch (err) {
25
- console.log('Sound playback failed:', err.message);
26
- }
27
- };
28
-
29
- module.exports = {
30
- onSessionEnd: () => {
31
- console.log('🔊 Session completed - playing completion sound');
32
- playSound('complete');
33
- },
34
-
35
- onUserInputRequired: () => {
36
- console.log('🔊 User input needed - playing attention sound');
37
- playSound('attention');
38
- },
39
-
40
- onError: () => {
41
- console.log('🔊 Error occurred - playing error sound');
42
- playSound('error');
43
- }
44
- };
@@ -1,23 +0,0 @@
1
- {
2
- "name": "Session Sound Notification",
3
- "description": "Plays a sound when a session ends or user input is needed",
4
- "triggers": [
5
- {
6
- "event": "session.end",
7
- "description": "Triggered when an AI session completes"
8
- },
9
- {
10
- "event": "user.input.required",
11
- "description": "Triggered when the AI needs user input to continue"
12
- }
13
- ],
14
- "actions": [
15
- {
16
- "type": "system.sound",
17
- "sound": "notification",
18
- "description": "Play system notification sound"
19
- }
20
- ],
21
- "enabled": true,
22
- "autoExecute": true
23
- }
package/.mcp.json.example DELETED
@@ -1,17 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "playwright": {
4
- "command": "npx",
5
- "args": ["@playwright/mcp@latest", "--extension"],
6
- "env": {
7
- "PLAYWRIGHT_MCP_EXTENSION_TOKEN": "<your-token-here>"
8
- }
9
- },
10
- "chrome-devtools": {
11
- "type": "stdio",
12
- "command": "npx",
13
- "args": ["-y", "chrome-devtools-mcp"],
14
- "env": {}
15
- }
16
- }
17
- }
package/.nvmrc DELETED
@@ -1 +0,0 @@
1
- 20
package/.prettierignore DELETED
@@ -1,4 +0,0 @@
1
- node_modules
2
- dist
3
- generated-parser
4
- pnpm-lcok.yaml
package/.prettierrc DELETED
@@ -1 +0,0 @@
1
- {}
@@ -1,33 +0,0 @@
1
- <!-- Sync Impact Report
2
- Version change: 1.0.0 → 1.1.0 (New principle added)
3
- Modified principles: None
4
- Added sections: II. Task Focus principle
5
- Removed sections: None
6
- Templates requiring updates: ✅ plan-template.md
7
- Follow-up TODOs: RATIFICATION_DATE needs confirmation
8
- -->
9
-
10
- # ZenUML Core Constitution
11
-
12
- ## Core Principles
13
-
14
- ### I. Parser Simplicity
15
-
16
- The ANTLR lexer and parser MUST remain simple and maintainable. Edge cases and
17
- complex scenarios SHALL be handled in utility methods or the renderer, not in the
18
- grammar. Reasonable fallbacks are preferred over grammar complexity. This ensures
19
- the parser remains understandable, testable, and maintainable while avoiding
20
- fragility from over-engineering.
21
-
22
- ### II. Task Focus
23
-
24
- When working on one task, focus on that task. Do not try to fix unrelated issues
25
- (code smell, inconsistency, or even defects). You SHALL mention unrelated issues
26
- but MUST NOT fix them. This ensures changes remain scoped, reviewable, and
27
- traceable to specific requirements.
28
-
29
- ## Governance
30
-
31
- The Constitution supersedes all other development practices. Amendments require documentation and versioning.
32
-
33
- **Version**: 1.1.0 | **Ratified**: TODO(RATIFICATION_DATE): Needs confirmation | **Last Amended**: 2025-10-06