@lostgradient/cinder 0.7.0 → 0.9.0
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.
- package/CHANGELOG.md +23 -0
- package/README.md +7 -2
- package/components.json +59 -15
- package/dist/components/_internal/command-list-context.d.ts +3 -3
- package/dist/components/_internal/create-command-list-state.svelte.d.ts +11 -11
- package/dist/components/access-gate/index.js +201 -126
- package/dist/components/approval-card/approval-card-actions.svelte.d.ts +16 -0
- package/dist/components/approval-card/approval-card-state.d.ts +65 -0
- package/dist/components/approval-card/approval-card.css +269 -92
- package/dist/components/approval-card/approval-card.schema.js +10 -31
- package/dist/components/approval-card/approval-card.svelte.d.ts +3 -3
- package/dist/components/approval-card/approval-card.types.d.ts +14 -28
- package/dist/components/approval-card/index.d.ts +1 -1
- package/dist/components/approval-card/index.js +4268 -2884
- package/dist/components/card/card.css +5 -0
- package/dist/components/card/card.schema.js +2 -2
- package/dist/components/card/card.types.d.ts +2 -2
- package/dist/components/card/index.js +2 -1
- package/dist/components/chat/chat.schema.js +48 -1
- package/dist/components/chat/chat.svelte.d.ts +6 -2
- package/dist/components/chat/chat.types.d.ts +37 -0
- package/dist/components/chat/container/chat.svelte.d.ts +6 -2
- package/dist/components/chat/index.d.ts +3 -3
- package/dist/components/chat/index.js +1099 -4865
- package/dist/components/chat/input/chat-attachment-serialization.d.ts +9 -0
- package/dist/components/chat/input/chat-input.svelte.d.ts +24 -0
- package/dist/components/chat/input/index.d.ts +1 -0
- package/dist/components/chat-composer-popover/chat-composer-popover-filter.d.ts +11 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.css +7 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.css.d.ts +1 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.schema.d.ts +3 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.schema.js +150 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.svelte.d.ts +46 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.types.d.ts +77 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.variables.d.ts +2 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.variables.js +61 -0
- package/dist/components/chat-composer-popover/index.d.ts +6 -0
- package/dist/components/chat-composer-popover/index.js +3285 -0
- package/dist/components/chat-conversation-header/index.js +1627 -5600
- package/dist/components/chat-conversation-list/index.js +15 -3988
- package/dist/components/code-block/code-block.schema.js +5 -1
- package/dist/components/code-block/code-block.types.d.ts +6 -0
- package/dist/components/code-block/index.js +4 -4
- package/dist/components/command-item/index.js +7 -6
- package/dist/components/command-menu/command-menu.schema.js +5 -1
- package/dist/components/command-menu/command-menu.types.d.ts +2 -0
- package/dist/components/command-menu/index.js +48 -19
- package/dist/components/command-palette/index.js +40 -14
- package/dist/components/event-stream-viewer/index.js +44 -44
- package/dist/components/experimental/json-viewer/index.js +44 -44
- package/dist/components/json-schema-editor/index.js +5 -2
- package/dist/components/json-viewer/index.js +44 -44
- package/dist/components/json-viewer/json-viewer.css +10 -6
- package/dist/components/navigation-bar/index.js +44 -6
- package/dist/components/payload-inspector/index.d.ts +1 -1
- package/dist/components/payload-inspector/index.js +306 -1422
- package/dist/components/payload-inspector/payload-inspector.css +15 -75
- package/dist/components/payload-inspector/payload-inspector.schema.js +5 -41
- package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +5 -5
- package/dist/components/payload-inspector/payload-inspector.types.d.ts +10 -56
- package/dist/components/sidebar/index.js +6 -3
- package/dist/components/sidebar/sidebar.css +4 -0
- package/dist/components/tab/index.js +5 -2
- package/dist/components/tab/tab.schema.js +7 -3
- package/dist/components/tab/tab.svelte.d.ts +2 -1
- package/dist/components/tab/tab.types.d.ts +8 -2
- package/dist/components/tabs/index.js +5 -2
- package/dist/components/team-section/index.js +2 -1
- package/dist/components/testimonial-section/index.js +2 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +24169 -27821
- package/dist/server/components/access-gate/index.js +2 -1
- package/dist/server/components/accordion/index.js +2 -2
- package/dist/server/components/alert-dialog/index.js +2 -2
- package/dist/server/components/approval-card/index.js +15 -19
- package/dist/server/components/autocomplete/index.js +7 -7
- package/dist/server/components/avatar-group/index.js +5 -5
- package/dist/server/components/button-group/index.js +3 -5
- package/dist/server/components/card/index.js +2 -2
- package/dist/server/components/chat/index.js +14 -11
- package/dist/server/components/chat-composer-popover/index.js +26 -0
- package/dist/server/components/chat-conversation-header/index.js +9 -10
- package/dist/server/components/chat-conversation-list/index.js +4 -5
- package/dist/server/components/checkbox/index.js +3 -3
- package/dist/server/components/choice-grid/index.js +2 -2
- package/dist/server/components/code-block/index.js +2 -2
- package/dist/server/components/color-field/index.js +3 -3
- package/dist/server/components/combobox/index.js +6 -6
- package/dist/server/components/command-item/index.js +5 -3
- package/dist/server/components/command-menu/index.js +6 -4
- package/dist/server/components/command-palette/index.js +2 -2
- package/dist/server/components/confirm-dialog/index.js +2 -2
- package/dist/server/components/context-menu/index.js +5 -5
- package/dist/server/components/data-table/index.js +5 -5
- package/dist/server/components/date-picker/index.js +6 -6
- package/dist/server/components/date-range-field/index.js +7 -7
- package/dist/server/components/description-list/index.js +3 -5
- package/dist/server/components/diff-viewer/index.js +7 -7
- package/dist/server/components/drawer/index.js +3 -3
- package/dist/server/components/dropdown/index.js +4 -4
- package/dist/server/components/event-stream-viewer/index.js +2 -2
- package/dist/server/components/experimental/json-viewer/index.js +2 -2
- package/dist/server/components/faceted-filter-bar/index.js +1 -1
- package/dist/server/components/hover-card/index.js +1 -1
- package/dist/server/components/input/index.js +3 -3
- package/dist/server/components/json-schema-editor/index.js +22 -22
- package/dist/server/components/json-viewer/index.js +2 -2
- package/dist/server/components/markdown-editor/index.js +13 -13
- package/dist/server/components/modal/index.js +1 -1
- package/dist/server/components/multi-select/index.js +1 -1
- package/dist/server/components/navigation-bar/index.js +1 -1
- package/dist/server/components/newsletter-section/index.js +3 -3
- package/dist/server/components/payload-inspector/index.js +4 -16
- package/dist/server/components/popover/index.js +5 -5
- package/dist/server/components/review-editor/index.js +25 -25
- package/dist/server/components/run-step-timeline/index.js +2 -2
- package/dist/server/components/schema-form/index.js +4 -4
- package/dist/server/components/secret-value-field/index.js +3 -5
- package/dist/server/components/segment/index.js +3 -3
- package/dist/server/components/segmented-control/index.js +4 -4
- package/dist/server/components/selection-popover/index.js +4 -4
- package/dist/server/components/sheet/index.js +2 -2
- package/dist/server/components/sidebar/index.js +3 -3
- package/dist/server/components/tab/index.js +2 -2
- package/dist/server/components/table/index.js +3 -3
- package/dist/server/components/tabs/index.js +4 -4
- package/dist/server/components/tag-input/index.js +3 -3
- package/dist/server/components/team-section/index.js +8 -8
- package/dist/server/components/testimonial-section/index.js +2 -2
- package/dist/server/components/toggle/index.js +2 -2
- package/dist/server/components/tooltip/index.js +1 -1
- package/dist/server/index.js +160 -149
- package/dist/server/{index.server-cbtg8rq5.js → index.server-0atyznp7.js} +5 -5
- package/dist/server/{index.server-20y4mdhm.js → index.server-0chhpkg7.js} +40 -14
- package/dist/server/{index.server-ecm1vs3g.js → index.server-1nq7z1qw.js} +1 -1
- package/dist/server/{index.server-jync915v.js → index.server-2dga5yzr.js} +25 -25
- package/dist/server/index.server-2hqrv7ca.js +9 -0
- package/dist/server/{index.server-qwknp759.js → index.server-2qj6s2mh.js} +7 -4
- package/dist/server/{index.server-pt8b65mt.js → index.server-38aywdk1.js} +1 -1
- package/dist/server/{index.server-rermas0k.js → index.server-47v2fhp4.js} +4 -4
- package/dist/server/{index.server-9j5sym59.js → index.server-4x91gzy1.js} +2 -2
- package/dist/server/{index.server-q48q15g7.js → index.server-4y2jtvv1.js} +4 -2
- package/dist/server/{index.server-zeqv7nrz.js → index.server-5tf22d6e.js} +43 -6
- package/dist/server/index.server-67qgdypc.js +9 -0
- package/dist/server/{index.server-9jete4xx.js → index.server-6sh11ap6.js} +4 -4
- package/dist/server/{index.server-4ztq565m.js → index.server-85p4ydph.js} +1 -1
- package/dist/server/{index.server-4nk7gy0q.js → index.server-894t97kv.js} +1 -1
- package/dist/server/{index.server-1vscnped.js → index.server-8dt36sdm.js} +2 -1
- package/dist/server/{index.server-bfsbp9dz.js → index.server-8xvc73zh.js} +4 -4
- package/dist/server/{index.server-cvnw3hw9.js → index.server-9kz37z89.js} +1 -1
- package/dist/server/{index.server-kc1k02tk.js → index.server-9ykk1kbg.js} +1 -1
- package/dist/server/{index.server-g789yep6.js → index.server-aqethy0w.js} +2 -2
- package/dist/server/{index.server-wc9aggfz.js → index.server-bmxbsk4y.js} +7 -7
- package/dist/server/{index.server-j3ddzcaa.js → index.server-c6pe4kaf.js} +6 -6
- package/dist/server/{index.server-q89dz8h1.js → index.server-d3pqthtp.js} +4 -3
- package/dist/server/{index.server-qfa2rxzx.js → index.server-dg83ke3k.js} +3 -5
- package/dist/server/{index.server-jk4rx4aa.js → index.server-dmmvwy6p.js} +1 -1
- package/dist/server/{index.server-hcfnae5y.js → index.server-dwwqssey.js} +4 -4
- package/dist/server/{index.server-e8x1hgw6.js → index.server-dz1r9xw5.js} +4 -4
- package/dist/server/{index.server-wm7mk5kw.js → index.server-ez5hp0ya.js} +1 -1
- package/dist/server/{index.server-ejyf7e48.js → index.server-fy068yne.js} +1 -1
- package/dist/server/{index.server-wc8dbm5e.js → index.server-g95bk8rc.js} +4 -2
- package/dist/server/index.server-gkazv439.js +576 -0
- package/dist/server/{index.server-dp9j2kkr.js → index.server-h0cvwvhy.js} +1 -1
- package/dist/server/{index.server-pacrqvyz.js → index.server-h90pjrez.js} +1 -1
- package/dist/server/{index.server-p8d04em5.js → index.server-hcsd5gdb.js} +6 -2
- package/dist/server/{index.server-n39drzes.js → index.server-hpeavvnq.js} +1 -1
- package/dist/server/{index.server-1p3patnj.js → index.server-hx91ng7z.js} +1 -1
- package/dist/server/{index.server-jtj3r53y.js → index.server-jgb8yh5k.js} +1 -1
- package/dist/server/{index.server-w1g5q9j9.js → index.server-jtgw9d23.js} +4 -2
- package/dist/server/{index.server-mehav5vs.js → index.server-jxg42jpz.js} +4 -4
- package/dist/server/{index.server-hd8gpehd.js → index.server-jxseyx33.js} +1 -1
- package/dist/server/{index.server-kg2sepsr.js → index.server-krqvnt6p.js} +14 -15
- package/dist/server/{index.server-0e1m3agz.js → index.server-ks49bprh.js} +1 -1
- package/dist/server/{index.server-f0hma3jp.js → index.server-kt0ncrqs.js} +1 -1
- package/dist/server/index.server-m0ezemav.js +170 -0
- package/dist/server/index.server-m191rm44.js +79 -0
- package/dist/server/{index.server-f23vtaw4.js → index.server-marjz8ps.js} +6 -6
- package/dist/server/index.server-mqt1ngqw.js +250 -0
- package/dist/server/{index.server-s9khh4ry.js → index.server-mzzb7dnm.js} +3 -5
- package/dist/server/{index.server-z721a5gp.js → index.server-n82rcv0m.js} +4 -4
- package/dist/server/{index.server-rhhmdxtz.js → index.server-np3c7kx0.js} +4 -4
- package/dist/server/{index.server-hpcs7tmh.js → index.server-p56xxef1.js} +1 -1
- package/dist/server/{index.server-w83kmcrx.js → index.server-pag862vz.js} +10 -10
- package/dist/server/{index.server-gxf0d1p5.js → index.server-q7w4jw89.js} +2 -2
- package/dist/server/{index.server-bvmwnjx6.js → index.server-qh9qzd5t.js} +186 -23
- package/dist/server/{index.server-pxg74pyp.js → index.server-qk1h0n02.js} +4 -4
- package/dist/server/{index.server-sh2rxejg.js → index.server-qke3ekjt.js} +1 -1
- package/dist/server/{index.server-73x2d3j3.js → index.server-rbpvcrr3.js} +1 -1
- package/dist/server/{index.server-8cxs4kya.js → index.server-rga8sc7j.js} +41 -44
- package/dist/server/{index.server-e3fnv1g6.js → index.server-sedjxt36.js} +5 -5
- package/dist/server/{index.server-pen9pxt6.js → index.server-sf3nk3j2.js} +2 -2
- package/dist/server/{index.server-7fp0epev.js → index.server-veastatv.js} +4 -4
- package/dist/server/{index.server-jeqg2d22.js → index.server-xeqtpv61.js} +1 -1
- package/dist/server/{index.server-9s4na701.js → index.server-xjnge1yw.js} +4 -4
- package/dist/server/index.server-xtjjmsyq.js +315 -0
- package/dist/server/{index.server-hhxjaeen.js → index.server-xz99aed4.js} +4 -4
- package/dist/server/{index.server-vne4rzfa.js → index.server-y4n8vc08.js} +1 -1
- package/dist/server/{index.server-5d01cn4f.js → index.server-y83kqayt.js} +4 -4
- package/dist/server/{index.server-1nh09ck7.js → index.server-yhzydqxe.js} +5 -5
- package/dist/server/{index.server-atjc1qcq.js → index.server-yz4k36cw.js} +1 -1
- package/dist/server/{index.server-w6k62afr.js → index.server-ze1ymmbw.js} +2 -2
- package/dist/server/{index.server-914v805w.js → index.server-zgd1g8mk.js} +1 -1
- package/dist/server/{index.server-aeexcxdp.js → index.server-zh3r8vfd.js} +1 -1
- package/dist/server/{index.server-10jb2jzm.js → index.server-zsjf8enc.js} +4 -4
- package/package.json +42 -6
- package/src/components/_internal/command-list-context.ts +3 -3
- package/src/components/_internal/create-command-list-state.svelte.ts +39 -13
- package/src/components/approval-card/approval-card-actions.svelte +168 -0
- package/src/components/approval-card/approval-card-state.ts +152 -1
- package/src/components/approval-card/approval-card.css +269 -92
- package/src/components/approval-card/approval-card.examples.json +3 -3
- package/src/components/approval-card/approval-card.schema.json +9 -30
- package/src/components/approval-card/approval-card.schema.ts +13 -31
- package/src/components/approval-card/approval-card.svelte +176 -470
- package/src/components/approval-card/approval-card.types.ts +15 -28
- package/src/components/approval-card/index.ts +1 -0
- package/src/components/card/card.css +5 -0
- package/src/components/card/card.schema.json +1 -1
- package/src/components/card/card.schema.ts +1 -1
- package/src/components/card/card.svelte +1 -0
- package/src/components/card/card.types.ts +2 -2
- package/src/components/chat/chat.schema.json +40 -0
- package/src/components/chat/chat.schema.ts +49 -0
- package/src/components/chat/chat.svelte +20 -0
- package/src/components/chat/chat.types.ts +38 -0
- package/src/components/chat/container/chat.svelte +82 -3
- package/src/components/chat/index.ts +15 -3
- package/src/components/chat/input/chat-attachment-serialization.ts +63 -0
- package/src/components/chat/input/chat-input.svelte +30 -3
- package/src/components/chat/input/index.ts +5 -0
- package/src/components/chat-composer-popover/chat-composer-popover-filter.ts +68 -0
- package/src/components/chat-composer-popover/chat-composer-popover.css +7 -0
- package/src/components/chat-composer-popover/chat-composer-popover.examples.json +13 -0
- package/src/components/chat-composer-popover/chat-composer-popover.schema.json +90 -0
- package/src/components/chat-composer-popover/chat-composer-popover.schema.ts +95 -0
- package/src/components/chat-composer-popover/chat-composer-popover.svelte +234 -0
- package/src/components/chat-composer-popover/chat-composer-popover.types.ts +88 -0
- package/src/components/chat-composer-popover/chat-composer-popover.variables.json +1 -0
- package/src/components/chat-composer-popover/chat-composer-popover.variables.ts +3 -0
- package/src/components/chat-composer-popover/index.ts +19 -0
- package/src/components/code-block/code-block.schema.json +4 -0
- package/src/components/code-block/code-block.schema.ts +5 -0
- package/src/components/code-block/code-block.svelte +3 -3
- package/src/components/code-block/code-block.types.ts +6 -0
- package/src/components/command-item/command-item.svelte +7 -6
- package/src/components/command-menu/command-menu.schema.json +4 -0
- package/src/components/command-menu/command-menu.schema.ts +4 -0
- package/src/components/command-menu/command-menu.svelte +16 -5
- package/src/components/command-menu/command-menu.types.ts +2 -0
- package/src/components/json-viewer/_json-viewer-node.svelte +15 -1
- package/src/components/json-viewer/json-viewer.css +10 -6
- package/src/components/navigation-bar/navigation-bar.svelte +49 -7
- package/src/components/payload-inspector/index.ts +0 -2
- package/src/components/payload-inspector/payload-inspector.css +15 -75
- package/src/components/payload-inspector/payload-inspector.examples.json +5 -5
- package/src/components/payload-inspector/payload-inspector.schema.json +3 -31
- package/src/components/payload-inspector/payload-inspector.schema.ts +3 -36
- package/src/components/payload-inspector/payload-inspector.svelte +46 -239
- package/src/components/payload-inspector/payload-inspector.types.ts +10 -58
- package/src/components/sidebar/sidebar.css +4 -0
- package/src/components/sidebar/sidebar.svelte +6 -3
- package/src/components/tab/tab.schema.json +6 -2
- package/src/components/tab/tab.schema.ts +8 -2
- package/src/components/tab/tab.svelte +9 -5
- package/src/components/tab/tab.types.ts +8 -2
- package/src/index.ts +18 -5
- package/src/styles/components.css +1 -0
- package/dist/server/index-49we2xfs.js +0 -344
- package/dist/server/index-8fhvxk30.js +0 -265
- package/dist/server/index-x2ysg8ds.js +0 -388
- package/dist/server/index.server-20j0jh30.js +0 -9
- package/dist/server/index.server-dc35kh7d.js +0 -1835
- package/dist/server/index.server-kd4b0342.js +0 -607
- package/dist/server/index.server-n5cdmsz4.js +0 -30
- package/dist/server/index.server-rjap4k7y.js +0 -1389
- package/dist/server/index.server-vt6sn9y4.js +0 -447
- package/dist/server/index.server-w63n618v.js +0 -9
- package/dist/server/index.server-y2pa1k46.js +0 -9
|
@@ -5,21 +5,17 @@
|
|
|
5
5
|
* between `src/` and generated `dist/`. */
|
|
6
6
|
@import '../badge/badge.css';
|
|
7
7
|
@import '../button/button.css';
|
|
8
|
-
@import '../button-group/button-group.css';
|
|
9
8
|
@import '../card/card.css';
|
|
10
9
|
@import '../code-block/code-block.css';
|
|
10
|
+
@import '../collapsible/collapsible.css';
|
|
11
11
|
@import '../copy-button/copy-button.css';
|
|
12
|
-
@import '../description-list/description-list.css';
|
|
13
12
|
@import '../json-viewer/json-viewer.css';
|
|
14
13
|
@import '../payload-inspector/payload-inspector.css';
|
|
15
|
-
@import '../secret-value-field/secret-value-field.css';
|
|
16
14
|
@import '../status-dot/status-dot.css';
|
|
17
|
-
@import '../
|
|
15
|
+
@import '../tooltip/tooltip.css';
|
|
18
16
|
|
|
19
17
|
@layer cinder.components {
|
|
20
18
|
.cinder-approval-card {
|
|
21
|
-
container-type: inline-size;
|
|
22
|
-
container-name: cinder-approval-card;
|
|
23
19
|
display: block;
|
|
24
20
|
}
|
|
25
21
|
|
|
@@ -27,35 +23,37 @@
|
|
|
27
23
|
overflow: hidden;
|
|
28
24
|
}
|
|
29
25
|
|
|
26
|
+
/* ----------------------------------------
|
|
27
|
+
* Header
|
|
28
|
+
* ---------------------------------------- */
|
|
29
|
+
|
|
30
30
|
.cinder-approval-card__header {
|
|
31
31
|
display: flex;
|
|
32
|
+
flex-wrap: wrap;
|
|
32
33
|
align-items: flex-start;
|
|
33
34
|
justify-content: space-between;
|
|
34
|
-
gap: var(--cinder-space-4);
|
|
35
|
+
gap: var(--cinder-space-2) var(--cinder-space-4);
|
|
35
36
|
padding: var(--cinder-space-4);
|
|
36
|
-
border-block-end: 1px solid var(--cinder-border-muted);
|
|
37
37
|
background: var(--cinder-surface-inset);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
.cinder-approval-card[data-cinder-risk='high'] .cinder-approval-card__header {
|
|
41
|
+
background: var(--cinder-color-danger-bg);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Title and badges stay on one row whenever they both fit — `flex-wrap`
|
|
45
|
+
reacts to the actual rendered width of this title (which varies with the
|
|
46
|
+
tool name) instead of guessing a fixed container breakpoint. Below
|
|
47
|
+
`min-inline-size`, the title wraps its own text first; badges only drop
|
|
48
|
+
to their own row once nothing more can give. On that solo-item row,
|
|
49
|
+
`justify-content: space-between` on the header collapses to flex-start,
|
|
50
|
+
so no separate narrow-container override is needed. */
|
|
40
51
|
.cinder-approval-card__title-group {
|
|
41
52
|
display: flex;
|
|
42
53
|
flex-direction: column;
|
|
54
|
+
flex: 1 1 14rem;
|
|
43
55
|
gap: var(--cinder-space-1);
|
|
44
|
-
min-inline-size:
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.cinder-approval-card__eyebrow,
|
|
48
|
-
.cinder-approval-card__description,
|
|
49
|
-
.cinder-approval-card__muted {
|
|
50
|
-
margin: 0;
|
|
51
|
-
color: var(--cinder-text-muted);
|
|
52
|
-
font-size: var(--cinder-text-sm);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.cinder-approval-card__eyebrow {
|
|
56
|
-
font-size: var(--cinder-text-xs);
|
|
57
|
-
font-weight: var(--cinder-font-semibold);
|
|
58
|
-
text-transform: uppercase;
|
|
56
|
+
min-inline-size: 10rem;
|
|
59
57
|
}
|
|
60
58
|
|
|
61
59
|
.cinder-approval-card__title {
|
|
@@ -66,23 +64,63 @@
|
|
|
66
64
|
line-height: var(--cinder-leading-tight);
|
|
67
65
|
}
|
|
68
66
|
|
|
69
|
-
.cinder-approval-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
.cinder-approval-card__title-tool {
|
|
68
|
+
font-family: var(--cinder-font-mono);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.cinder-approval-card__badges {
|
|
72
72
|
display: flex;
|
|
73
|
+
flex: 0 1 auto;
|
|
73
74
|
align-items: center;
|
|
74
75
|
flex-wrap: wrap;
|
|
76
|
+
justify-content: flex-end;
|
|
75
77
|
gap: var(--cinder-space-2);
|
|
76
78
|
}
|
|
77
79
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
+
/* StatusDot and Badge each define their own type scale per size step, and
|
|
81
|
+
those scales don't line up 1:1 (StatusDot's "sm" label text is larger
|
|
82
|
+
than Badge's "sm" text). Force every status/risk/expiry indicator in this
|
|
83
|
+
row to the same font-size so the row reads as one cohesive unit. */
|
|
84
|
+
.cinder-approval-card__badges .cinder-status-dot[data-cinder-size='sm'],
|
|
85
|
+
.cinder-approval-card__badges .cinder-badge[data-cinder-size='sm'] {
|
|
86
|
+
font-size: var(--cinder-text-xs);
|
|
80
87
|
}
|
|
81
88
|
|
|
89
|
+
.cinder-approval-card__risk-icon {
|
|
90
|
+
display: inline-flex;
|
|
91
|
+
align-items: center;
|
|
92
|
+
border-radius: var(--cinder-radius-sm);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.cinder-approval-card__risk-icon[data-cinder-risk='low'] {
|
|
96
|
+
color: var(--cinder-success);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.cinder-approval-card__risk-icon[data-cinder-risk='medium'] {
|
|
100
|
+
color: var(--cinder-warning);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.cinder-approval-card__risk-icon[data-cinder-risk='high'] {
|
|
104
|
+
color: var(--cinder-danger);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.cinder-approval-card__risk-icon:focus-visible {
|
|
108
|
+
/* cinder-focus-ring-owner: parent — the trigger self-owns its box-shadow
|
|
109
|
+
ring; the outline is intentionally suppressed. */
|
|
110
|
+
outline: none;
|
|
111
|
+
box-shadow:
|
|
112
|
+
0 0 0 var(--cinder-ring-offset, 1px) var(--cinder-ring-offset-color),
|
|
113
|
+
0 0 0 calc(var(--cinder-ring-offset, 1px) + var(--cinder-ring-width)) var(--cinder-ring-color);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* ----------------------------------------
|
|
117
|
+
* Body sections
|
|
118
|
+
* ---------------------------------------- */
|
|
119
|
+
|
|
82
120
|
.cinder-approval-card__body {
|
|
83
121
|
display: flex;
|
|
84
122
|
flex-direction: column;
|
|
85
|
-
gap: var(--cinder-space-
|
|
123
|
+
gap: var(--cinder-space-3);
|
|
86
124
|
padding: var(--cinder-space-4);
|
|
87
125
|
}
|
|
88
126
|
|
|
@@ -92,57 +130,33 @@
|
|
|
92
130
|
gap: var(--cinder-space-2);
|
|
93
131
|
}
|
|
94
132
|
|
|
95
|
-
.cinder-approval-card__section-
|
|
96
|
-
|
|
133
|
+
.cinder-approval-card__section-heading {
|
|
134
|
+
display: flex;
|
|
135
|
+
align-items: center;
|
|
136
|
+
flex-wrap: wrap;
|
|
137
|
+
gap: var(--cinder-space-2);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.cinder-approval-card__section-title {
|
|
97
141
|
margin: 0;
|
|
98
142
|
color: var(--cinder-text);
|
|
99
143
|
font-size: var(--cinder-text-sm);
|
|
100
144
|
font-weight: var(--cinder-font-semibold);
|
|
101
145
|
}
|
|
102
146
|
|
|
103
|
-
.cinder-approval-
|
|
104
|
-
font-size: var(--cinder-text-xs);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.cinder-approval-card__metadata {
|
|
108
|
-
display: grid;
|
|
109
|
-
grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
|
|
110
|
-
gap: var(--cinder-space-2);
|
|
147
|
+
.cinder-approval-card__muted {
|
|
111
148
|
margin: 0;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
.cinder-approval-card__metadata--compact {
|
|
115
|
-
grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.cinder-approval-card__metadata-item {
|
|
119
|
-
min-inline-size: 0;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
.cinder-approval-card__metadata-item dt {
|
|
123
149
|
color: var(--cinder-text-muted);
|
|
124
|
-
font-size: var(--cinder-text-
|
|
125
|
-
font-weight: var(--cinder-font-medium);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
.cinder-approval-card__metadata-item dd {
|
|
129
|
-
margin: 0;
|
|
130
|
-
overflow-wrap: anywhere;
|
|
131
|
-
color: var(--cinder-text);
|
|
132
|
-
font-family: var(--cinder-font-mono);
|
|
133
|
-
font-size: var(--cinder-text-xs);
|
|
150
|
+
font-size: var(--cinder-text-sm);
|
|
134
151
|
}
|
|
135
152
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
gap: var(--cinder-space-2);
|
|
140
|
-
}
|
|
153
|
+
/* ----------------------------------------
|
|
154
|
+
* Files touched
|
|
155
|
+
* ---------------------------------------- */
|
|
141
156
|
|
|
142
157
|
.cinder-approval-card__file-list {
|
|
143
158
|
display: flex;
|
|
144
159
|
flex-direction: column;
|
|
145
|
-
gap: var(--cinder-space-1);
|
|
146
160
|
max-block-size: 14rem;
|
|
147
161
|
overflow-y: auto;
|
|
148
162
|
margin: 0;
|
|
@@ -150,49 +164,76 @@
|
|
|
150
164
|
list-style: none;
|
|
151
165
|
}
|
|
152
166
|
|
|
153
|
-
.cinder-approval-card__file
|
|
167
|
+
.cinder-approval-card__file {
|
|
168
|
+
display: flex;
|
|
169
|
+
align-items: center;
|
|
170
|
+
justify-content: space-between;
|
|
171
|
+
gap: var(--cinder-space-2);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.cinder-approval-card__file-path {
|
|
154
175
|
overflow-wrap: anywhere;
|
|
155
|
-
border: 1px solid var(--cinder-border-muted);
|
|
156
|
-
border-radius: var(--cinder-radius-sm);
|
|
157
|
-
padding: var(--cinder-space-1) var(--cinder-space-2);
|
|
158
|
-
background: var(--cinder-surface-inset);
|
|
159
176
|
color: var(--cinder-text);
|
|
160
177
|
font-family: var(--cinder-font-mono);
|
|
161
178
|
font-size: var(--cinder-text-xs);
|
|
162
179
|
}
|
|
163
180
|
|
|
181
|
+
.cinder-approval-card__file .cinder-approval-card__file-copy {
|
|
182
|
+
flex: 0 0 auto;
|
|
183
|
+
padding: var(--cinder-space-1);
|
|
184
|
+
border: none;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* ----------------------------------------
|
|
188
|
+
* Environment names
|
|
189
|
+
* ---------------------------------------- */
|
|
190
|
+
|
|
164
191
|
.cinder-approval-card__environment-list {
|
|
165
|
-
display:
|
|
166
|
-
|
|
192
|
+
display: flex;
|
|
193
|
+
flex-wrap: wrap;
|
|
167
194
|
gap: var(--cinder-space-2);
|
|
195
|
+
margin: 0;
|
|
196
|
+
padding: 0;
|
|
197
|
+
list-style: none;
|
|
168
198
|
}
|
|
169
199
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
200
|
+
/* ----------------------------------------
|
|
201
|
+
* Resolution controls and actions
|
|
202
|
+
* ---------------------------------------- */
|
|
173
203
|
|
|
174
|
-
.cinder-approval-
|
|
204
|
+
.cinder-approval-card__actions {
|
|
175
205
|
display: flex;
|
|
176
206
|
flex-direction: column;
|
|
177
|
-
gap: var(--cinder-space-
|
|
207
|
+
gap: var(--cinder-space-3);
|
|
178
208
|
}
|
|
179
209
|
|
|
180
|
-
.cinder-approval-
|
|
210
|
+
.cinder-approval-card__resolution-controls {
|
|
181
211
|
display: flex;
|
|
182
212
|
flex-direction: column;
|
|
183
213
|
gap: var(--cinder-space-2);
|
|
184
|
-
border: 1px solid var(--cinder-border-muted);
|
|
185
|
-
border-radius: var(--cinder-radius-md);
|
|
186
|
-
padding: var(--cinder-space-3);
|
|
187
|
-
background: var(--cinder-surface-inset);
|
|
188
214
|
}
|
|
189
215
|
|
|
190
|
-
.cinder-approval-
|
|
216
|
+
.cinder-approval-card__control-label {
|
|
191
217
|
color: var(--cinder-text);
|
|
192
218
|
font-size: var(--cinder-text-sm);
|
|
193
219
|
font-weight: var(--cinder-font-semibold);
|
|
194
220
|
}
|
|
195
221
|
|
|
222
|
+
.cinder-approval-card__action-row {
|
|
223
|
+
display: flex;
|
|
224
|
+
align-items: center;
|
|
225
|
+
flex-wrap: wrap;
|
|
226
|
+
gap: var(--cinder-space-3);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.cinder-approval-card__action-buttons {
|
|
230
|
+
display: flex;
|
|
231
|
+
align-items: center;
|
|
232
|
+
flex-wrap: wrap;
|
|
233
|
+
gap: var(--cinder-space-2);
|
|
234
|
+
margin-inline-start: auto;
|
|
235
|
+
}
|
|
236
|
+
|
|
196
237
|
.cinder-approval-card__textarea {
|
|
197
238
|
min-block-size: 10rem;
|
|
198
239
|
resize: vertical;
|
|
@@ -206,7 +247,7 @@
|
|
|
206
247
|
}
|
|
207
248
|
|
|
208
249
|
.cinder-approval-card__textarea--reason {
|
|
209
|
-
min-block-size: 5rem;
|
|
250
|
+
min-block-size: 3.5rem;
|
|
210
251
|
font-family: var(--cinder-font-sans);
|
|
211
252
|
}
|
|
212
253
|
|
|
@@ -233,12 +274,33 @@
|
|
|
233
274
|
box-shadow: var(--_cinder-focus-ring-shadow);
|
|
234
275
|
}
|
|
235
276
|
|
|
277
|
+
.cinder-approval-card__editor {
|
|
278
|
+
display: flex;
|
|
279
|
+
flex-direction: column;
|
|
280
|
+
gap: var(--cinder-space-2);
|
|
281
|
+
border: 1px solid var(--cinder-border-muted);
|
|
282
|
+
border-radius: var(--cinder-radius-md);
|
|
283
|
+
padding: var(--cinder-space-3);
|
|
284
|
+
background: var(--cinder-surface-inset);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.cinder-approval-card__editor-actions {
|
|
288
|
+
display: flex;
|
|
289
|
+
align-items: center;
|
|
290
|
+
flex-wrap: wrap;
|
|
291
|
+
gap: var(--cinder-space-2);
|
|
292
|
+
}
|
|
293
|
+
|
|
236
294
|
.cinder-approval-card__error {
|
|
237
295
|
margin: 0;
|
|
238
296
|
color: var(--cinder-danger);
|
|
239
297
|
font-size: var(--cinder-text-sm);
|
|
240
298
|
}
|
|
241
299
|
|
|
300
|
+
/* ----------------------------------------
|
|
301
|
+
* Read-only summary for terminal states
|
|
302
|
+
* ---------------------------------------- */
|
|
303
|
+
|
|
242
304
|
.cinder-approval-card__readonly-summary {
|
|
243
305
|
margin: 0;
|
|
244
306
|
border: 1px solid var(--cinder-border-muted);
|
|
@@ -249,17 +311,132 @@
|
|
|
249
311
|
font-size: var(--cinder-text-sm);
|
|
250
312
|
}
|
|
251
313
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
314
|
+
.cinder-approval-card__readonly-summary[data-cinder-state='approved'],
|
|
315
|
+
.cinder-approval-card__readonly-summary[data-cinder-state='approved_with_edits'] {
|
|
316
|
+
border-color: var(--cinder-color-success-border);
|
|
317
|
+
background: var(--cinder-color-success-bg);
|
|
318
|
+
color: var(--cinder-color-success-fg);
|
|
319
|
+
}
|
|
256
320
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
321
|
+
.cinder-approval-card__readonly-summary[data-cinder-state='denied'] {
|
|
322
|
+
border-color: var(--cinder-color-danger-border);
|
|
323
|
+
background: var(--cinder-color-danger-bg);
|
|
324
|
+
color: var(--cinder-color-danger-fg);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/* ----------------------------------------
|
|
328
|
+
* Details disclosure (sandbox, environment, request metadata)
|
|
329
|
+
* ---------------------------------------- */
|
|
330
|
+
|
|
331
|
+
.cinder-approval-card__details {
|
|
332
|
+
border: 1px solid var(--cinder-border);
|
|
333
|
+
border-radius: var(--cinder-radius-md);
|
|
334
|
+
background: var(--cinder-surface);
|
|
335
|
+
overflow: hidden;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
.cinder-approval-card__details .cinder-collapsible__trigger {
|
|
339
|
+
border-radius: 0;
|
|
340
|
+
padding: var(--cinder-space-2) var(--cinder-space-3);
|
|
341
|
+
background: var(--cinder-surface-raised);
|
|
342
|
+
font-size: var(--cinder-text-sm);
|
|
343
|
+
color: var(--cinder-text-muted);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
.cinder-approval-card__details[data-cinder-expanded] .cinder-collapsible__trigger {
|
|
347
|
+
border-block-end: 1px solid var(--cinder-border);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
.cinder-approval-card__details .cinder-collapsible__panel-inner {
|
|
351
|
+
padding: var(--cinder-space-3);
|
|
352
|
+
font-size: var(--cinder-text-sm);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.cinder-approval-card__details-content {
|
|
356
|
+
display: flex;
|
|
357
|
+
flex-direction: column;
|
|
358
|
+
gap: var(--cinder-space-3);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.cinder-approval-card__details-group {
|
|
362
|
+
display: flex;
|
|
363
|
+
flex-direction: column;
|
|
364
|
+
gap: var(--cinder-space-1);
|
|
260
365
|
}
|
|
261
366
|
|
|
367
|
+
.cinder-approval-card__details-label {
|
|
368
|
+
display: flex;
|
|
369
|
+
align-items: baseline;
|
|
370
|
+
flex-wrap: wrap;
|
|
371
|
+
gap: var(--cinder-space-2);
|
|
372
|
+
margin: 0;
|
|
373
|
+
color: var(--cinder-text);
|
|
374
|
+
font-size: var(--cinder-text-xs);
|
|
375
|
+
font-weight: var(--cinder-font-semibold);
|
|
376
|
+
text-transform: uppercase;
|
|
377
|
+
letter-spacing: 0.04em;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.cinder-approval-card__details-label .cinder-approval-card__muted {
|
|
381
|
+
font-size: var(--cinder-text-xs);
|
|
382
|
+
font-weight: var(--cinder-font-normal);
|
|
383
|
+
text-transform: none;
|
|
384
|
+
letter-spacing: normal;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
.cinder-approval-card__metadata {
|
|
388
|
+
display: grid;
|
|
389
|
+
grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
|
|
390
|
+
gap: var(--cinder-space-3);
|
|
391
|
+
margin: 0;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
.cinder-approval-card__metadata--compact {
|
|
395
|
+
gap: var(--cinder-space-2);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
.cinder-approval-card__metadata-item {
|
|
399
|
+
min-inline-size: 0;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
.cinder-approval-card__metadata-item dt {
|
|
403
|
+
color: var(--cinder-text-muted);
|
|
404
|
+
font-size: var(--cinder-text-xs);
|
|
405
|
+
font-weight: var(--cinder-font-medium);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
.cinder-approval-card__metadata-item dd {
|
|
409
|
+
display: flex;
|
|
410
|
+
flex-direction: column;
|
|
411
|
+
gap: var(--cinder-space-1);
|
|
412
|
+
margin: 0;
|
|
413
|
+
overflow-wrap: anywhere;
|
|
414
|
+
color: var(--cinder-text);
|
|
415
|
+
font-family: var(--cinder-font-mono);
|
|
416
|
+
font-size: var(--cinder-text-xs);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.cinder-approval-card__metadata-help {
|
|
420
|
+
color: var(--cinder-text-muted);
|
|
421
|
+
font-family: var(--cinder-font-sans);
|
|
422
|
+
font-size: var(--cinder-text-xs);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
/* ----------------------------------------
|
|
426
|
+
* Forced colors
|
|
427
|
+
* ---------------------------------------- */
|
|
428
|
+
|
|
262
429
|
@media (forced-colors: active) {
|
|
430
|
+
.cinder-approval-card__risk-icon {
|
|
431
|
+
color: CanvasText;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
.cinder-approval-card__risk-icon:focus-visible {
|
|
435
|
+
outline: 2px solid CanvasText;
|
|
436
|
+
outline-offset: 2px;
|
|
437
|
+
box-shadow: none;
|
|
438
|
+
}
|
|
439
|
+
|
|
263
440
|
.cinder-approval-card__textarea:focus-visible,
|
|
264
441
|
.cinder-approval-card__remember-control input:focus-visible {
|
|
265
442
|
outline: var(--cinder-ring-width) solid ButtonText;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
{
|
|
7
7
|
"id": "basic",
|
|
8
8
|
"title": "Command approval",
|
|
9
|
-
"description": "A pending command approval with sandbox
|
|
9
|
+
"description": "A pending command approval with sandbox context, arguments, environment names, and editable arguments.",
|
|
10
10
|
"code": "<script lang=\"ts\">\n import { ApprovalCard } from '@lostgradient/cinder/approval-card';\n\n const expiresAt = new Date(Date.now() + 30 * 60 * 1000).toISOString();\n</script>\n\n<ApprovalCard\n tool={{ name: 'deploy-cloud', risk: 'medium' }}\n sandbox={{\n provider: 'codex',\n name: 'workspace-write',\n workingDir: '/workspace/project',\n }}\n operation={{\n kind: 'command',\n command: 'bun run --filter=@lostgradient/cinder validate',\n filesTouched: ['packages/components/src/components/approval-card/approval-card.svelte'],\n argsPreview: {\n package: '@lostgradient/cinder',\n dryRun: false,\n },\n }}\n env={['DATABASE_URL', 'OPENAI_API_KEY']}\n snapshotId=\"snapshot-01JZ8\"\n policyVersion=\"policy-2026-06\"\n idempotencyKey=\"approval-command-01\"\n {expiresAt}\n state=\"pending\"\n editableArgs={true}\n onresolve={() => undefined}\n/>\n"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
{
|
|
19
19
|
"id": "patch",
|
|
20
20
|
"title": "Patch approval",
|
|
21
|
-
"description": "A high-risk patch approval that previews touched files,
|
|
22
|
-
"code": "<script lang=\"ts\">\n import { ApprovalCard } from '@lostgradient/cinder/approval-card';\n</script>\n\n<ApprovalCard\n tool={{ name: 'apply_patch', risk: 'high' }}\n sandbox={{\n provider: 'codex',\n name: 'workspace-write',\n workingDir: '/workspace/project',\n }}\n operation={{\n kind: 'patch',\n filesTouched: [\n 'packages/components/src/components/run-step-timeline/run-step-timeline.svelte',\n 'packages/components/src/components/run-step-timeline/run-step-timeline.types.ts',\n ],\n argsPreview: {\n strip: 0,\n files: 2,\n },\n diff: `--- a/run-step-timeline.types.ts\n+++ b/run-step-timeline.types.ts\n+@@\n+ export type RunStepStatus =\n+ | 'running'\n++ | 'waiting_approval'\n+ | 'succeeded';`,\n }}\n env={['CINDER_RELEASE_TOKEN']}\n snapshotId=\"snapshot-patch-01\"\n policyVersion=\"policy-2026-06\"\n idempotencyKey=\"approval-patch-01\"\n state=\"pending\"\n
|
|
21
|
+
"description": "A high-risk patch approval that previews the proposed diff, touched files, and arguments.",
|
|
22
|
+
"code": "<script lang=\"ts\">\n import { ApprovalCard } from '@lostgradient/cinder/approval-card';\n</script>\n\n<ApprovalCard\n tool={{ name: 'apply_patch', risk: 'high' }}\n sandbox={{\n provider: 'codex',\n name: 'workspace-write',\n workingDir: '/workspace/project',\n }}\n operation={{\n kind: 'patch',\n filesTouched: [\n 'packages/components/src/components/run-step-timeline/run-step-timeline.svelte',\n 'packages/components/src/components/run-step-timeline/run-step-timeline.types.ts',\n ],\n argsPreview: {\n strip: 0,\n files: 2,\n },\n diff: `--- a/run-step-timeline.types.ts\n+++ b/run-step-timeline.types.ts\n+@@\n+ export type RunStepStatus =\n+ | 'running'\n++ | 'waiting_approval'\n+ | 'succeeded';`,\n }}\n env={['CINDER_RELEASE_TOKEN']}\n snapshotId=\"snapshot-patch-01\"\n policyVersion=\"policy-2026-06\"\n idempotencyKey=\"approval-patch-01\"\n state=\"pending\"\n onresolve={() => undefined}\n/>\n"
|
|
23
23
|
}
|
|
24
24
|
]
|
|
25
25
|
}
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"items": {
|
|
57
57
|
"type": "string"
|
|
58
58
|
},
|
|
59
|
-
"description": "File paths that the operation may read or write."
|
|
59
|
+
"description": "File paths that the operation may read or write. Duplicate paths are collapsed for display."
|
|
60
60
|
},
|
|
61
61
|
"argsPreview": {
|
|
62
62
|
"description": "JSON-like argument preview shown to the approver."
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"items": {
|
|
78
78
|
"type": "string"
|
|
79
79
|
},
|
|
80
|
-
"description": "File paths that the operation may read or write. File-write approvals require at least one path.",
|
|
80
|
+
"description": "File paths that the operation may read or write. File-write approvals require at least one path. Duplicate paths are collapsed for display.",
|
|
81
81
|
"minItems": 1
|
|
82
82
|
},
|
|
83
83
|
"argsPreview": {
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"items": {
|
|
100
100
|
"type": "string"
|
|
101
101
|
},
|
|
102
|
-
"description": "File paths that the operation may read or write."
|
|
102
|
+
"description": "File paths that the operation may read or write. Duplicate paths are collapsed for display."
|
|
103
103
|
},
|
|
104
104
|
"argsPreview": {
|
|
105
105
|
"description": "JSON-like argument preview shown to the approver."
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"items": {
|
|
125
125
|
"type": "string"
|
|
126
126
|
},
|
|
127
|
-
"description": "File paths that the operation may read or write."
|
|
127
|
+
"description": "File paths that the operation may read or write. Duplicate paths are collapsed for display."
|
|
128
128
|
},
|
|
129
129
|
"argsPreview": {
|
|
130
130
|
"description": "JSON-like argument preview shown to the approver."
|
|
@@ -167,6 +167,10 @@
|
|
|
167
167
|
"type": "boolean",
|
|
168
168
|
"description": "Whether approving with edited JSON arguments is available. Default `false`."
|
|
169
169
|
},
|
|
170
|
+
"headingLevel": {
|
|
171
|
+
"enum": [2, 3, 4, 5, 6],
|
|
172
|
+
"description": "Heading level for the card title; section headings render one level deeper. Default `3`."
|
|
173
|
+
},
|
|
170
174
|
"class": {
|
|
171
175
|
"type": "string",
|
|
172
176
|
"description": "Additional CSS classes applied to the root element."
|
|
@@ -176,35 +180,10 @@
|
|
|
176
180
|
"required": ["idempotencyKey", "operation", "policyVersion", "state", "tool"],
|
|
177
181
|
"metadata": {
|
|
178
182
|
"unsupportedProps": [
|
|
179
|
-
{
|
|
180
|
-
"name": "onapprove",
|
|
181
|
-
"reason": "function-or-snippet",
|
|
182
|
-
"description": "Called when the approver accepts the operation as presented."
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
"name": "onapprovewithedits",
|
|
186
|
-
"reason": "function-or-snippet",
|
|
187
|
-
"description": "Called with parsed JSON arguments when the approver accepts edited arguments."
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
"name": "oncancel",
|
|
191
|
-
"reason": "function-or-snippet",
|
|
192
|
-
"description": "Called when the approver cancels the approval prompt."
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
"name": "ondeny",
|
|
196
|
-
"reason": "function-or-snippet",
|
|
197
|
-
"description": "Called when the approver denies the operation."
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
"name": "onremember",
|
|
201
|
-
"reason": "function-or-snippet",
|
|
202
|
-
"description": "Called when the approver asks the host application to remember the decision."
|
|
203
|
-
},
|
|
204
183
|
{
|
|
205
184
|
"name": "onresolve",
|
|
206
185
|
"reason": "function-or-snippet",
|
|
207
|
-
"description": "Called for approve, approve-with-edits, deny, and
|
|
186
|
+
"description": "Called for approve, approve-with-edits, deny, and dismiss with the complete resolution payload."
|
|
208
187
|
}
|
|
209
188
|
]
|
|
210
189
|
}
|
|
@@ -58,7 +58,8 @@ const schema = {
|
|
|
58
58
|
items: {
|
|
59
59
|
type: 'string',
|
|
60
60
|
},
|
|
61
|
-
description:
|
|
61
|
+
description:
|
|
62
|
+
'File paths that the operation may read or write. Duplicate paths are collapsed for display.',
|
|
62
63
|
},
|
|
63
64
|
argsPreview: {
|
|
64
65
|
description: 'JSON-like argument preview shown to the approver.',
|
|
@@ -80,7 +81,7 @@ const schema = {
|
|
|
80
81
|
type: 'string',
|
|
81
82
|
},
|
|
82
83
|
description:
|
|
83
|
-
'File paths that the operation may read or write. File-write approvals require at least one path.',
|
|
84
|
+
'File paths that the operation may read or write. File-write approvals require at least one path. Duplicate paths are collapsed for display.',
|
|
84
85
|
minItems: 1,
|
|
85
86
|
},
|
|
86
87
|
argsPreview: {
|
|
@@ -102,7 +103,8 @@ const schema = {
|
|
|
102
103
|
items: {
|
|
103
104
|
type: 'string',
|
|
104
105
|
},
|
|
105
|
-
description:
|
|
106
|
+
description:
|
|
107
|
+
'File paths that the operation may read or write. Duplicate paths are collapsed for display.',
|
|
106
108
|
},
|
|
107
109
|
argsPreview: {
|
|
108
110
|
description: 'JSON-like argument preview shown to the approver.',
|
|
@@ -127,7 +129,8 @@ const schema = {
|
|
|
127
129
|
items: {
|
|
128
130
|
type: 'string',
|
|
129
131
|
},
|
|
130
|
-
description:
|
|
132
|
+
description:
|
|
133
|
+
'File paths that the operation may read or write. Duplicate paths are collapsed for display.',
|
|
131
134
|
},
|
|
132
135
|
argsPreview: {
|
|
133
136
|
description: 'JSON-like argument preview shown to the approver.',
|
|
@@ -171,6 +174,11 @@ const schema = {
|
|
|
171
174
|
type: 'boolean',
|
|
172
175
|
description: 'Whether approving with edited JSON arguments is available. Default `false`.',
|
|
173
176
|
},
|
|
177
|
+
headingLevel: {
|
|
178
|
+
enum: [2, 3, 4, 5, 6],
|
|
179
|
+
description:
|
|
180
|
+
'Heading level for the card title; section headings render one level deeper. Default `3`.',
|
|
181
|
+
},
|
|
174
182
|
class: {
|
|
175
183
|
type: 'string',
|
|
176
184
|
description: 'Additional CSS classes applied to the root element.',
|
|
@@ -180,37 +188,11 @@ const schema = {
|
|
|
180
188
|
required: ['idempotencyKey', 'operation', 'policyVersion', 'state', 'tool'],
|
|
181
189
|
metadata: {
|
|
182
190
|
unsupportedProps: [
|
|
183
|
-
{
|
|
184
|
-
name: 'onapprove',
|
|
185
|
-
reason: 'function-or-snippet',
|
|
186
|
-
description: 'Called when the approver accepts the operation as presented.',
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
name: 'onapprovewithedits',
|
|
190
|
-
reason: 'function-or-snippet',
|
|
191
|
-
description:
|
|
192
|
-
'Called with parsed JSON arguments when the approver accepts edited arguments.',
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
name: 'oncancel',
|
|
196
|
-
reason: 'function-or-snippet',
|
|
197
|
-
description: 'Called when the approver cancels the approval prompt.',
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
name: 'ondeny',
|
|
201
|
-
reason: 'function-or-snippet',
|
|
202
|
-
description: 'Called when the approver denies the operation.',
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
name: 'onremember',
|
|
206
|
-
reason: 'function-or-snippet',
|
|
207
|
-
description: 'Called when the approver asks the host application to remember the decision.',
|
|
208
|
-
},
|
|
209
191
|
{
|
|
210
192
|
name: 'onresolve',
|
|
211
193
|
reason: 'function-or-snippet',
|
|
212
194
|
description:
|
|
213
|
-
'Called for approve, approve-with-edits, deny, and
|
|
195
|
+
'Called for approve, approve-with-edits, deny, and dismiss with the complete resolution payload.',
|
|
214
196
|
},
|
|
215
197
|
],
|
|
216
198
|
},
|