@inharness-ai/claude4spec 1.0.17 → 1.0.19

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 (136) hide show
  1. package/.claude/skills/c4s-brief-implementer/SKILL.md +11 -0
  2. package/.claude/skills/c4s-spec-reader/SKILL.md +14 -0
  3. package/CHANGELOG.md +21 -0
  4. package/dist/bin/c4s/commands/tagged-list-mixed.js +2 -0
  5. package/dist/bin/c4s/commands/tagged-list-mixed.js.map +1 -1
  6. package/dist/client/assets/{arc-BQiqXUIi.js → arc-Y_Y7YYxJ.js} +1 -1
  7. package/dist/client/assets/{architectureDiagram-3BPJPVTR-DgK0HmpR.js → architectureDiagram-3BPJPVTR-BvfJSQGS.js} +1 -1
  8. package/dist/client/assets/{blockDiagram-GPEHLZMM-CHntbYfr.js → blockDiagram-GPEHLZMM-0ER_5Ga5.js} +1 -1
  9. package/dist/client/assets/{c4Diagram-AAUBKEIU-ByH5-R2p.js → c4Diagram-AAUBKEIU-CulSeIur.js} +1 -1
  10. package/dist/client/assets/channel-COuoa9K9.js +1 -0
  11. package/dist/client/assets/{chunk-2J33WTMH-C2Pe63Ia.js → chunk-2J33WTMH-BR0UTxIH.js} +1 -1
  12. package/dist/client/assets/{chunk-4BX2VUAB-DYCta62H.js → chunk-4BX2VUAB-C3CE1iTm.js} +1 -1
  13. package/dist/client/assets/{chunk-55IACEB6-gq-yg5LH.js → chunk-55IACEB6-WYG0SMCq.js} +1 -1
  14. package/dist/client/assets/{chunk-727SXJPM-BwJpqlPp.js → chunk-727SXJPM-CFxvH3KU.js} +1 -1
  15. package/dist/client/assets/{chunk-AQP2D5EJ-DCU1hxqb.js → chunk-AQP2D5EJ-CW3tCRq5.js} +1 -1
  16. package/dist/client/assets/{chunk-FMBD7UC4-AG1fd1DO.js → chunk-FMBD7UC4-DhWed3oG.js} +1 -1
  17. package/dist/client/assets/{chunk-ND2GUHAM-913iWZ1l.js → chunk-ND2GUHAM-wKw1Twd3.js} +1 -1
  18. package/dist/client/assets/{chunk-QZHKN3VN-CYtwG8X-.js → chunk-QZHKN3VN-N2YJn9Rv.js} +1 -1
  19. package/dist/client/assets/classDiagram-4FO5ZUOK-BESpN0be.js +1 -0
  20. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BESpN0be.js +1 -0
  21. package/dist/client/assets/{cose-bilkent-S5V4N54A-BZCiM3BB.js → cose-bilkent-S5V4N54A-BwTia-tr.js} +1 -1
  22. package/dist/client/assets/{dagre-BM42HDAG-Bva3axke.js → dagre-BM42HDAG-qaDS43Ui.js} +1 -1
  23. package/dist/client/assets/{diagram-2AECGRRQ-CMgpd1-D.js → diagram-2AECGRRQ-D_kuEzAN.js} +1 -1
  24. package/dist/client/assets/{diagram-5GNKFQAL-0vLyGdys.js → diagram-5GNKFQAL-BYj6JmFh.js} +1 -1
  25. package/dist/client/assets/{diagram-KO2AKTUF-CvRPei4_.js → diagram-KO2AKTUF-C5GerpKU.js} +1 -1
  26. package/dist/client/assets/{diagram-LMA3HP47-A058dJvb.js → diagram-LMA3HP47-BCCWR_VJ.js} +1 -1
  27. package/dist/client/assets/{diagram-OG6HWLK6-D5Len-J1.js → diagram-OG6HWLK6-zQ3cOHd6.js} +1 -1
  28. package/dist/client/assets/{erDiagram-TEJ5UH35-CJjfoOFQ.js → erDiagram-TEJ5UH35-CXGKcFZT.js} +1 -1
  29. package/dist/client/assets/{flowDiagram-I6XJVG4X-B-aXPB6l.js → flowDiagram-I6XJVG4X-CtZxh2DT.js} +1 -1
  30. package/dist/client/assets/{ganttDiagram-6RSMTGT7-Bd7aRzsv.js → ganttDiagram-6RSMTGT7-BUdwVJfD.js} +1 -1
  31. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-Bf4MQEwM.js → gitGraphDiagram-PVQCEYII-DAJUpS0c.js} +1 -1
  32. package/dist/client/assets/{index-ChqpFwGL.js → index-CSz40CWW.js} +1 -1
  33. package/dist/client/assets/{index-Dz-yWGMY.js → index-g9hdRfKL.js} +1 -1
  34. package/dist/client/assets/{index-D3-Iru2G.js → index-nd9N-ch1.js} +183 -186
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-pELnpzab.js → infoDiagram-5YYISTIA-Dkqaeq-d.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DyTinqcT.js → ishikawaDiagram-YF4QCWOH-BDZbcL20.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-BoV3HJsU.js → journeyDiagram-JHISSGLW-DQ8LraKA.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-CRNS9ORx.js → kanban-definition-UN3LZRKU-CQOW2Mao.js} +1 -1
  39. package/dist/client/assets/{linear-1ODldQw0.js → linear-B-ZW0b9t.js} +1 -1
  40. package/dist/client/assets/{mermaid.core-CBl6Zy3k.js → mermaid.core-BdFxxBuE.js} +4 -4
  41. package/dist/client/assets/{mindmap-definition-RKZ34NQL-DUACZwtC.js → mindmap-definition-RKZ34NQL-CcsZCub_.js} +1 -1
  42. package/dist/client/assets/{pieDiagram-4H26LBE5-xQE26BA9.js → pieDiagram-4H26LBE5-DpFgB1Qa.js} +1 -1
  43. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-C8aORGi5.js → quadrantDiagram-W4KKPZXB-CItGhZSD.js} +1 -1
  44. package/dist/client/assets/{requirementDiagram-4Y6WPE33-B9Rw2zEX.js → requirementDiagram-4Y6WPE33-CMfRtv6V.js} +1 -1
  45. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-TUG1JMRA.js → sankeyDiagram-5OEKKPKP-LUqs9QQq.js} +1 -1
  46. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-HU7BEi0m.js → sequenceDiagram-3UESZ5HK-BZt_Nz-I.js} +1 -1
  47. package/dist/client/assets/{stateDiagram-AJRCARHV-BCFJ83ix.js → stateDiagram-AJRCARHV-DDCaA4Lh.js} +1 -1
  48. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DfEoRDHz.js +1 -0
  49. package/dist/client/assets/{timeline-definition-PNZ67QCA-CgyzXdkH.js → timeline-definition-PNZ67QCA-Chrt6eh8.js} +1 -1
  50. package/dist/client/assets/{vennDiagram-CIIHVFJN-IghWvoTq.js → vennDiagram-CIIHVFJN-7L-WzZJY.js} +1 -1
  51. package/dist/client/assets/{wardley-L42UT6IY-DjwjMpZO.js → wardley-L42UT6IY-CTNWz-UZ.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-NxI_0w-J.js → wardleyDiagram-YWT4CUSO-BIhHmbRz.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-nS1fwVNL.js → xychartDiagram-2RQKCTM6-eqxCYjS7.js} +1 -1
  54. package/dist/client/index.html +1 -1
  55. package/dist/server/config.js.map +1 -1
  56. package/dist/server/db/migrations/039_agent_credential.sql +17 -0
  57. package/dist/server/db/migrations/040_diagram.sql +17 -0
  58. package/dist/server/domain/raw-entity-reader.d.ts +1 -1
  59. package/dist/server/domain/raw-entity-reader.js +5 -1
  60. package/dist/server/domain/raw-entity-reader.js.map +1 -1
  61. package/dist/server/entities/diagram/mcp-server.d.ts +10 -0
  62. package/dist/server/entities/diagram/mcp-server.js +141 -0
  63. package/dist/server/entities/diagram/mcp-server.js.map +1 -0
  64. package/dist/server/entities/diagram/plugin.d.ts +3 -0
  65. package/dist/server/entities/diagram/plugin.js +41 -0
  66. package/dist/server/entities/diagram/plugin.js.map +1 -0
  67. package/dist/server/entities/diagram/routes.d.ts +5 -0
  68. package/dist/server/entities/diagram/routes.js +83 -0
  69. package/dist/server/entities/diagram/routes.js.map +1 -0
  70. package/dist/server/entities/diagram/serializer.d.ts +11 -0
  71. package/dist/server/entities/diagram/serializer.js +147 -0
  72. package/dist/server/entities/diagram/serializer.js.map +1 -0
  73. package/dist/server/entities/diagram/services.d.ts +40 -0
  74. package/dist/server/entities/diagram/services.js +202 -0
  75. package/dist/server/entities/diagram/services.js.map +1 -0
  76. package/dist/server/entities/diagram/system-prompt.d.ts +2 -0
  77. package/dist/server/entities/diagram/system-prompt.js +15 -0
  78. package/dist/server/entities/diagram/system-prompt.js.map +1 -0
  79. package/dist/server/entities/diagram/validate.d.ts +9 -0
  80. package/dist/server/entities/diagram/validate.js +35 -0
  81. package/dist/server/entities/diagram/validate.js.map +1 -0
  82. package/dist/server/external-skills/brief-implementer-template.d.ts +1 -1
  83. package/dist/server/external-skills/brief-implementer-template.js +11 -0
  84. package/dist/server/external-skills/brief-implementer-template.js.map +1 -1
  85. package/dist/server/external-skills/spec-reader-template.d.ts +1 -1
  86. package/dist/server/external-skills/spec-reader-template.js +14 -0
  87. package/dist/server/external-skills/spec-reader-template.js.map +1 -1
  88. package/dist/server/mcp/c4s-reader.js +2 -0
  89. package/dist/server/mcp/c4s-reader.js.map +1 -1
  90. package/dist/server/routes/agent-credential.d.ts +9 -0
  91. package/dist/server/routes/agent-credential.js +43 -0
  92. package/dist/server/routes/agent-credential.js.map +1 -0
  93. package/dist/server/routes/agent-turn.d.ts +3 -0
  94. package/dist/server/routes/agent-turn.js +5 -1
  95. package/dist/server/routes/agent-turn.js.map +1 -1
  96. package/dist/server/routes/chat.js +12 -0
  97. package/dist/server/routes/chat.js.map +1 -1
  98. package/dist/server/routes/threads.js +10 -0
  99. package/dist/server/routes/threads.js.map +1 -1
  100. package/dist/server/serialization/registerAll.js +2 -0
  101. package/dist/server/serialization/registerAll.js.map +1 -1
  102. package/dist/server/serialization/writer.d.ts +2 -1
  103. package/dist/server/services/agent-credential-crypto.d.ts +4 -0
  104. package/dist/server/services/agent-credential-crypto.js +59 -0
  105. package/dist/server/services/agent-credential-crypto.js.map +1 -0
  106. package/dist/server/services/agent-credential.d.ts +32 -0
  107. package/dist/server/services/agent-credential.js +67 -0
  108. package/dist/server/services/agent-credential.js.map +1 -0
  109. package/dist/server/services/chat-context.js +5 -15
  110. package/dist/server/services/chat-context.js.map +1 -1
  111. package/dist/server/services/chat.js +26 -0
  112. package/dist/server/services/chat.js.map +1 -1
  113. package/dist/server/services/entity-indexer.js +4 -0
  114. package/dist/server/services/entity-indexer.js.map +1 -1
  115. package/dist/server/services/entity-store.js +9 -1
  116. package/dist/server/services/entity-store.js.map +1 -1
  117. package/dist/server/services/entity-writer.d.ts +2 -0
  118. package/dist/server/services/entity-writer.js +12 -0
  119. package/dist/server/services/entity-writer.js.map +1 -1
  120. package/dist/server/services/references.js +10 -0
  121. package/dist/server/services/references.js.map +1 -1
  122. package/dist/server/workspace/project-context.js +15 -0
  123. package/dist/server/workspace/project-context.js.map +1 -1
  124. package/dist/shared/agent-credential.d.ts +19 -0
  125. package/dist/shared/agent-credential.js +6 -0
  126. package/dist/shared/agent-credential.js.map +1 -0
  127. package/dist/shared/entities.d.ts +49 -1
  128. package/dist/shared/entities.js.map +1 -1
  129. package/dist/shared/xml-tags.d.ts +3 -3
  130. package/dist/shared/xml-tags.js +10 -4
  131. package/dist/shared/xml-tags.js.map +1 -1
  132. package/package.json +2 -2
  133. package/dist/client/assets/channel-6fQ527No.js +0 -1
  134. package/dist/client/assets/classDiagram-4FO5ZUOK-BJStgCuQ.js +0 -1
  135. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BJStgCuQ.js +0 -1
  136. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-WvisYLRe.js +0 -1
