@stechquick/studio-cli 4.2.0-0 → 4.2.0-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/agentic/compiler/build/nemoInterfaces.js +2303 -0
- package/dist/common/agentic/compiler/build/nemoInterfaces.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/InfiniteScroll.js +250 -0
- package/dist/common/agentic/compiler/src/definitions/InfiniteScroll.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/Messaging.js +53 -0
- package/dist/common/agentic/compiler/src/definitions/Messaging.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QAnimation.js +174 -0
- package/dist/common/agentic/compiler/src/definitions/QAnimation.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QAppointmentCalendar.js +749 -0
- package/dist/common/agentic/compiler/src/definitions/QAppointmentCalendar.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QDocumentViewer.js +473 -0
- package/dist/common/agentic/compiler/src/definitions/QDocumentViewer.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QFrame.js +237 -0
- package/dist/common/agentic/compiler/src/definitions/QFrame.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QImgZoom.js +237 -0
- package/dist/common/agentic/compiler/src/definitions/QImgZoom.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QLabel.js +160 -0
- package/dist/common/agentic/compiler/src/definitions/QLabel.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QLightBox.js +366 -0
- package/dist/common/agentic/compiler/src/definitions/QLightBox.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QMap.js +239 -0
- package/dist/common/agentic/compiler/src/definitions/QMap.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QMenu.js +451 -0
- package/dist/common/agentic/compiler/src/definitions/QMenu.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QOtp.js +593 -0
- package/dist/common/agentic/compiler/src/definitions/QOtp.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QPhoneInput.js +713 -0
- package/dist/common/agentic/compiler/src/definitions/QPhoneInput.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QPieChart.js +209 -0
- package/dist/common/agentic/compiler/src/definitions/QPieChart.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QQrReader.js +456 -0
- package/dist/common/agentic/compiler/src/definitions/QQrReader.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QRichContent.js +176 -0
- package/dist/common/agentic/compiler/src/definitions/QRichContent.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/QVideo.js +250 -0
- package/dist/common/agentic/compiler/src/definitions/QVideo.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/RenderingComponent.js +130 -0
- package/dist/common/agentic/compiler/src/definitions/RenderingComponent.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/Tooltip.js +296 -0
- package/dist/common/agentic/compiler/src/definitions/Tooltip.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VAlert.js +292 -0
- package/dist/common/agentic/compiler/src/definitions/VAlert.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VAppBar.js +257 -0
- package/dist/common/agentic/compiler/src/definitions/VAppBar.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VAutocomplete.js +688 -0
- package/dist/common/agentic/compiler/src/definitions/VAutocomplete.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VAvatar.js +254 -0
- package/dist/common/agentic/compiler/src/definitions/VAvatar.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VBanner.js +217 -0
- package/dist/common/agentic/compiler/src/definitions/VBanner.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VBottomNavigation.js +180 -0
- package/dist/common/agentic/compiler/src/definitions/VBottomNavigation.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VBottomSheet.js +267 -0
- package/dist/common/agentic/compiler/src/definitions/VBottomSheet.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VBreadcrumbs.js +389 -0
- package/dist/common/agentic/compiler/src/definitions/VBreadcrumbs.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VBtn.js +423 -0
- package/dist/common/agentic/compiler/src/definitions/VBtn.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VBtnToggle.js +658 -0
- package/dist/common/agentic/compiler/src/definitions/VBtnToggle.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VCalendar.js +445 -0
- package/dist/common/agentic/compiler/src/definitions/VCalendar.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VCard.js +326 -0
- package/dist/common/agentic/compiler/src/definitions/VCard.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VCarousel.js +261 -0
- package/dist/common/agentic/compiler/src/definitions/VCarousel.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VCheckbox.js +397 -0
- package/dist/common/agentic/compiler/src/definitions/VCheckbox.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VChip.js +342 -0
- package/dist/common/agentic/compiler/src/definitions/VChip.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VChipGroup.js +652 -0
- package/dist/common/agentic/compiler/src/definitions/VChipGroup.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VCol.js +227 -0
- package/dist/common/agentic/compiler/src/definitions/VCol.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VCombobox.js +679 -0
- package/dist/common/agentic/compiler/src/definitions/VCombobox.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VContainer.js +291 -0
- package/dist/common/agentic/compiler/src/definitions/VContainer.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VDataTable.js +488 -0
- package/dist/common/agentic/compiler/src/definitions/VDataTable.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VDatePicker.js +506 -0
- package/dist/common/agentic/compiler/src/definitions/VDatePicker.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VDialog.js +253 -0
- package/dist/common/agentic/compiler/src/definitions/VDialog.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VDivider.js +191 -0
- package/dist/common/agentic/compiler/src/definitions/VDivider.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VExpansionPanel.js +131 -0
- package/dist/common/agentic/compiler/src/definitions/VExpansionPanel.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VExpansionPanelContent.js +131 -0
- package/dist/common/agentic/compiler/src/definitions/VExpansionPanelContent.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VExpansionPanelHeader.js +131 -0
- package/dist/common/agentic/compiler/src/definitions/VExpansionPanelHeader.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VExpansionPanels.js +1081 -0
- package/dist/common/agentic/compiler/src/definitions/VExpansionPanels.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VFileInput.js +561 -0
- package/dist/common/agentic/compiler/src/definitions/VFileInput.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VFooter.js +258 -0
- package/dist/common/agentic/compiler/src/definitions/VFooter.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VIcon.js +243 -0
- package/dist/common/agentic/compiler/src/definitions/VIcon.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VImg.js +278 -0
- package/dist/common/agentic/compiler/src/definitions/VImg.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VInlineDatepicker.js +732 -0
- package/dist/common/agentic/compiler/src/definitions/VInlineDatepicker.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VInlineTimePicker.js +525 -0
- package/dist/common/agentic/compiler/src/definitions/VInlineTimePicker.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VList.js +169 -0
- package/dist/common/agentic/compiler/src/definitions/VList.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VListGroup.js +464 -0
- package/dist/common/agentic/compiler/src/definitions/VListGroup.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VListItem.js +354 -0
- package/dist/common/agentic/compiler/src/definitions/VListItem.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VListItemContent.js +133 -0
- package/dist/common/agentic/compiler/src/definitions/VListItemContent.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VListItemIcon.js +133 -0
- package/dist/common/agentic/compiler/src/definitions/VListItemIcon.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VMenu.js +249 -0
- package/dist/common/agentic/compiler/src/definitions/VMenu.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VNavigationDrawer.js +347 -0
- package/dist/common/agentic/compiler/src/definitions/VNavigationDrawer.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VPagination.js +385 -0
- package/dist/common/agentic/compiler/src/definitions/VPagination.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VProgressCircular.js +311 -0
- package/dist/common/agentic/compiler/src/definitions/VProgressCircular.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VProgressLinear.js +276 -0
- package/dist/common/agentic/compiler/src/definitions/VProgressLinear.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VRadio.js +254 -0
- package/dist/common/agentic/compiler/src/definitions/VRadio.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VRadioGroup.js +496 -0
- package/dist/common/agentic/compiler/src/definitions/VRadioGroup.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VRating.js +297 -0
- package/dist/common/agentic/compiler/src/definitions/VRating.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VRow.js +250 -0
- package/dist/common/agentic/compiler/src/definitions/VRow.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VSelect.js +681 -0
- package/dist/common/agentic/compiler/src/definitions/VSelect.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VSheet.js +291 -0
- package/dist/common/agentic/compiler/src/definitions/VSheet.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VSlideGroup.js +622 -0
- package/dist/common/agentic/compiler/src/definitions/VSlideGroup.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VSlider.js +411 -0
- package/dist/common/agentic/compiler/src/definitions/VSlider.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VSnackbar.js +250 -0
- package/dist/common/agentic/compiler/src/definitions/VSnackbar.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VStepper.js +1153 -0
- package/dist/common/agentic/compiler/src/definitions/VStepper.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VStepperContent.js +250 -0
- package/dist/common/agentic/compiler/src/definitions/VStepperContent.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VStepperHeader.js +250 -0
- package/dist/common/agentic/compiler/src/definitions/VStepperHeader.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VStepperItems.js +250 -0
- package/dist/common/agentic/compiler/src/definitions/VStepperItems.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VStepperStep.js +131 -0
- package/dist/common/agentic/compiler/src/definitions/VStepperStep.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VSwitch.js +478 -0
- package/dist/common/agentic/compiler/src/definitions/VSwitch.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VTab.js +131 -0
- package/dist/common/agentic/compiler/src/definitions/VTab.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VTabItem.js +250 -0
- package/dist/common/agentic/compiler/src/definitions/VTabItem.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VTabs.js +549 -0
- package/dist/common/agentic/compiler/src/definitions/VTabs.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VTextField.js +643 -0
- package/dist/common/agentic/compiler/src/definitions/VTextField.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VTextarea.js +545 -0
- package/dist/common/agentic/compiler/src/definitions/VTextarea.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VTimePicker.js +371 -0
- package/dist/common/agentic/compiler/src/definitions/VTimePicker.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VTimeline.js +267 -0
- package/dist/common/agentic/compiler/src/definitions/VTimeline.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VTimelineItem.js +186 -0
- package/dist/common/agentic/compiler/src/definitions/VTimelineItem.js.map +1 -0
- package/dist/common/agentic/compiler/src/definitions/VTreeview.js +309 -0
- package/dist/common/agentic/compiler/src/definitions/VTreeview.js.map +1 -0
- package/dist/common/agentic/compiler/src/helpers/nemoConstants.js +9 -0
- package/dist/common/agentic/compiler/src/helpers/nemoConstants.js.map +1 -0
- package/dist/common/agentic/compiler/src/interfaces/ICompilationDeps.js +3 -0
- package/dist/common/agentic/compiler/src/interfaces/ICompilationDeps.js.map +1 -0
- package/dist/common/agentic/compiler/src/mock/IMockData.js +9 -0
- package/dist/common/agentic/compiler/src/mock/IMockData.js.map +1 -0
- package/dist/common/agentic/compiler/src/model/IComponentExtension.js +3 -0
- package/dist/common/agentic/compiler/src/model/IComponentExtension.js.map +1 -0
- package/dist/common/agentic/compiler/src/model/IPim.js +3 -0
- package/dist/common/agentic/compiler/src/model/IPim.js.map +1 -0
- package/dist/common/agentic/compiler/src/model/component-groups.js +22 -0
- package/dist/common/agentic/compiler/src/model/component-groups.js.map +1 -0
- package/dist/common/agentic/compiler/src/omniScript/Compiler.js +256 -0
- package/dist/common/agentic/compiler/src/omniScript/Compiler.js.map +1 -0
- package/dist/common/agentic/compiler/src/system/ComponentDefinitionManager.js +188 -0
- package/dist/common/agentic/compiler/src/system/ComponentDefinitionManager.js.map +1 -0
- package/dist/common/agentic/compiler/src/system/ComponentStyleResolver.js +47 -0
- package/dist/common/agentic/compiler/src/system/ComponentStyleResolver.js.map +1 -0
- package/dist/common/agentic/compiler/src/system/ErrorManager.js +21 -0
- package/dist/common/agentic/compiler/src/system/ErrorManager.js.map +1 -0
- package/dist/common/agentic/compiler/src/system/IChildManager.js +9 -0
- package/dist/common/agentic/compiler/src/system/IChildManager.js.map +1 -0
- package/dist/common/agentic/compiler/src/system/IStudioCacheManager.js +3 -0
- package/dist/common/agentic/compiler/src/system/IStudioCacheManager.js.map +1 -0
- package/dist/common/agentic/compiler/src/system/IStudioContainerServIntelliManager.js +3 -0
- package/dist/common/agentic/compiler/src/system/IStudioContainerServIntelliManager.js.map +1 -0
- package/dist/common/agentic/compiler/src/system/LanguageManager.js +344 -0
- package/dist/common/agentic/compiler/src/system/LanguageManager.js.map +1 -0
- package/dist/common/agentic/compiler/src/system/language/intelliCompTypeCacher.js +59 -0
- package/dist/common/agentic/compiler/src/system/language/intelliCompTypeCacher.js.map +1 -0
- package/dist/common/agentic/modelFiles/frontmatter.js +82 -0
- package/dist/common/agentic/modelFiles/frontmatter.js.map +1 -0
- package/dist/common/agentic/modelFiles/jsonBody.js +21 -0
- package/dist/common/agentic/modelFiles/jsonBody.js.map +1 -0
- package/dist/common/agentic/modelFiles/modelFileTypes.js +46 -0
- package/dist/common/agentic/modelFiles/modelFileTypes.js.map +1 -0
- package/dist/common/agentic/modelFiles/modelRefs.js +78 -0
- package/dist/common/agentic/modelFiles/modelRefs.js.map +1 -0
- package/dist/common/agentic/modelFiles/qjsonCompiled.js +36 -0
- package/dist/common/agentic/modelFiles/qjsonCompiled.js.map +1 -0
- package/dist/common/agentic/qjsonBuild/io.js +4 -0
- package/dist/common/agentic/qjsonBuild/io.js.map +1 -0
- package/dist/common/agentic/qjsonBuild/qjsonBuild.js +16 -0
- package/dist/common/agentic/qjsonBuild/qjsonBuild.js.map +1 -0
- package/dist/common/agentic/qjsonBuild/validateQjson.js +522 -0
- package/dist/common/agentic/qjsonBuild/validateQjson.js.map +1 -0
- package/dist/common/agentic/qjsonBuild/validateStyles.js +644 -0
- package/dist/common/agentic/qjsonBuild/validateStyles.js.map +1 -0
- package/dist/common/agentic/quickHostCompiler/commands/GlobalManager.js +81 -0
- package/dist/common/agentic/quickHostCompiler/commands/GlobalManager.js.map +1 -0
- package/dist/common/agentic/quickHostCompiler/commands/compile.js +270 -0
- package/dist/common/agentic/quickHostCompiler/commands/compile.js.map +1 -0
- package/dist/common/agentic/quickHostCompiler/generated/ComponentPims.js +98517 -0
- package/dist/common/agentic/quickHostCompiler/generated/ComponentPims.js.map +1 -0
- package/dist/common/agentic/studioCli/messages.js.map +1 -0
- package/dist/common/agentic/studioCli/protocolVersion.js +18 -0
- package/dist/common/agentic/studioCli/protocolVersion.js.map +1 -0
- package/dist/common/helpers/aiKitResolver.js +31 -0
- package/dist/common/helpers/aiKitResolver.js.map +1 -0
- package/dist/common/helpers/appFlagsHelper.js +12 -0
- package/dist/common/helpers/appFlagsHelper.js.map +1 -0
- package/dist/common/helpers/tsCompiler/cliCompiler.js +93 -0
- package/dist/common/helpers/tsCompiler/cliCompiler.js.map +1 -0
- package/dist/common/helpers/tsCompiler/common.js +65 -0
- package/dist/common/helpers/tsCompiler/common.js.map +1 -0
- package/dist/common/helpers/tsCompiler/tsCompiler.js +61 -0
- package/dist/common/helpers/tsCompiler/tsCompiler.js.map +1 -0
- package/dist/common/qCloudTemp/livePreview.js +3 -0
- package/dist/common/qCloudTemp/livePreview.js.map +1 -0
- package/dist/common/qCloudTemp/quickCloud.js +1 -1
- package/dist/common/qCloudTemp/quickCloud.js.map +1 -1
- package/dist/quick/common/shrimp/context.js +6 -0
- package/dist/quick/common/shrimp/context.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/QJsonHelper.js +153 -0
- package/dist/quick/common/shrimp/helpers/QJsonHelper.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/StyleHelper.js +134 -0
- package/dist/quick/common/shrimp/helpers/StyleHelper.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/arrayHelper.js +60 -0
- package/dist/quick/common/shrimp/helpers/arrayHelper.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/bulkManager.js +30 -0
- package/dist/quick/common/shrimp/helpers/bulkManager.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/catcher.js +29 -0
- package/dist/quick/common/shrimp/helpers/catcher.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/cryptoHelper.js +192 -0
- package/dist/quick/common/shrimp/helpers/cryptoHelper.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/hook.js +115 -0
- package/dist/quick/common/shrimp/helpers/hook.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/logger.js +192 -0
- package/dist/quick/common/shrimp/helpers/logger.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/qjsonParser/QJsonContentParser.js +21 -0
- package/dist/quick/common/shrimp/helpers/qjsonParser/QJsonContentParser.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/scripting/PageScripting.js +50 -0
- package/dist/quick/common/shrimp/helpers/scripting/PageScripting.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/singularizer.js +14 -0
- package/dist/quick/common/shrimp/helpers/singularizer.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/stringHelper.js +83 -0
- package/dist/quick/common/shrimp/helpers/stringHelper.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/typeHelper.js +114 -0
- package/dist/quick/common/shrimp/helpers/typeHelper.js.map +1 -0
- package/dist/quick/common/shrimp/helpers/windowHelper.js +69 -0
- package/dist/quick/common/shrimp/helpers/windowHelper.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ElementLocation.js +10 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ElementLocation.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IAlert.js +22 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IAlert.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ICompJson.js +29 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ICompJson.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IComponent.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IComponent.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IComponentCollection.js +23 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IComponentCollection.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IComponentInstanceTracker.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IComponentInstanceTracker.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ICreatedComponent.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ICreatedComponent.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IDirectiveCollection.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IDirectiveCollection.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IEventCollection.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IEventCollection.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IEventData.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IEventData.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IEventFunctions.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IEventFunctions.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IExtention.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IExtention.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IExternalEvents.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IExternalEvents.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IExternalProp.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IExternalProp.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ILocalResource.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ILocalResource.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ILogger.js +12 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ILogger.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ILoggerIntellisense.js +11 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/ILoggerIntellisense.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IPropExtension.js +11 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IPropExtension.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IQJson.js +9 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IQJson.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IStyle.js +25 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IStyle.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IVersion.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IVersion.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IVnode.js +3 -0
- package/dist/quick/common/shrimp/interfaces/ComponentInterfaces/IVnode.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/IDictionary.js +3 -0
- package/dist/quick/common/shrimp/interfaces/IDictionary.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/IDictionaryNullable.js +3 -0
- package/dist/quick/common/shrimp/interfaces/IDictionaryNullable.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/IHostResponseData.js +3 -0
- package/dist/quick/common/shrimp/interfaces/IHostResponseData.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/NetworkInterfaces/IRequest.js +3 -0
- package/dist/quick/common/shrimp/interfaces/NetworkInterfaces/IRequest.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IDomElement.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IDomElement.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IDory.js +5 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IDory.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IDoryJr.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IDoryJr.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IHistoryItem.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IHistoryItem.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/ILifeCycleCb.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/ILifeCycleCb.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IMasterData.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IMasterData.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IRenderer.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IRenderer.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IRendererConfig.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IRendererConfig.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IRenderingContext.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IRenderingContext.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IRenderingManager.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/IRenderingManager.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IAuthenticationOperator.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IAuthenticationOperator.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IComponentOperator.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IComponentOperator.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IDevexOperator.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IDevexOperator.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IEventOperator.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IEventOperator.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/ILoadingOperator.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/ILoadingOperator.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IPermanentStoreOperator.js +6 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IPermanentStoreOperator.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IRendererOperatorCollection.js +3 -0
- package/dist/quick/common/shrimp/interfaces/RenderingInterfaces/Operators/IRendererOperatorCollection.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/Scripting/IEvaluator.js +7 -0
- package/dist/quick/common/shrimp/interfaces/Scripting/IEvaluator.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/Scripting/IGlobals.js +4 -0
- package/dist/quick/common/shrimp/interfaces/Scripting/IGlobals.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/Scripting/scriptLang.js +3 -0
- package/dist/quick/common/shrimp/interfaces/Scripting/scriptLang.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IConfig.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IConfig.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IContainerServices.js +6 -0
- package/dist/quick/common/shrimp/interfaces/quick/IContainerServices.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/ICookieAccess.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/ICookieAccess.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IEditorInstance.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IEditorInstance.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IExcel.js +13 -0
- package/dist/quick/common/shrimp/interfaces/quick/IExcel.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IExternalLocalizationFunc.js +5 -0
- package/dist/quick/common/shrimp/interfaces/quick/IExternalLocalizationFunc.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IFormatConfiguration.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IFormatConfiguration.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IFormattingDefinition.js +17 -0
- package/dist/quick/common/shrimp/interfaces/quick/IFormattingDefinition.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IGeneralMethods.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IGeneralMethods.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IHistoryManager.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IHistoryManager.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/ILocationPosition.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/ILocationPosition.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/INavigationDemand.js +9 -0
- package/dist/quick/common/shrimp/interfaces/quick/INavigationDemand.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/INavigationManager.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/INavigationManager.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/INetworkResponse.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/INetworkResponse.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IPlatform.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IPlatform.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IProcessManager.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IProcessManager.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IQError.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IQError.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IQErrorOwnerInfo.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IQErrorOwnerInfo.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IRoleBaseAuthorizationFunc.js +5 -0
- package/dist/quick/common/shrimp/interfaces/quick/IRoleBaseAuthorizationFunc.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IShell.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IShell.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IShellConfiguration.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IShellConfiguration.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IShellGlobalMethods.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IShellGlobalMethods.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/ISiteSettings.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/ISiteSettings.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IStore.js +5 -0
- package/dist/quick/common/shrimp/interfaces/quick/IStore.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IUXManager.js +5 -0
- package/dist/quick/common/shrimp/interfaces/quick/IUXManager.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IUrl.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IUrl.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IUserContext.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IUserContext.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IWebSDK.js +13 -0
- package/dist/quick/common/shrimp/interfaces/quick/IWebSDK.js.map +1 -0
- package/dist/quick/common/shrimp/interfaces/quick/IWebSDKSettingsBus.js +3 -0
- package/dist/quick/common/shrimp/interfaces/quick/IWebSDKSettingsBus.js.map +1 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/Compressor.js +83 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/Compressor.js.map +1 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/Lexer.js +348 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/Lexer.js.map +1 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/Node.js +35 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/Node.js.map +1 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/Parser.js +988 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/Parser.js.map +1 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/QSCError.js +19 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/QSCError.js.map +1 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/Token.js +32 -0
- package/dist/quick/common/shrimp/omniScriptCompiler/Token.js.map +1 -0
- package/dist/quick/common/shrimp/performance.js +10 -0
- package/dist/quick/common/shrimp/performance.js.map +1 -0
- package/dist/quick/common/shrimp/src/Performance/IPerfable.js +3 -0
- package/dist/quick/common/shrimp/src/Performance/IPerfable.js.map +1 -0
- package/dist/quick/common/shrimp/src/Performance/PerfManager.js +109 -0
- package/dist/quick/common/shrimp/src/Performance/PerfManager.js.map +1 -0
- package/dist/quick/common/shrimp/src/Performance/PerfMeasure.js +193 -0
- package/dist/quick/common/shrimp/src/Performance/PerfMeasure.js.map +1 -0
- package/dist/quick/common/shrimp/src/Performance/PerfSingles.js +47 -0
- package/dist/quick/common/shrimp/src/Performance/PerfSingles.js.map +1 -0
- package/dist/quick/common/shrimp/src/context/IContextItem.js +3 -0
- package/dist/quick/common/shrimp/src/context/IContextItem.js.map +1 -0
- package/dist/quick/common/shrimp/src/context/contextManager.js +70 -0
- package/dist/quick/common/shrimp/src/context/contextManager.js.map +1 -0
- package/dist/studio-cli/kits/super-app-kit/.ai-kit/coming-soon.md +0 -0
- package/dist/studio-cli/kits/super-app-kit/AGENTS.md +0 -0
- package/dist/studio-cli/kits/super-app-kit/CLAUDE.md +0 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/cli-kit/knowledge/buildqjson.md +35 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/cli-kit/knowledge/cli-bridge.md +97 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/cli-kit/knowledge/render-check.md +48 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/cli-kit/knowledge/sync.md +50 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/index.md +20 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/examples/README.md +12 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/index.md +87 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/13-application.md +164 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/alert-component.md +91 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/appSettings.md +204 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/component-list.md +63 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/container-services-file.md +71 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/container-services-intellisense.md +42 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/global-localization.md +78 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/loading-component.md +61 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/local-proxy-file.md +62 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/pipeline.md +139 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/settings-file.md +66 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/style-file.md +58 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/theme.md +58 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/components.md +97 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/dynamic-components.md +169 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/events-and-scripting.md +79 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots-legacy.md +72 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots.md +64 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/localization.md +40 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/page-skeletons-legacy.md +83 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/page-skeletons.md +111 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/properties.md +77 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/qjson-structure-legacy.md +65 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/qjson-structure.md +67 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/services.md +68 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/styling-legacy.md +73 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/styling.md +177 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/validation-legacy.md +49 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/validation.md +56 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/legacy-track.md +29 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/component-catalog-legacy.md +121 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/component-catalog.md +140 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/component-contracts.json +16920 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/component-index.json +358 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/component-styles.json +7128 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/events-system.md +96 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/layout-system.md +99 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/mapping-S-vuetify-class.md +103 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/qjson-schema-legacy.md +189 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/qjson-schema.md +188 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/quick-api.json +2085 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/quick-api.md +284 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/styling-system.md +193 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/s-track.md +30 -0
- package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/skills/quick-qjson/SKILL.md +10 -0
- package/dist/studio-cli/kits/ui-app-kit/.claude/settings.local.json +8 -0
- package/dist/studio-cli/kits/ui-app-kit/.claude/skills/figma-to-qjson/SKILL.md +116 -0
- package/dist/studio-cli/kits/ui-app-kit/.claude/skills/quick-qjson/SKILL.md +10 -0
- package/dist/studio-cli/kits/ui-app-kit/.opencode/opencode.json +19 -0
- package/dist/studio-cli/kits/ui-app-kit/.opencode/skills/figma-to-qjson/SKILL.md +116 -0
- package/dist/studio-cli/kits/ui-app-kit/.opencode/skills/quick-qjson/SKILL.md +10 -0
- package/dist/studio-cli/kits/ui-app-kit/AGENTS.md +18 -0
- package/dist/studio-cli/kits/ui-app-kit/CLAUDE.md +18 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/cli-kit/knowledge/buildqjson.md +35 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/cli-kit/knowledge/cli-bridge.md +97 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/cli-kit/knowledge/render-check.md +48 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/cli-kit/knowledge/sync.md +50 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/index.md +22 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/platform/models/constant-syntax.md +70 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/platform/models/dataSet-syntax.md +68 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/platform/models/dataType-syntax.md +275 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/platform/models/rest-service-syntax.md +190 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/platform/models/soap-service-syntax.md +186 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/platform/models/soap-service-v2-syntax.md +204 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/platform/modules-and-overrides.md +11 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/platform/modules.md +9 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/README.md +12 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/AllowdDates.qjson +122 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Avatarlar.qjson +1084 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/BarChart.qjson +1061 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/BarChart_Type_Time_Sample.qjson +344 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/BottomSheetScrollWithHeaderInformation.qjson +1609 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/CardTitle.qjson +143 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Charts_Custom_Legend_Sample.qjson +763 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Charts_tooltipLabel_sample.qjson +631 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/CheckBoxQvalue.qjson +91 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/CheckboxDisabledExample.qjson +153 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Click Outside.qjson +144 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/ComboBoxReset.qjson +839 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/ComboboxAddItemWithDialog.qjson +296 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/ComboboxAddItemWithTextField.qjson +186 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/ComboboxDefaultSelection.qjson +99 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/ComboboxWithTreeView.qjson +94 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Combobox_SelectAll.qjson +704 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/ComponentsInteractionExamples.qjson +722 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/CookieExamples.qjson +828 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/CreateComponent_WithTransmitDataSource_Sample.qjson +749 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Cryptography-with-ivKey.qjson +2159 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Dashboard.qjson +1135 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataExamples.qjson +696 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataStorageExamples.qjson +1296 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataTable-Single-select-Multi-Select-TotalCalculation.qjson +441 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataTableAddRemoveItem.qjson +312 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataTableBoldHeader.qjson +34 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataTableEdit.qjson +422 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataTableFixedColumn.qjson +133 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataTableIndexExample.qjson +117 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataTableSearch.qjson +105 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataTableVerticalBorder.qjson +34 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataTableWithTooltip.qjson +354 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DataTable_ChildButtonVisibleSample.qjson +892 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DatePickerExampleApp (1).qjson +770 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DatePickerInlineExample.qjson +299 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DatePickerLocale.qjson +87 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DatepickerDatenow.qjson +96 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DatepickerExample.qjson +147 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Detailed_Table_Row_Expand.qjson +388 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Detailed_Table_Rows.qjson +114 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DialogBlockSubPage.qjson +1014 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DialogExample.qjson +420 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DialogExampleWith/304/261con.qjson +345 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DialogWithEagerProp.qjson +129 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DoughnutChart.qjson +1005 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Download.qjson +139 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxColumnChooser.qjson +341 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxColumnFixing.qjson +317 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxColumn_fix_allowFixing.qjson +466 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDataGrid-DxExport.qjson +225 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDataGrid-DxFilterRow.qjson +174 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDataGrid-DxSearchPanel.qjson +170 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDataGrid-columnAutoWidth.qjson +135 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDataGridArrStoreLiveCon.qjson +201 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDataGridArrStoreLiveConReason.qjson +290 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDataGridExternalFilterCleaning.qjson +358 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDataGridExternalFiltering.qjson +300 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDataGridRowDragging.qjson +257 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDatagrid_MultipleSelection.qjson +503 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDatagrid_ServiceCall.qjson +204 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDatagrid_SimplestGridWithArrayStore.qjson +215 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDatagrid_SingleSelection.qjson +337 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDatagrid_allowFixing.qjson +321 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDatagrid_columnResizingMode.qjson +718 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDatagrid_hoverStateEnabled.qjson +144 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDatagrid_onCellClickEvent.qjson +147 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxDatagrid_width_menu.qjson +574 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxTreeListArrStoreLiveCon.qjson +302 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxTreelist-color.qjson +237 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxTreelist-columnreordering.qjson +241 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxTreelist-editing.qjson +1471 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/DxTreelist-extarnelfiltre.qjson +122 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Expansion_Panels.qjson +298 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/FileInput.qjson +228 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Frame_openHtmlContentInFrame.qjson +556 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Highlight_datatable_select.qjson +53 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Icon_Samples.qjson +148 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Instructions.request.qjson +605 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Intersect.qjson +423 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/LightBox.qjson +809 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/LineChart.qjson +1046 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/LineChart_Type_Time_Sample.qjson +340 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/ListExample.qjson +475 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/LoginPage.qjson +525 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/MMDelay.qjson +356 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/MMtrigger.qjson +195 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/NavigationDrawerExample.qjson +808 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/NavigationDrawerWithAppBar.qjson +1621 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Parallax.qjson +381 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/PermanentStore_Example.qjson +1445 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/PieChart.qjson +1005 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Profile_Card.qjson +345 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/ProgressLinear.qjson +547 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QCaptcha.qjson +318 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QDocumentViewer.qjson +41 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QFrameAllowFullScreenExample.qjson +368 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QFrameExample.qjson +117 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QIdleTimer.qjson +100 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QImgZoomRotate.qjson +428 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QImgZoomTypeNextTo.qjson +187 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QImgZoomTypeOn.qjson +187 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QLabel_URL.qjson +105 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QLabel_URL_Click.qjson +133 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QLegend.qjson +501 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QLegendBlock.qjson +732 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QLegend_unchanged.qjson +746 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QMapExample.qjson +785 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QMenuExample.qjson +68 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QOtp.qjson +979 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QQRCode.qjson +295 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QReCaptcha.qjson +361 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QRichTextExample.qjson +139 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QRichText_Cursor_Sample.qjson +352 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QTutorialFinalDemo.qjson +494 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/QVideoExample.qjson +1135 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Qlabel_Props.qjson +1591 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Qmenu-Icon-Img-SizeandColor.qjson +244 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Quick_Bind.qjson +110 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Quick_Bind_Sample.qjson +172 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Rating.qjson +101 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/RenderingComponent_Sample.qjson +1592 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/RequestExamples.qjson +680 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/ResetValidation-ResetUsage.qjson +1326 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Resize.qjson +140 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Ripple.qjson +431 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Sparkline.qjson +386 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/State_storing.qjson +286 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/SwitchComponent.qjson +42 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Table_Pagination.qjson +99 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Table_Search.qjson +64 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Table_Select.qjson +106 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/ToolTip_props.qjson +2649 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/TooltipDisplayOfVDataTableDataTotal.qjson +312 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/TreeViewExample.qjson +92 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VAppBar.qjson +1681 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VAutocompleteRegex.qjson +45 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VBottomSheet.qjson +429 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VCard.qjson +1945 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VCombobox_customValidation.qjson +290 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable-slot-columnVeriyeG/303/266reRenklendirme.qjson +493 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTableIconExample.qjson +116 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTableItemAggregation.qjson +499 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable_Change_FooterPageText.qjson +107 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable_Multiple_Select_Control.qjson +50 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable_SetGetComboboxValue_.qjson +148 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable_SetItemSelect_GetSelection.qjson +627 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable_SlotInstances.qjson +362 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable_Validation.qjson +226 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable_With_QTableCell_Sample.qjson +281 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable_customSearchFilter.qjson +255 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable_firstColumn_fixedActionsColumn.qjson +216 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDataTable_uniqueSlot_itemKey_Object.qjson +545 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDatePicker_AllowdDates.qjson +89 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VDialog.qjson +3512 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VExpansionPanel_UsageAndProps.qjson +3811 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VFileInput-Slot-VIcon-Dolu.qjson +232 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VFileInputGetUploadedContent.qjson +111 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VFileInput_ImagePicker.qjson +308 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VFooter.qjson +1480 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VForm.qjson +410 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VFormActionExample.qjson +2289 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VInlineDatePicker_titleDateFormat.qjson +319 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VInlineDatepickerMaxMin.qjson +36 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VInlineDatepickerReset.qjson +88 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VInlineTimePicker.qjson +149 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VListGroup.qjson +1817 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VList_NavigationMenu.qjson +1636 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VMenu_PopoverInTable.qjson +534 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VMenu_sample.qjson +470 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VStepperExample.qjson +748 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VStepper_vertical.qjson +364 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VSteppers_EditableNonLinear.qjson +658 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VSteppers_LinearWithContinueButton.qjson +719 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextFieldQuickInputFormat.qjson +40 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextFieldValidation.qjson +1087 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextField_FocusExample.qjson +329 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextField_Validation_examples.qjson +877 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextField_customValidation.qjson +159 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextField_formatValueSample1.qjson +40 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextField_formatValueSapmle2.qjson +40 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextField_formatValue_exceptLetters.qjson +40 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextField_formatValue_specialChars.qjson +40 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextField_keyDown.qjson +37 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextField_rangeOfNumber_validation.qjson +55 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextareaQuickInputFormat.qjson +37 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTextarea_format_regex_sample.qjson +321 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VTimelineExample.qjson +322 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/Vcontainer.qjson +417 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/VinlineDatePicker.qjson +61 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/V/304/261nlineDatepickerDeleteValue.qjson +304 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/alert.qjson +459 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/alertSamplePage.qjson +455 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/authorizationDashboard.qjson +24914 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/badge copy.qjson +158 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/badge.qjson +158 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/bottomSheetScrollable.qjson +3220 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/breadcrumbs.qjson +587 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/button.qjson +1765 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/cellTemplate.qjson +76 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/combobox.qjson +90 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/comboboxSelected.qjson +118 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/createChildren.qjson +406 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/createClosedPanes.qjson +245 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/creditcard.qjson +28 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/crypto.qjson +5965 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/customFilterUsingCalculateFilterExpressionEvent.qjson +305 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/customStore.qjson +156 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dataTableFormatColumn.qjson +151 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/data_table_component_access.qjson +130 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/datagridAddDynamicColumn.qjson +1381 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/datatableAddandDeleteItem.qjson +1195 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/deleteComponent.qjson +533 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/divider.qjson +185 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxColumncssClass.qjson +249 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxDataGridAddinEditingDeleting.qjson +486 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxDataGridLines.qjson +120 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxDataGridRemove.qjson +216 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxDatagridHeatMap.qjson +334 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxDatagridUpdate.qjson +80 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxMasterDetail.qjson +261 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxPaging_withServiceCall.qjson +159 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxRowDragging.qjson +179 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxSummary_dxTotalItem_usage.qjson +219 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxTotalItemCustomizeText.qjson +226 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dxTreeList_exportToExcel.qjson +266 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/dynamicComp.qjson +162 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/efficientTreeviewSearchforLargeDatasets.qjson +736 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/email.qjson +29 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/encoding.qjson +304 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/encryptedStorage_Sample.qjson +596 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/fileInput-1.qjson +904 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/fileUploadBlockComponent.qjson +68 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/fileUploadServiceCallBlockComp.qjson +128 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/findAndDeleteRelatedDynamicComp.qjson +211 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/first.qjson +57 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/fixedActionsColumn.qjson +133 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/formatWithFormatType.qjson +1740 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/getComponent_example.qjson +491 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/globalLocalization.qjson +189 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/goldenLayout.qjson +228 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/images.qjson +1461 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/list.qjson +162 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/localization_AddLanguageRTL_Sample.qjson +1192 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/newCustomerRegister.qjson +2598 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/number.qjson +41 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/number_VTextarea.qjson +37 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/onlyAlphabetic.qjson +32 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/parentPage.qjson +292 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/pipeline.qjson +77 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/pipelineSample.qjson +422 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/placeQidDynamic.qjson +193 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/progress-circular.qjson +1056 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/qtimer.qjson +335 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/radioGroupGetValues.qjson +125 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/region_definition_example.qjson +580 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/resetAndResetValidationUsage.qjson +1827 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/responsive1.qjson +312 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/responsive2.qjson +312 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/responsive3.qjson +1546 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/scrollButton.qjson +331 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/scrollDirective.qjson +297 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/selectedRow-propertyDisable.qjson +238 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/serviceCallerBlockComponent.qjson +63 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/sheet.qjson +149 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/slider.qjson +81 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/snackbars.qjson +2454 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/sso.qjson +260 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/subPage.qjson +710 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/tab.qjson +271 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/tableadditem.qjson +125 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/themeExamplePage.qjson +876 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/tiffImage.qjson +315 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/timePicker.qjson +452 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/treeview.qjson +156 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/treeview2.qjson +503 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/uniqueRowSlots.qjson +226 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/vMenu.qjson +212 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/vcarousel.qjson +659 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/cssClass/vdatatable_slots_with_custom_validation_usage.qjson +1585 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/AllowdDates.qjson +126 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/BarChartEvents.qjson +323 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/BarChartTitle.qjson +411 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/BarChartYTicks.qjson +399 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/BarChart_TicksCallback.qjson +309 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/CalendarClickMoreExample.qjson +2 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/CalendarUsageExample.qjson +2 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/ChartLegendFont.qjson +788 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/DataTable_customSort.qjson +277 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/DocumentViewer_tiff_Sample.qjson +927 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/DoughnutChartEvents.qjson +243 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/DxDataGrid_CustomStore.qjson +267 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/Icon_Samples.qjson +181 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/Instructions.request.qjson +584 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/Intersect.qjson +404 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/LightBox.qjson +777 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/LineChart.qjson +1049 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/LineChartEvents.qjson +327 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/LineChartPointProps.qjson +416 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/LineChart_TicksCallback.qjson +309 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/LineChart_Type_Time_Sample.qjson +342 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/MMDelay.qjson +384 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/MMtrigger.qjson +209 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/NavigationDrawerExample.qjson +899 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/NavigationDrawerWithAppBar.qjson +1647 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/Parallax.qjson +416 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/PieChart.qjson +1103 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/QCaptcha.qjson +409 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/QDocumentViewer.qjson +149 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/QFrameAllowFullScreenExample.qjson +360 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/QFrameExample.qjson +213 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/QIdleTimer.qjson +221 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/QImgZoomRotate.qjson +432 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/QImgZoomTypeNextTo.qjson +196 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/QImgZoomTypeOn.qjson +196 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/QLabel_URL_Click_SendParams.qjson +477 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/VList_NavMenu.qjson +3008 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/alertSamplePage.qjson +450 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/authorizationDashboard.qjson +24914 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/badge.qjson +151 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/bottomSheetScrollable.qjson +3120 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/breadcrumbs.qjson +563 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/button.qjson +1658 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/cellTemplate.qjson +96 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/combobox.qjson +109 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/comboboxSelected.qjson +119 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/createChildren.qjson +411 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/createClosedPanes.qjson +265 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/creditcard.qjson +49 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/crypto.qjson +5632 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/customFilterUsingCalculateFilterExpressionEvent.qjson +301 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/customStore.qjson +157 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dataTableFormatColumn.qjson +151 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/data_table_component_access.qjson +130 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/datagridAddDynamicColumn.qjson +1381 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/datatableAddandDeleteItem.qjson +1195 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/datatable_selectable_feature_select_unselect_usage.qjson +300 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/deleteComponent.qjson +501 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/divider.qjson +180 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxColumncssClass.qjson +249 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxDataGridAddinEditingDeleting.qjson +486 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxDataGridLines.qjson +121 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxDataGridRemove.qjson +209 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxDatagridHeatMap.qjson +335 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxDatagridUpdate.qjson +80 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxMasterDetail.qjson +257 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxPaging_withServiceCall.qjson +160 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxRowDragging.qjson +175 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxSummary_dxTotalItem_usage.qjson +215 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxTotalItemCustomizeText.qjson +222 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dxTreeList_exportToExcel.qjson +267 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/dynamicComp.qjson +156 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/efficientTreeviewSearchforLargeDatasets.qjson +736 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/email.qjson +177 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/encoding.qjson +304 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/encryptedStorage_Sample.qjson +596 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/exportToXlsx_Sample.qjson +1956 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/images.qjson +1379 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/images_olddd.qjson +1366 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/newCustomerRegister.qjson +2598 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/number.qjson +169 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/number_VTextarea.qjson +163 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/onlyAlphabetic.qjson +164 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/parentPage.qjson +351 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/pipeline.qjson +78 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/pipelineSample.qjson +410 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/placeQidDynamic.qjson +289 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/progress-circular.qjson +1014 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/samplePageLottie.qjson +696 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/server-SideAutocompleteHandling.qjson +696 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/examples/style/xlsxToJson_Sample.qjson +772 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/index.md +87 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/13-application.md +164 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/alert-component.md +91 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/appSettings.md +204 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/component-list.md +63 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/container-services-file.md +71 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/container-services-intellisense.md +42 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/global-localization.md +78 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/loading-component.md +61 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/local-proxy-file.md +62 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/pipeline.md +139 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/settings-file.md +66 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/style-file.md +58 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/theme.md +58 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/components.md +97 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/dynamic-components.md +169 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/events-and-scripting.md +79 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots-legacy.md +72 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots.md +64 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/localization.md +40 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/page-skeletons-legacy.md +83 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/page-skeletons.md +111 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/properties.md +77 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/qjson-structure-legacy.md +65 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/qjson-structure.md +67 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/services.md +68 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/styling-legacy.md +73 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/styling.md +177 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/validation-legacy.md +49 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/validation.md +56 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/legacy-track.md +29 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/component-catalog-legacy.md +121 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/component-catalog.md +140 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/component-contracts.json +16920 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/component-index.json +358 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/component-styles.json +7128 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/events-system.md +96 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/layout-system.md +99 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/mapping-S-vuetify-class.md +103 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/qjson-schema-legacy.md +189 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/qjson-schema.md +188 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/quick-api.json +2085 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/quick-api.md +284 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/styling-system.md +193 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/s-track.md +30 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/skills/quick-qjson/SKILL.md +10 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/index.md +70 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/access-manager/persona-syntax.md +67 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/access-manager/privilege-syntax.md +69 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/access-manager/role-syntax.md +103 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/access-manager/swimlane-syntax.md +65 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/action-syntax.md +90 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/app-settings-syntax.md +37 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/auth-syntax.md +118 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/decision-table-syntax.md +115 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/flow-syntax.md +203 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/quirks.md +35 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/addActivity.md +30 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/code.md +73 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/collection.md +34 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/counter.md +23 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/dbEntity.md +52 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/decisionTable.md +27 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/end.md +16 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/restServiceCall.md +33 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/s3FileDelete.md +27 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/s3FileDownload.md +27 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/s3FileUpload.md +48 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/set.md +37 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/soapServiceCall.md +5 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/soapServiceCallV2.md +39 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/start.md +18 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/subFlow.md +32 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/switch.md +74 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/flow/steps/wait.md +25 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/sla-syntax.md +149 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/workflow/steps/end.md +24 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/workflow/steps/start.md +17 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/workflow/steps/subFlow.md +10 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/workflow/steps/subWorkflow.md +30 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/workflow/steps/switch.md +7 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/workflow/steps/usertask.md +71 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/workflow/workflow-syntax.md +218 -0
- package/dist/studio-cli/kits/wf-app-kit/.ai-kit/workflow-kit/models/workflow-ui-pages.md +199 -0
- package/dist/studio-cli/kits/wf-app-kit/.claude/skills/figma-to-qjson/SKILL.md +116 -0
- package/dist/studio-cli/kits/wf-app-kit/.claude/skills/quick-qjson/SKILL.md +10 -0
- package/dist/studio-cli/kits/wf-app-kit/.opencode/skills/figma-to-qjson/SKILL.md +116 -0
- package/dist/studio-cli/kits/wf-app-kit/.opencode/skills/quick-qjson/SKILL.md +10 -0
- package/dist/studio-cli/kits/wf-app-kit/AGENTS.md +20 -0
- package/dist/studio-cli/kits/wf-app-kit/CLAUDE.md +20 -0
- package/dist/studio-cli/src/control/controlClient.js +22 -15
- package/dist/studio-cli/src/control/controlClient.js.map +1 -1
- package/dist/studio-cli/src/control/convertToBlock.js +2 -2
- package/dist/studio-cli/src/control/convertToBlock.js.map +1 -1
- package/dist/studio-cli/src/control/kitInstall.js +29 -0
- package/dist/studio-cli/src/control/kitInstall.js.map +1 -0
- package/dist/studio-cli/src/control/pickWorkspaceDir.js +71 -28
- package/dist/studio-cli/src/control/pickWorkspaceDir.js.map +1 -1
- package/dist/studio-cli/src/control/pull.js +42 -86
- package/dist/studio-cli/src/control/pull.js.map +1 -1
- package/dist/studio-cli/src/control/push.js +5 -15
- package/dist/studio-cli/src/control/push.js.map +1 -1
- package/dist/studio-cli/src/control/startWorking.js +2 -6
- package/dist/studio-cli/src/control/startWorking.js.map +1 -1
- package/dist/studio-cli/src/index.js +11 -26
- package/dist/studio-cli/src/index.js.map +1 -1
- package/dist/studio-cli/src/isolatedCommands/qjsonBuild.js +12 -12
- package/dist/studio-cli/src/isolatedCommands/qjsonBuild.js.map +1 -1
- package/dist/studio-cli/src/isolatedCommands/qjsonBuildCliEnv.js +23 -0
- package/dist/studio-cli/src/isolatedCommands/qjsonBuildCliEnv.js.map +1 -0
- package/dist/studio-cli/src/server/bridgeServer.js +460 -177
- package/dist/studio-cli/src/server/bridgeServer.js.map +1 -1
- package/dist/studio-cli/src/server/peer.js +17 -0
- package/dist/studio-cli/src/server/peer.js.map +1 -1
- package/dist/studio-cli/src/server/serverInfo.js +26 -14
- package/dist/studio-cli/src/server/serverInfo.js.map +1 -1
- package/dist/studio-cli/src/server/wsRaw.js +31 -5
- package/dist/studio-cli/src/server/wsRaw.js.map +1 -1
- package/dist/studio-cli/src/util/trash.js +137 -0
- package/dist/studio-cli/src/util/trash.js.map +1 -0
- package/dist/studio-cli/src/version.js +1 -1
- package/package.json +5 -3
- package/dist/common/studioCli/messages.js.map +0 -1
- package/dist/common/studioCli/protocolVersion.js +0 -14
- package/dist/common/studioCli/protocolVersion.js.map +0 -1
- package/dist/studio-cli/src/.ai-kit/.opencode/opencode.json +0 -61
- package/dist/studio-cli/src/.ai-kit/AGENTS.md +0 -18
- package/dist/studio-cli/src/.ai-kit/AGENT_GUIDE-legacy.md +0 -29
- package/dist/studio-cli/src/.ai-kit/AGENT_GUIDE-s.md +0 -30
- package/dist/studio-cli/src/.ai-kit/AGENT_GUIDE.md +0 -86
- package/dist/studio-cli/src/.ai-kit/CLAUDE.md +0 -12
- package/dist/studio-cli/src/.ai-kit/README.md +0 -81
- package/dist/studio-cli/src/.ai-kit/agents/qjson-legacy-migrator.md +0 -308
- package/dist/studio-cli/src/.ai-kit/agents/quick-events.md +0 -41
- package/dist/studio-cli/src/.ai-kit/agents/quick-qjson-author-legacy.md +0 -29
- package/dist/studio-cli/src/.ai-kit/agents/quick-qjson-author-s.md +0 -29
- package/dist/studio-cli/src/.ai-kit/agents/quick-qjson-author.md +0 -33
- package/dist/studio-cli/src/.ai-kit/agents/quick-styling-legacy.md +0 -37
- package/dist/studio-cli/src/.ai-kit/agents/quick-styling.md +0 -36
- package/dist/studio-cli/src/.ai-kit/examples/README.md +0 -12
- package/dist/studio-cli/src/.ai-kit/knowledge/00-qjson-structure-legacy.md +0 -65
- package/dist/studio-cli/src/.ai-kit/knowledge/00-qjson-structure.md +0 -67
- package/dist/studio-cli/src/.ai-kit/knowledge/01-properties.md +0 -77
- package/dist/studio-cli/src/.ai-kit/knowledge/02-events-and-scripting.md +0 -79
- package/dist/studio-cli/src/.ai-kit/knowledge/03-layout-and-slots-legacy.md +0 -72
- package/dist/studio-cli/src/.ai-kit/knowledge/03-layout-and-slots.md +0 -64
- package/dist/studio-cli/src/.ai-kit/knowledge/04-styling-legacy.md +0 -73
- package/dist/studio-cli/src/.ai-kit/knowledge/04-styling.md +0 -177
- package/dist/studio-cli/src/.ai-kit/knowledge/05-components.md +0 -97
- package/dist/studio-cli/src/.ai-kit/knowledge/06-services.md +0 -68
- package/dist/studio-cli/src/.ai-kit/knowledge/07-localization.md +0 -40
- package/dist/studio-cli/src/.ai-kit/knowledge/08-dynamic-components.md +0 -49
- package/dist/studio-cli/src/.ai-kit/knowledge/09-page-skeletons-legacy.md +0 -83
- package/dist/studio-cli/src/.ai-kit/knowledge/09-page-skeletons.md +0 -87
- package/dist/studio-cli/src/.ai-kit/knowledge/10-validation-and-sync-legacy.md +0 -69
- package/dist/studio-cli/src/.ai-kit/knowledge/10-validation-and-sync.md +0 -78
- package/dist/studio-cli/src/.ai-kit/knowledge/11-cli-bridge.md +0 -97
- package/dist/studio-cli/src/.ai-kit/knowledge/12-render-check.md +0 -48
- package/dist/studio-cli/src/.ai-kit/reference/component-catalog-legacy.md +0 -120
- package/dist/studio-cli/src/.ai-kit/reference/component-catalog.md +0 -135
- package/dist/studio-cli/src/.ai-kit/reference/component-contracts.json +0 -14964
- package/dist/studio-cli/src/.ai-kit/reference/component-index.json +0 -114
- package/dist/studio-cli/src/.ai-kit/reference/component-styles.json +0 -6983
- package/dist/studio-cli/src/.ai-kit/reference/events-system.md +0 -98
- package/dist/studio-cli/src/.ai-kit/reference/layout-system.md +0 -99
- package/dist/studio-cli/src/.ai-kit/reference/mapping-S-vuetify-class.md +0 -103
- package/dist/studio-cli/src/.ai-kit/reference/qjson-schema-legacy.md +0 -189
- package/dist/studio-cli/src/.ai-kit/reference/qjson-schema.md +0 -188
- package/dist/studio-cli/src/.ai-kit/reference/quick-api.md +0 -248
- package/dist/studio-cli/src/.ai-kit/reference/styling-system.md +0 -193
- package/dist/studio-cli/src/.ai-kit/skills/figma-to-qjson/SKILL.md +0 -116
- package/dist/studio-cli/src/.ai-kit/skills/quick-qjson/SKILL.md +0 -36
- package/dist/studio-cli/src/.ai-kit/tools/README.md +0 -42
- package/dist/studio-cli/src/control/workspaceSetup.js +0 -52
- package/dist/studio-cli/src/control/workspaceSetup.js.map +0 -1
- package/dist/studio-cli/src/isolatedCommands/validateQjson.js +0 -560
- package/dist/studio-cli/src/isolatedCommands/validateQjson.js.map +0 -1
- package/dist/studio-cli/src/isolatedCommands/validateStyles.js +0 -672
- package/dist/studio-cli/src/isolatedCommands/validateStyles.js.map +0 -1
- package/dist/studio-cli/src/util/frontmatter.js +0 -71
- package/dist/studio-cli/src/util/frontmatter.js.map +0 -1
- package/dist/studio-cli/src/util/modelRef.js +0 -38
- package/dist/studio-cli/src/util/modelRef.js.map +0 -1
- /package/dist/common/{studioCli → agentic/studioCli}/messages.js +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/AllowdDates.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Avatarlar.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/BarChart.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/BarChart_Type_Time_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/BottomSheetScrollWithHeaderInformation.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/CardTitle.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Charts_Custom_Legend_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Charts_tooltipLabel_sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/CheckBoxQvalue.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/CheckboxDisabledExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Click Outside.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/ComboBoxReset.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/ComboboxAddItemWithDialog.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/ComboboxAddItemWithTextField.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/ComboboxDefaultSelection.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/ComboboxWithTreeView.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Combobox_SelectAll.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/ComponentsInteractionExamples.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/CookieExamples.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/CreateComponent_WithTransmitDataSource_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Cryptography-with-ivKey.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Dashboard.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataExamples.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataStorageExamples.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataTable-Single-select-Multi-Select-TotalCalculation.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataTableAddRemoveItem.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataTableBoldHeader.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataTableEdit.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataTableFixedColumn.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataTableIndexExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataTableSearch.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataTableVerticalBorder.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataTableWithTooltip.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DataTable_ChildButtonVisibleSample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DatePickerExampleApp (1).qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DatePickerInlineExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DatePickerLocale.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DatepickerDatenow.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DatepickerExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Detailed_Table_Row_Expand.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Detailed_Table_Rows.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DialogBlockSubPage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DialogExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DialogExampleWith/304/261con.qjson" +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DialogWithEagerProp.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DoughnutChart.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Download.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxColumnChooser.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxColumnFixing.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxColumn_fix_allowFixing.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDataGrid-DxExport.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDataGrid-DxFilterRow.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDataGrid-DxSearchPanel.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDataGrid-columnAutoWidth.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDataGridArrStoreLiveCon.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDataGridArrStoreLiveConReason.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDataGridExternalFilterCleaning.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDataGridExternalFiltering.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDataGridRowDragging.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDatagrid_MultipleSelection.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDatagrid_ServiceCall.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDatagrid_SimplestGridWithArrayStore.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDatagrid_SingleSelection.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDatagrid_allowFixing.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDatagrid_columnResizingMode.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDatagrid_hoverStateEnabled.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDatagrid_onCellClickEvent.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxDatagrid_width_menu.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxTreeListArrStoreLiveCon.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxTreelist-color.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxTreelist-columnreordering.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxTreelist-editing.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/DxTreelist-extarnelfiltre.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Expansion_Panels.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/FileInput.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Frame_openHtmlContentInFrame.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Highlight_datatable_select.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Icon_Samples.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Instructions.request.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Intersect.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/LightBox.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/LineChart.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/LineChart_Type_Time_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/ListExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/LoginPage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/MMDelay.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/MMtrigger.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/NavigationDrawerExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/NavigationDrawerWithAppBar.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Parallax.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/PermanentStore_Example.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/PieChart.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Profile_Card.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/ProgressLinear.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QCaptcha.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QDocumentViewer.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QFrameAllowFullScreenExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QFrameExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QIdleTimer.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QImgZoomRotate.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QImgZoomTypeNextTo.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QImgZoomTypeOn.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QLabel_URL.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QLabel_URL_Click.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QLegend.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QLegendBlock.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QLegend_unchanged.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QMapExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QMenuExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QOtp.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QQRCode.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QReCaptcha.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QRichTextExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QRichText_Cursor_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QTutorialFinalDemo.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/QVideoExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Qlabel_Props.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Qmenu-Icon-Img-SizeandColor.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Quick_Bind.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Quick_Bind_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Rating.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/RenderingComponent_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/RequestExamples.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/ResetValidation-ResetUsage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Resize.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Ripple.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Sparkline.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/State_storing.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/SwitchComponent.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Table_Pagination.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Table_Search.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Table_Select.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/ToolTip_props.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/TooltipDisplayOfVDataTableDataTotal.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/TreeViewExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VAppBar.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VAutocompleteRegex.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VBottomSheet.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VCard.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VCombobox_customValidation.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable-slot-columnVeriyeG/303/266reRenklendirme.qjson" +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTableIconExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTableItemAggregation.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable_Change_FooterPageText.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable_Multiple_Select_Control.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable_SetGetComboboxValue_.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable_SetItemSelect_GetSelection.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable_SlotInstances.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable_Validation.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable_With_QTableCell_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable_customSearchFilter.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable_firstColumn_fixedActionsColumn.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDataTable_uniqueSlot_itemKey_Object.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDatePicker_AllowdDates.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VDialog.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VExpansionPanel_UsageAndProps.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VFileInput-Slot-VIcon-Dolu.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VFileInputGetUploadedContent.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VFileInput_ImagePicker.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VFooter.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VForm.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VFormActionExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VInlineDatePicker_titleDateFormat.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VInlineDatepickerMaxMin.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VInlineDatepickerReset.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VInlineTimePicker.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VListGroup.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VList_NavigationMenu.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VMenu_PopoverInTable.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VMenu_sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VStepperExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VStepper_vertical.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VSteppers_EditableNonLinear.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VSteppers_LinearWithContinueButton.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextFieldQuickInputFormat.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextFieldValidation.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextField_FocusExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextField_Validation_examples.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextField_customValidation.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextField_formatValueSample1.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextField_formatValueSapmle2.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextField_formatValue_exceptLetters.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextField_formatValue_specialChars.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextField_keyDown.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextField_rangeOfNumber_validation.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextareaQuickInputFormat.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTextarea_format_regex_sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VTimelineExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/Vcontainer.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/VinlineDatePicker.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/V/304/261nlineDatepickerDeleteValue.qjson" +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/alert.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/alertSamplePage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/authorizationDashboard.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/badge copy.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/badge.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/bottomSheetScrollable.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/breadcrumbs.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/button.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/cellTemplate.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/combobox.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/comboboxSelected.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/createChildren.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/createClosedPanes.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/creditcard.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/crypto.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/customFilterUsingCalculateFilterExpressionEvent.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/customStore.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dataTableFormatColumn.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/data_table_component_access.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/datagridAddDynamicColumn.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/datatableAddandDeleteItem.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/deleteComponent.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/divider.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxColumncssClass.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxDataGridAddinEditingDeleting.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxDataGridLines.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxDataGridRemove.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxDatagridHeatMap.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxDatagridUpdate.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxMasterDetail.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxPaging_withServiceCall.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxRowDragging.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxSummary_dxTotalItem_usage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxTotalItemCustomizeText.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dxTreeList_exportToExcel.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/dynamicComp.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/efficientTreeviewSearchforLargeDatasets.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/email.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/encoding.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/encryptedStorage_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/fileInput-1.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/fileUploadBlockComponent.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/fileUploadServiceCallBlockComp.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/findAndDeleteRelatedDynamicComp.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/first.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/fixedActionsColumn.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/formatWithFormatType.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/getComponent_example.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/globalLocalization.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/goldenLayout.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/images.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/list.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/localization_AddLanguageRTL_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/newCustomerRegister.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/number.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/number_VTextarea.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/onlyAlphabetic.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/parentPage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/pipeline.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/pipelineSample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/placeQidDynamic.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/progress-circular.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/qtimer.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/radioGroupGetValues.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/region_definition_example.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/resetAndResetValidationUsage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/responsive1.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/responsive2.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/responsive3.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/scrollButton.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/scrollDirective.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/selectedRow-propertyDisable.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/serviceCallerBlockComponent.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/sheet.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/slider.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/snackbars.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/sso.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/subPage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/tab.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/tableadditem.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/themeExamplePage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/tiffImage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/timePicker.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/treeview.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/treeview2.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/uniqueRowSlots.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/vMenu.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/vcarousel.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/cssClass/vdatatable_slots_with_custom_validation_usage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/AllowdDates.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/BarChartEvents.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/BarChartTitle.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/BarChartYTicks.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/BarChart_TicksCallback.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/CalendarClickMoreExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/CalendarUsageExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/ChartLegendFont.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/DataTable_customSort.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/DocumentViewer_tiff_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/DoughnutChartEvents.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/DxDataGrid_CustomStore.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/Icon_Samples.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/Instructions.request.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/Intersect.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/LightBox.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/LineChart.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/LineChartEvents.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/LineChartPointProps.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/LineChart_TicksCallback.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/LineChart_Type_Time_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/MMDelay.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/MMtrigger.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/NavigationDrawerExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/NavigationDrawerWithAppBar.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/Parallax.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/PieChart.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/QCaptcha.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/QDocumentViewer.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/QFrameAllowFullScreenExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/QFrameExample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/QIdleTimer.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/QImgZoomRotate.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/QImgZoomTypeNextTo.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/QImgZoomTypeOn.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/QLabel_URL_Click_SendParams.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/VList_NavMenu.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/alertSamplePage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/authorizationDashboard.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/badge.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/bottomSheetScrollable.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/breadcrumbs.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/button.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/cellTemplate.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/combobox.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/comboboxSelected.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/createChildren.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/createClosedPanes.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/creditcard.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/crypto.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/customFilterUsingCalculateFilterExpressionEvent.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/customStore.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dataTableFormatColumn.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/data_table_component_access.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/datagridAddDynamicColumn.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/datatableAddandDeleteItem.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/datatable_selectable_feature_select_unselect_usage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/deleteComponent.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/divider.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxColumncssClass.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxDataGridAddinEditingDeleting.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxDataGridLines.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxDataGridRemove.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxDatagridHeatMap.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxDatagridUpdate.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxMasterDetail.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxPaging_withServiceCall.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxRowDragging.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxSummary_dxTotalItem_usage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxTotalItemCustomizeText.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dxTreeList_exportToExcel.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/dynamicComp.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/efficientTreeviewSearchforLargeDatasets.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/email.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/encoding.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/encryptedStorage_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/exportToXlsx_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/images.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/images_olddd.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/newCustomerRegister.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/number.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/number_VTextarea.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/onlyAlphabetic.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/parentPage.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/pipeline.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/pipelineSample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/placeQidDynamic.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/progress-circular.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/samplePageLottie.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/server-SideAutocompleteHandling.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit/.ai-kit/ui-kit}/examples/style/xlsxToJson_Sample.qjson +0 -0
- /package/dist/studio-cli/{src/.ai-kit → kits/ui-app-kit}/.mcp.json +0 -0
|
@@ -6,98 +6,174 @@ const node_path_1 = require("node:path");
|
|
|
6
6
|
const wsRaw_1 = require("./wsRaw");
|
|
7
7
|
const peer_1 = require("./peer");
|
|
8
8
|
const serverInfo_1 = require("./serverInfo");
|
|
9
|
+
const pickWorkspaceDir_1 = require("../control/pickWorkspaceDir");
|
|
9
10
|
const logger_1 = require("../util/logger");
|
|
11
|
+
const qjsonCompiled_1 = require("../../../common/agentic/modelFiles/qjsonCompiled");
|
|
12
|
+
const jsonBody_1 = require("../../../common/agentic/modelFiles/jsonBody");
|
|
10
13
|
const pull_1 = require("../control/pull");
|
|
11
14
|
const push_1 = require("../control/push");
|
|
12
15
|
const state_1 = require("../util/state");
|
|
13
|
-
const
|
|
14
|
-
const
|
|
16
|
+
const trash_1 = require("../util/trash");
|
|
17
|
+
const frontmatter_1 = require("../../../common/agentic/modelFiles/frontmatter");
|
|
18
|
+
const modelRefs_1 = require("../../../common/agentic/modelFiles/modelRefs");
|
|
15
19
|
const version_1 = require("../version");
|
|
16
|
-
const protocolVersion_1 = require("../../../common/studioCli/protocolVersion");
|
|
20
|
+
const protocolVersion_1 = require("../../../common/agentic/studioCli/protocolVersion");
|
|
17
21
|
const PING_INTERVAL_MS = 20000;
|
|
18
|
-
|
|
22
|
+
// A peer that sends no frame at all for this long is treated as dead. Deliberately generous
|
|
23
|
+
// (15 missed pings), and one value for every peer in every state — the harm is lopsided. A
|
|
24
|
+
// leftover process is a background annoyance nobody watches in real time, but a false drop is
|
|
25
|
+
// instant and costly: the primary has NO periodic reconnect (ui .../studioCli/index.ts only
|
|
26
|
+
// retries on app-open), so the user must reconnect by hand. Two things block a live browser's
|
|
27
|
+
// main thread long enough to look dead — a paused DevTools breakpoint, and one heavy synchronous
|
|
28
|
+
// step of a push — and a single limit this generous covers both without a special case.
|
|
29
|
+
const PEER_SILENCE_LIMIT_MS = 300000;
|
|
30
|
+
// A sweep landing this late means the HOST was suspended (laptop lid), not that peers fell silent.
|
|
31
|
+
const SUSPEND_GAP_MS = PING_INTERVAL_MS * 2;
|
|
32
|
+
const IDLE_EXIT_MS = 120000;
|
|
33
|
+
const RENDEZVOUS_BIND_RETRY_MS = 2000;
|
|
19
34
|
/**
|
|
20
|
-
*
|
|
21
|
-
* control
|
|
35
|
+
* Local WebSocket server (hub). One bridge client (browser) + short-lived
|
|
36
|
+
* control clients later. Port-range discovery + `.studio/server.json` claim + typed dispatch.
|
|
22
37
|
*/
|
|
23
38
|
class BridgeServer {
|
|
24
39
|
wss;
|
|
40
|
+
// Fixed rendezvous port listener — when the web connects here it announces the ephemeral port, then it is released.
|
|
41
|
+
rendezvousWss;
|
|
25
42
|
bridgeClient;
|
|
26
|
-
// AI test
|
|
43
|
+
// AI test browser (?cliRole=test) — SINK: sends no events, only receives syncModels.
|
|
27
44
|
testClient;
|
|
28
|
-
//
|
|
29
|
-
//
|
|
45
|
+
// Every live peer on the ephemeral port, including ones that have not said hello yet.
|
|
46
|
+
// The ping/reap loop walks THIS, not the two named slots: a peer that connects and then
|
|
47
|
+
// goes silent before hello belongs to neither slot and would otherwise never be reaped.
|
|
48
|
+
// (Rendezvous peers are not here — they live on their own server and self-close in 500ms.)
|
|
49
|
+
peers = new Set();
|
|
50
|
+
// Bodies pushed in this session (id → item, merged across pushes). Replayed when the test client
|
|
51
|
+
// connects later / on F5 — sync works regardless of connection order.
|
|
30
52
|
lastSync = new Map();
|
|
31
|
-
// GET /render
|
|
32
|
-
// workspace
|
|
53
|
+
// GET /render target — comes from the primary hello, kept IN MEMORY ONLY (not written to server.json:
|
|
54
|
+
// workspace files are exposed to the agent/git, session info must not hit disk).
|
|
33
55
|
renderTarget;
|
|
34
56
|
claimedAppId;
|
|
35
57
|
pingTimer;
|
|
58
|
+
lastTickAt = 0; // when the last ping sweep ran — detects host suspend (see pingTick)
|
|
59
|
+
idleTimer;
|
|
60
|
+
rendezvousRetryTimer;
|
|
36
61
|
_pushInProgress = false;
|
|
37
|
-
//
|
|
38
|
-
// echo
|
|
39
|
-
// id
|
|
62
|
+
// Model ids checked out by the push (newly created). Because the studio.checkout → checkoutChangedHook
|
|
63
|
+
// echo can also arrive AFTER the reply (_pushInProgress isn't enough); the checkoutChanged for these ids is
|
|
64
|
+
// suppressed per-id, consume-once → timing-independent, manual checkouts are unaffected.
|
|
40
65
|
_expectedCheckoutEchoes = new Set();
|
|
41
66
|
_deferredModelCreated = [];
|
|
42
67
|
_deferredModelChanged = [];
|
|
68
|
+
_pickerOpen = false;
|
|
69
|
+
trashQueue = new trash_1.TrashQueue();
|
|
43
70
|
host;
|
|
44
|
-
|
|
45
|
-
port = 0; // gerçekte bağlanan port (start() doldurur)
|
|
71
|
+
port = 0; // ephemeral port assigned by the OS (bind() fills it in)
|
|
46
72
|
rootDir;
|
|
47
|
-
constructor(options) {
|
|
73
|
+
constructor(options = {}) {
|
|
48
74
|
this.host = options.host ?? "127.0.0.1";
|
|
49
|
-
this.startPort = options.port;
|
|
50
75
|
this.rootDir = options.rootDir;
|
|
51
76
|
}
|
|
77
|
+
get workspaceDir() {
|
|
78
|
+
if (this.rootDir === undefined)
|
|
79
|
+
throw new Error("no workspace selected");
|
|
80
|
+
return this.rootDir;
|
|
81
|
+
}
|
|
52
82
|
async start() {
|
|
53
|
-
//
|
|
54
|
-
//
|
|
55
|
-
|
|
83
|
+
// Clear the runtime claim (port/pid) left over from a previous (crashed) server — this is a fresh
|
|
84
|
+
// server. The appId binding is kept.
|
|
85
|
+
//TODO: think about the side effects of doing this here.
|
|
86
|
+
if (this.rootDir !== undefined)
|
|
87
|
+
(0, serverInfo_1.clearServerInfoRuntimeSync)(this.rootDir);
|
|
56
88
|
await this.bind();
|
|
57
89
|
logger_1.logger.info(`bridge listening on ws://${this.host}:${this.port}`);
|
|
90
|
+
await this.bindRendezvous();
|
|
58
91
|
logger_1.logger.info("waiting for Studio web to connect…");
|
|
92
|
+
this.armIdleExit();
|
|
93
|
+
}
|
|
94
|
+
// Listen on the fixed rendezvous port. When the web connects it announces the ephemeral bridge port, then we
|
|
95
|
+
// release the port (another CLI can use it). If the port is in use (another CLI holds it) silently skip.
|
|
96
|
+
async bindRendezvous() {
|
|
97
|
+
const wss = new wsRaw_1.RawWebSocketServer({ host: this.host, port: protocolVersion_1.RENDEZVOUS_PORT });
|
|
98
|
+
// Announce the ephemeral port when the web connects. Do NOT close the rendezvous HERE — it is closed once the
|
|
99
|
+
// web connects to the ephemeral port and becomes a live client via hello (onHello → closeRendezvous). This way
|
|
100
|
+
// if the web can't reach the ephemeral port it can retry via the rendezvous.
|
|
101
|
+
wss.onConnection((conn) => {
|
|
102
|
+
new peer_1.Peer(conn).send("rendezvous", { port: this.port });
|
|
103
|
+
logger_1.logger.info(`rendezvous → announced port ${this.port}`);
|
|
104
|
+
setTimeout(() => conn.close(1000, "rendezvous done"), 500); // let the frame flush
|
|
105
|
+
});
|
|
106
|
+
try {
|
|
107
|
+
await wss.listen();
|
|
108
|
+
this.rendezvousWss = wss;
|
|
109
|
+
logger_1.logger.info(`rendezvous listening on ws://${this.host}:${protocolVersion_1.RENDEZVOUS_PORT}`);
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
wss.close();
|
|
113
|
+
if (err.code === "EADDRINUSE") {
|
|
114
|
+
// Another CLI is already the discovery point. If this is a protocol-launch (no folder) this instance is
|
|
115
|
+
// redundant — the web finds the rendezvous holder, not this one → exit so it doesn't stay orphaned. If
|
|
116
|
+
// launched manually with `--dir <path>` (rootDir set) don't exit; the user opened it deliberately, reachable via savedPort.
|
|
117
|
+
if (this.rootDir === undefined) {
|
|
118
|
+
logger_1.logger.info(`rendezvous ${protocolVersion_1.RENDEZVOUS_PORT} held by another CLI — redundant launch, exiting`);
|
|
119
|
+
this.close();
|
|
120
|
+
process.exit(0);
|
|
121
|
+
}
|
|
122
|
+
logger_1.logger.info(`rendezvous ${protocolVersion_1.RENDEZVOUS_PORT} in use — will retry in ${RENDEZVOUS_BIND_RETRY_MS / 1000}s`);
|
|
123
|
+
this.rendezvousRetryTimer = setTimeout(() => void this.bindRendezvous(), RENDEZVOUS_BIND_RETRY_MS);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
logger_1.logger.error(`rendezvous bind failed: ${err.message}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
closeRendezvous() {
|
|
131
|
+
if (this.rendezvousRetryTimer) {
|
|
132
|
+
clearTimeout(this.rendezvousRetryTimer);
|
|
133
|
+
this.rendezvousRetryTimer = undefined;
|
|
134
|
+
}
|
|
135
|
+
this.rendezvousWss?.close();
|
|
136
|
+
this.rendezvousWss = undefined;
|
|
59
137
|
}
|
|
60
138
|
close() {
|
|
61
139
|
this.stopPing();
|
|
140
|
+
this.cancelIdleExit();
|
|
141
|
+
this.trashQueue.dispose();
|
|
142
|
+
(0, pickWorkspaceDir_1.killActivePicker)();
|
|
143
|
+
this.closeRendezvous();
|
|
62
144
|
this.bridgeClient?.close(1001, "cli shutting down");
|
|
63
145
|
this.testClient?.close(1001, "cli shutting down");
|
|
64
146
|
this.wss?.close();
|
|
65
|
-
|
|
147
|
+
if (this.rootDir !== undefined)
|
|
148
|
+
(0, serverInfo_1.clearServerInfoRuntimeSync)(this.rootDir);
|
|
66
149
|
}
|
|
67
|
-
/**
|
|
150
|
+
/** Bind to the ephemeral port assigned by the OS (port:0 → the OS picks a free port). The web learns the port via the rendezvous. */
|
|
68
151
|
async bind() {
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
await wss.listen();
|
|
76
|
-
this.wss = wss;
|
|
77
|
-
this.port = p;
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
catch (err) {
|
|
81
|
-
wss.close();
|
|
82
|
-
if (err.code === "EADDRINUSE") {
|
|
83
|
-
logger_1.logger.debug(`port ${p} in use — trying next`);
|
|
84
|
-
continue;
|
|
85
|
-
}
|
|
86
|
-
throw err;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
throw new Error(`no free port in ${this.startPort}-${end}`);
|
|
152
|
+
const wss = new wsRaw_1.RawWebSocketServer({ host: this.host, port: 0 });
|
|
153
|
+
wss.onConnection((conn) => this.onConnection(conn));
|
|
154
|
+
wss.onRequest((req, res) => this.routeRequest(req, res));
|
|
155
|
+
await wss.listen();
|
|
156
|
+
this.wss = wss;
|
|
157
|
+
this.port = wss.boundPort;
|
|
90
158
|
}
|
|
91
|
-
// ---
|
|
159
|
+
// --- connection lifecycle ---
|
|
92
160
|
onConnection(conn) {
|
|
93
161
|
const peer = new peer_1.Peer(conn);
|
|
162
|
+
this.peers.add(peer);
|
|
94
163
|
peer.onEnvelope((env) => this.dispatch(peer, env));
|
|
95
164
|
peer.onClose(() => this.onPeerClose(peer));
|
|
96
165
|
logger_1.logger.debug("peer connected");
|
|
166
|
+
// Start pinging at CONNECT, not at hello — otherwise a peer that never handshakes is
|
|
167
|
+
// never probed and leaks a socket for the lifetime of the process.
|
|
168
|
+
this.startPing();
|
|
97
169
|
}
|
|
98
170
|
onPeerClose(peer) {
|
|
171
|
+
this.peers.delete(peer);
|
|
99
172
|
if (peer === this.bridgeClient) {
|
|
100
|
-
// F5/
|
|
173
|
+
// F5/page close: the client goes away but the claim + server.json REMAIN (for reconnect).
|
|
174
|
+
// If the tab closed while the picker was open, close the orphaned window (its result will be dropped anyway).
|
|
175
|
+
if (this._pickerOpen)
|
|
176
|
+
(0, pickWorkspaceDir_1.killActivePicker)();
|
|
101
177
|
this.bridgeClient = undefined;
|
|
102
178
|
logger_1.logger.info("bridge client disconnected (claim kept for reconnect)");
|
|
103
179
|
}
|
|
@@ -105,27 +181,34 @@ class BridgeServer {
|
|
|
105
181
|
this.testClient = undefined;
|
|
106
182
|
logger_1.logger.info("test client disconnected");
|
|
107
183
|
}
|
|
184
|
+
// Idle exit tracks the CLIENT slots — a bare peer is not a session. The ping loop tracks
|
|
185
|
+
// the registry instead, so a silent pre-hello peer keeps being probed until it is reaped.
|
|
108
186
|
if (!this.bridgeClient && !this.testClient)
|
|
187
|
+
this.armIdleExit();
|
|
188
|
+
if (this.peers.size === 0)
|
|
109
189
|
this.stopPing();
|
|
110
190
|
}
|
|
111
191
|
// --- dispatch ---
|
|
112
192
|
dispatch(peer, env) {
|
|
113
193
|
switch (env.type) {
|
|
114
194
|
case "whoAreYou":
|
|
115
|
-
/** Probe —
|
|
116
|
-
*
|
|
195
|
+
/** Probe — NO side effects; reports the current state + protocol/version (does not claim).
|
|
196
|
+
* The compatibility check is done in the UI based on this reply (see docs/PROTOCOL-VERSION-CHECK.md). */
|
|
117
197
|
peer.reply(env, "whoAreYouResult", { hasClient: this.bridgeClient?.isOpen ?? false, hasTestClient: this.testClient?.isOpen ?? false, appId: this.claimedAppId ?? null, protocol: protocolVersion_1.GENERATION, cliVersion: version_1.VERSION });
|
|
118
198
|
return;
|
|
119
199
|
case "hello":
|
|
120
200
|
this.onHello(peer, env);
|
|
121
201
|
return;
|
|
202
|
+
case "pickFolder":
|
|
203
|
+
void this.onPickFolder(peer, env);
|
|
204
|
+
return;
|
|
122
205
|
case "ping":
|
|
123
206
|
peer.reply(env, "pong", {});
|
|
124
207
|
return;
|
|
125
208
|
case "pong":
|
|
126
209
|
return;
|
|
127
210
|
case "bye":
|
|
128
|
-
//
|
|
211
|
+
// Only the PRIMARY's bye shuts down the server; the test client leaving just frees the slot.
|
|
129
212
|
if (peer === this.testClient) {
|
|
130
213
|
logger_1.logger.info(`test client said bye (${env.payload.reason})`);
|
|
131
214
|
this.testClient = undefined;
|
|
@@ -165,8 +248,8 @@ class BridgeServer {
|
|
|
165
248
|
logger_1.logger.warn(`unhandled message type: ${env.type}`);
|
|
166
249
|
}
|
|
167
250
|
}
|
|
168
|
-
/**
|
|
169
|
-
*
|
|
251
|
+
/** File-writing events are only accepted from the primary (test is a SINK; the web side doesn't send
|
|
252
|
+
* them anyway — this is a second safeguard). */
|
|
170
253
|
isPrimary(peer) {
|
|
171
254
|
if (peer === this.bridgeClient)
|
|
172
255
|
return true;
|
|
@@ -175,22 +258,22 @@ class BridgeServer {
|
|
|
175
258
|
}
|
|
176
259
|
onHello(peer, env) {
|
|
177
260
|
const p = env.payload;
|
|
178
|
-
//
|
|
179
|
-
//
|
|
261
|
+
// Protocol compatibility is resolved on the UI side in the whoAreYou probe; if we got to hello the parties
|
|
262
|
+
// are already compatible (see docs/PROTOCOL-VERSION-CHECK.md). NO protocol check here.
|
|
180
263
|
if (p.role === "test") {
|
|
181
264
|
this.onHelloTest(peer, env);
|
|
182
265
|
return;
|
|
183
266
|
}
|
|
184
|
-
//
|
|
267
|
+
// If there's already a live bridge client (another tab) → busy.
|
|
185
268
|
if (this.bridgeClient?.isOpen && this.bridgeClient !== peer) {
|
|
186
|
-
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION }, { message: "bridge already in use", title: "Bridge busy" });
|
|
269
|
+
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION, protocol: protocolVersion_1.GENERATION, rootDir: this.rootDir ?? null }, { message: "bridge already in use", title: "Bridge busy" });
|
|
187
270
|
logger_1.logger.warn(`hello rejected — bridge already in use (app ${this.claimedAppId})`);
|
|
188
271
|
peer.close(1013, "bridge already in use");
|
|
189
272
|
return;
|
|
190
273
|
}
|
|
191
|
-
//
|
|
274
|
+
// Claimed and a different app → this server belongs to another workspace.
|
|
192
275
|
if (this.claimedAppId !== undefined && this.claimedAppId !== p.appId) {
|
|
193
|
-
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION }, { message: `server claimed by another app (${this.claimedAppId})`, title: "Wrong workspace" });
|
|
276
|
+
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION, protocol: protocolVersion_1.GENERATION, rootDir: this.rootDir ?? null }, { message: `server claimed by another app (${this.claimedAppId})`, title: "Wrong workspace" });
|
|
194
277
|
logger_1.logger.warn(`hello rejected — claimed by ${this.claimedAppId}, got ${p.appId}`);
|
|
195
278
|
peer.close(1008, "wrong workspace");
|
|
196
279
|
return;
|
|
@@ -198,9 +281,9 @@ class BridgeServer {
|
|
|
198
281
|
const fresh = this.claimedAppId === undefined;
|
|
199
282
|
this.claimedAppId = p.appId;
|
|
200
283
|
this.bridgeClient = peer;
|
|
201
|
-
//
|
|
284
|
+
// Refresh on every primary hello (origin/org may have changed on reconnect).
|
|
202
285
|
this.renderTarget = (p.organizationId && p.origin) ? { organizationId: p.organizationId, origin: p.origin } : undefined;
|
|
203
|
-
//
|
|
286
|
+
// Diagnostic: make it visible at connect time whether /render will work (an old UI build doesn't send org/origin).
|
|
204
287
|
if (this.renderTarget)
|
|
205
288
|
logger_1.logger.info(`render check ready — ${this.renderTarget.origin}/studio/${this.renderTarget.organizationId}/${p.appId}`);
|
|
206
289
|
else
|
|
@@ -212,41 +295,49 @@ class BridgeServer {
|
|
|
212
295
|
else {
|
|
213
296
|
logger_1.logger.info(`hello — reconnect to app "${p.appName}" (${p.appId})`);
|
|
214
297
|
}
|
|
215
|
-
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION });
|
|
298
|
+
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION, protocol: protocolVersion_1.GENERATION, rootDir: this.rootDir ?? null });
|
|
216
299
|
this.startPing();
|
|
300
|
+
this.cancelIdleExit();
|
|
301
|
+
// The web connected to the ephemeral port and handshaked → discovery done, release the rendezvous.
|
|
302
|
+
this.closeRendezvous();
|
|
217
303
|
}
|
|
218
|
-
/** Test
|
|
219
|
-
*
|
|
220
|
-
*
|
|
304
|
+
/** Test-role hello. The test client does NOT claim, doesn't touch server.json; it just attaches to the
|
|
305
|
+
* existing claim. A live primary is NOT required — the claim survives the primary's F5 (onPeerClose) and
|
|
306
|
+
* a test client without a primary is harmless (control commands return 409 anyway). */
|
|
221
307
|
onHelloTest(peer, env) {
|
|
222
308
|
const p = env.payload;
|
|
223
309
|
if (this.claimedAppId === undefined) {
|
|
224
|
-
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION }, { message: "no primary claim yet — connect the main Studio tab first", title: "No primary" });
|
|
310
|
+
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION, protocol: protocolVersion_1.GENERATION, rootDir: this.rootDir ?? null }, { message: "no primary claim yet — connect the main Studio tab first", title: "No primary" });
|
|
225
311
|
logger_1.logger.warn("test hello rejected — no primary claim yet");
|
|
226
312
|
peer.close(1013, "no primary claim");
|
|
227
313
|
return;
|
|
228
314
|
}
|
|
229
315
|
if (this.claimedAppId !== p.appId) {
|
|
230
|
-
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION }, { message: `server claimed by another app (${this.claimedAppId})`, title: "Wrong workspace" });
|
|
316
|
+
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION, protocol: protocolVersion_1.GENERATION, rootDir: this.rootDir ?? null }, { message: `server claimed by another app (${this.claimedAppId})`, title: "Wrong workspace" });
|
|
231
317
|
logger_1.logger.warn(`test hello rejected — claimed by ${this.claimedAppId}, got ${p.appId}`);
|
|
232
318
|
peer.close(1008, "wrong workspace");
|
|
233
319
|
return;
|
|
234
320
|
}
|
|
235
321
|
if (this.testClient?.isOpen && this.testClient !== peer) {
|
|
236
|
-
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION }, { message: "test slot already in use", title: "Test slot busy" });
|
|
322
|
+
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION, protocol: protocolVersion_1.GENERATION, rootDir: this.rootDir ?? null }, { message: "test slot already in use", title: "Test slot busy" });
|
|
237
323
|
logger_1.logger.warn("test hello rejected — test slot already in use");
|
|
238
324
|
peer.close(1013, "test slot busy");
|
|
239
325
|
return;
|
|
240
326
|
}
|
|
241
327
|
this.testClient = peer;
|
|
242
328
|
logger_1.logger.info(`hello — test client joined app "${p.appName}" (${p.appId})`);
|
|
243
|
-
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION });
|
|
329
|
+
peer.reply(env, "helloAck", { cliVersion: version_1.VERSION, protocol: protocolVersion_1.GENERATION, rootDir: this.rootDir ?? null });
|
|
244
330
|
this.startPing();
|
|
245
|
-
|
|
331
|
+
this.cancelIdleExit();
|
|
332
|
+
// The test client may have connected/F5'd AFTER the pushes → send the session's accumulated bodies.
|
|
246
333
|
if (this.lastSync.size > 0)
|
|
247
334
|
void this.sendSyncModels("replay");
|
|
248
335
|
}
|
|
249
336
|
async claim(appId) {
|
|
337
|
+
if (this.rootDir === undefined) {
|
|
338
|
+
logger_1.logger.debug(`claim deferred — no workspace yet (appId=${appId})`);
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
250
341
|
try {
|
|
251
342
|
await (0, serverInfo_1.writeServerInfo)(this.rootDir, {
|
|
252
343
|
port: this.port,
|
|
@@ -259,10 +350,60 @@ class BridgeServer {
|
|
|
259
350
|
logger_1.logger.error(`failed to write server.json: ${err.message}`);
|
|
260
351
|
}
|
|
261
352
|
}
|
|
262
|
-
//
|
|
263
|
-
//
|
|
353
|
+
// Folderless server: the web sees helloAck.rootDir === null and asks for pickFolder. The native picker opens;
|
|
354
|
+
// if an occupied folder (another live server's claim) is picked, folderInUse is sent and the picker reopens.
|
|
355
|
+
// On selection rootDir is set + (if claimed) server.json is written. Cancel → path:null.
|
|
356
|
+
async onPickFolder(peer, env) {
|
|
357
|
+
if (peer !== this.bridgeClient) {
|
|
358
|
+
peer.reply(env, "pickFolderResult", { path: null }, { message: "only the primary client can pick a folder" });
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
if (this.rootDir !== undefined) {
|
|
362
|
+
peer.reply(env, "pickFolderResult", { path: this.rootDir });
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
if (this._pickerOpen) {
|
|
366
|
+
peer.reply(env, "pickFolderResult", { path: null }, { message: "folder picker already open" });
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
this._pickerOpen = true;
|
|
370
|
+
try {
|
|
371
|
+
while (peer.isOpen) {
|
|
372
|
+
const picked = await (0, pickWorkspaceDir_1.pickWorkspaceDir)();
|
|
373
|
+
if (!peer.isOpen)
|
|
374
|
+
return; // tab closed while the picker was open → drop the result
|
|
375
|
+
if (!picked) {
|
|
376
|
+
peer.reply(env, "pickFolderResult", { path: null });
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
if (isWorkspaceLocked(picked)) {
|
|
380
|
+
logger_1.logger.warn(`workspace already in use — asking again: ${picked}`);
|
|
381
|
+
peer.send("folderInUse", { path: picked });
|
|
382
|
+
continue;
|
|
383
|
+
}
|
|
384
|
+
// The folder carries a persistent appId binding; if it belongs to a different app, don't let this
|
|
385
|
+
// app's files mix into it — reopen the picker (same warning as a live in-use folder).
|
|
386
|
+
if (this.claimedAppId !== undefined && belongsToAnotherApp(picked, this.claimedAppId)) {
|
|
387
|
+
logger_1.logger.warn(`workspace belongs to another app — asking again: ${picked}`);
|
|
388
|
+
peer.send("folderInUse", { path: picked });
|
|
389
|
+
continue;
|
|
390
|
+
}
|
|
391
|
+
this.rootDir = picked;
|
|
392
|
+
if (this.claimedAppId !== undefined)
|
|
393
|
+
await this.claim(this.claimedAppId);
|
|
394
|
+
logger_1.logger.info(`workspace selected: ${picked}`);
|
|
395
|
+
peer.reply(env, "pickFolderResult", { path: picked });
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
finally {
|
|
400
|
+
this._pickerOpen = false;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
// --- control channel (HTTP /control/<cmd>) — hub relay ---
|
|
404
|
+
// Non-WS HTTP coming from wsRaw. Own the control request (true); everything else false → 426.
|
|
264
405
|
routeRequest(req, res) {
|
|
265
|
-
// CORS preflight — browser'
|
|
406
|
+
// CORS preflight — handle the browser's OPTIONS request.
|
|
266
407
|
if (req.method === "OPTIONS") {
|
|
267
408
|
res.writeHead(204, this.corsHeaders());
|
|
268
409
|
res.end();
|
|
@@ -273,20 +414,20 @@ class BridgeServer {
|
|
|
273
414
|
void this.handleControl(cmd, req, res);
|
|
274
415
|
return true;
|
|
275
416
|
}
|
|
276
|
-
// Render-check: agent
|
|
277
|
-
//
|
|
417
|
+
// Render-check: the agent opens this fixed local URL with Playwright; the CLI requests a FRESH token from
|
|
418
|
+
// the primary tab and 302-redirects to the Studio editor URL. The agent never sees/handles the token.
|
|
278
419
|
if (req.method === "GET" && req.url && req.url.split("?")[0] === "/render") {
|
|
279
420
|
void this.handleRenderRedirect(res);
|
|
280
421
|
return true;
|
|
281
422
|
}
|
|
282
423
|
return false;
|
|
283
424
|
}
|
|
284
|
-
/** `<origin>/studio/<org>/<app>?cliRole=test#token=<
|
|
285
|
-
*
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
* `?cliRole=test`
|
|
425
|
+
/** 302 redirect to `<origin>/studio/<org>/<app>?cliRole=test#token=<fresh token>`.
|
|
426
|
+
* The token is requested ON DEMAND from the primary on every request (the hello-time token goes stale in ~1 hour;
|
|
427
|
+
* api.getToken() silently refreshes it from MSAL) and is carried ONLY in the fragment (not the query → doesn't leak
|
|
428
|
+
* to access logs/Referer; never reaches the server). Never written to disk. The response DELIBERATELY has NO CORS
|
|
429
|
+
* header — so a foreign page can't read the redirect chain via fetch; the endpoint is for direct navigation only.
|
|
430
|
+
* Thanks to `?cliRole=test` the tab auto-connects as a test client as soon as it opens. */
|
|
290
431
|
async handleRenderRedirect(res) {
|
|
291
432
|
if (!this.bridgeClient?.isOpen || this.claimedAppId === undefined) {
|
|
292
433
|
this.respondNoCors(res, 503, { error: "no authenticated Studio session — open Studio and connect the CLI first" });
|
|
@@ -310,7 +451,7 @@ class BridgeServer {
|
|
|
310
451
|
}
|
|
311
452
|
const { origin, organizationId } = this.renderTarget;
|
|
312
453
|
const path = `/studio/${encodeURIComponent(organizationId)}/${encodeURIComponent(this.claimedAppId)}`;
|
|
313
|
-
const target = `${origin}${path}?cliRole=test#token=${encodeURIComponent(token)}`;
|
|
454
|
+
const target = `${origin}${path}?cliRole=test&cliPort=${this.port}#token=${encodeURIComponent(token)}`;
|
|
314
455
|
res.writeHead(302, { Location: target });
|
|
315
456
|
res.end();
|
|
316
457
|
}
|
|
@@ -333,25 +474,31 @@ class BridgeServer {
|
|
|
333
474
|
req.on("error", reject);
|
|
334
475
|
});
|
|
335
476
|
}
|
|
336
|
-
//
|
|
477
|
+
// Resolve the control command: relay the needed message to the bridgeClient, return the reply over HTTP.
|
|
337
478
|
async handleControl(cmd, req, res) {
|
|
338
479
|
if (!this.bridgeClient?.isOpen) {
|
|
339
480
|
this.respond(res, 409, { error: "studio not connected" });
|
|
340
481
|
return;
|
|
341
482
|
}
|
|
483
|
+
if (this.rootDir === undefined) {
|
|
484
|
+
this.respond(res, 409, { error: "no workspace selected — pick a folder in Studio first" });
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
342
487
|
try {
|
|
343
488
|
switch (cmd) {
|
|
344
489
|
case "pull": {
|
|
345
|
-
// browser pullResult (snapshot)
|
|
346
|
-
//
|
|
347
|
-
const snapshot = await this.bridgeClient.request("pull", {});
|
|
490
|
+
// the browser replies with pullResult (snapshot) → the SERVER writes the files (+ state).
|
|
491
|
+
// Response: NDJSON stream — {"progress":x,"total":y} after each model, {"message":...} at the end
|
|
492
|
+
const snapshot = await this.bridgeClient.request("pull", {}, 300000);
|
|
348
493
|
const modelTotal = snapshot.models.length;
|
|
349
494
|
res.writeHead(200, { "Content-Type": "application/x-ndjson", ...this.corsHeaders() });
|
|
350
495
|
try {
|
|
351
|
-
const { total, readOnly } = await (0, pull_1.pull)(this.
|
|
496
|
+
const { total, readOnly, failed } = await (0, pull_1.pull)(this.workspaceDir, snapshot, (written) => {
|
|
352
497
|
res.write(JSON.stringify({ progress: written, total: modelTotal }) + "\n");
|
|
353
498
|
});
|
|
354
|
-
|
|
499
|
+
for (const f of failed)
|
|
500
|
+
res.write(JSON.stringify({ skipped: `${f.name} — ${f.error}` }) + "\n");
|
|
501
|
+
res.end(JSON.stringify({ message: `${total} model(s)${readOnly > 0 ? ` (${readOnly} read-only)` : ""}${failed.length > 0 ? `, ${failed.length} failed` : ""} and .ai-kit pulled` }) + "\n");
|
|
355
502
|
}
|
|
356
503
|
catch (err) {
|
|
357
504
|
res.end(JSON.stringify({ error: err.message }) + "\n");
|
|
@@ -359,45 +506,54 @@ class BridgeServer {
|
|
|
359
506
|
return;
|
|
360
507
|
}
|
|
361
508
|
case "push": {
|
|
362
|
-
// rootDir
|
|
363
|
-
const state = (0, state_1.readState)(this.
|
|
364
|
-
const { models, newModels, skipped, deletedIds } = await (0, push_1.push)(this.
|
|
365
|
-
// NDJSON stream
|
|
509
|
+
// scan rootDir → collect existing (models) + new (newModels) files → bulk relay → update state.
|
|
510
|
+
const state = (0, state_1.readState)(this.workspaceDir);
|
|
511
|
+
const { models, newModels, skipped, deletedIds } = await (0, push_1.push)(this.workspaceDir, state);
|
|
512
|
+
// open an NDJSON stream — the client draws a progress bar (controlClient.ts readNdjsonStream).
|
|
366
513
|
res.writeHead(200, { "Content-Type": "application/x-ndjson", ...this.corsHeaders() });
|
|
367
|
-
//
|
|
514
|
+
// Write an individual line for each skipped file.
|
|
368
515
|
for (const s of skipped) {
|
|
369
516
|
const hint = s.reason === "readonly" ? "read-only (use startWorking to check out)" : "unsupported type";
|
|
370
517
|
res.write(JSON.stringify({ skipped: `${s.localKey} — ${hint}` }) + "\n");
|
|
371
518
|
}
|
|
372
519
|
if (models.length === 0 && newModels.length === 0 && deletedIds.length === 0) {
|
|
373
|
-
res.end(JSON.stringify({ message: `
|
|
520
|
+
res.end(JSON.stringify({ message: `push OK — already up to date, no changes to send` }) + "\n");
|
|
374
521
|
return;
|
|
375
522
|
}
|
|
376
523
|
const total = models.length + newModels.length + deletedIds.length;
|
|
377
|
-
//
|
|
378
|
-
//
|
|
524
|
+
// modelChanged/modelCreated events that arrive during the push come from the push's own updateModel
|
|
525
|
+
// calls (echo). Put them in the deferred queue; process when the push finishes.
|
|
379
526
|
this._pushInProgress = true;
|
|
380
|
-
this._expectedCheckoutEchoes.clear(); //
|
|
527
|
+
this._expectedCheckoutEchoes.clear(); // clear ids left over from a previous push (whose echo never arrived)
|
|
381
528
|
try {
|
|
382
529
|
res.write(JSON.stringify({ progress: 0, total }) + "\n");
|
|
383
|
-
const
|
|
384
|
-
|
|
385
|
-
|
|
530
|
+
const pushTimeoutMs = Math.max(300000, total * 60000);
|
|
531
|
+
const heartbeat = setInterval(() => { if (!res.writableEnded)
|
|
532
|
+
res.write(JSON.stringify({ keepalive: 1 }) + "\n"); }, 20000);
|
|
533
|
+
let result;
|
|
534
|
+
try {
|
|
535
|
+
result = await this.bridgeClient.request("push", { models, newModels, deletedIds }, pushTimeoutMs);
|
|
536
|
+
}
|
|
537
|
+
finally {
|
|
538
|
+
clearInterval(heartbeat);
|
|
539
|
+
}
|
|
540
|
+
// Newly created models are checked out by the push → a checkoutChanged echo is expected.
|
|
541
|
+
// (Existing models don't check out on rename/move/body.) Even if the echo arrives late it's suppressed by id.
|
|
386
542
|
for (const r of result.newModelResults ?? [])
|
|
387
543
|
if (r.ok && r.id)
|
|
388
544
|
this._expectedCheckoutEchoes.add(r.id);
|
|
389
|
-
// Progress:
|
|
545
|
+
// Progress: one line per applied item (existing + new + deleted).
|
|
390
546
|
let done = 0;
|
|
391
547
|
const tick = () => res.write(JSON.stringify({ progress: ++done, total }) + "\n");
|
|
392
548
|
const counts = { okBody: 0, okRenamed: 0, okMoved: 0, okBoth: 0, okDeleted: 0, okRefFiles: 0 };
|
|
393
|
-
this.applyExistingResults(result.results ?? [], models, state, counts, tick);
|
|
394
|
-
await this.applyNewModelResults(result.newModelResults ?? [], newModels, state, counts, tick);
|
|
549
|
+
await this.applyExistingResults(result.results ?? [], models, state, counts, tick);
|
|
550
|
+
await this.applyNewModelResults(result.newModelResults ?? [], newModels, state, counts, tick, res);
|
|
395
551
|
this.applyDeletedResults(result.deletedResults ?? [], state, counts, tick);
|
|
396
552
|
counts.okRefFiles = await this.syncReferences(result.results ?? [], result.deletedResults ?? [], state, res);
|
|
397
|
-
await (0, state_1.writeState)(this.
|
|
553
|
+
await (0, state_1.writeState)(this.workspaceDir, state);
|
|
398
554
|
res.end(JSON.stringify({ message: this.buildPushSummary(counts, models, newModels, skipped) }) + "\n");
|
|
399
|
-
//
|
|
400
|
-
//
|
|
555
|
+
// Reflect to the test tab — after the HTTP response is closed, best-effort (never blocks the push;
|
|
556
|
+
// errors don't leak into the push either — res is already closed, must not fall into catch).
|
|
401
557
|
try {
|
|
402
558
|
this.afterPushSync(models, newModels, result);
|
|
403
559
|
}
|
|
@@ -410,8 +566,8 @@ class BridgeServer {
|
|
|
410
566
|
}
|
|
411
567
|
finally {
|
|
412
568
|
this._pushInProgress = false;
|
|
413
|
-
//
|
|
414
|
-
//
|
|
569
|
+
// A checkout echo that may arrive after the reply is suppressed (per-id) via _expectedCheckoutEchoes.
|
|
570
|
+
// Process the deferred echo events (those originating from the push itself become no-ops).
|
|
415
571
|
const deferredChanged = this._deferredModelChanged.splice(0);
|
|
416
572
|
for (const d of deferredChanged)
|
|
417
573
|
void this.handleModelChanged(d);
|
|
@@ -438,7 +594,7 @@ class BridgeServer {
|
|
|
438
594
|
this.respond(res, 400, { error: "modelId required" });
|
|
439
595
|
return;
|
|
440
596
|
}
|
|
441
|
-
const result = await this.bridgeClient.request("startWorking", { modelId: body.modelId });
|
|
597
|
+
const result = await this.bridgeClient.request("startWorking", { modelId: body.modelId }, 20000);
|
|
442
598
|
this.respond(res, 200, result);
|
|
443
599
|
return;
|
|
444
600
|
}
|
|
@@ -459,7 +615,7 @@ class BridgeServer {
|
|
|
459
615
|
this.respond(res, 400, { error: "modelId required" });
|
|
460
616
|
return;
|
|
461
617
|
}
|
|
462
|
-
const result = await this.bridgeClient.request("convertToBlock", { modelId: body.modelId });
|
|
618
|
+
const result = await this.bridgeClient.request("convertToBlock", { modelId: body.modelId }, 20000);
|
|
463
619
|
this.respond(res, 200, result);
|
|
464
620
|
return;
|
|
465
621
|
}
|
|
@@ -475,9 +631,10 @@ class BridgeServer {
|
|
|
475
631
|
res.writeHead(status, { "Content-Type": "application/json", ...this.corsHeaders() });
|
|
476
632
|
res.end(JSON.stringify(body));
|
|
477
633
|
}
|
|
478
|
-
// --- push
|
|
479
|
-
/**
|
|
480
|
-
|
|
634
|
+
// --- push result processing (handleControl "push" helpers) ---
|
|
635
|
+
/** Existing models: update the state hash on bodyChanged; rename/move counters; progress per item.
|
|
636
|
+
* If the move changed the owner, the ownerName in the local frontmatter is updated too. */
|
|
637
|
+
async applyExistingResults(results, models, state, counts, tick) {
|
|
481
638
|
for (const r of results) {
|
|
482
639
|
if (!r.ok) {
|
|
483
640
|
logger_1.logger.warn(`push ${r.id}: ${r.error ?? "failed"}`);
|
|
@@ -495,14 +652,32 @@ class BridgeServer {
|
|
|
495
652
|
counts.okRenamed++;
|
|
496
653
|
else if (r.moved)
|
|
497
654
|
counts.okMoved++;
|
|
655
|
+
if (pm && r.moved && r.ownerName !== undefined)
|
|
656
|
+
await this.rewriteOwnerName(pm, r.ownerName);
|
|
498
657
|
tick();
|
|
499
658
|
}
|
|
500
659
|
}
|
|
501
|
-
/**
|
|
502
|
-
async
|
|
660
|
+
/** After a move, updates the file's frontmatter ownerName to the new owner (body/hash unchanged). */
|
|
661
|
+
async rewriteOwnerName(pm, ownerName) {
|
|
662
|
+
const abs = (0, node_path_1.join)(this.workspaceDir, ...pm.relDir.split("/").filter(Boolean), `${pm.newName}.${pm.modelType}`);
|
|
663
|
+
try {
|
|
664
|
+
const parsed = (0, frontmatter_1.parseFrontmatter)(await (0, promises_1.readFile)(abs, "utf8"));
|
|
665
|
+
if (!parsed || parsed.meta.ownerName === ownerName)
|
|
666
|
+
return;
|
|
667
|
+
await (0, promises_1.writeFile)(abs, (0, frontmatter_1.writeWithFrontmatter)({ ...parsed.meta, ownerName }, parsed.body), "utf8");
|
|
668
|
+
logger_1.logger.info(`frontmatter ownerName → ${ownerName}: ${(0, node_path_1.relative)(this.workspaceDir, abs)}`);
|
|
669
|
+
}
|
|
670
|
+
catch (err) {
|
|
671
|
+
logger_1.logger.warn(`frontmatter ownerName update failed for ${pm.newName}: ${err.message}`);
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
/** New files: write frontmatter to the newly created one, compute the state hash; progress per item. */
|
|
675
|
+
async applyNewModelResults(results, newModels, state, counts, tick, res) {
|
|
503
676
|
for (const r of results) {
|
|
504
677
|
if (!r.ok || !r.id || !r.key) {
|
|
505
|
-
|
|
678
|
+
const reason = r.error ?? "failed";
|
|
679
|
+
logger_1.logger.warn(`push ${r.localKey}: ${reason}`);
|
|
680
|
+
res.write(JSON.stringify({ skipped: `${r.localKey} — ${reason}` }) + "\n");
|
|
506
681
|
tick();
|
|
507
682
|
continue;
|
|
508
683
|
}
|
|
@@ -511,10 +686,14 @@ class BridgeServer {
|
|
|
511
686
|
tick();
|
|
512
687
|
continue;
|
|
513
688
|
}
|
|
514
|
-
const absPath = (0, node_path_1.join)(this.
|
|
689
|
+
const absPath = (0, node_path_1.join)(this.workspaceDir, ...r.localKey.split("/"));
|
|
515
690
|
const isNewlyCreated = !nm.existingId || r.id !== nm.existingId;
|
|
516
691
|
if (isNewlyCreated) {
|
|
517
|
-
|
|
692
|
+
const bodyToWrite = r.body === undefined
|
|
693
|
+
? nm.body // local file content — already formatted
|
|
694
|
+
: (nm.modelType === "qjson" ? (0, qjsonCompiled_1.stripQJsonCompiledFields)(r.body) : (0, jsonBody_1.formatJsonBody)(r.body, nm.modelType));
|
|
695
|
+
const prevMeta = (0, frontmatter_1.parseFrontmatter)(await (0, promises_1.readFile)(absPath, "utf8"))?.meta;
|
|
696
|
+
await (0, promises_1.writeFile)(absPath, (0, frontmatter_1.writeWithFrontmatter)({ ...prevMeta, id: r.id, ownerName: r.ownerName ?? "/" }, bodyToWrite), "utf8");
|
|
518
697
|
}
|
|
519
698
|
const createdContent = await (0, promises_1.readFile)(absPath, "utf8");
|
|
520
699
|
const createdFm = (0, frontmatter_1.parseFrontmatter)(createdContent);
|
|
@@ -523,7 +702,7 @@ class BridgeServer {
|
|
|
523
702
|
tick();
|
|
524
703
|
}
|
|
525
704
|
}
|
|
526
|
-
/**
|
|
705
|
+
/** Deleted models: remove from state; progress per item. */
|
|
527
706
|
applyDeletedResults(results, state, counts, tick) {
|
|
528
707
|
for (const r of results) {
|
|
529
708
|
if (!r.ok) {
|
|
@@ -536,27 +715,28 @@ class BridgeServer {
|
|
|
536
715
|
tick();
|
|
537
716
|
}
|
|
538
717
|
}
|
|
539
|
-
/** EPIC 13b — rename/move
|
|
540
|
-
* delete
|
|
541
|
-
* (Studio
|
|
718
|
+
/** EPIC 13b — after rename/move, fix <<type:oldPath>> → <<type:newPath>> in other files;
|
|
719
|
+
* on delete, warn about dangling references with a `skipped` line. Returns the number of fixed files.
|
|
720
|
+
* (In Studio the link is fixed by id; locally it's by path, so the REFERENCING files go stale.) */
|
|
542
721
|
async syncReferences(results, deletedResults, state, res) {
|
|
722
|
+
const rootDir = this.workspaceDir;
|
|
543
723
|
const renames = results.flatMap(r => (r.ok && r.oldPath && r.newPath && r.oldPath !== r.newPath) ? [{ oldPath: r.oldPath, newPath: r.newPath }] : []);
|
|
544
724
|
const deletedPaths = deletedResults.flatMap(r => (r.ok && r.deletedPath) ? [r.deletedPath] : []);
|
|
545
725
|
if (renames.length === 0 && deletedPaths.length === 0)
|
|
546
726
|
return 0;
|
|
547
727
|
let okRefFiles = 0;
|
|
548
|
-
for (const abs of await walkDir(
|
|
728
|
+
for (const abs of await walkDir(rootDir)) {
|
|
549
729
|
let content = await (0, promises_1.readFile)(abs, "utf8");
|
|
550
730
|
let changed = false;
|
|
551
731
|
for (const rn of renames) {
|
|
552
|
-
const rw = (0,
|
|
732
|
+
const rw = (0, modelRefs_1.rewriteRefPath)(content, rn.oldPath, rn.newPath);
|
|
553
733
|
if (rw.count > 0) {
|
|
554
734
|
content = rw.content;
|
|
555
735
|
changed = true;
|
|
556
736
|
}
|
|
557
737
|
}
|
|
558
738
|
if (changed) {
|
|
559
|
-
//
|
|
739
|
+
// If the referencing file isn't checked out (0444) it can't be written → make it temporarily writable, then revert.
|
|
560
740
|
const wasWritable = !!((await (0, promises_1.stat)(abs)).mode & 0o200);
|
|
561
741
|
if (!wasWritable)
|
|
562
742
|
await (0, promises_1.chmod)(abs, 0o644);
|
|
@@ -567,17 +747,17 @@ class BridgeServer {
|
|
|
567
747
|
if (fm)
|
|
568
748
|
state[fm.meta.id] = (0, state_1.sha)(fm.body);
|
|
569
749
|
okRefFiles++;
|
|
570
|
-
logger_1.logger.info(`ref-sync: ${(0, node_path_1.relative)(
|
|
750
|
+
logger_1.logger.info(`ref-sync: ${(0, node_path_1.relative)(rootDir, abs)}`);
|
|
571
751
|
}
|
|
572
752
|
for (const dp of deletedPaths) {
|
|
573
|
-
if ((0,
|
|
574
|
-
res.write(JSON.stringify({ skipped: `${(0, node_path_1.relative)(
|
|
753
|
+
if ((0, modelRefs_1.hasRefPath)(content, dp)) {
|
|
754
|
+
res.write(JSON.stringify({ skipped: `${(0, node_path_1.relative)(rootDir, abs).replace(/\\/g, "/")} — references deleted '${dp}' (fix manually)` }) + "\n");
|
|
575
755
|
}
|
|
576
756
|
}
|
|
577
757
|
}
|
|
578
758
|
return okRefFiles;
|
|
579
759
|
}
|
|
580
|
-
/** push
|
|
760
|
+
/** push summary message (last NDJSON line). */
|
|
581
761
|
buildPushSummary(counts, models, newModels, skipped) {
|
|
582
762
|
const parts = [];
|
|
583
763
|
const bodyTotal = models.filter(m => m.bodyChanged).length + newModels.length;
|
|
@@ -594,7 +774,7 @@ class BridgeServer {
|
|
|
594
774
|
if (counts.okRefFiles > 0)
|
|
595
775
|
parts.push(`refs updated in ${counts.okRefFiles} file(s)`);
|
|
596
776
|
if (parts.length === 0)
|
|
597
|
-
parts.push("
|
|
777
|
+
parts.push("push OK — already up to date, no changes to send");
|
|
598
778
|
const readonlyCount = skipped.filter(s => s.reason === "readonly").length;
|
|
599
779
|
const unsupportedCount = skipped.filter(s => s.reason === "unsupported-type").length;
|
|
600
780
|
if (readonlyCount > 0)
|
|
@@ -603,10 +783,10 @@ class BridgeServer {
|
|
|
603
783
|
parts.push(`${unsupportedCount} unsupported type skipped`);
|
|
604
784
|
return parts.join(", ");
|
|
605
785
|
}
|
|
606
|
-
// --- test client sync (
|
|
607
|
-
/**
|
|
608
|
-
* client
|
|
609
|
-
*
|
|
786
|
+
// --- test client sync (reflecting pushed bodies to the test tab) ---
|
|
787
|
+
/** Extracts sync items from the push results, merges them into lastSync and (if connected) sends them to the
|
|
788
|
+
* test client. The primary push payload is NEVER replayed — applyNewModel creates a model on the backend,
|
|
789
|
+
* replaying would double-create; so this lightweight message is sent with the FINAL ids. */
|
|
610
790
|
afterPushSync(models, newModels, result) {
|
|
611
791
|
const items = [];
|
|
612
792
|
for (const r of result.results ?? []) {
|
|
@@ -619,18 +799,18 @@ class BridgeServer {
|
|
|
619
799
|
}
|
|
620
800
|
for (const r of result.newModelResults ?? []) {
|
|
621
801
|
if (!r.ok || !r.id)
|
|
622
|
-
continue; //
|
|
802
|
+
continue; // if create failed on the primary it does NOT go to the test at all (no ghost model)
|
|
623
803
|
const nm = newModels.find(m => m.localKey === r.localKey);
|
|
624
804
|
if (!nm)
|
|
625
805
|
continue;
|
|
626
|
-
items.push({ id: r.id, modelType: nm.modelType, key: r.key, body: nm.body, name: r.name ?? nm.name, relDir: nm.relDir, isNew: !nm.existingId || r.id !== nm.existingId });
|
|
806
|
+
items.push({ id: r.id, modelType: nm.modelType, key: r.key, body: r.body ?? nm.body, name: r.name ?? nm.name, relDir: nm.relDir, isNew: !nm.existingId || r.id !== nm.existingId });
|
|
627
807
|
}
|
|
628
808
|
for (const it of items)
|
|
629
809
|
this.lastSync.set(it.id, it);
|
|
630
810
|
for (const d of result.deletedResults ?? [])
|
|
631
811
|
if (d.ok)
|
|
632
812
|
this.lastSync.delete(d.id);
|
|
633
|
-
//
|
|
813
|
+
// bodyless rename/move/create/delete also require refreshItems in the test tab.
|
|
634
814
|
const treeChanged = (result.results ?? []).some(r => r.ok && (r.renamed === true || r.moved === true))
|
|
635
815
|
|| (result.newModelResults ?? []).some(r => r.ok)
|
|
636
816
|
|| (result.deletedResults ?? []).some(r => r.ok);
|
|
@@ -638,8 +818,8 @@ class BridgeServer {
|
|
|
638
818
|
void this.sendSyncModels("push", items, treeChanged);
|
|
639
819
|
}
|
|
640
820
|
}
|
|
641
|
-
/** syncModels
|
|
642
|
-
* Best-effort:
|
|
821
|
+
/** Sends syncModels to the test client. replay → the entire lastSync (after test hello/F5).
|
|
822
|
+
* Best-effort: errors are only logged; timeout 60s (the handler may refreshItems + open the editor). */
|
|
643
823
|
async sendSyncModels(reason, items, treeChanged = false) {
|
|
644
824
|
if (!this.testClient?.isOpen || this.claimedAppId === undefined)
|
|
645
825
|
return;
|
|
@@ -656,13 +836,18 @@ class BridgeServer {
|
|
|
656
836
|
logger_1.logger.warn(`test sync (${reason}) failed: ${err.message}`);
|
|
657
837
|
}
|
|
658
838
|
}
|
|
659
|
-
// --- web → local
|
|
839
|
+
// --- web → local auto sync (modelChanged) ---
|
|
660
840
|
async handleModelChanged(payload) {
|
|
841
|
+
if (this.rootDir === undefined) {
|
|
842
|
+
logger_1.logger.debug(`modelChanged: no workspace — dropping id=${payload.modelId}`);
|
|
843
|
+
return;
|
|
844
|
+
}
|
|
661
845
|
if (this._pushInProgress) {
|
|
662
846
|
this._deferredModelChanged.push(payload);
|
|
663
847
|
logger_1.logger.debug(`modelChanged: push in progress — deferring for id=${payload.modelId}`);
|
|
664
848
|
return;
|
|
665
849
|
}
|
|
850
|
+
const rootDir = this.workspaceDir;
|
|
666
851
|
const abs = await this.findFileById(payload.modelId);
|
|
667
852
|
if (!abs) {
|
|
668
853
|
logger_1.logger.debug(`modelChanged: no local file for id=${payload.modelId}`);
|
|
@@ -672,55 +857,59 @@ class BridgeServer {
|
|
|
672
857
|
const fm = (0, frontmatter_1.parseFrontmatter)(existing);
|
|
673
858
|
if (!fm)
|
|
674
859
|
return;
|
|
675
|
-
// model="" → rename-only
|
|
860
|
+
// model="" → rename-only message (the body wasn't loaded in the VMM); skip writing the body
|
|
676
861
|
if (payload.model !== "") {
|
|
677
862
|
const ext = (0, node_path_1.extname)(abs).slice(1).toLowerCase();
|
|
678
|
-
const body = ext === "qjson" ? (0,
|
|
679
|
-
//
|
|
863
|
+
const body = ext === "qjson" ? (0, qjsonCompiled_1.stripQJsonCompiledFields)(payload.model) : (0, jsonBody_1.formatJsonBody)(payload.model, ext);
|
|
864
|
+
// If the user saved in Studio, the test replay (F5) must not revert to the stale push body.
|
|
680
865
|
const prev = this.lastSync.get(payload.modelId);
|
|
681
866
|
if (prev)
|
|
682
867
|
this.lastSync.set(payload.modelId, { ...prev, body });
|
|
683
|
-
const state = (0, state_1.readState)(
|
|
684
|
-
// Push echo guard: hash state
|
|
868
|
+
const state = (0, state_1.readState)(rootDir);
|
|
869
|
+
// Push echo guard: if the hash equals state (we just pushed) skip writing the body
|
|
685
870
|
if ((0, state_1.sha)(body) !== state[payload.modelId]) {
|
|
686
871
|
try {
|
|
687
872
|
await (0, promises_1.chmod)(abs, 0o644);
|
|
688
873
|
}
|
|
689
|
-
catch { /*
|
|
874
|
+
catch { /* already writable or the file doesn't exist */ }
|
|
690
875
|
await (0, promises_1.writeFile)(abs, (0, frontmatter_1.writeWithFrontmatter)(fm.meta, body), "utf8");
|
|
691
876
|
state[payload.modelId] = (0, state_1.sha)(body);
|
|
692
|
-
await (0, state_1.writeState)(
|
|
693
|
-
logger_1.logger.info(`auto-pulled: ${(0, node_path_1.relative)(
|
|
877
|
+
await (0, state_1.writeState)(rootDir, state);
|
|
878
|
+
logger_1.logger.info(`auto-pulled: ${(0, node_path_1.relative)(rootDir, abs)}`);
|
|
694
879
|
}
|
|
695
880
|
}
|
|
696
|
-
// Rename
|
|
881
|
+
// Rename and move are done in order; currentAbs tracks the current path.
|
|
697
882
|
let currentAbs = abs;
|
|
698
883
|
if (payload.newName) {
|
|
699
884
|
const newAbs = (0, node_path_1.join)((0, node_path_1.dirname)(currentAbs), payload.newName + (0, node_path_1.extname)(currentAbs));
|
|
700
885
|
if (newAbs !== currentAbs) {
|
|
701
886
|
await (0, promises_1.rename)(currentAbs, newAbs);
|
|
702
|
-
logger_1.logger.info(`auto-renamed: ${(0, node_path_1.relative)(
|
|
887
|
+
logger_1.logger.info(`auto-renamed: ${(0, node_path_1.relative)(rootDir, currentAbs)} → ${(0, node_path_1.relative)(rootDir, newAbs)}`);
|
|
703
888
|
currentAbs = newAbs;
|
|
704
889
|
}
|
|
705
890
|
}
|
|
706
891
|
if (payload.newRelDir !== undefined) {
|
|
707
|
-
const currentRelDir = (0, node_path_1.relative)(
|
|
892
|
+
const currentRelDir = (0, node_path_1.relative)(rootDir, (0, node_path_1.dirname)(currentAbs)).replace(/\\/g, "/");
|
|
708
893
|
const normCurrentRelDir = currentRelDir === "." ? "" : currentRelDir;
|
|
709
894
|
if (payload.newRelDir !== normCurrentRelDir) {
|
|
710
895
|
const targetDir = payload.newRelDir
|
|
711
|
-
? (0, node_path_1.join)(
|
|
712
|
-
:
|
|
896
|
+
? (0, node_path_1.join)(rootDir, ...payload.newRelDir.split("/"))
|
|
897
|
+
: rootDir;
|
|
713
898
|
const newAbs = (0, node_path_1.join)(targetDir, (0, node_path_1.basename)(currentAbs));
|
|
714
899
|
await (0, promises_1.mkdir)(targetDir, { recursive: true });
|
|
715
900
|
await (0, promises_1.rename)(currentAbs, newAbs);
|
|
716
|
-
logger_1.logger.info(`auto-moved: ${(0, node_path_1.relative)(
|
|
901
|
+
logger_1.logger.info(`auto-moved: ${(0, node_path_1.relative)(rootDir, currentAbs)} → ${(0, node_path_1.relative)(rootDir, newAbs)}`);
|
|
717
902
|
}
|
|
718
903
|
}
|
|
719
904
|
}
|
|
720
|
-
//
|
|
721
|
-
// Echo guard:
|
|
722
|
-
//
|
|
905
|
+
// A new model was created in Studio → write a single file locally (same writeModel logic as pull).
|
|
906
|
+
// Echo guard: if a file with the same ID already exists (created by the push or already pulled) skip.
|
|
907
|
+
// Events arriving while a push is in progress go into the deferred queue (frontmatter not written yet).
|
|
723
908
|
async handleModelCreated(payload) {
|
|
909
|
+
if (this.rootDir === undefined) {
|
|
910
|
+
logger_1.logger.debug(`modelCreated: no workspace — dropping id=${payload.model.ID}`);
|
|
911
|
+
return;
|
|
912
|
+
}
|
|
724
913
|
if (this._pushInProgress) {
|
|
725
914
|
this._deferredModelCreated.push(payload);
|
|
726
915
|
logger_1.logger.debug(`modelCreated: push in progress — deferring for id=${payload.model.ID}`);
|
|
@@ -731,33 +920,40 @@ class BridgeServer {
|
|
|
731
920
|
logger_1.logger.debug(`modelCreated: file already exists for id=${payload.model.ID} — skipping (echo)`);
|
|
732
921
|
return;
|
|
733
922
|
}
|
|
734
|
-
const { hash } = await (0, pull_1.writeModel)(this.
|
|
923
|
+
const { hash } = await (0, pull_1.writeModel)(this.workspaceDir, payload.model, payload.readOnly);
|
|
735
924
|
if (hash !== undefined) {
|
|
736
|
-
const state = (0, state_1.readState)(this.
|
|
925
|
+
const state = (0, state_1.readState)(this.workspaceDir);
|
|
737
926
|
state[payload.model.ID] = hash;
|
|
738
|
-
await (0, state_1.writeState)(this.
|
|
927
|
+
await (0, state_1.writeState)(this.workspaceDir, state);
|
|
739
928
|
}
|
|
740
929
|
logger_1.logger.info(`auto-pulled (new): ${payload.model.name}`);
|
|
741
930
|
}
|
|
742
931
|
async handleModelDeleted(payload) {
|
|
743
|
-
this.
|
|
932
|
+
if (this.rootDir === undefined) {
|
|
933
|
+
logger_1.logger.debug(`modelDeleted: no workspace — dropping id=${payload.modelId}`);
|
|
934
|
+
return;
|
|
935
|
+
}
|
|
936
|
+
this.lastSync.delete(payload.modelId); // so replay doesn't resurrect the deleted model
|
|
744
937
|
const abs = await this.findFileById(payload.modelId);
|
|
745
938
|
if (!abs) {
|
|
746
939
|
logger_1.logger.debug(`modelDeleted: no local file for id=${payload.modelId}`);
|
|
747
940
|
return;
|
|
748
941
|
}
|
|
749
|
-
|
|
750
|
-
const state = (0, state_1.readState)(this.rootDir);
|
|
942
|
+
const state = (0, state_1.readState)(this.workspaceDir);
|
|
751
943
|
delete state[payload.modelId];
|
|
752
|
-
await (0, state_1.writeState)(this.
|
|
753
|
-
|
|
944
|
+
await (0, state_1.writeState)(this.workspaceDir, state);
|
|
945
|
+
this.trashQueue.enqueue(abs, this.workspaceDir);
|
|
754
946
|
}
|
|
755
947
|
async handleCheckoutChanged(payload) {
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
//
|
|
948
|
+
if (this.rootDir === undefined) {
|
|
949
|
+
logger_1.logger.debug(`checkoutChanged: no workspace — dropping id=${payload.modelId}`);
|
|
950
|
+
return;
|
|
951
|
+
}
|
|
952
|
+
// Echo caused by the push's own checkout (studio.checkout when a new model is created).
|
|
953
|
+
// The file is already written in the correct mode by the push → log/chmod unnecessary, drop it.
|
|
954
|
+
// - While the push is running: suppress all.
|
|
955
|
+
// - Echo arriving late after the reply: only ids the push checked out, consume-once.
|
|
956
|
+
// Only manual start/stop working in Studio is logged.
|
|
761
957
|
if (this._pushInProgress) {
|
|
762
958
|
logger_1.logger.debug(`checkoutChanged: push in progress — ignoring (echo) for id=${payload.modelId}`);
|
|
763
959
|
return;
|
|
@@ -773,10 +969,10 @@ class BridgeServer {
|
|
|
773
969
|
}
|
|
774
970
|
const mode = payload.checkedOutByMe ? 0o644 : 0o444;
|
|
775
971
|
await (0, promises_1.chmod)(abs, mode);
|
|
776
|
-
logger_1.logger.info(`checkout-changed: ${(0, node_path_1.relative)(this.
|
|
972
|
+
logger_1.logger.info(`checkout-changed: ${(0, node_path_1.relative)(this.workspaceDir, abs)} → ${payload.checkedOutByMe ? "editable (0644)" : "read-only (0444)"}`);
|
|
777
973
|
}
|
|
778
974
|
async findFileById(modelId) {
|
|
779
|
-
for (const abs of await walkDir(this.
|
|
975
|
+
for (const abs of await walkDir(this.workspaceDir)) {
|
|
780
976
|
const content = await (0, promises_1.readFile)(abs, "utf8");
|
|
781
977
|
const fm = (0, frontmatter_1.parseFrontmatter)(content);
|
|
782
978
|
if (fm?.meta.id === modelId)
|
|
@@ -784,14 +980,52 @@ class BridgeServer {
|
|
|
784
980
|
}
|
|
785
981
|
return null;
|
|
786
982
|
}
|
|
787
|
-
// --- keepalive (
|
|
983
|
+
// --- keepalive / liveness (every peer) ---
|
|
984
|
+
/** Idempotent — called on every new connection. Restarting the interval here would mean a
|
|
985
|
+
* peer reconnecting more often than PING_INTERVAL_MS keeps resetting it, so no ping is ever
|
|
986
|
+
* actually sent. */
|
|
788
987
|
startPing() {
|
|
789
|
-
this.
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
988
|
+
if (this.pingTimer)
|
|
989
|
+
return;
|
|
990
|
+
this.lastTickAt = Date.now();
|
|
991
|
+
this.pingTimer = setInterval(() => this.pingTick(), PING_INTERVAL_MS);
|
|
992
|
+
}
|
|
993
|
+
/** Reap the silent, ping the rest.
|
|
994
|
+
*
|
|
995
|
+
* Reaping is what makes orphaned CLI processes go away. armIdleExit() is only re-armed from
|
|
996
|
+
* onPeerClose, and onHello cancels it — so once a client handshakes, ONLY a close event can
|
|
997
|
+
* restart the shutdown timer. A client that dies without sending a FIN (sleep, VPN switch,
|
|
998
|
+
* tab crash) leaves socket.destroyed false forever, onPeerClose never fires, and the process
|
|
999
|
+
* lives on holding its workspace claim. Dropping the peer here supplies that missing close:
|
|
1000
|
+
* destroy → onPeerClose → armIdleExit → the process exits on its own.
|
|
1001
|
+
*
|
|
1002
|
+
* Iterates a COPY: destroy() notifies synchronously, which mutates this.peers mid-loop. */
|
|
1003
|
+
pingTick() {
|
|
1004
|
+
// A sweep that lands far past its schedule means the whole HOST was suspended (laptop lid),
|
|
1005
|
+
// not that peers went quiet: no ping could be sent during the gap, yet Date.now() jumped by
|
|
1006
|
+
// its full length. Reaping on that first sweep after waking would drop perfectly healthy
|
|
1007
|
+
// clients, so forgive the gap and re-measure everyone from now.
|
|
1008
|
+
const sinceLastTick = Date.now() - this.lastTickAt;
|
|
1009
|
+
this.lastTickAt = Date.now();
|
|
1010
|
+
if (sinceLastTick > SUSPEND_GAP_MS) {
|
|
1011
|
+
logger_1.logger.info(`ping sweep ${Math.round(sinceLastTick / 1000)}s late — host was suspended, re-measuring peers`);
|
|
1012
|
+
for (const peer of this.peers)
|
|
1013
|
+
peer.markAlive();
|
|
1014
|
+
}
|
|
1015
|
+
for (const peer of [...this.peers]) {
|
|
1016
|
+
if (!peer.isOpen) {
|
|
1017
|
+
this.peers.delete(peer); // close handler should have done this; belt and braces
|
|
1018
|
+
continue;
|
|
1019
|
+
}
|
|
1020
|
+
if (peer.msSinceLastMessage >= PEER_SILENCE_LIMIT_MS) {
|
|
1021
|
+
logger_1.logger.warn(`peer silent for ${Math.round(peer.msSinceLastMessage / 1000)}s — dropping`);
|
|
1022
|
+
peer.destroy(1001, "no response to ping");
|
|
1023
|
+
continue;
|
|
1024
|
+
}
|
|
1025
|
+
peer.send("ping", {});
|
|
1026
|
+
}
|
|
1027
|
+
if (this.peers.size === 0)
|
|
1028
|
+
this.stopPing();
|
|
795
1029
|
}
|
|
796
1030
|
stopPing() {
|
|
797
1031
|
if (this.pingTimer) {
|
|
@@ -799,8 +1033,57 @@ class BridgeServer {
|
|
|
799
1033
|
this.pingTimer = undefined;
|
|
800
1034
|
}
|
|
801
1035
|
}
|
|
1036
|
+
// If the time spent without a client (browser/tab closed or never connected) exceeds IDLE_EXIT_MS
|
|
1037
|
+
// shut the process down → so claimless ports don't pile up in the background. Canceled when a client connects.
|
|
1038
|
+
armIdleExit() {
|
|
1039
|
+
this.cancelIdleExit();
|
|
1040
|
+
this.idleTimer = setTimeout(() => {
|
|
1041
|
+
logger_1.logger.info(`no client for ${IDLE_EXIT_MS / 1000}s — shutting down`);
|
|
1042
|
+
this.close();
|
|
1043
|
+
process.exit(0);
|
|
1044
|
+
}, IDLE_EXIT_MS);
|
|
1045
|
+
}
|
|
1046
|
+
cancelIdleExit() {
|
|
1047
|
+
if (this.idleTimer) {
|
|
1048
|
+
clearTimeout(this.idleTimer);
|
|
1049
|
+
this.idleTimer = undefined;
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
802
1052
|
}
|
|
803
1053
|
exports.BridgeServer = BridgeServer;
|
|
1054
|
+
// Is there another live studio server in the folder? Checks whether the pid in server.json is alive.
|
|
1055
|
+
// No pid (disconnected — only the appId binding remains) or a dead pid isn't treated as a lock — that
|
|
1056
|
+
// folder can be re-claimed.
|
|
1057
|
+
function isWorkspaceLocked(dir) {
|
|
1058
|
+
let info;
|
|
1059
|
+
try {
|
|
1060
|
+
info = (0, serverInfo_1.readServerInfo)(dir);
|
|
1061
|
+
}
|
|
1062
|
+
catch {
|
|
1063
|
+
return false;
|
|
1064
|
+
}
|
|
1065
|
+
const pid = info?.pid;
|
|
1066
|
+
if (pid === undefined)
|
|
1067
|
+
return false;
|
|
1068
|
+
try {
|
|
1069
|
+
process.kill(pid, 0);
|
|
1070
|
+
return true;
|
|
1071
|
+
}
|
|
1072
|
+
catch (err) {
|
|
1073
|
+
return err.code === "EPERM";
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
// Does the folder's persistent server.json appId differ from the connecting app? → it belongs to another
|
|
1077
|
+
// app (its files must not be mixed with this app's). No binding (empty folder) or the same app → false.
|
|
1078
|
+
function belongsToAnotherApp(dir, appId) {
|
|
1079
|
+
try {
|
|
1080
|
+
const info = (0, serverInfo_1.readServerInfo)(dir);
|
|
1081
|
+
return info?.appId !== undefined && info.appId !== appId;
|
|
1082
|
+
}
|
|
1083
|
+
catch {
|
|
1084
|
+
return false;
|
|
1085
|
+
}
|
|
1086
|
+
}
|
|
804
1087
|
async function walkDir(dir) {
|
|
805
1088
|
const out = [];
|
|
806
1089
|
for (const entry of await (0, promises_1.readdir)(dir, { withFileTypes: true })) {
|