@rudderhq/server 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/dist/agent-runtimes/http/execute.d.ts.map +1 -1
  2. package/dist/agent-runtimes/http/execute.js +56 -1
  3. package/dist/agent-runtimes/http/execute.js.map +1 -1
  4. package/dist/agent-runtimes/http/index.d.ts.map +1 -1
  5. package/dist/agent-runtimes/http/index.js +10 -0
  6. package/dist/agent-runtimes/http/index.js.map +1 -1
  7. package/dist/agent-runtimes/process/execute.d.ts.map +1 -1
  8. package/dist/agent-runtimes/process/execute.js +9 -1
  9. package/dist/agent-runtimes/process/execute.js.map +1 -1
  10. package/dist/agent-runtimes/process/index.d.ts.map +1 -1
  11. package/dist/agent-runtimes/process/index.js +7 -0
  12. package/dist/agent-runtimes/process/index.js.map +1 -1
  13. package/dist/agent-runtimes/registry.d.ts.map +1 -1
  14. package/dist/agent-runtimes/registry.js +21 -1
  15. package/dist/agent-runtimes/registry.js.map +1 -1
  16. package/dist/agent-runtimes/utils.d.ts +1 -0
  17. package/dist/agent-runtimes/utils.d.ts.map +1 -1
  18. package/dist/agent-runtimes/utils.js.map +1 -1
  19. package/dist/bundled-plugins/plugin-linear/dist/worker.js +183 -10
  20. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +3 -3
  21. package/dist/home-paths.d.ts +7 -0
  22. package/dist/home-paths.d.ts.map +1 -1
  23. package/dist/home-paths.js +46 -2
  24. package/dist/home-paths.js.map +1 -1
  25. package/dist/index.js +23 -4
  26. package/dist/index.js.map +1 -1
  27. package/dist/routes/access.d.ts.map +1 -1
  28. package/dist/routes/access.helpers.d.ts +1 -1
  29. package/dist/routes/access.helpers.d.ts.map +1 -1
  30. package/dist/routes/access.helpers.js +0 -3
  31. package/dist/routes/access.helpers.js.map +1 -1
  32. package/dist/routes/access.js +0 -4
  33. package/dist/routes/access.js.map +1 -1
  34. package/dist/routes/agents.js +2 -2
  35. package/dist/routes/agents.js.map +1 -1
  36. package/dist/routes/chats.d.ts.map +1 -1
  37. package/dist/routes/chats.generated-attachments.d.ts +16 -0
  38. package/dist/routes/chats.generated-attachments.d.ts.map +1 -0
  39. package/dist/routes/chats.generated-attachments.js +157 -0
  40. package/dist/routes/chats.generated-attachments.js.map +1 -0
  41. package/dist/routes/chats.helpers.d.ts +27 -0
  42. package/dist/routes/chats.helpers.d.ts.map +1 -0
  43. package/dist/routes/chats.helpers.js +52 -0
  44. package/dist/routes/chats.helpers.js.map +1 -0
  45. package/dist/routes/chats.js +126 -188
  46. package/dist/routes/chats.js.map +1 -1
  47. package/dist/routes/chats.stream-routes.d.ts.map +1 -1
  48. package/dist/routes/chats.stream-routes.js +185 -16
  49. package/dist/routes/chats.stream-routes.js.map +1 -1
  50. package/dist/routes/llms.js +3 -3
  51. package/dist/routes/llms.js.map +1 -1
  52. package/dist/routes/messenger.d.ts.map +1 -1
  53. package/dist/routes/messenger.js +48 -6
  54. package/dist/routes/messenger.js.map +1 -1
  55. package/dist/services/activity.d.ts.map +1 -1
  56. package/dist/services/activity.js +7 -2
  57. package/dist/services/activity.js.map +1 -1
  58. package/dist/services/agents.d.ts +65 -65
  59. package/dist/services/agents.d.ts.map +1 -1
  60. package/dist/services/agents.js +5 -4
  61. package/dist/services/agents.js.map +1 -1
  62. package/dist/services/approvals.d.ts +1 -1
  63. package/dist/services/assets.d.ts +2 -2
  64. package/dist/services/automation-chat-output.d.ts +1 -1
  65. package/dist/services/automation-chat-output.d.ts.map +1 -1
  66. package/dist/services/automation-chat-output.js +38 -23
  67. package/dist/services/automation-chat-output.js.map +1 -1
  68. package/dist/services/automations.d.ts.map +1 -1
  69. package/dist/services/automations.js +39 -41
  70. package/dist/services/automations.js.map +1 -1
  71. package/dist/services/budgets.d.ts +1 -1
  72. package/dist/services/chat-assistant.d.ts +23 -1
  73. package/dist/services/chat-assistant.d.ts.map +1 -1
  74. package/dist/services/chat-assistant.helpers.d.ts +21 -0
  75. package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
  76. package/dist/services/chat-assistant.helpers.js +29 -10
  77. package/dist/services/chat-assistant.helpers.js.map +1 -1
  78. package/dist/services/chat-assistant.inline-visuals.d.ts +23 -0
  79. package/dist/services/chat-assistant.inline-visuals.d.ts.map +1 -0
  80. package/dist/services/chat-assistant.inline-visuals.js +129 -0
  81. package/dist/services/chat-assistant.inline-visuals.js.map +1 -0
  82. package/dist/services/chat-assistant.inline-visuals.test.js +85 -1
  83. package/dist/services/chat-assistant.inline-visuals.test.js.map +1 -1
  84. package/dist/services/chat-assistant.js +262 -38
  85. package/dist/services/chat-assistant.js.map +1 -1
  86. package/dist/services/chat-family-groups.d.ts +14 -0
  87. package/dist/services/chat-family-groups.d.ts.map +1 -0
  88. package/dist/services/chat-family-groups.js +96 -0
  89. package/dist/services/chat-family-groups.js.map +1 -0
  90. package/dist/services/chat-generation-protocol.d.ts +17 -31
  91. package/dist/services/chat-generation-protocol.d.ts.map +1 -1
  92. package/dist/services/chat-generation-protocol.helpers.d.ts +36 -0
  93. package/dist/services/chat-generation-protocol.helpers.d.ts.map +1 -0
  94. package/dist/services/chat-generation-protocol.helpers.js +53 -0
  95. package/dist/services/chat-generation-protocol.helpers.js.map +1 -0
  96. package/dist/services/chat-generation-protocol.js +86 -55
  97. package/dist/services/chat-generation-protocol.js.map +1 -1
  98. package/dist/services/chat-generation-protocol.test.js +31 -3
  99. package/dist/services/chat-generation-protocol.test.js.map +1 -1
  100. package/dist/services/chat-steer-messages.d.ts +117 -0
  101. package/dist/services/chat-steer-messages.d.ts.map +1 -0
  102. package/dist/services/chat-steer-messages.js +410 -0
  103. package/dist/services/chat-steer-messages.js.map +1 -0
  104. package/dist/services/chat-title-generation.d.ts +1 -0
  105. package/dist/services/chat-title-generation.d.ts.map +1 -1
  106. package/dist/services/chat-title-generation.js +12 -9
  107. package/dist/services/chat-title-generation.js.map +1 -1
  108. package/dist/services/chat-work-manifest.d.ts.map +1 -1
  109. package/dist/services/chat-work-manifest.js +39 -2
  110. package/dist/services/chat-work-manifest.js.map +1 -1
  111. package/dist/services/chats.constants.d.ts +5 -0
  112. package/dist/services/chats.constants.d.ts.map +1 -0
  113. package/dist/services/chats.constants.js +13 -0
  114. package/dist/services/chats.constants.js.map +1 -0
  115. package/dist/services/chats.create.d.ts +75 -0
  116. package/dist/services/chats.create.d.ts.map +1 -0
  117. package/dist/services/chats.create.js +159 -0
  118. package/dist/services/chats.create.js.map +1 -0
  119. package/dist/services/chats.d.ts +85 -76
  120. package/dist/services/chats.d.ts.map +1 -1
  121. package/dist/services/chats.fork-helpers.d.ts +8 -0
  122. package/dist/services/chats.fork-helpers.d.ts.map +1 -0
  123. package/dist/services/chats.fork-helpers.js +45 -0
  124. package/dist/services/chats.fork-helpers.js.map +1 -0
  125. package/dist/services/chats.inline-visual-persistence.d.ts +30 -0
  126. package/dist/services/chats.inline-visual-persistence.d.ts.map +1 -0
  127. package/dist/services/chats.inline-visual-persistence.js +209 -0
  128. package/dist/services/chats.inline-visual-persistence.js.map +1 -0
  129. package/dist/services/chats.js +288 -273
  130. package/dist/services/chats.js.map +1 -1
  131. package/dist/services/chats.types.d.ts +31 -0
  132. package/dist/services/chats.types.d.ts.map +1 -0
  133. package/dist/services/chats.types.js +2 -0
  134. package/dist/services/chats.types.js.map +1 -0
  135. package/dist/services/integrations/feishu/inbound-dispatcher-db.d.ts.map +1 -1
  136. package/dist/services/integrations/feishu/inbound-dispatcher-db.js +81 -53
  137. package/dist/services/integrations/feishu/inbound-dispatcher-db.js.map +1 -1
  138. package/dist/services/integrations/feishu/inbound-dispatcher.d.ts +1 -0
  139. package/dist/services/integrations/feishu/inbound-dispatcher.d.ts.map +1 -1
  140. package/dist/services/integrations/feishu/inbound-dispatcher.js.map +1 -1
  141. package/dist/services/issues.comments-attachments.d.ts.map +1 -1
  142. package/dist/services/issues.comments-attachments.js +11 -2
  143. package/dist/services/issues.comments-attachments.js.map +1 -1
  144. package/dist/services/issues.d.ts.map +1 -1
  145. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
  146. package/dist/services/knowledge-portability/organization-skills.catalog.js +7 -1
  147. package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
  148. package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
  149. package/dist/services/knowledge-portability/organization-skills.js +13 -1
  150. package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
  151. package/dist/services/messenger-run-origin.d.ts +18 -0
  152. package/dist/services/messenger-run-origin.d.ts.map +1 -0
  153. package/dist/services/messenger-run-origin.js +248 -0
  154. package/dist/services/messenger-run-origin.js.map +1 -0
  155. package/dist/services/messenger-run-summary.d.ts +4 -0
  156. package/dist/services/messenger-run-summary.d.ts.map +1 -0
  157. package/dist/services/messenger-run-summary.js +6 -0
  158. package/dist/services/messenger-run-summary.js.map +1 -0
  159. package/dist/services/messenger-saved-views.d.ts +133 -0
  160. package/dist/services/messenger-saved-views.d.ts.map +1 -0
  161. package/dist/services/messenger-saved-views.js +275 -0
  162. package/dist/services/messenger-saved-views.js.map +1 -0
  163. package/dist/services/messenger.d.ts +17 -3
  164. package/dist/services/messenger.d.ts.map +1 -1
  165. package/dist/services/messenger.js +276 -56
  166. package/dist/services/messenger.js.map +1 -1
  167. package/dist/services/operator-event-visibility.d.ts +3 -0
  168. package/dist/services/operator-event-visibility.d.ts.map +1 -0
  169. package/dist/services/operator-event-visibility.js +5 -0
  170. package/dist/services/operator-event-visibility.js.map +1 -0
  171. package/dist/services/orgs.d.ts +5 -5
  172. package/dist/services/plugin-registry.d.ts +4 -4
  173. package/dist/services/projects.d.ts +2 -2
  174. package/dist/services/run-intelligence.d.ts.map +1 -1
  175. package/dist/services/run-intelligence.js +7 -3
  176. package/dist/services/run-intelligence.js.map +1 -1
  177. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
  178. package/dist/services/runtime-kernel/heartbeat.core.js +9 -8
  179. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
  180. package/dist/services/runtime-kernel/heartbeat.d.ts +2 -2
  181. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  182. package/dist/services/runtime-kernel/heartbeat.js +3 -2
  183. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  184. package/dist/services/runtime-kernel/heartbeat.misc.js +1 -1
  185. package/dist/services/runtime-kernel/heartbeat.misc.js.map +1 -1
  186. package/dist/services/runtime-kernel/heartbeat.recovery.js +1 -1
  187. package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
  188. package/dist/services/side-chats.d.ts +1 -46
  189. package/dist/services/side-chats.d.ts.map +1 -1
  190. package/dist/services/side-chats.js +58 -65
  191. package/dist/services/side-chats.js.map +1 -1
  192. package/dist/services/title-generation.d.ts +3 -0
  193. package/dist/services/title-generation.d.ts.map +1 -1
  194. package/dist/services/title-generation.js +178 -6
  195. package/dist/services/title-generation.js.map +1 -1
  196. package/dist/services/workspace-backups.d.ts +19 -8
  197. package/dist/services/workspace-backups.d.ts.map +1 -1
  198. package/dist/services/workspace-backups.js +335 -127
  199. package/dist/services/workspace-backups.js.map +1 -1
  200. package/package.json +14 -13
  201. package/resources/bundled-skills/browser/references/tool-contract.md +2 -2
  202. package/resources/bundled-skills/rudder-docs/SKILL.md +20 -4
  203. package/resources/bundled-skills/rudder-docs/evals/retrieval-authority-evals.json +262 -0
  204. package/resources/bundled-skills/rudder-docs/evals/trigger-evals.json +11 -11
  205. package/resources/bundled-skills/rudder-docs/references/agent-creation.md +153 -0
  206. package/resources/bundled-skills/rudder-docs/references/api-reference.md +9 -2
  207. package/resources/bundled-skills/rudder-docs/references/cli-reference.md +12 -12
  208. package/{skills/rudder-docs/references/control-plane-practices.md → resources/bundled-skills/rudder-docs/references/operating-practices.md} +4 -4
  209. package/resources/bundled-skills/rudder-docs/references/organization-skills.md +3 -3
  210. package/resources/bundled-skills/rudder-docs/references/plugin-authoring.md +116 -0
  211. package/resources/bundled-skills/rudder-docs/references/source-map.md +26 -2
  212. package/resources/bundled-skills/visualize/SKILL.md +29 -27
  213. package/resources/bundled-skills/visualize/references/runtime-contract.md +18 -8
  214. package/skills/browser/references/tool-contract.md +2 -2
  215. package/skills/rudder-docs/SKILL.md +20 -4
  216. package/skills/rudder-docs/evals/retrieval-authority-evals.json +262 -0
  217. package/skills/rudder-docs/evals/trigger-evals.json +11 -11
  218. package/skills/rudder-docs/references/agent-creation.md +153 -0
  219. package/skills/rudder-docs/references/api-reference.md +9 -2
  220. package/skills/rudder-docs/references/cli-reference.md +12 -12
  221. package/{resources/bundled-skills/rudder-docs/references/control-plane-practices.md → skills/rudder-docs/references/operating-practices.md} +4 -4
  222. package/skills/rudder-docs/references/organization-skills.md +3 -3
  223. package/skills/rudder-docs/references/plugin-authoring.md +116 -0
  224. package/skills/rudder-docs/references/source-map.md +26 -2
  225. package/skills/visualize/SKILL.md +29 -27
  226. package/skills/visualize/references/runtime-contract.md +18 -8
  227. package/ui-dist/assets/{abnfDiagram-VRR7QNED-Dpnx79fp.js → abnfDiagram-VRR7QNED-CAAPm9Nj.js} +1 -1
  228. package/ui-dist/assets/{arc-Cpvh_rCf.js → arc-DOFoNr3M.js} +1 -1
  229. package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-sDD_mBAI.js → architectureDiagram-ZJ3FMSHR-DRg6yhG8.js} +1 -1
  230. package/ui-dist/assets/{blockDiagram-677ZJIJ3-4O4wWti1.js → blockDiagram-677ZJIJ3-e3ShzsXT.js} +1 -1
  231. package/ui-dist/assets/{c4Diagram-LMCZKHZV-BkGODE4P.js → c4Diagram-LMCZKHZV-Csd_18O2.js} +1 -1
  232. package/ui-dist/assets/channel-BFLsBJOK.js +1 -0
  233. package/ui-dist/assets/{chunk-2Q5K7J3B-DsDQQpID.js → chunk-2Q5K7J3B-eF77FV1C.js} +1 -1
  234. package/ui-dist/assets/{chunk-32BRIVSS-Bzx_VnIw.js → chunk-32BRIVSS-CpMx72B5.js} +1 -1
  235. package/ui-dist/assets/{chunk-5VM5RSS4-D4LoPCni.js → chunk-5VM5RSS4-Be6WylCu.js} +1 -1
  236. package/ui-dist/assets/{chunk-EX3LRPZG-BO0R-mS4.js → chunk-EX3LRPZG-D-A_TfL-.js} +1 -1
  237. package/ui-dist/assets/{chunk-JWPE2WC7-B4Nr8KRL.js → chunk-JWPE2WC7-CdBLDqvo.js} +1 -1
  238. package/ui-dist/assets/{chunk-MOJQB5TN--uaDDrYM.js → chunk-MOJQB5TN-DkLjRENV.js} +1 -1
  239. package/ui-dist/assets/{chunk-RYQCIY6F-CyBY2w_j.js → chunk-RYQCIY6F-57VqTsE9.js} +1 -1
  240. package/ui-dist/assets/{chunk-V7JOEXUC-BMid_x8S.js → chunk-V7JOEXUC-DI_m8pt6.js} +1 -1
  241. package/ui-dist/assets/{chunk-VR4S4FIN-DVqdPKuG.js → chunk-VR4S4FIN-CM_944j4.js} +1 -1
  242. package/ui-dist/assets/{chunk-XXDRQBXY-vy03lLSS.js → chunk-XXDRQBXY--WTAlt82.js} +1 -1
  243. package/ui-dist/assets/classDiagram-OUVF2IWQ-Dah6C4Dl.js +1 -0
  244. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-Dah6C4Dl.js +1 -0
  245. package/ui-dist/assets/{cose-bilkent-JH36ORCC-jQDZmrG3.js → cose-bilkent-JH36ORCC-CR0qu31s.js} +1 -1
  246. package/ui-dist/assets/{cynefin-VYW2F7L2-BxBj6aea.js → cynefin-VYW2F7L2-f41lF5RD.js} +1 -1
  247. package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-BuUubF5I.js → cynefinDiagram-TSTJHNR4-88wJ2LA8.js} +1 -1
  248. package/ui-dist/assets/{dagre-VKFMJZFB-B8HipJ3a.js → dagre-VKFMJZFB-B1yJCIRh.js} +1 -1
  249. package/ui-dist/assets/{diagram-FQU43EPY-r7gkbKSt.js → diagram-FQU43EPY-C0iYYFUe.js} +1 -1
  250. package/ui-dist/assets/{diagram-G47NLZAW-CxClRsxD.js → diagram-G47NLZAW-Cp6S0siK.js} +1 -1
  251. package/ui-dist/assets/{diagram-NH7WQ7WH-C8HYTLlq.js → diagram-NH7WQ7WH-CmZb5OSk.js} +1 -1
  252. package/ui-dist/assets/{diagram-OA4YK3LP-CjwqqLKz.js → diagram-OA4YK3LP-9rFYGY7H.js} +1 -1
  253. package/ui-dist/assets/{diagram-WEI45ONY-2IWfCqZb.js → diagram-WEI45ONY-Og8vyDQh.js} +1 -1
  254. package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-DVGZkgjy.js → ebnfDiagram-CCIWWBDH--5sMape2.js} +1 -1
  255. package/ui-dist/assets/{erDiagram-Q63AITRT-C_-u3Gmw.js → erDiagram-Q63AITRT-DG10Bza-.js} +1 -1
  256. package/ui-dist/assets/{flowDiagram-23GEKE2U-BvGg0NCq.js → flowDiagram-23GEKE2U-BW-aZfEk.js} +1 -1
  257. package/ui-dist/assets/{ganttDiagram-NO4QXBWP-U3CZUUUR.js → ganttDiagram-NO4QXBWP-DcA7on8t.js} +1 -1
  258. package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-CIWuEBIo.js → gitGraphDiagram-IHSO6WYX-ygGufg32.js} +1 -1
  259. package/ui-dist/assets/{graph-D3P5q-7m.js → graph-BXl6uBoM.js} +1 -1
  260. package/ui-dist/assets/{index-DOPIV8vd.js → index-9bXlV2sq.js} +1 -1
  261. package/ui-dist/assets/{index-CjztBLJi.js → index-B58ems-F.js} +1 -1
  262. package/ui-dist/assets/{index-mnl55Stn.js → index-BM-SJNCx.js} +1 -1
  263. package/ui-dist/assets/index-BcdA9dZc.css +1 -0
  264. package/ui-dist/assets/{index-BAgtKYR1.js → index-BmTNDbzy.js} +1 -1
  265. package/ui-dist/assets/{index-DidCCw78.js → index-CCDynlok.js} +1 -1
  266. package/ui-dist/assets/{index-CbHqnWUe.js → index-CRLl2Ck7.js} +1 -1
  267. package/ui-dist/assets/{index-D7ycf1qU.js → index-CqmU1PxY.js} +1 -1
  268. package/ui-dist/assets/{index-B1rLBtZ1.js → index-CssgLJwf.js} +605 -493
  269. package/ui-dist/assets/{index-DRxLJD40.js → index-DOVMMhyj.js} +1 -1
  270. package/ui-dist/assets/{index-Ds_qma4-.js → index-DTlR8bJV.js} +1 -1
  271. package/ui-dist/assets/{index-DCFf9dps.js → index-Dl6nXXNc.js} +1 -1
  272. package/ui-dist/assets/{index-DAYlwxsg.js → index-DoiNhQrY.js} +1 -1
  273. package/ui-dist/assets/{index-CBOr9F6w.js → index-Dug5GX1J.js} +1 -1
  274. package/ui-dist/assets/{index-HkQRx1D6.js → index-DxXOCTVe.js} +1 -1
  275. package/ui-dist/assets/{index-BAMXpiI5.js → index-GdN-7KLt.js} +1 -1
  276. package/ui-dist/assets/{index-ikpL--zj.js → index-ZA8lPH2n.js} +1 -1
  277. package/ui-dist/assets/{index-Cu1iMhjl.js → index-fkDP349f.js} +1 -1
  278. package/ui-dist/assets/{index-DYMtCDKT.js → index-uKIvv9n9.js} +1 -1
  279. package/ui-dist/assets/{infoDiagram-FWYZ7A6U-Cx8Fa-I4.js → infoDiagram-FWYZ7A6U-27INMkBm.js} +1 -1
  280. package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-Cmuz1QUN.js → ishikawaDiagram-FXEZZL3T-Bp6XQ1_r.js} +1 -1
  281. package/ui-dist/assets/{journeyDiagram-5HDEW3XC-CJgkiVXG.js → journeyDiagram-5HDEW3XC-9vaIwdZ3.js} +1 -1
  282. package/ui-dist/assets/{kanban-definition-HUTT4EX6-RAWpefOB.js → kanban-definition-HUTT4EX6-DjsMaR6l.js} +1 -1
  283. package/ui-dist/assets/{layout-DyWQv0Rr.js → layout-C0oWcIiC.js} +1 -1
  284. package/ui-dist/assets/{linear-D5pdgIf9.js → linear-DNbmenmQ.js} +1 -1
  285. package/ui-dist/assets/{map-bVSzNLl2.js → map-B1s9kpcR.js} +1 -1
  286. package/ui-dist/assets/{mermaid.core-CeaXGD6B.js → mermaid.core-DsYT9DxL.js} +4 -4
  287. package/ui-dist/assets/{mindmap-definition-LN4V7U3C-B8B8AX5C.js → mindmap-definition-LN4V7U3C-vVHeRI83.js} +1 -1
  288. package/ui-dist/assets/{pegDiagram-2B236MQR-C4Sv-ua6.js → pegDiagram-2B236MQR-ohrgWLo_.js} +1 -1
  289. package/ui-dist/assets/{pieDiagram-ENE6RG2P-CLARlOHx.js → pieDiagram-ENE6RG2P-B0EqPrjn.js} +1 -1
  290. package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-DPCXQmeT.js → quadrantDiagram-ABIIQ3AL-D44iYm0o.js} +1 -1
  291. package/ui-dist/assets/{railroadDiagram-RFXS5EU6-BpqRuKUQ.js → railroadDiagram-RFXS5EU6-BQU5bpbU.js} +1 -1
  292. package/ui-dist/assets/{requirementDiagram-TGXJPOKE-Dd-h62HZ.js → requirementDiagram-TGXJPOKE-DGJciRxB.js} +1 -1
  293. package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-DylT_pqq.js → sankeyDiagram-HTMAVEWB-NMXZW_Qb.js} +1 -1
  294. package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-RiCF1REj.js → sequenceDiagram-DBY2YBRQ-8uWY67Bb.js} +1 -1
  295. package/ui-dist/assets/{sizeCapture-X5ZJPWSS-DXW4JQz2.js → sizeCapture-X5ZJPWSS-BnUUR-On.js} +1 -1
  296. package/ui-dist/assets/{stateDiagram-2N3HPSRC-6U3ESIGT.js → stateDiagram-2N3HPSRC-B37bcKMy.js} +1 -1
  297. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-p6H0vL7N.js +1 -0
  298. package/ui-dist/assets/{swimlanes-5IMT3BWC-CeNHVNCi.js → swimlanes-5IMT3BWC-Bi2ZzUMi.js} +2 -2
  299. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-BX6FiLF9.js +8 -0
  300. package/ui-dist/assets/{timeline-definition-FHXFAJF6-Vlwoe_1b.js → timeline-definition-FHXFAJF6-CkWauU5D.js} +1 -1
  301. package/ui-dist/assets/{vennDiagram-L72KCM5P-DBP7D3HE.js → vennDiagram-L72KCM5P-BrmBXmnk.js} +1 -1
  302. package/ui-dist/assets/{wardleyDiagram-EHGQE667-DG-wzqpy.js → wardleyDiagram-EHGQE667-kO5cojc6.js} +1 -1
  303. package/ui-dist/assets/{xychartDiagram-FW5EYKEG-BAq3mbha.js → xychartDiagram-FW5EYKEG-CUBDaCDm.js} +1 -1
  304. package/ui-dist/index.html +5 -4
  305. package/resources/bundled-skills/rudder-create-agent/SKILL.md +0 -185
  306. package/resources/bundled-skills/rudder-create-agent/references/api-reference.md +0 -179
  307. package/resources/bundled-skills/rudder-create-agent/references/cli-reference.md +0 -132
  308. package/resources/bundled-skills/rudder-create-plugin/SKILL.md +0 -103
  309. package/resources/bundled-skills/skill-optimizer/CHANGELOG.md +0 -29
  310. package/resources/bundled-skills/skill-optimizer/SKILL.md +0 -205
  311. package/resources/bundled-skills/skill-optimizer/references/adapters/creative-brand-content.md +0 -30
  312. package/resources/bundled-skills/skill-optimizer/references/adapters/customer-support-sales.md +0 -30
  313. package/resources/bundled-skills/skill-optimizer/references/adapters/document-data-processing.md +0 -31
  314. package/resources/bundled-skills/skill-optimizer/references/adapters/education-training.md +0 -31
  315. package/resources/bundled-skills/skill-optimizer/references/adapters/finance-accounting.md +0 -31
  316. package/resources/bundled-skills/skill-optimizer/references/adapters/healthcare-operations.md +0 -30
  317. package/resources/bundled-skills/skill-optimizer/references/adapters/hr-people-ops.md +0 -31
  318. package/resources/bundled-skills/skill-optimizer/references/adapters/legal-compliance.md +0 -31
  319. package/resources/bundled-skills/skill-optimizer/references/adapters/operations-supply-chain.md +0 -31
  320. package/resources/bundled-skills/skill-optimizer/references/adapters/personal-productivity.md +0 -29
  321. package/resources/bundled-skills/skill-optimizer/references/adapters/research-knowledge.md +0 -31
  322. package/resources/bundled-skills/skill-optimizer/references/adapters/software-ai.md +0 -31
  323. package/resources/bundled-skills/skill-optimizer/references/domain-adapter-patterns.md +0 -66
  324. package/resources/bundled-skills/skill-optimizer/references/eval-method.md +0 -17
  325. package/resources/bundled-skills/skill-optimizer/references/universal-optimization-lens.md +0 -73
  326. package/skills/rudder-create-agent/SKILL.md +0 -185
  327. package/skills/rudder-create-agent/references/api-reference.md +0 -179
  328. package/skills/rudder-create-agent/references/cli-reference.md +0 -132
  329. package/skills/rudder-create-plugin/SKILL.md +0 -103
  330. package/skills/skill-optimizer/CHANGELOG.md +0 -29
  331. package/skills/skill-optimizer/SKILL.md +0 -205
  332. package/skills/skill-optimizer/references/adapters/creative-brand-content.md +0 -30
  333. package/skills/skill-optimizer/references/adapters/customer-support-sales.md +0 -30
  334. package/skills/skill-optimizer/references/adapters/document-data-processing.md +0 -31
  335. package/skills/skill-optimizer/references/adapters/education-training.md +0 -31
  336. package/skills/skill-optimizer/references/adapters/finance-accounting.md +0 -31
  337. package/skills/skill-optimizer/references/adapters/healthcare-operations.md +0 -30
  338. package/skills/skill-optimizer/references/adapters/hr-people-ops.md +0 -31
  339. package/skills/skill-optimizer/references/adapters/legal-compliance.md +0 -31
  340. package/skills/skill-optimizer/references/adapters/operations-supply-chain.md +0 -31
  341. package/skills/skill-optimizer/references/adapters/personal-productivity.md +0 -29
  342. package/skills/skill-optimizer/references/adapters/research-knowledge.md +0 -31
  343. package/skills/skill-optimizer/references/adapters/software-ai.md +0 -31
  344. package/skills/skill-optimizer/references/domain-adapter-patterns.md +0 -66
  345. package/skills/skill-optimizer/references/eval-method.md +0 -17
  346. package/skills/skill-optimizer/references/universal-optimization-lens.md +0 -73
  347. package/ui-dist/assets/channel-CM4Myg_6.js +0 -1
  348. package/ui-dist/assets/classDiagram-OUVF2IWQ-CtlIEzTt.js +0 -1
  349. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-CtlIEzTt.js +0 -1
  350. package/ui-dist/assets/index-DekHKOsL.css +0 -1
  351. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-KQTrcZvp.js +0 -1
  352. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-CcxS1c6r.js +0 -8
