@flanksource/clicky-ui 0.3.34 → 0.3.36
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/README.md +4 -0
- package/dist/ai.cjs +4 -0
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +4 -0
- package/dist/ai.js.map +1 -1
- package/dist/comments/CommentCard.d.ts +1 -1
- package/dist/comments/CommentProvider.d.ts +1 -1
- package/dist/comments/CommentThread.d.ts +1 -1
- package/dist/comments/CommentThreadList.d.ts +1 -1
- package/dist/comments/MentionTextarea.d.ts +1 -1
- package/dist/comments/comment-context.d.ts +4 -4
- package/dist/comments/comment-fixtures.d.ts +1 -1
- package/dist/comments/comment-types.d.ts +1 -1
- package/dist/components/AccordionList.d.ts +1 -1
- package/dist/components/ComboboxControl.d.ts +1 -1
- package/dist/components/ComboboxMenu.d.ts +2 -2
- package/dist/components/ComboboxTags.cjs +41 -11
- package/dist/components/ComboboxTags.cjs.map +1 -1
- package/dist/components/ComboboxTags.d.ts +6 -0
- package/dist/components/ComboboxTags.d.ts.map +1 -1
- package/dist/components/ComboboxTags.js +41 -11
- package/dist/components/ComboboxTags.js.map +1 -1
- package/dist/components/DateField.d.ts +3 -3
- package/dist/components/DatePicker.d.ts +3 -3
- package/dist/components/DateTimePicker.d.ts +3 -3
- package/dist/components/ErrorWrapper.d.ts +2 -2
- package/dist/components/Field.d.ts +1 -1
- package/dist/components/FilterBar.d.ts +1 -1
- package/dist/components/FormLookupProvider.d.ts +1 -1
- package/dist/components/FormatOptionsDropdown.d.ts +1 -1
- package/dist/components/IconButton.d.ts +3 -3
- package/dist/components/InputField.d.ts +2 -2
- package/dist/components/ItemActions.d.ts +1 -1
- package/dist/components/JsonSchemaForm.cjs +17 -36
- package/dist/components/JsonSchemaForm.cjs.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts +1 -1
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.js +17 -36
- package/dist/components/JsonSchemaForm.js.map +1 -1
- package/dist/components/ListMenu.d.ts +1 -1
- package/dist/components/MultiSelect.d.ts +1 -1
- package/dist/components/SearchInput.d.ts +1 -1
- package/dist/components/SegmentedControl.d.ts +1 -1
- package/dist/components/SplitButton.d.ts +1 -1
- package/dist/components/Switch.d.ts +1 -1
- package/dist/components/TreePickerField.cjs +11 -2
- package/dist/components/TreePickerField.cjs.map +1 -1
- package/dist/components/TreePickerField.d.ts +13 -4
- package/dist/components/TreePickerField.d.ts.map +1 -1
- package/dist/components/TreePickerField.js +11 -2
- package/dist/components/TreePickerField.js.map +1 -1
- package/dist/components/UnitStepControls.d.ts +1 -1
- package/dist/components/button.d.ts +3 -3
- package/dist/components/combobox-types.d.ts +1 -1
- package/dist/components/density-switcher.d.ts +1 -1
- package/dist/components/filter-bar-context.d.ts +1 -1
- package/dist/components/filter-bar-field-utils.d.ts +2 -2
- package/dist/components/form-lookup-context.d.ts +1 -1
- package/dist/components/icon-menu-picker.d.ts +1 -1
- package/dist/components/json-schema-form-accordion-array.cjs +44 -21
- package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
- package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-accordion-array.js +47 -24
- package/dist/components/json-schema-form-accordion-array.js.map +1 -1
- package/dist/components/json-schema-form-array.cjs +53 -30
- package/dist/components/json-schema-form-array.cjs.map +1 -1
- package/dist/components/json-schema-form-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-array.js +54 -31
- package/dist/components/json-schema-form-array.js.map +1 -1
- package/dist/components/json-schema-form-cards-array.cjs +32 -22
- package/dist/components/json-schema-form-cards-array.cjs.map +1 -1
- package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-cards-array.js +33 -23
- package/dist/components/json-schema-form-cards-array.js.map +1 -1
- package/dist/components/json-schema-form-collection-layouts.fixtures.d.ts +44 -0
- package/dist/components/json-schema-form-collection-layouts.fixtures.d.ts.map +1 -0
- package/dist/components/json-schema-form-discriminator.d.ts +1 -1
- package/dist/components/json-schema-form-errors.cjs +5 -1
- package/dist/components/json-schema-form-errors.cjs.map +1 -1
- package/dist/components/json-schema-form-errors.d.ts +2 -1
- package/dist/components/json-schema-form-errors.d.ts.map +1 -1
- package/dist/components/json-schema-form-errors.js +6 -2
- package/dist/components/json-schema-form-errors.js.map +1 -1
- package/dist/components/json-schema-form-extensions.d.ts +1 -1
- package/dist/components/json-schema-form-filter-input.cjs +50 -0
- package/dist/components/json-schema-form-filter-input.cjs.map +1 -0
- package/dist/components/json-schema-form-filter-input.d.ts +5 -0
- package/dist/components/json-schema-form-filter-input.d.ts.map +1 -0
- package/dist/components/json-schema-form-filter-input.js +50 -0
- package/dist/components/json-schema-form-filter-input.js.map +1 -0
- package/dist/components/json-schema-form-filter.cjs +49 -0
- package/dist/components/json-schema-form-filter.cjs.map +1 -0
- package/dist/components/json-schema-form-filter.d.ts +8 -0
- package/dist/components/json-schema-form-filter.d.ts.map +1 -0
- package/dist/components/json-schema-form-filter.js +49 -0
- package/dist/components/json-schema-form-filter.js.map +1 -0
- package/dist/components/json-schema-form-layout.cjs +84 -17
- package/dist/components/json-schema-form-layout.cjs.map +1 -1
- package/dist/components/json-schema-form-layout.d.ts +1 -1
- package/dist/components/json-schema-form-layout.d.ts.map +1 -1
- package/dist/components/json-schema-form-layout.js +84 -17
- package/dist/components/json-schema-form-layout.js.map +1 -1
- package/dist/components/json-schema-form-list-array.cjs +16 -5
- package/dist/components/json-schema-form-list-array.cjs.map +1 -1
- package/dist/components/json-schema-form-list-array.d.ts +2 -1
- package/dist/components/json-schema-form-list-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-list-array.js +16 -5
- package/dist/components/json-schema-form-list-array.js.map +1 -1
- package/dist/components/json-schema-form-object.cjs +239 -85
- package/dist/components/json-schema-form-object.cjs.map +1 -1
- package/dist/components/json-schema-form-object.d.ts +2 -2
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.js +241 -87
- package/dist/components/json-schema-form-object.js.map +1 -1
- package/dist/components/json-schema-form-preferences.cjs +1 -1
- package/dist/components/json-schema-form-preferences.cjs.map +1 -1
- package/dist/components/json-schema-form-preferences.d.ts +1 -1
- package/dist/components/json-schema-form-preferences.d.ts.map +1 -1
- package/dist/components/json-schema-form-preferences.js +1 -1
- package/dist/components/json-schema-form-preferences.js.map +1 -1
- package/dist/components/json-schema-form-properties-errors.fixtures.d.ts +14 -0
- package/dist/components/json-schema-form-properties-errors.fixtures.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties-size.cjs +19 -0
- package/dist/components/json-schema-form-properties-size.cjs.map +1 -0
- package/dist/components/json-schema-form-properties-size.d.ts +4 -0
- package/dist/components/json-schema-form-properties-size.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties-size.js +19 -0
- package/dist/components/json-schema-form-properties-size.js.map +1 -0
- package/dist/components/json-schema-form-properties.cjs +305 -0
- package/dist/components/json-schema-form-properties.cjs.map +1 -0
- package/dist/components/json-schema-form-properties.d.ts +20 -0
- package/dist/components/json-schema-form-properties.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties.fixtures.d.ts +157 -0
- package/dist/components/json-schema-form-properties.fixtures.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties.js +305 -0
- package/dist/components/json-schema-form-properties.js.map +1 -0
- package/dist/components/json-schema-form-property-actions-context.cjs +6 -0
- package/dist/components/json-schema-form-property-actions-context.cjs.map +1 -0
- package/dist/components/json-schema-form-property-actions-context.d.ts +2 -0
- package/dist/components/json-schema-form-property-actions-context.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-actions-context.js +6 -0
- package/dist/components/json-schema-form-property-actions-context.js.map +1 -0
- package/dist/components/json-schema-form-property-collection.cjs +31 -0
- package/dist/components/json-schema-form-property-collection.cjs.map +1 -0
- package/dist/components/json-schema-form-property-collection.d.ts +6 -0
- package/dist/components/json-schema-form-property-collection.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-collection.js +31 -0
- package/dist/components/json-schema-form-property-collection.js.map +1 -0
- package/dist/components/json-schema-form-property-draft.cjs +45 -0
- package/dist/components/json-schema-form-property-draft.cjs.map +1 -0
- package/dist/components/json-schema-form-property-draft.d.ts +8 -0
- package/dist/components/json-schema-form-property-draft.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-draft.js +45 -0
- package/dist/components/json-schema-form-property-draft.js.map +1 -0
- package/dist/components/json-schema-form-property-preview.cjs +68 -0
- package/dist/components/json-schema-form-property-preview.cjs.map +1 -0
- package/dist/components/json-schema-form-property-preview.d.ts +7 -0
- package/dist/components/json-schema-form-property-preview.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-preview.js +68 -0
- package/dist/components/json-schema-form-property-preview.js.map +1 -0
- package/dist/components/json-schema-form-property-selection.cjs +89 -0
- package/dist/components/json-schema-form-property-selection.cjs.map +1 -0
- package/dist/components/json-schema-form-property-selection.d.ts +6 -0
- package/dist/components/json-schema-form-property-selection.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-selection.js +89 -0
- package/dist/components/json-schema-form-property-selection.js.map +1 -0
- package/dist/components/json-schema-form-render.cjs +41 -4
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +42 -5
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +2 -0
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +2 -0
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-runtime-types.d.ts +222 -0
- package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -0
- package/dist/components/json-schema-form-table-array.cjs +82 -51
- package/dist/components/json-schema-form-table-array.cjs.map +1 -1
- package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-table-array.js +84 -53
- package/dist/components/json-schema-form-table-array.js.map +1 -1
- package/dist/components/json-schema-form-template-menu.d.ts +1 -1
- package/dist/components/json-schema-form-template.d.ts +1 -1
- package/dist/components/json-schema-form-types.d.ts +7 -179
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.cjs +10 -9
- package/dist/components/json-schema-form-utils.cjs.map +1 -1
- package/dist/components/json-schema-form-utils.d.ts +11 -1
- package/dist/components/json-schema-form-utils.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.js +10 -9
- package/dist/components/json-schema-form-utils.js.map +1 -1
- package/dist/components/loading.d.ts +4 -4
- package/dist/components/mdx-editor-callout.d.ts +1 -1
- package/dist/components/mdx-editor-options.d.ts +1 -1
- package/dist/components/select.d.ts +3 -3
- package/dist/components/theme-switcher.d.ts +1 -1
- package/dist/components/use-list-menu-selection.d.ts +1 -1
- package/dist/components/useComboboxLayout.d.ts +1 -1
- package/dist/components/workload-picker-utils.d.ts +1 -1
- package/dist/data/Avatar.d.ts +1 -1
- package/dist/data/AvatarBadge.d.ts +1 -1
- package/dist/data/Badge.d.ts +1 -1
- package/dist/data/Callout.d.ts +1 -1
- package/dist/data/DataTable.cjs +575 -435
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +21 -13
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.grouping.d.ts +1 -1
- package/dist/data/DataTable.js +575 -435
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/ExecutionTree.d.ts +1 -1
- package/dist/data/FilterPill.d.ts +1 -1
- package/dist/data/FixtureEditor/RawFenceEditor.d.ts +1 -1
- package/dist/data/FixtureEditor/types.d.ts +1 -1
- package/dist/data/Gauge.d.ts +1 -1
- package/dist/data/GaugeHoverCard.d.ts +1 -1
- package/dist/data/Icon.d.ts +1 -1
- package/dist/data/KeyValueList.d.ts +1 -1
- package/dist/data/MarkdownEditor.d.ts +1 -1
- package/dist/data/MatrixTable.d.ts +1 -1
- package/dist/data/ObjectGraph.d.ts +1 -1
- package/dist/data/ProgressBars.d.ts +1 -1
- package/dist/data/Properties.cjs +86 -35
- package/dist/data/Properties.cjs.map +1 -1
- package/dist/data/Properties.d.ts +2 -2
- package/dist/data/Properties.d.ts.map +1 -1
- package/dist/data/Properties.js +87 -36
- package/dist/data/Properties.js.map +1 -1
- package/dist/data/RadialGauge.d.ts +1 -1
- package/dist/data/SchemaViewer.d.ts +1 -1
- package/dist/data/SortableHeader.d.ts +1 -1
- package/dist/data/StatStrip.d.ts +1 -1
- package/dist/data/StatusBreakdown.d.ts +1 -1
- package/dist/data/TabButton.d.ts +1 -1
- package/dist/data/TaskHeaderExtras.cjs +35 -0
- package/dist/data/TaskHeaderExtras.cjs.map +1 -0
- package/dist/data/TaskHeaderExtras.d.ts +27 -0
- package/dist/data/TaskHeaderExtras.d.ts.map +1 -0
- package/dist/data/TaskHeaderExtras.js +35 -0
- package/dist/data/TaskHeaderExtras.js.map +1 -0
- package/dist/data/TaskManager.cjs +27 -23
- package/dist/data/TaskManager.cjs.map +1 -1
- package/dist/data/TaskManager.d.ts +13 -1
- package/dist/data/TaskManager.d.ts.map +1 -1
- package/dist/data/TaskManager.js +27 -23
- package/dist/data/TaskManager.js.map +1 -1
- package/dist/data/TaskManagerButton.cjs +17 -34
- package/dist/data/TaskManagerButton.cjs.map +1 -1
- package/dist/data/TaskManagerButton.d.ts.map +1 -1
- package/dist/data/TaskManagerButton.js +18 -35
- package/dist/data/TaskManagerButton.js.map +1 -1
- package/dist/data/TaskProcessDetails.cjs +7 -25
- package/dist/data/TaskProcessDetails.cjs.map +1 -1
- package/dist/data/TaskProcessDetails.d.ts +2 -1
- package/dist/data/TaskProcessDetails.d.ts.map +1 -1
- package/dist/data/TaskProcessDetails.js +7 -25
- package/dist/data/TaskProcessDetails.js.map +1 -1
- package/dist/data/TaskProcessMetadata.cjs +50 -0
- package/dist/data/TaskProcessMetadata.cjs.map +1 -0
- package/dist/data/TaskProcessMetadata.d.ts +20 -0
- package/dist/data/TaskProcessMetadata.d.ts.map +1 -0
- package/dist/data/TaskProcessMetadata.js +50 -0
- package/dist/data/TaskProcessMetadata.js.map +1 -0
- package/dist/data/TaskProgress.cjs +41 -41
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts +15 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +41 -41
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskResourceReadings.cjs +42 -0
- package/dist/data/TaskResourceReadings.cjs.map +1 -0
- package/dist/data/TaskResourceReadings.d.ts +6 -0
- package/dist/data/TaskResourceReadings.d.ts.map +1 -0
- package/dist/data/TaskResourceReadings.js +42 -0
- package/dist/data/TaskResourceReadings.js.map +1 -0
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +36 -1
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/TaskStreamTabs.cjs +78 -0
- package/dist/data/TaskStreamTabs.cjs.map +1 -0
- package/dist/data/TaskStreamTabs.d.ts +35 -0
- package/dist/data/TaskStreamTabs.d.ts.map +1 -0
- package/dist/data/TaskStreamTabs.js +78 -0
- package/dist/data/TaskStreamTabs.js.map +1 -0
- package/dist/data/Timeline.d.ts +1 -1
- package/dist/data/Tree.d.ts +1 -1
- package/dist/data/TreeGroupHeader.d.ts +1 -1
- package/dist/data/TreeNode.d.ts +1 -1
- package/dist/data/Version.d.ts +3 -3
- package/dist/data/ai/ChatWindow.cjs +22 -12
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +22 -12
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.test-utils.d.ts +4 -2
- package/dist/data/ai/ChatWindow.test-utils.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.types.d.ts +1 -1
- package/dist/data/ai/ChatWindowManager.cjs +2 -0
- package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
- package/dist/data/ai/ChatWindowManager.d.ts +1 -1
- package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
- package/dist/data/ai/ChatWindowManager.js +2 -0
- package/dist/data/ai/ChatWindowManager.js.map +1 -1
- package/dist/data/ai/PolicyTree.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/types.d.ts +1 -1
- package/dist/data/ai/PromptRunEditor/index.cjs +4 -0
- package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts +5 -2
- package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.js +4 -0
- package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
- package/dist/data/ai/SessionChatComposer.d.ts +1 -1
- package/dist/data/ai/SessionInspector.approvals-model.cjs +9 -0
- package/dist/data/ai/SessionInspector.approvals-model.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.approvals-model.d.ts +17 -0
- package/dist/data/ai/SessionInspector.approvals-model.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.approvals-model.js +9 -0
- package/dist/data/ai/SessionInspector.approvals-model.js.map +1 -0
- package/dist/data/ai/SessionInspector.approvals.cjs +143 -0
- package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.approvals.d.ts +13 -0
- package/dist/data/ai/SessionInspector.approvals.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.approvals.js +143 -0
- package/dist/data/ai/SessionInspector.approvals.js.map +1 -0
- package/dist/data/ai/SessionInspector.cjs +21 -8
- package/dist/data/ai/SessionInspector.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.d.ts +6 -2
- package/dist/data/ai/SessionInspector.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.d.ts +1 -1
- package/dist/data/ai/SessionInspector.js +21 -8
- package/dist/data/ai/SessionInspector.js.map +1 -1
- package/dist/data/ai/SessionInspector.panel-parts.cjs +34 -0
- package/dist/data/ai/SessionInspector.panel-parts.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.panel-parts.d.ts +19 -0
- package/dist/data/ai/SessionInspector.panel-parts.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.panel-parts.js +34 -0
- package/dist/data/ai/SessionInspector.panel-parts.js.map +1 -0
- package/dist/data/ai/SessionInspector.panel-values.cjs +18 -0
- package/dist/data/ai/SessionInspector.panel-values.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.panel-values.d.ts +13 -0
- package/dist/data/ai/SessionInspector.panel-values.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.panel-values.js +18 -0
- package/dist/data/ai/SessionInspector.panel-values.js.map +1 -0
- package/dist/data/ai/SessionInspector.panels.cjs +41 -99
- package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.panels.d.ts +3 -1
- package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.panels.js +13 -71
- package/dist/data/ai/SessionInspector.panels.js.map +1 -1
- package/dist/data/ai/SessionViewer.d.ts +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts +1 -1
- package/dist/data/ai/SessionViewer.tool-details.d.ts +1 -1
- package/dist/data/ai/SessionViewer.unified.d.ts +23 -0
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs +3 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +3 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.js +3 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.cjs +3 -1
- package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts +5 -2
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.js +3 -1
- package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
- package/dist/data/ai/chat-window-context.cjs +1 -0
- package/dist/data/ai/chat-window-context.cjs.map +1 -1
- package/dist/data/ai/chat-window-context.d.ts +13 -5
- package/dist/data/ai/chat-window-context.d.ts.map +1 -1
- package/dist/data/ai/chat-window-context.js +1 -0
- package/dist/data/ai/chat-window-context.js.map +1 -1
- package/dist/data/ai/index.d.ts +3 -1
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/use-session-scroll.d.ts +1 -1
- package/dist/data/cache-browser/adapter.d.ts +1 -1
- package/dist/data/cells/CellFilterActions.d.ts +1 -1
- package/dist/data/cells/EntityCell.d.ts +1 -1
- package/dist/data/cells/tag-utils.d.ts +1 -1
- package/dist/data/chat/Chat.cjs +42 -46
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts +16 -5
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.js +43 -47
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/ModelSelector.d.ts +1 -1
- package/dist/data/chat/PromptInput.cjs +13 -0
- package/dist/data/chat/PromptInput.cjs.map +1 -1
- package/dist/data/chat/PromptInput.d.ts +8 -2
- package/dist/data/chat/PromptInput.d.ts.map +1 -1
- package/dist/data/chat/PromptInput.js +14 -1
- package/dist/data/chat/PromptInput.js.map +1 -1
- package/dist/data/chat/tool-render/ToolArgs.d.ts +1 -1
- package/dist/data/chat/tool-render/ToolParams.d.ts +1 -1
- package/dist/data/chat/tool-render/ToolValue.d.ts +1 -1
- package/dist/data/chat/tool-render/adapter.d.ts +1 -1
- package/dist/data/chat/tool-render/context.d.ts +1 -1
- package/dist/data/chat/tool-render/defaults.d.ts +1 -1
- package/dist/data/chat/tool-render/known-tool-views.d.ts +1 -1
- package/dist/data/chat/tool-render/summary.d.ts +1 -1
- package/dist/data/chat/types.d.ts +1 -1
- package/dist/data/clicky-export/useClickyExport.d.ts +1 -1
- package/dist/data/data-table-server-filters.d.ts +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +1 -1
- package/dist/data/diagnostics/ErrorDetails.d.ts +1 -1
- package/dist/data/diagnostics/StackFrameRow.d.ts +1 -1
- package/dist/data/git/GitChangeList.d.ts +1 -1
- package/dist/data/icon-fallback.d.ts +1 -1
- package/dist/data/properties-context.cjs +6 -0
- package/dist/data/properties-context.cjs.map +1 -0
- package/dist/data/properties-context.d.ts +7 -0
- package/dist/data/properties-context.d.ts.map +1 -0
- package/dist/data/properties-context.js +6 -0
- package/dist/data/properties-context.js.map +1 -0
- package/dist/data/query-browser/QueryBrowser.types.d.ts +1 -1
- package/dist/data/runtime/RuntimeBar.cjs +7 -3
- package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.js +7 -3
- package/dist/data/runtime/RuntimeBar.js.map +1 -1
- package/dist/data/task-copy.cjs +1 -1
- package/dist/data/task-copy.cjs.map +1 -1
- package/dist/data/task-copy.js +1 -1
- package/dist/data/task-copy.js.map +1 -1
- package/dist/data/task-metadata.cjs +36 -0
- package/dist/data/task-metadata.cjs.map +1 -0
- package/dist/data/task-metadata.d.ts +39 -0
- package/dist/data/task-metadata.d.ts.map +1 -0
- package/dist/data/task-metadata.js +36 -0
- package/dist/data/task-metadata.js.map +1 -0
- package/dist/data/task-resource-summary.cjs +30 -0
- package/dist/data/task-resource-summary.cjs.map +1 -0
- package/dist/data/task-resource-summary.d.ts +15 -0
- package/dist/data/task-resource-summary.d.ts.map +1 -0
- package/dist/data/task-resource-summary.js +30 -0
- package/dist/data/task-resource-summary.js.map +1 -0
- package/dist/data/task-status.cjs +8 -2
- package/dist/data/task-status.cjs.map +1 -1
- package/dist/data/task-status.d.ts +3 -0
- package/dist/data/task-status.d.ts.map +1 -1
- package/dist/data/task-status.js +8 -2
- package/dist/data/task-status.js.map +1 -1
- package/dist/data/task-streams.cjs +39 -0
- package/dist/data/task-streams.cjs.map +1 -0
- package/dist/data/task-streams.d.ts +60 -0
- package/dist/data/task-streams.d.ts.map +1 -0
- package/dist/data/task-streams.js +39 -0
- package/dist/data/task-streams.js.map +1 -0
- package/dist/data/task-work-progress.cjs +24 -0
- package/dist/data/task-work-progress.cjs.map +1 -0
- package/dist/data/task-work-progress.d.ts +21 -0
- package/dist/data/task-work-progress.d.ts.map +1 -0
- package/dist/data/task-work-progress.js +24 -0
- package/dist/data/task-work-progress.js.map +1 -0
- package/dist/data/test-runner/TestRunner.d.ts +1 -1
- package/dist/data/test-runner/adapter.d.ts +1 -1
- package/dist/data/test-runner/context.d.ts +1 -1
- package/dist/data/use-data-table-virtual.cjs +73 -0
- package/dist/data/use-data-table-virtual.cjs.map +1 -0
- package/dist/data/use-data-table-virtual.d.ts +40 -0
- package/dist/data/use-data-table-virtual.d.ts.map +1 -0
- package/dist/data/use-data-table-virtual.js +73 -0
- package/dist/data/use-data-table-virtual.js.map +1 -0
- package/dist/data/verification/VerificationResults.d.ts +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +14 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +6 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +14 -0
- package/dist/data.js.map +1 -1
- package/dist/expressions/lang/attributes.cjs +56 -0
- package/dist/expressions/lang/attributes.cjs.map +1 -0
- package/dist/expressions/lang/attributes.d.ts +22 -0
- package/dist/expressions/lang/attributes.d.ts.map +1 -0
- package/dist/expressions/lang/attributes.js +56 -0
- package/dist/expressions/lang/attributes.js.map +1 -0
- package/dist/expressions/lang/completion.cjs +164 -0
- package/dist/expressions/lang/completion.cjs.map +1 -0
- package/dist/expressions/lang/completion.d.ts +29 -0
- package/dist/expressions/lang/completion.d.ts.map +1 -0
- package/dist/expressions/lang/completion.js +164 -0
- package/dist/expressions/lang/completion.js.map +1 -0
- package/dist/expressions/lang/environment.cjs +115 -0
- package/dist/expressions/lang/environment.cjs.map +1 -0
- package/dist/expressions/lang/environment.d.ts +54 -0
- package/dist/expressions/lang/environment.d.ts.map +1 -0
- package/dist/expressions/lang/environment.js +115 -0
- package/dist/expressions/lang/environment.js.map +1 -0
- package/dist/expressions/lang/generated/conformance.json.d.ts +4962 -0
- package/dist/expressions/lang/generated/index.cjs +18 -0
- package/dist/expressions/lang/generated/index.cjs.map +1 -0
- package/dist/expressions/lang/generated/index.d.ts +9 -0
- package/dist/expressions/lang/generated/index.d.ts.map +1 -0
- package/dist/expressions/lang/generated/index.js +18 -0
- package/dist/expressions/lang/generated/index.js.map +1 -0
- package/dist/expressions/lang/generated/languages.json.cjs +18 -0
- package/dist/expressions/lang/generated/languages.json.cjs.map +1 -0
- package/dist/expressions/lang/generated/languages.json.d.ts +2305 -0
- package/dist/expressions/lang/generated/languages.json.js +18 -0
- package/dist/expressions/lang/generated/languages.json.js.map +1 -0
- package/dist/expressions/lang/generated/spec.json.cjs +12 -0
- package/dist/expressions/lang/generated/spec.json.cjs.map +1 -0
- package/dist/expressions/lang/generated/spec.json.d.ts +6260 -0
- package/dist/expressions/lang/generated/spec.json.js +12 -0
- package/dist/expressions/lang/generated/spec.json.js.map +1 -0
- package/dist/expressions/lang/hover.cjs +106 -0
- package/dist/expressions/lang/hover.cjs.map +1 -0
- package/dist/expressions/lang/hover.d.ts +54 -0
- package/dist/expressions/lang/hover.d.ts.map +1 -0
- package/dist/expressions/lang/hover.js +106 -0
- package/dist/expressions/lang/hover.js.map +1 -0
- package/dist/expressions/lang/index.cjs +87 -0
- package/dist/expressions/lang/index.cjs.map +1 -0
- package/dist/expressions/lang/index.d.ts +65 -0
- package/dist/expressions/lang/index.d.ts.map +1 -0
- package/dist/expressions/lang/index.js +90 -0
- package/dist/expressions/lang/index.js.map +1 -0
- package/dist/expressions/lang/merge.cjs +52 -0
- package/dist/expressions/lang/merge.cjs.map +1 -0
- package/dist/expressions/lang/merge.d.ts +12 -0
- package/dist/expressions/lang/merge.d.ts.map +1 -0
- package/dist/expressions/lang/merge.js +52 -0
- package/dist/expressions/lang/merge.js.map +1 -0
- package/dist/expressions/lang/prefix.cjs +91 -0
- package/dist/expressions/lang/prefix.cjs.map +1 -0
- package/dist/expressions/lang/prefix.d.ts +36 -0
- package/dist/expressions/lang/prefix.d.ts.map +1 -0
- package/dist/expressions/lang/prefix.js +91 -0
- package/dist/expressions/lang/prefix.js.map +1 -0
- package/dist/expressions/lang/spec.d.ts +13 -0
- package/dist/expressions/lang/spec.d.ts.map +1 -0
- package/dist/expressions/lang/theme.cjs +97 -0
- package/dist/expressions/lang/theme.cjs.map +1 -0
- package/dist/expressions/lang/theme.d.ts +6 -0
- package/dist/expressions/lang/theme.d.ts.map +1 -0
- package/dist/expressions/lang/theme.js +97 -0
- package/dist/expressions/lang/theme.js.map +1 -0
- package/dist/expressions/lang/types.d.ts +81 -0
- package/dist/expressions/lang/types.d.ts.map +1 -0
- package/dist/expressions/playground/ExpressionPlayground.cjs +308 -0
- package/dist/expressions/playground/ExpressionPlayground.cjs.map +1 -0
- package/dist/expressions/playground/ExpressionPlayground.d.ts +42 -0
- package/dist/expressions/playground/ExpressionPlayground.d.ts.map +1 -0
- package/dist/expressions/playground/ExpressionPlayground.js +291 -0
- package/dist/expressions/playground/ExpressionPlayground.js.map +1 -0
- package/dist/expressions/playground/RunControls.cjs +51 -0
- package/dist/expressions/playground/RunControls.cjs.map +1 -0
- package/dist/expressions/playground/RunControls.d.ts +7 -0
- package/dist/expressions/playground/RunControls.d.ts.map +1 -0
- package/dist/expressions/playground/RunControls.js +51 -0
- package/dist/expressions/playground/RunControls.js.map +1 -0
- package/dist/expressions/playground/VerticalSplit.cjs +109 -0
- package/dist/expressions/playground/VerticalSplit.cjs.map +1 -0
- package/dist/expressions/playground/VerticalSplit.d.ts +23 -0
- package/dist/expressions/playground/VerticalSplit.d.ts.map +1 -0
- package/dist/expressions/playground/VerticalSplit.js +109 -0
- package/dist/expressions/playground/VerticalSplit.js.map +1 -0
- package/dist/expressions/playground/api.cjs +49 -0
- package/dist/expressions/playground/api.cjs.map +1 -0
- package/dist/expressions/playground/api.d.ts +53 -0
- package/dist/expressions/playground/api.d.ts.map +1 -0
- package/dist/expressions/playground/api.js +49 -0
- package/dist/expressions/playground/api.js.map +1 -0
- package/dist/expressions/playground/languages.cjs +88 -0
- package/dist/expressions/playground/languages.cjs.map +1 -0
- package/dist/expressions/playground/languages.d.ts +43 -0
- package/dist/expressions/playground/languages.d.ts.map +1 -0
- package/dist/expressions/playground/languages.js +88 -0
- package/dist/expressions/playground/languages.js.map +1 -0
- package/dist/expressions/playground/panels/GraphPanel.cjs +72 -0
- package/dist/expressions/playground/panels/GraphPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/GraphPanel.d.ts +19 -0
- package/dist/expressions/playground/panels/GraphPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/GraphPanel.js +72 -0
- package/dist/expressions/playground/panels/GraphPanel.js.map +1 -0
- package/dist/expressions/playground/panels/ResultPanel.cjs +82 -0
- package/dist/expressions/playground/panels/ResultPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/ResultPanel.d.ts +11 -0
- package/dist/expressions/playground/panels/ResultPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/ResultPanel.js +82 -0
- package/dist/expressions/playground/panels/ResultPanel.js.map +1 -0
- package/dist/expressions/playground/panels/SpecPanel.cjs +76 -0
- package/dist/expressions/playground/panels/SpecPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/SpecPanel.d.ts +18 -0
- package/dist/expressions/playground/panels/SpecPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/SpecPanel.js +76 -0
- package/dist/expressions/playground/panels/SpecPanel.js.map +1 -0
- package/dist/expressions/playground/panels/TokensPanel.cjs +89 -0
- package/dist/expressions/playground/panels/TokensPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/TokensPanel.d.ts +15 -0
- package/dist/expressions/playground/panels/TokensPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/TokensPanel.js +72 -0
- package/dist/expressions/playground/panels/TokensPanel.js.map +1 -0
- package/dist/expressions/playground/panels/graphNodes.cjs +35 -0
- package/dist/expressions/playground/panels/graphNodes.cjs.map +1 -0
- package/dist/expressions/playground/panels/graphNodes.d.ts +19 -0
- package/dist/expressions/playground/panels/graphNodes.d.ts.map +1 -0
- package/dist/expressions/playground/panels/graphNodes.js +35 -0
- package/dist/expressions/playground/panels/graphNodes.js.map +1 -0
- package/dist/expressions/playground/runAction.cjs +12 -0
- package/dist/expressions/playground/runAction.cjs.map +1 -0
- package/dist/expressions/playground/runAction.d.ts +15 -0
- package/dist/expressions/playground/runAction.d.ts.map +1 -0
- package/dist/expressions/playground/runAction.js +12 -0
- package/dist/expressions/playground/runAction.js.map +1 -0
- package/dist/expressions/playground/runShortcut.cjs +9 -0
- package/dist/expressions/playground/runShortcut.cjs.map +1 -0
- package/dist/expressions/playground/runShortcut.d.ts +2 -0
- package/dist/expressions/playground/runShortcut.d.ts.map +1 -0
- package/dist/expressions/playground/runShortcut.js +9 -0
- package/dist/expressions/playground/runShortcut.js.map +1 -0
- package/dist/expressions/playground/useEditorTheme.cjs +40 -0
- package/dist/expressions/playground/useEditorTheme.cjs.map +1 -0
- package/dist/expressions/playground/useEditorTheme.d.ts +16 -0
- package/dist/expressions/playground/useEditorTheme.d.ts.map +1 -0
- package/dist/expressions/playground/useEditorTheme.js +23 -0
- package/dist/expressions/playground/useEditorTheme.js.map +1 -0
- package/dist/expressions/playground/useEvaluator.cjs +72 -0
- package/dist/expressions/playground/useEvaluator.cjs.map +1 -0
- package/dist/expressions/playground/useEvaluator.d.ts +25 -0
- package/dist/expressions/playground/useEvaluator.d.ts.map +1 -0
- package/dist/expressions/playground/useEvaluator.js +72 -0
- package/dist/expressions/playground/useEvaluator.js.map +1 -0
- package/dist/expressions/playground/useParsedInput.cjs +22 -0
- package/dist/expressions/playground/useParsedInput.cjs.map +1 -0
- package/dist/expressions/playground/useParsedInput.d.ts +20 -0
- package/dist/expressions/playground/useParsedInput.d.ts.map +1 -0
- package/dist/expressions/playground/useParsedInput.js +22 -0
- package/dist/expressions/playground/useParsedInput.js.map +1 -0
- package/dist/expressions/playground/verticalSplitModel.cjs +11 -0
- package/dist/expressions/playground/verticalSplitModel.cjs.map +1 -0
- package/dist/expressions/playground/verticalSplitModel.d.ts +3 -0
- package/dist/expressions/playground/verticalSplitModel.d.ts.map +1 -0
- package/dist/expressions/playground/verticalSplitModel.js +11 -0
- package/dist/expressions/playground/verticalSplitModel.js.map +1 -0
- package/dist/expressions/playground.cjs +18 -0
- package/dist/expressions/playground.cjs.map +1 -0
- package/dist/expressions/playground.d.ts +18 -0
- package/dist/expressions/playground.d.ts.map +1 -0
- package/dist/expressions/playground.js +18 -0
- package/dist/expressions/playground.js.map +1 -0
- package/dist/expressions.cjs +28 -0
- package/dist/expressions.cjs.map +1 -0
- package/dist/expressions.d.ts +10 -0
- package/dist/expressions.d.ts.map +1 -0
- package/dist/expressions.js +28 -0
- package/dist/expressions.js.map +1 -0
- package/dist/hooks/density-provider.d.ts +1 -1
- package/dist/hooks/theme-provider.d.ts +1 -1
- package/dist/hooks/use-density.d.ts +1 -1
- package/dist/hooks/use-resource-clock.cjs +14 -0
- package/dist/hooks/use-resource-clock.cjs.map +1 -0
- package/dist/hooks/use-resource-clock.d.ts +2 -0
- package/dist/hooks/use-resource-clock.d.ts.map +1 -0
- package/dist/hooks/use-resource-clock.js +14 -0
- package/dist/hooks/use-resource-clock.js.map +1 -0
- package/dist/hooks/use-task-run.cjs +25 -18
- package/dist/hooks/use-task-run.cjs.map +1 -1
- package/dist/hooks/use-task-run.d.ts.map +1 -1
- package/dist/hooks/use-task-run.js +26 -19
- package/dist/hooks/use-task-run.js.map +1 -1
- package/dist/hooks/use-theme.d.ts +1 -1
- package/dist/icons/registry.d.ts +1 -1
- package/dist/icons/types.d.ts +1 -1
- package/dist/index.cjs +14 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/layout/AppShell.d.ts +1 -1
- package/dist/layout/AppShell.nav.drag.d.ts +1 -1
- package/dist/layout/AppSidebar.d.ts +1 -1
- package/dist/layout/Panel.d.ts +1 -1
- package/dist/layout/PanelFrame.d.ts +1 -1
- package/dist/layout/Section.d.ts +1 -1
- package/dist/layout/SplitPane.d.ts +1 -1
- package/dist/layout/Tabs.d.ts +1 -1
- package/dist/layout/Workspace.d.ts +1 -1
- package/dist/layout/Workspace.model.d.ts +1 -1
- package/dist/lib/combobox-values.d.ts +1 -1
- package/dist/monaco/MonacoEditor.cjs +3 -3
- package/dist/monaco/MonacoEditor.cjs.map +1 -1
- package/dist/monaco/MonacoEditor.js +2 -2
- package/dist/monaco/MonacoEditor.js.map +1 -1
- package/dist/monaco/types.d.ts +1 -1
- package/dist/monaco/use-monaco-worker.d.ts +1 -1
- package/dist/overlay/CellActions.d.ts +1 -1
- package/dist/overlay/CommandPalette.d.ts +2 -2
- package/dist/overlay/CommandPalette.model.d.ts +1 -1
- package/dist/overlay/CommandPaletteList.d.ts +1 -1
- package/dist/overlay/DropdownMenu.d.ts +1 -1
- package/dist/overlay/HoverCard.d.ts +1 -1
- package/dist/overlay/Modal.d.ts +2 -2
- package/dist/overlay/Toast.d.ts +1 -1
- package/dist/overlay/TourCard.d.ts +1 -1
- package/dist/overlay/TourProvider.d.ts +1 -1
- package/dist/overlay/dropdownMenuContext.d.ts +1 -1
- package/dist/overlay/toast-context.d.ts +2 -2
- package/dist/overlay/tour-context.d.ts +1 -1
- package/dist/overlay/tour-types.d.ts +1 -1
- package/dist/profiles/connections/connectionBrowserModel.d.ts +1 -1
- package/dist/profiles/connections/connectionQueryWorkspace.d.ts +1 -1
- package/dist/profiles/editor/profileBuilder.d.ts +1 -1
- package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +1 -1
- package/dist/profiles/fields/profileFieldControls.d.ts +1 -1
- package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
- package/dist/profiles/fields/profileFieldState.d.ts +1 -1
- package/dist/profiles/query/jsonPathSample.d.ts +1 -1
- package/dist/profiles/query/jsonPathSampleRow.d.ts +1 -1
- package/dist/profiles/query/prometheusResults.d.ts +2 -2
- package/dist/rpc/EndpointList.d.ts +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts +1 -1
- package/dist/rpc/OperationCatalog.d.ts +1 -1
- package/dist/rpc/OperationEntityContextPicker.d.ts +1 -1
- package/dist/rpc/OperationEntityPage.d.ts +1 -1
- package/dist/rpc/OperationResultView.d.ts +1 -1
- package/dist/rpc/RouterProvider.d.ts +1 -1
- package/dist/rpc/SchemaActionForm.d.ts +1 -1
- package/dist/rpc/formMetadata.d.ts +1 -1
- package/dist/rpc/router.d.ts +1 -1
- package/dist/rpc/rpc-story.fixtures.d.ts +1 -1
- package/dist/styles.css +1 -1
- package/package.json +21 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactNode } from '
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { SpecSectionMeta } from './types';
|
|
3
3
|
export declare function SectionCard({ meta, number, domId, sectionRef, advanced, advancedHint, defaultCollapsed, children, className, }: {
|
|
4
4
|
meta: SpecSectionMeta;
|
|
@@ -18,7 +18,8 @@ function VerifySection({
|
|
|
18
18
|
onChange,
|
|
19
19
|
models,
|
|
20
20
|
families,
|
|
21
|
-
secretSelector
|
|
21
|
+
secretSelector,
|
|
22
|
+
fixtureSchemas
|
|
22
23
|
}) {
|
|
23
24
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
24
25
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-density-3", children: [
|
|
@@ -28,6 +29,7 @@ function VerifySection({
|
|
|
28
29
|
value: ((_b = (_a = value.workflow) == null ? void 0 : _a.verify) == null ? void 0 : _b.fixture) ?? "",
|
|
29
30
|
onChange: (fixture) => onChange(update.withVerify(value, { fixture })),
|
|
30
31
|
size: "sm",
|
|
32
|
+
...fixtureSchemas ? { schemas: fixtureSchemas } : {},
|
|
31
33
|
placeholder: "Write the verify fixture markdown...",
|
|
32
34
|
frontmatterEditor: {
|
|
33
35
|
mode: "verification",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerifySection.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/VerifySection.tsx"],"sourcesContent":["import { SegmentedControl } from \"../../../components/SegmentedControl\";\nimport { UiChatDots, UiRepeat, UiTerminal } from \"../../../icons\";\nimport { FixtureEditor } from \"../../FixtureEditor\";\nimport type { ChatModel } from \"../../chat/types\";\nimport type { SpecRuntimeFamily } from \"../../runtime/runtime-mode\";\nimport {\n SPEC_VERIFY_SCOPES,\n type AISpecRuntimeValue,\n type SpecVerifyScope,\n} from \"../SpecRuntimeEditor.model\";\nimport { ListField, NumberField, SpecField } from \"./fields\";\nimport type { SpecRuntimeSecretSelectorConfig } from \"./types\";\nimport { withVerify } from \"./update\";\n\nconst SCOPE_OPTIONS: Array<{ id: SpecVerifyScope; label: string }> =\n SPEC_VERIFY_SCOPES.map((scope) => ({\n id: scope,\n label: scope === \"all\" ? \"All files\" : \"Changed files\",\n }));\n\nexport function VerifySection({\n value,\n onChange,\n models,\n families,\n secretSelector,\n}: {\n value: AISpecRuntimeValue;\n onChange: (value: AISpecRuntimeValue) => void;\n models?: ChatModel[] | undefined;\n families?: SpecRuntimeFamily[] | undefined;\n secretSelector?: SpecRuntimeSecretSelectorConfig | undefined;\n}) {\n return (\n <div className=\"grid gap-density-3\">\n <SpecField label=\"Verify fixture\">\n <FixtureEditor\n value={value.workflow?.verify?.fixture ?? \"\"}\n onChange={(fixture) => onChange(withVerify(value, { fixture }))}\n size=\"sm\"\n placeholder=\"Write the verify fixture markdown...\"\n frontmatterEditor={{\n mode: \"verification\",\n models,\n families,\n secretSelector,\n }}\n />\n </SpecField>\n <div className=\"flex flex-wrap items-end gap-density-3\">\n <SpecField label=\"Scope\">\n <SegmentedControl\n aria-label=\"Verification scope\"\n size=\"sm\"\n value={(value.workflow?.verify?.scope || \"all\") as SpecVerifyScope}\n onChange={(scope) => onChange(withVerify(value, { scope }))}\n options={SCOPE_OPTIONS}\n />\n </SpecField>\n <div className=\"w-32\">\n <NumberField\n label=\"Max iterations\"\n value={value.workflow?.verify?.maxIterations}\n onChange={(maxIterations) =>\n onChange(withVerify(value, { maxIterations: maxIterations ?? 0 }))\n }\n icon={UiRepeat}\n min={0}\n step={1}\n integer\n />\n </div>\n </div>\n <ListField\n label=\"Commands\"\n value={value.workflow?.verify?.commands}\n onChange={(commands) => onChange(withVerify(value, { commands }))}\n placeholder=\"pnpm test\"\n icon={UiTerminal}\n />\n <ListField\n label=\"Prompts\"\n value={value.workflow?.verify?.prompts}\n onChange={(prompts) => onChange(withVerify(value, { prompts }))}\n placeholder=\"review.prompt\"\n icon={UiChatDots}\n />\n </div>\n );\n}\n"],"names":["SPEC_VERIFY_SCOPES","jsxs","jsx","SpecField","FixtureEditor","withVerify","SegmentedControl","NumberField","UiRepeat","ListField","UiTerminal","UiChatDots"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"VerifySection.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/VerifySection.tsx"],"sourcesContent":["import { SegmentedControl } from \"../../../components/SegmentedControl\";\nimport { UiChatDots, UiRepeat, UiTerminal } from \"../../../icons\";\nimport { FixtureEditor } from \"../../FixtureEditor\";\nimport type { FixtureFenceSchemas } from \"../../FixtureEditor/types\";\nimport type { ChatModel } from \"../../chat/types\";\nimport type { SpecRuntimeFamily } from \"../../runtime/runtime-mode\";\nimport {\n SPEC_VERIFY_SCOPES,\n type AISpecRuntimeValue,\n type SpecVerifyScope,\n} from \"../SpecRuntimeEditor.model\";\nimport { ListField, NumberField, SpecField } from \"./fields\";\nimport type { SpecRuntimeSecretSelectorConfig } from \"./types\";\nimport { withVerify } from \"./update\";\n\nconst SCOPE_OPTIONS: Array<{ id: SpecVerifyScope; label: string }> =\n SPEC_VERIFY_SCOPES.map((scope) => ({\n id: scope,\n label: scope === \"all\" ? \"All files\" : \"Changed files\",\n }));\n\nexport function VerifySection({\n value,\n onChange,\n models,\n families,\n secretSelector,\n fixtureSchemas,\n}: {\n value: AISpecRuntimeValue;\n onChange: (value: AISpecRuntimeValue) => void;\n models?: ChatModel[] | undefined;\n families?: SpecRuntimeFamily[] | undefined;\n secretSelector?: SpecRuntimeSecretSelectorConfig | undefined;\n fixtureSchemas?: FixtureFenceSchemas | undefined;\n}) {\n return (\n <div className=\"grid gap-density-3\">\n <SpecField label=\"Verify fixture\">\n <FixtureEditor\n value={value.workflow?.verify?.fixture ?? \"\"}\n onChange={(fixture) => onChange(withVerify(value, { fixture }))}\n size=\"sm\"\n {...(fixtureSchemas ? { schemas: fixtureSchemas } : {})}\n placeholder=\"Write the verify fixture markdown...\"\n frontmatterEditor={{\n mode: \"verification\",\n models,\n families,\n secretSelector,\n }}\n />\n </SpecField>\n <div className=\"flex flex-wrap items-end gap-density-3\">\n <SpecField label=\"Scope\">\n <SegmentedControl\n aria-label=\"Verification scope\"\n size=\"sm\"\n value={(value.workflow?.verify?.scope || \"all\") as SpecVerifyScope}\n onChange={(scope) => onChange(withVerify(value, { scope }))}\n options={SCOPE_OPTIONS}\n />\n </SpecField>\n <div className=\"w-32\">\n <NumberField\n label=\"Max iterations\"\n value={value.workflow?.verify?.maxIterations}\n onChange={(maxIterations) =>\n onChange(withVerify(value, { maxIterations: maxIterations ?? 0 }))\n }\n icon={UiRepeat}\n min={0}\n step={1}\n integer\n />\n </div>\n </div>\n <ListField\n label=\"Commands\"\n value={value.workflow?.verify?.commands}\n onChange={(commands) => onChange(withVerify(value, { commands }))}\n placeholder=\"pnpm test\"\n icon={UiTerminal}\n />\n <ListField\n label=\"Prompts\"\n value={value.workflow?.verify?.prompts}\n onChange={(prompts) => onChange(withVerify(value, { prompts }))}\n placeholder=\"review.prompt\"\n icon={UiChatDots}\n />\n </div>\n );\n}\n"],"names":["SPEC_VERIFY_SCOPES","jsxs","jsx","SpecField","FixtureEditor","withVerify","SegmentedControl","NumberField","UiRepeat","ListField","UiTerminal","UiChatDots"],"mappings":";;;;;;;;;;;AAeA,MAAM,gBACJA,wBAAAA,mBAAmB,IAAI,CAAC,WAAW;AAAA,EACjC,IAAI;AAAA,EACJ,OAAO,UAAU,QAAQ,cAAc;AACzC,EAAE;AAEG,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOG;;AACD,SACEC,2BAAAA,KAAC,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,IAAAC,2BAAAA,IAACC,OAAAA,WAAA,EAAU,OAAM,kBACf,UAAAD,2BAAAA;AAAAA,MAACE,cAAAA;AAAAA,MAAA;AAAA,QACC,SAAO,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,YAAW;AAAA,QAC1C,UAAU,CAAC,YAAY,SAASC,OAAAA,WAAW,OAAO,EAAE,QAAA,CAAS,CAAC;AAAA,QAC9D,MAAK;AAAA,QACJ,GAAI,iBAAiB,EAAE,SAAS,eAAA,IAAmB,CAAA;AAAA,QACpD,aAAY;AAAA,QACZ,mBAAmB;AAAA,UACjB,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,IACAJ,2BAAAA,KAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,MAAAC,2BAAAA,IAACC,OAAAA,WAAA,EAAU,OAAM,SACf,UAAAD,2BAAAA;AAAAA,QAACI,iBAAAA;AAAAA,QAAA;AAAA,UACC,cAAW;AAAA,UACX,MAAK;AAAA,UACL,SAAQ,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,UAAS;AAAA,UACzC,UAAU,CAAC,UAAU,SAASD,OAAAA,WAAW,OAAO,EAAE,MAAA,CAAO,CAAC;AAAA,UAC1D,SAAS;AAAA,QAAA;AAAA,MAAA,GAEb;AAAA,MACAH,2BAAAA,IAAC,OAAA,EAAI,WAAU,QACb,UAAAA,2BAAAA;AAAAA,QAACK,OAAAA;AAAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB;AAAA,UAC/B,UAAU,CAAC,kBACT,SAASF,OAAAA,WAAW,OAAO,EAAE,eAAe,iBAAiB,EAAA,CAAG,CAAC;AAAA,UAEnE,MAAMG,SAAAA;AAAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,UACN,SAAO;AAAA,QAAA;AAAA,MAAA,EACT,CACF;AAAA,IAAA,GACF;AAAA,IACAN,2BAAAA;AAAAA,MAACO,OAAAA;AAAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,QAAO,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB;AAAA,QAC/B,UAAU,CAAC,aAAa,SAASJ,OAAAA,WAAW,OAAO,EAAE,SAAA,CAAU,CAAC;AAAA,QAChE,aAAY;AAAA,QACZ,MAAMK,WAAAA;AAAAA,MAAA;AAAA,IAAA;AAAA,IAERR,2BAAAA;AAAAA,MAACO,OAAAA;AAAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,QAAO,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB;AAAA,QAC/B,UAAU,CAAC,YAAY,SAASJ,OAAAA,WAAW,OAAO,EAAE,QAAA,CAAS,CAAC;AAAA,QAC9D,aAAY;AAAA,QACZ,MAAMM,WAAAA;AAAAA,MAAA;AAAA,IAAA;AAAA,EACR,GACF;AAEJ;;"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { FixtureFenceSchemas } from '../../FixtureEditor/types';
|
|
1
2
|
import { ChatModel } from '../../chat/types';
|
|
2
3
|
import { SpecRuntimeFamily } from '../../runtime/runtime-mode';
|
|
3
4
|
import { AISpecRuntimeValue } from '../SpecRuntimeEditor.model';
|
|
4
5
|
import { SpecRuntimeSecretSelectorConfig } from './types';
|
|
5
|
-
export declare function VerifySection({ value, onChange, models, families, secretSelector, }: {
|
|
6
|
+
export declare function VerifySection({ value, onChange, models, families, secretSelector, fixtureSchemas, }: {
|
|
6
7
|
value: AISpecRuntimeValue;
|
|
7
8
|
onChange: (value: AISpecRuntimeValue) => void;
|
|
8
9
|
models?: ChatModel[] | undefined;
|
|
9
10
|
families?: SpecRuntimeFamily[] | undefined;
|
|
10
11
|
secretSelector?: SpecRuntimeSecretSelectorConfig | undefined;
|
|
12
|
+
fixtureSchemas?: FixtureFenceSchemas | undefined;
|
|
11
13
|
}): import("react").JSX.Element;
|
|
12
14
|
//# sourceMappingURL=VerifySection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerifySection.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/VerifySection.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAS/D,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,cAAc,GACf,EAAE;IACD,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC3C,cAAc,CAAC,EAAE,+BAA+B,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"VerifySection.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/VerifySection.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAS/D,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,cAAc,EACd,cAAc,GACf,EAAE;IACD,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC3C,cAAc,CAAC,EAAE,+BAA+B,GAAG,SAAS,CAAC;IAC7D,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAClD,+BA0DA"}
|
|
@@ -16,7 +16,8 @@ function VerifySection({
|
|
|
16
16
|
onChange,
|
|
17
17
|
models,
|
|
18
18
|
families,
|
|
19
|
-
secretSelector
|
|
19
|
+
secretSelector,
|
|
20
|
+
fixtureSchemas
|
|
20
21
|
}) {
|
|
21
22
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
22
23
|
return /* @__PURE__ */ jsxs("div", { className: "grid gap-density-3", children: [
|
|
@@ -26,6 +27,7 @@ function VerifySection({
|
|
|
26
27
|
value: ((_b = (_a = value.workflow) == null ? void 0 : _a.verify) == null ? void 0 : _b.fixture) ?? "",
|
|
27
28
|
onChange: (fixture) => onChange(withVerify(value, { fixture })),
|
|
28
29
|
size: "sm",
|
|
30
|
+
...fixtureSchemas ? { schemas: fixtureSchemas } : {},
|
|
29
31
|
placeholder: "Write the verify fixture markdown...",
|
|
30
32
|
frontmatterEditor: {
|
|
31
33
|
mode: "verification",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerifySection.js","sources":["../../../../src/data/ai/SpecRuntimeEditor/VerifySection.tsx"],"sourcesContent":["import { SegmentedControl } from \"../../../components/SegmentedControl\";\nimport { UiChatDots, UiRepeat, UiTerminal } from \"../../../icons\";\nimport { FixtureEditor } from \"../../FixtureEditor\";\nimport type { ChatModel } from \"../../chat/types\";\nimport type { SpecRuntimeFamily } from \"../../runtime/runtime-mode\";\nimport {\n SPEC_VERIFY_SCOPES,\n type AISpecRuntimeValue,\n type SpecVerifyScope,\n} from \"../SpecRuntimeEditor.model\";\nimport { ListField, NumberField, SpecField } from \"./fields\";\nimport type { SpecRuntimeSecretSelectorConfig } from \"./types\";\nimport { withVerify } from \"./update\";\n\nconst SCOPE_OPTIONS: Array<{ id: SpecVerifyScope; label: string }> =\n SPEC_VERIFY_SCOPES.map((scope) => ({\n id: scope,\n label: scope === \"all\" ? \"All files\" : \"Changed files\",\n }));\n\nexport function VerifySection({\n value,\n onChange,\n models,\n families,\n secretSelector,\n}: {\n value: AISpecRuntimeValue;\n onChange: (value: AISpecRuntimeValue) => void;\n models?: ChatModel[] | undefined;\n families?: SpecRuntimeFamily[] | undefined;\n secretSelector?: SpecRuntimeSecretSelectorConfig | undefined;\n}) {\n return (\n <div className=\"grid gap-density-3\">\n <SpecField label=\"Verify fixture\">\n <FixtureEditor\n value={value.workflow?.verify?.fixture ?? \"\"}\n onChange={(fixture) => onChange(withVerify(value, { fixture }))}\n size=\"sm\"\n placeholder=\"Write the verify fixture markdown...\"\n frontmatterEditor={{\n mode: \"verification\",\n models,\n families,\n secretSelector,\n }}\n />\n </SpecField>\n <div className=\"flex flex-wrap items-end gap-density-3\">\n <SpecField label=\"Scope\">\n <SegmentedControl\n aria-label=\"Verification scope\"\n size=\"sm\"\n value={(value.workflow?.verify?.scope || \"all\") as SpecVerifyScope}\n onChange={(scope) => onChange(withVerify(value, { scope }))}\n options={SCOPE_OPTIONS}\n />\n </SpecField>\n <div className=\"w-32\">\n <NumberField\n label=\"Max iterations\"\n value={value.workflow?.verify?.maxIterations}\n onChange={(maxIterations) =>\n onChange(withVerify(value, { maxIterations: maxIterations ?? 0 }))\n }\n icon={UiRepeat}\n min={0}\n step={1}\n integer\n />\n </div>\n </div>\n <ListField\n label=\"Commands\"\n value={value.workflow?.verify?.commands}\n onChange={(commands) => onChange(withVerify(value, { commands }))}\n placeholder=\"pnpm test\"\n icon={UiTerminal}\n />\n <ListField\n label=\"Prompts\"\n value={value.workflow?.verify?.prompts}\n onChange={(prompts) => onChange(withVerify(value, { prompts }))}\n placeholder=\"review.prompt\"\n icon={UiChatDots}\n />\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"VerifySection.js","sources":["../../../../src/data/ai/SpecRuntimeEditor/VerifySection.tsx"],"sourcesContent":["import { SegmentedControl } from \"../../../components/SegmentedControl\";\nimport { UiChatDots, UiRepeat, UiTerminal } from \"../../../icons\";\nimport { FixtureEditor } from \"../../FixtureEditor\";\nimport type { FixtureFenceSchemas } from \"../../FixtureEditor/types\";\nimport type { ChatModel } from \"../../chat/types\";\nimport type { SpecRuntimeFamily } from \"../../runtime/runtime-mode\";\nimport {\n SPEC_VERIFY_SCOPES,\n type AISpecRuntimeValue,\n type SpecVerifyScope,\n} from \"../SpecRuntimeEditor.model\";\nimport { ListField, NumberField, SpecField } from \"./fields\";\nimport type { SpecRuntimeSecretSelectorConfig } from \"./types\";\nimport { withVerify } from \"./update\";\n\nconst SCOPE_OPTIONS: Array<{ id: SpecVerifyScope; label: string }> =\n SPEC_VERIFY_SCOPES.map((scope) => ({\n id: scope,\n label: scope === \"all\" ? \"All files\" : \"Changed files\",\n }));\n\nexport function VerifySection({\n value,\n onChange,\n models,\n families,\n secretSelector,\n fixtureSchemas,\n}: {\n value: AISpecRuntimeValue;\n onChange: (value: AISpecRuntimeValue) => void;\n models?: ChatModel[] | undefined;\n families?: SpecRuntimeFamily[] | undefined;\n secretSelector?: SpecRuntimeSecretSelectorConfig | undefined;\n fixtureSchemas?: FixtureFenceSchemas | undefined;\n}) {\n return (\n <div className=\"grid gap-density-3\">\n <SpecField label=\"Verify fixture\">\n <FixtureEditor\n value={value.workflow?.verify?.fixture ?? \"\"}\n onChange={(fixture) => onChange(withVerify(value, { fixture }))}\n size=\"sm\"\n {...(fixtureSchemas ? { schemas: fixtureSchemas } : {})}\n placeholder=\"Write the verify fixture markdown...\"\n frontmatterEditor={{\n mode: \"verification\",\n models,\n families,\n secretSelector,\n }}\n />\n </SpecField>\n <div className=\"flex flex-wrap items-end gap-density-3\">\n <SpecField label=\"Scope\">\n <SegmentedControl\n aria-label=\"Verification scope\"\n size=\"sm\"\n value={(value.workflow?.verify?.scope || \"all\") as SpecVerifyScope}\n onChange={(scope) => onChange(withVerify(value, { scope }))}\n options={SCOPE_OPTIONS}\n />\n </SpecField>\n <div className=\"w-32\">\n <NumberField\n label=\"Max iterations\"\n value={value.workflow?.verify?.maxIterations}\n onChange={(maxIterations) =>\n onChange(withVerify(value, { maxIterations: maxIterations ?? 0 }))\n }\n icon={UiRepeat}\n min={0}\n step={1}\n integer\n />\n </div>\n </div>\n <ListField\n label=\"Commands\"\n value={value.workflow?.verify?.commands}\n onChange={(commands) => onChange(withVerify(value, { commands }))}\n placeholder=\"pnpm test\"\n icon={UiTerminal}\n />\n <ListField\n label=\"Prompts\"\n value={value.workflow?.verify?.prompts}\n onChange={(prompts) => onChange(withVerify(value, { prompts }))}\n placeholder=\"review.prompt\"\n icon={UiChatDots}\n />\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AAeA,MAAM,gBACJ,mBAAmB,IAAI,CAAC,WAAW;AAAA,EACjC,IAAI;AAAA,EACJ,OAAO,UAAU,QAAQ,cAAc;AACzC,EAAE;AAEG,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOG;;AACD,SACE,qBAAC,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,IAAA,oBAAC,WAAA,EAAU,OAAM,kBACf,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAO,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,YAAW;AAAA,QAC1C,UAAU,CAAC,YAAY,SAAS,WAAW,OAAO,EAAE,QAAA,CAAS,CAAC;AAAA,QAC9D,MAAK;AAAA,QACJ,GAAI,iBAAiB,EAAE,SAAS,eAAA,IAAmB,CAAA;AAAA,QACpD,aAAY;AAAA,QACZ,mBAAmB;AAAA,UACjB,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,IACA,qBAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,MAAA,oBAAC,WAAA,EAAU,OAAM,SACf,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,cAAW;AAAA,UACX,MAAK;AAAA,UACL,SAAQ,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,UAAS;AAAA,UACzC,UAAU,CAAC,UAAU,SAAS,WAAW,OAAO,EAAE,MAAA,CAAO,CAAC;AAAA,UAC1D,SAAS;AAAA,QAAA;AAAA,MAAA,GAEb;AAAA,MACA,oBAAC,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB;AAAA,UAC/B,UAAU,CAAC,kBACT,SAAS,WAAW,OAAO,EAAE,eAAe,iBAAiB,EAAA,CAAG,CAAC;AAAA,UAEnE,MAAM;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,UACN,SAAO;AAAA,QAAA;AAAA,MAAA,EACT,CACF;AAAA,IAAA,GACF;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,QAAO,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB;AAAA,QAC/B,UAAU,CAAC,aAAa,SAAS,WAAW,OAAO,EAAE,SAAA,CAAU,CAAC;AAAA,QAChE,aAAY;AAAA,QACZ,MAAM;AAAA,MAAA;AAAA,IAAA;AAAA,IAER;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,QAAO,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB;AAAA,QAC/B,UAAU,CAAC,YAAY,SAAS,WAAW,OAAO,EAAE,QAAA,CAAS,CAAC;AAAA,QAC9D,aAAY;AAAA,QACZ,MAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EACR,GACF;AAEJ;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactNode } from '
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { ComboboxOption } from '../../../components/Combobox';
|
|
3
3
|
import { StaticIconComponent } from '../../Icon';
|
|
4
4
|
export declare function SpecField({ label, hint, children, composite, }: {
|
|
@@ -40,6 +40,7 @@ function SpecRuntimeEditor({
|
|
|
40
40
|
permissionCatalog,
|
|
41
41
|
secretSelector,
|
|
42
42
|
cliOptions,
|
|
43
|
+
fixtureSchemas,
|
|
43
44
|
sandboxCatalog,
|
|
44
45
|
sandboxCreate,
|
|
45
46
|
sections: sectionFilter,
|
|
@@ -197,7 +198,8 @@ function SpecRuntimeEditor({
|
|
|
197
198
|
onChange: commitChange,
|
|
198
199
|
models,
|
|
199
200
|
families: runtimeFamilies,
|
|
200
|
-
...secretSelector ? { secretSelector } : {}
|
|
201
|
+
...secretSelector ? { secretSelector } : {},
|
|
202
|
+
...fixtureSchemas ? { fixtureSchemas } : {}
|
|
201
203
|
}
|
|
202
204
|
);
|
|
203
205
|
case "commit":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/index.tsx"],"sourcesContent":["import { useId, useMemo, type ReactNode } from \"react\";\nimport { cn } from \"../../../lib/utils\";\nimport type { ChatModel, ToolMeta } from \"../../chat/types\";\nimport type {\n AISpecRuntimePermissionCatalog,\n AISpecRuntimeValue,\n} from \"../SpecRuntimeEditor.model\";\nimport type { SpecRuntimeSandboxCreateConfig } from \"../SandboxCreateWizard.model\";\nimport { CLIArgsSection, type SpecRuntimeCLIOptions } from \"./CLIArgsSection\";\nimport { CommitSection } from \"./CommitSection\";\nimport { EnvironmentAdvanced, EnvironmentSection } from \"./EnvironmentSection\";\nimport { Footer } from \"./Footer\";\nimport { ModelContextAdvanced } from \"./ModelContextAdvanced\";\nimport { ModelAdvanced, ModelSection } from \"./ModelSection\";\nimport { PermissionsAdvanced, PermissionsSection } from \"./PermissionsSection\";\nimport { PromptAdvanced, PromptSection } from \"./PromptSection\";\nimport { Rail } from \"./Rail\";\nimport { SandboxSection } from \"./SandboxSection\";\nimport { SectionCard } from \"./SectionCard\";\nimport { VerifySection } from \"./VerifySection\";\nimport { WorkspaceSection } from \"./WorkspaceSection\";\nimport {\n buildPermissionCatalog,\n specPermissionEntries,\n withAddedPermission,\n withPermissionEntries,\n} from \"./permissions-model\";\nimport { summarizeTarget } from \"./summaries\";\nimport {\n SPEC_RUNTIME_SECTIONS,\n type SpecRuntimeSandboxCatalog,\n type SpecRuntimeSecretSelectorConfig,\n type SpecSectionId,\n} from \"./types\";\nimport {\n SPEC_RUNTIME_FAMILIES,\n firstMode,\n runtimeModeError,\n runtimeModeFromModel,\n runtimeModelError,\n modeOptionFor,\n type SpecRuntimeFamily,\n} from \"../../runtime/runtime-mode\";\nimport { familyForModel } from \"../../../lib/runtime-family\";\nimport {\n runtimeFieldSection,\n runtimeFieldSupport,\n runtimeSchemaPropertyAtPath,\n SUPPORT_ALL_RUNTIME_FIELDS,\n} from \"../../runtime/runtime-field-support\";\nimport { useScrollSpy } from \"./use-scrollspy\";\n\nexport type { AISpecRuntimeValue } from \"../SpecRuntimeEditor.model\";\nexport type {\n SpecRuntimeSandboxAgent,\n SpecRuntimeSandboxBackend,\n SpecRuntimeSandboxCatalog,\n SpecRuntimeSandboxKind,\n SpecRuntimeSecretSelectorConfig,\n} from \"./types\";\nexport type { SpecRuntimeCLIOptions } from \"./CLIArgsSection\";\nexport {\n SPEC_RUNTIME_FAMILIES,\n type SpecRuntimeFamily,\n type SpecRuntimeModeOption,\n} from \"../../runtime/runtime-mode\";\n\nexport type SpecRuntimeEditorProps = {\n value: AISpecRuntimeValue;\n onChange: (value: AISpecRuntimeValue) => void;\n models?: ChatModel[] | undefined;\n /** Provider families for the two-axis Family → Mode picker in the model section. */\n families?: SpecRuntimeFamily[] | undefined;\n /** Resolved mode used to validate posture when this editable layer inherits it. */\n effectiveMode?: string | undefined;\n /** Resolved model used to identify the inherited provider family. */\n effectiveModel?: string | undefined;\n tools?: ToolMeta[] | undefined;\n permissionCatalog?: AISpecRuntimePermissionCatalog | undefined;\n secretSelector?: SpecRuntimeSecretSelectorConfig | undefined;\n /** Schema for the runtime's extra CLI args; enables the CLI flags section. */\n cliOptions?: SpecRuntimeCLIOptions | undefined;\n /** Sandbox adapter catalog; enables the Sandbox section. */\n sandboxCatalog?: SpecRuntimeSandboxCatalog | undefined;\n /** Host-owned sandbox creation and credential-reference adapter. */\n sandboxCreate?: SpecRuntimeSandboxCreateConfig | undefined;\n /** Optional ordered section selection for embedded editors that only need part of the runtime spec. */\n sections?: readonly SpecSectionId[] | undefined;\n /** Presents prompt.user as a complete .prompt document body. */\n promptVariant?: \"runtime\" | \"document\" | undefined;\n /** Disables value controls while preserving section navigation and disclosures. */\n readOnly?: boolean | undefined;\n className?: string | undefined;\n title?: ReactNode | undefined;\n eyebrow?: ReactNode | undefined;\n /** Hide the editor rail when a host modal already supplies the context. */\n showHeader?: boolean | undefined;\n /** Content rendered before the first section inside the editor column. */\n beforeSections?: ReactNode | undefined;\n /** Sections that should start collapsed in embedded contexts. */\n defaultCollapsedSections?: readonly SpecSectionId[] | undefined;\n /** Restrict task-owned fields when editing a reusable preset fragment. */\n variant?: \"run\" | \"preset\" | undefined;\n /** Renders the sticky footer's save action when set. */\n onSave?: (() => void) | undefined;\n /** Renders the sticky footer's cancel action when set. */\n onCancel?: (() => void) | undefined;\n saveLabel?: string | undefined;\n footerStatus?: ReactNode | undefined;\n};\n\nconst ADVANCED_HINTS: Partial<Record<SpecSectionId, string>> = {\n model: \"fallbacks, session, caching, memory, skills\",\n prompt: \"schema\",\n permissions: \"tools, MCP, plugins\",\n environment: \"dotenv files\",\n};\n\n// Full-page runtime spec editor (design \"Runtime Spec Editor v2\"): a live\n// summary rail with scrollspy nav, preset quick-starts, and stacked numbered\n// sections. Container-responsive so it works embedded in a modal or standalone.\nexport function SpecRuntimeEditor({\n value,\n onChange,\n models = [],\n families,\n effectiveMode,\n effectiveModel,\n tools = [],\n permissionCatalog,\n secretSelector,\n cliOptions,\n sandboxCatalog,\n sandboxCreate,\n sections: sectionFilter,\n promptVariant = \"runtime\",\n readOnly = false,\n className,\n title = \"Runtime Spec\",\n eyebrow = \"Agent configuration\",\n showHeader = true,\n beforeSections,\n defaultCollapsedSections,\n variant = \"run\",\n onSave,\n onCancel,\n saveLabel = \"Save & run\",\n footerStatus = \"Ready to run\",\n}: SpecRuntimeEditorProps) {\n const idPrefix = useId();\n const commitChange: (next: AISpecRuntimeValue) => void = readOnly\n ? () => undefined\n : onChange;\n const catalog = useMemo(\n () => buildPermissionCatalog(permissionCatalog, tools),\n [permissionCatalog, tools],\n );\n const runtimeFamilies = families?.length ? families : SPEC_RUNTIME_FAMILIES;\n const selectedFamily = familyForModel(\n runtimeFamilies,\n models,\n value.model || effectiveModel,\n );\n const specMode =\n runtimeModeFromModel(value.model) ||\n value.mode?.trim() ||\n effectiveMode?.trim() ||\n firstMode(runtimeFamilies[0] ?? SPEC_RUNTIME_FAMILIES[0]!).id;\n const runtimeError =\n runtimeModelError(value.model || effectiveModel) ??\n runtimeModeError(runtimeFamilies, specMode, selectedFamily?.id);\n const selectedRuntime = runtimeError\n ? undefined\n : modeOptionFor(runtimeFamilies, specMode, selectedFamily?.id);\n const supports = selectedRuntime\n ? runtimeFieldSupport(runtimeFamilies, specMode, selectedFamily?.id)\n : SUPPORT_ALL_RUNTIME_FIELDS;\n const runtimeSchema = selectedRuntime?.schema;\n const hasSandboxSection =\n runtimeSchema != null &&\n runtimeSchemaPropertyAtPath(runtimeSchema, \"sandbox.mode\") != null;\n const entries = useMemo(\n () => specPermissionEntries(value, catalog),\n [value, catalog],\n );\n const skillsSection = selectedRuntime\n ? (runtimeFieldSection(\n runtimeFamilies,\n specMode,\n \"permissions.skills\",\n selectedFamily?.id,\n ) ?? \"model\")\n : \"model\";\n const modelSkillEntries = entries.filter(\n (entry) =>\n entry.domain === \"skills\" &&\n skillsSection === \"model\" &&\n supports(\"permissions.skills\"),\n );\n const permissionEntries = entries.filter(\n (entry) =>\n (entry.domain !== \"skills\" || skillsSection === \"permissions\") &&\n supports(`permissions.${entry.domain}`),\n );\n const hasPermissionSection =\n (skillsSection === \"permissions\" && supports(\"permissions.skills\")) ||\n ([\"tools\", \"mcp\", \"plugins\"] as const).some((domain) =>\n supports(`permissions.${domain}`),\n );\n\n const requestedSections = useMemo(\n () =>\n sectionFilter\n ? sectionFilter.map((id) => {\n const section = SPEC_RUNTIME_SECTIONS.find(\n (candidate) => candidate.id === id,\n );\n if (!section)\n throw new Error(\n `unknown runtime editor section ${JSON.stringify(id)}`,\n );\n return section;\n })\n : SPEC_RUNTIME_SECTIONS,\n [sectionFilter],\n );\n // Sandbox modes come from the selected runtime schema. The adapter catalog is\n // optional metadata for configured Docker and Git Agent backends.\n const sections = requestedSections.filter(\n (section) =>\n (section.id !== \"cli\" || (cliOptions && supports(\"cliArgs\"))) &&\n (section.id !== \"sandbox\" || hasSandboxSection) &&\n (section.id !== \"permissions\" || hasPermissionSection),\n );\n const collapsedSections = useMemo(\n () => new Set(defaultCollapsedSections ?? []),\n [defaultCollapsedSections],\n );\n const domId = (id: SpecSectionId) => `${idPrefix}-${id}`;\n const { sectionRef } = useScrollSpy(\n sections.map((section) => domId(section.id)),\n );\n\n const applyEntries = (\n applied: Parameters<typeof withPermissionEntries>[1],\n mode: Parameters<typeof withPermissionEntries>[2],\n ) => commitChange(withPermissionEntries(value, applied, mode));\n const addEntry = (\n domain: Parameters<typeof withAddedPermission>[1],\n id: string,\n ) => {\n const next = withAddedPermission(value, domain, id);\n if (next) commitChange(next);\n };\n\n const sectionBody = (id: SpecSectionId): ReactNode => {\n switch (id) {\n case \"model\":\n return (\n <ModelSection\n value={value}\n onChange={commitChange}\n models={models}\n effectiveMode={effectiveMode}\n effectiveModel={effectiveModel}\n families={runtimeFamilies}\n />\n );\n case \"prompt\":\n return (\n <PromptSection\n value={value}\n onChange={commitChange}\n supports={supports}\n variant={promptVariant}\n />\n );\n case \"workspace\":\n return (\n <WorkspaceSection\n value={value}\n onChange={commitChange}\n secretSelector={secretSelector}\n variant={variant}\n supports={supports}\n />\n );\n case \"sandbox\":\n return runtimeSchema ? (\n <SandboxSection\n value={value}\n onChange={commitChange}\n schema={runtimeSchema}\n {...(sandboxCatalog ? { catalog: sandboxCatalog } : {})}\n families={runtimeFamilies}\n {...(sandboxCreate ? { createConfig: sandboxCreate } : {})}\n />\n ) : null;\n case \"permissions\":\n return supports(\"permissions\") ? (\n <PermissionsSection\n value={value}\n onChange={commitChange}\n entries={permissionEntries}\n />\n ) : null;\n case \"environment\":\n return (\n <EnvironmentSection\n value={value}\n onChange={commitChange}\n secretSelector={secretSelector}\n />\n );\n case \"verify\":\n return (\n <VerifySection\n value={value}\n onChange={commitChange}\n models={models}\n families={runtimeFamilies}\n {...(secretSelector ? { secretSelector } : {})}\n />\n );\n case \"commit\":\n return <CommitSection value={value} onChange={commitChange} />;\n case \"cli\":\n return cliOptions ? (\n <CLIArgsSection\n value={value}\n onChange={commitChange}\n cliOptions={cliOptions}\n />\n ) : null;\n }\n };\n\n const sectionAdvanced = (id: SpecSectionId): ReactNode => {\n switch (id) {\n case \"model\":\n return (\n <div className=\"grid gap-density-3\">\n <ModelAdvanced\n value={value}\n onChange={commitChange}\n models={models}\n supports={supports}\n families={runtimeFamilies}\n />\n <ModelContextAdvanced\n value={value}\n onChange={commitChange}\n entries={modelSkillEntries}\n onApplyEntries={applyEntries}\n onAddEntry={addEntry}\n showSkills={skillsSection === \"model\"}\n supports={supports}\n />\n </div>\n );\n case \"prompt\":\n return supports(\"prompt.schema\") ? (\n <PromptAdvanced value={value} onChange={commitChange} />\n ) : undefined;\n case \"permissions\":\n return (\n <PermissionsAdvanced\n entries={permissionEntries}\n onApplyEntries={applyEntries}\n onAddEntry={addEntry}\n includeSkills={skillsSection === \"permissions\"}\n supports={supports}\n />\n );\n case \"environment\":\n return variant === \"run\" ? (\n <EnvironmentAdvanced value={value} onChange={commitChange} />\n ) : undefined;\n default:\n return undefined;\n }\n };\n\n const valueControls = (content: ReactNode) =>\n readOnly && content ? (\n <fieldset disabled className=\"m-0 min-w-0 border-0 p-0\">\n {content}\n </fieldset>\n ) : (\n content\n );\n\n return (\n <div className={cn(\"@container\", className)}>\n <div className=\"mx-auto max-w-[820px] px-density-4 py-density-4\">\n {showHeader && (\n <Rail\n eyebrow={eyebrow}\n title={title}\n target={summarizeTarget(value)}\n />\n )}\n {runtimeError ? (\n <div\n role=\"alert\"\n className=\"mb-density-3 rounded-md border border-destructive/40 bg-destructive/10 px-density-3 py-density-2 text-sm text-destructive\"\n >\n {runtimeError} Select a valid mode below or switch to Raw to repair\n the prompt source.\n </div>\n ) : null}\n {beforeSections}\n {sections.map((section, index) => (\n <SectionCard\n key={section.id}\n meta={\n section.id === \"prompt\" && promptVariant === \"document\"\n ? {\n ...section,\n hint: \"The .prompt document body and its explicit system fields.\",\n }\n : section\n }\n number={String(index + 1).padStart(2, \"0\")}\n domId={domId(section.id)}\n sectionRef={sectionRef(domId(section.id))}\n advanced={valueControls(sectionAdvanced(section.id))}\n advancedHint={ADVANCED_HINTS[section.id]}\n defaultCollapsed={collapsedSections.has(section.id)}\n >\n {valueControls(sectionBody(section.id))}\n </SectionCard>\n ))}\n </div>\n {(onSave || onCancel) && (\n <Footer\n status={footerStatus}\n saveLabel={saveLabel}\n onSave={onSave}\n onCancel={onCancel}\n />\n )}\n </div>\n );\n}\n"],"names":["useId","useMemo","buildPermissionCatalog","SPEC_RUNTIME_FAMILIES","familyForModel","runtimeModeFromModel","firstMode","runtimeModelError","runtimeModeError","modeOptionFor","runtimeFieldSupport","SUPPORT_ALL_RUNTIME_FIELDS","runtimeSchemaPropertyAtPath","specPermissionEntries","runtimeFieldSection","SPEC_RUNTIME_SECTIONS","useScrollSpy","withPermissionEntries","withAddedPermission","jsx","ModelSection","PromptSection","WorkspaceSection","SandboxSection","PermissionsSection","EnvironmentSection","VerifySection","CommitSection","CLIArgsSection","jsxs","ModelAdvanced","ModelContextAdvanced","PromptAdvanced","PermissionsAdvanced","EnvironmentAdvanced","cn","Rail","summarizeTarget","SectionCard","Footer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/index.tsx"],"sourcesContent":["import { useId, useMemo, type ReactNode } from \"react\";\nimport { cn } from \"../../../lib/utils\";\nimport type { ChatModel, ToolMeta } from \"../../chat/types\";\nimport type { FixtureFenceSchemas } from \"../../FixtureEditor/types\";\nimport type {\n AISpecRuntimePermissionCatalog,\n AISpecRuntimeValue,\n} from \"../SpecRuntimeEditor.model\";\nimport type { SpecRuntimeSandboxCreateConfig } from \"../SandboxCreateWizard.model\";\nimport { CLIArgsSection, type SpecRuntimeCLIOptions } from \"./CLIArgsSection\";\nimport { CommitSection } from \"./CommitSection\";\nimport { EnvironmentAdvanced, EnvironmentSection } from \"./EnvironmentSection\";\nimport { Footer } from \"./Footer\";\nimport { ModelContextAdvanced } from \"./ModelContextAdvanced\";\nimport { ModelAdvanced, ModelSection } from \"./ModelSection\";\nimport { PermissionsAdvanced, PermissionsSection } from \"./PermissionsSection\";\nimport { PromptAdvanced, PromptSection } from \"./PromptSection\";\nimport { Rail } from \"./Rail\";\nimport { SandboxSection } from \"./SandboxSection\";\nimport { SectionCard } from \"./SectionCard\";\nimport { VerifySection } from \"./VerifySection\";\nimport { WorkspaceSection } from \"./WorkspaceSection\";\nimport {\n buildPermissionCatalog,\n specPermissionEntries,\n withAddedPermission,\n withPermissionEntries,\n} from \"./permissions-model\";\nimport { summarizeTarget } from \"./summaries\";\nimport {\n SPEC_RUNTIME_SECTIONS,\n type SpecRuntimeSandboxCatalog,\n type SpecRuntimeSecretSelectorConfig,\n type SpecSectionId,\n} from \"./types\";\nimport {\n SPEC_RUNTIME_FAMILIES,\n firstMode,\n runtimeModeError,\n runtimeModeFromModel,\n runtimeModelError,\n modeOptionFor,\n type SpecRuntimeFamily,\n} from \"../../runtime/runtime-mode\";\nimport { familyForModel } from \"../../../lib/runtime-family\";\nimport {\n runtimeFieldSection,\n runtimeFieldSupport,\n runtimeSchemaPropertyAtPath,\n SUPPORT_ALL_RUNTIME_FIELDS,\n} from \"../../runtime/runtime-field-support\";\nimport { useScrollSpy } from \"./use-scrollspy\";\n\nexport type { AISpecRuntimeValue } from \"../SpecRuntimeEditor.model\";\nexport type {\n SpecRuntimeSandboxAgent,\n SpecRuntimeSandboxBackend,\n SpecRuntimeSandboxCatalog,\n SpecRuntimeSandboxKind,\n SpecRuntimeSecretSelectorConfig,\n} from \"./types\";\nexport type { SpecRuntimeCLIOptions } from \"./CLIArgsSection\";\nexport {\n SPEC_RUNTIME_FAMILIES,\n type SpecRuntimeFamily,\n type SpecRuntimeModeOption,\n} from \"../../runtime/runtime-mode\";\n\nexport type SpecRuntimeEditorProps = {\n value: AISpecRuntimeValue;\n onChange: (value: AISpecRuntimeValue) => void;\n models?: ChatModel[] | undefined;\n /** Provider families for the two-axis Family → Mode picker in the model section. */\n families?: SpecRuntimeFamily[] | undefined;\n /** Resolved mode used to validate posture when this editable layer inherits it. */\n effectiveMode?: string | undefined;\n /** Resolved model used to identify the inherited provider family. */\n effectiveModel?: string | undefined;\n tools?: ToolMeta[] | undefined;\n permissionCatalog?: AISpecRuntimePermissionCatalog | undefined;\n secretSelector?: SpecRuntimeSecretSelectorConfig | undefined;\n /** Schema for the runtime's extra CLI args; enables the CLI flags section. */\n cliOptions?: SpecRuntimeCLIOptions | undefined;\n /** Runner schemas keyed by fixture kind or fence info, used by the verification editor. */\n fixtureSchemas?: FixtureFenceSchemas | undefined;\n /** Sandbox adapter catalog; enables the Sandbox section. */\n sandboxCatalog?: SpecRuntimeSandboxCatalog | undefined;\n /** Host-owned sandbox creation and credential-reference adapter. */\n sandboxCreate?: SpecRuntimeSandboxCreateConfig | undefined;\n /** Optional ordered section selection for embedded editors that only need part of the runtime spec. */\n sections?: readonly SpecSectionId[] | undefined;\n /** Presents prompt.user as a complete .prompt document body. */\n promptVariant?: \"runtime\" | \"document\" | undefined;\n /** Disables value controls while preserving section navigation and disclosures. */\n readOnly?: boolean | undefined;\n className?: string | undefined;\n title?: ReactNode | undefined;\n eyebrow?: ReactNode | undefined;\n /** Hide the editor rail when a host modal already supplies the context. */\n showHeader?: boolean | undefined;\n /** Content rendered before the first section inside the editor column. */\n beforeSections?: ReactNode | undefined;\n /** Sections that should start collapsed in embedded contexts. */\n defaultCollapsedSections?: readonly SpecSectionId[] | undefined;\n /** Restrict task-owned fields when editing a reusable preset fragment. */\n variant?: \"run\" | \"preset\" | undefined;\n /** Renders the sticky footer's save action when set. */\n onSave?: (() => void) | undefined;\n /** Renders the sticky footer's cancel action when set. */\n onCancel?: (() => void) | undefined;\n saveLabel?: string | undefined;\n footerStatus?: ReactNode | undefined;\n};\n\nconst ADVANCED_HINTS: Partial<Record<SpecSectionId, string>> = {\n model: \"fallbacks, session, caching, memory, skills\",\n prompt: \"schema\",\n permissions: \"tools, MCP, plugins\",\n environment: \"dotenv files\",\n};\n\n// Full-page runtime spec editor (design \"Runtime Spec Editor v2\"): a live\n// summary rail with scrollspy nav, preset quick-starts, and stacked numbered\n// sections. Container-responsive so it works embedded in a modal or standalone.\nexport function SpecRuntimeEditor({\n value,\n onChange,\n models = [],\n families,\n effectiveMode,\n effectiveModel,\n tools = [],\n permissionCatalog,\n secretSelector,\n cliOptions,\n fixtureSchemas,\n sandboxCatalog,\n sandboxCreate,\n sections: sectionFilter,\n promptVariant = \"runtime\",\n readOnly = false,\n className,\n title = \"Runtime Spec\",\n eyebrow = \"Agent configuration\",\n showHeader = true,\n beforeSections,\n defaultCollapsedSections,\n variant = \"run\",\n onSave,\n onCancel,\n saveLabel = \"Save & run\",\n footerStatus = \"Ready to run\",\n}: SpecRuntimeEditorProps) {\n const idPrefix = useId();\n const commitChange: (next: AISpecRuntimeValue) => void = readOnly\n ? () => undefined\n : onChange;\n const catalog = useMemo(\n () => buildPermissionCatalog(permissionCatalog, tools),\n [permissionCatalog, tools],\n );\n const runtimeFamilies = families?.length ? families : SPEC_RUNTIME_FAMILIES;\n const selectedFamily = familyForModel(\n runtimeFamilies,\n models,\n value.model || effectiveModel,\n );\n const specMode =\n runtimeModeFromModel(value.model) ||\n value.mode?.trim() ||\n effectiveMode?.trim() ||\n firstMode(runtimeFamilies[0] ?? SPEC_RUNTIME_FAMILIES[0]!).id;\n const runtimeError =\n runtimeModelError(value.model || effectiveModel) ??\n runtimeModeError(runtimeFamilies, specMode, selectedFamily?.id);\n const selectedRuntime = runtimeError\n ? undefined\n : modeOptionFor(runtimeFamilies, specMode, selectedFamily?.id);\n const supports = selectedRuntime\n ? runtimeFieldSupport(runtimeFamilies, specMode, selectedFamily?.id)\n : SUPPORT_ALL_RUNTIME_FIELDS;\n const runtimeSchema = selectedRuntime?.schema;\n const hasSandboxSection =\n runtimeSchema != null &&\n runtimeSchemaPropertyAtPath(runtimeSchema, \"sandbox.mode\") != null;\n const entries = useMemo(\n () => specPermissionEntries(value, catalog),\n [value, catalog],\n );\n const skillsSection = selectedRuntime\n ? (runtimeFieldSection(\n runtimeFamilies,\n specMode,\n \"permissions.skills\",\n selectedFamily?.id,\n ) ?? \"model\")\n : \"model\";\n const modelSkillEntries = entries.filter(\n (entry) =>\n entry.domain === \"skills\" &&\n skillsSection === \"model\" &&\n supports(\"permissions.skills\"),\n );\n const permissionEntries = entries.filter(\n (entry) =>\n (entry.domain !== \"skills\" || skillsSection === \"permissions\") &&\n supports(`permissions.${entry.domain}`),\n );\n const hasPermissionSection =\n (skillsSection === \"permissions\" && supports(\"permissions.skills\")) ||\n ([\"tools\", \"mcp\", \"plugins\"] as const).some((domain) =>\n supports(`permissions.${domain}`),\n );\n\n const requestedSections = useMemo(\n () =>\n sectionFilter\n ? sectionFilter.map((id) => {\n const section = SPEC_RUNTIME_SECTIONS.find(\n (candidate) => candidate.id === id,\n );\n if (!section)\n throw new Error(\n `unknown runtime editor section ${JSON.stringify(id)}`,\n );\n return section;\n })\n : SPEC_RUNTIME_SECTIONS,\n [sectionFilter],\n );\n // Sandbox modes come from the selected runtime schema. The adapter catalog is\n // optional metadata for configured Docker and Git Agent backends.\n const sections = requestedSections.filter(\n (section) =>\n (section.id !== \"cli\" || (cliOptions && supports(\"cliArgs\"))) &&\n (section.id !== \"sandbox\" || hasSandboxSection) &&\n (section.id !== \"permissions\" || hasPermissionSection),\n );\n const collapsedSections = useMemo(\n () => new Set(defaultCollapsedSections ?? []),\n [defaultCollapsedSections],\n );\n const domId = (id: SpecSectionId) => `${idPrefix}-${id}`;\n const { sectionRef } = useScrollSpy(\n sections.map((section) => domId(section.id)),\n );\n\n const applyEntries = (\n applied: Parameters<typeof withPermissionEntries>[1],\n mode: Parameters<typeof withPermissionEntries>[2],\n ) => commitChange(withPermissionEntries(value, applied, mode));\n const addEntry = (\n domain: Parameters<typeof withAddedPermission>[1],\n id: string,\n ) => {\n const next = withAddedPermission(value, domain, id);\n if (next) commitChange(next);\n };\n\n const sectionBody = (id: SpecSectionId): ReactNode => {\n switch (id) {\n case \"model\":\n return (\n <ModelSection\n value={value}\n onChange={commitChange}\n models={models}\n effectiveMode={effectiveMode}\n effectiveModel={effectiveModel}\n families={runtimeFamilies}\n />\n );\n case \"prompt\":\n return (\n <PromptSection\n value={value}\n onChange={commitChange}\n supports={supports}\n variant={promptVariant}\n />\n );\n case \"workspace\":\n return (\n <WorkspaceSection\n value={value}\n onChange={commitChange}\n secretSelector={secretSelector}\n variant={variant}\n supports={supports}\n />\n );\n case \"sandbox\":\n return runtimeSchema ? (\n <SandboxSection\n value={value}\n onChange={commitChange}\n schema={runtimeSchema}\n {...(sandboxCatalog ? { catalog: sandboxCatalog } : {})}\n families={runtimeFamilies}\n {...(sandboxCreate ? { createConfig: sandboxCreate } : {})}\n />\n ) : null;\n case \"permissions\":\n return supports(\"permissions\") ? (\n <PermissionsSection\n value={value}\n onChange={commitChange}\n entries={permissionEntries}\n />\n ) : null;\n case \"environment\":\n return (\n <EnvironmentSection\n value={value}\n onChange={commitChange}\n secretSelector={secretSelector}\n />\n );\n case \"verify\":\n return (\n <VerifySection\n value={value}\n onChange={commitChange}\n models={models}\n families={runtimeFamilies}\n {...(secretSelector ? { secretSelector } : {})}\n {...(fixtureSchemas ? { fixtureSchemas } : {})}\n />\n );\n case \"commit\":\n return <CommitSection value={value} onChange={commitChange} />;\n case \"cli\":\n return cliOptions ? (\n <CLIArgsSection\n value={value}\n onChange={commitChange}\n cliOptions={cliOptions}\n />\n ) : null;\n }\n };\n\n const sectionAdvanced = (id: SpecSectionId): ReactNode => {\n switch (id) {\n case \"model\":\n return (\n <div className=\"grid gap-density-3\">\n <ModelAdvanced\n value={value}\n onChange={commitChange}\n models={models}\n supports={supports}\n families={runtimeFamilies}\n />\n <ModelContextAdvanced\n value={value}\n onChange={commitChange}\n entries={modelSkillEntries}\n onApplyEntries={applyEntries}\n onAddEntry={addEntry}\n showSkills={skillsSection === \"model\"}\n supports={supports}\n />\n </div>\n );\n case \"prompt\":\n return supports(\"prompt.schema\") ? (\n <PromptAdvanced value={value} onChange={commitChange} />\n ) : undefined;\n case \"permissions\":\n return (\n <PermissionsAdvanced\n entries={permissionEntries}\n onApplyEntries={applyEntries}\n onAddEntry={addEntry}\n includeSkills={skillsSection === \"permissions\"}\n supports={supports}\n />\n );\n case \"environment\":\n return variant === \"run\" ? (\n <EnvironmentAdvanced value={value} onChange={commitChange} />\n ) : undefined;\n default:\n return undefined;\n }\n };\n\n const valueControls = (content: ReactNode) =>\n readOnly && content ? (\n <fieldset disabled className=\"m-0 min-w-0 border-0 p-0\">\n {content}\n </fieldset>\n ) : (\n content\n );\n\n return (\n <div className={cn(\"@container\", className)}>\n <div className=\"mx-auto max-w-[820px] px-density-4 py-density-4\">\n {showHeader && (\n <Rail\n eyebrow={eyebrow}\n title={title}\n target={summarizeTarget(value)}\n />\n )}\n {runtimeError ? (\n <div\n role=\"alert\"\n className=\"mb-density-3 rounded-md border border-destructive/40 bg-destructive/10 px-density-3 py-density-2 text-sm text-destructive\"\n >\n {runtimeError} Select a valid mode below or switch to Raw to repair\n the prompt source.\n </div>\n ) : null}\n {beforeSections}\n {sections.map((section, index) => (\n <SectionCard\n key={section.id}\n meta={\n section.id === \"prompt\" && promptVariant === \"document\"\n ? {\n ...section,\n hint: \"The .prompt document body and its explicit system fields.\",\n }\n : section\n }\n number={String(index + 1).padStart(2, \"0\")}\n domId={domId(section.id)}\n sectionRef={sectionRef(domId(section.id))}\n advanced={valueControls(sectionAdvanced(section.id))}\n advancedHint={ADVANCED_HINTS[section.id]}\n defaultCollapsed={collapsedSections.has(section.id)}\n >\n {valueControls(sectionBody(section.id))}\n </SectionCard>\n ))}\n </div>\n {(onSave || onCancel) && (\n <Footer\n status={footerStatus}\n saveLabel={saveLabel}\n onSave={onSave}\n onCancel={onCancel}\n />\n )}\n </div>\n );\n}\n"],"names":["useId","useMemo","buildPermissionCatalog","SPEC_RUNTIME_FAMILIES","familyForModel","runtimeModeFromModel","firstMode","runtimeModelError","runtimeModeError","modeOptionFor","runtimeFieldSupport","SUPPORT_ALL_RUNTIME_FIELDS","runtimeSchemaPropertyAtPath","specPermissionEntries","runtimeFieldSection","SPEC_RUNTIME_SECTIONS","useScrollSpy","withPermissionEntries","withAddedPermission","jsx","ModelSection","PromptSection","WorkspaceSection","SandboxSection","PermissionsSection","EnvironmentSection","VerifySection","CommitSection","CLIArgsSection","jsxs","ModelAdvanced","ModelContextAdvanced","PromptAdvanced","PermissionsAdvanced","EnvironmentAdvanced","cn","Rail","summarizeTarget","SectionCard","Footer"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ReactNode } from '
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { ChatModel, ToolMeta } from '../../chat/types';
|
|
3
|
+
import { FixtureFenceSchemas } from '../../FixtureEditor/types';
|
|
3
4
|
import { AISpecRuntimePermissionCatalog, AISpecRuntimeValue } from '../SpecRuntimeEditor.model';
|
|
4
5
|
import { SpecRuntimeSandboxCreateConfig } from '../SandboxCreateWizard.model';
|
|
5
6
|
import { SpecRuntimeCLIOptions } from './CLIArgsSection';
|
|
@@ -24,6 +25,8 @@ export type SpecRuntimeEditorProps = {
|
|
|
24
25
|
secretSelector?: SpecRuntimeSecretSelectorConfig | undefined;
|
|
25
26
|
/** Schema for the runtime's extra CLI args; enables the CLI flags section. */
|
|
26
27
|
cliOptions?: SpecRuntimeCLIOptions | undefined;
|
|
28
|
+
/** Runner schemas keyed by fixture kind or fence info, used by the verification editor. */
|
|
29
|
+
fixtureSchemas?: FixtureFenceSchemas | undefined;
|
|
27
30
|
/** Sandbox adapter catalog; enables the Sandbox section. */
|
|
28
31
|
sandboxCatalog?: SpecRuntimeSandboxCatalog | undefined;
|
|
29
32
|
/** Host-owned sandbox creation and credential-reference adapter. */
|
|
@@ -52,5 +55,5 @@ export type SpecRuntimeEditorProps = {
|
|
|
52
55
|
saveLabel?: string | undefined;
|
|
53
56
|
footerStatus?: ReactNode | undefined;
|
|
54
57
|
};
|
|
55
|
-
export declare function SpecRuntimeEditor({ value, onChange, models, families, effectiveMode, effectiveModel, tools, permissionCatalog, secretSelector, cliOptions, sandboxCatalog, sandboxCreate, sections: sectionFilter, promptVariant, readOnly, className, title, eyebrow, showHeader, beforeSections, defaultCollapsedSections, variant, onSave, onCancel, saveLabel, footerStatus, }: SpecRuntimeEditorProps): import("react").JSX.Element;
|
|
58
|
+
export declare function SpecRuntimeEditor({ value, onChange, models, families, effectiveMode, effectiveModel, tools, permissionCatalog, secretSelector, cliOptions, fixtureSchemas, sandboxCatalog, sandboxCreate, sections: sectionFilter, promptVariant, readOnly, className, title, eyebrow, showHeader, beforeSections, defaultCollapsedSections, variant, onSave, onCancel, saveLabel, footerStatus, }: SpecRuntimeEditorProps): import("react").JSX.Element;
|
|
56
59
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,7 @@ function SpecRuntimeEditor({
|
|
|
38
38
|
permissionCatalog,
|
|
39
39
|
secretSelector,
|
|
40
40
|
cliOptions,
|
|
41
|
+
fixtureSchemas,
|
|
41
42
|
sandboxCatalog,
|
|
42
43
|
sandboxCreate,
|
|
43
44
|
sections: sectionFilter,
|
|
@@ -195,7 +196,8 @@ function SpecRuntimeEditor({
|
|
|
195
196
|
onChange: commitChange,
|
|
196
197
|
models,
|
|
197
198
|
families: runtimeFamilies,
|
|
198
|
-
...secretSelector ? { secretSelector } : {}
|
|
199
|
+
...secretSelector ? { secretSelector } : {},
|
|
200
|
+
...fixtureSchemas ? { fixtureSchemas } : {}
|
|
199
201
|
}
|
|
200
202
|
);
|
|
201
203
|
case "commit":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/data/ai/SpecRuntimeEditor/index.tsx"],"sourcesContent":["import { useId, useMemo, type ReactNode } from \"react\";\nimport { cn } from \"../../../lib/utils\";\nimport type { ChatModel, ToolMeta } from \"../../chat/types\";\nimport type {\n AISpecRuntimePermissionCatalog,\n AISpecRuntimeValue,\n} from \"../SpecRuntimeEditor.model\";\nimport type { SpecRuntimeSandboxCreateConfig } from \"../SandboxCreateWizard.model\";\nimport { CLIArgsSection, type SpecRuntimeCLIOptions } from \"./CLIArgsSection\";\nimport { CommitSection } from \"./CommitSection\";\nimport { EnvironmentAdvanced, EnvironmentSection } from \"./EnvironmentSection\";\nimport { Footer } from \"./Footer\";\nimport { ModelContextAdvanced } from \"./ModelContextAdvanced\";\nimport { ModelAdvanced, ModelSection } from \"./ModelSection\";\nimport { PermissionsAdvanced, PermissionsSection } from \"./PermissionsSection\";\nimport { PromptAdvanced, PromptSection } from \"./PromptSection\";\nimport { Rail } from \"./Rail\";\nimport { SandboxSection } from \"./SandboxSection\";\nimport { SectionCard } from \"./SectionCard\";\nimport { VerifySection } from \"./VerifySection\";\nimport { WorkspaceSection } from \"./WorkspaceSection\";\nimport {\n buildPermissionCatalog,\n specPermissionEntries,\n withAddedPermission,\n withPermissionEntries,\n} from \"./permissions-model\";\nimport { summarizeTarget } from \"./summaries\";\nimport {\n SPEC_RUNTIME_SECTIONS,\n type SpecRuntimeSandboxCatalog,\n type SpecRuntimeSecretSelectorConfig,\n type SpecSectionId,\n} from \"./types\";\nimport {\n SPEC_RUNTIME_FAMILIES,\n firstMode,\n runtimeModeError,\n runtimeModeFromModel,\n runtimeModelError,\n modeOptionFor,\n type SpecRuntimeFamily,\n} from \"../../runtime/runtime-mode\";\nimport { familyForModel } from \"../../../lib/runtime-family\";\nimport {\n runtimeFieldSection,\n runtimeFieldSupport,\n runtimeSchemaPropertyAtPath,\n SUPPORT_ALL_RUNTIME_FIELDS,\n} from \"../../runtime/runtime-field-support\";\nimport { useScrollSpy } from \"./use-scrollspy\";\n\nexport type { AISpecRuntimeValue } from \"../SpecRuntimeEditor.model\";\nexport type {\n SpecRuntimeSandboxAgent,\n SpecRuntimeSandboxBackend,\n SpecRuntimeSandboxCatalog,\n SpecRuntimeSandboxKind,\n SpecRuntimeSecretSelectorConfig,\n} from \"./types\";\nexport type { SpecRuntimeCLIOptions } from \"./CLIArgsSection\";\nexport {\n SPEC_RUNTIME_FAMILIES,\n type SpecRuntimeFamily,\n type SpecRuntimeModeOption,\n} from \"../../runtime/runtime-mode\";\n\nexport type SpecRuntimeEditorProps = {\n value: AISpecRuntimeValue;\n onChange: (value: AISpecRuntimeValue) => void;\n models?: ChatModel[] | undefined;\n /** Provider families for the two-axis Family → Mode picker in the model section. */\n families?: SpecRuntimeFamily[] | undefined;\n /** Resolved mode used to validate posture when this editable layer inherits it. */\n effectiveMode?: string | undefined;\n /** Resolved model used to identify the inherited provider family. */\n effectiveModel?: string | undefined;\n tools?: ToolMeta[] | undefined;\n permissionCatalog?: AISpecRuntimePermissionCatalog | undefined;\n secretSelector?: SpecRuntimeSecretSelectorConfig | undefined;\n /** Schema for the runtime's extra CLI args; enables the CLI flags section. */\n cliOptions?: SpecRuntimeCLIOptions | undefined;\n /** Sandbox adapter catalog; enables the Sandbox section. */\n sandboxCatalog?: SpecRuntimeSandboxCatalog | undefined;\n /** Host-owned sandbox creation and credential-reference adapter. */\n sandboxCreate?: SpecRuntimeSandboxCreateConfig | undefined;\n /** Optional ordered section selection for embedded editors that only need part of the runtime spec. */\n sections?: readonly SpecSectionId[] | undefined;\n /** Presents prompt.user as a complete .prompt document body. */\n promptVariant?: \"runtime\" | \"document\" | undefined;\n /** Disables value controls while preserving section navigation and disclosures. */\n readOnly?: boolean | undefined;\n className?: string | undefined;\n title?: ReactNode | undefined;\n eyebrow?: ReactNode | undefined;\n /** Hide the editor rail when a host modal already supplies the context. */\n showHeader?: boolean | undefined;\n /** Content rendered before the first section inside the editor column. */\n beforeSections?: ReactNode | undefined;\n /** Sections that should start collapsed in embedded contexts. */\n defaultCollapsedSections?: readonly SpecSectionId[] | undefined;\n /** Restrict task-owned fields when editing a reusable preset fragment. */\n variant?: \"run\" | \"preset\" | undefined;\n /** Renders the sticky footer's save action when set. */\n onSave?: (() => void) | undefined;\n /** Renders the sticky footer's cancel action when set. */\n onCancel?: (() => void) | undefined;\n saveLabel?: string | undefined;\n footerStatus?: ReactNode | undefined;\n};\n\nconst ADVANCED_HINTS: Partial<Record<SpecSectionId, string>> = {\n model: \"fallbacks, session, caching, memory, skills\",\n prompt: \"schema\",\n permissions: \"tools, MCP, plugins\",\n environment: \"dotenv files\",\n};\n\n// Full-page runtime spec editor (design \"Runtime Spec Editor v2\"): a live\n// summary rail with scrollspy nav, preset quick-starts, and stacked numbered\n// sections. Container-responsive so it works embedded in a modal or standalone.\nexport function SpecRuntimeEditor({\n value,\n onChange,\n models = [],\n families,\n effectiveMode,\n effectiveModel,\n tools = [],\n permissionCatalog,\n secretSelector,\n cliOptions,\n sandboxCatalog,\n sandboxCreate,\n sections: sectionFilter,\n promptVariant = \"runtime\",\n readOnly = false,\n className,\n title = \"Runtime Spec\",\n eyebrow = \"Agent configuration\",\n showHeader = true,\n beforeSections,\n defaultCollapsedSections,\n variant = \"run\",\n onSave,\n onCancel,\n saveLabel = \"Save & run\",\n footerStatus = \"Ready to run\",\n}: SpecRuntimeEditorProps) {\n const idPrefix = useId();\n const commitChange: (next: AISpecRuntimeValue) => void = readOnly\n ? () => undefined\n : onChange;\n const catalog = useMemo(\n () => buildPermissionCatalog(permissionCatalog, tools),\n [permissionCatalog, tools],\n );\n const runtimeFamilies = families?.length ? families : SPEC_RUNTIME_FAMILIES;\n const selectedFamily = familyForModel(\n runtimeFamilies,\n models,\n value.model || effectiveModel,\n );\n const specMode =\n runtimeModeFromModel(value.model) ||\n value.mode?.trim() ||\n effectiveMode?.trim() ||\n firstMode(runtimeFamilies[0] ?? SPEC_RUNTIME_FAMILIES[0]!).id;\n const runtimeError =\n runtimeModelError(value.model || effectiveModel) ??\n runtimeModeError(runtimeFamilies, specMode, selectedFamily?.id);\n const selectedRuntime = runtimeError\n ? undefined\n : modeOptionFor(runtimeFamilies, specMode, selectedFamily?.id);\n const supports = selectedRuntime\n ? runtimeFieldSupport(runtimeFamilies, specMode, selectedFamily?.id)\n : SUPPORT_ALL_RUNTIME_FIELDS;\n const runtimeSchema = selectedRuntime?.schema;\n const hasSandboxSection =\n runtimeSchema != null &&\n runtimeSchemaPropertyAtPath(runtimeSchema, \"sandbox.mode\") != null;\n const entries = useMemo(\n () => specPermissionEntries(value, catalog),\n [value, catalog],\n );\n const skillsSection = selectedRuntime\n ? (runtimeFieldSection(\n runtimeFamilies,\n specMode,\n \"permissions.skills\",\n selectedFamily?.id,\n ) ?? \"model\")\n : \"model\";\n const modelSkillEntries = entries.filter(\n (entry) =>\n entry.domain === \"skills\" &&\n skillsSection === \"model\" &&\n supports(\"permissions.skills\"),\n );\n const permissionEntries = entries.filter(\n (entry) =>\n (entry.domain !== \"skills\" || skillsSection === \"permissions\") &&\n supports(`permissions.${entry.domain}`),\n );\n const hasPermissionSection =\n (skillsSection === \"permissions\" && supports(\"permissions.skills\")) ||\n ([\"tools\", \"mcp\", \"plugins\"] as const).some((domain) =>\n supports(`permissions.${domain}`),\n );\n\n const requestedSections = useMemo(\n () =>\n sectionFilter\n ? sectionFilter.map((id) => {\n const section = SPEC_RUNTIME_SECTIONS.find(\n (candidate) => candidate.id === id,\n );\n if (!section)\n throw new Error(\n `unknown runtime editor section ${JSON.stringify(id)}`,\n );\n return section;\n })\n : SPEC_RUNTIME_SECTIONS,\n [sectionFilter],\n );\n // Sandbox modes come from the selected runtime schema. The adapter catalog is\n // optional metadata for configured Docker and Git Agent backends.\n const sections = requestedSections.filter(\n (section) =>\n (section.id !== \"cli\" || (cliOptions && supports(\"cliArgs\"))) &&\n (section.id !== \"sandbox\" || hasSandboxSection) &&\n (section.id !== \"permissions\" || hasPermissionSection),\n );\n const collapsedSections = useMemo(\n () => new Set(defaultCollapsedSections ?? []),\n [defaultCollapsedSections],\n );\n const domId = (id: SpecSectionId) => `${idPrefix}-${id}`;\n const { sectionRef } = useScrollSpy(\n sections.map((section) => domId(section.id)),\n );\n\n const applyEntries = (\n applied: Parameters<typeof withPermissionEntries>[1],\n mode: Parameters<typeof withPermissionEntries>[2],\n ) => commitChange(withPermissionEntries(value, applied, mode));\n const addEntry = (\n domain: Parameters<typeof withAddedPermission>[1],\n id: string,\n ) => {\n const next = withAddedPermission(value, domain, id);\n if (next) commitChange(next);\n };\n\n const sectionBody = (id: SpecSectionId): ReactNode => {\n switch (id) {\n case \"model\":\n return (\n <ModelSection\n value={value}\n onChange={commitChange}\n models={models}\n effectiveMode={effectiveMode}\n effectiveModel={effectiveModel}\n families={runtimeFamilies}\n />\n );\n case \"prompt\":\n return (\n <PromptSection\n value={value}\n onChange={commitChange}\n supports={supports}\n variant={promptVariant}\n />\n );\n case \"workspace\":\n return (\n <WorkspaceSection\n value={value}\n onChange={commitChange}\n secretSelector={secretSelector}\n variant={variant}\n supports={supports}\n />\n );\n case \"sandbox\":\n return runtimeSchema ? (\n <SandboxSection\n value={value}\n onChange={commitChange}\n schema={runtimeSchema}\n {...(sandboxCatalog ? { catalog: sandboxCatalog } : {})}\n families={runtimeFamilies}\n {...(sandboxCreate ? { createConfig: sandboxCreate } : {})}\n />\n ) : null;\n case \"permissions\":\n return supports(\"permissions\") ? (\n <PermissionsSection\n value={value}\n onChange={commitChange}\n entries={permissionEntries}\n />\n ) : null;\n case \"environment\":\n return (\n <EnvironmentSection\n value={value}\n onChange={commitChange}\n secretSelector={secretSelector}\n />\n );\n case \"verify\":\n return (\n <VerifySection\n value={value}\n onChange={commitChange}\n models={models}\n families={runtimeFamilies}\n {...(secretSelector ? { secretSelector } : {})}\n />\n );\n case \"commit\":\n return <CommitSection value={value} onChange={commitChange} />;\n case \"cli\":\n return cliOptions ? (\n <CLIArgsSection\n value={value}\n onChange={commitChange}\n cliOptions={cliOptions}\n />\n ) : null;\n }\n };\n\n const sectionAdvanced = (id: SpecSectionId): ReactNode => {\n switch (id) {\n case \"model\":\n return (\n <div className=\"grid gap-density-3\">\n <ModelAdvanced\n value={value}\n onChange={commitChange}\n models={models}\n supports={supports}\n families={runtimeFamilies}\n />\n <ModelContextAdvanced\n value={value}\n onChange={commitChange}\n entries={modelSkillEntries}\n onApplyEntries={applyEntries}\n onAddEntry={addEntry}\n showSkills={skillsSection === \"model\"}\n supports={supports}\n />\n </div>\n );\n case \"prompt\":\n return supports(\"prompt.schema\") ? (\n <PromptAdvanced value={value} onChange={commitChange} />\n ) : undefined;\n case \"permissions\":\n return (\n <PermissionsAdvanced\n entries={permissionEntries}\n onApplyEntries={applyEntries}\n onAddEntry={addEntry}\n includeSkills={skillsSection === \"permissions\"}\n supports={supports}\n />\n );\n case \"environment\":\n return variant === \"run\" ? (\n <EnvironmentAdvanced value={value} onChange={commitChange} />\n ) : undefined;\n default:\n return undefined;\n }\n };\n\n const valueControls = (content: ReactNode) =>\n readOnly && content ? (\n <fieldset disabled className=\"m-0 min-w-0 border-0 p-0\">\n {content}\n </fieldset>\n ) : (\n content\n );\n\n return (\n <div className={cn(\"@container\", className)}>\n <div className=\"mx-auto max-w-[820px] px-density-4 py-density-4\">\n {showHeader && (\n <Rail\n eyebrow={eyebrow}\n title={title}\n target={summarizeTarget(value)}\n />\n )}\n {runtimeError ? (\n <div\n role=\"alert\"\n className=\"mb-density-3 rounded-md border border-destructive/40 bg-destructive/10 px-density-3 py-density-2 text-sm text-destructive\"\n >\n {runtimeError} Select a valid mode below or switch to Raw to repair\n the prompt source.\n </div>\n ) : null}\n {beforeSections}\n {sections.map((section, index) => (\n <SectionCard\n key={section.id}\n meta={\n section.id === \"prompt\" && promptVariant === \"document\"\n ? {\n ...section,\n hint: \"The .prompt document body and its explicit system fields.\",\n }\n : section\n }\n number={String(index + 1).padStart(2, \"0\")}\n domId={domId(section.id)}\n sectionRef={sectionRef(domId(section.id))}\n advanced={valueControls(sectionAdvanced(section.id))}\n advancedHint={ADVANCED_HINTS[section.id]}\n defaultCollapsed={collapsedSections.has(section.id)}\n >\n {valueControls(sectionBody(section.id))}\n </SectionCard>\n ))}\n </div>\n {(onSave || onCancel) && (\n <Footer\n status={footerStatus}\n saveLabel={saveLabel}\n onSave={onSave}\n onCancel={onCancel}\n />\n )}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/data/ai/SpecRuntimeEditor/index.tsx"],"sourcesContent":["import { useId, useMemo, type ReactNode } from \"react\";\nimport { cn } from \"../../../lib/utils\";\nimport type { ChatModel, ToolMeta } from \"../../chat/types\";\nimport type { FixtureFenceSchemas } from \"../../FixtureEditor/types\";\nimport type {\n AISpecRuntimePermissionCatalog,\n AISpecRuntimeValue,\n} from \"../SpecRuntimeEditor.model\";\nimport type { SpecRuntimeSandboxCreateConfig } from \"../SandboxCreateWizard.model\";\nimport { CLIArgsSection, type SpecRuntimeCLIOptions } from \"./CLIArgsSection\";\nimport { CommitSection } from \"./CommitSection\";\nimport { EnvironmentAdvanced, EnvironmentSection } from \"./EnvironmentSection\";\nimport { Footer } from \"./Footer\";\nimport { ModelContextAdvanced } from \"./ModelContextAdvanced\";\nimport { ModelAdvanced, ModelSection } from \"./ModelSection\";\nimport { PermissionsAdvanced, PermissionsSection } from \"./PermissionsSection\";\nimport { PromptAdvanced, PromptSection } from \"./PromptSection\";\nimport { Rail } from \"./Rail\";\nimport { SandboxSection } from \"./SandboxSection\";\nimport { SectionCard } from \"./SectionCard\";\nimport { VerifySection } from \"./VerifySection\";\nimport { WorkspaceSection } from \"./WorkspaceSection\";\nimport {\n buildPermissionCatalog,\n specPermissionEntries,\n withAddedPermission,\n withPermissionEntries,\n} from \"./permissions-model\";\nimport { summarizeTarget } from \"./summaries\";\nimport {\n SPEC_RUNTIME_SECTIONS,\n type SpecRuntimeSandboxCatalog,\n type SpecRuntimeSecretSelectorConfig,\n type SpecSectionId,\n} from \"./types\";\nimport {\n SPEC_RUNTIME_FAMILIES,\n firstMode,\n runtimeModeError,\n runtimeModeFromModel,\n runtimeModelError,\n modeOptionFor,\n type SpecRuntimeFamily,\n} from \"../../runtime/runtime-mode\";\nimport { familyForModel } from \"../../../lib/runtime-family\";\nimport {\n runtimeFieldSection,\n runtimeFieldSupport,\n runtimeSchemaPropertyAtPath,\n SUPPORT_ALL_RUNTIME_FIELDS,\n} from \"../../runtime/runtime-field-support\";\nimport { useScrollSpy } from \"./use-scrollspy\";\n\nexport type { AISpecRuntimeValue } from \"../SpecRuntimeEditor.model\";\nexport type {\n SpecRuntimeSandboxAgent,\n SpecRuntimeSandboxBackend,\n SpecRuntimeSandboxCatalog,\n SpecRuntimeSandboxKind,\n SpecRuntimeSecretSelectorConfig,\n} from \"./types\";\nexport type { SpecRuntimeCLIOptions } from \"./CLIArgsSection\";\nexport {\n SPEC_RUNTIME_FAMILIES,\n type SpecRuntimeFamily,\n type SpecRuntimeModeOption,\n} from \"../../runtime/runtime-mode\";\n\nexport type SpecRuntimeEditorProps = {\n value: AISpecRuntimeValue;\n onChange: (value: AISpecRuntimeValue) => void;\n models?: ChatModel[] | undefined;\n /** Provider families for the two-axis Family → Mode picker in the model section. */\n families?: SpecRuntimeFamily[] | undefined;\n /** Resolved mode used to validate posture when this editable layer inherits it. */\n effectiveMode?: string | undefined;\n /** Resolved model used to identify the inherited provider family. */\n effectiveModel?: string | undefined;\n tools?: ToolMeta[] | undefined;\n permissionCatalog?: AISpecRuntimePermissionCatalog | undefined;\n secretSelector?: SpecRuntimeSecretSelectorConfig | undefined;\n /** Schema for the runtime's extra CLI args; enables the CLI flags section. */\n cliOptions?: SpecRuntimeCLIOptions | undefined;\n /** Runner schemas keyed by fixture kind or fence info, used by the verification editor. */\n fixtureSchemas?: FixtureFenceSchemas | undefined;\n /** Sandbox adapter catalog; enables the Sandbox section. */\n sandboxCatalog?: SpecRuntimeSandboxCatalog | undefined;\n /** Host-owned sandbox creation and credential-reference adapter. */\n sandboxCreate?: SpecRuntimeSandboxCreateConfig | undefined;\n /** Optional ordered section selection for embedded editors that only need part of the runtime spec. */\n sections?: readonly SpecSectionId[] | undefined;\n /** Presents prompt.user as a complete .prompt document body. */\n promptVariant?: \"runtime\" | \"document\" | undefined;\n /** Disables value controls while preserving section navigation and disclosures. */\n readOnly?: boolean | undefined;\n className?: string | undefined;\n title?: ReactNode | undefined;\n eyebrow?: ReactNode | undefined;\n /** Hide the editor rail when a host modal already supplies the context. */\n showHeader?: boolean | undefined;\n /** Content rendered before the first section inside the editor column. */\n beforeSections?: ReactNode | undefined;\n /** Sections that should start collapsed in embedded contexts. */\n defaultCollapsedSections?: readonly SpecSectionId[] | undefined;\n /** Restrict task-owned fields when editing a reusable preset fragment. */\n variant?: \"run\" | \"preset\" | undefined;\n /** Renders the sticky footer's save action when set. */\n onSave?: (() => void) | undefined;\n /** Renders the sticky footer's cancel action when set. */\n onCancel?: (() => void) | undefined;\n saveLabel?: string | undefined;\n footerStatus?: ReactNode | undefined;\n};\n\nconst ADVANCED_HINTS: Partial<Record<SpecSectionId, string>> = {\n model: \"fallbacks, session, caching, memory, skills\",\n prompt: \"schema\",\n permissions: \"tools, MCP, plugins\",\n environment: \"dotenv files\",\n};\n\n// Full-page runtime spec editor (design \"Runtime Spec Editor v2\"): a live\n// summary rail with scrollspy nav, preset quick-starts, and stacked numbered\n// sections. Container-responsive so it works embedded in a modal or standalone.\nexport function SpecRuntimeEditor({\n value,\n onChange,\n models = [],\n families,\n effectiveMode,\n effectiveModel,\n tools = [],\n permissionCatalog,\n secretSelector,\n cliOptions,\n fixtureSchemas,\n sandboxCatalog,\n sandboxCreate,\n sections: sectionFilter,\n promptVariant = \"runtime\",\n readOnly = false,\n className,\n title = \"Runtime Spec\",\n eyebrow = \"Agent configuration\",\n showHeader = true,\n beforeSections,\n defaultCollapsedSections,\n variant = \"run\",\n onSave,\n onCancel,\n saveLabel = \"Save & run\",\n footerStatus = \"Ready to run\",\n}: SpecRuntimeEditorProps) {\n const idPrefix = useId();\n const commitChange: (next: AISpecRuntimeValue) => void = readOnly\n ? () => undefined\n : onChange;\n const catalog = useMemo(\n () => buildPermissionCatalog(permissionCatalog, tools),\n [permissionCatalog, tools],\n );\n const runtimeFamilies = families?.length ? families : SPEC_RUNTIME_FAMILIES;\n const selectedFamily = familyForModel(\n runtimeFamilies,\n models,\n value.model || effectiveModel,\n );\n const specMode =\n runtimeModeFromModel(value.model) ||\n value.mode?.trim() ||\n effectiveMode?.trim() ||\n firstMode(runtimeFamilies[0] ?? SPEC_RUNTIME_FAMILIES[0]!).id;\n const runtimeError =\n runtimeModelError(value.model || effectiveModel) ??\n runtimeModeError(runtimeFamilies, specMode, selectedFamily?.id);\n const selectedRuntime = runtimeError\n ? undefined\n : modeOptionFor(runtimeFamilies, specMode, selectedFamily?.id);\n const supports = selectedRuntime\n ? runtimeFieldSupport(runtimeFamilies, specMode, selectedFamily?.id)\n : SUPPORT_ALL_RUNTIME_FIELDS;\n const runtimeSchema = selectedRuntime?.schema;\n const hasSandboxSection =\n runtimeSchema != null &&\n runtimeSchemaPropertyAtPath(runtimeSchema, \"sandbox.mode\") != null;\n const entries = useMemo(\n () => specPermissionEntries(value, catalog),\n [value, catalog],\n );\n const skillsSection = selectedRuntime\n ? (runtimeFieldSection(\n runtimeFamilies,\n specMode,\n \"permissions.skills\",\n selectedFamily?.id,\n ) ?? \"model\")\n : \"model\";\n const modelSkillEntries = entries.filter(\n (entry) =>\n entry.domain === \"skills\" &&\n skillsSection === \"model\" &&\n supports(\"permissions.skills\"),\n );\n const permissionEntries = entries.filter(\n (entry) =>\n (entry.domain !== \"skills\" || skillsSection === \"permissions\") &&\n supports(`permissions.${entry.domain}`),\n );\n const hasPermissionSection =\n (skillsSection === \"permissions\" && supports(\"permissions.skills\")) ||\n ([\"tools\", \"mcp\", \"plugins\"] as const).some((domain) =>\n supports(`permissions.${domain}`),\n );\n\n const requestedSections = useMemo(\n () =>\n sectionFilter\n ? sectionFilter.map((id) => {\n const section = SPEC_RUNTIME_SECTIONS.find(\n (candidate) => candidate.id === id,\n );\n if (!section)\n throw new Error(\n `unknown runtime editor section ${JSON.stringify(id)}`,\n );\n return section;\n })\n : SPEC_RUNTIME_SECTIONS,\n [sectionFilter],\n );\n // Sandbox modes come from the selected runtime schema. The adapter catalog is\n // optional metadata for configured Docker and Git Agent backends.\n const sections = requestedSections.filter(\n (section) =>\n (section.id !== \"cli\" || (cliOptions && supports(\"cliArgs\"))) &&\n (section.id !== \"sandbox\" || hasSandboxSection) &&\n (section.id !== \"permissions\" || hasPermissionSection),\n );\n const collapsedSections = useMemo(\n () => new Set(defaultCollapsedSections ?? []),\n [defaultCollapsedSections],\n );\n const domId = (id: SpecSectionId) => `${idPrefix}-${id}`;\n const { sectionRef } = useScrollSpy(\n sections.map((section) => domId(section.id)),\n );\n\n const applyEntries = (\n applied: Parameters<typeof withPermissionEntries>[1],\n mode: Parameters<typeof withPermissionEntries>[2],\n ) => commitChange(withPermissionEntries(value, applied, mode));\n const addEntry = (\n domain: Parameters<typeof withAddedPermission>[1],\n id: string,\n ) => {\n const next = withAddedPermission(value, domain, id);\n if (next) commitChange(next);\n };\n\n const sectionBody = (id: SpecSectionId): ReactNode => {\n switch (id) {\n case \"model\":\n return (\n <ModelSection\n value={value}\n onChange={commitChange}\n models={models}\n effectiveMode={effectiveMode}\n effectiveModel={effectiveModel}\n families={runtimeFamilies}\n />\n );\n case \"prompt\":\n return (\n <PromptSection\n value={value}\n onChange={commitChange}\n supports={supports}\n variant={promptVariant}\n />\n );\n case \"workspace\":\n return (\n <WorkspaceSection\n value={value}\n onChange={commitChange}\n secretSelector={secretSelector}\n variant={variant}\n supports={supports}\n />\n );\n case \"sandbox\":\n return runtimeSchema ? (\n <SandboxSection\n value={value}\n onChange={commitChange}\n schema={runtimeSchema}\n {...(sandboxCatalog ? { catalog: sandboxCatalog } : {})}\n families={runtimeFamilies}\n {...(sandboxCreate ? { createConfig: sandboxCreate } : {})}\n />\n ) : null;\n case \"permissions\":\n return supports(\"permissions\") ? (\n <PermissionsSection\n value={value}\n onChange={commitChange}\n entries={permissionEntries}\n />\n ) : null;\n case \"environment\":\n return (\n <EnvironmentSection\n value={value}\n onChange={commitChange}\n secretSelector={secretSelector}\n />\n );\n case \"verify\":\n return (\n <VerifySection\n value={value}\n onChange={commitChange}\n models={models}\n families={runtimeFamilies}\n {...(secretSelector ? { secretSelector } : {})}\n {...(fixtureSchemas ? { fixtureSchemas } : {})}\n />\n );\n case \"commit\":\n return <CommitSection value={value} onChange={commitChange} />;\n case \"cli\":\n return cliOptions ? (\n <CLIArgsSection\n value={value}\n onChange={commitChange}\n cliOptions={cliOptions}\n />\n ) : null;\n }\n };\n\n const sectionAdvanced = (id: SpecSectionId): ReactNode => {\n switch (id) {\n case \"model\":\n return (\n <div className=\"grid gap-density-3\">\n <ModelAdvanced\n value={value}\n onChange={commitChange}\n models={models}\n supports={supports}\n families={runtimeFamilies}\n />\n <ModelContextAdvanced\n value={value}\n onChange={commitChange}\n entries={modelSkillEntries}\n onApplyEntries={applyEntries}\n onAddEntry={addEntry}\n showSkills={skillsSection === \"model\"}\n supports={supports}\n />\n </div>\n );\n case \"prompt\":\n return supports(\"prompt.schema\") ? (\n <PromptAdvanced value={value} onChange={commitChange} />\n ) : undefined;\n case \"permissions\":\n return (\n <PermissionsAdvanced\n entries={permissionEntries}\n onApplyEntries={applyEntries}\n onAddEntry={addEntry}\n includeSkills={skillsSection === \"permissions\"}\n supports={supports}\n />\n );\n case \"environment\":\n return variant === \"run\" ? (\n <EnvironmentAdvanced value={value} onChange={commitChange} />\n ) : undefined;\n default:\n return undefined;\n }\n };\n\n const valueControls = (content: ReactNode) =>\n readOnly && content ? (\n <fieldset disabled className=\"m-0 min-w-0 border-0 p-0\">\n {content}\n </fieldset>\n ) : (\n content\n );\n\n return (\n <div className={cn(\"@container\", className)}>\n <div className=\"mx-auto max-w-[820px] px-density-4 py-density-4\">\n {showHeader && (\n <Rail\n eyebrow={eyebrow}\n title={title}\n target={summarizeTarget(value)}\n />\n )}\n {runtimeError ? (\n <div\n role=\"alert\"\n className=\"mb-density-3 rounded-md border border-destructive/40 bg-destructive/10 px-density-3 py-density-2 text-sm text-destructive\"\n >\n {runtimeError} Select a valid mode below or switch to Raw to repair\n the prompt source.\n </div>\n ) : null}\n {beforeSections}\n {sections.map((section, index) => (\n <SectionCard\n key={section.id}\n meta={\n section.id === \"prompt\" && promptVariant === \"document\"\n ? {\n ...section,\n hint: \"The .prompt document body and its explicit system fields.\",\n }\n : section\n }\n number={String(index + 1).padStart(2, \"0\")}\n domId={domId(section.id)}\n sectionRef={sectionRef(domId(section.id))}\n advanced={valueControls(sectionAdvanced(section.id))}\n advancedHint={ADVANCED_HINTS[section.id]}\n defaultCollapsed={collapsedSections.has(section.id)}\n >\n {valueControls(sectionBody(section.id))}\n </SectionCard>\n ))}\n </div>\n {(onSave || onCancel) && (\n <Footer\n status={footerStatus}\n saveLabel={saveLabel}\n onSave={onSave}\n onCancel={onCancel}\n />\n )}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ function loadPanels(storageId) {
|
|
|
27
27
|
initialModel: null,
|
|
28
28
|
zIndex: Z_BASE + i,
|
|
29
29
|
initialPrompt: null,
|
|
30
|
+
proposedPrompts: [],
|
|
30
31
|
contextItems: [],
|
|
31
32
|
// A restored window is not attached to a surface yet, so tools fall back
|
|
32
33
|
// to the catalog defaults until one reopens it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-window-context.cjs","sources":["../../../src/data/ai/chat-window-context.ts"],"sourcesContent":["// Non-component half of the chat window manager: the context object, the hook,\n// id helpers, persistence and layout maths. Split from the Provider (a .tsx\n// component) so this file stays JSX-free — matching the repo idiom of keeping\n// context/hooks in a .ts (see hooks/use-theme.ts, data/test-runner/context.ts)\n// and keeping React-Fast-Refresh happy.\nimport { createContext, useContext } from \"react\";\nimport type { ChatContextItem } from \"./context\";\nimport type { PermissionPolicy } from \"../chat/tool-policy\";\nimport { zIndex } from \"../../overlay/zIndex\";\n\n/** Live state of one floating chat window. Position/size/maximized are\n * persisted to localStorage; the rest is session-only. */\nexport interface ChatWindowState {\n id: string;\n threadId: string | null;\n initialModel: string | null;\n x: number;\n y: number;\n width: number;\n height: number;\n zIndex: number;\n maximized: boolean;\n /** A prompt to
|
|
1
|
+
{"version":3,"file":"chat-window-context.cjs","sources":["../../../src/data/ai/chat-window-context.ts"],"sourcesContent":["// Non-component half of the chat window manager: the context object, the hook,\n// id helpers, persistence and layout maths. Split from the Provider (a .tsx\n// component) so this file stays JSX-free — matching the repo idiom of keeping\n// context/hooks in a .ts (see hooks/use-theme.ts, data/test-runner/context.ts)\n// and keeping React-Fast-Refresh happy.\nimport { createContext, useContext } from \"react\";\nimport type { ChatContextItem } from \"./context\";\nimport type { PermissionPolicy } from \"../chat/tool-policy\";\nimport type { Suggestion } from \"../chat/types\";\nimport { zIndex } from \"../../overlay/zIndex\";\n\n/** Live state of one floating chat window. Position/size/maximized are\n * persisted to localStorage; the rest is session-only. */\nexport interface ChatWindowState {\n id: string;\n threadId: string | null;\n initialModel: string | null;\n x: number;\n y: number;\n width: number;\n height: number;\n zIndex: number;\n maximized: boolean;\n /** A prompt to prefill the composer with when the window mounts — never sent\n * on the user's behalf (the `id` lets the window detect a fresh request even\n * if the text repeats). */\n initialPrompt: { id: number; text: string } | null;\n /** Prompts the opening surface proposes for this window, offered as chips\n * above the composer. Transient: cleared once one is picked or the user\n * sends something of their own. */\n proposedPrompts: Suggestion[];\n contextItems: ChatContextItem[];\n /** The ordered rules the surface that opened this window declares. They sit\n * under the user.s own rules and over the tool catalog.s defaults, so a\n * surface can narrow a family without overriding a toggle. */\n toolPolicy: PermissionPolicy;\n}\n\nexport interface OpenPanelOpts {\n threadId?: string | null;\n initialModel?: string | null;\n initialPrompt?: { id: number; text: string } | null;\n /** See {@link ChatWindowState.proposedPrompts}. */\n proposedPrompts?: Suggestion[];\n contextItems?: ChatContextItem[];\n /** See {@link ChatWindowState.toolPolicy}. */\n toolPolicy?: PermissionPolicy;\n}\n\nexport interface ChatWindowManagerValue {\n panels: ChatWindowState[];\n openPanel: (opts?: OpenPanelOpts) => string;\n closePanel: (id: string) => void;\n updatePanel: (id: string, partial: Partial<ChatWindowState>) => void;\n bringToFront: (id: string) => void;\n maximizePanel: (id: string) => void;\n /** Reuses the front-most existing window (merging in any new prompt/context)\n * or opens a fresh one when none exist. */\n findOrCreatePanel: (opts?: OpenPanelOpts) => string;\n}\n\nexport const ChatWindowManagerContext = createContext<ChatWindowManagerValue | null>(null);\n\nexport function useChatWindowManager(): ChatWindowManagerValue {\n const ctx = useContext(ChatWindowManagerContext);\n if (!ctx) throw new Error(\"useChatWindowManager must be used within <ChatWindowManagerProvider>\");\n return ctx;\n}\n\nexport const MAX_PANELS = 6;\nexport const DEFAULT_WIDTH = 520;\nexport const DEFAULT_HEIGHT = 700;\nexport const CASCADE_OFFSET = 30;\nexport const Z_BASE = zIndex.chatWindow;\n\nfunction storageKey(storageId: string) {\n return `chat-panels:${storageId}`;\n}\n\ninterface PersistedPanel {\n id: string;\n threadId: string | null;\n x: number;\n y: number;\n width: number;\n height: number;\n maximized: boolean;\n}\n\nexport function loadPanels(storageId: string): ChatWindowState[] {\n if (typeof window === \"undefined\") return [];\n try {\n const raw = localStorage.getItem(storageKey(storageId));\n if (!raw) return [];\n const persisted: PersistedPanel[] = JSON.parse(raw);\n return persisted.map((p, i) => ({\n ...p,\n initialModel: null,\n zIndex: Z_BASE + i,\n initialPrompt: null,\n proposedPrompts: [],\n contextItems: [],\n // A restored window is not attached to a surface yet, so tools fall back\n // to the catalog defaults until one reopens it.\n toolPolicy: [],\n }));\n } catch {\n return [];\n }\n}\n\nexport function savePanels(storageId: string, panels: ChatWindowState[]) {\n const persisted: PersistedPanel[] = panels.map((p) => ({\n id: p.id,\n threadId: p.threadId,\n x: p.x,\n y: p.y,\n width: p.width,\n height: p.height,\n maximized: p.maximized,\n }));\n localStorage.setItem(storageKey(storageId), JSON.stringify(persisted));\n}\n\nlet _panelId = 0;\nexport function nextPanelId(): string {\n return `panel-${++_panelId}-${Date.now()}`;\n}\n\nlet _promptId = 0;\n/** A monotonic id stamped onto an `initialPrompt` so a window re-seeds its\n * composer even when the same text is requested twice. */\nexport function nextPromptId(): number {\n return ++_promptId;\n}\n\n/** Re-indexes z so values stay compact (61, 62, …) with `frontId` on top. */\nexport function reindex(panels: ChatWindowState[], frontId?: string): ChatWindowState[] {\n const sorted = [...panels].sort((a, b) => a.zIndex - b.zIndex);\n if (frontId) {\n const idx = sorted.findIndex((p) => p.id === frontId);\n if (idx >= 0) {\n const [item] = sorted.splice(idx, 1);\n if (item) sorted.push(item);\n }\n }\n return sorted.map((p, i) => ({ ...p, zIndex: Z_BASE + i }));\n}\n"],"names":["createContext","useContext","zIndex"],"mappings":";;;;AA6DO,MAAM,2BAA2BA,MAAAA,cAA6C,IAAI;AAElF,SAAS,uBAA+C;AAC7D,QAAM,MAAMC,MAAAA,WAAW,wBAAwB;AAC/C,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,sEAAsE;AAChG,SAAO;AACT;AAEO,MAAM,aAAa;AACnB,MAAM,gBAAgB;AACtB,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AACvB,MAAM,SAASC,OAAAA,OAAO;AAE7B,SAAS,WAAW,WAAmB;AACrC,SAAO,eAAe,SAAS;AACjC;AAYO,SAAS,WAAW,WAAsC;AAC/D,MAAI,OAAO,WAAW,YAAa,QAAO,CAAA;AAC1C,MAAI;AACF,UAAM,MAAM,aAAa,QAAQ,WAAW,SAAS,CAAC;AACtD,QAAI,CAAC,IAAK,QAAO,CAAA;AACjB,UAAM,YAA8B,KAAK,MAAM,GAAG;AAClD,WAAO,UAAU,IAAI,CAAC,GAAG,OAAO;AAAA,MAC9B,GAAG;AAAA,MACH,cAAc;AAAA,MACd,QAAQ,SAAS;AAAA,MACjB,eAAe;AAAA,MACf,iBAAiB,CAAA;AAAA,MACjB,cAAc,CAAA;AAAA;AAAA;AAAA,MAGd,YAAY,CAAA;AAAA,IAAC,EACb;AAAA,EACJ,QAAQ;AACN,WAAO,CAAA;AAAA,EACT;AACF;AAEO,SAAS,WAAW,WAAmB,QAA2B;AACvE,QAAM,YAA8B,OAAO,IAAI,CAAC,OAAO;AAAA,IACrD,IAAI,EAAE;AAAA,IACN,UAAU,EAAE;AAAA,IACZ,GAAG,EAAE;AAAA,IACL,GAAG,EAAE;AAAA,IACL,OAAO,EAAE;AAAA,IACT,QAAQ,EAAE;AAAA,IACV,WAAW,EAAE;AAAA,EAAA,EACb;AACF,eAAa,QAAQ,WAAW,SAAS,GAAG,KAAK,UAAU,SAAS,CAAC;AACvE;AAEA,IAAI,WAAW;AACR,SAAS,cAAsB;AACpC,SAAO,SAAS,EAAE,QAAQ,IAAI,KAAK,KAAK;AAC1C;AAEA,IAAI,YAAY;AAGT,SAAS,eAAuB;AACrC,SAAO,EAAE;AACX;AAGO,SAAS,QAAQ,QAA2B,SAAqC;AACtF,QAAM,SAAS,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM;AAC7D,MAAI,SAAS;AACX,UAAM,MAAM,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,OAAO;AACpD,QAAI,OAAO,GAAG;AACZ,YAAM,CAAC,IAAI,IAAI,OAAO,OAAO,KAAK,CAAC;AACnC,UAAI,KAAM,QAAO,KAAK,IAAI;AAAA,IAC5B;AAAA,EACF;AACA,SAAO,OAAO,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,GAAG,QAAQ,SAAS,EAAA,EAAI;AAC5D;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChatContextItem } from './context';
|
|
2
2
|
import { PermissionPolicy } from '../chat/tool-policy';
|
|
3
|
+
import { Suggestion } from '../chat/types';
|
|
3
4
|
/** Live state of one floating chat window. Position/size/maximized are
|
|
4
5
|
* persisted to localStorage; the rest is session-only. */
|
|
5
6
|
export interface ChatWindowState {
|
|
@@ -12,12 +13,17 @@ export interface ChatWindowState {
|
|
|
12
13
|
height: number;
|
|
13
14
|
zIndex: number;
|
|
14
15
|
maximized: boolean;
|
|
15
|
-
/** A prompt to
|
|
16
|
-
*
|
|
16
|
+
/** A prompt to prefill the composer with when the window mounts — never sent
|
|
17
|
+
* on the user's behalf (the `id` lets the window detect a fresh request even
|
|
18
|
+
* if the text repeats). */
|
|
17
19
|
initialPrompt: {
|
|
18
20
|
id: number;
|
|
19
21
|
text: string;
|
|
20
22
|
} | null;
|
|
23
|
+
/** Prompts the opening surface proposes for this window, offered as chips
|
|
24
|
+
* above the composer. Transient: cleared once one is picked or the user
|
|
25
|
+
* sends something of their own. */
|
|
26
|
+
proposedPrompts: Suggestion[];
|
|
21
27
|
contextItems: ChatContextItem[];
|
|
22
28
|
/** The ordered rules the surface that opened this window declares. They sit
|
|
23
29
|
* under the user.s own rules and over the tool catalog.s defaults, so a
|
|
@@ -31,6 +37,8 @@ export interface OpenPanelOpts {
|
|
|
31
37
|
id: number;
|
|
32
38
|
text: string;
|
|
33
39
|
} | null;
|
|
40
|
+
/** See {@link ChatWindowState.proposedPrompts}. */
|
|
41
|
+
proposedPrompts?: Suggestion[];
|
|
34
42
|
contextItems?: ChatContextItem[];
|
|
35
43
|
/** See {@link ChatWindowState.toolPolicy}. */
|
|
36
44
|
toolPolicy?: PermissionPolicy;
|
|
@@ -46,7 +54,7 @@ export interface ChatWindowManagerValue {
|
|
|
46
54
|
* or opens a fresh one when none exist. */
|
|
47
55
|
findOrCreatePanel: (opts?: OpenPanelOpts) => string;
|
|
48
56
|
}
|
|
49
|
-
export declare const ChatWindowManagerContext: import('
|
|
57
|
+
export declare const ChatWindowManagerContext: import('react').Context<ChatWindowManagerValue | null>;
|
|
50
58
|
export declare function useChatWindowManager(): ChatWindowManagerValue;
|
|
51
59
|
export declare const MAX_PANELS = 6;
|
|
52
60
|
export declare const DEFAULT_WIDTH = 520;
|
|
@@ -56,8 +64,8 @@ export declare const Z_BASE: 61;
|
|
|
56
64
|
export declare function loadPanels(storageId: string): ChatWindowState[];
|
|
57
65
|
export declare function savePanels(storageId: string, panels: ChatWindowState[]): void;
|
|
58
66
|
export declare function nextPanelId(): string;
|
|
59
|
-
/** A monotonic id stamped onto an `initialPrompt` so a window re-
|
|
60
|
-
* the same text is requested twice. */
|
|
67
|
+
/** A monotonic id stamped onto an `initialPrompt` so a window re-seeds its
|
|
68
|
+
* composer even when the same text is requested twice. */
|
|
61
69
|
export declare function nextPromptId(): number;
|
|
62
70
|
/** Re-indexes z so values stay compact (61, 62, …) with `frontId` on top. */
|
|
63
71
|
export declare function reindex(panels: ChatWindowState[], frontId?: string): ChatWindowState[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-window-context.d.ts","sourceRoot":"","sources":["../../../src/data/ai/chat-window-context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-window-context.d.ts","sourceRoot":"","sources":["../../../src/data/ai/chat-window-context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD;2DAC2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB;;gCAE4B;IAC5B,aAAa,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD;;wCAEoC;IACpC,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC;;mEAE+D;IAC/D,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,mDAAmD;IACnD,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,8CAA8C;IAC9C,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC;IAC5C,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IACrE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;gDAC4C;IAC5C,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC;CACrD;AAED,eAAO,MAAM,wBAAwB,wDAAqD,CAAC;AAE3F,wBAAgB,oBAAoB,IAAI,sBAAsB,CAI7D;AAED,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,MAAM,IAAoB,CAAC;AAgBxC,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CAoB/D;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,QAWtE;AAGD,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAGD;2DAC2D;AAC3D,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,CAUtF"}
|
|
@@ -25,6 +25,7 @@ function loadPanels(storageId) {
|
|
|
25
25
|
initialModel: null,
|
|
26
26
|
zIndex: Z_BASE + i,
|
|
27
27
|
initialPrompt: null,
|
|
28
|
+
proposedPrompts: [],
|
|
28
29
|
contextItems: [],
|
|
29
30
|
// A restored window is not attached to a surface yet, so tools fall back
|
|
30
31
|
// to the catalog defaults until one reopens it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-window-context.js","sources":["../../../src/data/ai/chat-window-context.ts"],"sourcesContent":["// Non-component half of the chat window manager: the context object, the hook,\n// id helpers, persistence and layout maths. Split from the Provider (a .tsx\n// component) so this file stays JSX-free — matching the repo idiom of keeping\n// context/hooks in a .ts (see hooks/use-theme.ts, data/test-runner/context.ts)\n// and keeping React-Fast-Refresh happy.\nimport { createContext, useContext } from \"react\";\nimport type { ChatContextItem } from \"./context\";\nimport type { PermissionPolicy } from \"../chat/tool-policy\";\nimport { zIndex } from \"../../overlay/zIndex\";\n\n/** Live state of one floating chat window. Position/size/maximized are\n * persisted to localStorage; the rest is session-only. */\nexport interface ChatWindowState {\n id: string;\n threadId: string | null;\n initialModel: string | null;\n x: number;\n y: number;\n width: number;\n height: number;\n zIndex: number;\n maximized: boolean;\n /** A prompt to
|
|
1
|
+
{"version":3,"file":"chat-window-context.js","sources":["../../../src/data/ai/chat-window-context.ts"],"sourcesContent":["// Non-component half of the chat window manager: the context object, the hook,\n// id helpers, persistence and layout maths. Split from the Provider (a .tsx\n// component) so this file stays JSX-free — matching the repo idiom of keeping\n// context/hooks in a .ts (see hooks/use-theme.ts, data/test-runner/context.ts)\n// and keeping React-Fast-Refresh happy.\nimport { createContext, useContext } from \"react\";\nimport type { ChatContextItem } from \"./context\";\nimport type { PermissionPolicy } from \"../chat/tool-policy\";\nimport type { Suggestion } from \"../chat/types\";\nimport { zIndex } from \"../../overlay/zIndex\";\n\n/** Live state of one floating chat window. Position/size/maximized are\n * persisted to localStorage; the rest is session-only. */\nexport interface ChatWindowState {\n id: string;\n threadId: string | null;\n initialModel: string | null;\n x: number;\n y: number;\n width: number;\n height: number;\n zIndex: number;\n maximized: boolean;\n /** A prompt to prefill the composer with when the window mounts — never sent\n * on the user's behalf (the `id` lets the window detect a fresh request even\n * if the text repeats). */\n initialPrompt: { id: number; text: string } | null;\n /** Prompts the opening surface proposes for this window, offered as chips\n * above the composer. Transient: cleared once one is picked or the user\n * sends something of their own. */\n proposedPrompts: Suggestion[];\n contextItems: ChatContextItem[];\n /** The ordered rules the surface that opened this window declares. They sit\n * under the user.s own rules and over the tool catalog.s defaults, so a\n * surface can narrow a family without overriding a toggle. */\n toolPolicy: PermissionPolicy;\n}\n\nexport interface OpenPanelOpts {\n threadId?: string | null;\n initialModel?: string | null;\n initialPrompt?: { id: number; text: string } | null;\n /** See {@link ChatWindowState.proposedPrompts}. */\n proposedPrompts?: Suggestion[];\n contextItems?: ChatContextItem[];\n /** See {@link ChatWindowState.toolPolicy}. */\n toolPolicy?: PermissionPolicy;\n}\n\nexport interface ChatWindowManagerValue {\n panels: ChatWindowState[];\n openPanel: (opts?: OpenPanelOpts) => string;\n closePanel: (id: string) => void;\n updatePanel: (id: string, partial: Partial<ChatWindowState>) => void;\n bringToFront: (id: string) => void;\n maximizePanel: (id: string) => void;\n /** Reuses the front-most existing window (merging in any new prompt/context)\n * or opens a fresh one when none exist. */\n findOrCreatePanel: (opts?: OpenPanelOpts) => string;\n}\n\nexport const ChatWindowManagerContext = createContext<ChatWindowManagerValue | null>(null);\n\nexport function useChatWindowManager(): ChatWindowManagerValue {\n const ctx = useContext(ChatWindowManagerContext);\n if (!ctx) throw new Error(\"useChatWindowManager must be used within <ChatWindowManagerProvider>\");\n return ctx;\n}\n\nexport const MAX_PANELS = 6;\nexport const DEFAULT_WIDTH = 520;\nexport const DEFAULT_HEIGHT = 700;\nexport const CASCADE_OFFSET = 30;\nexport const Z_BASE = zIndex.chatWindow;\n\nfunction storageKey(storageId: string) {\n return `chat-panels:${storageId}`;\n}\n\ninterface PersistedPanel {\n id: string;\n threadId: string | null;\n x: number;\n y: number;\n width: number;\n height: number;\n maximized: boolean;\n}\n\nexport function loadPanels(storageId: string): ChatWindowState[] {\n if (typeof window === \"undefined\") return [];\n try {\n const raw = localStorage.getItem(storageKey(storageId));\n if (!raw) return [];\n const persisted: PersistedPanel[] = JSON.parse(raw);\n return persisted.map((p, i) => ({\n ...p,\n initialModel: null,\n zIndex: Z_BASE + i,\n initialPrompt: null,\n proposedPrompts: [],\n contextItems: [],\n // A restored window is not attached to a surface yet, so tools fall back\n // to the catalog defaults until one reopens it.\n toolPolicy: [],\n }));\n } catch {\n return [];\n }\n}\n\nexport function savePanels(storageId: string, panels: ChatWindowState[]) {\n const persisted: PersistedPanel[] = panels.map((p) => ({\n id: p.id,\n threadId: p.threadId,\n x: p.x,\n y: p.y,\n width: p.width,\n height: p.height,\n maximized: p.maximized,\n }));\n localStorage.setItem(storageKey(storageId), JSON.stringify(persisted));\n}\n\nlet _panelId = 0;\nexport function nextPanelId(): string {\n return `panel-${++_panelId}-${Date.now()}`;\n}\n\nlet _promptId = 0;\n/** A monotonic id stamped onto an `initialPrompt` so a window re-seeds its\n * composer even when the same text is requested twice. */\nexport function nextPromptId(): number {\n return ++_promptId;\n}\n\n/** Re-indexes z so values stay compact (61, 62, …) with `frontId` on top. */\nexport function reindex(panels: ChatWindowState[], frontId?: string): ChatWindowState[] {\n const sorted = [...panels].sort((a, b) => a.zIndex - b.zIndex);\n if (frontId) {\n const idx = sorted.findIndex((p) => p.id === frontId);\n if (idx >= 0) {\n const [item] = sorted.splice(idx, 1);\n if (item) sorted.push(item);\n }\n }\n return sorted.map((p, i) => ({ ...p, zIndex: Z_BASE + i }));\n}\n"],"names":[],"mappings":";;AA6DO,MAAM,2BAA2B,cAA6C,IAAI;AAElF,SAAS,uBAA+C;AAC7D,QAAM,MAAM,WAAW,wBAAwB;AAC/C,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,sEAAsE;AAChG,SAAO;AACT;AAEO,MAAM,aAAa;AACnB,MAAM,gBAAgB;AACtB,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AACvB,MAAM,SAAS,OAAO;AAE7B,SAAS,WAAW,WAAmB;AACrC,SAAO,eAAe,SAAS;AACjC;AAYO,SAAS,WAAW,WAAsC;AAC/D,MAAI,OAAO,WAAW,YAAa,QAAO,CAAA;AAC1C,MAAI;AACF,UAAM,MAAM,aAAa,QAAQ,WAAW,SAAS,CAAC;AACtD,QAAI,CAAC,IAAK,QAAO,CAAA;AACjB,UAAM,YAA8B,KAAK,MAAM,GAAG;AAClD,WAAO,UAAU,IAAI,CAAC,GAAG,OAAO;AAAA,MAC9B,GAAG;AAAA,MACH,cAAc;AAAA,MACd,QAAQ,SAAS;AAAA,MACjB,eAAe;AAAA,MACf,iBAAiB,CAAA;AAAA,MACjB,cAAc,CAAA;AAAA;AAAA;AAAA,MAGd,YAAY,CAAA;AAAA,IAAC,EACb;AAAA,EACJ,QAAQ;AACN,WAAO,CAAA;AAAA,EACT;AACF;AAEO,SAAS,WAAW,WAAmB,QAA2B;AACvE,QAAM,YAA8B,OAAO,IAAI,CAAC,OAAO;AAAA,IACrD,IAAI,EAAE;AAAA,IACN,UAAU,EAAE;AAAA,IACZ,GAAG,EAAE;AAAA,IACL,GAAG,EAAE;AAAA,IACL,OAAO,EAAE;AAAA,IACT,QAAQ,EAAE;AAAA,IACV,WAAW,EAAE;AAAA,EAAA,EACb;AACF,eAAa,QAAQ,WAAW,SAAS,GAAG,KAAK,UAAU,SAAS,CAAC;AACvE;AAEA,IAAI,WAAW;AACR,SAAS,cAAsB;AACpC,SAAO,SAAS,EAAE,QAAQ,IAAI,KAAK,KAAK;AAC1C;AAEA,IAAI,YAAY;AAGT,SAAS,eAAuB;AACrC,SAAO,EAAE;AACX;AAGO,SAAS,QAAQ,QAA2B,SAAqC;AACtF,QAAM,SAAS,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM;AAC7D,MAAI,SAAS;AACX,UAAM,MAAM,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,OAAO;AACpD,QAAI,OAAO,GAAG;AACZ,YAAM,CAAC,IAAI,IAAI,OAAO,OAAO,KAAK,CAAC;AACnC,UAAI,KAAM,QAAO,KAAK,IAAI;AAAA,IAC5B;AAAA,EACF;AACA,SAAO,OAAO,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,GAAG,QAAQ,SAAS,EAAA,EAAI;AAC5D;"}
|