@knoflows/engine 0.1.0-alpha.12 → 0.1.0-alpha.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/engine.js +81 -13
- package/dist/migrations/20260919073531_tense_grey_gargoyle/migration.sql +1 -0
- package/dist/migrations/20260919073531_tense_grey_gargoyle/snapshot.json +1348 -0
- package/dist/migrations/20260919081637_fearless_warlock/migration.sql +1 -0
- package/dist/migrations/20260919081637_fearless_warlock/snapshot.json +1358 -0
- package/package.json +3 -3
- package/static/apple-touch-icon.png +0 -0
- package/static/assets/i18n/en.json +50 -9
- package/static/assets/i18n/es.json +50 -9
- package/static/chunk-1Oqdt_Gp.js +1 -0
- package/static/{chunk-C3Ej8Ue9.js → chunk-1eeePIP1.js} +1 -1
- package/static/chunk-37yFTUcY.js +1 -0
- package/static/chunk-7MZQgksi.js +1 -0
- package/static/chunk-7VyHTRp_.js +1 -0
- package/static/chunk-B0V1VBvY.js +1 -0
- package/static/chunk-BH5zvE8A.js +1 -0
- package/static/chunk-BZxs3wP7.js +1 -0
- package/static/chunk-B_L2A3hm.js +1 -0
- package/static/chunk-BbIC5sO2.js +1 -0
- package/static/chunk-BeWWb9rm.js +1 -0
- package/static/chunk-BnD2l9n3.js +1 -0
- package/static/chunk-Bp8u1CCw.js +1 -0
- package/static/chunk-BpOumnMU.js +1 -0
- package/static/chunk-BuPc66MS.js +1 -0
- package/static/{chunk-CK-2DsDH.js → chunk-C4Ee3umI.js} +1 -1
- package/static/chunk-C5n_oTWP.js +1 -0
- package/static/chunk-CF4gc4Im.js +1 -0
- package/static/chunk-CM8oLO7n.js +1 -0
- package/static/chunk-CXGgR5M1.js +1 -0
- package/static/chunk-CiJRU6lo.js +1 -0
- package/static/chunk-Cn95hfnf.js +1 -0
- package/static/chunk-Cq09TrKP.js +1 -0
- package/static/chunk-Cx2n09Ng.js +1 -0
- package/static/chunk-DFoFQkTa.js +1 -0
- package/static/chunk-DMAf3Qir.js +66 -0
- package/static/chunk-DYARU-G0.js +1 -0
- package/static/chunk-DZhQ2iEt.js +1 -0
- package/static/chunk-D_DUAV49.js +1 -0
- package/static/chunk-DgEO14wO.js +1 -0
- package/static/{chunk-hEYSTlD1.js → chunk-DphMF2VB.js} +1 -1
- package/static/chunk-DxZsQqxS.js +1 -0
- package/static/chunk-GQe0l3Uh.js +1 -0
- package/static/chunk-J9qS04nF.js +1 -0
- package/static/chunk-dOUa0Vhs.js +1 -0
- package/static/chunk-nx1xncBD.js +1 -0
- package/static/chunk-q9oVn_qj.js +5 -0
- package/static/{chunk-BquoV7tV.js → chunk-vYeIWxg4.js} +1 -1
- package/static/chunk-yxqIQom4.js +1 -0
- package/static/favicon-16x16.png +0 -0
- package/static/favicon-32x32.png +0 -0
- package/static/favicon.ico +0 -0
- package/static/favicon.svg +12 -0
- package/static/icon-192.png +0 -0
- package/static/icon-512.png +0 -0
- package/static/index.html +30 -5
- package/static/main-2ZW45HAE.js +248 -0
- package/static/media/inter-latin-400-normal-55WT6UWF.woff2 +0 -0
- package/static/media/inter-latin-400-normal-FR5HOXA4.woff +0 -0
- package/static/media/inter-latin-500-normal-W62DVTXI.woff2 +0 -0
- package/static/media/inter-latin-500-normal-ZNGIZ2YB.woff +0 -0
- package/static/media/inter-latin-600-normal-R6Y2SZCR.woff2 +0 -0
- package/static/media/inter-latin-600-normal-ZYHV6QZT.woff +0 -0
- package/static/media/jetbrains-mono-latin-500-normal-ETEQEOVZ.woff +0 -0
- package/static/media/jetbrains-mono-latin-500-normal-V4XIP5OW.woff2 +0 -0
- package/static/media/space-grotesk-latin-500-normal-GESQWJQV.woff2 +0 -0
- package/static/media/space-grotesk-latin-500-normal-HV4TE4RA.woff +0 -0
- package/static/media/space-grotesk-latin-700-normal-6Z7GHSI6.woff +0 -0
- package/static/media/space-grotesk-latin-700-normal-I3MXRIUZ.woff2 +0 -0
- package/static/nz-theme-dark.css +1 -0
- package/static/nz-theme.css +1 -0
- package/static/styles-JGCTKGGH.css +1 -0
- package/static/chunk--F2Y9kLC.js +0 -1
- package/static/chunk-A3t8CipM.js +0 -1
- package/static/chunk-BAgwFLbm.js +0 -1
- package/static/chunk-BLSuZA6j.js +0 -1
- package/static/chunk-Bc9kVhav.js +0 -1
- package/static/chunk-BdrifDCS.js +0 -66
- package/static/chunk-BkJuaRUH.js +0 -1
- package/static/chunk-BmP-Xct3.js +0 -1
- package/static/chunk-BqB1I-vg.js +0 -1
- package/static/chunk-C5T1qa5G.js +0 -1
- package/static/chunk-CKFZoQzp.js +0 -1
- package/static/chunk-CLNhyiRm.js +0 -1
- package/static/chunk-CN5_Adst.js +0 -1
- package/static/chunk-COSsVdG3.js +0 -1
- package/static/chunk-Cj-KtAk-.js +0 -1
- package/static/chunk-CrD5w72_.js +0 -1
- package/static/chunk-CxBYhrEj.js +0 -1
- package/static/chunk-D5Bqg3D5.js +0 -7
- package/static/chunk-DAfnL0eP.js +0 -1
- package/static/chunk-Dc3mv2RT.js +0 -1
- package/static/chunk-Dc7Nho4-.js +0 -1
- package/static/chunk-Df_jRm7U.js +0 -1
- package/static/chunk-Dl9xoaKd.js +0 -1
- package/static/chunk-DqECIHE5.js +0 -1
- package/static/chunk-Dtfc5XNc.js +0 -1
- package/static/chunk-DxtF2GQ1.js +0 -1
- package/static/chunk-KhdCYqqN.js +0 -1
- package/static/chunk-TkjFi8lV.js +0 -1
- package/static/chunk-UArWmYDU.js +0 -1
- package/static/chunk-WGWZEfc0.js +0 -1
- package/static/chunk-jg6TAN9F.js +0 -1
- package/static/chunk-mb666CWY.js +0 -1
- package/static/chunk-nXCKNQUo.js +0 -1
- package/static/chunk-ndsN8K7Q.js +0 -5
- package/static/chunk-tnTBlRRN.js +0 -1
- package/static/main-RRKPLQCF.js +0 -249
- package/static/styles-6MW3GE4V.css +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knoflows/engine",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.15",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"bin": {
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"test:cursor-agent": "tsx src/providers/agent/cursor-agent-provider.test.ts",
|
|
39
39
|
"test:preview-models": "tsx src/providers/agent/preview-models.test.ts",
|
|
40
40
|
"test:provider-status": "tsx src/providers/provider-status.test.ts",
|
|
41
|
-
"test:runner": "tsx src/git/worktree-paths.test.ts && tsx src/runner/extract.test.ts && tsx src/runner/test/resolve-view-subjects.test.ts && tsx src/runner/test/workflow-runner.agent-interaction.test.ts && tsx src/runner/test/workflow-runner.git-shell-provider.test.ts && tsx src/runner/test/workflow-runner.loop-subworkflow.test.ts && tsx src/runner/test/workflow-runner.batch-aggregate.test.ts && tsx src/runner/test/workflow-runner.agent-output-validation.test.ts && tsx src/runner/test/workflow-runner.extended-action.test.ts && tsx src/runner/test/workflow-runner.registry-dispatch.test.ts && tsx src/runner/test/workflow-runner.retry.test.ts && tsx src/runner/test/workflow-runner.cancel.test.ts && tsx src/runner/test/resolve-context-files.test.ts && tsx src/runner/test/workflow-runner.context-files.test.ts && tsx src/runner/test/workflow-runner.worktrees.test.ts && tsx src/runner/test/workflow-runner.extract.test.ts",
|
|
42
|
-
"test:api": "tsx src/api/test/api-test.ts && tsx src/api/test/boot-empty-secrets.test.ts && tsx src/api/test/providers-status.test.ts && tsx src/api/test/settings.test.ts && tsx src/api/test/preview-models.test.ts && tsx src/api/test/query-templates.test.ts && tsx src/api/test/extended-actions.test.ts && tsx src/api/test/view-binding-shortcuts.test.ts && tsx src/api/test/workflow-library.test.ts && tsx src/api/test/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.batch-aggregate.test.ts && tsx src/runner/test/workflow-runner.agent-output-validation.test.ts && tsx src/runner/test/workflow-runner.comment-review.test.ts && tsx src/runner/test/workflow-runner.extended-action.test.ts && tsx src/runner/test/workflow-runner.registry-dispatch.test.ts && tsx src/runner/test/workflow-runner.retry.test.ts && tsx src/runner/test/workflow-runner.positioned-comments.test.ts && tsx src/runner/test/workflow-runner.cancel.test.ts && tsx src/runner/test/resolve-context-files.test.ts && tsx src/runner/test/workflow-runner.context-files.test.ts && tsx src/runner/test/workflow-runner.worktrees.test.ts && tsx src/runner/test/workflow-runner.extract.test.ts && tsx src/runner/test/agent-concurrency-gate.service.test.ts && tsx src/runner/test/workflow-runner.agent-concurrency.test.ts",
|
|
42
|
+
"test:api": "tsx src/api/test/api-test.ts && tsx src/api/test/boot-empty-secrets.test.ts && tsx src/api/test/providers-status.test.ts && tsx src/api/test/settings.test.ts && tsx src/api/test/preview-models.test.ts && tsx src/api/test/query-templates.test.ts && tsx src/api/test/extended-actions.test.ts && tsx src/api/test/view-binding-shortcuts.test.ts && tsx src/api/test/workflow-library.test.ts && tsx src/api/test/workflow-export-import.test.ts && tsx src/api/test/generate-workflow-instructions.test.ts && tsx src/api/test/context-files.test.ts && tsx src/api/test/filesystem.test.ts && tsx src/api/test/local-repositories.test.ts",
|
|
43
43
|
"test:workflows-ids": "tsx src/api/workflows/assign-missing-ids.test.ts",
|
|
44
44
|
"test:listen-port": "tsx src/listen-port.test.ts",
|
|
45
45
|
"test:spa-fallback": "tsx src/static/spa-fallback.test.ts"
|
|
Binary file
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
"nav.settings": "Settings",
|
|
9
9
|
"shell.jobs": "Jobs",
|
|
10
10
|
"shell.manage": "Manage",
|
|
11
|
+
"shell.theme.toDark": "Switch to dark theme",
|
|
12
|
+
"shell.theme.toLight": "Switch to light theme",
|
|
11
13
|
"manage.tab.workflows": "Workflows",
|
|
12
14
|
"manage.tab.views": "Views & Shortcuts",
|
|
13
15
|
"manage.tab.providers": "Providers",
|
|
@@ -52,11 +54,13 @@
|
|
|
52
54
|
"local-repos.column.name": "Name",
|
|
53
55
|
"local-repos.column.localPath": "Repository path",
|
|
54
56
|
"local-repos.column.worktreeBasePath": "Worktree base",
|
|
57
|
+
"local-repos.column.defaultBranch": "Default branch",
|
|
55
58
|
"local-repos.column.actions": "Actions",
|
|
56
59
|
"local-repos.form.name": "Name",
|
|
57
60
|
"local-repos.form.localPath": "Repository path",
|
|
58
61
|
"local-repos.form.worktreeBasePath": "Worktree base path (optional)",
|
|
59
62
|
"local-repos.form.worktreeBaseHint": "Defaults to a sibling folder next to the repository. Do not nest worktrees inside the repo itself.",
|
|
63
|
+
"local-repos.form.defaultBranch": "Default branch (optional)",
|
|
60
64
|
"local-repos.loadFailed": "Failed to load local repositories",
|
|
61
65
|
"local-repos.saveFailed": "Failed to save local repository",
|
|
62
66
|
"local-repos.deleteFailed": "Failed to delete local repository",
|
|
@@ -119,10 +123,7 @@
|
|
|
119
123
|
"common.cancel": "Cancel",
|
|
120
124
|
"common.loading": "Loading…",
|
|
121
125
|
"common.errorGeneric": "Something went wrong",
|
|
122
|
-
"jobs.title": "Knoflows — Start a Job",
|
|
123
|
-
"jobs.lede": "Pick a workflow that runs one item at a time and start a Job. Watching and resume live on the Job detail page.",
|
|
124
126
|
"jobs.start.heading": "Start a Job",
|
|
125
|
-
"jobs.start.workflow": "Workflow",
|
|
126
127
|
"jobs.start.subjectId": "subjectId",
|
|
127
128
|
"jobs.start.subjectIdPlaceholder": "e.g. T-1",
|
|
128
129
|
"jobs.start.button": "Start",
|
|
@@ -138,10 +139,16 @@
|
|
|
138
139
|
"jobs.status.cancelled": "Cancelled",
|
|
139
140
|
"jobs.resume.heading": "Waiting for human",
|
|
140
141
|
"jobs.resume.noQuestions": "No questions on the waiting event yet.",
|
|
141
|
-
"jobs.resume.
|
|
142
|
+
"jobs.resume.additionalComments": "Additional comments for the agent",
|
|
143
|
+
"jobs.resume.comment": "Comment (optional)",
|
|
144
|
+
"jobs.resume.approve": "Approve",
|
|
145
|
+
"jobs.resume.reject": "Reject",
|
|
142
146
|
"jobs.resume.button": "Resume",
|
|
143
147
|
"jobs.resume.submitting": "Submitting…",
|
|
144
|
-
"jobs.resume.
|
|
148
|
+
"jobs.resume.commentReview.include": "Include",
|
|
149
|
+
"jobs.resume.commentReview.selectAll": "Select all",
|
|
150
|
+
"jobs.resume.commentReview.selectNone": "Select none",
|
|
151
|
+
"jobs.resume.commentReview.empty": "No comment suggestions to review.",
|
|
145
152
|
"jobs.failed.fallback": "Job failed",
|
|
146
153
|
"jobs.errors.loadWorkflows": "Failed to load workflows",
|
|
147
154
|
"jobs.errors.subjectIdRequired": "subjectId is required for this workflow",
|
|
@@ -152,13 +159,17 @@
|
|
|
152
159
|
"jobs.errors.cancelFailed": "Failed to cancel job",
|
|
153
160
|
"jobs.errors.refreshFailed": "Failed to refresh job",
|
|
154
161
|
"jobs.detail.backToStart": "Back to jobs",
|
|
162
|
+
"jobs.detail.copyId": "Copy job id",
|
|
155
163
|
"jobs.detail.loadFailed": "Failed to load job",
|
|
156
164
|
"jobs.detail.workflowLoadFailed": "Failed to load workflow definition for this job",
|
|
157
165
|
"jobs.detail.workflowMissing": "Workflow definition is unavailable; step list cannot be shown.",
|
|
158
166
|
"jobs.detail.queued": "Queued — waiting for the first step to start.",
|
|
167
|
+
"jobs.detail.waitingForAgentSlot": "Waiting for an available agent slot",
|
|
159
168
|
"jobs.detail.jumpToCurrent": "Jump to current step",
|
|
160
169
|
"jobs.detail.retryWorkflow": "Retry entire workflow",
|
|
161
170
|
"jobs.detail.retryStep": "Retry this step",
|
|
171
|
+
"jobs.detail.reviewAndRetry": "Review and retry",
|
|
172
|
+
"jobs.detail.reviewAndRetryHint": "Comments that already posted are unchecked. Rechecking one will post it again.",
|
|
162
173
|
"jobs.detail.retrying": "Retrying…",
|
|
163
174
|
"jobs.detail.cancel": "Cancel",
|
|
164
175
|
"jobs.detail.cancelling": "Cancelling…",
|
|
@@ -185,6 +196,7 @@
|
|
|
185
196
|
"jobs.extract.continue": "Continue",
|
|
186
197
|
"jobs.extract.cancel": "Cancel",
|
|
187
198
|
"jobs.stepStatus.pending": "Pending",
|
|
199
|
+
"jobs.stepStatus.queued": "Queued",
|
|
188
200
|
"jobs.stepStatus.running": "Running",
|
|
189
201
|
"jobs.stepStatus.waiting_for_children": "Waiting for children",
|
|
190
202
|
"jobs.stepStatus.completed": "Completed",
|
|
@@ -202,17 +214,23 @@
|
|
|
202
214
|
"jobs.list.filterByStatus": "Filter by status",
|
|
203
215
|
"jobs.list.filterByWorkflow": "Filter by workflow",
|
|
204
216
|
"jobs.list.showChildJobs": "Show batch/child jobs",
|
|
205
|
-
"jobs.list.startButton": "Start job",
|
|
206
217
|
"jobs.list.empty": "No jobs match these filters.",
|
|
207
218
|
"jobs.list.loadFailed": "Failed to load jobs",
|
|
208
219
|
"jobs.list.filterAll": "All",
|
|
209
220
|
"jobs.list.running": "Currently Running",
|
|
221
|
+
"jobs.list.queued": "Queued",
|
|
210
222
|
"jobs.list.history": "History",
|
|
211
223
|
"jobs.list.runningEmpty": "No jobs are running.",
|
|
224
|
+
"jobs.list.queuedEmpty": "No agent steps are waiting for a slot.",
|
|
212
225
|
"jobs.list.historyEmpty": "No jobs match these filters.",
|
|
226
|
+
"jobs.list.queuedAgent": "Agent instance",
|
|
227
|
+
"jobs.list.queuedWait": "Waiting",
|
|
213
228
|
"workflow-editor.titleNew": "New workflow",
|
|
214
|
-
"workflow-editor.titleEdit": "Edit workflow · {{
|
|
229
|
+
"workflow-editor.titleEdit": "Edit workflow · {{name}}",
|
|
215
230
|
"workflow-editor.backToWorkflows": "Back to workflows",
|
|
231
|
+
"workflow-editor.export": "Export",
|
|
232
|
+
"workflow-editor.start": "Start",
|
|
233
|
+
"workflow-editor.exportFailed": "Failed to export workflow",
|
|
216
234
|
"workflow-editor.loading": "Loading…",
|
|
217
235
|
"workflow-editor.validation": "Validation",
|
|
218
236
|
"workflow-editor.basics": "Basics",
|
|
@@ -263,6 +281,9 @@
|
|
|
263
281
|
"step-list.selectContextFiles": "Select context files",
|
|
264
282
|
"step-list.outputFormat.label": "Output format",
|
|
265
283
|
"step-list.interaction.label": "Interaction",
|
|
284
|
+
"step-list.sourceStepIds.label": "Suggestion sources",
|
|
285
|
+
"step-list.sourceStepIds.hint": "Prior agent steps whose output format is comment suggestions.",
|
|
286
|
+
"step-list.sourceStepIds.empty": "Add an earlier agent step with comment suggestions output first.",
|
|
266
287
|
"step-list.notify": "Notify",
|
|
267
288
|
"step-list.command": "Command",
|
|
268
289
|
"step-list.operation": "Operation",
|
|
@@ -287,6 +308,8 @@
|
|
|
287
308
|
"step-list.availableParameters.noOutput": "No output fields",
|
|
288
309
|
"step-list.availableParameters.providerOpaque": "Result of {{action}} — inspect at runtime",
|
|
289
310
|
"step-list.availableParameters.interactionOpaque": "Shape depends on the questions asked",
|
|
311
|
+
"step-list.availableParameters.arrayOf": "Array of { {{fields}} }",
|
|
312
|
+
"step-list.availableParameters.subjectTypeUnion": "Actual fields depend on which subject type the bound View resolves to.",
|
|
290
313
|
"step-list.availableParameters.subWorkflowArray": "Array of { fanOutIndex, jobId, output }",
|
|
291
314
|
"step-list.availableParameters.noPrevious": "No previous steps",
|
|
292
315
|
"step-list.availableParameters.missingId": "Set an id to copy tokens",
|
|
@@ -305,6 +328,7 @@
|
|
|
305
328
|
"step-list.interaction.questionnaire": "Questionnaire",
|
|
306
329
|
"step-list.interaction.confirmation": "Confirmation",
|
|
307
330
|
"step-list.interaction.conversation": "Conversation",
|
|
331
|
+
"step-list.interaction.comment_review": "Comment review",
|
|
308
332
|
"step-list.notifyMode.inherit": "inherit (undefined)",
|
|
309
333
|
"step-list.notifyMode.on": "on (true)",
|
|
310
334
|
"step-list.notifyMode.off": "off (false)",
|
|
@@ -317,6 +341,8 @@
|
|
|
317
341
|
"step-list.createWorktree.newBranch": "New branch",
|
|
318
342
|
"step-list.createWorktree.existingBranch": "Existing branch",
|
|
319
343
|
"step-list.createWorktree.repoPath": "Repository path",
|
|
344
|
+
"step-list.createWorktree.catalogPlaceholder": "Choose from catalog",
|
|
345
|
+
"step-list.createWorktree.browseManually": "Or browse manually",
|
|
320
346
|
"step-list.createWorktree.baseBranch": "Base branch",
|
|
321
347
|
"step-list.createWorktree.branchName": "Branch name",
|
|
322
348
|
"step-list.createWorktree.branch": "Branch",
|
|
@@ -434,6 +460,8 @@
|
|
|
434
460
|
"settings.model.fetch": "Fetch available models",
|
|
435
461
|
"settings.model.fetchFailed": "Could not fetch models",
|
|
436
462
|
"settings.model.hint": "Leave unset to use the provider's own default. Fetch after entering an API key.",
|
|
463
|
+
"settings.maxConcurrent.label": "Max concurrent steps",
|
|
464
|
+
"settings.maxConcurrent.hint": "How many agent steps this instance may run at once. Other instances are unaffected.",
|
|
437
465
|
"settings.restartRequired.message": "Some changes require restarting Knoflows to take effect",
|
|
438
466
|
"settings.saveSuccess": "Settings saved",
|
|
439
467
|
"settings.saveFailed": "Failed to save settings",
|
|
@@ -450,6 +478,7 @@
|
|
|
450
478
|
"workflows.list.filterBySubjectHandling": "Filter by items",
|
|
451
479
|
"workflows.list.filterAll": "All",
|
|
452
480
|
"workflows.list.edit": "Edit",
|
|
481
|
+
"workflows.list.start": "Start",
|
|
453
482
|
"workflows.list.delete": "Delete",
|
|
454
483
|
"workflows.list.deleteConfirm": "Are you sure you want to delete this workflow?",
|
|
455
484
|
"workflows.list.deleteFailed": "Failed to delete workflow",
|
|
@@ -458,6 +487,18 @@
|
|
|
458
487
|
"workflows.list.column.steps": "Steps",
|
|
459
488
|
"workflows.list.column.actions": "Actions",
|
|
460
489
|
"workflows.list.loadFailed": "Failed to load workflows",
|
|
490
|
+
"workflows.list.export": "Export",
|
|
491
|
+
"workflows.list.import": "Import",
|
|
492
|
+
"workflows.list.importFailed": "Failed to import workflow",
|
|
493
|
+
"workflows.list.importInvalidJson": "This file is not valid JSON",
|
|
494
|
+
"workflows.list.importInvalidSchema": "This file is not a valid workflow definition",
|
|
495
|
+
"workflows.list.downloadInstructions": "Download Agent Instructions",
|
|
496
|
+
"workflows.list.exportFailed": "Failed to export workflow",
|
|
497
|
+
"workflows.list.instructionsFailed": "Failed to download agent instructions",
|
|
498
|
+
"workflows.import.conflictTitle": "Import conflict",
|
|
499
|
+
"workflows.import.conflictBody": "A workflow named '{{name}}' already exists",
|
|
500
|
+
"workflows.import.update": "Update",
|
|
501
|
+
"workflows.import.createNew": "Create New",
|
|
461
502
|
"workflow-library.title": "Workflow library",
|
|
462
503
|
"workflow-library.lede": "Copy an example into your workspace. Once added, it is yours to edit.",
|
|
463
504
|
"workflow-library.source.example": "Example",
|
|
@@ -484,7 +525,7 @@
|
|
|
484
525
|
"views.list.column.query": "Query",
|
|
485
526
|
"views.list.column.actions": "Actions",
|
|
486
527
|
"views.editor.titleNew": "New view",
|
|
487
|
-
"views.editor.titleEdit": "Edit view · {{
|
|
528
|
+
"views.editor.titleEdit": "Edit view · {{name}}",
|
|
488
529
|
"views.editor.backToList": "Back to views",
|
|
489
530
|
"views.editor.name": "Name",
|
|
490
531
|
"views.editor.workflow": "Workflow",
|
|
@@ -541,7 +582,7 @@
|
|
|
541
582
|
"shortcuts.list.runFailed": "Failed to start shortcut",
|
|
542
583
|
"shortcuts.list.deleteFailed": "Failed to delete shortcut",
|
|
543
584
|
"shortcuts.editor.titleNew": "New shortcut",
|
|
544
|
-
"shortcuts.editor.titleEdit": "Edit shortcut · {{
|
|
585
|
+
"shortcuts.editor.titleEdit": "Edit shortcut · {{name}}",
|
|
545
586
|
"shortcuts.editor.backToList": "Back to shortcuts",
|
|
546
587
|
"shortcuts.editor.name": "Name",
|
|
547
588
|
"shortcuts.editor.workflow": "Workflow",
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
"nav.settings": "Ajustes",
|
|
9
9
|
"shell.jobs": "Trabajos",
|
|
10
10
|
"shell.manage": "Administrar",
|
|
11
|
+
"shell.theme.toDark": "Cambiar a tema oscuro",
|
|
12
|
+
"shell.theme.toLight": "Cambiar a tema claro",
|
|
11
13
|
"manage.tab.workflows": "Flujos",
|
|
12
14
|
"manage.tab.views": "Vistas y atajos",
|
|
13
15
|
"manage.tab.providers": "Proveedores",
|
|
@@ -52,11 +54,13 @@
|
|
|
52
54
|
"local-repos.column.name": "Nombre",
|
|
53
55
|
"local-repos.column.localPath": "Ruta del repositorio",
|
|
54
56
|
"local-repos.column.worktreeBasePath": "Base de worktrees",
|
|
57
|
+
"local-repos.column.defaultBranch": "Rama por defecto",
|
|
55
58
|
"local-repos.column.actions": "Acciones",
|
|
56
59
|
"local-repos.form.name": "Nombre",
|
|
57
60
|
"local-repos.form.localPath": "Ruta del repositorio",
|
|
58
61
|
"local-repos.form.worktreeBasePath": "Ruta base de worktrees (opcional)",
|
|
59
62
|
"local-repos.form.worktreeBaseHint": "Por defecto es una carpeta hermana junto al repositorio. No anides worktrees dentro del propio repo.",
|
|
63
|
+
"local-repos.form.defaultBranch": "Rama por defecto (opcional)",
|
|
60
64
|
"local-repos.loadFailed": "No se pudieron cargar los repositorios locales",
|
|
61
65
|
"local-repos.saveFailed": "No se pudo guardar el repositorio local",
|
|
62
66
|
"local-repos.deleteFailed": "No se pudo eliminar el repositorio local",
|
|
@@ -119,10 +123,7 @@
|
|
|
119
123
|
"common.cancel": "Cancelar",
|
|
120
124
|
"common.loading": "Cargando…",
|
|
121
125
|
"common.errorGeneric": "Algo salió mal",
|
|
122
|
-
"jobs.title": "Knoflows — Iniciar un trabajo",
|
|
123
|
-
"jobs.lede": "Elige un flujo que trabaja de uno en uno e inicia un trabajo. La observación y la reanudación viven en la página de detalle del trabajo.",
|
|
124
126
|
"jobs.start.heading": "Iniciar un trabajo",
|
|
125
|
-
"jobs.start.workflow": "Flujo de trabajo",
|
|
126
127
|
"jobs.start.subjectId": "subjectId",
|
|
127
128
|
"jobs.start.subjectIdPlaceholder": "p. ej. T-1",
|
|
128
129
|
"jobs.start.button": "Iniciar",
|
|
@@ -138,10 +139,16 @@
|
|
|
138
139
|
"jobs.status.cancelled": "Cancelado",
|
|
139
140
|
"jobs.resume.heading": "Esperando intervención humana",
|
|
140
141
|
"jobs.resume.noQuestions": "Aún no hay preguntas en el evento de espera.",
|
|
141
|
-
"jobs.resume.
|
|
142
|
+
"jobs.resume.additionalComments": "Comentarios adicionales para el agente",
|
|
143
|
+
"jobs.resume.comment": "Comentario (opcional)",
|
|
144
|
+
"jobs.resume.approve": "Aprobar",
|
|
145
|
+
"jobs.resume.reject": "Rechazar",
|
|
142
146
|
"jobs.resume.button": "Reanudar",
|
|
143
147
|
"jobs.resume.submitting": "Enviando…",
|
|
144
|
-
"jobs.resume.
|
|
148
|
+
"jobs.resume.commentReview.include": "Incluir",
|
|
149
|
+
"jobs.resume.commentReview.selectAll": "Seleccionar todas",
|
|
150
|
+
"jobs.resume.commentReview.selectNone": "Seleccionar ninguna",
|
|
151
|
+
"jobs.resume.commentReview.empty": "No hay sugerencias de comentarios para revisar.",
|
|
145
152
|
"jobs.failed.fallback": "El trabajo falló",
|
|
146
153
|
"jobs.errors.loadWorkflows": "No se pudieron cargar los flujos",
|
|
147
154
|
"jobs.errors.subjectIdRequired": "subjectId es obligatorio para este flujo",
|
|
@@ -152,13 +159,17 @@
|
|
|
152
159
|
"jobs.errors.cancelFailed": "No se pudo cancelar el trabajo",
|
|
153
160
|
"jobs.errors.refreshFailed": "No se pudo actualizar el trabajo",
|
|
154
161
|
"jobs.detail.backToStart": "Volver a trabajos",
|
|
162
|
+
"jobs.detail.copyId": "Copiar id del trabajo",
|
|
155
163
|
"jobs.detail.loadFailed": "No se pudo cargar el trabajo",
|
|
156
164
|
"jobs.detail.workflowLoadFailed": "No se pudo cargar la definición del flujo para este trabajo",
|
|
157
165
|
"jobs.detail.workflowMissing": "La definición del flujo no está disponible; no se puede mostrar la lista de pasos.",
|
|
158
166
|
"jobs.detail.queued": "En cola — esperando que comience el primer paso.",
|
|
167
|
+
"jobs.detail.waitingForAgentSlot": "Esperando un hueco de agente disponible",
|
|
159
168
|
"jobs.detail.jumpToCurrent": "Ir al paso actual",
|
|
160
169
|
"jobs.detail.retryWorkflow": "Reintentar todo el flujo",
|
|
161
170
|
"jobs.detail.retryStep": "Reintentar este paso",
|
|
171
|
+
"jobs.detail.reviewAndRetry": "Revisar y reintentar",
|
|
172
|
+
"jobs.detail.reviewAndRetryHint": "Los comentarios que ya se publicaron aparecen desmarcados. Volver a marcar uno lo publicará de nuevo.",
|
|
162
173
|
"jobs.detail.retrying": "Reintentando…",
|
|
163
174
|
"jobs.detail.cancel": "Cancelar",
|
|
164
175
|
"jobs.detail.cancelling": "Cancelando…",
|
|
@@ -185,6 +196,7 @@
|
|
|
185
196
|
"jobs.extract.continue": "Continuar",
|
|
186
197
|
"jobs.extract.cancel": "Cancelar",
|
|
187
198
|
"jobs.stepStatus.pending": "Pendiente",
|
|
199
|
+
"jobs.stepStatus.queued": "En cola",
|
|
188
200
|
"jobs.stepStatus.running": "En ejecución",
|
|
189
201
|
"jobs.stepStatus.waiting_for_children": "Esperando hijos",
|
|
190
202
|
"jobs.stepStatus.completed": "Completado",
|
|
@@ -202,18 +214,24 @@
|
|
|
202
214
|
"jobs.list.filterByStatus": "Filtrar por estado",
|
|
203
215
|
"jobs.list.filterByWorkflow": "Filtrar por flujo",
|
|
204
216
|
"jobs.list.showChildJobs": "Mostrar trabajos de lote e hijos",
|
|
205
|
-
"jobs.list.startButton": "Iniciar trabajo",
|
|
206
217
|
"jobs.list.empty": "Ningún trabajo coincide con estos filtros.",
|
|
207
218
|
"jobs.list.loadFailed": "No se pudieron cargar los trabajos",
|
|
208
219
|
"jobs.list.filterAll": "Todos",
|
|
209
220
|
"jobs.list.running": "En ejecución",
|
|
221
|
+
"jobs.list.queued": "En cola",
|
|
210
222
|
"jobs.list.history": "Historial",
|
|
211
223
|
"jobs.list.runningEmpty": "No hay trabajos en ejecución.",
|
|
224
|
+
"jobs.list.queuedEmpty": "Ningún paso de agente está esperando un hueco.",
|
|
212
225
|
"jobs.list.historyEmpty": "Ningún trabajo coincide con estos filtros.",
|
|
226
|
+
"jobs.list.queuedAgent": "Instancia de agente",
|
|
227
|
+
"jobs.list.queuedWait": "Espera",
|
|
213
228
|
"workflow-editor.loading": "Cargando…",
|
|
214
229
|
"workflow-editor.titleNew": "Nuevo flujo",
|
|
215
|
-
"workflow-editor.titleEdit": "Editar flujo · {{
|
|
230
|
+
"workflow-editor.titleEdit": "Editar flujo · {{name}}",
|
|
216
231
|
"workflow-editor.backToWorkflows": "Volver a flujos",
|
|
232
|
+
"workflow-editor.export": "Exportar",
|
|
233
|
+
"workflow-editor.start": "Iniciar",
|
|
234
|
+
"workflow-editor.exportFailed": "No se pudo exportar el flujo",
|
|
217
235
|
"workflow-editor.validation": "Validación",
|
|
218
236
|
"workflow-editor.basics": "Básicos",
|
|
219
237
|
"workflow-editor.name": "name",
|
|
@@ -263,6 +281,9 @@
|
|
|
263
281
|
"step-list.selectContextFiles": "Seleccionar archivos de contexto",
|
|
264
282
|
"step-list.outputFormat.label": "Formato de salida",
|
|
265
283
|
"step-list.interaction.label": "Interacción",
|
|
284
|
+
"step-list.sourceStepIds.label": "Fuentes de sugerencias",
|
|
285
|
+
"step-list.sourceStepIds.hint": "Pasos de agente anteriores cuyo formato de salida es sugerencias de comentarios.",
|
|
286
|
+
"step-list.sourceStepIds.empty": "Añade antes un paso de agente con formato de sugerencias de comentarios.",
|
|
266
287
|
"step-list.notify": "Notificar",
|
|
267
288
|
"step-list.command": "Comando",
|
|
268
289
|
"step-list.operation": "Operación",
|
|
@@ -287,6 +308,8 @@
|
|
|
287
308
|
"step-list.availableParameters.noOutput": "Sin campos de salida",
|
|
288
309
|
"step-list.availableParameters.providerOpaque": "Resultado de {{action}} — inspeccionar en tiempo de ejecución",
|
|
289
310
|
"step-list.availableParameters.interactionOpaque": "La forma depende de las preguntas hechas",
|
|
311
|
+
"step-list.availableParameters.arrayOf": "Array de { {{fields}} }",
|
|
312
|
+
"step-list.availableParameters.subjectTypeUnion": "Los campos reales dependen del tipo de sujeto que resuelva la vista vinculada.",
|
|
290
313
|
"step-list.availableParameters.subWorkflowArray": "Array de { fanOutIndex, jobId, output }",
|
|
291
314
|
"step-list.availableParameters.noPrevious": "Ningún paso anterior",
|
|
292
315
|
"step-list.availableParameters.missingId": "Asigna un id para copiar tokens",
|
|
@@ -305,6 +328,7 @@
|
|
|
305
328
|
"step-list.interaction.questionnaire": "questionnaire",
|
|
306
329
|
"step-list.interaction.confirmation": "confirmation",
|
|
307
330
|
"step-list.interaction.conversation": "conversation",
|
|
331
|
+
"step-list.interaction.comment_review": "comment_review",
|
|
308
332
|
"step-list.notifyMode.inherit": "inherit (undefined)",
|
|
309
333
|
"step-list.notifyMode.on": "on (true)",
|
|
310
334
|
"step-list.notifyMode.off": "off (false)",
|
|
@@ -317,6 +341,8 @@
|
|
|
317
341
|
"step-list.createWorktree.newBranch": "Rama nueva",
|
|
318
342
|
"step-list.createWorktree.existingBranch": "Rama existente",
|
|
319
343
|
"step-list.createWorktree.repoPath": "Ruta del repositorio",
|
|
344
|
+
"step-list.createWorktree.catalogPlaceholder": "Elegir del catálogo",
|
|
345
|
+
"step-list.createWorktree.browseManually": "O examinar manualmente",
|
|
320
346
|
"step-list.createWorktree.baseBranch": "Rama base",
|
|
321
347
|
"step-list.createWorktree.branchName": "Nombre de rama",
|
|
322
348
|
"step-list.createWorktree.branch": "Rama",
|
|
@@ -434,6 +460,8 @@
|
|
|
434
460
|
"settings.model.fetch": "Obtener modelos disponibles",
|
|
435
461
|
"settings.model.fetchFailed": "No se pudieron obtener los modelos",
|
|
436
462
|
"settings.model.hint": "Déjalo vacío para usar el predeterminado del proveedor. Obtén la lista después de introducir una clave de API.",
|
|
463
|
+
"settings.maxConcurrent.label": "Pasos simultáneos máximos",
|
|
464
|
+
"settings.maxConcurrent.hint": "Cuántos pasos de agente puede ejecutar esta instancia a la vez. Las demás instancias no se ven afectadas.",
|
|
437
465
|
"settings.restartRequired.message": "Algunos cambios requieren reiniciar Knoflows para aplicarse",
|
|
438
466
|
"settings.saveSuccess": "Ajustes guardados",
|
|
439
467
|
"settings.saveFailed": "No se pudieron guardar los ajustes",
|
|
@@ -450,6 +478,7 @@
|
|
|
450
478
|
"workflows.list.filterBySubjectHandling": "Filtrar por elementos",
|
|
451
479
|
"workflows.list.filterAll": "Todos",
|
|
452
480
|
"workflows.list.edit": "Editar",
|
|
481
|
+
"workflows.list.start": "Iniciar",
|
|
453
482
|
"workflows.list.delete": "Eliminar",
|
|
454
483
|
"workflows.list.deleteConfirm": "¿Seguro que quieres eliminar este flujo?",
|
|
455
484
|
"workflows.list.deleteFailed": "No se pudo eliminar el flujo",
|
|
@@ -458,6 +487,18 @@
|
|
|
458
487
|
"workflows.list.column.steps": "Pasos",
|
|
459
488
|
"workflows.list.column.actions": "Acciones",
|
|
460
489
|
"workflows.list.loadFailed": "No se pudieron cargar los flujos",
|
|
490
|
+
"workflows.list.export": "Exportar",
|
|
491
|
+
"workflows.list.import": "Importar",
|
|
492
|
+
"workflows.list.importFailed": "No se pudo importar el flujo",
|
|
493
|
+
"workflows.list.importInvalidJson": "Este archivo no es JSON válido",
|
|
494
|
+
"workflows.list.importInvalidSchema": "Este archivo no es una definición de flujo válida",
|
|
495
|
+
"workflows.list.downloadInstructions": "Descargar instrucciones para el agente",
|
|
496
|
+
"workflows.list.exportFailed": "No se pudo exportar el flujo",
|
|
497
|
+
"workflows.list.instructionsFailed": "No se pudieron descargar las instrucciones",
|
|
498
|
+
"workflows.import.conflictTitle": "Conflicto al importar",
|
|
499
|
+
"workflows.import.conflictBody": "Ya existe un flujo llamado '{{name}}'",
|
|
500
|
+
"workflows.import.update": "Actualizar",
|
|
501
|
+
"workflows.import.createNew": "Crear nuevo",
|
|
461
502
|
"workflow-library.title": "Biblioteca de flujos",
|
|
462
503
|
"workflow-library.lede": "Copia un ejemplo a tu espacio de trabajo. Una vez añadido, es tuyo para editarlo.",
|
|
463
504
|
"workflow-library.source.example": "Ejemplo",
|
|
@@ -484,7 +525,7 @@
|
|
|
484
525
|
"views.list.column.query": "Consulta",
|
|
485
526
|
"views.list.column.actions": "Acciones",
|
|
486
527
|
"views.editor.titleNew": "Nueva vista",
|
|
487
|
-
"views.editor.titleEdit": "Editar vista · {{
|
|
528
|
+
"views.editor.titleEdit": "Editar vista · {{name}}",
|
|
488
529
|
"views.editor.backToList": "Volver a vistas",
|
|
489
530
|
"views.editor.name": "Nombre",
|
|
490
531
|
"views.editor.workflow": "Flujo",
|
|
@@ -541,7 +582,7 @@
|
|
|
541
582
|
"shortcuts.list.runFailed": "No se pudo iniciar el atajo",
|
|
542
583
|
"shortcuts.list.deleteFailed": "No se pudo eliminar el atajo",
|
|
543
584
|
"shortcuts.editor.titleNew": "Nuevo atajo",
|
|
544
|
-
"shortcuts.editor.titleEdit": "Editar atajo · {{
|
|
585
|
+
"shortcuts.editor.titleEdit": "Editar atajo · {{name}}",
|
|
545
586
|
"shortcuts.editor.backToList": "Volver a atajos",
|
|
546
587
|
"shortcuts.editor.name": "Nombre",
|
|
547
588
|
"shortcuts.editor.workflow": "Flujo",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {f}from'./chunk-J9qS04nF.js';import {w,g}from'./chunk-D_DUAV49.js';import'./chunk-DMAf3Qir.js';import {W,I}from'./chunk-C4Ee3umI.js';import {L as Lt,u as ut,p as pc,a as as,d as dc,K as Kl,c as cc,J as Ji,l as ls}from'./chunk-yxqIQom4.js';import'./chunk-DphMF2VB.js';import {Q as QE,p as lh,C,$,V as Ve,b as at,U as p,q as qo,H as Hw,u as ue$1,ac as Ng,c as bi,d as $8,Y as M5,v as v3,Z as pf,a0 as bd,a1 as sp,a2 as fp,K as Kt,j as _i,k as vw,R as Rw,l as Kc,m as gh,n as bD,w as gI,P as Ph,O as Ow,x as ch,z as nl,B as _D,E as VD,N as ND,D as xD,L as LD,G as ah,I as xw,J as Pu,M as Lu}from'./main-2ZW45HAE.js';var de=t=>["/jobs",t],pe=(t,d)=>d.id;function ce(t,d){t&1&&(_i(0,"p",3),vw(1),Rw(2,"transloco"),Kc()),t&2&&(gI(),Ph(Ow(2,1,"common.loading")));}function me(t,d){if(t&1&&(_i(0,"p",4),vw(1),Kc()),t&2){let e=VD();gI(),Ph(e.loadError());}}function he(t,d){if(t&1&&(_i(0,"p",5),vw(1),Kc()),t&2){let e=VD(2);gI(),Ph(e.actionError());}}function ue(t,d){t&1&&(_i(0,"p",6),vw(1),Rw(2,"transloco"),Kc()),t&2&&(gI(),Ph(Ow(2,1,"worktrees.activeWarning")));}function fe(t,d){t&1&&(_i(0,"p",7),vw(1),Rw(2,"transloco"),Kc()),t&2&&(gI(),Ph(Ow(2,1,"worktrees.emptyState")));}function ge(t,d){if(t&1){let e=LD();_i(0,"tr")(1,"td")(2,"label",9),gh("nzCheckedChange",function(l){let b=Pu(e).$implicit,se=VD(3);return Lu(se.toggleSelected(b.id,l))}),Kc()(),_i(3,"td")(4,"a",10),vw(5),Kc()(),_i(6,"td"),vw(7),Kc(),_i(8,"td"),vw(9),Kc(),_i(10,"td",11),vw(11),Kc(),_i(12,"td")(13,"nz-tag",12),vw(14),Rw(15,"transloco"),Kc()(),_i(16,"td"),vw(17),Kc()();}if(t&2){let e=d.$implicit,i=VD(3);ah("data-testid","worktree-row-"+e.id),gI(2),ch("nzChecked",i.isSelected(e.id)),ah("data-testid","worktree-select-"+e.id),gI(2),ch("routerLink",xw(15,de,e.id)),ah("data-testid","worktree-job-"+e.id),gI(),Ph(e.id),gI(2),Ph(i.repoName(e)),gI(2),Ph(e.branch??"\u2014"),gI(2),Ph(e.worktreePath),gI(2),ch("ngClass",i.jobStatusTagClass(e.status,i.theme.theme())),ah("data-testid","worktree-status-"+e.id),gI(),Ph(Ow(15,13,i.statusKey(e.status))),gI(3),Ph(e.createdAt);}}function Ce(t,d){if(t&1&&(_i(0,"nz-table",8)(1,"thead")(2,"tr"),lh(3,"th"),_i(4,"th"),vw(5),Rw(6,"transloco"),Kc(),_i(7,"th"),vw(8),Rw(9,"transloco"),Kc(),_i(10,"th"),vw(11),Rw(12,"transloco"),Kc(),_i(13,"th"),vw(14),Rw(15,"transloco"),Kc(),_i(16,"th"),vw(17),Rw(18,"transloco"),Kc(),_i(19,"th"),vw(20),Rw(21,"transloco"),Kc()()(),_i(22,"tbody"),ND(23,ge,18,17,"tr",null,pe),Kc()()),t&2){let e=VD(2);ch("nzData",e.jobs())("nzShowPagination",false),gI(5),Ph(Ow(6,8,"worktrees.column.job")),gI(3),Ph(Ow(9,10,"worktrees.column.repository")),gI(3),Ph(Ow(12,12,"worktrees.column.branch")),gI(3),Ph(Ow(15,14,"worktrees.column.path")),gI(3),Ph(Ow(18,16,"worktrees.column.status")),gI(3),Ph(Ow(21,18,"worktrees.column.created")),gI(3),xD(e.jobs());}}function xe(t,d){if(t&1&&(bD(0,he,2,1,"p",5),bD(1,ue,3,3,"p",6),bD(2,fe,3,3,"p",7)(3,Ce,25,20,"nz-table",8)),t&2){let e=VD();_D(e.actionError()?0:-1),gI(),_D(e.selectedHasActive()?1:-1),gI(),_D(e.jobs().length===0?2:3);}}var ae=(()=>{class t{constructor(){this.jobsApi=C($),this.reposApi=C(f),this.transloco=C(Ve),this.destroyRef=C(at),this.theme=C(p),this.jobStatusTagClass=w,this.jobs=qo([]),this.repos=qo([]),this.selectedIds=qo([]),this.loading=qo(true),this.loadError=qo(null),this.actionError=qo(null),this.deleting=qo(false),this.selectedHasActive=Hw(()=>this.selectedJobs().some(e=>!g(e.status))),this.selectedJobs=Hw(()=>{let e=new Set(this.selectedIds());return this.jobs().filter(i=>e.has(i.id))}),this.reload();}statusKey(e){return `jobs.status.${e}`}repoName(e){return this.repos().find(l=>be(e,l))?.name??"\u2014"}isSelected(e){return this.selectedIds().includes(e)}toggleSelected(e,i){this.selectedIds.update(l=>i?l.includes(e)?l:[...l,e]:l.filter(b=>b!==e)),this.actionError.set(null);}deleteSelected(){if(!(this.deleting()||this.selectedIds().length===0)){if(this.selectedHasActive()){this.actionError.set(this.transloco.translate("worktrees.activeWarning"));return}this.deleting.set(true),this.actionError.set(null),this.jobsApi.deleteWorktrees(this.selectedIds()).pipe(ue$1(this.destroyRef)).subscribe({next:()=>{this.deleting.set(false),this.selectedIds.set([]),this.reload();},error:e=>{this.deleting.set(false),this.actionError.set(this.errorMessage(e,this.transloco.translate("worktrees.deleteFailed")));}});}}reload(){this.loading.set(true),this.loadError.set(null),Ng({jobs:this.jobsApi.list({liveWorktree:true}),repos:this.reposApi.list()}).pipe(ue$1(this.destroyRef)).subscribe({next:({jobs:e,repos:i})=>{this.jobs.set(e),this.repos.set(i),this.loading.set(false);},error:e=>{this.loading.set(false),this.loadError.set(this.errorMessage(e,this.transloco.translate("worktrees.loadFailed")));}});}errorMessage(e,i){return e instanceof bi||e instanceof Error?e.message:i}static{this.\u0275fac=function(i){return new(i||t)};}static{this.\u0275cmp=QE({type:t,selectors:[["app-worktree-list"]],decls:11,vars:8,consts:[["data-testid","worktrees-manage",1,"list-page"],[1,"header"],["nz-button","","nzDanger","","type","button","data-testid","delete-worktrees",3,"click","disabled"],["data-testid","loading"],["data-testid","load-error",1,"error"],["data-testid","action-error",1,"error"],["data-testid","active-warning",1,"warn"],["data-testid","empty-state",1,"empty"],["data-testid","worktree-table",3,"nzData","nzShowPagination"],["nz-checkbox","",3,"nzCheckedChange","nzChecked"],[3,"routerLink"],[1,"path-cell"],[3,"ngClass"]],template:function(i,l){i&1&&(_i(0,"div",0)(1,"header",1)(2,"h1"),vw(3),Rw(4,"transloco"),Kc(),_i(5,"button",2),gh("click",function(){return l.deleteSelected()}),vw(6),Rw(7,"transloco"),Kc()(),bD(8,ce,3,3,"p",3)(9,me,2,1,"p",4)(10,xe,4,3),Kc()),i&2&&(gI(3),Ph(Ow(4,4,"worktrees.title")),gI(2),ch("disabled",l.deleting()||l.selectedIds().length===0),gI(),nl(" ",Ow(7,6,"worktrees.deleteSelected")," "),gI(2),_D(l.loading()?8:l.loadError()?9:10));},dependencies:[$8,M5,v3,pf,bd,sp,fp,Lt,ut,pc,as,dc,Kl,cc,Ji,ls,W,I,Kt],styles:[".list-page[_ngcontent-%COMP%]{padding:1.25rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1rem}.header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.empty[_ngcontent-%COMP%]{text-align:center;padding:2.5rem 1rem;border:1px dashed #d6d3d1;background:#fff9}.error[_ngcontent-%COMP%]{color:#9f1239}.warn[_ngcontent-%COMP%]{color:#92400e}.path-cell[_ngcontent-%COMP%]{overflow-wrap:anywhere;word-break:break-word}"]});}}return t})();function be(t,d){let e=(t.worktreePath??"").replaceAll("\\","/"),i=d.localPath.replaceAll("\\","/").replace(/\/+$/,""),l=(d.worktreeBasePath??_e(i)).replaceAll("\\","/");return e.startsWith(l)||e.startsWith(i)}function _e(t){let d=t.split("/"),e=d.pop()??"repo";return `${d.join("/")}/${e}-worktrees`}var Ue=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)};}static{this.\u0275cmp=QE({type:t,selectors:[["app-worktrees-manage"]],decls:1,vars:0,template:function(i,l){i&1&&lh(0,"app-worktree-list");},dependencies:[ae],encapsulation:2});}}return t})();export{Ue as WorktreesManageComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {Q as QE,K as Kt,
|
|
1
|
+
import {Q as QE,K as Kt,a$ as Jc,k as vw,R as Rw,b0 as Xc,w as gI,P as Ph,O as Ow}from'./main-2ZW45HAE.js';var x=(()=>{class e{static{this.\u0275fac=function(t){return new(t||e)};}static{this.\u0275cmp=QE({type:e,selectors:[["app-preferences-manage"]],decls:9,vars:6,consts:[["data-testid","preferences-manage",1,"list-page"],[1,"header"],[1,"lede"]],template:function(t,l){t&1&&(Jc(0,"main",0)(1,"header",1)(2,"div")(3,"h1"),vw(4),Rw(5,"transloco"),Xc(),Jc(6,"p",2),vw(7),Rw(8,"transloco"),Xc()()()()),t&2&&(gI(4),Ph(Ow(5,2,"manage.preferences.title")),gI(3),Ph(Ow(8,4,"manage.preferences.body")));},dependencies:[Kt],styles:[".list-page[_ngcontent-%COMP%]{padding:1.25rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1rem}.lede[_ngcontent-%COMP%]{margin:.25rem 0 0;color:#57534e}"]});}}return e})();export{x as PreferencesManageComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {aA as YE,aB as uu,aC as pT,aI as hT,a5 as $0,aQ as Z0,H as Hw,s,r as r$1,bK as Le$1,u as ue,bE as XE,bU as eh,a8 as Mh,q as qo,bV as re,C,bW as Uo,bX as Q0,bY as em,bZ as on,b_ as ql,Q as QE,b$ as vo,c0 as Wt,c1 as _o,c2 as Gl,c3 as zh,c4 as Fh,bR as Mn,aN as st,aO as Ee,a3 as Th,a4 as xh,Z as pf,a0 as bd,a1 as sp,a2 as fp,c5 as $b,c6 as Zb,aY as nh,m as gh,x as ch,aU as Ih,aE as _r,aV as qD,aW as WD,aX as Yl,c7 as oc,bL as Bl,c8 as Sy,L as LD,j as _i,c9 as oi,ca as ri,n as bD,l as Kc,cb as Bh,R as Rw,k as vw,E as VD,bB as sw,bp as cw,w as gI,B as _D,G as ah,O as Ow,z as nl,cc as ji,bJ as XI,aD as E3,b as at,cd as Wm,ce as S2,cf as Kg,cg as Yg,ch as kg,ci as kr,cj as xy,aP as ly,aJ as Oe,aG as z0,ck as Sr,cl as Cr,cm as me,cn as Rg,co as yo,cp as _n$1,bH as Er,b9 as Nr,p as lh,aZ as el,a_ as tl,cq as jr,P as Ph,bl as Lw,J as Pu,M as Lu}from'./main-2ZW45HAE.js';var lt=["overlay"];function ct(i,m){if(i&1&&(el(0),vw(1),tl()),i&2){let e=VD(2);gI(),Ph(e.nzTitle);}}function pt(i,m){if(i&1){let e=LD();_i(0,"div",2),oi(function(){Pu(e);let n=VD();return Lu(n.zoomAnimationLeave())}),ri(function(){Pu(e);let n=VD();return Lu(n.zoomAnimationEnter())}),lh(1,"div",3),_i(2,"div",4)(3,"div",5),nh(4,ct,2,1,"ng-container",6),Kc()()();}if(i&2){let e=VD();sw(e.nzOverlayStyle),cw(e._classMap),Mh("ant-tooltip-rtl",e.dir()==="rtl"),ch("nzNoAnimation",!!e.noAnimation?.nzNoAnimation?.()),gI(),sw(e._arrowStyleMap),gI(2),sw(e._contentStyleMap),gI(),ch("nzStringTemplateOutlet",e.nzTitle)("nzStringTemplateOutletContext",e.nzTitleContext);}}var tt=(()=>{class i{componentType;elementRef=C(_r);hostView=C(ji);renderer=C(XI);noAnimation=C(Mn,{host:true,optional:true});nzConfigService=C(E3);destroyRef=C(at);platformId=C(Wm);config;visibleChange=new Le$1;get _title(){return this.title||this.directiveTitle||null}get _content(){return this.content||this.directiveContent||null}get _trigger(){return typeof this.trigger<"u"?this.trigger:"hover"}get _placement(){let e=this.placement;return Array.isArray(e)&&e.length>0?e:typeof e=="string"&&e?[e]:["top"]}get _visible(){return (typeof this.visible<"u"?this.visible:this.internalVisible)||false}get _mouseEnterDelay(){return this.mouseEnterDelay||.15}get _mouseLeaveDelay(){return this.mouseLeaveDelay||.1}get _overlayClassName(){return this.overlayClassName||null}get _overlayStyle(){return this.overlayStyle||null}get _overlayClickable(){return this.overlayClickable??true}internalVisible=false;getProxyPropertyMap(){return {noAnimation:["noAnimation",()=>!!this.noAnimation]}}component;destroy$=new re;triggerDisposables=[];delayTimer;constructor(e){this.componentType=e,this.destroyRef.onDestroy(()=>{this.clearTogglingTimer(),this.removeTriggerListeners();});}ngAfterViewInit(){S2(this.platformId)&&(this.createComponent(),this.registerTriggers());}ngOnChanges(e){let{trigger:t}=e;t&&!t.isFirstChange()&&this.registerTriggers(),this.component&&this.updatePropertiesByChanges(e);}show(){this.component?.show();}hide(){this.component?.hide();}updatePosition(){this.component&&this.component.updatePosition();}createComponent(){let e=this.hostView.createComponent(this.componentType);this.component=e.instance,this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),e.location.nativeElement),this.component.setOverlayOrigin(this.origin||this.elementRef),this.initProperties();let t=this.component.nzVisibleChange.pipe(Kg());t.pipe(ue(this.destroyRef)).subscribe(n=>{this.internalVisible=n,this.visibleChange.emit(n);}),t.pipe(on(Boolean),Yg(0,kg),on(()=>!!this.component?.overlay?.overlayRef),ue(this.destroyRef)).subscribe(()=>{this.component?.updatePosition();});}registerTriggers(){let e=this.elementRef.nativeElement,t=this.trigger;if(this.removeTriggerListeners(),t==="hover"){let n;this.triggerDisposables.push(this.renderer.listen(e,"mouseenter",()=>{this.delayEnterLeave(true,true,this._mouseEnterDelay);})),this.triggerDisposables.push(this.renderer.listen(e,"mouseleave",()=>{this.delayEnterLeave(true,false,this._mouseLeaveDelay),this.component?.overlay.overlayRef&&!n&&(n=this.component.overlay.overlayRef.overlayElement,this.triggerDisposables.push(this.renderer.listen(n,"mouseenter",()=>{this.delayEnterLeave(false,true,this._mouseEnterDelay);})),this.triggerDisposables.push(this.renderer.listen(n,"mouseleave",()=>{this.delayEnterLeave(false,false,this._mouseLeaveDelay);})));}));}else t==="focus"?(this.triggerDisposables.push(this.renderer.listen(e,"focusin",()=>this.show())),this.triggerDisposables.push(this.renderer.listen(e,"focusout",()=>this.hide()))):t==="click"&&this.triggerDisposables.push(this.renderer.listen(e,"click",n=>{n.preventDefault(),this.show();}));}updatePropertiesByChanges(e){this.updatePropertiesByKeys(Object.keys(e));}updatePropertiesByKeys(e){let t=r$1({title:["nzTitle",()=>this._title],directiveTitle:["nzTitle",()=>this._title],content:["nzContent",()=>this._content],directiveContent:["nzContent",()=>this._content],trigger:["nzTrigger",()=>this._trigger],placement:["nzPlacement",()=>this._placement],visible:["nzVisible",()=>this._visible],mouseEnterDelay:["nzMouseEnterDelay",()=>this._mouseEnterDelay],mouseLeaveDelay:["nzMouseLeaveDelay",()=>this._mouseLeaveDelay],overlayClassName:["nzOverlayClassName",()=>this._overlayClassName],overlayStyle:["nzOverlayStyle",()=>this._overlayStyle],overlayClickable:["nzOverlayClickable",()=>this._overlayClickable],arrowPointAtCenter:["nzArrowPointAtCenter",()=>this.arrowPointAtCenter]},this.getProxyPropertyMap());(e||Object.keys(t).filter(n=>!n.startsWith("directive"))).forEach(n=>{if(t[n]){let[o,c]=t[n];this.updateComponentValue(o,c());}}),this.component?.updateByDirective();}initProperties(){this.updatePropertiesByKeys();}updateComponentValue(e,t){typeof t<"u"&&(this.component[e]=t);}delayEnterLeave(e,t,n=-1){this.delayTimer?this.clearTogglingTimer():n>0?this.delayTimer=setTimeout(()=>{this.delayTimer=void 0,t?this.show():this.hide();},n*1e3):t&&e?this.show():this.hide();}removeTriggerListeners(){this.triggerDisposables.forEach(e=>e()),this.triggerDisposables.length=0;}clearTogglingTimer(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=void 0);}static \u0275fac=function(t){return new(t||i)(kr(xy))};static \u0275dir=XE({type:i,features:[ly]})}return i})(),mt=(()=>{class i{noAnimation=C(Mn,{host:true,optional:true});dir=C(Oe).valueSignal;cdr=C(z0);elementRef=C(_r);destroyRef=C(at);overlay;nzTitle=null;nzContent=null;nzArrowPointAtCenter=false;nzOverlayClassName;nzOverlayStyle={};nzOverlayClickable=true;nzBackdrop=false;nzMouseEnterDelay;nzMouseLeaveDelay;nzVisibleChange=new re;set nzVisible(e){let t=jr(e);this._visible!==t&&(this._visible=t,this.nzVisibleChange.next(t));}get nzVisible(){return this._visible}_visible=false;set nzTrigger(e){this._trigger=e;}get nzTrigger(){return this._trigger}_trigger="hover";set nzPlacement(e){let t=e.map(n=>Sr(me[n],Cr[n]));this._positions=[...t,...Rg];}preferredPlacement="top";origin;_classMap={};_prefix="ant-tooltip";_positions=[...Rg];constructor(){this.destroyRef.onDestroy(()=>{this.nzVisibleChange.complete();});}show(){this.nzVisible||(this.isEmpty()||(this.nzVisible=true,this.nzVisibleChange.next(true),this.cdr.detectChanges()),this.origin&&this.overlay&&this.overlay.overlayRef&&this.overlay.overlayRef.getDirection()==="rtl"&&this.overlay.overlayRef.setDirection("ltr"));}hide(){this.nzVisible&&(this.nzVisible=false,this.nzVisibleChange.next(false),this.cdr.detectChanges());}updateByDirective(){this.updateStyles(),this.cdr.detectChanges(),Promise.resolve().then(()=>{this.updatePosition(),this.updateVisibilityByTitle();});}updatePosition(){this.origin&&this.overlay&&this.overlay.overlayRef&&this.overlay.overlayRef.updatePosition();}onPositionChange(e){this.preferredPlacement=yo(e),this.updateStyles(),this.cdr.detectChanges();}setOverlayOrigin(e){this.origin=e,this.cdr.markForCheck();}onClickOutside(e){if(!this.nzOverlayClickable)return;let t=_n$1(e);!this.origin.nativeElement.contains(t)&&this.nzTrigger!==null&&this.hide();}updateVisibilityByTitle(){this.isEmpty()&&this.hide();}updateStyles(){this._classMap=s(r$1({},this.transformClassListToMap(this.nzOverlayClassName)),{[`${this._prefix}-placement-${this.preferredPlacement}`]:true});}transformClassListToMap(e){let t={};return (e!==null?e.split(/\s+/):[]).forEach(o=>t[o]=true),t}static \u0275fac=function(t){return new(t||i)};static \u0275dir=XE({type:i,viewQuery:function(t,n){if(t&1&&Ih(lt,5),t&2){let o;qD(o=WD())&&(n.overlay=o.first);}}})}return i})();function ut(i){return i instanceof Er?false:i===""||!Nr(i)}var nt=(()=>{class i extends mt{_animationPrefix="ant-zoom-big-fast";nzTitle=null;nzTitleContext=null;nzColor;_arrowStyleMap={};_contentStyleMap={};zoomAnimationEnter=oc(()=>`${this._animationPrefix}-enter ${this._animationPrefix}-enter-active`);zoomAnimationLeave=oc(()=>`${this._animationPrefix}-leave ${this._animationPrefix}-leave-active`);isEmpty(){return ut(this.nzTitle)}updateStyles(){let e=this.nzColor&&Bl(this.nzColor);this._classMap=s(r$1({},this.transformClassListToMap(this.nzOverlayClassName)),{[`${this._prefix}-placement-${this.preferredPlacement}`]:true,[`${this._prefix}-${this.nzColor}`]:e}),this._contentStyleMap={backgroundColor:this.nzColor&&!e?this.nzColor:null},this._arrowStyleMap={"--antd-arrow-background-color":this.nzColor&&!e?this.nzColor:null};}static \u0275fac=(()=>{let e;return function(n){return (e||(e=Sy(i)))(n||i)}})();static \u0275cmp=QE({type:i,selectors:[["nz-tooltip"]],exportAs:["nzTooltipComponent"],features:[eh],decls:2,vars:4,consts:[["overlay","cdkConnectedOverlay"],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","nzArrowPointAtCenter"],[1,"ant-tooltip",3,"nzNoAnimation"],[1,"ant-tooltip-arrow"],[1,"ant-tooltip-content"],[1,"ant-tooltip-inner"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"]],template:function(t,n){t&1&&(nh(0,pt,5,13,"ng-template",1,0,Lw),gh("overlayOutsideClick",function(c){return n.onClickOutside(c)})("detach",function(){return n.hide()})("positionChange",function(c){return n.onPositionChange(c)})),t&2&&ch("cdkConnectedOverlayOrigin",n.origin)("cdkConnectedOverlayOpen",n._visible)("cdkConnectedOverlayPositions",n._positions)("nzArrowPointAtCenter",n.nzArrowPointAtCenter);},dependencies:[vo,Wt,Mn,st,Ee,_o,Gl],encapsulation:2})}return i})();var dt=["okBtn"],ft=["cancelBtn"];function zt(i,m){i&1&&lh(0,"div",5);}function ht(i,m){if(i&1&&(el(0),lh(1,"nz-icon",17),tl()),i&2){let e=m.$implicit;gI(),ch("nzType",e||"exclamation-circle");}}function vt(i,m){if(i&1&&(_i(0,"span",10),nh(1,ht,2,1,"ng-container",16),Kc()),i&2){let e=VD(2);gI(),ch("nzStringTemplateOutlet",e.nzIcon);}}function yt(i,m){if(i&1&&(el(0),vw(1),tl()),i&2){let e=VD(2);gI(),nl(" ",e.nzTitle," ");}}function gt(i,m){if(i&1){let e=LD();_i(0,"div",4),oi(function(){Pu(e);let n=VD();return Lu(n.zoomAnimationLeave())}),ri(function(){Pu(e);let n=VD();return Lu(n.zoomAnimationEnter())}),bD(1,zt,1,0,"div",5),_i(2,"div",6)(3,"div",7)(4,"div")(5,"div",8)(6,"div",9),bD(7,vt,2,1,"span",10),_i(8,"div",11),nh(9,yt,2,1,"ng-container",12),Kc()(),_i(10,"div",13)(11,"button",14,1),gh("click",function(){Pu(e);let n=VD();return Lu(n.onCancel())}),Bh(13),Rw(14,"nzI18n"),vw(15),Kc(),_i(16,"button",15,2),gh("click",function(){Pu(e);let n=VD();return Lu(n.onConfirm())}),Bh(18),Rw(19,"nzI18n"),vw(20),Kc()()()()()()();}if(i&2){let e=VD();sw(e.nzOverlayStyle),cw(e._classMap),Mh("ant-popover-rtl",e.dir()==="rtl"),ch("cdkTrapFocusAutoCapture",e.nzAutoFocus!==null)("nzNoAnimation",!!e.noAnimation?.nzNoAnimation?.()),gI(),_D(e.nzPopconfirmShowArrow?1:-1),gI(6),_D(e.nzIcon!==null?7:-1),gI(2),ch("nzStringTemplateOutlet",e.nzTitle)("nzStringTemplateOutletContext",e.nzTitleContext),gI(2),ch("nzDanger",e.nzCancelButtonProps()?.nzDanger)("disabled",e.nzCancelButtonProps()?.nzDisabled),ah("cdkFocusInitial",e.nzAutoFocus==="cancel"||null);let t=e.nzCancelText()||Ow(14,22,"Modal.cancelText");gI(4),nl(" ",t," "),gI(),ch("nzType",e.nzOkButtonProps().nzType)("nzDanger",e.nzOkButtonProps().nzDanger)("nzLoading",e.confirmLoading)("disabled",e.nzOkButtonProps().nzDisabled),ah("cdkFocusInitial",e.nzAutoFocus==="ok"||null);let n=e.nzOkText()||Ow(19,24,"Modal.okText");gI(4),nl(" ",n," ");}}var Ct="popconfirm",Cn=(()=>{let i=tt,m,e=[],t=[],n,o=[],c=[];return class he extends i{static{let C=typeof Symbol=="function"&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;m=[Yl()],n=[Yl()],pT(null,null,m,{kind:"field",name:"nzPopconfirmBackdrop",static:false,private:false,access:{has:a=>"nzPopconfirmBackdrop"in a,get:a=>a.nzPopconfirmBackdrop,set:(a,N)=>{a.nzPopconfirmBackdrop=N;}},metadata:C},e,t),pT(null,null,n,{kind:"field",name:"nzAutofocus",static:false,private:false,access:{has:a=>"nzAutofocus"in a,get:a=>a.nzAutofocus,set:(a,N)=>{a.nzAutofocus=N;}},metadata:C},o,c),C&&Object.defineProperty(this,Symbol.metadata,{enumerable:true,configurable:true,writable:true,value:C});}_nzModuleName=Ct;arrowPointAtCenter;title;titleContext=null;directiveTitle;trigger="click";placement="top";origin;mouseEnterDelay;mouseLeaveDelay;overlayClassName;overlayStyle;visible;nzBeforeConfirm;nzIcon;nzCondition=false;nzPopconfirmShowArrow=true;nzPopconfirmBackdrop=hT(this,e,false);nzAutofocus=(hT(this,t),hT(this,o,null));nzOkText=(hT(this,c),$0(null));nzOkType=$0("primary");nzCancelText=$0(null);nzOkButtonProps=$0(null);nzCancelButtonProps=$0(null);nzOkDisabled=$0(false,{transform:Z0});nzOkDanger=$0(false,{transform:Z0});okButtonProps=Hw(()=>s(r$1({},this.nzOkButtonProps()),{nzType:this.nzOkButtonProps()?.nzType||this.nzOkType()==="danger"?"primary":this.nzOkType(),nzDanger:this.nzOkDanger()||this.nzOkButtonProps()?.nzDanger||this.nzOkType()==="danger",nzDisabled:this.nzOkDisabled()||this.nzOkButtonProps()?.nzDisabled}));cancelButtonProps=Hw(()=>r$1({},this.nzCancelButtonProps()));directiveContent=null;content=null;overlayClickable;visibleChange=new Le$1;nzOnCancel=new Le$1;nzOnConfirm=new Le$1;getProxyPropertyMap(){return r$1({nzOkText:["nzOkText",()=>this.nzOkText],nzCancelText:["nzCancelText",()=>this.nzCancelText],nzOkButtonProps:["nzOkButtonProps",()=>this.okButtonProps],nzCancelButtonProps:["nzCancelButtonProps",()=>this.cancelButtonProps],nzBeforeConfirm:["nzBeforeConfirm",()=>this.nzBeforeConfirm],nzCondition:["nzCondition",()=>this.nzCondition],nzIcon:["nzIcon",()=>this.nzIcon],nzPopconfirmShowArrow:["nzPopconfirmShowArrow",()=>this.nzPopconfirmShowArrow],nzPopconfirmBackdrop:["nzBackdrop",()=>this.nzPopconfirmBackdrop],nzPopconfirmContext:["nzTitleContext",()=>this.titleContext],nzAutoFocus:["nzAutoFocus",()=>this.nzAutofocus]},super.getProxyPropertyMap())}constructor(){super(it);}createComponent(){super.createComponent(),this.component.nzOnCancel.pipe(ue(this.destroyRef)).subscribe(()=>{this.nzOnCancel.emit();}),this.component.nzOnConfirm.pipe(ue(this.destroyRef)).subscribe(()=>{this.nzOnConfirm.emit();});}static \u0275fac=function(a){return new(a||he)};static \u0275dir=XE({type:he,selectors:[["","nz-popconfirm",""]],hostVars:2,hostBindings:function(a,N){a&2&&Mh("ant-popover-open",N.visible);},inputs:{arrowPointAtCenter:[2,"nzPopconfirmArrowPointAtCenter","arrowPointAtCenter",Z0],title:[0,"nzPopconfirmTitle","title"],titleContext:[0,"nzPopconfirmTitleContext","titleContext"],directiveTitle:[0,"nz-popconfirm","directiveTitle"],trigger:[0,"nzPopconfirmTrigger","trigger"],placement:[0,"nzPopconfirmPlacement","placement"],origin:[0,"nzPopconfirmOrigin","origin"],mouseEnterDelay:[0,"nzPopconfirmMouseEnterDelay","mouseEnterDelay"],mouseLeaveDelay:[0,"nzPopconfirmMouseLeaveDelay","mouseLeaveDelay"],overlayClassName:[0,"nzPopconfirmOverlayClassName","overlayClassName"],overlayStyle:[0,"nzPopconfirmOverlayStyle","overlayStyle"],visible:[0,"nzPopconfirmVisible","visible"],nzBeforeConfirm:"nzBeforeConfirm",nzIcon:"nzIcon",nzCondition:[2,"nzCondition","nzCondition",Z0],nzPopconfirmShowArrow:[2,"nzPopconfirmShowArrow","nzPopconfirmShowArrow",Z0],nzPopconfirmBackdrop:"nzPopconfirmBackdrop",nzAutofocus:"nzAutofocus",nzOkText:[1,"nzOkText"],nzOkType:[1,"nzOkType"],nzCancelText:[1,"nzCancelText"],nzOkButtonProps:[1,"nzOkButtonProps"],nzCancelButtonProps:[1,"nzCancelButtonProps"],nzOkDisabled:[1,"nzOkDisabled"],nzOkDanger:[1,"nzOkDanger"]},outputs:{visibleChange:"nzPopconfirmVisibleChange",nzOnCancel:"nzOnCancel",nzOnConfirm:"nzOnConfirm"},exportAs:["nzPopconfirm"],features:[eh]})}})(),it=(()=>{class i extends nt{_animationPrefix="ant-zoom-big";okBtn;cancelBtn;nzCondition=false;nzPopconfirmShowArrow=true;nzIcon;nzAutoFocus=null;nzBeforeConfirm=null;nzOkText=qo(null);nzCancelText=qo(null);nzOkButtonProps=qo({nzType:"primary"});nzCancelButtonProps=qo(null);nzOnCancel=new re;nzOnConfirm=new re;_trigger="click";elementFocusedBeforeModalWasOpened=null;document=C(Uo);_prefix="ant-popover";confirmLoading=false;constructor(){super(),this.destroyRef.onDestroy(()=>{this.nzVisibleChange.complete();});}show(){this.nzCondition?this.onConfirm():(this.capturePreviouslyFocusedElement(),super.show());}hide(){super.hide(),this.restoreFocus();}handleConfirm(){this.nzOnConfirm.next(),super.hide();}onCancel(){this.nzOnCancel.next(),super.hide();}onConfirm(){this.nzBeforeConfirm?(this.confirmLoading=true,this.cdr.markForCheck(),Q0(this.nzBeforeConfirm()).pipe(em(),on(Boolean),ql(()=>{this.confirmLoading=false,this.cdr.markForCheck();})).subscribe(()=>this.handleConfirm())):this.handleConfirm();}capturePreviouslyFocusedElement(){this.document&&(this.elementFocusedBeforeModalWasOpened=this.document.activeElement);}restoreFocus(){this.elementFocusedBeforeModalWasOpened?.focus();}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=QE({type:i,selectors:[["nz-popconfirm"]],viewQuery:function(t,n){if(t&1&&Ih(dt,5,_r)(ft,5,_r),t&2){let o;qD(o=WD())&&(n.okBtn=o),qD(o=WD())&&(n.cancelBtn=o);}},exportAs:["nzPopconfirmComponent"],features:[eh],decls:2,vars:5,consts:[["overlay","cdkConnectedOverlay"],["cancelBtn",""],["okBtn",""],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayOpen","nzArrowPointAtCenter"],["cdkTrapFocus","",1,"ant-popover",3,"cdkTrapFocusAutoCapture","nzNoAnimation"],[1,"ant-popover-arrow"],[1,"ant-popover-content"],[1,"ant-popover-inner"],[1,"ant-popover-inner-content"],[1,"ant-popover-message"],[1,"ant-popover-message-icon"],[1,"ant-popover-message-title"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],[1,"ant-popover-buttons"],["nz-button","","nzSize","small",3,"click","nzDanger","disabled"],["nz-button","","nzSize","small",3,"click","nzType","nzDanger","nzLoading","disabled"],[4,"nzStringTemplateOutlet"],["nzTheme","fill",3,"nzType"]],template:function(t,n){t&1&&(nh(0,gt,21,26,"ng-template",3,0,Lw),gh("overlayOutsideClick",function(c){return n.onClickOutside(c)})("detach",function(){return n.hide()})("positionChange",function(c){return n.onPositionChange(c)})),t&2&&ch("cdkConnectedOverlayHasBackdrop",n.nzBackdrop)("cdkConnectedOverlayOrigin",n.origin)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayOpen",n._visible)("nzArrowPointAtCenter",n.nzArrowPointAtCenter);},dependencies:[vo,Wt,_o,Gl,zh,Fh,Mn,st,Ee,Th,xh,pf,bd,sp,fp,$b,Zb],encapsulation:2})}return i})(),_n=(()=>{class i{static \u0275fac=function(t){return new(t||i)};static \u0275mod=YE({type:i});static \u0275inj=uu({imports:[it]})}return i})();export{Cn as C,_n as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {p as pc,a as as,d as dc,K as Kl,U as Ul,c as cc,J as Ji,l as ls,e as es}from'./chunk-yxqIQom4.js';import {a5 as $0,a6 as B0,q as qo,H as Hw,Q as QE,d as $8,v as v3,Z as pf,a0 as bd,a1 as sp,a2 as fp,K as Kt,j as _i,n as bD,k as vw,R as Rw,l as Kc,N as ND,w as gI,B as _D,x as ch,P as Ph,O as Ow,D as xD,L as LD,m as gh,E as VD,z as nl,a7 as Pw,I as xw,G as ah,J as Pu,M as Lu}from'./main-2ZW45HAE.js';var Q=t=>({count:t}),U=t=>["/jobs",t],X=(t,c)=>c.id;function Y(t,c){if(t&1){let e=LD();_i(0,"div",1)(1,"button",4),gh("click",function(){Pu(e);let o=VD();return Lu(o.emitBulk())}),vw(2),Rw(3,"transloco"),Kc()();}if(t&2){let e=VD();gI(),ch("disabled",e.checkedCount()===0),gI(),nl(" ",Pw(3,2,"runnableTable.runSelected",xw(5,Q,e.checkedCount()))," ");}}function Z(t,c){if(t&1){let e=LD();_i(0,"th",5),gh("nzCheckedChange",function(o){Pu(e);let s=VD();return Lu(s.onAllChecked(o))}),Kc();}if(t&2){let e=VD();ch("nzChecked",e.allChecked())("nzIndeterminate",e.someChecked());}}function ee(t,c){t&1&&(_i(0,"th"),vw(1),Rw(2,"transloco"),Kc()),t&2&&(gI(),Ph(Ow(2,1,"runnableTable.column.actions")));}function te(t,c){if(t&1){let e=LD();_i(0,"td",12),gh("nzCheckedChange",function(o){Pu(e);let s=VD().$implicit,H=VD();return Lu(H.onItemChecked(s.id,o))}),Kc();}if(t&2){let e=VD().$implicit,n=VD();ch("nzChecked",n.checkedIds().has(e.id)),ah("data-testid","check-"+e.id);}}function ne(t,c){if(t&1&&(_i(0,"span",9),vw(1),Kc()),t&2){let e=VD().$implicit;ah("data-testid","subtitle-"+e.id),gI(),Ph(e.subtitle);}}function ie(t,c){if(t&1&&(_i(0,"a",10),vw(1),Rw(2,"transloco"),Kc()),t&2){let e=c,n=VD().$implicit,o=VD();ch("routerLink",xw(5,U,e.id)),ah("data-testid","latest-"+n.id),gI(),nl(" ",Ow(2,3,o.statusKey(e.status))," ");}}function oe(t,c){if(t&1&&(_i(0,"span",11),vw(1),Rw(2,"transloco"),Kc()),t&2){let e=VD().$implicit;ah("data-testid","latest-"+e.id),gI(),Ph(Ow(2,2,"runnableTable.neverRun"));}}function ae(t,c){if(t&1){let e=LD();_i(0,"td")(1,"button",13),gh("click",function(){Pu(e);let o=VD().$implicit,s=VD();return Lu(s.emitRow(o.id))}),vw(2),Rw(3,"transloco"),Kc()();}if(t&2){let e=VD().$implicit;gI(),ah("data-testid","run-"+e.id),gI(),nl(" ",Ow(3,2,"runnableTable.run")," ");}}function le(t,c){if(t&1&&(_i(0,"tr"),bD(1,te,1,2,"td",6),_i(2,"td")(3,"div",7)(4,"span",8),vw(5),Kc(),bD(6,ne,2,2,"span",9),Kc()(),_i(7,"td"),bD(8,ie,3,7,"a",10)(9,oe,3,4,"span",11),Kc(),bD(10,ae,4,4,"td"),Kc()),t&2){let e,n=c.$implicit,o=VD();ah("data-testid","row-"+n.id),gI(),_D(o.selectable()?1:-1),gI(3),ah("data-testid","label-"+n.id),gI(),Ph(n.primaryLabel),gI(),_D(n.subtitle?6:-1),gI(2),_D((e=n.latestJob)?8:9,e),gI(2),_D(o.showRowAction()?10:-1);}}var we=(()=>{class t{constructor(){this.rows=$0([]),this.selectable=$0(false),this.showRowAction=$0(true),this.rowAction=B0(),this.bulkAction=B0(),this.checkedIds=qo(new Set),this.checkedCount=Hw(()=>this.checkedIds().size),this.allChecked=Hw(()=>{let e=this.rows();return e.length>0&&e.every(n=>this.checkedIds().has(n.id))}),this.someChecked=Hw(()=>{let e=this.checkedCount();return e>0&&e<this.rows().length});}onItemChecked(e,n){this.checkedIds.update(o=>{let s=new Set(o);return n?s.add(e):s.delete(e),s});}onAllChecked(e){this.checkedIds.set(e?new Set(this.rows().map(n=>n.id)):new Set);}emitBulk(){this.bulkAction.emit([...this.checkedIds()]);}emitRow(e){this.rowAction.emit(e);}statusKey(e){return `jobs.status.${e}`}static{this.\u0275fac=function(n){return new(n||t)};}static{this.\u0275cmp=QE({type:t,selectors:[["app-runnable-items-table"]],inputs:{rows:[1,"rows"],selectable:[1,"selectable"],showRowAction:[1,"showRowAction"]},outputs:{rowAction:"rowAction",bulkAction:"bulkAction"},decls:16,vars:12,consts:[["data-testid","runnable-items-table",1,"runnable-table"],["data-testid","bulk-bar",1,"bulk-bar"],[3,"nzData","nzFrontPagination","nzShowPagination"],["data-testid","select-all",3,"nzChecked","nzIndeterminate"],["nz-button","","type","button","data-testid","run-selected",3,"click","disabled"],["data-testid","select-all",3,"nzCheckedChange","nzChecked","nzIndeterminate"],[3,"nzChecked"],[1,"item"],[1,"primary"],[1,"subtitle"],[3,"routerLink"],[1,"never"],[3,"nzCheckedChange","nzChecked"],["nz-button","","nzType","link","type","button",3,"click"]],template:function(n,o){n&1&&(_i(0,"div",0),bD(1,Y,4,7,"div",1),_i(2,"nz-table",2)(3,"thead")(4,"tr"),bD(5,Z,1,2,"th",3),_i(6,"th"),vw(7),Rw(8,"transloco"),Kc(),_i(9,"th"),vw(10),Rw(11,"transloco"),Kc(),bD(12,ee,3,3,"th"),Kc()(),_i(13,"tbody"),ND(14,le,11,7,"tr",null,X),Kc()()()),n&2&&(gI(),_D(o.selectable()?1:-1),gI(),ch("nzData",o.rows())("nzFrontPagination",false)("nzShowPagination",false),gI(3),_D(o.selectable()?5:-1),gI(2),Ph(Ow(8,8,"runnableTable.column.item")),gI(3),Ph(Ow(11,10,"runnableTable.column.latestRun")),gI(2),_D(o.showRowAction()?12:-1),gI(2),xD(o.rows()));},dependencies:[$8,v3,pf,bd,sp,fp,pc,as,dc,Kl,Ul,cc,Ji,ls,es,Kt],styles:[".runnable-table[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.bulk-bar[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.item[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.15rem}.primary[_ngcontent-%COMP%]{font-weight:600}.subtitle[_ngcontent-%COMP%]{color:#78716c;font-size:.85rem}.never[_ngcontent-%COMP%]{color:#78716c}[_nghost-%COMP%] .ant-table-tbody>tr>td{white-space:normal;vertical-align:top}"]});}}return t})();export{we as w};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {X as Xe,b as bt,K as Ke}from'./chunk-BbIC5sO2.js';import {A as At$1}from'./chunk-BnD2l9n3.js';import {T}from'./chunk-Cn95hfnf.js';import'./chunk-DZhQ2iEt.js';import'./chunk-BuPc66MS.js';import'./chunk-B_L2A3hm.js';import {_ as _n,C as Cn}from'./chunk-37yFTUcY.js';import'./chunk-J9qS04nF.js';import {C,V as Ve,b as at,aj as jn,T as J1,q as qo,u as ue,ak as v,ae as Dg,c as bi,Q as QE,d as $8,e as al,f as rl,g as $i,v as v3,Z as pf,a0 as bd,a1 as sp,a2 as fp,al as ts,h as ex,F as Fm,A as Am,K as Kt$1,L as LD,j as _i,k as vw,R as Rw,l as Kc,m as gh,n as bD,w as gI,P as Ph,O as Ow,x as ch,z as nl,B as _D,am as Le,an as Wn,a7 as Pw,I as xw,E as VD,N as ND,S as SD,o as oE,y as sE,D as xD,ao as N2,ab as ix,ap as cx,i as ie$1,p as lh,G as ah,aq as MD,ar as _h,J as Pu,M as Lu,ai as zD}from'./main-2ZW45HAE.js';import {b}from'./chunk-CM8oLO7n.js';import {t as tg,a as t_}from'./chunk-DMAf3Qir.js';import {W,I}from'./chunk-C4Ee3umI.js';import {p as pc,a as as,d as dc,K as Kl,c as cc,J as Ji,l as ls}from'./chunk-yxqIQom4.js';import'./chunk-DphMF2VB.js';var $t=i=>({name:i}),Pt=(()=>{class i{constructor(){this.modalRef=C(Le),this.data=C(Wn);}cancel(){this.modalRef.close(void 0);}choose(t){this.modalRef.close(t);}static{this.\u0275fac=function(e){return new(e||i)};}static{this.\u0275cmp=QE({type:i,selectors:[["app-workflow-import-conflict"]],decls:14,vars:15,consts:[["data-testid","import-conflict-dialog"],["data-testid","import-conflict-message"],[1,"dialog-actions"],["nz-button","","type","button","data-testid","import-conflict-cancel",3,"click"],["nz-button","","type","button","data-testid","import-conflict-create-new",3,"click"],["nz-button","","nzType","primary","type","button","data-testid","import-conflict-update",3,"click"]],template:function(e,a){e&1&&(_i(0,"div",0)(1,"p",1),vw(2),Rw(3,"transloco"),Kc(),_i(4,"div",2)(5,"button",3),gh("click",function(){return a.cancel()}),vw(6),Rw(7,"transloco"),Kc(),_i(8,"button",4),gh("click",function(){return a.choose("create_new")}),vw(9),Rw(10,"transloco"),Kc(),_i(11,"button",5),gh("click",function(){return a.choose("update")}),vw(12),Rw(13,"transloco"),Kc()()()),e&2&&(gI(2),nl(" ",Pw(3,4,"workflows.import.conflictBody",xw(13,$t,a.data.name))," "),gI(4),nl(" ",Ow(7,7,"common.cancel")," "),gI(3),nl(" ",Ow(10,9,"workflows.import.createNew")," "),gI(3),nl(" ",Ow(13,11,"workflows.import.update")," "));},dependencies:[pf,bd,sp,fp,Kt$1],styles:["p[_ngcontent-%COMP%]{margin:0 0 1.25rem;color:#44403c}.dialog-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}"]});}}return i})();var jt=(()=>{class i{constructor(){this.http=C(N2),this.baseUrl=`${ix.apiBaseUrl}/workflow-library`;}list(){return this.http.get(this.baseUrl).pipe(cx())}add(t){return this.http.post(`${this.baseUrl}/${encodeURIComponent(t)}/add`,{}).pipe(cx())}static{this.\u0275fac=function(e){return new(e||i)};}static{this.\u0275prov=ie$1({token:i,factory:i.\u0275fac,providedIn:"root"});}}return i})();var At=(i,d)=>d.id;function Rt(i,d){i&1&&(_i(0,"p",2),vw(1),Rw(2,"transloco"),Kc()),i&2&&(gI(),Ph(Ow(2,1,"common.loading")));}function Ht(i,d){if(i&1&&(_i(0,"p",3),vw(1),Kc()),i&2){let t=VD();gI(),Ph(t.loadError());}}function Kt(i,d){if(i&1&&(_i(0,"p",4),vw(1),Kc()),i&2){let t=VD(2);gI(),Ph(t.addError());}}function Jt(i,d){if(i&1&&(_i(0,"nz-tag"),vw(1),Rw(2,"transloco"),Kc()),i&2){let t=d.$implicit,e=VD(3);gI(),Ph(Ow(2,1,e.subjectTypeKey(t)));}}function Ut(i,d){if(i&1&&(_i(0,"li")(1,"span"),vw(2),Kc(),_i(3,"span",14),vw(4),Rw(5,"transloco"),Kc()()),i&2){let t=d.$implicit,e=VD(4);_h("margin-left",t.depth,"rem"),gI(2),Ph(t.name),gI(2),Ph(Ow(5,4,e.stepTypeKey(t.type)));}}function Zt(i,d){if(i&1&&(_i(0,"ol",12),ND(1,Ut,6,6,"li",13,MD),Kc()),i&2){let t=VD().$implicit,e=VD(2);ah("data-testid","library-steps-"+t.id),gI(),xD(e.previewSteps(t));}}function qt(i,d){if(i&1){let t=LD();_i(0,"nz-card")(1,"div",6)(2,"h2"),vw(3),Kc(),_i(4,"nz-tag"),vw(5),Rw(6,"transloco"),Kc()(),_i(7,"p",7),vw(8),Kc(),_i(9,"div",8),ND(10,Jt,3,3,"nz-tag",null,SD),Kc(),_i(12,"div",9)(13,"button",10),gh("click",function(){let a=Pu(t).$implicit,f=VD(2);return Lu(f.togglePreview(a.id))}),vw(14),Rw(15,"transloco"),Kc(),_i(16,"button",11),gh("click",function(){let a=Pu(t).$implicit,f=VD(2);return Lu(f.addToMyWorkflows(a.id))}),vw(17),Rw(18,"transloco"),Kc()(),bD(19,Zt,3,1,"ol",12),Kc();}if(i&2){let t=d.$implicit,e=VD(2);ah("data-testid","library-entry-"+t.id),gI(2),ah("data-testid","library-name-"+t.id),gI(),Ph(t.name),gI(),ah("data-testid","library-source-"+t.id),gI(),Ph(Ow(6,13,e.sourceKey(t.source))),gI(2),ah("data-testid","library-description-"+t.id),gI(),nl(" ",t.description," "),gI(2),xD(e.appliesToValues(t)),gI(3),ah("data-testid","library-preview-"+t.id),gI(),nl(" ",Ow(15,15,e.isExpanded(t.id)?"workflow-library.hideSteps":"workflow-library.previewSteps")," "),gI(2),ch("disabled",e.addingId()!==null),ah("data-testid","library-add-"+t.id),gI(),nl(" ",Ow(18,17,e.addingId()===t.id?"workflow-library.adding":"workflow-library.add")," "),gI(2),_D(e.isExpanded(t.id)?19:-1);}}function Gt(i,d){if(i&1&&(bD(0,Kt,2,1,"p",4),_i(1,"div",5),ND(2,qt,20,19,"nz-card",null,At),Kc()),i&2){let t=VD();_D(t.addError()?0:-1),gI(2),xD(t.entries());}}var Dt=(()=>{class i{constructor(){this.libraryApi=C(jt),this.router=C(J1),this.transloco=C(Ve),this.destroyRef=C(at),this.modalRef=C(Le,{optional:true}),this.entries=qo([]),this.loading=qo(true),this.loadError=qo(null),this.addError=qo(null),this.addingId=qo(null),this.expandedIds=qo(new Set),this.libraryApi.list().pipe(ue(this.destroyRef)).subscribe({next:t=>{this.entries.set(t),this.loading.set(false);},error:t=>{this.loading.set(false),this.loadError.set(this.errorMessage(t,this.transloco.translate("workflow-library.loadFailed")));}});}sourceKey(t){return `workflow-library.source.${t}`}appliesToValues(t){let e=t.workflowDefinition.appliesTo;return e==="none"?["none"]:Array.isArray(e)?e:[e]}subjectTypeKey(t){return `workflow-editor.subjectType.${t}`}stepTypeKey(t){return `step-list.stepType.${t}`}isExpanded(t){return this.expandedIds().has(t)}togglePreview(t){this.expandedIds.update(e=>{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a});}previewSteps(t){return Ot(t.workflowDefinition.steps,0)}addToMyWorkflows(t){this.addingId()||(this.addError.set(null),this.addingId.set(t),this.libraryApi.add(t).pipe(ue(this.destroyRef)).subscribe({next:e=>{this.addingId.set(null),this.modalRef?.close(),this.router.navigate(["/workflows",e.id,"edit"]);},error:e=>{this.addingId.set(null),this.addError.set(this.errorMessage(e,this.transloco.translate("workflow-library.addFailed")));}}));}errorMessage(t,e){return t instanceof bi||t instanceof Error?t.message:e}static{this.\u0275fac=function(e){return new(e||i)};}static{this.\u0275cmp=QE({type:i,selectors:[["app-workflow-library-browser"]],decls:7,vars:4,consts:[["data-testid","workflow-library-browser",1,"library"],[1,"lede"],["data-testid","library-loading"],["data-testid","library-load-error",1,"error"],["data-testid","library-add-error",1,"error"],[1,"cards"],[1,"card-head"],[1,"description"],[1,"applies-to"],[1,"card-actions"],["nz-button","","nzType","link","type","button",3,"click"],["nz-button","","nzType","primary","type","button",3,"click","disabled"],[1,"steps-preview"],[3,"margin-left"],[1,"step-type"]],template:function(e,a){e&1&&(_i(0,"div",0)(1,"p",1),vw(2),Rw(3,"transloco"),Kc(),bD(4,Rt,3,3,"p",2)(5,Ht,2,1,"p",3)(6,Gt,4,1),Kc()),e&2&&(gI(2),Ph(Ow(3,2,"workflow-library.lede")),gI(2),_D(a.loading()?4:a.loadError()?5:6));},dependencies:[$8,pf,bd,sp,fp,bt,Ke,W,I,Kt$1],styles:[".library[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.lede[_ngcontent-%COMP%]{margin:0;color:#57534e}.cards[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.card-head[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.card-head[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:1.05rem;font-weight:600}.description[_ngcontent-%COMP%]{margin:.5rem 0 0;color:#57534e}.applies-to[_ngcontent-%COMP%]{margin-top:.5rem}.card-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.5rem}.steps-preview[_ngcontent-%COMP%]{margin:.75rem 0 0;padding-left:1.25rem;color:#44403c}.steps-preview[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:.75rem;margin:.25rem 0}.step-type[_ngcontent-%COMP%]{color:#78716c;font-size:.85rem}.error[_ngcontent-%COMP%]{color:#9f1239}"]});}}return i})();function Ot(i,d){let t=[];for(let e of i)t.push({name:e.name,type:e.type,depth:d}),e.type==="loop"&&Array.isArray(e.steps)&&t.push(...Ot(e.steps,d+1));return t}var Qt=i=>({count:i}),Xt=i=>["/workflows",i,"edit"],Yt=(i,d)=>d.id;function te(i,d){if(i&1&&(_i(0,"p",9),vw(1),Kc()),i&2){let t=VD();gI(),Ph(t.actionError());}}function ee(i,d){i&1&&(_i(0,"p",10),vw(1),Rw(2,"transloco"),Kc()),i&2&&(gI(),Ph(Ow(2,1,"common.loading")));}function ie(i,d){if(i&1&&(_i(0,"p",11),vw(1),Kc()),i&2){let t=VD();gI(),Ph(t.loadError());}}function ne(i,d){if(i&1&&(lh(0,"nz-option",14),Rw(1,"transloco")),i&2){let t=d.$implicit,e=VD(2);ch("nzValue",t)("nzLabel",Ow(1,2,e.subjectHandlingFilterKey(t)));}}function oe(i,d){if(i&1&&(_i(0,"p",15),vw(1),Kc()),i&2){let t=VD(2);gI(),Ph(t.deleteError());}}function re(i,d){if(i&1){let t=LD();_i(0,"section",16)(1,"p"),vw(2),Rw(3,"transloco"),Kc(),_i(4,"div",18)(5,"button",19),gh("click",function(){Pu(t);let a=VD(2);return Lu(a.openLibrary())}),vw(6),Rw(7,"transloco"),Kc(),_i(8,"a",20),vw(9),Rw(10,"transloco"),Kc()()();}i&2&&(gI(2),Ph(Ow(3,3,"workflows.list.emptyState")),gI(4),nl(" ",Ow(7,5,"workflows.list.emptyBrowseLibrary")," "),gI(3),nl(" ",Ow(10,7,"workflows.list.emptyCreateButton")," "));}function ae(i,d){if(i&1&&(_i(0,"span"),vw(1),Kc()),i&2){let t=VD().$implicit;ah("data-testid","description-"+t.id),gI(),Ph(t.description);}}function le(i,d){if(i&1&&(_i(0,"span",22),vw(1),Rw(2,"transloco"),Kc()),i&2){let t=VD().$implicit;ah("data-testid","description-"+t.id),gI(),Ph(Ow(2,2,"workflows.list.noDescription"));}}function se(i,d){if(i&1&&(_i(0,"nz-tag"),vw(1),Rw(2,"transloco"),Kc()),i&2){let t=d.$implicit,e=VD().$implicit,a=VD(3);ah("data-testid","applies-to-"+e.id),gI(),Ph(Ow(2,2,a.subjectTypeKey(t)));}}function pe(i,d){if(i&1){let t=LD();_i(0,"button",26),gh("click",function(){Pu(t);let a=VD().$implicit,f=VD(3);return Lu(f.startWorkflow(a))}),vw(1),Rw(2,"transloco"),Kc();}if(i&2){let t=VD().$implicit;ah("data-testid","start-"+t.id),gI(),nl(" ",Ow(2,2,"workflows.list.start")," ");}}function de(i,d){if(i&1){let t=LD();_i(0,"tr")(1,"td")(2,"span"),vw(3),Kc()(),_i(4,"td",21),bD(5,ae,2,2,"span")(6,le,3,4,"span",22),Kc(),_i(7,"td"),ND(8,se,3,4,"nz-tag",null,SD),Kc(),_i(10,"td")(11,"nz-tag"),vw(12),Rw(13,"transloco"),Kc()(),_i(14,"td")(15,"span"),vw(16),Rw(17,"transloco"),Kc()(),_i(18,"td",23),bD(19,pe,3,4,"button",24),_i(20,"a",25),vw(21),Rw(22,"transloco"),Kc(),_i(23,"button",26),gh("click",function(){let a=Pu(t).$implicit,f=VD(3);return Lu(f.exportWorkflow(a))}),vw(24),Rw(25,"transloco"),Kc(),_i(26,"button",27),Rw(27,"transloco"),Rw(28,"transloco"),Rw(29,"transloco"),gh("nzOnConfirm",function(){let a=Pu(t).$implicit,f=VD(3);return Lu(f.deleteWorkflow(a.id))}),vw(30),Rw(31,"transloco"),Kc()()();}if(i&2){let t=d.$implicit,e=VD(3);ah("data-testid","workflow-"+t.id),gI(2),ah("data-testid","name-"+t.id),gI(),Ph(t.name),gI(2),_D(t.description?.trim()?5:6),gI(3),xD(e.appliesToValues(t)),gI(3),ah("data-testid","subject-handling-"+t.id),gI(),Ph(Ow(13,19,e.subjectHandlingKey(t.subjectHandling))),gI(3),ah("data-testid","step-count-"+t.id),gI(),Ph(Pw(17,21,"workflows.list.stepCount",xw(36,Qt,t.steps.length))),gI(3),_D(t.subjectHandling==="per-subject"?19:-1),gI(),ch("routerLink",xw(38,Xt,t.id)),ah("data-testid","edit-"+t.id),gI(),nl(" ",Ow(22,24,"workflows.list.edit")," "),gI(2),ah("data-testid","export-"+t.id),gI(),nl(" ",Ow(25,26,"workflows.list.export")," "),gI(2),ch("nzPopconfirmTitle",Ow(27,28,"workflows.list.deleteConfirm"))("nzOkText",Ow(28,30,"workflows.list.delete"))("nzCancelText",Ow(29,32,"common.cancel")),ah("data-testid","delete-"+t.id),gI(4),nl(" ",Ow(31,34,"workflows.list.delete")," ");}}function ce(i,d){if(i&1&&(_i(0,"nz-table",17)(1,"thead")(2,"tr")(3,"th"),vw(4),Rw(5,"transloco"),Kc(),_i(6,"th"),vw(7),Rw(8,"transloco"),Kc(),_i(9,"th"),vw(10),Rw(11,"transloco"),Kc(),_i(12,"th"),vw(13),Rw(14,"transloco"),Kc(),_i(15,"th"),vw(16),Rw(17,"transloco"),Kc(),_i(18,"th"),vw(19),Rw(20,"transloco"),Kc()()(),_i(21,"tbody"),ND(22,de,32,40,"tr",null,Yt),Kc()()),i&2){let t=VD(2);ch("nzData",t.workflows())("nzFrontPagination",false)("nzShowPagination",false),gI(4),Ph(Ow(5,9,"workflows.list.column.name")),gI(3),Ph(Ow(8,11,"workflows.list.column.description")),gI(3),Ph(Ow(11,13,"workflow-editor.appliesTo")),gI(3),Ph(Ow(14,15,"workflow-editor.subjectHandling.label")),gI(3),Ph(Ow(17,17,"workflows.list.column.steps")),gI(3),Ph(Ow(20,19,"workflows.list.column.actions")),gI(3),xD(t.workflows());}}function me(i,d){if(i&1){let t=LD();_i(0,"div",12)(1,"span"),vw(2),Rw(3,"transloco"),Kc(),_i(4,"nz-select",13),gh("ngModelChange",function(a){Pu(t);let f=VD();return Lu(f.setSubjectHandlingFilter(a))}),ND(5,ne,2,4,"nz-option",14,SD),Kc(),oE(),Kc(),bD(7,oe,2,1,"p",15),bD(8,re,11,9,"section",16)(9,ce,24,21,"nz-table",17);}if(i&2){let t=VD();gI(2),Ph(Ow(3,4,"workflows.list.filterBySubjectHandling")),gI(2),ch("ngModel",t.subjectHandlingFilter()),sE(),gI(),xD(t.subjectHandlingOptions),gI(2),_D(t.deleteError()?7:-1),gI(),_D(t.workflows().length===0?8:9);}}var ci=(()=>{class i{constructor(){this.workflowsApi=C(b),this.transloco=C(Ve),this.destroyRef=C(at),this.modal=C(jn),this.router=C(J1),this.startJob=C(At$1),this.workflows=qo([]),this.loading=qo(true),this.loadError=qo(null),this.deleteError=qo(null),this.actionError=qo(null),this.importing=qo(false),this.subjectHandlingFilter=qo("all"),this.subjectHandlingOptions=["all","per-subject","collection"],this.load();}setSubjectHandlingFilter(t){this.subjectHandlingFilter.set(t),this.load();}appliesToValues(t){let e=t.appliesTo;return e==="none"?["none"]:Array.isArray(e)?e:[e]}subjectTypeKey(t){return `workflow-editor.subjectType.${t}`}subjectHandlingKey(t){return `workflow-editor.subjectHandling.${t}`}subjectHandlingFilterKey(t){return t==="all"?"workflows.list.filterAll":`workflow-editor.subjectHandling.${t}`}startWorkflow(t){this.startJob.start({workflowId:t.id});}deleteWorkflow(t){this.deleteError.set(null),this.workflowsApi.delete(t).pipe(ue(this.destroyRef)).subscribe({next:()=>{this.workflows.update(e=>e.filter(a=>a.id!==t));},error:e=>{this.deleteError.set(this.errorMessage(e,this.transloco.translate("workflows.list.deleteFailed")));}});}openLibrary(){this.modal.create({nzTitle:this.transloco.translate("workflow-library.title"),nzContent:Dt,nzFooter:null,nzWidth:720});}exportWorkflow(t){this.actionError.set(null),this.workflowsApi.exportDefinition(t.id).pipe(ue(this.destroyRef)).subscribe({next:e=>{Xe(`${tg(e.name)}.json`,JSON.stringify(e,null,2),"application/json");},error:e=>{this.actionError.set(this.errorMessage(e,this.transloco.translate("workflows.list.exportFailed")));}});}downloadInstructions(){this.actionError.set(null),this.workflowsApi.getInstructions().pipe(ue(this.destroyRef)).subscribe({next:t=>{Xe("knoflows-workflow-agent-instructions.md",t,"text/markdown;charset=utf-8");},error:t=>{this.actionError.set(this.errorMessage(t,this.transloco.translate("workflows.list.instructionsFailed")));}});}onImportFile(t){let e=t.target,a=e.files?.[0];e.value="",!(!a||this.importing())&&this.readAndImport(a);}importJsonText(t){this.actionError.set(null);let e;try{e=JSON.parse(t);}catch(f){this.actionError.set(this.transloco.translate("workflows.list.importInvalidJson"));return}let a=t_.safeParse(e);if(!a.success){let f=T(a.error);this.actionError.set(`${this.transloco.translate("workflows.list.importInvalidSchema")}: ${f[0]??""}`);return}this.postImport(e);}readAndImport(t){return v(this,null,function*(){try{this.importJsonText(yield t.text());}catch(e){this.actionError.set(this.transloco.translate("workflows.list.importInvalidJson"));}})}postImport(t,e){this.importing.set(true),this.actionError.set(null),this.workflowsApi.importDefinition(e?{workflowDefinition:t,resolution:e}:{workflowDefinition:t}).pipe(ue(this.destroyRef)).subscribe({next:a=>{this.importing.set(false),this.router.navigate(["/workflows",a.id,"edit"]);},error:a=>{this.importing.set(false);let f=this.importConflict(a);if(f&&!e){this.openImportConflict(t,f.name);return}this.actionError.set(this.errorMessage(a,this.transloco.translate("workflows.list.importFailed")));}});}openImportConflict(t,e){(this.modal.create({nzTitle:this.transloco.translate("workflows.import.conflictTitle"),nzContent:Pt,nzData:{name:e},nzFooter:null}).afterClose??Dg(void 0)).pipe(ue(this.destroyRef)).subscribe(I=>{(I==="update"||I==="create_new")&&this.postImport(t,I);});}importConflict(t){if(!(t instanceof bi)||t.httpStatus!==409||!t.details)return null;let e=t.details.conflictingWorkflowId,a=t.details.conflictingWorkflowName;return typeof e!="string"||typeof a!="string"?null:{id:e,name:a}}load(){let t=this.subjectHandlingFilter();this.loading.set(true),this.loadError.set(null),this.workflowsApi.list(t==="all"?void 0:{subjectHandling:t}).pipe(ue(this.destroyRef)).subscribe({next:e=>{this.workflows.set(e),this.loading.set(false);},error:e=>{this.loading.set(false),this.loadError.set(this.errorMessage(e,this.transloco.translate("workflows.list.loadFailed")));}});}errorMessage(t,e){return t instanceof bi||t instanceof Error?t.message:e}static{this.\u0275fac=function(e){return new(e||i)};}static{this.\u0275cmp=QE({type:i,selectors:[["app-workflow-list"]],decls:24,vars:18,consts:[["importFileInput",""],["data-testid","workflows-list",1,"list-page"],[1,"header"],[1,"header-actions"],["type","file","accept","application/json,.json","hidden","","data-testid","import-file",3,"change"],["nz-button","","type","button","data-testid","import-workflow",3,"click","disabled"],["nz-button","","type","button","data-testid","download-instructions",3,"click"],["nz-button","","type","button","data-testid","browse-library",3,"click"],["nz-button","","nzType","primary","routerLink","/workflows/new","data-testid","create-workflow"],["data-testid","action-error",1,"error"],["data-testid","loading"],["data-testid","load-error",1,"error"],[1,"field"],["data-testid","subject-handling-filter",3,"ngModelChange","ngModel"],[3,"nzValue","nzLabel"],["data-testid","delete-error",1,"error"],["data-testid","empty-state",1,"empty"],["data-testid","workflow-items",3,"nzData","nzFrontPagination","nzShowPagination"],[1,"empty-actions"],["nz-button","","type","button","data-testid","empty-browse-library",3,"click"],["nz-button","","nzType","primary","routerLink","/workflows/new","data-testid","empty-create"],[1,"description-cell"],[1,"muted"],[1,"actions"],["nz-button","","nzType","link","type","button"],["nz-button","","nzType","link",3,"routerLink"],["nz-button","","nzType","link","type","button",3,"click"],["nz-button","","nzType","link","nzDanger","","type","button","nz-popconfirm","",3,"nzOnConfirm","nzPopconfirmTitle","nzOkText","nzCancelText"]],template:function(e,a){if(e&1){let f=LD();_i(0,"main",1)(1,"header",2)(2,"h1"),vw(3),Rw(4,"transloco"),Kc(),_i(5,"div",3)(6,"input",4,0),gh("change",function(J){return a.onImportFile(J)}),Kc(),_i(8,"button",5),gh("click",function(){Pu(f);let J=zD(7);return Lu(J.click())}),vw(9),Rw(10,"transloco"),Kc(),_i(11,"button",6),gh("click",function(){return a.downloadInstructions()}),vw(12),Rw(13,"transloco"),Kc(),_i(14,"button",7),gh("click",function(){return a.openLibrary()}),vw(15),Rw(16,"transloco"),Kc(),_i(17,"a",8),vw(18),Rw(19,"transloco"),Kc()()(),bD(20,te,2,1,"p",9),bD(21,ee,3,3,"p",10)(22,ie,2,1,"p",11)(23,me,10,6),Kc();}e&2&&(gI(3),Ph(Ow(4,8,"workflows.list.title")),gI(5),ch("disabled",a.importing()),gI(),nl(" ",Ow(10,10,"workflows.list.import")," "),gI(3),nl(" ",Ow(13,12,"workflows.list.downloadInstructions")," "),gI(3),nl(" ",Ow(16,14,"workflows.list.browseLibrary")," "),gI(3),nl(" ",Ow(19,16,"workflows.list.createButton")," "),gI(2),_D(a.actionError()?20:-1),gI(),_D(a.loading()?21:a.loadError()?22:23));},dependencies:[$8,al,rl,$i,v3,pf,bd,sp,fp,ts,_n,Cn,ex,Fm,Am,pc,as,dc,Kl,cc,Ji,ls,W,I,Kt$1],styles:[".list-page[_ngcontent-%COMP%]{padding:1.25rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1rem}.header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.header-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;flex-shrink:0;justify-content:flex-end}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.35rem;max-width:16rem}.field[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.85rem;color:#57534e}.muted[_ngcontent-%COMP%]{color:#a8a29e;font-style:italic}.empty[_ngcontent-%COMP%]{text-align:center;padding:2.5rem 1rem;border:1px dashed #d6d3d1;background:#fff9}.empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0 0 1rem;color:#57534e}.empty-actions[_ngcontent-%COMP%]{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem}.error[_ngcontent-%COMP%]{color:#9f1239}.actions[_ngcontent-%COMP%]{white-space:nowrap}[_nghost-%COMP%] td.description-cell{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;text-overflow:unset;max-width:28rem;vertical-align:top}[_nghost-%COMP%] .ant-table-tbody>tr>td{white-space:normal;vertical-align:top}"]});}}return i})();export{ci as WorkflowListComponent,ci as WorkflowsManageComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {af as _,Q as QE,ag as D6,v as v3,ah as Yc,a3 as Th,a4 as xh,K as Kt,j as _i,N as ND,l as Kc,p as lh,w as gI,D as xD,k as vw,R as Rw,ai as zD,E as VD,x as ch,I as xw,aa as Nw,G as ah,z as nl,O as Ow}from'./main-2ZW45HAE.js';var A=e=>["/manage",e],z=()=>({exact:true}),K=(e,i)=>i.path;function L(e,i){if(e&1&&(_i(0,"a",3,0),lh(2,"span",4),vw(3),Rw(4,"transloco"),Kc()),e&2){let t=i.$implicit,n=zD(1),r=VD();ch("routerLink",xw(8,A,t.path))("routerLinkActiveOptions",Nw(10,z)),ah("data-testid","manage-tab-"+t.path),gI(2),ch("nzType",t.icon)("nzTheme",r.navIconTheme(n.isActive,t.icon)),gI(),nl(" ",Ow(4,6,t.labelKey)," ");}}var I=[{path:"workflows",labelKey:"manage.tab.workflows",icon:"partition"},{path:"views",labelKey:"manage.tab.views",icon:"appstore"},{path:"providers",labelKey:"manage.tab.providers",icon:"api"},{path:"context-files",labelKey:"manage.tab.contextFiles",icon:"file"},{path:"local-repositories",labelKey:"manage.tab.localRepositories",icon:"database"},{path:"worktrees",labelKey:"manage.tab.worktrees",icon:"deployment-unit"},{path:"preferences",labelKey:"manage.tab.preferences",icon:"setting"}],B=(()=>{class e{constructor(){this.tabs=I,this.navIconTheme=_;}static{this.\u0275fac=function(n){return new(n||e)};}static{this.\u0275cmp=QE({type:e,selectors:[["app-manage-shell"]],decls:5,vars:0,consts:[["rla","routerLinkActive"],["data-testid","manage-shell",1,"manage-shell"],["data-testid","manage-tabs","role","tablist",1,"manage-tabs"],["role","tab","routerLinkActive","active",3,"routerLink","routerLinkActiveOptions"],["nz-icon","",1,"tab-icon",3,"nzType","nzTheme"]],template:function(n,r){n&1&&(_i(0,"section",1)(1,"nav",2),ND(2,L,5,11,"a",3,K),Kc(),lh(4,"router-outlet"),Kc()),n&2&&(gI(2),xD(r.tabs));},dependencies:[D6,v3,Yc,Th,xh,Kt],styles:[".manage-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:100%}.manage-tabs[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 1.5rem 0;border-bottom:1px solid var(--knoflows-border, #e1dacb);background:var(--knoflows-surface, #fff)}.manage-tabs[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;padding:.65rem .9rem;color:var(--knoflows-text-secondary, inherit);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tab-icon[_ngcontent-%COMP%]{font-size:16px;color:currentColor}.manage-tabs[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:var(--knoflows-text, inherit)}.manage-tabs[_ngcontent-%COMP%] a.active[_ngcontent-%COMP%]{color:var(--knoflows-link, inherit);font-weight:600;border-bottom-color:var(--knoflows-link, currentColor)}"]});}}return e})();export{I as MANAGE_TABS,B as ManageShellComponent};
|