bunqueue-dashboard 0.0.33 → 0.0.35

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 (60) hide show
  1. package/README.md +2 -2
  2. package/agent/manager.ts +3 -3
  3. package/agent/server.ts +72 -0
  4. package/agent/workflows.ts +491 -0
  5. package/dist/.vite/manifest.json +93 -81
  6. package/dist/assets/AddJob-CG28MSxU.js +3 -0
  7. package/dist/assets/{Alerts-C39RrGbQ.js → Alerts-D9JojJrj.js} +1 -1
  8. package/dist/assets/{Benchmark-CM60tHbf.js → Benchmark-BVjUH9dG.js} +1 -1
  9. package/dist/assets/{BulkAddJobs-BjL-xcQy.js → BulkAddJobs-BHzUCMj_.js} +1 -1
  10. package/dist/assets/{CopilotPanel-BGK1rw-V.js → CopilotPanel-COLw-atS.js} +1 -1
  11. package/dist/assets/{Cron-s1e-jgOo.js → Cron-DoEHDHwy.js} +1 -1
  12. package/dist/assets/CronManager-vulcesqJ.js +1 -0
  13. package/dist/assets/{Database-ZluStWMz.js → Database-DlB_t04Z.js} +1 -1
  14. package/dist/assets/{Diagnostics-C0N5z5j-.js → Diagnostics-DddCUgeR.js} +1 -1
  15. package/dist/assets/{Dlq-CtcLzs-b.js → Dlq-DMKrsSMP.js} +1 -1
  16. package/dist/assets/{DlqControl-B_Z8KKn5.js → DlqControl-9m0Re_TH.js} +1 -1
  17. package/dist/assets/{DlqPro-B68en6AG.js → DlqPro-Dmw-0wta.js} +1 -1
  18. package/dist/assets/{Flows-CD_bkCBM.js → Flows-C3-9nXW4.js} +1 -1
  19. package/dist/assets/JobInspector-DwIfABmI.js +2 -0
  20. package/dist/assets/{Jobs-BUtcBKKk.js → Jobs-j8tTS3NC.js} +1 -1
  21. package/dist/assets/JobsPro-CS__CJJl.js +1 -0
  22. package/dist/assets/{Logs-CmVODYCI.js → Logs-BB-VDPA1.js} +1 -1
  23. package/dist/assets/{LogsPro-CJ-Il3LP.js → LogsPro-RNtSQZRT.js} +1 -1
  24. package/dist/assets/{McpServer-dMjyJKgT.js → McpServer-CbaU52l2.js} +2 -2
  25. package/dist/assets/{Metrics-Dsbeplz-.js → Metrics-ivcddPwT.js} +1 -1
  26. package/dist/assets/{MetricsPro-BqxurxrJ.js → MetricsPro-xjZno4vg.js} +1 -1
  27. package/dist/assets/{Overview-DH9C2dsf.js → Overview-D84aD2ph.js} +1 -1
  28. package/dist/assets/{Pagination-DpxiBnt8.js → Pagination-Bfi4vkpp.js} +1 -1
  29. package/dist/assets/{QueueActions-D_QGBaVm.js → QueueActions-DTbD6uek.js} +1 -1
  30. package/dist/assets/{QueueControl-V0DJ6qk6.js → QueueControl-B5xK_SQ-.js} +1 -1
  31. package/dist/assets/{QueueDetail-BgKAMJqf.js → QueueDetail-BH59kwm9.js} +1 -1
  32. package/dist/assets/{QueueDetailPro-BkHYzGiq.js → QueueDetailPro-DoN25ndy.js} +1 -1
  33. package/dist/assets/{Queues-2_v7DcNi.js → Queues-CKMJqFHX.js} +1 -1
  34. package/dist/assets/{QueuesOverview-BySSkmB4.js → QueuesOverview-BX1lzojl.js} +1 -1
  35. package/dist/assets/{S3Backup-CPADzKQE.js → S3Backup-Bz3GfoZ9.js} +1 -1
  36. package/dist/assets/{S3BackupPro-CSrQYIDL.js → S3BackupPro-BC_6-uX-.js} +1 -1
  37. package/dist/assets/{ServerControl-C0tI1VDx.js → ServerControl-CSSrN8G5.js} +2 -2
  38. package/dist/assets/{Settings-CSzoM5up.js → Settings-DkqmZUIS.js} +1 -1
  39. package/dist/assets/{Usage-B4B7tmrc.js → Usage-Ba20p0xd.js} +1 -1
  40. package/dist/assets/{UsagePro-CCBpgSDy.js → UsagePro-C2pQwjN9.js} +1 -1
  41. package/dist/assets/{Webhooks-aJz-GisQ.js → Webhooks-CVuuvb0L.js} +1 -1
  42. package/dist/assets/{Workers-Bg8xKjkg.js → Workers-C1wPU6CS.js} +1 -1
  43. package/dist/assets/{WorkersPro-BOOCrXf8.js → WorkersPro-B0vEkC0T.js} +1 -1
  44. package/dist/assets/Workflows-C8Qmkflf.js +1 -0
  45. package/dist/assets/{flowMutationSafety-DVD1IMr-.js → flowMutationSafety-CoOp94wS.js} +1 -1
  46. package/dist/assets/index-BCNzbhhD.css +1 -0
  47. package/dist/assets/index-CAtsVmyh.js +8 -0
  48. package/dist/assets/install-D0eRLf9F.js +3 -0
  49. package/dist/assets/{upstreamPaths-nG8N1XAz.js → upstreamPaths-D_LPsv7b.js} +1 -1
  50. package/dist/assets/{useThroughputSeries-tb26_lkb.js → useThroughputSeries-DjxGN8ob.js} +1 -1
  51. package/dist/index.html +3 -3
  52. package/package.json +4 -1
  53. package/scripts/embedded.gen.ts +122 -120
  54. package/dist/assets/AddJob-ytpBLTCJ.js +0 -3
  55. package/dist/assets/CronManager-BostU7BX.js +0 -1
  56. package/dist/assets/JobInspector-DwRtyMz0.js +0 -2
  57. package/dist/assets/JobsPro-BK_xd4ji.js +0 -1
  58. package/dist/assets/index-BWoUj86M.css +0 -1
  59. package/dist/assets/index-Bn2R06qm.js +0 -8
  60. package/dist/assets/install-CUS8Kijb.js +0 -3
@@ -7,8 +7,8 @@
7
7
  "_react-vendor-Bjui4wS4.js"
8
8
  ]
9
9
  },
