@kedem/okdb 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +1 -1
  2. package/bin/okdb.js +1 -1
  3. package/okdb-data/default/data.mdb +0 -0
  4. package/okdb-data/default/lock.mdb +0 -0
  5. package/okdb-data/~log/data.mdb +0 -0
  6. package/okdb-data/~log/lock.mdb +0 -0
  7. package/okdb-data/~system/data.mdb +0 -0
  8. package/okdb-data/~system/lock.mdb +0 -0
  9. package/okdb.js +1 -1
  10. package/package.json +1 -1
  11. package/public/admin-app.js +1 -1
  12. package/public/components/admin-route-host.ok.js +1 -1
  13. package/public/components/env-picker.ok.js +1 -1
  14. package/public/components/field-path-input.ok.js +1 -1
  15. package/public/components/geo-map.ok.js +1 -1
  16. package/public/components/ok-cron-input.ok.js +1 -1
  17. package/public/components/ok-dropzone.ok.js +1 -1
  18. package/public/components/ok-js-input.ok.js +1 -1
  19. package/public/components/ok-json-input.ok.js +1 -1
  20. package/public/components/ok-text-monaco-input.ok.js +1 -1
  21. package/public/components/theme-toggle.ok.js +1 -1
  22. package/public/login-app.js +1 -1
  23. package/public/modules/ok.js +1 -1
  24. package/public/sections/api/parts/api-endpoint.ok.js +1 -1
  25. package/public/sections/auth/modals/create-token-modal.ok.js +1 -1
  26. package/public/sections/auth/modals/edit-token-modal.ok.js +1 -1
  27. package/public/sections/auth/modals/perm-info-popover.ok.js +1 -1
  28. package/public/sections/auth/parts/token-detail.ok.js +1 -1
  29. package/public/sections/auth/parts/token-list.ok.js +1 -1
  30. package/public/sections/db/modals/add-item-modal.ok.js +1 -1
  31. package/public/sections/db/modals/create-env-modal.ok.js +1 -1
  32. package/public/sections/db/modals/create-fts-modal.ok.js +1 -1
  33. package/public/sections/db/modals/create-index-modal.ok.js +1 -1
  34. package/public/sections/db/modals/create-pipeline-modal.ok.js +1 -1
  35. package/public/sections/db/modals/demo-env-modal.ok.js +1 -1
  36. package/public/sections/db/modals/remove-env-modal.ok.js +1 -1
  37. package/public/sections/db/modals/schema-edit-modal.ok.js +1 -1
  38. package/public/sections/db/parts/db-overview.ok.js +1 -1
  39. package/public/sections/db/parts/db-pipelines-panel.ok.js +1 -1
  40. package/public/sections/db/parts/edit-row.ok.js +1 -1
  41. package/public/sections/db/parts/tm-timeline.ok.js +1 -1
  42. package/public/sections/db/parts/type-changelog.ok.js +1 -1
  43. package/public/sections/db/parts/type-list.ok.js +1 -1
  44. package/public/sections/db/parts/type-pipelines-tab.ok.js +1 -1
  45. package/public/sections/db/parts/type-schema-tab.ok.js +1 -1
  46. package/public/sections/db/parts/type-viewer.ok.js +1 -1
  47. package/public/sections/db/parts/type-violations-tab.ok.js +1 -1
  48. package/public/sections/embeddings/modals/register-model-modal.ok.js +1 -1
  49. package/public/sections/embeddings/parts/embed-create-panel.ok.js +1 -1
  50. package/public/sections/embeddings/parts/embed-embedder-panel.ok.js +1 -1
  51. package/public/sections/embeddings/parts/embed-engine-declaration-editor.ok.js +1 -1
  52. package/public/sections/embeddings/parts/embed-engine-list.ok.js +1 -1
  53. package/public/sections/embeddings/parts/embed-indexer-panel.ok.js +1 -1
  54. package/public/sections/embeddings/parts/embed-lifecycle-bar.ok.js +1 -1
  55. package/public/sections/embeddings/parts/embed-model-catalog.ok.js +1 -1
  56. package/public/sections/embeddings/parts/embed-overview.ok.js +1 -1
  57. package/public/sections/embeddings/parts/embed-search-panel.ok.js +1 -1
  58. package/public/sections/embeddings/parts/embed-worker-panel.ok.js +1 -1
  59. package/public/sections/embeddings/parts/embeddings-engine-panel.ok.js +1 -1
  60. package/public/sections/embeddings/parts/engines-overview.ok.js +1 -1
  61. package/public/sections/embeddings/parts/pipeline-create-panel.ok.js +1 -1
  62. package/public/sections/engines/engine-panel-shared-style.js +1 -1
  63. package/public/sections/engines/engine-ui-utils.js +1 -1
  64. package/public/sections/engines/modals/engine-modal.ok.js +1 -1
  65. package/public/sections/engines/parts/engine-declaration-editor.ok.js +1 -1
  66. package/public/sections/engines/parts/engine-lifecycle-actions.ok.js +1 -1
  67. package/public/sections/engines/parts/engine-panel-shell.ok.js +1 -1
  68. package/public/sections/engines/parts/engine-resource-card.ok.js +1 -1
  69. package/public/sections/engines/parts/engine-row-item.ok.js +1 -1
  70. package/public/sections/engines/parts/generic-engine-panel.ok.js +1 -1
  71. package/public/sections/files/parts/files-blob-status.ok.js +1 -1
  72. package/public/sections/files/parts/files-collection-list.ok.js +1 -1
  73. package/public/sections/files/parts/files-collection-panel.ok.js +1 -1
  74. package/public/sections/files/parts/files-file-list.ok.js +1 -1
  75. package/public/sections/files/parts/files-overview.ok.js +1 -1
  76. package/public/sections/files/parts/files-path-browser.ok.js +1 -1
  77. package/public/sections/files/parts/files-upload-panel.ok.js +1 -1
  78. package/public/sections/functions/modals/function-modal.ok.js +1 -1
  79. package/public/sections/functions/parts/function-detail.ok.js +1 -1
  80. package/public/sections/functions/parts/function-logs.ok.js +1 -1
  81. package/public/sections/functions/parts/function-runner.ok.js +1 -1
  82. package/public/sections/functions/parts/functions-list.ok.js +1 -1
  83. package/public/sections/license/parts/license-panel.ok.js +1 -1
  84. package/public/sections/queue/modals/create-bucket-modal.ok.js +1 -1
  85. package/public/sections/queue/modals/edit-bucket-modal.ok.js +1 -1
  86. package/public/sections/queue/modals/edit-job-modal.ok.js +1 -1
  87. package/public/sections/queue/modals/enqueue-job-modal.ok.js +1 -1
  88. package/public/sections/queue/modals/job-type-modal.ok.js +1 -1
  89. package/public/sections/queue/parts/ok-job-form.ok.js +1 -1
  90. package/public/sections/queue/parts/queue-buckets.ok.js +1 -1
  91. package/public/sections/queue/parts/queue-job-types.ok.js +1 -1
  92. package/public/sections/queue/parts/queue-jobs.ok.js +1 -1
  93. package/public/sections/queue/parts/queue-types.ok.js +1 -1
  94. package/public/sections/queue/parts/queue-workers.ok.js +1 -1
  95. package/public/sections/sync/parts/sync-node-detail.ok.js +1 -1
  96. package/public/sections/sync/parts/sync-retention.ok.js +1 -1
  97. package/public/sections/sync/parts/sync-topology.ok.js +1 -1
  98. package/public/sections/system/modals/data-ops-modal.ok.js +1 -1
  99. package/public/sections/system/parts/system-api-panel.ok.js +1 -1
  100. package/public/sections/system/parts/system-auth-panel.ok.js +1 -1
  101. package/public/sections/system/parts/system-log-history.ok.js +1 -1
  102. package/public/sections/system/parts/system-log.ok.js +1 -1
  103. package/public/sections/system/parts/system-status.ok.js +1 -1
  104. package/public/sections/system/parts/system-sync-panel.ok.js +1 -1
  105. package/public/sections/views/modals/create-view-modal.ok.js +1 -1
  106. package/public/sections/views/parts/view-detail.ok.js +1 -1
  107. package/public/sections/views/parts/views-list.ok.js +1 -1
  108. package/public/sections/views/parts/views-overview.ok.js +1 -1
  109. package/public/setup-app.js +1 -1
  110. package/public/stores/auth-store.js +1 -1
  111. package/public/stores/events-store.js +1 -1
  112. package/public/stores/functions-store.js +1 -1
  113. package/public/stores/okdb-store.js +1 -1
  114. package/public/stores/theme-store.js +1 -1
  115. package/public/util/permissions.js +1 -1
  116. package/public/util/sift-schema.js +1 -1
  117. package/public/view-models/type-query-vm.js +1 -1
