@kedem/okdb 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +57 -0
- package/README.md +344 -0
- package/banner.jpg +0 -0
- package/bin/okdb.js +2 -0
- package/docs/OKDB-ARCHITECTURE.md +1036 -0
- package/docs/auth-and-sync.md +558 -0
- package/docs/auth-permissions.md +143 -0
- package/docs/change-log.md +169 -0
- package/docs/data-model.md +174 -0
- package/docs/embeddings.md +338 -0
- package/docs/files.md +131 -0
- package/docs/fts.md +139 -0
- package/docs/functions.md +514 -0
- package/docs/getting-started.md +233 -0
- package/docs/http-api.md +705 -0
- package/docs/index.md +115 -0
- package/docs/indexes.md +207 -0
- package/docs/logging.md +116 -0
- package/docs/manifest.json +38 -0
- package/docs/migration.md +154 -0
- package/docs/pipelines.md +598 -0
- package/docs/plugins.md +144 -0
- package/docs/querying.md +204 -0
- package/docs/queue.md +637 -0
- package/docs/sync.md +156 -0
- package/docs/transactions.md +140 -0
- package/docs/ttl.md +375 -0
- package/okdb.js +1 -0
- package/package.json +26 -0
- package/public/admin-app.js +1 -0
- package/public/android-chrome-192x192.png +0 -0
- package/public/android-chrome-512x512.png +0 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/components/admin-route-host.ok.js +1 -0
- package/public/components/env-picker.ok.js +1 -0
- package/public/components/field-path-input.ok.js +1 -0
- package/public/components/field.html +6 -0
- package/public/components/geo-map.ok.js +1 -0
- package/public/components/ok-cron-input.ok.js +1 -0
- package/public/components/ok-dropzone.ok.js +1 -0
- package/public/components/ok-js-input.ok.js +1 -0
- package/public/components/ok-json-input.ok.js +1 -0
- package/public/components/ok-text-monaco-input.ok.js +1 -0
- package/public/components/theme-toggle.ok.js +1 -0
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/images/logo.png +0 -0
- package/public/images/logo.svg +333 -0
- package/public/index.html +6 -0
- package/public/layouts/_default.ok.html +1 -0
- package/public/layouts/okdb-cube.ok.html +1 -0
- package/public/login-app.js +1 -0
- package/public/login.html +1 -0
- package/public/modules/ok.js +1 -0
- package/public/sections/api/index.ok.html +1 -0
- package/public/sections/api/parts/api-endpoint.ok.js +1 -0
- package/public/sections/auth/index.ok.html +1 -0
- package/public/sections/auth/modals/create-token-modal.ok.js +1 -0
- package/public/sections/auth/modals/edit-token-modal.ok.js +1 -0
- package/public/sections/auth/modals/perm-info-popover.ok.js +1 -0
- package/public/sections/auth/parts/token-detail.ok.js +1 -0
- package/public/sections/auth/parts/token-list.ok.js +1 -0
- package/public/sections/db/index.ok.html +1 -0
- package/public/sections/db/modals/add-item-modal.ok.js +1 -0
- package/public/sections/db/modals/create-env-modal.ok.js +1 -0
- package/public/sections/db/modals/create-fts-modal.ok.js +1 -0
- package/public/sections/db/modals/create-index-modal.ok.js +1 -0
- package/public/sections/db/modals/create-pipeline-modal.ok.js +1 -0
- package/public/sections/db/modals/demo-env-modal.ok.js +1 -0
- package/public/sections/db/modals/remove-env-modal.ok.js +1 -0
- package/public/sections/db/modals/schema-edit-modal.ok.js +1 -0
- package/public/sections/db/parts/db-overview.ok.js +1 -0
- package/public/sections/db/parts/db-pipelines-panel.ok.js +1 -0
- package/public/sections/db/parts/edit-row.ok.js +1 -0
- package/public/sections/db/parts/tm-timeline.ok.js +1 -0
- package/public/sections/db/parts/type-changelog.ok.js +1 -0
- package/public/sections/db/parts/type-list.ok.js +1 -0
- package/public/sections/db/parts/type-pipelines-tab.ok.js +1 -0
- package/public/sections/db/parts/type-schema-tab.ok.js +1 -0
- package/public/sections/db/parts/type-viewer.ok.js +1 -0
- package/public/sections/db/parts/type-violations-tab.ok.js +1 -0
- package/public/sections/docs/index.ok.html +1 -0
- package/public/sections/embeddings/index.ok.html +1 -0
- package/public/sections/embeddings/modals/register-model-modal.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-create-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-embedder-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-engine-declaration-editor.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-engine-list.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-indexer-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-lifecycle-bar.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-model-catalog.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-overview.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-search-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-worker-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/embeddings-engine-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/engines-overview.ok.js +1 -0
- package/public/sections/embeddings/parts/pipeline-create-panel.ok.js +1 -0
- package/public/sections/engines/engine-panel-shared-style.js +1 -0
- package/public/sections/engines/engine-ui-utils.js +1 -0
- package/public/sections/engines/index.ok.html +1 -0
- package/public/sections/engines/modals/engine-modal.ok.js +1 -0
- package/public/sections/engines/parts/engine-declaration-editor.ok.js +1 -0
- package/public/sections/engines/parts/engine-lifecycle-actions.ok.js +1 -0
- package/public/sections/engines/parts/engine-panel-shell.ok.js +1 -0
- package/public/sections/engines/parts/engine-resource-card.ok.js +1 -0
- package/public/sections/engines/parts/engine-row-item.ok.js +1 -0
- package/public/sections/engines/parts/generic-engine-panel.ok.js +1 -0
- package/public/sections/files/index.ok.html +1 -0
- package/public/sections/files/parts/files-blob-status.ok.js +1 -0
- package/public/sections/files/parts/files-collection-list.ok.js +1 -0
- package/public/sections/files/parts/files-collection-panel.ok.js +1 -0
- package/public/sections/files/parts/files-file-list.ok.js +1 -0
- package/public/sections/files/parts/files-overview.ok.js +1 -0
- package/public/sections/files/parts/files-path-browser.ok.js +1 -0
- package/public/sections/files/parts/files-upload-panel.ok.js +1 -0
- package/public/sections/functions/index.ok.html +1 -0
- package/public/sections/functions/modals/function-modal.ok.js +1 -0
- package/public/sections/functions/parts/function-detail.ok.js +1 -0
- package/public/sections/functions/parts/function-logs.ok.js +1 -0
- package/public/sections/functions/parts/function-runner.ok.js +1 -0
- package/public/sections/functions/parts/functions-list.ok.js +1 -0
- package/public/sections/license/index.ok.html +1 -0
- package/public/sections/license/parts/license-panel.ok.js +1 -0
- package/public/sections/processors/index.ok.html +1 -0
- package/public/sections/queue/index.ok.html +1 -0
- package/public/sections/queue/modals/create-bucket-modal.ok.js +1 -0
- package/public/sections/queue/modals/edit-bucket-modal.ok.js +1 -0
- package/public/sections/queue/modals/edit-job-modal.ok.js +1 -0
- package/public/sections/queue/modals/enqueue-job-modal.ok.js +1 -0
- package/public/sections/queue/modals/job-type-modal.ok.js +1 -0
- package/public/sections/queue/parts/ok-job-form.ok.js +1 -0
- package/public/sections/queue/parts/queue-buckets.ok.js +1 -0
- package/public/sections/queue/parts/queue-job-types.ok.js +1 -0
- package/public/sections/queue/parts/queue-jobs.ok.js +1 -0
- package/public/sections/queue/parts/queue-types.ok.js +1 -0
- package/public/sections/queue/parts/queue-workers.ok.js +1 -0
- package/public/sections/sync/index.ok.html +5 -0
- package/public/sections/sync/parts/sync-node-detail.ok.js +1 -0
- package/public/sections/sync/parts/sync-retention.ok.js +1 -0
- package/public/sections/sync/parts/sync-topology.ok.js +1 -0
- package/public/sections/system/index.ok.html +1 -0
- package/public/sections/system/modals/data-ops-modal.ok.js +1 -0
- package/public/sections/system/parts/system-api-panel.ok.js +1 -0
- package/public/sections/system/parts/system-auth-panel.ok.js +1 -0
- package/public/sections/system/parts/system-log-history.ok.js +1 -0
- package/public/sections/system/parts/system-log.ok.js +1 -0
- package/public/sections/system/parts/system-status.ok.js +1 -0
- package/public/sections/system/parts/system-sync-panel.ok.js +1 -0
- package/public/sections/views/index.ok.html +1 -0
- package/public/sections/views/modals/create-view-modal.ok.js +1 -0
- package/public/sections/views/parts/view-detail.ok.js +1 -0
- package/public/sections/views/parts/views-list.ok.js +1 -0
- package/public/sections/views/parts/views-overview.ok.js +1 -0
- package/public/setup-app.js +1 -0
- package/public/setup.html +1 -0
- package/public/site.webmanifest +1 -0
- package/public/stores/auth-store.js +1 -0
- package/public/stores/events-store.js +1 -0
- package/public/stores/functions-store.js +1 -0
- package/public/stores/okdb-store.js +1 -0
- package/public/stores/theme-store.js +1 -0
- package/public/styles.css +1 -0
- package/public/test-cron-input.html +10 -0
- package/public/test-json-input.html +101 -0
- package/public/util/permissions.js +1 -0
- package/public/util/sift-schema.js +1 -0
- package/public/vendor/okjs/ok.esm.min.js +2 -0
- package/public/vendor/okjs/toolkit/behavior/async.ok.js +1 -0
- package/public/vendor/okjs/toolkit/components/ok-chart.ok.js +1 -0
- package/public/vendor/okjs/toolkit/components/ok-doc-viewer.ok.js +1 -0
- package/public/vendor/okjs/toolkit/components/ok-marked.ok.js +1 -0
- package/public/vendor/okjs/toolkit/components/ok-monaco.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/ok-layer-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/ok-layer.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/ok-overlay.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/ok-sandbox.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/transition.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/virtualized.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-console-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-console.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-inspector-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-inspector.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-js-tree.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-timeline-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-timeline.ok.js +1 -0
- package/public/vendor/okjs/toolkit/docs/doc-viewer.ok.js +1 -0
- package/public/vendor/okjs/toolkit/editor/ok-live-component.ok.js +1 -0
- package/public/vendor/okjs/toolkit/editor/ok-live-example.ok.js +1 -0
- package/public/vendor/okjs/toolkit/editor/ok-live-shell.ok.js +1 -0
- package/public/vendor/okjs/toolkit/elements/ok-dropdown.ok.js +1 -0
- package/public/vendor/okjs/toolkit/elements/ok-icon.ok.js +1 -0
- package/public/vendor/okjs/toolkit/elements/ok-select.ok.js +1 -0
- package/public/vendor/okjs/toolkit/elements/ok-table.ok.js +1 -0
- package/public/vendor/okjs/toolkit/errors/ok-crash-boundary.ok.js +1 -0
- package/public/vendor/okjs/toolkit/errors/ok-crash-info.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/i18n-editor-examples.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/i18n-editor.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/i18n-key-editor-tips.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/i18n-key-editor.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/i18n-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/ok-i18n.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-contextmenu.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-dismiss-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-draggable.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-flyover-panel.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-flyover.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-highlight-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-highlight.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-hotkeys-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-picker-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-popout-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-popout.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-portal-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-submenu.ok.js +1 -0
- package/public/vendor/okjs/toolkit/layout/ok-resizer.ok.js +1 -0
- package/public/vendor/okjs/toolkit/manifest.js +1 -0
- package/public/vendor/okjs/toolkit/modals/ok-modal-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/modals/ok-modal.ok.js +1 -0
- package/public/vendor/okjs/toolkit/modals/ok-toast-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/modals/ok-window.ok.js +1 -0
- package/public/vendor/okjs/toolkit/navigation/hash-router.ok.js +1 -0
- package/public/vendor/okjs/toolkit/navigation/history-router.ok.js +1 -0
- package/public/vendor/okjs/toolkit/navigation/router.ok.js +1 -0
- package/public/vendor/okjs/toolkit/sync/reactive-sync-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/sync/reactive-sync.js +1 -0
- package/public/vendor/okjs/toolkit/theming/blocks/ok-design-button.css.js +1 -0
- package/public/vendor/okjs/toolkit/theming/blocks/ok-design-input.css.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-design-style.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-design-vars.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-design.ok.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-input.ok.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-style.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-utils.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-variable.ok.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-vm.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor.ok.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme.ok.js +1 -0
- package/public/view-models/type-query-vm.js +1 -0
- package/types/environment.d.ts +130 -0
- package/types/errors.d.ts +98 -0
- package/types/features/admin.d.ts +4 -0
- package/types/features/api.d.ts +18 -0
- package/types/features/auth.d.ts +31 -0
- package/types/features/embeddings.d.ts +39 -0
- package/types/features/engines.d.ts +23 -0
- package/types/features/files.d.ts +29 -0
- package/types/features/fts.d.ts +25 -0
- package/types/features/functions.d.ts +23 -0
- package/types/features/mcp.d.ts +17 -0
- package/types/features/pipelines.d.ts +19 -0
- package/types/features/queue.d.ts +189 -0
- package/types/features/sync.d.ts +34 -0
- package/types/features/time-machine.d.ts +32 -0
- package/types/features/views.d.ts +16 -0
- package/types/index.d.ts +153 -0
- package/types/options.d.ts +202 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x5ae29b=_0x4e0f;function _0x4e0f(_0x592cb4,_0x436bcb){_0x592cb4=_0x592cb4-0x87;const _0x3e8bcf=_0x3e8b();let _0x4e0fcd=_0x3e8bcf[_0x592cb4];return _0x4e0fcd;}(function(_0x7c637b,_0x23f177){const _0x1c1f8c=_0x4e0f,_0x2d04e4=_0x7c637b();while(!![]){try{const _0xc3fe83=parseInt(_0x1c1f8c(0x124))/0x1*(parseInt(_0x1c1f8c(0x126))/0x2)+parseInt(_0x1c1f8c(0xee))/0x3+-parseInt(_0x1c1f8c(0x99))/0x4*(parseInt(_0x1c1f8c(0xe0))/0x5)+-parseInt(_0x1c1f8c(0x101))/0x6*(-parseInt(_0x1c1f8c(0xd1))/0x7)+parseInt(_0x1c1f8c(0xe9))/0x8+-parseInt(_0x1c1f8c(0x128))/0x9*(parseInt(_0x1c1f8c(0x90))/0xa)+parseInt(_0x1c1f8c(0xc1))/0xb*(-parseInt(_0x1c1f8c(0x12a))/0xc);if(_0xc3fe83===_0x23f177)break;else _0x2d04e4['push'](_0x2d04e4['shift']());}catch(_0xfb31c4){_0x2d04e4['push'](_0x2d04e4['shift']());}}}(_0x3e8b,0x2d8e1));import _0x29115d from'../../../components/ok-js-input.ok.js';import _0x15c883 from'./embed-create-panel.ok.js';const t=[{'symbol':_0x5ae29b(0x111),'pattern':/(^|[^\w$.])require\s*\(/},{'symbol':_0x5ae29b(0x116),'pattern':/(^|[^\w$.])import\b/},{'symbol':_0x5ae29b(0x93),'pattern':/(^|[^\w$.])console\b/},{'symbol':_0x5ae29b(0xdc),'pattern':/(^|[^\w$.])module\b/},{'symbol':'exports','pattern':/(^|[^\w$.])exports\b/},{'symbol':_0x5ae29b(0x11c),'pattern':/(^|[^\w$.])process\b/},{'symbol':_0x5ae29b(0xef),'pattern':/child_process/},{'symbol':_0x5ae29b(0xa1),'pattern':/worker_threads/}];function i(_0x4dc3ca){const _0x56c296=_0x5ae29b,_0x5a3903='string'==typeof _0x4dc3ca?_0x4dc3ca[_0x56c296(0xa9)](/\r\n/g,'\x0a')[_0x56c296(0xf2)]():'';if(!_0x5a3903)return{'ok':!0x1,'message':_0x56c296(0x10f)};if(new TextEncoder()['encode'](_0x5a3903)[_0x56c296(0xfd)]>0x10000)return{'ok':!0x1,'message':_0x56c296(0xaf)};if(!/^(async\s+)?\(\s*[A-Za-z_$][\w$]*\s*\)\s*=>/['test'](_0x5a3903))return{'ok':!0x1,'message':_0x56c296(0x10a)};for(const {symbol:_0x33eb07,pattern:_0x1f906c}of t)if(_0x1f906c[_0x56c296(0xb1)](_0x5a3903))return{'ok':!0x1,'message':_0x56c296(0xfa)+_0x33eb07+'\x22'};try{new Function(_0x56c296(0x98)+_0x5a3903+');')();}catch(_0x255162){return{'ok':!0x1,'message':_0x255162?.[_0x56c296(0xff)]||_0x56c296(0x10c)};}return{'ok':!0x0,'normalizedSource':_0x5a3903};}function a(_0x18c512){const _0x404b3b=_0x5ae29b;return!0x0===_0x18c512||''===_0x18c512||0x1===_0x18c512||'1'===_0x18c512||_0x404b3b(0xfb)===_0x18c512;}export default{'tag':_0x5ae29b(0x91),'attr':{'locktype':{},'lockenv':{},'initialkind':{},'locktypestrict':{},'hidequeueworker':{}},'dependencies':[_0x29115d,_0x15c883],'context':_0xdfbf01=>({'step':0x1,'busy':!0x1,'error':null,'success':null,'engineKind':'','proc_sourceType':'','mat_sourceType':'','mat_targetType':'','qw_jobType':'','qw_jobTypeMode':_0x5ae29b(0xf8),'handlerMode':_0x5ae29b(0xf8),'handlerName':'','newFnName':'','newFnSource':'','newFnValidation':{'ok':!0x1,'message':'Source\x20is\x20required'},'newFnDryRunning':!0x1,'newFnDryResult':null,'newFnDryError':null,'newFnDryPayload':null,'showAdvanced':!0x1,'proc_mode':_0x5ae29b(0x12b),'proc_bootstrap':'snapshot','proc_batchSize':0x100,'proc_originMode':'all','mat_bootstrap':_0x5ae29b(0x113),'mat_batchSize':0x80,'mat_originMode':_0x5ae29b(0xd2),'mat_clearTargetOnRebuild':!0x0,'qw_concurrency':0x1,'handler_recordRuns':_0x5ae29b(0x129),'types':[],'functions':[],'queueJobTypes':[],get 'lockedType'(){const _0x171cda=_0x5ae29b;return _0xdfbf01[_0x171cda(0x105)]['locktype']||'';},get 'lockedEnv'(){const _0x14b2ba=_0x5ae29b;return _0xdfbf01[_0x14b2ba(0x105)]['lockenv']||'';},get 'initialKind'(){const _0x1cbf09=_0x5ae29b,_0x498d4f=_0xdfbf01[_0x1cbf09(0x105)][_0x1cbf09(0xe7)]||'';return this[_0x1cbf09(0xbf)][_0x1cbf09(0x11d)](_0x498d4f)?_0x498d4f:'';},get 'lockTypeStrict'(){const _0x2648ad=_0x5ae29b;return a(_0xdfbf01['$attr'][_0x2648ad(0xe2)]);},get 'hideQueueWorker'(){const _0xf8c0c7=_0x5ae29b;return a(_0xdfbf01[_0xf8c0c7(0x105)][_0xf8c0c7(0xdf)]);},get 'availableKinds'(){const _0x5286bb=_0x5ae29b;return[_0x5286bb(0x104),_0x5286bb(0xb6),_0x5286bb(0xab),_0x5286bb(0xb4)][_0x5286bb(0xd0)](_0x17e5f2=>!(this[_0x5286bb(0x103)]&&'queue-worker'===_0x17e5f2));},get 'typeSelectionLocked'(){const _0x457599=_0x5ae29b;return!!this[_0x457599(0x132)]&&this[_0x457599(0xd7)];},get 'kindLocked'(){const _0x837e6=_0x5ae29b;return!!this[_0x837e6(0x89)];},get 'selectedEnv'(){const _0x106e02=_0x5ae29b;return this['lockedEnv']||_0xdfbf01[_0x106e02(0xc8)]['stores'][_0x106e02(0xc4)]['selectedEnv']||'default';},async 'loadMeta'(){const _0x2fc6db=_0x5ae29b,_0x3ec144=this[_0x2fc6db(0x12c)];try{const [_0x38e5f4,_0x329017,_0x371682]=await Promise['all']([fetch(__ENV__[_0x2fc6db(0x130)]+'/env/'+encodeURIComponent(_0x3ec144)+_0x2fc6db(0xac)),fetch(__ENV__[_0x2fc6db(0x130)]+_0x2fc6db(0x10e)+encodeURIComponent(_0x3ec144)+_0x2fc6db(0x92)),fetch(__ENV__['API']+_0x2fc6db(0x10e)+encodeURIComponent(_0x3ec144)+'/queue/stats')[_0x2fc6db(0x8d)](()=>null)]),_0x5d1bb8=await _0x38e5f4[_0x2fc6db(0xfe)]()[_0x2fc6db(0x8d)](()=>({})),_0x44799d=await _0x329017['json']()[_0x2fc6db(0x8d)](()=>({})),_0x2edd3f=_0x5d1bb8[_0x2fc6db(0x88)]??_0x5d1bb8[_0x2fc6db(0xba)]??[];this['types']=(Array[_0x2fc6db(0xe4)](_0x2edd3f)?_0x2edd3f['map'](_0x23dd2d=>_0x23dd2d[_0x2fc6db(0xa5)]??_0x23dd2d[_0x2fc6db(0xd9)]??_0x23dd2d):Object[_0x2fc6db(0xb3)](_0x2edd3f))['filter'](_0x3f0e43=>_0x2fc6db(0x96)==typeof _0x3f0e43&&!_0x3f0e43['startsWith']('~'))['sort']();const _0x43cce1=_0x44799d[_0x2fc6db(0x88)]??_0x44799d[_0x2fc6db(0xba)]??[];if(this[_0x2fc6db(0x11a)]=Array['isArray'](_0x43cce1)?_0x43cce1[_0x2fc6db(0xb2)](_0x3ee43d=>_0x3ee43d['key']??_0x3ee43d[_0x2fc6db(0xd9)]??_0x3ee43d)[_0x2fc6db(0xd0)](Boolean)[_0x2fc6db(0xa6)]():[],_0x371682&&_0x371682['ok']){const _0x1d767a=await _0x371682[_0x2fc6db(0xfe)]()[_0x2fc6db(0x8d)](()=>({})),_0x454cf1=_0x1d767a?.[_0x2fc6db(0xba)]??_0x1d767a?.[_0x2fc6db(0x88)]??null,_0x591231=_0x454cf1?.['byType']??{};this[_0x2fc6db(0xb9)]=Object[_0x2fc6db(0xb3)](_0x591231)[_0x2fc6db(0xa6)]();}else this['queueJobTypes']=[];}catch{this['types']=[],this[_0x2fc6db(0x11a)]=[],this[_0x2fc6db(0xb9)]=[];}},get 'effectiveJobType'(){const _0x3f1b04=_0x5ae29b;return _0x3f1b04(0xc3)===this['qw_jobTypeMode']?this[_0x3f1b04(0x87)][_0x3f1b04(0xf2)]():this[_0x3f1b04(0x87)];},get 'effectiveHandlerName'(){const _0x224683=_0x5ae29b;return'new'===this[_0x224683(0x11b)]?this[_0x224683(0x112)][_0x224683(0xf2)]():this[_0x224683(0xad)];},get 'autoName'(){const _0x2d8524=_0x5ae29b;return'processor'===this[_0x2d8524(0xce)]&&this[_0x2d8524(0xb8)]&&this['effectiveHandlerName']?this[_0x2d8524(0xb8)]+'-'+this['effectiveHandlerName']:_0x2d8524(0xb6)===this['engineKind']&&this[_0x2d8524(0x118)]&&this['mat_targetType']&&this[_0x2d8524(0xc0)]?this[_0x2d8524(0x118)]+_0x2d8524(0xa4)+this[_0x2d8524(0xf3)]+'-'+this[_0x2d8524(0xc0)]:_0x2d8524(0xab)===this[_0x2d8524(0xce)]&&this[_0x2d8524(0x114)]&&this[_0x2d8524(0xc0)]?this[_0x2d8524(0x114)]+'-'+this[_0x2d8524(0xc0)]:'';},get 'pipelineName'(){return this['autoName'];},get 'engineName'(){const _0xa630e8=_0x5ae29b;return this[_0xa630e8(0x9f)]?this[_0xa630e8(0x9f)]+':'+this['engineKind']:'';},get 'step2Valid'(){const _0x2de414=_0x5ae29b;return _0x2de414(0xb4)===this['engineKind']||!(_0x2de414(0x104)===this[_0x2de414(0xce)]&&!this[_0x2de414(0xb8)])&&!!(_0x2de414(0xb6)!==this[_0x2de414(0xce)]||this[_0x2de414(0x118)]&&this['mat_targetType'])&&!(_0x2de414(0xab)===this[_0x2de414(0xce)]&&!this['effectiveJobType'])&&(_0x2de414(0xf8)===this[_0x2de414(0x11b)]?!!this[_0x2de414(0xad)]:!!this[_0x2de414(0x112)][_0x2de414(0xf2)]()&&this[_0x2de414(0xf7)]['ok']);},'resetWizard'(){const _0x8ceb3d=_0x5ae29b;this[_0x8ceb3d(0x8f)]=this[_0x8ceb3d(0xbb)]?0x2:0x1,this[_0x8ceb3d(0xce)]=this[_0x8ceb3d(0xbb)]?this[_0x8ceb3d(0x89)]:'',this['proc_sourceType']=this[_0x8ceb3d(0x132)]||'',this['mat_sourceType']=this[_0x8ceb3d(0x132)]||'',this[_0x8ceb3d(0xf3)]='',this['qw_jobType']='',this[_0x8ceb3d(0xcc)]=_0x8ceb3d(0xf8),this[_0x8ceb3d(0x11b)]=_0x8ceb3d(0xf8),this[_0x8ceb3d(0xad)]='',this[_0x8ceb3d(0x112)]='',this[_0x8ceb3d(0xd6)]='',this[_0x8ceb3d(0xf7)]={'ok':!0x1,'message':_0x8ceb3d(0x10f)},this[_0x8ceb3d(0x115)]=null,this['newFnDryError']=null,this[_0x8ceb3d(0x94)]=!0x1,this[_0x8ceb3d(0xbc)]='errors',this[_0x8ceb3d(0x8e)]=_0x8ceb3d(0x12b),this[_0x8ceb3d(0xdb)]='snapshot',this[_0x8ceb3d(0x122)]=0x100,this[_0x8ceb3d(0xd5)]=_0x8ceb3d(0xd2),this[_0x8ceb3d(0xf0)]='snapshot',this[_0x8ceb3d(0xe3)]=0x80,this[_0x8ceb3d(0x12f)]='all',this[_0x8ceb3d(0xec)]=!0x0,this['qw_concurrency']=0x1;},'applyScopeDefaults'(){const _0x4eefc2=_0x5ae29b;this[_0x4eefc2(0xa3)]?(this[_0x4eefc2(0xb8)]=this[_0x4eefc2(0x132)],this[_0x4eefc2(0x118)]=this[_0x4eefc2(0x132)]):this[_0x4eefc2(0x132)]&&!this['proc_sourceType']&&(this['proc_sourceType']=this['lockedType']),this['typeSelectionLocked']||!this['lockedType']||this[_0x4eefc2(0x118)]||(this[_0x4eefc2(0x118)]=this['lockedType']),this[_0x4eefc2(0xbb)]&&this['engineKind']!==this[_0x4eefc2(0x89)]&&this[_0x4eefc2(0xa0)](this[_0x4eefc2(0x89)]);},get 'dedupedDryLogs'(){const _0xd2f6be=_0x5ae29b,_0x5d0bc0=this[_0xd2f6be(0x115)]?.[_0xd2f6be(0xf5)];if(!Array[_0xd2f6be(0xe4)](_0x5d0bc0)||!_0x5d0bc0['length'])return[];const _0xbfa56=[],_0x514d96=new Map();for(const _0x5bfcbf of _0x5d0bc0){const _0x5d478b=(_0x5bfcbf[_0xd2f6be(0x12e)]??'')+'::'+(_0x5bfcbf[_0xd2f6be(0x97)]??_0x5bfcbf[_0xd2f6be(0xff)]??JSON['stringify'](_0x5bfcbf));if(_0x514d96['has'](_0x5d478b))_0x514d96['get'](_0x5d478b)['count']++;else{const _0x7021db={..._0x5bfcbf,'count':0x1,'_key':_0x5d478b};_0x514d96[_0xd2f6be(0xc9)](_0x5d478b,_0x7021db),_0xbfa56[_0xd2f6be(0xa7)](_0x7021db);}}return _0xbfa56;},get 'dryRunDuration'(){const _0x313b88=_0x5ae29b,_0x1cc647=this[_0x313b88(0x115)];return _0x1cc647?_0x1cc647[_0x313b88(0x100)]?.[_0x313b88(0xaa)]??null:null;},get 'dryRunStatus'(){const _0x55e04a=_0x5ae29b,_0x2c9db1=this[_0x55e04a(0x115)];return _0x2c9db1?_0x55e04a(0xca)===_0x2c9db1[_0x55e04a(0xd8)]||_0x2c9db1[_0x55e04a(0xca)]?_0x55e04a(0xca):_0x2c9db1[_0x55e04a(0xd8)]||'success':null;},'pickType'(_0x35a725){const _0x1e94c3=_0x5ae29b;this[_0x1e94c3(0xbf)][_0x1e94c3(0x11d)](_0x35a725)&&(this['engineKind']=_0x35a725,this[_0x1e94c3(0x8f)]=0x2,this[_0x1e94c3(0xa3)]&&(this[_0x1e94c3(0xb8)]=this[_0x1e94c3(0x132)],this[_0x1e94c3(0x118)]=this[_0x1e94c3(0x132)]),'embedding'!==_0x35a725&&(this[_0x1e94c3(0xd6)]||(this[_0x1e94c3(0xd6)]=_0x1e94c3(0x104)===_0x35a725?_0x1e94c3(0xae):'materializer'===_0x35a725?_0x1e94c3(0xc2):'async\x20(ctx)\x20=>\x20{\x0a\x20\x20//\x20ctx.payload\x20—\x20the\x20raw\x20job\x20payload\x20(whatever\x20was\x20enqueued)\x0a\x20\x20//\x20ctx.job\x20\x20\x20\x20\x20—\x20queue\x20job\x20context\x20(only\x20for\x20queue-worker\x20pipelines)\x0a\x20\x20//\x20\x20\x20ctx.job.id,\x20ctx.job.type,\x20ctx.job.tries,\x20ctx.job.tags,\x20...\x0a\x20\x20//\x20\x20\x20ctx.job.heartbeat()\x20\x20\x20\x20\x20\x20\x20\x20—\x20keep\x20the\x20job\x20alive\x0a\x20\x20//\x20\x20\x20ctx.job.markProgress(msg)\x20\x20—\x20report\x20progress\x0a\x20\x20//\x20ctx.env\x20\x20\x20\x20\x20—\x20env\x20facade:\x20put,\x20get,\x20query,\x20txn,\x20...\x0a\x20\x20//\x20ctx.log\x20\x20\x20\x20\x20—\x20structured\x20logger:\x20ctx.log.info(msg,\x20data)\x0a\x20\x20//\x0a\x20\x20//\x20Example:\x20handle\x20a\x20queued\x20task\x0a\x20\x20//\x20const\x20{\x20id,\x20action\x20}\x20=\x20ctx.payload;\x0a\x20\x20//\x20ctx.log.info(\x27handling\x20job\x27,\x20{\x20id,\x20action,\x20attempt:\x20ctx.job.tries\x20});\x0a\x20\x20//\x20await\x20ctx.env.put(\x27results\x27,\x20id,\x20{\x20done:\x20true\x20});\x0a\x0a\x20\x20return\x20{\x20ok:\x20true\x20};\x0a}',this[_0x1e94c3(0xf7)]=i(this[_0x1e94c3(0xd6)]))));},'goBack'(){const _0x43a4ac=_0x5ae29b;_0x43a4ac(0xb4)!==this[_0x43a4ac(0xce)]?this['step']>0x1&&this[_0x43a4ac(0x8f)]--:this['resetWizard']();},'goNext'(){const _0x2eeeea=_0x5ae29b;0x2===this['step']&&this[_0x2eeeea(0xbe)]&&(this[_0x2eeeea(0x8f)]=0x3);},'onEmbeddingCreated'(_0x130e13){const _0x44ce04=_0x5ae29b;this['success']=_0x44ce04(0x107),this[_0x44ce04(0xca)]=null,this[_0x44ce04(0x9c)](),_0xdfbf01[_0x44ce04(0x131)][_0x44ce04(0xfc)](new CustomEvent(_0x44ce04(0x133),{'detail':_0x130e13,'bubbles':!0x0}));},'updateSource'(_0x42c6b2){const _0x3680a9=_0x5ae29b;this['newFnSource']=_0x42c6b2??'',this[_0x3680a9(0xf7)]=i(this[_0x3680a9(0xd6)]);},async 'buildDryRunPayload'(){const _0x436274=_0x5ae29b;if(_0x436274(0x104)===this['engineKind'])return[{'key':_0x436274(0x123),'value':{'sample':!0x0,'name':_0x436274(0x11e)},'action':'put','clock':0x1}];if('materializer'===this['engineKind'])return[{'key':_0x436274(0x123),'value':{'sample':!0x0,'name':'Example\x20record'},'action':_0x436274(0xda),'clock':null},{'key':_0x436274(0xc6),'action':_0x436274(0x11f),'clock':0x2}];const _0x4a8e73=this['effectiveJobType'];if(_0x4a8e73)try{const _0xcec9c6=this['selectedEnv'],_0x3ae05a=__ENV__[_0x436274(0x130)]+_0x436274(0x10e)+encodeURIComponent(_0xcec9c6)+'/queue',_0xd8ffa9=await fetch(_0x3ae05a+_0x436274(0xa8)+new URLSearchParams({'type':_0x4a8e73,'limit':'1'}));if(_0xd8ffa9['ok']){const _0x1ba2ff=await _0xd8ffa9[_0x436274(0xfe)](),_0x3c3ee7=_0x1ba2ff?.[_0x436274(0xba)]?.[_0x436274(0x95)]??_0x1ba2ff?.[_0x436274(0x88)]?.[_0x436274(0x95)]??[],_0x83e9d6=_0x3c3ee7[0x0]?.[_0x436274(0x121)]??_0x3c3ee7[0x0]?.['id']??_0x3c3ee7[0x0]?.[_0x436274(0xde)]?.['id'];if(_0x83e9d6){const _0x5a14cc=await fetch(_0x3ae05a+_0x436274(0x117)+encodeURIComponent(_0x83e9d6));if(_0x5a14cc['ok']){const _0x47b8b5=await _0x5a14cc[_0x436274(0xfe)](),_0x2ec89f=_0x47b8b5?.[_0x436274(0xba)]??_0x47b8b5?.['data'];if(void 0x0!==_0x2ec89f?.[_0x436274(0xed)])return _0x2ec89f['payload'];}}}}catch{}return{};},async 'dryRunFunction'(){const _0x59cac7=_0x5ae29b;if(this[_0x59cac7(0xf7)]['ok']&&!this[_0x59cac7(0x108)]){this[_0x59cac7(0x108)]=!0x0,this[_0x59cac7(0x115)]=null,this['newFnDryError']=null,this[_0x59cac7(0x106)]=null;try{const _0x2ddd8b=this[_0x59cac7(0x12c)],_0x44dd33=await this[_0x59cac7(0x8c)]();this[_0x59cac7(0x106)]=_0x44dd33;const _0x4cd34d={'name':this[_0x59cac7(0x112)][_0x59cac7(0xf2)]()||'__preview__','source':this[_0x59cac7(0xf7)][_0x59cac7(0xc5)]||this['newFnSource'][_0x59cac7(0xf2)](),'metadata':{'description':_0x59cac7(0x127)},'enabled':!0x0,'payload':_0x44dd33};_0x59cac7(0xab)===this['engineKind']&&(_0x4cd34d[_0x59cac7(0xe5)]={'id':_0x59cac7(0x9d),'type':this[_0x59cac7(0x114)]||_0x59cac7(0xf4),'tries':0x1,'created':Date[_0x59cac7(0xb0)](),'tags':null,'priority':0x0,'bucket':null,'cron':null}),_0x59cac7(0x104)===this['engineKind']&&(_0x4cd34d[_0x59cac7(0xcd)]={'mode':'live','sourceType':this[_0x59cac7(0xb8)]||_0x59cac7(0xc7),'sourceEnv':this[_0x59cac7(0x12c)],'processor':'__preview__','engineKey':_0x59cac7(0xea),'cursorKey':null}),_0x59cac7(0xb6)===this['engineKind']&&(_0x4cd34d[_0x59cac7(0x8b)]={'mode':_0x59cac7(0xe1),'sourceType':this[_0x59cac7(0x118)]||_0x59cac7(0xc7),'targetType':this['mat_targetType']||_0x59cac7(0xd4),'sourceEnv':this[_0x59cac7(0x12c)],'targetEnv':this[_0x59cac7(0x12c)],'engineKey':_0x59cac7(0xea),'cursorKey':null});const _0x19cecf=await fetch(__ENV__[_0x59cac7(0x130)]+_0x59cac7(0x10e)+encodeURIComponent(_0x2ddd8b)+_0x59cac7(0xb7),{'method':_0x59cac7(0xeb),'headers':{'Content-Type':_0x59cac7(0x119)},'body':JSON[_0x59cac7(0xbd)](_0x4cd34d)}),_0x3d0237=await _0x19cecf[_0x59cac7(0xfe)]()['catch'](()=>({})),_0x79cab2=_0x3d0237?.[_0x59cac7(0x88)]??_0x3d0237?.['result']??_0x3d0237;if(!_0x19cecf['ok']&&!_0x79cab2?.[_0x59cac7(0xd8)])throw new Error(_0x3d0237?.[_0x59cac7(0xca)]?.['message']||_0x59cac7(0x102)+_0x19cecf[_0x59cac7(0xd8)]+')');this[_0x59cac7(0x115)]=_0x79cab2;}catch(_0x2dd47e){this[_0x59cac7(0xcf)]=_0x2dd47e?.['message']||String(_0x2dd47e);}finally{this[_0x59cac7(0x108)]=!0x1;}}},'buildEngineConfig'(){const _0x4407a9=_0x5ae29b,_0x25509e={'kind':'function','name':this[_0x4407a9(0xc0)]};return _0x4407a9(0xd2)!==this['handler_recordRuns']&&(_0x25509e['recordRuns']=this['handler_recordRuns']),_0x4407a9(0x104)===this[_0x4407a9(0xce)]?{'source_type':this[_0x4407a9(0xb8)],'source_env':this[_0x4407a9(0x12c)],'handler':_0x25509e,'mode':this[_0x4407a9(0x8e)],'bootstrap':_0x4407a9(0xe8)===this[_0x4407a9(0x8e)]?null:this[_0x4407a9(0xdb)],'batchSize':Number(this[_0x4407a9(0x122)])||0x100,'originMode':this[_0x4407a9(0xd5)]}:_0x4407a9(0xb6)===this['engineKind']?{'source_type':this['mat_sourceType'],'target_type':this['mat_targetType'],'source_env':this['selectedEnv'],'target_env':this[_0x4407a9(0x12c)],'handler':_0x25509e,'bootstrap':this[_0x4407a9(0xf0)],'batchSize':Number(this['mat_batchSize'])||0x80,'originMode':this[_0x4407a9(0x12f)],'clearTargetOnRebuild':!0x1!==this[_0x4407a9(0xec)]}:_0x4407a9(0xab)===this[_0x4407a9(0xce)]?{'job_type':this[_0x4407a9(0x114)],'queue_env':this['selectedEnv'],'handler':_0x25509e,'concurrency':Number(this['qw_concurrency'])||0x1}:{};},async 'submit'(){const _0x471638=_0x5ae29b;if(this[_0x471638(0xbe)]&&!this[_0x471638(0x125)]){this[_0x471638(0x125)]=!0x0,this[_0x471638(0xca)]=null,this[_0x471638(0x10b)]=null;try{const _0x4a580b=this[_0x471638(0x12c)];if('new'===this[_0x471638(0x11b)]){const _0x557bc8={'name':this[_0x471638(0x112)][_0x471638(0xf2)](),'source':this[_0x471638(0xf7)][_0x471638(0xc5)]||this[_0x471638(0xd6)][_0x471638(0xf2)](),'metadata':{'description':'Handler\x20for\x20pipeline\x20'+this[_0x471638(0x9a)],'owner_engine':this[_0x471638(0xf1)],'pipeline':this['pipelineName']},'enabled':!0x0},_0x4077d4=await fetch(__ENV__[_0x471638(0x130)]+_0x471638(0x10e)+encodeURIComponent(_0x4a580b)+'/functions',{'method':_0x471638(0xeb),'headers':{'Content-Type':_0x471638(0x119)},'body':JSON[_0x471638(0xbd)](_0x557bc8)}),_0x3aa80c=await _0x4077d4[_0x471638(0xfe)]()[_0x471638(0x8d)](()=>({}));if(!_0x4077d4['ok'])throw new Error(_0x3aa80c?.[_0x471638(0xca)]?.[_0x471638(0xff)]||_0x471638(0xcb)+_0x4077d4[_0x471638(0xd8)]+')');}const _0x473a13={'name':this[_0x471638(0x9a)],'meta':{'label':this[_0x471638(0x9a)]},'members':[{'engineType':this[_0x471638(0xce)],'engineName':this[_0x471638(0xf1)],'role':this[_0x471638(0xce)],'engineConfig':this[_0x471638(0xdd)]()}]},_0x2c1cc5=await fetch(__ENV__['API']+_0x471638(0x10e)+encodeURIComponent(_0x4a580b)+_0x471638(0x9b),{'method':_0x471638(0xeb),'headers':{'Content-Type':_0x471638(0x119)},'body':JSON[_0x471638(0xbd)](_0x473a13)}),_0x94eba9=await _0x2c1cc5['json']()[_0x471638(0x8d)](()=>({}));if(!_0x2c1cc5['ok'])throw new Error(_0x94eba9?.[_0x471638(0xca)]?.['message']||_0x471638(0x9e)+_0x2c1cc5[_0x471638(0xd8)]+')');this['success']='Pipeline\x20\x22'+this['pipelineName']+'\x22\x20created\x20and\x20started',_0xdfbf01[_0x471638(0x131)][_0x471638(0xfc)](new CustomEvent('created',{'detail':_0x94eba9[_0x471638(0xba)]??_0x94eba9[_0x471638(0x88)],'bubbles':!0x0})),this[_0x471638(0x9c)]();}catch(_0x3eacb6){this[_0x471638(0xca)]=_0x3eacb6?.[_0x471638(0xff)]||String(_0x3eacb6);}finally{this[_0x471638(0x125)]=!0x1;}}},'formatJson'(_0x3f30f7){try{return JSON['stringify'](_0x3f30f7,null,0x2);}catch{return String(_0x3f30f7??'');}},'setJobTypeMode'(_0x5cc8a1){const _0x1661fd=_0x5ae29b;this[_0x1661fd(0xcc)]=_0x5cc8a1,this['qw_jobType']='';},'logLabel'(_0x14c8a8){const _0x1e740e=_0x5ae29b,_0x31e4bd=_0x14c8a8?.[_0x1e740e(0x97)]??_0x14c8a8?.['message']??'';return _0x14c8a8?.['count']>0x1?_0x31e4bd+_0x1e740e(0x120)+_0x14c8a8[_0x1e740e(0xd3)]+')':_0x31e4bd;},'logColor'(_0x12df11){const _0x9643fa=_0x5ae29b,_0x2d7756=_0x12df11?.['level']??'';return _0x9643fa(0xca)===_0x2d7756||'fatal'===_0x2d7756?_0x9643fa(0x10d):'warn'===_0x2d7756?_0x9643fa(0x12d):_0x9643fa(0xe6)===_0x2d7756?_0x9643fa(0x109):_0x9643fa(0xf6);}}),async 'init'(_0x9fc087){const _0x53291e=_0x5ae29b;await this[_0x53291e(0xf9)](),this[_0x53291e(0xb5)](),_0x9fc087['$watch'](()=>_0x9fc087['$ok'][_0x53291e(0x8a)][_0x53291e(0xc4)]['selectedEnv'],async()=>{const _0x557e68=_0x53291e;await this['loadMeta'](),this[_0x557e68(0xb5)]();});},'style':_0x5ae29b(0xa2),'template':_0x5ae29b(0x110)};function _0x3e8b(){const _0x394d4a=['created','qw_jobType','data','initialKind','stores','materializerContext','buildDryRunPayload','catch','proc_mode','step','20szJEOB','pipeline-create-panel','/functions','console','showAdvanced','items','string','msg','return\x20(','4Dpkyco','pipelineName','/pipelines/scaffold','resetWizard','__preview-job__','Failed\x20(','autoName','pickType','worker_threads','\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20block;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-wrap\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20820px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-title\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-sub\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20680px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20steps\x20indicator\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-steps\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-bottom:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-dot\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2026px;\x20height:\x2026px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x20align-items:\x20center;\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20700;\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg-muted);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-dot--active\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-dot--done\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-line\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x2060px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-line--done\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x2040%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-left:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.45;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-label--active\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20type-choice\x20cards\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-grid\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20repeat(auto-fit,\x20minmax(220px,\x201fr));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2020px\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20border-color\x20.15s,\x20background\x20.15s;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-icon\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2028px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-name\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2015px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-desc\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20card\x20/\x20form\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-section\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-transform:\x20uppercase;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.45;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20letter-spacing:\x20.06em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20130px\x201fr;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20right;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-input\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-sizing:\x20border-box;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-input:focus\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20outline:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-select\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-sizing:\x20border-box;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-hint\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.4;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-style:\x20italic;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-column:\x202;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pills\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pill\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x204px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x20999px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pill:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pill--on\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20handler\x20toggle\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle-btn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x207px\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.6;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle-btn:first-child\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-right:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle-btn--on\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20code\x20editor\x20area\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-editor-wrap\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20260px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20min-height:\x20260px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20dry-run\x20result\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2012px\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-ok\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-err\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-pre\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20white-space:\x20pre-wrap;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20word-break:\x20break-word;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg-subtle);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-height:\x20160px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20auto;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-meta\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20dry-run\x20logs\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-logs\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-log-entry\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20monospace;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x202px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-log-level\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20inline-block;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20min-width:\x2040px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-transform:\x20uppercase;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-right:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20review\x20summary\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-summary-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-summary-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-summary-val\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20monospace;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20buttons\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-actions\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x209%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn:hover\x20{\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2016%,\x20transparent);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn:disabled\x20{\x20opacity:\x20.4;\x20cursor:\x20default;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--ghost\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20400;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--ghost:hover\x20{\x20opacity:\x201;\x20background:\x20var(--okdb-app-surface);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--green\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x209%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--green:hover\x20{\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x2016%,\x20transparent);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--small\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x205px\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20feedback\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-success\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x205%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-warn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-warning);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.75;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-warning)\x2020%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-warning)\x204%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20advanced\x20toggle\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-adv-toggle\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user-select:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20inline-flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-adv-toggle:hover\x20{\x20opacity:\x20.8;\x20}\x0a\x20\x20\x20\x20','typeSelectionLocked','-to-','type','sort','push','/jobs?','replace','durationMs','queue-worker','/types','handlerName','async\x20(ctx)\x20=>\x20{\x0a\x20\x20//\x20ctx.payload\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20array\x20of\x20{\x20key,\x20value,\x20action,\x20clock\x20}\x0a\x20\x20//\x20ctx.processor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20processor\x20trigger\x20metadata\x20(only\x20for\x20processor\x20engines)\x0a\x20\x20//\x20\x20\x20ctx.processor.mode\x20\x20\x20\x20\x20\x20\x20\x20—\x20\x22snapshot\x22\x20|\x20\x22live\x22\x0a\x20\x20//\x20\x20\x20ctx.processor.sourceType\x20\x20—\x20the\x20type\x20being\x20watched\x0a\x20\x20//\x20\x20\x20ctx.processor.sourceEnv\x20\x20\x20—\x20the\x20environment\x20of\x20the\x20source\x20type\x0a\x20\x20//\x20ctx.env\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20env\x20facade:\x20put,\x20get,\x20query,\x20txn,\x20...\x0a\x20\x20//\x20ctx.log\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20structured\x20logger:\x20ctx.log.info(msg,\x20data)\x0a\x20\x20//\x0a\x20\x20//\x20Example:\x20materialised\x20view\x0a\x20\x20//\x20for\x20(const\x20change\x20of\x20ctx.payload)\x20{\x0a\x20\x20//\x20\x20\x20await\x20ctx.env.put(\x27derived\x27,\x20change.key,\x20{\x20processed:\x20true,\x20...change.value\x20});\x0a\x20\x20//\x20}\x0a\x0a\x20\x20return\x20{\x20processed:\x20ctx.payload.length\x20};\x0a}','Source\x20exceeds\x2064\x20KB','now','test','map','keys','embedding','applyScopeDefaults','materializer','/functions/preview','proc_sourceType','queueJobTypes','result','kindLocked','handler_recordRuns','stringify','step2Valid','availableKinds','effectiveHandlerName','2739XVjFXB','async\x20(ctx)\x20=>\x20{\x0a\x20\x20//\x20ctx.payload\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20array\x20of\x20change\x20records\x0a\x20\x20//\x20\x20\x20change.action\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20\x22put\x22\x20|\x20\x22remove\x22\x0a\x20\x20//\x20\x20\x20change.key\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20source\x20record\x20key\x0a\x20\x20//\x20\x20\x20change.value\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20hydrated\x20source\x20value\x20for\x20puts\x0a\x20\x20//\x20\x20\x20change.clock\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20log\x20clock\x20during\x20live\x20replay;\x20null\x20during\x20snapshot\x20bootstrap\x0a\x20\x20//\x20ctx.materializer\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20materializer\x20trigger\x20metadata\x0a\x20\x20//\x20\x20\x20ctx.materializer.sourceType\x20\x20—\x20the\x20type\x20being\x20watched\x0a\x20\x20//\x20\x20\x20ctx.materializer.targetType\x20\x20—\x20the\x20derived\x20target\x20type\x0a\x20\x20//\x20\x20\x20ctx.materializer.sourceEnv\x20\x20\x20—\x20the\x20environment\x20of\x20the\x20source\x20type\x0a\x20\x20//\x20\x20\x20ctx.materializer.targetEnv\x20\x20\x20—\x20the\x20environment\x20of\x20the\x20target\x20type\x0a\x20\x20//\x20ctx.env\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20env\x20facade\x20(read-only\x20for\x20deterministic\x20materializers)\x0a\x20\x20//\x20ctx.log\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20structured\x20logger:\x20ctx.log.info(msg,\x20data)\x0a\x20\x20//\x0a\x20\x20//\x20Return\x20ops\x20for\x20the\x20engine\x20to\x20apply\x20to\x20the\x20target\x20type.\x0a\x20\x20const\x20ops\x20=\x20[];\x0a\x0a\x20\x20for\x20(const\x20change\x20of\x20ctx.payload)\x20{\x0a\x20\x20\x20\x20if\x20(change.action\x20===\x20\x27put\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20const\x20doc\x20=\x20change.value\x20??\x20change.newValue;\x0a\x20\x20\x20\x20\x20\x20if\x20(!doc)\x20continue;\x0a\x0a\x20\x20\x20\x20\x20\x20ops.push({\x0a\x20\x20\x20\x20\x20\x20\x20\x20action:\x20\x27put\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20key:\x20change.key,\x0a\x20\x20\x20\x20\x20\x20\x20\x20value:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20projected:\x20true,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sourceKey:\x20change.key,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20...doc,\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20if\x20(change.action\x20===\x20\x27remove\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20ops.push({\x20action:\x20\x27remove\x27,\x20key:\x20change.key\x20});\x0a\x20\x20\x20\x20}\x0a\x20\x20}\x0a\x0a\x20\x20return\x20ops;\x0a}','custom','okdb','normalizedSource','test-2','example','$ok','set','error','Failed\x20to\x20create\x20function\x20(','qw_jobTypeMode','processorContext','engineKind','newFnDryError','filter','511foRxtl','all','count','example_projection','proc_originMode','newFnSource','lockTypeStrict','status','name','put','proc_bootstrap','module','buildEngineConfig','value','hidequeueworker','943970CRoydx','live','locktypestrict','mat_batchSize','isArray','jobContext','debug','initialkind','inline','2149808tUgCdT','__preview__','POST','mat_clearTargetOnRebuild','payload','218151IfOqDO','child_process','mat_bootstrap','engineName','trim','mat_targetType','preview','logs','var(--okdb-app-fg-subtle)','newFnValidation','existing','loadMeta','Cannot\x20use\x20\x22','true','dispatchEvent','length','json','message','execution','1980ZiLDdt','Preview\x20failed\x20(','hideQueueWorker','processor','$attr','newFnDryPayload','Embedding\x20pipeline\x20created','newFnDryRunning','var(--okdb-app-fg-muted)','Must\x20be\x20(ctx)\x20=>\x20{\x20…\x20}\x20or\x20async\x20(ctx)\x20=>\x20{\x20…\x20}','success','Compile\x20error','var(--okdb-danger)','/env/','Source\x20is\x20required','\x0a<div\x20class=\x22pw-wrap\x22>\x0a\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-title\x22>{{\x20engineKind\x20===\x20\x27embedding\x27\x20||\x20initialKind\x20===\x20\x27embedding\x27\x20?\x20\x27Create\x20Embedding\x20Pipeline\x27\x20:\x20engineKind\x20===\x20\x27materializer\x27\x20||\x20initialKind\x20===\x20\x27materializer\x27\x20?\x20\x27Create\x20Materializer\x20Pipeline\x27\x20:\x20\x27Create\x20Pipeline\x27\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-sub\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Set\x20up\x20automated\x20processing\x20in\x20<b>{{\x20selectedEnv\x20}}</b>.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20A\x20pipeline\x20connects\x20a\x20data\x20source\x20to\x20a\x20handler\x20function\x20and\x20runs\x20it\x20automatically.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<!--\x20──\x20Steps\x20indicator\x20──\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22engineKind\x20!==\x20\x27embedding\x27\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22pw-steps\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>=\x201\x20?\x20(step\x20>\x201\x20?\x20\x27pw-step-dot\x20pw-step-dot--done\x27\x20:\x20\x27pw-step-dot\x20pw-step-dot--active\x27)\x20:\x20\x27pw-step-dot\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20step\x20>\x201\x20?\x20\x27✓\x27\x20:\x20\x271\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:class=\x22step\x20>=\x201\x20?\x20\x27pw-step-label\x20pw-step-label--active\x27\x20:\x20\x27pw-step-label\x27\x22>Type</span>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>\x201\x20?\x20\x27pw-step-line\x20pw-step-line--done\x27\x20:\x20\x27pw-step-line\x27\x22></div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>=\x202\x20?\x20(step\x20>\x202\x20?\x20\x27pw-step-dot\x20pw-step-dot--done\x27\x20:\x20\x27pw-step-dot\x20pw-step-dot--active\x27)\x20:\x20\x27pw-step-dot\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20step\x20>\x202\x20?\x20\x27✓\x27\x20:\x20\x272\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:class=\x22step\x20>=\x202\x20?\x20\x27pw-step-label\x20pw-step-label--active\x27\x20:\x20\x27pw-step-label\x27\x22>Configure</span>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>\x202\x20?\x20\x27pw-step-line\x20pw-step-line--done\x27\x20:\x20\x27pw-step-line\x27\x22></div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>=\x203\x20?\x20\x27pw-step-dot\x20pw-step-dot--active\x27\x20:\x20\x27pw-step-dot\x27\x22>3</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:class=\x22step\x20>=\x203\x20?\x20\x27pw-step-label\x20pw-step-label--active\x27\x20:\x20\x27pw-step-label\x27\x22>Review</span>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<!--\x20════════════\x20STEP\x201:\x20Choose\x20type\x20════════════\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22step\x20===\x201\x20&&\x20!kindLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-grid\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27processor\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⚡</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Change\x20Processor</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Watches\x20a\x20data\x20type\x20for\x20changes\x20and\x20runs\x20your\x20function\x20for\x20every\x20batch.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20for\x20projections,\x20computed\x20values,\x20webhooks,\x20or\x20side-effects\x20that\x20should\x20trigger\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20whenever\x20records\x20are\x20created,\x20updated,\x20or\x20deleted.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27materializer\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⇄</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Materializer</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Watches\x20a\x20source\x20type\x20and\x20maintains\x20a\x20deterministic\x20derived\x20target\x20type\x20by\x20returning\x20ops\x20for\x20the\x20engine\x20to\x20apply.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20for\x20rebuildable\x20projections,\x20mirrors,\x20and\x20materialized\x20views.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!hideQueueWorker\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27queue-worker\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⇶</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Queue\x20Worker</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Processes\x20jobs\x20from\x20a\x20queue.\x20Use\x20for\x20background\x20tasks\x20like\x20sending\x20emails,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20generating\x20reports,\x20or\x20any\x20work\x20that\x20can\x20be\x20enqueued\x20and\x20processed\x20asynchronously\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20with\x20automatic\x20retries.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27embedding\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⊛</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Embedding\x20Pipeline</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Creates\x20an\x20embedder,\x20indexer,\x20search\x20engine,\x20and\x20optional\x20worker\x20as\x20one\x20grouped\x20pipeline.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20this\x20for\x20semantic\x20search,\x20RAG,\x20and\x20other\x20vector\x20workflows.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<!--\x20════════════\x20STEP\x202:\x20Configure\x20════════════\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22step\x20===\x202\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27embedding\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>Embeddings</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.58;\x20line-height:1.7;\x20margin-bottom:2px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Embedding\x20pipelines\x20use\x20the\x20specialized\x20creator\x20because\x20they\x20can\x20bundle\x20multiple\x20engines\x20and\x20optional\x20search/worker\x20settings\x20in\x20one\x20pass.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-actions\x22\x20style=\x22margin-top:4px;\x22\x20:style=\x22kindLocked\x20?\x20\x27display:none;\x27\x20:\x20\x27\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--ghost\x22\x20@click=\x22goBack()\x22>←\x20Back</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<embed-create-panel\x20initialtab=\x22pipeline\x22\x20:locktype=\x22lockedType\x22\x20:lockenv=\x22selectedEnv\x22\x20@created=\x22onEmbeddingCreated($event.detail)\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20!==\x20\x27embedding\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Source\x20/\x20job\x20type\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20engineKind\x20===\x20\x27queue-worker\x27\x20?\x20\x27What\x20to\x20process\x27\x20:\x20\x27What\x20to\x20watch\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27processor\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Data\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22display:inline-flex;\x20align-items:center;\x20gap:6px;\x20padding:5px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x20color:var(--okdb-accent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x206%,\x20transparent);\x20font-size:12px;\x22>{{\x20proc_sourceType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.45;\x22>Locked\x20to\x20the\x20current\x20DB\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Data\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22proc_sourceType\x22\x20@change=\x22proc_sourceType\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20a\x20type\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22types\x22\x20let:item=\x22t\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22t\x22>{{\x20t\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20processor\x20will\x20receive\x20a\x20batch\x20of\x20changes\x20every\x20time\x20records\x20of\x20this\x20type\x20are\x20created,\x20updated,\x20or\x20deleted.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27materializer\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Source\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22display:inline-flex;\x20align-items:center;\x20gap:6px;\x20padding:5px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x20color:var(--okdb-accent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x206%,\x20transparent);\x20font-size:12px;\x22>{{\x20mat_sourceType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.45;\x22>Locked\x20to\x20the\x20current\x20DB\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Source\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22mat_sourceType\x22\x20@change=\x22mat_sourceType\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20a\x20type\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22types\x22\x20let:item=\x22t\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22t\x22>{{\x20t\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Target\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22text\x22\x20placeholder=\x22e.g.\x20order_summaries\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22mat_targetType\x22\x20@input=\x22mat_targetType\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20materializer\x20watches\x20the\x20source\x20type\x20and\x20applies\x20returned\x20ops\x20to\x20the\x20target\x20type,\x20making\x20rebuilds\x20deterministic.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27queue-worker\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Job\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22queueJobTypes.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-handler-toggle\x22\x20style=\x22max-width:300px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22qw_jobTypeMode\x20===\x20\x27existing\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22setJobTypeMode(\x27existing\x27)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Known\x20type</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22qw_jobTypeMode\x20===\x20\x27custom\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22setJobTypeMode(\x27custom\x27)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Custom</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22qw_jobTypeMode\x20===\x20\x27existing\x27\x20&&\x20queueJobTypes.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22qw_jobType\x22\x20@change=\x22qw_jobType\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20job\x20type\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22queueJobTypes\x22\x20let:item=\x22jt\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22jt\x22>{{\x20jt\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22qw_jobTypeMode\x20===\x20\x27custom\x27\x20||\x20queueJobTypes.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22text\x22\x20placeholder=\x22e.g.\x20email.send\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22qw_jobType\x22\x20@input=\x22qw_jobType\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22\x20style=\x22grid-column:\x201\x20/\x20-1;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Jobs\x20enqueued\x20with\x20this\x20type\x20will\x20be\x20routed\x20to\x20this\x20worker.\x20You\x20can\x20enqueue\x20jobs\x20from\x20functions,\x20the\x20API,\x20or\x20other\x20pipelines.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Handler\x20function\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>Handler\x20function</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.5;\x20line-height:1.6;\x20margin-bottom:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20function\x20that\x20runs\x20for\x20each\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20engineKind\x20===\x20\x27queue-worker\x27\x20?\x20\x27job\x27\x20:\x20\x27batch\x20of\x20changes\x27\x20}}.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Pick\x20an\x20existing\x20function\x20or\x20write\x20one\x20now.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-handler-toggle\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22handlerMode\x20===\x20\x27existing\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22handlerMode\x20=\x20\x27existing\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Use\x20existing\x20function</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22handlerMode\x20===\x20\x27new\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22handlerMode\x20=\x20\x27new\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Write\x20new\x20function</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Existing\x20function\x20picker\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22handlerMode\x20===\x20\x27existing\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Function</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22handlerName\x22\x20@change=\x22handlerName\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20function\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22functions\x22\x20let:item=\x22fn\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22fn\x22>{{\x20fn\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22functions.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22\x20style=\x22grid-column:\x201\x20/\x20-1;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20No\x20functions\x20found\x20in\x20<b>{{\x20selectedEnv\x20}}</b>.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Switch\x20to\x20\x22Write\x20new\x20function\x22\x20to\x20create\x20one\x20inline.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20New\x20function\x20inline\x20authoring\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22handlerMode\x20===\x20\x27new\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Function\x20name</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22text\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20placeholder=\x22e.g.\x20processArticle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22newFnName\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22newFnName\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20letter-spacing:.06em;\x20opacity:.45;\x20margin-top:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Implementation\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-editor-wrap\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-js-input\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22height:100%;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22newFnSource\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@edit=\x22updateSource($event.detail)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20></ok-js-input>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Validation\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22newFnValidation.ok\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-success);\x22>✓\x20Valid\x20function\x20source</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!newFnValidation.ok\x20&&\x20newFnSource\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-danger);\x22>{{\x20newFnValidation.message\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Dry\x20run\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--small\x20pw-btn--ghost\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:disabled=\x22!newFnValidation.ok\x20||\x20newFnDryRunning\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22dryRunFunction()\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20newFnDryRunning\x20?\x20\x27Running…\x27\x20:\x20\x27▶\x20Test\x20with\x20sample\x20data\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.4;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20engineKind\x20===\x20\x27queue-worker\x27\x20&&\x20effectiveJobType\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27Uses\x20a\x20real\x20job\x20payload\x20from\x20the\x20queue\x20if\x20available.\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:\x20\x27Runs\x20the\x20function\x20draft\x20against\x20synthetic\x20test\x20data\x20without\x20saving\x20it.\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-warn\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20⚠\x20<strong>Test\x20with\x20sample\x20data</strong>\x20runs\x20your\x20function\x20for\x20real\x20—\x20the\x20function\x20itself\x20is\x20not\x20saved,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20but\x20any\x20side-effects\x20(e.g. <code>ctx.env.put</code>)\x20<em>will</em>\x20write\x20to\x20live\x20data.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Dry-run\x20result\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22newFnDryResult\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22dryRunStatus\x20===\x20\x27error\x27\x20?\x20\x27pw-dry-err\x27\x20:\x20\x27pw-dry-ok\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20dryRunStatus\x20===\x20\x27error\x27\x20?\x20\x27✕\x20Function\x20returned\x20an\x20error\x27\x20:\x20\x27✓\x20Function\x20executed\x20successfully\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-meta\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22dryRunDuration\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20dryRunDuration\x20}}ms</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>status:\x20{{\x20newFnDryResult.status\x20||\x20\x27ok\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22dryRunStatus\x20===\x20\x27error\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22pw-dry-pre\x22\x20style=\x22color:var(--okdb-danger);\x22>{{\x20formatJson(newFnDryResult.error\x20??\x20newFnDryResult.result?.value\x20??\x20newFnDryResult)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22dryRunStatus\x20!==\x20\x27error\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22pw-dry-pre\x22>{{\x20formatJson(newFnDryResult.result?.value\x20??\x20newFnDryResult)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Dry-run\x20logs\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22dedupedDryLogs.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:10px;\x20text-transform:uppercase;\x20letter-spacing:.06em;\x20opacity:.4;\x20margin-top:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Logs\x20({{\x20newFnDryResult.logs.length\x20}})\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-logs\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22dedupedDryLogs\x22\x20let:item=\x22entry\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-log-entry\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-dry-log-level\x22\x20:style=\x22\x27color:\x27\x20+\x20logColor(entry)\x22>{{\x20entry.level\x20||\x20\x27log\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20logLabel(entry)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Input\x20payload\x20used\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22newFnDryPayload\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<details\x20style=\x22margin-top:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<summary\x20style=\x22font-size:10px;\x20text-transform:uppercase;\x20letter-spacing:.06em;\x20opacity:.4;\x20cursor:pointer;\x20user-select:none;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Input\x20payload\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</summary>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22pw-dry-pre\x22\x20style=\x22margin-top:4px;\x20max-height:180px;\x22>{{\x20formatJson(newFnDryPayload)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</details>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22newFnDryError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-err\x22>✕\x20{{\x20newFnDryError\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Advanced\x20options\x20(collapsed)\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-adv-toggle\x22\x20@click=\x22showAdvanced\x20=\x20!showAdvanced\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20showAdvanced\x20?\x20\x27▾\x27\x20:\x20\x27▸\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>Advanced\x20options</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22showAdvanced\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27processor\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Mode</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_mode\x20===\x20\x27async\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_mode\x20=\x20\x27async\x27\x22>async</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_mode\x20===\x20\x27inline\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_mode\x20=\x20\x27inline\x27\x22>inline</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>async</b>\x20processes\x20changes\x20in\x20background\x20batches\x20(recommended).\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>inline</b>\x20runs\x20synchronously\x20inside\x20the\x20write\x20path.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22proc_mode\x20===\x20\x27async\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Bootstrap</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_bootstrap\x20===\x20\x27snapshot\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_bootstrap\x20=\x20\x27snapshot\x27\x22>snapshot</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_bootstrap\x20===\x20\x27log\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_bootstrap\x20=\x20\x27log\x27\x22>log</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>snapshot</b>\x20processes\x20all\x20existing\x20records\x20first,\x20then\x20switches\x20to\x20live.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>log</b>\x20replays\x20the\x20change\x20log\x20from\x20the\x20beginning.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Batch\x20size</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22number\x22\x20min=\x221\x22\x20max=\x2210000\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22proc_batchSize\x22\x20@input=\x22proc_batchSize\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Origin\x20mode</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_originMode\x20===\x20\x27all\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_originMode\x20=\x20\x27all\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_originMode\x20===\x20\x27self\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_originMode\x20=\x20\x27self\x27\x22>self</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_originMode\x20===\x20\x27remote\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_originMode\x20=\x20\x27remote\x27\x22>remote</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>all</b>\x20=\x20local\x20+\x20synced\x20changes.\x20<b>self</b>\x20=\x20local\x20only.\x20<b>remote</b>\x20=\x20synced\x20only.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27materializer\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Bootstrap</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22mat_bootstrap\x20===\x20\x27snapshot\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22mat_bootstrap\x20=\x20\x27snapshot\x27\x22>snapshot</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22mat_bootstrap\x20===\x20\x27log\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22mat_bootstrap\x20=\x20\x27log\x27\x22>log</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>snapshot</b>\x20replays\x20all\x20current\x20source\x20rows\x20first.\x20<b>log</b>\x20replays\x20the\x20full\x20change\x20log.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Batch\x20size</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22number\x22\x20min=\x221\x22\x20max=\x2210000\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22mat_batchSize\x22\x20@input=\x22mat_batchSize\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Origin\x20mode</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22mat_originMode\x20===\x20\x27all\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22mat_originMode\x20=\x20\x27all\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22mat_originMode\x20===\x20\x27self\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22mat_originMode\x20=\x20\x27self\x27\x22>self</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22mat_originMode\x20===\x20\x27remote\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22mat_originMode\x20=\x20\x27remote\x27\x22>remote</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Choose\x20whether\x20the\x20materializer\x20reacts\x20to\x20local\x20changes,\x20synced\x20changes,\x20or\x20both.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Rebuild</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20font-size:12px;\x20color:var(--okdb-app-fg);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20type=\x22checkbox\x22\x20:checked=\x22mat_clearTargetOnRebuild\x22\x20@change=\x22mat_clearTargetOnRebuild\x20=\x20$event.target.checked\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Clear\x20target\x20before\x20rebuild\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</label>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27queue-worker\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Concurrency</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22number\x22\x20min=\x221\x22\x20max=\x2264\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22qw_concurrency\x22\x20@input=\x22qw_concurrency\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>How\x20many\x20jobs\x20to\x20process\x20in\x20parallel.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Run\x20recording\x20(shared\x20by\x20both\x20engine\x20types)\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22border-top:1px\x20solid\x20var(--okdb-app-border);\x20margin-top:4px;\x20padding-top:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Run\x20recording</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22handler_recordRuns\x20===\x20\x27all\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22handler_recordRuns\x20=\x20\x27all\x27\x22>all\x20runs</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22handler_recordRuns\x20===\x20\x27errors\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22handler_recordRuns\x20=\x20\x27errors\x27\x22>errors\x20only</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22handler_recordRuns\x20===\x20\x27none\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22handler_recordRuns\x20=\x20\x27none\x27\x22>none</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Controls\x20whether\x20each\x20function\x20invocation\x20is\x20recorded\x20in\x20the\x20run\x20ledger.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>errors\x20only</b>\x20(recommended)\x20avoids\x20creating\x20hundreds\x20of\x20run\x20records\x20for\x20busy\x20pipelines\x20while\x20still\x20capturing\x20failures.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>none</b>\x20fully\x20suppresses\x20recording\x20—\x20useful\x20for\x20high-throughput\x20processors\x20where\x20logging\x20isn\x27t\x20needed.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Navigation\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--ghost\x22\x20@click=\x22goBack()\x22>←\x20Back</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x22\x20:disabled=\x22!step2Valid\x22\x20@click=\x22goNext()\x22>Review\x20→</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<!--\x20════════════\x20STEP\x203:\x20Review\x20&\x20Create\x20════════════\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22step\x20===\x203\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>Summary</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Pipeline</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20pipelineName\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Environment</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20selectedEnv\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20engineKind\x20===\x20\x27processor\x27\x20?\x20\x27Change\x20Processor\x27\x20:\x20engineKind\x20===\x20\x27materializer\x27\x20?\x20\x27Materializer\x27\x20:\x20\x27Queue\x20Worker\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27processor\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Watches</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20proc_sourceType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27materializer\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Source</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20mat_sourceType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Target</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20mat_targetType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27queue-worker\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Job\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20effectiveJobType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Handler</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20effectiveHandlerName\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22opacity:.4;\x20font-family:sans-serif;\x20font-size:11px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20handlerMode\x20===\x20\x27new\x27\x20?\x20\x27(will\x20be\x20created)\x27\x20:\x20\x27\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Engine</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20engineName\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Run\x20recording</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22\x20style=\x22font-size:11px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20handler_recordRuns\x20===\x20\x27all\x27\x20?\x20\x27all\x20runs\x27\x20:\x20handler_recordRuns\x20===\x20\x27errors\x27\x20?\x20\x27errors\x20only\x27\x20:\x20\x27none\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22showAdvanced\x20||\x20proc_mode\x20!==\x20\x27async\x27\x20||\x20proc_bootstrap\x20!==\x20\x27snapshot\x27\x20||\x20proc_batchSize\x20!=\x20256\x20||\x20proc_originMode\x20!==\x20\x27all\x27\x20||\x20mat_bootstrap\x20!==\x20\x27snapshot\x27\x20||\x20mat_batchSize\x20!=\x20128\x20||\x20mat_originMode\x20!==\x20\x27all\x27\x20||\x20!mat_clearTargetOnRebuild\x20||\x20qw_concurrency\x20!=\x201\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22\x20style=\x22border-bottom:none;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Options</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22\x20style=\x22font-size:11px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27processor\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20mode={{\x20proc_mode\x20}}\x20·\x20bootstrap={{\x20proc_mode\x20===\x20\x27inline\x27\x20?\x20\x27n/a\x27\x20:\x20proc_bootstrap\x20}}\x20·\x20batch={{\x20proc_batchSize\x20}}\x20·\x20origin={{\x20proc_originMode\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27materializer\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20bootstrap={{\x20mat_bootstrap\x20}}\x20·\x20batch={{\x20mat_batchSize\x20}}\x20·\x20origin={{\x20mat_originMode\x20}}\x20·\x20clearOnRebuild={{\x20mat_clearTargetOnRebuild\x20?\x20\x27yes\x27\x20:\x20\x27no\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27queue-worker\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20concurrency={{\x20qw_concurrency\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.45;\x20line-height:1.6;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20This\x20will{{\x20handlerMode\x20===\x20\x27new\x27\x20?\x20\x27\x20create\x20the\x20function,\x20then\x27\x20:\x20\x27\x27\x20}}\x20create\x20the\x20engine\x20and\x20pipeline\x20record,\x20and\x20start\x20it\x20immediately.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Feedback\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-error\x22>{{\x20error\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22success\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-success\x22>{{\x20success\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--ghost\x22\x20@click=\x22goBack()\x22>←\x20Back</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--green\x22\x20:disabled=\x22busy\x22\x20@click=\x22submit()\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20busy\x20?\x20\x27Creating…\x27\x20:\x20\x27Create\x20&\x20Start\x20Pipeline\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a</div>','require','newFnName','snapshot','effectiveJobType','newFnDryResult','import','/job/','mat_sourceType','application/json','functions','handlerMode','process','includes','Example\x20record','remove','\x20(×','key','proc_batchSize','test-1','12sEqiQU','busy','35398YJauhJ','Pipeline\x20handler\x20preview','812799fVlZhl','errors','1056WzDohq','async','selectedEnv','var(--okdb-warning)','level','mat_originMode','API','$el','lockedType'];_0x3e8b=function(){return _0x394d4a;};return _0x3e8b();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x1ecf6b=_0x51ab;function _0x51ab(_0x40c728,_0x1d26ff){_0x40c728=_0x40c728-0xd5;const _0x4f9acb=_0x4f9a();let _0x51ab31=_0x4f9acb[_0x40c728];return _0x51ab31;}(function(_0x54497d,_0x579064){const _0x496392=_0x51ab,_0x310c9f=_0x54497d();while(!![]){try{const _0x5cca7a=-parseInt(_0x496392(0xd6))/0x1*(-parseInt(_0x496392(0xe2))/0x2)+parseInt(_0x496392(0xe1))/0x3*(parseInt(_0x496392(0xdd))/0x4)+parseInt(_0x496392(0xd8))/0x5*(parseInt(_0x496392(0xd9))/0x6)+parseInt(_0x496392(0xde))/0x7*(parseInt(_0x496392(0xdf))/0x8)+parseInt(_0x496392(0xdb))/0x9*(-parseInt(_0x496392(0xe0))/0xa)+parseInt(_0x496392(0xd7))/0xb*(-parseInt(_0x496392(0xd5))/0xc)+parseInt(_0x496392(0xdc))/0xd;if(_0x5cca7a===_0x579064)break;else _0x310c9f['push'](_0x310c9f['shift']());}catch(_0x4eecf4){_0x310c9f['push'](_0x310c9f['shift']());}}}(_0x4f9a,0x39a81));export const ENGINE_PANEL_SHARED_STYLE=_0x1ecf6b(0xda);function _0x4f9a(){const _0x323282=['3XQaMZI','376IjuCtt','996ACYYiz','99PXoeYL','38797TcbNxA','775795GtVKMs','6hlWuIN','\x0a\x20\x20.card\x20{\x20background:var(--okdb-app-surface);\x20border-radius:12px;\x20padding:16px;\x20box-shadow:0\x200\x205px\x20#ffffff1a;\x20}\x0a\x20\x20.card-title\x20{\x20font-weight:600;\x20margin-bottom:10px;\x20}\x0a\x20\x20.card-subtitle\x20{\x20font-size:11px;\x20opacity:.55;\x20line-height:1.6;\x20}\x0a\x20\x20.panel-grid\x20{\x20display:grid;\x20gap:12px;\x20}\x0a\x20\x20.panel-grid--two\x20{\x20grid-template-columns:repeat(auto-fit,minmax(260px,1fr));\x20}\x0a\x20\x20.kv-grid\x20{\x20display:grid;\x20grid-template-columns:140px\x201fr;\x20gap:4px\x2012px;\x20font-size:13px;\x20}\x0a\x20\x20.kv-grid--compact\x20{\x20grid-template-columns:120px\x201fr;\x20gap:6px\x2010px;\x20font-size:12px;\x20}\x0a\x20\x20.kv-key\x20\x20{\x20opacity:.6;\x20}\x0a\x20\x20.kv-val\x20\x20{\x20word-break:break-all;\x20}\x0a\x20\x20.metric-grid\x20{\x20display:grid;\x20grid-template-columns:repeat(auto-fit,minmax(120px,1fr));\x20gap:10px;\x20}\x0a\x20\x20.metric-card\x20{\x20background:var(--okdb-app-bg);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20padding:12px;\x20display:flex;\x20flex-direction:column;\x20gap:6px;\x20}\x0a\x20\x20.metric-title\x20{\x20font-size:10px;\x20opacity:.45;\x20text-transform:uppercase;\x20letter-spacing:.06em;\x20}\x0a\x20\x20.metric-value\x20{\x20font-size:24px;\x20font-weight:700;\x20color:var(--okdb-app-fg-strong);\x20}\x0a\x20\x20.metric-note\x20{\x20font-size:11px;\x20opacity:.55;\x20line-height:1.5;\x20}\x0a\x20\x20.metric-grid--compact\x20{\x20grid-template-columns:repeat(auto-fit,minmax(110px,1fr));\x20gap:8px;\x20}\x0a\x20\x20.metric-card--compact\x20{\x20padding:10px;\x20gap:4px;\x20}\x0a\x20\x20.metric-card--compact\x20.metric-value\x20{\x20font-size:20px;\x20}\x0a\x20\x20.story-card\x20{\x20display:flex;\x20flex-direction:column;\x20gap:12px;\x20}\x0a\x20\x20.story-lead\x20{\x20font-size:13px;\x20line-height:1.7;\x20color:var(--okdb-app-fg);\x20}\x0a\x20\x20.story-lead\x20strong\x20{\x20color:#ffffff;\x20font-weight:700;\x20}\x0a\x20\x20.story-note\x20{\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.6;\x20}\x0a\x20\x20.pill-row\x20{\x20display:flex;\x20gap:8px;\x20flex-wrap:wrap;\x20align-items:center;\x20}\x0a\x20\x20.info-pill\x20{\x20padding:5px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:var(--okdb-app-bg-deep);\x20font-size:11px;\x20color:var(--okdb-app-fg);\x20}\x0a\x20\x20.info-pill__label\x20{\x20opacity:.55;\x20margin-right:6px;\x20}\x0a\x20\x20.stack-compact\x20{\x20display:flex;\x20flex-direction:column;\x20gap:10px;\x20}\x0a\x20\x20.split-story\x20{\x20display:grid;\x20grid-template-columns:minmax(0,1.2fr)\x20minmax(260px,.8fr);\x20gap:12px;\x20align-items:start;\x20}\x0a\x20\x20.split-story--compact\x20{\x20grid-template-columns:minmax(0,1fr)\x20minmax(240px,.75fr);\x20}\x0a\x20\x20.section-divider\x20{\x20height:1px;\x20background:var(--okdb-app-border);\x20border:none;\x20margin:0;\x20}\x0a\x20\x20.stat-box\x20\x20\x20{\x20background:var(--okdb-app-border);\x20border-radius:8px;\x20padding:12px\x208px;\x20}\x0a\x20\x20.stat-val\x20\x20\x20{\x20font-size:28px;\x20font-weight:600;\x20}\x0a\x20\x20.stat-label\x20{\x20font-size:11px;\x20opacity:.6;\x20margin-top:2px;\x20}\x0a\x20\x20.form-grid\x20{\x20display:grid;\x20grid-template-columns:repeat(auto-fit,minmax(180px,1fr));\x20gap:12px;\x20}\x0a\x20\x20.field-stack\x20{\x20display:flex;\x20flex-direction:column;\x20gap:6px;\x20min-width:0;\x20}\x0a\x20\x20.field-label\x20{\x20font-size:10px;\x20opacity:.45;\x20text-transform:uppercase;\x20letter-spacing:.05em;\x20}\x0a\x20\x20.field-input\x20{\x20background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:8px;\x20padding:8px\x2010px;\x20color:inherit;\x20font-size:13px;\x20width:100%;\x20box-sizing:border-box;\x20}\x0a\x20\x20.helper-text\x20{\x20font-size:11px;\x20opacity:.5;\x20line-height:1.6;\x20}\x0a\x20\x20.card-actions\x20{\x20display:flex;\x20gap:8px;\x20align-items:center;\x20justify-content:flex-end;\x20flex-wrap:wrap;\x20}\x0a\x20\x20.raw-toggle-row\x20{\x20display:flex;\x20gap:8px;\x20flex-wrap:wrap;\x20align-items:center;\x20}\x0a\x20\x20.raw-toggle\x20{\x20font-size:11px;\x20padding:4px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20}\x0a\x20\x20.raw-toggle--active\x20{\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2040%,\x20transparent);\x20color:var(--okdb-accent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x20}\x0a\x20\x20.alert\x20{\x20padding:12px\x2014px;\x20border-radius:10px;\x20font-size:12px;\x20line-height:1.6;\x20}\x0a\x20\x20.alert--error\x20{\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x20background:#2a1113;\x20color:#fca5a5;\x20}\x0a\x20\x20.muted-code\x20{\x20font-family:monospace;\x20color:var(--okdb-app-fg-muted);\x20word-break:break-all;\x20}\x0a\x20\x20.inline-link\x20{\x20background:none;\x20border:none;\x20padding:0;\x20color:var(--okdb-accent);\x20font:inherit;\x20cursor:pointer;\x20text-decoration:underline;\x20text-underline-offset:2px;\x20}\x0a\x20\x20.inline-link:hover\x20{\x20color:var(--okdb-sky);\x20}\x0a\x20\x20.json-block\x20{\x20margin:0;\x20max-height:280px;\x20overflow:auto;\x20padding:10px;\x20border-radius:8px;\x20background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20font-size:11px;\x20line-height:1.55;\x20white-space:pre-wrap;\x20word-break:break-word;\x20}\x0a','9cgSyhM','567268SwhLab','1850876TeEwTq','7UJepCi','523960xWbaWK','2167190TZJrkG'];_0x4f9a=function(){return _0x323282;};return _0x4f9a();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x2609aa=_0x4334;(function(_0x4b8edd,_0x44d30b){const _0x300d43=_0x4334,_0x7c3aa6=_0x4b8edd();while(!![]){try{const _0x160f8e=-parseInt(_0x300d43(0x177))/0x1+-parseInt(_0x300d43(0xd0))/0x2*(parseInt(_0x300d43(0x114))/0x3)+-parseInt(_0x300d43(0x11e))/0x4+parseInt(_0x300d43(0x127))/0x5*(-parseInt(_0x300d43(0x10f))/0x6)+parseInt(_0x300d43(0x139))/0x7*(parseInt(_0x300d43(0x148))/0x8)+-parseInt(_0x300d43(0x107))/0x9*(-parseInt(_0x300d43(0xc1))/0xa)+parseInt(_0x300d43(0x14c))/0xb*(parseInt(_0x300d43(0x9f))/0xc);if(_0x160f8e===_0x44d30b)break;else _0x7c3aa6['push'](_0x7c3aa6['shift']());}catch(_0x4dd191){_0x7c3aa6['push'](_0x7c3aa6['shift']());}}}(_0x395e,0x31b1f));export const EMBEDDINGS_ENGINE_TYPES=new Set([_0x2609aa(0x125),'indexer',_0x2609aa(0xe3),_0x2609aa(0x140)]);export function isEmbeddingsEngineType(_0x396df1){const _0x1222b3=_0x2609aa;return EMBEDDINGS_ENGINE_TYPES[_0x1222b3(0x8a)](_0x396df1);}export function isEmbeddingsEngine(_0x47761b){return isEmbeddingsEngineType(_0x47761b?.['type']);}export function cloneValue(_0x33537f,_0x390881={}){const _0x3ca347=_0x2609aa;try{return JSON[_0x3ca347(0xe0)](JSON[_0x3ca347(0x115)](_0x33537f??_0x390881));}catch{return JSON[_0x3ca347(0xe0)](JSON['stringify'](_0x390881));}}export function parseTagList(_0x40329e){const _0x101e16=_0x2609aa,_0x308282=String(_0x40329e??'')['split'](',')['map'](_0x4224db=>_0x4224db['trim']())['filter'](Boolean);return _0x308282[_0x101e16(0x12c)]?[...new Set(_0x308282)]:null;}export function statusTone(_0x30a75d=null){const _0x5f43f3=_0x2609aa;return _0x30a75d?.[_0x5f43f3(0x80)]?_0x5f43f3(0x13c):_0x5f43f3(0x13b)===_0x30a75d?.[_0x5f43f3(0xdc)]?_0x5f43f3(0x82):_0x5f43f3(0x12f)===_0x30a75d?.['status']?_0x5f43f3(0x16d):_0x5f43f3(0x13d);}export function readableReason(_0x4241a5){return _0x4241a5?String(_0x4241a5)['replace'](/_/g,'\x20'):null;}export function formatJsonValue(_0x459ad2){try{return JSON['stringify'](_0x459ad2,null,0x2);}catch{return String(_0x459ad2??'');}}export function resolveEngineEnvName(_0x3a4d1f=null,_0xdafe90=null){const _0x4c0633=_0x2609aa;return _0xdafe90??_0x3a4d1f?.[_0x4c0633(0x117)]??_0x3a4d1f?.[_0x4c0633(0x15d)]??_0x3a4d1f?.[_0x4c0633(0xaf)]??_0x3a4d1f?.[_0x4c0633(0xa5)]?.['source_env']??null;}export function getEnginePipelineName(_0x2fed7f=null){const _0x3ee3bd=_0x2609aa;return _0x2fed7f?.[_0x3ee3bd(0x14d)]?.[_0x3ee3bd(0xb1)]??null;}export function buildFunctionsRoute(_0x33023a,_0x26a014=null){const _0x35fd17=_0x2609aa,_0x3decb5=new URLSearchParams(),_0x262df2=_0x33023a?.['$ok']?.[_0x35fd17(0x178)]?.[_0x35fd17(0x83)]?.[_0x35fd17(0x11d)]??null;_0x262df2&&_0x3decb5[_0x35fd17(0x134)](_0x35fd17(0x117),_0x262df2),_0x26a014&&_0x3decb5[_0x35fd17(0x134)](_0x35fd17(0x156),_0x26a014);const _0x5bfe09=_0x3decb5['toString']();return'/functions'+(_0x5bfe09?'?'+_0x5bfe09:'');}export function openFunctionRoute(_0x258eeb,_0xaf4ccd,{beforeNavigate:_0x58a24d}={}){const _0x4bfc8e=_0x2609aa;if(!_0xaf4ccd)return!0x1;const _0x5f2dbe=_0x258eeb?.[_0x4bfc8e(0x119)]?.[_0x4bfc8e(0x11a)];if(_0x4bfc8e(0xac)==typeof _0x58a24d&&_0x58a24d(),_0x5f2dbe?.[_0x4bfc8e(0x120)]){const _0x37e0a9={..._0x5f2dbe['_search']||{}},_0x4fae49=_0x258eeb?.[_0x4bfc8e(0xf6)]?.['stores']?.[_0x4bfc8e(0x83)]?.[_0x4bfc8e(0x11d)]??null;_0x4fae49?_0x37e0a9[_0x4bfc8e(0x117)]=_0x4fae49:delete _0x37e0a9['env'],_0x37e0a9[_0x4bfc8e(0x156)]=_0xaf4ccd;const _0x3bd913='function'==typeof _0x5f2dbe[_0x4bfc8e(0x172)]?_0x5f2dbe[_0x4bfc8e(0x172)](_0x4bfc8e(0x109),_0x37e0a9):buildFunctionsRoute(_0x258eeb,_0xaf4ccd);return _0x5f2dbe[_0x4bfc8e(0x120)](_0x3bd913),!0x0;}return!!globalThis['location']&&(globalThis['location']['hash']='#'+buildFunctionsRoute(_0x258eeb,_0xaf4ccd),!0x0);}export function dispatchEnginePipelineSelection(_0x5e6125,_0x5cee6e=null){const _0x469a72=_0x2609aa,_0x3f3c1a=getEnginePipelineName(_0x5cee6e);return!!_0x3f3c1a&&(_0x5e6125[_0x469a72(0x15f)](_0x469a72(0xb2),_0x3f3c1a),!0x0);}function matchesLinkedEngine(_0x486078=null,_0x266896=null){const _0x5ee6d9=_0x2609aa;return!!_0x266896&&(_0x486078?.[_0x5ee6d9(0x156)]===_0x266896||_0x486078?.[_0x5ee6d9(0xfb)]===_0x266896);}function matchesLinkedFunction(_0x381ee8=null,_0x1f2a1b=null){const _0xc19699=_0x2609aa;return!!_0x1f2a1b&&(_0x381ee8?.['config']?.['handler']?.['name']===_0x1f2a1b||_0x381ee8?.['runtime']?.['handler']?.[_0xc19699(0x156)]===_0x1f2a1b);}function linkedMemberSourceType(_0x3c280f=null){const _0xed4406=_0x2609aa;return _0x3c280f?.[_0xed4406(0xa5)]?.['source_type']??_0x3c280f?.['runtime']?.[_0xed4406(0x146)]??null;}function linkedMemberJobType(_0x1a2860=null){const _0x19ca7d=_0x2609aa;return _0x1a2860?.[_0x19ca7d(0xa5)]?.['job_type']??_0x1a2860?.[_0x19ca7d(0x98)]?.['job_type']??null;}function linkedMemberQueueEnv(_0x4b2255=null){const _0x5f48e1=_0x2609aa;return _0x4b2255?.[_0x5f48e1(0xa5)]?.[_0x5f48e1(0x173)]??_0x4b2255?.[_0x5f48e1(0x98)]?.[_0x5f48e1(0x173)]??null;}export async function resolveLinkedPipeline(_0x2ff602,{envName:_0x2aeaf6=null,pipelineName:_0x36933f=null,ownerEngine:_0x489ee1=null,functionName:_0x24e388=null}={}){const _0x56a1bd=_0x2609aa,_0x36eaea=_0x2aeaf6??_0x2ff602?.[_0x56a1bd(0xf6)]?.[_0x56a1bd(0x178)]?.[_0x56a1bd(0x83)]?.[_0x56a1bd(0x11d)]??null;if(!_0x36eaea||!_0x36933f&&!_0x489ee1&&!_0x24e388)return null;let _0x45225d=[],_0xa04188=null,_0x5cd8cd=null,_0x4cabe6=null,_0x1796bb='pipelines';try{const _0x10e8d5=await fetch(__ENV__['API']+_0x56a1bd(0xb3)+encodeURIComponent(_0x36eaea)+'/pipelines');if(_0x10e8d5['ok']){const _0x5d96b1=await _0x10e8d5[_0x56a1bd(0x9c)]()[_0x56a1bd(0xbb)](()=>({}));_0x45225d=_0x5d96b1?.[_0x56a1bd(0x151)]??_0x5d96b1?.[_0x56a1bd(0xbc)]??[],_0xa04188=_0x45225d[_0x56a1bd(0xc9)](_0x10233e=>!!_0x10233e&&(!(!_0x36933f||_0x10233e[_0x56a1bd(0x156)]!==_0x36933f)||(_0x10233e[_0x56a1bd(0x11c)]??[])[_0x56a1bd(0x144)](_0x44cb95=>matchesLinkedEngine(_0x44cb95,_0x489ee1)||matchesLinkedFunction(_0x44cb95,_0x24e388))))??null,_0x5cd8cd=(_0xa04188?.['engines']??[])[_0x56a1bd(0xc9)](_0x8fdf07=>matchesLinkedEngine(_0x8fdf07,_0x489ee1))??(_0xa04188?.[_0x56a1bd(0x11c)]??[])[_0x56a1bd(0xc9)](_0x2fcd57=>matchesLinkedFunction(_0x2fcd57,_0x24e388))??(_0xa04188?.[_0x56a1bd(0x11c)]??[])[_0x56a1bd(0xc9)](_0x21b38d=>linkedMemberSourceType(_0x21b38d)&&['processor',_0x56a1bd(0x12d),_0x56a1bd(0x16f)][_0x56a1bd(0xd1)](_0x21b38d?.['type']))??(_0xa04188?.[_0x56a1bd(0x11c)]??[])[_0x56a1bd(0xc9)](_0x51ecd8=>linkedMemberSourceType(_0x51ecd8))??(_0xa04188?.[_0x56a1bd(0x11c)]??[])['find'](_0x31465a=>_0x31465a?.['config']?.[_0x56a1bd(0x111)])??null,[_0x56a1bd(0x113),_0x56a1bd(0x12d),_0x56a1bd(0x16f)][_0x56a1bd(0xd1)](_0x5cd8cd?.[_0x56a1bd(0xd5)])&&(_0x1796bb=_0x56a1bd(0x11c));}}catch{}if(!_0x5cd8cd&&(_0x489ee1||_0x24e388))try{const _0x99c423=await fetch(__ENV__[_0x56a1bd(0x16e)]+_0x56a1bd(0xb3)+encodeURIComponent(_0x36eaea)+'/engines');if(_0x99c423['ok']){const _0xa7fa2e=await _0x99c423['json']()[_0x56a1bd(0xbb)](()=>({})),_0x10a64f=_0xa7fa2e?.[_0x56a1bd(0x151)]??_0xa7fa2e?.[_0x56a1bd(0xbc)]??[];_0x4cabe6=_0x10a64f['find'](_0x5a6edd=>_0x5a6edd?.[_0x56a1bd(0x156)]===_0x489ee1||_0x5a6edd?.[_0x56a1bd(0xfb)]===_0x489ee1)??_0x10a64f['find'](_0x4e0ec7=>_0x4e0ec7?.[_0x56a1bd(0xa5)]?.[_0x56a1bd(0x161)]?.[_0x56a1bd(0x156)]===_0x24e388)??null,!_0xa04188&&_0x4cabe6&&(_0xa04188=_0x45225d[_0x56a1bd(0xc9)](_0x26d8aa=>(_0x26d8aa?.[_0x56a1bd(0x11c)]??[])[_0x56a1bd(0x144)](_0x538bb5=>matchesLinkedEngine(_0x538bb5,_0x4cabe6?.[_0x56a1bd(0x156)])||matchesLinkedEngine(_0x538bb5,_0x4cabe6?.[_0x56a1bd(0xfb)])||matchesLinkedFunction(_0x538bb5,_0x24e388)))??null),!_0x5cd8cd&&_0xa04188&&(_0x5cd8cd=(_0xa04188?.[_0x56a1bd(0x11c)]??[])[_0x56a1bd(0xc9)](_0x76d20=>matchesLinkedEngine(_0x76d20,_0x4cabe6?.[_0x56a1bd(0x156)]))??(_0xa04188?.[_0x56a1bd(0x11c)]??[])['find'](_0x155574=>matchesLinkedEngine(_0x155574,_0x4cabe6?.[_0x56a1bd(0xfb)]))??(_0xa04188?.[_0x56a1bd(0x11c)]??[])[_0x56a1bd(0xc9)](_0x3f8794=>matchesLinkedFunction(_0x3f8794,_0x24e388))??null),[_0x56a1bd(0x113),'materializer','queue-worker'][_0x56a1bd(0xd1)]((_0x5cd8cd??_0x4cabe6)?.[_0x56a1bd(0xd5)])&&(_0x1796bb=_0x56a1bd(0x11c));}}catch{}const _0x2de640=linkedMemberSourceType(_0x5cd8cd)??_0x4cabe6?.[_0x56a1bd(0xa5)]?.[_0x56a1bd(0x146)]??_0x4cabe6?.[_0x56a1bd(0x98)]?.['source_type']??(_0xa04188?.[_0x56a1bd(0x11c)]??[])[_0x56a1bd(0xae)](linkedMemberSourceType)[_0x56a1bd(0xc9)](Boolean)??null,_0x91fc22=linkedMemberJobType(_0x5cd8cd)??_0x4cabe6?.['config']?.[_0x56a1bd(0x111)]??_0x4cabe6?.[_0x56a1bd(0x98)]?.[_0x56a1bd(0x111)]??(_0xa04188?.[_0x56a1bd(0x11c)]??[])[_0x56a1bd(0xae)](linkedMemberJobType)[_0x56a1bd(0xc9)](Boolean)??null,_0x4c4f9c=linkedMemberQueueEnv(_0x5cd8cd)??_0x4cabe6?.[_0x56a1bd(0xa5)]?.[_0x56a1bd(0x173)]??_0x4cabe6?.[_0x56a1bd(0x98)]?.[_0x56a1bd(0x173)]??_0x36eaea;return _0x56a1bd(0x16f)===(_0x5cd8cd??_0x4cabe6)?.[_0x56a1bd(0xd5)]||_0x91fc22?{'envName':_0x4c4f9c,'pipelineName':_0x36933f??_0xa04188?.['name']??null,'ownerEngine':_0x489ee1??_0x5cd8cd?.[_0x56a1bd(0x156)]??_0x5cd8cd?.[_0x56a1bd(0xfb)]??_0x4cabe6?.[_0x56a1bd(0x156)]??_0x4cabe6?.[_0x56a1bd(0xfb)]??null,'sourceType':null,'jobType':_0x91fc22,'targetTab':_0x56a1bd(0x131),'targetSection':'queue'}:_0x2de640?{'envName':_0x36eaea,'pipelineName':_0x36933f??_0xa04188?.[_0x56a1bd(0x156)]??null,'ownerEngine':_0x489ee1??_0x5cd8cd?.['name']??_0x5cd8cd?.['key']??_0x4cabe6?.['name']??_0x4cabe6?.[_0x56a1bd(0xfb)]??null,'sourceType':_0x2de640,'jobType':null,'targetTab':_0x1796bb,'targetSection':'db'}:null;}export async function openLinkedPipelineRoute(_0x138748,{envName:_0x5e2428=null,pipelineName:_0x45abbc=null,ownerEngine:_0x1ab14e=null,functionName:_0x22e9c0=null,beforeNavigate:_0x2bec77}={}){const _0x2234d1=_0x2609aa,_0x2e0c02=_0x138748?.[_0x2234d1(0x119)]?.[_0x2234d1(0x11a)],_0xd58dce=await resolveLinkedPipeline(_0x138748,{'envName':_0x5e2428,'pipelineName':_0x45abbc,'ownerEngine':_0x1ab14e,'functionName':_0x22e9c0});if(!_0xd58dce)return!0x1;if('function'==typeof _0x2bec77&&_0x2bec77(),_0x138748?.[_0x2234d1(0xf6)]?.[_0x2234d1(0x178)]?.[_0x2234d1(0x83)]?.[_0x2234d1(0x11d)]&&_0x138748[_0x2234d1(0xf6)]['stores'][_0x2234d1(0x83)][_0x2234d1(0x11d)]!==_0xd58dce[_0x2234d1(0x169)]&&_0x138748[_0x2234d1(0xf6)]['stores'][_0x2234d1(0x83)]['selectEnv'](_0xd58dce['envName']),_0x2e0c02?.['push']&&_0x2234d1(0xac)==typeof _0x2e0c02[_0x2234d1(0x172)]){if(_0x2234d1(0xec)===_0xd58dce['targetSection']){const _0x73a143={'env':_0xd58dce['envName'],'view':_0xd58dce[_0x2234d1(0x163)]??_0x2234d1(0x131)};return _0xd58dce['jobType']&&(_0x73a143['type']=_0xd58dce[_0x2234d1(0x116)]),_0x2e0c02[_0x2234d1(0x120)](_0x2e0c02[_0x2234d1(0x172)]('/queue',_0x73a143)),!0x0;}if(_0xd58dce[_0x2234d1(0x8b)]){const _0x1bbccc={'env':_0xd58dce[_0x2234d1(0x169)],'pipeline':_0xd58dce[_0x2234d1(0x8b)]};return _0xd58dce[_0x2234d1(0x157)]&&(_0x1bbccc[_0x2234d1(0x157)]=_0xd58dce[_0x2234d1(0x157)]),_0x2e0c02[_0x2234d1(0x120)](_0x2e0c02[_0x2234d1(0x172)](_0x2234d1(0x99),_0x1bbccc)),!0x0;}return!!_0xd58dce[_0x2234d1(0x157)]&&(_0x2e0c02[_0x2234d1(0x120)](_0x2e0c02[_0x2234d1(0x172)](_0x2234d1(0x108),{'env':_0xd58dce[_0x2234d1(0x169)],'type':_0xd58dce[_0x2234d1(0x157)],'tab':_0xd58dce[_0x2234d1(0x163)]})),!0x0);}if(globalThis[_0x2234d1(0x159)]){if(_0x2234d1(0xec)===_0xd58dce['targetSection']){const _0x114b21=new URLSearchParams({'env':_0xd58dce['envName'],'view':_0xd58dce[_0x2234d1(0x163)]??'workers'});return _0xd58dce[_0x2234d1(0x116)]&&_0x114b21[_0x2234d1(0x134)](_0x2234d1(0xd5),_0xd58dce[_0x2234d1(0x116)]),globalThis[_0x2234d1(0x159)][_0x2234d1(0x167)]='#/queue?'+_0x114b21[_0x2234d1(0xe1)](),!0x0;}if(_0xd58dce[_0x2234d1(0x8b)]){const _0x1a06e5=new URLSearchParams({'env':_0xd58dce[_0x2234d1(0x169)],'pipeline':_0xd58dce[_0x2234d1(0x8b)]});return _0xd58dce['sourceType']&&_0x1a06e5['set']('sourceType',_0xd58dce['sourceType']),globalThis[_0x2234d1(0x159)]['hash']=_0x2234d1(0x10c)+_0x1a06e5[_0x2234d1(0xe1)](),!0x0;}if(!_0xd58dce[_0x2234d1(0x157)])return!0x1;const _0x39f962=new URLSearchParams({'env':_0xd58dce[_0x2234d1(0x169)],'type':_0xd58dce[_0x2234d1(0x157)],'tab':_0xd58dce[_0x2234d1(0x163)]});return globalThis[_0x2234d1(0x159)][_0x2234d1(0x167)]=_0x2234d1(0x10d)+_0x39f962[_0x2234d1(0xe1)](),!0x0;}return!0x1;}export function buildEmbeddingsPipelineUrl(_0x5f44c6=null,_0x13c945=null){const _0x3073cf=_0x2609aa,_0x4f56d2=_0x5f44c6?.['config']??{},_0x428d9b=encodeURIComponent(_0x4f56d2[_0x3073cf(0xa6)]??_0x3073cf(0xc0)),_0x1b495c=encodeURIComponent(_0x4f56d2[_0x3073cf(0x146)]??''),_0x3f2b8e=encodeURIComponent(_0x4f56d2[_0x3073cf(0xd7)]??_0x13c945??_0x5f44c6?.['name']??'');return __ENV__[_0x3073cf(0x16e)]+_0x3073cf(0xb3)+_0x428d9b+_0x3073cf(0x132)+_0x1b495c+_0x3073cf(0xc2)+_0x3f2b8e;}export function maskSensitiveConfig(_0x38c5f8={}){const _0x269d25=_0x2609aa;if(Array[_0x269d25(0xcb)](_0x38c5f8))return _0x38c5f8[_0x269d25(0xae)](_0x11e667=>maskSensitiveConfig(_0x11e667));if(!_0x38c5f8||'object'!=typeof _0x38c5f8)return _0x38c5f8;const _0x4ee7d2={};for(const [_0x1fd42f,_0x254fd3]of Object[_0x269d25(0xaa)](_0x38c5f8))_0x4ee7d2[_0x1fd42f]=/key|secret|pass|token/i[_0x269d25(0x15c)](_0x1fd42f)?_0x269d25(0x11b):maskSensitiveConfig(_0x254fd3);return _0x4ee7d2;}export function summarizeValidationDetails(_0x516d8d=[]){const _0x1e194e=_0x2609aa;if(!Array[_0x1e194e(0xcb)](_0x516d8d)||0x0===_0x516d8d['length'])return null;const _0x7d9706=_0x516d8d[_0x1e194e(0x168)](0x0,0x3)[_0x1e194e(0xae)]((_0x257359={})=>(''+(_0x257359[_0x1e194e(0x9d)]?_0x257359[_0x1e194e(0x9d)]+'\x20':'')+(_0x257359['message']||_0x1e194e(0x8d)))[_0x1e194e(0x128)]())[_0x1e194e(0x102)](';\x20');return _0x516d8d[_0x1e194e(0x12c)]>0x3?_0x7d9706+_0x1e194e(0x104)+(_0x516d8d[_0x1e194e(0x12c)]-0x3)+_0x1e194e(0xdb):_0x7d9706;}export function getApiErrorMessage(_0x12b780=null,_0x1c75a6=_0x2609aa(0x123)){const _0x399387=_0x2609aa,_0x7a3a0e=_0x12b780?.['error']??null,_0x5b057e=summarizeValidationDetails(_0x7a3a0e?.[_0x399387(0xe5)]??_0x12b780?.['details']??null);return _0x399387(0x133)==typeof _0x7a3a0e?_0x12b780?.[_0x399387(0x112)]?_0x12b780[_0x399387(0x112)]:_0x5b057e&&/^[A-Z0-9_]+$/['test'](_0x7a3a0e)?_0x399387(0x164)+_0x5b057e:_0x7a3a0e||_0x1c75a6:_0x7a3a0e?.['message']?_0x5b057e&&_0x399387(0x15b)===_0x7a3a0e[_0x399387(0x129)]&&!_0x7a3a0e[_0x399387(0x112)][_0x399387(0xd1)](_0x5b057e)?_0x7a3a0e[_0x399387(0x112)]+_0x399387(0xc8)+_0x5b057e:_0x7a3a0e[_0x399387(0x112)]:_0x12b780?.['message']?_0x5b057e&&!_0x12b780[_0x399387(0x112)][_0x399387(0xd1)](_0x5b057e)?_0x12b780[_0x399387(0x112)]+_0x399387(0xc8)+_0x5b057e:_0x12b780[_0x399387(0x112)]:_0x5b057e?_0x399387(0x164)+_0x5b057e:_0x1c75a6;}export function buildEngineBasePath(_0x17bde5=null,_0x2a58ed=null){const _0x4d2cf0=_0x2609aa;if(!_0x17bde5)return null;if(isEmbeddingsEngine(_0x17bde5))return _0x17bde5[_0x4d2cf0(0xfb)]?__ENV__[_0x4d2cf0(0x16e)]+_0x4d2cf0(0xdd)+encodeURIComponent(_0x17bde5[_0x4d2cf0(0xfb)]):null;const _0x11b3cf=resolveEngineEnvName(_0x17bde5,_0x2a58ed);return _0x11b3cf&&_0x17bde5[_0x4d2cf0(0xd5)]&&_0x17bde5[_0x4d2cf0(0x156)]?__ENV__[_0x4d2cf0(0x16e)]+'/env/'+encodeURIComponent(_0x11b3cf)+_0x4d2cf0(0x88)+encodeURIComponent(_0x17bde5[_0x4d2cf0(0xd5)])+'/'+encodeURIComponent(_0x17bde5[_0x4d2cf0(0x156)]):null;}function compactCount(_0x3d580e){const _0x50743c=_0x2609aa;if(null==_0x3d580e||''===_0x3d580e)return null;const _0x1790e0=Number(_0x3d580e);return Number[_0x50743c(0xd3)](_0x1790e0)&&Number[_0x50743c(0xb8)](_0x1790e0)?_0x1790e0['toLocaleString']():String(_0x3d580e);}function firstDefined(..._0x2e4c8f){for(const _0x2608cd of _0x2e4c8f)if(null!=_0x2608cd&&''!==_0x2608cd)return _0x2608cd;return null;}function pushBadge(_0x15a205,_0x2c8f84,_0x62dc4f=_0x2609aa(0x13d),_0x4ee864=null){const _0x515825=_0x2609aa;null!=_0x2c8f84&&''!==_0x2c8f84&&_0x15a205[_0x515825(0x120)]({'text':String(_0x2c8f84),'color':_0x62dc4f,'title':_0x4ee864??String(_0x2c8f84)});}function pushMetric(_0x180178,_0x38f18f,_0x5a1948,_0x3449ec={}){const _0x239c5b=_0x2609aa;null!=_0x38f18f&&''!==_0x38f18f&&null!=_0x5a1948&&''!==_0x5a1948&&'—'!==_0x5a1948&&_0x180178[_0x239c5b(0x120)]({'label':String(_0x38f18f),'value':String(_0x5a1948),'tone':_0x3449ec[_0x239c5b(0x174)]??_0x239c5b(0x135),'title':_0x3449ec['title']??_0x38f18f+':\x20'+_0x5a1948});}function buildStatusMeta(_0x51323a,_0x3c279e,_0x3f6bb3=null){return{'label':_0x51323a,'color':_0x3c279e,'title':_0x3f6bb3??'Status:\x20'+_0x51323a};}function formatClockBadge(_0x2b3320,_0x154f5b){const _0xb8bc0e=_0x2609aa,_0x31f25d=compactCount(_0x2b3320),_0x110cf5=compactCount(_0x154f5b);return null==_0x31f25d&&null==_0x110cf5?null:_0xb8bc0e(0x145)+(_0x31f25d??'—')+_0xb8bc0e(0x10a)+(_0x110cf5??'—');}function inferLag(_0x1ee5c2,_0x33ddbe,_0x22a691){const _0x9d14ed=_0x2609aa;if(null!=_0x1ee5c2&&''!==_0x1ee5c2)return _0x1ee5c2;const _0x4b6b6c=Number(_0x33ddbe),_0x313909=Number(_0x22a691);return Number[_0x9d14ed(0xd3)](_0x4b6b6c)&&Number[_0x9d14ed(0xd3)](_0x313909)?Math['max'](0x0,_0x313909-_0x4b6b6c):null;}function formatBool(_0x568803,_0x3da10b=_0x2609aa(0x85),_0x2592d2='no'){return null==_0x568803||''===_0x568803?null:_0x568803?_0x3da10b:_0x2592d2;}function formatChunkConfig(_0x369356=null){const _0x2a3890=_0x2609aa;if(!_0x369356||_0x2a3890(0x175)!=typeof _0x369356)return null;const _0x269b8e=[_0x369356[_0x2a3890(0xe6)]??_0x369356[_0x2a3890(0xd5)]??_0x2a3890(0x12b)];return null!=_0x369356[_0x2a3890(0xe8)]&&_0x269b8e['push'](compactCount(_0x369356[_0x2a3890(0xe8)])+'\x20chars'),null!=_0x369356[_0x2a3890(0x96)]&&_0x269b8e[_0x2a3890(0x120)](compactCount(_0x369356[_0x2a3890(0x96)])+'\x20overlap'),null!=_0x369356['storeText']&&_0x269b8e[_0x2a3890(0x120)](_0x2a3890(0x14f)+formatBool(_0x369356[_0x2a3890(0x12a)],'on',_0x2a3890(0x136))),_0x269b8e[_0x2a3890(0xd2)](Boolean)[_0x2a3890(0x102)](_0x2a3890(0x10a));}function formatIndexerProgress(_0x26280e=null){const _0x44a2b3=_0x2609aa;if(!_0x26280e||'object'!=typeof _0x26280e)return null;const _0x1dd599=Number(_0x26280e[_0x44a2b3(0x141)]??0x0),_0x3c0e7c=Number(_0x26280e['pending']??0x0),_0x59dbb7=Number(_0x26280e[_0x44a2b3(0x155)]??0x0),_0x3bab1e=Number(_0x26280e[_0x44a2b3(0x154)]??_0x1dd599+_0x3c0e7c+_0x59dbb7+Number(_0x26280e[_0x44a2b3(0xda)]??0x0));if(!Number[_0x44a2b3(0xd3)](_0x3bab1e)||_0x3bab1e<=0x0)return null;const _0x1ab2e8=Math[_0x44a2b3(0xb4)](Math[_0x44a2b3(0xa1)](0x0,_0x1dd599)/_0x3bab1e*0x64);return{'value':compactCount(_0x1dd599)+'/'+compactCount(_0x3bab1e)+'\x20('+_0x1ab2e8+'%)','tone':_0x59dbb7>0x0?_0x44a2b3(0xb0):_0x3c0e7c>0x0?_0x44a2b3(0xc7):'success'};}function formatClockProgress(_0x598308,_0x4ff17f){const _0x44ee1b=_0x2609aa,_0x34b63f=Number(_0x598308),_0x625e0e=Number(_0x4ff17f);if(!Number['isFinite'](_0x34b63f)||!Number[_0x44ee1b(0xd3)](_0x625e0e)||_0x625e0e<=0x0)return null;const _0x325461=Math[_0x44ee1b(0xa1)](0x0,Math[_0x44ee1b(0xb6)](_0x34b63f,_0x625e0e)),_0x48e344=Math[_0x44ee1b(0xb4)](_0x325461/_0x625e0e*0x64);return{'value':compactCount(_0x325461)+'/'+compactCount(_0x625e0e)+'\x20('+_0x48e344+'%)','tone':_0x325461>=_0x625e0e?_0x44ee1b(0x13f):_0x44ee1b(0xc7)};}export function compactEngineErrorText(_0x2001e8=null,_0x2b168b=0xa0){const _0x22854e=_0x2609aa,_0x4058c3=firstDefined(_0x2001e8?.[_0x22854e(0x122)]?.[_0x22854e(0x12f)],_0x2001e8?.['runtime']?.[_0x22854e(0x12f)],_0x2001e8?.[_0x22854e(0x12f)]);if(null==_0x4058c3)return null;const _0x1d89dd=String(_0x4058c3)[_0x22854e(0x90)](/\s+/g,'\x20')[_0x22854e(0x128)]();return _0x1d89dd?_0x1d89dd['length']>_0x2b168b?_0x1d89dd[_0x22854e(0x168)](0x0,Math['max'](0x0,_0x2b168b-0x1))[_0x22854e(0x158)]()+'…':_0x1d89dd:null;}export function compactEngineStatusMeta(_0x1f6363=null){const _0x53ed89=_0x2609aa,_0x393f5f=_0x1f6363?.['stats']??{},_0x2f8a46=_0x1f6363?.[_0x53ed89(0x98)]??{},_0x4b7035=firstDefined(_0x393f5f?.['state'],_0x2f8a46?.[_0x53ed89(0xf3)],_0x1f6363?.[_0x53ed89(0xf3)],_0x1f6363?.[_0x53ed89(0xdc)]);return!0x0===firstDefined(_0x393f5f?.['paused'],_0x2f8a46?.[_0x53ed89(0x84)],_0x1f6363?.[_0x53ed89(0x84)])?buildStatusMeta(_0x53ed89(0x84),_0x53ed89(0x82)):_0x53ed89(0x12f)===_0x4b7035||'error'===_0x1f6363?.['status']?buildStatusMeta(_0x53ed89(0x12f),_0x53ed89(0x16d)):_0x53ed89(0x13b)===_0x4b7035||_0x53ed89(0x13b)===_0x1f6363?.[_0x53ed89(0xdc)]?buildStatusMeta(_0x53ed89(0x13b),_0x53ed89(0x82)):_0x53ed89(0xfd)===_0x4b7035?buildStatusMeta(_0x53ed89(0xfd),_0x53ed89(0x8e)):_0x1f6363?.[_0x53ed89(0x80)]||'online'===_0x4b7035||_0x53ed89(0x8c)===_0x4b7035?buildStatusMeta(_0x53ed89(0x8c),_0x53ed89(0x13c)):_0x53ed89(0x89)===_0x4b7035?buildStatusMeta('degraded',_0x53ed89(0x82)):buildStatusMeta(_0x53ed89(0x10e)===_0x4b7035||_0x53ed89(0x10b)===_0x4b7035?_0x53ed89(0x10e):_0x4b7035?String(_0x4b7035):_0x53ed89(0x10e),'var(--okdb-app-fg-muted)');}function _0x4334(_0x387cbb,_0x46d009){_0x387cbb=_0x387cbb-0x7e;const _0x395e76=_0x395e();let _0x4334c3=_0x395e76[_0x387cbb];return _0x4334c3;}export function compactEngineRowStatusBadges(_0x3476fa=null){const _0x41a440=_0x2609aa,_0x4d3ae6=_0x3476fa?.['stats']??{},_0x511fcd=[],_0x3ed70d=compactEngineStatusMeta(_0x3476fa),_0x501531=readableReason(_0x3476fa?.['reason']);return pushBadge(_0x511fcd,_0x3ed70d[_0x41a440(0xbf)],_0x3ed70d[_0x41a440(0x15e)],_0x3ed70d[_0x41a440(0xcd)]),_0x41a440(0x125)===_0x3476fa?.[_0x41a440(0xd5)]&&(!0x0===_0x4d3ae6?.['ok']&&pushBadge(_0x511fcd,'healthy','var(--okdb-success)',_0x41a440(0xee)),!0x1===_0x4d3ae6?.['ok']&&pushBadge(_0x511fcd,_0x41a440(0xff),_0x41a440(0x16d),_0x41a440(0x13a))),!0x1===_0x3476fa?.[_0x41a440(0x130)]&&pushBadge(_0x511fcd,'disabled',_0x41a440(0x13d),_0x41a440(0xf2)),_0x501531&&_0x501531!==_0x3ed70d[_0x41a440(0xbf)]&&pushBadge(_0x511fcd,_0x501531,_0x41a440(0x13d),'Reason:\x20'+_0x501531),_0x511fcd;}export function compactEngineRowSummary(_0x3516e7=null){const _0x440b29=_0x2609aa,_0x1a73fa=_0x3516e7?.[_0x440b29(0xa5)]??{},_0x43d50f=_0x3516e7?.[_0x440b29(0x122)]??{},_0x1a17ac=_0x43d50f?.[_0x440b29(0xce)]??_0x43d50f??{},_0x480c4b=_0x43d50f?.[_0x440b29(0x14b)]??_0x43d50f??{},_0x21cee2=_0x43d50f?.[_0x440b29(0x161)]?.['name']??_0x1a73fa?.['handler']?.[_0x440b29(0x156)]??null;switch(_0x3516e7?.[_0x440b29(0xd5)]){case _0x440b29(0x16f):return _0x440b29(0xa0)+(_0x43d50f?.[_0x440b29(0x111)]??_0x1a73fa?.[_0x440b29(0x111)]??_0x440b29(0x11f));case _0x440b29(0x113):return _0x440b29(0x7f)+(_0x43d50f?.['source_type']??_0x1a73fa?.['source_type']??_0x440b29(0x171));case _0x440b29(0x12d):return(_0x43d50f?.[_0x440b29(0x146)]??_0x1a73fa?.[_0x440b29(0x146)]??_0x440b29(0x93))+_0x440b29(0xf4)+(_0x43d50f?.[_0x440b29(0xa7)]??_0x1a73fa?.[_0x440b29(0xa7)]??_0x440b29(0xb7));case _0x440b29(0x125):return(_0x43d50f?.[_0x440b29(0xb5)]??_0x1a73fa?.[_0x440b29(0xb5)]??_0x3516e7?.['name']??_0x440b29(0xa9))+_0x440b29(0x97)+(_0x43d50f?.[_0x440b29(0xd5)]??_0x1a73fa?.['type']??_0x1a73fa?.[_0x440b29(0x103)]??'provider');case _0x440b29(0xce):return'Indexes\x20'+(_0x1a17ac?.['source_type']??_0x1a73fa?.[_0x440b29(0x146)]??_0x440b29(0x9e));case _0x440b29(0x140):return _0x440b29(0x176)+(_0x480c4b?.[_0x440b29(0xd7)]??_0x1a73fa?.[_0x440b29(0xd7)]??_0x3516e7?.[_0x440b29(0x156)]??'vector\x20index');case _0x440b29(0xe3):return _0x440b29(0x95)+(_0x43d50f?.['indexer']??_0x1a73fa?.['indexer']?_0x440b29(0xde)+(_0x43d50f?.['indexer']??_0x1a73fa[_0x440b29(0xce)]):'');default:return _0x21cee2?_0x440b29(0xba)+_0x21cee2:_0x3516e7?.[_0x440b29(0x156)]??_0x3516e7?.[_0x440b29(0xfb)]??'Engine';}}export function compactEngineRowMetrics(_0x1e39d8=null){const _0x58dfae=_0x2609aa,_0x17e065=_0x1e39d8?.[_0x58dfae(0xa5)]??{},_0x28470f=_0x1e39d8?.[_0x58dfae(0x122)]??{},_0x1fd6fa=_0x28470f?.['indexer']??_0x28470f??{},_0x5d6b3f=_0x28470f?.['search']??_0x28470f??{},_0xd65132=[],_0x23e80c=firstDefined(_0x28470f?.[_0x58dfae(0xf1)],_0x1e39d8?.[_0x58dfae(0x98)]?.[_0x58dfae(0xf1)],_0x1e39d8?.[_0x58dfae(0xf1)],_0x1fd6fa?.['last_seen_clock'],_0x5d6b3f?.[_0x58dfae(0x91)]),_0x225b4d=firstDefined(_0x28470f?.[_0x58dfae(0xf8)],_0x1e39d8?.['runtime']?.['headClock'],_0x1e39d8?.[_0x58dfae(0xf8)],_0x1fd6fa?.[_0x58dfae(0xd8)],_0x5d6b3f?.[_0x58dfae(0xd8)]),_0x4138e7=inferLag(firstDefined(_0x28470f?.['lag'],_0x1e39d8?.['runtime']?.[_0x58dfae(0x106)],_0x1e39d8?.[_0x58dfae(0x106)],_0x1fd6fa?.[_0x58dfae(0x106)],_0x5d6b3f?.[_0x58dfae(0x106)]),_0x23e80c,_0x225b4d),_0x2b141b=formatClockBadge(_0x23e80c,_0x225b4d);switch(_0x1e39d8?.['type']){case _0x58dfae(0x16f):pushMetric(_0xd65132,_0x58dfae(0xa4),compactCount(_0x28470f?.[_0x58dfae(0xef)]??0x0),{'tone':_0x58dfae(0x13f)}),pushMetric(_0xd65132,'Error',compactCount(_0x28470f?.[_0x58dfae(0x155)]??0x0),{'tone':(_0x28470f?.['failed']??0x0)>0x0?'danger':_0x58dfae(0x135)}),pushMetric(_0xd65132,'Queue',_0x28470f?.[_0x58dfae(0x173)]??_0x17e065?.[_0x58dfae(0x173)]??_0x1e39d8?.[_0x58dfae(0x117)]??_0x58dfae(0xc0)),pushMetric(_0xd65132,'Handler',_0x28470f?.[_0x58dfae(0x161)]?.['name']??_0x17e065?.[_0x58dfae(0x161)]?.['name'],{'title':'Queue\x20worker\x20handler'});break;case _0x58dfae(0x113):null!=_0x28470f?.[_0x58dfae(0x14e)]&&pushMetric(_0xd65132,_0x58dfae(0xf0),compactCount(_0x28470f['processedChanges'])),null!=_0x28470f?.[_0x58dfae(0x124)]&&pushMetric(_0xd65132,_0x58dfae(0x86),compactCount(_0x28470f['failedBatches']),{'tone':(_0x28470f?.['failedBatches']??0x0)>0x0?_0x58dfae(0xb0):'neutral','title':_0x58dfae(0x87)}),null!=_0x28470f?.[_0x58dfae(0xed)]&&pushMetric(_0xd65132,'Active',compactCount(_0x28470f[_0x58dfae(0xed)]),{'tone':(_0x28470f?.[_0x58dfae(0xed)]??0x0)>0x0?_0x58dfae(0xa2):_0x58dfae(0x135),'title':'Running\x20batches'}),null!=_0x4138e7&&pushMetric(_0xd65132,'Lag',0x0===_0x4138e7?_0x58dfae(0x170):compactCount(_0x4138e7),{'tone':Number(_0x4138e7)>0x0?'warning':_0x58dfae(0x13f)}),_0x2b141b&&pushMetric(_0xd65132,'Clock',_0x2b141b['replace'](/^clock\s+/i,'')),pushMetric(_0xd65132,'Mode',_0x28470f?.[_0x58dfae(0x142)]??_0x17e065?.[_0x58dfae(0x142)]??_0x58dfae(0xea));break;case _0x58dfae(0x12d):null!=_0x28470f?.['targetCount']&&pushMetric(_0xd65132,'Rows',compactCount(_0x28470f[_0x58dfae(0xcc)]),{'tone':_0x58dfae(0x13f)}),null!=_0x28470f?.[_0x58dfae(0x94)]&&pushMetric(_0xd65132,_0x58dfae(0xfa),compactCount(_0x28470f[_0x58dfae(0x94)])),null!=_0x28470f?.[_0x58dfae(0x124)]&&pushMetric(_0xd65132,_0x58dfae(0x86),compactCount(_0x28470f[_0x58dfae(0x124)]),{'tone':(_0x28470f?.[_0x58dfae(0x124)]??0x0)>0x0?_0x58dfae(0xb0):_0x58dfae(0x135),'title':_0x58dfae(0x87)}),null!=_0x28470f?.[_0x58dfae(0xed)]&&pushMetric(_0xd65132,_0x58dfae(0xf7),compactCount(_0x28470f[_0x58dfae(0xed)]),{'tone':(_0x28470f?.['runningBatches']??0x0)>0x0?_0x58dfae(0xa2):'neutral','title':_0x58dfae(0xeb)}),null!=_0x4138e7&&pushMetric(_0xd65132,'Lag',0x0===_0x4138e7?_0x58dfae(0x170):compactCount(_0x4138e7),{'tone':Number(_0x4138e7)>0x0?_0x58dfae(0xc7):'success'}),_0x2b141b&&pushMetric(_0xd65132,'Clock',_0x2b141b[_0x58dfae(0x90)](/^clock\s+/i,''));break;case _0x58dfae(0x125):pushMetric(_0xd65132,_0x58dfae(0x143),_0x28470f?.[_0x58dfae(0xd5)]??_0x17e065?.[_0x58dfae(0xd5)]??_0x17e065?.[_0x58dfae(0x103)]),pushMetric(_0xd65132,_0x58dfae(0xc5),_0x28470f?.['model']??_0x17e065?.[_0x58dfae(0xb5)]),null!=_0x28470f?.[_0x58dfae(0xbe)]&&pushMetric(_0xd65132,'Latency',compactCount(_0x28470f[_0x58dfae(0xbe)])+'\x20ms',{'tone':_0x58dfae(0xa2)});break;case _0x58dfae(0xce):if(_0x1fd6fa[_0x58dfae(0xe7)]&&pushMetric(_0xd65132,'Done',compactCount(_0x1fd6fa['doc_counts']['done']??0x0),{'tone':'success'}),_0x1fd6fa[_0x58dfae(0xe7)]){const _0x3c5011=formatIndexerProgress(_0x1fd6fa[_0x58dfae(0xe7)]);_0x3c5011&&pushMetric(_0xd65132,_0x58dfae(0xb9),_0x3c5011[_0x58dfae(0x110)],{'tone':_0x3c5011[_0x58dfae(0x174)],'title':'Indexed\x20documents\x20/\x20total\x20tracked\x20documents'});}else{const _0x2c05a2=formatClockProgress(_0x23e80c,_0x225b4d);_0x2c05a2&&pushMetric(_0xd65132,_0x58dfae(0xb9),_0x2c05a2[_0x58dfae(0x110)],{'tone':_0x2c05a2[_0x58dfae(0x174)],'title':_0x58dfae(0xc3)});}_0x1fd6fa[_0x58dfae(0xe7)]&&pushMetric(_0xd65132,'Pending',compactCount(_0x1fd6fa['doc_counts'][_0x58dfae(0xfc)]??0x0),{'tone':(_0x1fd6fa['doc_counts']['pending']??0x0)>0x0?_0x58dfae(0xc7):_0x58dfae(0x135)}),_0x1fd6fa[_0x58dfae(0xe7)]&&pushMetric(_0xd65132,_0x58dfae(0x86),compactCount(_0x1fd6fa[_0x58dfae(0xe7)][_0x58dfae(0x155)]??0x0),{'tone':(_0x1fd6fa[_0x58dfae(0xe7)][_0x58dfae(0x155)]??0x0)>0x0?_0x58dfae(0xb0):_0x58dfae(0x135)}),null!=_0x1fd6fa?.[_0x58dfae(0xf5)]&&pushMetric(_0xd65132,_0x58dfae(0x81),compactCount(_0x1fd6fa[_0x58dfae(0xf5)]),{'tone':_0x58dfae(0x13f)}),_0x2b141b&&pushMetric(_0xd65132,_0x58dfae(0x16c),_0x2b141b['replace'](/^clock\s+/i,'')),null!=_0x4138e7&&pushMetric(_0xd65132,_0x58dfae(0xc6),0x0===_0x4138e7?_0x58dfae(0x170):compactCount(_0x4138e7),{'tone':Number(_0x4138e7)>0x0?_0x58dfae(0xc7):'success'}),pushMetric(_0xd65132,_0x58dfae(0x150),_0x1fd6fa[_0x58dfae(0x9d)]??_0x17e065?.[_0x58dfae(0x9d)]??'whole\x20record'),pushMetric(_0xd65132,_0x58dfae(0xa8),_0x1fd6fa['mode']??_0x17e065?.[_0x58dfae(0x142)]),pushMetric(_0xd65132,_0x58dfae(0x7e),_0x1fd6fa[_0x58dfae(0x12e)]??_0x17e065?.[_0x58dfae(0x12e)]),pushMetric(_0xd65132,_0x58dfae(0xad),formatChunkConfig(_0x1fd6fa[_0x58dfae(0x9b)]??_0x17e065?.[_0x58dfae(0x9b)])),pushMetric(_0xd65132,'Embedder',_0x1fd6fa[_0x58dfae(0x125)]??_0x17e065?.['embedder']);break;case _0x58dfae(0x140):null==_0x5d6b3f['count']&&null==_0x5d6b3f[_0x58dfae(0xf5)]||pushMetric(_0xd65132,_0x58dfae(0x81),compactCount(_0x5d6b3f[_0x58dfae(0xc4)]??_0x5d6b3f[_0x58dfae(0xf5)]),{'tone':_0x58dfae(0x13f)}),null!=_0x5d6b3f['dims']&&pushMetric(_0xd65132,'Dims',compactCount(_0x5d6b3f[_0x58dfae(0xdf)])),pushMetric(_0xd65132,_0x58dfae(0xca),_0x5d6b3f[_0x58dfae(0xe4)]??_0x17e065?.[_0x58dfae(0xe4)]);break;case'embed-worker':null!=_0x28470f?.[_0x58dfae(0xef)]&&pushMetric(_0xd65132,_0x58dfae(0xa4),compactCount(_0x28470f[_0x58dfae(0xef)]),{'tone':'success'}),null!=_0x28470f?.[_0x58dfae(0x155)]&&pushMetric(_0xd65132,_0x58dfae(0x86),compactCount(_0x28470f['failed']),{'tone':(_0x28470f?.['failed']??0x0)>0x0?_0x58dfae(0xb0):_0x58dfae(0x135)}),null!=_0x28470f?.['in_flight']&&pushMetric(_0xd65132,_0x58dfae(0xf7),compactCount(_0x28470f['in_flight']),{'tone':(_0x28470f?.[_0x58dfae(0x165)]??0x0)>0x0?'accent':'neutral'}),null!=_0x28470f?.[_0x58dfae(0x14a)]&&pushMetric(_0xd65132,_0x58dfae(0x162),compactCount(_0x28470f[_0x58dfae(0x14a)]),{'tone':_0x58dfae(0xa2)}),pushMetric(_0xd65132,'Indexer',_0x28470f?.[_0x58dfae(0xce)]??_0x17e065?.['indexer']);break;default:null!=_0x4138e7&&pushMetric(_0xd65132,'Lag',0x0===_0x4138e7?_0x58dfae(0x170):compactCount(_0x4138e7),{'tone':Number(_0x4138e7)>0x0?_0x58dfae(0xc7):_0x58dfae(0x13f)}),pushMetric(_0xd65132,'Type',_0x17e065?.[_0x58dfae(0x146)]);}return Array[_0x58dfae(0xcb)](_0x1e39d8?.[_0x58dfae(0x121)])&&_0x1e39d8[_0x58dfae(0x121)][_0x58dfae(0x12c)]&&pushMetric(_0xd65132,'Affinity',_0x1e39d8[_0x58dfae(0x121)][_0x58dfae(0x102)](',\x20')),_0xd65132;}function _0x395e(){const _0xb35bdb=['queue-worker','caught\x20up','source\x20changes','resolve','queue_env','tone','object','Searches\x20','87031HXpgPK','stores','Prepare','Watches\x20','isRunning','Vectors','var(--okdb-warning)','okdb','paused','yes','Error','Failed\x20batches','/engines/','degraded','has','pipelineName','running','is\x20invalid','var(--okdb-info)','flat','replace','last_seen_clock','ttl','source','appliedOps','Runs\x20queued\x20embedding\x20jobs','overlap','\x20on\x20','runtime','/engines','Rows','chunk','json','field','source\x20docs','7404360VOZQxj','Consumes\x20','max','accent','Source','Done','config','source_env','target_type','Mode','Embedder','entries','Indexer','function','Chunk','map','storeEnv','danger','pipeline','select-pipeline','/env/','round','model','min','target','isInteger','Progress','Uses\x20ƒ\x20','catch','result','Poll','latency','label','default','10FaZaOh','/pipelines/','Indexer\x20cursor\x20/\x20source\x20head\x20clock','count','Model','Lag','warning','\x20—\x20','find','Algorithm','isArray','targetCount','title','indexer','Configured\x20handler\x20function','149734yrVGFR','includes','filter','isFinite','Source\x20env','type','Storage','storage_key','head_clock','Target\x20env','deleted','\x20more)','status','/embeddings/engines/','\x20for\x20','dims','parse','toString','TTL','embed-worker','algorithm','details','strategy','doc_counts','size','target_env','async','Running\x20batches','queue','runningBatches','Provider\x20health\x20check\x20is\x20healthy','processed','Changes','lastClock','Engine\x20is\x20disabled','state','\x20→\x20','vector_count','$ok','Active','headClock','Concurrency','Ops','key','pending','building','forEach','unhealthy','Origin','\x20ms','join','provider','\x20(+','Queue\x20env','lag','3380121WQEbeS','/db','/functions','\x20/\x20','idle','#/engines?','#/db?','stopped','266130UoUIXV','value','job_type','message','processor','12boyjdO','stringify','jobType','env','Target','$vars','$router','***','engines','selectedEnv','1418820cVOBSc','queue\x20jobs','push','affinity','stats','Request\x20failed','failedBatches','embedder','algorithm_config','15PiLMuM','trim','code','storeText','chunked','length','materializer','prepare','error','enabled','workers','/type/','string','set','neutral','off','Job\x20type','delete','63NcqYNO','Provider\x20health\x20check\x20failed','inactive','var(--okdb-success)','var(--okdb-app-fg-muted)','Dims','success','vector-search','done','mode','Provider','some','clock\x20','source_type','pollInterval','75752WzhUKb','Batch','concurrency','search','11kOcnVq','meta','processedChanges','store\x20text\x20','Field','data','Pending','Handler','total','failed','name','sourceType','trimEnd','location','recordRuns','VALIDATION_ERROR','test','_uiEnv','color','$dispatch','Run\x20log','handler','Workers','targetTab','Validation\x20failed:\x20','in_flight','Bootstrap','hash','slice','envName','Clear\x20target','batchSize','Clock','var(--okdb-danger)','API'];_0x395e=function(){return _0xb35bdb;};return _0x395e();}export function compactEngineRowPreview(_0x39227a=null){const _0x433521=_0x2609aa,_0x19d6bd=compactEngineRowMetrics(_0x39227a),_0x52be7b=new Map(_0x19d6bd[_0x433521(0xae)](_0x3bcb89=>[_0x3bcb89['label'],_0x3bcb89])),_0x40ae9a=[],_0x4d7d70=_0x102697=>{const _0x3854d8=_0x433521,_0x3020cc=_0x52be7b['get'](_0x102697);_0x3020cc&&(_0x40ae9a[_0x3854d8(0x120)](_0x3020cc),_0x52be7b[_0x3854d8(0x138)](_0x102697));};switch(_0x39227a?.[_0x433521(0xd5)]){case _0x433521(0xce):[_0x433521(0xb9),_0x433521(0xc6),_0x433521(0x152),'Error',_0x433521(0x81),_0x433521(0xad)][_0x433521(0xfe)](_0x4d7d70);break;case _0x433521(0xe3):case _0x433521(0x16f):['Done','Error','Active',_0x433521(0x162)][_0x433521(0xfe)](_0x4d7d70);break;case _0x433521(0x113):['Changes','Error','Active',_0x433521(0xc6)][_0x433521(0xfe)](_0x4d7d70);break;case _0x433521(0x12d):[_0x433521(0x9a),_0x433521(0xfa),_0x433521(0x86),_0x433521(0xf7),_0x433521(0xc6)][_0x433521(0xfe)](_0x4d7d70);break;case _0x433521(0x140):['Vectors',_0x433521(0x13e),'Algorithm'][_0x433521(0xfe)](_0x4d7d70);break;case'embedder':['Model',_0x433521(0x143),'Latency']['forEach'](_0x4d7d70);break;default:['Error',_0x433521(0xc6),'Type'][_0x433521(0xfe)](_0x4d7d70);}return _0x40ae9a[_0x433521(0x168)](0x0,0x3);}export function compactEngineConfigMetrics(_0x2bc881=null){const _0x58f57c=_0x2609aa,_0x128a84=_0x2bc881?.[_0x58f57c(0xa5)]??{},_0x1363af=_0x2bc881?.[_0x58f57c(0x122)]??{},_0x15db83=_0x2bc881?.[_0x58f57c(0x98)]??{},_0x59f803=[],_0x31662b=_0x128a84?.[_0x58f57c(0x161)]??_0x15db83?.[_0x58f57c(0x161)]??_0x1363af?.[_0x58f57c(0x161)]??null;switch(_0x2bc881?.['type']){case _0x58f57c(0x113):pushMetric(_0x59f803,_0x58f57c(0xa3),_0x128a84?.['source_type']??_0x1363af?.[_0x58f57c(0x146)]),pushMetric(_0x59f803,_0x58f57c(0xd4),_0x128a84?.[_0x58f57c(0xa6)]??_0x15db83?.[_0x58f57c(0xa6)]),pushMetric(_0x59f803,'Mode',_0x128a84?.[_0x58f57c(0x142)]??_0x1363af?.[_0x58f57c(0x142)]??_0x58f57c(0xea)),pushMetric(_0x59f803,_0x58f57c(0x166),_0x128a84?.['bootstrap']),pushMetric(_0x59f803,_0x58f57c(0x149),compactCount(_0x128a84?.['batchSize'])),pushMetric(_0x59f803,_0x58f57c(0x100),_0x128a84?.['originMode']);break;case'materializer':pushMetric(_0x59f803,'Source',_0x128a84?.['source_type']??_0x1363af?.[_0x58f57c(0x146)]),pushMetric(_0x59f803,_0x58f57c(0x118),_0x128a84?.[_0x58f57c(0xa7)]??_0x1363af?.[_0x58f57c(0xa7)]),pushMetric(_0x59f803,_0x58f57c(0xd4),_0x128a84?.[_0x58f57c(0xa6)]??_0x15db83?.[_0x58f57c(0xa6)]),pushMetric(_0x59f803,_0x58f57c(0xd9),_0x128a84?.[_0x58f57c(0xe9)]??_0x15db83?.[_0x58f57c(0xe9)]),pushMetric(_0x59f803,'Bootstrap',_0x128a84?.['bootstrap']),pushMetric(_0x59f803,_0x58f57c(0x149),compactCount(_0x128a84?.[_0x58f57c(0x16b)])),pushMetric(_0x59f803,_0x58f57c(0x100),_0x128a84?.['originMode']),pushMetric(_0x59f803,_0x58f57c(0x16a),formatBool(_0x128a84?.['clearTargetOnRebuild'],'on',_0x58f57c(0x136)));break;case _0x58f57c(0x16f):pushMetric(_0x59f803,_0x58f57c(0x137),_0x128a84?.[_0x58f57c(0x111)]??_0x1363af?.[_0x58f57c(0x111)]),pushMetric(_0x59f803,_0x58f57c(0x105),_0x128a84?.['queue_env']??_0x1363af?.['queue_env']),pushMetric(_0x59f803,'Concurrency',compactCount(_0x128a84?.['concurrency']??_0x1363af?.[_0x58f57c(0x14a)]));break;case _0x58f57c(0x125):pushMetric(_0x59f803,_0x58f57c(0x143),_0x128a84?.['type']??_0x128a84?.[_0x58f57c(0x103)]??_0x1363af?.['type']),pushMetric(_0x59f803,'Model',_0x128a84?.[_0x58f57c(0xb5)]??_0x1363af?.[_0x58f57c(0xb5)]),pushMetric(_0x59f803,_0x58f57c(0x13e),compactCount(_0x128a84?.[_0x58f57c(0xdf)]??_0x1363af?.[_0x58f57c(0xdf)]));break;case _0x58f57c(0xce):pushMetric(_0x59f803,_0x58f57c(0xa3),_0x128a84?.[_0x58f57c(0x146)]??_0x1363af?.['source_type']),pushMetric(_0x59f803,_0x58f57c(0xd4),_0x128a84?.[_0x58f57c(0xa6)]??_0x15db83?.[_0x58f57c(0xa6)]),pushMetric(_0x59f803,_0x58f57c(0x150),_0x128a84?.[_0x58f57c(0x9d)]??_0x1363af?.[_0x58f57c(0x9d)]??'whole\x20record'),pushMetric(_0x59f803,_0x58f57c(0xa8),_0x128a84?.['mode']??_0x1363af?.['mode']),pushMetric(_0x59f803,'Storage',_0x128a84?.[_0x58f57c(0xd7)]??_0x1363af?.['storage_key']),pushMetric(_0x59f803,_0x58f57c(0x13e),compactCount(_0x128a84?.[_0x58f57c(0xdf)]??_0x1363af?.[_0x58f57c(0xdf)])),pushMetric(_0x59f803,_0x58f57c(0x7e),_0x128a84?.[_0x58f57c(0x12e)]??_0x1363af?.[_0x58f57c(0x12e)]),pushMetric(_0x59f803,_0x58f57c(0xad),formatChunkConfig(_0x128a84?.[_0x58f57c(0x9b)]??_0x1363af?.['chunk'])),pushMetric(_0x59f803,_0x58f57c(0xa9),_0x128a84?.[_0x58f57c(0x125)]??_0x1363af?.[_0x58f57c(0x125)]);break;case'vector-search':if(pushMetric(_0x59f803,_0x58f57c(0xa3),_0x128a84?.[_0x58f57c(0x146)]??_0x1363af?.['source_type']),pushMetric(_0x59f803,'Source\x20env',_0x128a84?.[_0x58f57c(0xa6)]??_0x15db83?.['source_env']),pushMetric(_0x59f803,_0x58f57c(0xd6),_0x128a84?.[_0x58f57c(0xd7)]??_0x1363af?.['storage_key']),pushMetric(_0x59f803,_0x58f57c(0x13e),compactCount(_0x128a84?.[_0x58f57c(0xdf)]??_0x1363af?.[_0x58f57c(0xdf)])),pushMetric(_0x59f803,_0x58f57c(0xca),_0x128a84?.['algorithm']??_0x1363af?.[_0x58f57c(0xe4)]??_0x58f57c(0x8f)),_0x128a84?.[_0x58f57c(0x126)]&&'object'==typeof _0x128a84[_0x58f57c(0x126)]){for(const [_0x185ac0,_0x98ee]of Object[_0x58f57c(0xaa)](_0x128a84[_0x58f57c(0x126)]))pushMetric(_0x59f803,_0x185ac0,compactCount(_0x98ee));}pushMetric(_0x59f803,'Embedder',_0x128a84?.['embedder']??_0x1363af?.['embedder']);break;case _0x58f57c(0xe3):pushMetric(_0x59f803,_0x58f57c(0x137),_0x128a84?.[_0x58f57c(0x111)]??_0x1363af?.[_0x58f57c(0x111)]),pushMetric(_0x59f803,_0x58f57c(0xab),_0x128a84?.[_0x58f57c(0xce)]??_0x1363af?.['indexer']),pushMetric(_0x59f803,_0x58f57c(0xa9),_0x128a84?.['embedder']??_0x1363af?.[_0x58f57c(0x125)]),pushMetric(_0x59f803,_0x58f57c(0xf9),compactCount(_0x128a84?.['concurrency']??_0x1363af?.[_0x58f57c(0x14a)])),pushMetric(_0x59f803,_0x58f57c(0xbd),null!=_0x128a84?.[_0x58f57c(0x147)]?compactCount(_0x128a84[_0x58f57c(0x147)])+_0x58f57c(0x101):null),pushMetric(_0x59f803,_0x58f57c(0xe2),null!=_0x128a84?.[_0x58f57c(0x92)]?compactCount(_0x128a84[_0x58f57c(0x92)])+_0x58f57c(0x101):null);break;default:pushMetric(_0x59f803,'Source',_0x128a84?.[_0x58f57c(0x146)]??_0x1363af?.[_0x58f57c(0x146)]),pushMetric(_0x59f803,_0x58f57c(0x118),_0x128a84?.[_0x58f57c(0xa7)]??_0x1363af?.[_0x58f57c(0xa7)]),pushMetric(_0x59f803,'Mode',_0x128a84?.[_0x58f57c(0x142)]??_0x1363af?.[_0x58f57c(0x142)]);}return _0x31662b?.['name']&&pushMetric(_0x59f803,_0x58f57c(0x153),_0x31662b[_0x58f57c(0x156)],{'title':_0x58f57c(0xcf)}),_0x31662b?.[_0x58f57c(0x15a)]&&pushMetric(_0x59f803,_0x58f57c(0x160),_0x31662b['recordRuns'],{'title':'Function\x20run\x20recording\x20policy'}),_0x59f803;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<script type="module">import enginesOverview from"../embeddings/parts/engines-overview.ok.js";import pipelineCreatePanel from"../embeddings/parts/pipeline-create-panel.ok.js";import eventsStore from"../../stores/events-store.js";export default{tag:"engines-index",unwrap:!0,dependencies:[enginesOverview,pipelineCreatePanel],context:e=>({embedEngines:[],embedPipelines:[],fileEngines:{},view:"overview",mode:"pipelines",pipelineType:"all",engineType:"",status:"all",search:"",sourceTypeFilter:"",selectedPipelineName:"",createKind:"",busy:!1,_unsubs:[],get selectedEnv(){return e.$ok.stores.okdb.selectedEnv||"default"},normalizeView:e=>["overview","create"].includes(e)?e:"overview",normalizeMode:e=>["pipelines","engines"].includes(e)?e:"pipelines",normalizePipelineType:e=>["all","embedding","file"].includes(e)?e:"all",normalizeEngineType:e=>String(e||"").trim(),legacyFilterState(e){switch(e){case"pipelines":default:return{mode:"pipelines",pipelineType:"all",engineType:""};case"standalone":case"runtime":return{mode:"engines",pipelineType:"all",engineType:""};case"embedding":return{mode:"pipelines",pipelineType:"embedding",engineType:""};case"file":return{mode:"pipelines",pipelineType:"file",engineType:""}}},normalizeStatus:e=>["all","running","attention","stopped"].includes(e)?e:"all",normalizeCreateKind:e=>["processor","materializer","queue-worker","embedding"].includes(e)?e:"",setView(e){const t=this.normalizeView(e);this.view!==t&&(this.view=t,this.syncRouteState())},setModeFilter(e){const t=this.normalizeMode(e);this.mode!==t&&(this.mode=t,"pipelines"===t&&(this.engineType=""),"engines"===t&&(this.pipelineType="all",this.selectedPipelineName=""),this.syncRouteState())},setPipelineTypeFilter(e){const t=this.normalizePipelineType(e);this.pipelineType!==t&&(this.pipelineType=t,this.syncRouteState())},setEngineTypeFilter(e){const t=this.normalizeEngineType(e);this.engineType!==t&&(this.engineType=t,this.syncRouteState())},setSourceTypeFilter(e){const t=String(e??"");this.sourceTypeFilter!==t&&(this.sourceTypeFilter=t,this.syncRouteState())},get availableSourceTypes(){const e=new Set;for(const t of this.embedEngines??[])t?.config?.source_type&&e.add(t.config.source_type),t?.runtime?.source_type&&e.add(t.runtime.source_type),t?.stats?.source_type&&e.add(t.stats.source_type),t?.stats?.indexer?.source_type&&e.add(t.stats.indexer.source_type),t?.config?.target_type&&e.add(t.config.target_type);const t=this.fileEngines??{};for(const i of[...t.extractors??[],...t.collections??[],...t.workers??[]])i?.config?.source_type&&e.add(i.config.source_type);return[...e].sort()},get availableEngineTypes(){const e=new Set;for(const t of this.embedEngines??[])t?.type&&e.add(t.type);const t=this.fileEngines??{};for(const i of[...t.extractors??[],...t.collections??[],...t.workers??[]])i?.type&&e.add(i.type);return[...e].sort()},get workspaceCount(){const e=this.fileEngines??{},t=(this.embedEngines??[]).length+(e.extractors??[]).length+(e.collections??[]).length+(e.workers??[]).length,i=(this.embedPipelines??[]).length+(e.collections??[]).length;return"engines"===this.mode?t:i},get searchPlaceholder(){return"engines"===this.mode?"Search engines…":"Search pipelines…"},get routeSearch(){return e.$vars?.$route?.search??e.$vars?.$router?._search??{}},applyRouteState(){const e=this.routeSearch,t=this.legacyFilterState(e.family||""),i=this.normalizeView(e.view||"overview"),s=this.normalizeMode(e.mode||t.mode||"pipelines"),n=this.normalizePipelineType(e.pipelineType||t.pipelineType||"all"),r=this.normalizeEngineType(e.engineType||t.engineType||""),l=this.normalizeStatus(e.status||"all"),o=String(e.search||""),a=String(e.sourceType||""),p=String(e.pipeline||""),h=this.normalizeCreateKind(e.kind||"");this.view!==i&&(this.view=i),this.mode!==s&&(this.mode=s),this.pipelineType!==n&&(this.pipelineType=n),this.engineType!==r&&(this.engineType=r),this.status!==l&&(this.status=l),this.search!==o&&(this.search=o),this.sourceTypeFilter!==a&&(this.sourceTypeFilter=a),this.selectedPipelineName!==p&&(this.selectedPipelineName=p),this.createKind!==h&&(this.createKind=h)},syncRouteState(){const t=e.$vars?.$router;if(!t?.resolve||!t?.replace)return;const i=this.routeSearch,s={...i};this.view&&"overview"!==this.view?s.view=this.view:delete s.view,this.mode&&"pipelines"!==this.mode?s.mode=this.mode:delete s.mode,this.pipelineType&&"all"!==this.pipelineType?s.pipelineType=this.pipelineType:delete s.pipelineType,this.engineType?s.engineType=this.engineType:delete s.engineType,this.status&&"all"!==this.status?s.status=this.status:delete s.status,this.search?.trim()?s.search=this.search.trim():delete s.search,this.sourceTypeFilter?.trim()?s.sourceType=this.sourceTypeFilter.trim():delete s.sourceType,this.selectedPipelineName?.trim()?s.pipeline=this.selectedPipelineName.trim():delete s.pipeline,"create"===this.view&&this.createKind?s.kind=this.createKind:delete s.kind,delete s.family;const n=this.legacyFilterState(i.family||""),r=this.normalizeView(i.view||"overview"),l=this.normalizeMode(i.mode||n.mode||"pipelines"),o=this.normalizePipelineType(i.pipelineType||n.pipelineType||"all"),a=this.normalizeEngineType(i.engineType||n.engineType||""),p=this.normalizeStatus(i.status||"all"),h=String(i.search||""),c=String(i.sourceType||""),d=String(i.pipeline||""),u=this.normalizeCreateKind(i.kind||"");if(r===this.view&&l===this.mode&&o===this.pipelineType&&a===this.engineType&&p===this.status&&h===(this.search||"")&&c===(this.sourceTypeFilter||"")&&d===(this.selectedPipelineName||"")&&u===(this.createKind||""))return;const y=e.$vars?.$route?.location||t._path||"/engines";t.replace(t.resolve(y,s,t._anchor||""))},clearFilters(){("all"!==this.pipelineType||this.engineType||"all"!==this.status||this.search||this.sourceTypeFilter)&&(this.pipelineType="all",this.engineType="",this.status="all",this.search="",this.sourceTypeFilter="",this.syncRouteState())},setSearchTerm(e){const t=String(e??"");this.search!==t&&(this.search=t,this.syncRouteState())},setStatusFilter(e){const t=this.normalizeStatus(e);this.status!==t&&(this.status=t,this.syncRouteState())},clearSourceTypeFilter(){this.sourceTypeFilter&&(this.sourceTypeFilter="",this.syncRouteState())},onPipelineSelected(e){const t=e?.name??"";this.selectedPipelineName!==t&&(this.selectedPipelineName=t,this.syncRouteState())},async load(){this.busy=!0;const e=this.selectedEnv;try{const[t,i,s]=await Promise.allSettled([fetch(`${__ENV__.API}/env/${encodeURIComponent(e)}/engines`).then(e=>e.json()),fetch(`${__ENV__.API}/embeddings/embedders`).then(e=>e.json()),fetch(`${__ENV__.API}/env/${encodeURIComponent(e)}/pipelines`).then(e=>e.json())]),n="fulfilled"===t.status?t.value?.data??[]:[],r="fulfilled"===i.status?i.value?.data??[]:[];this.embedEngines=[...n,...r],this.embedPipelines="fulfilled"===s.status?s.value?.data??(Array.isArray(s.value)?s.value:[]):[],this.fileEngines={extractors:n.filter(e=>"file-extractor"===e.type),collections:n.filter(e=>"file-collection"===e.type),workers:n.filter(e=>"file-extractor-worker"===e.type)}}catch{}finally{this.busy=!1}},async onCreated(){this.view="overview",this.syncRouteState(),await this.load()}}),async init(e){this.applyRouteState(),await this.load();const t=()=>this.load();this._unsubs=[eventsStore.on("engine:started",t),eventsStore.on("engine:stopped",t),eventsStore.on("engine:error",t),eventsStore.on("pipeline:start",t),eventsStore.on("pipeline:stop",t),eventsStore.on("pipeline:delete",t)],e.$watch(()=>e.$ok.stores.okdb.selectedEnv,()=>this.load()),e.$watch(()=>JSON.stringify(this.routeSearch),()=>this.applyRouteState())},unmount(){for(const e of this._unsubs)e();this._unsubs=[]}}</script><style>.eng-nav-row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:6px 10px;border-radius:6px;border:1px solid transparent;background:0 0;color:var(--okdb-app-fg-muted);font-size:12px;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.eng-nav-row:hover{background:var(--okdb-app-surface);border-color:var(--okdb-app-border);color:var(--okdb-app-fg-strong)}.eng-nav-row--on{background:var(--okdb-app-surface);border-color:var(--okdb-accent);color:var(--okdb-app-fg-strong)}.eng-nav-sep{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--okdb-app-fg-subtle);padding:6px 10px 2px}.eng-filter-card{display:flex;flex-direction:column;gap:10px;padding:10px;border:1px solid var(--okdb-app-border);border-radius:10px;background:var(--okdb-app-bg-deep);min-width:0}.eng-field{display:flex;flex-direction:column;gap:4px;min-width:0}.eng-field__label{font-size:11px;color:var(--okdb-app-fg-muted)}.eng-control{width:100%;min-width:0;box-sizing:border-box;font-size:12px}.eng-segment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%}.eng-segment__btn{min-width:0;width:100%;padding:6px 10px;border-radius:8px;border:1px solid var(--okdb-app-border);background:var(--okdb-app-bg-deep);color:var(--okdb-app-fg-muted);font-size:11px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.eng-segment__btn:hover{background:var(--okdb-app-surface);border-color:var(--okdb-app-border);color:var(--okdb-app-fg-strong)}.eng-segment__btn--active{border-color:var(--okdb-accent);background:color-mix(in srgb,var(--okdb-accent) 7%,transparent);color:var(--okdb-accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--okdb-accent) 13%,transparent)}.eng-filter-actions{display:flex;justify-content:flex-end}.eng-clear-btn{font-size:11px;padding:5px 10px;border-radius:999px;border:1px solid var(--okdb-app-border);color:var(--okdb-app-fg-muted);background:var(--okdb-app-bg-deep);cursor:pointer}.eng-clear-btn:hover{border-color:var(--okdb-app-border-strong);color:var(--okdb-app-fg-strong);background:var(--okdb-app-surface)}</style><template><component import="../../layouts/_default.ok.html"><template name="sidebar"><div style="display:flex;flex-direction:column;gap:8px;height:100%;min-height:0;overflow-y:auto"><button :class="view === 'create' ? 'eng-nav-row eng-nav-row--on' : 'eng-nav-row'" @click="setView('create')" title="Create a pipeline, which provisions and wires together one or more engines."><span style="width:14px;text-align:center;flex-shrink:0;opacity:.9;color:var(--okdb-accent)">+</span> <span style="color:var(--okdb-accent)">New Pipeline</span></button><div class="eng-nav-sep">Engines</div><button :class="view === 'overview' ? 'eng-nav-row eng-nav-row--on' : 'eng-nav-row'" @click="setView('overview')"><span style="width:14px;text-align:center;flex-shrink:0;opacity:.7">⊛</span> <span>Workspace</span> <span style="margin-left:auto;font-size:10px;opacity:.4">{{ workspaceCount }}</span></button><if :="view === 'overview'"><div style="height:1px;background:var(--okdb-app-border);margin:2px 0"></div><div class="eng-nav-sep" style="padding-top:4px">Filters</div><div class="eng-filter-card"><label class="eng-field"><span class="eng-field__label" title="Search by name, type, handler, env, pipeline, or source type">Search</span> <input class="eng-control" :value="search" @input:debounce.250="setSearchTerm($event.target.value)" :placeholder="searchPlaceholder"/></label><div class="eng-field"><span class="eng-field__label" title="Switch between the grouped pipeline view and the flat engine inventory.">Mode</span><div class="eng-segment"><button @click="setModeFilter('pipelines')" :class="mode === 'pipelines' ? 'eng-segment__btn eng-segment__btn--active' : 'eng-segment__btn'" title="Show grouped pipelines">Pipelines</button> <button @click="setModeFilter('engines')" :class="mode === 'engines' ? 'eng-segment__btn eng-segment__btn--active' : 'eng-segment__btn'" title="Show individual engines">Engines</button></div></div><if :="mode === 'pipelines'"><label class="eng-field"><span class="eng-field__label" title="Filter grouped pipelines by pipeline type.">Pipeline Type</span> <select class="eng-control" @change="setPipelineTypeFilter($event.target.value)"><option value="all" :selected="pipelineType === 'all'">All pipelines</option><option value="embedding" :selected="pipelineType === 'embedding'">Env</option><option value="file" :selected="pipelineType === 'file'">Files</option></select></label></if><if :="mode === 'engines'"><label class="eng-field"><span class="eng-field__label" title="Filter the flat engine list by engine type.">Engine Type</span> <select class="eng-control" @change="setEngineTypeFilter($event.target.value)"><option value="" :selected="!engineType">All engines</option><each :of="availableEngineTypes" let:item="t"><option :value="t" :selected="engineType === t">{{ t }}</option></each></select></label></if><label class="eng-field"><span class="eng-field__label">Status</span> <select class="eng-control" @change="setStatusFilter($event.target.value)"><option value="all" :selected="status === 'all'">Any</option><option value="running" :selected="status === 'running'">Running</option><option value="attention" :selected="status === 'attention'">Needs attention</option><option value="stopped" :selected="status === 'stopped'">Stopped</option></select></label><if :="availableSourceTypes.length > 0"><label class="eng-field" title="Filter by the data type engines process or index"><span class="eng-field__label">Source Type</span> <select class="eng-control" @change="setSourceTypeFilter($event.target.value)"><option value="" :selected="!sourceTypeFilter">All types</option><each :of="availableSourceTypes" let:item="st"><option :value="st" :selected="sourceTypeFilter === st">{{ st }}</option></each></select></label></if><if :="pipelineType !== 'all' || engineType || status !== 'all' || search || sourceTypeFilter"><div class="eng-filter-actions"><button @click="clearFilters()" class="eng-clear-btn">Clear filters</button></div></if></div></if></div></template><template name="default"><if :="view === 'create'"><pipeline-create-panel :locktype="sourceTypeFilter" :lockenv="selectedEnv" :initialkind="createKind" @created="onCreated()"/></if><if :="view === 'overview'"><engines-overview :embed-engines="embedEngines" :embed-pipelines="embedPipelines" :file-engines="fileEngines" :mode="mode" :pipelinetype="pipelineType" :enginetype="engineType" :status="status" :search="search" :sourcetype="sourceTypeFilter" :selectedpipeline="selectedPipelineName" @select="onPipelineSelected($event.detail)" @refresh="load()"/></if></template></component></template>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _0x2bb748=_0x3d33;function _0x4ab8(){var _0x3d9c00=['1144304RcdQNk','setEngine','6543SUUDOB','close','eng','modal','202303AWXfoj','2446272sMhohL','446540bTndJW','engineState','config','$watch','notifyDone','type','1284ALtrEH','width:min(920px,\x20calc(100vw\x20-\x2048px));max-width:calc(100vw\x20-\x2048px);min-width:720px;max-height:calc(100vh\x20-\x2060px);display:flex;flex-direction:column;gap:14px;','7355uSNbdD','32VkojAx','$attr','length','675anGhBT','queue-worker','isQueueWorker','env','engine','width:min(1180px,\x20calc(100vw\x20-\x2048px));max-width:calc(100vw\x20-\x2048px);min-width:860px;max-height:calc(100vh\x20-\x2060px);display:flex;flex-direction:column;gap:14px;','\x0a<div\x20:style=\x22modalStyle\x22>\x0a\x20\x20<div\x20style=\x22min-height:0;padding-right:4px;display:flex;flex-direction:column;gap:14px;\x22>\x0a\x20\x20\x20\x20<if\x20:=\x22!isEmbeddings\x22>\x0a\x20\x20\x20\x20\x20\x20<generic-engine-panel\x0a\x20\x20\x20\x20\x20\x20\x20\x20:engine=\x22eng\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:env=\x22envName\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:modal=\x22$attr.modal\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20@engine-updated=\x22handleEngineUpdated($event.detail)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20@refresh=\x22handleRefresh()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20@deleted=\x22handleDeleted()\x22\x0a\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22isEmbeddings\x22>\x0a\x20\x20\x20\x20\x20\x20<embeddings-engine-panel\x0a\x20\x20\x20\x20\x20\x20\x20\x20:engine=\x22eng\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20@engine-updated=\x22handleEngineUpdated($event.detail)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20@refresh=\x22handleRefresh()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20@deleted=\x22handleDeleted()\x22\x0a\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22hasConfig\x20&&\x20isEmbeddings\x22>\x0a\x20\x20\x20\x20\x20\x20<details\x20style=\x22border:1px\x20solid\x20var(--okdb-app-surface-2);border-radius:10px;background:var(--okdb-app-bg-deep);padding:8px\x2010px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<summary\x20style=\x22display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--okdb-app-fg-muted);cursor:pointer;user-select:none;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>►\x20Configuration</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</summary>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:8px\x200\x200;max-height:260px;overflow:auto;padding:10px;border-radius:8px;background:var(--okdb-app-bg-deep);border:1px\x20solid\x20var(--okdb-app-surface-2);font-size:11px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--okdb-app-fg-muted);\x22>{{\x20configJson\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20</details>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</div>\x0a</div>\x0a','20810tOUteS','engine-modal','keys'];_0x4ab8=function(){return _0x3d9c00;};return _0x4ab8();}function _0x3d33(_0x20da50,_0x235d0f){_0x20da50=_0x20da50-0x77;var _0x4ab8f9=_0x4ab8();var _0x3d33c7=_0x4ab8f9[_0x20da50];return _0x3d33c7;}(function(_0x168bc0,_0x4de8d2){var _0x2bee56=_0x3d33,_0x407df3=_0x168bc0();while(!![]){try{var _0x2809f4=-parseInt(_0x2bee56(0x92))/0x1+-parseInt(_0x2bee56(0x94))/0x2+parseInt(_0x2bee56(0x8e))/0x3*(-parseInt(_0x2bee56(0x7f))/0x4)+parseInt(_0x2bee56(0x7e))/0x5*(parseInt(_0x2bee56(0x7c))/0x6)+-parseInt(_0x2bee56(0x8c))/0x7+parseInt(_0x2bee56(0x93))/0x8+parseInt(_0x2bee56(0x82))/0x9*(parseInt(_0x2bee56(0x89))/0xa);if(_0x2809f4===_0x4de8d2)break;else _0x407df3['push'](_0x407df3['shift']());}catch(_0x3f59a9){_0x407df3['push'](_0x407df3['shift']());}}}(_0x4ab8,0x298b0));import _0x42636f from'../../embeddings/parts/embeddings-engine-panel.ok.js';import _0x1ea4a4 from'../parts/generic-engine-panel.ok.js';import{formatJsonValue as _0x49db56,isEmbeddingsEngine as _0x335357,maskSensitiveConfig as _0x45648c}from'../engine-ui-utils.js';export default{'tag':_0x2bb748(0x8a),'dependencies':[_0x1ea4a4,_0x42636f],'attr':{'modal':{},'engine':{},'env':{},'onDone':{}},'context':_0x3ef9f9=>({'engineState':_0x3ef9f9[_0x2bb748(0x80)][_0x2bb748(0x86)]??null,get 'eng'(){var _0x5515fa=_0x2bb748;return this[_0x5515fa(0x77)]??{};},get 'envName'(){var _0x2e8857=_0x2bb748;return _0x3ef9f9[_0x2e8857(0x80)]['env']??this[_0x2e8857(0x90)][_0x2e8857(0x85)]??null;},get 'isEmbeddings'(){var _0x134131=_0x2bb748;return _0x335357(this[_0x134131(0x90)]);},get 'isQueueWorker'(){var _0x4403c0=_0x2bb748;return _0x4403c0(0x83)===this['eng']?.[_0x4403c0(0x7b)];},get 'hasConfig'(){var _0x54311e=_0x2bb748;return!!this[_0x54311e(0x90)]?.[_0x54311e(0x78)]&&Object[_0x54311e(0x8b)](this['eng'][_0x54311e(0x78)])[_0x54311e(0x81)]>0x0;},get 'configJson'(){var _0x677d6c=_0x2bb748;return this['hasConfig']?_0x49db56(_0x45648c(this[_0x677d6c(0x90)][_0x677d6c(0x78)])):'';},get 'modalStyle'(){var _0x59ae28=_0x2bb748;return this[_0x59ae28(0x84)]?_0x59ae28(0x7d):_0x59ae28(0x87);},'setEngine'(_0x1891e4){var _0x23723d=_0x2bb748;_0x1891e4&&(this[_0x23723d(0x77)]={...this[_0x23723d(0x77)]??{},..._0x1891e4});},async 'notifyDone'(_0x3d272f=null){var _0x4a96f8=_0x2bb748;await _0x3ef9f9[_0x4a96f8(0x80)]['onDone']?.(_0x3d272f??this[_0x4a96f8(0x77)]);},async 'handleEngineUpdated'(_0xd8e40f){var _0x8c5ddf=_0x2bb748;this[_0x8c5ddf(0x8d)](_0xd8e40f),await this['notifyDone'](this['engineState']);},async 'handleRefresh'(){var _0x1e317e=_0x2bb748;await this[_0x1e317e(0x7a)](this[_0x1e317e(0x77)]);},async 'handleDeleted'(){var _0x57b51d=_0x2bb748;await this[_0x57b51d(0x7a)]({...this[_0x57b51d(0x77)]??{},'_deleted':!0x0}),await _0x3ef9f9['$attr'][_0x57b51d(0x91)]?.[_0x57b51d(0x8f)]?.();},'close'(){var _0x5eddd1=_0x2bb748;_0x3ef9f9['$attr']['modal']?.[_0x5eddd1(0x8f)]?.();}}),'init'(_0x22aa0b){var _0x4982f5=_0x2bb748;_0x22aa0b[_0x4982f5(0x79)](()=>_0x22aa0b[_0x4982f5(0x80)]['engine'],()=>{var _0x479050=_0x4982f5;this['engineState']=_0x22aa0b[_0x479050(0x80)][_0x479050(0x86)]??null;});},'template':_0x2bb748(0x88)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x51da(_0x5baeac,_0x233507){_0x5baeac=_0x5baeac-0x139;const _0x1c989a=_0x1c98();let _0x51da65=_0x1c989a[_0x5baeac];return _0x51da65;}function _0x1c98(){const _0x3de02e=['$dispatch','Failed\x20(','PATCH','refresh','753930LtUaJa','saving','affinity','eng','error','101283aCiXYZ','engine','result','data','enabled','shared','catch','\x0a<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:12px;\x20padding:14px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:12px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-weight:600;\x20font-size:13px;\x22>Advanced\x20declaration</div>\x0a\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20opacity:.45;\x22>enablement,\x20affinity,\x20and\x20synced\x20meta</div>\x0a\x20\x20\x20\x20<div\x20style=\x22flex:1;\x22></div>\x0a\x20\x20\x20\x20<button\x20@click=\x22toggleOpen()\x22\x20style=\x22font-size:11px;\x20padding:4px\x2010px;\x20opacity:.8;\x22>\x0a\x20\x20\x20\x20\x20\x20{{\x20open\x20?\x20\x27Hide\x27\x20:\x20\x27Edit\x20declaration\x27\x20}}\x0a\x20\x20\x20\x20</button>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22kv-grid\x20kv-grid--compact\x22>\x0a\x20\x20\x20\x20<span\x20class=\x22kv-key\x22>enabled</span><span\x20class=\x22kv-val\x22>{{\x20eng.enabled\x20===\x20false\x20?\x20\x27no\x27\x20:\x20\x27yes\x27\x20}}</span>\x0a\x20\x20\x20\x20<span\x20class=\x22kv-key\x22>affinity</span><span\x20class=\x22kv-val\x22>{{\x20affinitySummary\x20}}</span>\x0a\x20\x20\x20\x20<span\x20class=\x22kv-key\x22>meta</span><span\x20class=\x22kv-val\x22>{{\x20metaSummary\x20}}</span>\x0a\x20\x20</div>\x0a\x0a\x20\x20<if\x20:=\x22open\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:12px;\x20padding-top:4px;\x20border-top:1px\x20solid\x20var(--okdb-app-border);\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20opacity:.5;\x22>These\x20values\x20are\x20persisted\x20and\x20synced.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22flex:1;\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22save()\x22\x20:disabled=\x22saving\x20||\x20!canEdit\x22\x20style=\x22font-size:11px;\x20padding:4px\x2010px;\x20color:var(--okdb-accent);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20saving\x20?\x20\x27Saving…\x27\x20:\x20\x27Save\x20declaration\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<input\x20type=\x22checkbox\x22\x20:checked=\x22enabledDraft\x22\x20@change=\x22enabledDraft\x20=\x20$event.target.checked\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span>Enabled\x20on\x20eligible\x20nodes</span>\x0a\x20\x20\x20\x20\x20\x20</label>\x0a\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:10px;\x20opacity:.45;\x20text-transform:uppercase;\x20letter-spacing:.05em;\x22>Affinity\x20tags</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22affinityDraft\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22affinityDraft\x20=\x20$event.target.value\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@keydown.enter=\x22save()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20placeholder=\x22all\x20nodes\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:6px;\x20padding:6px\x208px;\x20color:inherit;\x20font-size:12px;\x20font-family:monospace;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20opacity:.45;\x20line-height:1.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Leave\x20empty\x20to\x20run\x20on\x20any\x20node.\x20Otherwise\x20the\x20local\x20node\x20must\x20match\x20all\x20listed\x20tags.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x20min-height:0;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:10px;\x20opacity:.45;\x20text-transform:uppercase;\x20letter-spacing:.05em;\x22>Meta</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22min-height:160px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:8px;\x20overflow:hidden;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-json-input\x20mode=\x22textbox\x22\x20:value=\x22metaDraft\x22\x20@edit=\x22metaDraft\x20=\x20cloneMeta($event.detail)\x22\x20style=\x22height:100%;\x20display:flex;\x20min-height:160px;\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-danger);\x22>{{\x20error\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a</div>\x0a','Engine\x20declaration\x20saved','object','syncDrafts','1332540fojhGb','\x20field','success','canEdit','message','json','30jKYulj','open','status','length','stringify','toast','$attr','engine-updated','$watch','165484HVdinx','720125YnmAzH','isArray','18314992ucFHuS','affinityDraft','application/json','metaDraft','basePath','enabledDraft','join','1471740DMznIz','meta'];_0x1c98=function(){return _0x3de02e;};return _0x1c98();}const _0x2fb26c=_0x51da;(function(_0xd4c4f8,_0x420e13){const _0x118e0e=_0x51da,_0x3c1b69=_0xd4c4f8();while(!![]){try{const _0x34d6ed=-parseInt(_0x118e0e(0x14f))/0x1+-parseInt(_0x118e0e(0x15f))/0x2+-parseInt(_0x118e0e(0x164))/0x3+-parseInt(_0x118e0e(0x140))/0x4+-parseInt(_0x118e0e(0x159))/0x5+-parseInt(_0x118e0e(0x146))/0x6*(parseInt(_0x118e0e(0x150))/0x7)+parseInt(_0x118e0e(0x152))/0x8;if(_0x34d6ed===_0x420e13)break;else _0x3c1b69['push'](_0x3c1b69['shift']());}catch(_0x375009){_0x3c1b69['push'](_0x3c1b69['shift']());}}}(_0x1c98,0x8b7aa));import _0x256a70 from'../../../components/ok-json-input.ok.js';import{buildEngineBasePath as _0x15c3b1,cloneValue as _0x3aff15,getApiErrorMessage as _0x29159c,parseTagList as _0x1c09c0}from'../engine-ui-utils.js';export default{'tag':'engine-declaration-editor','dependencies':[_0x256a70],'attr':{'engine':{},'env':{}},'context':_0x50596d=>({'saving':!0x1,'error':null,'open':!0x1,'enabledDraft':!0x0,'affinityDraft':'','metaDraft':{},get 'eng'(){const _0x1667e7=_0x51da;return _0x50596d['$attr'][_0x1667e7(0x165)]??{};},get 'basePath'(){const _0x28b2f0=_0x51da;return _0x15c3b1(this[_0x28b2f0(0x162)],_0x50596d['$attr']['env']??null);},get 'canEdit'(){const _0x193850=_0x51da;return!!this[_0x193850(0x156)];},get 'affinitySummary'(){const _0x2f18f3=_0x51da;return Array[_0x2f18f3(0x151)](this[_0x2f18f3(0x162)]?.[_0x2f18f3(0x161)])&&this['eng']['affinity'][_0x2f18f3(0x149)]?this[_0x2f18f3(0x162)][_0x2f18f3(0x161)]['join'](',\x20'):'all\x20nodes';},get 'metaSummary'(){const _0x45b92a=_0x51da,_0x3a768f=this[_0x45b92a(0x162)]?.[_0x45b92a(0x15a)]??{},_0x5b6949=_0x45b92a(0x13e)==typeof _0x3a768f&&_0x3a768f&&!Array[_0x45b92a(0x151)](_0x3a768f)?Object['keys'](_0x3a768f)[_0x45b92a(0x149)]:0x0;return _0x5b6949?_0x5b6949+_0x45b92a(0x141)+(0x1===_0x5b6949?'':'s'):'empty';},'syncDrafts'(_0xf2899a=null){const _0x35c176=_0x51da,_0xe81dc5=_0xf2899a??this[_0x35c176(0x162)]??{};this[_0x35c176(0x157)]=!0x1!==_0xe81dc5[_0x35c176(0x139)],this[_0x35c176(0x153)]=Array['isArray'](_0xe81dc5[_0x35c176(0x161)])?_0xe81dc5[_0x35c176(0x161)][_0x35c176(0x158)](',\x20'):'',this[_0x35c176(0x155)]=_0x3aff15(_0xe81dc5[_0x35c176(0x15a)],{}),this[_0x35c176(0x163)]=null;},'cloneMeta':_0x17d79d=>_0x3aff15(_0x17d79d,{}),'toggleOpen'(){const _0x4eff6a=_0x51da;this[_0x4eff6a(0x147)]=!this[_0x4eff6a(0x147)];},async 'save'(){const _0x336d5d=_0x51da;if(this[_0x336d5d(0x143)]&&!this['saving']){this[_0x336d5d(0x160)]=!0x0,this[_0x336d5d(0x163)]=null;try{const _0x22e199=await fetch(this[_0x336d5d(0x156)],{'method':_0x336d5d(0x15d),'headers':{'Content-Type':_0x336d5d(0x154)},'body':JSON[_0x336d5d(0x14a)]({'enabled':this[_0x336d5d(0x157)],'affinity':_0x1c09c0(this[_0x336d5d(0x153)]),'meta':_0x3aff15(this[_0x336d5d(0x155)],{})})}),_0x3abfef=await _0x22e199[_0x336d5d(0x145)]()[_0x336d5d(0x13b)](()=>({}));if(!_0x22e199['ok'])throw new Error(_0x29159c(_0x3abfef,_0x336d5d(0x15c)+_0x22e199[_0x336d5d(0x148)]+')'));const _0x3703c1=_0x3abfef?.[_0x336d5d(0x167)]??_0x3abfef?.[_0x336d5d(0x166)]??null;_0x3703c1&&(this[_0x336d5d(0x13f)](_0x3703c1),_0x50596d[_0x336d5d(0x15b)](_0x336d5d(0x14d),_0x3703c1)),this[_0x336d5d(0x147)]=!0x1,_0x50596d[_0x336d5d(0x15b)](_0x336d5d(0x15e)),_0x50596d['$ok'][_0x336d5d(0x13a)]?.[_0x336d5d(0x14b)]?.[_0x336d5d(0x142)]?.(_0x336d5d(0x13d));}catch(_0x35ca47){this['error']=_0x35ca47?.[_0x336d5d(0x144)]||String(_0x35ca47),this['open']=!0x0,_0x50596d['$ok'][_0x336d5d(0x13a)]?.['toast']?.['error']?.(this[_0x336d5d(0x163)]);}finally{this[_0x336d5d(0x160)]=!0x1;}}}}),'init'(_0x4db2f0){const _0x2a53d7=_0x51da;this[_0x2a53d7(0x13f)](_0x4db2f0[_0x2a53d7(0x14c)]['engine']),_0x4db2f0[_0x2a53d7(0x14e)](()=>_0x4db2f0[_0x2a53d7(0x14c)]['engine'],()=>this['syncDrafts'](_0x4db2f0[_0x2a53d7(0x14c)][_0x2a53d7(0x165)]));},'template':_0x2fb26c(0x13c)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x4be2da=_0x537f;(function(_0x2aa544,_0x4e3a97){const _0xe9cdc3=_0x537f,_0x16b458=_0x2aa544();while(!![]){try{const _0x5089e3=-parseInt(_0xe9cdc3(0xdd))/0x1*(-parseInt(_0xe9cdc3(0xba))/0x2)+parseInt(_0xe9cdc3(0xc4))/0x3*(parseInt(_0xe9cdc3(0xae))/0x4)+-parseInt(_0xe9cdc3(0xea))/0x5*(-parseInt(_0xe9cdc3(0xca))/0x6)+parseInt(_0xe9cdc3(0xb9))/0x7*(parseInt(_0xe9cdc3(0xff))/0x8)+parseInt(_0xe9cdc3(0xde))/0x9+parseInt(_0xe9cdc3(0xda))/0xa*(parseInt(_0xe9cdc3(0xf9))/0xb)+parseInt(_0xe9cdc3(0xe9))/0xc*(-parseInt(_0xe9cdc3(0xd6))/0xd);if(_0x5089e3===_0x4e3a97)break;else _0x16b458['push'](_0x16b458['shift']());}catch(_0xe76ca9){_0x16b458['push'](_0x16b458['shift']());}}}(_0xcda0,0xcc72a));function _0xcda0(){const _0x20e728=['120HTWrTo','basePath','$dispatch','1JBiGAD','5227317FhgleM','_emitUpdated','font-size:','color-mix(in\x20srgb,\x20','name','busy',';color:','_request','stopped','refresh','paused','84jjxLNV','15OYTAzb','$attr','embeddingsMode','resumed','/rebuild','POST','confirm','/retry','/pause','success','DELETE','runtime','Engine\x20deleted','var(','Engine\x20rebuild\x20started','1297769OSeapc','reason','started','shared','4px\x2010px','\x0a<div\x20style=\x22display:flex;\x20gap:6px;\x20align-items:center;\x20flex-wrap:wrap;\x22>\x0a\x20\x20<if\x20:=\x22embeddingsMode\x20&&\x20running\x22>\x0a\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20@click=\x22stop()\x22\x0a\x20\x20\x20\x20\x20\x20:disabled=\x22busy\x20||\x20!canRunLifecycle\x22\x0a\x20\x20\x20\x20\x20\x20:style=\x22actionStyle(\x27var(--okdb-warning)\x27)\x22\x0a\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20{{\x20busy\x20?\x20\x27…\x27\x20:\x20\x27■\x20Stop\x27\x20}}\x0a\x20\x20\x20\x20</button>\x0a\x20\x20</if>\x0a\x20\x20<if\x20:=\x22embeddingsMode\x20&&\x20!running\x20&&\x20status\x20!==\x20\x27error\x27\x22>\x0a\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20@click=\x22start()\x22\x0a\x20\x20\x20\x20\x20\x20:disabled=\x22busy\x20||\x20!canRunLifecycle\x22\x0a\x20\x20\x20\x20\x20\x20:style=\x22actionStyle(\x27var(--okdb-success)\x27)\x22\x0a\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20{{\x20busy\x20?\x20\x27…\x27\x20:\x20\x27▶\x20Start\x27\x20}}\x0a\x20\x20\x20\x20</button>\x0a\x20\x20</if>\x0a\x20\x20<if\x20:=\x22embeddingsMode\x20&&\x20(status\x20===\x20\x27error\x27\x20||\x20running)\x22>\x0a\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20@click=\x22restart()\x22\x0a\x20\x20\x20\x20\x20\x20:disabled=\x22busy\x20||\x20!canRunLifecycle\x22\x0a\x20\x20\x20\x20\x20\x20:style=\x22actionStyle(\x27var(--okdb-orange)\x27)\x22\x0a\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20{{\x20busy\x20?\x20\x27…\x27\x20:\x20\x27↺\x20Restart\x27\x20}}\x0a\x20\x20\x20\x20</button>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22!embeddingsMode\x22>\x0a\x20\x20\x20\x20<if\x20:=\x22!paused\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22pause()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:disabled=\x22busy\x20||\x20!canRunLifecycle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22actionStyle(\x27var(--okdb-warning)\x27,\x20{\x20subtle:\x20true\x20})\x22\x0a\x20\x20\x20\x20\x20\x20>⏸\x20Pause</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<if\x20:=\x22paused\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22resume()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:disabled=\x22busy\x20||\x20!canRunLifecycle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22actionStyle(\x27var(--okdb-success)\x27,\x20{\x20subtle:\x20true\x20})\x22\x0a\x20\x20\x20\x20\x20\x20>▶\x20Resume</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20@click=\x22restart()\x22\x0a\x20\x20\x20\x20\x20\x20:disabled=\x22busy\x20||\x20!canRunLifecycle\x22\x0a\x20\x20\x20\x20\x20\x20:style=\x22actionStyle(\x27var(--okdb-app-fg)\x27,\x20{\x20subtle:\x20true\x20})\x22\x0a\x20\x20\x20\x20>↺\x20Restart</button>\x0a\x20\x20\x20\x20<if\x20:=\x22canRetry\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22retry()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:disabled=\x22busy\x20||\x20!canRunLifecycle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22actionStyle(\x27var(--okdb-orange)\x27,\x20{\x20subtle:\x20true\x20})\x22\x0a\x20\x20\x20\x20\x20\x20>↻\x20Retry</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<if\x20:=\x22eng.type\x20===\x20\x27materializer\x27\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22resetCursor()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:disabled=\x22busy\x20||\x20!canRunLifecycle\x20||\x20!canResetCursor\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22actionStyle(\x27var(--okdb-info)\x27,\x20{\x20subtle:\x20true\x20})\x22\x0a\x20\x20\x20\x20\x20\x20>⇤\x20Reset\x20cursor</button>\x0a\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22rebuild()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:disabled=\x22busy\x20||\x20!canRunLifecycle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22actionStyle(\x27var(--okdb-success)\x27,\x20{\x20subtle:\x20true\x20})\x22\x0a\x20\x20\x20\x20\x20\x20>⟳\x20Rebuild</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22showDelete\x22>\x0a\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20@click=\x22deleteEngine()\x22\x0a\x20\x20\x20\x20\x20\x20:disabled=\x22busy\x20||\x20!canRunLifecycle\x22\x0a\x20\x20\x20\x20\x20\x20:style=\x22actionStyle(\x27var(--okdb-danger)\x27)\x22\x0a\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20{{\x20busy\x20?\x20\x27…\x27\x20:\x20\x27✕\x20Delete\x27\x20}}\x0a\x20\x20\x20\x20</button>\x0a\x20\x20</if>\x0a</div>\x0a','40chIkrc','eng','Engine\x20restarted','Rebuild\x20engine\x20\x22','type','false','Reset\x20cursor\x20for\x20engine\x20\x22','showdelete','true','Restart\x20failed:\x20','2108nhIiaF','toast','cursor-reset','/stop','Engine\x20paused','deleted','isRunning','trim','delete','Engine\x20cursor\x20reset','info','2157029OIGlYb','3278494TpForR','Engine\x20is\x20inactive\x20on\x20this\x20node\x20(','\x2033%,\x20transparent)','Engine\x20started','data','</b>\x22?','var(--okdb-app-fg-muted)','status','engine-lifecycle-actions',';background:transparent;border-radius:999px;line-height:1.35;','8922VOuHxz','compact','action','/restart','rebuilt','Failed\x20to\x20start:\x20','3260562OaOScC','message','catch','startsWith','Delete\x20engine\x20\x22<b>','$ok','inactive','result','modal','engine','Engine\x20resumed',';border:1px\x20solid\x20','13996736neOwCY','compactMode','error',';padding:'];_0xcda0=function(){return _0x20e728;};return _0xcda0();}import{buildEngineBasePath as _0x5cc9c0,isEmbeddingsEngine as _0x596935,readableReason as _0x21c3b9}from'../engine-ui-utils.js';function s(_0x28142a,_0x25ce14=!0x1){const _0x216639=_0x537f;return null==_0x28142a?_0x25ce14:!0x0===_0x28142a||_0x216639(0xac)===_0x28142a||!0x1!==_0x28142a&&_0x216639(0xa9)!==_0x28142a&&Boolean(_0x28142a);}function _0x537f(_0x3271c9,_0x7c773e){_0x3271c9=_0x3271c9-0xa8;const _0xcda027=_0xcda0();let _0x537fc0=_0xcda027[_0x3271c9];return _0x537fc0;}export default{'tag':_0x4be2da(0xc2),'attr':{'engine':{},'env':{},'compact':{},'showdelete':{}},'context':_0x346cff=>({'busy':!0x1,'error':null,get 'eng'(){const _0x550471=_0x4be2da;return _0x346cff[_0x550471(0xeb)][_0x550471(0xd3)]??{};},get 'basePath'(){const _0x47d602=_0x4be2da;return _0x5cc9c0(this[_0x47d602(0x100)],_0x346cff[_0x47d602(0xeb)]['env']??null);},get 'running'(){const _0x34c31d=_0x4be2da;return!!this[_0x34c31d(0x100)][_0x34c31d(0xb4)];},get 'status'(){const _0x4c57dc=_0x4be2da;return this[_0x4c57dc(0x100)]['status']??'';},get 'reason'(){const _0x5bee68=_0x4be2da;return _0x21c3b9(this[_0x5bee68(0x100)]['reason'])??'';},get 'embeddingsMode'(){const _0x4903bd=_0x4be2da;return _0x596935(this[_0x4903bd(0x100)]);},get 'compactMode'(){const _0x5bdc27=_0x4be2da;return s(_0x346cff[_0x5bdc27(0xeb)][_0x5bdc27(0xc5)],!0x1);},get 'showDelete'(){const _0x5124ac=_0x4be2da;return s(_0x346cff[_0x5124ac(0xeb)][_0x5124ac(0xab)],!0x0);},get 'canRunLifecycle'(){const _0x1b59f8=_0x4be2da;return!!this[_0x1b59f8(0xdb)];},get 'canRetry'(){const _0x16d5b1=_0x4be2da;return!this[_0x16d5b1(0xec)]&&_0x16d5b1(0xd8)===this[_0x16d5b1(0xc1)];},get 'canResetCursor'(){const _0x48162a=_0x4be2da;return'materializer'===this[_0x48162a(0x100)][_0x48162a(0xa8)];},get 'paused'(){const _0x39a45e=_0x4be2da;return!0x0===this[_0x39a45e(0x100)]?.['stats']?.[_0x39a45e(0xe8)]||!0x0===this['eng']?.[_0x39a45e(0xf5)]?.[_0x39a45e(0xe8)]||!0x0===this[_0x39a45e(0x100)]?.[_0x39a45e(0xe8)];},'actionStyle'(_0x22a166=_0x4be2da(0xc0),{subtle:_0x341d84=!0x1}={}){const _0xf9544=_0x4be2da,_0x51e32d=this[_0xf9544(0xd7)]?'11px':'12px',_0x43bfcb=this['compactMode']?'2px\x207px':_0xf9544(0xfd),_0x161557=_0x22a166[_0xf9544(0xcd)](_0xf9544(0xf7));return _0xf9544(0xe0)+_0x51e32d+_0xf9544(0xd9)+_0x43bfcb+_0xf9544(0xe4)+_0x22a166+_0xf9544(0xd5)+(_0x341d84||this['compactMode']?_0x161557?_0xf9544(0xe1)+_0x22a166+_0xf9544(0xbc):_0x22a166+'55':_0x22a166)+_0xf9544(0xc3);},async '_request'(_0x3b9912,_0x264b78=''){const _0xd334c6=_0x4be2da;if(!this[_0xd334c6(0xdb)])return null;this[_0xd334c6(0xe3)]=!0x0,this[_0xd334c6(0xd8)]=null;try{const _0xa4f69c=await fetch(''+this[_0xd334c6(0xdb)]+_0x264b78,{'method':_0x3b9912}),_0x533c31=await _0xa4f69c['json']()[_0xd334c6(0xcc)](()=>({}));if(!_0xa4f69c['ok'])throw new Error(_0x533c31?.[_0xd334c6(0xd8)]?.[_0xd334c6(0xcb)]||(_0x3b9912+'\x20'+(_0x264b78||''))[_0xd334c6(0xb5)]()+'\x20failed');return _0x533c31?.[_0xd334c6(0xbe)]??_0x533c31?.[_0xd334c6(0xd1)]??null;}catch(_0xa4eda1){return this['error']=_0xa4eda1?.['message']||String(_0xa4eda1),_0x346cff['$ok'][_0xd334c6(0xfc)]?.[_0xd334c6(0xaf)]?.['error']?.(this[_0xd334c6(0xd8)]),null;}finally{this['busy']=!0x1;}},'_emitUpdated'(_0x4fe520,_0x1ceb49){const _0x57a952=_0x4be2da;(_0x4fe520||_0x57a952(0xb6)===_0x1ceb49)&&(_0x4fe520&&_0x346cff[_0x57a952(0xdc)]('engine-updated',_0x4fe520),_0x346cff['$dispatch'](_0x57a952(0xc6),_0x1ceb49),_0x346cff[_0x57a952(0xdc)](_0x57a952(0xe7)));},async 'stop'(){const _0x1947e6=_0x4be2da;if(!await _0x346cff[_0x1947e6(0xcf)][_0x1947e6(0xfc)][_0x1947e6(0xd2)][_0x1947e6(0xf0)]('Stop\x20engine\x20\x22'+this[_0x1947e6(0x100)][_0x1947e6(0xe2)]+'\x22?'))return;const _0x44793c=await this[_0x1947e6(0xe5)]('POST',_0x1947e6(0xb1));_0x44793c&&(_0x346cff[_0x1947e6(0xcf)][_0x1947e6(0xfc)]?.[_0x1947e6(0xaf)]?.[_0x1947e6(0xb8)]?.('Engine\x20stopped'),this[_0x1947e6(0xdf)](_0x44793c,_0x1947e6(0xe6)));},async 'start'(){const _0x1eb406=_0x4be2da,_0x28686d=await this[_0x1eb406(0xe5)]('POST','/start');if(_0x28686d){const _0x41b88a=_0x1eb406(0xd8)===_0x28686d['status']?_0x1eb406(0xc9)+_0x28686d[_0x1eb406(0xd8)]:_0x1eb406(0xd0)===_0x28686d['status']?_0x1eb406(0xbb)+(_0x21c3b9(_0x28686d[_0x1eb406(0xfa)])||'not\x20eligible')+')':_0x1eb406(0xbd);_0x1eb406(0xd8)===_0x28686d[_0x1eb406(0xc1)]?_0x346cff[_0x1eb406(0xcf)]['shared']?.[_0x1eb406(0xaf)]?.[_0x1eb406(0xd8)]?.(_0x41b88a):_0x1eb406(0xd0)===_0x28686d[_0x1eb406(0xc1)]?_0x346cff['$ok'][_0x1eb406(0xfc)]?.[_0x1eb406(0xaf)]?.['info']?.(_0x41b88a):_0x346cff['$ok'][_0x1eb406(0xfc)]?.[_0x1eb406(0xaf)]?.[_0x1eb406(0xf3)]?.(_0x41b88a),this['_emitUpdated'](_0x28686d,_0x1eb406(0xd0)===_0x28686d[_0x1eb406(0xc1)]?_0x1eb406(0xd0):_0x1eb406(0xfb));}},async 'restart'(){const _0xb12abe=_0x4be2da;if(this[_0xb12abe(0xec)]&&!await _0x346cff['$ok'][_0xb12abe(0xfc)][_0xb12abe(0xd2)][_0xb12abe(0xf0)]('Restart\x20engine\x20\x22'+this[_0xb12abe(0x100)][_0xb12abe(0xe2)]+'\x22?'))return;const _0x4a68a2=await this[_0xb12abe(0xe5)]('POST',_0xb12abe(0xc7));if(_0x4a68a2){const _0x1bfcab=this['embeddingsMode']?_0xb12abe(0xd8)===_0x4a68a2[_0xb12abe(0xc1)]?_0xb12abe(0xad)+_0x4a68a2['error']:_0xb12abe(0xd0)===_0x4a68a2[_0xb12abe(0xc1)]?_0xb12abe(0xbb)+(_0x21c3b9(_0x4a68a2[_0xb12abe(0xfa)])||'not\x20eligible')+')':_0xb12abe(0x101):_0xb12abe(0x101);this[_0xb12abe(0xec)]?_0xb12abe(0xd8)===_0x4a68a2[_0xb12abe(0xc1)]?_0x346cff['$ok']['shared']?.[_0xb12abe(0xaf)]?.[_0xb12abe(0xd8)]?.(_0x1bfcab):_0xb12abe(0xd0)===_0x4a68a2['status']?_0x346cff['$ok']['shared']?.['toast']?.[_0xb12abe(0xb8)]?.(_0x1bfcab):_0x346cff[_0xb12abe(0xcf)][_0xb12abe(0xfc)]?.[_0xb12abe(0xaf)]?.[_0xb12abe(0xf3)]?.(_0x1bfcab):_0x346cff[_0xb12abe(0xcf)][_0xb12abe(0xfc)]?.[_0xb12abe(0xaf)]?.['success']?.(_0x1bfcab),this[_0xb12abe(0xdf)](_0x4a68a2,'restarted');}},async 'pause'(){const _0x351a15=_0x4be2da,_0x9bec2b=await this[_0x351a15(0xe5)]('POST',_0x351a15(0xf2));_0x9bec2b&&(_0x346cff[_0x351a15(0xcf)]['shared']?.[_0x351a15(0xaf)]?.[_0x351a15(0xb8)]?.(_0x351a15(0xb2)),this[_0x351a15(0xdf)](_0x9bec2b,_0x351a15(0xe8)));},async 'resume'(){const _0x485221=_0x4be2da,_0x4622d2=await this[_0x485221(0xe5)]('POST','/resume');_0x4622d2&&(_0x346cff[_0x485221(0xcf)][_0x485221(0xfc)]?.[_0x485221(0xaf)]?.[_0x485221(0xf3)]?.(_0x485221(0xd4)),this[_0x485221(0xdf)](_0x4622d2,_0x485221(0xed)));},async 'retry'(){const _0x760b31=_0x4be2da,_0x2025ac=await this['_request'](_0x760b31(0xef),_0x760b31(0xf1));_0x2025ac&&(_0x346cff['$ok']['shared']?.[_0x760b31(0xaf)]?.[_0x760b31(0xf3)]?.('Engine\x20retry\x20started'),this[_0x760b31(0xdf)](_0x2025ac,'retried'));},async 'resetCursor'(){const _0x44151c=_0x4be2da;if(!await _0x346cff['$ok']['shared']['modal'][_0x44151c(0xf0)](_0x44151c(0xaa)+this[_0x44151c(0x100)][_0x44151c(0xe2)]+'\x22?'))return;const _0x3a6d3f=await this[_0x44151c(0xe5)](_0x44151c(0xef),'/reset-cursor');_0x3a6d3f&&(_0x346cff[_0x44151c(0xcf)]['shared']?.[_0x44151c(0xaf)]?.['success']?.(_0x44151c(0xb7)),this[_0x44151c(0xdf)](_0x3a6d3f,_0x44151c(0xb0)));},async 'rebuild'(){const _0x151b99=_0x4be2da;if(!await _0x346cff[_0x151b99(0xcf)][_0x151b99(0xfc)]['modal'][_0x151b99(0xf0)](_0x151b99(0x102)+this[_0x151b99(0x100)][_0x151b99(0xe2)]+'\x22?'))return;const _0x3d1e80=await this['_request'](_0x151b99(0xef),_0x151b99(0xee));_0x3d1e80&&(_0x346cff['$ok'][_0x151b99(0xfc)]?.[_0x151b99(0xaf)]?.[_0x151b99(0xf3)]?.(_0x151b99(0xf8)),this[_0x151b99(0xdf)](_0x3d1e80,_0x151b99(0xc8)));},async 'deleteEngine'(){const _0x505da3=_0x4be2da;await _0x346cff[_0x505da3(0xcf)][_0x505da3(0xfc)][_0x505da3(0xd2)][_0x505da3(0xf0)](_0x505da3(0xce)+this['eng'][_0x505da3(0xe2)]+_0x505da3(0xbf))&&null!==await this[_0x505da3(0xe5)](_0x505da3(0xf4))&&(_0x346cff['$ok'][_0x505da3(0xfc)]?.[_0x505da3(0xaf)]?.[_0x505da3(0xf3)]?.(_0x505da3(0xf6)),_0x346cff[_0x505da3(0xdc)](_0x505da3(0xb3),this[_0x505da3(0x100)]),_0x346cff[_0x505da3(0xdc)](_0x505da3(0xc6),_0x505da3(0xb3)),_0x346cff[_0x505da3(0xdc)](_0x505da3(0xe7)));}}),'template':_0x4be2da(0xfe)};
|