@rudderhq/server 0.2.9-canary.2 → 0.2.9-canary.4

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 (99) hide show
  1. package/dist/bundled-plugins/plugin-linear/dist/worker.js +4 -1
  2. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
  3. package/dist/routes/agents.management-routes.d.ts.map +1 -1
  4. package/dist/routes/agents.management-routes.js +1 -0
  5. package/dist/routes/agents.management-routes.js.map +1 -1
  6. package/dist/routes/organization-skills.d.ts.map +1 -1
  7. package/dist/routes/organization-skills.js +12 -9
  8. package/dist/routes/organization-skills.js.map +1 -1
  9. package/dist/services/agent-permissions.d.ts +1 -0
  10. package/dist/services/agent-permissions.d.ts.map +1 -1
  11. package/dist/services/agent-permissions.js +4 -0
  12. package/dist/services/agent-permissions.js.map +1 -1
  13. package/dist/services/agents.d.ts +1 -0
  14. package/dist/services/agents.d.ts.map +1 -1
  15. package/dist/services/agents.js +5 -1
  16. package/dist/services/agents.js.map +1 -1
  17. package/package.json +13 -13
  18. package/resources/bundled-skills/rudder/SKILL.md +16 -9
  19. package/resources/bundled-skills/rudder/references/cli-reference.md +14 -12
  20. package/resources/bundled-skills/rudder/references/organization-skills.md +2 -2
  21. package/skills/rudder/SKILL.md +16 -9
  22. package/skills/rudder/references/cli-reference.md +14 -12
  23. package/skills/rudder/references/organization-skills.md +2 -2
  24. package/ui-dist/assets/{_basePickBy-_hZXNn3u.js → _basePickBy-Ba25gsjl.js} +1 -1
  25. package/ui-dist/assets/{_baseUniq-DQoN4Tnz.js → _baseUniq-GmiWxzFH.js} +1 -1
  26. package/ui-dist/assets/{arc-BONGIE1x.js → arc-BeLRxzU-.js} +1 -1
  27. package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-DvNMvoHl.js → architectureDiagram-2XIMDMQ5-D2nwOcwo.js} +1 -1
  28. package/ui-dist/assets/{blockDiagram-WCTKOSBZ-BNrH9xAk.js → blockDiagram-WCTKOSBZ-Dit9Wwcd.js} +1 -1
  29. package/ui-dist/assets/{c4Diagram-IC4MRINW-DgG0ok7_.js → c4Diagram-IC4MRINW-O88RqGEE.js} +1 -1
  30. package/ui-dist/assets/channel-tuMnhNES.js +1 -0
  31. package/ui-dist/assets/{chunk-4BX2VUAB-BVISrH-m.js → chunk-4BX2VUAB-CgzApFeV.js} +1 -1
  32. package/ui-dist/assets/{chunk-55IACEB6-Hk4RRbbA.js → chunk-55IACEB6-NoUUsZLw.js} +1 -1
  33. package/ui-dist/assets/{chunk-FMBD7UC4-BXgBxC6x.js → chunk-FMBD7UC4-BFjy3o1T.js} +1 -1
  34. package/ui-dist/assets/{chunk-JSJVCQXG-GyTDVxi7.js → chunk-JSJVCQXG-CQS2FB3N.js} +1 -1
  35. package/ui-dist/assets/{chunk-KX2RTZJC-DtF_NyQR.js → chunk-KX2RTZJC-bSC4Expa.js} +1 -1
  36. package/ui-dist/assets/{chunk-NQ4KR5QH-DYbScHpA.js → chunk-NQ4KR5QH-BtWPfmKW.js} +1 -1
  37. package/ui-dist/assets/{chunk-QZHKN3VN-B94K0jO1.js → chunk-QZHKN3VN-CXSC7D90.js} +1 -1
  38. package/ui-dist/assets/{chunk-WL4C6EOR-CjKF-H1m.js → chunk-WL4C6EOR-BQCh-klC.js} +1 -1
  39. package/ui-dist/assets/classDiagram-VBA2DB6C-BrYpGZ1f.js +1 -0
  40. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-BrYpGZ1f.js +1 -0
  41. package/ui-dist/assets/clone-CJ3SRNxH.js +1 -0
  42. package/ui-dist/assets/{cose-bilkent-S5V4N54A-CikHIkcX.js → cose-bilkent-S5V4N54A-CEgx18fw.js} +1 -1
  43. package/ui-dist/assets/{dagre-KLK3FWXG-DMytos_l.js → dagre-KLK3FWXG-BcH0fHTa.js} +1 -1
  44. package/ui-dist/assets/{diagram-E7M64L7V-BgCkvmGj.js → diagram-E7M64L7V-Ct1TI7Eg.js} +1 -1
  45. package/ui-dist/assets/{diagram-IFDJBPK2-DHf6kVzW.js → diagram-IFDJBPK2-oCn4dNC5.js} +1 -1
  46. package/ui-dist/assets/{diagram-P4PSJMXO-BU8WAxJO.js → diagram-P4PSJMXO-w_8gfqML.js} +1 -1
  47. package/ui-dist/assets/{erDiagram-INFDFZHY-PnV5rxk5.js → erDiagram-INFDFZHY-DScMUERP.js} +1 -1
  48. package/ui-dist/assets/{flowDiagram-PKNHOUZH-DlFvBKTv.js → flowDiagram-PKNHOUZH-DxZe0iRz.js} +1 -1
  49. package/ui-dist/assets/{ganttDiagram-A5KZAMGK-BfbbEu1A.js → ganttDiagram-A5KZAMGK-CBl1xlUq.js} +1 -1
  50. package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-LB7u0MxI.js → gitGraphDiagram-K3NZZRJ6-XLJJjG6k.js} +1 -1
  51. package/ui-dist/assets/{graph-Da5pYJIn.js → graph-DLNnpmQl.js} +1 -1
  52. package/ui-dist/assets/{index-CJz4IyYH.js → index-04UG7-ap.js} +1 -1
  53. package/ui-dist/assets/{index-DdqtbvAb.js → index-B9n7o8kT.js} +1 -1
  54. package/ui-dist/assets/{index-Ci2fNx8V.js → index-BDLqjLsh.js} +1 -1
  55. package/ui-dist/assets/{index-D_ywongN.js → index-BFtRo5xS.js} +1 -1
  56. package/ui-dist/assets/{index-BudFJ-AU.js → index-BJkYpbUi.js} +1 -1
  57. package/ui-dist/assets/{index-TDF4h-B3.js → index-BKLX3pig.js} +130 -130
  58. package/ui-dist/assets/{index-drbx4UwT.js → index-BZwIAq9r.js} +1 -1
  59. package/ui-dist/assets/{index-BhaPOC3F.js → index-BrXr_aDc.js} +1 -1
  60. package/ui-dist/assets/{index-Ywle5anA.js → index-BypwOSvg.js} +1 -1
  61. package/ui-dist/assets/{index-CGE4Gg7a.js → index-CE5v79H9.js} +1 -1
  62. package/ui-dist/assets/{index-OhQMrU6Q.js → index-CKIV6GBE.js} +1 -1
  63. package/ui-dist/assets/{index-nW0CbTm2.js → index-CKxjxxff.js} +1 -1
  64. package/ui-dist/assets/{index-CE2pTzOI.js → index-CNpdIav6.js} +1 -1
  65. package/ui-dist/assets/{index-Dzda6-Ao.js → index-CU6xV5HT.js} +1 -1
  66. package/ui-dist/assets/{index-C3CR6DrN.js → index-Cjdmzuvy.js} +1 -1
  67. package/ui-dist/assets/{index-D9pQWnU9.js → index-Cjk9bjm1.js} +1 -1
  68. package/ui-dist/assets/{index-BgYdJGrE.js → index-DQRGT1JY.js} +1 -1
  69. package/ui-dist/assets/{index-PuZ4DuDt.js → index-DYs_oBSx.js} +1 -1
  70. package/ui-dist/assets/{index-rTWDEZXT.js → index-D_JjmBF_.js} +1 -1
  71. package/ui-dist/assets/{index-Clfr-EuR.js → index-Dn6Lp0Ql.js} +1 -1
  72. package/ui-dist/assets/{index-D4zcaILb.js → index-F9BBaZLV.js} +1 -1
  73. package/ui-dist/assets/{index-C-aZVNNx.js → index-mQ4NAP6O.js} +1 -1
  74. package/ui-dist/assets/{index-COjoSXbq.js → index-wzC3D-SH.js} +1 -1
  75. package/ui-dist/assets/{infoDiagram-LFFYTUFH-cGAam8yA.js → infoDiagram-LFFYTUFH-Bj8bN5ST.js} +1 -1
  76. package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-B6xJ3I2J.js → ishikawaDiagram-PHBUUO56-u2Yb38DF.js} +1 -1
  77. package/ui-dist/assets/{journeyDiagram-4ABVD52K-BL-GwJOG.js → journeyDiagram-4ABVD52K-B7hcudT8.js} +1 -1
  78. package/ui-dist/assets/{kanban-definition-K7BYSVSG-GgTD7zoM.js → kanban-definition-K7BYSVSG-CjiQPLoW.js} +1 -1
  79. package/ui-dist/assets/{layout-CrvoA2f8.js → layout-DCJYiH-R.js} +1 -1
  80. package/ui-dist/assets/{linear-DGNEcoWl.js → linear-D_JgZJQi.js} +1 -1
  81. package/ui-dist/assets/{mermaid.core-CGUbX2ot.js → mermaid.core-BYRAeK5Q.js} +4 -4
  82. package/ui-dist/assets/{mindmap-definition-YRQLILUH-UIei-OHZ.js → mindmap-definition-YRQLILUH-BnKZppEK.js} +1 -1
  83. package/ui-dist/assets/{pieDiagram-SKSYHLDU-WxJohD7J.js → pieDiagram-SKSYHLDU-aDRa6j1w.js} +1 -1
  84. package/ui-dist/assets/{quadrantDiagram-337W2JSQ-C_hZg2xF.js → quadrantDiagram-337W2JSQ-SOGk7-Hx.js} +1 -1
  85. package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-Dbd5n2IG.js → requirementDiagram-Z7DCOOCP-VWEF0-4g.js} +1 -1
  86. package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-CQzKwXNm.js → sankeyDiagram-WA2Y5GQK-ClOGunY5.js} +1 -1
  87. package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-CbNCqvFW.js → sequenceDiagram-2WXFIKYE-DEM3mdm5.js} +1 -1
  88. package/ui-dist/assets/{stateDiagram-RAJIS63D-BMP5Z2iR.js → stateDiagram-RAJIS63D-CvshgTBf.js} +1 -1
  89. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-CUz3Ocik.js +1 -0
  90. package/ui-dist/assets/{timeline-definition-YZTLITO2-C9DnIwFe.js → timeline-definition-YZTLITO2-DzMfUP1o.js} +1 -1
  91. package/ui-dist/assets/{treemap-KZPCXAKY-B-G9iIGe.js → treemap-KZPCXAKY-DKpBBJEz.js} +1 -1
  92. package/ui-dist/assets/{vennDiagram-LZ73GAT5-B0jvGaBL.js → vennDiagram-LZ73GAT5-Ss9D9Vzv.js} +1 -1
  93. package/ui-dist/assets/{xychartDiagram-JWTSCODW-Cwz35Sbb.js → xychartDiagram-JWTSCODW-G1iiJ3p2.js} +1 -1
  94. package/ui-dist/index.html +1 -1
  95. package/ui-dist/assets/channel-xh-GAEoV.js +0 -1
  96. package/ui-dist/assets/classDiagram-VBA2DB6C-DydaXknq.js +0 -1
  97. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-DydaXknq.js +0 -1
  98. package/ui-dist/assets/clone-CUIvBAYu.js +0 -1
  99. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-C1V-aErw.js +0 -1