@@ -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 _0xb207bd=_0x5c03;(function(_0x6bf525,_0x59a625){const _0x26a55b=_0x5c03,_0x447d0b=_0x6bf525();while(!![]){try{const _0x49bae5=-parseInt(_0x26a55b(0x222))/0x1+parseInt(_0x26a55b(0x1e2))/0x2+-parseInt(_0x26a55b(0x19d))/0x3+parseInt(_0x26a55b(0x1ea))/0x4*(parseInt(_0x26a55b(0x206))/0x5)+parseInt(_0x26a55b(0x217))/0x6*(parseInt(_0x26a55b(0x1a7))/0x7)+-parseInt(_0x26a55b(0x1be))/0x8*(parseInt(_0x26a55b(0x243))/0x9)+parseInt(_0x26a55b(0x19c))/0xa*(parseInt(_0x26a55b(0x1f8))/0xb);if(_0x49bae5===_0x59a625)break;else _0x447d0b['push'](_0x447d0b['shift']());}catch(_0x3db7ce){_0x447d0b['push'](_0x447d0b['shift']());}}}(_0x41a1,0xd25e3));function _0x5c03(_0x1e2289,_0x15fef5){_0x1e2289=_0x1e2289-0x199;const _0x41a14e=_0x41a1();let _0x5c03d8=_0x41a14e[_0x1e2289];return _0x5c03d8;}import _0x11aa59 from'../../../components/ok-js-input.ok.js';import _0x36769c from'./embed-create-panel.ok.js';const t=[{'symbol':'require','pattern':/(^|[^\w$.])require\s*\(/},{'symbol':_0xb207bd(0x231),'pattern':/(^|[^\w$.])import\b/},{'symbol':_0xb207bd(0x1ef),'pattern':/(^|[^\w$.])console\b/},{'symbol':_0xb207bd(0x21e),'pattern':/(^|[^\w$.])module\b/},{'symbol':_0xb207bd(0x1dd),'pattern':/(^|[^\w$.])exports\b/},{'symbol':_0xb207bd(0x1c2),'pattern':/(^|[^\w$.])process\b/},{'symbol':_0xb207bd(0x1c9),'pattern':/child_process/},{'symbol':_0xb207bd(0x1b4),'pattern':/worker_threads/}];function i(_0xf4cb17){const _0x201e7e=_0xb207bd,_0x2e4ba4='string'==typeof _0xf4cb17?_0xf4cb17[_0x201e7e(0x19e)](/\r\n/g,'\x0a')[_0x201e7e(0x1fe)]():'';if(!_0x2e4ba4)return{'ok':!0x1,'message':'Source\x20is\x20required'};if(new TextEncoder()[_0x201e7e(0x20b)](_0x2e4ba4)[_0x201e7e(0x1f6)]>0x10000)return{'ok':!0x1,'message':_0x201e7e(0x1d9)};if(!/^(async\s+)?\(\s*[A-Za-z_$][\w$]*\s*\)\s*=>/['test'](_0x2e4ba4))return{'ok':!0x1,'message':_0x201e7e(0x234)};for(const {symbol:_0x5506ad,pattern:_0x1227f9}of t)if(_0x1227f9[_0x201e7e(0x20d)](_0x2e4ba4))return{'ok':!0x1,'message':_0x201e7e(0x1a0)+_0x5506ad+'\x22'};try{new Function('return\x20('+_0x2e4ba4+');')();}catch(_0x22a71a){return{'ok':!0x1,'message':_0x22a71a?.[_0x201e7e(0x1cd)]||_0x201e7e(0x22e)};}return{'ok':!0x0,'normalizedSource':_0x2e4ba4};}function a(_0x3ae241){const _0x7ed06f=_0xb207bd;return!0x0===_0x3ae241||''===_0x3ae241||0x1===_0x3ae241||'1'===_0x3ae241||_0x7ed06f(0x210)===_0x3ae241;}export default{'tag':'pipeline-create-panel','attr':{'locktype':{},'lockenv':{},'initialkind':{},'locktypestrict':{},'hidequeueworker':{}},'dependencies':[_0x11aa59,_0x36769c],'context':_0x361fe7=>({'step':0x1,'busy':!0x1,'error':null,'success':null,'engineKind':'','proc_sourceType':'','mat_sourceType':'','mat_targetType':'','qw_jobType':'','qw_jobTypeMode':'existing','handlerMode':_0xb207bd(0x219),'handlerName':'','newFnName':'','newFnSource':'','newFnValidation':{'ok':!0x1,'message':_0xb207bd(0x1e9)},'newFnDryRunning':!0x1,'newFnDryResult':null,'newFnDryError':null,'newFnDryPayload':null,'showAdvanced':!0x1,'proc_mode':'async','proc_bootstrap':'snapshot','proc_batchSize':0x100,'proc_originMode':_0xb207bd(0x245),'mat_bootstrap':_0xb207bd(0x21f),'mat_batchSize':0x80,'mat_originMode':'all','mat_clearTargetOnRebuild':!0x0,'qw_concurrency':0x1,'handler_recordRuns':'errors','types':[],'functions':[],'queueJobTypes':[],get 'lockedType'(){const _0x22952b=_0xb207bd;return _0x361fe7[_0x22952b(0x1d0)][_0x22952b(0x235)]||'';},get 'lockedEnv'(){const _0x461644=_0xb207bd;return _0x361fe7['$attr'][_0x461644(0x203)]||'';},get 'initialKind'(){const _0x302a98=_0xb207bd,_0x4e8f5b=_0x361fe7[_0x302a98(0x1d0)]['initialkind']||'';return this['availableKinds'][_0x302a98(0x199)](_0x4e8f5b)?_0x4e8f5b:'';},get 'lockTypeStrict'(){const _0x1cb7ca=_0xb207bd;return a(_0x361fe7[_0x1cb7ca(0x1d0)][_0x1cb7ca(0x23b)]);},get 'hideQueueWorker'(){return a(_0x361fe7['$attr']['hidequeueworker']);},get 'availableKinds'(){const _0x5b4d53=_0xb207bd;return[_0x5b4d53(0x1e7),_0x5b4d53(0x23a),_0x5b4d53(0x1b1),_0x5b4d53(0x22b)]['filter'](_0x42af77=>!(this[_0x5b4d53(0x20e)]&&_0x5b4d53(0x1b1)===_0x42af77));},get 'typeSelectionLocked'(){return!!this['lockedType']&&this['lockTypeStrict'];},get 'kindLocked'(){const _0x19c476=_0xb207bd;return!!this[_0x19c476(0x1c3)];},get 'selectedEnv'(){const _0x26f495=_0xb207bd;return this[_0x26f495(0x202)]||_0x361fe7[_0x26f495(0x1f5)][_0x26f495(0x1b9)][_0x26f495(0x1d2)][_0x26f495(0x1db)]||'default';},async 'loadMeta'(){const _0x36a5a4=_0xb207bd,_0x1f6fc4=this[_0x36a5a4(0x1db)];try{const [_0x2033cd,_0x3161a1,_0x140a9e]=await Promise[_0x36a5a4(0x245)]([fetch(__ENV__['API']+'/env/'+encodeURIComponent(_0x1f6fc4)+_0x36a5a4(0x1ee)),fetch(__ENV__[_0x36a5a4(0x233)]+_0x36a5a4(0x22f)+encodeURIComponent(_0x1f6fc4)+_0x36a5a4(0x1ae)),fetch(__ENV__['API']+_0x36a5a4(0x22f)+encodeURIComponent(_0x1f6fc4)+_0x36a5a4(0x1cc))[_0x36a5a4(0x1fa)](()=>null)]),_0x1b0f5b=await _0x2033cd[_0x36a5a4(0x220)]()[_0x36a5a4(0x1fa)](()=>({})),_0x2226d3=await _0x3161a1[_0x36a5a4(0x220)]()[_0x36a5a4(0x1fa)](()=>({})),_0x166b58=_0x1b0f5b[_0x36a5a4(0x1e4)]??_0x1b0f5b['result']??[];this[_0x36a5a4(0x1ac)]=(Array[_0x36a5a4(0x19b)](_0x166b58)?_0x166b58[_0x36a5a4(0x1b3)](_0x14efe8=>_0x14efe8[_0x36a5a4(0x1c4)]??_0x14efe8[_0x36a5a4(0x230)]??_0x14efe8):Object['keys'](_0x166b58))[_0x36a5a4(0x211)](_0x3dc0fc=>_0x36a5a4(0x237)==typeof _0x3dc0fc&&!_0x3dc0fc[_0x36a5a4(0x1b7)]('~'))[_0x36a5a4(0x22a)]();const _0x43c21e=_0x2226d3[_0x36a5a4(0x1e4)]??_0x2226d3['result']??[];if(this['functions']=Array['isArray'](_0x43c21e)?_0x43c21e[_0x36a5a4(0x1b3)](_0x4810e9=>_0x4810e9[_0x36a5a4(0x1b8)]??_0x4810e9[_0x36a5a4(0x230)]??_0x4810e9)[_0x36a5a4(0x211)](Boolean)[_0x36a5a4(0x22a)]():[],_0x140a9e&&_0x140a9e['ok']){const _0x2322f2=await _0x140a9e['json']()[_0x36a5a4(0x1fa)](()=>({})),_0x25898c=_0x2322f2?.[_0x36a5a4(0x22d)]??_0x2322f2?.['data']??null,_0x46b099=_0x25898c?.[_0x36a5a4(0x21d)]??{};this[_0x36a5a4(0x1e8)]=Object['keys'](_0x46b099)[_0x36a5a4(0x22a)]();}else this[_0x36a5a4(0x1e8)]=[];}catch{this[_0x36a5a4(0x1ac)]=[],this[_0x36a5a4(0x225)]=[],this[_0x36a5a4(0x1e8)]=[];}},get 'effectiveJobType'(){const _0x11a6bb=_0xb207bd;return _0x11a6bb(0x1f9)===this[_0x11a6bb(0x1b2)]?this['qw_jobType']['trim']():this['qw_jobType'];},get 'effectiveHandlerName'(){const _0x9889c9=_0xb207bd;return _0x9889c9(0x1af)===this['handlerMode']?this[_0x9889c9(0x1f0)][_0x9889c9(0x1fe)]():this['handlerName'];},get 'autoName'(){const _0x303314=_0xb207bd;return _0x303314(0x1e7)===this[_0x303314(0x1fd)]&&this[_0x303314(0x1ec)]&&this[_0x303314(0x1c7)]?this[_0x303314(0x1ec)]+'-'+this[_0x303314(0x1c7)]:_0x303314(0x23a)===this['engineKind']&&this[_0x303314(0x1d4)]&&this[_0x303314(0x240)]&&this['effectiveHandlerName']?this[_0x303314(0x1d4)]+_0x303314(0x1e5)+this[_0x303314(0x240)]+'-'+this[_0x303314(0x1c7)]:_0x303314(0x1b1)===this[_0x303314(0x1fd)]&&this[_0x303314(0x246)]&&this['effectiveHandlerName']?this['effectiveJobType']+'-'+this[_0x303314(0x1c7)]:'';},get 'pipelineName'(){const _0x3e5c3c=_0xb207bd;return this[_0x3e5c3c(0x1c1)];},get 'engineName'(){const _0x226ed2=_0xb207bd;return this[_0x226ed2(0x1c1)]?this[_0x226ed2(0x1c1)]+':'+this[_0x226ed2(0x1fd)]:'';},get 'step2Valid'(){const _0x4eae23=_0xb207bd;return _0x4eae23(0x22b)===this[_0x4eae23(0x1fd)]||!(_0x4eae23(0x1e7)===this[_0x4eae23(0x1fd)]&&!this['proc_sourceType'])&&!!('materializer'!==this[_0x4eae23(0x1fd)]||this['mat_sourceType']&&this['mat_targetType'])&&!(_0x4eae23(0x1b1)===this[_0x4eae23(0x1fd)]&&!this['effectiveJobType'])&&('existing'===this[_0x4eae23(0x1df)]?!!this[_0x4eae23(0x1b5)]:!!this[_0x4eae23(0x1f0)][_0x4eae23(0x1fe)]()&&this['newFnValidation']['ok']);},'resetWizard'(){const _0x3de863=_0xb207bd;this[_0x3de863(0x1ff)]=this[_0x3de863(0x1aa)]?0x2:0x1,this[_0x3de863(0x1fd)]=this[_0x3de863(0x1aa)]?this[_0x3de863(0x1c3)]:'',this[_0x3de863(0x1ec)]=this['lockedType']||'',this[_0x3de863(0x1d4)]=this[_0x3de863(0x1da)]||'',this[_0x3de863(0x240)]='',this[_0x3de863(0x1d8)]='',this[_0x3de863(0x1b2)]=_0x3de863(0x219),this[_0x3de863(0x1df)]=_0x3de863(0x219),this['handlerName']='',this[_0x3de863(0x1f0)]='',this[_0x3de863(0x23f)]='',this['newFnValidation']={'ok':!0x1,'message':_0x3de863(0x1e9)},this['newFnDryResult']=null,this[_0x3de863(0x1a1)]=null,this[_0x3de863(0x238)]=!0x1,this[_0x3de863(0x1eb)]=_0x3de863(0x1a4),this[_0x3de863(0x1c5)]=_0x3de863(0x1d7),this[_0x3de863(0x1ba)]=_0x3de863(0x21f),this[_0x3de863(0x20c)]=0x100,this[_0x3de863(0x201)]=_0x3de863(0x245),this[_0x3de863(0x212)]=_0x3de863(0x21f),this[_0x3de863(0x228)]=0x80,this[_0x3de863(0x1bd)]=_0x3de863(0x245),this['mat_clearTargetOnRebuild']=!0x0,this['qw_concurrency']=0x1;},'applyScopeDefaults'(){const _0x16b5f7=_0xb207bd;this[_0x16b5f7(0x20a)]?(this[_0x16b5f7(0x1ec)]=this['lockedType'],this['mat_sourceType']=this[_0x16b5f7(0x1da)]):this[_0x16b5f7(0x1da)]&&!this[_0x16b5f7(0x1ec)]&&(this['proc_sourceType']=this[_0x16b5f7(0x1da)]),this[_0x16b5f7(0x20a)]||!this[_0x16b5f7(0x1da)]||this[_0x16b5f7(0x1d4)]||(this[_0x16b5f7(0x1d4)]=this[_0x16b5f7(0x1da)]),this[_0x16b5f7(0x1aa)]&&this[_0x16b5f7(0x1fd)]!==this[_0x16b5f7(0x1c3)]&&this['pickType'](this[_0x16b5f7(0x1c3)]);},get 'dedupedDryLogs'(){const _0x4dded6=_0xb207bd,_0x3cfc61=this[_0x4dded6(0x1a2)]?.[_0x4dded6(0x213)];if(!Array['isArray'](_0x3cfc61)||!_0x3cfc61[_0x4dded6(0x1f6)])return[];const _0x1ca871=[],_0x5316e9=new Map();for(const _0x5c6958 of _0x3cfc61){const _0x52d217=(_0x5c6958[_0x4dded6(0x1d3)]??'')+'::'+(_0x5c6958[_0x4dded6(0x207)]??_0x5c6958[_0x4dded6(0x1cd)]??JSON['stringify'](_0x5c6958));if(_0x5316e9[_0x4dded6(0x23e)](_0x52d217))_0x5316e9['get'](_0x52d217)[_0x4dded6(0x223)]++;else{const _0xf1bb77={..._0x5c6958,'count':0x1,'_key':_0x52d217};_0x5316e9[_0x4dded6(0x239)](_0x52d217,_0xf1bb77),_0x1ca871['push'](_0xf1bb77);}}return _0x1ca871;},get 'dryRunDuration'(){const _0x567ca1=_0xb207bd,_0x952279=this[_0x567ca1(0x1a2)];return _0x952279?_0x952279[_0x567ca1(0x1c0)]?.[_0x567ca1(0x1c8)]??null:null;},get 'dryRunStatus'(){const _0x5ebeb0=_0xb207bd,_0x39ef34=this[_0x5ebeb0(0x1a2)];return _0x39ef34?_0x5ebeb0(0x19f)===_0x39ef34['status']||_0x39ef34[_0x5ebeb0(0x19f)]?'error':_0x39ef34[_0x5ebeb0(0x1e6)]||_0x5ebeb0(0x1f2):null;},'pickType'(_0x43ff52){const _0x1938d7=_0xb207bd;this[_0x1938d7(0x1ad)][_0x1938d7(0x199)](_0x43ff52)&&(this[_0x1938d7(0x1fd)]=_0x43ff52,this['step']=0x2,this[_0x1938d7(0x20a)]&&(this[_0x1938d7(0x1ec)]=this[_0x1938d7(0x1da)],this[_0x1938d7(0x1d4)]=this['lockedType']),_0x1938d7(0x22b)!==_0x43ff52&&(this[_0x1938d7(0x23f)]||(this[_0x1938d7(0x23f)]='processor'===_0x43ff52?_0x1938d7(0x23d):_0x1938d7(0x23a)===_0x43ff52?'async\x20(ctx)\x20=>\x20{\x0a\x20\x20//\x20ctx.payload\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20array\x20of\x20change\x20records\x0a\x20\x20//\x20\x20\x20change.action\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20\x22put\x22\x20|\x20\x22remove\x22\x0a\x20\x20//\x20\x20\x20change.key\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20source\x20record\x20key\x0a\x20\x20//\x20\x20\x20change.value\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20hydrated\x20source\x20value\x20for\x20puts\x0a\x20\x20//\x20\x20\x20change.clock\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20log\x20clock\x20during\x20live\x20replay;\x20null\x20during\x20snapshot\x20bootstrap\x0a\x20\x20//\x20ctx.materializer\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20materializer\x20trigger\x20metadata\x0a\x20\x20//\x20\x20\x20ctx.materializer.sourceType\x20\x20—\x20the\x20type\x20being\x20watched\x0a\x20\x20//\x20\x20\x20ctx.materializer.targetType\x20\x20—\x20the\x20derived\x20target\x20type\x0a\x20\x20//\x20\x20\x20ctx.materializer.sourceEnv\x20\x20\x20—\x20the\x20environment\x20of\x20the\x20source\x20type\x0a\x20\x20//\x20\x20\x20ctx.materializer.targetEnv\x20\x20\x20—\x20the\x20environment\x20of\x20the\x20target\x20type\x0a\x20\x20//\x20ctx.env\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20env\x20facade\x20(read-only\x20for\x20deterministic\x20materializers)\x0a\x20\x20//\x20ctx.log\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20structured\x20logger:\x20ctx.log.info(msg,\x20data)\x0a\x20\x20//\x0a\x20\x20//\x20Return\x20ops\x20for\x20the\x20engine\x20to\x20apply\x20to\x20the\x20target\x20type.\x0a\x20\x20const\x20ops\x20=\x20[];\x0a\x0a\x20\x20for\x20(const\x20change\x20of\x20ctx.payload)\x20{\x0a\x20\x20\x20\x20if\x20(change.action\x20===\x20\x27put\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20const\x20doc\x20=\x20change.value\x20??\x20change.newValue;\x0a\x20\x20\x20\x20\x20\x20if\x20(!doc)\x20continue;\x0a\x0a\x20\x20\x20\x20\x20\x20ops.push({\x0a\x20\x20\x20\x20\x20\x20\x20\x20action:\x20\x27put\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20key:\x20change.key,\x0a\x20\x20\x20\x20\x20\x20\x20\x20value:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20projected:\x20true,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sourceKey:\x20change.key,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20...doc,\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20if\x20(change.action\x20===\x20\x27remove\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20ops.push({\x20action:\x20\x27remove\x27,\x20key:\x20change.key\x20});\x0a\x20\x20\x20\x20}\x0a\x20\x20}\x0a\x0a\x20\x20return\x20ops;\x0a}':_0x1938d7(0x1f7),this[_0x1938d7(0x1de)]=i(this[_0x1938d7(0x23f)]))));},'goBack'(){const _0x39eb94=_0xb207bd;_0x39eb94(0x22b)!==this[_0x39eb94(0x1fd)]?this[_0x39eb94(0x1ff)]>0x1&&this['step']--:this[_0x39eb94(0x216)]();},'goNext'(){const _0x17e2a6=_0xb207bd;0x2===this[_0x17e2a6(0x1ff)]&&this[_0x17e2a6(0x244)]&&(this['step']=0x3);},'onEmbeddingCreated'(_0x590961){const _0xee47b8=_0xb207bd;this[_0xee47b8(0x1f2)]=_0xee47b8(0x209),this[_0xee47b8(0x19f)]=null,this['resetWizard'](),_0x361fe7[_0xee47b8(0x1d6)][_0xee47b8(0x226)](new CustomEvent(_0xee47b8(0x1cb),{'detail':_0x590961,'bubbles':!0x0}));},'updateSource'(_0x7d2ab3){const _0x2509f2=_0xb207bd;this['newFnSource']=_0x7d2ab3??'',this[_0x2509f2(0x1de)]=i(this[_0x2509f2(0x23f)]);},async 'buildDryRunPayload'(){const _0x57493b=_0xb207bd;if(_0x57493b(0x1e7)===this[_0x57493b(0x1fd)])return[{'key':_0x57493b(0x1bf),'value':{'sample':!0x0,'name':_0x57493b(0x200)},'action':_0x57493b(0x1a9),'clock':0x1}];if('materializer'===this[_0x57493b(0x1fd)])return[{'key':_0x57493b(0x1bf),'value':{'sample':!0x0,'name':_0x57493b(0x200)},'action':'put','clock':null},{'key':'test-2','action':_0x57493b(0x229),'clock':0x2}];const _0x5d22fd=this['effectiveJobType'];if(_0x5d22fd)try{const _0x473bdc=this[_0x57493b(0x1db)],_0x29fd22=__ENV__[_0x57493b(0x233)]+'/env/'+encodeURIComponent(_0x473bdc)+_0x57493b(0x1b6),_0x559da6=await fetch(_0x29fd22+_0x57493b(0x1a5)+new URLSearchParams({'type':_0x5d22fd,'limit':'1'}));if(_0x559da6['ok']){const _0x28f346=await _0x559da6[_0x57493b(0x220)](),_0x29598b=_0x28f346?.[_0x57493b(0x22d)]?.[_0x57493b(0x224)]??_0x28f346?.[_0x57493b(0x1e4)]?.[_0x57493b(0x224)]??[],_0x1d16b5=_0x29598b[0x0]?.[_0x57493b(0x1b8)]??_0x29598b[0x0]?.['id']??_0x29598b[0x0]?.['value']?.['id'];if(_0x1d16b5){const _0x2b611e=await fetch(_0x29fd22+_0x57493b(0x1a8)+encodeURIComponent(_0x1d16b5));if(_0x2b611e['ok']){const _0x2ef80e=await _0x2b611e[_0x57493b(0x220)](),_0x16b7fa=_0x2ef80e?.['result']??_0x2ef80e?.[_0x57493b(0x1e4)];if(void 0x0!==_0x16b7fa?.['payload'])return _0x16b7fa[_0x57493b(0x1ed)];}}}}catch{}return{};},async 'dryRunFunction'(){const _0x36903e=_0xb207bd;if(this[_0x36903e(0x1de)]['ok']&&!this[_0x36903e(0x1e0)]){this[_0x36903e(0x1e0)]=!0x0,this['newFnDryResult']=null,this[_0x36903e(0x1a1)]=null,this[_0x36903e(0x1ca)]=null;try{const _0x3d319a=this[_0x36903e(0x1db)],_0x4fcb68=await this[_0x36903e(0x1a6)]();this[_0x36903e(0x1ca)]=_0x4fcb68;const _0x1bef44={'name':this['newFnName']['trim']()||_0x36903e(0x1c6),'source':this['newFnValidation'][_0x36903e(0x1f4)]||this[_0x36903e(0x23f)]['trim'](),'metadata':{'description':'Pipeline\x20handler\x20preview'},'enabled':!0x0,'payload':_0x4fcb68};_0x36903e(0x1b1)===this[_0x36903e(0x1fd)]&&(_0x1bef44['jobContext']={'id':_0x36903e(0x1ce),'type':this[_0x36903e(0x246)]||_0x36903e(0x227),'tries':0x1,'created':Date['now'](),'tags':null,'priority':0x0,'bucket':null,'cron':null}),'processor'===this[_0x36903e(0x1fd)]&&(_0x1bef44[_0x36903e(0x21a)]={'mode':_0x36903e(0x1e1),'sourceType':this[_0x36903e(0x1ec)]||_0x36903e(0x214),'sourceEnv':this['selectedEnv'],'processor':_0x36903e(0x1c6),'engineKey':_0x36903e(0x1c6),'cursorKey':null}),'materializer'===this[_0x36903e(0x1fd)]&&(_0x1bef44[_0x36903e(0x242)]={'mode':_0x36903e(0x1e1),'sourceType':this[_0x36903e(0x1d4)]||_0x36903e(0x214),'targetType':this[_0x36903e(0x240)]||_0x36903e(0x1cf),'sourceEnv':this[_0x36903e(0x1db)],'targetEnv':this[_0x36903e(0x1db)],'engineKey':_0x36903e(0x1c6),'cursorKey':null});const _0xbbb60f=await fetch(__ENV__[_0x36903e(0x233)]+_0x36903e(0x22f)+encodeURIComponent(_0x3d319a)+_0x36903e(0x1d1),{'method':_0x36903e(0x1d5),'headers':{'Content-Type':_0x36903e(0x1bb)},'body':JSON[_0x36903e(0x19a)](_0x1bef44)}),_0xb3284d=await _0xbbb60f[_0x36903e(0x220)]()['catch'](()=>({})),_0x4d2b4b=_0xb3284d?.[_0x36903e(0x1e4)]??_0xb3284d?.[_0x36903e(0x22d)]??_0xb3284d;if(!_0xbbb60f['ok']&&!_0x4d2b4b?.[_0x36903e(0x1e6)])throw new Error(_0xb3284d?.[_0x36903e(0x19f)]?.[_0x36903e(0x1cd)]||'Preview\x20failed\x20('+_0xbbb60f['status']+')');this[_0x36903e(0x1a2)]=_0x4d2b4b;}catch(_0x3a7e7f){this[_0x36903e(0x1a1)]=_0x3a7e7f?.['message']||String(_0x3a7e7f);}finally{this[_0x36903e(0x1e0)]=!0x1;}}},'buildEngineConfig'(){const _0x2b8dfa=_0xb207bd,_0x599438={'kind':_0x2b8dfa(0x205),'name':this[_0x2b8dfa(0x1c7)]};return _0x2b8dfa(0x245)!==this[_0x2b8dfa(0x1eb)]&&(_0x599438['recordRuns']=this['handler_recordRuns']),_0x2b8dfa(0x1e7)===this[_0x2b8dfa(0x1fd)]?{'source_type':this[_0x2b8dfa(0x1ec)],'source_env':this[_0x2b8dfa(0x1db)],'handler':_0x599438,'mode':this[_0x2b8dfa(0x1c5)],'bootstrap':_0x2b8dfa(0x1b0)===this[_0x2b8dfa(0x1c5)]?null:this[_0x2b8dfa(0x1ba)],'batchSize':Number(this['proc_batchSize'])||0x100,'originMode':this[_0x2b8dfa(0x201)]}:_0x2b8dfa(0x23a)===this[_0x2b8dfa(0x1fd)]?{'source_type':this['mat_sourceType'],'target_type':this[_0x2b8dfa(0x240)],'source_env':this['selectedEnv'],'target_env':this['selectedEnv'],'handler':_0x599438,'bootstrap':this[_0x2b8dfa(0x212)],'batchSize':Number(this['mat_batchSize'])||0x80,'originMode':this[_0x2b8dfa(0x1bd)],'clearTargetOnRebuild':!0x1!==this[_0x2b8dfa(0x20f)]}:'queue-worker'===this[_0x2b8dfa(0x1fd)]?{'job_type':this[_0x2b8dfa(0x246)],'queue_env':this[_0x2b8dfa(0x1db)],'handler':_0x599438,'concurrency':Number(this['qw_concurrency'])||0x1}:{};},async 'submit'(){const _0x564650=_0xb207bd;if(this['step2Valid']&&!this[_0x564650(0x204)]){this['busy']=!0x0,this[_0x564650(0x19f)]=null,this[_0x564650(0x1f2)]=null;try{const _0x1bb8bf=this[_0x564650(0x1db)];if(_0x564650(0x1af)===this[_0x564650(0x1df)]){const _0x26f687={'name':this[_0x564650(0x1f0)][_0x564650(0x1fe)](),'source':this[_0x564650(0x1de)]['normalizedSource']||this[_0x564650(0x23f)]['trim'](),'metadata':{'description':_0x564650(0x1a3)+this[_0x564650(0x215)],'owner_engine':this['engineName'],'pipeline':this[_0x564650(0x215)]},'enabled':!0x0},_0x555eb2=await fetch(__ENV__['API']+'/env/'+encodeURIComponent(_0x1bb8bf)+'/functions',{'method':_0x564650(0x1d5),'headers':{'Content-Type':_0x564650(0x1bb)},'body':JSON[_0x564650(0x19a)](_0x26f687)}),_0x21b179=await _0x555eb2['json']()[_0x564650(0x1fa)](()=>({}));if(!_0x555eb2['ok'])throw new Error(_0x21b179?.[_0x564650(0x19f)]?.[_0x564650(0x1cd)]||_0x564650(0x236)+_0x555eb2[_0x564650(0x1e6)]+')');}const _0x53f0de={'name':this[_0x564650(0x215)],'meta':{'label':this[_0x564650(0x215)]},'members':[{'engineType':this['engineKind'],'engineName':this[_0x564650(0x1f1)],'role':this[_0x564650(0x1fd)],'engineConfig':this[_0x564650(0x22c)]()}]},_0x382a25=await fetch(__ENV__['API']+'/env/'+encodeURIComponent(_0x1bb8bf)+_0x564650(0x232),{'method':_0x564650(0x1d5),'headers':{'Content-Type':'application/json'},'body':JSON[_0x564650(0x19a)](_0x53f0de)}),_0x31907c=await _0x382a25['json']()['catch'](()=>({}));if(!_0x382a25['ok'])throw new Error(_0x31907c?.['error']?.['message']||_0x564650(0x1fc)+_0x382a25[_0x564650(0x1e6)]+')');this[_0x564650(0x1f2)]='Pipeline\x20\x22'+this[_0x564650(0x215)]+_0x564650(0x1fb),_0x361fe7['$el'][_0x564650(0x226)](new CustomEvent(_0x564650(0x1cb),{'detail':_0x31907c[_0x564650(0x22d)]??_0x31907c[_0x564650(0x1e4)],'bubbles':!0x0})),this[_0x564650(0x216)]();}catch(_0x171fb3){this[_0x564650(0x19f)]=_0x171fb3?.[_0x564650(0x1cd)]||String(_0x171fb3);}finally{this[_0x564650(0x204)]=!0x1;}}},'formatJson'(_0x40b3a2){const _0x11da0e=_0xb207bd;try{return JSON[_0x11da0e(0x19a)](_0x40b3a2,null,0x2);}catch{return String(_0x40b3a2??'');}},'setJobTypeMode'(_0x2da490){const _0x46b685=_0xb207bd;this[_0x46b685(0x1b2)]=_0x2da490,this[_0x46b685(0x1d8)]='';},'logLabel'(_0x5eb6e9){const _0x36271d=_0xb207bd,_0x1552a0=_0x5eb6e9?.['msg']??_0x5eb6e9?.[_0x36271d(0x1cd)]??'';return _0x5eb6e9?.[_0x36271d(0x223)]>0x1?_0x1552a0+_0x36271d(0x208)+_0x5eb6e9[_0x36271d(0x223)]+')':_0x1552a0;},'logColor'(_0x54abef){const _0x1e6abe=_0xb207bd,_0x5208c3=_0x54abef?.['level']??'';return _0x1e6abe(0x19f)===_0x5208c3||_0x1e6abe(0x221)===_0x5208c3?_0x1e6abe(0x1ab):_0x1e6abe(0x1f3)===_0x5208c3?_0x1e6abe(0x1dc):_0x1e6abe(0x241)===_0x5208c3?'var(--okdb-app-fg-muted)':_0x1e6abe(0x218);}}),async 'init'(_0x1acf37){const _0x4374bc=_0xb207bd;await this[_0x4374bc(0x21c)](),this[_0x4374bc(0x1bc)](),_0x1acf37[_0x4374bc(0x21b)](()=>_0x1acf37['$ok'][_0x4374bc(0x1b9)][_0x4374bc(0x1d2)][_0x4374bc(0x1db)],async()=>{const _0x3a743d=_0x4374bc;await this['loadMeta'](),this[_0x3a743d(0x1bc)]();});},'style':_0xb207bd(0x1e3),'template':_0xb207bd(0x23c)};function _0x41a1(){const _0x1f4ec5=['handlerMode','newFnDryRunning','live','1042710QavOib','\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20block;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-wrap\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20820px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-title\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-sub\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20680px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20steps\x20indicator\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-steps\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-bottom:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-dot\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2026px;\x20height:\x2026px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x20align-items:\x20center;\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20700;\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg-muted);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-dot--active\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-dot--done\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-line\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x2060px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-line--done\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x2040%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-left:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.45;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-step-label--active\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20type-choice\x20cards\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-grid\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20repeat(auto-fit,\x20minmax(220px,\x201fr));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2020px\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20border-color\x20.15s,\x20background\x20.15s;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-icon\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2028px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-name\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2015px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-choice-desc\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20card\x20/\x20form\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-section\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-transform:\x20uppercase;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.45;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20letter-spacing:\x20.06em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20130px\x201fr;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20right;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-input\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-sizing:\x20border-box;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-input:focus\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20outline:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-select\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-sizing:\x20border-box;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-hint\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.4;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-style:\x20italic;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-column:\x202;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pills\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pill\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x204px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x20999px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pill:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-pill--on\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20handler\x20toggle\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle-btn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x207px\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.6;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle-btn:first-child\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-right:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-handler-toggle-btn--on\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20code\x20editor\x20area\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-editor-wrap\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20260px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20min-height:\x20260px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20dry-run\x20result\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2012px\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-ok\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-err\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-pre\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20white-space:\x20pre-wrap;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20word-break:\x20break-word;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg-subtle);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-height:\x20160px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20auto;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-meta\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20dry-run\x20logs\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-logs\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-log-entry\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20monospace;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x202px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-dry-log-level\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20inline-block;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20min-width:\x2040px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-transform:\x20uppercase;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-right:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20review\x20summary\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-summary-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-summary-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-summary-val\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20monospace;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20buttons\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-actions\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x209%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn:hover\x20{\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2016%,\x20transparent);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn:disabled\x20{\x20opacity:\x20.4;\x20cursor:\x20default;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--ghost\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20400;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--ghost:hover\x20{\x20opacity:\x201;\x20background:\x20var(--okdb-app-surface);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--green\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x209%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--green:hover\x20{\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x2016%,\x20transparent);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-btn--small\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x205px\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20feedback\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-success\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-success);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x205%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-warn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-warning);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.75;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-warning)\x2020%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-warning)\x204%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20──\x20advanced\x20toggle\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-adv-toggle\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user-select:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20inline-flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20pipeline-create-panel\x20.pw-adv-toggle:hover\x20{\x20opacity:\x20.8;\x20}\x0a\x20\x20\x20\x20','data','-to-','status','processor','queueJobTypes','Source\x20is\x20required','2111308ttgjSO','handler_recordRuns','proc_sourceType','payload','/types','console','newFnName','engineName','success','warn','normalizedSource','$ok','length','async\x20(ctx)\x20=>\x20{\x0a\x20\x20//\x20ctx.payload\x20—\x20the\x20raw\x20job\x20payload\x20(whatever\x20was\x20enqueued)\x0a\x20\x20//\x20ctx.job\x20\x20\x20\x20\x20—\x20queue\x20job\x20context\x20(only\x20for\x20queue-worker\x20pipelines)\x0a\x20\x20//\x20\x20\x20ctx.job.id,\x20ctx.job.type,\x20ctx.job.tries,\x20ctx.job.tags,\x20...\x0a\x20\x20//\x20\x20\x20ctx.job.heartbeat()\x20\x20\x20\x20\x20\x20\x20\x20—\x20keep\x20the\x20job\x20alive\x0a\x20\x20//\x20\x20\x20ctx.job.markProgress(msg)\x20\x20—\x20report\x20progress\x0a\x20\x20//\x20ctx.env\x20\x20\x20\x20\x20—\x20env\x20facade:\x20put,\x20get,\x20query,\x20txn,\x20...\x0a\x20\x20//\x20ctx.log\x20\x20\x20\x20\x20—\x20structured\x20logger:\x20ctx.log.info(msg,\x20data)\x0a\x20\x20//\x0a\x20\x20//\x20Example:\x20handle\x20a\x20queued\x20task\x0a\x20\x20//\x20const\x20{\x20id,\x20action\x20}\x20=\x20ctx.payload;\x0a\x20\x20//\x20ctx.log.info(\x27handling\x20job\x27,\x20{\x20id,\x20action,\x20attempt:\x20ctx.job.tries\x20});\x0a\x20\x20//\x20await\x20ctx.env.put(\x27results\x27,\x20id,\x20{\x20done:\x20true\x20});\x0a\x0a\x20\x20return\x20{\x20ok:\x20true\x20};\x0a}','88xadOqS','custom','catch','\x22\x20created\x20and\x20started','Failed\x20(','engineKind','trim','step','Example\x20record','proc_originMode','lockedEnv','lockenv','busy','function','5SCvObr','msg','\x20(×','Embedding\x20pipeline\x20created','typeSelectionLocked','encode','proc_batchSize','test','hideQueueWorker','mat_clearTargetOnRebuild','true','filter','mat_bootstrap','logs','example','pipelineName','resetWizard','3078pLLorF','var(--okdb-app-fg-subtle)','existing','processorContext','$watch','loadMeta','byType','module','snapshot','json','fatal','1677760NXMXPT','count','items','functions','dispatchEvent','preview','mat_batchSize','remove','sort','embedding','buildEngineConfig','result','Compile\x20error','/env/','name','import','/pipelines/scaffold','API','Must\x20be\x20(ctx)\x20=>\x20{\x20…\x20}\x20or\x20async\x20(ctx)\x20=>\x20{\x20…\x20}','locktype','Failed\x20to\x20create\x20function\x20(','string','showAdvanced','set','materializer','locktypestrict','\x0a<div\x20class=\x22pw-wrap\x22>\x0a\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-title\x22>{{\x20engineKind\x20===\x20\x27embedding\x27\x20||\x20initialKind\x20===\x20\x27embedding\x27\x20?\x20\x27Create\x20Embedding\x20Pipeline\x27\x20:\x20engineKind\x20===\x20\x27materializer\x27\x20||\x20initialKind\x20===\x20\x27materializer\x27\x20?\x20\x27Create\x20Materializer\x20Pipeline\x27\x20:\x20\x27Create\x20Pipeline\x27\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-sub\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Set\x20up\x20automated\x20processing\x20in\x20<b>{{\x20selectedEnv\x20}}</b>.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20A\x20pipeline\x20connects\x20a\x20data\x20source\x20to\x20a\x20handler\x20function\x20and\x20runs\x20it\x20automatically.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<!--\x20──\x20Steps\x20indicator\x20──\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22engineKind\x20!==\x20\x27embedding\x27\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22pw-steps\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>=\x201\x20?\x20(step\x20>\x201\x20?\x20\x27pw-step-dot\x20pw-step-dot--done\x27\x20:\x20\x27pw-step-dot\x20pw-step-dot--active\x27)\x20:\x20\x27pw-step-dot\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20step\x20>\x201\x20?\x20\x27✓\x27\x20:\x20\x271\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:class=\x22step\x20>=\x201\x20?\x20\x27pw-step-label\x20pw-step-label--active\x27\x20:\x20\x27pw-step-label\x27\x22>Type</span>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>\x201\x20?\x20\x27pw-step-line\x20pw-step-line--done\x27\x20:\x20\x27pw-step-line\x27\x22></div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>=\x202\x20?\x20(step\x20>\x202\x20?\x20\x27pw-step-dot\x20pw-step-dot--done\x27\x20:\x20\x27pw-step-dot\x20pw-step-dot--active\x27)\x20:\x20\x27pw-step-dot\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20step\x20>\x202\x20?\x20\x27✓\x27\x20:\x20\x272\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:class=\x22step\x20>=\x202\x20?\x20\x27pw-step-label\x20pw-step-label--active\x27\x20:\x20\x27pw-step-label\x27\x22>Configure</span>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>\x202\x20?\x20\x27pw-step-line\x20pw-step-line--done\x27\x20:\x20\x27pw-step-line\x27\x22></div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22step\x20>=\x203\x20?\x20\x27pw-step-dot\x20pw-step-dot--active\x27\x20:\x20\x27pw-step-dot\x27\x22>3</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:class=\x22step\x20>=\x203\x20?\x20\x27pw-step-label\x20pw-step-label--active\x27\x20:\x20\x27pw-step-label\x27\x22>Review</span>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<!--\x20════════════\x20STEP\x201:\x20Choose\x20type\x20════════════\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22step\x20===\x201\x20&&\x20!kindLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-grid\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27processor\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⚡</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Change\x20Processor</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Watches\x20a\x20data\x20type\x20for\x20changes\x20and\x20runs\x20your\x20function\x20for\x20every\x20batch.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20for\x20projections,\x20computed\x20values,\x20webhooks,\x20or\x20side-effects\x20that\x20should\x20trigger\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20whenever\x20records\x20are\x20created,\x20updated,\x20or\x20deleted.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27materializer\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⇄</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Materializer</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Watches\x20a\x20source\x20type\x20and\x20maintains\x20a\x20deterministic\x20derived\x20target\x20type\x20by\x20returning\x20ops\x20for\x20the\x20engine\x20to\x20apply.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20for\x20rebuildable\x20projections,\x20mirrors,\x20and\x20materialized\x20views.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!hideQueueWorker\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27queue-worker\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⇶</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Queue\x20Worker</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Processes\x20jobs\x20from\x20a\x20queue.\x20Use\x20for\x20background\x20tasks\x20like\x20sending\x20emails,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20generating\x20reports,\x20or\x20any\x20work\x20that\x20can\x20be\x20enqueued\x20and\x20processed\x20asynchronously\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20with\x20automatic\x20retries.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice\x22\x20@click=\x22pickType(\x27embedding\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-icon\x22>⊛</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-name\x22>Embedding\x20Pipeline</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-choice-desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Creates\x20an\x20embedder,\x20indexer,\x20search\x20engine,\x20and\x20optional\x20worker\x20as\x20one\x20grouped\x20pipeline.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20this\x20for\x20semantic\x20search,\x20RAG,\x20and\x20other\x20vector\x20workflows.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<!--\x20════════════\x20STEP\x202:\x20Configure\x20════════════\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22step\x20===\x202\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27embedding\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>Embeddings</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.58;\x20line-height:1.7;\x20margin-bottom:2px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Embedding\x20pipelines\x20use\x20the\x20specialized\x20creator\x20because\x20they\x20can\x20bundle\x20multiple\x20engines\x20and\x20optional\x20search/worker\x20settings\x20in\x20one\x20pass.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-actions\x22\x20style=\x22margin-top:4px;\x22\x20:style=\x22kindLocked\x20?\x20\x27display:none;\x27\x20:\x20\x27\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--ghost\x22\x20@click=\x22goBack()\x22>←\x20Back</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<embed-create-panel\x20initialtab=\x22pipeline\x22\x20:locktype=\x22lockedType\x22\x20:lockenv=\x22selectedEnv\x22\x20@created=\x22onEmbeddingCreated($event.detail)\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20!==\x20\x27embedding\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Source\x20/\x20job\x20type\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20engineKind\x20===\x20\x27queue-worker\x27\x20?\x20\x27What\x20to\x20process\x27\x20:\x20\x27What\x20to\x20watch\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27processor\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Data\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22display:inline-flex;\x20align-items:center;\x20gap:6px;\x20padding:5px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x20color:var(--okdb-accent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x206%,\x20transparent);\x20font-size:12px;\x22>{{\x20proc_sourceType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.45;\x22>Locked\x20to\x20the\x20current\x20DB\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Data\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22proc_sourceType\x22\x20@change=\x22proc_sourceType\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20a\x20type\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22types\x22\x20let:item=\x22t\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22t\x22>{{\x20t\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20processor\x20will\x20receive\x20a\x20batch\x20of\x20changes\x20every\x20time\x20records\x20of\x20this\x20type\x20are\x20created,\x20updated,\x20or\x20deleted.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27materializer\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Source\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22display:inline-flex;\x20align-items:center;\x20gap:6px;\x20padding:5px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x20color:var(--okdb-accent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x206%,\x20transparent);\x20font-size:12px;\x22>{{\x20mat_sourceType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.45;\x22>Locked\x20to\x20the\x20current\x20DB\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!typeSelectionLocked\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Source\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22mat_sourceType\x22\x20@change=\x22mat_sourceType\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20a\x20type\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22types\x22\x20let:item=\x22t\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22t\x22>{{\x20t\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Target\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22text\x22\x20placeholder=\x22e.g.\x20order_summaries\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22mat_targetType\x22\x20@input=\x22mat_targetType\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20materializer\x20watches\x20the\x20source\x20type\x20and\x20applies\x20returned\x20ops\x20to\x20the\x20target\x20type,\x20making\x20rebuilds\x20deterministic.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27queue-worker\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Job\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22queueJobTypes.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-handler-toggle\x22\x20style=\x22max-width:300px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22qw_jobTypeMode\x20===\x20\x27existing\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22setJobTypeMode(\x27existing\x27)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Known\x20type</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22qw_jobTypeMode\x20===\x20\x27custom\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22setJobTypeMode(\x27custom\x27)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Custom</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22qw_jobTypeMode\x20===\x20\x27existing\x27\x20&&\x20queueJobTypes.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22qw_jobType\x22\x20@change=\x22qw_jobType\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20job\x20type\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22queueJobTypes\x22\x20let:item=\x22jt\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22jt\x22>{{\x20jt\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22qw_jobTypeMode\x20===\x20\x27custom\x27\x20||\x20queueJobTypes.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22text\x22\x20placeholder=\x22e.g.\x20email.send\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22qw_jobType\x22\x20@input=\x22qw_jobType\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22\x20style=\x22grid-column:\x201\x20/\x20-1;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Jobs\x20enqueued\x20with\x20this\x20type\x20will\x20be\x20routed\x20to\x20this\x20worker.\x20You\x20can\x20enqueue\x20jobs\x20from\x20functions,\x20the\x20API,\x20or\x20other\x20pipelines.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Handler\x20function\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>Handler\x20function</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.5;\x20line-height:1.6;\x20margin-bottom:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20function\x20that\x20runs\x20for\x20each\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20engineKind\x20===\x20\x27queue-worker\x27\x20?\x20\x27job\x27\x20:\x20\x27batch\x20of\x20changes\x27\x20}}.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Pick\x20an\x20existing\x20function\x20or\x20write\x20one\x20now.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-handler-toggle\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22handlerMode\x20===\x20\x27existing\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22handlerMode\x20=\x20\x27existing\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Use\x20existing\x20function</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22handlerMode\x20===\x20\x27new\x27\x20?\x20\x27pw-handler-toggle-btn\x20pw-handler-toggle-btn--on\x27\x20:\x20\x27pw-handler-toggle-btn\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22handlerMode\x20=\x20\x27new\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Write\x20new\x20function</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Existing\x20function\x20picker\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22handlerMode\x20===\x20\x27existing\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Function</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<select\x20class=\x22pw-select\x22\x20:value=\x22handlerName\x22\x20@change=\x22handlerName\x20=\x20$event.target.value\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22>—\x20select\x20function\x20—</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22functions\x22\x20let:item=\x22fn\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22fn\x22>{{\x20fn\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22functions.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22\x20style=\x22grid-column:\x201\x20/\x20-1;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20No\x20functions\x20found\x20in\x20<b>{{\x20selectedEnv\x20}}</b>.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Switch\x20to\x20\x22Write\x20new\x20function\x22\x20to\x20create\x20one\x20inline.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20New\x20function\x20inline\x20authoring\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22handlerMode\x20===\x20\x27new\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Function\x20name</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22text\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20placeholder=\x22e.g.\x20processArticle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22newFnName\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22newFnName\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20letter-spacing:.06em;\x20opacity:.45;\x20margin-top:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Implementation\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-editor-wrap\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-js-input\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22height:100%;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22newFnSource\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@edit=\x22updateSource($event.detail)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20></ok-js-input>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Validation\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22newFnValidation.ok\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-success);\x22>✓\x20Valid\x20function\x20source</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!newFnValidation.ok\x20&&\x20newFnSource\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-danger);\x22>{{\x20newFnValidation.message\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Dry\x20run\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--small\x20pw-btn--ghost\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:disabled=\x22!newFnValidation.ok\x20||\x20newFnDryRunning\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22dryRunFunction()\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20newFnDryRunning\x20?\x20\x27Running…\x27\x20:\x20\x27▶\x20Test\x20with\x20sample\x20data\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.4;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20engineKind\x20===\x20\x27queue-worker\x27\x20&&\x20effectiveJobType\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27Uses\x20a\x20real\x20job\x20payload\x20from\x20the\x20queue\x20if\x20available.\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:\x20\x27Runs\x20the\x20function\x20draft\x20against\x20synthetic\x20test\x20data\x20without\x20saving\x20it.\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-warn\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20⚠\x20<strong>Test\x20with\x20sample\x20data</strong>\x20runs\x20your\x20function\x20for\x20real\x20—\x20the\x20function\x20itself\x20is\x20not\x20saved,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20but\x20any\x20side-effects\x20(e.g.&nbsp;<code>ctx.env.put</code>)\x20<em>will</em>\x20write\x20to\x20live\x20data.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Dry-run\x20result\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22newFnDryResult\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:class=\x22dryRunStatus\x20===\x20\x27error\x27\x20?\x20\x27pw-dry-err\x27\x20:\x20\x27pw-dry-ok\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20dryRunStatus\x20===\x20\x27error\x27\x20?\x20\x27✕\x20Function\x20returned\x20an\x20error\x27\x20:\x20\x27✓\x20Function\x20executed\x20successfully\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-meta\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22dryRunDuration\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20dryRunDuration\x20}}ms</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>status:\x20{{\x20newFnDryResult.status\x20||\x20\x27ok\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22dryRunStatus\x20===\x20\x27error\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22pw-dry-pre\x22\x20style=\x22color:var(--okdb-danger);\x22>{{\x20formatJson(newFnDryResult.error\x20??\x20newFnDryResult.result?.value\x20??\x20newFnDryResult)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22dryRunStatus\x20!==\x20\x27error\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22pw-dry-pre\x22>{{\x20formatJson(newFnDryResult.result?.value\x20??\x20newFnDryResult)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Dry-run\x20logs\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22dedupedDryLogs.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:10px;\x20text-transform:uppercase;\x20letter-spacing:.06em;\x20opacity:.4;\x20margin-top:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Logs\x20({{\x20newFnDryResult.logs.length\x20}})\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-logs\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22dedupedDryLogs\x22\x20let:item=\x22entry\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-log-entry\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-dry-log-level\x22\x20:style=\x22\x27color:\x27\x20+\x20logColor(entry)\x22>{{\x20entry.level\x20||\x20\x27log\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20logLabel(entry)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Input\x20payload\x20used\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22newFnDryPayload\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<details\x20style=\x22margin-top:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<summary\x20style=\x22font-size:10px;\x20text-transform:uppercase;\x20letter-spacing:.06em;\x20opacity:.4;\x20cursor:pointer;\x20user-select:none;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Input\x20payload\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</summary>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22pw-dry-pre\x22\x20style=\x22margin-top:4px;\x20max-height:180px;\x22>{{\x20formatJson(newFnDryPayload)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</details>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22newFnDryError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-dry-err\x22>✕\x20{{\x20newFnDryError\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Advanced\x20options\x20(collapsed)\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-adv-toggle\x22\x20@click=\x22showAdvanced\x20=\x20!showAdvanced\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20showAdvanced\x20?\x20\x27▾\x27\x20:\x20\x27▸\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>Advanced\x20options</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22showAdvanced\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27processor\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Mode</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_mode\x20===\x20\x27async\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_mode\x20=\x20\x27async\x27\x22>async</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_mode\x20===\x20\x27inline\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_mode\x20=\x20\x27inline\x27\x22>inline</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>async</b>\x20processes\x20changes\x20in\x20background\x20batches\x20(recommended).\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>inline</b>\x20runs\x20synchronously\x20inside\x20the\x20write\x20path.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22proc_mode\x20===\x20\x27async\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Bootstrap</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_bootstrap\x20===\x20\x27snapshot\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_bootstrap\x20=\x20\x27snapshot\x27\x22>snapshot</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_bootstrap\x20===\x20\x27log\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_bootstrap\x20=\x20\x27log\x27\x22>log</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>snapshot</b>\x20processes\x20all\x20existing\x20records\x20first,\x20then\x20switches\x20to\x20live.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>log</b>\x20replays\x20the\x20change\x20log\x20from\x20the\x20beginning.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Batch\x20size</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22number\x22\x20min=\x221\x22\x20max=\x2210000\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22proc_batchSize\x22\x20@input=\x22proc_batchSize\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Origin\x20mode</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_originMode\x20===\x20\x27all\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_originMode\x20=\x20\x27all\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_originMode\x20===\x20\x27self\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_originMode\x20=\x20\x27self\x27\x22>self</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22proc_originMode\x20===\x20\x27remote\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22proc_originMode\x20=\x20\x27remote\x27\x22>remote</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>all</b>\x20=\x20local\x20+\x20synced\x20changes.\x20<b>self</b>\x20=\x20local\x20only.\x20<b>remote</b>\x20=\x20synced\x20only.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27materializer\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Bootstrap</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22mat_bootstrap\x20===\x20\x27snapshot\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22mat_bootstrap\x20=\x20\x27snapshot\x27\x22>snapshot</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22mat_bootstrap\x20===\x20\x27log\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22mat_bootstrap\x20=\x20\x27log\x27\x22>log</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>snapshot</b>\x20replays\x20all\x20current\x20source\x20rows\x20first.\x20<b>log</b>\x20replays\x20the\x20full\x20change\x20log.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Batch\x20size</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22number\x22\x20min=\x221\x22\x20max=\x2210000\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22mat_batchSize\x22\x20@input=\x22mat_batchSize\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Origin\x20mode</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22mat_originMode\x20===\x20\x27all\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22mat_originMode\x20=\x20\x27all\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22mat_originMode\x20===\x20\x27self\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22mat_originMode\x20=\x20\x27self\x27\x22>self</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22mat_originMode\x20===\x20\x27remote\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22mat_originMode\x20=\x20\x27remote\x27\x22>remote</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Choose\x20whether\x20the\x20materializer\x20reacts\x20to\x20local\x20changes,\x20synced\x20changes,\x20or\x20both.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Rebuild</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20font-size:12px;\x20color:var(--okdb-app-fg);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20type=\x22checkbox\x22\x20:checked=\x22mat_clearTargetOnRebuild\x22\x20@change=\x22mat_clearTargetOnRebuild\x20=\x20$event.target.checked\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Clear\x20target\x20before\x20rebuild\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</label>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27queue-worker\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Concurrency</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20class=\x22pw-input\x22\x20type=\x22number\x22\x20min=\x221\x22\x20max=\x2264\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22qw_concurrency\x22\x20@input=\x22qw_concurrency\x20=\x20$event.target.value\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>How\x20many\x20jobs\x20to\x20process\x20in\x20parallel.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Run\x20recording\x20(shared\x20by\x20both\x20engine\x20types)\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22border-top:1px\x20solid\x20var(--okdb-app-border);\x20margin-top:4px;\x20padding-top:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-label\x22>Run\x20recording</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22handler_recordRuns\x20===\x20\x27all\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22handler_recordRuns\x20=\x20\x27all\x27\x22>all\x20runs</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22handler_recordRuns\x20===\x20\x27errors\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22handler_recordRuns\x20=\x20\x27errors\x27\x22>errors\x20only</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20:class=\x22handler_recordRuns\x20===\x20\x27none\x27\x20?\x20\x27pw-pill\x20pw-pill--on\x27\x20:\x20\x27pw-pill\x27\x22\x20@click=\x22handler_recordRuns\x20=\x20\x27none\x27\x22>none</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-hint\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Controls\x20whether\x20each\x20function\x20invocation\x20is\x20recorded\x20in\x20the\x20run\x20ledger.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>errors\x20only</b>\x20(recommended)\x20avoids\x20creating\x20hundreds\x20of\x20run\x20records\x20for\x20busy\x20pipelines\x20while\x20still\x20capturing\x20failures.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<b>none</b>\x20fully\x20suppresses\x20recording\x20—\x20useful\x20for\x20high-throughput\x20processors\x20where\x20logging\x20isn\x27t\x20needed.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Navigation\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--ghost\x22\x20@click=\x22goBack()\x22>←\x20Back</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x22\x20:disabled=\x22!step2Valid\x22\x20@click=\x22goNext()\x22>Review\x20→</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<!--\x20════════════\x20STEP\x203:\x20Review\x20&\x20Create\x20════════════\x20-->\x0a\x20\x20\x20\x20<if\x20:=\x22step\x20===\x203\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-section\x22>Summary</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Pipeline</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20pipelineName\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Environment</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20selectedEnv\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20engineKind\x20===\x20\x27processor\x27\x20?\x20\x27Change\x20Processor\x27\x20:\x20engineKind\x20===\x20\x27materializer\x27\x20?\x20\x27Materializer\x27\x20:\x20\x27Queue\x20Worker\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27processor\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Watches</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20proc_sourceType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27materializer\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Source</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20mat_sourceType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Target</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20mat_targetType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27queue-worker\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Job\x20type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20effectiveJobType\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Handler</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20effectiveHandlerName\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22opacity:.4;\x20font-family:sans-serif;\x20font-size:11px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20handlerMode\x20===\x20\x27new\x27\x20?\x20\x27(will\x20be\x20created)\x27\x20:\x20\x27\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Engine</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22>{{\x20engineName\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Run\x20recording</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22\x20style=\x22font-size:11px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20handler_recordRuns\x20===\x20\x27all\x27\x20?\x20\x27all\x20runs\x27\x20:\x20handler_recordRuns\x20===\x20\x27errors\x27\x20?\x20\x27errors\x20only\x27\x20:\x20\x27none\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22showAdvanced\x20||\x20proc_mode\x20!==\x20\x27async\x27\x20||\x20proc_bootstrap\x20!==\x20\x27snapshot\x27\x20||\x20proc_batchSize\x20!=\x20256\x20||\x20proc_originMode\x20!==\x20\x27all\x27\x20||\x20mat_bootstrap\x20!==\x20\x27snapshot\x27\x20||\x20mat_batchSize\x20!=\x20128\x20||\x20mat_originMode\x20!==\x20\x27all\x27\x20||\x20!mat_clearTargetOnRebuild\x20||\x20qw_concurrency\x20!=\x201\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-summary-row\x22\x20style=\x22border-bottom:none;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-label\x22>Options</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22pw-summary-val\x22\x20style=\x22font-size:11px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27processor\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20mode={{\x20proc_mode\x20}}\x20·\x20bootstrap={{\x20proc_mode\x20===\x20\x27inline\x27\x20?\x20\x27n/a\x27\x20:\x20proc_bootstrap\x20}}\x20·\x20batch={{\x20proc_batchSize\x20}}\x20·\x20origin={{\x20proc_originMode\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27materializer\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20bootstrap={{\x20mat_bootstrap\x20}}\x20·\x20batch={{\x20mat_batchSize\x20}}\x20·\x20origin={{\x20mat_originMode\x20}}\x20·\x20clearOnRebuild={{\x20mat_clearTargetOnRebuild\x20?\x20\x27yes\x27\x20:\x20\x27no\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22engineKind\x20===\x20\x27queue-worker\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20concurrency={{\x20qw_concurrency\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.45;\x20line-height:1.6;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20This\x20will{{\x20handlerMode\x20===\x20\x27new\x27\x20?\x20\x27\x20create\x20the\x20function,\x20then\x27\x20:\x20\x27\x27\x20}}\x20create\x20the\x20engine\x20and\x20pipeline\x20record,\x20and\x20start\x20it\x20immediately.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Feedback\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-error\x22>{{\x20error\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22success\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-success\x22>{{\x20success\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pw-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--ghost\x22\x20@click=\x22goBack()\x22>←\x20Back</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22pw-btn\x20pw-btn--green\x22\x20:disabled=\x22busy\x22\x20@click=\x22submit()\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20busy\x20?\x20\x27Creating…\x27\x20:\x20\x27Create\x20&\x20Start\x20Pipeline\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a</div>','async\x20(ctx)\x20=>\x20{\x0a\x20\x20//\x20ctx.payload\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20array\x20of\x20{\x20key,\x20value,\x20action,\x20clock\x20}\x0a\x20\x20//\x20ctx.processor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20processor\x20trigger\x20metadata\x20(only\x20for\x20processor\x20engines)\x0a\x20\x20//\x20\x20\x20ctx.processor.mode\x20\x20\x20\x20\x20\x20\x20\x20—\x20\x22snapshot\x22\x20|\x20\x22live\x22\x0a\x20\x20//\x20\x20\x20ctx.processor.sourceType\x20\x20—\x20the\x20type\x20being\x20watched\x0a\x20\x20//\x20\x20\x20ctx.processor.sourceEnv\x20\x20\x20—\x20the\x20environment\x20of\x20the\x20source\x20type\x0a\x20\x20//\x20ctx.env\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20env\x20facade:\x20put,\x20get,\x20query,\x20txn,\x20...\x0a\x20\x20//\x20ctx.log\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20—\x20structured\x20logger:\x20ctx.log.info(msg,\x20data)\x0a\x20\x20//\x0a\x20\x20//\x20Example:\x20materialised\x20view\x0a\x20\x20//\x20for\x20(const\x20change\x20of\x20ctx.payload)\x20{\x0a\x20\x20//\x20\x20\x20await\x20ctx.env.put(\x27derived\x27,\x20change.key,\x20{\x20processed:\x20true,\x20...change.value\x20});\x0a\x20\x20//\x20}\x0a\x0a\x20\x20return\x20{\x20processed:\x20ctx.payload.length\x20};\x0a}','has','newFnSource','mat_targetType','debug','materializerContext','294822cBzsRS','step2Valid','all','effectiveJobType','includes','stringify','isArray','3027910KxmLjs','3820794QfTVaj','replace','error','Cannot\x20use\x20\x22','newFnDryError','newFnDryResult','Handler\x20for\x20pipeline\x20','errors','/jobs?','buildDryRunPayload','6895iQjBsw','/job/','put','kindLocked','var(--okdb-danger)','types','availableKinds','/functions','new','inline','queue-worker','qw_jobTypeMode','map','worker_threads','handlerName','/queue','startsWith','key','stores','proc_bootstrap','application/json','applyScopeDefaults','mat_originMode','40PyabCy','test-1','execution','autoName','process','initialKind','type','proc_mode','__preview__','effectiveHandlerName','durationMs','child_process','newFnDryPayload','created','/queue/stats','message','__preview-job__','example_projection','$attr','/functions/preview','okdb','level','mat_sourceType','POST','$el','async','qw_jobType','Source\x20exceeds\x2064\x20KB','lockedType','selectedEnv','var(--okdb-warning)','exports','newFnValidation'];_0x41a1=function(){return _0x1f4ec5;};return _0x41a1();}