@kedem/okdb 1.0.0 → 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 (188) hide show
  1. package/README.md +1 -1
  2. package/bin/okdb.js +1 -1
  3. package/keys/public.pem +3 -0
  4. package/okdb.js +1 -1
  5. package/package.json +2 -2
  6. package/public/admin-app.js +1 -1
  7. package/public/components/admin-route-host.ok.js +1 -1
  8. package/public/components/env-picker.ok.js +1 -1
  9. package/public/components/field-path-input.ok.js +1 -1
  10. package/public/components/geo-map.ok.js +1 -1
  11. package/public/components/ok-cron-input.ok.js +1 -1
  12. package/public/components/ok-dropzone.ok.js +1 -1
  13. package/public/components/ok-js-input.ok.js +1 -1
  14. package/public/components/ok-json-input.ok.js +1 -1
  15. package/public/components/ok-text-monaco-input.ok.js +1 -1
  16. package/public/components/theme-toggle.ok.js +1 -1
  17. package/public/login-app.js +1 -1
  18. package/public/modules/ok.js +1 -1
  19. package/public/sections/api/parts/api-endpoint.ok.js +1 -1
  20. package/public/sections/auth/modals/create-token-modal.ok.js +1 -1
  21. package/public/sections/auth/modals/edit-token-modal.ok.js +1 -1
  22. package/public/sections/auth/modals/perm-info-popover.ok.js +1 -1
  23. package/public/sections/auth/parts/token-detail.ok.js +1 -1
  24. package/public/sections/auth/parts/token-list.ok.js +1 -1
  25. package/public/sections/db/modals/add-item-modal.ok.js +1 -1
  26. package/public/sections/db/modals/create-env-modal.ok.js +1 -1
  27. package/public/sections/db/modals/create-fts-modal.ok.js +1 -1
  28. package/public/sections/db/modals/create-index-modal.ok.js +1 -1
  29. package/public/sections/db/modals/create-pipeline-modal.ok.js +1 -1
  30. package/public/sections/db/modals/demo-env-modal.ok.js +1 -1
  31. package/public/sections/db/modals/remove-env-modal.ok.js +1 -1
  32. package/public/sections/db/modals/schema-edit-modal.ok.js +1 -1
  33. package/public/sections/db/parts/db-overview.ok.js +1 -1
  34. package/public/sections/db/parts/db-pipelines-panel.ok.js +1 -1
  35. package/public/sections/db/parts/edit-row.ok.js +1 -1
  36. package/public/sections/db/parts/tm-timeline.ok.js +1 -1
  37. package/public/sections/db/parts/type-changelog.ok.js +1 -1
  38. package/public/sections/db/parts/type-list.ok.js +1 -1
  39. package/public/sections/db/parts/type-pipelines-tab.ok.js +1 -1
  40. package/public/sections/db/parts/type-schema-tab.ok.js +1 -1
  41. package/public/sections/db/parts/type-viewer.ok.js +1 -1
  42. package/public/sections/db/parts/type-violations-tab.ok.js +1 -1
  43. package/public/sections/embeddings/modals/register-model-modal.ok.js +1 -1
  44. package/public/sections/embeddings/parts/embed-create-panel.ok.js +1 -1
  45. package/public/sections/embeddings/parts/embed-embedder-panel.ok.js +1 -1
  46. package/public/sections/embeddings/parts/embed-engine-declaration-editor.ok.js +1 -1
  47. package/public/sections/embeddings/parts/embed-engine-list.ok.js +1 -1
  48. package/public/sections/embeddings/parts/embed-indexer-panel.ok.js +1 -1
  49. package/public/sections/embeddings/parts/embed-lifecycle-bar.ok.js +1 -1
  50. package/public/sections/embeddings/parts/embed-model-catalog.ok.js +1 -1
  51. package/public/sections/embeddings/parts/embed-overview.ok.js +1 -1
  52. package/public/sections/embeddings/parts/embed-search-panel.ok.js +1 -1
  53. package/public/sections/embeddings/parts/embed-worker-panel.ok.js +1 -1
  54. package/public/sections/embeddings/parts/embeddings-engine-panel.ok.js +1 -1
  55. package/public/sections/embeddings/parts/engines-overview.ok.js +1 -1
  56. package/public/sections/embeddings/parts/pipeline-create-panel.ok.js +1 -1
  57. package/public/sections/engines/engine-panel-shared-style.js +1 -1
  58. package/public/sections/engines/engine-ui-utils.js +1 -1
  59. package/public/sections/engines/modals/engine-modal.ok.js +1 -1
  60. package/public/sections/engines/parts/engine-declaration-editor.ok.js +1 -1
  61. package/public/sections/engines/parts/engine-lifecycle-actions.ok.js +1 -1
  62. package/public/sections/engines/parts/engine-panel-shell.ok.js +1 -1
  63. package/public/sections/engines/parts/engine-resource-card.ok.js +1 -1
  64. package/public/sections/engines/parts/engine-row-item.ok.js +1 -1
  65. package/public/sections/engines/parts/generic-engine-panel.ok.js +1 -1
  66. package/public/sections/files/parts/files-blob-status.ok.js +1 -1
  67. package/public/sections/files/parts/files-collection-list.ok.js +1 -1
  68. package/public/sections/files/parts/files-collection-panel.ok.js +1 -1
  69. package/public/sections/files/parts/files-file-list.ok.js +1 -1
  70. package/public/sections/files/parts/files-overview.ok.js +1 -1
  71. package/public/sections/files/parts/files-path-browser.ok.js +1 -1
  72. package/public/sections/files/parts/files-upload-panel.ok.js +1 -1
  73. package/public/sections/functions/modals/function-modal.ok.js +1 -1
  74. package/public/sections/functions/parts/function-detail.ok.js +1 -1
  75. package/public/sections/functions/parts/function-logs.ok.js +1 -1
  76. package/public/sections/functions/parts/function-runner.ok.js +1 -1
  77. package/public/sections/functions/parts/functions-list.ok.js +1 -1
  78. package/public/sections/license/parts/license-panel.ok.js +1 -1
  79. package/public/sections/queue/modals/create-bucket-modal.ok.js +1 -1
  80. package/public/sections/queue/modals/edit-bucket-modal.ok.js +1 -1
  81. package/public/sections/queue/modals/edit-job-modal.ok.js +1 -1
  82. package/public/sections/queue/modals/enqueue-job-modal.ok.js +1 -1
  83. package/public/sections/queue/modals/job-type-modal.ok.js +1 -1
  84. package/public/sections/queue/parts/ok-job-form.ok.js +1 -1
  85. package/public/sections/queue/parts/queue-buckets.ok.js +1 -1
  86. package/public/sections/queue/parts/queue-job-types.ok.js +1 -1
  87. package/public/sections/queue/parts/queue-jobs.ok.js +1 -1
  88. package/public/sections/queue/parts/queue-types.ok.js +1 -1
  89. package/public/sections/queue/parts/queue-workers.ok.js +1 -1
  90. package/public/sections/sync/parts/sync-node-detail.ok.js +1 -1
  91. package/public/sections/sync/parts/sync-retention.ok.js +1 -1
  92. package/public/sections/sync/parts/sync-topology.ok.js +1 -1
  93. package/public/sections/system/modals/data-ops-modal.ok.js +1 -1
  94. package/public/sections/system/parts/system-api-panel.ok.js +1 -1
  95. package/public/sections/system/parts/system-auth-panel.ok.js +1 -1
  96. package/public/sections/system/parts/system-log-history.ok.js +1 -1
  97. package/public/sections/system/parts/system-log.ok.js +1 -1
  98. package/public/sections/system/parts/system-status.ok.js +1 -1
  99. package/public/sections/system/parts/system-sync-panel.ok.js +1 -1
  100. package/public/sections/views/modals/create-view-modal.ok.js +1 -1
  101. package/public/sections/views/parts/view-detail.ok.js +1 -1
  102. package/public/sections/views/parts/views-list.ok.js +1 -1
  103. package/public/sections/views/parts/views-overview.ok.js +1 -1
  104. package/public/setup-app.js +1 -1
  105. package/public/stores/auth-store.js +1 -1
  106. package/public/stores/events-store.js +1 -1
  107. package/public/stores/functions-store.js +1 -1
  108. package/public/stores/okdb-store.js +1 -1
  109. package/public/stores/theme-store.js +1 -1
  110. package/public/util/permissions.js +1 -1
  111. package/public/util/sift-schema.js +1 -1
  112. package/public/vendor/okjs/ok.esm.min.js +1 -2
  113. package/public/vendor/okjs/toolkit/behavior/async.ok.js +1 -1
  114. package/public/vendor/okjs/toolkit/components/ok-chart.ok.js +1 -1
  115. package/public/vendor/okjs/toolkit/components/ok-doc-viewer.ok.js +1 -1
  116. package/public/vendor/okjs/toolkit/components/ok-marked.ok.js +1 -1
  117. package/public/vendor/okjs/toolkit/components/ok-monaco.ok.js +1 -1
  118. package/public/vendor/okjs/toolkit/core/ok-layer-service.ok.js +1 -1
  119. package/public/vendor/okjs/toolkit/core/ok-layer.ok.js +1 -1
  120. package/public/vendor/okjs/toolkit/core/ok-overlay.ok.js +1 -1
  121. package/public/vendor/okjs/toolkit/core/ok-sandbox.ok.js +1 -1
  122. package/public/vendor/okjs/toolkit/core/transition.ok.js +1 -1
  123. package/public/vendor/okjs/toolkit/core/virtualized.ok.js +1 -1
  124. package/public/vendor/okjs/toolkit/devtools/ok-console-service.ok.js +1 -1
  125. package/public/vendor/okjs/toolkit/devtools/ok-console.ok.js +1 -1
  126. package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor-service.ok.js +1 -1
  127. package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor.ok.js +1 -1
  128. package/public/vendor/okjs/toolkit/devtools/ok-inspector-service.ok.js +1 -1
  129. package/public/vendor/okjs/toolkit/devtools/ok-inspector.ok.js +1 -1
  130. package/public/vendor/okjs/toolkit/devtools/ok-js-tree.ok.js +1 -1
  131. package/public/vendor/okjs/toolkit/devtools/ok-timeline-service.ok.js +1 -1
  132. package/public/vendor/okjs/toolkit/devtools/ok-timeline.ok.js +1 -1
  133. package/public/vendor/okjs/toolkit/docs/doc-viewer.ok.js +1 -1
  134. package/public/vendor/okjs/toolkit/editor/ok-live-component.ok.js +1 -1
  135. package/public/vendor/okjs/toolkit/editor/ok-live-example.ok.js +1 -1
  136. package/public/vendor/okjs/toolkit/editor/ok-live-shell.ok.js +1 -1
  137. package/public/vendor/okjs/toolkit/elements/ok-dropdown.ok.js +1 -1
  138. package/public/vendor/okjs/toolkit/elements/ok-icon.ok.js +1 -1
  139. package/public/vendor/okjs/toolkit/elements/ok-select.ok.js +1 -1
  140. package/public/vendor/okjs/toolkit/elements/ok-table.ok.js +1 -1
  141. package/public/vendor/okjs/toolkit/errors/ok-crash-boundary.ok.js +1 -1
  142. package/public/vendor/okjs/toolkit/errors/ok-crash-info.ok.js +1 -1
  143. package/public/vendor/okjs/toolkit/i18n/i18n-editor-examples.ok.js +1 -1
  144. package/public/vendor/okjs/toolkit/i18n/i18n-editor.ok.js +1 -1
  145. package/public/vendor/okjs/toolkit/i18n/i18n-key-editor-tips.ok.js +1 -1
  146. package/public/vendor/okjs/toolkit/i18n/i18n-key-editor.ok.js +1 -1
  147. package/public/vendor/okjs/toolkit/i18n/i18n-service.ok.js +1 -1
  148. package/public/vendor/okjs/toolkit/i18n/ok-i18n.js +1 -1
  149. package/public/vendor/okjs/toolkit/interaction/ok-contextmenu.ok.js +1 -1
  150. package/public/vendor/okjs/toolkit/interaction/ok-dismiss-service.ok.js +1 -1
  151. package/public/vendor/okjs/toolkit/interaction/ok-draggable.ok.js +1 -1
  152. package/public/vendor/okjs/toolkit/interaction/ok-flyover-panel.ok.js +1 -1
  153. package/public/vendor/okjs/toolkit/interaction/ok-flyover.ok.js +1 -1
  154. package/public/vendor/okjs/toolkit/interaction/ok-highlight-service.ok.js +1 -1
  155. package/public/vendor/okjs/toolkit/interaction/ok-highlight.ok.js +1 -1
  156. package/public/vendor/okjs/toolkit/interaction/ok-hotkeys-service.ok.js +1 -1
  157. package/public/vendor/okjs/toolkit/interaction/ok-picker-service.ok.js +1 -1
  158. package/public/vendor/okjs/toolkit/interaction/ok-popout-service.ok.js +1 -1
  159. package/public/vendor/okjs/toolkit/interaction/ok-popout.ok.js +1 -1
  160. package/public/vendor/okjs/toolkit/interaction/ok-portal-service.ok.js +1 -1
  161. package/public/vendor/okjs/toolkit/interaction/ok-submenu.ok.js +1 -1
  162. package/public/vendor/okjs/toolkit/layout/ok-resizer.ok.js +1 -1
  163. package/public/vendor/okjs/toolkit/manifest.js +1 -1
  164. package/public/vendor/okjs/toolkit/modals/ok-modal-service.ok.js +1 -1
  165. package/public/vendor/okjs/toolkit/modals/ok-modal.ok.js +1 -1
  166. package/public/vendor/okjs/toolkit/modals/ok-toast-service.ok.js +1 -1
  167. package/public/vendor/okjs/toolkit/modals/ok-window.ok.js +1 -1
  168. package/public/vendor/okjs/toolkit/navigation/hash-router.ok.js +1 -1
  169. package/public/vendor/okjs/toolkit/navigation/history-router.ok.js +1 -1
  170. package/public/vendor/okjs/toolkit/navigation/router.ok.js +1 -1
  171. package/public/vendor/okjs/toolkit/sync/reactive-sync-service.ok.js +1 -1
  172. package/public/vendor/okjs/toolkit/sync/reactive-sync.js +1 -1
  173. package/public/vendor/okjs/toolkit/theming/blocks/ok-design-button.css.js +1 -1
  174. package/public/vendor/okjs/toolkit/theming/blocks/ok-design-input.css.js +1 -1
  175. package/public/vendor/okjs/toolkit/theming/ok-design-style.js +1 -1
  176. package/public/vendor/okjs/toolkit/theming/ok-design-vars.js +1 -1
  177. package/public/vendor/okjs/toolkit/theming/ok-design.ok.js +1 -1
  178. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-input.ok.js +1 -1
  179. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-service.ok.js +1 -1
  180. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-style.js +1 -1
  181. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-utils.js +1 -1
  182. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-variable.ok.js +1 -1
  183. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-vm.js +1 -1
  184. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor.ok.js +1 -1
  185. package/public/vendor/okjs/toolkit/theming/ok-theme.ok.js +1 -1
  186. package/public/view-models/type-query-vm.js +1 -1
  187. package/public/images/logo.png +0 -0
  188. package/public/images/logo.svg +0 -333
