@knoflows/engine 0.1.0-alpha.9 → 0.1.0-beta.16
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/README.md +5 -10
- package/dist/engine.js +110 -10
- package/dist/migrations/20260918025930_context_files/migration.sql +7 -0
- package/dist/migrations/20260918025930_context_files/snapshot.json +1275 -0
- package/dist/migrations/20260918074816_large_kate_bishop/migration.sql +8 -0
- package/dist/migrations/20260918074816_large_kate_bishop/snapshot.json +1338 -0
- 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 +4 -4
- package/static/apple-touch-icon.png +0 -0
- package/static/assets/i18n/en.json +216 -12
- package/static/assets/i18n/es.json +216 -12
- package/static/chunk-9U0WIegY.js +1 -0
- package/static/chunk-B0kZCuEt.js +1 -0
- package/static/chunk-B2Xol2Un.js +1 -0
- package/static/chunk-B7WkIFy0.js +1 -0
- package/static/chunk-BW9BdLk-.js +1 -0
- package/static/chunk-Bgl02GNl.js +1 -0
- package/static/chunk-BhF-m2HP.js +70 -0
- package/static/chunk-BhTujCrk.js +1 -0
- package/static/chunk-Bu6_39Nh.js +1 -0
- package/static/chunk-C0HCwfa5.js +1 -0
- package/static/chunk-C2BVYtVN.js +66 -0
- package/static/chunk-C7h8oMzu.js +1 -0
- package/static/chunk-CRdEWPUM.js +1 -0
- package/static/chunk-CRv0PDB7.js +1 -0
- package/static/chunk-CecXf-CU.js +1 -0
- package/static/chunk-CenXuPs5.js +1 -0
- package/static/chunk-CeywzbyD.js +1 -0
- package/static/{chunk-WzBVBHEz.js → chunk-Cg2E0vnT.js} +1 -1
- package/static/chunk-CsQ_HDGC.js +1 -0
- package/static/chunk-D19C8Gcb.js +1 -0
- package/static/chunk-DGC4TkAL.js +1 -0
- package/static/chunk-DUkiyf7y.js +1 -0
- package/static/chunk-DYzSLsNo.js +1 -0
- package/static/chunk-DZJZYEZl.js +1 -0
- package/static/chunk-DfcFBVF4.js +1 -0
- package/static/chunk-DixyYfV_.js +1 -0
- package/static/chunk-Dp4H7MY0.js +1 -0
- package/static/chunk-DtQtDE8q.js +1 -0
- package/static/chunk-Dv5GyY6h.js +1 -0
- package/static/chunk-Edaw7VGW.js +1 -0
- package/static/chunk-FOJfn_t9.js +1 -0
- package/static/chunk-Fwpw-z7T.js +1 -0
- package/static/chunk-HUIPNwd9.js +1 -0
- package/static/chunk-NZ-CPWJ2.js +1 -0
- package/static/chunk-Th9whP36.js +1 -0
- package/static/chunk-bCuvpgQS.js +1 -0
- package/static/{chunk-BmSmqIC7.js → chunk-iE460Kz5.js} +1 -1
- package/static/chunk-p6dftaf8.js +5 -0
- package/static/chunk-yoe_30RI.js +1 -0
- package/static/chunk-z2vvQAle.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-CHQMTVIP.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-1SlEtaMr.js +0 -1
- package/static/chunk-5H-9s7GP.js +0 -7
- package/static/chunk-B-P3MXAn.js +0 -1
- package/static/chunk-B76UD1mt.js +0 -1
- package/static/chunk-BFYi_kYd.js +0 -1
- package/static/chunk-BG0Azip9.js +0 -1
- package/static/chunk-BWr0M-hk.js +0 -1
- package/static/chunk-Bpxo3nwV.js +0 -1
- package/static/chunk-Bw9D3p4h.js +0 -1
- package/static/chunk-C-T2O6LE.js +0 -1
- package/static/chunk-C1E15gBW.js +0 -5
- package/static/chunk-C1V4WljN.js +0 -1
- package/static/chunk-C3wpjxgW.js +0 -1
- package/static/chunk-C4yhGGeB.js +0 -1
- package/static/chunk-C5hSEJdm.js +0 -1
- package/static/chunk-CTkRZ4w1.js +0 -1
- package/static/chunk-CYX8w88D.js +0 -1
- package/static/chunk-Cq4-aSSE.js +0 -1
- package/static/chunk-Cwf9CcBI.js +0 -1
- package/static/chunk-D32ZkSz4.js +0 -1
- package/static/chunk-DE9IK0Os.js +0 -1
- package/static/chunk-DNtWpE65.js +0 -1
- package/static/chunk-DdVQ8Ilm.js +0 -66
- package/static/chunk-W0OF0P_2.js +0 -1
- package/static/chunk-XvSvuf-k.js +0 -1
- package/static/chunk-aWIxMbtR.js +0 -1
- package/static/chunk-f1UVptf5.js +0 -1
- package/static/chunk-vj0RDTCf.js +0 -1
- package/static/main-BRWQ5RNE.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-
|
|
3
|
+
"version": "0.1.0-beta.16",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"bin": {
|
|
@@ -37,9 +37,9 @@
|
|
|
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
|
-
"test:provider-status": "tsx src/providers/provider-status.test.ts",
|
|
41
|
-
"test:runner": "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",
|
|
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",
|
|
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",
|
|
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,12 +8,88 @@
|
|
|
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",
|
|
16
|
+
"manage.tab.contextFiles": "Context Files",
|
|
17
|
+
"manage.tab.localRepositories": "Local Repositories",
|
|
18
|
+
"manage.tab.worktrees": "Worktrees",
|
|
14
19
|
"manage.tab.preferences": "Preferences",
|
|
15
20
|
"manage.preferences.title": "Preferences",
|
|
16
21
|
"manage.preferences.body": "Engine preferences such as scheduler concurrency, worktree cleanup, and the default agent will live here.",
|
|
22
|
+
"context-files.title": "Context Files",
|
|
23
|
+
"context-files.selectTitle": "Select context files",
|
|
24
|
+
"context-files.emptyState": "No context files yet. Add one to attach to agent steps.",
|
|
25
|
+
"context-files.create": "Add context file",
|
|
26
|
+
"context-files.edit": "Edit",
|
|
27
|
+
"context-files.delete": "Delete",
|
|
28
|
+
"context-files.deleteConfirm": "Delete this context file?",
|
|
29
|
+
"context-files.column.name": "Name",
|
|
30
|
+
"context-files.column.tier": "Tier",
|
|
31
|
+
"context-files.column.path": "Path",
|
|
32
|
+
"context-files.column.description": "Description",
|
|
33
|
+
"context-files.column.actions": "Actions",
|
|
34
|
+
"context-files.form.name": "Name",
|
|
35
|
+
"context-files.form.tier": "Tier",
|
|
36
|
+
"context-files.form.path": "Path",
|
|
37
|
+
"context-files.form.pathHint": "Browse to a file on this machine, or enter its absolute path. The file is read immediately to confirm it exists.",
|
|
38
|
+
"context-files.form.description": "Description",
|
|
39
|
+
"context-files.form.save": "Save",
|
|
40
|
+
"context-files.form.cancel": "Cancel",
|
|
41
|
+
"context-files.form.add": "Add",
|
|
42
|
+
"context-files.loadFailed": "Failed to load context files",
|
|
43
|
+
"context-files.saveFailed": "Failed to save context file",
|
|
44
|
+
"context-files.deleteFailed": "Failed to delete context file",
|
|
45
|
+
"context-files.tier.user": "User",
|
|
46
|
+
"context-files.tier.organization": "Organization",
|
|
47
|
+
"context-files.tier.project": "Project",
|
|
48
|
+
"local-repos.title": "Local Repositories",
|
|
49
|
+
"local-repos.emptyState": "No local repositories yet. Add one so workflows can pick a repo at launch.",
|
|
50
|
+
"local-repos.create": "Add local repository",
|
|
51
|
+
"local-repos.edit": "Edit",
|
|
52
|
+
"local-repos.delete": "Delete",
|
|
53
|
+
"local-repos.deleteConfirm": "Delete this local repository?",
|
|
54
|
+
"local-repos.column.name": "Name",
|
|
55
|
+
"local-repos.column.localPath": "Repository path",
|
|
56
|
+
"local-repos.column.worktreeBasePath": "Worktree base",
|
|
57
|
+
"local-repos.column.defaultBranch": "Default branch",
|
|
58
|
+
"local-repos.column.actions": "Actions",
|
|
59
|
+
"local-repos.form.name": "Name",
|
|
60
|
+
"local-repos.form.localPath": "Repository path",
|
|
61
|
+
"local-repos.form.worktreeBasePath": "Worktree base path (optional)",
|
|
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)",
|
|
64
|
+
"local-repos.loadFailed": "Failed to load local repositories",
|
|
65
|
+
"local-repos.saveFailed": "Failed to save local repository",
|
|
66
|
+
"local-repos.deleteFailed": "Failed to delete local repository",
|
|
67
|
+
"worktrees.title": "Worktrees",
|
|
68
|
+
"worktrees.emptyState": "No live worktrees. They appear here after a Job creates one.",
|
|
69
|
+
"worktrees.deleteSelected": "Delete selected worktrees",
|
|
70
|
+
"worktrees.activeWarning": "A selected worktree belongs to a Job that is still running. Delete it only after the Job finishes.",
|
|
71
|
+
"worktrees.loadFailed": "Failed to load worktrees",
|
|
72
|
+
"worktrees.deleteFailed": "Failed to delete worktrees",
|
|
73
|
+
"worktrees.column.job": "Job",
|
|
74
|
+
"worktrees.column.repository": "Repository",
|
|
75
|
+
"worktrees.column.branch": "Branch",
|
|
76
|
+
"worktrees.column.path": "Path",
|
|
77
|
+
"worktrees.column.status": "Status",
|
|
78
|
+
"worktrees.column.created": "Created",
|
|
79
|
+
"workflow-input.localRepositoryPlaceholder": "Select a local repository",
|
|
80
|
+
"file-browser.emptySelection": "No file selected",
|
|
81
|
+
"file-browser.emptySelectionDirectory": "No folder selected",
|
|
82
|
+
"file-browser.enterManually": "Or enter path manually",
|
|
83
|
+
"file-browser.browse": "Browse for a file",
|
|
84
|
+
"file-browser.browseDirectory": "Browse for a folder",
|
|
85
|
+
"file-browser.useFolder": "Use this folder",
|
|
86
|
+
"file-browser.loadFailed": "Failed to list this directory",
|
|
87
|
+
"path-picker.browse": "Browse...",
|
|
88
|
+
"path-picker.selectFile": "Select this file",
|
|
89
|
+
"path-picker.placeholderFile": "File path",
|
|
90
|
+
"path-picker.placeholderDirectory": "Folder path",
|
|
91
|
+
"path-picker.modalTitleFile": "Select a file",
|
|
92
|
+
"path-picker.modalTitleDirectory": "Select a folder",
|
|
17
93
|
"manage.views.title": "Views & Shortcuts",
|
|
18
94
|
"manage.views.createView": "Create a View",
|
|
19
95
|
"manage.views.createShortcut": "Create a Shortcut",
|
|
@@ -36,6 +112,7 @@
|
|
|
36
112
|
"shell.group.pullRequests": "Pull Requests",
|
|
37
113
|
"shell.group.documentation": "Documentation",
|
|
38
114
|
"shell.shortcuts": "Shortcuts",
|
|
115
|
+
"shell.reorderHandle": "Reorder",
|
|
39
116
|
"shell.provider.jira": "Jira",
|
|
40
117
|
"shell.provider.bitbucket": "Bitbucket",
|
|
41
118
|
"shell.empty.title": "Welcome to knoflows",
|
|
@@ -47,10 +124,7 @@
|
|
|
47
124
|
"common.cancel": "Cancel",
|
|
48
125
|
"common.loading": "Loading…",
|
|
49
126
|
"common.errorGeneric": "Something went wrong",
|
|
50
|
-
"jobs.title": "Knoflows — Start a Job",
|
|
51
|
-
"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.",
|
|
52
127
|
"jobs.start.heading": "Start a Job",
|
|
53
|
-
"jobs.start.workflow": "Workflow",
|
|
54
128
|
"jobs.start.subjectId": "subjectId",
|
|
55
129
|
"jobs.start.subjectIdPlaceholder": "e.g. T-1",
|
|
56
130
|
"jobs.start.button": "Start",
|
|
@@ -66,22 +140,42 @@
|
|
|
66
140
|
"jobs.status.cancelled": "Cancelled",
|
|
67
141
|
"jobs.resume.heading": "Waiting for human",
|
|
68
142
|
"jobs.resume.noQuestions": "No questions on the waiting event yet.",
|
|
69
|
-
"jobs.resume.
|
|
143
|
+
"jobs.resume.additionalComments": "Additional comments for the agent",
|
|
144
|
+
"jobs.resume.comment": "Comment (optional)",
|
|
145
|
+
"jobs.resume.approve": "Approve",
|
|
146
|
+
"jobs.resume.reject": "Reject",
|
|
70
147
|
"jobs.resume.button": "Resume",
|
|
71
148
|
"jobs.resume.submitting": "Submitting…",
|
|
72
|
-
"jobs.resume.
|
|
149
|
+
"jobs.resume.commentReview.include": "Include",
|
|
150
|
+
"jobs.resume.commentReview.selectAll": "Select all",
|
|
151
|
+
"jobs.resume.commentReview.selectNone": "Select none",
|
|
152
|
+
"jobs.resume.commentReview.empty": "No comment suggestions to review.",
|
|
73
153
|
"jobs.failed.fallback": "Job failed",
|
|
74
154
|
"jobs.errors.loadWorkflows": "Failed to load workflows",
|
|
75
155
|
"jobs.errors.subjectIdRequired": "subjectId is required for this workflow",
|
|
76
156
|
"jobs.errors.startFailed": "Failed to start job",
|
|
77
157
|
"jobs.errors.resumeFailed": "Failed to resume job",
|
|
158
|
+
"jobs.errors.retryFailed": "Failed to retry job",
|
|
159
|
+
"jobs.errors.retryStepFailed": "Failed to retry step",
|
|
160
|
+
"jobs.errors.cancelFailed": "Failed to cancel job",
|
|
78
161
|
"jobs.errors.refreshFailed": "Failed to refresh job",
|
|
79
162
|
"jobs.detail.backToStart": "Back to jobs",
|
|
163
|
+
"jobs.detail.copyId": "Copy job id",
|
|
80
164
|
"jobs.detail.loadFailed": "Failed to load job",
|
|
81
165
|
"jobs.detail.workflowLoadFailed": "Failed to load workflow definition for this job",
|
|
82
166
|
"jobs.detail.workflowMissing": "Workflow definition is unavailable; step list cannot be shown.",
|
|
83
167
|
"jobs.detail.queued": "Queued — waiting for the first step to start.",
|
|
168
|
+
"jobs.detail.waitingForAgentSlot": "Waiting for an available agent slot",
|
|
84
169
|
"jobs.detail.jumpToCurrent": "Jump to current step",
|
|
170
|
+
"jobs.detail.retryWorkflow": "Retry entire workflow",
|
|
171
|
+
"jobs.detail.retryStep": "Retry this step",
|
|
172
|
+
"jobs.detail.reviewAndRetry": "Review and retry",
|
|
173
|
+
"jobs.detail.reviewAndRetryHint": "Comments that already posted are unchecked. Rechecking one will post it again.",
|
|
174
|
+
"jobs.detail.retrying": "Retrying…",
|
|
175
|
+
"jobs.detail.cancel": "Cancel",
|
|
176
|
+
"jobs.detail.cancelling": "Cancelling…",
|
|
177
|
+
"jobs.detail.worktree": "Worktree",
|
|
178
|
+
"jobs.detail.worktreeDeleted": "Worktree deleted",
|
|
85
179
|
"jobs.detail.stepsHeading": "Steps",
|
|
86
180
|
"jobs.detail.noStepSelected": "Select a step to inspect its output.",
|
|
87
181
|
"jobs.detail.loopBack": "Back to loop",
|
|
@@ -94,7 +188,24 @@
|
|
|
94
188
|
"jobs.detail.inProgress.loop": "Loop is running…",
|
|
95
189
|
"jobs.detail.inProgress.sub_workflow": "Waiting for child jobs…",
|
|
96
190
|
"jobs.detail.inProgress.interaction": "Waiting for human…",
|
|
191
|
+
"jobs.detail.inProgress.extract": "Extracting…",
|
|
192
|
+
"jobs.detail.skipped.reason": "This step was skipped because its condition held.",
|
|
193
|
+
"jobs.detail.skipped.predicate": "Predicate",
|
|
194
|
+
"jobs.detail.skipped.stepId": "Step id",
|
|
195
|
+
"jobs.detail.skipped.field": "Field",
|
|
196
|
+
"jobs.detail.skipped.equalsValue": "Equals",
|
|
197
|
+
"jobs.detail.skipped.fieldValue": "Evaluated value",
|
|
198
|
+
"jobs.detail.outputView.markdown": "Markdown",
|
|
199
|
+
"jobs.detail.outputView.raw": "Raw",
|
|
200
|
+
"jobs.extract.heading": "Extract did not match",
|
|
201
|
+
"jobs.extract.sourceValue": "Source value",
|
|
202
|
+
"jobs.extract.pattern": "Pattern",
|
|
203
|
+
"jobs.extract.valueLabel": "Value",
|
|
204
|
+
"jobs.extract.provideValue": "Provide value",
|
|
205
|
+
"jobs.extract.continue": "Continue",
|
|
206
|
+
"jobs.extract.cancel": "Cancel",
|
|
97
207
|
"jobs.stepStatus.pending": "Pending",
|
|
208
|
+
"jobs.stepStatus.queued": "Queued",
|
|
98
209
|
"jobs.stepStatus.running": "Running",
|
|
99
210
|
"jobs.stepStatus.waiting_for_children": "Waiting for children",
|
|
100
211
|
"jobs.stepStatus.completed": "Completed",
|
|
@@ -105,21 +216,30 @@
|
|
|
105
216
|
"jobs.table.column.subject": "Subject",
|
|
106
217
|
"jobs.table.column.started": "Started",
|
|
107
218
|
"jobs.table.column.completed": "Completed",
|
|
219
|
+
"jobs.table.column.actions": "Actions",
|
|
220
|
+
"jobs.table.retry": "Retry",
|
|
221
|
+
"jobs.table.cancel": "Cancel",
|
|
108
222
|
"jobs.list.title": "Jobs",
|
|
109
223
|
"jobs.list.filterByStatus": "Filter by status",
|
|
110
224
|
"jobs.list.filterByWorkflow": "Filter by workflow",
|
|
111
225
|
"jobs.list.showChildJobs": "Show batch/child jobs",
|
|
112
|
-
"jobs.list.startButton": "Start job",
|
|
113
226
|
"jobs.list.empty": "No jobs match these filters.",
|
|
114
227
|
"jobs.list.loadFailed": "Failed to load jobs",
|
|
115
228
|
"jobs.list.filterAll": "All",
|
|
116
229
|
"jobs.list.running": "Currently Running",
|
|
230
|
+
"jobs.list.queued": "Queued",
|
|
117
231
|
"jobs.list.history": "History",
|
|
118
232
|
"jobs.list.runningEmpty": "No jobs are running.",
|
|
233
|
+
"jobs.list.queuedEmpty": "No agent steps are waiting for a slot.",
|
|
119
234
|
"jobs.list.historyEmpty": "No jobs match these filters.",
|
|
235
|
+
"jobs.list.queuedAgent": "Agent instance",
|
|
236
|
+
"jobs.list.queuedWait": "Waiting",
|
|
120
237
|
"workflow-editor.titleNew": "New workflow",
|
|
121
|
-
"workflow-editor.titleEdit": "Edit workflow · {{
|
|
122
|
-
"workflow-editor.
|
|
238
|
+
"workflow-editor.titleEdit": "Edit workflow · {{name}}",
|
|
239
|
+
"workflow-editor.backToWorkflows": "Back to workflows",
|
|
240
|
+
"workflow-editor.export": "Export",
|
|
241
|
+
"workflow-editor.start": "Start",
|
|
242
|
+
"workflow-editor.exportFailed": "Failed to export workflow",
|
|
123
243
|
"workflow-editor.loading": "Loading…",
|
|
124
244
|
"workflow-editor.validation": "Validation",
|
|
125
245
|
"workflow-editor.basics": "Basics",
|
|
@@ -148,6 +268,7 @@
|
|
|
148
268
|
"workflow-editor.inputType.number": "Number",
|
|
149
269
|
"workflow-editor.inputType.boolean": "Boolean",
|
|
150
270
|
"workflow-editor.inputType.select": "Select",
|
|
271
|
+
"workflow-editor.inputType.localRepository": "Local repository",
|
|
151
272
|
"workflow-editor.required": "Required",
|
|
152
273
|
"workflow-editor.remove": "Remove",
|
|
153
274
|
"workflow-editor.addInputField": "Add input field",
|
|
@@ -164,10 +285,14 @@
|
|
|
164
285
|
"step-list.id": "Id",
|
|
165
286
|
"step-list.idHint": "Generated from the step name — edit it directly if you want a different reference.",
|
|
166
287
|
"step-list.objective": "Prompt",
|
|
167
|
-
"step-list.
|
|
168
|
-
"step-list.
|
|
288
|
+
"step-list.contextFiles": "Context Files",
|
|
289
|
+
"step-list.contextFilesEmpty": "None selected",
|
|
290
|
+
"step-list.selectContextFiles": "Select context files",
|
|
169
291
|
"step-list.outputFormat.label": "Output format",
|
|
170
292
|
"step-list.interaction.label": "Interaction",
|
|
293
|
+
"step-list.sourceStepIds.label": "Suggestion sources",
|
|
294
|
+
"step-list.sourceStepIds.hint": "Prior agent steps whose output format is comment suggestions.",
|
|
295
|
+
"step-list.sourceStepIds.empty": "Add an earlier agent step with comment suggestions output first.",
|
|
171
296
|
"step-list.notify": "Notify",
|
|
172
297
|
"step-list.command": "Command",
|
|
173
298
|
"step-list.operation": "Operation",
|
|
@@ -176,16 +301,43 @@
|
|
|
176
301
|
"step-list.workflowId": "Workflow id",
|
|
177
302
|
"step-list.workflowOption": "{{name}} ({{id}})",
|
|
178
303
|
"step-list.forEach": "forEach",
|
|
304
|
+
"step-list.forEach.selection": "Selection",
|
|
305
|
+
"step-list.forEach.source": "From array",
|
|
306
|
+
"step-list.forEach.sourcePath": "Array source",
|
|
307
|
+
"step-list.forEach.sourceHint": "Path into job context (e.g. decide-repos.repos). Each item becomes that child's inputValues; the child workflow must have appliesTo: none.",
|
|
179
308
|
"step-list.until.type": "until.type",
|
|
180
309
|
"step-list.until.stepId": "until.stepId",
|
|
181
310
|
"step-list.until.field": "until.field",
|
|
182
311
|
"step-list.until.value": "until.value",
|
|
312
|
+
"step-list.fieldCondition.type": "Predicate",
|
|
313
|
+
"step-list.fieldCondition.stepId": "Step id",
|
|
314
|
+
"step-list.fieldCondition.field": "Field",
|
|
315
|
+
"step-list.fieldCondition.value": "Value",
|
|
316
|
+
"step-list.condition.title": "Only run if…",
|
|
317
|
+
"step-list.condition.hint": "Skipped when this condition holds (same predicates as loop until). Field empty skips when that field is empty or absent.",
|
|
183
318
|
"step-list.maxIterations": "Max iterations",
|
|
184
319
|
"step-list.onMaxIterations.action": "onMaxIterations.action",
|
|
185
320
|
"step-list.nestedSteps": "Nested steps",
|
|
321
|
+
"step-list.availableParameters.title": "Available Parameters",
|
|
322
|
+
"step-list.availableParameters.hint": "Click a token to copy it. Only values already available when this step runs are listed.",
|
|
323
|
+
"step-list.availableParameters.inputs": "Workflow Inputs",
|
|
324
|
+
"step-list.availableParameters.subject": "Subject",
|
|
325
|
+
"step-list.availableParameters.previous": "Previous Steps",
|
|
326
|
+
"step-list.availableParameters.loopOverwrite": "Loop iterations overwrite this value; later references see the most recent pass.",
|
|
327
|
+
"step-list.availableParameters.noOutput": "No output fields",
|
|
328
|
+
"step-list.availableParameters.providerOpaque": "Result of {{action}} — inspect at runtime",
|
|
329
|
+
"step-list.availableParameters.interactionOpaque": "Shape depends on the questions asked",
|
|
330
|
+
"step-list.availableParameters.arrayOf": "Array of { {{fields}} }",
|
|
331
|
+
"step-list.availableParameters.subjectTypeUnion": "Actual fields depend on which subject type the bound View resolves to.",
|
|
332
|
+
"step-list.availableParameters.subWorkflowArray": "Array of { fanOutIndex, jobId, output }",
|
|
333
|
+
"step-list.availableParameters.subWorkflowForEach": "Selection fans out one child per selected subject. From array (forEach.source) fans out over a prior-step array path; each item is that child's inputValues and the child workflow must be appliesTo: none.",
|
|
334
|
+
"step-list.availableParameters.condition": "Any step may set condition (field_empty or field_equals). When the condition holds, the step is skipped entirely. References to a skipped step's output resolve to undefined, the same as any step that never ran.",
|
|
335
|
+
"step-list.availableParameters.noPrevious": "No previous steps",
|
|
336
|
+
"step-list.availableParameters.missingId": "Set an id to copy tokens",
|
|
186
337
|
"step-list.stepType.agent": "Agent",
|
|
187
338
|
"step-list.stepType.interaction": "Human interaction",
|
|
188
339
|
"step-list.stepType.shell": "Shell",
|
|
340
|
+
"step-list.stepType.extract": "Extract",
|
|
189
341
|
"step-list.stepType.git": "Git",
|
|
190
342
|
"step-list.stepType.provider_action": "Provider action",
|
|
191
343
|
"step-list.stepType.sub_workflow": "Sub workflow",
|
|
@@ -197,6 +349,7 @@
|
|
|
197
349
|
"step-list.interaction.questionnaire": "Questionnaire",
|
|
198
350
|
"step-list.interaction.confirmation": "Confirmation",
|
|
199
351
|
"step-list.interaction.conversation": "Conversation",
|
|
352
|
+
"step-list.interaction.comment_review": "Comment review",
|
|
200
353
|
"step-list.notifyMode.inherit": "inherit (undefined)",
|
|
201
354
|
"step-list.notifyMode.on": "on (true)",
|
|
202
355
|
"step-list.notifyMode.off": "off (false)",
|
|
@@ -205,6 +358,15 @@
|
|
|
205
358
|
"step-list.gitOperation.create_branch": "Create branch",
|
|
206
359
|
"step-list.gitOperation.commit": "Commit",
|
|
207
360
|
"step-list.gitOperation.push": "Push",
|
|
361
|
+
"step-list.createWorktree.mode": "Mode",
|
|
362
|
+
"step-list.createWorktree.newBranch": "New branch",
|
|
363
|
+
"step-list.createWorktree.existingBranch": "Existing branch",
|
|
364
|
+
"step-list.createWorktree.repoPath": "Repository path",
|
|
365
|
+
"step-list.createWorktree.catalogPlaceholder": "Choose from catalog",
|
|
366
|
+
"step-list.createWorktree.browseManually": "Or browse manually",
|
|
367
|
+
"step-list.createWorktree.baseBranch": "Base branch",
|
|
368
|
+
"step-list.createWorktree.branchName": "Branch name",
|
|
369
|
+
"step-list.createWorktree.branch": "Branch",
|
|
208
370
|
"step-list.providerAction.get_subject": "Get subject",
|
|
209
371
|
"step-list.providerAction.get_comments": "Get comments",
|
|
210
372
|
"step-list.providerAction.post_comment": "Post comment",
|
|
@@ -232,6 +394,13 @@
|
|
|
232
394
|
"step-list.onMaxIterations.fail": "Fail",
|
|
233
395
|
"step-list.onMaxIterations.continue": "Continue",
|
|
234
396
|
"step-list.onMaxIterations.ask_human": "Ask human",
|
|
397
|
+
"step-list.extract.source": "Source",
|
|
398
|
+
"step-list.extract.path": "Path",
|
|
399
|
+
"step-list.extract.pattern": "Pattern",
|
|
400
|
+
"step-list.extract.onNoMatch": "When there is no match",
|
|
401
|
+
"step-list.onNoMatch.fail": "Fail",
|
|
402
|
+
"step-list.onNoMatch.empty": "Continue with empty",
|
|
403
|
+
"step-list.onNoMatch.ask_human": "Ask human",
|
|
235
404
|
"settings.title": "Settings",
|
|
236
405
|
"settings.lede": "Configure provider instances and store API keys. Adding or changing an instance requires a restart; the default agent can be changed immediately.",
|
|
237
406
|
"settings.addProvider": "Add provider",
|
|
@@ -307,11 +476,17 @@
|
|
|
307
476
|
"settings.apiKey.setSuccess": "API key saved",
|
|
308
477
|
"settings.apiKey.setFailed": "Failed to save API key",
|
|
309
478
|
"settings.apiKey.setFailedAfterSave": "Provider saved, but the API key could not be stored. Enter the key again to finish setup.",
|
|
479
|
+
"settings.testConnection": "Test connection",
|
|
480
|
+
"settings.testConnection.connected": "Connected",
|
|
481
|
+
"settings.testConnection.failed": "Connection failed",
|
|
482
|
+
"settings.testConnection.mismatch": "Identity mismatch",
|
|
310
483
|
"settings.model.label": "Default model",
|
|
311
484
|
"settings.model.placeholder": "Provider default",
|
|
312
485
|
"settings.model.fetch": "Fetch available models",
|
|
313
486
|
"settings.model.fetchFailed": "Could not fetch models",
|
|
314
487
|
"settings.model.hint": "Leave unset to use the provider's own default. Fetch after entering an API key.",
|
|
488
|
+
"settings.maxConcurrent.label": "Max concurrent steps",
|
|
489
|
+
"settings.maxConcurrent.hint": "How many agent steps this instance may run at once. Other instances are unaffected.",
|
|
315
490
|
"settings.restartRequired.message": "Some changes require restarting Knoflows to take effect",
|
|
316
491
|
"settings.saveSuccess": "Settings saved",
|
|
317
492
|
"settings.saveFailed": "Failed to save settings",
|
|
@@ -319,8 +494,10 @@
|
|
|
319
494
|
"settings.loadFailed": "Failed to load settings",
|
|
320
495
|
"workflows.list.title": "Workflows",
|
|
321
496
|
"workflows.list.createButton": "Create workflow",
|
|
497
|
+
"workflows.list.browseLibrary": "Browse library",
|
|
322
498
|
"workflows.list.emptyState": "No workflows yet. Create one to get started.",
|
|
323
499
|
"workflows.list.emptyCreateButton": "Create your first workflow",
|
|
500
|
+
"workflows.list.emptyBrowseLibrary": "Browse the library",
|
|
324
501
|
"workflows.list.stepCount": "{{count}} steps",
|
|
325
502
|
"workflows.list.noDescription": "No description",
|
|
326
503
|
"workflows.list.filterBySubjectHandling": "Filter by items",
|
|
@@ -334,6 +511,29 @@
|
|
|
334
511
|
"workflows.list.column.steps": "Steps",
|
|
335
512
|
"workflows.list.column.actions": "Actions",
|
|
336
513
|
"workflows.list.loadFailed": "Failed to load workflows",
|
|
514
|
+
"workflows.list.export": "Export",
|
|
515
|
+
"workflows.list.import": "Import",
|
|
516
|
+
"workflows.list.importFailed": "Failed to import workflow",
|
|
517
|
+
"workflows.list.importInvalidJson": "This file is not valid JSON",
|
|
518
|
+
"workflows.list.importInvalidSchema": "This file is not a valid workflow definition",
|
|
519
|
+
"workflows.list.downloadInstructions": "Download Agent Instructions",
|
|
520
|
+
"workflows.list.exportFailed": "Failed to export workflow",
|
|
521
|
+
"workflows.list.instructionsFailed": "Failed to download agent instructions",
|
|
522
|
+
"workflows.import.conflictTitle": "Import conflict",
|
|
523
|
+
"workflows.import.conflictBody": "A workflow named '{{name}}' already exists",
|
|
524
|
+
"workflows.import.update": "Update",
|
|
525
|
+
"workflows.import.createNew": "Create New",
|
|
526
|
+
"workflow-library.title": "Workflow library",
|
|
527
|
+
"workflow-library.lede": "Copy an example into your workspace. Once added, it is yours to edit.",
|
|
528
|
+
"workflow-library.source.example": "Example",
|
|
529
|
+
"workflow-library.source.community": "Community",
|
|
530
|
+
"workflow-library.source.official": "Official",
|
|
531
|
+
"workflow-library.previewSteps": "Preview steps",
|
|
532
|
+
"workflow-library.hideSteps": "Hide steps",
|
|
533
|
+
"workflow-library.add": "Add to my workflows",
|
|
534
|
+
"workflow-library.adding": "Adding…",
|
|
535
|
+
"workflow-library.loadFailed": "Failed to load the workflow library",
|
|
536
|
+
"workflow-library.addFailed": "Failed to add this workflow",
|
|
337
537
|
"views.list.title": "Views",
|
|
338
538
|
"views.list.createButton": "Create view",
|
|
339
539
|
"views.list.emptyState": "No views yet. Create one to get started.",
|
|
@@ -349,7 +549,7 @@
|
|
|
349
549
|
"views.list.column.query": "Query",
|
|
350
550
|
"views.list.column.actions": "Actions",
|
|
351
551
|
"views.editor.titleNew": "New view",
|
|
352
|
-
"views.editor.titleEdit": "Edit view · {{
|
|
552
|
+
"views.editor.titleEdit": "Edit view · {{name}}",
|
|
353
553
|
"views.editor.backToList": "Back to views",
|
|
354
554
|
"views.editor.name": "Name",
|
|
355
555
|
"views.editor.workflow": "Workflow",
|
|
@@ -406,7 +606,7 @@
|
|
|
406
606
|
"shortcuts.list.runFailed": "Failed to start shortcut",
|
|
407
607
|
"shortcuts.list.deleteFailed": "Failed to delete shortcut",
|
|
408
608
|
"shortcuts.editor.titleNew": "New shortcut",
|
|
409
|
-
"shortcuts.editor.titleEdit": "Edit shortcut · {{
|
|
609
|
+
"shortcuts.editor.titleEdit": "Edit shortcut · {{name}}",
|
|
410
610
|
"shortcuts.editor.backToList": "Back to shortcuts",
|
|
411
611
|
"shortcuts.editor.name": "Name",
|
|
412
612
|
"shortcuts.editor.workflow": "Workflow",
|
|
@@ -419,10 +619,14 @@
|
|
|
419
619
|
"batches.detail.loadFailed": "Failed to load batch",
|
|
420
620
|
"batches.detail.subjectCount": "{{count}} subjects",
|
|
421
621
|
"batches.detail.membersHeading": "Member jobs",
|
|
622
|
+
"batches.detail.cancel": "Cancel batch",
|
|
623
|
+
"batches.detail.cancelling": "Cancelling…",
|
|
624
|
+
"batches.errors.cancelFailed": "Failed to cancel batch",
|
|
422
625
|
"batches.status.running": "Running",
|
|
423
626
|
"batches.status.completed": "Completed",
|
|
424
627
|
"batches.status.completed_with_issues": "Completed with issues",
|
|
425
628
|
"batches.status.failed": "Failed",
|
|
629
|
+
"batches.status.cancelled": "Cancelled",
|
|
426
630
|
"batches.triggeredBy.schedule": "Schedule",
|
|
427
631
|
"batches.triggeredBy.view_bulk": "View (all matching)",
|
|
428
632
|
"batches.triggeredBy.multiselect": "Multiselect"
|