@@ -59,6 +59,17 @@ Continue the same thread with `c4s ask "..." --thread <threadId>` (the
59
59
  `threadId` is printed with the answer). This path requires `c4s` installed
60
60
  *and* a running `npx claude4spec` server. When either is unavailable, skip it.
61
61
 
62
+ If `c4s ask` returns `PROJECT_NOT_FOUND` despite a running server, your cwd is
63
+ probably reached through a **symlink** (common for `.claude/skills/<name>`
64
+ projects): `c4s` resolves `process.cwd()` to the real path, which is NOT the one
65
+ registered in `~/.claude4spec/workspaces.json`. Pass the registered (symlink) path
66
+ explicitly — `--project` is run through `path.resolve`, which does NOT canonicalize
67
+ symlinks, so it matches the registry:
68
+
69
+ ```bash
70
+ c4s ask "Brief nie precyzuje X — ..." --ct brief --brief <brief-slug>.md --project /abs/path/to/registered/skill-dir
71
+ ```
72
+
62
73
  **Asynchronous (always available).** If you cannot ask synchronously, proceed
63
74
  with your best judgement and file a patch afterwards (step 4) so the
64
75
  spec-author can fold the clarification into the next brief.
@@ -55,3 +55,17 @@ c4s ask "<question>" --ct chat
55
55
 
