@knoflows/engine 0.1.0-alpha.14 → 0.1.0-alpha.15

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 (111) hide show
  1. package/dist/engine.js +18 -18
  2. package/dist/migrations/20260919073531_tense_grey_gargoyle/migration.sql +1 -0
  3. package/dist/migrations/20260919073531_tense_grey_gargoyle/snapshot.json +1348 -0
  4. package/dist/migrations/20260919081637_fearless_warlock/migration.sql +1 -0
  5. package/dist/migrations/20260919081637_fearless_warlock/snapshot.json +1358 -0
  6. package/package.json +2 -2
  7. package/static/apple-touch-icon.png +0 -0
  8. package/static/assets/i18n/en.json +23 -6
  9. package/static/assets/i18n/es.json +23 -6
  10. package/static/chunk-1Oqdt_Gp.js +1 -0
  11. package/static/{chunk-BGD9WiFM.js → chunk-1eeePIP1.js} +1 -1
  12. package/static/chunk-37yFTUcY.js +1 -0
  13. package/static/chunk-7MZQgksi.js +1 -0
  14. package/static/chunk-7VyHTRp_.js +1 -0
  15. package/static/chunk-B0V1VBvY.js +1 -0
  16. package/static/chunk-BH5zvE8A.js +1 -0
  17. package/static/chunk-BZxs3wP7.js +1 -0
  18. package/static/chunk-B_L2A3hm.js +1 -0
  19. package/static/chunk-BbIC5sO2.js +1 -0
  20. package/static/chunk-BeWWb9rm.js +1 -0
  21. package/static/chunk-BnD2l9n3.js +1 -0
  22. package/static/chunk-Bp8u1CCw.js +1 -0
  23. package/static/chunk-BpOumnMU.js +1 -0
  24. package/static/chunk-BuPc66MS.js +1 -0
  25. package/static/chunk-C4Ee3umI.js +1 -0
  26. package/static/chunk-C5n_oTWP.js +1 -0
  27. package/static/chunk-CF4gc4Im.js +1 -0
  28. package/static/chunk-CM8oLO7n.js +1 -0
  29. package/static/chunk-CXGgR5M1.js +1 -0
  30. package/static/chunk-CiJRU6lo.js +1 -0
  31. package/static/chunk-Cn95hfnf.js +1 -0
  32. package/static/chunk-Cq09TrKP.js +1 -0
  33. package/static/chunk-Cx2n09Ng.js +1 -0
  34. package/static/chunk-DFoFQkTa.js +1 -0
  35. package/static/chunk-DMAf3Qir.js +66 -0
  36. package/static/chunk-DYARU-G0.js +1 -0
  37. package/static/chunk-DZhQ2iEt.js +1 -0
  38. package/static/chunk-D_DUAV49.js +1 -0
  39. package/static/chunk-DgEO14wO.js +1 -0
  40. package/static/{chunk-CjitpVjI.js → chunk-DphMF2VB.js} +1 -1
  41. package/static/chunk-DxZsQqxS.js +1 -0
  42. package/static/chunk-GQe0l3Uh.js +1 -0
  43. package/static/chunk-J9qS04nF.js +1 -0
  44. package/static/chunk-dOUa0Vhs.js +1 -0
  45. package/static/chunk-nx1xncBD.js +1 -0
  46. package/static/chunk-q9oVn_qj.js +5 -0
  47. package/static/chunk-vYeIWxg4.js +1 -0
  48. package/static/chunk-yxqIQom4.js +1 -0
  49. package/static/favicon-16x16.png +0 -0
  50. package/static/favicon-32x32.png +0 -0
  51. package/static/favicon.ico +0 -0
  52. package/static/favicon.svg +12 -0
  53. package/static/icon-192.png +0 -0
  54. package/static/icon-512.png +0 -0
  55. package/static/index.html +30 -5
  56. package/static/main-2ZW45HAE.js +248 -0
  57. package/static/media/inter-latin-400-normal-55WT6UWF.woff2 +0 -0
  58. package/static/media/inter-latin-400-normal-FR5HOXA4.woff +0 -0
  59. package/static/media/inter-latin-500-normal-W62DVTXI.woff2 +0 -0
  60. package/static/media/inter-latin-500-normal-ZNGIZ2YB.woff +0 -0
  61. package/static/media/inter-latin-600-normal-R6Y2SZCR.woff2 +0 -0
  62. package/static/media/inter-latin-600-normal-ZYHV6QZT.woff +0 -0
  63. package/static/media/jetbrains-mono-latin-500-normal-ETEQEOVZ.woff +0 -0
  64. package/static/media/jetbrains-mono-latin-500-normal-V4XIP5OW.woff2 +0 -0
  65. package/static/media/space-grotesk-latin-500-normal-GESQWJQV.woff2 +0 -0
  66. package/static/media/space-grotesk-latin-500-normal-HV4TE4RA.woff +0 -0
  67. package/static/media/space-grotesk-latin-700-normal-6Z7GHSI6.woff +0 -0
  68. package/static/media/space-grotesk-latin-700-normal-I3MXRIUZ.woff2 +0 -0
  69. package/static/nz-theme-dark.css +1 -0
  70. package/static/nz-theme.css +1 -0
  71. package/static/styles-JGCTKGGH.css +1 -0
  72. package/static/chunk-7nUPxia9.js +0 -1
  73. package/static/chunk-B5OZfu7U.js +0 -1
  74. package/static/chunk-B6yhN6h_.js +0 -1
  75. package/static/chunk-B8xDFyOW.js +0 -1
  76. package/static/chunk-BCQYv6zO.js +0 -1
  77. package/static/chunk-BRQzRdUy.js +0 -1
  78. package/static/chunk-BT1tqKUa.js +0 -1
  79. package/static/chunk-BbMJvJVR.js +0 -5
  80. package/static/chunk-Bdf1gK_x.js +0 -1
  81. package/static/chunk-BgZJenki.js +0 -1
  82. package/static/chunk-BhOOhcFV.js +0 -1
  83. package/static/chunk-BphvnLVV.js +0 -1
  84. package/static/chunk-C4ekQTdr.js +0 -1
  85. package/static/chunk-CMCOXbTF.js +0 -1
  86. package/static/chunk-CVunAaEq.js +0 -1
  87. package/static/chunk-CWPY-qdb.js +0 -1
  88. package/static/chunk-C_RmBwoX.js +0 -1
  89. package/static/chunk-CkEV4Kdw.js +0 -1
  90. package/static/chunk-CmjHhm0_.js +0 -1
  91. package/static/chunk-Cprdc3WE.js +0 -1
  92. package/static/chunk-CsI-lLXP.js +0 -1
  93. package/static/chunk-D1s098WO.js +0 -1
  94. package/static/chunk-D5uYKhQI.js +0 -1
  95. package/static/chunk-DCwYXBAy.js +0 -1
  96. package/static/chunk-DDsAcugC.js +0 -66
  97. package/static/chunk-DWyVd0g2.js +0 -1
  98. package/static/chunk-Dn9gu9_q.js +0 -1
  99. package/static/chunk-Doaes0Yg.js +0 -7
  100. package/static/chunk-Dqf92YVW.js +0 -1
  101. package/static/chunk-Oq0qp-a6.js +0 -1
  102. package/static/chunk-PTPh9FQ2.js +0 -1
  103. package/static/chunk-PfPOHfb1.js +0 -1
  104. package/static/chunk-WIfL3i6D.js +0 -1
  105. package/static/chunk-ZTjXJrt4.js +0 -1
  106. package/static/chunk-bbBn-iZU.js +0 -1
  107. package/static/chunk-gl_-d0La.js +0 -1
  108. package/static/chunk-hTFsYp4X.js +0 -1
  109. package/static/chunk-szOy8Im7.js +0 -1
  110. package/static/main-OG6DVLH6.js +0 -249
  111. package/static/styles-4UB6RUIG.css +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knoflows/engine",