10
- "_Pagination-DpxiBnt8.js": {
11
- "file": "assets/Pagination-DpxiBnt8.js",
10
+ "_Pagination-Bfi4vkpp.js": {
11
+ "file": "assets/Pagination-Bfi4vkpp.js",
12
12
  "name": "Pagination",
13
13
  "imports": [
14
14
  "_cn-CMFYpumL.js",
@@ -16,8 +16,8 @@
16
16
  "index.html"
17
17
  ]
18
18
  },
19
- "_QueueActions-D_QGBaVm.js": {
20
- "file": "assets/QueueActions-D_QGBaVm.js",
19
+ "_QueueActions-DTbD6uek.js": {
20
+ "file": "assets/QueueActions-DTbD6uek.js",
21
21
  "name": "QueueActions",
22
22
  "imports": [
23
23
  "_cn-CMFYpumL.js",
@@ -26,7 +26,7 @@
26
26
  "index.html",
27
27
  "_form-DsUq0w8s.js",
28
28
  "_useServerActionGuard-CItj3hvh.js",
29
- "_flowMutationSafety-DVD1IMr-.js"
29
+ "_flowMutationSafety-CoOp94wS.js"
30
30
  ]
31
31
  },
32
32
  "_cn-CMFYpumL.js": {
@@ -49,8 +49,8 @@
49
49
  "file": "assets/exportFile-C7xhE8Yh.js",
50
50
  "name": "exportFile"
51
51
  },
52
- "_flowMutationSafety-DVD1IMr-.js": {
53
- "file": "assets/flowMutationSafety-DVD1IMr-.js",
52
+ "_flowMutationSafety-CoOp94wS.js": {
53
+ "file": "assets/flowMutationSafety-CoOp94wS.js",
54
54
  "name": "flowMutationSafety"
55
55
  },
56
56
  "_form-DsUq0w8s.js": {
@@ -76,8 +76,8 @@
76
76
  "_cn-CMFYpumL.js"
77
77
  ]
78
78
  },
79
- "_upstreamPaths-nG8N1XAz.js": {
80
- "file": "assets/upstreamPaths-nG8N1XAz.js",
79
+ "_upstreamPaths-D_LPsv7b.js": {
80
+ "file": "assets/upstreamPaths-D_LPsv7b.js",
81
81
  "name": "upstreamPaths"
82
82
  },
83
83
  "_useServerActionGuard-CItj3hvh.js": {
@@ -89,8 +89,8 @@
89
89
  "_connectionStore-Cd9-3Fw0.js"
90
90
  ]
91
91
  },
92
- "_useThroughputSeries-tb26_lkb.js": {
93
- "file": "assets/useThroughputSeries-tb26_lkb.js",
92
+ "_useThroughputSeries-DjxGN8ob.js": {
93
+ "file": "assets/useThroughputSeries-DjxGN8ob.js",
94
94
  "name": "useThroughputSeries",
95
95
  "imports": [
96
96
  "_cn-CMFYpumL.js",
@@ -100,7 +100,7 @@
100
100
  ]
101
101
  },
102
102
  "index.html": {
103
- "file": "assets/index-Bn2R06qm.js",
103
+ "file": "assets/index-CAtsVmyh.js",
104
104
  "name": "index",
105
105
  "src": "index.html",
106
106
  "isEntry": true,
@@ -108,7 +108,7 @@
108
108
  "_cn-CMFYpumL.js",
109
109
  "_react-vendor-Bjui4wS4.js",
110
110
  "_connectionStore-Cd9-3Fw0.js",
111
- "_upstreamPaths-nG8N1XAz.js"
111
+ "_upstreamPaths-D_LPsv7b.js"
112
112
  ],
113
113
  "dynamicImports": [
114
114
  "src/components/copilot/CopilotPanel.tsx",
@@ -134,6 +134,7 @@
134
134
  "src/pages/control/UsagePro.tsx",
135
135
  "src/pages/control/Webhooks.tsx",
136
136
  "src/pages/control/WorkersPro.tsx",
137
+ "src/pages/control/Workflows.tsx",
137
138
  "src/pages/Alerts.tsx",
138
139
  "src/pages/Cron.tsx",
139
140
  "src/pages/Dlq.tsx",
@@ -150,7 +151,7 @@
150
151
  "src/lib/demo/install.ts"
151
152
  ],
152
153
  "css": [
153
- "assets/index-BWoUj86M.css"
154
+ "assets/index-BCNzbhhD.css"
154
155
  ],
155
156
  "assets": [
156
157
  "assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2",
@@ -212,7 +213,7 @@
212
213
  "src": "node_modules/@fontsource-variable/jetbrains-mono/files/jetbrains-mono-latin-wght-normal.woff2"
213
214
  },
214
215
  "src/components/copilot/CopilotPanel.tsx": {
215
- "file": "assets/CopilotPanel-BGK1rw-V.js",
216
+ "file": "assets/CopilotPanel-COLw-atS.js",
216
217
  "name": "CopilotPanel",
217
218
  "src": "src/components/copilot/CopilotPanel.tsx",
218
219
  "isDynamicEntry": true,
@@ -231,13 +232,13 @@
231
232
  ]
232
233
  },
233
234
  "src/lib/demo/install.ts": {
234
- "file": "assets/install-CUS8Kijb.js",
235
+ "file": "assets/install-D0eRLf9F.js",
235
236
  "name": "install",
236
237
  "src": "src/lib/demo/install.ts",
237
238
  "isDynamicEntry": true
238
239
  },
239
240
  "src/pages/Alerts.tsx": {
240
- "file": "assets/Alerts-C39RrGbQ.js",
241
+ "file": "assets/Alerts-D9JojJrj.js",
241
242
  "name": "Alerts",
242
243
  "src": "src/pages/Alerts.tsx",
243
244
  "isDynamicEntry": true,
@@ -250,7 +251,7 @@
250
251
  ]
251
252
  },
252
253
  "src/pages/Cron.tsx": {
253
- "file": "assets/Cron-s1e-jgOo.js",
254
+ "file": "assets/Cron-DoEHDHwy.js",
254
255
  "name": "Cron",
255
256
  "src": "src/pages/Cron.tsx",
256
257
  "isDynamicEntry": true,
@@ -258,12 +259,12 @@
258
259
  "_cn-CMFYpumL.js",
259
260
  "_react-vendor-Bjui4wS4.js",
260
261
  "index.html",
261
- "_Pagination-DpxiBnt8.js",
262
+ "_Pagination-Bfi4vkpp.js",
262
263
  "_useServerActionGuard-CItj3hvh.js"
263
264
  ]
264
265
  },
265
266
  "src/pages/Dlq.tsx": {
266
- "file": "assets/Dlq-CtcLzs-b.js",
267
+ "file": "assets/Dlq-DMKrsSMP.js",
267
268
  "name": "Dlq",
268
269
  "src": "src/pages/Dlq.tsx",
269
270
  "isDynamicEntry": true,
@@ -272,13 +273,13 @@
272
273
  "_react-vendor-Bjui4wS4.js",
273
274
  "index.html",
274
275
  "_form-DsUq0w8s.js",
275
- "_Pagination-DpxiBnt8.js",
276
- "_flowMutationSafety-DVD1IMr-.js",
276
+ "_Pagination-Bfi4vkpp.js",
277
+ "_flowMutationSafety-CoOp94wS.js",
277
278
  "src/pages/Jobs.tsx"
278
279
  ]
