@knoflows/engine 0.1.1-alpha.0 → 0.1.1-alpha.2

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 (70) hide show
  1. package/dist/engine.js +31 -19
  2. package/dist/migrations/20260923070000_local_repo_default_reviewers/migration.sql +1 -0
  3. package/dist/migrations/20260923072051_hard_beast/migration.sql +2 -0
  4. package/dist/migrations/20260923072051_hard_beast/snapshot.json +1408 -0
  5. package/package.json +4 -4
  6. package/static/assets/i18n/en.json +23 -0
  7. package/static/assets/i18n/es.json +23 -0
  8. package/static/chunk-5P9quDD0.js +1 -0
  9. package/static/chunk-B1I44qNh.js +1 -0
  10. package/static/{chunk-BHko4hHm.js → chunk-B67hwr1X.js} +1 -1
  11. package/static/{chunk-CGHIKxZG.js → chunk-B7mctPQM.js} +1 -1
  12. package/static/{chunk-EDwdt-Wk.js → chunk-BAPXVTBt.js} +1 -1
  13. package/static/chunk-BNQus_d_.js +1 -0
  14. package/static/chunk-Bh5et471.js +1 -0
  15. package/static/{chunk--EZIkevK.js → chunk-BidviQhN.js} +1 -1
  16. package/static/chunk-BldTY6RI.js +1 -0
  17. package/static/chunk-BmEXmF8m.js +1 -0
  18. package/static/chunk-BqhxU3er.js +1 -0
  19. package/static/{chunk-Det50scT.js → chunk-Bv65hEw_.js} +1 -1
  20. package/static/{chunk-Dm_EWkUz.js → chunk-C07s4-rF.js} +1 -1
  21. package/static/chunk-C5eZIOiF.js +1 -0
  22. package/static/{chunk-BRAytoQl.js → chunk-C61nx2gP.js} +1 -1
  23. package/static/{chunk-DbQy6dR8.js → chunk-CI75Yj8J.js} +1 -1
  24. package/static/chunk-CNip9Ktj.js +1 -0
  25. package/static/chunk-CP6elnGc.js +1 -0
  26. package/static/{chunk-YU-Bg77r.js → chunk-Cf14heGp.js} +1 -1
  27. package/static/chunk-CiB-X52X.js +1 -0
  28. package/static/chunk-Cj5izLCS.js +1 -0
  29. package/static/{chunk-BIJScqTM.js → chunk-CxnyhsKe.js} +1 -1
  30. package/static/chunk-CyvupcYz.js +1 -0
  31. package/static/{chunk-CoQPYpxp.js → chunk-D1sSb3lO.js} +1 -1
  32. package/static/{chunk-iIEmH_ui.js → chunk-D5BPM_KC.js} +1 -1
  33. package/static/{chunk-D-ueyYEC.js → chunk-D9f8Ltay.js} +3 -3
  34. package/static/{chunk-DdDI9wRc.js → chunk-DBtN2lWe.js} +3 -3
  35. package/static/chunk-DD_o_6mU.js +1 -0
  36. package/static/chunk-DRe_kA_l.js +1 -0
  37. package/static/{chunk-BcDRgzYZ.js → chunk-Dt7AgNFd.js} +1 -1
  38. package/static/chunk-Dxa2JdVP.js +1 -0
  39. package/static/{chunk-CtiubhW7.js → chunk-DyGh8J3-.js} +1 -1
  40. package/static/chunk-IZZsw-Ul.js +1 -0
  41. package/static/{chunk-vINo5yVD.js → chunk-MciiAFro.js} +1 -1
  42. package/static/{chunk-CJWR0gwk.js → chunk-RWVebRsq.js} +1 -1
  43. package/static/chunk-doY5ozP9.js +1 -0
  44. package/static/{chunk-8ezEUcxN.js → chunk-g20-BKKx.js} +6 -6
  45. package/static/chunk-lPfYUUfU.js +1 -0
  46. package/static/chunk-vnmh6IU3.js +1 -0
  47. package/static/chunk-zWWkMLc1.js +1 -0
  48. package/static/index.html +1 -1
  49. package/static/{main-3VZRFHGG.js → main-GFNB573R.js} +1 -1
  50. package/static/chunk-B17yZLWe.js +0 -1
  51. package/static/chunk-B8OjWpOp.js +0 -1
  52. package/static/chunk-BKYaECRn.js +0 -1
  53. package/static/chunk-BLN4QkSi.js +0 -1
  54. package/static/chunk-BaLWULJh.js +0 -1
  55. package/static/chunk-Bok52e_k.js +0 -1
  56. package/static/chunk-BowAQ7m9.js +0 -1
  57. package/static/chunk-Bz7bE4tT.js +0 -1
  58. package/static/chunk-C7P7hUiX.js +0 -1
  59. package/static/chunk-CAxHAuhV.js +0 -1
  60. package/static/chunk-CZA-kp5w.js +0 -1
  61. package/static/chunk-CwEMAptL.js +0 -1
  62. package/static/chunk-D1355dNd.js +0 -1
  63. package/static/chunk-D8qyjd0z.js +0 -1
  64. package/static/chunk-DOAz4S6b.js +0 -1
  65. package/static/chunk-DoJknvak.js +0 -1
  66. package/static/chunk-DrncP2Qx.js +0 -1
  67. package/static/chunk-IjKs-6Cl.js +0 -1
  68. package/static/chunk-LPXHXTnJ.js +0 -1
  69. package/static/chunk-SiaN7xSQ.js +0 -1
  70. package/static/chunk-bSS_wejP.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knoflows/engine",