@@ -155,26 +155,26 @@ permission to take over implementation unless explicitly asked:
155
155
  - approve:
156
156
 
157
157
  ```bash
158
- rudder issue review "<issue-id-or-identifier>" --decision approve --comment "<markdown>" --json
158
+ rudder issue review "<issue-id-or-identifier>" --decision approve --comment-file "<path>" --json
159
159
  ```
160
160
 
161
161
  - request changes and return the issue to the assignee:
162
162
 
163
163
  ```bash
164
- rudder issue review "<issue-id-or-identifier>" --decision request_changes --comment "<markdown>" --json
164
+ rudder issue review "<issue-id-or-identifier>" --decision request_changes --comment-file "<path>" --json
165
165
  ```
166
166
 
167
167
  - keep the issue in its current review/blocker state because specific evidence
168
168
  or follow-up is still missing:
169
169
 
170
170
  ```bash
171
- rudder issue review "<issue-id-or-identifier>" --decision needs_followup --comment "<markdown>" --json
171
+ rudder issue review "<issue-id-or-identifier>" --decision needs_followup --comment-file "<path>" --json
172
172
  ```
173
173
 
174
174
  - block the issue:
175
175
 
176
176
  ```bash
177
- rudder issue review "<issue-id-or-identifier>" --decision blocked --comment "<markdown>" --json
177
+ rudder issue review "<issue-id-or-identifier>" --decision blocked --comment-file "<path>" --json
178
178
  ```
179
179
 
180
180
  Use `blocked` to confirm a human/external blocker. The comment must name the next human action; Rudder records a human handoff and removes the issue from repeated reviewer pickup until the board changes the issue.
@@ -182,23 +182,30 @@ Use `blocked` to confirm a human/external blocker. The comment must name the nex
182
182
  - progress-only update:
183
183
 
184
184
  ```bash
185
- rudder issue comment "<issue-id-or-identifier>" --body "<markdown>" [--image "<path>"] --json
185
+ rudder issue comment "<issue-id-or-identifier>" --body-file "<path>" [--image "<path>"] --json
186
186
  ```
187
187
 
188
188
  - completion:
189
189
 
190
190
  ```bash
191
- rudder issue done "<issue-id-or-identifier>" --comment "<markdown>" [--image "<path>"] --json
191
+ rudder issue done "<issue-id-or-identifier>" --comment-file "<path>" [--image "<path>"] --json
192
192
  ```
193
193
 
194
194
  - blocker:
195
195
 
196
196
  ```bash
197
- rudder issue block "<issue-id-or-identifier>" --comment "<markdown>" [--image "<path>"] --json
197
+ rudder issue block "<issue-id-or-identifier>" --comment-file "<path>" [--image "<path>"] --json
198
198
  ```
199
199
 
200
200
  - generic patch when workflow commands are not enough:
201
201
 