279
280
  },
280
281
  "src/pages/Jobs.tsx": {
281
- "file": "assets/Jobs-BUtcBKKk.js",
282
+ "file": "assets/Jobs-j8tTS3NC.js",
282
283
  "name": "Jobs",
283
284
  "src": "src/pages/Jobs.tsx",
284
285
  "isDynamicEntry": true,
@@ -287,12 +288,12 @@
287
288
  "_react-vendor-Bjui4wS4.js",
288
289
  "index.html",
289
290
  "_form-DsUq0w8s.js",
290
- "_flowMutationSafety-DVD1IMr-.js",
291
+ "_flowMutationSafety-CoOp94wS.js",
291
292
  "_promisePool-BVfQ9n9Q.js"
292
293
  ]
293
294
  },
294
295
  "src/pages/Logs.tsx": {
295
- "file": "assets/Logs-CmVODYCI.js",
296
+ "file": "assets/Logs-BB-VDPA1.js",
296
297
  "name": "Logs",
297
298
  "src": "src/pages/Logs.tsx",
298
299
  "isDynamicEntry": true,
@@ -301,12 +302,12 @@
301
302
  "_react-vendor-Bjui4wS4.js",
302
303
  "index.html",
303
304
  "_form-DsUq0w8s.js",
304
- "_Pagination-DpxiBnt8.js",
305
+ "_Pagination-Bfi4vkpp.js",
305
306
  "src/pages/Jobs.tsx"
306
307
  ]
307
308
  },
308
309
  "src/pages/Metrics.tsx": {
309
- "file": "assets/Metrics-Dsbeplz-.js",
310
+ "file": "assets/Metrics-ivcddPwT.js",
310
311
  "name": "Metrics",
311
312
  "src": "src/pages/Metrics.tsx",
312
313
  "isDynamicEntry": true,
@@ -316,7 +317,7 @@
316
317
  ]
317
318
  },
318
319
  "src/pages/Overview.tsx": {
319
- "file": "assets/Overview-DH9C2dsf.js",
320
+ "file": "assets/Overview-D84aD2ph.js",
320
321
  "name": "Overview",
321
322
  "src": "src/pages/Overview.tsx",
322
323
  "isDynamicEntry": true,
@@ -326,7 +327,7 @@
326
327
  ]
327
328
  },
328
329
  "src/pages/QueueDetail.tsx": {
329
- "file": "assets/QueueDetail-BgKAMJqf.js",
330
+ "file": "assets/QueueDetail-BH59kwm9.js",
330
331
  "name": "QueueDetail",
331
332
  "src": "src/pages/QueueDetail.tsx",
332
333
  "isDynamicEntry": true,
@@ -336,11 +337,11 @@
336
337
  "index.html",
337
338
  "_form-DsUq0w8s.js",
338
339
  "_useServerActionGuard-CItj3hvh.js",
339
- "_flowMutationSafety-DVD1IMr-.js"
340
+ "_flowMutationSafety-CoOp94wS.js"
340
341
  ]
341
342
  },
342
343
  "src/pages/Queues.tsx": {
343
- "file": "assets/Queues-2_v7DcNi.js",
344
+ "file": "assets/Queues-CKMJqFHX.js",
344
345
  "name": "Queues",
345
346
  "src": "src/pages/Queues.tsx",
346
347
  "isDynamicEntry": true,
@@ -348,11 +349,11 @@
348
349
  "_cn-CMFYpumL.js",
349
350
  "_react-vendor-Bjui4wS4.js",
350
351
  "index.html",
351
- "_Pagination-DpxiBnt8.js"
352
+ "_Pagination-Bfi4vkpp.js"
352
353
  ]
353
354
  },
354
355
  "src/pages/S3Backup.tsx": {
355
- "file": "assets/S3Backup-CPADzKQE.js",
356
+ "file": "assets/S3Backup-Bz3GfoZ9.js",
356
357
  "name": "S3Backup",
357
358
  "src": "src/pages/S3Backup.tsx",
358
359
  "isDynamicEntry": true,
@@ -362,7 +363,7 @@
362
363
  ]
363
364
  },
364
365
  "src/pages/Settings.tsx": {
365
- "file": "assets/Settings-CSzoM5up.js",
366
+ "file": "assets/Settings-DkqmZUIS.js",
366
367
  "name": "Settings",
367
368
  "src": "src/pages/Settings.tsx",
368
369
  "isDynamicEntry": true,
@@ -375,7 +376,7 @@
375
376
  ]
376
377
  },
377
378
  "src/pages/Usage.tsx": {
378
- "file": "assets/Usage-B4B7tmrc.js",
379
+ "file": "assets/Usage-Ba20p0xd.js",
379
380
  "name": "Usage",
380
381
  "src": "src/pages/Usage.tsx",
381
382
  "isDynamicEntry": true,
@@ -385,7 +386,7 @@
385
386
  ]
386
387
  },
387
388
  "src/pages/Workers.tsx": {
388
- "file": "assets/Workers-Bg8xKjkg.js",
389
+ "file": "assets/Workers-C1wPU6CS.js",
389
390
  "name": "Workers",
390
391
  "src": "src/pages/Workers.tsx",
391
392
  "isDynamicEntry": true,
@@ -393,25 +394,25 @@
393
394
  "_cn-CMFYpumL.js",
394
395
  "_react-vendor-Bjui4wS4.js",
395
396
  "index.html",
396
- "_Pagination-DpxiBnt8.js"
397
+ "_Pagination-Bfi4vkpp.js"
397
398
  ]
398
399
  },
399
400
  "src/pages/control/AddJob.tsx": {
400
- "file": "assets/AddJob-ytpBLTCJ.js",
401
+ "file": "assets/AddJob-CG28MSxU.js",
401
402
  "name": "AddJob",
402
403
  "src": "src/pages/control/AddJob.tsx",
403
404
  "isDynamicEntry": true,
404
405
  "imports": [
405
406
  "_cn-CMFYpumL.js",
406
407
  "_react-vendor-Bjui4wS4.js",
407
- "_upstreamPaths-nG8N1XAz.js",
408
+ "_upstreamPaths-D_LPsv7b.js",
408
409
  "index.html",
409
410
  "_form-DsUq0w8s.js",
410
411
  "_useServerActionGuard-CItj3hvh.js"
411
412
  ]
412
413
  },
413
414
  "src/pages/control/Benchmark.tsx": {
414
- "file": "assets/Benchmark-CM60tHbf.js",
415
+ "file": "assets/Benchmark-BVjUH9dG.js",
415
416
  "name": "Benchmark",
416
417
  "src": "src/pages/control/Benchmark.tsx",
417
418
  "isDynamicEntry": true,
@@ -425,14 +426,14 @@
425
426
  ]