56
56
  Unlike the read-only commands above, `c4s ask` requires a running
57
57
  `npx claude4spec` server (it delegates the turn to the server's agent).
58
+
59
+ ### `PROJECT_NOT_FOUND` when the project dir is a symlink
60
+
61
+ If `c4s ask` (or any `c4s` command) returns `PROJECT_NOT_FOUND` even though a
62
+ server is running, your cwd is most likely reached through a **symlink** (common
63
+ for `.claude/skills/<name>` that points elsewhere). `c4s` resolves `process.cwd()`
64
+ through the symlink to the real path, which is NOT the path registered in
65
+ `~/.claude4spec/workspaces.json`. Pass the registered (symlink) path explicitly —
66
+ `--project` is run through `path.resolve`, which does NOT canonicalize symlinks, so
67
+ it matches the registry exactly:
68
+
69
+ ```sh
70
+ c4s ask "<question>" --ct chat --project /abs/path/to/registered/project-dir
71
+ ```
package/CHANGELOG.md CHANGED
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.0.19] - 2026-06-17
9
+
10
+ ### Added
11
+ - Diagram is now a full entity type (the 7th). A mermaid diagram's `source` lives in a `diagram` entity (`.claude4spec/entities/diagram/<slug>.json` + a derived `diagram` SQLite table, migration `040`), and pages reference it with a self-closing `<diagram slug="…" caption="…"/>` tag. `caption` is per-reference prose and is never stored on the entity. The slice mirrors the design-system module: serializer, services, REST routes, a `diagram-tools` MCP server (create/get/update/delete/list), system prompt, and client/server plugins. `source` is validated best-effort via `mermaid.parse()` (warnings only, never blocking). On the client, `<diagram/>` is a self-closing reference: `DiagramView` fetches `source` by slug and renders mermaid, `/diagram` authors source then creates the entity and inserts the reference, and editing PATCHes the entity while the caption stays per-reference.
12
+
13
+ ### Changed
14
+ - The `c4s` spec-reader and brief-implementer skills (and their templates) now document the `c4s ask --project <symlink-path>` workaround for `PROJECT_NOT_FOUND` when the project directory is reached through a symlink.
15
+
16
+ ### Removed
17
+ - Retired the inline content-bearing diagram block (`<diagram>…DSL…</diagram>`) along with the dead `xml_block_content` parser rule and the `diagram-source-escape` shared module, in favor of the entity-backed reference.
18
+
19
+ ## [1.0.18] - 2026-06-16
20
+
21
+ ### Added
22
+ - User-supplied ANTHROPIC API key management — a new `agent_credential` table stores the user's API key encrypted at-rest, with `GET`/`PUT`/`DELETE` `/api/agent/credentials` endpoints that never return the key in plaintext. The `AgentSection` component lets users enter and manage their key with success/error feedback, and `ChatService` injects the key into the environment for agent turns so users can run chat on their own credentials.
23
+
24
+ ### Changed
25
+ - Bumped `@inharness-ai/agent-adapters` to 0.8.1.
26
+
8
27
  ## [1.0.17] - 2026-06-14