202
+ Use file or stdin input for issue comments. For any multiline Markdown,
203
+ command names, code spans, code blocks, validation summaries, or screenshot
204
+ evidence, write the body to a temporary Markdown file and pass
205
+ `--body-file <path>` or `--comment-file <path>`. Pass `-` to read from stdin.
206
+ Do not place shell-sensitive Markdown containing backticks or `$()` directly
207
+ inside a shell argument.
208
+
202
209
  Add `--image "<path>"` one or more times when the close-out/progress comment should include local screenshots or images. Supported local image types are PNG, JPEG, WebP, and GIF; the CLI uploads them as issue attachments and appends Markdown image links.
203
210
 
204
211
  If your comment mentions a screenshot path or uses a screenshot as validation evidence, attach that file with `--image "<path>"`. Do not leave only a local `/tmp/...` or workspace image path in the comment, because board users may not be able to inspect it from Rudder.
@@ -233,7 +240,7 @@ rudder agent skills create "$RUDDER_AGENT_ID" --name "<name>" --description "<de
233
240
 
234
241
  This creates the package under `AGENT_HOME/skills` and does not require organization skill mutation permission.
235
242
 
236
- When a board user, CEO, or manager asks you to find, import, inspect, or assign organization skills:
243
+ When a board user or authorized agent asks you to find, import, inspect, or assign organization skills:
237
244
 
238
245
  1. Read `references/organization-skills.md`
239
246
  2. Use the CLI surfaces in this order:
@@ -269,7 +276,7 @@ Typical flow:
269
276
  rudder issue documents get "<issue-id-or-identifier>" plan --json
270
277
  rudder issue documents revisions "<issue-id-or-identifier>" plan --json
271
278
  rudder issue documents put "<issue-id-or-identifier>" plan --title "Plan" --format markdown --body "<markdown>" --json
272
- rudder issue comment "<issue-id-or-identifier>" --body "<mention that the plan document was updated>" --json
279
+ rudder issue comment "<issue-id-or-identifier>" --body-file "<path>" --json
273
280
  ```
274
281
 
275
282
  Planning rules:
@@ -29,14 +29,14 @@ Direct API fallback is allowed for heartbeat close-out only when a required CLI
29
29
  | `rudder issue search <query> [--org-id <id>]` | Search issues with the server-side issue index across title, identifier, description, and comments. | no | required | no | no |
30
30
  | `rudder issue context <issue>` | Read the compact heartbeat context for an issue. | no | no | no | no |
31
31
  | `rudder issue checkout <issue>` | Atomically checkout an issue for the current or specified agent. | yes | no | required | attached when available |
32
- | `rudder issue comment <issue> --body <text> [--image <path>]` | Add a comment to an issue, optionally uploading images and appending Markdown image links. | yes | no | no | attached when available |
32
+ | `rudder issue comment <issue> --body-file <path> [--image <path>]` | Add a comment to an issue, optionally uploading images and appending Markdown image links. | yes | no | no | attached when available |
33
33
  | `rudder issue comments list <issue>` | List issue comments, optionally only newer comments after a cursor. | no | no | no | no |
34
34
  | `rudder issue comments get <issue> <comment-id>` | Read one issue comment by id. | no | no | no | no |
35
- | `rudder issue update <issue> ... [--image <path>]` | Apply generic issue updates when workflow commands are not enough, optionally uploading images for the update comment. | yes | no | no | attached when available |
36
- | `rudder issue review <issue> --decision <decision> --comment <text>` | Record a structured reviewer decision with a required comment. | yes | no | no | attached when available |
35
+ | `rudder issue update <issue> ... [--comment-file <path>] [--image <path>]` | Apply generic issue updates when workflow commands are not enough, optionally uploading images for the update comment. | yes | no | no | attached when available |
36
+ | `rudder issue review <issue> --decision <decision> --comment-file <path>` | Record a structured reviewer decision with a required comment. | yes | no | no | attached when available |
37
37
  | `rudder issue commit <issue> --sha <sha> --message <subject>` | Report a code commit created during issue work as structured issue activity. | yes | no | no | attached when available |
38
- | `rudder issue done <issue> --comment <text> [--image <path>]` | Mark an issue done with a required completion comment, optionally uploading images. | yes | no | no | attached when available |
39
- | `rudder issue block <issue> --comment <text> [--image <path>]` | Mark an issue blocked with a required blocker comment, optionally uploading images. | yes | no | no | attached when available |
38
+ | `rudder issue done <issue> --comment-file <path> [--image <path>]` | Mark an issue done with a required completion comment, optionally uploading images. | yes | no | no | attached when available |
39
+ | `rudder issue block <issue> --comment-file <path> [--image <path>]` | Mark an issue blocked with a required blocker comment, optionally uploading images. | yes | no | no | attached when available |
40
40
  | `rudder issue release <issue>` | Release an issue back to todo and clear ownership. | yes | no | no | attached when available |
41
41
  | `rudder issue documents list <issue>` | List issue documents. | no | no | no | no |
42
42
  | `rudder issue documents get <issue> <key>` | Read one issue document by key. | no | no | no | no |
@@ -56,13 +56,15 @@ Direct API fallback is allowed for heartbeat close-out only when a required CLI
56
56
 
57
57
  Before a successful `todo` or `in_progress` issue run exits, leave one close-out signal with the command that matches the outcome:
58
58
 
59
- - progress remains: `rudder issue comment <issue> --body <text> [--image <path>]`
60
- - work is complete: `rudder issue done <issue> --comment <text> [--image <path>]`
61
- - work is blocked: `rudder issue block <issue> --comment <text> [--image <path>]`
59
+ - progress remains: `rudder issue comment <issue> --body-file <path> [--image <path>]`
60
+ - work is complete: `rudder issue done <issue> --comment-file <path> [--image <path>]`
61
+ - work is blocked: `rudder issue block <issue> --comment-file <path> [--image <path>]`
62
62
  - ownership changes: add an explicit handoff comment before or with the assignee update
63
63
 
64
64
  If an issue has a reviewer, moving it to `blocked` is also a reviewer handoff: the reviewer should confirm the blocker, request changes, approve, or keep explicit follow-up open with `rudder issue review`.
65
65
 
66
+ Use file or stdin comment input for any multiline Markdown, command names, code spans, code blocks, test summaries, or screenshot evidence. Write the comment to a temporary Markdown file and pass `--body-file <path>` or `--comment-file <path>`, or pass `-` to read the body from stdin. Do not place shell-sensitive Markdown containing backticks or `$()` directly inside a shell argument.
67
+
66
68
  `--image` may be repeated. The CLI uploads each local PNG/JPEG/WebP/GIF as an issue attachment and appends Markdown image links to the comment text before sending it.
67
69
 
68
70
  If your issue comment cites a screenshot path or visual validation artifact, attach that file with `--image <path>` instead of leaving only the local path in the text.
@@ -77,10 +79,10 @@ Local runtime `HOME` is isolated from the operator home. Codex local runs and ru
77
79
 
78
80
  When the inbox row or wake context says `relationship: "reviewer"`, `role: "reviewer"`, or `wakeSource: "review"`, finish the review with one structured reviewer decision. Reviewer work can be either `in_review` or `blocked`; blocked reviewer work means blocker triage, not implementation takeover.
79
81
 
80
- - approve: `rudder issue review <issue> --decision approve --comment <text>`
81
- - request changes: `rudder issue review <issue> --decision request_changes --comment <text>`
82
- - needs follow-up: `rudder issue review <issue> --decision needs_followup --comment <text>`
83
- - blocked or blocker confirmed: `rudder issue review <issue> --decision blocked --comment <text>`; use this only for a confirmed human/external blocker and name the next human action.
82
+ - approve: `rudder issue review <issue> --decision approve --comment-file <path>`
83
+ - request changes: `rudder issue review <issue> --decision request_changes --comment-file <path>`
84
+ - needs follow-up: `rudder issue review <issue> --decision needs_followup --comment-file <path>`
85
+ - blocked or blocker confirmed: `rudder issue review <issue> --decision blocked --comment-file <path>`; use this only for a confirmed human/external blocker and name the next human action.
84
86
 
85
87
  Do not rely on a free-form reject or accept comment as the review outcome. The structured decision is the durable close-out signal. A blocked reviewer decision records a human handoff and removes the issue from repeated reviewer pickup until the board changes the issue.
86
88
 
@@ -1,6 +1,6 @@
1
1
  # Organization Skills Workflow
2
2
 
3
- Use this reference when a board user, CEO, or manager asks you to discover, import, inspect, or enable organization skills.
3
+ Use this reference when a board user or authorized agent asks you to discover, import, inspect, or enable organization skills.
4
4
 
5
5
  This workflow is now **CLI-first** for the bundled `rudder` skill.
6
6
 
@@ -155,7 +155,7 @@ the full optional enabled-skill set intentionally.
155
155
  ## Permission Model
156
156
 
157
157
  - organization skill reads: any same-organization actor
158
- - organization skill mutations: board, CEO, or an agent with effective `agents:create`
158
+ - organization skill mutations: local/admin board access, board users with `skills:manage`, or same-org agents with `canManageSkills` enabled. Agents default to `canManageSkills=true` unless explicitly disabled. Existing board grants for `agents:create` remain accepted as a compatibility fallback, but new grants should use `skills:manage`.
159
159
  - agent skill enable/sync: same permission model as updating that agent
160
160
 
161
161
  ## Notes
@@ -155,26 +155,26 @@ permission to take over implementation unless explicitly asked:
155
155
  - approve:
156
156
 
157
157
  ```bash