3
- "version": "0.1.0-alpha.14",
3
+ "version": "0.1.0-alpha.15",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "bin": {
@@ -38,7 +38,7 @@
38
38
  "test:cursor-agent": "tsx src/providers/agent/cursor-agent-provider.test.ts",
39
39
  "test:preview-models": "tsx src/providers/agent/preview-models.test.ts",
40
40
  "test:provider-status": "tsx src/providers/provider-status.test.ts",
41
- "test:runner": "tsx src/git/worktree-paths.test.ts && tsx src/git/repo-fetch-lock.service.test.ts && tsx src/git/git.service.test.ts && tsx src/runner/extract.test.ts && tsx src/runner/test/resolve-view-subjects.test.ts && tsx src/runner/test/workflow-runner.agent-interaction.test.ts && tsx src/runner/test/workflow-runner.git-shell-provider.test.ts && tsx src/runner/test/workflow-runner.loop-subworkflow.test.ts && tsx src/runner/test/workflow-runner.batch-aggregate.test.ts && tsx src/runner/test/workflow-runner.agent-output-validation.test.ts && tsx src/runner/test/workflow-runner.extended-action.test.ts && tsx src/runner/test/workflow-runner.registry-dispatch.test.ts && tsx src/runner/test/workflow-runner.retry.test.ts && tsx src/runner/test/workflow-runner.cancel.test.ts && tsx src/runner/test/resolve-context-files.test.ts && tsx src/runner/test/workflow-runner.context-files.test.ts && tsx src/runner/test/workflow-runner.worktrees.test.ts && tsx src/runner/test/workflow-runner.extract.test.ts && tsx src/runner/test/agent-concurrency-gate.service.test.ts && tsx src/runner/test/workflow-runner.agent-concurrency.test.ts",
41
+ "test:runner": "tsx src/git/worktree-paths.test.ts && tsx src/git/repo-fetch-lock.service.test.ts && tsx src/git/git.service.test.ts && tsx src/runner/extract.test.ts && tsx src/runner/test/resolve-view-subjects.test.ts && tsx src/runner/test/workflow-runner.agent-interaction.test.ts && tsx src/runner/test/workflow-runner.git-shell-provider.test.ts && tsx src/runner/test/workflow-runner.loop-subworkflow.test.ts && tsx src/runner/test/workflow-runner.batch-aggregate.test.ts && tsx src/runner/test/workflow-runner.agent-output-validation.test.ts && tsx src/runner/test/workflow-runner.comment-review.test.ts && tsx src/runner/test/workflow-runner.extended-action.test.ts && tsx src/runner/test/workflow-runner.registry-dispatch.test.ts && tsx src/runner/test/workflow-runner.retry.test.ts && tsx src/runner/test/workflow-runner.positioned-comments.test.ts && tsx src/runner/test/workflow-runner.cancel.test.ts && tsx src/runner/test/resolve-context-files.test.ts && tsx src/runner/test/workflow-runner.context-files.test.ts && tsx src/runner/test/workflow-runner.worktrees.test.ts && tsx src/runner/test/workflow-runner.extract.test.ts && tsx src/runner/test/agent-concurrency-gate.service.test.ts && tsx src/runner/test/workflow-runner.agent-concurrency.test.ts",
42
42
  "test:api": "tsx src/api/test/api-test.ts && tsx src/api/test/boot-empty-secrets.test.ts && tsx src/api/test/providers-status.test.ts && tsx src/api/test/settings.test.ts && tsx src/api/test/preview-models.test.ts && tsx src/api/test/query-templates.test.ts && tsx src/api/test/extended-actions.test.ts && tsx src/api/test/view-binding-shortcuts.test.ts && tsx src/api/test/workflow-library.test.ts && tsx src/api/test/workflow-export-import.test.ts && tsx src/api/test/generate-workflow-instructions.test.ts && tsx src/api/test/context-files.test.ts && tsx src/api/test/filesystem.test.ts && tsx src/api/test/local-repositories.test.ts",
43
43
  "test:workflows-ids": "tsx src/api/workflows/assign-missing-ids.test.ts",
44
44
  "test:listen-port": "tsx src/listen-port.test.ts",
Binary file
@@ -8,6 +8,8 @@
8
8
  "nav.settings": "Settings",
9
9
  "shell.jobs": "Jobs",
10
10
  "shell.manage": "Manage",
11
+ "shell.theme.toDark": "Switch to dark theme",
12
+ "shell.theme.toLight": "Switch to light theme",
11
13
  "manage.tab.workflows": "Workflows",
12
14
  "manage.tab.views": "Views & Shortcuts",
13
15
  "manage.tab.providers": "Providers",
@@ -52,11 +54,13 @@
52
54
  "local-repos.column.name": "Name",
53
55
  "local-repos.column.localPath": "Repository path",
54
56
  "local-repos.column.worktreeBasePath": "Worktree base",
57
+ "local-repos.column.defaultBranch": "Default branch",
55
58
  "local-repos.column.actions": "Actions",
56
59
  "local-repos.form.name": "Name",
57
60
  "local-repos.form.localPath": "Repository path",
58
61
  "local-repos.form.worktreeBasePath": "Worktree base path (optional)",
59
62
  "local-repos.form.worktreeBaseHint": "Defaults to a sibling folder next to the repository. Do not nest worktrees inside the repo itself.",
63
+ "local-repos.form.defaultBranch": "Default branch (optional)",
60
64
  "local-repos.loadFailed": "Failed to load local repositories",
61
65
  "local-repos.saveFailed": "Failed to save local repository",
62
66
  "local-repos.deleteFailed": "Failed to delete local repository",
@@ -119,10 +123,7 @@
119
123
  "common.cancel": "Cancel",
120
124
  "common.loading": "Loading…",
121
125
  "common.errorGeneric": "Something went wrong",
122
- "jobs.title": "Knoflows — Start a Job",
123
- "jobs.lede": "Pick a workflow that runs one item at a time and start a Job. Watching and resume live on the Job detail page.",
124
126
  "jobs.start.heading": "Start a Job",
125
- "jobs.start.workflow": "Workflow",
126
127
  "jobs.start.subjectId": "subjectId",
127
128
  "jobs.start.subjectIdPlaceholder": "e.g. T-1",
128
129
  "jobs.start.button": "Start",
@@ -138,10 +139,16 @@
138
139
  "jobs.status.cancelled": "Cancelled",
139
140
  "jobs.resume.heading": "Waiting for human",
140
141
  "jobs.resume.noQuestions": "No questions on the waiting event yet.",
141
- "jobs.resume.jsonLabel": "Resume response (JSON)",
142
+ "jobs.resume.additionalComments": "Additional comments for the agent",
143
+ "jobs.resume.comment": "Comment (optional)",
144
+ "jobs.resume.approve": "Approve",
145
+ "jobs.resume.reject": "Reject",
142
146
  "jobs.resume.button": "Resume",
143
147
  "jobs.resume.submitting": "Submitting…",
144
- "jobs.resume.invalidJson": "Resume body must be valid JSON",
148
+ "jobs.resume.commentReview.include": "Include",
149
+ "jobs.resume.commentReview.selectAll": "Select all",
150
+ "jobs.resume.commentReview.selectNone": "Select none",
151
+ "jobs.resume.commentReview.empty": "No comment suggestions to review.",
145
152
  "jobs.failed.fallback": "Job failed",
146
153
  "jobs.errors.loadWorkflows": "Failed to load workflows",
147
154
  "jobs.errors.subjectIdRequired": "subjectId is required for this workflow",
@@ -152,6 +159,7 @@
152
159
  "jobs.errors.cancelFailed": "Failed to cancel job",
153
160
  "jobs.errors.refreshFailed": "Failed to refresh job",
154
161
  "jobs.detail.backToStart": "Back to jobs",
162
+ "jobs.detail.copyId": "Copy job id",
155
163
  "jobs.detail.loadFailed": "Failed to load job",
156
164
  "jobs.detail.workflowLoadFailed": "Failed to load workflow definition for this job",
157
165
  "jobs.detail.workflowMissing": "Workflow definition is unavailable; step list cannot be shown.",
@@ -160,6 +168,8 @@
160
168
  "jobs.detail.jumpToCurrent": "Jump to current step",
161
169
  "jobs.detail.retryWorkflow": "Retry entire workflow",
162
170
  "jobs.detail.retryStep": "Retry this step",
171
+ "jobs.detail.reviewAndRetry": "Review and retry",
172
+ "jobs.detail.reviewAndRetryHint": "Comments that already posted are unchecked. Rechecking one will post it again.",
163
173
  "jobs.detail.retrying": "Retrying…",
164
174
  "jobs.detail.cancel": "Cancel",
165
175
  "jobs.detail.cancelling": "Cancelling…",
@@ -204,7 +214,6 @@
204
214
  "jobs.list.filterByStatus": "Filter by status",
205
215
  "jobs.list.filterByWorkflow": "Filter by workflow",
206
216
  "jobs.list.showChildJobs": "Show batch/child jobs",
207
- "jobs.list.startButton": "Start job",
208
217
  "jobs.list.empty": "No jobs match these filters.",
209
218
  "jobs.list.loadFailed": "Failed to load jobs",
210
219
  "jobs.list.filterAll": "All",
@@ -220,6 +229,7 @@
220
229
  "workflow-editor.titleEdit": "Edit workflow · {{name}}",
221
230
  "workflow-editor.backToWorkflows": "Back to workflows",
222
231
  "workflow-editor.export": "Export",
232
+ "workflow-editor.start": "Start",
223
233
  "workflow-editor.exportFailed": "Failed to export workflow",
224
234
  "workflow-editor.loading": "Loading…",
225
235
  "workflow-editor.validation": "Validation",
@@ -271,6 +281,9 @@
271
281
  "step-list.selectContextFiles": "Select context files",
272
282
  "step-list.outputFormat.label": "Output format",
273
283
  "step-list.interaction.label": "Interaction",
284
+ "step-list.sourceStepIds.label": "Suggestion sources",
285
+ "step-list.sourceStepIds.hint": "Prior agent steps whose output format is comment suggestions.",
286
+ "step-list.sourceStepIds.empty": "Add an earlier agent step with comment suggestions output first.",
274
287
  "step-list.notify": "Notify",
275
288
  "step-list.command": "Command",
276
289
  "step-list.operation": "Operation",
@@ -315,6 +328,7 @@
315
328
  "step-list.interaction.questionnaire": "Questionnaire",
316
329
  "step-list.interaction.confirmation": "Confirmation",
317
330
  "step-list.interaction.conversation": "Conversation",
331
+ "step-list.interaction.comment_review": "Comment review",
318
332
  "step-list.notifyMode.inherit": "inherit (undefined)",
319
333
  "step-list.notifyMode.on": "on (true)",
320
334
  "step-list.notifyMode.off": "off (false)",
@@ -327,6 +341,8 @@
327
341
  "step-list.createWorktree.newBranch": "New branch",
328
342
  "step-list.createWorktree.existingBranch": "Existing branch",
329
343
  "step-list.createWorktree.repoPath": "Repository path",
344
+ "step-list.createWorktree.catalogPlaceholder": "Choose from catalog",
345
+ "step-list.createWorktree.browseManually": "Or browse manually",
330
346
  "step-list.createWorktree.baseBranch": "Base branch",
331
347
  "step-list.createWorktree.branchName": "Branch name",
332
348
  "step-list.createWorktree.branch": "Branch",
@@ -462,6 +478,7 @@
462
478
  "workflows.list.filterBySubjectHandling": "Filter by items",
463
479
  "workflows.list.filterAll": "All",
464
480
  "workflows.list.edit": "Edit",
481
+ "workflows.list.start": "Start",
465
482
  "workflows.list.delete": "Delete",
466
483
  "workflows.list.deleteConfirm": "Are you sure you want to delete this workflow?",
467
484
  "workflows.list.deleteFailed": "Failed to delete workflow",
@@ -8,6 +8,8 @@
8
8
  "nav.settings": "Ajustes",
9
9
  "shell.jobs": "Trabajos",
10
10
  "shell.manage": "Administrar",
11
+ "shell.theme.toDark": "Cambiar a tema oscuro",
12
+ "shell.theme.toLight": "Cambiar a tema claro",
11
13
  "manage.tab.workflows": "Flujos",
12
14
  "manage.tab.views": "Vistas y atajos",
13
15
  "manage.tab.providers": "Proveedores",
@@ -52,11 +54,13 @@
52
54
  "local-repos.column.name": "Nombre",
53
55
  "local-repos.column.localPath": "Ruta del repositorio",
54
56
  "local-repos.column.worktreeBasePath": "Base de worktrees",
57
+ "local-repos.column.defaultBranch": "Rama por defecto",
55
58
  "local-repos.column.actions": "Acciones",
56
59
  "local-repos.form.name": "Nombre",
57
60
  "local-repos.form.localPath": "Ruta del repositorio",
58
61
  "local-repos.form.worktreeBasePath": "Ruta base de worktrees (opcional)",
59
62
  "local-repos.form.worktreeBaseHint": "Por defecto es una carpeta hermana junto al repositorio. No anides worktrees dentro del propio repo.",
63
+ "local-repos.form.defaultBranch": "Rama por defecto (opcional)",
60
64
  "local-repos.loadFailed": "No se pudieron cargar los repositorios locales",
61
65
  "local-repos.saveFailed": "No se pudo guardar el repositorio local",
62
66
  "local-repos.deleteFailed": "No se pudo eliminar el repositorio local",
@@ -119,10 +123,7 @@
119
123
  "common.cancel": "Cancelar",
120
124
  "common.loading": "Cargando…",
121
125
  "common.errorGeneric": "Algo salió mal",
122
- "jobs.title": "Knoflows — Iniciar un trabajo",
123
- "jobs.lede": "Elige un flujo que trabaja de uno en uno e inicia un trabajo. La observación y la reanudación viven en la página de detalle del trabajo.",
124
126
  "jobs.start.heading": "Iniciar un trabajo",
125
- "jobs.start.workflow": "Flujo de trabajo",
126
127
  "jobs.start.subjectId": "subjectId",
127
128
  "jobs.start.subjectIdPlaceholder": "p. ej. T-1",
128
129
  "jobs.start.button": "Iniciar",
@@ -138,10 +139,16 @@
138
139
  "jobs.status.cancelled": "Cancelado",
139
140
  "jobs.resume.heading": "Esperando intervención humana",
140
141
  "jobs.resume.noQuestions": "Aún no hay preguntas en el evento de espera.",
141
- "jobs.resume.jsonLabel": "Respuesta de reanudación (JSON)",
142
+ "jobs.resume.additionalComments": "Comentarios adicionales para el agente",
143
+ "jobs.resume.comment": "Comentario (opcional)",
144
+ "jobs.resume.approve": "Aprobar",
145
+ "jobs.resume.reject": "Rechazar",
142
146
  "jobs.resume.button": "Reanudar",
143
147
  "jobs.resume.submitting": "Enviando…",
144
- "jobs.resume.invalidJson": "El cuerpo de reanudación debe ser JSON válido",
148
+ "jobs.resume.commentReview.include": "Incluir",
149
+ "jobs.resume.commentReview.selectAll": "Seleccionar todas",
150
+ "jobs.resume.commentReview.selectNone": "Seleccionar ninguna",
151
+ "jobs.resume.commentReview.empty": "No hay sugerencias de comentarios para revisar.",
145
152
  "jobs.failed.fallback": "El trabajo falló",
146
153
  "jobs.errors.loadWorkflows": "No se pudieron cargar los flujos",
147
154
  "jobs.errors.subjectIdRequired": "subjectId es obligatorio para este flujo",
@@ -152,6 +159,7 @@
152
159
  "jobs.errors.cancelFailed": "No se pudo cancelar el trabajo",
153
160
  "jobs.errors.refreshFailed": "No se pudo actualizar el trabajo",
154
161
  "jobs.detail.backToStart": "Volver a trabajos",
162
+ "jobs.detail.copyId": "Copiar id del trabajo",
155
163
  "jobs.detail.loadFailed": "No se pudo cargar el trabajo",
156
164
  "jobs.detail.workflowLoadFailed": "No se pudo cargar la definición del flujo para este trabajo",
157
165
  "jobs.detail.workflowMissing": "La definición del flujo no está disponible; no se puede mostrar la lista de pasos.",
@@ -160,6 +168,8 @@
160
168
  "jobs.detail.jumpToCurrent": "Ir al paso actual",
161
169
  "jobs.detail.retryWorkflow": "Reintentar todo el flujo",
162
170
  "jobs.detail.retryStep": "Reintentar este paso",
171
+ "jobs.detail.reviewAndRetry": "Revisar y reintentar",
172
+ "jobs.detail.reviewAndRetryHint": "Los comentarios que ya se publicaron aparecen desmarcados. Volver a marcar uno lo publicará de nuevo.",
163
173
  "jobs.detail.retrying": "Reintentando…",
164
174
  "jobs.detail.cancel": "Cancelar",
165
175
  "jobs.detail.cancelling": "Cancelando…",
@@ -204,7 +214,6 @@
204
214
  "jobs.list.filterByStatus": "Filtrar por estado",
205
215
  "jobs.list.filterByWorkflow": "Filtrar por flujo",
206
216
  "jobs.list.showChildJobs": "Mostrar trabajos de lote e hijos",
207
- "jobs.list.startButton": "Iniciar trabajo",
208
217
  "jobs.list.empty": "Ningún trabajo coincide con estos filtros.",
209
218
  "jobs.list.loadFailed": "No se pudieron cargar los trabajos",
210
219
  "jobs.list.filterAll": "Todos",
@@ -221,6 +230,7 @@
221
230
  "workflow-editor.titleEdit": "Editar flujo · {{name}}",
222
231
  "workflow-editor.backToWorkflows": "Volver a flujos",
223
232
  "workflow-editor.export": "Exportar",
233
+ "workflow-editor.start": "Iniciar",
224
234
  "workflow-editor.exportFailed": "No se pudo exportar el flujo",
225
235
  "workflow-editor.validation": "Validación",
226
236
  "workflow-editor.basics": "Básicos",
@@ -271,6 +281,9 @@
271
281
  "step-list.selectContextFiles": "Seleccionar archivos de contexto",
272
282
  "step-list.outputFormat.label": "Formato de salida",
273
283
  "step-list.interaction.label": "Interacción",
284
+ "step-list.sourceStepIds.label": "Fuentes de sugerencias",
285
+ "step-list.sourceStepIds.hint": "Pasos de agente anteriores cuyo formato de salida es sugerencias de comentarios.",
286
+ "step-list.sourceStepIds.empty": "Añade antes un paso de agente con formato de sugerencias de comentarios.",
274
287
  "step-list.notify": "Notificar",
275
288
  "step-list.command": "Comando",
276
289
  "step-list.operation": "Operación",
@@ -315,6 +328,7 @@
315
328
  "step-list.interaction.questionnaire": "questionnaire",
316
329
  "step-list.interaction.confirmation": "confirmation",
317
330
  "step-list.interaction.conversation": "conversation",
331
+ "step-list.interaction.comment_review": "comment_review",
318
332
  "step-list.notifyMode.inherit": "inherit (undefined)",
319
333
  "step-list.notifyMode.on": "on (true)",
320
334
  "step-list.notifyMode.off": "off (false)",
@@ -327,6 +341,8 @@
327
341
  "step-list.createWorktree.newBranch": "Rama nueva",
328
342
  "step-list.createWorktree.existingBranch": "Rama existente",
329
343
  "step-list.createWorktree.repoPath": "Ruta del repositorio",
344
+ "step-list.createWorktree.catalogPlaceholder": "Elegir del catálogo",
345
+ "step-list.createWorktree.browseManually": "O examinar manualmente",
330
346
  "step-list.createWorktree.baseBranch": "Rama base",
331
347
  "step-list.createWorktree.branchName": "Nombre de rama",
332
348
  "step-list.createWorktree.branch": "Rama",
@@ -462,6 +478,7 @@
462
478
  "workflows.list.filterBySubjectHandling": "Filtrar por elementos",
463
479
  "workflows.list.filterAll": "Todos",
464
480
  "workflows.list.edit": "Editar",
481
+ "workflows.list.start": "Iniciar",
465
482
  "workflows.list.delete": "Eliminar",
466
483
  "workflows.list.deleteConfirm": "¿Seguro que quieres eliminar este flujo?",
467
484
  "workflows.list.deleteFailed": "No se pudo eliminar el flujo",
@@ -0,0 +1 @@
1
+ import {f}from'./chunk-J9qS04nF.js';import {w,g}from'./chunk-D_DUAV49.js';import'./chunk-DMAf3Qir.js';import {W,I}from'./chunk-C4Ee3umI.js';import {L as Lt,u as ut,p as pc,a as as,d as dc,K as Kl,c as cc,J as Ji,l as ls}from'./chunk-yxqIQom4.js';import'./chunk-DphMF2VB.js';import {Q as QE,p as lh,C,$,V as Ve,b as at,U as p,q as qo,H as Hw,u as ue$1,ac as Ng,c as bi,d as $8,Y as M5,v as v3,Z as pf,a0 as bd,a1 as sp,a2 as fp,K as Kt,j as _i,k as vw,R as Rw,l as Kc,m as gh,n as bD,w as gI,P as Ph,O as Ow,x as ch,z as nl,B as _D,E as VD,N as ND,D as xD,L as LD,G as ah,I as xw,J as Pu,M as Lu}from'./main-2ZW45HAE.js';var de=t=>["/jobs",t],pe=(t,d)=>d.id;function ce(t,d){t&1&&(_i(0,"p",3),vw(1),Rw(2,"transloco"),Kc()),t&2&&(gI(),Ph(Ow(2,1,"common.loading")));}function me(t,d){if(t&1&&(_i(0,"p",4),vw(1),Kc()),t&2){let e=VD();gI(),Ph(e.loadError());}}function he(t,d){if(t&1&&(_i(0,"p",5),vw(1),Kc()),t&2){let e=VD(2);gI(),Ph(e.actionError());}}function ue(t,d){t&1&&(_i(0,"p",6),vw(1),Rw(2,"transloco"),Kc()),t&2&&(gI(),Ph(Ow(2,1,"worktrees.activeWarning")));}function fe(t,d){t&1&&(_i(0,"p",7),vw(1),Rw(2,"transloco"),Kc()),t&2&&(gI(),Ph(Ow(2,1,"worktrees.emptyState")));}function ge(t,d){if(t&1){let e=LD();_i(0,"tr")(1,"td")(2,"label",9),gh("nzCheckedChange",function(l){let b=Pu(e).$implicit,se=VD(3);return Lu(se.toggleSelected(b.id,l))}),Kc()(),_i(3,"td")(4,"a",10),vw(5),Kc()(),_i(6,"td"),vw(7),Kc(),_i(8,"td"),vw(9),Kc(),_i(10,"td",11),vw(11),Kc(),_i(12,"td")(13,"nz-tag",12),vw(14),Rw(15,"transloco"),Kc()(),_i(16,"td"),vw(17),Kc()();}if(t&2){let e=d.$implicit,i=VD(3);ah("data-testid","worktree-row-"+e.id),gI(2),ch("nzChecked",i.isSelected(e.id)),ah("data-testid","worktree-select-"+e.id),gI(2),ch("routerLink",xw(15,de,e.id)),ah("data-testid","worktree-job-"+e.id),gI(),Ph(e.id),gI(2),Ph(i.repoName(e)),gI(2),Ph(e.branch??"\u2014"),gI(2),Ph(e.worktreePath),gI(2),ch("ngClass",i.jobStatusTagClass(e.status,i.theme.theme())),ah("data-testid","worktree-status-"+e.id),gI(),Ph(Ow(15,13,i.statusKey(e.status))),gI(3),Ph(e.createdAt);}}function Ce(t,d){if(t&1&&(_i(0,"nz-table",8)(1,"thead")(2,"tr"),lh(3,"th"),_i(4,"th"),vw(5),Rw(6,"transloco"),Kc(),_i(7,"th"),vw(8),Rw(9,"transloco"),Kc(),_i(10,"th"),vw(11),Rw(12,"transloco"),Kc(),_i(13,"th"),vw(14),Rw(15,"transloco"),Kc(),_i(16,"th"),vw(17),Rw(18,"transloco"),Kc(),_i(19,"th"),vw(20),Rw(21,"transloco"),Kc()()(),_i(22,"tbody"),ND(23,ge,18,17,"tr",null,pe),Kc()()),t&2){let e=VD(2);ch("nzData",e.jobs())("nzShowPagination",false),gI(5),Ph(Ow(6,8,"worktrees.column.job")),gI(3),Ph(Ow(9,10,"worktrees.column.repository")),gI(3),Ph(Ow(12,12,"worktrees.column.branch")),gI(3),Ph(Ow(15,14,"worktrees.column.path")),gI(3),Ph(Ow(18,16,"worktrees.column.status")),gI(3),Ph(Ow(21,18,"worktrees.column.created")),gI(3),xD(e.jobs());}}function xe(t,d){if(t&1&&(bD(0,he,2,1,"p",5),bD(1,ue,3,3,"p",6),bD(2,fe,3,3,"p",7)(3,Ce,25,20,"nz-table",8)),t&2){let e=VD();_D(e.actionError()?0:-1),gI(),_D(e.selectedHasActive()?1:-1),gI(),_D(e.jobs().length===0?2:3);}}var ae=(()=>{class t{constructor(){this.jobsApi=C($),this.reposApi=C(f),this.transloco=C(Ve),this.destroyRef=C(at),this.theme=C(p),this.jobStatusTagClass=w,this.jobs=qo([]),this.repos=qo([]),this.selectedIds=qo([]),this.loading=qo(true),this.loadError=qo(null),this.actionError=qo(null),this.deleting=qo(false),this.selectedHasActive=Hw(()=>this.selectedJobs().some(e=>!g(e.status))),this.selectedJobs=Hw(()=>{let e=new Set(this.selectedIds());return this.jobs().filter(i=>e.has(i.id))}),this.reload();}statusKey(e){return `jobs.status.${e}`}repoName(e){return this.repos().find(l=>be(e,l))?.name??"\u2014"}isSelected(e){return this.selectedIds().includes(e)}toggleSelected(e,i){this.selectedIds.update(l=>i?l.includes(e)?l:[...l,e]:l.filter(b=>b!==e)),this.actionError.set(null);}deleteSelected(){if(!(this.deleting()||this.selectedIds().length===0)){if(this.selectedHasActive()){this.actionError.set(this.transloco.translate("worktrees.activeWarning"));return}this.deleting.set(true),this.actionError.set(null),this.jobsApi.deleteWorktrees(this.selectedIds()).pipe(ue$1(this.destroyRef)).subscribe({next:()=>{this.deleting.set(false),this.selectedIds.set([]),this.reload();},error:e=>{this.deleting.set(false),this.actionError.set(this.errorMessage(e,this.transloco.translate("worktrees.deleteFailed")));}});}}reload(){this.loading.set(true),this.loadError.set(null),Ng({jobs:this.jobsApi.list({liveWorktree:true}),repos:this.reposApi.list()}).pipe(ue$1(this.destroyRef)).subscribe({next:({jobs:e,repos:i})=>{this.jobs.set(e),this.repos.set(i),this.loading.set(false);},error:e=>{this.loading.set(false),this.loadError.set(this.errorMessage(e,this.transloco.translate("worktrees.loadFailed")));}});}errorMessage(e,i){return e instanceof bi||e instanceof Error?e.message:i}static{this.\u0275fac=function(i){return new(i||t)};}static{this.\u0275cmp=QE({type:t,selectors:[["app-worktree-list"]],decls:11,vars:8,consts:[["data-testid","worktrees-manage",1,"list-page"],[1,"header"],["nz-button","","nzDanger","","type","button","data-testid","delete-worktrees",3,"click","disabled"],["data-testid","loading"],["data-testid","load-error",1,"error"],["data-testid","action-error",1,"error"],["data-testid","active-warning",1,"warn"],["data-testid","empty-state",1,"empty"],["data-testid","worktree-table",3,"nzData","nzShowPagination"],["nz-checkbox","",3,"nzCheckedChange","nzChecked"],[3,"routerLink"],[1,"path-cell"],[3,"ngClass"]],template:function(i,l){i&1&&(_i(0,"div",0)(1,"header",1)(2,"h1"),vw(3),Rw(4,"transloco"),Kc(),_i(5,"button",2),gh("click",function(){return l.deleteSelected()}),vw(6),Rw(7,"transloco"),Kc()(),bD(8,ce,3,3,"p",3)(9,me,2,1,"p",4)(10,xe,4,3),Kc()),i&2&&(gI(3),Ph(Ow(4,4,"worktrees.title")),gI(2),ch("disabled",l.deleting()||l.selectedIds().length===0),gI(),nl(" ",Ow(7,6,"worktrees.deleteSelected")," "),gI(2),_D(l.loading()?8:l.loadError()?9:10));},dependencies:[$8,M5,v3,pf,bd,sp,fp,Lt,ut,pc,as,dc,Kl,cc,Ji,ls,W,I,Kt],styles:[".list-page[_ngcontent-%COMP%]{padding:1.25rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1rem}.header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.empty[_ngcontent-%COMP%]{text-align:center;padding:2.5rem 1rem;border:1px dashed #d6d3d1;background:#fff9}.error[_ngcontent-%COMP%]{color:#9f1239}.warn[_ngcontent-%COMP%]{color:#92400e}.path-cell[_ngcontent-%COMP%]{overflow-wrap:anywhere;word-break:break-word}"]});}}return t})();function be(t,d){let e=(t.worktreePath??"").replaceAll("\\","/"),i=d.localPath.replaceAll("\\","/").replace(/\/+$/,""),l=(d.worktreeBasePath??_e(i)).replaceAll("\\","/");return e.startsWith(l)||e.startsWith(i)}function _e(t){let d=t.split("/"),e=d.pop()??"repo";return `${d.join("/")}/${e}-worktrees`}var Ue=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)};}static{this.\u0275cmp=QE({type:t,selectors:[["app-worktrees-manage"]],decls:1,vars:0,template:function(i,l){i&1&&lh(0,"app-worktree-list");},dependencies:[ae],encapsulation:2});}}return t})();export{Ue as WorktreesManageComponent};
@@ -1 +1 @@
1
- import {Q as QE,K as Kt,aU as Jc,j as vw,R as Rw,aV as Xc,x as gI,P as Ph,O as Ow}from'./main-OG6DVLH6.js';var x=(()=>{class e{static{this.\u0275fac=function(t){return new(t||e)};}static{this.\u0275cmp=QE({type:e,selectors:[["app-preferences-manage"]],decls:9,vars:6,consts:[["data-testid","preferences-manage",1,"list-page"],[1,"header"],[1,"lede"]],template:function(t,l){t&1&&(Jc(0,"main",0)(1,"header",1)(2,"div")(3,"h1"),vw(4),Rw(5,"transloco"),Xc(),Jc(6,"p",2),vw(7),Rw(8,"transloco"),Xc()()()()),t&2&&(gI(4),Ph(Ow(5,2,"manage.preferences.title")),gI(3),Ph(Ow(8,4,"manage.preferences.body")));},dependencies:[Kt],styles:[".list-page[_ngcontent-%COMP%]{padding:1.25rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1rem}.lede[_ngcontent-%COMP%]{margin:.25rem 0 0;color:#57534e}"]});}}return e})();export{x as PreferencesManageComponent};
1
+ import {Q as QE,K as Kt,a$ as Jc,k as vw,R as Rw,b0 as Xc,w as gI,P as Ph,O as Ow}from'./main-2ZW45HAE.js';var x=(()=>{class e{static{this.\u0275fac=function(t){return new(t||e)};}static{this.\u0275cmp=QE({type:e,selectors:[["app-preferences-manage"]],decls:9,vars:6,consts:[["data-testid","preferences-manage",1,"list-page"],[1,"header"],[1,"lede"]],template:function(t,l){t&1&&(Jc(0,"main",0)(1,"header",1)(2,"div")(3,"h1"),vw(4),Rw(5,"transloco"),Xc(),Jc(6,"p",2),vw(7),Rw(8,"transloco"),Xc()()()()),t&2&&(gI(4),Ph(Ow(5,2,"manage.preferences.title")),gI(3),Ph(Ow(8,4,"manage.preferences.body")));},dependencies:[Kt],styles:[".list-page[_ngcontent-%COMP%]{padding:1.25rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1rem}.lede[_ngcontent-%COMP%]{margin:.25rem 0 0;color:#57534e}"]});}}return e})();export{x as PreferencesManageComponent};
@@ -0,0 +1 @@
1
+ import {aA as YE,aB as uu,aC as pT,aI as hT,a5 as $0,aQ as Z0,H as Hw,s,r as r$1,bK as Le$1,u as ue,bE as XE,bU as eh,a8 as Mh,q as qo,bV as re,C,bW as Uo,bX as Q0,bY as em,bZ as on,b_ as ql,Q as QE,b$ as vo,c0 as Wt,c1 as _o,c2 as Gl,c3 as zh,c4 as Fh,bR as Mn,aN as st,aO as Ee,a3 as Th,a4 as xh,Z as pf,a0 as bd,a1 as sp,a2 as fp,c5 as $b,c6 as Zb,aY as nh,m as gh,x as ch,aU as Ih,aE as _r,aV as qD,aW as WD,aX as Yl,c7 as oc,bL as Bl,c8 as Sy,L as LD,j as _i,c9 as oi,ca as ri,n as bD,l as Kc,cb as Bh,R as Rw,k as vw,E as VD,bB as sw,bp as cw,w as gI,B as _D,G as ah,O as Ow,z as nl,cc as ji,bJ as XI,aD as E3,b as at,cd as Wm,ce as S2,cf as Kg,cg as Yg,ch as kg,ci as kr,cj as xy,aP as ly,aJ as Oe,aG as z0,ck as Sr,cl as Cr,cm as me,cn as Rg,co as yo,cp as _n$1,bH as Er,b9 as Nr,p as lh,aZ as el,a_ as tl,cq as jr,P as Ph,bl as Lw,J as Pu,M as Lu}from'./main-2ZW45HAE.js';var lt=["overlay"];function ct(i,m){if(i&1&&(el(0),vw(1),tl()),i&2){let e=VD(2);gI(),Ph(e.nzTitle);}}function pt(i,m){if(i&1){let e=LD();_i(0,"div",2),oi(function(){Pu(e);let n=VD();return Lu(n.zoomAnimationLeave())}),ri(function(){Pu(e);let n=VD();return Lu(n.zoomAnimationEnter())}),lh(1,"div",3),_i(2,"div",4)(3,"div",5),nh(4,ct,2,1,"ng-container",6),Kc()()();}if(i&2){let e=VD();sw(e.nzOverlayStyle),cw(e._classMap),Mh("ant-tooltip-rtl",e.dir()==="rtl"),ch("nzNoAnimation",!!e.noAnimation?.nzNoAnimation?.()),gI(),sw(e._arrowStyleMap),gI(2),sw(e._contentStyleMap),gI(),ch("nzStringTemplateOutlet",e.nzTitle)("nzStringTemplateOutletContext",e.nzTitleContext);}}var tt=(()=>{class i{componentType;elementRef=C(_r);hostView=C(ji);renderer=C(XI);noAnimation=C(Mn,{host:true,optional:true});nzConfigService=C(E3);destroyRef=C(at);platformId=C(Wm);config;visibleChange=new Le$1;get _title(){return this.title||this.directiveTitle||null}get _content(){return this.content||this.directiveContent||null}get _trigger(){return typeof this.trigger<"u"?this.trigger:"hover"}get _placement(){let e=this.placement;return Array.isArray(e)&&e.length>0?e:typeof e=="string"&&e?[e]:["top"]}get _visible(){return (typeof this.visible<"u"?this.visible:this.internalVisible)||false}get _mouseEnterDelay(){return this.mouseEnterDelay||.15}get _mouseLeaveDelay(){return this.mouseLeaveDelay||.1}get _overlayClassName(){return this.overlayClassName||null}get _overlayStyle(){return this.overlayStyle||null}get _overlayClickable(){return this.overlayClickable??true}internalVisible=false;getProxyPropertyMap(){return {noAnimation:["noAnimation",()=>!!this.noAnimation]}}component;destroy$=new re;triggerDisposables=[];delayTimer;constructor(e){this.componentType=e,this.destroyRef.onDestroy(()=>{this.clearTogglingTimer(),this.removeTriggerListeners();});}ngAfterViewInit(){S2(this.platformId)&&(this.createComponent(),this.registerTriggers());}ngOnChanges(e){let{trigger:t}=e;t&&!t.isFirstChange()&&this.registerTriggers(),this.component&&this.updatePropertiesByChanges(e);}show(){this.component?.show();}hide(){this.component?.hide();}updatePosition(){this.component&&this.component.updatePosition();}createComponent(){let e=this.hostView.createComponent(this.componentType);this.component=e.instance,this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),e.location.nativeElement),this.component.setOverlayOrigin(this.origin||this.elementRef),this.initProperties();let t=this.component.nzVisibleChange.pipe(Kg());t.pipe(ue(this.destroyRef)).subscribe(n=>{this.internalVisible=n,this.visibleChange.emit(n);}),t.pipe(on(Boolean),Yg(0,kg),on(()=>!!this.component?.overlay?.overlayRef),ue(this.destroyRef)).subscribe(()=>{this.component?.updatePosition();});}registerTriggers(){let e=this.elementRef.nativeElement,t=this.trigger;if(this.removeTriggerListeners(),t==="hover"){let n;this.triggerDisposables.push(this.renderer.listen(e,"mouseenter",()=>{this.delayEnterLeave(true,true,this._mouseEnterDelay);})),this.triggerDisposables.push(this.renderer.listen(e,"mouseleave",()=>{this.delayEnterLeave(true,false,this._mouseLeaveDelay),this.component?.overlay.overlayRef&&!n&&(n=this.component.overlay.overlayRef.overlayElement,this.triggerDisposables.push(this.renderer.listen(n,"mouseenter",()=>{this.delayEnterLeave(false,true,this._mouseEnterDelay);})),this.triggerDisposables.push(this.renderer.listen(n,"mouseleave",()=>{this.delayEnterLeave(false,false,this._mouseLeaveDelay);})));}));}else t==="focus"?(this.triggerDisposables.push(this.renderer.listen(e,"focusin",()=>this.show())),this.triggerDisposables.push(this.renderer.listen(e,"focusout",()=>this.hide()))):t==="click"&&this.triggerDisposables.push(this.renderer.listen(e,"click",n=>{n.preventDefault(),this.show();}));}updatePropertiesByChanges(e){this.updatePropertiesByKeys(Object.keys(e));}updatePropertiesByKeys(e){let t=r$1({title:["nzTitle",()=>this._title],directiveTitle:["nzTitle",()=>this._title],content:["nzContent",()=>this._content],directiveContent:["nzContent",()=>this._content],trigger:["nzTrigger",()=>this._trigger],placement:["nzPlacement",()=>this._placement],visible:["nzVisible",()=>this._visible],mouseEnterDelay:["nzMouseEnterDelay",()=>this._mouseEnterDelay],mouseLeaveDelay:["nzMouseLeaveDelay",()=>this._mouseLeaveDelay],overlayClassName:["nzOverlayClassName",()=>this._overlayClassName],overlayStyle:["nzOverlayStyle",()=>this._overlayStyle],overlayClickable:["nzOverlayClickable",()=>this._overlayClickable],arrowPointAtCenter:["nzArrowPointAtCenter",()=>this.arrowPointAtCenter]},this.getProxyPropertyMap());(e||Object.keys(t).filter(n=>!n.startsWith("directive"))).forEach(n=>{if(t[n]){let[o,c]=t[n];this.updateComponentValue(o,c());}}),this.component?.updateByDirective();}initProperties(){this.updatePropertiesByKeys();}updateComponentValue(e,t){typeof t<"u"&&(this.component[e]=t);}delayEnterLeave(e,t,n=-1){this.delayTimer?this.clearTogglingTimer():n>0?this.delayTimer=setTimeout(()=>{this.delayTimer=void 0,t?this.show():this.hide();},n*1e3):t&&e?this.show():this.hide();}removeTriggerListeners(){this.triggerDisposables.forEach(e=>e()),this.triggerDisposables.length=0;}clearTogglingTimer(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=void 0);}static \u0275fac=function(t){return new(t||i)(kr(xy))};static \u0275dir=XE({type:i,features:[ly]})}return i})(),mt=(()=>{class i{noAnimation=C(Mn,{host:true,optional:true});dir=C(Oe).valueSignal;cdr=C(z0);elementRef=C(_r);destroyRef=C(at);overlay;nzTitle=null;nzContent=null;nzArrowPointAtCenter=false;nzOverlayClassName;nzOverlayStyle={};nzOverlayClickable=true;nzBackdrop=false;nzMouseEnterDelay;nzMouseLeaveDelay;nzVisibleChange=new re;set nzVisible(e){let t=jr(e);this._visible!==t&&(this._visible=t,this.nzVisibleChange.next(t));}get nzVisible(){return this._visible}_visible=false;set nzTrigger(e){this._trigger=e;}get nzTrigger(){return this._trigger}_trigger="hover";set nzPlacement(e){let t=e.map(n=>Sr(me[n],Cr[n]));this._positions=[...t,...Rg];}preferredPlacement="top";origin;_classMap={};_prefix="ant-tooltip";_positions=[...Rg];constructor(){this.destroyRef.onDestroy(()=>{this.nzVisibleChange.complete();});}show(){this.nzVisible||(this.isEmpty()||(this.nzVisible=true,this.nzVisibleChange.next(true),this.cdr.detectChanges()),this.origin&&this.overlay&&this.overlay.overlayRef&&this.overlay.overlayRef.getDirection()==="rtl"&&this.overlay.overlayRef.setDirection("ltr"));}hide(){this.nzVisible&&(this.nzVisible=false,this.nzVisibleChange.next(false),this.cdr.detectChanges());}updateByDirective(){this.updateStyles(),this.cdr.detectChanges(),Promise.resolve().then(()=>{this.updatePosition(),this.updateVisibilityByTitle();});}updatePosition(){this.origin&&this.overlay&&this.overlay.overlayRef&&this.overlay.overlayRef.updatePosition();}onPositionChange(e){this.preferredPlacement=yo(e),this.updateStyles(),this.cdr.detectChanges();}setOverlayOrigin(e){this.origin=e,this.cdr.markForCheck();}onClickOutside(e){if(!this.nzOverlayClickable)return;let t=_n$1(e);!this.origin.nativeElement.contains(t)&&this.nzTrigger!==null&&this.hide();}updateVisibilityByTitle(){this.isEmpty()&&this.hide();}updateStyles(){this._classMap=s(r$1({},this.transformClassListToMap(this.nzOverlayClassName)),{[`${this._prefix}-placement-${this.preferredPlacement}`]:true});}transformClassListToMap(e){let t={};return (e!==null?e.split(/\s+/):[]).forEach(o=>t[o]=true),t}static \u0275fac=function(t){return new(t||i)};static \u0275dir=XE({type:i,viewQuery:function(t,n){if(t&1&&Ih(lt,5),t&2){let o;qD(o=WD())&&(n.overlay=o.first);}}})}return i})();function ut(i){return i instanceof Er?false:i===""||!Nr(i)}var nt=(()=>{class i extends mt{_animationPrefix="ant-zoom-big-fast";nzTitle=null;nzTitleContext=null;nzColor;_arrowStyleMap={};_contentStyleMap={};zoomAnimationEnter=oc(()=>`${this._animationPrefix}-enter ${this._animationPrefix}-enter-active`);zoomAnimationLeave=oc(()=>`${this._animationPrefix}-leave ${this._animationPrefix}-leave-active`);isEmpty(){return ut(this.nzTitle)}updateStyles(){let e=this.nzColor&&Bl(this.nzColor);this._classMap=s(r$1({},this.transformClassListToMap(this.nzOverlayClassName)),{[`${this._prefix}-placement-${this.preferredPlacement}`]:true,[`${this._prefix}-${this.nzColor}`]:e}),this._contentStyleMap={backgroundColor:this.nzColor&&!e?this.nzColor:null},this._arrowStyleMap={"--antd-arrow-background-color":this.nzColor&&!e?this.nzColor:null};}static \u0275fac=(()=>{let e;return function(n){return (e||(e=Sy(i)))(n||i)}})();static \u0275cmp=QE({type:i,selectors:[["nz-tooltip"]],exportAs:["nzTooltipComponent"],features:[eh],decls:2,vars:4,consts:[["overlay","cdkConnectedOverlay"],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","nzArrowPointAtCenter"],[1,"ant-tooltip",3,"nzNoAnimation"],[1,"ant-tooltip-arrow"],[1,"ant-tooltip-content"],[1,"ant-tooltip-inner"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"]],template:function(t,n){t&1&&(nh(0,pt,5,13,"ng-template",1,0,Lw),gh("overlayOutsideClick",function(c){return n.onClickOutside(c)})("detach",function(){return n.hide()})("positionChange",function(c){return n.onPositionChange(c)})),t&2&&ch("cdkConnectedOverlayOrigin",n.origin)("cdkConnectedOverlayOpen",n._visible)("cdkConnectedOverlayPositions",n._positions)("nzArrowPointAtCenter",n.nzArrowPointAtCenter);},dependencies:[vo,Wt,Mn,st,Ee,_o,Gl],encapsulation:2})}return i})();var dt=["okBtn"],ft=["cancelBtn"];function zt(i,m){i&1&&lh(0,"div",5);}function ht(i,m){if(i&1&&(el(0),lh(1,"nz-icon",17),tl()),i&2){let e=m.$implicit;gI(),ch("nzType",e||"exclamation-circle");}}function vt(i,m){if(i&1&&(_i(0,"span",10),nh(1,ht,2,1,"ng-container",16),Kc()),i&2){let e=VD(2);gI(),ch("nzStringTemplateOutlet",e.nzIcon);}}function yt(i,m){if(i&1&&(el(0),vw(1),tl()),i&2){let e=VD(2);gI(),nl(" ",e.nzTitle," ");}}function gt(i,m){if(i&1){let e=LD();_i(0,"div",4),oi(function(){Pu(e);let n=VD();return Lu(n.zoomAnimationLeave())}),ri(function(){Pu(e);let n=VD();return Lu(n.zoomAnimationEnter())}),bD(1,zt,1,0,"div",5),_i(2,"div",6)(3,"div",7)(4,"div")(5,"div",8)(6,"div",9),bD(7,vt,2,1,"span",10),_i(8,"div",11),nh(9,yt,2,1,"ng-container",12),Kc()(),_i(10,"div",13)(11,"button",14,1),gh("click",function(){Pu(e);let n=VD();return Lu(n.onCancel())}),Bh(13),Rw(14,"nzI18n"),vw(15),Kc(),_i(16,"button",15,2),gh("click",function(){Pu(e);let n=VD();return Lu(n.onConfirm())}),Bh(18),Rw(19,"nzI18n"),vw(20),Kc()()()()()()();}if(i&2){let e=VD();sw(e.nzOverlayStyle),cw(e._classMap),Mh("ant-popover-rtl",e.dir()==="rtl"),ch("cdkTrapFocusAutoCapture",e.nzAutoFocus!==null)("nzNoAnimation",!!e.noAnimation?.nzNoAnimation?.()),gI(),_D(e.nzPopconfirmShowArrow?1:-1),gI(6),_D(e.nzIcon!==null?7:-1),gI(2),ch("nzStringTemplateOutlet",e.nzTitle)("nzStringTemplateOutletContext",e.nzTitleContext),gI(2),ch("nzDanger",e.nzCancelButtonProps()?.nzDanger)("disabled",e.nzCancelButtonProps()?.nzDisabled),ah("cdkFocusInitial",e.nzAutoFocus==="cancel"||null);let t=e.nzCancelText()||Ow(14,22,"Modal.cancelText");gI(4),nl(" ",t," "),gI(),ch("nzType",e.nzOkButtonProps().nzType)("nzDanger",e.nzOkButtonProps().nzDanger)("nzLoading",e.confirmLoading)("disabled",e.nzOkButtonProps().nzDisabled),ah("cdkFocusInitial",e.nzAutoFocus==="ok"||null);let n=e.nzOkText()||Ow(19,24,"Modal.okText");gI(4),nl(" ",n," ");}}var Ct="popconfirm",Cn=(()=>{let i=tt,m,e=[],t=[],n,o=[],c=[];return class he extends i{static{let C=typeof Symbol=="function"&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;m=[Yl()],n=[Yl()],pT(null,null,m,{kind:"field",name:"nzPopconfirmBackdrop",static:false,private:false,access:{has:a=>"nzPopconfirmBackdrop"in a,get:a=>a.nzPopconfirmBackdrop,set:(a,N)=>{a.nzPopconfirmBackdrop=N;}},metadata:C},e,t),pT(null,null,n,{kind:"field",name:"nzAutofocus",static:false,private:false,access:{has:a=>"nzAutofocus"in a,get:a=>a.nzAutofocus,set:(a,N)=>{a.nzAutofocus=N;}},metadata:C},o,c),C&&Object.defineProperty(this,Symbol.metadata,{enumerable:true,configurable:true,writable:true,value:C});}_nzModuleName=Ct;arrowPointAtCenter;title;titleContext=null;directiveTitle;trigger="click";placement="top";origin;mouseEnterDelay;mouseLeaveDelay;overlayClassName;overlayStyle;visible;nzBeforeConfirm;nzIcon;nzCondition=false;nzPopconfirmShowArrow=true;nzPopconfirmBackdrop=hT(this,e,false);nzAutofocus=(hT(this,t),hT(this,o,null));nzOkText=(hT(this,c),$0(null));nzOkType=$0("primary");nzCancelText=$0(null);nzOkButtonProps=$0(null);nzCancelButtonProps=$0(null);nzOkDisabled=$0(false,{transform:Z0});nzOkDanger=$0(false,{transform:Z0});okButtonProps=Hw(()=>s(r$1({},this.nzOkButtonProps()),{nzType:this.nzOkButtonProps()?.nzType||this.nzOkType()==="danger"?"primary":this.nzOkType(),nzDanger:this.nzOkDanger()||this.nzOkButtonProps()?.nzDanger||this.nzOkType()==="danger",nzDisabled:this.nzOkDisabled()||this.nzOkButtonProps()?.nzDisabled}));cancelButtonProps=Hw(()=>r$1({},this.nzCancelButtonProps()));directiveContent=null;content=null;overlayClickable;visibleChange=new Le$1;nzOnCancel=new Le$1;nzOnConfirm=new Le$1;getProxyPropertyMap(){return r$1({nzOkText:["nzOkText",()=>this.nzOkText],nzCancelText:["nzCancelText",()=>this.nzCancelText],nzOkButtonProps:["nzOkButtonProps",()=>this.okButtonProps],nzCancelButtonProps:["nzCancelButtonProps",()=>this.cancelButtonProps],nzBeforeConfirm:["nzBeforeConfirm",()=>this.nzBeforeConfirm],nzCondition:["nzCondition",()=>this.nzCondition],nzIcon:["nzIcon",()=>this.nzIcon],nzPopconfirmShowArrow:["nzPopconfirmShowArrow",()=>this.nzPopconfirmShowArrow],nzPopconfirmBackdrop:["nzBackdrop",()=>this.nzPopconfirmBackdrop],nzPopconfirmContext:["nzTitleContext",()=>this.titleContext],nzAutoFocus:["nzAutoFocus",()=>this.nzAutofocus]},super.getProxyPropertyMap())}constructor(){super(it);}createComponent(){super.createComponent(),this.component.nzOnCancel.pipe(ue(this.destroyRef)).subscribe(()=>{this.nzOnCancel.emit();}),this.component.nzOnConfirm.pipe(ue(this.destroyRef)).subscribe(()=>{this.nzOnConfirm.emit();});}static \u0275fac=function(a){return new(a||he)};static \u0275dir=XE({type:he,selectors:[["","nz-popconfirm",""]],hostVars:2,hostBindings:function(a,N){a&2&&Mh("ant-popover-open",N.visible);},inputs:{arrowPointAtCenter:[2,"nzPopconfirmArrowPointAtCenter","arrowPointAtCenter",Z0],title:[0,"nzPopconfirmTitle","title"],titleContext:[0,"nzPopconfirmTitleContext","titleContext"],directiveTitle:[0,"nz-popconfirm","directiveTitle"],trigger:[0,"nzPopconfirmTrigger","trigger"],placement:[0,"nzPopconfirmPlacement","placement"],origin:[0,"nzPopconfirmOrigin","origin"],mouseEnterDelay:[0,"nzPopconfirmMouseEnterDelay","mouseEnterDelay"],mouseLeaveDelay:[0,"nzPopconfirmMouseLeaveDelay","mouseLeaveDelay"],overlayClassName:[0,"nzPopconfirmOverlayClassName","overlayClassName"],overlayStyle:[0,"nzPopconfirmOverlayStyle","overlayStyle"],visible:[0,"nzPopconfirmVisible","visible"],nzBeforeConfirm:"nzBeforeConfirm",nzIcon:"nzIcon",nzCondition:[2,"nzCondition","nzCondition",Z0],nzPopconfirmShowArrow:[2,"nzPopconfirmShowArrow","nzPopconfirmShowArrow",Z0],nzPopconfirmBackdrop:"nzPopconfirmBackdrop",nzAutofocus:"nzAutofocus",nzOkText:[1,"nzOkText"],nzOkType:[1,"nzOkType"],nzCancelText:[1,"nzCancelText"],nzOkButtonProps:[1,"nzOkButtonProps"],nzCancelButtonProps:[1,"nzCancelButtonProps"],nzOkDisabled:[1,"nzOkDisabled"],nzOkDanger:[1,"nzOkDanger"]},outputs:{visibleChange:"nzPopconfirmVisibleChange",nzOnCancel:"nzOnCancel",nzOnConfirm:"nzOnConfirm"},exportAs:["nzPopconfirm"],features:[eh]})}})(),it=(()=>{class i extends nt{_animationPrefix="ant-zoom-big";okBtn;cancelBtn;nzCondition=false;nzPopconfirmShowArrow=true;nzIcon;nzAutoFocus=null;nzBeforeConfirm=null;nzOkText=qo(null);nzCancelText=qo(null);nzOkButtonProps=qo({nzType:"primary"});nzCancelButtonProps=qo(null);nzOnCancel=new re;nzOnConfirm=new re;_trigger="click";elementFocusedBeforeModalWasOpened=null;document=C(Uo);_prefix="ant-popover";confirmLoading=false;constructor(){super(),this.destroyRef.onDestroy(()=>{this.nzVisibleChange.complete();});}show(){this.nzCondition?this.onConfirm():(this.capturePreviouslyFocusedElement(),super.show());}hide(){super.hide(),this.restoreFocus();}handleConfirm(){this.nzOnConfirm.next(),super.hide();}onCancel(){this.nzOnCancel.next(),super.hide();}onConfirm(){this.nzBeforeConfirm?(this.confirmLoading=true,this.cdr.markForCheck(),Q0(this.nzBeforeConfirm()).pipe(em(),on(Boolean),ql(()=>{this.confirmLoading=false,this.cdr.markForCheck();})).subscribe(()=>this.handleConfirm())):this.handleConfirm();}capturePreviouslyFocusedElement(){this.document&&(this.elementFocusedBeforeModalWasOpened=this.document.activeElement);}restoreFocus(){this.elementFocusedBeforeModalWasOpened?.focus();}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=QE({type:i,selectors:[["nz-popconfirm"]],viewQuery:function(t,n){if(t&1&&Ih(dt,5,_r)(ft,5,_r),t&2){let o;qD(o=WD())&&(n.okBtn=o),qD(o=WD())&&(n.cancelBtn=o);}},exportAs:["nzPopconfirmComponent"],features:[eh],decls:2,vars:5,consts:[["overlay","cdkConnectedOverlay"],["cancelBtn",""],["okBtn",""],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayOpen","nzArrowPointAtCenter"],["cdkTrapFocus","",1,"ant-popover",3,"cdkTrapFocusAutoCapture","nzNoAnimation"],[1,"ant-popover-arrow"],[1,"ant-popover-content"],[1,"ant-popover-inner"],[1,"ant-popover-inner-content"],[1,"ant-popover-message"],[1,"ant-popover-message-icon"],[1,"ant-popover-message-title"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],[1,"ant-popover-buttons"],["nz-button","","nzSize","small",3,"click","nzDanger","disabled"],["nz-button","","nzSize","small",3,"click","nzType","nzDanger","nzLoading","disabled"],[4,"nzStringTemplateOutlet"],["nzTheme","fill",3,"nzType"]],template:function(t,n){t&1&&(nh(0,gt,21,26,"ng-template",3,0,Lw),gh("overlayOutsideClick",function(c){return n.onClickOutside(c)})("detach",function(){return n.hide()})("positionChange",function(c){return n.onPositionChange(c)})),t&2&&ch("cdkConnectedOverlayHasBackdrop",n.nzBackdrop)("cdkConnectedOverlayOrigin",n.origin)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayOpen",n._visible)("nzArrowPointAtCenter",n.nzArrowPointAtCenter);},dependencies:[vo,Wt,_o,Gl,zh,Fh,Mn,st,Ee,Th,xh,pf,bd,sp,fp,$b,Zb],encapsulation:2})}return i})(),_n=(()=>{class i{static \u0275fac=function(t){return new(t||i)};static \u0275mod=YE({type:i});static \u0275inj=uu({imports:[it]})}return i})();export{Cn as C,_n as _};
@@ -0,0 +1 @@
1
+ import {p as pc,a as as,d as dc,K as Kl,U as Ul,c as cc,J as Ji,l as ls,e as es}from'./chunk-yxqIQom4.js';import {a5 as $0,a6 as B0,q as qo,H as Hw,Q as QE,d as $8,v as v3,Z as pf,a0 as bd,a1 as sp,a2 as fp,K as Kt,j as _i,n as bD,k as vw,R as Rw,l as Kc,N as ND,w as gI,B as _D,x as ch,P as Ph,O as Ow,D as xD,L as LD,m as gh,E as VD,z as nl,a7 as Pw,I as xw,G as ah,J as Pu,M as Lu}from'./main-2ZW45HAE.js';var Q=t=>({count:t}),U=t=>["/jobs",t],X=(t,c)=>c.id;function Y(t,c){if(t&1){let e=LD();_i(0,"div",1)(1,"button",4),gh("click",function(){Pu(e);let o=VD();return Lu(o.emitBulk())}),vw(2),Rw(3,"transloco"),Kc()();}if(t&2){let e=VD();gI(),ch("disabled",e.checkedCount()===0),gI(),nl(" ",Pw(3,2,"runnableTable.runSelected",xw(5,Q,e.checkedCount()))," ");}}function Z(t,c){if(t&1){let e=LD();_i(0,"th",5),gh("nzCheckedChange",function(o){Pu(e);let s=VD();return Lu(s.onAllChecked(o))}),Kc();}if(t&2){let e=VD();ch("nzChecked",e.allChecked())("nzIndeterminate",e.someChecked());}}function ee(t,c){t&1&&(_i(0,"th"),vw(1),Rw(2,"transloco"),Kc()),t&2&&(gI(),Ph(Ow(2,1,"runnableTable.column.actions")));}function te(t,c){if(t&1){let e=LD();_i(0,"td",12),gh("nzCheckedChange",function(o){Pu(e);let s=VD().$implicit,H=VD();return Lu(H.onItemChecked(s.id,o))}),Kc();}if(t&2){let e=VD().$implicit,n=VD();ch("nzChecked",n.checkedIds().has(e.id)),ah("data-testid","check-"+e.id);}}function ne(t,c){if(t&1&&(_i(0,"span",9),vw(1),Kc()),t&2){let e=VD().$implicit;ah("data-testid","subtitle-"+e.id),gI(),Ph(e.subtitle);}}function ie(t,c){if(t&1&&(_i(0,"a",10),vw(1),Rw(2,"transloco"),Kc()),t&2){let e=c,n=VD().$implicit,o=VD();ch("routerLink",xw(5,U,e.id)),ah("data-testid","latest-"+n.id),gI(),nl(" ",Ow(2,3,o.statusKey(e.status))," ");}}function oe(t,c){if(t&1&&(_i(0,"span",11),vw(1),Rw(2,"transloco"),Kc()),t&2){let e=VD().$implicit;ah("data-testid","latest-"+e.id),gI(),Ph(Ow(2,2,"runnableTable.neverRun"));}}function ae(t,c){if(t&1){let e=LD();_i(0,"td")(1,"button",13),gh("click",function(){Pu(e);let o=VD().$implicit,s=VD();return Lu(s.emitRow(o.id))}),vw(2),Rw(3,"transloco"),Kc()();}if(t&2){let e=VD().$implicit;gI(),ah("data-testid","run-"+e.id),gI(),nl(" ",Ow(3,2,"runnableTable.run")," ");}}function le(t,c){if(t&1&&(_i(0,"tr"),bD(1,te,1,2,"td",6),_i(2,"td")(3,"div",7)(4,"span",8),vw(5),Kc(),bD(6,ne,2,2,"span",9),Kc()(),_i(7,"td"),bD(8,ie,3,7,"a",10)(9,oe,3,4,"span",11),Kc(),bD(10,ae,4,4,"td"),Kc()),t&2){let e,n=c.$implicit,o=VD();ah("data-testid","row-"+n.id),gI(),_D(o.selectable()?1:-1),gI(3),ah("data-testid","label-"+n.id),gI(),Ph(n.primaryLabel),gI(),_D(n.subtitle?6:-1),gI(2),_D((e=n.latestJob)?8:9,e),gI(2),_D(o.showRowAction()?10:-1);}}var we=(()=>{class t{constructor(){this.rows=$0([]),this.selectable=$0(false),this.showRowAction=$0(true),this.rowAction=B0(),this.bulkAction=B0(),this.checkedIds=qo(new Set),this.checkedCount=Hw(()=>this.checkedIds().size),this.allChecked=Hw(()=>{let e=this.rows();return e.length>0&&e.every(n=>this.checkedIds().has(n.id))}),this.someChecked=Hw(()=>{let e=this.checkedCount();return e>0&&e<this.rows().length});}onItemChecked(e,n){this.checkedIds.update(o=>{let s=new Set(o);return n?s.add(e):s.delete(e),s});}onAllChecked(e){this.checkedIds.set(e?new Set(this.rows().map(n=>n.id)):new Set);}emitBulk(){this.bulkAction.emit([...this.checkedIds()]);}emitRow(e){this.rowAction.emit(e);}statusKey(e){return `jobs.status.${e}`}static{this.\u0275fac=function(n){return new(n||t)};}static{this.\u0275cmp=QE({type:t,selectors:[["app-runnable-items-table"]],inputs:{rows:[1,"rows"],selectable:[1,"selectable"],showRowAction:[1,"showRowAction"]},outputs:{rowAction:"rowAction",bulkAction:"bulkAction"},decls:16,vars:12,consts:[["data-testid","runnable-items-table",1,"runnable-table"],["data-testid","bulk-bar",1,"bulk-bar"],[3,"nzData","nzFrontPagination","nzShowPagination"],["data-testid","select-all",3,"nzChecked","nzIndeterminate"],["nz-button","","type","button","data-testid","run-selected",3,"click","disabled"],["data-testid","select-all",3,"nzCheckedChange","nzChecked","nzIndeterminate"],[3,"nzChecked"],[1,"item"],[1,"primary"],[1,"subtitle"],[3,"routerLink"],[1,"never"],[3,"nzCheckedChange","nzChecked"],["nz-button","","nzType","link","type","button",3,"click"]],template:function(n,o){n&1&&(_i(0,"div",0),bD(1,Y,4,7,"div",1),_i(2,"nz-table",2)(3,"thead")(4,"tr"),bD(5,Z,1,2,"th",3),_i(6,"th"),vw(7),Rw(8,"transloco"),Kc(),_i(9,"th"),vw(10),Rw(11,"transloco"),Kc(),bD(12,ee,3,3,"th"),Kc()(),_i(13,"tbody"),ND(14,le,11,7,"tr",null,X),Kc()()()),n&2&&(gI(),_D(o.selectable()?1:-1),gI(),ch("nzData",o.rows())("nzFrontPagination",false)("nzShowPagination",false),gI(3),_D(o.selectable()?5:-1),gI(2),Ph(Ow(8,8,"runnableTable.column.item")),gI(3),Ph(Ow(11,10,"runnableTable.column.latestRun")),gI(2),_D(o.showRowAction()?12:-1),gI(2),xD(o.rows()));},dependencies:[$8,v3,pf,bd,sp,fp,pc,as,dc,Kl,Ul,cc,Ji,ls,es,Kt],styles:[".runnable-table[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.bulk-bar[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.item[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.15rem}.primary[_ngcontent-%COMP%]{font-weight:600}.subtitle[_ngcontent-%COMP%]{color:#78716c;font-size:.85rem}.never[_ngcontent-%COMP%]{color:#78716c}[_nghost-%COMP%] .ant-table-tbody>tr>td{white-space:normal;vertical-align:top}"]});}}return t})();export{we as w};
@@ -0,0 +1 @@
1
+ import {X as Xe,b as bt,K as Ke}from'./chunk-BbIC5sO2.js';import {A as At$1}from'./chunk-BnD2l9n3.js';import {T}from'./chunk-Cn95hfnf.js';import'./chunk-DZhQ2iEt.js';import'./chunk-BuPc66MS.js';import'./chunk-B_L2A3hm.js';import {_ as _n,C as Cn}from'./chunk-37yFTUcY.js';import'./chunk-J9qS04nF.js';import {C,V as Ve,b as at,aj as jn,T as J1,q as qo,u as ue,ak as v,ae as Dg,c as bi,Q as QE,d as $8,e as al,f as rl,g as $i,v as v3,Z as pf,a0 as bd,a1 as sp,a2 as fp,al as ts,h as ex,F as Fm,A as Am,K as Kt$1,L as LD,j as _i,k as vw,R as Rw,l as Kc,m as gh,n as bD,w as gI,P as Ph,O as Ow,x as ch,z as nl,B as _D,am as Le,an as Wn,a7 as Pw,I as xw,E as VD,N as ND,S as SD,o as oE,y as sE,D as xD,ao as N2,ab as ix,ap as cx,i as ie$1,p as lh,G as ah,aq as MD,ar as _h,J as Pu,M as Lu,ai as zD}from'./main-2ZW45HAE.js';import {b}from'./chunk-CM8oLO7n.js';import {t as tg,a as t_}from'./chunk-DMAf3Qir.js';import {W,I}from'./chunk-C4Ee3umI.js';import {p as pc,a as as,d as dc,K as Kl,c as cc,J as Ji,l as ls}from'./chunk-yxqIQom4.js';import'./chunk-DphMF2VB.js';var $t=i=>({name:i}),Pt=(()=>{class i{constructor(){this.modalRef=C(Le),this.data=C(Wn);}cancel(){this.modalRef.close(void 0);}choose(t){this.modalRef.close(t);}static{this.\u0275fac=function(e){return new(e||i)};}static{this.\u0275cmp=QE({type:i,selectors:[["app-workflow-import-conflict"]],decls:14,vars:15,consts:[["data-testid","import-conflict-dialog"],["data-testid","import-conflict-message"],[1,"dialog-actions"],["nz-button","","type","button","data-testid","import-conflict-cancel",3,"click"],["nz-button","","type","button","data-testid","import-conflict-create-new",3,"click"],["nz-button","","nzType","primary","type","button","data-testid","import-conflict-update",3,"click"]],template:function(e,a){e&1&&(_i(0,"div",0)(1,"p",1),vw(2),Rw(3,"transloco"),Kc(),_i(4,"div",2)(5,"button",3),gh("click",function(){return a.cancel()}),vw(6),Rw(7,"transloco"),Kc(),_i(8,"button",4),gh("click",function(){return a.choose("create_new")}),vw(9),Rw(10,"transloco"),Kc(),_i(11,"button",5),gh("click",function(){return a.choose("update")}),vw(12),Rw(13,"transloco"),Kc()()()),e&2&&(gI(2),nl(" ",Pw(3,4,"workflows.import.conflictBody",xw(13,$t,a.data.name))," "),gI(4),nl(" ",Ow(7,7,"common.cancel")," "),gI(3),nl(" ",Ow(10,9,"workflows.import.createNew")," "),gI(3),nl(" ",Ow(13,11,"workflows.import.update")," "));},dependencies:[pf,bd,sp,fp,Kt$1],styles:["p[_ngcontent-%COMP%]{margin:0 0 1.25rem;color:#44403c}.dialog-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}"]});}}return i})();var jt=(()=>{class i{constructor(){this.http=C(N2),this.baseUrl=`${ix.apiBaseUrl}/workflow-library`;}list(){return this.http.get(this.baseUrl).pipe(cx())}add(t){return this.http.post(`${this.baseUrl}/${encodeURIComponent(t)}/add`,{}).pipe(cx())}static{this.\u0275fac=function(e){return new(e||i)};}static{this.\u0275prov=ie$1({token:i,factory:i.\u0275fac,providedIn:"root"});}}return i})();var At=(i,d)=>d.id;function Rt(i,d){i&1&&(_i(0,"p",2),vw(1),Rw(2,"transloco"),Kc()),i&2&&(gI(),Ph(Ow(2,1,"common.loading")));}function Ht(i,d){if(i&1&&(_i(0,"p",3),vw(1),Kc()),i&2){let t=VD();gI(),Ph(t.loadError());}}function Kt(i,d){if(i&1&&(_i(0,"p",4),vw(1),Kc()),i&2){let t=VD(2);gI(),Ph(t.addError());}}function Jt(i,d){if(i&1&&(_i(0,"nz-tag"),vw(1),Rw(2,"transloco"),Kc()),i&2){let t=d.$implicit,e=VD(3);gI(),Ph(Ow(2,1,e.subjectTypeKey(t)));}}function Ut(i,d){if(i&1&&(_i(0,"li")(1,"span"),vw(2),Kc(),_i(3,"span",14),vw(4),Rw(5,"transloco"),Kc()()),i&2){let t=d.$implicit,e=VD(4);_h("margin-left",t.depth,"rem"),gI(2),Ph(t.name),gI(2),Ph(Ow(5,4,e.stepTypeKey(t.type)));}}function Zt(i,d){if(i&1&&(_i(0,"ol",12),ND(1,Ut,6,6,"li",13,MD),Kc()),i&2){let t=VD().$implicit,e=VD(2);ah("data-testid","library-steps-"+t.id),gI(),xD(e.previewSteps(t));}}function qt(i,d){if(i&1){let t=LD();_i(0,"nz-card")(1,"div",6)(2,"h2"),vw(3),Kc(),_i(4,"nz-tag"),vw(5),Rw(6,"transloco"),Kc()(),_i(7,"p",7),vw(8),Kc(),_i(9,"div",8),ND(10,Jt,3,3,"nz-tag",null,SD),Kc(),_i(12,"div",9)(13,"button",10),gh("click",function(){let a=Pu(t).$implicit,f=VD(2);return Lu(f.togglePreview(a.id))}),vw(14),Rw(15,"transloco"),Kc(),_i(16,"button",11),gh("click",function(){let a=Pu(t).$implicit,f=VD(2);return Lu(f.addToMyWorkflows(a.id))}),vw(17),Rw(18,"transloco"),Kc()(),bD(19,Zt,3,1,"ol",12),Kc();}if(i&2){let t=d.$implicit,e=VD(2);ah("data-testid","library-entry-"+t.id),gI(2),ah("data-testid","library-name-"+t.id),gI(),Ph(t.name),gI(),ah("data-testid","library-source-"+t.id),gI(),Ph(Ow(6,13,e.sourceKey(t.source))),gI(2),ah("data-testid","library-description-"+t.id),gI(),nl(" ",t.description," "),gI(2),xD(e.appliesToValues(t)),gI(3),ah("data-testid","library-preview-"+t.id),gI(),nl(" ",Ow(15,15,e.isExpanded(t.id)?"workflow-library.hideSteps":"workflow-library.previewSteps")," "),gI(2),ch("disabled",e.addingId()!==null),ah("data-testid","library-add-"+t.id),gI(),nl(" ",Ow(18,17,e.addingId()===t.id?"workflow-library.adding":"workflow-library.add")," "),gI(2),_D(e.isExpanded(t.id)?19:-1);}}function Gt(i,d){if(i&1&&(bD(0,Kt,2,1,"p",4),_i(1,"div",5),ND(2,qt,20,19,"nz-card",null,At),Kc()),i&2){let t=VD();_D(t.addError()?0:-1),gI(2),xD(t.entries());}}var Dt=(()=>{class i{constructor(){this.libraryApi=C(jt),this.router=C(J1),this.transloco=C(Ve),this.destroyRef=C(at),this.modalRef=C(Le,{optional:true}),this.entries=qo([]),this.loading=qo(true),this.loadError=qo(null),this.addError=qo(null),this.addingId=qo(null),this.expandedIds=qo(new Set),this.libraryApi.list().pipe(ue(this.destroyRef)).subscribe({next:t=>{this.entries.set(t),this.loading.set(false);},error:t=>{this.loading.set(false),this.loadError.set(this.errorMessage(t,this.transloco.translate("workflow-library.loadFailed")));}});}sourceKey(t){return `workflow-library.source.${t}`}appliesToValues(t){let e=t.workflowDefinition.appliesTo;return e==="none"?["none"]:Array.isArray(e)?e:[e]}subjectTypeKey(t){return `workflow-editor.subjectType.${t}`}stepTypeKey(t){return `step-list.stepType.${t}`}isExpanded(t){return this.expandedIds().has(t)}togglePreview(t){this.expandedIds.update(e=>{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a});}previewSteps(t){return Ot(t.workflowDefinition.steps,0)}addToMyWorkflows(t){this.addingId()||(this.addError.set(null),this.addingId.set(t),this.libraryApi.add(t).pipe(ue(this.destroyRef)).subscribe({next:e=>{this.addingId.set(null),this.modalRef?.close(),this.router.navigate(["/workflows",e.id,"edit"]);},error:e=>{this.addingId.set(null),this.addError.set(this.errorMessage(e,this.transloco.translate("workflow-library.addFailed")));}}));}errorMessage(t,e){return t instanceof bi||t instanceof Error?t.message:e}static{this.\u0275fac=function(e){return new(e||i)};}static{this.\u0275cmp=QE({type:i,selectors:[["app-workflow-library-browser"]],decls:7,vars:4,consts:[["data-testid","workflow-library-browser",1,"library"],[1,"lede"],["data-testid","library-loading"],["data-testid","library-load-error",1,"error"],["data-testid","library-add-error",1,"error"],[1,"cards"],[1,"card-head"],[1,"description"],[1,"applies-to"],[1,"card-actions"],["nz-button","","nzType","link","type","button",3,"click"],["nz-button","","nzType","primary","type","button",3,"click","disabled"],[1,"steps-preview"],[3,"margin-left"],[1,"step-type"]],template:function(e,a){e&1&&(_i(0,"div",0)(1,"p",1),vw(2),Rw(3,"transloco"),Kc(),bD(4,Rt,3,3,"p",2)(5,Ht,2,1,"p",3)(6,Gt,4,1),Kc()),e&2&&(gI(2),Ph(Ow(3,2,"workflow-library.lede")),gI(2),_D(a.loading()?4:a.loadError()?5:6));},dependencies:[$8,pf,bd,sp,fp,bt,Ke,W,I,Kt$1],styles:[".library[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.lede[_ngcontent-%COMP%]{margin:0;color:#57534e}.cards[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.card-head[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.card-head[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:1.05rem;font-weight:600}.description[_ngcontent-%COMP%]{margin:.5rem 0 0;color:#57534e}.applies-to[_ngcontent-%COMP%]{margin-top:.5rem}.card-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.5rem}.steps-preview[_ngcontent-%COMP%]{margin:.75rem 0 0;padding-left:1.25rem;color:#44403c}.steps-preview[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:.75rem;margin:.25rem 0}.step-type[_ngcontent-%COMP%]{color:#78716c;font-size:.85rem}.error[_ngcontent-%COMP%]{color:#9f1239}"]});}}return i})();function Ot(i,d){let t=[];for(let e of i)t.push({name:e.name,type:e.type,depth:d}),e.type==="loop"&&Array.isArray(e.steps)&&t.push(...Ot(e.steps,d+1));return t}var Qt=i=>({count:i}),Xt=i=>["/workflows",i,"edit"],Yt=(i,d)=>d.id;function te(i,d){if(i&1&&(_i(0,"p",9),vw(1),Kc()),i&2){let t=VD();gI(),Ph(t.actionError());}}function ee(i,d){i&1&&(_i(0,"p",10),vw(1),Rw(2,"transloco"),Kc()),i&2&&(gI(),Ph(Ow(2,1,"common.loading")));}function ie(i,d){if(i&1&&(_i(0,"p",11),vw(1),Kc()),i&2){let t=VD();gI(),Ph(t.loadError());}}function ne(i,d){if(i&1&&(lh(0,"nz-option",14),Rw(1,"transloco")),i&2){let t=d.$implicit,e=VD(2);ch("nzValue",t)("nzLabel",Ow(1,2,e.subjectHandlingFilterKey(t)));}}function oe(i,d){if(i&1&&(_i(0,"p",15),vw(1),Kc()),i&2){let t=VD(2);gI(),Ph(t.deleteError());}}function re(i,d){if(i&1){let t=LD();_i(0,"section",16)(1,"p"),vw(2),Rw(3,"transloco"),Kc(),_i(4,"div",18)(5,"button",19),gh("click",function(){Pu(t);let a=VD(2);return Lu(a.openLibrary())}),vw(6),Rw(7,"transloco"),Kc(),_i(8,"a",20),vw(9),Rw(10,"transloco"),Kc()()();}i&2&&(gI(2),Ph(Ow(3,3,"workflows.list.emptyState")),gI(4),nl(" ",Ow(7,5,"workflows.list.emptyBrowseLibrary")," "),gI(3),nl(" ",Ow(10,7,"workflows.list.emptyCreateButton")," "));}function ae(i,d){if(i&1&&(_i(0,"span"),vw(1),Kc()),i&2){let t=VD().$implicit;ah("data-testid","description-"+t.id),gI(),Ph(t.description);}}function le(i,d){if(i&1&&(_i(0,"span",22),vw(1),Rw(2,"transloco"),Kc()),i&2){let t=VD().$implicit;ah("data-testid","description-"+t.id),gI(),Ph(Ow(2,2,"workflows.list.noDescription"));}}function se(i,d){if(i&1&&(_i(0,"nz-tag"),vw(1),Rw(2,"transloco"),Kc()),i&2){let t=d.$implicit,e=VD().$implicit,a=VD(3);ah("data-testid","applies-to-"+e.id),gI(),Ph(Ow(2,2,a.subjectTypeKey(t)));}}function pe(i,d){if(i&1){let t=LD();_i(0,"button",26),gh("click",function(){Pu(t);let a=VD().$implicit,f=VD(3);return Lu(f.startWorkflow(a))}),vw(1),Rw(2,"transloco"),Kc();}if(i&2){let t=VD().$implicit;ah("data-testid","start-"+t.id),gI(),nl(" ",Ow(2,2,"workflows.list.start")," ");}}function de(i,d){if(i&1){let t=LD();_i(0,"tr")(1,"td")(2,"span"),vw(3),Kc()(),_i(4,"td",21),bD(5,ae,2,2,"span")(6,le,3,4,"span",22),Kc(),_i(7,"td"),ND(8,se,3,4,"nz-tag",null,SD),Kc(),_i(10,"td")(11,"nz-tag"),vw(12),Rw(13,"transloco"),Kc()(),_i(14,"td")(15,"span"),vw(16),Rw(17,"transloco"),Kc()(),_i(18,"td",23),bD(19,pe,3,4,"button",24),_i(20,"a",25),vw(21),Rw(22,"transloco"),Kc(),_i(23,"button",26),gh("click",function(){let a=Pu(t).$implicit,f=VD(3);return Lu(f.exportWorkflow(a))}),vw(24),Rw(25,"transloco"),Kc(),_i(26,"button",27),Rw(27,"transloco"),Rw(28,"transloco"),Rw(29,"transloco"),gh("nzOnConfirm",function(){let a=Pu(t).$implicit,f=VD(3);return Lu(f.deleteWorkflow(a.id))}),vw(30),Rw(31,"transloco"),Kc()()();}if(i&2){let t=d.$implicit,e=VD(3);ah("data-testid","workflow-"+t.id),gI(2),ah("data-testid","name-"+t.id),gI(),Ph(t.name),gI(2),_D(t.description?.trim()?5:6),gI(3),xD(e.appliesToValues(t)),gI(3),ah("data-testid","subject-handling-"+t.id),gI(),Ph(Ow(13,19,e.subjectHandlingKey(t.subjectHandling))),gI(3),ah("data-testid","step-count-"+t.id),gI(),Ph(Pw(17,21,"workflows.list.stepCount",xw(36,Qt,t.steps.length))),gI(3),_D(t.subjectHandling==="per-subject"?19:-1),gI(),ch("routerLink",xw(38,Xt,t.id)),ah("data-testid","edit-"+t.id),gI(),nl(" ",Ow(22,24,"workflows.list.edit")," "),gI(2),ah("data-testid","export-"+t.id),gI(),nl(" ",Ow(25,26,"workflows.list.export")," "),gI(2),ch("nzPopconfirmTitle",Ow(27,28,"workflows.list.deleteConfirm"))("nzOkText",Ow(28,30,"workflows.list.delete"))("nzCancelText",Ow(29,32,"common.cancel")),ah("data-testid","delete-"+t.id),gI(4),nl(" ",Ow(31,34,"workflows.list.delete")," ");}}function ce(i,d){if(i&1&&(_i(0,"nz-table",17)(1,"thead")(2,"tr")(3,"th"),vw(4),Rw(5,"transloco"),Kc(),_i(6,"th"),vw(7),Rw(8,"transloco"),Kc(),_i(9,"th"),vw(10),Rw(11,"transloco"),Kc(),_i(12,"th"),vw(13),Rw(14,"transloco"),Kc(),_i(15,"th"),vw(16),Rw(17,"transloco"),Kc(),_i(18,"th"),vw(19),Rw(20,"transloco"),Kc()()(),_i(21,"tbody"),ND(22,de,32,40,"tr",null,Yt),Kc()()),i&2){let t=VD(2);ch("nzData",t.workflows())("nzFrontPagination",false)("nzShowPagination",false),gI(4),Ph(Ow(5,9,"workflows.list.column.name")),gI(3),Ph(Ow(8,11,"workflows.list.column.description")),gI(3),Ph(Ow(11,13,"workflow-editor.appliesTo")),gI(3),Ph(Ow(14,15,"workflow-editor.subjectHandling.label")),gI(3),Ph(Ow(17,17,"workflows.list.column.steps")),gI(3),Ph(Ow(20,19,"workflows.list.column.actions")),gI(3),xD(t.workflows());}}function me(i,d){if(i&1){let t=LD();_i(0,"div",12)(1,"span"),vw(2),Rw(3,"transloco"),Kc(),_i(4,"nz-select",13),gh("ngModelChange",function(a){Pu(t);let f=VD();return Lu(f.setSubjectHandlingFilter(a))}),ND(5,ne,2,4,"nz-option",14,SD),Kc(),oE(),Kc(),bD(7,oe,2,1,"p",15),bD(8,re,11,9,"section",16)(9,ce,24,21,"nz-table",17);}if(i&2){let t=VD();gI(2),Ph(Ow(3,4,"workflows.list.filterBySubjectHandling")),gI(2),ch("ngModel",t.subjectHandlingFilter()),sE(),gI(),xD(t.subjectHandlingOptions),gI(2),_D(t.deleteError()?7:-1),gI(),_D(t.workflows().length===0?8:9);}}var ci=(()=>{class i{constructor(){this.workflowsApi=C(b),this.transloco=C(Ve),this.destroyRef=C(at),this.modal=C(jn),this.router=C(J1),this.startJob=C(At$1),this.workflows=qo([]),this.loading=qo(true),this.loadError=qo(null),this.deleteError=qo(null),this.actionError=qo(null),this.importing=qo(false),this.subjectHandlingFilter=qo("all"),this.subjectHandlingOptions=["all","per-subject","collection"],this.load();}setSubjectHandlingFilter(t){this.subjectHandlingFilter.set(t),this.load();}appliesToValues(t){let e=t.appliesTo;return e==="none"?["none"]:Array.isArray(e)?e:[e]}subjectTypeKey(t){return `workflow-editor.subjectType.${t}`}subjectHandlingKey(t){return `workflow-editor.subjectHandling.${t}`}subjectHandlingFilterKey(t){return t==="all"?"workflows.list.filterAll":`workflow-editor.subjectHandling.${t}`}startWorkflow(t){this.startJob.start({workflowId:t.id});}deleteWorkflow(t){this.deleteError.set(null),this.workflowsApi.delete(t).pipe(ue(this.destroyRef)).subscribe({next:()=>{this.workflows.update(e=>e.filter(a=>a.id!==t));},error:e=>{this.deleteError.set(this.errorMessage(e,this.transloco.translate("workflows.list.deleteFailed")));}});}openLibrary(){this.modal.create({nzTitle:this.transloco.translate("workflow-library.title"),nzContent:Dt,nzFooter:null,nzWidth:720});}exportWorkflow(t){this.actionError.set(null),this.workflowsApi.exportDefinition(t.id).pipe(ue(this.destroyRef)).subscribe({next:e=>{Xe(`${tg(e.name)}.json`,JSON.stringify(e,null,2),"application/json");},error:e=>{this.actionError.set(this.errorMessage(e,this.transloco.translate("workflows.list.exportFailed")));}});}downloadInstructions(){this.actionError.set(null),this.workflowsApi.getInstructions().pipe(ue(this.destroyRef)).subscribe({next:t=>{Xe("knoflows-workflow-agent-instructions.md",t,"text/markdown;charset=utf-8");},error:t=>{this.actionError.set(this.errorMessage(t,this.transloco.translate("workflows.list.instructionsFailed")));}});}onImportFile(t){let e=t.target,a=e.files?.[0];e.value="",!(!a||this.importing())&&this.readAndImport(a);}importJsonText(t){this.actionError.set(null);let e;try{e=JSON.parse(t);}catch(f){this.actionError.set(this.transloco.translate("workflows.list.importInvalidJson"));return}let a=t_.safeParse(e);if(!a.success){let f=T(a.error);this.actionError.set(`${this.transloco.translate("workflows.list.importInvalidSchema")}: ${f[0]??""}`);return}this.postImport(e);}readAndImport(t){return v(this,null,function*(){try{this.importJsonText(yield t.text());}catch(e){this.actionError.set(this.transloco.translate("workflows.list.importInvalidJson"));}})}postImport(t,e){this.importing.set(true),this.actionError.set(null),this.workflowsApi.importDefinition(e?{workflowDefinition:t,resolution:e}:{workflowDefinition:t}).pipe(ue(this.destroyRef)).subscribe({next:a=>{this.importing.set(false),this.router.navigate(["/workflows",a.id,"edit"]);},error:a=>{this.importing.set(false);let f=this.importConflict(a);if(f&&!e){this.openImportConflict(t,f.name);return}this.actionError.set(this.errorMessage(a,this.transloco.translate("workflows.list.importFailed")));}});}openImportConflict(t,e){(this.modal.create({nzTitle:this.transloco.translate("workflows.import.conflictTitle"),nzContent:Pt,nzData:{name:e},nzFooter:null}).afterClose??Dg(void 0)).pipe(ue(this.destroyRef)).subscribe(I=>{(I==="update"||I==="create_new")&&this.postImport(t,I);});}importConflict(t){if(!(t instanceof bi)||t.httpStatus!==409||!t.details)return null;let e=t.details.conflictingWorkflowId,a=t.details.conflictingWorkflowName;return typeof e!="string"||typeof a!="string"?null:{id:e,name:a}}load(){let t=this.subjectHandlingFilter();this.loading.set(true),this.loadError.set(null),this.workflowsApi.list(t==="all"?void 0:{subjectHandling:t}).pipe(ue(this.destroyRef)).subscribe({next:e=>{this.workflows.set(e),this.loading.set(false);},error:e=>{this.loading.set(false),this.loadError.set(this.errorMessage(e,this.transloco.translate("workflows.list.loadFailed")));}});}errorMessage(t,e){return t instanceof bi||t instanceof Error?t.message:e}static{this.\u0275fac=function(e){return new(e||i)};}static{this.\u0275cmp=QE({type:i,selectors:[["app-workflow-list"]],decls:24,vars:18,consts:[["importFileInput",""],["data-testid","workflows-list",1,"list-page"],[1,"header"],[1,"header-actions"],["type","file","accept","application/json,.json","hidden","","data-testid","import-file",3,"change"],["nz-button","","type","button","data-testid","import-workflow",3,"click","disabled"],["nz-button","","type","button","data-testid","download-instructions",3,"click"],["nz-button","","type","button","data-testid","browse-library",3,"click"],["nz-button","","nzType","primary","routerLink","/workflows/new","data-testid","create-workflow"],["data-testid","action-error",1,"error"],["data-testid","loading"],["data-testid","load-error",1,"error"],[1,"field"],["data-testid","subject-handling-filter",3,"ngModelChange","ngModel"],[3,"nzValue","nzLabel"],["data-testid","delete-error",1,"error"],["data-testid","empty-state",1,"empty"],["data-testid","workflow-items",3,"nzData","nzFrontPagination","nzShowPagination"],[1,"empty-actions"],["nz-button","","type","button","data-testid","empty-browse-library",3,"click"],["nz-button","","nzType","primary","routerLink","/workflows/new","data-testid","empty-create"],[1,"description-cell"],[1,"muted"],[1,"actions"],["nz-button","","nzType","link","type","button"],["nz-button","","nzType","link",3,"routerLink"],["nz-button","","nzType","link","type","button",3,"click"],["nz-button","","nzType","link","nzDanger","","type","button","nz-popconfirm","",3,"nzOnConfirm","nzPopconfirmTitle","nzOkText","nzCancelText"]],template:function(e,a){if(e&1){let f=LD();_i(0,"main",1)(1,"header",2)(2,"h1"),vw(3),Rw(4,"transloco"),Kc(),_i(5,"div",3)(6,"input",4,0),gh("change",function(J){return a.onImportFile(J)}),Kc(),_i(8,"button",5),gh("click",function(){Pu(f);let J=zD(7);return Lu(J.click())}),vw(9),Rw(10,"transloco"),Kc(),_i(11,"button",6),gh("click",function(){return a.downloadInstructions()}),vw(12),Rw(13,"transloco"),Kc(),_i(14,"button",7),gh("click",function(){return a.openLibrary()}),vw(15),Rw(16,"transloco"),Kc(),_i(17,"a",8),vw(18),Rw(19,"transloco"),Kc()()(),bD(20,te,2,1,"p",9),bD(21,ee,3,3,"p",10)(22,ie,2,1,"p",11)(23,me,10,6),Kc();}e&2&&(gI(3),Ph(Ow(4,8,"workflows.list.title")),gI(5),ch("disabled",a.importing()),gI(),nl(" ",Ow(10,10,"workflows.list.import")," "),gI(3),nl(" ",Ow(13,12,"workflows.list.downloadInstructions")," "),gI(3),nl(" ",Ow(16,14,"workflows.list.browseLibrary")," "),gI(3),nl(" ",Ow(19,16,"workflows.list.createButton")," "),gI(2),_D(a.actionError()?20:-1),gI(),_D(a.loading()?21:a.loadError()?22:23));},dependencies:[$8,al,rl,$i,v3,pf,bd,sp,fp,ts,_n,Cn,ex,Fm,Am,pc,as,dc,Kl,cc,Ji,ls,W,I,Kt$1],styles:[".list-page[_ngcontent-%COMP%]{padding:1.25rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1rem}.header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.header-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;flex-shrink:0;justify-content:flex-end}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.35rem;max-width:16rem}.field[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.85rem;color:#57534e}.muted[_ngcontent-%COMP%]{color:#a8a29e;font-style:italic}.empty[_ngcontent-%COMP%]{text-align:center;padding:2.5rem 1rem;border:1px dashed #d6d3d1;background:#fff9}.empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0 0 1rem;color:#57534e}.empty-actions[_ngcontent-%COMP%]{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem}.error[_ngcontent-%COMP%]{color:#9f1239}.actions[_ngcontent-%COMP%]{white-space:nowrap}[_nghost-%COMP%] td.description-cell{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;text-overflow:unset;max-width:28rem;vertical-align:top}[_nghost-%COMP%] .ant-table-tbody>tr>td{white-space:normal;vertical-align:top}"]});}}return i})();export{ci as WorkflowListComponent,ci as WorkflowsManageComponent};
@@ -0,0 +1 @@
1
+ import {af as _,Q as QE,ag as D6,v as v3,ah as Yc,a3 as Th,a4 as xh,K as Kt,j as _i,N as ND,l as Kc,p as lh,w as gI,D as xD,k as vw,R as Rw,ai as zD,E as VD,x as ch,I as xw,aa as Nw,G as ah,z as nl,O as Ow}from'./main-2ZW45HAE.js';var A=e=>["/manage",e],z=()=>({exact:true}),K=(e,i)=>i.path;function L(e,i){if(e&1&&(_i(0,"a",3,0),lh(2,"span",4),vw(3),Rw(4,"transloco"),Kc()),e&2){let t=i.$implicit,n=zD(1),r=VD();ch("routerLink",xw(8,A,t.path))("routerLinkActiveOptions",Nw(10,z)),ah("data-testid","manage-tab-"+t.path),gI(2),ch("nzType",t.icon)("nzTheme",r.navIconTheme(n.isActive,t.icon)),gI(),nl(" ",Ow(4,6,t.labelKey)," ");}}var I=[{path:"workflows",labelKey:"manage.tab.workflows",icon:"partition"},{path:"views",labelKey:"manage.tab.views",icon:"appstore"},{path:"providers",labelKey:"manage.tab.providers",icon:"api"},{path:"context-files",labelKey:"manage.tab.contextFiles",icon:"file"},{path:"local-repositories",labelKey:"manage.tab.localRepositories",icon:"database"},{path:"worktrees",labelKey:"manage.tab.worktrees",icon:"deployment-unit"},{path:"preferences",labelKey:"manage.tab.preferences",icon:"setting"}],B=(()=>{class e{constructor(){this.tabs=I,this.navIconTheme=_;}static{this.\u0275fac=function(n){return new(n||e)};}static{this.\u0275cmp=QE({type:e,selectors:[["app-manage-shell"]],decls:5,vars:0,consts:[["rla","routerLinkActive"],["data-testid","manage-shell",1,"manage-shell"],["data-testid","manage-tabs","role","tablist",1,"manage-tabs"],["role","tab","routerLinkActive","active",3,"routerLink","routerLinkActiveOptions"],["nz-icon","",1,"tab-icon",3,"nzType","nzTheme"]],template:function(n,r){n&1&&(_i(0,"section",1)(1,"nav",2),ND(2,L,5,11,"a",3,K),Kc(),lh(4,"router-outlet"),Kc()),n&2&&(gI(2),xD(r.tabs));},dependencies:[D6,v3,Yc,Th,xh,Kt],styles:[".manage-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:100%}.manage-tabs[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 1.5rem 0;border-bottom:1px solid var(--knoflows-border, #e1dacb);background:var(--knoflows-surface, #fff)}.manage-tabs[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;padding:.65rem .9rem;color:var(--knoflows-text-secondary, inherit);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tab-icon[_ngcontent-%COMP%]{font-size:16px;color:currentColor}.manage-tabs[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:var(--knoflows-text, inherit)}.manage-tabs[_ngcontent-%COMP%] a.active[_ngcontent-%COMP%]{color:var(--knoflows-link, inherit);font-weight:600;border-bottom-color:var(--knoflows-link, currentColor)}"]});}}return e})();export{I as MANAGE_TABS,B as ManageShellComponent};