@kedem/okdb 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/bin/okdb.js +1 -1
  2. package/keys/public.pem +3 -0
  3. package/okdb.js +1 -1
  4. package/package.json +2 -2
  5. package/public/admin-app.js +1 -1
  6. package/public/components/admin-route-host.ok.js +1 -1
  7. package/public/components/env-picker.ok.js +1 -1
  8. package/public/components/field-path-input.ok.js +1 -1
  9. package/public/components/geo-map.ok.js +1 -1
  10. package/public/components/ok-cron-input.ok.js +1 -1
  11. package/public/components/ok-dropzone.ok.js +1 -1
  12. package/public/components/ok-js-input.ok.js +1 -1
  13. package/public/components/ok-json-input.ok.js +1 -1
  14. package/public/components/ok-text-monaco-input.ok.js +1 -1
  15. package/public/components/theme-toggle.ok.js +1 -1
  16. package/public/login-app.js +1 -1
  17. package/public/modules/ok.js +1 -1
  18. package/public/sections/api/parts/api-endpoint.ok.js +1 -1
  19. package/public/sections/auth/modals/create-token-modal.ok.js +1 -1
  20. package/public/sections/auth/modals/edit-token-modal.ok.js +1 -1
  21. package/public/sections/auth/modals/perm-info-popover.ok.js +1 -1
  22. package/public/sections/auth/parts/token-detail.ok.js +1 -1
  23. package/public/sections/auth/parts/token-list.ok.js +1 -1
  24. package/public/sections/db/modals/add-item-modal.ok.js +1 -1
  25. package/public/sections/db/modals/create-env-modal.ok.js +1 -1
  26. package/public/sections/db/modals/create-fts-modal.ok.js +1 -1
  27. package/public/sections/db/modals/create-index-modal.ok.js +1 -1
  28. package/public/sections/db/modals/create-pipeline-modal.ok.js +1 -1
  29. package/public/sections/db/modals/demo-env-modal.ok.js +1 -1
  30. package/public/sections/db/modals/remove-env-modal.ok.js +1 -1
  31. package/public/sections/db/modals/schema-edit-modal.ok.js +1 -1
  32. package/public/sections/db/parts/db-overview.ok.js +1 -1
  33. package/public/sections/db/parts/db-pipelines-panel.ok.js +1 -1
  34. package/public/sections/db/parts/edit-row.ok.js +1 -1
  35. package/public/sections/db/parts/tm-timeline.ok.js +1 -1
  36. package/public/sections/db/parts/type-changelog.ok.js +1 -1
  37. package/public/sections/db/parts/type-list.ok.js +1 -1
  38. package/public/sections/db/parts/type-pipelines-tab.ok.js +1 -1
  39. package/public/sections/db/parts/type-schema-tab.ok.js +1 -1
  40. package/public/sections/db/parts/type-viewer.ok.js +1 -1
  41. package/public/sections/db/parts/type-violations-tab.ok.js +1 -1
  42. package/public/sections/embeddings/modals/register-model-modal.ok.js +1 -1
  43. package/public/sections/embeddings/parts/embed-create-panel.ok.js +1 -1
  44. package/public/sections/embeddings/parts/embed-embedder-panel.ok.js +1 -1
  45. package/public/sections/embeddings/parts/embed-engine-declaration-editor.ok.js +1 -1
  46. package/public/sections/embeddings/parts/embed-engine-list.ok.js +1 -1
  47. package/public/sections/embeddings/parts/embed-indexer-panel.ok.js +1 -1
  48. package/public/sections/embeddings/parts/embed-lifecycle-bar.ok.js +1 -1
  49. package/public/sections/embeddings/parts/embed-model-catalog.ok.js +1 -1
  50. package/public/sections/embeddings/parts/embed-overview.ok.js +1 -1
  51. package/public/sections/embeddings/parts/embed-search-panel.ok.js +1 -1
  52. package/public/sections/embeddings/parts/embed-worker-panel.ok.js +1 -1
  53. package/public/sections/embeddings/parts/embeddings-engine-panel.ok.js +1 -1
  54. package/public/sections/embeddings/parts/engines-overview.ok.js +1 -1
  55. package/public/sections/embeddings/parts/pipeline-create-panel.ok.js +1 -1
  56. package/public/sections/engines/engine-panel-shared-style.js +1 -1
  57. package/public/sections/engines/engine-ui-utils.js +1 -1
  58. package/public/sections/engines/modals/engine-modal.ok.js +1 -1
  59. package/public/sections/engines/parts/engine-declaration-editor.ok.js +1 -1
  60. package/public/sections/engines/parts/engine-lifecycle-actions.ok.js +1 -1
  61. package/public/sections/engines/parts/engine-panel-shell.ok.js +1 -1
  62. package/public/sections/engines/parts/engine-resource-card.ok.js +1 -1
  63. package/public/sections/engines/parts/engine-row-item.ok.js +1 -1
  64. package/public/sections/engines/parts/generic-engine-panel.ok.js +1 -1
  65. package/public/sections/files/parts/files-blob-status.ok.js +1 -1
  66. package/public/sections/files/parts/files-collection-list.ok.js +1 -1
  67. package/public/sections/files/parts/files-collection-panel.ok.js +1 -1
  68. package/public/sections/files/parts/files-file-list.ok.js +1 -1
  69. package/public/sections/files/parts/files-overview.ok.js +1 -1
  70. package/public/sections/files/parts/files-path-browser.ok.js +1 -1
  71. package/public/sections/files/parts/files-upload-panel.ok.js +1 -1
  72. package/public/sections/functions/modals/function-modal.ok.js +1 -1
  73. package/public/sections/functions/parts/function-detail.ok.js +1 -1
  74. package/public/sections/functions/parts/function-logs.ok.js +1 -1
  75. package/public/sections/functions/parts/function-runner.ok.js +1 -1
  76. package/public/sections/functions/parts/functions-list.ok.js +1 -1
  77. package/public/sections/license/parts/license-panel.ok.js +1 -1
  78. package/public/sections/queue/modals/create-bucket-modal.ok.js +1 -1
  79. package/public/sections/queue/modals/edit-bucket-modal.ok.js +1 -1
  80. package/public/sections/queue/modals/edit-job-modal.ok.js +1 -1
  81. package/public/sections/queue/modals/enqueue-job-modal.ok.js +1 -1
  82. package/public/sections/queue/modals/job-type-modal.ok.js +1 -1
  83. package/public/sections/queue/parts/ok-job-form.ok.js +1 -1
  84. package/public/sections/queue/parts/queue-buckets.ok.js +1 -1
  85. package/public/sections/queue/parts/queue-job-types.ok.js +1 -1
  86. package/public/sections/queue/parts/queue-jobs.ok.js +1 -1
  87. package/public/sections/queue/parts/queue-types.ok.js +1 -1
  88. package/public/sections/queue/parts/queue-workers.ok.js +1 -1
  89. package/public/sections/sync/parts/sync-node-detail.ok.js +1 -1
  90. package/public/sections/sync/parts/sync-retention.ok.js +1 -1
  91. package/public/sections/sync/parts/sync-topology.ok.js +1 -1
  92. package/public/sections/system/modals/data-ops-modal.ok.js +1 -1
  93. package/public/sections/system/parts/system-api-panel.ok.js +1 -1
  94. package/public/sections/system/parts/system-auth-panel.ok.js +1 -1
  95. package/public/sections/system/parts/system-log-history.ok.js +1 -1
  96. package/public/sections/system/parts/system-log.ok.js +1 -1
  97. package/public/sections/system/parts/system-status.ok.js +1 -1
  98. package/public/sections/system/parts/system-sync-panel.ok.js +1 -1
  99. package/public/sections/views/modals/create-view-modal.ok.js +1 -1
  100. package/public/sections/views/parts/view-detail.ok.js +1 -1
  101. package/public/sections/views/parts/views-list.ok.js +1 -1
  102. package/public/sections/views/parts/views-overview.ok.js +1 -1
  103. package/public/setup-app.js +1 -1
  104. package/public/stores/auth-store.js +1 -1
  105. package/public/stores/events-store.js +1 -1
  106. package/public/stores/functions-store.js +1 -1
  107. package/public/stores/okdb-store.js +1 -1
  108. package/public/stores/theme-store.js +1 -1
  109. package/public/util/permissions.js +1 -1
  110. package/public/util/sift-schema.js +1 -1
  111. package/public/vendor/okjs/ok.esm.min.js +1 -2
  112. package/public/vendor/okjs/toolkit/behavior/async.ok.js +1 -1
  113. package/public/vendor/okjs/toolkit/components/ok-chart.ok.js +1 -1
  114. package/public/vendor/okjs/toolkit/components/ok-doc-viewer.ok.js +1 -1
  115. package/public/vendor/okjs/toolkit/components/ok-marked.ok.js +1 -1
  116. package/public/vendor/okjs/toolkit/components/ok-monaco.ok.js +1 -1
  117. package/public/vendor/okjs/toolkit/core/ok-layer-service.ok.js +1 -1
  118. package/public/vendor/okjs/toolkit/core/ok-layer.ok.js +1 -1
  119. package/public/vendor/okjs/toolkit/core/ok-overlay.ok.js +1 -1
  120. package/public/vendor/okjs/toolkit/core/ok-sandbox.ok.js +1 -1
  121. package/public/vendor/okjs/toolkit/core/transition.ok.js +1 -1
  122. package/public/vendor/okjs/toolkit/core/virtualized.ok.js +1 -1
  123. package/public/vendor/okjs/toolkit/devtools/ok-console-service.ok.js +1 -1
  124. package/public/vendor/okjs/toolkit/devtools/ok-console.ok.js +1 -1
  125. package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor-service.ok.js +1 -1
  126. package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor.ok.js +1 -1
  127. package/public/vendor/okjs/toolkit/devtools/ok-inspector-service.ok.js +1 -1
  128. package/public/vendor/okjs/toolkit/devtools/ok-inspector.ok.js +1 -1
  129. package/public/vendor/okjs/toolkit/devtools/ok-js-tree.ok.js +1 -1
  130. package/public/vendor/okjs/toolkit/devtools/ok-timeline-service.ok.js +1 -1
  131. package/public/vendor/okjs/toolkit/devtools/ok-timeline.ok.js +1 -1
  132. package/public/vendor/okjs/toolkit/docs/doc-viewer.ok.js +1 -1
  133. package/public/vendor/okjs/toolkit/editor/ok-live-component.ok.js +1 -1
  134. package/public/vendor/okjs/toolkit/editor/ok-live-example.ok.js +1 -1
  135. package/public/vendor/okjs/toolkit/editor/ok-live-shell.ok.js +1 -1
  136. package/public/vendor/okjs/toolkit/elements/ok-dropdown.ok.js +1 -1
  137. package/public/vendor/okjs/toolkit/elements/ok-icon.ok.js +1 -1
  138. package/public/vendor/okjs/toolkit/elements/ok-select.ok.js +1 -1
  139. package/public/vendor/okjs/toolkit/elements/ok-table.ok.js +1 -1
  140. package/public/vendor/okjs/toolkit/errors/ok-crash-boundary.ok.js +1 -1
  141. package/public/vendor/okjs/toolkit/errors/ok-crash-info.ok.js +1 -1
  142. package/public/vendor/okjs/toolkit/i18n/i18n-editor-examples.ok.js +1 -1
  143. package/public/vendor/okjs/toolkit/i18n/i18n-editor.ok.js +1 -1
  144. package/public/vendor/okjs/toolkit/i18n/i18n-key-editor-tips.ok.js +1 -1
  145. package/public/vendor/okjs/toolkit/i18n/i18n-key-editor.ok.js +1 -1
  146. package/public/vendor/okjs/toolkit/i18n/i18n-service.ok.js +1 -1
  147. package/public/vendor/okjs/toolkit/i18n/ok-i18n.js +1 -1
  148. package/public/vendor/okjs/toolkit/interaction/ok-contextmenu.ok.js +1 -1
  149. package/public/vendor/okjs/toolkit/interaction/ok-dismiss-service.ok.js +1 -1
  150. package/public/vendor/okjs/toolkit/interaction/ok-draggable.ok.js +1 -1
  151. package/public/vendor/okjs/toolkit/interaction/ok-flyover-panel.ok.js +1 -1
  152. package/public/vendor/okjs/toolkit/interaction/ok-flyover.ok.js +1 -1
  153. package/public/vendor/okjs/toolkit/interaction/ok-highlight-service.ok.js +1 -1
  154. package/public/vendor/okjs/toolkit/interaction/ok-highlight.ok.js +1 -1
  155. package/public/vendor/okjs/toolkit/interaction/ok-hotkeys-service.ok.js +1 -1
  156. package/public/vendor/okjs/toolkit/interaction/ok-picker-service.ok.js +1 -1
  157. package/public/vendor/okjs/toolkit/interaction/ok-popout-service.ok.js +1 -1
  158. package/public/vendor/okjs/toolkit/interaction/ok-popout.ok.js +1 -1
  159. package/public/vendor/okjs/toolkit/interaction/ok-portal-service.ok.js +1 -1
  160. package/public/vendor/okjs/toolkit/interaction/ok-submenu.ok.js +1 -1
  161. package/public/vendor/okjs/toolkit/layout/ok-resizer.ok.js +1 -1
  162. package/public/vendor/okjs/toolkit/manifest.js +1 -1
  163. package/public/vendor/okjs/toolkit/modals/ok-modal-service.ok.js +1 -1
  164. package/public/vendor/okjs/toolkit/modals/ok-modal.ok.js +1 -1
  165. package/public/vendor/okjs/toolkit/modals/ok-toast-service.ok.js +1 -1
  166. package/public/vendor/okjs/toolkit/modals/ok-window.ok.js +1 -1
  167. package/public/vendor/okjs/toolkit/navigation/hash-router.ok.js +1 -1
  168. package/public/vendor/okjs/toolkit/navigation/history-router.ok.js +1 -1
  169. package/public/vendor/okjs/toolkit/navigation/router.ok.js +1 -1
  170. package/public/vendor/okjs/toolkit/sync/reactive-sync-service.ok.js +1 -1
  171. package/public/vendor/okjs/toolkit/sync/reactive-sync.js +1 -1
  172. package/public/vendor/okjs/toolkit/theming/blocks/ok-design-button.css.js +1 -1
  173. package/public/vendor/okjs/toolkit/theming/blocks/ok-design-input.css.js +1 -1
  174. package/public/vendor/okjs/toolkit/theming/ok-design-style.js +1 -1
  175. package/public/vendor/okjs/toolkit/theming/ok-design-vars.js +1 -1
  176. package/public/vendor/okjs/toolkit/theming/ok-design.ok.js +1 -1
  177. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-input.ok.js +1 -1
  178. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-service.ok.js +1 -1
  179. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-style.js +1 -1
  180. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-utils.js +1 -1
  181. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-variable.ok.js +1 -1
  182. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-vm.js +1 -1
  183. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor.ok.js +1 -1
  184. package/public/vendor/okjs/toolkit/theming/ok-theme.ok.js +1 -1
  185. package/public/view-models/type-query-vm.js +1 -1
  186. package/okdb-data/default/data.mdb +0 -0
  187. package/okdb-data/default/lock.mdb +0 -0
  188. package/okdb-data/~log/data.mdb +0 -0
  189. package/okdb-data/~log/lock.mdb +0 -0
  190. package/okdb-data/~system/data.mdb +0 -0
  191. package/okdb-data/~system/lock.mdb +0 -0
  192. package/public/images/logo.png +0 -0
  193. package/public/images/logo.svg +0 -333