158
- rudder issue review "<issue-id-or-identifier>" --decision approve --comment "<markdown>" --json
158
+ rudder issue review "<issue-id-or-identifier>" --decision approve --comment-file "<path>" --json
159
159
  ```
160
160
 
161
161
  - request changes and return the issue to the assignee:
162
162
 
163
163
  ```bash
164
- rudder issue review "<issue-id-or-identifier>" --decision request_changes --comment "<markdown>" --json
164
+ rudder issue review "<issue-id-or-identifier>" --decision request_changes --comment-file "<path>" --json
165
165
  ```
166
166
 
167
167
  - keep the issue in its current review/blocker state because specific evidence
168
168
  or follow-up is still missing:
169
169
 
170
170
  ```bash
171
- rudder issue review "<issue-id-or-identifier>" --decision needs_followup --comment "<markdown>" --json
171
+ rudder issue review "<issue-id-or-identifier>" --decision needs_followup --comment-file "<path>" --json
172
172
  ```
173
173
 
174
174
  - block the issue:
175
175
 
176
176
  ```bash
177
- rudder issue review "<issue-id-or-identifier>" --decision blocked --comment "<markdown>" --json
177
+ rudder issue review "<issue-id-or-identifier>" --decision blocked --comment-file "<path>" --json
178
178
  ```
179
179
 
180
180
  Use `blocked` to confirm a human/external blocker. The comment must name the next human action; Rudder records a human handoff and removes the issue from repeated reviewer pickup until the board changes the issue.
@@ -182,23 +182,30 @@ Use `blocked` to confirm a human/external blocker. The comment must name the nex
182
182
  - progress-only update:
183
183
 
184
184
  ```bash
185
- rudder issue comment "<issue-id-or-identifier>" --body "<markdown>" [--image "<path>"] --json
185
+ rudder issue comment "<issue-id-or-identifier>" --body-file "<path>" [--image "<path>"] --json
186
186
  ```
187
187
 
188
188
  - completion:
189
189
 
190
190
  ```bash
191
- rudder issue done "<issue-id-or-identifier>" --comment "<markdown>" [--image "<path>"] --json
191
+ rudder issue done "<issue-id-or-identifier>" --comment-file "<path>" [--image "<path>"] --json
192
192
  ```
193
193
 
194
194
  - blocker:
195
195
 
196
196
  ```bash
197
- rudder issue block "<issue-id-or-identifier>" --comment "<markdown>" [--image "<path>"] --json
197
+ rudder issue block "<issue-id-or-identifier>" --comment-file "<path>" [--image "<path>"] --json
198
198
  ```
199
199
 
200
200
  - generic patch when workflow commands are not enough:
201
201
 
202
+ Use file or stdin input for issue comments. For any multiline Markdown,
203
+ command names, code spans, code blocks, validation summaries, or screenshot
204
+ evidence, write the body to a temporary Markdown file and pass
205
+ `--body-file <path>` or `--comment-file <path>`. Pass `-` to read from stdin.
206
+ Do not place shell-sensitive Markdown containing backticks or `$()` directly
207
+ inside a shell argument.
208
+
202
209
  Add `--image "<path>"` one or more times when the close-out/progress comment should include local screenshots or images. Supported local image types are PNG, JPEG, WebP, and GIF; the CLI uploads them as issue attachments and appends Markdown image links.
203
210
 
204
211
  If your comment mentions a screenshot path or uses a screenshot as validation evidence, attach that file with `--image "<path>"`. Do not leave only a local `/tmp/...` or workspace image path in the comment, because board users may not be able to inspect it from Rudder.
@@ -233,7 +240,7 @@ rudder agent skills create "$RUDDER_AGENT_ID" --name "<name>" --description "<de
233
240
 
234
241
  This creates the package under `AGENT_HOME/skills` and does not require organization skill mutation permission.
235
242
 
236
- When a board user, CEO, or manager asks you to find, import, inspect, or assign organization skills:
243
+ When a board user or authorized agent asks you to find, import, inspect, or assign organization skills:
237
244
 
238
245
  1. Read `references/organization-skills.md`
239
246
  2. Use the CLI surfaces in this order:
@@ -269,7 +276,7 @@ Typical flow:
269
276
  rudder issue documents get "<issue-id-or-identifier>" plan --json
270
277
  rudder issue documents revisions "<issue-id-or-identifier>" plan --json
271
278
  rudder issue documents put "<issue-id-or-identifier>" plan --title "Plan" --format markdown --body "<markdown>" --json
272
- rudder issue comment "<issue-id-or-identifier>" --body "<mention that the plan document was updated>" --json
279
+ rudder issue comment "<issue-id-or-identifier>" --body-file "<path>" --json
273
280
  ```
274
281
 
275
282
  Planning rules:
@@ -29,14 +29,14 @@ Direct API fallback is allowed for heartbeat close-out only when a required CLI
29
29
  | `rudder issue search <query> [--org-id <id>]` | Search issues with the server-side issue index across title, identifier, description, and comments. | no | required | no | no |
30
30
  | `rudder issue context <issue>` | Read the compact heartbeat context for an issue. | no | no | no | no |