@@ -1 +1 @@
1
- const _0x5ae29b=_0x4e0f;function _0x4e0f(_0x592cb4,_0x436bcb){_0x592cb4=_0x592cb4-0x87;const _0x3e8bcf=_0x3e8b();let _0x4e0fcd=_0x3e8bcf[_0x592cb4];return _0x4e0fcd;}(function(_0x7c637b,_0x23f177){const _0x1c1f8c=_0x4e0f,_0x2d04e4=_0x7c637b();while(!![]){try{const _0xc3fe83=parseInt(_0x1c1f8c(0x124))/0x1*(parseInt(_0x1c1f8c(0x126))/0x2)+parseInt(_0x1c1f8c(0xee))/0x3+-parseInt(_0x1c1f8c(0x99))/0x4*(parseInt(_0x1c1f8c(0xe0))/0x5)+-parseInt(_0x1c1f8c(0x101))/0x6*(-parseInt(_0x1c1f8c(0xd1))/0x7)+parseInt(_0x1c1f8c(0xe9))/0x8+-parseInt(_0x1c1f8c(0x128))/0x9*(parseInt(_0x1c1f8c(0x90))/0xa)+parseInt(_0x1c1f8c(0xc1))/0xb*(-parseInt(_0x1c1f8c(0x12a))/0xc);if(_0xc3fe83===_0x23f177)break;else _0x2d04e4['push'](_0x2d04e4['shift']());}catch(_0xfb31c4){_0x2d04e4['push'](_0x2d04e4['shift']());}}}(_0x3e8b,0x2d8e1));import _0x29115d from'../../../components/ok-js-input.ok.js';import _0x15c883 from'./embed-create-panel.ok.js';const t=[{'symbol':_0x5ae29b(0x111),'pattern':/(^|[^\w$.])require\s*\(/},{'symbol':_0x5ae29b(0x116),'pattern':/(^|[^\w$.])import\b/},{'symbol':_0x5ae29b(0x93),'pattern':/(^|[^\w$.])console\b/},{'symbol':_0x5ae29b(0xdc),'pattern':/(^|[^\w$.])module\b/},{'symbol':'exports','pattern':/(^|[^\w$.])exports\b/},{'symbol':_0x5ae29b(0x11c),'pattern':/(^|[^\w$.])process\b/},{'symbol':_0x5ae29b(0xef),'pattern':/child_process/},{'symbol':_0x5ae29b(0xa1),'pattern':/worker_threads/}];function i(_0x4dc3ca){const _0x56c296=_0x5ae29b,_0x5a3903='string'==typeof _0x4dc3ca?_0x4dc3ca[_0x56c296(0xa9)](/\r\n/g,'\x0a')[_0x56c296(0xf2)]():'';if(!_0x5a3903)return{'ok':!0x1,'message':_0x56c296(0x10f)};if(new TextEncoder()['encode'](_0x5a3903)[_0x56c296(0xfd)]>0x10000)return{'ok':!0x1,'message':_0x56c296(0xaf)};if(!/^(async\s+)?\(\s*[A-Za-z_$][\w$]*\s*\)\s*=>/['test'](_0x5a3903))return{'ok':!0x1,'message':_0x56c296(0x10a)};for(const {symbol:_0x33eb07,pattern:_0x1f906c}of t)if(_0x1f906c[_0x56c296(0xb1)](_0x5a3903))return{'ok':!0x1,'message':_0x56c296(0xfa)+_0x33eb07+'\x22'};try{new Function(_0x56c296(0x98)+_0x5a3903+');')();}catch(_0x255162){return{'ok':!0x1,'message':_0x255162?.[_0x56c296(0xff)]||_0x56c296(0x10c)};}return{'ok':!0x0,'normalizedSource':_0x5a3903};}function a(_0x18c512){const _0x404b3b=_0x5ae29b;return!0x0===_0x18c512||''===_0x18c512||0x1===_0x18c512||'1'===_0x18c512||_0x404b3b(0xfb)===_0x18c512;}export default{'tag':_0x5ae29b(0x91),'attr':{'locktype':{},'lockenv':{},'initialkind':{},'locktypestrict':{},'hidequeueworker':{}},'dependencies':[_0x29115d,_0x15c883],'context':_0xdfbf01=>({'step':0x1,'busy':!0x1,'error':null,'success':null,'engineKind':'','proc_sourceType':'','mat_sourceType':'','mat_targetType':'','qw_jobType':'','qw_jobTypeMode':_0x5ae29b(0xf8),'handlerMode':_0x5ae29b(0xf8),'handlerName':'','newFnName':'','newFnSource':'','newFnValidation':{'ok':!0x1,'message':'Source\x20is\x20required'},'newFnDryRunning':!0x1,'newFnDryResult':null,'newFnDryError':null,'newFnDryPayload':null,'showAdvanced':!0x1,'proc_mode':_0x5ae29b(0x12b),'proc_bootstrap':'snapshot','proc_batchSize':0x100,'proc_originMode':'all','mat_bootstrap':_0x5ae29b(0x113),'mat_batchSize':0x80,'mat_originMode':_0x5ae29b(0xd2),'mat_clearTargetOnRebuild':!0x0,'qw_concurrency':0x1,'handler_recordRuns':_0x5ae29b(0x129),'types':[],'functions':[],'queueJobTypes':[],get 'lockedType'(){const _0x171cda=_0x5ae29b;return _0xdfbf01[_0x171cda(0x105)]['locktype']||'';},get 'lockedEnv'(){const _0x14b2ba=_0x5ae29b;return _0xdfbf01[_0x14b2ba(0x105)]['lockenv']||'';},get 'initialKind'(){const _0x1cbf09=_0x5ae29b,_0x498d4f=_0xdfbf01[_0x1cbf09(0x105)][_0x1cbf09(0xe7)]||'';return this[_0x1cbf09(0xbf)][_0x1cbf09(0x11d)](_0x498d4f)?_0x498d4f:'';},get 'lockTypeStrict'(){const _0x2648ad=_0x5ae29b;return a(_0xdfbf01['$attr'][_0x2648ad(0xe2)]);},get 'hideQueueWorker'(){const _0xf8c0c7=_0x5ae29b;return a(_0xdfbf01[_0xf8c0c7(0x105)][_0xf8c0c7(0xdf)]);},get 'availableKinds'(){const _0x5286bb=_0x5ae29b;return[_0x5286bb(0x104),_0x5286bb(0xb6),_0x5286bb(0xab),_0x5286bb(0xb4)][_0x5286bb(0xd0)](_0x17e5f2=>!(this[_0x5286bb(0x103)]&&'queue-worker'===_0x17e5f2));},get 'typeSelectionLocked'(){const _0x457599=_0x5ae29b;return!!this[_0x457599(0x132)]&&this[_0x457599(0xd7)];},get 'kindLocked'(){const _0x837e6=_0x5ae29b;return!!this[_0x837e6(0x89)];},get 'selectedEnv'(){const _0x106e02=_0x5ae29b;return this['lockedEnv']||_0xdfbf01[_0x106e02(0xc8)]['stores'][_0x106e02(0xc4)]['selectedEnv']||'default';},async 'loadMeta'(){const _0x2fc6db=_0x5ae29b,_0x3ec144=this[_0x2fc6db(0x12c)];try{const [_0x38e5f4,_0x329017,_0x371682]=await Promise['all']([fetch(__ENV__[_0x2fc6db(0x130)]+'/env/'+encodeURIComponent(_0x3ec144)+_0x2fc6db(0xac)),fetch(__ENV__[_0x2fc6db(0x130)]+_0x2fc6db(0x10e)+encodeURIComponent(_0x3ec144)+_0x2fc6db(0x92)),fetch(__ENV__['API']+_0x2fc6db(0x10e)+encodeURIComponent(_0x3ec144)+'/queue/stats')[_0x2fc6db(0x8d)](()=>null)]),_0x5d1bb8=await _0x38e5f4[_0x2fc6db(0xfe)]()[_0x2fc6db(0x8d)](()=>({})),_0x44799d=await _0x329017['json']()[_0x2fc6db(0x8d)](()=>({})),_0x2edd3f=_0x5d1bb8[_0x2fc6db(0x88)]??_0x5d1bb8[_0x2fc6db(0xba)]??[];this['types']=(Array[_0x2fc6db(0xe4)](_0x2edd3f)?_0x2edd3f['map'](_0x23dd2d=>_0x23dd2d[_0x2fc6db(0xa5)]??_0x23dd2d[_0x2fc6db(0xd9)]??_0x23dd2d):Object[_0x2fc6db(0xb3)](_0x2edd3f))['filter'](_0x3f0e43=>_0x2fc6db(0x96)==typeof _0x3f0e43&&!_0x3f0e43['startsWith']('~'))['sort']();const _0x43cce1=_0x44799d[_0x2fc6db(0x88)]??_0x44799d[_0x2fc6db(0xba)]??[];if(this[_0x2fc6db(0x11a)]=Array['isArray'](_0x43cce1)?_0x43cce1[_0x2fc6db(0xb2)](_0x3ee43d=>_0x3ee43d['key']??_0x3ee43d[_0x2fc6db(0xd9)]??_0x3ee43d)[_0x2fc6db(0xd0)](Boolean)[_0x2fc6db(0xa6)]():[],_0x371682&&_0x371682['ok']){const _0x1d767a=await _0x371682[_0x2fc6db(0xfe)]()[_0x2fc6db(0x8d)](()=>({})),_0x454cf1=_0x1d767a?.[_0x2fc6db(0xba)]??_0x1d767a?.[_0x2fc6db(0x88)]??null,_0x591231=_0x454cf1?.['byType']??{};this[_0x2fc6db(0xb9)]=Object[_0x2fc6db(0xb3)](_0x591231)[_0x2fc6db(0xa6)]();}else this['queueJobTypes']=[];}catch{this['types']=[],this[_0x2fc6db(0x11a)]=[],this[_0x2fc6db(0xb9)]=[];}},get 'effectiveJobType'(){const _0x3f1b04=_0x5ae29b;return _0x3f1b04(0xc3)===this['qw_jobTypeMode']?this[_0x3f1b04(0x87)][_0x3f1b04(0xf2)]():this[_0x3f1b04(0x87)];},get 'effectiveHandlerName'(){const _0x224683=_0x5ae29b;return'new'===this[_0x224683(0x11b)]?this[_0x224683(0x112)][_0x224683(0xf2)]():this[_0x224683(0xad)];},get 'autoName'(){const _0x2d8524=_0x5ae29b;return'processor'===this[_0x2d8524(0xce)]&&this[_0x2d8524(0xb8)]&&this['effectiveHandlerName']?this[_0x2d8524(0xb8)]+'-'+this['effectiveHandlerName']:_0x2d8524(0xb6)===this['engineKind']&&this[_0x2d8524(0x118)]&&this['mat_targetType']&&this[_0x2d8524(0xc0)]?this[_0x2d8524(0x118)]+_0x2d8524(0xa4)+this[_0x2d8524(0xf3)]+'-'+this[_0x2d8524(0xc0)]:_0x2d8524(0xab)===this[_0x2d8524(0xce)]&&this[_0x2d8524(0x114)]&&this[_0x2d8524(0xc0)]?this[_0x2d8524(0x114)]+'-'+this[_0x2d8524(0xc0)]:'';},get 'pipelineName'(){return this['autoName'];},get 'engineName'(){const _0xa630e8=_0x5ae29b;return this[_0xa630e8(0x9f)]?this[_0xa630e8(0x9f)]+':'+this['engineKind']:'';},get 'step2Valid'(){const _0x2de414=_0x5ae29b;return _0x2de414(0xb4)===this['engineKind']||!(_0x2de414(0x104)===this[_0x2de414(0xce)]&&!this[_0x2de414(0xb8)])&&!!(_0x2de414(0xb6)!==this[_0x2de414(0xce)]||this[_0x2de414(0x118)]&&this['mat_targetType'])&&!(_0x2de414(0xab)===this[_0x2de414(0xce)]&&!this['effectiveJobType'])&&(_0x2de414(0xf8)===this[_0x2de414(0x11b)]?!!this[_0x2de414(0xad)]:!!this[_0x2de414(0x112)][_0x2de414(0xf2)]()&&this[_0x2de414(0xf7)]['ok']);},'resetWizard'(){const _0x8ceb3d=_0x5ae29b;this[_0x8ceb3d(0x8f)]=this[_0x8ceb3d(0xbb)]?0x2:0x1,this[_0x8ceb3d(0xce)]=this[_0x8ceb3d(0xbb)]?this[_0x8ceb3d(0x89)]:'',this['proc_sourceType']=this[_0x8ceb3d(0x132)]||'',this['mat_sourceType']=this[_0x8ceb3d(0x132)]||'',this[_0x8ceb3d(0xf3)]='',this['qw_jobType']='',this[_0x8ceb3d(0xcc)]=_0x8ceb3d(0xf8),this[_0x8ceb3d(0x11b)]=_0x8ceb3d(0xf8),this[_0x8ceb3d(0xad)]='',this[_0x8ceb3d(0x112)]='',this[_0x8ceb3d(0xd6)]='',this[_0x8ceb3d(0xf7)]={'ok':!0x1,'message':_0x8ceb3d(0x10f)},this[_0x8ceb3d(0x115)]=null,this['newFnDryError']=null,this[_0x8ceb3d(0x94)]=!0x1,this[_0x8ceb3d(0xbc)]='errors',this[_0x8ceb3d(0x8e)]=_0x8ceb3d(0x12b),this[_0x8ceb3d(0xdb)]='snapshot',this[_0x8ceb3d(0x122)]=0x100,this[_0x8ceb3d(0xd5)]=_0x8ceb3d(0xd2),this[_0x8ceb3d(0xf0)]='snapshot',this[_0x8ceb3d(0xe3)]=0x80,this[_0x8ceb3d(0x12f)]='all',this[_0x8ceb3d(0xec)]=!0x0,this['qw_concurrency']=0x1;},'applyScopeDefaults'(){const _0x4eefc2=_0x5ae29b;this[_0x4eefc2(0xa3)]?(this[_0x4eefc2(0xb8)]=this[_0x4eefc2(0x132)],this[_0x4eefc2(0x118)]=this[_0x4eefc2(0x132)]):this[_0x4eefc2(0x132)]&&!this['proc_sourceType']&&(this['proc_sourceType']=this['lockedType']),this['typeSelectionLocked']||!this['lockedType']||this[_0x4eefc2(0x118)]||(this[_0x4eefc2(0x118)]=this['lockedType']),this[_0x4eefc2(0xbb)]&&this['engineKind']!==this[_0x4eefc2(0x89)]&&this[_0x4eefc2(0xa0)](this[_0x4eefc2(0x89)]);},get 'dedupedDryLogs'(){const _0xd2f6be=_0x5ae29b,_0x5d0bc0=this[_0xd2f6be(0x115)]?.[_0xd2f6be(0xf5)];if(!Array[_0xd2f6be(0xe4)](_0x5d0bc0)||!_0x5d0bc0['length'])return[];const _0xbfa56=[],_0x514d96=new Map();for(const _0x5bfcbf of _0x5d0bc0){const _0x5d478b=(_0x5bfcbf[_0xd2f6be(0x12e)]??'')+'::'+(_0x5bfcbf[_0xd2f6be(0x97)]??_0x5bfcbf[_0xd2f6be(0xff)]??JSON['stringify'](_0x5bfcbf));if(_0x514d96['has'](_0x5d478b))_0x514d96['get'](_0x5d478b)['count']++;else{const _0x7021db={..._0x5bfcbf,'count':0x1,'_key':_0x5d478b};_0x514d96[_0xd2f6be(0xc9)](_0x5d478b,_0x7021db),_0xbfa56[_0xd2f6be(0xa7)](_0x7021db);}}return _0xbfa56;},get 'dryRunDuration'(){const _0x313b88=_0x5ae29b,_0x1cc647=this[_0x313b88(0x115)];return _0x1cc647?_0x1cc647[_0x313b88(0x100)]?.[_0x313b88(0xaa)]??null:null;},get 'dryRunStatus'(){const _0x55e04a=_0x5ae29b,_0x2c9db1=this[_0x55e04a(0x115)];return _0x2c9db1?_0x55e04a(0xca)===_0x2c9db1[_0x55e04a(0xd8)]||_0x2c9db1[_0x55e04a(0xca)]?_0x55e04a(0xca):_0x2c9db1[_0x55e04a(0xd8)]||'success':null;},'pickType'(_0x35a725){const _0x1e94c3=_0x5ae29b;this[_0x1e94c3(0xbf)][_0x1e94c3(0x11d)](_0x35a725)&&(this['engineKind']=_0x35a725,this[_0x1e94c3(0x8f)]=0x2,this[_0x1e94c3(0xa3)]&&(this[_0x1e94c3(0xb8)]=this[_0x1e94c3(0x132)],this[_0x1e94c3(0x118)]=this[_0x1e94c3(0x132)]),'embedding'!==_0x35a725&&(this[_0x1e94c3(0xd6)]||(this[_0x1e94c3(0xd6)]=_0x1e94c3(0x104)===_0x35a725?_0x1e94c3(0xae):'materializer'===_0x35a725?_0x1e94c3(0xc2):'async\x20(ctx)\x20=>\x20{\x0a\x20\x20//\x20ctx.payload\x20—\x20the\x20raw\x20job\x20payload\x20(whatever\x20was\x20enqueued)\x0a\x20\x20//\x20ctx.job\x20\x20\x20\x20\x20—\x20queue\x20job\x20context\x20(only\x20for\x20queue-worker\x20pipelines)\x0a\x20\x20//\x20\x20\x20ctx.job.id,\x20ctx.job.type,\x20ctx.job.tries,\x20ctx.job.tags,\x20...\x0a\x20\x20//\x20\x20\x20ctx.job.heartbeat()\x20\x20\x20\x20\x20\x20\x20\x20—\x20keep\x20the\x20job\x20alive\x0a\x20\x20//\x20\x20\x20ctx.job.markProgress(msg)\x20\x20—\x20report\x20progress\x0a\x20\x20//\x20ctx.env\x20\x20\x20\x20\x20—\x20env\x20facade:\x20put,\x20get,\x20query,\x20txn,\x20...\x0a\x20\x20//\x20ctx.log\x20\x20\x20\x20\x20—\x20structured\x20logger:\x20ctx.log.info(msg,\x20data)\x0a\x20\x20//\x0a\x20\x20//\x20Example:\x20handle\x20a\x20queued\x20task\x0a\x20\x20//\x20const\x20{\x20id,\x20action\x20}\x20=\x20ctx.payload;\x0a\x20\x20//\x20ctx.log.info(\x27handling\x20job\x27,\x20{\x20id,\x20action,\x20attempt:\x20ctx.job.tries\x20});\x0a\x20\x20//\x20await\x20ctx.env.put(\x27results\x27,\x20id,\x20{\x20done:\x20true\x20});\x0a\x0a\x20\x20return\x20{\x20ok:\x20true\x20};\x0a}',this[_0x1e94c3(0xf7)]=i(this[_0x1e94c3(0xd6)]))));},'goBack'(){const _0x43a4ac=_0x5ae29b;_0x43a4ac(0xb4)!==this[_0x43a4ac(0xce)]?this['step']>0x1&&this[_0x43a4ac(0x8f)]--:this['resetWizard']();},'goNext'(){const _0x2eeeea=_0x5ae29b;0x2===this['step']&&this[_0x2eeeea(0xbe)]&&(this[_0x2eeeea(0x8f)]=0x3);},'onEmbeddingCreated'(_0x130e13){const _0x44ce04=_0x5ae29b;this['success']=_0x44ce04(0x107),this[_0x44ce04(0xca)]=null,this[_0x44ce04(0x9c)](),_0xdfbf01[_0x44ce04(0x131)][_0x44ce04(0xfc)](new CustomEvent(_0x44ce04(0x133),{'detail':_0x130e13,'bubbles':!0x0}));},'updateSource'(_0x42c6b2){const _0x3680a9=_0x5ae29b;this['newFnSource']=_0x42c6b2??'',this[_0x3680a9(0xf7)]=i(this[_0x3680a9(0xd6)]);},async 'buildDryRunPayload'(){const _0x436274=_0x5ae29b;if(_0x436274(0x104)===this['engineKind'])return[{'key':_0x436274(0x123),'value':{'sample':!0x0,'name':_0x436274(0x11e)},'action':'put','clock':0x1}];if('materializer'===this['engineKind'])return[{'key':_0x436274(0x123),'value':{'sample':!0x0,'name':'Example\x20record'},'action':_0x436274(0xda),'clock':null},{'key':_0x436274(0xc6),'action':_0x436274(0x11f),'clock':0x2}];const _0x4a8e73=this['effectiveJobType'];if(_0x4a8e73)try{const _0xcec9c6=this['selectedEnv'],_0x3ae05a=__ENV__[_0x436274(0x130)]+_0x436274(0x10e)+encodeURIComponent(_0xcec9c6)+'/queue',_0xd8ffa9=await fetch(_0x3ae05a+_0x436274(0xa8)+new URLSearchParams({'type':_0x4a8e73,'limit':'1'}));if(_0xd8ffa9['ok']){const _0x1ba2ff=await _0xd8ffa9[_0x436274(0xfe)](),_0x3c3ee7=_0x1ba2ff?.[_0x436274(0xba)]?.[_0x436274(0x95)]??_0x1ba2ff?.[_0x436274(0x88)]?.[_0x436274(0x95)]??[],_0x83e9d6=_0x3c3ee7[0x0]?.[_0x436274(0x121)]??_0x3c3ee7[0x0]?.['id']??_0x3c3ee7[0x0]?.[_0x436274(0xde)]?.['id'];if(_0x83e9d6){const _0x5a14cc=await fetch(_0x3ae05a+_0x436274(0x117)+encodeURIComponent(_0x83e9d6));if(_0x5a14cc['ok']){const _0x47b8b5=await _0x5a14cc[_0x436274(0xfe)](),_0x2ec89f=_0x47b8b5?.[_0x436274(0xba)]??_0x47b8b5?.['data'];if(void 0x0!==_0x2ec89f?.[_0x436274(0xed)])return _0x2ec89f['payload'];}}}}catch{}return{};},async 'dryRunFunction'(){const _0x59cac7=_0x5ae29b;if(this[_0x59cac7(0xf7)]['ok']&&!this[_0x59cac7(0x108)]){this[_0x59cac7(0x108)]=!0x0,this[_0x59cac7(0x115)]=null,this['newFnDryError']=null,this[_0x59cac7(0x106)]=null;try{const _0x2ddd8b=this[_0x59cac7(0x12c)],_0x44dd33=await this[_0x59cac7(0x8c)]();this[_0x59cac7(0x106)]=_0x44dd33;const _0x4cd34d={'name':this[_0x59cac7(0x112)][_0x59cac7(0xf2)]()||'__preview__','source':this[_0x59cac7(0xf7)][_0x59cac7(0xc5)]||this['newFnSource'][_0x59cac7(0xf2)](),'metadata':{'description':_0x59cac7(0x127)},'enabled':!0x0,'payload':_0x44dd33};_0x59cac7(0xab)===this['engineKind']&&(_0x4cd34d[_0x59cac7(0xe5)]={'id':_0x59cac7(0x9d),'type':this[_0x59cac7(0x114)]||_0x59cac7(0xf4),'tries':0x1,'created':Date[_0x59cac7(0xb0)](),'tags':null,'priority':0x0,'bucket':null,'cron':null}),_0x59cac7(0x104)===this['engineKind']&&(_0x4cd34d[_0x59cac7(0xcd)]={'mode':'live','sourceType':this[_0x59cac7(0xb8)]||_0x59cac7(0xc7),'sourceEnv':this[_0x59cac7(0x12c)],'processor':'__preview__','engineKey':_0x59cac7(0xea),'cursorKey':null}),_0x59cac7(0xb6)===this['engineKind']&&(_0x4cd34d[_0x59cac7(0x8b)]={'mode':_0x59cac7(0xe1),'sourceType':this[_0x59cac7(0x118)]||_0x59cac7(0xc7),'targetType':this['mat_targetType']||_0x59cac7(0xd4),'sourceEnv':this[_0x59cac7(0x12c)],'targetEnv':this[_0x59cac7(0x12c)],'engineKey':_0x59cac7(0xea),'cursorKey':null});const _0x19cecf=await fetch(__ENV__[_0x59cac7(0x130)]+_0x59cac7(0x10e)+encodeURIComponent(_0x2ddd8b)+_0x59cac7(0xb7),{'method':_0x59cac7(0xeb),'headers':{'Content-Type':_0x59cac7(0x119)},'body':JSON[_0x59cac7(0xbd)](_0x4cd34d)}),_0x3d0237=await _0x19cecf[_0x59cac7(0xfe)]()['catch'](()=>({})),_0x79cab2=_0x3d0237?.[_0x59cac7(0x88)]??_0x3d0237?.['result']??_0x3d0237;if(!_0x19cecf['ok']&&!_0x79cab2?.[_0x59cac7(0xd8)])throw new Error(_0x3d0237?.[_0x59cac7(0xca)]?.['message']||_0x59cac7(0x102)+_0x19cecf[_0x59cac7(0xd8)]+')');this[_0x59cac7(0x115)]=_0x79cab2;}catch(_0x2dd47e){this[_0x59cac7(0xcf)]=_0x2dd47e?.['message']||String(_0x2dd47e);}finally{this[_0x59cac7(0x108)]=!0x1;}}},'buildEngineConfig'(){const _0x4407a9=_0x5ae29b,_0x25509e={'kind':'function','name':this[_0x4407a9(0xc0)]};return _0x4407a9(0xd2)!==this['handler_recordRuns']&&(_0x25509e['recordRuns']=this['handler_recordRuns']),_0x4407a9(0x104)===this[_0x4407a9(0xce)]?{'source_type':this[_0x4407a9(0xb8)],'source_env':this[_0x4407a9(0x12c)],'handler':_0x25509e,'mode':this[_0x4407a9(0x8e)],'bootstrap':_0x4407a9(0xe8)===this[_0x4407a9(0x8e)]?null:this[_0x4407a9(0xdb)],'batchSize':Number(this[_0x4407a9(0x122)])||0x100,'originMode':this[_0x4407a9(0xd5)]}:_0x4407a9(0xb6)===this['engineKind']?{'source_type':this['mat_sourceType'],'target_type':this['mat_targetType'],'source_env':this['selectedEnv'],'target_env':this[_0x4407a9(0x12c)],'handler':_0x25509e,'bootstrap':this[_0x4407a9(0xf0)],'batchSize':Number(this['mat_batchSize'])||0x80,'originMode':this[_0x4407a9(0x12f)],'clearTargetOnRebuild':!0x1!==this[_0x4407a9(0xec)]}:_0x4407a9(0xab)===this[_0x4407a9(0xce)]?{'job_type':this[_0x4407a9(0x114)],'queue_env':this['selectedEnv'],'handler':_0x25509e,'concurrency':Number(this['qw_concurrency'])||0x1}:{};},async 'submit'(){const _0x471638=_0x5ae29b;if(this[_0x471638(0xbe)]&&!this[_0x471638(0x125)]){this[_0x471638(0x125)]=!0x0,this[_0x471638(0xca)]=null,this[_0x471638(0x10b)]=null;try{const _0x4a580b=this[_0x471638(0x12c)];if('new'===this[_0x471638(0x11b)]){const _0x557bc8={'name':this[_0x471638(0x112)][_0x471638(0xf2)](),'source':this[_0x471638(0xf7)][_0x471638(0xc5)]||this[_0x471638(0xd6)][_0x471638(0xf2)](),'metadata':{'description':'Handler\x20for\x20pipeline\x20'+this[_0x471638(0x9a)],'owner_engine':this[_0x471638(0xf1)],'pipeline':this['pipelineName']},'enabled':!0x0},_0x4077d4=await fetch(__ENV__[_0x471638(0x130)]+_0x471638(0x10e)+encodeURIComponent(_0x4a580b)+'/functions',{'method':_0x471638(0xeb),'headers':{'Content-Type':_0x471638(0x119)},'body':JSON[_0x471638(0xbd)](_0x557bc8)}),_0x3aa80c=await _0x4077d4[_0x471638(0xfe)]()[_0x471638(0x8d)](()=>({}));if(!_0x4077d4['ok'])throw new Error(_0x3aa80c?.[_0x471638(0xca)]?.[_0x471638(0xff)]||_0x471638(0xcb)+_0x4077d4[_0x471638(0xd8)]+')');}const _0x473a13={'name':this[_0x471638(0x9a)],'meta':{'label':this[_0x471638(0x9a)]},'members':[{'engineType':this[_0x471638(0xce)],'engineName':this[_0x471638(0xf1)],'role':this[_0x471638(0xce)],'engineConfig':this[_0x471638(0xdd)]()}]},_0x2c1cc5=await fetch(__ENV__['API']+_0x471638(0x10e)+encodeURIComponent(_0x4a580b)+_0x471638(0x9b),{'method':_0x471638(0xeb),'headers':{'Content-Type':_0x471638(0x119)},'body':JSON[_0x471638(0xbd)](_0x473a13)}),_0x94eba9=await _0x2c1cc5['json']()[_0x471638(0x8d)](()=>({}));if(!_0x2c1cc5['ok'])throw new Error(_0x94eba9?.[_0x471638(0xca)]?.['message']||_0x471638(0x9e)+_0x2c1cc5[_0x471638(0xd8)]+')');this['success']='Pipeline\x20\x22'+this['pipelineName']+'\x22\x20created\x20and\x20started',_0xdfbf01[_0x471638(0x131)][_0x471638(0xfc)](new CustomEvent('created',{'detail':_0x94eba9[_0x471638(0xba)]??_0x94eba9[_0x471638(0x88)],'bubbles':!0x0})),this[_0x471638(0x9c)]();}catch(_0x3eacb6){this[_0x471638(0xca)]=_0x3eacb6?.[_0x471638(0xff)]||String(_0x3eacb6);}finally{this[_0x471638(0x125)]=!0x1;}}},'formatJson'(_0x3f30f7){try{return JSON['stringify'](_0x3f30f7,null,0x2);}catch{return String(_0x3f30f7??'');}},'setJobTypeMode'(_0x5cc8a1){const _0x1661fd=_0x5ae29b;this[_0x1661fd(0xcc)]=_0x5cc8a1,this['qw_jobType']='';},'logLabel'(_0x14c8a8){const _0x1e740e=_0x5ae29b,_0x31e4bd=_0x14c8a8?.[_0x1e740e(0x97)]??_0x14c8a8?.['message']??'';return _0x14c8a8?.['count']>0x1?_0x31e4bd+_0x1e740e(0x120)+_0x14c8a8[_0x1e740e(0xd3)]+')':_0x31e4bd;},'logColor'(_0x12df11){const _0x9643fa=_0x5ae29b,_0x2d7756=_0x12df11?.['level']??'';return _0x9643fa(0xca)===_0x2d7756||'fatal'===_0x2d7756?_0x9643fa(0x10d):'warn'===_0x2d7756?_0x9643fa(0x12d):_0x9643fa(0xe6)===_0x2d7756?_0x9643fa(0x109):_0x9643fa(0xf6);}}),async 'init'(_0x9fc087){const _0x53291e=_0x5ae29b;await this[_0x53291e(0xf9)](),this[_0x53291e(0xb5)](),_0x9fc087['$watch'](()=>_0x9fc087['$ok'][_0x53291e(0x8a)][_0x53291e(0xc4)]['selectedEnv'],async()=>{const _0x557e68=_0x53291e;await this['loadMeta'](),this[_0x557e68(0xb5)]();});},'style':_0x5ae29b(0xa2),'template':_0x5ae29b(0x110)};function _0x3e8b(){const _0x394d4a=['created','qw_jobType','data','initialKind','stores','materializerContext','buildDryRunPayload','catch','proc_mode','step','20szJEOB','pipeline-create-panel','/functions','console','showAdvanced','items','string','msg','return\x20(','4Dpkyco','pipelineName','/pipelines/scaffold','resetWizard','__preview-job__','Failed\x20(','autoName','pickType','worker_threads','\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20block;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-wrap\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20820px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-title\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-sub\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20680px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20steps\x20indicator\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-steps\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-bottom:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-dot\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2026px;\x20height:\x2026px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x20align-items:\x20center;\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20700;\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg-muted);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-dot--active\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-dot--done\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-line\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x2060px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-line--done\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x2040%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-left:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.45;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-label--active\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20type-choice\x20cards\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-grid\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20repeat(auto-fit,\x20minmax(220px,\x201fr));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2020px\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20border-color\x20.15s,\x20background\x20.15s;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-icon\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2028px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-name\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2015px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-desc\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20card\x20/\x20form\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-section\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-transform:\x20uppercase;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.45;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20letter-spacing:\x20.06em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20130px\x201fr;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20right;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-input\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-sizing:\x20border-box;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-input:focus\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20outline:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-select\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-sizing:\x20border-box;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-hint\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.4;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-style:\x20italic;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-column:\x202;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pills\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pill\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x204px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x20999px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pill:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pill--on\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20handler\x20toggle\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle-btn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x207px\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.6;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle-btn:first-child\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-right:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle-btn--on\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20code\x20editor\x20area\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-editor-wrap\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20260px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20min-height:\x20260px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20dry-run\x20result\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2012px\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-ok\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-err\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-pre\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20white-space:\x20pre-wrap;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20word-break:\x20break-word;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg-subtle);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-height:\x20160px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20auto;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-meta\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20dry-run\x20logs\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-logs\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-log-entry\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20monospace;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x202px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-log-level\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20inline-block;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20min-width:\x2040px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-transform:\x20uppercase;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-right:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20review\x20summary\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-summary-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-summary-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-summary-val\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20monospace;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20buttons\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-actions\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x209%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn:hover\x20{\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2016%,\x20transparent);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn:disabled\x20{\x20opacity:\x20.4;\x20cursor:\x20default;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--ghost\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20400;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--ghost:hover\x20{\x20opacity:\x201;\x20background:\x20var(--okdb-app-surface);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--green\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x209%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--green:hover\x20{\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x2016%,\x20transparent);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--small\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x205px\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20feedback\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-success\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x205%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-warn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-warning);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.75;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-warning)\x2020%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-warning)\x204%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20advanced\x20toggle\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-adv-toggle\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user-select:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20inline-flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-adv-toggle:hover\x20{\x20opacity:\x20.8;\x20}\x0a\x20\x20\x20\x20','typeSelectionLocked','-to-','type','sort','push','/jobs?','replace','durationMs','queue-worker','/types','handlerName','async\x20(ctx)\x20=>\x20{\x0a\x20\x20//\x20ctx.payload\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20array\x20of\x20{\x20key,\x20value,\x20action,\x20clock\x20}\x0a\x20\x20//\x20ctx.processor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20processor\x20trigger\x20metadata\x20(only\x20for\x20processor\x20engines)\x0a\x20\x20//\x20\x20\x20ctx.processor.mode\x20\x20\x20\x20\x20\x20\x20\x20—\x20\x22snapshot\x22\x20|\x20\x22live\x22\x0a\x20\x20//\x20\x20\x20ctx.processor.sourceType\x20\x20—\x20the\x20type\x20being\x20watched\x0a\x20\x20//\x20\x20\x20ctx.processor.sourceEnv\x20\x20\x20—\x20the\x20environment\x20of\x20the\x20source\x20type\x0a\x20\x20//\x20ctx.env\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20env\x20facade:\x20put,\x20get,\x20query,\x20txn,\x20...\x0a\x20\x20//\x20ctx.log\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20structured\x20logger:\x20ctx.log.info(msg,\x20data)\x0a\x20\x20//\x0a\x20\x20//\x20Example:\x20materialised\x20view\x0a\x20\x20//\x20for\x20(const\x20change\x20of\x20ctx.payload)\x20{\x0a\x20\x20//\x20\x20\x20await\x20ctx.env.put(\x27derived\x27,\x20change.key,\x20{\x20processed:\x20true,\x20...change.value\x20});\x0a\x20\x20//\x20}\x0a\x0a\x20\x20return\x20{\x20processed:\x20ctx.payload.length\x20};\x0a}','Source\x20exceeds\x2064\x20KB','now','test','map','keys','embedding','applyScopeDefaults','materializer','/functions/preview','proc_sourceType','queueJobTypes','result','kindLocked','handler_recordRuns','stringify','step2Valid','availableKinds','effectiveHandlerName','2739XVjFXB','async\x20(ctx)\x20=>\x20{\x0a\x20\x20//\x20ctx.payload\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20array\x20of\x20change\x20records\x0a\x20\x20//\x20\x20\x20change.action\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20\x22put\x22\x20|\x20\x22remove\x22\x0a\x20\x20//\x20\x20\x20change.key\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20source\x20record\x20key\x0a\x20\x20//\x20\x20\x20change.value\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20hydrated\x20source\x20value\x20for\x20puts\x0a\x20\x20//\x20\x20\x20change.clock\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20log\x20clock\x20during\x20live\x20replay;\x20null\x20during\x20snapshot\x20bootstrap\x0a\x20\x20//\x20ctx.materializer\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20materializer\x20trigger\x20metadata\x0a\x20\x20//\x20\x20\x20ctx.materializer.sourceType\x20\x20—\x20the\x20type\x20being\x20watched\x0a\x20\x20//\x20\x20\x20ctx.materializer.targetType\x20\x20—\x20the\x20derived\x20target\x20type\x0a\x20\x20//\x20\x20\x20ctx.materializer.sourceEnv\x20\x20\x20—\x20the\x20environment\x20of\x20the\x20source\x20type\x0a\x20\x20//\x20\x20\x20ctx.materializer.targetEnv\x20\x20\x20—\x20the\x20environment\x20of\x20the\x20target\x20type\x0a\x20\x20//\x20ctx.env\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20env\x20facade\x20(read-only\x20for\x20deterministic\x20materializers)\x0a\x20\x20//\x20ctx.log\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20structured\x20logger:\x20ctx.log.info(msg,\x20data)\x0a\x20\x20//\x0a\x20\x20//\x20Return\x20ops\x20for\x20the\x20engine\x20to\x20apply\x20to\x20the\x20target\x20type.\x0a\x20\x20const\x20ops\x20=\x20[];\x0a\x0a\x20\x20for\x20(const\x20change\x20of\x20ctx.payload)\x20{\x0a\x20\x20\x20\x20if\x20(change.action\x20===\x20\x27put\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20const\x20doc\x20=\x20change.value\x20??\x20change.newValue;\x0a\x20\x20\x20\x20\x20\x20if\x20(!doc)\x20continue;\x0a\x0a\x20\x20\x20\x20\x20\x20ops.push({\x0a\x20\x20\x20\x20\x20\x20\x20\x20action:\x20\x27put\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20key:\x20change.key,\x0a\x20\x20\x20\x20\x20\x20\x20\x20value:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20projected:\x20true,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sourceKey:\x20change.key,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20...doc,\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20if\x20(change.action\x20===\x20\x27remove\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20ops.push({\x20action:\x20\x27remove\x27,\x20key:\x20change.key\x20});\x0a\x20\x20\x20\x20}\x0a\x20\x20}\x0a\x0a\x20\x20return\x20ops;\x0a}','custom','okdb','normalizedSource','test-2','example','$ok','set','error','Failed\x20to\x20create\x20function\x20(','qw_jobTypeMode','processorContext','engineKind','newFnDryError','filter','511foRxtl','all','count','example_projection','proc_originMode','newFnSource','lockTypeStrict','status','name','put','proc_bootstrap','module','buildEngineConfig','value','hidequeueworker','943970CRoydx','live','locktypestrict','mat_batchSize','isArray','jobContext','debug','initialkind','inline','2149808tUgCdT','__preview__','POST','mat_clearTargetOnRebuild','payload','218151IfOqDO','child_process','mat_bootstrap','engineName','trim','mat_targetType','preview','logs','var(--okdb-app-fg-subtle)','newFnValidation','existing','loadMeta','Cannot\x20use\x20\x22','true','dispatchEvent','length','json','message','execution','1980ZiLDdt','Preview\x20failed\x20(','hideQueueWorker','processor','$attr','newFnDryPayload','Embedding\x20pipeline\x20created','newFnDryRunning','var(--okdb-app-fg-muted)','Must\x20be\x20(ctx)\x20=>\x20{\x20…\x20}\x20or\x20async\x20(ctx)\x20=>\x20{\x20…\x20}','success','Compile\x20error','var(--okdb-danger)','/env/','Source\x20is\x20required','\x0a<div\x20class=\x22pw-wrap\x22>\x0a\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-title\x22>{{\x20engineKind\x20===\x20\x27embedding\x27\x20||\x20initialKind\x20===\x20\x27embedding\x27\x20?\x20\x27Create\x20Embedding\x20Pipeline\x27\x20:\x20engineKind\x20===\x20\x27materializer\x27\x20||\x20initialKind\x20===\x20\x27materializer\x27\x20?\x20\x27Create\x20Materializer\x20Pipeline\x27\x20:\x20\x27Create\x20Pipeline\x27\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-sub\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Set\x20up\x20automated\x20processing\x20in\x20<b>{{\x20selectedEnv\x20}}</b>.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20A\x20pipeline\x20connects\x20a\x20data\x20source\x20to\x20a\x20handler\x20function\x20and\x20runs\x20it\x20automatically.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<!--\x20──\x20Steps\x20indicator\x20──\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22engineKind\x20!==\x20\x27embedding\x27\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22pw-steps\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>=\x201\x20?\x20(step\x20>\x201\x20?\x20\x27pw-step-dot\x20pw-step-dot--done\x27\x20:\x20\x27pw-step-dot\x20pw-step-dot--active\x27)\x20:\x20\x27pw-step-dot\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20step\x20>\x201\x20?\x20\x27✓\x27\x20:\x20\x271\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:class=\x22step\x20>=\x201\x20?\x20\x27pw-step-label\x20pw-step-label--active\x27\x20:\x20\x27pw-step-label\x27\x22>Type</span>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>\x201\x20?\x20\x27pw-step-line\x20pw-step-line--done\x27\x20:\x20\x27pw-step-line\x27\x22></div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>=\x202\x20?\x20(step\x20>\x202\x20?\x20\x27pw-step-dot\x20pw-step-dot--done\x27\x20:\x20\x27pw-step-dot\x20pw-step-dot--active\x27)\x20:\x20\x27pw-step-dot\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20step\x20>\x202\x20?\x20\x27✓\x27\x20:\x20\x272\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:class=\x22step\x20>=\x202\x20?\x20\x27pw-step-label\x20pw-step-label--active\x27\x20:\x20\x27pw-step-label\x27\x22>Configure</span>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>\x202\x20?\x20\x27pw-step-line\x20pw-step-line--done\x27\x20:\x20\x27pw-step-line\x27\x22></div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>=\x203\x20?\x20\x27pw-step-dot\x20pw-step-dot--active\x27\x20:\x20\x27pw-step-dot\x27\x22>3</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:class=\x22step\x20>=\x203\x20?\x20\x27pw-step-label\x20pw-step-label--active\x27\x20:\x20\x27pw-step-label\x27\x22>Review</span>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<!--\x20════════════\x20STEP\x201:\x20Choose\x20type\x20════════════\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22step\x20===\x201\x20&&\x20!kindLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-grid\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27processor\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⚡</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Change\x20Processor</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Watches\x20a\x20data\x20type\x20for\x20changes\x20and\x20runs\x20your\x20function\x20for\x20every\x20batch.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20for\x20projections,\x20computed\x20values,\x20webhooks,\x20or\x20side-effects\x20that\x20should\x20trigger\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20whenever\x20records\x20are\x20created,\x20updated,\x20or\x20deleted.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27materializer\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⇄</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Materializer</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Watches\x20a\x20source\x20type\x20and\x20maintains\x20a\x20deterministic\x20derived\x20target\x20type\x20by\x20returning\x20ops\x20for\x20the\x20engine\x20to\x20apply.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20for\x20rebuildable\x20projections,\x20mirrors,\x20and\x20materialized\x20views.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!hideQueueWorker\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27queue-worker\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⇶</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Queue\x20Worker</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Processes\x20jobs\x20from\x20a\x20queue.\x20Use\x20for\x20background\x20tasks\x20like\x20sending\x20emails,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20generating\x20reports,\x20or\x20any\x20work\x20that\x20can\x20be\x20enqueued\x20and\x20processed\x20asynchronously\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20with\x20automatic\x20retries.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27embedding\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⊛</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Embedding\x20Pipeline</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Creates\x20an\x20embedder,\x20indexer,\x20search\x20engine,\x20and\x20optional\x20worker\x20as\x20one\x20grouped\x20pipeline.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20this\x20for\x20semantic\x20search,\x20RAG,\x20and\x20other\x20vector\x20workflows.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<!--\x20════════════\x20STEP\x202:\x20Configure\x20════════════\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22step\x20===\x202\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27embedding\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>Embeddings</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.58;\x20line-height:1.7;\x20margin-bottom:2px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Embedding\x20pipelines\x20use\x20the\x20specialized\x20creator\x20because\x20they\x20can\x20bundle\x20multiple\x20engines\x20and\x20optional\x20search/worker\x20settings\x20in\x20one\x20pass.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-actions\x22\x20style=\x22margin-top:4px;\x22\x20:style=\x22kindLocked\x20?\x20\x27display:none;\x27\x20:\x20\x27\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--ghost\x22\x20@click=\x22goBack()\x22>←\x20Back</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<embed-create-panel\x20initialtab=\x22pipeline\x22\x20:locktype=\x22lockedType\x22\x20:lockenv=\x22selectedEnv\x22\x20@created=\x22onEmbeddingCreated($event.detail)\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20!==\x20\x27embedding\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Source\x20/\x20job\x20type\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20engineKind\x20===\x20\x27queue-worker\x27\x20?\x20\x27What\x20to\x20process\x27\x20:\x20\x27What\x20to\x20watch\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27processor\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Data\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22display:inline-flex;\x20align-items:center;\x20gap:6px;\x20padding:5px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x20color:var(--okdb-accent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x206%,\x20transparent);\x20font-size:12px;\x22>{{\x20proc_sourceType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.45;\x22>Locked\x20to\x20the\x20current\x20DB\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Data\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22proc_sourceType\x22\x20@change=\x22proc_sourceType\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20a\x20type\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22types\x22\x20let:item=\x22t\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22t\x22>{{\x20t\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20processor\x20will\x20receive\x20a\x20batch\x20of\x20changes\x20every\x20time\x20records\x20of\x20this\x20type\x20are\x20created,\x20updated,\x20or\x20deleted.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27materializer\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Source\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22display:inline-flex;\x20align-items:center;\x20gap:6px;\x20padding:5px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x20color:var(--okdb-accent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x206%,\x20transparent);\x20font-size:12px;\x22>{{\x20mat_sourceType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.45;\x22>Locked\x20to\x20the\x20current\x20DB\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Source\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22mat_sourceType\x22\x20@change=\x22mat_sourceType\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20a\x20type\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22types\x22\x20let:item=\x22t\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22t\x22>{{\x20t\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Target\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22text\x22\x20placeholder=\x22e.g.\x20order_summaries\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22mat_targetType\x22\x20@input=\x22mat_targetType\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20materializer\x20watches\x20the\x20source\x20type\x20and\x20applies\x20returned\x20ops\x20to\x20the\x20target\x20type,\x20making\x20rebuilds\x20deterministic.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27queue-worker\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Job\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22queueJobTypes.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-handler-toggle\x22\x20style=\x22max-width:300px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22qw_jobTypeMode\x20===\x20\x27existing\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22setJobTypeMode(\x27existing\x27)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Known\x20type</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22qw_jobTypeMode\x20===\x20\x27custom\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22setJobTypeMode(\x27custom\x27)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Custom</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22qw_jobTypeMode\x20===\x20\x27existing\x27\x20&&\x20queueJobTypes.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22qw_jobType\x22\x20@change=\x22qw_jobType\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20job\x20type\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22queueJobTypes\x22\x20let:item=\x22jt\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22jt\x22>{{\x20jt\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22qw_jobTypeMode\x20===\x20\x27custom\x27\x20||\x20queueJobTypes.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22text\x22\x20placeholder=\x22e.g.\x20email.send\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22qw_jobType\x22\x20@input=\x22qw_jobType\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22\x20style=\x22grid-column:\x201\x20/\x20-1;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Jobs\x20enqueued\x20with\x20this\x20type\x20will\x20be\x20routed\x20to\x20this\x20worker.\x20You\x20can\x20enqueue\x20jobs\x20from\x20functions,\x20the\x20API,\x20or\x20other\x20pipelines.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Handler\x20function\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>Handler\x20function</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.5;\x20line-height:1.6;\x20margin-bottom:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20function\x20that\x20runs\x20for\x20each\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20engineKind\x20===\x20\x27queue-worker\x27\x20?\x20\x27job\x27\x20:\x20\x27batch\x20of\x20changes\x27\x20}}.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Pick\x20an\x20existing\x20function\x20or\x20write\x20one\x20now.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-handler-toggle\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22handlerMode\x20===\x20\x27existing\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22handlerMode\x20=\x20\x27existing\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Use\x20existing\x20function</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22handlerMode\x20===\x20\x27new\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22handlerMode\x20=\x20\x27new\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Write\x20new\x20function</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Existing\x20function\x20picker\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22handlerMode\x20===\x20\x27existing\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Function</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22handlerName\x22\x20@change=\x22handlerName\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20function\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22functions\x22\x20let:item=\x22fn\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22fn\x22>{{\x20fn\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22functions.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22\x20style=\x22grid-column:\x201\x20/\x20-1;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20No\x20functions\x20found\x20in\x20<b>{{\x20selectedEnv\x20}}</b>.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Switch\x20to\x20\x22Write\x20new\x20function\x22\x20to\x20create\x20one\x20inline.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20New\x20function\x20inline\x20authoring\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22handlerMode\x20===\x20\x27new\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Function\x20name</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22text\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20placeholder=\x22e.g.\x20processArticle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22newFnName\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22newFnName\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20letter-spacing:.06em;\x20opacity:.45;\x20margin-top:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Implementation\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-editor-wrap\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-js-input\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22height:100%;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22newFnSource\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@edit=\x22updateSource($event.detail)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20></ok-js-input>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Validation\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22newFnValidation.ok\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-success);\x22>✓\x20Valid\x20function\x20source</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!newFnValidation.ok\x20&&\x20newFnSource\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-danger);\x22>{{\x20newFnValidation.message\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Dry\x20run\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--small\x20pw-btn--ghost\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:disabled=\x22!newFnValidation.ok\x20||\x20newFnDryRunning\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22dryRunFunction()\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20newFnDryRunning\x20?\x20\x27Running…\x27\x20:\x20\x27▶\x20Test\x20with\x20sample\x20data\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.4;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20engineKind\x20===\x20\x27queue-worker\x27\x20&&\x20effectiveJobType\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27Uses\x20a\x20real\x20job\x20payload\x20from\x20the\x20queue\x20if\x20available.\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:\x20\x27Runs\x20the\x20function\x20draft\x20against\x20synthetic\x20test\x20data\x20without\x20saving\x20it.\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-warn\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20⚠\x20<strong>Test\x20with\x20sample\x20data</strong>\x20runs\x20your\x20function\x20for\x20real\x20—\x20the\x20function\x20itself\x20is\x20not\x20saved,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20but\x20any\x20side-effects\x20(e.g.&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>','require','newFnName','snapshot','effectiveJobType','newFnDryResult','import','/job/','mat_sourceType','application/json','functions','handlerMode','process','includes','Example\x20record','remove','\x20(×','key','proc_batchSize','test-1','12sEqiQU','busy','35398YJauhJ','Pipeline\x20handler\x20preview','812799fVlZhl','errors','1056WzDohq','async','selectedEnv','var(--okdb-warning)','level','mat_originMode','API','$el','lockedType'];_0x3e8b=function(){return _0x394d4a;};return _0x3e8b();}
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();}