426
427
  },
427
428
  "src/pages/control/BulkAddJobs.tsx": {
428
- "file": "assets/BulkAddJobs-BjL-xcQy.js",
429
+ "file": "assets/BulkAddJobs-BHzUCMj_.js",
429
430
  "name": "BulkAddJobs",
430
431
  "src": "src/pages/control/BulkAddJobs.tsx",
431
432
  "isDynamicEntry": true,
432
433
  "imports": [
433
434
  "_cn-CMFYpumL.js",
434
435
  "_react-vendor-Bjui4wS4.js",
435
- "_upstreamPaths-nG8N1XAz.js",
436
+ "_upstreamPaths-D_LPsv7b.js",
436
437
  "index.html",
437
438
  "_form-DsUq0w8s.js",
438
439
  "_useServerActionGuard-CItj3hvh.js",
@@ -440,23 +441,23 @@
440
441
  ]
441
442
  },
442
443
  "src/pages/control/CronManager.tsx": {
443
- "file": "assets/CronManager-BostU7BX.js",
444
+ "file": "assets/CronManager-vulcesqJ.js",
444
445
  "name": "CronManager",
445
446
  "src": "src/pages/control/CronManager.tsx",
446
447
  "isDynamicEntry": true,
447
448
  "imports": [
448
449
  "_cn-CMFYpumL.js",
449
450
  "_react-vendor-Bjui4wS4.js",
450
- "_upstreamPaths-nG8N1XAz.js",
451
+ "_upstreamPaths-D_LPsv7b.js",
451
452
  "index.html",
452
453
  "_form-DsUq0w8s.js",
453
- "_Pagination-DpxiBnt8.js",
454
+ "_Pagination-Bfi4vkpp.js",
454
455
  "_useServerActionGuard-CItj3hvh.js",
455
456
  "src/pages/control/AddJob.tsx"
456
457
  ]
457
458
  },
458
459
  "src/pages/control/Database.tsx": {
459
- "file": "assets/Database-ZluStWMz.js",
460
+ "file": "assets/Database-DlB_t04Z.js",
460
461
  "name": "Database",
461
462
  "src": "src/pages/control/Database.tsx",
462
463
  "isDynamicEntry": true,
@@ -466,11 +467,11 @@
466
467
  "_connectionStore-Cd9-3Fw0.js",
467
468
  "index.html",
468
469
  "_form-DsUq0w8s.js",
469
- "_Pagination-DpxiBnt8.js"
470
+ "_Pagination-Bfi4vkpp.js"
470
471
  ]
471
472
  },
472
473
  "src/pages/control/Diagnostics.tsx": {
473
- "file": "assets/Diagnostics-C0N5z5j-.js",
474
+ "file": "assets/Diagnostics-DddCUgeR.js",
474
475
  "name": "Diagnostics",
475
476
  "src": "src/pages/control/Diagnostics.tsx",
476
477
  "isDynamicEntry": true,
@@ -481,7 +482,7 @@
481
482
  ]
482
483
  },
483
484
  "src/pages/control/DlqControl.tsx": {
484
- "file": "assets/DlqControl-B_Z8KKn5.js",
485
+ "file": "assets/DlqControl-9m0Re_TH.js",
485
486
  "name": "DlqControl",
486
487
  "src": "src/pages/control/DlqControl.tsx",
487
488
  "isDynamicEntry": true,
@@ -490,14 +491,14 @@
490
491
  "_react-vendor-Bjui4wS4.js",
491
492
  "index.html",
492
493
  "_form-DsUq0w8s.js",
493
- "_Pagination-DpxiBnt8.js",
494
- "_flowMutationSafety-DVD1IMr-.js",
494
+ "_Pagination-Bfi4vkpp.js",
495
+ "_flowMutationSafety-CoOp94wS.js",
495
496
  "_exportFile-C7xhE8Yh.js",
496
497
  "src/pages/control/QueueControl.tsx"
497
498
  ]
498
499
  },
499
500
  "src/pages/control/DlqPro.tsx": {
500
- "file": "assets/DlqPro-B68en6AG.js",
501
+ "file": "assets/DlqPro-Dmw-0wta.js",
501
502
  "name": "DlqPro",
502
503
  "src": "src/pages/control/DlqPro.tsx",
503
504
  "isDynamicEntry": true,
@@ -506,14 +507,14 @@
506
507
  "_react-vendor-Bjui4wS4.js",
507
508
  "index.html",
508
509
  "_form-DsUq0w8s.js",
509
- "_Pagination-DpxiBnt8.js",
510
- "_flowMutationSafety-DVD1IMr-.js",
510
+ "_Pagination-Bfi4vkpp.js",
511
+ "_flowMutationSafety-CoOp94wS.js",
511
512
  "_exportFile-C7xhE8Yh.js",
512
513
  "src/pages/control/QueueControl.tsx"
513
514
  ]
514
515
  },
515
516
  "src/pages/control/Flows.tsx": {
516
- "file": "assets/Flows-CD_bkCBM.js",
517
+ "file": "assets/Flows-C3-9nXW4.js",
517
518
  "name": "Flows",
518
519
  "src": "src/pages/control/Flows.tsx",
519
520
  "isDynamicEntry": true,
@@ -521,12 +522,12 @@
521
522
  "_cn-CMFYpumL.js",
522
523
  "_react-vendor-Bjui4wS4.js",
523
524
  "_connectionStore-Cd9-3Fw0.js",
524
- "_upstreamPaths-nG8N1XAz.js",
525
+ "_upstreamPaths-D_LPsv7b.js",
525
526
  "index.html"
526
527
  ]
527
528
  },
528
529
  "src/pages/control/JobInspector.tsx": {
529
- "file": "assets/JobInspector-DwRtyMz0.js",
530
+ "file": "assets/JobInspector-DwIfABmI.js",
530
531
  "name": "JobInspector",
531
532
  "src": "src/pages/control/JobInspector.tsx",
532
533
  "isDynamicEntry": true,
@@ -534,16 +535,16 @@
534
535
  "_cn-CMFYpumL.js",
535
536
  "_react-vendor-Bjui4wS4.js",
536
537
  "_connectionStore-Cd9-3Fw0.js",
537
- "_upstreamPaths-nG8N1XAz.js",
538
+ "_upstreamPaths-D_LPsv7b.js",
538
539
  "index.html",
539
540
  "_form-DsUq0w8s.js",
540
- "_flowMutationSafety-DVD1IMr-.js",
541
+ "_flowMutationSafety-CoOp94wS.js",
541
542
  "_exportFile-C7xhE8Yh.js",
542
543
  "_jobActions-LQD4KfCc.js"
543
544
  ]
544
545
  },