@@ -1 +1 @@
1
- const _0xb207bd=_0x5c03;(function(_0x6bf525,_0x59a625){const _0x26a55b=_0x5c03,_0x447d0b=_0x6bf525();while(!![]){try{const _0x49bae5=-parseInt(_0x26a55b(0x222))/0x1+parseInt(_0x26a55b(0x1e2))/0x2+-parseInt(_0x26a55b(0x19d))/0x3+parseInt(_0x26a55b(0x1ea))/0x4*(parseInt(_0x26a55b(0x206))/0x5)+parseInt(_0x26a55b(0x217))/0x6*(parseInt(_0x26a55b(0x1a7))/0x7)+-parseInt(_0x26a55b(0x1be))/0x8*(parseInt(_0x26a55b(0x243))/0x9)+parseInt(_0x26a55b(0x19c))/0xa*(parseInt(_0x26a55b(0x1f8))/0xb);if(_0x49bae5===_0x59a625)break;else _0x447d0b['push'](_0x447d0b['shift']());}catch(_0x3db7ce){_0x447d0b['push'](_0x447d0b['shift']());}}}(_0x41a1,0xd25e3));function _0x5c03(_0x1e2289,_0x15fef5){_0x1e2289=_0x1e2289-0x199;const _0x41a14e=_0x41a1();let _0x5c03d8=_0x41a14e[_0x1e2289];return _0x5c03d8;}import _0x11aa59 from'../../../components/ok-js-input.ok.js';import _0x36769c from'./embed-create-panel.ok.js';const t=[{'symbol':'require','pattern':/(^|[^\w$.])require\s*\(/},{'symbol':_0xb207bd(0x231),'pattern':/(^|[^\w$.])import\b/},{'symbol':_0xb207bd(0x1ef),'pattern':/(^|[^\w$.])console\b/},{'symbol':_0xb207bd(0x21e),'pattern':/(^|[^\w$.])module\b/},{'symbol':_0xb207bd(0x1dd),'pattern':/(^|[^\w$.])exports\b/},{'symbol':_0xb207bd(0x1c2),'pattern':/(^|[^\w$.])process\b/},{'symbol':_0xb207bd(0x1c9),'pattern':/child_process/},{'symbol':_0xb207bd(0x1b4),'pattern':/worker_threads/}];function i(_0xf4cb17){const _0x201e7e=_0xb207bd,_0x2e4ba4='string'==typeof _0xf4cb17?_0xf4cb17[_0x201e7e(0x19e)](/\r\n/g,'\x0a')[_0x201e7e(0x1fe)]():'';if(!_0x2e4ba4)return{'ok':!0x1,'message':'Source\x20is\x20required'};if(new TextEncoder()[_0x201e7e(0x20b)](_0x2e4ba4)[_0x201e7e(0x1f6)]>0x10000)return{'ok':!0x1,'message':_0x201e7e(0x1d9)};if(!/^(async\s+)?\(\s*[A-Za-z_$][\w$]*\s*\)\s*=>/['test'](_0x2e4ba4))return{'ok':!0x1,'message':_0x201e7e(0x234)};for(const {symbol:_0x5506ad,pattern:_0x1227f9}of t)if(_0x1227f9[_0x201e7e(0x20d)](_0x2e4ba4))return{'ok':!0x1,'message':_0x201e7e(0x1a0)+_0x5506ad+'\x22'};try{new Function('return\x20('+_0x2e4ba4+');')();}catch(_0x22a71a){return{'ok':!0x1,'message':_0x22a71a?.[_0x201e7e(0x1cd)]||_0x201e7e(0x22e)};}return{'ok':!0x0,'normalizedSource':_0x2e4ba4};}function a(_0x3ae241){const _0x7ed06f=_0xb207bd;return!0x0===_0x3ae241||''===_0x3ae241||0x1===_0x3ae241||'1'===_0x3ae241||_0x7ed06f(0x210)===_0x3ae241;}export default{'tag':'pipeline-create-panel','attr':{'locktype':{},'lockenv':{},'initialkind':{},'locktypestrict':{},'hidequeueworker':{}},'dependencies':[_0x11aa59,_0x36769c],'context':_0x361fe7=>({'step':0x1,'busy':!0x1,'error':null,'success':null,'engineKind':'','proc_sourceType':'','mat_sourceType':'','mat_targetType':'','qw_jobType':'','qw_jobTypeMode':'existing','handlerMode':_0xb207bd(0x219),'handlerName':'','newFnName':'','newFnSource':'','newFnValidation':{'ok':!0x1,'message':_0xb207bd(0x1e9)},'newFnDryRunning':!0x1,'newFnDryResult':null,'newFnDryError':null,'newFnDryPayload':null,'showAdvanced':!0x1,'proc_mode':'async','proc_bootstrap':'snapshot','proc_batchSize':0x100,'proc_originMode':_0xb207bd(0x245),'mat_bootstrap':_0xb207bd(0x21f),'mat_batchSize':0x80,'mat_originMode':'all','mat_clearTargetOnRebuild':!0x0,'qw_concurrency':0x1,'handler_recordRuns':'errors','types':[],'functions':[],'queueJobTypes':[],get 'lockedType'(){const _0x22952b=_0xb207bd;return _0x361fe7[_0x22952b(0x1d0)][_0x22952b(0x235)]||'';},get 'lockedEnv'(){const _0x461644=_0xb207bd;return _0x361fe7['$attr'][_0x461644(0x203)]||'';},get 'initialKind'(){const _0x302a98=_0xb207bd,_0x4e8f5b=_0x361fe7[_0x302a98(0x1d0)]['initialkind']||'';return this['availableKinds'][_0x302a98(0x199)](_0x4e8f5b)?_0x4e8f5b:'';},get 'lockTypeStrict'(){const _0x1cb7ca=_0xb207bd;return a(_0x361fe7[_0x1cb7ca(0x1d0)][_0x1cb7ca(0x23b)]);},get 'hideQueueWorker'(){return a(_0x361fe7['$attr']['hidequeueworker']);},get 'availableKinds'(){const _0x5b4d53=_0xb207bd;return[_0x5b4d53(0x1e7),_0x5b4d53(0x23a),_0x5b4d53(0x1b1),_0x5b4d53(0x22b)]['filter'](_0x42af77=>!(this[_0x5b4d53(0x20e)]&&_0x5b4d53(0x1b1)===_0x42af77));},get 'typeSelectionLocked'(){return!!this['lockedType']&&this['lockTypeStrict'];},get 'kindLocked'(){const _0x19c476=_0xb207bd;return!!this[_0x19c476(0x1c3)];},get 'selectedEnv'(){const _0x26f495=_0xb207bd;return this[_0x26f495(0x202)]||_0x361fe7[_0x26f495(0x1f5)][_0x26f495(0x1b9)][_0x26f495(0x1d2)][_0x26f495(0x1db)]||'default';},async 'loadMeta'(){const _0x36a5a4=_0xb207bd,_0x1f6fc4=this[_0x36a5a4(0x1db)];try{const [_0x2033cd,_0x3161a1,_0x140a9e]=await Promise[_0x36a5a4(0x245)]([fetch(__ENV__['API']+'/env/'+encodeURIComponent(_0x1f6fc4)+_0x36a5a4(0x1ee)),fetch(__ENV__[_0x36a5a4(0x233)]+_0x36a5a4(0x22f)+encodeURIComponent(_0x1f6fc4)+_0x36a5a4(0x1ae)),fetch(__ENV__['API']+_0x36a5a4(0x22f)+encodeURIComponent(_0x1f6fc4)+_0x36a5a4(0x1cc))[_0x36a5a4(0x1fa)](()=>null)]),_0x1b0f5b=await _0x2033cd[_0x36a5a4(0x220)]()[_0x36a5a4(0x1fa)](()=>({})),_0x2226d3=await _0x3161a1[_0x36a5a4(0x220)]()[_0x36a5a4(0x1fa)](()=>({})),_0x166b58=_0x1b0f5b[_0x36a5a4(0x1e4)]??_0x1b0f5b['result']??[];this[_0x36a5a4(0x1ac)]=(Array[_0x36a5a4(0x19b)](_0x166b58)?_0x166b58[_0x36a5a4(0x1b3)](_0x14efe8=>_0x14efe8[_0x36a5a4(0x1c4)]??_0x14efe8[_0x36a5a4(0x230)]??_0x14efe8):Object['keys'](_0x166b58))[_0x36a5a4(0x211)](_0x3dc0fc=>_0x36a5a4(0x237)==typeof _0x3dc0fc&&!_0x3dc0fc[_0x36a5a4(0x1b7)]('~'))[_0x36a5a4(0x22a)]();const _0x43c21e=_0x2226d3[_0x36a5a4(0x1e4)]??_0x2226d3['result']??[];if(this['functions']=Array['isArray'](_0x43c21e)?_0x43c21e[_0x36a5a4(0x1b3)](_0x4810e9=>_0x4810e9[_0x36a5a4(0x1b8)]??_0x4810e9[_0x36a5a4(0x230)]??_0x4810e9)[_0x36a5a4(0x211)](Boolean)[_0x36a5a4(0x22a)]():[],_0x140a9e&&_0x140a9e['ok']){const _0x2322f2=await _0x140a9e['json']()[_0x36a5a4(0x1fa)](()=>({})),_0x25898c=_0x2322f2?.[_0x36a5a4(0x22d)]??_0x2322f2?.['data']??null,_0x46b099=_0x25898c?.[_0x36a5a4(0x21d)]??{};this[_0x36a5a4(0x1e8)]=Object['keys'](_0x46b099)[_0x36a5a4(0x22a)]();}else this[_0x36a5a4(0x1e8)]=[];}catch{this[_0x36a5a4(0x1ac)]=[],this[_0x36a5a4(0x225)]=[],this[_0x36a5a4(0x1e8)]=[];}},get 'effectiveJobType'(){const _0x11a6bb=_0xb207bd;return _0x11a6bb(0x1f9)===this[_0x11a6bb(0x1b2)]?this['qw_jobType']['trim']():this['qw_jobType'];},get 'effectiveHandlerName'(){const _0x9889c9=_0xb207bd;return _0x9889c9(0x1af)===this['handlerMode']?this[_0x9889c9(0x1f0)][_0x9889c9(0x1fe)]():this['handlerName'];},get 'autoName'(){const _0x303314=_0xb207bd;return _0x303314(0x1e7)===this[_0x303314(0x1fd)]&&this[_0x303314(0x1ec)]&&this[_0x303314(0x1c7)]?this[_0x303314(0x1ec)]+'-'+this[_0x303314(0x1c7)]:_0x303314(0x23a)===this['engineKind']&&this[_0x303314(0x1d4)]&&this[_0x303314(0x240)]&&this['effectiveHandlerName']?this[_0x303314(0x1d4)]+_0x303314(0x1e5)+this[_0x303314(0x240)]+'-'+this[_0x303314(0x1c7)]:_0x303314(0x1b1)===this[_0x303314(0x1fd)]&&this[_0x303314(0x246)]&&this['effectiveHandlerName']?this['effectiveJobType']+'-'+this[_0x303314(0x1c7)]:'';},get 'pipelineName'(){const _0x3e5c3c=_0xb207bd;return this[_0x3e5c3c(0x1c1)];},get 'engineName'(){const _0x226ed2=_0xb207bd;return this[_0x226ed2(0x1c1)]?this[_0x226ed2(0x1c1)]+':'+this[_0x226ed2(0x1fd)]:'';},get 'step2Valid'(){const _0x4eae23=_0xb207bd;return _0x4eae23(0x22b)===this[_0x4eae23(0x1fd)]||!(_0x4eae23(0x1e7)===this[_0x4eae23(0x1fd)]&&!this['proc_sourceType'])&&!!('materializer'!==this[_0x4eae23(0x1fd)]||this['mat_sourceType']&&this['mat_targetType'])&&!(_0x4eae23(0x1b1)===this[_0x4eae23(0x1fd)]&&!this['effectiveJobType'])&&('existing'===this[_0x4eae23(0x1df)]?!!this[_0x4eae23(0x1b5)]:!!this[_0x4eae23(0x1f0)][_0x4eae23(0x1fe)]()&&this['newFnValidation']['ok']);},'resetWizard'(){const _0x3de863=_0xb207bd;this[_0x3de863(0x1ff)]=this[_0x3de863(0x1aa)]?0x2:0x1,this[_0x3de863(0x1fd)]=this[_0x3de863(0x1aa)]?this[_0x3de863(0x1c3)]:'',this[_0x3de863(0x1ec)]=this['lockedType']||'',this[_0x3de863(0x1d4)]=this[_0x3de863(0x1da)]||'',this[_0x3de863(0x240)]='',this[_0x3de863(0x1d8)]='',this[_0x3de863(0x1b2)]=_0x3de863(0x219),this[_0x3de863(0x1df)]=_0x3de863(0x219),this['handlerName']='',this[_0x3de863(0x1f0)]='',this[_0x3de863(0x23f)]='',this['newFnValidation']={'ok':!0x1,'message':_0x3de863(0x1e9)},this['newFnDryResult']=null,this[_0x3de863(0x1a1)]=null,this[_0x3de863(0x238)]=!0x1,this[_0x3de863(0x1eb)]=_0x3de863(0x1a4),this[_0x3de863(0x1c5)]=_0x3de863(0x1d7),this[_0x3de863(0x1ba)]=_0x3de863(0x21f),this[_0x3de863(0x20c)]=0x100,this[_0x3de863(0x201)]=_0x3de863(0x245),this[_0x3de863(0x212)]=_0x3de863(0x21f),this[_0x3de863(0x228)]=0x80,this[_0x3de863(0x1bd)]=_0x3de863(0x245),this['mat_clearTargetOnRebuild']=!0x0,this['qw_concurrency']=0x1;},'applyScopeDefaults'(){const _0x16b5f7=_0xb207bd;this[_0x16b5f7(0x20a)]?(this[_0x16b5f7(0x1ec)]=this['lockedType'],this['mat_sourceType']=this[_0x16b5f7(0x1da)]):this[_0x16b5f7(0x1da)]&&!this[_0x16b5f7(0x1ec)]&&(this['proc_sourceType']=this[_0x16b5f7(0x1da)]),this[_0x16b5f7(0x20a)]||!this[_0x16b5f7(0x1da)]||this[_0x16b5f7(0x1d4)]||(this[_0x16b5f7(0x1d4)]=this[_0x16b5f7(0x1da)]),this[_0x16b5f7(0x1aa)]&&this[_0x16b5f7(0x1fd)]!==this[_0x16b5f7(0x1c3)]&&this['pickType'](this[_0x16b5f7(0x1c3)]);},get 'dedupedDryLogs'(){const _0x4dded6=_0xb207bd,_0x3cfc61=this[_0x4dded6(0x1a2)]?.[_0x4dded6(0x213)];if(!Array['isArray'](_0x3cfc61)||!_0x3cfc61[_0x4dded6(0x1f6)])return[];const _0x1ca871=[],_0x5316e9=new Map();for(const _0x5c6958 of _0x3cfc61){const _0x52d217=(_0x5c6958[_0x4dded6(0x1d3)]??'')+'::'+(_0x5c6958[_0x4dded6(0x207)]??_0x5c6958[_0x4dded6(0x1cd)]??JSON['stringify'](_0x5c6958));if(_0x5316e9[_0x4dded6(0x23e)](_0x52d217))_0x5316e9['get'](_0x52d217)[_0x4dded6(0x223)]++;else{const _0xf1bb77={..._0x5c6958,'count':0x1,'_key':_0x52d217};_0x5316e9[_0x4dded6(0x239)](_0x52d217,_0xf1bb77),_0x1ca871['push'](_0xf1bb77);}}return _0x1ca871;},get 'dryRunDuration'(){const _0x567ca1=_0xb207bd,_0x952279=this[_0x567ca1(0x1a2)];return _0x952279?_0x952279[_0x567ca1(0x1c0)]?.[_0x567ca1(0x1c8)]??null:null;},get 'dryRunStatus'(){const _0x5ebeb0=_0xb207bd,_0x39ef34=this[_0x5ebeb0(0x1a2)];return _0x39ef34?_0x5ebeb0(0x19f)===_0x39ef34['status']||_0x39ef34[_0x5ebeb0(0x19f)]?'error':_0x39ef34[_0x5ebeb0(0x1e6)]||_0x5ebeb0(0x1f2):null;},'pickType'(_0x43ff52){const _0x1938d7=_0xb207bd;this[_0x1938d7(0x1ad)][_0x1938d7(0x199)](_0x43ff52)&&(this[_0x1938d7(0x1fd)]=_0x43ff52,this['step']=0x2,this[_0x1938d7(0x20a)]&&(this[_0x1938d7(0x1ec)]=this[_0x1938d7(0x1da)],this[_0x1938d7(0x1d4)]=this['lockedType']),_0x1938d7(0x22b)!==_0x43ff52&&(this[_0x1938d7(0x23f)]||(this[_0x1938d7(0x23f)]='processor'===_0x43ff52?_0x1938d7(0x23d):_0x1938d7(0x23a)===_0x43ff52?'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}':_0x1938d7(0x1f7),this[_0x1938d7(0x1de)]=i(this[_0x1938d7(0x23f)]))));},'goBack'(){const _0x39eb94=_0xb207bd;_0x39eb94(0x22b)!==this[_0x39eb94(0x1fd)]?this[_0x39eb94(0x1ff)]>0x1&&this['step']--:this[_0x39eb94(0x216)]();},'goNext'(){const _0x17e2a6=_0xb207bd;0x2===this[_0x17e2a6(0x1ff)]&&this[_0x17e2a6(0x244)]&&(this['step']=0x3);},'onEmbeddingCreated'(_0x590961){const _0xee47b8=_0xb207bd;this[_0xee47b8(0x1f2)]=_0xee47b8(0x209),this[_0xee47b8(0x19f)]=null,this['resetWizard'](),_0x361fe7[_0xee47b8(0x1d6)][_0xee47b8(0x226)](new CustomEvent(_0xee47b8(0x1cb),{'detail':_0x590961,'bubbles':!0x0}));},'updateSource'(_0x7d2ab3){const _0x2509f2=_0xb207bd;this['newFnSource']=_0x7d2ab3??'',this[_0x2509f2(0x1de)]=i(this[_0x2509f2(0x23f)]);},async 'buildDryRunPayload'(){const _0x57493b=_0xb207bd;if(_0x57493b(0x1e7)===this[_0x57493b(0x1fd)])return[{'key':_0x57493b(0x1bf),'value':{'sample':!0x0,'name':_0x57493b(0x200)},'action':_0x57493b(0x1a9),'clock':0x1}];if('materializer'===this[_0x57493b(0x1fd)])return[{'key':_0x57493b(0x1bf),'value':{'sample':!0x0,'name':_0x57493b(0x200)},'action':'put','clock':null},{'key':'test-2','action':_0x57493b(0x229),'clock':0x2}];const _0x5d22fd=this['effectiveJobType'];if(_0x5d22fd)try{const _0x473bdc=this[_0x57493b(0x1db)],_0x29fd22=__ENV__[_0x57493b(0x233)]+'/env/'+encodeURIComponent(_0x473bdc)+_0x57493b(0x1b6),_0x559da6=await fetch(_0x29fd22+_0x57493b(0x1a5)+new URLSearchParams({'type':_0x5d22fd,'limit':'1'}));if(_0x559da6['ok']){const _0x28f346=await _0x559da6[_0x57493b(0x220)](),_0x29598b=_0x28f346?.[_0x57493b(0x22d)]?.[_0x57493b(0x224)]??_0x28f346?.[_0x57493b(0x1e4)]?.[_0x57493b(0x224)]??[],_0x1d16b5=_0x29598b[0x0]?.[_0x57493b(0x1b8)]??_0x29598b[0x0]?.['id']??_0x29598b[0x0]?.['value']?.['id'];if(_0x1d16b5){const _0x2b611e=await fetch(_0x29fd22+_0x57493b(0x1a8)+encodeURIComponent(_0x1d16b5));if(_0x2b611e['ok']){const _0x2ef80e=await _0x2b611e[_0x57493b(0x220)](),_0x16b7fa=_0x2ef80e?.['result']??_0x2ef80e?.[_0x57493b(0x1e4)];if(void 0x0!==_0x16b7fa?.['payload'])return _0x16b7fa[_0x57493b(0x1ed)];}}}}catch{}return{};},async 'dryRunFunction'(){const _0x36903e=_0xb207bd;if(this[_0x36903e(0x1de)]['ok']&&!this[_0x36903e(0x1e0)]){this[_0x36903e(0x1e0)]=!0x0,this['newFnDryResult']=null,this[_0x36903e(0x1a1)]=null,this[_0x36903e(0x1ca)]=null;try{const _0x3d319a=this[_0x36903e(0x1db)],_0x4fcb68=await this[_0x36903e(0x1a6)]();this[_0x36903e(0x1ca)]=_0x4fcb68;const _0x1bef44={'name':this['newFnName']['trim']()||_0x36903e(0x1c6),'source':this['newFnValidation'][_0x36903e(0x1f4)]||this[_0x36903e(0x23f)]['trim'](),'metadata':{'description':'Pipeline\x20handler\x20preview'},'enabled':!0x0,'payload':_0x4fcb68};_0x36903e(0x1b1)===this[_0x36903e(0x1fd)]&&(_0x1bef44['jobContext']={'id':_0x36903e(0x1ce),'type':this[_0x36903e(0x246)]||_0x36903e(0x227),'tries':0x1,'created':Date['now'](),'tags':null,'priority':0x0,'bucket':null,'cron':null}),'processor'===this[_0x36903e(0x1fd)]&&(_0x1bef44[_0x36903e(0x21a)]={'mode':_0x36903e(0x1e1),'sourceType':this[_0x36903e(0x1ec)]||_0x36903e(0x214),'sourceEnv':this['selectedEnv'],'processor':_0x36903e(0x1c6),'engineKey':_0x36903e(0x1c6),'cursorKey':null}),'materializer'===this[_0x36903e(0x1fd)]&&(_0x1bef44[_0x36903e(0x242)]={'mode':_0x36903e(0x1e1),'sourceType':this[_0x36903e(0x1d4)]||_0x36903e(0x214),'targetType':this[_0x36903e(0x240)]||_0x36903e(0x1cf),'sourceEnv':this[_0x36903e(0x1db)],'targetEnv':this[_0x36903e(0x1db)],'engineKey':_0x36903e(0x1c6),'cursorKey':null});const _0xbbb60f=await fetch(__ENV__[_0x36903e(0x233)]+_0x36903e(0x22f)+encodeURIComponent(_0x3d319a)+_0x36903e(0x1d1),{'method':_0x36903e(0x1d5),'headers':{'Content-Type':_0x36903e(0x1bb)},'body':JSON[_0x36903e(0x19a)](_0x1bef44)}),_0xb3284d=await _0xbbb60f[_0x36903e(0x220)]()['catch'](()=>({})),_0x4d2b4b=_0xb3284d?.[_0x36903e(0x1e4)]??_0xb3284d?.[_0x36903e(0x22d)]??_0xb3284d;if(!_0xbbb60f['ok']&&!_0x4d2b4b?.[_0x36903e(0x1e6)])throw new Error(_0xb3284d?.[_0x36903e(0x19f)]?.[_0x36903e(0x1cd)]||'Preview\x20failed\x20('+_0xbbb60f['status']+')');this[_0x36903e(0x1a2)]=_0x4d2b4b;}catch(_0x3a7e7f){this[_0x36903e(0x1a1)]=_0x3a7e7f?.['message']||String(_0x3a7e7f);}finally{this[_0x36903e(0x1e0)]=!0x1;}}},'buildEngineConfig'(){const _0x2b8dfa=_0xb207bd,_0x599438={'kind':_0x2b8dfa(0x205),'name':this[_0x2b8dfa(0x1c7)]};return _0x2b8dfa(0x245)!==this[_0x2b8dfa(0x1eb)]&&(_0x599438['recordRuns']=this['handler_recordRuns']),_0x2b8dfa(0x1e7)===this[_0x2b8dfa(0x1fd)]?{'source_type':this[_0x2b8dfa(0x1ec)],'source_env':this[_0x2b8dfa(0x1db)],'handler':_0x599438,'mode':this[_0x2b8dfa(0x1c5)],'bootstrap':_0x2b8dfa(0x1b0)===this[_0x2b8dfa(0x1c5)]?null:this[_0x2b8dfa(0x1ba)],'batchSize':Number(this['proc_batchSize'])||0x100,'originMode':this[_0x2b8dfa(0x201)]}:_0x2b8dfa(0x23a)===this[_0x2b8dfa(0x1fd)]?{'source_type':this['mat_sourceType'],'target_type':this[_0x2b8dfa(0x240)],'source_env':this['selectedEnv'],'target_env':this['selectedEnv'],'handler':_0x599438,'bootstrap':this[_0x2b8dfa(0x212)],'batchSize':Number(this['mat_batchSize'])||0x80,'originMode':this[_0x2b8dfa(0x1bd)],'clearTargetOnRebuild':!0x1!==this[_0x2b8dfa(0x20f)]}:'queue-worker'===this[_0x2b8dfa(0x1fd)]?{'job_type':this[_0x2b8dfa(0x246)],'queue_env':this[_0x2b8dfa(0x1db)],'handler':_0x599438,'concurrency':Number(this['qw_concurrency'])||0x1}:{};},async 'submit'(){const _0x564650=_0xb207bd;if(this['step2Valid']&&!this[_0x564650(0x204)]){this['busy']=!0x0,this[_0x564650(0x19f)]=null,this[_0x564650(0x1f2)]=null;try{const _0x1bb8bf=this[_0x564650(0x1db)];if(_0x564650(0x1af)===this[_0x564650(0x1df)]){const _0x26f687={'name':this[_0x564650(0x1f0)][_0x564650(0x1fe)](),'source':this[_0x564650(0x1de)]['normalizedSource']||this[_0x564650(0x23f)]['trim'](),'metadata':{'description':_0x564650(0x1a3)+this[_0x564650(0x215)],'owner_engine':this['engineName'],'pipeline':this[_0x564650(0x215)]},'enabled':!0x0},_0x555eb2=await fetch(__ENV__['API']+'/env/'+encodeURIComponent(_0x1bb8bf)+'/functions',{'method':_0x564650(0x1d5),'headers':{'Content-Type':_0x564650(0x1bb)},'body':JSON[_0x564650(0x19a)](_0x26f687)}),_0x21b179=await _0x555eb2['json']()[_0x564650(0x1fa)](()=>({}));if(!_0x555eb2['ok'])throw new Error(_0x21b179?.[_0x564650(0x19f)]?.[_0x564650(0x1cd)]||_0x564650(0x236)+_0x555eb2[_0x564650(0x1e6)]+')');}const _0x53f0de={'name':this[_0x564650(0x215)],'meta':{'label':this[_0x564650(0x215)]},'members':[{'engineType':this['engineKind'],'engineName':this[_0x564650(0x1f1)],'role':this[_0x564650(0x1fd)],'engineConfig':this[_0x564650(0x22c)]()}]},_0x382a25=await fetch(__ENV__['API']+'/env/'+encodeURIComponent(_0x1bb8bf)+_0x564650(0x232),{'method':_0x564650(0x1d5),'headers':{'Content-Type':'application/json'},'body':JSON[_0x564650(0x19a)](_0x53f0de)}),_0x31907c=await _0x382a25['json']()['catch'](()=>({}));if(!_0x382a25['ok'])throw new Error(_0x31907c?.['error']?.['message']||_0x564650(0x1fc)+_0x382a25[_0x564650(0x1e6)]+')');this[_0x564650(0x1f2)]='Pipeline\x20\x22'+this[_0x564650(0x215)]+_0x564650(0x1fb),_0x361fe7['$el'][_0x564650(0x226)](new CustomEvent(_0x564650(0x1cb),{'detail':_0x31907c[_0x564650(0x22d)]??_0x31907c[_0x564650(0x1e4)],'bubbles':!0x0})),this[_0x564650(0x216)]();}catch(_0x171fb3){this[_0x564650(0x19f)]=_0x171fb3?.[_0x564650(0x1cd)]||String(_0x171fb3);}finally{this[_0x564650(0x204)]=!0x1;}}},'formatJson'(_0x40b3a2){const _0x11da0e=_0xb207bd;try{return JSON[_0x11da0e(0x19a)](_0x40b3a2,null,0x2);}catch{return String(_0x40b3a2??'');}},'setJobTypeMode'(_0x2da490){const _0x46b685=_0xb207bd;this[_0x46b685(0x1b2)]=_0x2da490,this[_0x46b685(0x1d8)]='';},'logLabel'(_0x5eb6e9){const _0x36271d=_0xb207bd,_0x1552a0=_0x5eb6e9?.['msg']??_0x5eb6e9?.[_0x36271d(0x1cd)]??'';return _0x5eb6e9?.[_0x36271d(0x223)]>0x1?_0x1552a0+_0x36271d(0x208)+_0x5eb6e9[_0x36271d(0x223)]+')':_0x1552a0;},'logColor'(_0x54abef){const _0x1e6abe=_0xb207bd,_0x5208c3=_0x54abef?.['level']??'';return _0x1e6abe(0x19f)===_0x5208c3||_0x1e6abe(0x221)===_0x5208c3?_0x1e6abe(0x1ab):_0x1e6abe(0x1f3)===_0x5208c3?_0x1e6abe(0x1dc):_0x1e6abe(0x241)===_0x5208c3?'var(--okdb-app-fg-muted)':_0x1e6abe(0x218);}}),async 'init'(_0x1acf37){const _0x4374bc=_0xb207bd;await this[_0x4374bc(0x21c)](),this[_0x4374bc(0x1bc)](),_0x1acf37[_0x4374bc(0x21b)](()=>_0x1acf37['$ok'][_0x4374bc(0x1b9)][_0x4374bc(0x1d2)][_0x4374bc(0x1db)],async()=>{const _0x3a743d=_0x4374bc;await this['loadMeta'](),this[_0x3a743d(0x1bc)]();});},'style':_0xb207bd(0x1e3),'template':_0xb207bd(0x23c)};function _0x41a1(){const _0x1f4ec5=['handlerMode','newFnDryRunning','live','1042710QavOib','\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','data','-to-','status','processor','queueJobTypes','Source\x20is\x20required','2111308ttgjSO','handler_recordRuns','proc_sourceType','payload','/types','console','newFnName','engineName','success','warn','normalizedSource','$ok','length','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}','88xadOqS','custom','catch','\x22\x20created\x20and\x20started','Failed\x20(','engineKind','trim','step','Example\x20record','proc_originMode','lockedEnv','lockenv','busy','function','5SCvObr','msg','\x20(×','Embedding\x20pipeline\x20created','typeSelectionLocked','encode','proc_batchSize','test','hideQueueWorker','mat_clearTargetOnRebuild','true','filter','mat_bootstrap','logs','example','pipelineName','resetWizard','3078pLLorF','var(--okdb-app-fg-subtle)','existing','processorContext','$watch','loadMeta','byType','module','snapshot','json','fatal','1677760NXMXPT','count','items','functions','dispatchEvent','preview','mat_batchSize','remove','sort','embedding','buildEngineConfig','result','Compile\x20error','/env/','name','import','/pipelines/scaffold','API','Must\x20be\x20(ctx)\x20=>\x20{\x20…\x20}\x20or\x20async\x20(ctx)\x20=>\x20{\x20…\x20}','locktype','Failed\x20to\x20create\x20function\x20(','string','showAdvanced','set','materializer','locktypestrict','\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.&nbsp;<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>','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}','has','newFnSource','mat_targetType','debug','materializerContext','294822cBzsRS','step2Valid','all','effectiveJobType','includes','stringify','isArray','3027910KxmLjs','3820794QfTVaj','replace','error','Cannot\x20use\x20\x22','newFnDryError','newFnDryResult','Handler\x20for\x20pipeline\x20','errors','/jobs?','buildDryRunPayload','6895iQjBsw','/job/','put','kindLocked','var(--okdb-danger)','types','availableKinds','/functions','new','inline','queue-worker','qw_jobTypeMode','map','worker_threads','handlerName','/queue','startsWith','key','stores','proc_bootstrap','application/json','applyScopeDefaults','mat_originMode','40PyabCy','test-1','execution','autoName','process','initialKind','type','proc_mode','__preview__','effectiveHandlerName','durationMs','child_process','newFnDryPayload','created','/queue/stats','message','__preview-job__','example_projection','$attr','/functions/preview','okdb','level','mat_sourceType','POST','$el','async','qw_jobType','Source\x20exceeds\x2064\x20KB','lockedType','selectedEnv','var(--okdb-warning)','exports','newFnValidation'];_0x41a1=function(){return _0x1f4ec5;};return _0x41a1();}
1
+ const _0x5a4312=_0x5df4;(function(_0x136486,_0x3865e1){const _0x21aad4=_0x5df4,_0x26de81=_0x136486();while(!![]){try{const _0x45b7c3=-parseInt(_0x21aad4(0x1b4))/0x1+parseInt(_0x21aad4(0x1b8))/0x2+parseInt(_0x21aad4(0x237))/0x3*(-parseInt(_0x21aad4(0x23d))/0x4)+-parseInt(_0x21aad4(0x1e6))/0x5*(parseInt(_0x21aad4(0x1ad))/0x6)+parseInt(_0x21aad4(0x1f5))/0x7*(-parseInt(_0x21aad4(0x204))/0x8)+parseInt(_0x21aad4(0x23e))/0x9*(parseInt(_0x21aad4(0x1af))/0xa)+-parseInt(_0x21aad4(0x209))/0xb*(-parseInt(_0x21aad4(0x24d))/0xc);if(_0x45b7c3===_0x3865e1)break;else _0x26de81['push'](_0x26de81['shift']());}catch(_0x154c95){_0x26de81['push'](_0x26de81['shift']());}}}(_0x51b2,0xc2686));import _0xb1127f from'../../../components/ok-js-input.ok.js';import _0x4b3a0c from'./embed-create-panel.ok.js';function _0x5df4(_0x39437c,_0xf97984){_0x39437c=_0x39437c-0x1a9;const _0x51b2b1=_0x51b2();let _0x5df461=_0x51b2b1[_0x39437c];return _0x5df461;}const t=[{'symbol':_0x5a4312(0x245),'pattern':/(^|[^\w$.])require\s*\(/},{'symbol':_0x5a4312(0x240),'pattern':/(^|[^\w$.])import\b/},{'symbol':'console','pattern':/(^|[^\w$.])console\b/},{'symbol':'module','pattern':/(^|[^\w$.])module\b/},{'symbol':_0x5a4312(0x1c9),'pattern':/(^|[^\w$.])exports\b/},{'symbol':'process','pattern':/(^|[^\w$.])process\b/},{'symbol':_0x5a4312(0x1f2),'pattern':/child_process/},{'symbol':_0x5a4312(0x217),'pattern':/worker_threads/}];function i(_0x4b5554){const _0x52713e=_0x5a4312,_0x5b450d='string'==typeof _0x4b5554?_0x4b5554[_0x52713e(0x1be)](/\r\n/g,'\x0a')[_0x52713e(0x1d6)]():'';if(!_0x5b450d)return{'ok':!0x1,'message':_0x52713e(0x24f)};if(new TextEncoder()[_0x52713e(0x1ec)](_0x5b450d)['length']>0x10000)return{'ok':!0x1,'message':'Source\x20exceeds\x2064\x20KB'};if(!/^(async\s+)?\(\s*[A-Za-z_$][\w$]*\s*\)\s*=>/['test'](_0x5b450d))return{'ok':!0x1,'message':_0x52713e(0x235)};for(const {symbol:_0x2f6e32,pattern:_0xb8ce0b}of t)if(_0xb8ce0b[_0x52713e(0x1f1)](_0x5b450d))return{'ok':!0x1,'message':'Cannot\x20use\x20\x22'+_0x2f6e32+'\x22'};try{new Function('return\x20('+_0x5b450d+');')();}catch(_0x466890){return{'ok':!0x1,'message':_0x466890?.[_0x52713e(0x1e3)]||_0x52713e(0x24a)};}return{'ok':!0x0,'normalizedSource':_0x5b450d};}function a(_0x3c5e84){const _0x641f93=_0x5a4312;return!0x0===_0x3c5e84||''===_0x3c5e84||0x1===_0x3c5e84||'1'===_0x3c5e84||_0x641f93(0x1d9)===_0x3c5e84;}export default{'tag':_0x5a4312(0x1c5),'attr':{'locktype':{},'lockenv':{},'initialkind':{},'locktypestrict':{},'hidequeueworker':{}},'dependencies':[_0xb1127f,_0x4b3a0c],'context':_0x1c47bb=>({'step':0x1,'busy':!0x1,'error':null,'success':null,'engineKind':'','proc_sourceType':'','mat_sourceType':'','mat_targetType':'','qw_jobType':'','qw_jobTypeMode':_0x5a4312(0x212),'handlerMode':_0x5a4312(0x212),'handlerName':'','newFnName':'','newFnSource':'','newFnValidation':{'ok':!0x1,'message':_0x5a4312(0x24f)},'newFnDryRunning':!0x1,'newFnDryResult':null,'newFnDryError':null,'newFnDryPayload':null,'showAdvanced':!0x1,'proc_mode':_0x5a4312(0x1fb),'proc_bootstrap':_0x5a4312(0x1e7),'proc_batchSize':0x100,'proc_originMode':_0x5a4312(0x225),'mat_bootstrap':_0x5a4312(0x1e7),'mat_batchSize':0x80,'mat_originMode':_0x5a4312(0x225),'mat_clearTargetOnRebuild':!0x0,'qw_concurrency':0x1,'handler_recordRuns':_0x5a4312(0x1f6),'types':[],'functions':[],'queueJobTypes':[],get 'lockedType'(){const _0x35e532=_0x5a4312;return _0x1c47bb[_0x35e532(0x24b)]['locktype']||'';},get 'lockedEnv'(){const _0x567cbc=_0x5a4312;return _0x1c47bb[_0x567cbc(0x24b)][_0x567cbc(0x1ef)]||'';},get 'initialKind'(){const _0x28798c=_0x5a4312,_0x4cacfc=_0x1c47bb[_0x28798c(0x24b)][_0x28798c(0x1cd)]||'';return this[_0x28798c(0x1fd)]['includes'](_0x4cacfc)?_0x4cacfc:'';},get 'lockTypeStrict'(){const _0x3a1ecf=_0x5a4312;return a(_0x1c47bb[_0x3a1ecf(0x24b)][_0x3a1ecf(0x1c4)]);},get 'hideQueueWorker'(){const _0x13f486=_0x5a4312;return a(_0x1c47bb['$attr'][_0x13f486(0x233)]);},get 'availableKinds'(){const _0x251c20=_0x5a4312;return[_0x251c20(0x22c),'materializer',_0x251c20(0x1ce),_0x251c20(0x229)][_0x251c20(0x223)](_0x4910a9=>!(this['hideQueueWorker']&&'queue-worker'===_0x4910a9));},get 'typeSelectionLocked'(){const _0x45d0c9=_0x5a4312;return!!this[_0x45d0c9(0x20f)]&&this[_0x45d0c9(0x1b5)];},get 'kindLocked'(){return!!this['initialKind'];},get 'selectedEnv'(){const _0x4646bd=_0x5a4312;return this[_0x4646bd(0x1b2)]||_0x1c47bb[_0x4646bd(0x1ee)][_0x4646bd(0x1fe)][_0x4646bd(0x220)][_0x4646bd(0x243)]||_0x4646bd(0x22e);},async 'loadMeta'(){const _0x4f1844=_0x5a4312,_0x2b382c=this[_0x4f1844(0x243)];try{const [_0x136ce4,_0x4185ea,_0x15575f]=await Promise['all']([fetch(__ENV__[_0x4f1844(0x224)]+_0x4f1844(0x238)+encodeURIComponent(_0x2b382c)+_0x4f1844(0x211)),fetch(__ENV__['API']+'/env/'+encodeURIComponent(_0x2b382c)+_0x4f1844(0x1b9)),fetch(__ENV__[_0x4f1844(0x224)]+_0x4f1844(0x238)+encodeURIComponent(_0x2b382c)+_0x4f1844(0x1ba))[_0x4f1844(0x1bb)](()=>null)]),_0x103c64=await _0x136ce4[_0x4f1844(0x1ed)]()[_0x4f1844(0x1bb)](()=>({})),_0x160de1=await _0x4185ea['json']()[_0x4f1844(0x1bb)](()=>({})),_0x9418ad=_0x103c64[_0x4f1844(0x21d)]??_0x103c64[_0x4f1844(0x1d2)]??[];this[_0x4f1844(0x218)]=(Array[_0x4f1844(0x1f8)](_0x9418ad)?_0x9418ad[_0x4f1844(0x1bf)](_0x57047=>_0x57047['type']??_0x57047[_0x4f1844(0x1b3)]??_0x57047):Object[_0x4f1844(0x21e)](_0x9418ad))[_0x4f1844(0x223)](_0x4083bb=>'string'==typeof _0x4083bb&&!_0x4083bb[_0x4f1844(0x20b)]('~'))[_0x4f1844(0x234)]();const _0x1248f1=_0x160de1[_0x4f1844(0x21d)]??_0x160de1[_0x4f1844(0x1d2)]??[];if(this['functions']=Array[_0x4f1844(0x1f8)](_0x1248f1)?_0x1248f1['map'](_0x3b5bd2=>_0x3b5bd2[_0x4f1844(0x1e4)]??_0x3b5bd2[_0x4f1844(0x1b3)]??_0x3b5bd2)[_0x4f1844(0x223)](Boolean)[_0x4f1844(0x234)]():[],_0x15575f&&_0x15575f['ok']){const _0x45d3e9=await _0x15575f[_0x4f1844(0x1ed)]()[_0x4f1844(0x1bb)](()=>({})),_0x674b9c=_0x45d3e9?.[_0x4f1844(0x1d2)]??_0x45d3e9?.['data']??null,_0x3c37e3=_0x674b9c?.[_0x4f1844(0x21f)]??{};this[_0x4f1844(0x1cf)]=Object[_0x4f1844(0x21e)](_0x3c37e3)[_0x4f1844(0x234)]();}else this[_0x4f1844(0x1cf)]=[];}catch{this[_0x4f1844(0x218)]=[],this[_0x4f1844(0x1d7)]=[],this[_0x4f1844(0x1cf)]=[];}},get 'effectiveJobType'(){const _0x20a5c5=_0x5a4312;return _0x20a5c5(0x228)===this[_0x20a5c5(0x1d1)]?this[_0x20a5c5(0x1ea)]['trim']():this[_0x20a5c5(0x1ea)];},get 'effectiveHandlerName'(){const _0x2df304=_0x5a4312;return _0x2df304(0x23c)===this[_0x2df304(0x22b)]?this[_0x2df304(0x1a9)]['trim']():this['handlerName'];},get 'autoName'(){const _0x1e51cc=_0x5a4312;return _0x1e51cc(0x22c)===this[_0x1e51cc(0x213)]&&this['proc_sourceType']&&this['effectiveHandlerName']?this['proc_sourceType']+'-'+this[_0x1e51cc(0x21b)]:_0x1e51cc(0x251)===this[_0x1e51cc(0x213)]&&this['mat_sourceType']&&this[_0x1e51cc(0x250)]&&this['effectiveHandlerName']?this['mat_sourceType']+_0x1e51cc(0x1e5)+this[_0x1e51cc(0x250)]+'-'+this[_0x1e51cc(0x21b)]:'queue-worker'===this['engineKind']&&this[_0x1e51cc(0x222)]&&this[_0x1e51cc(0x21b)]?this[_0x1e51cc(0x222)]+'-'+this[_0x1e51cc(0x21b)]:'';},get 'pipelineName'(){const _0x328b5b=_0x5a4312;return this[_0x328b5b(0x1dd)];},get 'engineName'(){const _0x289842=_0x5a4312;return this[_0x289842(0x1dd)]?this[_0x289842(0x1dd)]+':'+this[_0x289842(0x213)]:'';},get 'step2Valid'(){const _0x9b7ee7=_0x5a4312;return _0x9b7ee7(0x229)===this[_0x9b7ee7(0x213)]||!(_0x9b7ee7(0x22c)===this[_0x9b7ee7(0x213)]&&!this['proc_sourceType'])&&!!(_0x9b7ee7(0x251)!==this[_0x9b7ee7(0x213)]||this[_0x9b7ee7(0x1e8)]&&this[_0x9b7ee7(0x250)])&&!(_0x9b7ee7(0x1ce)===this['engineKind']&&!this['effectiveJobType'])&&('existing'===this[_0x9b7ee7(0x22b)]?!!this[_0x9b7ee7(0x1ab)]:!!this['newFnName'][_0x9b7ee7(0x1d6)]()&&this[_0x9b7ee7(0x214)]['ok']);},'resetWizard'(){const _0x33ac17=_0x5a4312;this[_0x33ac17(0x1b6)]=this[_0x33ac17(0x1c7)]?0x2:0x1,this[_0x33ac17(0x213)]=this[_0x33ac17(0x1c7)]?this[_0x33ac17(0x1e2)]:'',this[_0x33ac17(0x1f0)]=this[_0x33ac17(0x20f)]||'',this[_0x33ac17(0x1e8)]=this[_0x33ac17(0x20f)]||'',this[_0x33ac17(0x250)]='',this[_0x33ac17(0x1ea)]='',this[_0x33ac17(0x1d1)]=_0x33ac17(0x212),this[_0x33ac17(0x22b)]='existing',this[_0x33ac17(0x1ab)]='',this[_0x33ac17(0x1a9)]='',this[_0x33ac17(0x1d5)]='',this[_0x33ac17(0x214)]={'ok':!0x1,'message':_0x33ac17(0x24f)},this['newFnDryResult']=null,this[_0x33ac17(0x1c2)]=null,this['showAdvanced']=!0x1,this[_0x33ac17(0x20d)]=_0x33ac17(0x1f6),this[_0x33ac17(0x1d0)]=_0x33ac17(0x1fb),this[_0x33ac17(0x239)]=_0x33ac17(0x1e7),this[_0x33ac17(0x1c8)]=0x100,this[_0x33ac17(0x1f9)]=_0x33ac17(0x225),this[_0x33ac17(0x203)]=_0x33ac17(0x1e7),this[_0x33ac17(0x1db)]=0x80,this[_0x33ac17(0x231)]='all',this[_0x33ac17(0x1f4)]=!0x0,this['qw_concurrency']=0x1;},'applyScopeDefaults'(){const _0x300b3e=_0x5a4312;this[_0x300b3e(0x1ac)]?(this[_0x300b3e(0x1f0)]=this[_0x300b3e(0x20f)],this[_0x300b3e(0x1e8)]=this[_0x300b3e(0x20f)]):this[_0x300b3e(0x20f)]&&!this['proc_sourceType']&&(this['proc_sourceType']=this[_0x300b3e(0x20f)]),this[_0x300b3e(0x1ac)]||!this[_0x300b3e(0x20f)]||this[_0x300b3e(0x1e8)]||(this['mat_sourceType']=this['lockedType']),this[_0x300b3e(0x1c7)]&&this[_0x300b3e(0x213)]!==this[_0x300b3e(0x1e2)]&&this[_0x300b3e(0x247)](this[_0x300b3e(0x1e2)]);},get 'dedupedDryLogs'(){const _0x28a071=_0x5a4312,_0x56bc1f=this[_0x28a071(0x22a)]?.[_0x28a071(0x1eb)];if(!Array[_0x28a071(0x1f8)](_0x56bc1f)||!_0x56bc1f[_0x28a071(0x216)])return[];const _0x1a08c7=[],_0xe1f74b=new Map();for(const _0x25fd29 of _0x56bc1f){const _0x309426=(_0x25fd29['level']??'')+'::'+(_0x25fd29[_0x28a071(0x1b1)]??_0x25fd29[_0x28a071(0x1e3)]??JSON['stringify'](_0x25fd29));if(_0xe1f74b['has'](_0x309426))_0xe1f74b[_0x28a071(0x1ae)](_0x309426)[_0x28a071(0x1c1)]++;else{const _0x404e25={..._0x25fd29,'count':0x1,'_key':_0x309426};_0xe1f74b[_0x28a071(0x23f)](_0x309426,_0x404e25),_0x1a08c7[_0x28a071(0x1fa)](_0x404e25);}}return _0x1a08c7;},get 'dryRunDuration'(){const _0x537e3b=_0x5a4312,_0x2772b9=this['newFnDryResult'];return _0x2772b9?_0x2772b9[_0x537e3b(0x20c)]?.[_0x537e3b(0x246)]??null:null;},get 'dryRunStatus'(){const _0x2b105d=_0x5a4312,_0x38063e=this['newFnDryResult'];return _0x38063e?_0x2b105d(0x1c0)===_0x38063e[_0x2b105d(0x1e1)]||_0x38063e[_0x2b105d(0x1c0)]?'error':_0x38063e[_0x2b105d(0x1e1)]||'success':null;},'pickType'(_0x463419){const _0x4ac720=_0x5a4312;this[_0x4ac720(0x1fd)]['includes'](_0x463419)&&(this[_0x4ac720(0x213)]=_0x463419,this[_0x4ac720(0x1b6)]=0x2,this['typeSelectionLocked']&&(this[_0x4ac720(0x1f0)]=this['lockedType'],this[_0x4ac720(0x1e8)]=this[_0x4ac720(0x20f)]),_0x4ac720(0x229)!==_0x463419&&(this['newFnSource']||(this[_0x4ac720(0x1d5)]='processor'===_0x463419?_0x4ac720(0x207):'materializer'===_0x463419?_0x4ac720(0x236):_0x4ac720(0x22f),this[_0x4ac720(0x214)]=i(this['newFnSource']))));},'goBack'(){const _0x504f2d=_0x5a4312;'embedding'!==this[_0x504f2d(0x213)]?this[_0x504f2d(0x1b6)]>0x1&&this[_0x504f2d(0x1b6)]--:this[_0x504f2d(0x1cb)]();},'goNext'(){const _0x16facf=_0x5a4312;0x2===this[_0x16facf(0x1b6)]&&this[_0x16facf(0x248)]&&(this[_0x16facf(0x1b6)]=0x3);},'onEmbeddingCreated'(_0xc87a22){const _0x39ae7f=_0x5a4312;this[_0x39ae7f(0x241)]='Embedding\x20pipeline\x20created',this[_0x39ae7f(0x1c0)]=null,this[_0x39ae7f(0x1cb)](),_0x1c47bb[_0x39ae7f(0x1e0)][_0x39ae7f(0x1d8)](new CustomEvent(_0x39ae7f(0x226),{'detail':_0xc87a22,'bubbles':!0x0}));},'updateSource'(_0x41af45){const _0x1b347c=_0x5a4312;this[_0x1b347c(0x1d5)]=_0x41af45??'',this['newFnValidation']=i(this[_0x1b347c(0x1d5)]);},async 'buildDryRunPayload'(){const _0x1a1a34=_0x5a4312;if(_0x1a1a34(0x22c)===this['engineKind'])return[{'key':'test-1','value':{'sample':!0x0,'name':_0x1a1a34(0x20a)},'action':_0x1a1a34(0x1b0),'clock':0x1}];if('materializer'===this[_0x1a1a34(0x213)])return[{'key':_0x1a1a34(0x22d),'value':{'sample':!0x0,'name':_0x1a1a34(0x20a)},'action':_0x1a1a34(0x1b0),'clock':null},{'key':'test-2','action':_0x1a1a34(0x215),'clock':0x2}];const _0x1be9d6=this[_0x1a1a34(0x222)];if(_0x1be9d6)try{const _0x50391a=this['selectedEnv'],_0x188f76=__ENV__[_0x1a1a34(0x224)]+_0x1a1a34(0x238)+encodeURIComponent(_0x50391a)+_0x1a1a34(0x21c),_0x356824=await fetch(_0x188f76+'/jobs?'+new URLSearchParams({'type':_0x1be9d6,'limit':'1'}));if(_0x356824['ok']){const _0x5af5b0=await _0x356824[_0x1a1a34(0x1ed)](),_0x26ebf7=_0x5af5b0?.[_0x1a1a34(0x1d2)]?.[_0x1a1a34(0x221)]??_0x5af5b0?.[_0x1a1a34(0x21d)]?.[_0x1a1a34(0x221)]??[],_0x32d40d=_0x26ebf7[0x0]?.[_0x1a1a34(0x1e4)]??_0x26ebf7[0x0]?.['id']??_0x26ebf7[0x0]?.[_0x1a1a34(0x1bc)]?.['id'];if(_0x32d40d){const _0x46b948=await fetch(_0x188f76+_0x1a1a34(0x1cc)+encodeURIComponent(_0x32d40d));if(_0x46b948['ok']){const _0x1e5fa9=await _0x46b948[_0x1a1a34(0x1ed)](),_0xfb5bd3=_0x1e5fa9?.['result']??_0x1e5fa9?.[_0x1a1a34(0x21d)];if(void 0x0!==_0xfb5bd3?.[_0x1a1a34(0x1f3)])return _0xfb5bd3['payload'];}}}}catch{}return{};},async 'dryRunFunction'(){const _0x1e8fb5=_0x5a4312;if(this[_0x1e8fb5(0x214)]['ok']&&!this[_0x1e8fb5(0x208)]){this['newFnDryRunning']=!0x0,this[_0x1e8fb5(0x22a)]=null,this[_0x1e8fb5(0x1c2)]=null,this[_0x1e8fb5(0x242)]=null;try{const _0x5e6421=this[_0x1e8fb5(0x243)],_0x35096c=await this[_0x1e8fb5(0x1de)]();this[_0x1e8fb5(0x242)]=_0x35096c;const _0x20816c={'name':this[_0x1e8fb5(0x1a9)]['trim']()||_0x1e8fb5(0x232),'source':this['newFnValidation'][_0x1e8fb5(0x1fc)]||this['newFnSource'][_0x1e8fb5(0x1d6)](),'metadata':{'description':'Pipeline\x20handler\x20preview'},'enabled':!0x0,'payload':_0x35096c};'queue-worker'===this[_0x1e8fb5(0x213)]&&(_0x20816c['jobContext']={'id':'__preview-job__','type':this[_0x1e8fb5(0x222)]||_0x1e8fb5(0x206),'tries':0x1,'created':Date['now'](),'tags':null,'priority':0x0,'bucket':null,'cron':null}),_0x1e8fb5(0x22c)===this[_0x1e8fb5(0x213)]&&(_0x20816c[_0x1e8fb5(0x1d3)]={'mode':_0x1e8fb5(0x205),'sourceType':this['proc_sourceType']||'example','sourceEnv':this[_0x1e8fb5(0x243)],'processor':_0x1e8fb5(0x232),'engineKey':_0x1e8fb5(0x232),'cursorKey':null}),_0x1e8fb5(0x251)===this[_0x1e8fb5(0x213)]&&(_0x20816c['materializerContext']={'mode':_0x1e8fb5(0x205),'sourceType':this[_0x1e8fb5(0x1e8)]||_0x1e8fb5(0x1df),'targetType':this[_0x1e8fb5(0x250)]||'example_projection','sourceEnv':this['selectedEnv'],'targetEnv':this[_0x1e8fb5(0x243)],'engineKey':_0x1e8fb5(0x232),'cursorKey':null});const _0x1e2be3=await fetch(__ENV__['API']+_0x1e8fb5(0x238)+encodeURIComponent(_0x5e6421)+'/functions/preview',{'method':_0x1e8fb5(0x1bd),'headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x20816c)}),_0x355858=await _0x1e2be3[_0x1e8fb5(0x1ed)]()[_0x1e8fb5(0x1bb)](()=>({})),_0x17ae37=_0x355858?.[_0x1e8fb5(0x21d)]??_0x355858?.[_0x1e8fb5(0x1d2)]??_0x355858;if(!_0x1e2be3['ok']&&!_0x17ae37?.[_0x1e8fb5(0x1e1)])throw new Error(_0x355858?.[_0x1e8fb5(0x1c0)]?.[_0x1e8fb5(0x1e3)]||_0x1e8fb5(0x1dc)+_0x1e2be3[_0x1e8fb5(0x1e1)]+')');this['newFnDryResult']=_0x17ae37;}catch(_0x35b4f1){this[_0x1e8fb5(0x1c2)]=_0x35b4f1?.['message']||String(_0x35b4f1);}finally{this[_0x1e8fb5(0x208)]=!0x1;}}},'buildEngineConfig'(){const _0x309930=_0x5a4312,_0x1373a1={'kind':_0x309930(0x23a),'name':this['effectiveHandlerName']};return'all'!==this[_0x309930(0x20d)]&&(_0x1373a1[_0x309930(0x200)]=this[_0x309930(0x20d)]),_0x309930(0x22c)===this[_0x309930(0x213)]?{'source_type':this['proc_sourceType'],'source_env':this[_0x309930(0x243)],'handler':_0x1373a1,'mode':this[_0x309930(0x1d0)],'bootstrap':_0x309930(0x210)===this[_0x309930(0x1d0)]?null:this[_0x309930(0x239)],'batchSize':Number(this[_0x309930(0x1c8)])||0x100,'originMode':this[_0x309930(0x1f9)]}:_0x309930(0x251)===this['engineKind']?{'source_type':this[_0x309930(0x1e8)],'target_type':this['mat_targetType'],'source_env':this[_0x309930(0x243)],'target_env':this[_0x309930(0x243)],'handler':_0x1373a1,'bootstrap':this[_0x309930(0x203)],'batchSize':Number(this['mat_batchSize'])||0x80,'originMode':this['mat_originMode'],'clearTargetOnRebuild':!0x1!==this[_0x309930(0x1f4)]}:_0x309930(0x1ce)===this[_0x309930(0x213)]?{'job_type':this['effectiveJobType'],'queue_env':this[_0x309930(0x243)],'handler':_0x1373a1,'concurrency':Number(this[_0x309930(0x1c3)])||0x1}:{};},async 'submit'(){const _0x5bb017=_0x5a4312;if(this[_0x5bb017(0x248)]&&!this['busy']){this[_0x5bb017(0x201)]=!0x0,this['error']=null,this[_0x5bb017(0x241)]=null;try{const _0x5acad9=this[_0x5bb017(0x243)];if('new'===this[_0x5bb017(0x22b)]){const _0x234080={'name':this[_0x5bb017(0x1a9)][_0x5bb017(0x1d6)](),'source':this[_0x5bb017(0x214)][_0x5bb017(0x1fc)]||this[_0x5bb017(0x1d5)][_0x5bb017(0x1d6)](),'metadata':{'description':_0x5bb017(0x24e)+this['pipelineName'],'owner_engine':this[_0x5bb017(0x21a)],'pipeline':this['pipelineName']},'enabled':!0x0},_0x3fdf8b=await fetch(__ENV__[_0x5bb017(0x224)]+_0x5bb017(0x238)+encodeURIComponent(_0x5acad9)+_0x5bb017(0x1b9),{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x234080)}),_0x38150b=await _0x3fdf8b['json']()['catch'](()=>({}));if(!_0x3fdf8b['ok'])throw new Error(_0x38150b?.[_0x5bb017(0x1c0)]?.['message']||'Failed\x20to\x20create\x20function\x20('+_0x3fdf8b[_0x5bb017(0x1e1)]+')');}const _0x17811b={'name':this['pipelineName'],'meta':{'label':this[_0x5bb017(0x244)]},'members':[{'engineType':this['engineKind'],'engineName':this[_0x5bb017(0x21a)],'role':this['engineKind'],'engineConfig':this['buildEngineConfig']()}]},_0x32349f=await fetch(__ENV__[_0x5bb017(0x224)]+_0x5bb017(0x238)+encodeURIComponent(_0x5acad9)+_0x5bb017(0x20e),{'method':_0x5bb017(0x1bd),'headers':{'Content-Type':_0x5bb017(0x1b7)},'body':JSON[_0x5bb017(0x1d4)](_0x17811b)}),_0x1a6c78=await _0x32349f[_0x5bb017(0x1ed)]()[_0x5bb017(0x1bb)](()=>({}));if(!_0x32349f['ok'])throw new Error(_0x1a6c78?.['error']?.[_0x5bb017(0x1e3)]||_0x5bb017(0x219)+_0x32349f[_0x5bb017(0x1e1)]+')');this[_0x5bb017(0x241)]=_0x5bb017(0x1da)+this[_0x5bb017(0x244)]+_0x5bb017(0x230),_0x1c47bb[_0x5bb017(0x1e0)]['dispatchEvent'](new CustomEvent(_0x5bb017(0x226),{'detail':_0x1a6c78[_0x5bb017(0x1d2)]??_0x1a6c78[_0x5bb017(0x21d)],'bubbles':!0x0})),this[_0x5bb017(0x1cb)]();}catch(_0x421811){this['error']=_0x421811?.[_0x5bb017(0x1e3)]||String(_0x421811);}finally{this['busy']=!0x1;}}},'formatJson'(_0x319379){const _0x41bffb=_0x5a4312;try{return JSON[_0x41bffb(0x1d4)](_0x319379,null,0x2);}catch{return String(_0x319379??'');}},'setJobTypeMode'(_0x2766bc){const _0x5c36be=_0x5a4312;this[_0x5c36be(0x1d1)]=_0x2766bc,this[_0x5c36be(0x1ea)]='';},'logLabel'(_0x5885c7){const _0x13b5b2=_0x5a4312,_0x3f216c=_0x5885c7?.[_0x13b5b2(0x1b1)]??_0x5885c7?.[_0x13b5b2(0x1e3)]??'';return _0x5885c7?.[_0x13b5b2(0x1c1)]>0x1?_0x3f216c+_0x13b5b2(0x227)+_0x5885c7['count']+')':_0x3f216c;},'logColor'(_0x48f730){const _0x55ba4d=_0x5a4312,_0x4a4dcc=_0x48f730?.[_0x55ba4d(0x1aa)]??'';return _0x55ba4d(0x1c0)===_0x4a4dcc||_0x55ba4d(0x23b)===_0x4a4dcc?_0x55ba4d(0x1e9):_0x55ba4d(0x1f7)===_0x4a4dcc?'var(--okdb-warning)':'debug'===_0x4a4dcc?_0x55ba4d(0x24c):_0x55ba4d(0x1c6);}}),async 'init'(_0x33ee17){const _0xf78b82=_0x5a4312;await this[_0xf78b82(0x1ca)](),this[_0xf78b82(0x1ff)](),_0x33ee17[_0xf78b82(0x202)](()=>_0x33ee17[_0xf78b82(0x1ee)][_0xf78b82(0x1fe)][_0xf78b82(0x220)][_0xf78b82(0x243)],async()=>{const _0x1f77ba=_0xf78b82;await this[_0x1f77ba(0x1ca)](),this[_0x1f77ba(0x1ff)]();});},'style':'\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','template':_0x5a4312(0x249)};function _0x51b2(){const _0x364752=['new','92AXcCvu','3393ipNZVJ','set','import','success','newFnDryPayload','selectedEnv','pipelineName','require','durationMs','pickType','step2Valid','\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.&nbsp;<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>','Compile\x20error','$attr','var(--okdb-app-fg-muted)','21043968SRPkSD','Handler\x20for\x20pipeline\x20','Source\x20is\x20required','mat_targetType','materializer','newFnName','level','handlerName','typeSelectionLocked','109506VulhnJ','get','26070lnIxXk','put','msg','lockedEnv','name','154451BmKmoU','lockTypeStrict','step','application/json','2242900VTYlGi','/functions','/queue/stats','catch','value','POST','replace','map','error','count','newFnDryError','qw_concurrency','locktypestrict','pipeline-create-panel','var(--okdb-app-fg-subtle)','kindLocked','proc_batchSize','exports','loadMeta','resetWizard','/job/','initialkind','queue-worker','queueJobTypes','proc_mode','qw_jobTypeMode','result','processorContext','stringify','newFnSource','trim','functions','dispatchEvent','true','Pipeline\x20\x22','mat_batchSize','Preview\x20failed\x20(','autoName','buildDryRunPayload','example','$el','status','initialKind','message','key','-to-','375XkBOzC','snapshot','mat_sourceType','var(--okdb-danger)','qw_jobType','logs','encode','json','$ok','lockenv','proc_sourceType','test','child_process','payload','mat_clearTargetOnRebuild','12810dQqFel','errors','warn','isArray','proc_originMode','push','async','normalizedSource','availableKinds','stores','applyScopeDefaults','recordRuns','busy','$watch','mat_bootstrap','6712JQipez','live','preview','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}','newFnDryRunning','11wEmpOH','Example\x20record','startsWith','execution','handler_recordRuns','/pipelines/scaffold','lockedType','inline','/types','existing','engineKind','newFnValidation','remove','length','worker_threads','types','Failed\x20(','engineName','effectiveHandlerName','/queue','data','keys','byType','okdb','items','effectiveJobType','filter','API','all','created','\x20(×','custom','embedding','newFnDryResult','handlerMode','processor','test-1','default','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}','\x22\x20created\x20and\x20started','mat_originMode','__preview__','hidequeueworker','sort','Must\x20be\x20(ctx)\x20=>\x20{\x20…\x20}\x20or\x20async\x20(ctx)\x20=>\x20{\x20…\x20}','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}','393vlhEsy','/env/','proc_bootstrap','function','fatal'];_0x51b2=function(){return _0x364752;};return _0x51b2();}