31
31
  | `rudder issue checkout <issue>` | Atomically checkout an issue for the current or specified agent. | yes | no | required | attached when available |
32
- | `rudder issue comment <issue> --body <text> [--image <path>]` | Add a comment to an issue, optionally uploading images and appending Markdown image links. | yes | no | no | attached when available |
32
+ | `rudder issue comment <issue> --body-file <path> [--image <path>]` | Add a comment to an issue, optionally uploading images and appending Markdown image links. | yes | no | no | attached when available |
33
33
  | `rudder issue comments list <issue>` | List issue comments, optionally only newer comments after a cursor. | no | no | no | no |
34
34
  | `rudder issue comments get <issue> <comment-id>` | Read one issue comment by id. | no | no | no | no |
35
- | `rudder issue update <issue> ... [--image <path>]` | Apply generic issue updates when workflow commands are not enough, optionally uploading images for the update comment. | yes | no | no | attached when available |
36
- | `rudder issue review <issue> --decision <decision> --comment <text>` | Record a structured reviewer decision with a required comment. | yes | no | no | attached when available |
35
+ | `rudder issue update <issue> ... [--comment-file <path>] [--image <path>]` | Apply generic issue updates when workflow commands are not enough, optionally uploading images for the update comment. | yes | no | no | attached when available |
36
+ | `rudder issue review <issue> --decision <decision> --comment-file <path>` | Record a structured reviewer decision with a required comment. | yes | no | no | attached when available |
37
37
  | `rudder issue commit <issue> --sha <sha> --message <subject>` | Report a code commit created during issue work as structured issue activity. | yes | no | no | attached when available |
38
- | `rudder issue done <issue> --comment <text> [--image <path>]` | Mark an issue done with a required completion comment, optionally uploading images. | yes | no | no | attached when available |
39
- | `rudder issue block <issue> --comment <text> [--image <path>]` | Mark an issue blocked with a required blocker comment, optionally uploading images. | yes | no | no | attached when available |
38
+ | `rudder issue done <issue> --comment-file <path> [--image <path>]` | Mark an issue done with a required completion comment, optionally uploading images. | yes | no | no | attached when available |
39
+ | `rudder issue block <issue> --comment-file <path> [--image <path>]` | Mark an issue blocked with a required blocker comment, optionally uploading images. | yes | no | no | attached when available |
40
40
  | `rudder issue release <issue>` | Release an issue back to todo and clear ownership. | yes | no | no | attached when available |
41
41
  | `rudder issue documents list <issue>` | List issue documents. | no | no | no | no |
42
42
  | `rudder issue documents get <issue> <key>` | Read one issue document by key. | no | no | no | no |
@@ -56,13 +56,15 @@ Direct API fallback is allowed for heartbeat close-out only when a required CLI
56
56
 
57
57
  Before a successful `todo` or `in_progress` issue run exits, leave one close-out signal with the command that matches the outcome:
58
58
 
59
- - progress remains: `rudder issue comment <issue> --body <text> [--image <path>]`
60
- - work is complete: `rudder issue done <issue> --comment <text> [--image <path>]`
61
- - work is blocked: `rudder issue block <issue> --comment <text> [--image <path>]`
59
+ - progress remains: `rudder issue comment <issue> --body-file <path> [--image <path>]`
60
+ - work is complete: `rudder issue done <issue> --comment-file <path> [--image <path>]`
61
+ - work is blocked: `rudder issue block <issue> --comment-file <path> [--image <path>]`
62
62
  - ownership changes: add an explicit handoff comment before or with the assignee update
63
63
 
64
64
  If an issue has a reviewer, moving it to `blocked` is also a reviewer handoff: the reviewer should confirm the blocker, request changes, approve, or keep explicit follow-up open with `rudder issue review`.
65
65
 
66
+ Use file or stdin comment input for any multiline Markdown, command names, code spans, code blocks, test summaries, or screenshot evidence. Write the comment to a temporary Markdown file and pass `--body-file <path>` or `--comment-file <path>`, or pass `-` to read the body from stdin. Do not place shell-sensitive Markdown containing backticks or `$()` directly inside a shell argument.
67
+
66
68
  `--image` may be repeated. The CLI uploads each local PNG/JPEG/WebP/GIF as an issue attachment and appends Markdown image links to the comment text before sending it.
67
69
 
68
70
  If your issue comment cites a screenshot path or visual validation artifact, attach that file with `--image <path>` instead of leaving only the local path in the text.
@@ -77,10 +79,10 @@ Local runtime `HOME` is isolated from the operator home. Codex local runs and ru
77
79
 
78
80
  When the inbox row or wake context says `relationship: "reviewer"`, `role: "reviewer"`, or `wakeSource: "review"`, finish the review with one structured reviewer decision. Reviewer work can be either `in_review` or `blocked`; blocked reviewer work means blocker triage, not implementation takeover.
79
81
 
80
- - approve: `rudder issue review <issue> --decision approve --comment <text>`
81
- - request changes: `rudder issue review <issue> --decision request_changes --comment <text>`
82
- - needs follow-up: `rudder issue review <issue> --decision needs_followup --comment <text>`
83
- - blocked or blocker confirmed: `rudder issue review <issue> --decision blocked --comment <text>`; use this only for a confirmed human/external blocker and name the next human action.
82
+ - approve: `rudder issue review <issue> --decision approve --comment-file <path>`
83
+ - request changes: `rudder issue review <issue> --decision request_changes --comment-file <path>`
84
+ - needs follow-up: `rudder issue review <issue> --decision needs_followup --comment-file <path>`
85
+ - blocked or blocker confirmed: `rudder issue review <issue> --decision blocked --comment-file <path>`; use this only for a confirmed human/external blocker and name the next human action.
84
86
 
85
87
  Do not rely on a free-form reject or accept comment as the review outcome. The structured decision is the durable close-out signal. A blocked reviewer decision records a human handoff and removes the issue from repeated reviewer pickup until the board changes the issue.
86
88
 
@@ -1,6 +1,6 @@
1
1
  # Organization Skills Workflow
2
2
 
3
- Use this reference when a board user, CEO, or manager asks you to discover, import, inspect, or enable organization skills.
3
+ Use this reference when a board user or authorized agent asks you to discover, import, inspect, or enable organization skills.
4
4
 
5
5
  This workflow is now **CLI-first** for the bundled `rudder` skill.
6
6
 
@@ -155,7 +155,7 @@ the full optional enabled-skill set intentionally.
155
155
  ## Permission Model
156
156
 
157
157
  - organization skill reads: any same-organization actor
158
- - organization skill mutations: board, CEO, or an agent with effective `agents:create`
158
+ - organization skill mutations: local/admin board access, board users with `skills:manage`, or same-org agents with `canManageSkills` enabled. Agents default to `canManageSkills=true` unless explicitly disabled. Existing board grants for `agents:create` remain accepted as a compatibility fallback, but new grants should use `skills:manage`.
159
159
  - agent skill enable/sync: same permission model as updating that agent
160
160
 
161
161
  ## Notes