545
546
  "src/pages/control/JobsPro.tsx": {
546
- "file": "assets/JobsPro-BK_xd4ji.js",
547
+ "file": "assets/JobsPro-CS__CJJl.js",
547
548
  "name": "JobsPro",
548
549
  "src": "src/pages/control/JobsPro.tsx",
549
550
  "isDynamicEntry": true,
@@ -552,14 +553,14 @@
552
553
  "_react-vendor-Bjui4wS4.js",
553
554
  "index.html",
554
555
  "_form-DsUq0w8s.js",
555
- "_Pagination-DpxiBnt8.js",
556
+ "_Pagination-Bfi4vkpp.js",
556
557
  "_useServerActionGuard-CItj3hvh.js",
557
558
  "_exportFile-C7xhE8Yh.js",
558
559
  "_jobActions-LQD4KfCc.js"
559
560
  ]
560
561
  },
561
562
  "src/pages/control/LogsPro.tsx": {
562
- "file": "assets/LogsPro-CJ-Il3LP.js",
563
+ "file": "assets/LogsPro-RNtSQZRT.js",
563
564
  "name": "LogsPro",
564
565
  "src": "src/pages/control/LogsPro.tsx",
565
566
  "isDynamicEntry": true,
@@ -569,12 +570,12 @@
569
570
  "_connectionStore-Cd9-3Fw0.js",
570
571
  "index.html",
571
572
  "_form-DsUq0w8s.js",
572
- "_Pagination-DpxiBnt8.js",
573
+ "_Pagination-Bfi4vkpp.js",
573
574
  "src/pages/control/QueueControl.tsx"
574
575
  ]
575
576
  },
576
577
  "src/pages/control/McpServer.tsx": {
577
- "file": "assets/McpServer-dMjyJKgT.js",
578
+ "file": "assets/McpServer-CbaU52l2.js",
578
579
  "name": "McpServer",
579
580
  "src": "src/pages/control/McpServer.tsx",
580
581
  "isDynamicEntry": true,
@@ -584,7 +585,7 @@
584
585
  ]
585
586
  },
586
587
  "src/pages/control/MetricsPro.tsx": {
587
- "file": "assets/MetricsPro-BqxurxrJ.js",
588
+ "file": "assets/MetricsPro-xjZno4vg.js",
588
589
  "name": "MetricsPro",
589
590
  "src": "src/pages/control/MetricsPro.tsx",
590
591
  "isDynamicEntry": true,
@@ -592,13 +593,13 @@
592
593
  "_cn-CMFYpumL.js",
593
594
  "_react-vendor-Bjui4wS4.js",
594
595
  "index.html",
595
- "_Pagination-DpxiBnt8.js",
596
+ "_Pagination-Bfi4vkpp.js",
596
597
  "_AreaChart-REK4ZsTC.js",
597
- "_useThroughputSeries-tb26_lkb.js"
598
+ "_useThroughputSeries-DjxGN8ob.js"
598
599
  ]
599
600
  },
600
601
  "src/pages/control/QueueControl.tsx": {
601
- "file": "assets/QueueControl-V0DJ6qk6.js",
602
+ "file": "assets/QueueControl-B5xK_SQ-.js",
602
603
  "name": "QueueControl",
603
604
  "src": "src/pages/control/QueueControl.tsx",
604
605
  "isDynamicEntry": true,
@@ -608,11 +609,11 @@
608
609
  "index.html",
609
610
  "_form-DsUq0w8s.js",
610
611
  "_useServerActionGuard-CItj3hvh.js",
611
- "_QueueActions-D_QGBaVm.js"
612
+ "_QueueActions-DTbD6uek.js"
612
613
  ]
613
614
  },
614
615
  "src/pages/control/QueueDetailPro.tsx": {
615
- "file": "assets/QueueDetailPro-BkHYzGiq.js",
616
+ "file": "assets/QueueDetailPro-DoN25ndy.js",
616
617
  "name": "QueueDetailPro",
617
618
  "src": "src/pages/control/QueueDetailPro.tsx",
618
619
  "isDynamicEntry": true,
@@ -621,14 +622,14 @@
621
622
  "_react-vendor-Bjui4wS4.js",
622
623
  "index.html",
623
624
  "_useServerActionGuard-CItj3hvh.js",
624
- "_flowMutationSafety-DVD1IMr-.js",
625
+ "_flowMutationSafety-CoOp94wS.js",
625
626
  "_AreaChart-REK4ZsTC.js",
626
- "_QueueActions-D_QGBaVm.js",
627
- "_useThroughputSeries-tb26_lkb.js"
627
+ "_QueueActions-DTbD6uek.js",
628
+ "_useThroughputSeries-DjxGN8ob.js"
628
629
  ]
629
630
  },
630
631
  "src/pages/control/QueuesOverview.tsx": {
631
- "file": "assets/QueuesOverview-BySSkmB4.js",
632
+ "file": "assets/QueuesOverview-BX1lzojl.js",
632
633
  "name": "QueuesOverview",
633
634
  "src": "src/pages/control/QueuesOverview.tsx",
634
635
  "isDynamicEntry": true,
@@ -636,13 +637,13 @@
636
637
  "_cn-CMFYpumL.js",
637
638
  "_react-vendor-Bjui4wS4.js",
638
639
  "index.html",
639
- "_Pagination-DpxiBnt8.js",
640
+ "_Pagination-Bfi4vkpp.js",
640
641
  "_useServerActionGuard-CItj3hvh.js",
641
642
  "_promisePool-BVfQ9n9Q.js"
642
643
  ]
643
644
  },
644
645
  "src/pages/control/S3BackupPro.tsx": {
645
- "file": "assets/S3BackupPro-CSrQYIDL.js",
646
+ "file": "assets/S3BackupPro-BC_6-uX-.js",
646
647
  "name": "S3BackupPro",
647
648
  "src": "src/pages/control/S3BackupPro.tsx",
648
649
  "isDynamicEntry": true,
@@ -655,7 +656,7 @@
655
656
  ]
656
657
  },
657
658
  "src/pages/control/ServerControl.tsx": {
658
- "file": "assets/ServerControl-C0tI1VDx.js",
659
+ "file": "assets/ServerControl-CSSrN8G5.js",
659
660
  "name": "ServerControl",
660
661
  "src": "src/pages/control/ServerControl.tsx",
661
662
  "isDynamicEntry": true,
@@ -667,7 +668,7 @@
667
668
  ]
668
669
  },
669
670
  "src/pages/control/UsagePro.tsx": {
670
- "file": "assets/UsagePro-CCBpgSDy.js",
671
+ "file": "assets/UsagePro-C2pQwjN9.js",
671
672
  "name": "UsagePro",
672
673
  "src": "src/pages/control/UsagePro.tsx",
673
674
  "isDynamicEntry": true,
@@ -677,7 +678,7 @@
677
678
  ]
678
679
  },
