codexmate 0.0.56 → 0.1.1
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 +2 -2
- package/README.vi.md +1 -0
- package/README.zh.md +2 -2
- package/cli/openai-bridge-retry.js +62 -0
- package/cli/openai-bridge-runtime.js +1819 -0
- package/cli/openai-bridge.js +137 -2048
- package/cli.js +749 -133
- package/lib/task-orchestrator.js +90 -21
- package/lib/task-workspace-chat.js +292 -0
- package/package.json +2 -2
- package/web-ui/app.js +67 -131
- package/web-ui/modules/app.computed.main-tabs.mjs +304 -7
- package/web-ui/modules/app.methods.agents.mjs +192 -1
- package/web-ui/modules/app.methods.claude-config.mjs +65 -25
- package/web-ui/modules/app.methods.navigation.mjs +67 -83
- package/web-ui/modules/app.methods.openclaw-editing.mjs +3 -6
- package/web-ui/modules/app.methods.providers.mjs +40 -10
- package/web-ui/modules/app.methods.session-actions.mjs +1 -12
- package/web-ui/modules/app.methods.session-browser.mjs +23 -54
- package/web-ui/modules/app.methods.session-trash.mjs +0 -1
- package/web-ui/modules/app.methods.startup-claude.mjs +16 -31
- package/web-ui/modules/app.methods.task-orchestration.mjs +347 -8
- package/web-ui/modules/app.methods.tool-config-permissions.mjs +0 -3
- package/web-ui/modules/app.methods.web-ui-preferences.mjs +442 -68
- package/web-ui/modules/config-template-confirm-pref.mjs +2 -3
- package/web-ui/modules/i18n/locales/en.mjs +181 -30
- package/web-ui/modules/i18n/locales/ja.mjs +178 -27
- package/web-ui/modules/i18n/locales/vi.mjs +180 -29
- package/web-ui/modules/i18n/locales/zh-tw.mjs +181 -30
- package/web-ui/modules/i18n/locales/zh.mjs +183 -32
- package/web-ui/modules/i18n.mjs +5 -12
- package/web-ui/modules/sessions-filters-url.mjs +1 -2
- package/web-ui/partials/index/layout-header.html +44 -38
- package/web-ui/partials/index/modals-basic.html +26 -0
- package/web-ui/partials/index/panel-orchestration.html +489 -282
- package/web-ui/partials/index/panel-prompts.html +66 -3
- package/web-ui/res/web-ui-render.precompiled.js +1181 -604
- package/web-ui/styles/layout-shell.css +157 -1
- package/web-ui/styles/modals-core.css +173 -0
- package/web-ui/styles/navigation-panels.css +11 -0
- package/web-ui/styles/responsive.css +32 -0
- package/web-ui/styles/task-orchestration.css +2161 -4
|
@@ -143,10 +143,13 @@ const en = Object.freeze({
|
|
|
143
143
|
'side.config': 'Config',
|
|
144
144
|
'side.sessions': 'Sessions',
|
|
145
145
|
'side.prompts': 'Prompts',
|
|
146
|
+
'side.prompts.meta': 'Prompt files and presets',
|
|
146
147
|
'side.plugins': 'Plugins',
|
|
147
148
|
'side.system': 'System',
|
|
148
149
|
'side.orchestration': 'Tasks',
|
|
149
150
|
'side.skills': 'Skills',
|
|
151
|
+
'side.collapse': 'Collapse sidebar',
|
|
152
|
+
'side.expand': 'Expand sidebar',
|
|
150
153
|
|
|
151
154
|
// Side rail items
|
|
152
155
|
'side.overview.doctor': 'Doctor',
|
|
@@ -165,19 +168,21 @@ const en = Object.freeze({
|
|
|
165
168
|
'side.update.currentOnly': 'Current v{current}',
|
|
166
169
|
'side.update.retry': 'Retry version check',
|
|
167
170
|
'side.config.codex': 'Codex',
|
|
168
|
-
'side.config.codex.meta': 'Provider
|
|
171
|
+
'side.config.codex.meta': 'Provider · Model',
|
|
169
172
|
'side.config.claude': 'Claude Code',
|
|
170
|
-
'side.config.claude.meta': '
|
|
173
|
+
'side.config.claude.meta': 'Settings',
|
|
171
174
|
'side.config.openclaw': 'OpenClaw',
|
|
172
|
-
'side.config.openclaw.meta': 'JSON5
|
|
175
|
+
'side.config.openclaw.meta': 'JSON5 · AGENTS',
|
|
173
176
|
'side.config.opencode': 'OpenCode',
|
|
174
|
-
'side.config.opencode.meta': '
|
|
177
|
+
'side.config.opencode.meta': 'Provider',
|
|
175
178
|
'side.sessions.browser': 'Session Browser',
|
|
176
179
|
'side.sessions.browser.meta': 'Browse / Export / Cleanup',
|
|
177
180
|
'side.prompts.agents': 'AGENTS.md',
|
|
178
181
|
'side.prompts.agents.meta': 'Codex prompt file',
|
|
179
182
|
'side.prompts.claude': 'CLAUDE.md',
|
|
180
183
|
'side.prompts.claude.meta': 'Claude prompt file',
|
|
184
|
+
'side.prompts.presets': 'Preset pool',
|
|
185
|
+
'side.prompts.presets.meta': 'Save and paste presets',
|
|
181
186
|
'side.plugins.tools': 'Prompt Tools',
|
|
182
187
|
'side.plugins.tools.meta': 'Templates / Variables',
|
|
183
188
|
'side.plugins.templatesCount': '{count} templates',
|
|
@@ -202,7 +207,7 @@ const en = Object.freeze({
|
|
|
202
207
|
'title.config': 'Local Configuration Console',
|
|
203
208
|
'title.sessions': 'Sessions & Export',
|
|
204
209
|
'title.usage': 'Local Usage & Trends',
|
|
205
|
-
'title.orchestration': 'Task
|
|
210
|
+
'title.orchestration': 'Task Thread',
|
|
206
211
|
'title.market': 'Skills Install & Sync',
|
|
207
212
|
'title.plugins': 'Plugins & Templates',
|
|
208
213
|
'title.docs': 'CLI Install & Docs',
|
|
@@ -213,7 +218,7 @@ const en = Object.freeze({
|
|
|
213
218
|
'subtitle.config': 'Manage local configs and models.',
|
|
214
219
|
'subtitle.sessions': 'Browse and export sessions.',
|
|
215
220
|
'subtitle.usage': 'View usage for the last 7/30 days.',
|
|
216
|
-
'subtitle.orchestration': '
|
|
221
|
+
'subtitle.orchestration': 'Chat with Codexmate, then send /plan when the task is ready.',
|
|
217
222
|
'subtitle.market': 'Manage local skills.',
|
|
218
223
|
'subtitle.plugins': 'Manage reusable prompt templates and plugins.',
|
|
219
224
|
'subtitle.docs': 'CLI install commands and troubleshooting.',
|
|
@@ -221,6 +226,32 @@ const en = Object.freeze({
|
|
|
221
226
|
'subtitle.prompts': 'Edit AGENTS.md and CLAUDE.md.',
|
|
222
227
|
'prompts.subTab.codex': 'AGENTS.md (Codex)',
|
|
223
228
|
'prompts.subTab.project': 'CLAUDE.md',
|
|
229
|
+
'prompts.subTab.presets': 'Preset pool',
|
|
230
|
+
'prompts.presets.title': 'Presets',
|
|
231
|
+
'prompts.presets.hint': 'Manage presets.',
|
|
232
|
+
'prompts.presets.namePlaceholder': 'Preset name',
|
|
233
|
+
'prompts.presets.selectPlaceholder': 'Choose preset…',
|
|
234
|
+
'prompts.presets.saveCurrent': 'Save preset',
|
|
235
|
+
'prompts.presets.empty': 'No presets yet',
|
|
236
|
+
'prompts.presets.updatedAt': 'Updated: {time}',
|
|
237
|
+
'prompts.presets.renameAria': 'Rename prompt preset',
|
|
238
|
+
'prompts.presets.open': 'Open preset pool',
|
|
239
|
+
'prompts.presets.addCurrent': 'Add to preset pool',
|
|
240
|
+
'prompts.presets.defaultName.project': 'Project CLAUDE.md - {path}',
|
|
241
|
+
'prompts.presets.error.emptyName': 'Preset name cannot be empty',
|
|
242
|
+
'prompts.presets.error.emptyContent': 'Preset content cannot be empty',
|
|
243
|
+
'prompts.presets.error.duplicateName': 'A preset with this name already exists',
|
|
244
|
+
'prompts.presets.confirm.addCurrentTitle': 'Add to preset pool?',
|
|
245
|
+
'prompts.presets.confirm.addCurrentMessage': 'Save as “{name}”.',
|
|
246
|
+
'prompts.presets.confirm.overwriteTitle': 'Overwrite preset?',
|
|
247
|
+
'prompts.presets.confirm.overwriteMessage': 'A preset named “{name}” already exists. Overwrite it with the current editor content?',
|
|
248
|
+
'prompts.presets.confirm.overwriteConfirm': 'Overwrite',
|
|
249
|
+
'prompts.presets.confirm.deleteTitle': 'Delete preset?',
|
|
250
|
+
'prompts.presets.confirm.deleteMessage': 'Delete preset “{name}”? This cannot be undone.',
|
|
251
|
+
'prompts.presets.toast.saved': 'Preset saved',
|
|
252
|
+
'prompts.presets.toast.pasted': 'Pasted, not saved.',
|
|
253
|
+
'prompts.presets.toast.renamed': 'Preset renamed',
|
|
254
|
+
'prompts.presets.toast.deleted': 'Preset deleted',
|
|
224
255
|
'prompts.project.pathLabel': 'Project path (optional)',
|
|
225
256
|
'prompts.project.selectPlaceholder': '-- Global (~/.claude/CLAUDE.md) --',
|
|
226
257
|
'prompts.project.manualPlaceholder': 'Or enter a project root path...',
|
|
@@ -486,6 +517,8 @@ const en = Object.freeze({
|
|
|
486
517
|
'modal.claudeConfigEdit.title': 'Edit Claude Code config',
|
|
487
518
|
'field.useBuiltinTransform': 'Use built-in transform (OpenAI compatible)',
|
|
488
519
|
'hint.useBuiltinTransform': 'When enabled, base_url points to codexmate built-in transform service; Codex token is fixed to codexmate.',
|
|
520
|
+
'field.transformMaxRetries': 'Built-in transform retries',
|
|
521
|
+
'hint.transformMaxRetries': 'Default 2, minimum 2; number of retries after the first failed attempt.',
|
|
489
522
|
|
|
490
523
|
// Config template / agents modals
|
|
491
524
|
'modal.configTemplate.label': 'config.toml template',
|
|
@@ -958,19 +991,105 @@ const en = Object.freeze({
|
|
|
958
991
|
'usage.range.7d.short': 'Last 7 days',
|
|
959
992
|
'usage.range.30d.short': 'Last 30 days',
|
|
960
993
|
'orchestration.queueStats': 'Queue: {running} running · {queued} queued',
|
|
961
|
-
'orchestration.
|
|
962
|
-
'orchestration.
|
|
963
|
-
'orchestration.
|
|
994
|
+
'orchestration.rebuilding.status': 'Paused',
|
|
995
|
+
'orchestration.rebuilding.title': 'Rebuilding',
|
|
996
|
+
'orchestration.rebuilding.body': 'Task orchestration is visible but disabled for now.',
|
|
997
|
+
'orchestration.hero.kicker': 'ORCHESTRATION',
|
|
998
|
+
'orchestration.hero.title': 'Task orchestration',
|
|
999
|
+
'orchestration.hero.subtitle': 'Plan, run, and trace tasks with workspace and thread context.',
|
|
1000
|
+
'orchestration.quick.kicker': 'Task input',
|
|
1001
|
+
'orchestration.quick.title': 'Enter a task objective',
|
|
1002
|
+
'orchestration.quick.subtitle': 'Describe the objective, constraints, and acceptance criteria. Use /plan to preview before running.',
|
|
1003
|
+
'orchestration.quick.caption': 'Enter appends a request; /plan previews; Start work plans and runs.',
|
|
1004
|
+
'orchestration.quick.templates.reviewFix.meta': 'Fix review feedback and validate regressions.',
|
|
1005
|
+
'orchestration.quick.templates.planOnly.meta': 'Investigate first without writing files.',
|
|
1006
|
+
'orchestration.quick.templates.workflowBatch.meta': 'Reuse local workflows for repeatable checks.',
|
|
1007
|
+
'orchestration.chat.input.label': 'Task message',
|
|
1008
|
+
'orchestration.chat.input.placeholder': 'Describe the objective, constraints, and acceptance criteria. Type /plan to preview.',
|
|
1009
|
+
'orchestration.chat.input.hint': 'Workspace, thread, and run mode can be adjusted in Advanced.',
|
|
1010
|
+
'orchestration.chat.context.aria': 'Task context',
|
|
1011
|
+
'orchestration.chat.context.workspace.auto': 'Workspace auto-detected',
|
|
1012
|
+
'orchestration.chat.context.workspace.value': 'Workspace {value}',
|
|
1013
|
+
'orchestration.chat.context.thread.auto': 'Thread auto-generated',
|
|
1014
|
+
'orchestration.chat.context.thread.value': 'Thread {value}',
|
|
1015
|
+
'orchestration.chat.context.sequence.empty': 'Sequence: waiting for request 1',
|
|
1016
|
+
'orchestration.chat.context.sequence.value': 'Sequence: {count} request(s)',
|
|
1017
|
+
'orchestration.privacy.workspace.selected': 'Workspace selected',
|
|
1018
|
+
'orchestration.privacy.thread.selected': 'Thread selected',
|
|
1019
|
+
'orchestration.chat.thread.aria': 'Task conversation',
|
|
1020
|
+
'orchestration.chat.input.send': 'Append request',
|
|
1021
|
+
'orchestration.chat.input.discuss': 'Preview plan',
|
|
1022
|
+
'orchestration.chat.input.work': 'Start work',
|
|
1023
|
+
'orchestration.chat.input.firstHint': 'This becomes request 1.',
|
|
1024
|
+
'orchestration.chat.input.workHint': 'Current input is included before execution.',
|
|
1025
|
+
'orchestration.chat.input.workCaption': 'Enter appends a request; /plan previews only; Start work plans and runs.',
|
|
1026
|
+
'orchestration.chat.input.sequenceHint': 'Sending now becomes request {count}.',
|
|
1027
|
+
'orchestration.chat.assistant.contextLabel': 'Previous context',
|
|
1028
|
+
'orchestration.chat.assistant.contextFallback': 'A previous task is selected. Continuing will inherit its thread and workspace.',
|
|
1029
|
+
'orchestration.chat.assistant.resultLabel': 'Result',
|
|
1030
|
+
'orchestration.chat.assistant.filesSummary': 'File operations: {files}',
|
|
1031
|
+
'orchestration.chat.assistant.readyLabel': 'Codexmate',
|
|
1032
|
+
'orchestration.chat.assistant.empty': 'Enter a task objective. Multiple requests run in order with context preserved.',
|
|
1033
|
+
'orchestration.chat.assistant.planLabel': 'Plan preview',
|
|
1034
|
+
'orchestration.chat.assistant.planSummary': 'Plan ready: {nodes} nodes across {waves} waves.',
|
|
1035
|
+
'orchestration.chat.assistant.sequenceReady': 'Multiple requests received. Codexmate will finish request 1 first, then continue with the remaining context.',
|
|
1036
|
+
'orchestration.chat.assistant.singleReady': 'Request received. Add another request or type /plan to preview.',
|
|
1037
|
+
'orchestration.chat.user.step': 'Request {count}',
|
|
1038
|
+
'orchestration.chat.meta.thread': 'Thread {value}',
|
|
1039
|
+
'orchestration.chat.meta.workspace': 'Workspace {value}',
|
|
1040
|
+
'orchestration.chat.meta.order': 'Sequential execution · context kept',
|
|
1041
|
+
'orchestration.chat.meta.first': 'Finish this first',
|
|
1042
|
+
'orchestration.chat.meta.afterPrevious': 'Continue after the previous request completes',
|
|
1043
|
+
'orchestration.chat.meta.contextKept': 'Context is kept on the thread',
|
|
1044
|
+
'orchestration.chat.meta.previewNext': 'Next: /plan preview',
|
|
1045
|
+
'orchestration.quick.checklist.title': 'Ready check',
|
|
1046
|
+
'orchestration.quick.checklist.subtitle': 'Only the blockers that affect execution stay visible.',
|
|
1047
|
+
'orchestration.agent.aria': 'Task orchestration state',
|
|
1048
|
+
'orchestration.agent.kicker': 'Task orchestration',
|
|
1049
|
+
'orchestration.agent.title': 'Task orchestration console',
|
|
1050
|
+
'orchestration.agent.subtitle': 'Select a workspace and session, run tasks, and inspect execution details.',
|
|
1051
|
+
'orchestration.agent.state.ready': 'Ready',
|
|
1052
|
+
'orchestration.agent.state.planning': 'Planning',
|
|
1053
|
+
'orchestration.agent.state.running': 'Running',
|
|
1054
|
+
'orchestration.agent.surface.workspace': 'Workspace',
|
|
1055
|
+
'orchestration.agent.surface.session': 'Context',
|
|
1056
|
+
'orchestration.agent.surface.mode': 'Mode',
|
|
1057
|
+
'orchestration.agent.surface.trace': 'Trace',
|
|
1058
|
+
'orchestration.agent.surface.runs': 'runs',
|
|
1059
|
+
'orchestration.agent.surface.queue': 'queued',
|
|
1060
|
+
'orchestration.agent.trace.title': 'Live trace',
|
|
1061
|
+
'orchestration.agent.trace.plan': 'Plan nodes',
|
|
1062
|
+
'orchestration.agent.trace.queue': 'Queue',
|
|
1063
|
+
'orchestration.agent.trace.runs': 'Runs',
|
|
1064
|
+
'orchestration.agent.trace.nodes': 'Run nodes',
|
|
1065
|
+
'orchestration.quick.status.title': 'Current draft',
|
|
1066
|
+
'orchestration.workspace.aria': 'Workspace and sessions',
|
|
1067
|
+
'orchestration.workspace.title': 'Workspace',
|
|
1068
|
+
'orchestration.workspace.subtitle': 'Pick a project, then create or resume sessions for it.',
|
|
1069
|
+
'orchestration.workspace.selector': 'Workspace selector',
|
|
1070
|
+
'orchestration.workspace.counts': '{runs} runs · {queue} queue',
|
|
1071
|
+
'orchestration.workspace.newSession': '+ New',
|
|
1072
|
+
'orchestration.workspace.sessions.title': 'Records',
|
|
1073
|
+
'orchestration.workspace.sessions.empty.title': 'No records yet',
|
|
1074
|
+
'orchestration.workspace.sessions.empty.subtitle': 'Create a record or refresh to load existing runs.',
|
|
1075
|
+
'orchestration.workspace.sessions.queueTitle': 'Queued item',
|
|
1076
|
+
'orchestration.workspace.sessions.runTitle': 'Run record',
|
|
1077
|
+
'orchestration.workspace.sessions.detailsHidden': 'Details hidden for privacy',
|
|
1078
|
+
'orchestration.workspace.pathHidden': 'Path hidden for privacy',
|
|
964
1079
|
'orchestration.draft.reset': 'Reset draft',
|
|
965
1080
|
'orchestration.summary.aria': 'Task orchestration summary',
|
|
966
1081
|
'orchestration.summary.running': 'Running',
|
|
967
1082
|
'orchestration.summary.queued': 'Queued',
|
|
968
1083
|
'orchestration.summary.runs': 'Runs',
|
|
969
|
-
'orchestration.readiness.target.label': '
|
|
970
|
-
'orchestration.readiness.target.done': '
|
|
971
|
-
'orchestration.readiness.target.missing': '
|
|
1084
|
+
'orchestration.readiness.target.label': 'Task message',
|
|
1085
|
+
'orchestration.readiness.target.done': 'Task message written',
|
|
1086
|
+
'orchestration.readiness.target.missing': 'Task message not written yet',
|
|
1087
|
+
'orchestration.readiness.sequence.label': 'Sequence',
|
|
1088
|
+
'orchestration.readiness.sequence.missing': 'Send request 1 first',
|
|
1089
|
+
'orchestration.readiness.sequence.single': 'Only request 1 is set; send another message to create request 2.',
|
|
1090
|
+
'orchestration.readiness.sequence.multiple': '{count} requests will run in order: finish request 1, then continue request 2.',
|
|
972
1091
|
'orchestration.readiness.engine.label': 'Execution strategy',
|
|
973
|
-
'orchestration.readiness.engine.
|
|
1092
|
+
'orchestration.readiness.engine.openaiChat': 'Use OpenAI Chat-compatible nodes',
|
|
974
1093
|
'orchestration.readiness.workflow.done': '{count} workflow(s) selected',
|
|
975
1094
|
'orchestration.readiness.workflow.missing': 'No Workflow ID selected yet',
|
|
976
1095
|
'orchestration.readiness.scope.label': 'Scope',
|
|
@@ -981,12 +1100,13 @@ const en = Object.freeze({
|
|
|
981
1100
|
'orchestration.readiness.preview.missing': 'No plan generated yet',
|
|
982
1101
|
'orchestration.readiness.preview.blocked': '{count} blocker(s)',
|
|
983
1102
|
'orchestration.readiness.preview.ready': 'Plan ready, {count} node(s)',
|
|
984
|
-
'orchestration.readiness.empty.title': 'Write a
|
|
985
|
-
'orchestration.readiness.empty.summary': '
|
|
1103
|
+
'orchestration.readiness.empty.title': 'Write a task message first',
|
|
1104
|
+
'orchestration.readiness.empty.summary': 'Define the objective, constraints, and acceptance criteria.',
|
|
986
1105
|
'orchestration.readiness.workflow.title': 'Workflow missing',
|
|
987
1106
|
'orchestration.readiness.workflow.summary': 'Workflow mode is selected, but no reusable workflow is specified yet.',
|
|
988
|
-
'orchestration.readiness.preview.title': '
|
|
989
|
-
'orchestration.readiness.preview.summary': '
|
|
1107
|
+
'orchestration.readiness.preview.title': 'Plan preview recommended',
|
|
1108
|
+
'orchestration.readiness.preview.summary': 'Objective is set. Use /plan to confirm nodes and dependencies.',
|
|
1109
|
+
'orchestration.readiness.preview.sequenceSummary': 'The draft is ready with {count} ordered requests: finish request 1, then continue request 2.',
|
|
990
1110
|
'orchestration.readiness.blocked.title': 'Preview has blockers',
|
|
991
1111
|
'orchestration.readiness.blocked.summary': 'The current plan still has {count} blocker(s). Resolve them first.',
|
|
992
1112
|
'orchestration.readiness.warn.title': 'Runnable with warnings',
|
|
@@ -994,8 +1114,8 @@ const en = Object.freeze({
|
|
|
994
1114
|
'orchestration.readiness.dryRun.title': 'Good fit for dry run',
|
|
995
1115
|
'orchestration.readiness.dryRun.summary': 'You can safely run a dry run now and inspect the result before executing for real.',
|
|
996
1116
|
'orchestration.readiness.ready.title': 'Ready to run',
|
|
997
|
-
'orchestration.readiness.ready.withFollowUps': '
|
|
998
|
-
'orchestration.readiness.ready.summary': '
|
|
1117
|
+
'orchestration.readiness.ready.withFollowUps': '{count} ordered requests are locked: finish request 1, then continue request 2 with context.',
|
|
1118
|
+
'orchestration.readiness.ready.summary': 'Objective is clear. Run now or enqueue.',
|
|
999
1119
|
'orchestration.step1.title': 'Start with the outcome',
|
|
1000
1120
|
'orchestration.step1.subtitle': 'Only include what affects execution.',
|
|
1001
1121
|
'orchestration.templates.title': 'Quick examples',
|
|
@@ -1010,14 +1130,15 @@ const en = Object.freeze({
|
|
|
1010
1130
|
'orchestration.templates.workflowBatch.target': 'Run a fixed set of checks using workflows and summarize results',
|
|
1011
1131
|
'orchestration.templates.workflowBatch.workflowIds': 'diagnose-config\nsafe-provider-switch',
|
|
1012
1132
|
'orchestration.templates.workflowBatch.notes': 'Produce a unified conclusion; avoid repetitive narration',
|
|
1013
|
-
'orchestration.fields.target': '
|
|
1014
|
-
'orchestration.fields.target.placeholder': 'e.g.
|
|
1015
|
-
'orchestration.fields.target.hint': 'One
|
|
1016
|
-
'orchestration.engine.
|
|
1133
|
+
'orchestration.fields.target': 'Task message',
|
|
1134
|
+
'orchestration.fields.target.placeholder': 'e.g. Fix current PR review comments, add regression tests, and avoid unrelated modules',
|
|
1135
|
+
'orchestration.fields.target.hint': 'One chat-style message is enough: outcome, constraints, and acceptance criteria.',
|
|
1136
|
+
'orchestration.engine.openaiChat': 'OpenAI Chat',
|
|
1017
1137
|
'orchestration.engine.workflow': 'Workflow',
|
|
1018
1138
|
'orchestration.runMode.write': 'Write',
|
|
1019
1139
|
'orchestration.runMode.readOnly': 'Read-only',
|
|
1020
1140
|
'orchestration.runMode.dryRun': 'Dry run',
|
|
1141
|
+
'orchestration.pills.sequenceCount': 'Sequential requests {count}',
|
|
1021
1142
|
'orchestration.pills.hasTitle': 'Title set',
|
|
1022
1143
|
'orchestration.pills.workflowCount': 'Workflows {count}',
|
|
1023
1144
|
'orchestration.pills.planNodes': 'Plan {count} nodes',
|
|
@@ -1026,11 +1147,18 @@ const en = Object.freeze({
|
|
|
1026
1147
|
'orchestration.fields.engine': 'Engine',
|
|
1027
1148
|
'orchestration.fields.runMode': 'Run mode',
|
|
1028
1149
|
'orchestration.advanced.title': 'Advanced',
|
|
1150
|
+
'orchestration.advanced.open': 'Settings',
|
|
1029
1151
|
'orchestration.fields.title': 'Title',
|
|
1030
1152
|
'orchestration.fields.title.placeholder': 'Optional. Defaults to an inferred title from target.',
|
|
1031
1153
|
'orchestration.fields.notes': 'Notes',
|
|
1032
1154
|
'orchestration.fields.notes.placeholder': 'e.g. Do incremental changes only; do not rewrite architecture',
|
|
1033
1155
|
'orchestration.fields.notes.hint': 'Add boundaries, constraints, style rules, or verification requirements.',
|
|
1156
|
+
'orchestration.fields.workspacePath': 'Workspace path',
|
|
1157
|
+
'orchestration.fields.workspacePath.placeholder': 'e.g. /home/me/project',
|
|
1158
|
+
'orchestration.fields.workspacePath.hint': 'Plan, run, and queue use this cwd; leave blank to use the server current directory.',
|
|
1159
|
+
'orchestration.fields.threadId': 'Task thread ID',
|
|
1160
|
+
'orchestration.fields.threadId.placeholder': 'Optional; generated automatically when empty',
|
|
1161
|
+
'orchestration.fields.threadId.hint': 'Use the same thread for follow-up requirements, retries, and queue tracking.',
|
|
1034
1162
|
'orchestration.fields.followUps': 'Follow-ups (one per line)',
|
|
1035
1163
|
'orchestration.fields.followUps.placeholder': 'e.g.\nAddress new review comments\nAdd regression tests',
|
|
1036
1164
|
'orchestration.fields.concurrency': 'Concurrency',
|
|
@@ -1046,14 +1174,14 @@ const en = Object.freeze({
|
|
|
1046
1174
|
'orchestration.actions.planning': 'Planning...',
|
|
1047
1175
|
'orchestration.actions.previewOnly': 'Preview only',
|
|
1048
1176
|
'orchestration.actions.preparing': 'Preparing...',
|
|
1049
|
-
'orchestration.actions.generatePlan': '
|
|
1050
|
-
'orchestration.actions.planAndRun': '
|
|
1177
|
+
'orchestration.actions.generatePlan': 'Send /plan',
|
|
1178
|
+
'orchestration.actions.planAndRun': 'Preview /plan and run',
|
|
1051
1179
|
'orchestration.actions.processing': 'Working...',
|
|
1052
1180
|
'orchestration.actions.queueAndStart': 'Queue & start',
|
|
1053
|
-
'orchestration.actions.caption': '
|
|
1054
|
-
'orchestration.stage.title': '
|
|
1055
|
-
'orchestration.stage.subtitle': '
|
|
1056
|
-
'orchestration.stage.pill.target': 'Write
|
|
1181
|
+
'orchestration.actions.caption': 'Execution refreshes the plan when needed; use queue mode for batch runs.',
|
|
1182
|
+
'orchestration.stage.title': 'Task stage',
|
|
1183
|
+
'orchestration.stage.subtitle': 'Define the objective, preview the plan, then run.',
|
|
1184
|
+
'orchestration.stage.pill.target': 'Write message',
|
|
1057
1185
|
'orchestration.stage.pill.preview': 'Preview',
|
|
1058
1186
|
'orchestration.stage.pill.run': 'Run or queue',
|
|
1059
1187
|
'orchestration.plan.title': 'Plan preview',
|
|
@@ -1061,18 +1189,22 @@ const en = Object.freeze({
|
|
|
1061
1189
|
'orchestration.plan.summary.nodes': 'Nodes',
|
|
1062
1190
|
'orchestration.plan.summary.waves': 'Waves',
|
|
1063
1191
|
'orchestration.plan.summary.engine': 'Engine',
|
|
1192
|
+
'orchestration.plan.summary.threadId': 'Thread ID',
|
|
1193
|
+
'orchestration.plan.summary.cwd': 'Workspace',
|
|
1064
1194
|
'orchestration.plan.node.write': 'write',
|
|
1065
1195
|
'orchestration.plan.node.readOnly': 'read-only',
|
|
1066
1196
|
'orchestration.labels.dependencies': 'Dependencies: ',
|
|
1067
1197
|
'orchestration.labels.error': 'Error: ',
|
|
1068
1198
|
'orchestration.workbench.title': 'Workbench',
|
|
1069
|
-
'orchestration.workbench.subtitle': '
|
|
1199
|
+
'orchestration.workbench.subtitle': 'Queue, run history, and node details.',
|
|
1070
1200
|
'orchestration.queue.start': 'Start queue',
|
|
1071
1201
|
'orchestration.queue.starting': 'Starting...',
|
|
1072
1202
|
'orchestration.workbench.tabs.aria': 'Workbench views',
|
|
1073
1203
|
'orchestration.workbench.tabs.queue': 'Queue {count}',
|
|
1074
1204
|
'orchestration.workbench.tabs.runs': 'Runs {count}',
|
|
1075
1205
|
'orchestration.workbench.tabs.detail': 'Run detail',
|
|
1206
|
+
'orchestration.workbench.queueCount': '{count} queued',
|
|
1207
|
+
'orchestration.workbench.ready': 'Ready',
|
|
1076
1208
|
'orchestration.queue.empty.title': 'No queued tasks',
|
|
1077
1209
|
'orchestration.queue.empty.subtitle': 'Queue batch tasks first, then start the runner.',
|
|
1078
1210
|
'orchestration.runs.empty.title': 'No runs yet',
|
|
@@ -1080,13 +1212,32 @@ const en = Object.freeze({
|
|
|
1080
1212
|
'orchestration.detail.refresh': 'Refresh detail',
|
|
1081
1213
|
'orchestration.detail.retry': 'Retry',
|
|
1082
1214
|
'orchestration.detail.retrying': 'Retrying...',
|
|
1215
|
+
'orchestration.detail.continueThread': 'Continue thread',
|
|
1083
1216
|
'orchestration.detail.empty.title': 'Select a run to view details',
|
|
1084
1217
|
'orchestration.detail.empty.subtitle': 'This view shows node statuses, summaries, and logs.',
|
|
1085
1218
|
'orchestration.detail.summary.status': 'Status',
|
|
1086
1219
|
'orchestration.detail.summary.duration': 'Duration',
|
|
1087
1220
|
'orchestration.detail.summary.nodes': 'Nodes',
|
|
1088
1221
|
'orchestration.detail.summary.summary': 'Summary',
|
|
1222
|
+
'orchestration.detail.context.aria': 'Task run context',
|
|
1223
|
+
'orchestration.detail.context.run': 'Run ID',
|
|
1089
1224
|
'orchestration.detail.node.meta': '{id} · attempts {attempts} · auto-fix {autoFix}',
|
|
1225
|
+
'orchestration.openai.status.title': 'OpenAI Chat runtime',
|
|
1226
|
+
'orchestration.openai.status.subtitle': 'Task nodes use the current OpenAI Chat configuration: base URL, API key, and model are checked before execution.',
|
|
1227
|
+
'orchestration.openai.status.provider': 'Provider',
|
|
1228
|
+
'orchestration.openai.status.model': 'Model',
|
|
1229
|
+
'orchestration.openai.status.endpoint': 'Endpoint',
|
|
1230
|
+
'orchestration.openai.status.apiKey': 'API key',
|
|
1231
|
+
'orchestration.openai.status.headers': 'Extra headers',
|
|
1232
|
+
'orchestration.openai.status.configured': 'Configured',
|
|
1233
|
+
'orchestration.openai.status.missing': 'Missing',
|
|
1234
|
+
'orchestration.openai.status.notSet': 'Not set',
|
|
1235
|
+
'orchestration.openai.status.notLoaded': 'Refresh to load OpenAI Chat readiness.',
|
|
1236
|
+
'orchestration.openai.status.configure': 'Configure OpenAI Chat',
|
|
1237
|
+
'orchestration.detail.node.output': 'AI output',
|
|
1238
|
+
'orchestration.detail.node.endpoint': 'Endpoint: ',
|
|
1239
|
+
'orchestration.detail.node.materializedFiles': 'Materialized files:',
|
|
1240
|
+
'orchestration.detail.node.workspaceFiles': 'Workspace files:',
|
|
1090
1241
|
'skills.localLabel': '{target} / Local skills',
|
|
1091
1242
|
'skills.counts': '{installed} installed · {importable} importable',
|
|
1092
1243
|
|