@@ -1 +1 @@
1
- import{e as x,c as b,g as m,k as P,h as p,j as w,l as c,m as A,n as I,t as N,o as E}from"./_baseUniq-DQoN4Tnz.js";import{aO as g,at as F,aP as M,aQ as T,aR as _,aS as l,aT as $,aU as B,aV as S,aW as y}from"./mermaid.core-CGUbX2ot.js";var R=/\s/;function G(n){for(var r=n.length;r--&&R.test(n.charAt(r)););return r}var H=/^\s+/;function L(n){return n&&n.slice(0,G(n)+1).replace(H,"")}var o=NaN,W=/^[-+]0x[0-9a-f]+$/i,q=/^0b[01]+$/i,z=/^0o[0-7]+$/i,C=parseInt;function K(n){if(typeof n=="number")return n;if(x(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=L(n);var t=q.test(n);return t||z.test(n)?C(n.slice(2),t?2:8):W.test(n)?o:+n}var v=1/0,Q=17976931348623157e292;function U(n){if(!n)return n===0?n:0;if(n=K(n),n===v||n===-v){var r=n<0?-1:1;return r*Q}return n===n?n:0}function X(n){var r=U(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var O=Object.prototype,Y=O.hasOwnProperty,dn=F(function(n,r){n=Object(n);var t=-1,i=r.length,a=i>2?r[2]:void 0;for(a&&M(r[0],r[1],a)&&(i=1);++t<i;)for(var f=r[t],e=T(f),s=-1,d=e.length;++s<d;){var u=e[s],h=n[u];(h===void 0||_(h,O[u])&&!Y.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function D(n){return function(r,t,i){var a=Object(r);if(!l(r)){var f=m(t);r=P(r),t=function(s){return f(a[s],s,a)}}var e=n(r,t,i);return e>-1?a[f?r[e]:e]:void 0}}var J=Math.max;function Z(n,r,t){var i=n==null?0:n.length;if(!i)return-1;var a=t==null?0:X(t);return a<0&&(a=J(i+a,0)),p(n,m(r),a)}var hn=D(Z);function V(n,r){var t=-1,i=l(n)?Array(n.length):[];return w(n,function(a,f,e){i[++t]=r(a,f,e)}),i}function gn(n,r){var t=$(n)?c:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var i=-1,a=n.length;++i<a;){var f=n[i],e=r(f);if(e!=null&&(s===void 0?e===e&&!x(e):t(e,s)))var s=e,d=f}return d}function on(n){return n&&n.length?tn(n,B,rn):void 0}function an(n,r,t,i){if(!g(n))return n;r=I(r,n);for(var a=-1,f=r.length,e=f-1,s=n;s!=null&&++a<f;){var d=N(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=e){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:S(r[a+1])?[]:{})}y(s,d,u),s=s[d]}return n}function vn(n,r,t){for(var i=-1,a=r.length,f={};++i<a;){var e=r[i],s=E(n,e);t(s,e)&&an(f,I(e,n),s)}return f}export{rn as a,tn as b,V as c,vn as d,on as e,fn as f,hn as g,mn as h,dn as i,X as j,un as l,gn as m,U as t};
1
+ import{e as x,c as b,g as m,k as P,h as p,j as w,l as c,m as A,n as I,t as N,o as E}from"./_baseUniq-GmiWxzFH.js";import{aO as g,at as F,aP as M,aQ as T,aR as _,aS as l,aT as $,aU as B,aV as S,aW as y}from"./mermaid.core-BYRAeK5Q.js";var R=/\s/;function G(n){for(var r=n.length;r--&&R.test(n.charAt(r)););return r}var H=/^\s+/;function L(n){return n&&n.slice(0,G(n)+1).replace(H,"")}var o=NaN,W=/^[-+]0x[0-9a-f]+$/i,q=/^0b[01]+$/i,z=/^0o[0-7]+$/i,C=parseInt;function K(n){if(typeof n=="number")return n;if(x(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=L(n);var t=q.test(n);return t||z.test(n)?C(n.slice(2),t?2:8):W.test(n)?o:+n}var v=1/0,Q=17976931348623157e292;function U(n){if(!n)return n===0?n:0;if(n=K(n),n===v||n===-v){var r=n<0?-1:1;return r*Q}return n===n?n:0}function X(n){var r=U(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var O=Object.prototype,Y=O.hasOwnProperty,dn=F(function(n,r){n=Object(n);var t=-1,i=r.length,a=i>2?r[2]:void 0;for(a&&M(r[0],r[1],a)&&(i=1);++t<i;)for(var f=r[t],e=T(f),s=-1,d=e.length;++s<d;){var u=e[s],h=n[u];(h===void 0||_(h,O[u])&&!Y.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function D(n){return function(r,t,i){var a=Object(r);if(!l(r)){var f=m(t);r=P(r),t=function(s){return f(a[s],s,a)}}var e=n(r,t,i);return e>-1?a[f?r[e]:e]:void 0}}var J=Math.max;function Z(n,r,t){var i=n==null?0:n.length;if(!i)return-1;var a=t==null?0:X(t);return a<0&&(a=J(i+a,0)),p(n,m(r),a)}var hn=D(Z);function V(n,r){var t=-1,i=l(n)?Array(n.length):[];return w(n,function(a,f,e){i[++t]=r(a,f,e)}),i}function gn(n,r){var t=$(n)?c:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var i=-1,a=n.length;++i<a;){var f=n[i],e=r(f);if(e!=null&&(s===void 0?e===e&&!x(e):t(e,s)))var s=e,d=f}return d}function on(n){return n&&n.length?tn(n,B,rn):void 0}function an(n,r,t,i){if(!g(n))return n;r=I(r,n);for(var a=-1,f=r.length,e=f-1,s=n;s!=null&&++a<f;){var d=N(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=e){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:S(r[a+1])?[]:{})}y(s,d,u),s=s[d]}return n}function vn(n,r,t){for(var i=-1,a=r.length,f={};++i<a;){var e=r[i],s=E(n,e);t(s,e)&&an(f,I(e,n),s)}return f}export{rn as a,tn as b,V as c,vn as d,on as e,fn as f,hn as g,mn as h,dn as i,X as j,un as l,gn as m,U as t};
@@ -1 +1 @@
1
- import{bg as S,bh as Rn,aT as T,bi as w,aS as sn,bj as xn,bk as mn,bl as Cn,bm as un,bn as x,aQ as U,bo as Mn,bp as on,bq as Fn,br as E,be as gn,bs as R,aO as ln,bt as Dn,bu as D,bv as Gn,bw as Un,bx as _,aW as Bn,by as Nn,aR as Kn,bz as Q,bA as jn,bB as Hn,aV as qn,aU as cn,bc as Yn,bC as C}from"./mermaid.core-CGUbX2ot.js";var Zn="[object Symbol]";function B(n){return typeof n=="symbol"||S(n)&&Rn(n)==Zn}function bn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var X=w?w.prototype:void 0,J=X?X.toString:void 0;function dn(n){if(typeof n=="string")return n;if(T(n))return bn(n,dn)+"";if(B(n))return J?J.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Qn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Xn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Jn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Xn(n,Jn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function N(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||B(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Cn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:N(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||B(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[m(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,U(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,br=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return br.call(n,r)}))}:hn;function dr(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Mn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,j)}function yr(n){return On(n,U,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",mr="[object Symbol]",Cr="[object ArrayBuffer]",Mr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Ur="[object Int16Array]",Br="[object Int32Array]",Nr="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function qr(n,r,e){var t=n.constructor;switch(r){case Cr:return on(n);case Er:case Ir:return new t(+n);case Mr:return Or(n,e);case Fr:case Dr:case Gr:case Ur:case Br:case Nr:case Kr:case jr:case Hr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case mr:return Sr(n)}}var Yr="[object Map]";function Zr(n){return S(n)&&E(n)==Yr}var nn=R&&R.isMap,Qr=nn?gn(nn):Zr,Xr="[object Set]";function Jr(n){return S(n)&&E(n)==Xr}var rn=R&&R.isSet,Wr=rn?gn(rn):Jr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",be="[object DataView]",de="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[be]=g[re]=g[ee]=g[de]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function M(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,b=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!f){if(a=u||c?{}:Un(n),!s)return u?Ar(n,lr(a,n)):dr(n,gr(a,n))}else{if(!g[o])return f?n:{};a=qr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(d){a.add(M(d,r,e,d,n,i))}):Qr(n)&&n.forEach(function(d,p){a.set(p,M(d,r,e,p,n,i))});var A=b?u?yr:G:u?U:$,y=l?void 0:A(n);return pn(y||n,function(d,p){y&&(p=d,d=n[p]),Bn(a,p,M(d,r,e,p,n,i))}),a}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Nn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Se;I.prototype.has=Ee;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,f,i){var a=e&Pe,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var d=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(d!==void 0){if(d)continue;c=!1;break}if(h){if(!Ie(r,function(p,O){if(!En(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,me="[object Boolean]",Ce="[object Date]",Me="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ue="[object Set]",Be="[object String]",Ne="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new Q(n),new Q(r)));case me:case Ce:case De:return Kn(+n,+r);case Me:return n.name==r.name&&n.message==r.message;case Ge:case Be:return n==r+"";case Fe:var s=Le;case Ue:var u=t&Re;if(s||(s=H),n.size!=r.size&&!u)return!1;var b=a.get(n);if(b)return b==r;t|=xe,a.set(n,r);var l=In(s(n),s(r),t,f,i,a);return a.delete(n),l;case Ne:if(F)return F.call(n)==F.call(r)}return!1}var qe=1,Ye=Object.prototype,Ze=Ye.hasOwnProperty;function Qe(n,r,e,t,f,i){var a=e&qe,s=G(n),u=s.length,b=G(r),l=b.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:Ze.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var d=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var Z=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(Z===void 0?p===O||f(p,O,e,t,i):Z)){y=!1;break}d||(d=c=="constructor")}if(y&&!d){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Xe=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Je=Object.prototype,an=Je.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:E(n),b=s?fn:E(r);u=u==tn?L:u,b=b==tn?L:b;var l=u==L,o=b==L,c=u==b;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new _),a||jn(n)?In(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Xe)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,d=A?r.value():r;return i||(i=new _),f(y,d,e,t,i)}}return c?(i||(i=new _),Qe(n,r,e,t,f,i)):!1}function q(n,r,e,t,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,q,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],b=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?q(b,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,Pn(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=m(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&qn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return N(n)&&Pn(r)?vn(m(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):q(r,t,ft|at)}}function ut(n){return function(r){return r==null?void 0:r[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return N(n)?ut(m(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Yn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var Y=ct(lt);function bt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?pn:Y;return e(n,bt(r))}function dt(n,r){var e=[];return Y(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:dt;return e(n,Ln(r))}function pt(n,r){return bn(r,function(e){return n[e]})}function St(n){return n==null?[]:pt(n,$(n))}function Et(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function It(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,Y)}var yt=1/0,Tt=C&&1/H(new C([,-0]))[1]==yt?function(n){return new C(n)}:Qn,ht=200;function Pt(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=En,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,dt as B,Ie as C,Qn as D,I as S,Pt as a,M as b,Ot as c,$t as d,B as e,_t as f,Ln as g,Xn as h,Et as i,Y as j,$ as k,bn as l,tt as m,An as n,yn as o,bt as p,lt as q,It as r,it as s,m as t,ar as u,St as v,Vn as w,En as x,zn as y,yr as z};
1
+ import{bg as S,bh as Rn,aT as T,bi as w,aS as sn,bj as xn,bk as mn,bl as Cn,bm as un,bn as x,aQ as U,bo as Mn,bp as on,bq as Fn,br as E,be as gn,bs as R,aO as ln,bt as Dn,bu as D,bv as Gn,bw as Un,bx as _,aW as Bn,by as Nn,aR as Kn,bz as Q,bA as jn,bB as Hn,aV as qn,aU as cn,bc as Yn,bC as C}from"./mermaid.core-BYRAeK5Q.js";var Zn="[object Symbol]";function B(n){return typeof n=="symbol"||S(n)&&Rn(n)==Zn}function bn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var X=w?w.prototype:void 0,J=X?X.toString:void 0;function dn(n){if(typeof n=="string")return n;if(T(n))return bn(n,dn)+"";if(B(n))return J?J.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Qn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Xn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Jn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Xn(n,Jn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function N(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||B(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Cn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:N(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||B(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[m(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,U(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,br=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return br.call(n,r)}))}:hn;function dr(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Mn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,j)}function yr(n){return On(n,U,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",mr="[object Symbol]",Cr="[object ArrayBuffer]",Mr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Ur="[object Int16Array]",Br="[object Int32Array]",Nr="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function qr(n,r,e){var t=n.constructor;switch(r){case Cr:return on(n);case Er:case Ir:return new t(+n);case Mr:return Or(n,e);case Fr:case Dr:case Gr:case Ur:case Br:case Nr:case Kr:case jr:case Hr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case mr:return Sr(n)}}var Yr="[object Map]";function Zr(n){return S(n)&&E(n)==Yr}var nn=R&&R.isMap,Qr=nn?gn(nn):Zr,Xr="[object Set]";function Jr(n){return S(n)&&E(n)==Xr}var rn=R&&R.isSet,Wr=rn?gn(rn):Jr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",be="[object DataView]",de="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[be]=g[re]=g[ee]=g[de]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function M(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,b=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!f){if(a=u||c?{}:Un(n),!s)return u?Ar(n,lr(a,n)):dr(n,gr(a,n))}else{if(!g[o])return f?n:{};a=qr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(d){a.add(M(d,r,e,d,n,i))}):Qr(n)&&n.forEach(function(d,p){a.set(p,M(d,r,e,p,n,i))});var A=b?u?yr:G:u?U:$,y=l?void 0:A(n);return pn(y||n,function(d,p){y&&(p=d,d=n[p]),Bn(a,p,M(d,r,e,p,n,i))}),a}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Nn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Se;I.prototype.has=Ee;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,f,i){var a=e&Pe,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var d=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(d!==void 0){if(d)continue;c=!1;break}if(h){if(!Ie(r,function(p,O){if(!En(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,me="[object Boolean]",Ce="[object Date]",Me="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ue="[object Set]",Be="[object String]",Ne="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new Q(n),new Q(r)));case me:case Ce:case De:return Kn(+n,+r);case Me:return n.name==r.name&&n.message==r.message;case Ge:case Be:return n==r+"";case Fe:var s=Le;case Ue:var u=t&Re;if(s||(s=H),n.size!=r.size&&!u)return!1;var b=a.get(n);if(b)return b==r;t|=xe,a.set(n,r);var l=In(s(n),s(r),t,f,i,a);return a.delete(n),l;case Ne:if(F)return F.call(n)==F.call(r)}return!1}var qe=1,Ye=Object.prototype,Ze=Ye.hasOwnProperty;function Qe(n,r,e,t,f,i){var a=e&qe,s=G(n),u=s.length,b=G(r),l=b.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:Ze.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var d=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var Z=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(Z===void 0?p===O||f(p,O,e,t,i):Z)){y=!1;break}d||(d=c=="constructor")}if(y&&!d){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Xe=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Je=Object.prototype,an=Je.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:E(n),b=s?fn:E(r);u=u==tn?L:u,b=b==tn?L:b;var l=u==L,o=b==L,c=u==b;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new _),a||jn(n)?In(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Xe)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,d=A?r.value():r;return i||(i=new _),f(y,d,e,t,i)}}return c?(i||(i=new _),Qe(n,r,e,t,f,i)):!1}function q(n,r,e,t,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,q,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],b=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?q(b,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,Pn(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=m(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&qn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return N(n)&&Pn(r)?vn(m(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):q(r,t,ft|at)}}function ut(n){return function(r){return r==null?void 0:r[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return N(n)?ut(m(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Yn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var Y=ct(lt);function bt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?pn:Y;return e(n,bt(r))}function dt(n,r){var e=[];return Y(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:dt;return e(n,Ln(r))}function pt(n,r){return bn(r,function(e){return n[e]})}function St(n){return n==null?[]:pt(n,$(n))}function Et(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function It(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,Y)}var yt=1/0,Tt=C&&1/H(new C([,-0]))[1]==yt?function(n){return new C(n)}:Qn,ht=200;function Pt(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=En,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,dt as B,Ie as C,Qn as D,I as S,Pt as a,M as b,Ot as c,$t as d,B as e,_t as f,Ln as g,Xn as h,Et as i,Y as j,$ as k,bn as l,tt as m,An as n,yn as o,bt as p,lt as q,It as r,it as s,m as t,ar as u,St as v,Vn as w,En as x,zn as y,yr as z};
@@ -1 +1 @@
1
- import{M as ln,N as an,O as Y,P as O,Q,R as un,S as y,T as tn,V as j,W as _,X as rn,Y as o,Z as on,$ as sn,a0 as fn}from"./mermaid.core-CGUbX2ot.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,D,S,v,R,V,a){var E=D-l,i=S-h,n=V-v,d=a-R,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-R)-d*(l-v))/u,[l+u*E,h+u*i]}function H(l,h,D,S,v,R,V){var a=l-D,E=h-S,i=(V?R:-R)/j(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,W=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,A=m*m+g*g,T=v-R,P=u*c-f*s,I=(g<0?-1:1)*j(on(0,T*T*A-P*P)),M=(P*g-m*I)/A,N=(-P*m-g*I)/A,w=(P*g+m*I)/A,p=(-P*m+g*I)/A,x=M-W,e=N-t,r=w-W,X=p-t;return x*x+e*e>r*r+X*X&&(M=w,N=p),{cx:M,cy:N,x01:-n,y01:-d,x11:M*(v/T-1),y11:N*(v/T-1)}}function hn(){var l=cn,h=yn,D=Q(0),S=null,v=gn,R=dn,V=mn,a=null,E=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=R.apply(this,arguments)-un,W=rn(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(W>tn-y)a.moveTo(s*Y(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*Y(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,A=f,T=c,P=W,I=W,M=V.apply(this,arguments)/2,N=M>y&&(S?+S.apply(this,arguments):j(u*u+s*s)),w=_(rn(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(N>y){var X=sn(N/u*O(M)),z=sn(N/s*O(M));(P-=X*2)>y?(X*=t?1:-1,A+=X,T-=X):(P=0,A=T=(f+c)/2),(I-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(I=0,m=g=(f+c)/2)}var Z=s*Y(m),$=s*O(m),B=u*Y(T),C=u*O(T);if(w>y){var F=s*Y(g),G=s*O(g),J=u*Y(A),K=u*O(A),q;if(W<an)if(q=pn(Z,$,J,K,F,G,B,C)){var L=Z-q[0],U=$-q[1],k=F-q[0],b=G-q[1],nn=1/O(fn((L*k+U*b)/(j(L*L+U*U)*j(k*k+b*b)))/2),en=j(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=H(J,K,Z,$,s,x,t),r=H(F,G,B,C,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(Z,$),a.arc(0,0,s,m,g,!t)):a.moveTo(Z,$),!(u>y)||!(P>y)?a.lineTo(B,C):p>y?(e=H(B,C,F,G,u,-p,t),r=H(Z,$,J,K,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,A,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)+ +R.apply(this,arguments))/2-an/2;return[Y(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:Q(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:Q(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:Q(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:Q(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:Q(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:Q(+n),i):R},i.padAngle=function(n){return arguments.length?(V=typeof n=="function"?n:Q(+n),i):V},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{M as ln,N as an,O as Y,P as O,Q,R as un,S as y,T as tn,V as j,W as _,X as rn,Y as o,Z as on,$ as sn,a0 as fn}from"./mermaid.core-BYRAeK5Q.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,D,S,v,R,V,a){var E=D-l,i=S-h,n=V-v,d=a-R,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-R)-d*(l-v))/u,[l+u*E,h+u*i]}function H(l,h,D,S,v,R,V){var a=l-D,E=h-S,i=(V?R:-R)/j(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,W=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,A=m*m+g*g,T=v-R,P=u*c-f*s,I=(g<0?-1:1)*j(on(0,T*T*A-P*P)),M=(P*g-m*I)/A,N=(-P*m-g*I)/A,w=(P*g+m*I)/A,p=(-P*m+g*I)/A,x=M-W,e=N-t,r=w-W,X=p-t;return x*x+e*e>r*r+X*X&&(M=w,N=p),{cx:M,cy:N,x01:-n,y01:-d,x11:M*(v/T-1),y11:N*(v/T-1)}}function hn(){var l=cn,h=yn,D=Q(0),S=null,v=gn,R=dn,V=mn,a=null,E=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=R.apply(this,arguments)-un,W=rn(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(W>tn-y)a.moveTo(s*Y(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*Y(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,A=f,T=c,P=W,I=W,M=V.apply(this,arguments)/2,N=M>y&&(S?+S.apply(this,arguments):j(u*u+s*s)),w=_(rn(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(N>y){var X=sn(N/u*O(M)),z=sn(N/s*O(M));(P-=X*2)>y?(X*=t?1:-1,A+=X,T-=X):(P=0,A=T=(f+c)/2),(I-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(I=0,m=g=(f+c)/2)}var Z=s*Y(m),$=s*O(m),B=u*Y(T),C=u*O(T);if(w>y){var F=s*Y(g),G=s*O(g),J=u*Y(A),K=u*O(A),q;if(W<an)if(q=pn(Z,$,J,K,F,G,B,C)){var L=Z-q[0],U=$-q[1],k=F-q[0],b=G-q[1],nn=1/O(fn((L*k+U*b)/(j(L*L+U*U)*j(k*k+b*b)))/2),en=j(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=H(J,K,Z,$,s,x,t),r=H(F,G,B,C,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(Z,$),a.arc(0,0,s,m,g,!t)):a.moveTo(Z,$),!(u>y)||!(P>y)?a.lineTo(B,C):p>y?(e=H(B,C,F,G,u,-p,t),r=H(Z,$,J,K,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,A,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)+ +R.apply(this,arguments))/2-an/2;return[Y(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:Q(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:Q(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:Q(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:Q(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:Q(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:Q(+n),i):R},i.padAngle=function(n){return arguments.length?(V=typeof n=="function"?n:Q(+n),i):V},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};