@rudderhq/server 0.2.0-canary.13 → 0.2.0-canary.15

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 (113) hide show
  1. package/dist/bundled-plugins/plugin-linear/dist/worker.js +1 -1
  2. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
  3. package/dist/onboarding-assets/ceo/HEARTBEAT.md +3 -3
  4. package/dist/onboarding-assets/default/HEARTBEAT.md +3 -3
  5. package/dist/routes/agents.d.ts.map +1 -1
  6. package/dist/routes/agents.js +9 -5
  7. package/dist/routes/agents.js.map +1 -1
  8. package/dist/routes/chats.d.ts.map +1 -1
  9. package/dist/routes/chats.js +98 -36
  10. package/dist/routes/chats.js.map +1 -1
  11. package/dist/routes/costs.d.ts.map +1 -1
  12. package/dist/routes/costs.js +7 -0
  13. package/dist/routes/costs.js.map +1 -1
  14. package/dist/routes/issues.d.ts.map +1 -1
  15. package/dist/routes/issues.js +23 -11
  16. package/dist/routes/issues.js.map +1 -1
  17. package/dist/services/chats.d.ts +75 -1
  18. package/dist/services/chats.d.ts.map +1 -1
  19. package/dist/services/chats.js +58 -0
  20. package/dist/services/chats.js.map +1 -1
  21. package/dist/services/costs.d.ts +11 -0
  22. package/dist/services/costs.d.ts.map +1 -1
  23. package/dist/services/costs.js +30 -1
  24. package/dist/services/costs.js.map +1 -1
  25. package/dist/services/issue-review-wakeup.d.ts +1 -1
  26. package/dist/services/issue-review-wakeup.d.ts.map +1 -1
  27. package/dist/services/issue-review-wakeup.js +6 -2
  28. package/dist/services/issue-review-wakeup.js.map +1 -1
  29. package/dist/services/runtime-kernel/heartbeat.js +1 -1
  30. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  31. package/package.json +13 -13
  32. package/resources/bundled-skills/rudder/SKILL.md +17 -11
  33. package/resources/bundled-skills/rudder/references/cli-reference.md +13 -9
  34. package/skills/rudder/SKILL.md +17 -11
  35. package/skills/rudder/references/cli-reference.md +13 -9
  36. package/ui-dist/assets/{_basePickBy-Dqxp5nRU.js → _basePickBy-D-h8NLO4.js} +1 -1
  37. package/ui-dist/assets/{_baseUniq-D5cgIII0.js → _baseUniq-BR--bNSq.js} +1 -1
  38. package/ui-dist/assets/{arc-H6KIKqlX.js → arc-CSkvw-4b.js} +1 -1
  39. package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-VJn3ZDRh.js → architectureDiagram-2XIMDMQ5-DFHSNwq4.js} +1 -1
  40. package/ui-dist/assets/{blockDiagram-WCTKOSBZ-BUaBtfrU.js → blockDiagram-WCTKOSBZ-DRIY9021.js} +1 -1
  41. package/ui-dist/assets/{c4Diagram-IC4MRINW-CQApT9vP.js → c4Diagram-IC4MRINW-C8AmPWyc.js} +1 -1
  42. package/ui-dist/assets/channel-zvEYfxUn.js +1 -0
  43. package/ui-dist/assets/{chunk-4BX2VUAB-BBObn37o.js → chunk-4BX2VUAB-BWQcF6dX.js} +1 -1
  44. package/ui-dist/assets/{chunk-55IACEB6-fRrcrqVQ.js → chunk-55IACEB6-Bt637FJW.js} +1 -1
  45. package/ui-dist/assets/{chunk-FMBD7UC4-CC_JE5Yt.js → chunk-FMBD7UC4-DRxreXxp.js} +1 -1
  46. package/ui-dist/assets/{chunk-JSJVCQXG-BICuo1Ro.js → chunk-JSJVCQXG-D7Jgq1Il.js} +1 -1
  47. package/ui-dist/assets/{chunk-KX2RTZJC-Be3LkPd0.js → chunk-KX2RTZJC-Ccgq1uYP.js} +1 -1
  48. package/ui-dist/assets/{chunk-NQ4KR5QH-Dur-iQYf.js → chunk-NQ4KR5QH-CwESwMqw.js} +1 -1
  49. package/ui-dist/assets/{chunk-QZHKN3VN-D4i79fbz.js → chunk-QZHKN3VN-CqYBxcbR.js} +1 -1
  50. package/ui-dist/assets/{chunk-WL4C6EOR-Go0XnAaW.js → chunk-WL4C6EOR-DwBxhkiq.js} +1 -1
  51. package/ui-dist/assets/classDiagram-VBA2DB6C-B2Alzllg.js +1 -0
  52. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-B2Alzllg.js +1 -0
  53. package/ui-dist/assets/clone-7zkwILBR.js +1 -0
  54. package/ui-dist/assets/{cose-bilkent-S5V4N54A-Dz_Kbgg2.js → cose-bilkent-S5V4N54A-baSLVPlm.js} +1 -1
  55. package/ui-dist/assets/{dagre-KLK3FWXG-B-AQgng0.js → dagre-KLK3FWXG-DN_JX1Q8.js} +1 -1
  56. package/ui-dist/assets/{diagram-E7M64L7V-a9BLIZwB.js → diagram-E7M64L7V-DDEWjBya.js} +1 -1
  57. package/ui-dist/assets/{diagram-IFDJBPK2-CvZXFIGJ.js → diagram-IFDJBPK2-BS93a0FQ.js} +1 -1
  58. package/ui-dist/assets/{diagram-P4PSJMXO-C1N1vrCa.js → diagram-P4PSJMXO-Ba5c8-Sx.js} +1 -1
  59. package/ui-dist/assets/{erDiagram-INFDFZHY-CyXQGMlP.js → erDiagram-INFDFZHY-DU-knb3T.js} +1 -1
  60. package/ui-dist/assets/{flowDiagram-PKNHOUZH-BBpgi6a0.js → flowDiagram-PKNHOUZH-CcPbwDij.js} +1 -1
  61. package/ui-dist/assets/{ganttDiagram-A5KZAMGK-5ceIuqjD.js → ganttDiagram-A5KZAMGK-dpcLDe8x.js} +1 -1
  62. package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-DPX1bfNe.js → gitGraphDiagram-K3NZZRJ6-PbsQVo0l.js} +1 -1
  63. package/ui-dist/assets/{graph--rDszzOT.js → graph-B1NaLX-l.js} +1 -1
  64. package/ui-dist/assets/{index-2lLnZmyi.js → index-5MQqways.js} +1 -1
  65. package/ui-dist/assets/{index-oCSJw3iz.js → index-A0LOW_Fb.js} +334 -334
  66. package/ui-dist/assets/{index-CB9M9iep.js → index-B6t39aB6.js} +1 -1
  67. package/ui-dist/assets/{index-DkfYpS54.js → index-B85cIZqt.js} +1 -1
  68. package/ui-dist/assets/{index-DFk8pAHY.js → index-B8jDpyWJ.js} +1 -1
  69. package/ui-dist/assets/{index-CoiBmREY.js → index-BAbidIkM.js} +1 -1
  70. package/ui-dist/assets/{index-DgKsdvVn.js → index-BYZsSIlr.js} +1 -1
  71. package/ui-dist/assets/{index-CY6mG5Z-.js → index-Bt2VeKqk.js} +1 -1
  72. package/ui-dist/assets/{index-cD0aid8e.js → index-CELOlbo5.js} +1 -1
  73. package/ui-dist/assets/{index-D6OzdIrJ.js → index-CSPWNtCm.js} +1 -1
  74. package/ui-dist/assets/{index-CxODMF-x.js → index-Cc1n5ga_.js} +1 -1
  75. package/ui-dist/assets/{index-CgCzNc16.js → index-Cp99Qt69.js} +1 -1
  76. package/ui-dist/assets/{index-jf039Q5d.js → index-CsQiPsnp.js} +1 -1
  77. package/ui-dist/assets/{index-DwUtNa8N.js → index-DHBt5Zkp.js} +1 -1
  78. package/ui-dist/assets/{index-ByxDA0Uk.js → index-Dmt8Cxd8.js} +1 -1
  79. package/ui-dist/assets/{index-COOKxTn-.js → index-Dmv6xxej.js} +1 -1
  80. package/ui-dist/assets/{index-7otV2D3a.js → index-Ds6tYqTU.js} +1 -1
  81. package/ui-dist/assets/{index-CgOJ6ByG.js → index-MnoNbqVE.js} +1 -1
  82. package/ui-dist/assets/{index-iMvpheRJ.js → index-TPaNx0Zl.js} +1 -1
  83. package/ui-dist/assets/{index-DCfnKTZL.js → index-UXttg8Pn.js} +1 -1
  84. package/ui-dist/assets/index-cDIk_T2w.css +1 -0
  85. package/ui-dist/assets/{index-D18VJfzf.js → index-dL0EsJBM.js} +1 -1
  86. package/ui-dist/assets/{index-D5r2B9Og.js → index-h1oRF8ni.js} +1 -1
  87. package/ui-dist/assets/{index-Y_lagrtV.js → index-jKBKODKr.js} +1 -1
  88. package/ui-dist/assets/{infoDiagram-LFFYTUFH-DVtVGacg.js → infoDiagram-LFFYTUFH-Cm_xHYGE.js} +1 -1
  89. package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-Bod1D2n3.js → ishikawaDiagram-PHBUUO56-CGjP8wp3.js} +1 -1
  90. package/ui-dist/assets/{journeyDiagram-4ABVD52K-DEmEfb66.js → journeyDiagram-4ABVD52K-DtfrfhPy.js} +1 -1
  91. package/ui-dist/assets/{kanban-definition-K7BYSVSG-D4zyLZyv.js → kanban-definition-K7BYSVSG-BkekyYnC.js} +1 -1
  92. package/ui-dist/assets/{layout-DOyQIm6v.js → layout-DbTSS7_W.js} +1 -1
  93. package/ui-dist/assets/{linear-BWD9chM2.js → linear-CyY6A0W-.js} +1 -1
  94. package/ui-dist/assets/{mermaid.core-QDXoS4fc.js → mermaid.core-BqmnwNzE.js} +4 -4
  95. package/ui-dist/assets/{mindmap-definition-YRQLILUH-0N37iHLv.js → mindmap-definition-YRQLILUH-mpmreInp.js} +1 -1
  96. package/ui-dist/assets/{pieDiagram-SKSYHLDU-CzZFyPYV.js → pieDiagram-SKSYHLDU-8lEzBZm-.js} +1 -1
  97. package/ui-dist/assets/{quadrantDiagram-337W2JSQ-BB9-MmkN.js → quadrantDiagram-337W2JSQ-D4b2eeeZ.js} +1 -1
  98. package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-CKZUv8I1.js → requirementDiagram-Z7DCOOCP-BDxsxSi5.js} +1 -1
  99. package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-CG8cyca5.js → sankeyDiagram-WA2Y5GQK-CzIGWZUV.js} +1 -1
  100. package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-Cctsg7MS.js → sequenceDiagram-2WXFIKYE-D7ZF2bly.js} +1 -1
  101. package/ui-dist/assets/{stateDiagram-RAJIS63D-DylyOw7m.js → stateDiagram-RAJIS63D-BssHUy5N.js} +1 -1
  102. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-BT2CUSiM.js +1 -0
  103. package/ui-dist/assets/{timeline-definition-YZTLITO2-B2m9ypL0.js → timeline-definition-YZTLITO2-ltxkV70w.js} +1 -1
  104. package/ui-dist/assets/{treemap-KZPCXAKY-3o_LW7ue.js → treemap-KZPCXAKY-DClHryuL.js} +1 -1
  105. package/ui-dist/assets/{vennDiagram-LZ73GAT5-C29S_PD2.js → vennDiagram-LZ73GAT5-DoIiUzzO.js} +1 -1
  106. package/ui-dist/assets/{xychartDiagram-JWTSCODW-BD0t2Urs.js → xychartDiagram-JWTSCODW-P-vyEKjH.js} +1 -1
  107. package/ui-dist/index.html +2 -2
  108. package/ui-dist/assets/channel-DPsIluDp.js +0 -1
  109. package/ui-dist/assets/classDiagram-VBA2DB6C-1mGg2M-S.js +0 -1
  110. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-1mGg2M-S.js +0 -1
  111. package/ui-dist/assets/clone-CN9aOgYl.js +0 -1
  112. package/ui-dist/assets/index-CSANx6ee.css +0 -1
  113. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-6qT1Stha.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderhq/server",