679
680
  "src/pages/control/Webhooks.tsx": {
680
- "file": "assets/Webhooks-aJz-GisQ.js",
681
+ "file": "assets/Webhooks-CVuuvb0L.js",
681
682
  "name": "Webhooks",
682
683
  "src": "src/pages/control/Webhooks.tsx",
683
684
  "isDynamicEntry": true,
@@ -686,12 +687,12 @@
686
687
  "_react-vendor-Bjui4wS4.js",
687
688
  "index.html",
688
689
  "_form-DsUq0w8s.js",
689
- "_Pagination-DpxiBnt8.js",
690
+ "_Pagination-Bfi4vkpp.js",
690
691
  "_useServerActionGuard-CItj3hvh.js"
691
692
  ]
692
693
  },
693
694
  "src/pages/control/WorkersPro.tsx": {
694
- "file": "assets/WorkersPro-BOOCrXf8.js",
695
+ "file": "assets/WorkersPro-B0vEkC0T.js",
695
696
  "name": "WorkersPro",
696
697
  "src": "src/pages/control/WorkersPro.tsx",
697
698
  "isDynamicEntry": true,
@@ -701,5 +702,16 @@
701
702
  "index.html",
702
703
  "_useServerActionGuard-CItj3hvh.js"
703
704
  ]
705
+ },
706
+ "src/pages/control/Workflows.tsx": {
707
+ "file": "assets/Workflows-C8Qmkflf.js",
708
+ "name": "Workflows",
709
+ "src": "src/pages/control/Workflows.tsx",
710
+ "isDynamicEntry": true,
711
+ "imports": [
712
+ "_cn-CMFYpumL.js",
713
+ "_react-vendor-Bjui4wS4.js",
714
+ "index.html"
715
+ ]
704
716
  }
705
717
  }
