@hachej/boring-ui-kit 0.4.23 → 0.4.25

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 (54) hide show
  1. package/README.md +4 -0
  2. package/bin/boring-ui-blocks.mjs +50 -13
  3. package/dist/chat-view.d.ts +278 -0
  4. package/dist/chat-view.js +393 -0
  5. package/dist/file-tree.js +5 -0
  6. package/package.json +6 -2
  7. package/r/agent-target.json +4 -4
  8. package/r/app-shell.json +9 -9
  9. package/r/board-viewer.json +5 -5
  10. package/r/button.json +1 -1
  11. package/r/diagram-viewer.json +4 -4
  12. package/r/dock.json +1 -1
  13. package/r/documents.json +15 -14
  14. package/r/feedback-preview.json +1 -1
  15. package/r/feedback.json +6 -6
  16. package/r/file-tree.json +5 -5
  17. package/r/highlights.json +3 -3
  18. package/r/html-viewer.json +3 -3
  19. package/r/looks-viewer.json +1 -1
  20. package/r/maquette-viewer.json +5 -5
  21. package/r/markdown-editor.json +3 -3
  22. package/r/mockup-viewer.json +1 -1
  23. package/r/pi-ambient.json +11 -11
  24. package/r/pi-app-kinds.json +27 -0
  25. package/r/pi-app.json +16 -25
  26. package/r/pi-artifacts.json +1 -1
  27. package/r/pi-chat-approval.json +3 -2
  28. package/r/pi-chat-attachments.json +1 -1
  29. package/r/pi-chat-markdown.json +1 -1
  30. package/r/pi-chat-mentions.json +1 -1
  31. package/r/pi-chat-pickers.json +1 -1
  32. package/r/pi-chat-plugins.json +11 -11
  33. package/r/pi-chat-question.json +1 -1
  34. package/r/pi-chat-slash.json +1 -1
  35. package/r/pi-chat-subagent.json +1 -1
  36. package/r/pi-chat-voice.json +2 -2
  37. package/r/pi-chat.json +11 -11
  38. package/r/pi-workspace.json +4 -4
  39. package/r/placed-agent.json +4 -4
  40. package/r/provider-setup.json +2 -2
  41. package/r/record-viewer.json +1 -1
  42. package/r/registry.json +187 -169
  43. package/r/requests-board.json +1 -1
  44. package/r/shared-chat.json +7 -7
  45. package/r/task-list-viewer.json +2 -2
  46. package/r/version-history.json +3 -3
  47. package/r/viewer-code.json +2 -2
  48. package/r/viewer-frame.json +5 -5
  49. package/r/viewer-html.json +4 -4
  50. package/r/viewer-image.json +2 -2
  51. package/r/viewer-markdown.json +5 -5
  52. package/r/viewer-pdf.json +3 -3
  53. package/r/viewers.json +6 -6
  54. package/r/windows.json +1 -1
package/r/registry.json CHANGED
@@ -153,7 +153,7 @@
153
153
  "lucide-react@^1.51.0"
154
154
  ],
155
155
  "registryDependencies": [
156
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
156
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
157
157
  "dropdown-menu",
158
158
  "button",
159
159
  "toggle",
@@ -181,8 +181,8 @@
181
181
  "title": "Markdown editor",
182
182
  "description": "A host-owned styled wrapper over the concrete borrowed Markdown controller.",
183
183
  "dependencies": [
184
- "@hachej/boring-ui-kit@^0.4.23",
185
- "@hachej/boring-files@^0.4.23",
184
+ "@hachej/boring-ui-kit@^0.4.25",
185
+ "@hachej/boring-files@^0.4.25",
186
186
  "react@^19.0.0",
187
187
  "react-dom@^19.0.0",
188
188
  "marked@^17.0.6",
@@ -338,7 +338,7 @@
338
338
  },
339
339
  "docs": "Create and own a MarkdownController from @hachej/boring-ui-kit/markdown. Pass it to MarkdownEditor. The wrapper does not acquire resources or dispose the controller. Check the repository release notes for available npm versions; local tarball tests do not establish registry availability.",
340
340
  "registryDependencies": [
341
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json",
341
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json",
342
342
  "button",
343
343
  "toggle",
344
344
  "dropdown-menu"
@@ -350,8 +350,8 @@
350
350
  "title": "HTML source and passive preview",
351
351
  "description": "Exact HTML source editing with a reconstructed passive preview and borrowed controller. Browser security qualification remains separate.",
352
352
  "dependencies": [
353
- "@hachej/boring-ui-kit@^0.4.23",
354
- "@hachej/boring-files@^0.4.23",
353
+ "@hachej/boring-ui-kit@^0.4.25",
354
+ "@hachej/boring-files@^0.4.25",
355
355
  "react@^19.0.0",
356
356
  "react-dom@^19.0.0"
357
357
  ],
@@ -399,7 +399,7 @@
399
399
  }
400
400
  },
401
401
  "registryDependencies": [
402
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json"
402
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json"
403
403
  ]
404
404
  },