9
28
 
10
29
  ### Added
@@ -185,6 +204,8 @@ Initial public release.
185
204
  - Acceptance Criteria entity and tooling.
186
205
  - Briefs and patches workflow for spec-driven implementation.
187
206
 
207
+ [1.0.19]: https://github.com/InHarness/claude4spec/compare/v1.0.18...v1.0.19
208
+ [1.0.18]: https://github.com/InHarness/claude4spec/compare/v1.0.17...v1.0.18
188
209
  [1.0.17]: https://github.com/InHarness/claude4spec/compare/v1.0.16...v1.0.17
189
210
  [1.0.16]: https://github.com/InHarness/claude4spec/compare/v1.0.15...v1.0.16
190
211
  [1.0.15]: https://github.com/InHarness/claude4spec/compare/v1.0.14...v1.0.15
@@ -19,6 +19,7 @@ export function runTaggedListMixed(args) {
19
19
  'ui-views': [],
20
20
  acs: [],
21
21
  'design-systems': [],
22
+ diagrams: [],
22
23
  };
23
24
  const bucket = {
24
25
  endpoint: 'endpoints',
@@ -27,6 +28,7 @@ export function runTaggedListMixed(args) {
27
28
  'ui-view': 'ui-views',
28
29
  ac: 'acs',
29
30
  'design-system': 'design-systems',
31
+ diagram: 'diagrams',
30
32
  };
31
33
  for (const entity of entities) {
32
34
  const result = ctx.registry.serializeEntity(entity.type, 'tagged_list_item', entity, ctx.reader);
@@ -1 +1 @@
1
- {"version":3,"file":"tagged-list-mixed.js","sourceRoot":"","sources":["../../../../src/bin/c4s/commands/tagged-list-mixed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,UAAU,kBAAkB,CAAC,IAAgB;IACjD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC;IACzD,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,QAAQ,CAAC,cAAc,EAAE,wCAAwC,SAAS,GAAG,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACnE,MAAM,OAAO,GAA8B;YACzC,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,iBAAiB,EAAE,EAAE;YACrB,UAAU,EAAE,EAAE;YACd,GAAG,EAAE,EAAE;YACP,gBAAgB,EAAE,EAAE;SACrB,CAAC;QACF,MAAM,MAAM,GAAgD;YAC1D,QAAQ,EAAE,WAAW;YACrB,GAAG,EAAE,MAAM;YACX,gBAAgB,EAAE,iBAAiB;YACnC,SAAS,EAAE,UAAU;YACrB,EAAE,EAAE,KAAK;YACT,eAAe,EAAE,gBAAgB;SAClC,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CACzC,MAAM,CAAC,IAAI,EACX,kBAAkB,EAClB,MAAM,EACN,GAAG,CAAC,MAAM,CACX,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"tagged-list-mixed.js","sourceRoot":"","sources":["../../../../src/bin/c4s/commands/tagged-list-mixed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,UAAU,kBAAkB,CAAC,IAAgB;IACjD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC;IACzD,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,QAAQ,CAAC,cAAc,EAAE,wCAAwC,SAAS,GAAG,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACnE,MAAM,OAAO,GAA8B;YACzC,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,iBAAiB,EAAE,EAAE;YACrB,UAAU,EAAE,EAAE;YACd,GAAG,EAAE,EAAE;YACP,gBAAgB,EAAE,EAAE;YACpB,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,MAAM,MAAM,GAAgD;YAC1D,QAAQ,EAAE,WAAW;YACrB,GAAG,EAAE,MAAM;YACX,gBAAgB,EAAE,iBAAiB;YACnC,SAAS,EAAE,UAAU;YACrB,EAAE,EAAE,KAAK;YACT,eAAe,EAAE,gBAAgB;YACjC,OAAO,EAAE,UAAU;SACpB,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CACzC,MAAM,CAAC,IAAI,EACX,kBAAkB,EAClB,MAAM,EACN,GAAG,CAAC,MAAM,CACX,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- import{a0 as ln,a1 as an,a2 as H,a3 as q,a4 as B,a5 as un,a6 as y,a7 as tn,a8 as L,a9 as _,aa as rn,ab as o,ac as on,ad as sn,ae as fn}from"./mermaid.core-CBl6Zy3k.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(on(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,F=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<an)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(fn((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{a0 as ln,a1 as an,a2 as H,a3 as q,a4 as B,a5 as un,a6 as y,a7 as tn,a8 as L,a9 as _,aa as rn,ab as o,ac as on,ad as sn,ae as fn}from"./mermaid.core-BdFxxBuE.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(on(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,F=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<an)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(fn((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};