@@ -0,0 +1,3 @@
1
+ import{r as e}from"./cn-CMFYpumL.js";import{g as t,l as n,r,t as i}from"./react-vendor-Bjui4wS4.js";import{i as a,o}from"./upstreamPaths-D_LPsv7b.js";import{A as s,C as c,S as l,ct as ee,ft as u,h as d,st as f,w as p}from"./index-CAtsVmyh.js";import{a as m,n as h,o as g,t as _}from"./form-DsUq0w8s.js";import{r as v}from"./useServerActionGuard-CItj3hvh.js";var y=e(t(),1),b=i(),x=e=>e==null?``:String(e),S=365*24*60*60*1e3,C=1440*60*1e3,w=10*1024*1024,T=10*1024*1024;function E(e,t=1/0){let n=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);if(i<=127?n+=1:i<=2047?n+=2:i>=55296&&i<=56319&&r+1<e.length&&e.charCodeAt(r+1)>=56320&&e.charCodeAt(r+1)<=57343?(n+=4,r+=1):n+=3,n>t)return n}return n}function D(e){return e.length>10485760||E(e,10485760)>10485760?`Job data is too large (maximum 10 MiB UTF-8 / 10,485,760 characters)`:null}function O(e){let t=D(e);if(t)return{ok:!1,kind:`size`,msg:t};let n;try{n=JSON.parse(e)}catch(e){return{ok:!1,kind:`json`,msg:`Invalid JSON: ${e.message}`}}let r=JSON.stringify(n);return r.length>10485760||E(r,10485760)>10485760?{ok:!1,kind:`size`,msg:`Job data is too large after JSON encoding (maximum 10 MiB UTF-8)`}:{ok:!0,data:n}}function te(e){let t=[{key:`priority`,label:`Priority`,min:-1e6,max:1e6,integer:!0},{key:`delay`,label:`Delay`,min:0,max:S,integer:!0},{key:`maxAttempts`,label:`Max attempts`,min:1,max:1e3,integer:!0},{key:`backoff`,label:`Backoff`,min:0,max:C,integer:!0},{key:`timeout`,label:`Timeout`,min:0,max:C,integer:!0},{key:`ttl`,label:`TTL`,min:0,max:S,integer:!0}],n={};for(let r of t){let t=(e[r.key]??``).trim();if(!t)continue;let i=Number(t);if(!Number.isFinite(i))return{ok:!1,msg:`${r.label} must be a number`};if(r.integer&&!Number.isSafeInteger(i))return{ok:!1,msg:`${r.label} must be a whole, safe integer`};if(i<r.min||i>r.max)return{ok:!1,msg:`${r.label} must be between ${r.min} and ${r.max}`};n[r.key]=i}return{ok:!0,options:n}}function ne(e){let t=o(e);return!e&&t?`Choose a queue`:t}function re(e,t){return e==null?t?{ok:!1,msg:`Backoff strategy needs a base delay in Backoff (ms)`}:{ok:!0,backoff:void 0}:{ok:!0,backoff:t?{type:t,delay:e}:e}}function ie(e,t){return{ok:!0,msg:`Accepted ${t} job submission${t===1?``:`s`}; server returned ${e} distinct job ID${e===1?``:`s`} (deduplication may reuse existing jobs)`}}function ae(e){if(typeof e!=`object`||!e||e.ok!==!0||typeof e.id!=`string`||!e.id||e.id.length>1024)throw Error(`Add job returned a malformed success response`);return e.id}function oe(e,t){let n=e?.ids;if(typeof e!=`object`||!e||e.ok!==!0||!Array.isArray(n)||n.length!==t||n.some(e=>typeof e!=`string`||e.length===0||e.length>1024))throw Error(`Bulk add returned a malformed success response`);return n}function se(e){if(!e.trim())return{ok:!0,repeat:void 0};try{let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))return{ok:!1,msg:`Repeat must be a JSON object`};let n=t,r=new Set([`every`,`limit`,`pattern`]),i=Object.keys(n).filter(e=>!r.has(e));if(i.length)return{ok:!1,msg:`Unknown repeat option${i.length===1?``:`s`}: ${i.join(`, `)}`};if(n.pattern!==void 0)return{ok:!1,msg:`repeat.pattern is unsafe in bunqueue v2.8.57; use repeat.every or a Cron schedule`};let a=n.every;return!Number.isSafeInteger(a)||a<=0||a>S?{ok:!1,msg:`Repeat "every" must be a whole number from 1 to ${S} ms`}:n.limit!==void 0&&(!Number.isSafeInteger(n.limit)||n.limit<1)?{ok:!1,msg:`Repeat "limit" must be a whole number of at least 1`}:{ok:!0,repeat:{every:a,...typeof n.limit==`number`?{limit:n.limit}:{}}}}catch(e){return{ok:!1,msg:`Repeat is not valid JSON: ${e.message}`}}}function ce(e){let t=typeof e.backoff==`object`?e.backoff:void 0,n=e.backoffConfig??t;return{backoff:x(n?.delay??(typeof e.backoff==`number`?e.backoff:void 0)),backoffType:n?.type??``,tags:e.tags?.join(`, `)??``,groupId:e.groupId??``,ttl:x(e.ttl)}}function k(){let{data:e,error:t,refetch:i}=s(()=>f.queues(),[],{intervalMs:3e4}),o=n().state?.clone,g=o?.options??{},T=ce(g),[E,D]=(0,y.useState)(o?.queue??``),[k,le]=(0,y.useState)(o?.name??`default`),[j,ue]=(0,y.useState)(o?.dataText??`{
2
+ "hello": "world"
3
+ }`),[M,de]=(0,y.useState)(`1`),[N,fe]=(0,y.useState)(x(g.priority)),[P,pe]=(0,y.useState)(``),[F,me]=(0,y.useState)(``),[I,he]=(0,y.useState)(x(g.maxAttempts)),[L,ge]=(0,y.useState)(T.backoff),[R,_e]=(0,y.useState)(x(g.timeout)),[z,ve]=(0,y.useState)(T.ttl),[B,ye]=(0,y.useState)(``),[V,be]=(0,y.useState)(g.removeOnComplete??!1),[H,xe]=(0,y.useState)(g.removeOnFail??!1),[U,Se]=(0,y.useState)(!1),[W,Ce]=(0,y.useState)(!1),[G,we]=(0,y.useState)(T.backoffType),[K,Te]=(0,y.useState)(T.tags),[q,Ee]=(0,y.useState)(T.groupId),[De,Oe]=(0,y.useState)(``),[ke,Ae]=(0,y.useState)(``),[je,Me]=(0,y.useState)(``),[J,Y]=(0,y.useState)(!1),[X,Z]=(0,y.useState)(null),[Ne,Q]=(0,y.useState)(null),$=v(`add-job`);(0,y.useEffect)(()=>{Y(!1),Z(null),Q(null)},[$.scopeKey]);let Pe=async()=>{Z(null),Q(null);let e=E.trim(),t=ne(e);if(t){Z({ok:!1,msg:t});return}let n=k.trim();if(!n||n.length>256){Z({ok:!1,msg:`Job name must be a non-empty string of at most 256 characters`});return}let r=O(j);if(!r.ok){r.kind===`json`?Q(r.msg):Z({ok:!1,msg:r.msg});return}let i=r.data,o=te({priority:N,delay:F.trim()?``:P,maxAttempts:I,backoff:L,timeout:R,ttl:z});if(!o.ok){Z({ok:!1,msg:o.msg});return}let s=o.options.delay;if(F.trim()){let e=new Date(F).getTime();if(!Number.isFinite(e)){Z({ok:!1,msg:`Run at is not a valid date/time`});return}if(s=Math.max(0,e-Date.now()),s>S){Z({ok:!1,msg:`Run at must be within the next 365 days`});return}}let c=re(o.options.backoff,G);if(!c.ok){Z({ok:!1,msg:c.msg});return}let l=c.backoff,d=K.split(`,`).map(e=>e.trim()).filter(Boolean),p=De.split(`,`).map(e=>e.trim()).filter(Boolean),m=B.trim();if(m){let e=a(m);if(e){Z({ok:!1,msg:`Job ID: ${e}`});return}}for(let e of p){let t=a(e);if(t){Z({ok:!1,msg:`Dependency ID "${e}": ${t}`});return}}let h=se(je);if(!h.ok){Z({ok:!1,msg:h.msg});return}let g={name:n,data:i,priority:o.options.priority,delay:s,maxAttempts:o.options.maxAttempts,backoff:l,timeout:o.options.timeout,ttl:o.options.ttl,jobId:m||void 0,removeOnComplete:V||void 0,removeOnFail:H||void 0,durable:U||void 0,lifo:W||void 0,tags:d.length?d:void 0,groupId:q.trim()||void 0,dependsOn:p.length?p:void 0,uniqueKey:ke.trim()||void 0,repeat:h.repeat},_=Number(M);if(!Number.isSafeInteger(_)||_<1||_>1e4){Z({ok:!1,msg:`Count must be a whole number from 1 to 10000`});return}let v=$.begin();if(v){Y(!0);try{if(_===1){let t=ae(await f.addJob(e,g));if(!v.isCurrent())return;Z({ok:!0,msg:`Accepted job ID ${t} (it may be an existing deduplicated job)`}),u.success(`Job submission accepted`,`${e} · ${t}`)}else{let t=Array.from({length:_},()=>g),n=ee(t);if(n){v.isCurrent()&&Z({ok:!1,msg:n});return}let r=oe(await f.addJobsBulk(e,t),_);if(!v.isCurrent())return;let i=ie(new Set(r).size,_);Z(i),u.success(i.msg,`in ${e}`)}}catch(e){if(!v.isCurrent())return;Z({ok:!1,msg:e.message}),u.error(`Add job failed`,e.message)}finally{v.finish()&&Y(!1)}}};return(0,b.jsxs)(`div`,{children:[(0,b.jsx)(d,{title:`Add Job`,description:`Enqueue a job with full options.`,actions:(0,b.jsx)(r,{to:`/jobs/bulk-add`,className:`rounded-lg border border-line px-3 py-1.5 text-sm text-muted hover:bg-surface-2 hover:text-fg`,children:`Bulk import`})}),o&&(0,b.jsx)(`div`,{className:`mb-4 flex items-center gap-2 rounded-lg border border-accent/30 bg-accent/[0.06] px-4 py-2 text-sm text-accent`,children:`Pre-filled from an existing job. Review the data and options, then enqueue a fresh job.`}),(0,b.jsxs)(`form`,{className:`grid grid-cols-1 gap-6 lg:grid-cols-2`,onSubmit:e=>{e.preventDefault(),Pe()},children:[(0,b.jsxs)(l,{children:[(0,b.jsx)(c,{title:`Job`}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsxs)(_,{label:`Queue`,children:[(0,b.jsx)(h,{list:`queue-options`,"aria-label":`Queue`,name:`target-queue`,autoComplete:`off`,value:E,onChange:e=>D(e.target.value),placeholder:`queue name (existing or new)`}),(0,b.jsx)(`datalist`,{id:`queue-options`,children:(e?.queues??[]).map(e=>(0,b.jsx)(`option`,{value:e.name},e.name))})]}),(0,b.jsx)(_,{label:`Job name`,hint:`Worker routing name in Bunqueue 2.8.57; separate from the JSON payload.`,children:(0,b.jsx)(h,{name:`job-name`,autoComplete:`off`,maxLength:256,value:k,onChange:e=>le(e.target.value),placeholder:`default`})}),t&&(0,b.jsxs)(`p`,{role:`status`,className:`-mt-2 text-xs text-warning`,children:[`Existing queue suggestions unavailable — `,t.message,`. You can still enter a queue name manually.`,` `,(0,b.jsx)(`button`,{type:`button`,onClick:()=>void i(),className:`font-medium underline underline-offset-2 hover:text-fg`,children:`Retry`})]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(_,{label:`Data (JSON)`,children:(0,b.jsx)(`textarea`,{name:`job-data`,value:j,onChange:e=>ue(e.target.value),onBlur:()=>{let e=O(j);Q(e.ok?null:e.msg)},maxLength:w,spellCheck:!1,rows:7,className:`w-full rounded-lg border border-line bg-surface-2 p-3 font-mono text-sm text-fg focus:border-accent/60 focus:outline-none focus:ring-2 focus:ring-accent/30`})}),Ne&&(0,b.jsx)(`p`,{role:`alert`,className:`mt-2 text-xs text-danger`,children:Ne})]})]})]}),(0,b.jsxs)(l,{children:[(0,b.jsx)(c,{title:`Options`}),(0,b.jsxs)(`div`,{className:`grid grid-cols-2 gap-4 md:grid-cols-3`,children:[(0,b.jsx)(_,{label:`Priority`,children:(0,b.jsx)(h,{type:`number`,min:-1e6,max:1e6,step:1,name:`priority`,value:N,onChange:e=>fe(e.target.value),placeholder:`0`})}),(0,b.jsx)(_,{label:`Delay (ms)`,children:(0,b.jsx)(h,{type:`number`,min:0,max:S,step:1,name:`delay`,value:P,onChange:e=>pe(e.target.value),placeholder:`0`,disabled:F.trim()!==``})}),(0,b.jsx)(_,{label:`Run at`,hint:F.trim()?`Overrides Delay — derived from this time (local time).`:`(local time)`,children:(0,b.jsx)(h,{type:`datetime-local`,name:`run-at`,value:F,onChange:e=>me(e.target.value)})}),(0,b.jsx)(_,{label:`Max attempts`,hint:`blank = server default`,children:(0,b.jsx)(h,{type:`number`,min:1,max:1e3,step:1,name:`max-attempts`,value:I,onChange:e=>he(e.target.value),placeholder:`3`})}),(0,b.jsx)(_,{label:`Backoff (ms)`,hint:`blank = server default`,children:(0,b.jsx)(h,{type:`number`,min:0,max:C,step:1,name:`backoff`,value:L,onChange:e=>ge(e.target.value),placeholder:`1000`})}),(0,b.jsx)(_,{label:`Backoff strategy`,hint:`flat delay unless set`,children:(0,b.jsxs)(m,{name:`backoff-strategy`,value:G,onChange:e=>we(e.target.value),children:[(0,b.jsx)(`option`,{value:``,children:`flat`}),(0,b.jsx)(`option`,{value:`fixed`,children:`fixed`}),(0,b.jsx)(`option`,{value:`exponential`,children:`exponential`})]})}),(0,b.jsx)(_,{label:`Timeout (ms)`,children:(0,b.jsx)(h,{type:`number`,min:0,max:C,step:1,name:`timeout`,value:R,onChange:e=>_e(e.target.value),placeholder:`—`})}),(0,b.jsx)(_,{label:`TTL (ms)`,hint:`blank = no expiry`,children:(0,b.jsx)(h,{type:`number`,min:0,max:S,step:1,name:`ttl`,value:z,onChange:e=>ve(e.target.value),placeholder:`—`})}),(0,b.jsx)(_,{label:`Custom job ID`,children:(0,b.jsx)(h,{name:`custom-job-id`,value:B,onChange:e=>ye(e.target.value),placeholder:`idempotency key`})})]}),(0,b.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-6`,children:[(0,b.jsx)(A,{label:`removeOnComplete`,checked:V,onChange:be}),(0,b.jsx)(A,{label:`removeOnFail`,checked:H,onChange:xe}),(0,b.jsx)(A,{label:`durable`,checked:U,onChange:Se}),(0,b.jsx)(A,{label:`lifo`,checked:W,onChange:Ce})]}),(0,b.jsxs)(`div`,{className:`mt-4 border-t border-line pt-4`,children:[(0,b.jsx)(`div`,{className:`mb-3 text-[11px] uppercase tracking-wider text-faint`,children:`Advanced`}),(0,b.jsxs)(`div`,{className:`grid grid-cols-2 gap-4 md:grid-cols-3`,children:[(0,b.jsx)(_,{label:`Tags`,hint:`comma-separated`,children:(0,b.jsx)(h,{name:`tags`,value:K,onChange:e=>Te(e.target.value),placeholder:`email, urgent`})}),(0,b.jsx)(_,{label:`Group ID`,children:(0,b.jsx)(h,{name:`group-id`,value:q,onChange:e=>Ee(e.target.value),placeholder:`—`})}),(0,b.jsx)(_,{label:`Unique key`,hint:`dedup key`,children:(0,b.jsx)(h,{name:`unique-key`,value:ke,onChange:e=>Ae(e.target.value),placeholder:`—`})}),(0,b.jsx)(_,{label:`Depends on`,hint:`parent job ids, comma-separated`,children:(0,b.jsx)(h,{name:`depends-on`,value:De,onChange:e=>Oe(e.target.value),placeholder:`job-id-1, job-id-2`})}),(0,b.jsx)(`div`,{className:`col-span-2 md:col-span-3`,children:(0,b.jsx)(_,{label:`Repeat policy (JSON)`,hint:`v2.8.57-safe form: e.g. {"every":60000,"limit":10}. Use Cron Manager for cron patterns.`,children:(0,b.jsx)(`textarea`,{name:`repeat-policy`,value:je,onChange:e=>Me(e.target.value),rows:2,spellCheck:!1,placeholder:`{"every": 60000}`,className:`w-full rounded-lg border border-line bg-surface-2 px-3 py-2 font-mono text-xs text-fg placeholder:text-faint focus:border-accent/60 focus:outline-none focus:ring-2 focus:ring-accent/30`})})})]})]})]}),(0,b.jsxs)(`div`,{className:`flex flex-wrap items-end gap-3 lg:col-span-2`,children:[(0,b.jsx)(`div`,{className:`w-28`,children:(0,b.jsx)(_,{label:`Count`,hint:`1–10000`,children:(0,b.jsx)(h,{type:`number`,min:1,max:1e4,step:1,name:`count`,value:M,onChange:e=>de(e.target.value)})})}),(0,b.jsx)(p,{type:`submit`,variant:`accent`,disabled:J,children:J?`Adding…`:`Add job`}),X&&(0,b.jsx)(`span`,{role:X.ok?`status`:`alert`,className:X.ok?`text-sm text-success`:`text-sm text-danger`,children:X.msg})]})]})]})}function A({label:e,checked:t,onChange:n}){return(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(g,{checked:t,onChange:n,label:e}),(0,b.jsx)(`span`,{className:`font-mono text-xs text-muted`,children:e})]})}export{k as AddJob,T as MAX_JOB_DATA_BYTES,w as MAX_JOB_DATA_CHARS,oe as acceptedBulkIds,O as parseJobData,se as parseRepeat,ne as queueNameError,E as utf8ByteLength};