3
- "version": "0.1.1-alpha.0",
3
+ "version": "0.1.1-alpha.2",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "bin": {
@@ -31,15 +31,15 @@
31
31
  "test:secrets": "tsx src/secrets/secret-store.test.ts",
32
32
  "test:jira": "tsx src/providers/ticket/adf.test.ts && tsx src/providers/ticket/jira-ticket-provider.test.ts && tsx src/providers/query-templates/jira-query-templates.test.ts",
33
33
  "test:confluence": "tsx src/providers/documentation/confluence-documentation-provider.test.ts && tsx src/providers/query-templates/confluence-query-templates.test.ts",
34
- "test:github": "tsx src/providers/ticket/github-issues-provider.test.ts",
34
+ "test:github": "tsx src/providers/ticket/github-issues-provider.test.ts && tsx src/providers/repo/github-repo-provider.test.ts",
35
35
  "test:bitbucket": "tsx src/providers/query-repo-list.test.ts && tsx src/providers/repo/bitbucket-repo-provider.test.ts",
36
36
  "test:registry": "tsx src/providers/provider-registry.service.test.ts",
37
37
  "test:claude-agent": "tsx src/providers/agent/claude-agent-provider.test.ts",
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 && tsx src/providers/testable-connection.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.subworkflow-source.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 && tsx src/runner/test/workflow-runner.condition.test.ts",
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/test-connection.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",
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.subworkflow-source.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 && tsx src/runner/test/workflow-runner.condition.test.ts && tsx src/runner/test/engine-actions.test.ts && tsx src/runner/test/workflow-runner.engine-action.test.ts",
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/test-connection.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/internal-workflows.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",
45
45
  "test:spa-fallback": "tsx src/static/spa-fallback.test.ts"
@@ -66,6 +66,9 @@
66
66
  "local-repos.form.remoteInstancePlaceholder": "Not linked",
67
67
  "local-repos.form.remoteIdentifier": "Remote repository",
68
68
  "local-repos.form.remoteIdentifierPlaceholder": "Choose a known repository",
69
+ "local-repos.form.defaultReviewers": "Default reviewers (optional)",
70
+ "local-repos.form.defaultReviewersHint": "Usernames suggested when creating a pull request against this remote. Type freely — not restricted to a directory.",
71
+ "local-repos.form.defaultReviewersPlaceholder": "Add reviewer usernames",
69
72
  "local-repos.form.remoteHint": "Link this checkout to a specific provider instance's remote repo so workflows can resolve it from a pull request.",
70
73
  "local-repos.loadFailed": "Failed to load local repositories",
71
74
  "local-repos.saveFailed": "Failed to save local repository",
@@ -226,19 +229,24 @@
226
229
  "jobs.table.retry": "Retry",
227
230
  "jobs.table.cancel": "Cancel",
228
231
  "jobs.list.title": "Jobs",
232
+ "jobs.list.tabActive": "Active",
233
+ "jobs.list.tabHistory": "History",
229
234
  "jobs.list.filterByStatus": "Filter by status",
230
235
  "jobs.list.filterByWorkflow": "Filter by workflow",
231
236
  "jobs.list.showChildJobs": "Show batch/child jobs",
232
237
  "jobs.list.empty": "No jobs match these filters.",
233
238
  "jobs.list.loadFailed": "Failed to load jobs",
234
239
  "jobs.list.filterAll": "All",
240
+ "jobs.list.waitingForHuman": "Waiting for Human",
235
241
  "jobs.list.running": "Currently Running",
236
242
  "jobs.list.queued": "Queued",
237
243
  "jobs.list.history": "History",
244
+ "jobs.list.waitingEmpty": "No jobs are waiting for human input.",
238
245
  "jobs.list.runningEmpty": "No jobs are running.",
239
246
  "jobs.list.queuedEmpty": "No agent steps are waiting for a slot.",
240
247
  "jobs.list.historyEmpty": "No jobs match these filters.",
241
248
  "jobs.list.queuedAgent": "Agent instance",
249
+ "jobs.list.queuedAt": "Queued at",
242
250
  "jobs.list.queuedWait": "Waiting",
243
251
  "workflow-editor.titleNew": "New workflow",
244
252
  "workflow-editor.titleEdit": "Edit workflow · {{name}}",
@@ -346,6 +354,8 @@
346
354
  "step-list.stepType.extract": "Extract",
347
355
  "step-list.stepType.git": "Git",
348
356
  "step-list.stepType.provider_action": "Provider action",
357
+ "step-list.stepType.engine_action": "Engine action",
358
+ "step-list.engineAction.readonly": "Engine action (internal — not editable here)",
349
359
  "step-list.stepType.sub_workflow": "Sub workflow",
350
360
  "step-list.stepType.loop": "Loop",
351
361
  "step-list.outputFormat.questionnaire": "Questionnaire",
@@ -428,6 +438,7 @@
428
438
  "settings.typeOption.jira": "Jira",
429
439
  "settings.typeOption.bitbucket": "Bitbucket",
430
440
  "settings.typeOption.github": "GitHub Issues",
441
+ "settings.typeOption.githubPulls": "GitHub Pull Requests",
431
442
  "settings.typeOption.confluence": "Confluence",
432
443
  "settings.typeOption.manualTicket": "Manual (Ticket)",
433
444
  "settings.typeOption.manualDocumentation": "Manual (Documentation)",
@@ -506,6 +517,7 @@
506
517
  "settings.loadFailed": "Failed to load settings",
507
518
  "workflows.list.title": "Workflows",
508
519
  "workflows.list.createButton": "Create workflow",
520
+ "workflows.list.createWithAi": "Create with AI",
509
521
  "workflows.list.browseLibrary": "Browse library",
510
522
  "workflows.list.emptyState": "No workflows yet. Create one to get started.",
511
523
  "workflows.list.emptyCreateButton": "Create your first workflow",
@@ -540,6 +552,17 @@
540
552
  "workflow-library.source.example": "Example",
541
553
  "workflow-library.source.community": "Community",
542
554
  "workflow-library.source.official": "Official",
555
+ "workflow-library.source.organization": "Organization",
556
+ "create-workflow-ai.title": "Create workflow with AI",
557
+ "create-workflow-ai.lede": "Describe the workflow in plain language. The Engine drafts a real WorkflowDefinition against your configured providers and repositories, then asks you to review before saving.",
558
+ "create-workflow-ai.loading": "Checking availability…",
559
+ "create-workflow-ai.needsDefaultAgent": "Configure a default agent instance in Settings to use this feature.",
560
+ "create-workflow-ai.statusFailed": "Could not check Create Workflow availability.",
561
+ "create-workflow-ai.descriptionLabel": "What should this workflow do?",
562
+ "create-workflow-ai.descriptionPlaceholder": "e.g. Review a pull request using Bitbucket create_pr after pushing a branch from my local kno-flows repo…",
563
+ "create-workflow-ai.start": "Start drafting",
564
+ "create-workflow-ai.starting": "Starting…",
565
+ "create-workflow-ai.startFailed": "Could not start Create Workflow.",
543
566
  "workflow-library.previewSteps": "Preview steps",
544
567
  "workflow-library.hideSteps": "Hide steps",
545
568
  "workflow-library.add": "Add to my workflows",
@@ -66,6 +66,9 @@
66
66
  "local-repos.form.remoteInstancePlaceholder": "Sin vincular",
67
67
  "local-repos.form.remoteIdentifier": "Repositorio remoto",
68
68
  "local-repos.form.remoteIdentifierPlaceholder": "Elige un repositorio conocido",
69
+ "local-repos.form.defaultReviewers": "Revisores por defecto (opcional)",
70
+ "local-repos.form.defaultReviewersHint": "Nombres de usuario sugeridos al crear un pull request contra este remoto. Escritura libre.",
71
+ "local-repos.form.defaultReviewersPlaceholder": "Añadir nombres de revisores",
69
72
  "local-repos.form.remoteHint": "Vincula esta copia local a un repositorio remoto de una instancia concreta para que los flujos puedan resolverlo desde un pull request.",
70
73
  "local-repos.loadFailed": "No se pudieron cargar los repositorios locales",
71
74
  "local-repos.saveFailed": "No se pudo guardar el repositorio local",
@@ -226,19 +229,24 @@
226
229
  "jobs.table.retry": "Reintentar",
227
230
  "jobs.table.cancel": "Cancelar",
228
231
  "jobs.list.title": "Trabajos",
232
+ "jobs.list.tabActive": "Activos",
233
+ "jobs.list.tabHistory": "Historial",
229
234
  "jobs.list.filterByStatus": "Filtrar por estado",
230
235
  "jobs.list.filterByWorkflow": "Filtrar por flujo",
231
236
  "jobs.list.showChildJobs": "Mostrar trabajos de lote e hijos",
232
237
  "jobs.list.empty": "Ningún trabajo coincide con estos filtros.",
233
238
  "jobs.list.loadFailed": "No se pudieron cargar los trabajos",
234
239
  "jobs.list.filterAll": "Todos",
240
+ "jobs.list.waitingForHuman": "Esperando intervención humana",
235
241
  "jobs.list.running": "En ejecución",
236
242
  "jobs.list.queued": "En cola",
237
243
  "jobs.list.history": "Historial",
244
+ "jobs.list.waitingEmpty": "Ningún trabajo espera intervención humana.",
238
245
  "jobs.list.runningEmpty": "No hay trabajos en ejecución.",
239
246
  "jobs.list.queuedEmpty": "Ningún paso de agente está esperando un hueco.",
240
247
  "jobs.list.historyEmpty": "Ningún trabajo coincide con estos filtros.",
241
248
  "jobs.list.queuedAgent": "Instancia de agente",
249
+ "jobs.list.queuedAt": "Encolado a las",
242
250
  "jobs.list.queuedWait": "Espera",
243
251
  "workflow-editor.loading": "Cargando…",
244
252
  "workflow-editor.titleNew": "Nuevo flujo",
@@ -346,6 +354,8 @@
346
354
  "step-list.stepType.extract": "extract",
347
355
  "step-list.stepType.git": "git",
348
356
  "step-list.stepType.provider_action": "provider_action",
357
+ "step-list.stepType.engine_action": "Acción del Engine",
358
+ "step-list.engineAction.readonly": "Acción del Engine (interna — no editable aquí)",
349
359
  "step-list.stepType.sub_workflow": "sub_workflow",
350
360
  "step-list.stepType.loop": "loop",
351
361
  "step-list.outputFormat.questionnaire": "questionnaire",
@@ -428,6 +438,7 @@
428
438
  "settings.typeOption.jira": "Jira",
429
439
  "settings.typeOption.bitbucket": "Bitbucket",
430
440
  "settings.typeOption.github": "GitHub Issues",
441
+ "settings.typeOption.githubPulls": "GitHub Pull Requests",
431
442
  "settings.typeOption.confluence": "Confluence",
432
443
  "settings.typeOption.manualTicket": "Manual (ticket)",
433
444
  "settings.typeOption.manualDocumentation": "Manual (documentación)",
@@ -506,6 +517,7 @@
506
517
  "settings.loadFailed": "No se pudieron cargar los ajustes",
507
518
  "workflows.list.title": "Flujos",
508
519
  "workflows.list.createButton": "Crear flujo",
520
+ "workflows.list.createWithAi": "Crear con IA",
509
521
  "workflows.list.browseLibrary": "Examinar biblioteca",
510
522
  "workflows.list.emptyState": "Aún no hay flujos. Crea uno para empezar.",
511
523
  "workflows.list.emptyCreateButton": "Crea tu primer flujo",
@@ -540,6 +552,17 @@
540
552
  "workflow-library.source.example": "Ejemplo",
541
553
  "workflow-library.source.community": "Comunidad",
542
554
  "workflow-library.source.official": "Oficial",
555
+ "workflow-library.source.organization": "Organización",
556
+ "create-workflow-ai.title": "Crear flujo con IA",
557
+ "create-workflow-ai.lede": "Describe el flujo en lenguaje natural. El Engine redacta un WorkflowDefinition real contra tus proveedores y repositorios configurados, y te pide revisión antes de guardarlo.",
558
+ "create-workflow-ai.loading": "Comprobando disponibilidad…",
559
+ "create-workflow-ai.needsDefaultAgent": "Configura un agente predeterminado en Ajustes para usar esta función.",
560
+ "create-workflow-ai.statusFailed": "No se pudo comprobar la disponibilidad de Crear flujo.",
561
+ "create-workflow-ai.descriptionLabel": "¿Qué debe hacer este flujo?",
562
+ "create-workflow-ai.descriptionPlaceholder": "p. ej. Revisar un pull request usando create_pr de Bitbucket tras hacer push desde mi repo local…",
563
+ "create-workflow-ai.start": "Empezar borrador",
564
+ "create-workflow-ai.starting": "Iniciando…",
565
+ "create-workflow-ai.startFailed": "No se pudo iniciar Crear flujo.",
543
566
  "workflow-library.previewSteps": "Ver pasos",
544
567
  "workflow-library.hideSteps": "Ocultar pasos",
545
568
  "workflow-library.add": "Añadir a mis flujos",
@@ -0,0 +1 @@
1
+ import {A as At}from'./chunk-lPfYUUfU.js';import'./chunk-BAPXVTBt.js';import {l}from'./chunk-D19C8Gcb.js';import {h,x,b as b$1,v,T,I,y,E,P,A,j}from'./chunk-CyvupcYz.js';import {w,F,L,O as O$1}from'./chunk-doY5ozP9.js';import {H as He}from'./chunk-DRe_kA_l.js';import {z as ze,S as St}from'./chunk-C61nx2gP.js';import {f}from'./chunk-BidviQhN.js';import {o as ot$1}from'./chunk-Bv65hEw_.js';import'./chunk-MciiAFro.js';import {f as f$1}from'./chunk-CxnyhsKe.js';import {C,a as C1,R as J1,b as at,V as Ve,bo as O,bp as de,ba as Se,q as qo$1,U as Uw,u as ue,s,r as r$1,c as bi$1,Z as ZE,d as $8,e as al,bb as er$1,f as rl,g as $i$1,v as v3,a0 as pf,a1 as bd,a2 as sp,a3 as fp,h as ex,F as Fm,A as Am,K as Kt,j as _i$1,I as Iw,J as Jc,P as Pw,l as _D,m as mh,n as gI,L as Lh,o as Fw,M as MD,p as lh,x as rl$1,b0 as jn$1,a6 as q0,a7 as U0,W as id,t as t$1,bq as Ja,b1 as ts,z as xD,E as ch,D as AD,y as FD,H as HD,k as iE,N as ND,aO as SD,w as aE,a8 as KE,a9 as fu,aE as J0,av as K0,br as pn,bs as G0,bf as _r$1,bt as Ee,bg as Ci$1,ac as Oe,bu as ml,aD as Nr,bh as Bt,bv as pl,bw as Gw,bx as z0,by as Qr,bz as tl,bA as kr,bB as Xf,X as qw,bC as il,a4 as Ah,a5 as Th,bD as hl,au as w5,ak as $D,aw as rh,aT as Vw,bj as Nw,bk as St$1,bE as fn,bl as wo$1,bF as oD,bG as ir$1,aG as lw,bH as wh,bI as zD,bJ as Dh,bK as W0,bm as Xc,bL as yh,bn as el,S as Sh,B as uh,az as jw,G as Aw,aH as QD,O as Fu,Q as ju,bM as Hh,bN as Vh,al as UD,aL as Fh,aR as xw,bO as Tw}from'./main-GFNB573R.js';import {b}from'./chunk-Dt7AgNFd.js';import {N as Nt,K as Ke}from'./chunk-BmEXmF8m.js';import {G as Gn$1,u as un}from'./chunk-BqhxU3er.js';import {a as ai$1,z,o as ot,b as at$1,i as it,r as rt}from'./chunk-C07s4-rF.js';import {W,I as I$1}from'./chunk-zWWkMLc1.js';import {N as N_,a as Ad,m as m_,o as og,b as am,t as ty,L as L_,c as om,X as X_,W as W_,j as jg,E as E_}from'./chunk-g20-BKKx.js';import {L as Lt,u as ut}from'./chunk-DyGh8J3-.js';import'./chunk-D5BPM_KC.js';var On=["input"],Wn=["inputNumberHost"],Rn=[[["","nzInputAddonBefore",""]],[["","nzInputAddonAfter",""]],[["","nzInputPrefix",""]],[["","nzInputSuffix",""]],[["","nzInputNumberUpIcon",""]],[["","nzInputNumberDownIcon",""]]],jn=["[nzInputAddonBefore]","[nzInputAddonAfter]","[nzInputPrefix]","[nzInputSuffix]","[nzInputNumberUpIcon]","[nzInputNumberDownIcon]"];function Kn(i,l){}function Hn(i,l){if(i&1&&rh(0,Kn,0,0,"ng-template",8),i&2){HD();let e=QD(4);lh("ngTemplateOutlet",e);}}function qn(i,l){}function Gn(i,l){if(i&1&&rh(0,qn,0,0,"ng-template",8),i&2){HD();let e=QD(8);lh("ngTemplateOutlet",e);}}function Un(i,l){}function Jn(i,l){if(i&1&&rh(0,Un,0,0,"ng-template",8),i&2){HD();let e=QD(12);lh("ngTemplateOutlet",e);}}function Zn(i,l){if(i&1&&Iw(0),i&2){let e=HD(3);Lh(e.nzAddonBefore());}}function Qn(i,l){i&1&&(_i$1(0,"div",10),UD(1,0,null,Zn,1,1),Jc());}function Yn(i,l){}function Xn(i,l){if(i&1&&rh(0,Yn,0,0,"ng-template",8),i&2){HD(2);let e=QD(6);lh("ngTemplateOutlet",e);}}function ei(i,l){}function ti(i,l){if(i&1&&rh(0,ei,0,0,"ng-template",8),i&2){HD(2);let e=QD(10);lh("ngTemplateOutlet",e);}}function ni(i,l){if(i&1&&Iw(0),i&2){let e=HD(3);Lh(e.nzAddonAfter());}}function ii(i,l){i&1&&(_i$1(0,"div",10),UD(1,1,null,ni,1,1),Jc());}function oi(i,l){if(i&1&&(_i$1(0,"div",9),_D(1,Qn,3,0,"div",10),_D(2,Xn,1,1,null,8)(3,ti,1,1,null,8),_D(4,ii,3,0,"div",10),Jc()),i&2){let e=HD();gI(),MD(e.hasAddonBefore()?1:-1),gI(),MD(e.hasAffix()?2:3),gI(2),MD(e.hasAddonAfter()?4:-1);}}function ri(i,l){}function ai(i,l){if(i&1&&(_i$1(0,"div"),rh(1,ri,0,0,"ng-template",8),Jc()),i&2){let e=HD(),t=QD(8);lw(e.affixWrapperClass()),gI(),lh("ngTemplateOutlet",t);}}function si(i,l){if(i&1&&Iw(0),i&2){let e=HD(3);Lh(e.nzPrefix());}}function li(i,l){i&1&&(_i$1(0,"span",11),UD(1,2,null,si,1,1),Jc());}function pi(i,l){}function di(i,l){if(i&1&&Iw(0),i&2){let e=HD(3);Lh(e.nzSuffix());}}function ci(i,l){if(i&1&&uh(0,"nz-form-item-feedback-icon",13),i&2){let e=HD(3);lh("status",e.finalStatus());}}function _i(i,l){if(i&1&&(_i$1(0,"span",12),UD(1,3,null,di,1,1),_D(3,ci,1,1,"nz-form-item-feedback-icon",13),Jc()),i&2){let e=HD(2);gI(3),MD(e.hasFeedback()&&e.finalStatus()?3:-1);}}function mi(i,l){if(i&1&&(_D(0,li,3,0,"span",11),rh(1,pi,0,0,"ng-template",8),_D(2,_i,4,1,"span",12)),i&2){let e=HD(),t=QD(10);MD(e.hasPrefix()?0:-1),gI(),lh("ngTemplateOutlet",t),gI(),MD(e.hasSuffix()?2:-1);}}function ui(i,l){}function xi(i,l){if(i&1&&(_i$1(0,"div",null,5),rh(2,ui,0,0,"ng-template",8),Jc()),i&2){let e=HD(),t=QD(12);lw(e.inputNumberClass()),gI(2),lh("ngTemplateOutlet",t);}}function Ci(i,l){i&1&&uh(0,"nz-icon",20);}function fi(i,l){i&1&&uh(0,"nz-icon",21);}function gi(i,l){if(i&1){let e=FD();_i$1(0,"div",17,7),mh("mouseup",function(){Fu(e);let n=HD(2);return ju(n.stopAutoStep())})("mouseleave",function(){Fu(e);let n=HD(2);return ju(n.stopAutoStep())}),_i$1(2,"span",18),mh("mousedown",function(n){Fu(e);let o=HD(2);return ju(o.onStepMouseDown(n,true))}),UD(3,4,null,Ci,1,0),Jc(),_i$1(5,"span",19),mh("mousedown",function(n){Fu(e);let o=HD(2);return ju(o.onStepMouseDown(n,false))}),UD(6,5,null,fi,1,0),Jc()();}if(i&2){let e=HD(2);gI(2),Sh("ant-input-number-handler-up-disabled",e.upDisabled()),ch("aria-disabled",e.upDisabled()),gI(3),Sh("ant-input-number-handler-down-disabled",e.downDisabled()),ch("aria-disabled",e.downDisabled());}}function hi(i,l){if(i&1){let e=FD();_D(0,gi,8,6,"div",14),_i$1(1,"div",15)(2,"input",16,6),mh("input",function(){Fu(e);let n=QD(3),o=HD();return ju(o.onInput(n.value))})("wheel",function(n){Fu(e);let o=HD();return ju(o.onWheel(n))}),Jc()();}if(i&2){let e=HD();MD(e.nzControls()?0:-1),gI(2),lh("value",e.displayValue())("placeholder",e.nzPlaceHolder()??"")("disabled",e.finalDisabled())("readOnly",e.nzReadOnly()),ch("aria-valuemin",e.nzMin())("aria-valuemax",e.nzMax())("id",e.nzId())("step",e.nzStep())("value",e.displayValue());}}var pt=(()=>{class i{nzId=q0(null);nzSize=q0("default");nzPlaceHolder=q0(null);nzStatus=q0("");nzVariant=q0();nzStep=q0(1,{transform:J0});nzMin=q0(Number.MIN_SAFE_INTEGER,{transform:J0});nzMax=q0(Number.MAX_SAFE_INTEGER,{transform:J0});nzPrecision=q0(null);nzParser=q0();nzFormatter=q0();nzDisabled=q0(false,{transform:K0});nzReadOnly=q0(false,{transform:K0});nzAutoFocus=q0(false,{transform:K0});nzKeyboard=q0(true,{transform:K0});nzControls=q0(true,{transform:K0});nzChangeOnWheel=q0(true,{transform:K0});nzPrefix=q0();nzSuffix=q0();nzAddonBefore=q0();nzAddonAfter=q0();nzBlur=U0();nzFocus=U0();nzOnStep=U0();onChange=()=>{};onTouched=()=>{};isDisabledFirstChange=true;compactSize=C(pn,{optional:true});inputRef=G0.required("input");hostRef=G0("inputNumberHost");elementRef=C(_r$1);injector=C(Ee);focusMonitor=C(Ci$1);directionality=C(Oe);nzFormStatusService=C(ml,{optional:true});autoStepTimer=null;defaultFormatter=e=>{let t=this.nzPrecision();return Nr(t)?e.toFixed(t):e.toString()};value=qo$1(null);displayValue=qo$1("");formSize=C(Bt,{optional:true});formVariant=C(pl,{optional:true});dir=C(Oe).valueSignal;focused=qo$1(false);hasFeedback=qo$1(false);finalStatus=Gw(()=>this.nzStatus());finalDisabled=Gw(()=>this.nzDisabled());prefix=z0(ot);suffix=z0(at$1);addonBefore=z0(it);addonAfter=z0(rt);hasPrefix=Uw(()=>!!this.nzPrefix()||!!this.prefix());hasSuffix=Uw(()=>!!this.nzSuffix()||!!this.suffix()||this.hasFeedback());hasAffix=Uw(()=>this.hasPrefix()||this.hasSuffix());hasAddonBefore=Uw(()=>!!this.nzAddonBefore()||!!this.addonBefore());hasAddonAfter=Uw(()=>!!this.nzAddonAfter()||!!this.addonAfter());hasAddon=Uw(()=>this.hasAddonBefore()||this.hasAddonAfter());class=Uw(()=>this.hasAddon()?this.groupWrapperClass():this.hasAffix()?this.affixWrapperClass():this.inputNumberClass());inputNumberClass=Uw(()=>r$1(r$1({"ant-input-number":true,"ant-input-number-lg":this.finalSize()==="large","ant-input-number-sm":this.finalSize()==="small","ant-input-number-disabled":this.finalDisabled(),"ant-input-number-readonly":this.nzReadOnly(),"ant-input-number-focused":this.focused(),"ant-input-number-rtl":this.dir()==="rtl","ant-input-number-in-form-item":!!this.nzFormStatusService,"ant-input-number-out-of-range":this.value()!==null&&!lt(this.value(),this.nzMin(),this.nzMax())},tl("ant-input-number",this.finalVariant())),Qr("ant-input-number",this.finalStatus(),this.hasFeedback())));affixWrapperClass=Uw(()=>r$1(r$1({"ant-input-number-affix-wrapper":true,"ant-input-number-affix-wrapper-disabled":this.finalDisabled(),"ant-input-number-affix-wrapper-readonly":this.nzReadOnly(),"ant-input-number-affix-wrapper-focused":this.focused(),"ant-input-number-affix-wrapper-rtl":this.dir()==="rtl"},Qr("ant-input-number-affix-wrapper",this.finalStatus(),this.hasFeedback())),tl("ant-input-number-affix-wrapper",this.finalVariant())));groupWrapperClass=Uw(()=>r$1(r$1({"ant-input-number-group-wrapper":true,"ant-input-number-group-wrapper-rtl":this.dir()==="rtl"},Qr("ant-input-number-group-wrapper",this.finalStatus(),this.hasFeedback())),tl("ant-input-number-group-wrapper",this.finalVariant())));finalSize=Uw(()=>this.formSize?.()?this.formSize():this.compactSize?this.compactSize():this.nzSize());finalVariant=Uw(()=>this.nzVariant()||this.formVariant?.()||"outlined");upDisabled=Uw(()=>!kr(this.value())&&this.value()>=this.nzMax());downDisabled=Uw(()=>!kr(this.value())&&this.value()<=this.nzMin());constructor(){let e=C(at);Xf(()=>{let t=this.hostRef(),n=t||this.elementRef;this.focusMonitor.monitor(n,true).pipe(ue(e)).subscribe(o=>{qw(()=>{this.focused.set(!!o),o?this.nzFocus.emit():(this.fixValue(),this.onTouched(),this.nzBlur.emit());});}),e.onDestroy(()=>{this.focusMonitor.stopMonitoring(n);});}),this.nzFormStatusService?.formStatusChanges.pipe(ue()).subscribe(({status:t,hasFeedback:n})=>{this.finalStatus.set(t),this.hasFeedback.set(n);});}ngOnInit(){this.nzAutoFocus()&&Xf(()=>this.focus(),{injector:this.injector});}writeValue(e){kr(e)&&(e=null),qw(()=>{this.value.set(e),this.setValue(e);});}registerOnChange(e){this.onChange=e;}registerOnTouched(e){this.onTouched=e;}setDisabledState(e){qw(()=>{this.finalDisabled.set(this.isDisabledFirstChange&&this.nzDisabled()||e);}),this.isDisabledFirstChange=false;}focus(e){il(this.inputRef().nativeElement,e);}blur(){this.inputRef().nativeElement.blur();}step(e,t,n){if(t&&this.upDisabled()||!t&&this.downDisabled())return;let o=e.shiftKey?this.nzStep()*10:this.nzStep();t||(o=-o);let y=10**zn(o),B=yn((Math.round((this.value()||0)*y)+Math.round(o*y))/y,this.nzMin(),this.nzMax(),this.nzPrecision());this.setValue(B),this.nzOnStep.emit({type:t?"up":"down",value:this.value(),offset:this.nzStep(),emitter:n}),this.focus();}setValue(e){let t=this.nzFormatter()??this.defaultFormatter,n=this.nzPrecision();Nr(n)&&(e&&=+e.toFixed(n));let o=kr(e)?"":t(e);this.displayValue.set(o),this.updateValue(e);}setValueByTyping(e){if(this.displayValue.set(e),e===""){this.updateValue(null);return}let n=(this.nzParser()??Sn)(e);if(wi(e)||Number.isNaN(n))return;let o=this.nzFormatter();if(o){let p=o(n);this.displayValue.set(p);}lt(n,this.nzMin(),this.nzMax())&&this.updateValue(n);}updateValue(e){this.value()!==e&&(this.value.set(e),this.onChange(e));}fixValue(){let e=this.displayValue();if(e==="")return;let n=(this.nzParser()??Sn)(e);if(Number.isNaN(n))n=this.value();else {let o=this.nzPrecision();Nr(o)&&zn(n)!==o&&(n=+n.toFixed(o)),lt(n,this.nzMin(),this.nzMax())||(n=yn(n,this.nzMin(),this.nzMax(),o));}this.setValue(n);}stopAutoStep(){this.autoStepTimer!==null&&(clearTimeout(this.autoStepTimer),this.autoStepTimer=null);}onStepMouseDown(e,t){e.preventDefault(),this.stopAutoStep(),this.step(e,t,"handler");let n=()=>{this.step(e,t,"handler"),this.autoStepTimer=setTimeout(n,bi);};this.autoStepTimer=setTimeout(n,vi);}onKeyDown(e){switch(e.keyCode){case 38:e.preventDefault(),this.nzKeyboard()&&this.step(e,true,"keyboard");break;case 40:e.preventDefault(),this.nzKeyboard()&&this.step(e,false,"keyboard");break;case 13:this.fixValue();break}}onInput(e){this.setValueByTyping(e);}onWheel(e){this.finalDisabled()||this.nzReadOnly()||!this.nzChangeOnWheel()||(e.preventDefault(),this.step(e,e.deltaY<0,"wheel"));}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=ZE({type:i,selectors:[["nz-input-number"]],contentQueries:function(t,n,o){t&1&&Dh(o,n.prefix,ot,5)(o,n.suffix,at$1,5)(o,n.addonBefore,it,5)(o,n.addonAfter,rt,5),t&2&&zD(4);},viewQuery:function(t,n){t&1&&wh(n.inputRef,On,5)(n.hostRef,Wn,5),t&2&&zD(2);},hostVars:2,hostBindings:function(t,n){t&1&&mh("keydown",function(p){return n.onKeyDown(p)}),t&2&&lw(n.class());},inputs:{nzId:[1,"nzId"],nzSize:[1,"nzSize"],nzPlaceHolder:[1,"nzPlaceHolder"],nzStatus:[1,"nzStatus"],nzVariant:[1,"nzVariant"],nzStep:[1,"nzStep"],nzMin:[1,"nzMin"],nzMax:[1,"nzMax"],nzPrecision:[1,"nzPrecision"],nzParser:[1,"nzParser"],nzFormatter:[1,"nzFormatter"],nzDisabled:[1,"nzDisabled"],nzReadOnly:[1,"nzReadOnly"],nzAutoFocus:[1,"nzAutoFocus"],nzKeyboard:[1,"nzKeyboard"],nzControls:[1,"nzControls"],nzChangeOnWheel:[1,"nzChangeOnWheel"],nzPrefix:[1,"nzPrefix"],nzSuffix:[1,"nzSuffix"],nzAddonBefore:[1,"nzAddonBefore"],nzAddonAfter:[1,"nzAddonAfter"]},outputs:{nzBlur:"nzBlur",nzFocus:"nzFocus",nzOnStep:"nzOnStep"},exportAs:["nzInputNumber"],features:[Nw([{provide:St$1,useExisting:wo$1(()=>i),multi:true},{provide:fn,useValue:"input-number"}]),oD([ir$1])],ngContentSelectors:jn,decls:13,vars:1,consts:[["inputNumberWithAddonInner",""],["inputNumberWithAffix",""],["inputNumberWithAffixInner",""],["inputNumber",""],["inputNumberInner",""],["inputNumberHost",""],["input",""],["handlers",""],[3,"ngTemplateOutlet"],[1,"ant-input-number-wrapper","ant-input-number-group"],[1,"ant-input-number-group-addon"],[1,"ant-input-number-prefix"],[1,"ant-input-number-suffix"],[3,"status"],[1,"ant-input-number-handler-wrap"],[1,"ant-input-number-input-wrap"],["autocomplete","off","role","spinbutton",1,"ant-input-number-input",3,"input","wheel","value","placeholder","disabled","readOnly"],[1,"ant-input-number-handler-wrap",3,"mouseup","mouseleave"],["role","button","unselectable","on",1,"ant-input-number-handler","ant-input-number-handler-up",3,"mousedown"],["role","button","unselectable","on",1,"ant-input-number-handler","ant-input-number-handler-down",3,"mousedown"],["nzType","up",1,"ant-input-number-handler-up-inner"],["nzType","down",1,"ant-input-number-handler-down-inner"]],template:function(t,n){t&1&&($D(Rn),_D(0,Hn,1,1,null,8)(1,Gn,1,1,null,8)(2,Jn,1,1,null,8),rh(3,oi,5,3,"ng-template",null,0,Vw)(5,ai,2,3,"ng-template",null,1,Vw)(7,mi,3,3,"ng-template",null,2,Vw)(9,xi,3,3,"ng-template",null,3,Vw)(11,hi,4,10,"ng-template",null,4,Vw)),t&2&&MD(n.hasAddon()?0:n.hasAffix()?1:2);},dependencies:[Ah,Th,hl,w5],encapsulation:2})}return i})(),bi=200,vi=600;function Sn(i){let l=i.trim().replace(/,/g,"").replace(/。/g,".");return l.length?+l:NaN}function lt(i,l,e){return i>=l&&i<=e}function yn(i,l,e,t=null){if(t===null)return i<l?l:i>e?e:i;let n=+i.toFixed(t),o=Math.pow(10,t);return n<l?Math.ceil(l*o)/o:n>e?Math.floor(e*o)/o:n}function zn(i){return i.toString().split(".")[1]?.length||0}function wi(i){return /[.。](\d*0)?$/.test(i.toString())}var Mn=(()=>{class i{static \u0275fac=function(t){return new(t||i)};static \u0275mod=KE({type:i});static \u0275inj=fu({imports:[pt]})}return i})();var yi=(i,l)=>l.id;function zi(i,l){if(i&1&&uh(0,"nz-option",2),i&2){let e=l.$implicit;lh("nzValue",e.id)("nzLabel",e.name);}}var En=(()=>{class i{constructor(){this.reposApi=C(f$1),this.destroyRef=C(at),this.path=W0(""),this.repoSelected=U0(),this.repos=qo$1([]),this.selectedCatalogId=Uw(()=>{let e=this.path();return this.repos().find(t=>t.localPath===e)?.id??null}),this.reposApi.list().pipe(ue(this.destroyRef)).subscribe({next:e=>this.repos.set(e),error:()=>this.repos.set([])});}onCatalogSelect(e){if(!e)return;let t=this.repos().find(n=>n.id===e);t&&this.repoSelected.emit(t);}static{this.\u0275fac=function(t){return new(t||i)};}static{this.\u0275cmp=ZE({type:i,selectors:[["app-repo-path-picker"]],inputs:{path:[1,"path"]},outputs:{path:"pathChange",repoSelected:"repoSelected"},decls:7,vars:8,consts:[["data-testid","repo-path-picker",1,"repo-path-picker"],["data-testid","repo-path-catalog",1,"catalog",3,"ngModelChange","ngModel","nzPlaceHolder"],[3,"nzValue","nzLabel"],["mode","directories",3,"pathChange","path","browseLabel"]],template:function(t,n){t&1&&(_i$1(0,"div",0)(1,"nz-select",1),Pw(2,"transloco"),mh("ngModelChange",function(p){return n.onCatalogSelect(p)}),xD(3,zi,1,2,"nz-option",2,yi),Jc(),iE(),_i$1(5,"app-path-picker",3),Pw(6,"transloco"),mh("pathChange",function(p){return n.path.set(p)}),Jc()()),t&2&&(gI(),lh("ngModel",n.selectedCatalogId())("nzPlaceHolder",Fw(2,4,"step-list.createWorktree.catalogPlaceholder")),aE(),gI(2),AD(n.repos()),gI(2),lh("path",n.path())("browseLabel",Fw(6,6,"step-list.createWorktree.browseManually")));},dependencies:[$8,al,rl,$i$1,ex,Fm,Am,ot$1,Kt],styles:["[_nghost-%COMP%]{display:block}.repo-path-picker[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.catalog[_ngcontent-%COMP%]{width:100%}"]});}}return i})();var Mi=i=>({action:i}),Ei=i=>({fields:i}),kn=(i,l)=>l.token,ki=(i,l)=>l.subjectType,Ti=(i,l)=>l.id+l.name;function Ii(i,l){i&1&&(Xc(0,"p",7),Iw(1),Pw(2,"transloco"),el()),i&2&&(gI(),rl$1(" ",Fw(2,1,"step-list.availableParameters.subWorkflowForEach")," "));}function Ni(i,l){if(i&1){let e=FD();Xc(0,"li")(1,"span",13),Iw(2),el(),Xc(3,"button",14),yh("click",function(){let n=Fu(e).$implicit,o=HD(3);return ju(o.copyToken(n.token))}),Iw(4),el()();}if(i&2){let e=l.$implicit,t=HD(3);gI(2),Lh(e.label),gI(),Sh("copied",t.copiedToken()===e.token),ch("data-testid","copy-token")("data-token",e.token),gI(),rl$1(" ",e.token," ");}}function Fi(i,l){if(i&1&&(Xc(0,"div",8)(1,"h5"),Iw(2),Pw(3,"transloco"),el(),Xc(4,"ul"),xD(5,Ni,5,6,"li",null,kn),el()()),i&2){let e=HD(2);gI(2),Lh(Fw(3,1,"step-list.availableParameters.inputs")),gI(3),AD(e.inputEntries());}}function Pi(i,l){if(i&1&&(Xc(0,"p",16),Iw(1),Pw(2,"transloco"),el()),i&2){let e=HD().$implicit;gI(),Lh(Fw(2,1,e.typeKey));}}function Vi(i,l){if(i&1){let e=FD();Xc(0,"li")(1,"button",14),yh("click",function(){let n=Fu(e).$implicit,o=HD(4);return ju(o.copyToken(n.token))}),Iw(2),el()();}if(i&2){let e=l.$implicit,t=HD(4);gI(),Sh("copied",t.copiedToken()===e.token),ch("data-testid","copy-token")("data-token",e.token),gI(),rl$1(" ",e.token," ");}}function Ai(i,l){if(i&1&&(_D(0,Pi,3,3,"p",16),Xc(1,"ul"),xD(2,Vi,3,5,"li",null,kn),el()),i&2){let e=l.$implicit,t=HD(3);MD(t.subjectGroups().length>1?0:-1),gI(2),AD(e.tokens);}}function $i(i,l){if(i&1&&(Xc(0,"div",9)(1,"h5",15),Iw(2),Pw(3,"transloco"),el(),xD(4,Ai,4,1,null,null,ki),el()),i&2){let e=HD(2);gI(2),Fh(" ",Fw(3,2,"step-list.availableParameters.subject")," (",e.subjectTypeHeading(),") "),gI(2),AD(e.subjectGroups());}}function Bi(i,l){i&1&&(Xc(0,"p",11),Iw(1),Pw(2,"transloco"),el()),i&2&&(gI(),rl$1(" ",Fw(2,1,"step-list.availableParameters.noPrevious")," "));}function Di(i,l){i&1&&(Xc(0,"span",19),Iw(1),Pw(2,"transloco"),el()),i&2&&(gI(),rl$1(" ",Fw(2,1,"step-list.availableParameters.loopOverwrite")," "));}function Li(i,l){i&1&&(Xc(0,"p",5),Iw(1),Pw(2,"transloco"),el()),i&2&&(gI(),Lh(Fw(2,1,"step-list.availableParameters.missingId")));}function Oi(i,l){if(i&1){let e=FD();Xc(0,"button",14),yh("click",function(){let n=Fu(e).$implicit,o=HD(5);return ju(o.copyToken(n))}),Iw(1),el();}if(i&2){let e=l.$implicit,t=HD(5);Sh("copied",t.copiedToken()===e),ch("data-testid","copy-token")("data-token",e),gI(),rl$1(" ",e," ");}}function Wi(i,l){if(i&1&&(Xc(0,"div",20),xD(1,Oi,2,5,"button",25,ND),el()),i&2){let e=HD().$implicit;gI(),AD(e.tokens);}}function Ri(i,l){if(i&1&&(Xc(0,"p",21),Iw(1),Pw(2,"transloco"),el()),i&2){let e=HD().$implicit;gI(),rl$1(" ",jw(2,1,"step-list.availableParameters.providerOpaque",Aw(4,Mi,e.actionLabel))," ");}}function ji(i,l){i&1&&(Xc(0,"p",21),Iw(1),Pw(2,"transloco"),el()),i&2&&(gI(),rl$1(" ",Fw(2,1,"step-list.availableParameters.interactionOpaque")," "));}function Ki(i,l){if(i&1&&(Xc(0,"p",22),Iw(1),Pw(2,"transloco"),el()),i&2){let e=HD().$implicit,t=HD(3);gI(),rl$1(" ",jw(2,1,"step-list.availableParameters.arrayOf",Aw(4,Ei,t.arrayFields(e)))," ");}}function Hi(i,l){i&1&&(Xc(0,"p",23),Iw(1),Pw(2,"transloco"),el()),i&2&&(gI(),rl$1(" ",Fw(2,1,"step-list.availableParameters.subjectTypeUnion")," "));}function qi(i,l){i&1&&(Xc(0,"p",24),Iw(1),Pw(2,"transloco"),el()),i&2&&(gI(),rl$1(" ",Fw(2,1,"step-list.availableParameters.noOutput")," "));}function Gi(i,l){if(i&1&&(Xc(0,"li",17),Pw(1,"transloco"),Xc(2,"div",18)(3,"span",13),Iw(4),el(),_D(5,Di,3,3,"span",19),el(),_D(6,Li,3,3,"p",5),_D(7,Wi,3,0,"div",20),_D(8,Ri,3,6,"p",21),_D(9,ji,3,3,"p",21),_D(10,Ki,3,6,"p",22),_D(11,Hi,3,3,"p",23),_D(12,qi,3,3,"p",24),el()),i&2){let e=l.$implicit;ch("data-testid","previous-step-"+e.id)("title",e.inLoop?Fw(1,11,"step-list.availableParameters.loopOverwrite"):null),gI(4),Lh(e.name||e.id),gI(),MD(e.inLoop?5:-1),gI(),MD(e.id?-1:6),gI(),MD(e.tokens.length>0?7:-1),gI(),MD(e.shape.opaque&&e.isProvider?8:-1),gI(),MD(e.shape.opaque&&e.isInteraction?9:-1),gI(),MD(e.shape.isArray&&(e.shape.fields?.length??0)>0?10:-1),gI(),MD(e.shape.fieldsDependOnSubjectType?11:-1),gI(),MD(!e.shape.opaque&&(e.shape.fields?.length??0)===0&&!e.shape.isScalar?12:-1);}}function Ui(i,l){if(i&1&&(Xc(0,"ul",12),xD(1,Gi,13,13,"li",17,Ti),el()),i&2){let e=HD(2);gI(),AD(e.previousEntries());}}function Ji(i,l){if(i&1&&(Xc(0,"div",4)(1,"p",5),Iw(2),Pw(3,"transloco"),el(),Xc(4,"p",6),Iw(5),Pw(6,"transloco"),el(),_D(7,Ii,3,3,"p",7),_D(8,Fi,7,3,"div",8),_D(9,$i,6,4,"div",9),Xc(10,"div",10)(11,"h5"),Iw(12),Pw(13,"transloco"),el(),_D(14,Bi,3,3,"p",11)(15,Ui,3,0,"ul",12),el()()),i&2){let e=HD();gI(2),Lh(Fw(3,7,"step-list.availableParameters.hint")),gI(3),rl$1(" ",Fw(6,9,"step-list.availableParameters.condition")," "),gI(2),MD(e.currentStepType()==="sub_workflow"?7:-1),gI(),MD(e.inputEntries().length>0?8:-1),gI(),MD(e.subjectGroups().length>0?9:-1),gI(3),Lh(Fw(13,11,"step-list.availableParameters.previous")),gI(2),MD(e.previousEntries().length===0?14:15);}}var Tn=(()=>{class i{constructor(){this.transloco=C(Ve),this.inputSchema=q0([]),this.appliesTo=q0("none"),this.previousSteps=q0([]),this.currentStepType=q0(null),this.expanded=qo$1(false),this.copiedToken=qo$1(null),this.inputEntries=Uw(()=>this.inputSchema().map(e=>({label:e.label.trim()||e.name,name:e.name.trim()})).filter(e=>e.name.length>0).map(e=>({label:e.label,token:om(e.name)}))),this.subjectGroups=Uw(()=>X_(this.appliesTo()).map(e=>({subjectType:e.subjectType,typeKey:`workflow-editor.subjectType.${e.subjectType}`,tokens:e.fields.map(t=>({field:t,token:om(`subject.${t}`)}))}))),this.previousEntries=Uw(()=>this.previousSteps().map(({step:e,inLoop:t})=>{let n=e;return {name:n.name,id:n.id,inLoop:t,shape:jg(n,this.appliesTo()),tokens:W_(n,this.appliesTo()),actionLabel:Zi(n),isProvider:n.type==="provider_action",isInteraction:n.type==="interaction"}}));}toggleExpanded(){this.expanded.update(e=>!e);}subjectTypeHeading(){return this.subjectGroups().map(e=>this.transloco.translate(e.typeKey)).join(", ")}arrayFields(e){return (e.shape.fields??[]).join(", ")}copyToken(e){let t=navigator.clipboard;if(!t?.writeText){this.copiedToken.set(e);return}t.writeText(e).then(()=>this.copiedToken.set(e),()=>this.copiedToken.set(e));}static{this.\u0275fac=function(t){return new(t||i)};}static{this.\u0275cmp=ZE({type:i,selectors:[["app-available-parameters"]],inputs:{inputSchema:[1,"inputSchema"],appliesTo:[1,"appliesTo"],previousSteps:[1,"previousSteps"],currentStepType:[1,"currentStepType"]},decls:8,vars:8,consts:[["data-testid","available-parameters",1,"available-parameters"],["type","button","data-testid","available-parameters-toggle",1,"panel-toggle",3,"click"],["aria-hidden","true",1,"chevron"],[1,"panel-title"],["data-testid","available-parameters-body",1,"panel-body"],[1,"hint"],["data-testid","step-condition-note",1,"hint"],["data-testid","sub-workflow-foreach-note",1,"hint"],["data-testid","available-parameters-inputs",1,"group"],["data-testid","available-parameters-subject",1,"group"],["data-testid","available-parameters-previous",1,"group"],["data-testid","available-parameters-no-previous",1,"hint"],[1,"previous-list"],[1,"entry-label"],["type","button",1,"param-token",3,"click"],["data-testid","available-parameters-subject-heading"],[1,"subject-type"],[1,"previous-entry"],[1,"previous-heading"],["data-testid","loop-overwrite-note",1,"loop-note"],[1,"token-row"],["data-testid","opaque-note",1,"hint"],["data-testid","array-note",1,"hint"],["data-testid","subject-type-union-note",1,"hint"],["data-testid","no-output-note",1,"hint"],["type","button",1,"param-token",3,"copied"]],template:function(t,n){t&1&&(Xc(0,"section",0)(1,"button",1),yh("click",function(){return n.toggleExpanded()}),Xc(2,"span",2),Iw(3),el(),Xc(4,"span",3),Iw(5),Pw(6,"transloco"),el()(),_D(7,Ji,16,13,"div",4),el()),t&2&&(Sh("expanded",n.expanded()),gI(),ch("aria-expanded",n.expanded()),gI(2),Lh(n.expanded()?"\u25BE":"\u25B8"),gI(2),Lh(Fw(6,6,"step-list.availableParameters.title")),gI(2),MD(n.expanded()?7:-1));},dependencies:[Kt],styles:[".available-parameters[_ngcontent-%COMP%]{margin:.85rem 0 .25rem;padding:.35rem .65rem;border:1px solid #e7e5e4;border-radius:.5rem;background:#fafaf9}.available-parameters.expanded[_ngcontent-%COMP%]{padding:.65rem .75rem .75rem}.panel-toggle[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.4rem;width:100%;margin:0;padding:.2rem 0;border:0;background:transparent;cursor:pointer;text-align:left;color:inherit}.chevron[_ngcontent-%COMP%]{color:#78716c;font-size:.85rem;width:.9rem}.available-parameters[_ngcontent-%COMP%] h5[_ngcontent-%COMP%]{margin:0 0 .35rem}.panel-title[_ngcontent-%COMP%]{font-size:.95rem;font-weight:600}.panel-body[_ngcontent-%COMP%]{margin-top:.5rem}.available-parameters[_ngcontent-%COMP%] h5[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#57534e}.hint[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:.8rem;color:#78716c}.group[_ngcontent-%COMP%]{margin-top:.65rem}.group[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem .5rem}.previous-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.65rem}.previous-entry[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.3rem}.previous-heading[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.35rem .65rem;align-items:baseline}.entry-label[_ngcontent-%COMP%]{font-size:.85rem;font-weight:600;color:#44403c}.loop-note[_ngcontent-%COMP%]{font-size:.75rem;color:#78716c}.subject-type[_ngcontent-%COMP%]{margin:.35rem 0 .2rem;font-size:.8rem;color:#57534e}.token-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.35rem}.param-token[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.2;padding:.15rem .45rem;border:1px solid #d6d3d1;border-radius:.3rem;background:#fff;color:#1c1917;cursor:pointer}.param-token[_ngcontent-%COMP%]:hover{border-color:#a8a29e}.param-token.copied[_ngcontent-%COMP%]{border-color:#57534e;background:#e7e5e4}"]});}}return i})();function Zi(i){return i.type!=="provider_action"?"":i.extendedAction?.actionId??i.action}function Qi(i,l){if(i&1&&(uh(0,"nz-option",3),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD();lh("nzValue",e)("nzLabel",Fw(1,2,t.typeKey(e)));}}function Yi(i,l){if(i&1){let e=FD();_i$1(0,"label",1)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"input",4),mh("ngModelChange",function(n){Fu(e);let o=HD();return ju(o.setValue(n))}),Jc(),iE(),Jc();}if(i&2){let e=HD();gI(2),Lh(Fw(3,3,"step-list.fieldCondition.value")),gI(2),lh("ngModel",e.valueText()),ch("data-testid",e.testIdPrefix()+"-value"),aE();}}var Xi=["field_empty","field_equals"],In=(()=>{class i{constructor(){this.condition=q0.required(),this.testIdPrefix=q0("field-condition"),this.conditionChange=U0(),this.conditionTypes=Xi;}typeKey(e){return `step-list.untilType.${e}`}valueText(){let e=this.condition();return e.type!=="field_equals"?"":to(e.value)}setType(e){let t=this.condition();if(e==="field_empty"){this.conditionChange.emit({type:e,stepId:t.stepId,field:t.field});return}let n=t.type==="field_equals"?t.value:"";this.conditionChange.emit({type:e,stepId:t.stepId,field:t.field,value:n});}setField(e,t){this.conditionChange.emit(s(r$1({},this.condition()),{[e]:t}));}setValue(e){let t=this.condition();t.type==="field_equals"&&this.conditionChange.emit(s(r$1({},t),{value:eo(e)}));}static{this.\u0275fac=function(t){return new(t||i)};}static{this.\u0275cmp=ZE({type:i,selectors:[["app-field-condition-editor"]],inputs:{condition:[1,"condition"],testIdPrefix:[1,"testIdPrefix"]},outputs:{conditionChange:"conditionChange"},decls:19,vars:17,consts:[[1,"field-grid"],[1,"field"],[3,"ngModelChange","ngModel"],[3,"nzValue","nzLabel"],["nz-input","",3,"ngModelChange","ngModel"]],template:function(t,n){t&1&&(_i$1(0,"div",0)(1,"div",1)(2,"span"),Iw(3),Pw(4,"transloco"),Jc(),_i$1(5,"nz-select",2),mh("ngModelChange",function(p){return n.setType(p)}),xD(6,Qi,2,4,"nz-option",3,ND),Jc(),iE(),Jc(),_i$1(8,"label",1)(9,"span"),Iw(10),Pw(11,"transloco"),Jc(),_i$1(12,"input",4),mh("ngModelChange",function(p){return n.setField("stepId",p)}),Jc(),iE(),Jc(),_i$1(13,"label",1)(14,"span"),Iw(15),Pw(16,"transloco"),Jc(),_i$1(17,"input",4),mh("ngModelChange",function(p){return n.setField("field",p)}),Jc(),iE(),Jc(),_D(18,Yi,5,5,"label",1),Jc()),t&2&&(ch("data-testid",n.testIdPrefix()),gI(3),Lh(Fw(4,11,"step-list.fieldCondition.type")),gI(2),lh("ngModel",n.condition().type),ch("data-testid",n.testIdPrefix()+"-type"),aE(),gI(),AD(n.conditionTypes),gI(4),Lh(Fw(11,13,"step-list.fieldCondition.stepId")),gI(2),lh("ngModel",n.condition().stepId),ch("data-testid",n.testIdPrefix()+"-stepId"),aE(),gI(3),Lh(Fw(16,15,"step-list.fieldCondition.field")),gI(2),lh("ngModel",n.condition().field),ch("data-testid",n.testIdPrefix()+"-field"),aE(),gI(),MD(n.condition().type==="field_equals"?18:-1));},dependencies:[al,er$1,rl,$i$1,ai$1,z,ex,Fm,Am,Kt],styles:[".field-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.5rem 1rem}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.35rem;margin:.65rem 0}.field[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.85rem;color:#57534e}"]});}}return i})();function Nn(){return {type:"field_empty",stepId:"",field:""}}function eo(i){let l=i.trim();if(l==="")return "";try{return JSON.parse(l)}catch(e){return i}}function to(i){if(i===void 0)return "";if(typeof i=="string")try{return JSON.parse(i),JSON.stringify(i)}catch(l){return i}return JSON.stringify(i)}function no(i,l){if(i&1){let e=FD();_i$1(0,"div",1)(1,"input",3),Hh("ngModelChange",function(n){let o=Fu(e).$implicit;return Tw(o.key,n)||(o.key=n),ju(n)}),mh("ngModelChange",function(){Fu(e);let n=HD();return ju(n.emitRows())}),Jc(),iE(),_i$1(2,"input",4),Hh("ngModelChange",function(n){let o=Fu(e).$implicit;return Tw(o.value,n)||(o.value=n),ju(n)}),mh("ngModelChange",function(){Fu(e);let n=HD();return ju(n.emitRows())}),Jc(),iE(),_i$1(3,"button",5),mh("click",function(){let n=Fu(e).$index,o=HD();return ju(o.remove(n))}),Iw(4,"Remove"),Jc()();}if(i&2){let e=l.$implicit;gI(),Vh("ngModel",e.key),aE(),gI(),Vh("ngModel",e.value),aE();}}var An=(()=>{class i{constructor(){this.rows=W0.required();}add(){this.rows.update(e=>[...e,{key:"",value:""}]);}remove(e){this.rows.update(t=>t.filter((n,o)=>o!==e));}emitRows(){this.rows.set(this.rows().map(e=>r$1({},e)));}static{this.\u0275fac=function(t){return new(t||i)};}static{this.\u0275cmp=ZE({type:i,selectors:[["app-key-value-editor"]],inputs:{rows:[1,"rows"]},outputs:{rows:"rowsChange"},decls:5,vars:0,consts:[[1,"kv-editor"],[1,"kv-row"],["nz-button","","nzType","dashed","type","button",3,"click"],["nz-input","","placeholder","key",3,"ngModelChange","ngModel"],["nz-input","","placeholder","value",3,"ngModelChange","ngModel"],["nz-button","","nzType","default","type","button",3,"click"]],template:function(t,n){t&1&&(_i$1(0,"div",0),xD(1,no,5,2,"div",1,SD),_i$1(3,"button",2),mh("click",function(){return n.add()}),Iw(4,"Add param"),Jc()()),t&2&&(gI(),AD(n.rows()));},dependencies:[al,er$1,rl,$i$1,pf,bd,sp,fp,ai$1,z],styles:[".kv-editor[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.kv-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;align-items:center}"]});}}return i})();function io(i,l){let e=i==="none"?[]:Array.isArray(i)?i:[i];return L(l,e).map(t=>t.id)}function We(i){return O$1(i).map(l=>l.id)}function $n(i,l){return io(i,l)[0]??We(l)[0]??""}function oo(i,l,e){let t=(e?.providerInstances??[]).find(o=>o.id===i);if(t&&E_(t))return null;let n=We(e);return {required:i,active:n[0]??""}}function ro(i,l,e){let t=L(e,[l]).map(o=>o.id);if(t.includes(i))return null;let n=(e?.providerInstances??[]).find(o=>o.id===i);return n&&E_(n)&&n.subjectType===l?null:{required:i,active:t[0]??""}}function Bn(i,l,e){if(i.extendedAction?.providerId){let t=oo(i.extendedAction.providerId,l,e);if(t)return t}return i.target?.source?ro(i.target.source,i.target.subjectType,e):null}function Dn(i){return i.extendedAction!=null}var Re=()=>[],lo=i=>[i];function po(i,l){return this.trackKey(l)}var we=(i,l)=>l.id,co=(i,l)=>l.actionId,_o=(i,l)=>l.name;function mo(i,l){if(i&1&&(uh(0,"nz-option",15),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(3);lh("nzValue",e)("nzLabel",Fw(1,2,t.stepTypeKey(e)));}}function uo(i,l){if(i&1){let e=FD();_i$1(0,"app-field-condition-editor",24),mh("conditionChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{condition:n}))}),Jc();}if(i&2){let e=HD(2).$index;lh("condition",l)("testIdPrefix","step-condition-"+e);}}function xo(i,l){if(i&1&&(uh(0,"nz-option",15),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(4);lh("nzValue",e)("nzLabel",Fw(1,2,t.outputFormatKey(e)));}}function Co(i,l){if(i&1&&uh(0,"nz-option",15),i&2){let e=l.$implicit;lh("nzValue",e.id)("nzLabel",e.displayName);}}function fo(i,l){if(i&1){let e=FD();_i$1(0,"nz-tag",31),mh("nzOnClose",function(){let n=Fu(e).$implicit,o=HD(3).$index,p=HD();return ju(p.removeContextFile(o,n.id))}),Iw(1),Jc();}if(i&2){let e=l.$implicit;ch("data-testid","context-file-chip-"+e.id),gI(),rl$1(" ",e.name," ");}}function go(i,l){i&1&&(_i$1(0,"span",29),Iw(1),Pw(2,"transloco"),Jc()),i&2&&(gI(),Lh(Fw(2,1,"step-list.contextFilesEmpty")));}function ho(i,l){if(i&1){let e=FD();_i$1(0,"label",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"textarea",25),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{objective:n}))}),Jc(),iE(),Jc(),_i$1(5,"div",16)(6,"span"),Iw(7),Pw(8,"transloco"),Jc(),_i$1(9,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{outputFormat:n}))}),xD(10,xo,2,4,"nz-option",15,ND),Jc(),iE(),Jc(),_i$1(12,"div",16)(13,"span"),Iw(14),Pw(15,"transloco"),Jc(),_i$1(16,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.setAgentInstance(o,n))}),uh(17,"nz-option",15),Pw(18,"transloco"),xD(19,Co,1,2,"nz-option",15,we),Jc(),iE(),Jc(),_i$1(21,"div",16)(22,"span"),Iw(23),Pw(24,"transloco"),Jc(),_i$1(25,"div",27),xD(26,fo,2,2,"nz-tag",28,we,false,go,3,3,"span",29),Jc(),_i$1(29,"button",30),mh("click",function(){Fu(e);let n=HD(2).$index,o=HD();return ju(o.openContextFilePicker(n))}),Iw(30),Pw(31,"transloco"),Jc()();}if(i&2){let e=HD(2),t=e.$implicit,n=e.$index,o=HD();gI(),ch("data-testid","agent-prompt-label-"+n),gI(),Lh(Fw(3,17,"step-list.objective")),gI(2),lh("ngModel",o.asAgent(t).objective),ch("data-testid","agent-objective-"+n),aE(),gI(3),Lh(Fw(8,19,"step-list.outputFormat.label")),gI(2),lh("ngModel",o.asAgent(t).outputFormat),ch("data-testid","agent-output-"+n),aE(),gI(),AD(o.outputFormats),gI(4),Lh(Fw(15,21,"step-list.agentInstance.label")),gI(2),lh("ngModel",o.asAgent(t).agentInstanceId??null),ch("data-testid","agent-instance-"+n),aE(),gI(),lh("nzValue",null)("nzLabel",Fw(18,23,"step-list.agentInstance.default")),gI(2),AD(o.agentInstanceOptions()),gI(2),ch("data-testid","agent-context-files-"+n),gI(2),Lh(Fw(24,25,"step-list.contextFiles")),gI(3),AD(o.selectedContextFiles(o.asAgent(t))),gI(3),ch("data-testid","select-context-files-"+n),gI(),rl$1(" ",Fw(31,27,"step-list.selectContextFiles")," ");}}function bo(i,l){if(i&1&&(uh(0,"nz-option",15),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(4);lh("nzValue",e)("nzLabel",Fw(1,2,t.interactionKey(e)));}}function vo(i,l){if(i&1&&uh(0,"nz-option",15),i&2){let e=l.$implicit;lh("nzValue",e.id)("nzLabel",e.label);}}function wo(i,l){i&1&&(_i$1(0,"p",19),Iw(1),Pw(2,"transloco"),Jc()),i&2&&(gI(),Lh(Fw(2,1,"step-list.sourceStepIds.empty")));}function So(i,l){i&1&&(_i$1(0,"p",19),Iw(1),Pw(2,"transloco"),Jc()),i&2&&(gI(),Lh(Fw(2,1,"step-list.sourceStepIds.hint")));}function yo(i,l){if(i&1){let e=FD();_i$1(0,"div",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"nz-select",32),mh("ngModelChange",function(n){Fu(e);let o=HD(3).$index,p=HD();return ju(p.patchAt(o,{sourceStepIds:n}))}),xD(5,vo,1,2,"nz-option",15,we),Jc(),iE(),_D(7,wo,3,3,"p",19)(8,So,3,3,"p",19),Jc();}if(i&2){let e=HD(3),t=e.$implicit,n=e.$index,o=HD();ch("data-testid","comment-review-sources-"+n),gI(2),Lh(Fw(3,5,"step-list.sourceStepIds.label")),gI(2),lh("ngModel",o.asInteraction(t).sourceStepIds??xw(7,Re)),ch("data-testid","comment-review-source-ids-"+n),aE(),gI(),AD(o.commentSuggestionSources(t)),gI(2),MD(o.commentSuggestionSources(t).length===0?7:8);}}function zo(i,l){if(i&1){let e=FD();_i$1(0,"div",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.onInteractionChange(o,n))}),xD(5,bo,2,4,"nz-option",15,ND),Jc(),iE(),Jc(),_D(7,yo,9,8,"div",16);}if(i&2){let e=HD(2),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,4,"step-list.interaction.label")),gI(2),lh("ngModel",o.asInteraction(t).interaction),ch("data-testid","interaction-type-"+n),aE(),gI(),AD(o.interactions),gI(2),MD(o.asInteraction(t).interaction==="comment_review"?7:-1);}}function Mo(i,l){if(i&1){let e=FD();_i$1(0,"label",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"textarea",25),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{command:n}))}),Jc(),iE(),Jc();}if(i&2){let e=HD(2),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,3,"step-list.command")),gI(2),lh("ngModel",o.asShell(t).command),ch("data-testid","shell-command-"+n),aE();}}function Eo(i,l){if(i&1&&(uh(0,"nz-option",15),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(4);lh("nzValue",e)("nzLabel",Fw(1,2,t.onNoMatchKey(e)));}}function ko(i,l){if(i&1){let e=FD();_i$1(0,"label",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"textarea",33),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{source:n}))}),Jc(),iE(),Jc(),_i$1(5,"label",16)(6,"span"),Iw(7),Pw(8,"transloco"),Jc(),_i$1(9,"input",18),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{path:n}))}),Jc(),iE(),Jc(),_i$1(10,"label",16)(11,"span"),Iw(12),Pw(13,"transloco"),Jc(),_i$1(14,"input",18),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{pattern:n}))}),Jc(),iE(),Jc(),_i$1(15,"div",16)(16,"span"),Iw(17),Pw(18,"transloco"),Jc(),_i$1(19,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{onNoMatch:n}))}),xD(20,Eo,2,4,"nz-option",15,ND),Jc(),iE(),Jc();}if(i&2){let e=HD(2),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,12,"step-list.extract.source")),gI(2),lh("ngModel",o.asExtract(t).source),ch("data-testid","extract-source-"+n),aE(),gI(3),Lh(Fw(8,14,"step-list.extract.path")),gI(2),lh("ngModel",o.asExtract(t).path??""),ch("data-testid","extract-path-"+n),aE(),gI(3),Lh(Fw(13,16,"step-list.extract.pattern")),gI(2),lh("ngModel",o.asExtract(t).pattern??""),ch("data-testid","extract-pattern-"+n),aE(),gI(3),Lh(Fw(18,18,"step-list.extract.onNoMatch")),gI(2),lh("ngModel",o.asExtract(t).onNoMatch),ch("data-testid","extract-on-no-match-"+n),aE(),gI(),AD(o.extractOnNoMatchActions);}}function To(i,l){if(i&1&&(uh(0,"nz-option",15),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(4);lh("nzValue",e)("nzLabel",Fw(1,2,t.gitOperationKey(e)));}}function Io(i,l){if(i&1){let e=FD();_i$1(0,"div",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"app-repo-path-picker",38),mh("pathChange",function(n){Fu(e);let o=HD(4).$index,p=HD();return ju(p.setGitParam(o,"repoPath",n))})("repoSelected",function(n){Fu(e);let o=HD(4).$index,p=HD();return ju(p.applyCreateWorktreeCatalogRepo(o,n))}),Jc()();}if(i&2){let e=HD(4),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,3,"step-list.createWorktree.repoPath")),gI(2),lh("path",o.gitParam(o.asGit(t),"repoPath")),ch("data-testid","git-repo-path-"+n);}}function No(i,l){if(i&1&&(_i$1(0,"p",19),Iw(1),Pw(2,"transloco"),Jc()),i&2){let e=HD(4).$index;ch("data-testid","git-resolve-from-pr-hint-"+e),gI(),rl$1(" ",Fw(2,2,"step-list.createWorktree.resolveFromPrHint")," ");}}function Fo(i,l){if(i&1){let e=FD();_i$1(0,"label",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"input",18),mh("ngModelChange",function(n){Fu(e);let o=HD(4).$index,p=HD();return ju(p.setGitParam(o,"baseBranch",n))}),Jc(),iE(),Jc(),_i$1(5,"label",16)(6,"span"),Iw(7),Pw(8,"transloco"),Jc(),_i$1(9,"input",18),mh("ngModelChange",function(n){Fu(e);let o=HD(4).$index,p=HD();return ju(p.setGitParam(o,"branchName",n))}),Jc(),iE(),Jc();}if(i&2){let e=HD(4),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,6,"step-list.createWorktree.baseBranch")),gI(2),lh("ngModel",o.gitParam(o.asGit(t),"baseBranch")),ch("data-testid","git-base-branch-"+n),aE(),gI(3),Lh(Fw(8,8,"step-list.createWorktree.branchName")),gI(2),lh("ngModel",o.gitParam(o.asGit(t),"branchName")),ch("data-testid","git-branch-name-"+n),aE();}}function Po(i,l){if(i&1){let e=FD();_i$1(0,"label",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"input",18),mh("ngModelChange",function(n){Fu(e);let o=HD(4).$index,p=HD();return ju(p.setGitParam(o,"branch",n))}),Jc(),iE(),Jc();}if(i&2){let e=HD(4),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,3,"step-list.createWorktree.branch")),gI(2),lh("ngModel",o.gitParam(o.asGit(t),"branch")),ch("data-testid","git-branch-"+n),aE();}}function Vo(i,l){if(i&1){let e=FD();_i$1(0,"div",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(3).$index,p=HD();return ju(p.setCreateWorktreeMode(o,n))}),uh(5,"nz-option",34),Pw(6,"transloco"),uh(7,"nz-option",35),Pw(8,"transloco"),Jc(),iE(),Jc(),_i$1(9,"div",16)(10,"span"),Iw(11),Pw(12,"transloco"),Jc(),_i$1(13,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(3).$index,p=HD();return ju(p.setCreateWorktreeRepoSource(o,n))}),uh(14,"nz-option",36),Pw(15,"transloco"),uh(16,"nz-option",37),Pw(17,"transloco"),Jc(),iE(),Jc(),_D(18,Io,5,5,"div",16)(19,No,3,4,"p",19),_D(20,Fo,10,10)(21,Po,5,5,"label",16);}if(i&2){let e=HD(3),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,12,"step-list.createWorktree.mode")),gI(2),lh("ngModel",o.createWorktreeMode(o.asGit(t))),ch("data-testid","git-worktree-mode-"+n),aE(),gI(),lh("nzLabel",Fw(6,14,"step-list.createWorktree.newBranch")),gI(2),lh("nzLabel",Fw(8,16,"step-list.createWorktree.existingBranch")),gI(4),Lh(Fw(12,18,"step-list.createWorktree.repoSource")),gI(2),lh("ngModel",o.createWorktreeRepoSource(o.asGit(t))),ch("data-testid","git-worktree-repo-source-"+n),aE(),gI(),lh("nzLabel",Fw(15,20,"step-list.createWorktree.repoPathPick")),gI(2),lh("nzLabel",Fw(17,22,"step-list.createWorktree.resolveFromPr")),gI(2),MD(o.createWorktreeRepoSource(o.asGit(t))==="path"?18:19),gI(2),MD(o.createWorktreeMode(o.asGit(t))==="new-branch"?20:21);}}function Ao(i,l){if(i&1){let e=FD();_i$1(0,"div",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"app-key-value-editor",39),mh("rowsChange",function(n){Fu(e);let o=HD(3),p=o.$implicit,y=o.$index,B=HD();return ju(B.onParamRowsChange(y,p,n))}),Jc()();}if(i&2){let e=HD(3).$implicit,t=HD();gI(2),Lh(Fw(3,2,"step-list.params")),gI(2),lh("rows",t.paramRows(e));}}function $o(i,l){if(i&1){let e=FD();_i$1(0,"div",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{operation:n}))}),xD(5,To,2,4,"nz-option",15,ND),Jc(),iE(),Jc(),_D(7,Vo,22,24)(8,Ao,5,4,"div",16);}if(i&2){let e=HD(2),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,4,"step-list.operation")),gI(2),lh("ngModel",o.asGit(t).operation),ch("data-testid","git-operation-"+n),aE(),gI(),AD(o.gitOperations),gI(2),MD(o.asGit(t).operation==="create_worktree"?7:8);}}function Bo(i,l){if(i&1&&uh(0,"nz-alert",40),i&2){let e=HD(3).$index;lh("nzMessage",l),ch("data-testid","extended-action-mismatch-"+e);}}function Do(i,l){if(i&1&&(uh(0,"nz-option",15),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(5);lh("nzValue",e)("nzLabel",Fw(1,2,t.subjectTypeKey(e)));}}function Lo(i,l){if(i&1&&uh(0,"nz-option",15),i&2){let e=l.$implicit;lh("nzValue",e.id)("nzLabel",e.displayName);}}function Oo(i,l){if(i&1){let e=FD();_i$1(0,"div",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(3).$index,p=HD();return ju(p.setTargetSubjectType(o,n))}),xD(5,Do,2,4,"nz-option",15,ND),Jc(),iE(),Jc(),_i$1(7,"div",16)(8,"span"),Iw(9),Pw(10,"transloco"),Jc(),_i$1(11,"nz-select",43),Pw(12,"transloco"),mh("ngModelChange",function(n){Fu(e);let o=HD(3).$index,p=HD();return ju(p.setTargetSource(o,n))}),xD(13,Lo,1,2,"nz-option",15,we),Jc(),iE(),Jc(),_i$1(15,"label",16)(16,"span"),Iw(17),Pw(18,"transloco"),Jc(),_i$1(19,"input",18),mh("ngModelChange",function(n){Fu(e);let o=HD(3).$index,p=HD();return ju(p.setTargetSubjectId(o,n))}),Jc(),iE(),_i$1(20,"span",19),Iw(21),Pw(22,"transloco"),Jc()();}if(i&2){let e=l,t=HD(3),n=t.$implicit,o=t.$index,p=HD();gI(2),Lh(Fw(3,11,"step-list.target.subjectType")),gI(2),lh("ngModel",e.subjectType),ch("data-testid","provider-action-target-type-"+o),aE(),gI(),AD(p.targetSubjectTypes),gI(4),Lh(Fw(10,13,"step-list.target.source")),gI(2),lh("ngModel",e.source||null)("nzPlaceHolder",Fw(12,15,"step-list.target.sourcePlaceholder")),ch("data-testid","provider-action-target-source-"+o),aE(),gI(2),AD(p.targetInstanceOptions(p.asProvider(n))),gI(4),Lh(Fw(18,17,"step-list.target.subjectId")),gI(2),lh("ngModel",e.subjectId),ch("data-testid","provider-action-target-id-"+o),aE(),gI(2),Lh(Fw(22,19,"step-list.target.subjectIdHint"));}}function Wo(i,l){if(i&1&&uh(0,"nz-option",15),i&2){let e=l.$implicit,t=HD(5);lh("nzValue",e)("nzLabel",t.providerLabel(e));}}function Ro(i,l){if(i&1&&uh(0,"nz-option",15),i&2){let e=l.$implicit;lh("nzValue",e.actionId)("nzLabel",e.label);}}function jo(i,l){i&1&&(_i$1(0,"span",19),Iw(1),Pw(2,"transloco"),Jc()),i&2&&(gI(),Lh(Fw(2,1,"step-list.extendedAction.empty")));}function Ko(i,l){i&1&&(_i$1(0,"span",44),Iw(1,"*"),Jc());}function Ho(i,l){if(i&1&&uh(0,"nz-option",15),i&2){let e=l.$implicit;lh("nzValue",e)("nzLabel",e);}}function qo(i,l){if(i&1){let e=FD();_i$1(0,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD().$implicit,p=HD(5).$index,y=HD();return ju(y.setExtendedParam(p,o.name,n))}),xD(1,Ho,1,2,"nz-option",15,ND),Jc(),iE();}if(i&2){let e=HD().$implicit,t=HD(5),n=t.$implicit,o=t.$index,p=HD();lh("ngModel",p.extendedParamValue(p.asProvider(n),e.name)),ch("data-testid","extended-action-param-"+e.name+"-"+o),aE(),gI(),AD(e.options??xw(2,Re));}}function Go(i,l){if(i&1){let e=FD();_i$1(0,"nz-select",49),mh("ngModelChange",function(n){Fu(e);let o=HD().$implicit,p=HD(5).$index,y=HD();return ju(y.setExtendedParam(p,o.name,n))}),Jc(),iE();}if(i&2){let e=HD().$implicit,t=HD(5),n=t.$implicit,o=t.$index,p=HD();lh("nzOptions",e.name==="reviewers"?p.reviewerOptions(p.asProvider(n)):xw(3,Re))("ngModel",p.extendedParamStringList(p.asProvider(n),e.name)),ch("data-testid","extended-action-param-"+e.name+"-"+o),aE();}}function Uo(i,l){if(i&1){let e=FD();_i$1(0,"nz-select",50),mh("ngModelChange",function(n){Fu(e);let o=HD(6).$index,p=HD();return ju(p.setRepositoryParam(o,n))}),Jc(),iE();}if(i&2){let e=HD().$implicit,t=HD(5),n=t.$implicit,o=t.$index,p=HD();lh("nzOptions",p.repositoryOptions(p.asProvider(n)))("ngModel",p.extendedParamValue(p.asProvider(n),e.name)?Aw(3,lo,p.extendedParamValue(p.asProvider(n),e.name)):xw(5,Re)),ch("data-testid","extended-action-param-"+e.name+"-"+o),aE();}}function Jo(i,l){if(i&1){let e=FD();_i$1(0,"input",18),mh("ngModelChange",function(n){Fu(e);let o=HD().$implicit,p=HD(5).$index,y=HD();return ju(y.setExtendedParam(p,o.name,n))}),Jc(),iE();}if(i&2){let e=HD().$implicit,t=HD(5),n=t.$implicit,o=t.$index,p=HD();lh("ngModel",p.extendedParamValue(p.asProvider(n),e.name)),ch("data-testid","extended-action-param-"+e.name+"-"+o),aE();}}function Zo(i,l){if(i&1&&(_i$1(0,"label",16)(1,"span"),Iw(2),_D(3,Ko,2,0,"span",44),Jc(),_D(4,qo,3,3,"nz-select",45)(5,Go,1,4,"nz-select",46)(6,Uo,1,6,"nz-select",47)(7,Jo,1,2,"input",48),Jc()),i&2){let e=l.$implicit,t=HD(5).$implicit,n=HD();gI(2),rl$1(" ",e.label," "),gI(),MD(e.required?3:-1),gI(),MD(e.type==="select"?4:e.type==="string[]"?5:e.name==="repository"&&n.asProvider(t).extendedAction?.actionId==="create_pr"?6:7);}}function Qo(i,l){i&1&&xD(0,Zo,8,3,"label",16,_o),i&2&&AD(l.params);}function Yo(i,l){if(i&1){let e=FD();_i$1(0,"div",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(3).$index,p=HD();return ju(p.setExtendedProvider(o,n))}),xD(5,Wo,1,2,"nz-option",15,ND),Jc(),iE(),Jc(),_i$1(7,"div",16)(8,"span"),Iw(9),Pw(10,"transloco"),Jc(),_i$1(11,"nz-select",43),Pw(12,"transloco"),mh("ngModelChange",function(n){Fu(e);let o=HD(3).$index,p=HD();return ju(p.setExtendedAction(o,n))}),xD(13,Ro,1,2,"nz-option",15,co),Jc(),iE(),_D(15,jo,3,3,"span",19),Jc(),_D(16,Qo,2,0);}if(i&2){let e,t=HD(3),n=t.$implicit,o=t.$index,p=HD();gI(2),Lh(Fw(3,9,"step-list.extendedAction.provider")),gI(2),lh("ngModel",p.asProvider(n).extendedAction?.providerId),ch("data-testid","extended-action-provider-"+o),aE(),gI(),AD(p.extendedProviderOptions()),gI(4),Lh(Fw(10,11,"step-list.extendedAction.action")),gI(2),lh("ngModel",p.asProvider(n).extendedAction?.actionId||null)("nzPlaceHolder",Fw(12,13,"step-list.extendedAction.none")),ch("data-testid","extended-action-id-"+o),aE(),gI(2),AD(p.extendedDescriptors(p.asProvider(n))),gI(2),MD(p.extendedDescriptors(p.asProvider(n)).length===0?15:-1),gI(),MD((e=p.selectedExtendedDescriptor(p.asProvider(n)))?16:-1,e);}}function Xo(i,l){if(i&1&&(uh(0,"nz-option",15),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(5);lh("nzValue",e)("nzLabel",Fw(1,2,t.providerActionKey(e)));}}function er(i,l){if(i&1){let e=FD();_i$1(0,"div",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(3).$index,p=HD();return ju(p.patchAt(o,{action:n}))}),xD(5,Xo,2,4,"nz-option",15,ND),Jc(),iE(),Jc(),_i$1(7,"div",16)(8,"span"),Iw(9),Pw(10,"transloco"),Jc(),_i$1(11,"app-key-value-editor",39),mh("rowsChange",function(n){Fu(e);let o=HD(3),p=o.$implicit,y=o.$index,B=HD();return ju(B.onParamRowsChange(y,p,n))}),Jc()();}if(i&2){let e=HD(3),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,5,"step-list.action")),gI(2),lh("ngModel",o.asProvider(t).action),ch("data-testid","provider-action-"+n),aE(),gI(),AD(o.providerActions),gI(4),Lh(Fw(10,7,"step-list.params")),gI(2),lh("rows",o.paramRows(t));}}function tr(i,l){if(i&1){let e=FD();_D(0,Bo,1,2,"nz-alert",40),_i$1(1,"label",22),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.setTargetEnabled(o,n))}),Iw(2),Pw(3,"transloco"),Jc(),iE(),_D(4,Oo,23,21),_i$1(5,"div",16)(6,"span"),Iw(7),Pw(8,"transloco"),Jc(),_i$1(9,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.setActionMode(o,n))}),uh(10,"nz-option",41),Pw(11,"transloco"),uh(12,"nz-option",42),Pw(13,"transloco"),Jc(),iE(),Jc(),_D(14,Yo,17,15)(15,er,12,9);}if(i&2){let e,t,n=HD(2),o=n.$implicit,p=n.$index,y=HD();MD((e=y.mismatchWarning(y.asProvider(o)))?0:-1,e),gI(),lh("ngModel",y.hasTarget(o)),ch("data-testid","provider-action-target-toggle-"+p),aE(),gI(),rl$1(" ",Fw(3,11,"step-list.target.toggle")," "),gI(2),MD((t=y.asProvider(o).target)?4:-1,t),gI(3),Lh(Fw(8,13,"step-list.extendedAction.mode")),gI(2),lh("ngModel",y.isExtended(o)?"extended":"portable"),ch("data-testid","provider-action-mode-"+p),aE(),gI(),lh("nzLabel",Fw(11,15,"step-list.extendedAction.portable")),gI(2),lh("nzLabel",Fw(13,17,"step-list.extendedAction.extended")),gI(2),MD(y.isExtended(o)?14:15);}}function nr(i,l){if(i&1&&(_i$1(0,"p",19),Iw(1),Pw(2,"transloco"),Jc()),i&2){let e=HD(2),t=e.$implicit,n=e.$index,o=HD();ch("data-testid","engine-action-readonly-"+n),gI(),Fh(" ",Fw(2,3,"step-list.engineAction.readonly")," (",o.asEngineAction(t).action,") ");}}function ir(i,l){if(i&1&&uh(0,"nz-option",15),i&2){let e=l.$implicit,t=HD(4);lh("nzValue",e.id)("nzLabel",t.workflowOptionLabel(e));}}function or(i,l){if(i&1){let e=FD();_i$1(0,"label",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"input",18),mh("ngModelChange",function(n){Fu(e);let o=HD(3).$index,p=HD();return ju(p.setSubWorkflowSource(o,n))}),Jc(),iE(),_i$1(5,"p",19),Iw(6),Pw(7,"transloco"),Jc()();}if(i&2){let e=HD(3),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,4,"step-list.forEach.sourcePath")),gI(2),lh("ngModel",o.subWorkflowSource(t)),ch("data-testid","sub-workflow-foreach-source-"+n),aE(),gI(2),Lh(Fw(7,6,"step-list.forEach.sourceHint"));}}function rr(i,l){if(i&1){let e=FD();_i$1(0,"div",16)(1,"span"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"nz-select",51),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{workflowId:n}))}),xD(5,ir,1,2,"nz-option",15,we),Jc(),iE(),Jc(),_i$1(7,"div",16)(8,"span"),Iw(9),Pw(10,"transloco"),Jc(),_i$1(11,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.setSubWorkflowForEachMode(o,n))}),uh(12,"nz-option",52),Pw(13,"transloco"),uh(14,"nz-option",53),Pw(15,"transloco"),Jc(),iE(),Jc(),_D(16,or,8,8,"label",16);}if(i&2){let e=HD(2),t=e.$implicit,n=e.$index,o=HD();gI(2),Lh(Fw(3,9,"step-list.workflowId")),gI(2),lh("ngModel",o.asSubWorkflow(t).workflowId),ch("data-testid","sub-workflow-id-"+n),aE(),gI(),AD(o.childWorkflowOptions(t)),gI(4),Lh(Fw(10,11,"step-list.forEach")),gI(2),lh("ngModel",o.subWorkflowForEachMode(t)),ch("data-testid","sub-workflow-foreach-mode-"+n),aE(),gI(),lh("nzLabel",Fw(13,13,"step-list.forEach.selection")),gI(2),lh("nzLabel",Fw(15,15,"step-list.forEach.source")),gI(2),MD(o.subWorkflowForEachMode(t)==="source"?16:-1);}}function ar(i,l){if(i&1&&(uh(0,"nz-option",15),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(4);lh("nzValue",e)("nzLabel",Fw(1,2,t.onMaxIterationsKey(e)));}}function sr(i,l){if(i&1){let e=FD();_i$1(0,"app-field-condition-editor",24),mh("conditionChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{until:n}))}),Jc(),_i$1(1,"div",54)(2,"label",16)(3,"span"),Iw(4),Pw(5,"transloco"),Jc(),_i$1(6,"nz-input-number",55),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{maxIterations:n??0}))}),Jc(),iE(),Jc(),_i$1(7,"div",16)(8,"span"),Iw(9),Pw(10,"transloco"),Jc(),_i$1(11,"nz-select",26),mh("ngModelChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.patchAt(o,{onMaxIterations:{action:n}}))}),xD(12,ar,2,4,"nz-option",15,ND),Jc(),iE(),Jc()(),_i$1(14,"div",56)(15,"h4"),Iw(16),Pw(17,"transloco"),Jc(),_i$1(18,"app-step-list",57),mh("stepsChange",function(n){Fu(e);let o=HD(2).$index,p=HD();return ju(p.setNestedSteps(o,n))}),Jc()();}if(i&2){let e=HD(2),t=e.$implicit,n=e.$index,o=HD();lh("condition",o.asLoop(t).until)("testIdPrefix","loop-until-"+n),gI(4),Lh(Fw(5,18,"step-list.maxIterations")),gI(2),lh("ngModel",o.asLoop(t).maxIterations)("nzMin",0),ch("data-testid","loop-max-"+n),aE(),gI(3),Lh(Fw(10,20,"step-list.onMaxIterations.action")),gI(2),lh("ngModel",o.asLoop(t).onMaxIterations.action),ch("data-testid","loop-on-max-"+n),aE(),gI(),AD(o.maxIterationActions),gI(2),ch("data-testid","loop-nested-"+n),gI(2),Lh(Fw(17,22,"step-list.nestedSteps")),gI(2),lh("steps",o.asLoop(t).steps)("rootSteps",o.effectiveRoot())("availableWorkflows",o.availableWorkflows())("appliesTo",o.appliesTo())("inputSchema",o.inputSchema())("settings",o.settings())("depth",o.depth()+1);}}function lr(i,l){if(i&1){let e=FD();_i$1(0,"div",12)(1,"div",13)(2,"nz-select",14),mh("ngModelChange",function(n){Fu(e);let o=HD().$index,p=HD();return ju(p.changeType(o,n))}),xD(3,mo,2,4,"nz-option",15,ND),Jc(),iE(),Jc(),_i$1(5,"label",16)(6,"span"),Iw(7),Pw(8,"transloco"),Jc(),_i$1(9,"input",17),mh("ngModelChange",function(n){Fu(e);let o=HD().$index,p=HD();return ju(p.onNameChange(o,n))}),Jc(),iE(),Jc(),_i$1(10,"label",16)(11,"span"),Iw(12),Pw(13,"transloco"),Jc(),_i$1(14,"input",18),mh("ngModelChange",function(n){Fu(e);let o=HD().$index,p=HD();return ju(p.onIdChange(o,n))}),Jc(),iE(),_i$1(15,"p",19),Iw(16),Pw(17,"transloco"),Jc()(),uh(18,"app-available-parameters",20),_i$1(19,"section",21)(20,"label",22),mh("ngModelChange",function(n){Fu(e);let o=HD().$index,p=HD();return ju(p.setConditionEnabled(o,n))}),Iw(21),Pw(22,"transloco"),Jc(),iE(),_i$1(23,"p",19),Iw(24),Pw(25,"transloco"),Jc(),_D(26,uo,1,2,"app-field-condition-editor",23),Jc(),_D(27,ho,32,29)(28,zo,8,6)(29,Mo,5,5,"label",16)(30,ko,22,20)(31,$o,9,6)(32,tr,16,19)(33,nr,3,5,"p",19)(34,rr,17,17)(35,sr,19,24),Jc();}if(i&2){let e,t,n=HD(),o=n.$implicit,p=n.$index,y=HD();ch("data-testid","step-body-"+p),gI(2),lh("ngModel",o.type),ch("data-testid","step-type-"+p),aE(),gI(),AD(y.stepTypes),gI(4),Lh(Fw(8,21,"step-list.name")),gI(2),lh("ngModel",o.name),ch("data-testid","step-name-"+p),aE(),gI(3),Lh(Fw(13,23,"step-list.id")),gI(2),lh("ngModel",o.id),ch("data-testid","step-id-"+p),aE(),gI(2),Lh(Fw(17,25,"step-list.idHint")),gI(2),lh("inputSchema",y.inputSchema())("appliesTo",y.appliesTo())("previousSteps",y.previousFor(o))("currentStepType",o.type),gI(),ch("data-testid","step-condition-"+p),gI(),lh("ngModel",!!o.condition),ch("data-testid","step-condition-toggle-"+p),aE(),gI(),rl$1(" ",Fw(22,27,"step-list.condition.title")," "),gI(3),Lh(Fw(25,29,"step-list.condition.hint")),gI(2),MD((e=o.condition)?26:-1,e),gI(),MD((t=o.type)==="agent"?27:t==="interaction"?28:t==="shell"?29:t==="extract"?30:t==="git"?31:t==="provider_action"?32:t==="engine_action"?33:t==="sub_workflow"?34:t==="loop"?35:-1);}}function pr(i,l){if(i&1){let e=FD();_i$1(0,"nz-card",3)(1,"div",4),mh("click",function(){let n=Fu(e).$implicit,o=HD();return ju(o.toggleExpanded(n))}),_i$1(2,"div",5)(3,"span",6),Iw(4),Jc(),_i$1(5,"span",7),Iw(6),Pw(7,"transloco"),Jc(),_i$1(8,"span",8),Iw(9),Pw(10,"transloco"),Jc()(),_i$1(11,"div",9),mh("click",function(n){return n.stopPropagation()}),_i$1(12,"button",10),mh("click",function(){let n=Fu(e).$index,o=HD();return ju(o.moveUp(n))}),Iw(13),Pw(14,"transloco"),Jc(),_i$1(15,"button",10),mh("click",function(){let n=Fu(e).$index,o=HD();return ju(o.moveDown(n))}),Iw(16),Pw(17,"transloco"),Jc(),_i$1(18,"button",11),mh("click",function(){let n=Fu(e).$index,o=HD();return ju(o.removeStep(n))}),Iw(19),Pw(20,"transloco"),Jc()()(),_D(21,lr,36,31,"div",12),Jc();}if(i&2){let e=l.$implicit,t=l.$index,n=HD();Sh("step-card-expanded",n.isExpanded(e)),ch("data-testid","step-card-"+t),gI(),ch("data-testid","step-header-"+t),gI(3),Lh(n.isExpanded(e)?"\u25BE":"\u25B8"),gI(),ch("data-testid","step-header-name-"+t),gI(),rl$1(" ",e.name||Fw(7,18,"step-list.unnamed")," "),gI(2),ch("data-testid","step-type-label-"+t),gI(),rl$1(" ",Fw(10,20,n.stepTypeKey(e.type))," "),gI(3),lh("disabled",t===0),ch("data-testid","move-up-"+t),gI(),rl$1(" ",Fw(14,22,"step-list.moveUp")," "),gI(2),lh("disabled",t===n.steps().length-1),ch("data-testid","move-down-"+t),gI(),rl$1(" ",Fw(17,24,"step-list.moveDown")," "),gI(2),ch("data-testid","remove-"+t),gI(),rl$1(" ",Fw(20,26,"step-list.remove")," "),gI(2),MD(n.isExpanded(e)?21:-1);}}var Ln=(()=>{class i{constructor(){this.transloco=C(Ve),this.language=C(O),this.providersApi=C(w),this.localReposApi=C(f$1),this.contextFilesApi=C(ze),this.modal=C(jn$1),this.steps=q0.required(),this.rootSteps=q0([]),this.availableWorkflows=q0([]),this.appliesTo=q0("none"),this.inputSchema=q0([]),this.settings=q0(N_),this.depth=q0(0),this.stepsChange=U0(),this.stepTypes=I,this.outputFormats=["questionnaire","confirmation","comment_suggestions","free_text"],this.interactions=["questionnaire","confirmation","comment_review"],this.gitOperations=["create_worktree","checkout","create_branch","commit","push"],this.providerActions=["get_subject","get_comments","post_comment","update_status","get_content"],this.maxIterationActions=["fail","continue","ask_human"],this.extractOnNoMatchActions=["fail","empty","ask_human"],this.expandedKey=qo$1(null),this.contextFiles=qo$1([]),this.localRepositories=qo$1([]),this.paramRowsByStepKey=new Map,this.actionsByProvider=new Map,this.loadingActions=new Set,this.targetSubjectTypes=F,this.contextFilesApi.list().pipe(ue()).subscribe({next:e=>this.contextFiles.set(e),error:()=>this.contextFiles.set([])}),this.localReposApi.list().pipe(ue()).subscribe({next:e=>this.localRepositories.set(e),error:()=>this.localRepositories.set([])}),id(()=>{for(let e of this.steps())e.type==="provider_action"&&e.extendedAction?.providerId&&this.ensureActionsLoaded(e.extendedAction.providerId);});}stepTypeKey(e){return `step-list.stepType.${e}`}outputFormatKey(e){return `step-list.outputFormat.${e}`}interactionKey(e){return `step-list.interaction.${e}`}gitOperationKey(e){return `step-list.gitOperation.${e}`}providerActionKey(e){return `step-list.providerAction.${e}`}onMaxIterationsKey(e){return `step-list.onMaxIterations.${e}`}onNoMatchKey(e){return `step-list.onNoMatch.${e}`}workflowOptionLabel(e){return this.language.currentLang(),this.transloco.translate("step-list.workflowOption",{name:e.name,id:e.id})}effectiveRoot(){let e=this.rootSteps();return e.length>0?e:this.steps()}previousFor(e){return am(this.effectiveRoot(),e)}commentSuggestionSources(e){return ty(this.effectiveRoot(),e).filter(t=>!!t.id).map(t=>({id:t.id,label:t.name?.trim()?`${t.name} (${t.id})`:t.id}))}onInteractionChange(e,t){if(t==="comment_review"){let n=this.asInteraction(this.steps()[e]);this.patchAt(e,{interaction:t,sourceStepIds:n.sourceStepIds??[]});return}this.patchAt(e,{interaction:t,sourceStepIds:void 0});}trackKey(e){return e._key}isExpanded(e){return this.expandedKey()===e._key}toggleExpanded(e){this.expandedKey.update(t=>t===e._key?null:e._key);}addStep(){this.emit([...this.steps(),y("agent")]);}removeStep(e){let t=this.steps()[e];t&&this.paramRowsByStepKey.delete(t._key),this.emit(this.steps().filter((n,o)=>o!==e));}moveUp(e){if(e<=0)return;let t=[...this.steps()],n=t[e-1];t[e-1]=t[e],t[e]=n,this.emit(t);}moveDown(e){if(e>=this.steps().length-1)return;let t=[...this.steps()],n=t[e+1];t[e+1]=t[e],t[e]=n,this.emit(t);}changeType(e,t){let n=this.steps()[e];if(!n||n.type===t)return;this.paramRowsByStepKey.delete(n._key);let o=y(t,{id:n.id,name:n.name,idAutoSync:n._idAutoSync,key:n._key});this.replaceAt(e,n.condition?s(r$1({},o),{condition:n.condition}):o);}patchAt(e,t){let n=this.steps()[e];n&&this.replaceAt(e,r$1(r$1({},n),t));}onNameChange(e,t){let n=this.steps()[e];n&&this.replaceAt(e,E(n,t,this.effectiveRoot()));}onIdChange(e,t){let n=this.steps()[e];n&&this.replaceAt(e,P(n,t));}setNestedSteps(e,t){let n=this.steps()[e];!n||n.type!=="loop"||this.replaceAt(e,s(r$1({},n),{steps:t}));}asAgent(e){return e}asInteraction(e){return e}asShell(e){return e}asExtract(e){return e}asGit(e){return e}createWorktreeMode(e){return e.params?.mode==="existing-branch"?"existing-branch":"new-branch"}createWorktreeRepoSource(e){return e.params?.resolveRepoFromSubject===true?"from-pr":"path"}gitParam(e,t){let n=e.params?.[t];return typeof n=="string"?n:""}setGitParam(e,t,n){let o=this.steps()[e];!o||o.type!=="git"||(this.paramRowsByStepKey.delete(o._key),this.patchAt(e,{params:s(r$1({},o.params),{[t]:n})}));}applyCreateWorktreeCatalogRepo(e,t){let n=this.steps()[e];if(!n||n.type!=="git")return;this.paramRowsByStepKey.delete(n._key);let o=s(r$1({},n.params),{repoPath:t.localPath});delete o.resolveRepoFromSubject;let p=this.gitParam(n,"baseBranch").trim(),y=t.defaultBranch?.trim();!p&&y&&(o.baseBranch=y),this.patchAt(e,{params:o});}setCreateWorktreeRepoSource(e,t){let n=this.steps()[e];if(!n||n.type!=="git")return;this.paramRowsByStepKey.delete(n._key);let o=r$1({},n.params);t==="from-pr"?(o.resolveRepoFromSubject=true,delete o.repoPath):delete o.resolveRepoFromSubject,this.patchAt(e,{params:o});}setCreateWorktreeMode(e,t){let n=this.steps()[e];if(!n||n.type!=="git")return;let o=n.params?.resolveRepoFromSubject===true,p=this.gitParam(n,"repoPath");this.paramRowsByStepKey.delete(n._key);let y=o?{resolveRepoFromSubject:true}:{repoPath:p};if(t==="existing-branch"){this.patchAt(e,{params:s(r$1({mode:"existing-branch"},y),{branch:this.gitParam(n,"branch")||this.gitParam(n,"branchName")})});return}this.patchAt(e,{params:s(r$1({},y),{baseBranch:this.gitParam(n,"baseBranch"),branchName:this.gitParam(n,"branchName")||this.gitParam(n,"branch")})});}asProvider(e){return e}asEngineAction(e){return e}asSubWorkflow(e){return e}subWorkflowForEachMode(e){return typeof this.asSubWorkflow(e).forEach=="object"?"source":"selection"}setSubWorkflowForEachMode(e,t){if(t==="selection"){this.patchAt(e,{forEach:"selection"});return}let n=this.asSubWorkflow(this.steps()[e]),o=typeof n.forEach=="object"?n.forEach.source:"";this.patchAt(e,{forEach:{source:o}});}subWorkflowSource(e){let t=this.asSubWorkflow(e).forEach;return typeof t=="object"?t.source:""}setSubWorkflowSource(e,t){this.patchAt(e,{forEach:{source:t}});}childWorkflowOptions(e){let t=this.availableWorkflows();return this.subWorkflowForEachMode(e)!=="source"?t:t.filter(n=>n.appliesTo==="none")}asLoop(e){return e}paramRows(e){let t=this.paramRowsByStepKey.get(e._key);if(!t){let n=e.type==="git"||e.type==="provider_action"?e.params:void 0;t=A(n),this.paramRowsByStepKey.set(e._key,t);}return t}onParamRowsChange(e,t,n){this.paramRowsByStepKey.set(t._key,n),this.patchAt(e,{params:j(n)});}isExtended(e){return e.type==="provider_action"&&Dn(this.asProvider(e))}setActionMode(e,t){let n=this.asProvider(this.steps()[e]);if(t==="portable"){let p=n,{extendedAction:y}=p,B=t$1(p,["extendedAction"]);this.replaceAt(e,B);return}let o=$n(this.appliesTo(),this.settings());this.patchAt(e,{extendedAction:{providerId:o,actionId:"",params:{}}}),this.ensureActionsLoaded(o);}extendedProviderOptions(){return We(this.settings())}providerLabel(e){return (this.settings().providerInstances??[]).find(n=>n.id===e)?.displayName||e}agentInstanceOptions(){return (this.settings().providerInstances??[]).filter(e=>e.kind==="agent")}setAgentInstance(e,t){this.patchAt(e,{agentInstanceId:t||void 0});}selectedContextFiles(e){let t=e.contextFileIds??[],n=this.contextFiles();return t.map(o=>n.find(p=>p.id===o)??{id:o,name:o,tier:"user",path:""})}removeContextFile(e,t){let n=this.asAgent(this.steps()[e]);this.patchAt(e,{contextFileIds:(n.contextFileIds??[]).filter(o=>o!==t)});}openContextFilePicker(e){let t=this.asAgent(this.steps()[e]),n=this.modal.create({nzTitle:this.transloco.translate("context-files.selectTitle"),nzContent:St,nzData:{selectionMode:true,selectedIds:[...t.contextFileIds??[]]},nzWidth:800,nzOnOk:()=>{let o=n.getContentComponent();this.patchAt(e,{contextFileIds:o.currentSelectedIds()}),this.contextFilesApi.list().subscribe({next:p=>this.contextFiles.set(p)});}});}setExtendedProvider(e,t){this.patchAt(e,{extendedAction:{providerId:t,actionId:"",params:{}}}),this.ensureActionsLoaded(t);}setExtendedAction(e,t){let n=this.asProvider(this.steps()[e]),o=this.extendedDescriptors(n).find(p=>p.actionId===t);this.patchAt(e,{extendedAction:{providerId:n.extendedAction?.providerId??"",actionId:t,params:o?dr(o):{}}});}setExtendedParam(e,t,n){let p=this.asProvider(this.steps()[e]).extendedAction;if(!p)return;let y=s(r$1({},p.params??{}),{[t]:n});if(t==="repository"&&p.actionId==="create_pr"&&typeof n=="string"){let B=this.defaultReviewersForRepository(p.providerId,n),O=y.reviewers;(O==null||Array.isArray(O)&&O.length===0||typeof O=="string"&&O.trim()==="")&&B.length>0&&(y.reviewers=B);}this.patchAt(e,{extendedAction:s(r$1({},p),{params:y})});}extendedParamValue(e,t){let n=e.extendedAction?.params?.[t];return n==null?"":String(n)}extendedParamStringList(e,t){let n=e.extendedAction?.params?.[t];return Array.isArray(n)?n.map(o=>String(o)).filter(o=>o.trim()!==""):typeof n=="string"&&n.trim()!==""?n.split(/[,;\n]/).map(o=>o.trim()).filter(Boolean):[]}repositoryOptions(e){let t=e.extendedAction?.providerId??"",n=(this.settings().providerInstances??[]).find(j=>j.id===t),o=n&&"config"in n?L_(n.config):[],p=this.localRepositories().filter(j=>j.remoteRepo?.providerInstanceId===t).map(j=>j.remoteRepo.identifier),y=this.extendedParamValue(e,"repository").trim(),B=new Set,O=[];for(let j of [y,...p,...o]){let Se=j.trim();!Se||B.has(Se)||(B.add(Se),O.push(Se));}return O.map(j=>({label:j,value:j}))}reviewerOptions(e){let t=e.extendedAction?.providerId??"",n=this.extendedParamValue(e,"repository").trim(),o=this.defaultReviewersForRepository(t,n),p=this.extendedParamStringList(e,"reviewers"),y=[...o];for(let B of p)y.includes(B)||y.push(B);return y.map(B=>({label:B,value:B}))}setRepositoryParam(e,t){let n=Array.isArray(t)?t:t?[t]:[],o=n[n.length-1]??"";this.setExtendedParam(e,"repository",o);}defaultReviewersForRepository(e,t){return !e||!t.trim()?[]:[...this.localRepositories().find(o=>o.remoteRepo?.providerInstanceId===e&&o.remoteRepo.identifier===t.trim())?.remoteRepo?.defaultReviewers??[]]}extendedDescriptors(e){let t=e.extendedAction?.providerId;return t?this.actionsByProvider.get(t)??[]:[]}selectedExtendedDescriptor(e){let t=e.extendedAction?.actionId;if(t)return this.extendedDescriptors(e).find(n=>n.actionId===t)}mismatchWarning(e){let t=Bn(e,this.appliesTo(),this.settings());return t?(this.language.currentLang(),this.transloco.translate("step-list.extendedAction.mismatch",t)):null}hasTarget(e){return e.type==="provider_action"&&this.asProvider(e).target!=null}setTargetEnabled(e,t){let n=this.asProvider(this.steps()[e]);if(!t){let o=n,{target:p}=o,y=t$1(o,["target"]);this.replaceAt(e,y);return}this.patchAt(e,{target:{subjectType:"ticket",source:"",subjectId:""}});}setTargetSubjectType(e,t){let n=this.asProvider(this.steps()[e]);this.patchAt(e,{target:{subjectType:t,source:"",subjectId:n.target?.subjectId??""}});}setTargetSource(e,t){let n=this.asProvider(this.steps()[e]);n.target&&this.patchAt(e,{target:s(r$1({},n.target),{source:t})});}setTargetSubjectId(e,t){let n=this.asProvider(this.steps()[e]);n.target&&this.patchAt(e,{target:s(r$1({},n.target),{subjectId:t})});}targetInstanceOptions(e){let t=e.target?.subjectType;return t?L(this.settings(),[t]):[]}setConditionEnabled(e,t){if(t){let n=this.steps()[e];this.patchAt(e,{condition:n?.condition??Nn()});return}this.patchAt(e,{condition:void 0});}subjectTypeKey(e){return `workflow-editor.subjectType.${e}`}ensureActionsLoaded(e){!e||this.actionsByProvider.has(e)||this.loadingActions.has(e)||(this.loadingActions.add(e),this.providersApi.listExtendedActions(e).subscribe({next:t=>{this.loadingActions.delete(e),this.actionsByProvider.set(e,t);},error:()=>{this.loadingActions.delete(e),this.actionsByProvider.set(e,[]);}}));}replaceAt(e,t){this.emit(this.steps().map((n,o)=>o===e?t:n));}emit(e){this.stepsChange.emit(e);}static{this.\u0275fac=function(t){return new(t||i)};}static{this.\u0275cmp=ZE({type:i,selectors:[["app-step-list"]],inputs:{steps:[1,"steps"],rootSteps:[1,"rootSteps"],availableWorkflows:[1,"availableWorkflows"],appliesTo:[1,"appliesTo"],inputSchema:[1,"inputSchema"],settings:[1,"settings"],depth:[1,"depth"]},outputs:{stepsChange:"stepsChange"},decls:6,vars:4,consts:[["data-testid","step-list",1,"step-list"],[1,"step-card",3,"step-card-expanded"],["nz-button","","nzType","dashed","nzBlock","","type","button","data-testid","add-step",3,"click"],[1,"step-card"],[1,"step-header",3,"click"],[1,"step-header-meta"],["aria-hidden","true",1,"step-chevron"],[1,"step-name-preview"],[1,"step-type"],[1,"step-header-actions",3,"click"],["nz-button","","type","button",3,"click","disabled"],["nz-button","","nzDanger","","type","button",3,"click"],[1,"step-body"],[1,"step-toolbar"],[1,"type-select",3,"ngModelChange","ngModel"],[3,"nzValue","nzLabel"],[1,"field"],["nz-input","","required","",3,"ngModelChange","ngModel"],["nz-input","",3,"ngModelChange","ngModel"],[1,"hint"],[3,"inputSchema","appliesTo","previousSteps","currentStepType"],[1,"condition-section"],["nz-checkbox","",3,"ngModelChange","ngModel"],[3,"condition","testIdPrefix"],[3,"conditionChange","condition","testIdPrefix"],["nz-input","","rows","3",3,"ngModelChange","ngModel"],[3,"ngModelChange","ngModel"],[1,"context-file-chips"],["nzMode","closeable"],["data-testid","context-files-empty",1,"hint"],["nz-button","","type","button",3,"click"],["nzMode","closeable",3,"nzOnClose"],["nzMode","multiple",3,"ngModelChange","ngModel"],["nz-input","","rows","2",3,"ngModelChange","ngModel"],["nzValue","new-branch",3,"nzLabel"],["nzValue","existing-branch",3,"nzLabel"],["nzValue","path",3,"nzLabel"],["nzValue","from-pr",3,"nzLabel"],[3,"pathChange","repoSelected","path"],[3,"rowsChange","rows"],["nzType","warning","nzShowIcon","",1,"mismatch",3,"nzMessage"],["nzValue","portable",3,"nzLabel"],["nzValue","extended",3,"nzLabel"],[3,"ngModelChange","ngModel","nzPlaceHolder"],[1,"required"],[3,"ngModel"],["nzMode","tags",3,"nzOptions","ngModel"],["nzMode","tags","nzShowSearch","",3,"nzOptions","ngModel"],["nz-input","",3,"ngModel"],["nzMode","tags",3,"ngModelChange","nzOptions","ngModel"],["nzMode","tags","nzShowSearch","",3,"ngModelChange","nzOptions","ngModel"],["nzShowSearch","","nzAllowClear","",3,"ngModelChange","ngModel"],["nzValue","selection",3,"nzLabel"],["nzValue","source",3,"nzLabel"],[1,"field-grid"],[3,"ngModelChange","ngModel","nzMin"],[1,"nested"],[3,"stepsChange","steps","rootSteps","availableWorkflows","appliesTo","inputSchema","settings","depth"]],template:function(t,n){t&1&&(_i$1(0,"div",0),xD(1,pr,22,28,"nz-card",1,po,true),_i$1(3,"button",2),mh("click",function(){return n.addStep()}),Iw(4),Pw(5,"transloco"),Jc()()),t&2&&(ch("data-depth",n.depth()),gI(),AD(n.steps()),gI(3),rl$1(" ",Fw(5,2,"step-list.addStep")," "));},dependencies:[i,$8,al,er$1,rl,Ja,$i$1,pf,bd,sp,fp,Nt,Ke,Lt,ut,ai$1,z,Mn,pt,ts,ex,Fm,Am,Gn$1,un,W,I$1,An,In,Tn,En,Kt],styles:[".step-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.step-card[_ngcontent-%COMP%]{background:#fff}.step-header[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.step-header-meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;min-width:0}.step-chevron[_ngcontent-%COMP%]{color:#78716c;font-size:.85rem;width:.9rem}.step-type[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#57534e;background:#f5f5f4;border-radius:999px;padding:.15rem .55rem}.step-name-preview[_ngcontent-%COMP%]{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-header-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem}.step-body[_ngcontent-%COMP%]{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e7e5e4}.step-toolbar[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;align-items:center}.type-select[_ngcontent-%COMP%]{min-width:11rem}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.35rem;margin:.65rem 0}.field[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.85rem;color:#57534e}.field-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.5rem 1rem}.hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:#78716c}.mismatch[_ngcontent-%COMP%]{margin:.5rem 0}.required[_ngcontent-%COMP%]{color:#b91c1c}.nested[_ngcontent-%COMP%]{margin-top:.75rem;padding:.75rem;border-left:3px solid #d6d3d1;background:#fafaf9}.nested[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:0 0 .5rem}.condition-section[_ngcontent-%COMP%]{margin:.75rem 0;padding-top:.5rem}.condition-section[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{margin:.35rem 0 0}.context-file-chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin:.35rem 0}"]});}}return i})();function dr(i){let l={};for(let e of i.params)e.type==="select"?l[e.name]=e.options?.[0]??"":e.type==="string[]"?l[e.name]=[]:l[e.name]="";return l}var cr=i=>({ids:i});function _r(i,l){if(i&1){let e=FD();_i$1(0,"button",10),mh("click",function(){Fu(e);let n=HD();return ju(n.exportWorkflow())}),Iw(1),Pw(2,"transloco"),Jc();}if(i&2){let e=HD();lh("disabled",e.loading()||!!e.loadError()),gI(),rl$1(" ",Fw(2,2,"workflow-editor.export")," ");}}function mr(i,l){if(i&1){let e=FD();_i$1(0,"button",11),mh("click",function(){Fu(e);let n=HD();return ju(n.startWorkflow())}),Iw(1),Pw(2,"transloco"),Jc();}i&2&&(gI(),rl$1(" ",Fw(2,1,"workflow-editor.start")," "));}function ur(i,l){i&1&&(_i$1(0,"p",8),Iw(1),Pw(2,"transloco"),Jc()),i&2&&(gI(),Lh(Fw(2,1,"workflow-editor.loading")));}function xr(i,l){if(i&1&&(_i$1(0,"p",9),Iw(1),Jc()),i&2){let e=HD();gI(),Lh(e.loadError());}}function Cr(i,l){if(i&1&&(_i$1(0,"li"),Iw(1),Jc()),i&2){let e=l.$implicit;gI(),Lh(e);}}function fr(i,l){if(i&1&&(_i$1(0,"section",12)(1,"h2"),Iw(2),Pw(3,"transloco"),Jc(),_i$1(4,"ul"),xD(5,Cr,2,1,"li",null,ND),Jc()()),i&2){let e=HD(2);gI(2),Lh(Fw(3,1,"workflow-editor.validation")),gI(3),AD(e.validationErrors());}}function gr(i,l){if(i&1&&(uh(0,"nz-option",18),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(2);lh("nzValue",e)("nzLabel",Fw(1,2,t.subjectTypeKey(e)));}}function hr(i,l){if(i&1&&(uh(0,"nz-option",20),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(2);lh("nzValue",e)("nzLabel",Fw(1,3,t.subjectHandlingKey(e)))("nzDisabled",e==="collection"&&t.appliesToValue()==="none");}}function br(i,l){if(i&1&&(uh(0,"nz-option",18),Pw(1,"transloco")),i&2){let e=l.$implicit,t=HD(3);lh("nzValue",e)("nzLabel",Fw(1,2,t.inputTypeKey(e)));}}function vr(i,l){if(i&1){let e=FD();_i$1(0,"div",23)(1,"label",15)(2,"span"),Iw(3),Pw(4,"transloco"),Jc(),_i$1(5,"input",27),mh("ngModelChange",function(n){let o=Fu(e).$index,p=HD(2);return ju(p.patchInputField(o,{name:n}))}),Jc(),iE(),Jc(),_i$1(6,"label",15)(7,"span"),Iw(8),Pw(9,"transloco"),Jc(),_i$1(10,"input",27),mh("ngModelChange",function(n){let o=Fu(e).$index,p=HD(2);return ju(p.patchInputField(o,{label:n}))}),Jc(),iE(),Jc(),_i$1(11,"div",15)(12,"span"),Iw(13),Pw(14,"transloco"),Jc(),_i$1(15,"nz-select",28),mh("ngModelChange",function(n){let o=Fu(e).$index,p=HD(2);return ju(p.patchInputField(o,{type:n}))}),xD(16,br,2,4,"nz-option",18,ND),Jc(),iE(),Jc(),_i$1(18,"label",29),mh("ngModelChange",function(n){let o=Fu(e).$index,p=HD(2);return ju(p.patchInputField(o,{required:n}))}),Iw(19),Pw(20,"transloco"),Jc(),iE(),_i$1(21,"button",30),mh("click",function(){let n=Fu(e).$index,o=HD(2);return ju(o.removeInputField(n))}),Iw(22),Pw(23,"transloco"),Jc()();}if(i&2){let e=l.$implicit,t=l.$index,n=HD(2);ch("data-testid","input-field-"+t),gI(3),Lh(Fw(4,10,"workflow-editor.fieldName")),gI(2),lh("ngModel",e.name),aE(),gI(3),Lh(Fw(9,12,"workflow-editor.fieldLabel")),gI(2),lh("ngModel",e.label),aE(),gI(3),Lh(Fw(14,14,"workflow-editor.fieldType")),gI(2),lh("ngModel",e.type),aE(),gI(),AD(n.inputFieldTypes),gI(2),lh("ngModel",e.required),aE(),gI(),rl$1(" ",Fw(20,16,"workflow-editor.required")," "),gI(3),rl$1(" ",Fw(23,18,"workflow-editor.remove")," ");}}function wr(i,l){if(i&1&&(_i$1(0,"p",25),Iw(1),Pw(2,"transloco"),Jc()),i&2){let e=HD(2);gI(),rl$1(" ",jw(2,1,"workflow-editor.duplicateStepIds",Aw(4,cr,e.duplicateStepIds().join(", ")))," ");}}function Sr(i,l){if(i&1){let e=FD();_D(0,fr,7,3,"section",12),_i$1(1,"nz-card",13),Pw(2,"transloco"),_i$1(3,"div",14)(4,"label",15)(5,"span"),Iw(6),Pw(7,"transloco"),Jc(),_i$1(8,"input",16),mh("ngModelChange",function(n){Fu(e);let o=HD();return ju(o.patchWorkflow({name:n}))}),Jc(),iE(),Jc(),_i$1(9,"div",15)(10,"span"),Iw(11),Pw(12,"transloco"),Jc(),_i$1(13,"nz-select",17),mh("ngModelChange",function(n){Fu(e);let o=HD();return ju(o.setAppliesTo(n))}),xD(14,gr,2,4,"nz-option",18,ND),Jc(),iE(),Jc(),_i$1(16,"div",15)(17,"span"),Iw(18),Pw(19,"transloco"),Jc(),_i$1(20,"nz-select",19),mh("ngModelChange",function(n){Fu(e);let o=HD();return ju(o.patchWorkflow({subjectHandling:n}))}),xD(21,hr,2,5,"nz-option",20,ND),Jc(),iE(),_i$1(23,"p",21),Iw(24),Pw(25,"transloco"),Jc()()(),_i$1(26,"label",15)(27,"span"),Iw(28),Pw(29,"transloco"),Jc(),_i$1(30,"textarea",22),mh("ngModelChange",function(n){Fu(e);let o=HD();return ju(o.patchWorkflow({description:n||void 0}))}),Jc(),iE(),Jc()(),_i$1(31,"nz-card",13),Pw(32,"transloco"),xD(33,vr,24,20,"div",23,SD),_i$1(35,"button",24),mh("click",function(){Fu(e);let n=HD();return ju(n.addInputField())}),Iw(36),Pw(37,"transloco"),Jc()(),_i$1(38,"nz-card",13),Pw(39,"transloco"),_D(40,wr,3,6,"p",25),_i$1(41,"app-step-list",26),mh("stepsChange",function(n){Fu(e);let o=HD();return ju(o.onStepsChange(n))}),Jc()();}if(i&2){let e=HD();MD(e.validationErrors().length>0?0:-1),gI(),lh("nzTitle",Fw(2,21,"workflow-editor.basics")),gI(5),Lh(Fw(7,23,"workflow-editor.name")),gI(2),lh("ngModel",e.workflow().name),aE(),gI(3),Lh(Fw(12,25,"workflow-editor.appliesTo")),gI(2),lh("ngModel",e.appliesToValue()),aE(),gI(),AD(e.subjectTypes),gI(4),Lh(Fw(19,27,"workflow-editor.subjectHandling.label")),gI(2),lh("ngModel",e.workflow().subjectHandling),aE(),gI(),AD(e.subjectHandlingOptions),gI(3),rl$1(" ",Fw(25,29,e.subjectHandlingHelpKey())," "),gI(4),Lh(Fw(29,31,"workflow-editor.description")),gI(2),lh("ngModel",e.workflow().description??""),aE(),gI(),lh("nzTitle",Fw(32,33,"workflow-editor.inputSchema")),gI(2),AD(e.workflow().inputSchema),gI(3),rl$1(" ",Fw(37,35,"workflow-editor.addInputField")," "),gI(2),lh("nzTitle",Fw(39,37,"workflow-editor.steps")),gI(2),MD(e.duplicateStepIds().length>0?40:-1),gI(),lh("steps",e.workflow().steps)("rootSteps",e.workflow().steps)("availableWorkflows",e.availableWorkflows())("appliesTo",e.workflow().appliesTo)("inputSchema",e.workflow().inputSchema)("settings",e.settings());}}var zs=(()=>{class i{constructor(){this.route=C(C1),this.router=C(J1),this.workflowsApi=C(b),this.settingsApi=C(f),this.message=C(He),this.destroyRef=C(at),this.transloco=C(Ve),this.language=C(O),this.startJob=C(At),this.routeId=de(this.route.paramMap.pipe(Se(e=>e.get("id"))),{initialValue:this.route.snapshot.paramMap.get("id")}),this.workflow=qo$1(h()),this.availableWorkflows=qo$1([]),this.settings=qo$1(N_),this.loadError=qo$1(null),this.validationErrors=qo$1([]),this.duplicateStepIds=qo$1([]),this.saving=qo$1(false),this.loading=qo$1(true),this.isNew=Uw(()=>!this.routeId()),this.canStart=Uw(()=>!this.isNew()&&!this.loading()&&!this.loadError()&&this.workflow().subjectHandling==="per-subject"),this.pageTitle=Uw(()=>(this.language.currentLang(),this.isNew()?this.transloco.translate("workflow-editor.titleNew"):this.transloco.translate("workflow-editor.titleEdit",{name:this.workflow().name.trim()}))),this.subjectTypes=["none","ticket","pull_request","documentation"],this.subjectHandlingOptions=["per-subject","collection"],this.inputFieldTypes=["string","number","boolean","select","localRepository"],this.workflowsApi.list().pipe(ue(this.destroyRef)).subscribe({next:e=>this.availableWorkflows.set(e),error:()=>{}}),this.settingsApi.getSettings().pipe(ue(this.destroyRef)).subscribe({next:e=>this.settings.set(e),error:()=>{}}),this.route.paramMap.pipe(ue(this.destroyRef)).subscribe(e=>{let t=e.get("id");if(this.validationErrors.set([]),this.duplicateStepIds.set([]),this.loadError.set(null),!t){this.workflow.set(h()),this.loading.set(false);return}this.loading.set(true),this.workflowsApi.get(t).subscribe({next:n=>{this.workflow.set(s(r$1({},structuredClone(n)),{steps:x(n.steps,{idAutoSync:false})})),this.loading.set(false);},error:n=>{this.loading.set(false),this.loadError.set(this.errorMessage(n,`Failed to load workflow ${t}`));}});});}subjectTypeKey(e){return `workflow-editor.subjectType.${e}`}subjectHandlingKey(e){return `workflow-editor.subjectHandling.${e}`}subjectHandlingHelpKey(){return `workflow-editor.subjectHandling.help.${this.workflow().subjectHandling}`}inputTypeKey(e){return `workflow-editor.inputType.${e}`}patchWorkflow(e){this.workflow.update(t=>r$1(r$1({},t),e));}setAppliesTo(e){if(e==="none"){this.patchWorkflow({appliesTo:e,subjectHandling:"per-subject"});return}this.patchWorkflow({appliesTo:e});}appliesToValue(){let e=this.workflow().appliesTo;return Array.isArray(e)?e[0]??"none":e}onStepsChange(e){this.patchWorkflow({steps:e}),this.duplicateStepIds.set(Ad(e));}addInputField(){this.patchWorkflow({inputSchema:[...this.workflow().inputSchema,b$1()]});}removeInputField(e){this.patchWorkflow({inputSchema:this.workflow().inputSchema.filter((t,n)=>n!==e)});}patchInputField(e,t){let n=this.workflow().inputSchema.map((o,p)=>p===e?r$1(r$1({},o),t):o);this.patchWorkflow({inputSchema:n});}save(){let e=this.workflow(),t=Ad(e.steps);if(this.duplicateStepIds.set(t),t.length>0){this.validationErrors.set([this.transloco.translate("workflow-editor.duplicateStepIds",{ids:t.join(", ")})]);return}let n=v(e,{omitWorkflowId:this.isNew()}),o=m_.safeParse(n);if(!o.success){this.validationErrors.set(T(o.error));return}this.validationErrors.set([]),this.saving.set(true);let p=o.data,y=this.routeId();(this.isNew()||!y?this.workflowsApi.create(p):this.workflowsApi.update(y,s(r$1({},p),{id:y}))).subscribe({next:O=>{this.saving.set(false),this.workflow.set(s(r$1({},structuredClone(O)),{steps:x(O.steps,{idAutoSync:false})})),this.message.success(this.isNew()?"Workflow created":"Workflow saved"),this.isNew()&&this.router.navigate(["/workflows",O.id,"edit"]);},error:O=>{this.saving.set(false),this.message.error(this.errorMessage(O,"Save failed"));}});}startWorkflow(){let e=this.routeId();!e||!this.canStart()||this.startJob.start({workflowId:e});}exportWorkflow(){let e=this.routeId();e&&this.workflowsApi.exportDefinition(e).subscribe({next:t=>{l(`${og(t.name)}.json`,JSON.stringify(t,null,2),"application/json");},error:t=>{this.message.error(this.errorMessage(t,this.transloco.translate("workflow-editor.exportFailed")));}});}errorMessage(e,t){return e instanceof bi$1||e instanceof Error?e.message:t}static{this.\u0275fac=function(t){return new(t||i)};}static{this.\u0275cmp=ZE({type:i,selectors:[["app-workflow-editor"]],decls:17,vars:12,consts:[["data-testid","workflow-editor",1,"editor"],[1,"header"],["data-testid","page-title"],[1,"header-actions"],["routerLink","/workflows","data-testid","back-to-workflows"],["nz-button","","type","button","data-testid","export-workflow",3,"disabled"],["nz-button","","type","button","data-testid","start-workflow"],["nz-button","","nzType","primary","type","button","data-testid","save-button",3,"click","nzLoading","disabled"],["data-testid","loading"],["data-testid","load-error",1,"error"],["nz-button","","type","button","data-testid","export-workflow",3,"click","disabled"],["nz-button","","type","button","data-testid","start-workflow",3,"click"],["data-testid","validation-errors",1,"errors"],[3,"nzTitle"],[1,"grid"],[1,"field"],["nz-input","","data-testid","workflow-name",3,"ngModelChange","ngModel"],["data-testid","workflow-applies-to",3,"ngModelChange","ngModel"],[3,"nzValue","nzLabel"],["data-testid","workflow-subject-handling",3,"ngModelChange","ngModel"],[3,"nzValue","nzLabel","nzDisabled"],["data-testid","workflow-subject-handling-help",1,"help"],["nz-input","","rows","2","data-testid","workflow-description",3,"ngModelChange","ngModel"],[1,"input-field-row"],["nz-button","","nzType","dashed","type","button",3,"click"],["data-testid","duplicate-step-ids",1,"error"],[3,"stepsChange","steps","rootSteps","availableWorkflows","appliesTo","inputSchema","settings"],["nz-input","",3,"ngModelChange","ngModel"],[3,"ngModelChange","ngModel"],["nz-checkbox","",3,"ngModelChange","ngModel"],["nz-button","","nzDanger","","type","button",3,"click"]],template:function(t,n){t&1&&(_i$1(0,"main",0)(1,"header",1)(2,"div")(3,"h1",2),Iw(4),Jc()(),_i$1(5,"div",3)(6,"a",4),Iw(7),Pw(8,"transloco"),Jc(),_D(9,_r,3,4,"button",5),_D(10,mr,3,3,"button",6),_i$1(11,"button",7),mh("click",function(){return n.save()}),Iw(12),Pw(13,"transloco"),Jc()()(),_D(14,ur,3,3,"p",8)(15,xr,2,1,"p",9)(16,Sr,42,39),Jc()),t&2&&(gI(4),Lh(n.pageTitle()),gI(3),Lh(Fw(8,8,"workflow-editor.backToWorkflows")),gI(2),MD(n.isNew()?-1:9),gI(),MD(n.canStart()?10:-1),gI(),lh("nzLoading",n.saving())("disabled",n.loading()||!!n.loadError()),gI(),rl$1(" ",Fw(13,10,"common.save")," "),gI(2),MD(n.loading()?14:n.loadError()?15:16));},dependencies:[$8,al,er$1,rl,$i$1,v3,pf,bd,sp,fp,Nt,Ke,Lt,ut,ai$1,z,ex,Fm,Am,Ln,Kt],styles:[".editor[_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}.lede[_ngcontent-%COMP%]{margin:.25rem 0 0;color:#57534e}.grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem 1rem}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.35rem;margin:.5rem 0}.field[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.85rem;color:#57534e}.help[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:#78716c}.checkbox-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem}.input-field-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr 8rem auto auto;gap:.5rem;align-items:end;margin-bottom:.5rem}.input-field-row[_ngcontent-%COMP%] > .field[_ngcontent-%COMP%]{margin:0}.errors[_ngcontent-%COMP%]{border:1px solid #fecdd3;background:#fff1f2;padding:.75rem 1rem}.errors[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0 0 .35rem;font-size:1rem}.error[_ngcontent-%COMP%]{color:#9f1239}"]});}}return i})();export{zs as WorkflowEditorComponent};
@@ -0,0 +1 @@
1
+ import {f}from'./chunk-CxnyhsKe.js';import {O,v}from'./chunk-IZZsw-Ul.js';import {W,I}from'./chunk-zWWkMLc1.js';import {S as Sg}from'./chunk-g20-BKKx.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-DyGh8J3-.js';import'./chunk-D5BPM_KC.js';import {Z as ZE,B as uh,C,$,V as Ve,b as at,T as p,q as qo,U as Uw,u as ue$1,aW as Ng,c as bi,d as $8,Y as M5,v as v3,a0 as pf,a1 as bd,a2 as sp,a3 as fp,K as Kt,j as _i,I as Iw,P as Pw,J as Jc,m as mh,l as _D,n as gI,L as Lh,o as Fw,p as lh,x as rl,M as MD,H as HD,z as xD,D as AD,y as FD,E as ch,G as Aw,O as Fu,Q as ju}from'./main-GFNB573R.js';var pe=t=>["/jobs",t],ce=(t,d)=>d.id;function me(t,d){t&1&&(_i(0,"p",3),Iw(1),Pw(2,"transloco"),Jc()),t&2&&(gI(),Lh(Fw(2,1,"common.loading")));}function he(t,d){if(t&1&&(_i(0,"p",4),Iw(1),Jc()),t&2){let e=HD();gI(),Lh(e.loadError());}}function ue(t,d){if(t&1&&(_i(0,"p",5),Iw(1),Jc()),t&2){let e=HD(2);gI(),Lh(e.actionError());}}function fe(t,d){t&1&&(_i(0,"p",6),Iw(1),Pw(2,"transloco"),Jc()),t&2&&(gI(),Lh(Fw(2,1,"worktrees.activeWarning")));}function ge(t,d){t&1&&(_i(0,"p",7),Iw(1),Pw(2,"transloco"),Jc()),t&2&&(gI(),Lh(Fw(2,1,"worktrees.emptyState")));}function Ce(t,d){if(t&1){let e=FD();_i(0,"tr")(1,"td")(2,"label",9),mh("nzCheckedChange",function(l){let b=Fu(e).$implicit,le=HD(3);return ju(le.toggleSelected(b.id,l))}),Jc()(),_i(3,"td")(4,"a",10),Iw(5),Jc()(),_i(6,"td"),Iw(7),Jc(),_i(8,"td"),Iw(9),Jc(),_i(10,"td",11),Iw(11),Jc(),_i(12,"td")(13,"nz-tag",12),Iw(14),Pw(15,"transloco"),Jc()(),_i(16,"td"),Iw(17),Jc()();}if(t&2){let e=d.$implicit,i=HD(3);ch("data-testid","worktree-row-"+e.id),gI(2),lh("nzChecked",i.isSelected(e.id)),ch("data-testid","worktree-select-"+e.id),gI(2),lh("routerLink",Aw(16,pe,e.id)),ch("data-testid","worktree-job-"+e.id),gI(),Lh(e.id),gI(2),Lh(i.repoName(e)),gI(2),Lh(e.branch??"\u2014"),gI(2),Lh(e.worktreePath),gI(2),lh("nzColor",i.jobStatusTagColor(e.status,i.theme.theme()))("ngClass",i.jobStatusTagClass(e.status,i.theme.theme())),ch("data-testid","worktree-status-"+e.id),gI(),Lh(Fw(15,14,i.statusKey(e.status))),gI(3),Lh(e.createdAt);}}function xe(t,d){if(t&1&&(_i(0,"nz-table",8)(1,"thead")(2,"tr"),uh(3,"th"),_i(4,"th"),Iw(5),Pw(6,"transloco"),Jc(),_i(7,"th"),Iw(8),Pw(9,"transloco"),Jc(),_i(10,"th"),Iw(11),Pw(12,"transloco"),Jc(),_i(13,"th"),Iw(14),Pw(15,"transloco"),Jc(),_i(16,"th"),Iw(17),Pw(18,"transloco"),Jc(),_i(19,"th"),Iw(20),Pw(21,"transloco"),Jc()()(),_i(22,"tbody"),xD(23,Ce,18,18,"tr",null,ce),Jc()()),t&2){let e=HD(2);lh("nzData",e.jobs())("nzShowPagination",false),gI(5),Lh(Fw(6,8,"worktrees.column.job")),gI(3),Lh(Fw(9,10,"worktrees.column.repository")),gI(3),Lh(Fw(12,12,"worktrees.column.branch")),gI(3),Lh(Fw(15,14,"worktrees.column.path")),gI(3),Lh(Fw(18,16,"worktrees.column.status")),gI(3),Lh(Fw(21,18,"worktrees.column.created")),gI(3),AD(e.jobs());}}function be(t,d){if(t&1&&(_D(0,ue,2,1,"p",5),_D(1,fe,3,3,"p",6),_D(2,ge,3,3,"p",7)(3,xe,25,20,"nz-table",8)),t&2){let e=HD();MD(e.actionError()?0:-1),gI(),MD(e.selectedHasActive()?1:-1),gI(),MD(e.jobs().length===0?2:3);}}var se=(()=>{class t{constructor(){this.jobsApi=C($),this.reposApi=C(f),this.transloco=C(Ve),this.destroyRef=C(at),this.theme=C(p),this.jobStatusTagClass=O,this.jobStatusTagColor=v,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=Uw(()=>this.selectedJobs().some(e=>!Sg(e.status))),this.selectedJobs=Uw(()=>{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=>_e(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=ZE({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,"nzColor","ngClass"]],template:function(i,l){i&1&&(_i(0,"div",0)(1,"header",1)(2,"h1"),Iw(3),Pw(4,"transloco"),Jc(),_i(5,"button",2),mh("click",function(){return l.deleteSelected()}),Iw(6),Pw(7,"transloco"),Jc()(),_D(8,me,3,3,"p",3)(9,he,2,1,"p",4)(10,be,4,3),Jc()),i&2&&(gI(3),Lh(Fw(4,4,"worktrees.title")),gI(2),lh("disabled",l.deleting()||l.selectedIds().length===0),gI(),rl(" ",Fw(7,6,"worktrees.deleteSelected")," "),gI(2),MD(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 _e(t,d){let e=(t.worktreePath??"").replaceAll("\\","/"),i=d.localPath.replaceAll("\\","/").replace(/\/+$/,""),l=(d.worktreeBasePath??ke(i)).replaceAll("\\","/");return e.startsWith(l)||e.startsWith(i)}function ke(t){let d=t.split("/"),e=d.pop()??"repo";return `${d.join("/")}/${e}-worktrees`}var qe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)};}static{this.\u0275cmp=ZE({type:t,selectors:[["app-worktrees-manage"]],decls:1,vars:0,template:function(i,l){i&1&&uh(0,"app-worktree-list");},dependencies:[se],encapsulation:2});}}return t})();export{qe as WorktreesManageComponent};