3
- "version": "0.2.0-canary.13",
3
+ "version": "0.2.0-canary.15",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "homepage": "https://github.com/Undertone0809/rudder",
6
6
  "bugs": {
@@ -49,18 +49,18 @@
49
49
  "@langfuse/otel": "^5.1.0",
50
50
  "@langfuse/tracing": "^5.1.0",
51
51
  "@opentelemetry/sdk-trace-node": "^2.1.0",
52
- "@rudderhq/agent-runtime-claude-local": "0.2.0-canary.13",
53
- "@rudderhq/agent-runtime-codex-local": "0.2.0-canary.13",
54
- "@rudderhq/agent-runtime-cursor-local": "0.2.0-canary.13",
55
- "@rudderhq/agent-runtime-gemini-local": "0.2.0-canary.13",
56
- "@rudderhq/agent-runtime-openclaw-gateway": "0.2.0-canary.13",
57
- "@rudderhq/agent-runtime-opencode-local": "0.2.0-canary.13",
58
- "@rudderhq/agent-runtime-pi-local": "0.2.0-canary.13",
59
- "@rudderhq/agent-runtime-utils": "0.2.0-canary.13",
60
- "@rudderhq/db": "0.2.0-canary.13",
61
- "@rudderhq/plugin-sdk": "0.2.0-canary.13",
62
- "@rudderhq/run-intelligence-core": "0.2.0-canary.13",
63
- "@rudderhq/shared": "0.2.0-canary.13",
52
+ "@rudderhq/agent-runtime-claude-local": "0.2.0-canary.15",
53
+ "@rudderhq/agent-runtime-codex-local": "0.2.0-canary.15",
54
+ "@rudderhq/agent-runtime-cursor-local": "0.2.0-canary.15",
55
+ "@rudderhq/agent-runtime-gemini-local": "0.2.0-canary.15",
56
+ "@rudderhq/agent-runtime-openclaw-gateway": "0.2.0-canary.15",
57
+ "@rudderhq/agent-runtime-opencode-local": "0.2.0-canary.15",
58
+ "@rudderhq/agent-runtime-pi-local": "0.2.0-canary.15",
59
+ "@rudderhq/agent-runtime-utils": "0.2.0-canary.15",
60
+ "@rudderhq/db": "0.2.0-canary.15",
61
+ "@rudderhq/plugin-sdk": "0.2.0-canary.15",
62
+ "@rudderhq/run-intelligence-core": "0.2.0-canary.15",
63
+ "@rudderhq/shared": "0.2.0-canary.15",
64
64
  "ajv": "^8.18.0",
65
65
  "ajv-formats": "^3.0.1",
66
66
  "better-auth": "1.4.18",
@@ -91,11 +91,12 @@ rudder agent inbox --json
91
91
  Inbox rows include a `relationship` field:
92
92
 
93
93
  - `assignee`: execution work you own
94
- - `reviewer`: review work where the issue is in `in_review`
94
+ - `reviewer`: review or blocker-triage work where the issue is in `in_review`
95
+ or `blocked`
95
96
 
96
97
  Prioritize active close-out work first: reviewer rows with `status:
97
- "in_review"`, then assignee `in_progress`, then assignee `todo`. Skip
98
- `blocked` unless you can actually unblock it.
98
+ `"in_review"` or `"blocked"`, then assignee `in_progress`, then assignee
99
+ `todo`. Skip assignee-only `blocked` work unless you can actually unblock it.
99
100
 
100
101
  If `RUDDER_TASK_ID` is set and the task is assigned to you or names you as
101
102
  reviewer, prioritize it first.
@@ -141,11 +142,13 @@ rudder issue comments list "<issue-id-or-identifier>" --after "<last-comment-id>
141
142
 
142
143
  **Step 8 — Communicate outcome.**
143
144
 
144
- Before exiting an active `todo` or `in_progress` issue run, leave exactly one clear close-out signal. Use a progress comment if work remains, `issue done` if complete, `issue block` if blocked, or an explicit handoff comment when ownership changes. Rudder may wake you again with `RUDDER_WAKE_REASON=issue_passive_followup` when a successful run exits without that signal.
145
+ Before exiting an active `todo` or `in_progress` issue run, leave exactly one clear close-out signal. Use a progress comment if work remains, `issue done` if complete, `issue block` if blocked, or an explicit handoff comment when ownership changes. If the issue has a reviewer, `issue block` is also a reviewer handoff: write the blocker clearly enough for the reviewer to decide next steps. Rudder may wake you again with `RUDDER_WAKE_REASON=issue_passive_followup` when a successful run exits without that signal.
145
146
 
146
147
  Before exiting a reviewer run or an inbox row with `relationship: "reviewer"`,
147
148
  leave exactly one structured reviewer decision. Do not rely on free-form
148
- comments such as "reject" or "accepted" as the durable outcome:
149
+ comments such as "reject" or "accepted" as the durable outcome. Reviewer rows
150
+ may be `in_review` or `blocked`; blocked reviewer work is blocker triage, not
151
+ permission to take over implementation unless explicitly asked:
149
152
 
150
153
  - approve:
151
154
 
@@ -159,8 +162,8 @@ rudder issue review "<issue-id-or-identifier>" --decision approve --comment "<ma
159
162
  rudder issue review "<issue-id-or-identifier>" --decision request_changes --comment "<markdown>" --json
160
163
  ```
161
164
 
162
- - keep the issue in review because specific evidence or follow-up is still
163
- missing:
165
+ - keep the issue in its current review/blocker state because specific evidence
166
+ or follow-up is still missing:
164
167
 
165
168
  ```bash
166
169
  rudder issue review "<issue-id-or-identifier>" --decision needs_followup --comment "<markdown>" --json
@@ -175,23 +178,25 @@ rudder issue review "<issue-id-or-identifier>" --decision blocked --comment "<ma
175
178
  - progress-only update:
176
179
 
177
180
  ```bash
178
- rudder issue comment "<issue-id-or-identifier>" --body "<markdown>" --json
181
+ rudder issue comment "<issue-id-or-identifier>" --body "<markdown>" [--image "<path>"] --json
179
182
  ```
180
183
 
181
184
  - completion:
182
185
 
183
186
  ```bash
184
- rudder issue done "<issue-id-or-identifier>" --comment "<markdown>" --json
187
+ rudder issue done "<issue-id-or-identifier>" --comment "<markdown>" [--image "<path>"] --json
185
188
  ```
186
189
 
187
190
  - blocker:
188
191
 
189
192
  ```bash
190
- rudder issue block "<issue-id-or-identifier>" --comment "<markdown>" --json
193
+ rudder issue block "<issue-id-or-identifier>" --comment "<markdown>" [--image "<path>"] --json
191
194
  ```
192
195
 
193
196
  - generic patch when workflow commands are not enough:
194
197
 
198
+ 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.
199
+
195
200
  ```bash
196
201
  rudder issue update "<issue-id-or-identifier>" ... --json
197
202
  ```
@@ -251,7 +256,8 @@ Planning rules:
251
256
  - Always communicate before exit on active work, except blocked issues with no new context.
252
257
  - Treat `issue_passive_followup` as close-out governance, not a fresh assignment: inspect current state, then comment, finish, block, or hand off explicitly.
253
258
  - Treat `issue_review_closeout_missing` as review close-out governance: inspect
254
- current state, then record one structured review decision.
259
+ current state, including blocked handoffs, then record one structured review
260
+ decision.
255
261
  - A reviewer does not take over implementation unless explicitly asked.
256
262
  - A reviewer request for changes must use `rudder issue review --decision
257
263
  request_changes`, not only a reject comment.
@@ -20,13 +20,13 @@ Stable CLI contract for agents using the bundled `rudder` skill. Prefer these co
20
20
  | `rudder issue get <issue>` | Read a full issue by UUID or identifier. | no | no | no | no |
21
21
  | `rudder issue context <issue>` | Read the compact heartbeat context for an issue. | no | no | no | no |
22
22
  | `rudder issue checkout <issue>` | Atomically checkout an issue for the current or specified agent. | yes | no | required | attached when available |
23
- | `rudder issue comment <issue> --body <text>` | Add a comment to an issue. | yes | no | no | attached when available |
23
+ | `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 |
24
24
  | `rudder issue comments list <issue>` | List issue comments, optionally only newer comments after a cursor. | no | no | no | no |
25
25
  | `rudder issue comments get <issue> <comment-id>` | Read one issue comment by id. | no | no | no | no |
26
- | `rudder issue update <issue> ...` | Apply generic issue updates when workflow commands are not enough. | yes | no | no | attached when available |
26
+ | `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 |
27
27
  | `rudder issue review <issue> --decision <decision> --comment <text>` | Record a structured reviewer decision with a required comment. | yes | no | no | attached when available |
28
- | `rudder issue done <issue> --comment <text>` | Mark an issue done with a required completion comment. | yes | no | no | attached when available |
29
- | `rudder issue block <issue> --comment <text>` | Mark an issue blocked with a required blocker comment. | yes | no | no | attached when available |
28
+ | `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 |
29
+ | `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 |
30
30
  | `rudder issue release <issue>` | Release an issue back to todo and clear ownership. | yes | no | no | attached when available |
31
31
  | `rudder issue documents list <issue>` | List issue documents. | no | no | no | no |
32
32
  | `rudder issue documents get <issue> <key>` | Read one issue document by key. | no | no | no | no |
@@ -46,21 +46,25 @@ Stable CLI contract for agents using the bundled `rudder` skill. Prefer these co
46
46
 
47
47
  Before a successful `todo` or `in_progress` issue run exits, leave one close-out signal with the command that matches the outcome:
48
48
 
49
- - progress remains: `rudder issue comment <issue> --body <text>`
50
- - work is complete: `rudder issue done <issue> --comment <text>`
51
- - work is blocked: `rudder issue block <issue> --comment <text>`
49
+ - progress remains: `rudder issue comment <issue> --body <text> [--image <path>]`
50
+ - work is complete: `rudder issue done <issue> --comment <text> [--image <path>]`
51
+ - work is blocked: `rudder issue block <issue> --comment <text> [--image <path>]`
52
52
  - ownership changes: add an explicit handoff comment before or with the assignee update
53
53
 
54
+ 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`.
55
+
56
+ `--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.
57
+
54
58
  If `RUDDER_WAKE_REASON=issue_passive_followup`, the run is close-out governance for the same issue. Inspect current issue state first, then leave a progress comment, completion, blocker, or explicit handoff.
55
59
 
56
60
  ## Reviewer Close-Out Signals
57
61
 
58
- When the inbox row or wake context says `relationship: "reviewer"`, `role: "reviewer"`, or `wakeSource: "review"`, finish the review with one structured reviewer decision:
62
+ 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.
59
63
 
60
64
  - approve: `rudder issue review <issue> --decision approve --comment <text>`
61
65
  - request changes: `rudder issue review <issue> --decision request_changes --comment <text>`
62
66
  - needs follow-up: `rudder issue review <issue> --decision needs_followup --comment <text>`
63
- - blocked: `rudder issue review <issue> --decision blocked --comment <text>`
67
+ - blocked or blocker confirmed: `rudder issue review <issue> --decision blocked --comment <text>`
64
68
 
65
69
  Do not rely on a free-form reject or accept comment as the review outcome. The structured decision is the durable close-out signal.
66
70
 
@@ -91,11 +91,12 @@ rudder agent inbox --json
91
91
  Inbox rows include a `relationship` field:
92
92
 
93
93
  - `assignee`: execution work you own
94
- - `reviewer`: review work where the issue is in `in_review`
94
+ - `reviewer`: review or blocker-triage work where the issue is in `in_review`
95
+ or `blocked`
95
96
 
96
97
  Prioritize active close-out work first: reviewer rows with `status:
97
- "in_review"`, then assignee `in_progress`, then assignee `todo`. Skip
98
- `blocked` unless you can actually unblock it.
98
+ `"in_review"` or `"blocked"`, then assignee `in_progress`, then assignee
99
+ `todo`. Skip assignee-only `blocked` work unless you can actually unblock it.
99
100
 
100
101
  If `RUDDER_TASK_ID` is set and the task is assigned to you or names you as
101
102
  reviewer, prioritize it first.
@@ -141,11 +142,13 @@ rudder issue comments list "<issue-id-or-identifier>" --after "<last-comment-id>
141
142
 
142
143
  **Step 8 — Communicate outcome.**
143
144
 
144
- Before exiting an active `todo` or `in_progress` issue run, leave exactly one clear close-out signal. Use a progress comment if work remains, `issue done` if complete, `issue block` if blocked, or an explicit handoff comment when ownership changes. Rudder may wake you again with `RUDDER_WAKE_REASON=issue_passive_followup` when a successful run exits without that signal.
145
+ Before exiting an active `todo` or `in_progress` issue run, leave exactly one clear close-out signal. Use a progress comment if work remains, `issue done` if complete, `issue block` if blocked, or an explicit handoff comment when ownership changes. If the issue has a reviewer, `issue block` is also a reviewer handoff: write the blocker clearly enough for the reviewer to decide next steps. Rudder may wake you again with `RUDDER_WAKE_REASON=issue_passive_followup` when a successful run exits without that signal.
145
146
 
146
147
  Before exiting a reviewer run or an inbox row with `relationship: "reviewer"`,
147
148
  leave exactly one structured reviewer decision. Do not rely on free-form
148
- comments such as "reject" or "accepted" as the durable outcome:
149
+ comments such as "reject" or "accepted" as the durable outcome. Reviewer rows
150
+ may be `in_review` or `blocked`; blocked reviewer work is blocker triage, not
151
+ permission to take over implementation unless explicitly asked:
149
152
 
150
153
  - approve:
151
154
 
@@ -159,8 +162,8 @@ rudder issue review "<issue-id-or-identifier>" --decision approve --comment "<ma
159
162
  rudder issue review "<issue-id-or-identifier>" --decision request_changes --comment "<markdown>" --json
160
163
  ```
161
164
 
162
- - keep the issue in review because specific evidence or follow-up is still
163
- missing:
165
+ - keep the issue in its current review/blocker state because specific evidence
166
+ or follow-up is still missing:
164
167
 
165
168
  ```bash
166
169
  rudder issue review "<issue-id-or-identifier>" --decision needs_followup --comment "<markdown>" --json
@@ -175,23 +178,25 @@ rudder issue review "<issue-id-or-identifier>" --decision blocked --comment "<ma
175
178
  - progress-only update:
176
179
 
177
180
  ```bash
178
- rudder issue comment "<issue-id-or-identifier>" --body "<markdown>" --json
181
+ rudder issue comment "<issue-id-or-identifier>" --body "<markdown>" [--image "<path>"] --json
179
182
  ```
180
183
 
181
184
  - completion:
182
185
 
183
186
  ```bash
184
- rudder issue done "<issue-id-or-identifier>" --comment "<markdown>" --json
187
+ rudder issue done "<issue-id-or-identifier>" --comment "<markdown>" [--image "<path>"] --json
185
188
  ```
186
189
 
187
190
  - blocker:
188
191
 
189
192
  ```bash
190
- rudder issue block "<issue-id-or-identifier>" --comment "<markdown>" --json
193
+ rudder issue block "<issue-id-or-identifier>" --comment "<markdown>" [--image "<path>"] --json
191
194
  ```
192
195
 
193
196
  - generic patch when workflow commands are not enough:
194
197
 
198
+ 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.
199
+
195
200
  ```bash
196
201
  rudder issue update "<issue-id-or-identifier>" ... --json
197
202
  ```
@@ -251,7 +256,8 @@ Planning rules:
251
256
  - Always communicate before exit on active work, except blocked issues with no new context.
252
257
  - Treat `issue_passive_followup` as close-out governance, not a fresh assignment: inspect current state, then comment, finish, block, or hand off explicitly.
253
258
  - Treat `issue_review_closeout_missing` as review close-out governance: inspect
254
- current state, then record one structured review decision.
259
+ current state, including blocked handoffs, then record one structured review
260
+ decision.
255
261
  - A reviewer does not take over implementation unless explicitly asked.
256
262
  - A reviewer request for changes must use `rudder issue review --decision
257
263
  request_changes`, not only a reject comment.
@@ -20,13 +20,13 @@ Stable CLI contract for agents using the bundled `rudder` skill. Prefer these co
20
20
  | `rudder issue get <issue>` | Read a full issue by UUID or identifier. | no | no | no | no |
21
21
  | `rudder issue context <issue>` | Read the compact heartbeat context for an issue. | no | no | no | no |
22
22
  | `rudder issue checkout <issue>` | Atomically checkout an issue for the current or specified agent. | yes | no | required | attached when available |
23
- | `rudder issue comment <issue> --body <text>` | Add a comment to an issue. | yes | no | no | attached when available |
23
+ | `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 |
24
24
  | `rudder issue comments list <issue>` | List issue comments, optionally only newer comments after a cursor. | no | no | no | no |
25
25
  | `rudder issue comments get <issue> <comment-id>` | Read one issue comment by id. | no | no | no | no |
26
- | `rudder issue update <issue> ...` | Apply generic issue updates when workflow commands are not enough. | yes | no | no | attached when available |
26
+ | `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 |
27
27
  | `rudder issue review <issue> --decision <decision> --comment <text>` | Record a structured reviewer decision with a required comment. | yes | no | no | attached when available |
28
- | `rudder issue done <issue> --comment <text>` | Mark an issue done with a required completion comment. | yes | no | no | attached when available |
29
- | `rudder issue block <issue> --comment <text>` | Mark an issue blocked with a required blocker comment. | yes | no | no | attached when available |
28
+ | `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 |
29
+ | `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 |
30
30
  | `rudder issue release <issue>` | Release an issue back to todo and clear ownership. | yes | no | no | attached when available |
31
31
  | `rudder issue documents list <issue>` | List issue documents. | no | no | no | no |
32
32
  | `rudder issue documents get <issue> <key>` | Read one issue document by key. | no | no | no | no |
@@ -46,21 +46,25 @@ Stable CLI contract for agents using the bundled `rudder` skill. Prefer these co
46
46
 
47
47
  Before a successful `todo` or `in_progress` issue run exits, leave one close-out signal with the command that matches the outcome:
48
48
 
49
- - progress remains: `rudder issue comment <issue> --body <text>`
50
- - work is complete: `rudder issue done <issue> --comment <text>`
51
- - work is blocked: `rudder issue block <issue> --comment <text>`
49
+ - progress remains: `rudder issue comment <issue> --body <text> [--image <path>]`
50
+ - work is complete: `rudder issue done <issue> --comment <text> [--image <path>]`
51
+ - work is blocked: `rudder issue block <issue> --comment <text> [--image <path>]`
52
52
  - ownership changes: add an explicit handoff comment before or with the assignee update
53
53
 
54
+ 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`.
55
+
56
+ `--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.
57
+
54
58
  If `RUDDER_WAKE_REASON=issue_passive_followup`, the run is close-out governance for the same issue. Inspect current issue state first, then leave a progress comment, completion, blocker, or explicit handoff.
55
59
 
56
60
  ## Reviewer Close-Out Signals
57
61
 
58
- When the inbox row or wake context says `relationship: "reviewer"`, `role: "reviewer"`, or `wakeSource: "review"`, finish the review with one structured reviewer decision:
62
+ 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.
59
63
 
60
64
  - approve: `rudder issue review <issue> --decision approve --comment <text>`
61
65
  - request changes: `rudder issue review <issue> --decision request_changes --comment <text>`
62
66
  - needs follow-up: `rudder issue review <issue> --decision needs_followup --comment <text>`
63
- - blocked: `rudder issue review <issue> --decision blocked --comment <text>`
67
+ - blocked or blocker confirmed: `rudder issue review <issue> --decision blocked --comment <text>`
64
68
 
65
69
  Do not rely on a free-form reject or accept comment as the review outcome. The structured decision is the durable close-out signal.
66
70
 
@@ -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-D5cgIII0.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-QDXoS4fc.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-BR--bNSq.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-BqmnwNzE.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-QDXoS4fc.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-BqmnwNzE.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-QDXoS4fc.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-BqmnwNzE.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};