405
405
  {
@@ -408,9 +408,9 @@
408
408
  "title": "Pi chat",
409
409
  "description": "A complete Tailwind chat over the borrowed native chat controller: composer, messages, one collapsible activity block per turn (tool calls and reasoning), message queue, history and feedback cards for the opt-in feedback tool (lists, and Show offers that the host page resolves). Chat only: no layout. Owned, editable source; no AI SDK. The question, approval, sub-agent and artifact cards are separate items (pi-chat-question, pi-chat-approval, pi-chat-subagent, pi-artifacts); without them a question or an approval shows a \"waiting for your answer\" notice, a sub-agent call is an ordinary tool step and no artifact is offered. The optional pi-ambient and pi-workspace blocks build on it.",
410
410
  "dependencies": [
411
- "@hachej/boring-ui-kit@^0.4.23",
412
- "@hachej/boring-files@^0.4.23",
413
- "@hachej/boring-feedback@^0.4.23",
411
+ "@hachej/boring-ui-kit@^0.4.25",
412
+ "@hachej/boring-files@^0.4.25",
413
+ "@hachej/boring-feedback@^0.4.25",
414
414
  "react@^19.0.0",
415
415
  "react-dom@^19.0.0",
416
416
  "@base-ui/react@1.9.0",
@@ -423,8 +423,8 @@
423
423
  "zod@^4.6.5"
424
424
  ],
425
425
  "registryDependencies": [
426
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
427
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json",
426
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
427
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json",
428
428
  "dialog",
429
429
  "tooltip",
430
430
  "trace",
@@ -664,7 +664,7 @@
664
664
  "entities@^8.1.0"
665
665
  ],
666
666
  "registryDependencies": [
667
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
667
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
668
668
  "button",
669
669
  "checkbox",
670
670
  "table"
@@ -687,7 +687,7 @@
687
687
  "lucide-react@^1.51.0"
688
688
  ],
689
689
  "registryDependencies": [
690
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
690
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
691
691
  "badge",
692
692
  "button",
693
693
  "input-group",
@@ -711,7 +711,7 @@
711
711
  "lucide-react@^1.51.0"
712
712
  ],
713
713
  "registryDependencies": [
714
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
714
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
715
715
  "item"
716
716
  ],
717
717
  "files": [
@@ -732,7 +732,7 @@
732
732
  "lucide-react@^1.51.0"
733
733
  ],
734
734
  "registryDependencies": [
735
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
735
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
736
736
  "button",
737
737
  "dropdown-menu"
738
738
  ],
@@ -750,12 +750,12 @@
750
750
  "title": "Pi chat voice messages",
751
751
  "description": "Hold-to-record voice messages: the recorder hook over the kit's voice capture, the composer's record button and the pending voice bubble, plus useHoldToRecord. Plug it in with `voiceMessage={{ ...config, ...voiceMessagePlugin }}`; without it pi-chat has no voice button.",
752
752
  "dependencies": [
753
- "@hachej/boring-ui-kit@^0.4.23",
753
+ "@hachej/boring-ui-kit@^0.4.25",
754
754
  "react@^19.0.0",
755
755
  "lucide-react@^1.51.0"
756
756
  ],
757
757
  "registryDependencies": [
758
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
758
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
759
759
  "bubble",
760
760
  "button",
761
761
  "message",
@@ -790,7 +790,7 @@
790
790
  "lucide-react@^1.51.0"
791
791
  ],
792
792
  "registryDependencies": [
793
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
793
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
794
794
  "button",
795
795
  "input"
796
796
  ],
@@ -813,7 +813,7 @@
813
813
  "@earendil-works/pi-ai@~1.2.0"
814
814
  ],
815
815
  "registryDependencies": [
816
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
816
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
817
817
  "alert",
818
818
  "button",
819
819
  "card",
@@ -835,12 +835,13 @@
835
835
  "title": "Pi chat approval card",
836
836
  "description": "The Approve / Deny card for host tools wrapped with `requireApproval`. Plug it in with `cards={{ approval: ApprovalCard }}`; without it pi-chat shows a \"waiting for your answer\" notice with no answer UI.",
837
837
  "dependencies": [
838
+ "@hachej/boring-ui-kit@^0.4.25",
838
839
  "react@^19.0.0",
839
840
  "lucide-react@^1.51.0",
840
841
  "@earendil-works/pi-ai@~1.2.0"
841
842
  ],
842
843
  "registryDependencies": [
843
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
844
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
844
845
  "badge",
845
846
  "button",
846
847
  "item"
@@ -864,7 +865,7 @@
864
865
  "@earendil-works/pi-ai@~1.2.0"
865
866
  ],
866
867
  "registryDependencies": [
867
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
868
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
868
869
  "alert",
869
870
  "badge",
870
871
  "button",
@@ -896,7 +897,7 @@
896
897
  "@earendil-works/pi-durable@~1.2.0"
897
898
  ],
898
899
  "registryDependencies": [
899
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
900
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
900
901
  "button",
901
902
  "item"
902
903
  ],
@@ -922,17 +923,17 @@
922
923
  "react@^19.0.0"
923
924
  ],