@@ -19,14 +19,14 @@ returns a transport or configuration error.
19
19
  ## Operating Policy Owners
20
20
 
21
21
  Keep this file focused on commands and CLI-specific I/O. Consult the exact
22
- control-plane owner for operating behavior:
22
+ operating-practices guide for operating behavior:
23
23
 
24
- - [Interface and Chat/issue scope](control-plane-practices.md#interface-and-scope)
25
- - [Ownership, checkout, and wake scope](control-plane-practices.md#ownership-checkout-and-wake-scope)
26
- - [Comments, mentions, and evidence](control-plane-practices.md#comments-mentions-and-evidence)
27
- - [Review and close-out](control-plane-practices.md#review-and-close-out)
28
- - [Durable Library artifacts](control-plane-practices.md#durable-library-artifacts)
29
- - [Git identity and attribution](control-plane-practices.md#git-identity-and-attribution)
24
+ - [Interface and Chat/issue scope](operating-practices.md#interface-and-scope)
25
+ - [Ownership, checkout, and wake scope](operating-practices.md#ownership-checkout-and-wake-scope)
26
+ - [Comments, mentions, and evidence](operating-practices.md#comments-mentions-and-evidence)
27
+ - [Review and close-out](operating-practices.md#review-and-close-out)
28
+ - [Durable Library artifacts](operating-practices.md#durable-library-artifacts)
29
+ - [Git identity and attribution](operating-practices.md#git-identity-and-attribution)
30
30
 
31
31
  ## Defaults
32
32
 
@@ -48,7 +48,7 @@ control-plane owner for operating behavior:
48
48
  | `rudder_agent_me` | `rudder agent me` | Show the authenticated agent identity, budget, and chain of command. | no | no | no | no |
49
49
  | `rudder_agent_inbox` | `rudder agent inbox` | List the compact assignee and reviewer work inbox for the authenticated agent. | no | no | no | no |
50
50
  | `rudder_agent_capabilities` | `rudder agent capabilities` | List the stable Rudder agent command contract. | no | no | no | no |
51
- | `rudder_agent_update` | `rudder agent update [agent-id] [--title <title>] [--description <text>]` | Update an agent's control-plane identity fields; defaults to the authenticated agent. | yes | no | no | attached when available |
51
+ | `rudder_agent_update` | `rudder agent update [agent-id] [--title <title>] [--description <text>]` | Update an agent's identity fields; defaults to the authenticated agent. | yes | no | no | attached when available |
52
52
  | `rudder_agent_skills_create` | `rudder agent skills create [agent-id] --name <name> [--enable]` | Create an agent-private skill package under AGENT_HOME/skills. | yes | no | no | attached when available |
53
53
  | `rudder_agent_skills_enable` | `rudder agent skills enable <agent-id> <selection-ref...>` | Add skill selections to an agent without replacing existing enabled skills. | yes | no | no | attached when available |
54
54
  | `rudder_agent_skills_sync` | `rudder agent skills sync <agent-id>` | Sync the desired enabled skill set for an agent. | yes | no | no | attached when available |
@@ -110,7 +110,7 @@ control-plane owner for operating behavior:
110
110
  | `rudder_chat_messages` | `rudder chat messages <chat-id> [--limit <n>] [--cursor <cursor>] [--include-transcript]` | Read bounded chat messages with page cursors; transcript output is omitted unless requested. | no | no | no | no |
111
111
  | `rudder_chat_transcript` | `rudder chat transcript <chat-id> [--limit <n>] [--cursor <cursor>] [--max-output-chars <n>]` | Read paginated chat messages with assistant transcript entries clipped in human output. | no | no | no | no |
112
112
  | `rudder_chat_read` | `rudder chat read <chat-id> [--turn-limit <n>] [--cursor <cursor>] [--include-output]` | Read a bounded recent-message snapshot for one chat with page cursors. | no | no | no | no |
113
- | `rudder_chat_create` | `rudder chat create --org-id <id>` | Create a chat conversation. | yes | required | no | attached when available |
113
+ | `rudder_chat_create` | `rudder chat create --org-id <id> --body <text>` | Create a chat conversation with its first message. | yes | required | no | attached when available |
114
114
  | `rudder_chat_send` | `rudder chat send <chat-id> --body <text>` | Send an agent-authored message directly to the operator in a chat. | yes | no | required | attached when available |
115
115
  | `rudder_chat_archive` | `rudder chat archive <chat-id>` | Archive a chat conversation without deleting it. | yes | no | no | attached when available |
116
116
  | `rudder_runs_list` | `rudder runs list --org-id <id> [--used-skill <skill>] [--loaded-skill <skill>] [--cursor <cursor>] [--full]` | List lightweight run summaries with stable pagination and filters; use --full only for legacy full-row compatibility. | no | required | no | no |
@@ -125,7 +125,7 @@ control-plane owner for operating behavior:
125
125
 
126
126
  ## Issue Command I/O And Shapes
127
127
 
128
- Operating rules live in [ownership, checkout, and wake scope](control-plane-practices.md#ownership-checkout-and-wake-scope), [comments and evidence](control-plane-practices.md#comments-mentions-and-evidence), and [review and close-out](control-plane-practices.md#review-and-close-out). The CLI close-out shapes are:
128
+ Operating rules live in [ownership, checkout, and wake scope](operating-practices.md#ownership-checkout-and-wake-scope), [comments and evidence](operating-practices.md#comments-mentions-and-evidence), and [review and close-out](operating-practices.md#review-and-close-out). The CLI close-out shapes are:
129
129
 
130
130
  - progress: `rudder issue comment <issue> --body-file <path> [--image <path>]`
131
131
  - done: `rudder issue done <issue> --comment-file <path> [--image <path>]`
@@ -139,7 +139,7 @@ Issue comment responses include `shortRef` when available. `rudder issue comment
139
139
 
140
140
  ## Renderable Library CLI Output
141
141
 
142
- File placement and handoff policy lives in [Durable Library artifacts](control-plane-practices.md#durable-library-artifacts). Request a renderable reference with `rudder library file ref <library-relative-path> --json`.
142
+ File placement and handoff policy lives in [Durable Library artifacts](operating-practices.md#durable-library-artifacts). Request a renderable reference with `rudder library file ref <library-relative-path> --json`.
143
143
 
144
144
  The relevant JSON fields are:
145
145
 
@@ -151,7 +151,7 @@ The `ref` argument is Library-relative, not an absolute filesystem path. CLI fal
151
151
 
152
152
  ## Reviewer Decision Command Shapes
153
153
 
154
- Reviewer policy lives in [Review and close-out](control-plane-practices.md#review-and-close-out). Supported decision command shapes are:
154
+ Reviewer policy lives in [Review and close-out](operating-practices.md#review-and-close-out). Supported decision command shapes are:
155
155
 
156
156
  - `rudder issue review <issue> --decision approve --comment-file <path>`
157
157
  - `rudder issue review <issue> --decision request_changes --comment-file <path>`
@@ -1,4 +1,4 @@
1
- # Rudder Control-Plane Practices
1
+ # Rudder Work Practices
2
2
 
3
3
  Consult this reference only for questions about exact Rudder operating
4
4
  behavior. It is conditional documentation, not a trigger and not an always-run
@@ -22,7 +22,7 @@ workflow. For exact tool and CLI syntax, pair the relevant rule with
22
22
 
23
23
  ## Interface And Scope
24
24
 
25
- - Prefer exposed first-party Rudder typed tools for normal control-plane work.
25
+ - Prefer exposed first-party Rudder typed tools for normal Rudder work.
26
26
  Use the installed `rudder ... --json` CLI as the compatibility fallback when
27
27
  MCP is unavailable or a Rudder tool has a transport or configuration error.
28
28
  - Use `rudder agent capabilities --json` to discover the current capability
@@ -118,8 +118,8 @@ report the status and required follow-up rather than bypassing it.
118
118
  - Never cancel cross-team work. Reassign upward with an explanation, and use
119
119
  `chainOfCommand` for escalation.
120
120
  - Above 80% spend, focus on critical work only and avoid expanding scope.
121
- - Use the canonical `rudder-create-agent` workflow for hiring or agent creation
122
- rather than assembling a raw control-plane payload.
121
+ - Use [Agent creation](agent-creation.md) for the canonical governed hiring
122
+ workflow rather than assembling a raw Rudder API payload.
123
123
 
124
124
  ## Git Identity And Attribution
125
125
 
@@ -4,8 +4,8 @@ Use this reference when a board user or authorized agent asks you to discover, i
4
4
 
5
5
  This is the organization and agent-skill administration reference for the
6
6
  bundled `rudder-docs` package. Use the typed Rudder tool when exposed and the
7
- documented CLI as its compatibility fallback. General control-plane ownership,
8
- authentication, and workspace rules remain in `control-plane-practices.md`.
7
+ documented CLI as its compatibility fallback. General work ownership,
8
+ authentication, and workspace rules remain in `operating-practices.md`.
9
9
 
10
10
  For a skill that belongs only to the running agent, do not use organization import or scan commands. Use:
11
11
 
@@ -180,4 +180,4 @@ the full optional enabled-skill set intentionally.
180
180
  - If a skill reference is missing or ambiguous, Rudder returns `422`.
181
181
  - Prefer linking back to the relevant issue, approval, and agent when commenting about skill changes.
182
182
  - This document only covers library import/inspect/enable/sync.
183
- - Hire and create flows now live on the CLI-first `rudder-create-agent` path.
183
+ - Agent hire and create flows live in [Agent creation](agent-creation.md).
@@ -0,0 +1,116 @@
1
+ # Plugin Authoring
2
+
3
+ Use this workflow for a Rudder Plugin source question or an explicit request to
4
+ scaffold, develop, or verify a Plugin. Reading authoring guidance is read-only.
5
+ Only an explicit user request to scaffold or modify a package authorizes writes,
6
+ and those writes must stay inside the requested repository or target directory.
7
+
8
+ The current fact sources are
9
+ `doc/engineering/PLUGIN_AUTHORING_GUIDE.md` and
10
+ `packages/plugins/sdk/README.md`. Use
11
+ `doc/engineering/PLUGIN_RUNTIME_CONTRACT.md` only to understand the implemented
12
+ runtime boundary, and label future ideas as non-current.
13
+
14
+ ## Section Map
15
+
16
+ - [Confirm scope and package layout](#confirm-scope-and-package-layout)
17
+ - [Scaffold from the current package](#scaffold-from-the-current-package)
18
+ - [Implement within current boundaries](#implement-within-current-boundaries)
19
+ - [Wire a bundled example only when requested](#wire-a-bundled-example-only-when-requested)
20
+ - [Verify the package and host](#verify-the-package-and-host)
21
+
22
+ ## Confirm Scope And Package Layout
23
+
24
+ Before writing, determine whether the Plugin is:
25
+
26
+ - a repository-local example under `packages/plugins/examples/`;
27
+ - another Rudder monorepo package under `packages/plugins/`; or
28
+ - an external npm package in an absolute target directory.
29
+
30
+ Repository-local examples are a development workflow. For deployable Plugins,
31
+ prefer an npm package installed from a public or private npm-compatible
32
+ registry. GitHub installs are not a first-class path today.
33
+
34
+ Treat both Plugin workers and Plugin UI as trusted code. Plugin UI runs as
35
+ same-origin JavaScript and is not sandboxed by manifest capabilities.
36
+ Worker-side host APIs are capability-gated. Keep these boundaries visible when
37
+ reviewing third-party code or selecting capabilities.
38
+
39
+ ## Scaffold From The Current Package
40
+
41
+ Use `create-rudder-plugin` instead of hand-writing boilerplate. In a Rudder
42
+ checkout, first build the scaffold package, then run its generated CLI for the
43
+ requested npm package name and output root. `--output` names the parent
44
+ directory; the CLI appends the package basename, and that destination must not
45
+ already exist. Verify the exact commands in
46
+ the current authoring guide before execution.
47
+
48
+ For a repository-local package, the scaffold uses `workspace:*` for
49
+ `@rudderhq/plugin-sdk`. For an external package, pass `--sdk-path` pointing to
50
+ the checkout's `packages/plugins/sdk`; the scaffold snapshots the SDK/shared
51
+ packages into `.rudder-sdk/` so the Plugin can build and test before an npm
52
+ publication exists.
53
+
54
+ The generated package should include:
55
+
56
+ - `src/manifest.ts`;
57
+ - `src/worker.ts`;
58
+ - `src/ui/index.tsx` when UI is used;
59
+ - `tests/plugin.spec.ts`;
60
+ - `package.json` and current build configuration.
61
+
62
+ Scaffold only under the explicit output root and confirm the derived package
63
+ directory before execution. Do not install the generated Plugin into a running
64
+ Rudder instance unless the user also requested that host mutation.
65
+
66
+ ## Implement Within Current Boundaries
67
+
68
+ Review the manifest, worker, UI, and tests together:
69
+
70
+ - Declare only capabilities used by the worker-side host APIs.
71
+ - Keep tool names Plugin-namespaced; they must not shadow core or other Plugin
72
+ tools.
73
+ - Keep UI self-contained. Rudder does not provide a shared Plugin React
74
+ component kit yet.
75
+ - Do not use `ctx.assets`; it is not supported in the current runtime.
76
+ - Use `routePath` only for a `page` slot. It must be one lowercase slug and may
77
+ not collide with a reserved host route or another installed Plugin page.
78
+ - Use the SDK's declared worker, UI, testing, bundler, and dev-server surfaces
79
+ rather than undocumented application internals.
80
+ - Treat jobs and webhooks as namespaced external execution surfaces and keep
81
+ their capabilities, ownership, logs, and failure evidence explicit.
82
+
83
+ Local development installs must use an absolute filesystem path. The server
84
+ can watch a local-path Plugin and restart its worker after rebuilds, but that
85
+ does not make a repo-local checkout a production deployment artifact.
86
+
87
+ ## Wire A Bundled Example Only When Requested
88
+
89
+ Only if the user explicitly asks for bundled example or discoverable host
90
+ wiring, update the host's bundled-example list and the documentation that
91
+ enumerates in-repo examples. A request to scaffold or develop a Plugin alone
92
+ does not authorize changing `server/src/routes/plugins.ts` or other host
93
+ registration surfaces.
94
+
95
+ If host runtime, SDK, capability validation, static UI serving, or lifecycle
96
+ code changes, follow the repository's Plugin engineering and Product Logic
97
+ rules in addition to the package workflow.
98
+
99
+ ## Verify The Package And Host
100
+
101
+ At minimum, run the generated or existing Plugin package's:
102
+
103
+ - `typecheck`;
104
+ - `test`; and
105
+ - `build`.
106
+
107
+ Use the package scripts or the monorepo's `pnpm --filter <plugin-package>`
108
+ forms. For a new scaffold, execute them in a temporary or explicitly requested
109
+ target and confirm that its worker, manifest, UI bundle, and
110
+ `tests/plugin.spec.ts` compile against the selected SDK layout.
111
+
112
+ When host or SDK code changed, also run the relevant host integration tests,
113
+ repository typecheck, test suite, and build. If the user asked to install the
114
+ Plugin, verify the real host from its absolute local path and surface worker
115
+ health, logs, route behavior, and capability failures. Package creation alone
116
+ is not evidence that a Plugin is installed or active in Rudder.
@@ -25,6 +25,30 @@ two pages. Prefer the user's language when equivalent official pages exist.
25
25
  Public docs own published user guidance; a local `docs/` checkout is useful
26
26
  when the live site is unavailable or the task is editing the public site.
27
27
 
28
+ Use these routes for governance and operational evidence questions:
29
+
30
+ | User topic | English | 简体中文 |
31
+ | --- | --- | --- |
32
+ | Approvals, budgets, cost, and activity | `https://docs.rudderhq.dev/reference/approvals-budgets-activity` | `https://docs.rudderhq.dev/zh/reference/approvals-budgets-activity` |
33
+ | Run evidence and Run detail | `https://docs.rudderhq.dev/concepts/agents` | `https://docs.rudderhq.dev/zh/concepts/agents` |
34
+ | Dashboard summary | `https://docs.rudderhq.dev/concepts/overview` | `https://docs.rudderhq.dev/zh/concepts/overview` |
35
+ | Calendar source and history | `https://docs.rudderhq.dev/concepts/calendar` | `https://docs.rudderhq.dev/zh/concepts/calendar` |
36
+ | Human attention, Inbox, and Messenger | `https://docs.rudderhq.dev/concepts/chat-messenger` | `https://docs.rudderhq.dev/zh/concepts/chat-messenger` |
37
+
38
+ The approvals reference includes stable `#approvals`, `#budgets-and-cost`, and
39
+ `#activity` anchors for narrow retrieval. Legacy public URLs are compatibility
40
+ entries only. Cite the canonical routes in new answers.
41
+
42
+ Other lookup pages are similarly narrow:
43
+
44
+ | User topic | English | 简体中文 |
45
+ | --- | --- | --- |
46
+ | Issue states | `https://docs.rudderhq.dev/reference/issue-statuses` | `https://docs.rudderhq.dev/zh/reference/issue-statuses` |
47
+ | Runtime choices and readiness | `https://docs.rudderhq.dev/reference/runtime-types` | `https://docs.rudderhq.dev/zh/reference/runtime-types` |
48
+ | Workspace and file placement | `https://docs.rudderhq.dev/reference/workspace-boundaries` | `https://docs.rudderhq.dev/zh/reference/workspace-boundaries` |
49
+ | Automation result destinations | `https://docs.rudderhq.dev/reference/automation-output-routing` | `https://docs.rudderhq.dev/zh/reference/automation-output-routing` |
50
+ | Deployment trust, credentials, Browser, and platform behavior | `https://docs.rudderhq.dev/reference/permissions-and-platforms` | `https://docs.rudderhq.dev/zh/reference/permissions-and-platforms` |
51
+
28
52
  ## Product Logic Registry
29
53
 
30
54
  - Entry point: `doc/product/README.md`
@@ -50,7 +74,7 @@ Common domain routes include:
50
74
  - Chat, Messenger, comments, and integrations:
51
75
  `doc/product/domains/collaboration/`
52
76
  - approvals, budgets, costs, and activity:
53
- `doc/product/domains/control-plane/`
77
+ `doc/product/domains/governance-and-visibility/`
54
78
  - reviews, feedback, and learning:
55
79
  `doc/product/domains/review-feedback-learning/`
56
80
  - automations: `doc/product/domains/automations/`
@@ -114,7 +138,7 @@ Within this package:
114
138
 
115
139
  - `cli-reference.md` preserves the typed capability and CLI fallback catalog;
116
140
  - `api-reference.md` preserves internal/debug compatibility endpoints;
117
- - `control-plane-practices.md` preserves conditional operating semantics; and
141
+ - `operating-practices.md` preserves conditional operating semantics; and
118
142
  - `organization-skills.md` preserves organization skill workflows.
119
143
 
120
144
  Use only the relevant section. These references are version-adjacent fallback
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: visualize
3
- description: "Create safe inline visual explanations in Rudder Chat. Use when asked for a chart, plot, diagram, timeline, comparison, static map, simulator, scenario view, or compact visual that materially improves understanding. Prefer Mermaid for static node-and-edge structures; use Rudder's HTML/SVG/CSS artifact path only when thread-scoped output is available. Rudder visuals are declarative and scriptless: convert simulator requests to static scenarios or disclosure-based comparisons and never rely on JavaScript, network access, or external assets."
4
- compatibility: "Rudder Chat inline visual capture. HTML artifacts require a thread-scoped visualization directory exposed by the current runtime."
3
+ description: "Create safe inline visual explanations in Rudder Chat. Use when asked for a chart, plot, diagram, timeline, comparison, static map, simulator, scenario view, or compact visual that materially improves understanding. Prefer Mermaid for static node-and-edge structures; use Rudder's runtime-neutral HTML/SVG/CSS message envelope for custom geometry. Rudder visuals are declarative and scriptless: convert simulator requests to static scenarios or disclosure-based comparisons and never rely on JavaScript, network access, or external assets."
4
+ compatibility: "Rudder Chat v1 inline visual message protocol. Provider-neutral and filesystem-independent; outside Rudder Chat, fall back to Mermaid, Markdown, or prose."
5
5
  ---
6
6
 
7
7
  # Visualize
@@ -16,38 +16,40 @@ access, so design for a useful first render with declarative HTML, SVG, and CSS.
16
16
  a static structure or flow. Do not create an HTML artifact for that case.
17
17
  2. Use an inline visual for charts, timelines, comparisons, spatial layouts,
18
18
  static scenario views, or compact reports that benefit from custom geometry.
19
- 3. Create an HTML artifact only when the current run exposes a writable,
20
- thread-scoped visualization directory ending in
21
- `visualizations/YYYY/MM/DD/<thread-id>`. Use the exact directory from the
22
- runtime's writable roots. Never infer, scan for, or create another thread's
23
- directory.
24
- 4. If that directory is unavailable, fall back to Mermaid, Markdown tables, or
25
- concise prose. Do not emit a directive that Rudder cannot resolve.
26
-
27
- ## File And Directive
28
-
29
- - Choose a concise ASCII lowercase-hyphenated title and write
30
- `<title>.html` inside the current thread-scoped visualization directory.
19
+ 3. Use the v1 message envelope only in Rudder Chat. It is a Rudder protocol,
20
+ independent of Codex, Claude, Gemini, Cursor, OpenCode, Pi, Hermes, process,
21
+ HTTP, or gateway filesystem conventions.
22
+ 4. Outside Rudder Chat, fall back to Mermaid, Markdown tables, or concise prose.
23
+ Do not emit a Rudder envelope on a surface that cannot render it.
24
+
25
+ ## Message Envelope
26
+
31
27
  - Write only an HTML fragment. Do not include a doctype or `html`, `head`, or
32
28
  `body` elements.
33
- - Keep every fragment under 2 MiB and emit at most three visuals in one
34
- assistant message.
29
+ - Keep every fragment at or below 64 KiB UTF-8, all fragments together at or
30
+ below 128 KiB, and the complete visual-bearing final reply at or below
31
+ 256 KiB. Emit at most three visuals in one assistant message.
35
32
  - Give the fragment one top-level markup root, `<div id="widget">`. Bounded
36
33
  `<style>` blocks may precede that root.
37
34
  - Put any custom CSS in bounded `<style>` elements. Inline `style` attributes
38
35
  are removed.
39
- - Read the file back before replying. Fix escaped markup such as literal `\"`
36
+ - Check the fragment before replying. Fix escaped markup such as literal `\"`
40
37
  or `\n`, missing labels, clipped content, and malformed SVG.
41
- - Add this exact directive on its own line where the visual should render:
38
+ - Put this exact opening marker on its own line where the visual should render,
39
+ then the fragment, then the exact closing marker on its own line:
42
40
 
43
41
  ```text
44
- ::codex-inline-vis{file="<title>.html"}
42
+ :::rudder-inline-visual:v1
43
+ <style>#widget .series { color: var(--viz-series-1); }</style>
44
+ <div id="widget">...</div>
45
+ :::rudder-inline-visual:end
45
46
  ```
46
47
 
47
- Use only the `file` attribute. The value must be a basename ending in `.html`;
48
- paths, separators, traversal, extra attributes, and alternate quoting are
49
- rejected. Keep any necessary explanation outside the fragment and do not add a
50
- second Markdown link to the file.
48
+ The markers must have no indentation, attributes, or trailing text. Keep any
49
+ necessary explanation outside the envelope. Never emit
50
+ `::codex-inline-vis{...}`, `::rudder-inline-vis{...}`, a file path, an iframe,
51
+ or a second link to source HTML; Rudder owns capture, trusted placement,
52
+ persistence, sandboxing, and rendering.
51
53
 
52
54
  ## Rudder Safety Boundary
53
55
 
@@ -120,13 +122,13 @@ not as data or copy to repeat.
120
122
 
121
123
  Before replying:
122
124
 
123
- 1. Confirm the file is in the exact current-thread visualization directory,
124
- uses an allowed basename, is below 2 MiB, and the message has no more than
125
- three directives.
125
+ 1. Confirm each envelope uses the exact v1 markers, satisfies the 64/128/256 KiB
126
+ limits, and the message has no more than three visuals.
126
127
  2. Confirm the fragment contains no scripts, handlers, URLs, external assets,
127
128
  active controls, document-level elements, or unsupported embeds.
128
129
  3. Confirm SVG view boxes, labels, referenced IDs, table semantics, and CSS
129
130
  selectors are valid.
130
131
  4. Check both narrow and wide layout when a preview path is available. If not,
131
132
  keep the geometry responsive and the composition conservative.
132
- 5. Emit the directive only after the file is complete and readable.
133
+ 5. Emit the envelope only after the fragment is complete and valid. Never leave
134
+ an opening marker unterminated.
@@ -2,8 +2,9 @@
2
2
 
3
3
  Read this reference when producing a Rudder inline visual. The runtime is
4
4
  scriptless, sanitized, isolated from Rudder state, and has no network access.
5
- Every fragment must be under 2 MiB, and one assistant message may reference at
6
- most three fragments.
5
+ Every fragment must be at or below 64 KiB UTF-8, all fragment bodies together
6
+ must be at or below 128 KiB, the complete visual-bearing final reply must be at
7
+ or below 256 KiB, and one assistant message may contain at most three fragments.
7
8
 
8
9
  ## Output Envelope
9
10
 
@@ -12,16 +13,25 @@ Write a fragment with one top-level markup root, `<div id="widget">`. Bounded
12
13
  `head`, or `body`; Rudder extracts and sanitizes the CSS before it sanitizes the
13
14
  markup.
14
15
 
15
- The assistant message must place this exact directive on its own line:
16
+ The final Rudder Chat message places the fragment inside this exact v1 envelope:
16
17
 
17
18
  ```text
18
- ::codex-inline-vis{file="<title>.html"}
19
+ :::rudder-inline-visual:v1
20
+ <style>#widget .series { color: var(--viz-series-1); }</style>
21
+ <div id="widget">...</div>
22
+ :::rudder-inline-visual:end
19
23
  ```
20
24
 
21
- Only a current-run file from the exact thread-scoped visualization directory is
22
- eligible for capture. Rudder rejects absolute paths, separators, traversal,
23
- symlink escapes, missing files, stale files, oversized files, malformed
24
- directives, unknown attributes, and duplicate attributes.
25
+ Both marker lines must be unindented, exact, and free of trailing text. Rudder
26
+ rejects nested, empty, unterminated, excessive, and oversized envelopes. It
27
+ buffers the fragment during streaming, publishes it only after a successful
28
+ complete result, and replaces it with a Server-owned trusted placement. The
29
+ Agent never writes a provider visualization directory, file directive,
30
+ attachment id, canonical placement, iframe, or source link.
31
+
32
+ The v1 authoring protocol is the same for every conforming Rudder Agent Runtime.
33
+ Legacy `::codex-inline-vis{file="..."}` input remains readable during migration,
34
+ but new output must never emit it.
25
35
 
26
36
  ## Preserved Markup
27
37
 
@@ -1 +1 @@
1
- import{g as p,r as u,d as a}from"./chunk-MOJQB5TN--uaDDrYM.js";import{p as f}from"./chunk-JWPE2WC7-B4Nr8KRL.js";import{_ as n,l as o}from"./mermaid.core-CeaXGD6B.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-BxBj6aea.js";import"./index-B1rLBtZ1.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
1
+ import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-DkLjRENV.js";import{p as f}from"./chunk-JWPE2WC7-CdBLDqvo.js";import{_ as n,l as o}from"./mermaid.core-DsYT9DxL.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-f41lF5RD.js";import"./index-CssgLJwf.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
@@ -1 +1 @@
1
- import{G as ln,H as un,I as N,J as I,K as J,L as an,M as y,N as tn,O as j,P as _,Q as rn,R as o,S as on,T as sn,V as fn}from"./mermaid.core-CeaXGD6B.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,q,O,v,R,K,u){var D=q-l,i=O-h,n=K-v,d=u-R,a=d*D-n*i;if(!(a*a<y))return a=(n*(h-R)-d*(l-v))/a,[l+a*D,h+a*i]}function W(l,h,q,O,v,R,K){var u=l-q,D=h-O,i=(K?R:-R)/j(u*u+D*D),n=i*D,d=-i*u,a=l+n,s=h+d,f=q+n,c=O+d,L=(a+f)/2,t=(s+c)/2,m=f-a,g=c-s,A=m*m+g*g,T=v-R,P=a*c-f*s,E=(g<0?-1:1)*j(on(0,T*T*A-P*P)),G=(P*g-m*E)/A,H=(-P*m-g*E)/A,w=(P*g+m*E)/A,p=(-P*m+g*E)/A,x=G-L,e=H-t,r=w-L,M=p-t;return x*x+e*e>r*r+M*M&&(G=w,H=p),{cx:G,cy:H,x01:-n,y01:-d,x11:G*(v/T-1),y11:H*(v/T-1)}}function hn(){var l=cn,h=yn,q=J(0),O=null,v=gn,R=dn,K=mn,u=null,D=ln(i);function i(){var n,d,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=R.apply(this,arguments)-an,L=rn(c-f),t=c>f;if(u||(u=n=D()),s<a&&(d=s,s=a,a=d),!(s>y))u.moveTo(0,0);else if(L>tn-y)u.moveTo(s*N(f),s*I(f)),u.arc(0,0,s,f,c,!t),a>y&&(u.moveTo(a*N(c),a*I(c)),u.arc(0,0,a,c,f,t));else{var m=f,g=c,A=f,T=c,P=L,E=L,G=K.apply(this,arguments)/2,H=G>y&&(O?+O.apply(this,arguments):j(a*a+s*s)),w=_(rn(s-a)/2,+q.apply(this,arguments)),p=w,x=w,e,r;if(H>y){var M=sn(H/a*I(G)),z=sn(H/s*I(G));(P-=M*2)>y?(M*=t?1:-1,A+=M,T-=M):(P=0,A=T=(f+c)/2),(E-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(E=0,m=g=(f+c)/2)}var Q=s*N(m),V=s*I(m),B=a*N(T),C=a*I(T);if(w>y){var F=s*N(g),U=s*I(g),X=a*N(A),Y=a*I(A),S;if(L<un)if(S=pn(Q,V,X,Y,F,U,B,C)){var Z=Q-S[0],$=V-S[1],k=F-S[0],b=U-S[1],nn=1/I(fn((Z*k+$*b)/(j(Z*Z+$*$)*j(k*k+b*b)))/2),en=j(S[0]*S[0]+S[1]*S[1]);p=_(w,(a-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}E>y?x>y?(e=W(X,Y,Q,V,s,x,t),r=W(F,U,B,C,s,x,t),u.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),u.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(u.moveTo(Q,V),u.arc(0,0,s,m,g,!t)):u.moveTo(Q,V),!(a>y)||!(P>y)?u.lineTo(B,C):p>y?(e=W(B,C,F,U,a,-p,t),r=W(Q,V,X,Y,a,-p,t),u.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?u.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,a,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),u.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):u.arc(0,0,a,T,A,t)}if(u.closePath(),n)return u=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-un/2;return[N(d)*n,I(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:J(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:J(+n),i):h},i.cornerRadius=function(n){return arguments.length?(q=typeof n=="function"?n:J(+n),i):q},i.padRadius=function(n){return arguments.length?(O=n==null?null:typeof n=="function"?n:J(+n),i):O},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:J(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:J(+n),i):R},i.padAngle=function(n){return arguments.length?(K=typeof n=="function"?n:J(+n),i):K},i.context=function(n){return arguments.length?(u=n??null,i):u},i}export{hn as d};
1
+ import{G as ln,H as un,I as N,J as I,K as J,L as an,M as y,N as tn,O as j,P as _,Q as rn,R as o,S as on,T as sn,V as fn}from"./mermaid.core-DsYT9DxL.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,q,O,v,R,K,u){var D=q-l,i=O-h,n=K-v,d=u-R,a=d*D-n*i;if(!(a*a<y))return a=(n*(h-R)-d*(l-v))/a,[l+a*D,h+a*i]}function W(l,h,q,O,v,R,K){var u=l-q,D=h-O,i=(K?R:-R)/j(u*u+D*D),n=i*D,d=-i*u,a=l+n,s=h+d,f=q+n,c=O+d,L=(a+f)/2,t=(s+c)/2,m=f-a,g=c-s,A=m*m+g*g,T=v-R,P=a*c-f*s,E=(g<0?-1:1)*j(on(0,T*T*A-P*P)),G=(P*g-m*E)/A,H=(-P*m-g*E)/A,w=(P*g+m*E)/A,p=(-P*m+g*E)/A,x=G-L,e=H-t,r=w-L,M=p-t;return x*x+e*e>r*r+M*M&&(G=w,H=p),{cx:G,cy:H,x01:-n,y01:-d,x11:G*(v/T-1),y11:H*(v/T-1)}}function hn(){var l=cn,h=yn,q=J(0),O=null,v=gn,R=dn,K=mn,u=null,D=ln(i);function i(){var n,d,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=R.apply(this,arguments)-an,L=rn(c-f),t=c>f;if(u||(u=n=D()),s<a&&(d=s,s=a,a=d),!(s>y))u.moveTo(0,0);else if(L>tn-y)u.moveTo(s*N(f),s*I(f)),u.arc(0,0,s,f,c,!t),a>y&&(u.moveTo(a*N(c),a*I(c)),u.arc(0,0,a,c,f,t));else{var m=f,g=c,A=f,T=c,P=L,E=L,G=K.apply(this,arguments)/2,H=G>y&&(O?+O.apply(this,arguments):j(a*a+s*s)),w=_(rn(s-a)/2,+q.apply(this,arguments)),p=w,x=w,e,r;if(H>y){var M=sn(H/a*I(G)),z=sn(H/s*I(G));(P-=M*2)>y?(M*=t?1:-1,A+=M,T-=M):(P=0,A=T=(f+c)/2),(E-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(E=0,m=g=(f+c)/2)}var Q=s*N(m),V=s*I(m),B=a*N(T),C=a*I(T);if(w>y){var F=s*N(g),U=s*I(g),X=a*N(A),Y=a*I(A),S;if(L<un)if(S=pn(Q,V,X,Y,F,U,B,C)){var Z=Q-S[0],$=V-S[1],k=F-S[0],b=U-S[1],nn=1/I(fn((Z*k+$*b)/(j(Z*Z+$*$)*j(k*k+b*b)))/2),en=j(S[0]*S[0]+S[1]*S[1]);p=_(w,(a-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}E>y?x>y?(e=W(X,Y,Q,V,s,x,t),r=W(F,U,B,C,s,x,t),u.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),u.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(u.moveTo(Q,V),u.arc(0,0,s,m,g,!t)):u.moveTo(Q,V),!(a>y)||!(P>y)?u.lineTo(B,C):p>y?(e=W(B,C,F,U,a,-p,t),r=W(Q,V,X,Y,a,-p,t),u.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?u.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,a,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),u.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):u.arc(0,0,a,T,A,t)}if(u.closePath(),n)return u=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-un/2;return[N(d)*n,I(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:J(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:J(+n),i):h},i.cornerRadius=function(n){return arguments.length?(q=typeof n=="function"?n:J(+n),i):q},i.padRadius=function(n){return arguments.length?(O=n==null?null:typeof n=="function"?n:J(+n),i):O},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:J(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:J(+n),i):R},i.padAngle=function(n){return arguments.length?(K=typeof n=="function"?n:J(+n),i):K},i.context=function(n){return arguments.length?(u=n??null,i):u},i}export{hn as d};