924
925
  "registryDependencies": [
925
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
926
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-markdown.json",
927
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-slash.json",
928
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-mentions.json",
929
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-pickers.json",
930
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-voice.json",
931
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-attachments.json",
932
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-question.json",
933
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-approval.json",
934
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-subagent.json",
935
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-artifacts.json"
926
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
927
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-markdown.json",
928
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-slash.json",
929
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-mentions.json",
930
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-pickers.json",
931
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-voice.json",
932
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-attachments.json",
933
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-question.json",
934
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-approval.json",
935
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-subagent.json",
936
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-artifacts.json"
936
937
  ],
937
938
  "files": [
938
939
  {
@@ -948,7 +949,7 @@
948
949
  "title": "Pi ambient agent",
949
950
  "description": "AmbientChat, a compact floating agent bar that grows into a chat window over an existing page, and AgentNotifications, toasts for finished, failed and waiting tasks (with the one guarded browser Notification helper). A block over the pi-chat item; its in-window artifact panel uses the pi-workspace layout.",
950
951
  "dependencies": [
951
- "@hachej/boring-ui-kit@^0.4.23",
952
+ "@hachej/boring-ui-kit@^0.4.25",
952
953
  "react@^19.0.0",
953
954
  "react-dom@^19.0.0",
954
955
  "@earendil-works/pi-durable@~1.2.0",
@@ -956,14 +957,14 @@
956
957
  "lucide-react@^1.51.0"
957
958
  ],
958
959
  "registryDependencies": [
959
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
960
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
961
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-plugins.json",
962
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-question.json",
963
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-artifacts.json",
964
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-workspace.json",
965
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
966
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json",
960
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
961
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
962
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-plugins.json",
963
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-question.json",
964
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-artifacts.json",
965
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-workspace.json",
966
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
967
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json",
967
968
  "message-scroller",
968
969
  "button",
969
970
  "toggle",
@@ -999,7 +1000,7 @@
999
1000
  "react@^19.0.0"
1000
1001
  ],
1001
1002
  "registryDependencies": [
1002
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json"
1003
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json"
1003
1004
  ],
1004
1005
  "files": [
1005
1006
  {
@@ -1019,10 +1020,10 @@
1019
1020
  "react-dom@^19.0.0"
1020
1021
  ],
1021
1022
  "registryDependencies": [
1022
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
1023
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
1024
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
1025
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/dock.json",
1023
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
1024
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
1025
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
1026
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/dock.json",
1026
1027
  "badge",
1027
1028
  "card"
1028
1029
  ],
@@ -1051,7 +1052,7 @@
1051
1052
  "zod@^4.6.5"
1052
1053
  ],
1053
1054
  "registryDependencies": [
1054
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-frame.json",
1055
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-frame.json",
1055
1056
  "badge",
1056
1057
  "toggle",
1057
1058
  "tooltip"
@@ -1099,7 +1100,7 @@
1099
1100
  "lucide-react@^1.51.0"
1100
1101
  ],
1101
1102
  "registryDependencies": [
1102
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/mockup-viewer.json",
1103
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/mockup-viewer.json",
1103
1104
  "alert",
1104
1105
  "button",
1105
1106
  "card",
@@ -1133,7 +1134,7 @@
1133
1134
  "lucide-react@^1.51.0"
1134
1135
  ],
1135
1136
  "registryDependencies": [
1136
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
1137
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
1137
1138
  "table",
1138
1139
  "badge",
1139
1140
  "item",
@@ -1168,13 +1169,13 @@
1168
1169
  "name": "diagram-viewer",
1169
1170
  "type": "registry:component",
1170
1171
  "title": "Diagram viewer",
1171
- "description": "DiagramViewer, DiagramView and diagramKind: an agent's *.diagram.json (format v1, versioned: nodes, edges, optional groups, highlighted path and note) as boxes and numbered arrows with a legend that says what happens and who acts. Layers run left to right while they fit and top to bottom on a phone, scrolling inside their own box; no layout library. A superset of a maquette's workflow, which the maquette viewer draws with DiagramView. The pi-app artifact panel shows .diagram.json files with it by default; app artifactKinds win.",
1172
+ "description": "DiagramViewer, DiagramView and diagramKind: an agent's *.diagram.json (format v1, versioned: nodes, edges, optional groups, highlighted path and note) as boxes and numbered arrows with a legend that says what happens and who acts. Layers run left to right while they fit and top to bottom on a phone, scrolling inside their own box; no layout library. A superset of a maquette's workflow, which the maquette viewer draws with DiagramView. Its kind is in the pi-app-kinds default list, which an app passes to the pi-app artifact panel; an app kind placed before it wins.",
1172
1173
  "dependencies": [
1173
1174
  "react@^19.0.0",
1174
1175
  "lucide-react@^1.51.0"
1175
1176
  ],
1176
1177
  "registryDependencies": [
1177
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
1178
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
1178
1179
  "alert",
1179
1180
  "badge"
1180
1181
  ],
@@ -1210,14 +1211,14 @@
1210
1211
  "name": "maquette-viewer",
1211
1212
  "type": "registry:component",
1212
1213
  "title": "Maquette viewer",
1213
- "description": "MaquetteViewer and maquetteKind: a PM agent's *.maquette.json mock-up (format v1, versioned) one screen at a time, drawn from the host's shadcn components, under one thin icon bar: Back, previous and next (also arrow keys and swipe), an optional comment icon (point mode of the feedback item: a note pinned on a block names the maquette path, screen id and block id) and a menu with guided tours and How it works (the workflow, inline or a linked *.diagram.json, drawn by the diagram-viewer item in a dialog). Optional phone or desktop frame and #screen=<id> deep links. The pi-app artifact panel shows .maquette.json files with it by default; app artifactKinds win.",
1214
+ "description": "MaquetteViewer and maquetteKind: a PM agent's *.maquette.json mock-up (format v1, versioned) one screen at a time, drawn from the host's shadcn components, under one thin icon bar: Back, previous and next (also arrow keys and swipe), an optional comment icon (point mode of the feedback item: a note pinned on a block names the maquette path, screen id and block id) and a menu with guided tours and How it works (the workflow, inline or a linked *.diagram.json, drawn by the diagram-viewer item in a dialog). Optional phone or desktop frame and #screen=<id> deep links. Its kind is in the pi-app-kinds default list, which an app passes to the pi-app artifact panel; an app kind placed before it wins.",
1214
1215
  "dependencies": [
1215
1216
  "react@^19.0.0",
1216
1217
  "lucide-react@^1.51.0"
1217
1218
  ],
1218
1219
  "registryDependencies": [
1219
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
1220
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/diagram-viewer.json",
1220
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
1221
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/diagram-viewer.json",
1221
1222
  "alert",
1222
1223
  "badge",
1223
1224
  "bubble",
@@ -1299,16 +1300,16 @@
1299
1300
  "title": "Board viewer",
1300
1301
  "description": "A board@1 artifact kind for *.board.json. Lazy native tldraw projection of maquette screens, sandboxed HTML mock-ups, goto arrows and notes. Conditional board-file autosave; phone viewing without accidental frame edits. Hosts supply their resource client, asset URLs and license key.",
1301
1302
  "dependencies": [
1302
- "@hachej/boring-ui-kit@^0.4.23",
1303
- "@hachej/boring-files@^0.4.23",
1303
+ "@hachej/boring-ui-kit@^0.4.25",
1304
+ "@hachej/boring-files@^0.4.25",
1304
1305
  "react@^19.0.0",
1305
1306
  "lucide-react@1.51.0",
1306
1307
  "tldraw@5.5.2"
1307
1308
  ],
1308
1309
  "registryDependencies": [
1309
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/maquette-viewer.json",
1310
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/mockup-viewer.json",
1311
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-artifacts.json",
1310
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/maquette-viewer.json",
1311
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/mockup-viewer.json",
1312
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-artifacts.json",
1312
1313
  "button",
1313
1314
  "alert",
1314
1315
  "card",
@@ -1348,17 +1349,17 @@
1348
1349
  "title": "Shared chat",
1349
1350
  "description": "Optional multi-party host log presentation over PiChat's generic composition seams. No agent runtime or speaking policy.",
1350
1351
  "dependencies": [
1351
- "@hachej/boring-ui-kit@^0.4.23",
1352
+ "@hachej/boring-ui-kit@^0.4.25",
1352
1353
  "react@^19.0.0",
1353
1354
  "lucide-react@^1.51.0"
1354
1355
  ],
1355
1356
  "registryDependencies": [
1356
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
1357
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-plugins.json",
1358
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-markdown.json",
1359
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-mentions.json",
1360
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
1361
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
1357
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
1358
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-plugins.json",
1359
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-markdown.json",
1360
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-mentions.json",
1361
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
1362
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
1362
1363
  "avatar",
1363
1364
  "badge",
1364
1365
  "button",
@@ -1425,36 +1426,27 @@
1425
1426
  "name": "pi-app",
1426
1427
  "type": "registry:block",
1427
1428
  "title": "Pi agent app",
1428
- "description": "AgentWorkspace: a whole agent page in one component. Left: the sessions pane (search, New, rename, archive, delete; collapsible, a drawer on a narrow screen). Center: PiChat. Right: the artifact viewers (artifact panel with versions, file viewer, auto-open of new artifacts) in the ArtifactWorkspace panel, a full-screen sheet on a phone. layout=\"embedded\" drops the left column for one compact top bar (title, History, Library, New) that joins an app-shell screen header. Props are data and callbacks; hooks for the conversations handler (useConversations), the chat transport (useRemoteChat) and saved resources (useSaved).",
1429
+ "description": "AgentWorkspace: a whole agent page in one component. Left: the sessions pane (search, New, rename, archive, delete; collapsible, a drawer on a narrow screen). Center: PiChat. Right: the artifact panel (versions, file viewer, auto-open of new artifacts) in the ArtifactWorkspace panel, a full-screen sheet on a phone; it draws files with the kinds the app passes in artifactKinds (defaultKinds of the pi-app-kinds item is the default list). layout=\"embedded\" drops the left column for one compact top bar (title, History, Library, New) that joins an app-shell screen header. Props are data and callbacks; hooks for the conversations handler (useConversations), the chat transport (useRemoteChat) and saved resources (useSaved).",
1429
1430
  "dependencies": [
1430
- "@hachej/boring-ui-kit@^0.4.23",
1431
- "@hachej/boring-files@^0.4.23",
1431
+ "@hachej/boring-ui-kit@^0.4.25",
1432
+ "@hachej/boring-files@^0.4.25",
1432
1433
  "react@^19.0.0",
1433
1434
  "react-dom@^19.0.0",
1434
1435
  "lucide-react@^1.51.0"
1435
1436
  ],
1436
1437
  "registryDependencies": [
1437
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
1438
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
1439
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-plugins.json",
1440
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-artifacts.json",
1441
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-workspace.json",
1442
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-frame.json",
1443
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-markdown.json",
1444
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-html.json",
1445
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-image.json",
1446
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-pdf.json",
1447
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-code.json",
1448
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/maquette-viewer.json",
1449
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/diagram-viewer.json",
1450
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/mockup-viewer.json",
1451
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/record-viewer.json",
1452
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
1453
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json",
1438
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
1439
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
1440
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-plugins.json",
1441
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-artifacts.json",
1442
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-workspace.json",
1443
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-frame.json",
1444
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
1445
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json",
1454
1446
  "drawer",
1455
1447
  "dialog",
1456
1448
  "button",
1457
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/file-tree.json",
1449
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/file-tree.json",
1458
1450
  "dropdown-menu",
1459
1451
  "scroll-area",
1460
1452
  "separator",
@@ -1540,6 +1532,31 @@
1540
1532
  }
1541
1533
  ]
1542
1534
  },
1535
+ {
1536
+ "name": "pi-app-kinds",
1537
+ "type": "registry:lib",
1538
+ "title": "Pi agent app default kinds",
1539
+ "description": "defaultKinds({ locale, comments }): the artifact kinds the pi-app item draws with by default, in order: maquette, diagram, mock-up and records, then Markdown, HTML, SVG, CSV, image and PDF (documentKinds). Pass it as AgentWorkspace's artifactKinds (or ViewerOptions.kinds), with an app's own kinds before it. Each kind loads its viewer on first open.",
1540
+ "registryDependencies": [
1541
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-app.json",
1542
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-markdown.json",
1543
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-html.json",
1544
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-image.json",
1545
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-pdf.json",
1546
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-code.json",
1547
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/maquette-viewer.json",
1548
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/diagram-viewer.json",
1549
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/mockup-viewer.json",
1550
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/record-viewer.json"
1551
+ ],
1552
+ "files": [
1553
+ {
1554
+ "path": "registry/pi-app-kinds/pi-app-kinds.ts",
1555
+ "type": "registry:lib",
1556
+ "target": "components/pi-app-kinds/pi-app-kinds.ts"
1557
+ }
1558
+ ]
1559
+ },
1543
1560
  {
1544
1561
  "name": "placed-agent",
1545
1562
  "type": "registry:block",
@@ -1551,10 +1568,10 @@
1551
1568
  "lucide-react@^1.51.0"
1552
1569
  ],
1553
1570
  "registryDependencies": [
1554
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-app.json",
1555
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-ambient.json",
1556
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/app-shell.json",
1557
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
1571
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-app.json",
1572
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-ambient.json",
1573
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/app-shell.json",
1574
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
1558
1575
  "button"
1559
1576
  ],
1560
1577
  "files": [
@@ -1571,21 +1588,21 @@
1571
1588
  "title": "App shell: layouts, list/detail and agent layer",
1572
1589
  "description": "AppShell with three layouts. B \"workspace\" puts a ListDetail on a screen (phone: the list, then the detail as a stack step with Back; wide: a 20rem list and the detail side by side, sidebar as an icon rail). C \"chat\" wraps the app's own AgentWorkspace (untouched, passed as the nav item's render; install the pi-app item yourself) in the same sidebar, account menu and header; it takes no shell agent. A \"screen\": one screen at a time, every screen kept mounted. On a phone bottom tabs (at most four; more give three plus a « Plus » sheet) and an avatar button that opens the account sheet; on a wide screen the shadcn sidebar (icon rail, NavUser). One header per screen through useScreenHeader (title, subtitle, back, up to two actions, the rest behind « … »). The account menu holds « Améliorer l'app » (the improve agent), the app's own entries and sign out. AppSheet is the one bottom sheet (one open at a time, Back closes it). It mounts the AgentLayer: one agent's PiChat above the app (phone: a drawer with peek, half and full snap points; wide: a right panel), the improve agent in the same layer, optional push-to-talk and point mode. Also useAgentContext and readAgentContext (the screen on show travels as `context` with each submit) and useBackLayer, the one Back manager. Built on explicitly pinned Base UI drawer and dropdown-menu recipes, plus the sidebar and avatar of the host's own shadcn style.",
1573
1590
  "dependencies": [
1574
- "@hachej/boring-feedback@^0.4.23",
1575
- "@hachej/boring-ui-kit@^0.4.23",
1591
+ "@hachej/boring-feedback@^0.4.25",
1592
+ "@hachej/boring-ui-kit@^0.4.25",
1576
1593
  "@base-ui/react@^1.9.0",
1577
1594
  "react@^19.0.0",
1578
1595
  "react-dom@^19.0.0",
1579
1596
  "lucide-react@^1.51.0"
1580
1597
  ],
1581
1598
  "registryDependencies": [
1582
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
1583
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-plugins.json",
1584
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-voice.json",
1585
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/dock.json",
1586
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/feedback.json",
1587
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
1588
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json",
1599
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
1600
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-plugins.json",
1601
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-voice.json",
1602
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/dock.json",
1603
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/feedback.json",
1604
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
1605
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json",
1589
1606
  "drawer",
1590
1607
  "sidebar",
1591
1608
  "avatar",
@@ -1723,18 +1740,18 @@
1723
1740
  "title": "Viewer frame",
1724
1741
  "description": "The standard viewer top bar every viewer draws in (title, status, viewer controls, Refresh, Share, Copy, Download, Open in new tab, Close, overflow menu), its window labels, download, share and media helpers and the sandboxed interactive HTML frame. The viewers' styles live here. Each viewer is its own item (viewer-markdown, viewer-html, viewer-image, viewer-pdf, viewer-code) with a cheap kind module and a view loaded on first open.",
1725
1742
  "dependencies": [
1726
- "@hachej/boring-ui-kit@^0.4.23",
1743
+ "@hachej/boring-ui-kit@^0.4.25",
1727
1744
  "react@^19.0.0",
1728
1745
  "react-dom@^19.0.0",
1729
1746
  "lucide-react@^1.51.0"
1730
1747
  ],
1731
1748
  "registryDependencies": [
1732
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
1733
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
1734
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json",
1749
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
1750
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
1751
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json",
1735
1752
  "button",
1736
1753
  "toggle",
1737
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/version-history.json",
1754
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/version-history.json",
1738
1755
  "toggle-group",
1739
1756
  "dialog",
1740
1757
  "textarea",
@@ -2161,7 +2178,7 @@
2161
2178
  "title": "Markdown viewer",
2162
2179
  "description": "The Markdown kind: `markdownKind` (match, loader) and `MarkdownPane`, the tiptap editor with a formatting toolbar and prose styling over the kit's revisioned Markdown controller, in the viewer frame. The pane and tiptap load the first time a Markdown file opens.",
2163
2180
  "dependencies": [
2164
- "@hachej/boring-ui-kit@^0.4.23",
2181
+ "@hachej/boring-ui-kit@^0.4.25",
2165
2182
  "react@^19.0.0",
2166
2183
  "lucide-react@^1.51.0",
2167
2184
  "marked@^17.0.6",
@@ -2179,10 +2196,10 @@
2179
2196
  "@tiptap/extension-floating-menu@^3.31.4"
2180
2197
  ],
2181
2198
  "registryDependencies": [
2182
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-frame.json",
2183
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/markdown-editor.json",
2184
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
2185
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json",
2199
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-frame.json",
2200
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/markdown-editor.json",
2201
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
2202
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json",
2186
2203
  "button",
2187
2204
  "dropdown-menu"
2188
2205
  ],
@@ -2205,14 +2222,14 @@
2205
2222
  "title": "HTML viewer",
2206
2223
  "description": "The HTML kind: `htmlKind` (match, loader) and `HtmlPane`, the passive HTML preview (sandboxed when the host opts in) and source editor, in the viewer frame. The pane loads the first time an HTML file opens.",
2207
2224
  "dependencies": [
2208
- "@hachej/boring-ui-kit@^0.4.23",
2225
+ "@hachej/boring-ui-kit@^0.4.25",
2209
2226
  "react@^19.0.0",
2210
2227
  "lucide-react@^1.51.0"
2211
2228
  ],
2212
2229
  "registryDependencies": [
2213
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-frame.json",
2214
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
2215
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json",
2230
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-frame.json",
2231
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
2232
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json",
2216
2233
  "button"
2217
2234
  ],
2218
2235
  "files": [
@@ -2238,8 +2255,8 @@
2238
2255
  "lucide-react@^1.51.0"
2239
2256
  ],
2240
2257
  "registryDependencies": [
2241
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-frame.json",
2242
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
2258
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-frame.json",
2259
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
2243
2260
  "button"
2244
2261
  ],
2245
2262
  "files": [
@@ -2266,14 +2283,14 @@
2266
2283
  "title": "PDF viewer",
2267
2284
  "description": "The PDF kind: `pdfKind` (match, loader) and `PdfPane` in the viewer frame (the browser's viewer, or pdf.js pages where there is none), and LocalFileViewer for browser-only files. The pane loads the first time a PDF opens.",
2268
2285
  "dependencies": [
2269
- "@hachej/boring-files@^0.4.23",
2286
+ "@hachej/boring-files@^0.4.25",
2270
2287
  "react@^19.0.0",
2271
2288
  "lucide-react@^1.51.0",
2272
2289
  "pdfjs-dist@6.3.289"
2273
2290
  ],
2274
2291
  "registryDependencies": [
2275
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-frame.json",
2276
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-image.json",
2292
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-frame.json",
2293
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-image.json",
2277
2294
  "badge",
2278
2295
  "button"
2279
2296
  ],
@@ -2310,8 +2327,8 @@
2310
2327
  "lucide-react@^1.51.0"
2311
2328
  ],
2312
2329
  "registryDependencies": [
2313
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-frame.json",
2314
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
2330
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-frame.json",
2331
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
2315
2332
  "table"
2316
2333
  ],
2317
2334
  "files": [
@@ -2339,12 +2356,12 @@
2339
2356
  "description": "Deprecated aggregate: installs every viewer item (viewer-frame, viewer-markdown, viewer-html, viewer-image, viewer-pdf, viewer-code). Add the items you use instead.",
2340
2357
  "files": [],
2341
2358
  "registryDependencies": [
2342
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-frame.json",
2343
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-markdown.json",
2344
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-html.json",
2345
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-image.json",
2346
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-pdf.json",
2347
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-code.json"
2359
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-frame.json",
2360
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-markdown.json",
2361
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-html.json",
2362
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-image.json",
2363
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-pdf.json",
2364
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-code.json"
2348
2365
  ]
2349
2366
  },
2350
2367
  {
@@ -2358,8 +2375,8 @@
2358
2375
  "lucide-react@^1.51.0"
2359
2376
  ],
2360
2377
  "registryDependencies": [
2361
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
2362
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
2378
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
2379
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
2363
2380
  "button",
2364
2381
  "input",
2365
2382
  "label",
@@ -2380,9 +2397,9 @@
2380
2397
  "title": "Feedback",
2381
2398
  "description": "Feedback from the chat composer: one Feedback button starts feedback mode on the application page (hover, click to pin a numbered note, hold ⌥ to use the app, optional voice), and one chip carries the notes to the next message. FeedbackBar, NoteBubble, FeedbackChip with its review, useComposerFeedback for the pi-chat composer, and PickerOverlay styles. Optional, not mounted by default: PointButton, AnnotateSheet, FeedbackList and FeedbackReport. Picking, masking, anchoring and placement stay in @hachej/boring-feedback/page and /ui, so restyling cannot weaken them.",
2382
2399
  "dependencies": [
2383
- "@hachej/boring-feedback@^0.4.23",
2384
- "@hachej/boring-ui-kit@^0.4.23",
2385
- "@hachej/boring-files@^0.4.23",
2400
+ "@hachej/boring-feedback@^0.4.25",
2401
+ "@hachej/boring-ui-kit@^0.4.25",
2402
+ "@hachej/boring-files@^0.4.25",
2386
2403
  "react@^19.0.0",
2387
2404
  "react-dom@^19.0.0",
2388
2405
  "lucide-react@^1.51.0"
@@ -2850,9 +2867,9 @@
2850
2867
  }
2851
2868
  },
2852
2869
  "registryDependencies": [
2853
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
2854
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat-voice.json",
2855
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
2870
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
2871
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat-voice.json",
2872
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
2856
2873
  "button",
2857
2874
  "toggle",
2858
2875
  "badge",
@@ -2868,7 +2885,7 @@
2868
2885
  "title": "Feedback preview",
2869
2886
  "description": "PreviewBanner: a live, reversible preview of a change in the page (Approve / Discard) over `@hachej/boring-feedback/preview`, whose subagent calls models through a host gateway. Separate from `feedback` so annotation-only apps do not install the model SDK; install `feedback` first (its styles cover the banner).",
2870
2887
  "dependencies": [
2871
- "@hachej/boring-feedback@^0.4.23",
2888
+ "@hachej/boring-feedback@^0.4.25",
2872
2889
  "@earendil-works/pi-ai@~1.2.0",
2873
2890
  "react@^19.0.0"
2874
2891
  ],
@@ -2892,8 +2909,8 @@
2892
2909
  "title": "Consumer task-list viewer",
2893
2910
  "description": "A consumer-defined task-list schema and controller over the shared text buffer, with a restylable borrowed React renderer.",
2894
2911
  "dependencies": [
2895
- "@hachej/boring-ui-kit@^0.4.23",
2896
- "@hachej/boring-files@^0.4.23",
2912
+ "@hachej/boring-ui-kit@^0.4.25",
2913
+ "@hachej/boring-files@^0.4.25",
2897
2914
  "react@^19.0.0",
2898
2915
  "react-dom@^19.0.0",
2899
2916
  "zod@^4.6.5"
@@ -2949,12 +2966,12 @@
2949
2966
  "title": "Version history rows",
2950
2967
  "description": "Shared view-only version rows and menu metadata with relative time, provenance and Current. No file reads, publication or restoration.",
2951
2968
  "dependencies": [
2952
- "@hachej/boring-files@^0.4.23",
2969
+ "@hachej/boring-files@^0.4.25",
2953
2970
  "react@^19.0.0"
2954
2971
  ],
2955
2972
  "registryDependencies": [
2956
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
2957
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json",
2973
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
2974
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json",
2958
2975
  "button"
2959
2976
  ],
2960
2977
  "files": [
@@ -2971,15 +2988,15 @@
2971
2988
  "title": "File tree",
2972
2989
  "description": "Browse, search, upload, rename, move, delete and inspect retained versions through one revisionProvider binding. Uses the consumer's shadcn Button, dropdown-menu and dialog with shared version-history rows; Base UI style only.",
2973
2990
  "dependencies": [
2974
- "@hachej/boring-ui-kit@^0.4.23",
2975
- "@hachej/boring-files@^0.4.23",
2991
+ "@hachej/boring-ui-kit@^0.4.25",
2992
+ "@hachej/boring-files@^0.4.25",
2976
2993
  "react@^19.0.0",
2977
2994
  "lucide-react@^1.51.0"
2978
2995
  ],
2979
2996
  "registryDependencies": [
2980
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
2981
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
2982
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/version-history.json",
2997
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
2998
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
2999
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/version-history.json",
2983
3000
  "button",
2984
3001
  "dialog",
2985
3002
  "dropdown-menu",
@@ -3005,22 +3022,23 @@
3005
3022
  "title": "Documents: the Library, a file and its revisions",
3006
3023
  "description": "The workspace's Library as the list, the chosen file in its viewer and its retained revisions beside it (an older one opens read-only). DocumentSheet opens one document over the app for a host's « Voir la fiche », with an optional « Toutes les fiches ». Every read goes through one revisionProvider binding.",
3007
3024
  "dependencies": [
3008
- "@hachej/boring-ui-kit@^0.4.23",
3009
- "@hachej/boring-files@^0.4.23",
3025
+ "@hachej/boring-ui-kit@^0.4.25",
3026
+ "@hachej/boring-files@^0.4.25",
3010
3027
  "react@^19.0.0",
3011
3028
  "lucide-react@^1.51.0"
3012
3029
  ],
3013
3030
  "registryDependencies": [
3014
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/theme.json",
3015
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
3016
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/button.json",
3017
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-artifacts.json",
3018
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-app.json",
3019
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/app-shell.json",
3020
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/file-tree.json",
3021
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-frame.json",
3022
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-image.json",
3023
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/viewer-pdf.json",
3031
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/theme.json",
3032
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
3033
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/button.json",
3034
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-artifacts.json",
3035
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-app.json",
3036
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-app-kinds.json",
3037
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/app-shell.json",
3038
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/file-tree.json",
3039
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-frame.json",
3040
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-image.json",
3041
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/viewer-pdf.json",
3024
3042
  "drawer",
3025
3043
  "button",
3026
3044
  "scroll-area",
@@ -3060,15 +3078,15 @@
3060
3078
  "title": "Point and dictate on app data",
3061
3079
  "description": "Tap explicitly marked JSON app context, dictate once and show the same app agent’s native reply without opening chat. Host-controlled presentation; no feedback report or second controller.",
3062
3080
  "dependencies": [
3063
- "@hachej/boring-ui-kit@^0.4.23",
3064
- "@hachej/boring-feedback@^0.4.23",
3081
+ "@hachej/boring-ui-kit@^0.4.25",
3082
+ "@hachej/boring-feedback@^0.4.25",
3065
3083
  "@earendil-works/pi-durable@~1.2.0",
3066
3084
  "react@^19.0.0",
3067
3085
  "react-dom@^19.0.0"
3068
3086
  ],
3069
3087
  "registryDependencies": [
3070
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/app-shell.json",
3071
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/pi-chat.json",
3088
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/app-shell.json",
3089
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/pi-chat.json",
3072
3090
  "button",
3073
3091
  "card",
3074
3092
  "message",
@@ -3093,7 +3111,7 @@
3093
3111
  "title": "Requests board",
3094
3112
  "description": "Host-fed compact requests and responsive list/detail with questions and decisions.",
3095
3113
  "registryDependencies": [
3096
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
3114
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
3097
3115
  "badge",
3098
3116
  "button",
3099
3117
  "input",
@@ -3130,13 +3148,13 @@
3130
3148
  "title": "Anchored highlights",
3131
3149
  "description": "Exact Markdown highlights and comments in a conditional workspace sidecar.",
3132
3150
  "dependencies": [
3133
- "@hachej/boring-ui-kit@^0.4.23",
3134
- "@hachej/boring-files@^0.4.23",
3151
+ "@hachej/boring-ui-kit@^0.4.25",
3152
+ "@hachej/boring-files@^0.4.25",
3135
3153
  "react@^19.0.0",
3136
3154
  "react-dom@^19.0.0"
3137
3155
  ],
3138
3156
  "registryDependencies": [
3139
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/markdown-editor.json",
3157
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/markdown-editor.json",
3140
3158
  "button",
3141
3159
  "textarea",
3142
3160
  "label",
@@ -3162,7 +3180,7 @@
3162
3180
  "lucide-react@^1.51.0"
3163
3181
  ],
3164
3182
  "registryDependencies": [
3165
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.23/r/utils.json",
3183
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.25/r/utils.json",
3166
3184
  "button",
3167
3185
  "card",
3168
3186
  "badge",