@zq-silk/yui 1.1.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/ARCHITECTURE.md +2 -1
  2. package/ARCHITECTURE.zh-CN.md +2 -1
  3. package/README.md +2 -0
  4. package/dist/cli/commandCatalog.js +344 -324
  5. package/dist/cli/commandDiscovery.js +69 -0
  6. package/dist/cli/completion.js +22 -227
  7. package/dist/cli/dynamicCompletion.js +12 -6
  8. package/dist/cli/invocationAuthority.js +2 -2
  9. package/dist/cli/invocationRouter.js +18 -7
  10. package/dist/cli/managedDiagnostics.js +2 -1
  11. package/dist/cli/updatePorts.js +0 -5
  12. package/dist/cli.js +184 -130
  13. package/dist/commands/capabilityCommands.js +5 -5
  14. package/dist/commands/controllerCommands.js +2 -1
  15. package/dist/commands/globalRoleCommands.js +86 -44
  16. package/dist/commands/grantCommands.js +48 -8
  17. package/dist/commands/taskCommands.js +157 -196
  18. package/dist/commands/taskContextCommand.js +29 -6
  19. package/dist/commands/taskFactCommands.js +10 -69
  20. package/dist/commands/taskInputCommands.js +26 -35
  21. package/dist/commands/taskPublicationCommands.js +2 -35
  22. package/dist/commands/taskPublicationVerifyCommand.js +1 -2
  23. package/dist/commands/taskUpstreamCommands.js +2 -1
  24. package/dist/context/runContextPack.js +8 -29
  25. package/dist/context/sessionBootstrapManifest.js +5 -101
  26. package/dist/context/taskContext.js +104 -41
  27. package/dist/controller/clientRuntime.js +16 -8
  28. package/dist/controller/fileSchedulerStoreAdapter.js +24 -0
  29. package/dist/controller/runtime.js +6 -0
  30. package/dist/core/controllerClient.js +46 -21
  31. package/dist/core/protocol.js +12 -7
  32. package/dist/doctor/doctor.js +4 -3
  33. package/dist/errors/cliError.js +4 -4
  34. package/dist/errors/cliFailure.js +213 -0
  35. package/dist/executor/fileRoleLaunchPlanner.js +1 -4
  36. package/dist/grant/capabilityGrant.js +13 -0
  37. package/dist/grant/taskAuthorization.js +127 -0
  38. package/dist/kernel/accessAssessment.js +1 -0
  39. package/dist/kernel/builtinCapabilities.js +88 -9
  40. package/dist/kernel/capabilityRegistry.js +64 -19
  41. package/dist/kernel/kernelPorts.js +2 -2
  42. package/dist/nativeAgent/agent.js +173 -0
  43. package/dist/nativeAgent/contracts.js +1 -0
  44. package/dist/nativeAgent/demo.js +29 -0
  45. package/dist/nativeAgent/index.js +3 -0
  46. package/dist/nativeAgent/mockProvider.js +43 -0
  47. package/dist/nativeAgent/textTools.js +156 -0
  48. package/dist/nativeAgent/validation.js +95 -0
  49. package/dist/output/boundedRead.js +118 -0
  50. package/dist/plugins/pluginService.js +98 -8
  51. package/dist/release/releaseWorkflowEngine.js +8 -1
  52. package/dist/resources/projectResourceService.js +23 -1
  53. package/dist/runtime/managedCaller.js +2 -2
  54. package/dist/runtime/managedIdentity.js +6 -0
  55. package/dist/runtime/runtimeCoherence.js +10 -8
  56. package/dist/storage/sqliteSchema.js +10 -0
  57. package/dist/storage/storageVersions.js +1 -1
  58. package/dist/storage/taskStore.js +3 -0
  59. package/dist/surface/surfaceContributions.js +3 -0
  60. package/dist/task/leaderArchive.js +111 -0
  61. package/dist/task/leaderArchiveAuthority.js +24 -0
  62. package/dist/task/taskAuthority.js +5 -10
  63. package/dist/tmux/commandExecutor.js +7 -5
  64. package/dist/web/assets/assetManifest.js +38 -22
  65. package/dist/web/assets/client/api.js +115 -0
  66. package/dist/web/assets/client/app.js +555 -863
  67. package/dist/web/assets/client/components.js +323 -897
  68. package/dist/web/assets/client/detail.js +333 -0
  69. package/dist/web/assets/client/dock.js +225 -0
  70. package/dist/web/assets/client/dom.js +55 -3
  71. package/dist/web/assets/client/evidence.js +172 -0
  72. package/dist/web/assets/client/format.js +25 -14
  73. package/dist/web/assets/client/forms.js +230 -0
  74. package/dist/web/assets/client/i18n.js +1020 -791
  75. package/dist/web/assets/client/overview.js +115 -0
  76. package/dist/web/assets/client/records.js +63 -0
  77. package/dist/web/assets/client/sections.js +313 -0
  78. package/dist/web/assets/client/sidebar.js +117 -0
  79. package/dist/web/assets/client/theme.js +61 -22
  80. package/dist/web/assets/icons.js +39 -0
  81. package/dist/web/assets/shell.js +124 -118
  82. package/dist/web/assets/styles/base.js +41 -0
  83. package/dist/web/assets/styles/components.js +167 -0
  84. package/dist/web/assets/styles/layout.js +49 -77
  85. package/dist/web/assets/styles/markdown.js +16 -24
  86. package/dist/web/assets/styles/responsive.js +33 -44
  87. package/dist/web/assets/styles/tokens.js +65 -89
  88. package/dist/web/assets/styles/views.js +289 -0
  89. package/dist/web/webServer.js +2 -1
  90. package/docs/architecture/README.md +1 -0
  91. package/docs/architecture/README.zh-CN.md +1 -0
  92. package/docs/cli-information-contract.md +107 -0
  93. package/docs/cli-information-contract.zh-CN.md +81 -0
  94. package/docs/managed-turn-and-session-runtime.md +9 -0
  95. package/docs/managed-turn-and-session-runtime.zh-CN.md +6 -0
  96. package/docs/plugin-sdk.md +7 -3
  97. package/docs/plugin-sdk.zh-CN.md +5 -2
  98. package/docs/release-workflow.md +42 -9
  99. package/docs/release-workflow.zh-CN.md +30 -7
  100. package/docs/storage-baseline.md +5 -0
  101. package/docs/testing/verification-levels.md +2 -2
  102. package/i18n/README.zh-CN.md +2 -0
  103. package/package.json +1 -1
  104. package/skills/yui-leader/SKILL.md +8 -1
  105. package/skills/yui-leader/references/authorization.md +64 -0
  106. package/skills/yui-leader/references/execution.md +18 -4
  107. package/skills/yui-leader/references/task-plugins.md +4 -2
  108. package/skills/yui-operator/SKILL.md +9 -2
  109. package/skills/yui-runtime/SKILL.md +77 -9
  110. package/skills/yui-runtime/references/publication.md +3 -1
  111. package/dist/web/assets/client/taskSummary.js +0 -350
  112. package/dist/web/assets/client/taskSurface.js +0 -616
  113. package/dist/web/assets/client/view.js +0 -608
  114. package/dist/web/assets/styles/cards.js +0 -247
  115. package/dist/web/assets/styles/widgets.js +0 -168
@@ -1,376 +1,442 @@
1
- export const I18N_SCRIPT = `
2
- const messages = {
3
- "en": {
4
- "catalog.first": "First page",
5
- "catalog.all": "All tasks",
1
+ const EN = {
2
+ "app.title": "Yui",
3
+ "a11y.skip": "Skip to task details",
4
+ "sidebar.label": "Tasks",
5
+ "sidebar.allClear": "Nothing needs you across the catalog",
6
+ "sidebar.empty": "No tasks on this page.",
7
+ "sidebar.noMatch": "No tasks match this filter.",
8
+ "sidebar.activeRuns": "Open execution records",
9
+ "sidebar.workItems": "Work items",
10
+ "search.label": "Search tasks",
11
+ "search.placeholder": "Search title, ID, tag…",
12
+ "filters.label": "Filter by status",
13
+ "filter.all": "All",
14
+ "filter.unarchived": "Open",
15
+ "filter.everything": "All tasks",
16
+ "sync.label": "Last sync",
17
+ "group.attention": "Needs you",
18
+ "group.active": "Active",
19
+ "group.draft": "Draft",
20
+ "group.completed": "Completed",
21
+ "group.cancelled": "Cancelled",
22
+ "group.archived": "Archived",
23
+ "catalog.first": "First",
24
+ "catalog.next": "Next",
25
+ "catalog.count": "{shown} of {total}",
6
26
  "catalog.clearAttention": "Clear attention filter",
7
- "catalog.next": "Next page",
8
- "catalog.count": "{shown} shown / {total} matching",
9
- "catalog.attention": "Across the catalog",
10
- "catalog.tasks": "tasks",
11
27
  "catalog.openInputs": "Open inputs",
12
- "catalog.inspectInputs": "Open the Open inputs category to inspect all affected tasks.",
13
28
  "catalog.pendingOperations": "Pending operations",
14
29
  "catalog.unknownOperations": "Unknown operations",
15
- "catalog.executionSignals": "Execution facts to inspect",
16
- "catalog.signalsHelp": "Counts cover the catalog, not just this page. Execution facts include live runs, open work and recovery signals; they do not imply failure. Open a task for its precise execution state.",
17
- "catalog.pageScope": "Task groups below show this page only. Use Next page or search to discover more.",
18
- "a11y.skip": "Skip to the main panel",
19
- "actions.answer": "Answer",
20
- "actions.back": "Back to task list",
21
- "actions.openRole": "Open session",
22
- "theme.controlRoom": "Control room",
23
- "theme.paper": "Paper ledger",
24
- "page.eyebrow": "SYSTEM OVERVIEW",
25
- "page.title": "Control room",
26
- "page.lede": "A quiet view into every task, role, and unresolved decision.",
27
- "overview.title": "Everything at a glance",
28
- "overview.lede": "Tracking {total} tasks — {active} active, {inputs} awaiting input, {completed} completed.",
29
- "overview.distribution": "Status distribution",
30
- "overview.attention": "Needs attention",
31
- "overview.attentionEmpty": "No open inputs or stalled AgentRuns.",
32
- "overview.activeNow": "Active now",
33
- "overview.activeEmpty": "No tasks are currently active.",
34
- "sync.label": "LAST SYNC",
35
- "actions.openSession": "Open Session",
36
- "actions.operator": "Operator session",
37
- "conversation.title": "Task discussion",
38
- "conversation.source": "Recorded Task messages · not a Session transcript",
39
- "conversation.show": "Discussion",
40
- "conversation.hide": "Hide discussion",
41
- "conversation.swap": "Move discussion to the other side",
42
- "conversation.resize": "Resize task discussion",
43
- "tabs.workResults": "Work & results",
44
- "tabs.executionReviews": "Execution & reviews",
45
- "tabs.historyMessages": "History & messages",
30
+ "catalog.executionSignals": "Execution facts",
31
+ "catalog.help.openInputs": "Tasks with questions waiting for your answer",
32
+ "catalog.help.pendingOperations": "Queued or running operations without a terminal record",
33
+ "catalog.help.unknownOperations": "Operations whose effect is unknown — inspect before any retry",
34
+ "catalog.help.executionSignals": "Live runs, open work and recovery signals to inspect; not failures",
46
35
  "actions.refresh": "Refresh",
47
- "actions.showLess": "Show less",
36
+ "actions.operator": "Operator",
37
+ "actions.back": "Back to tasks",
38
+ "actions.close": "Close",
39
+ "actions.answer": "Answer",
40
+ "actions.save": "Save",
41
+ "actions.submit": "Submit",
48
42
  "actions.showMore": "Show more",
43
+ "actions.showLess": "Show less",
49
44
  "actions.showRemaining": "Show {count} more",
50
- "app.title": "Yui Control Room",
51
- "author.leader": "Leader",
52
- "author.operator": "Operator",
53
- "author.system": "System",
54
- "author.user": "User",
55
- "board.eyebrow": "TASK INDEX",
56
- "board.title": "Current work",
57
- "brand.connection": "Local loopback",
58
- "brand.subtitle": "local control plane",
59
- "breadcrumb.taskList": "All work",
60
- "controls.language": "Language",
61
- "controls.theme": "Theme",
62
- "common.yes": "yes",
63
- "common.no": "no",
64
- "decision.active": "Active",
65
- "decision.superseded": "Superseded",
66
- "delivery.delivered": "Delivered",
67
- "delivery.pushed": "Pushed · awaiting provider acceptance",
68
- "delivery.pending": "Awaiting delivery",
69
- "remoteDelivery.none": "No code delivery",
70
- "remoteDelivery.unavailable": "Exact heads unavailable",
71
- "remoteDelivery.pending": "Not delivered",
72
- "remoteDelivery.uncovered": "Merged PR/MR, acceptance not covered",
73
- "remoteDelivery.unverified": "Covering merge, not verified",
74
- "remoteDelivery.partial": "Partially merged",
75
- "remoteDelivery.merged": "Merged",
76
- "detail.acceptance": "Acceptance criteria",
77
- "detail.agent": "Agent",
78
- "detail.agents": "Agents",
79
- "detail.archived": "Task archived",
80
- "detail.archivedBy": "Archived by",
81
- "detail.assignee": "Assignee",
82
- "detail.attention": "Needs your input",
83
- "detail.baseRef": "Base ref",
84
- "detail.completedBy": "Completed by",
85
- "detail.conclusion": "Task conclusion",
86
- "detail.constraints": "Constraints",
87
- "detail.decisions": "Decisions",
88
- "detail.dependsOn": "Depends on",
89
- "detail.dag": "Task DAG",
90
- "detail.cost": "Cost",
91
- "detail.tokens": "Tokens",
92
- "detail.sessionTotalTokens": "Session total tokens",
93
- "detail.maximumRequestInputTokens": "Maximum request input",
94
- "detail.toolCalls": "Tool calls",
95
- "detail.elapsed": "Task elapsed (including planning/waiting)",
96
- "detail.executionSum": "Observed native execution sum",
97
- "detail.usageScope": "Task lifetime · observed sources only · not billing totals",
98
- "detail.observedThrough": "Evidence through",
99
- "usage.reason.child-usage-overlap-unproven": "Child usage may overlap parent",
100
- "usage.reason.source-coverage-partial": "Provider source coverage is partial",
101
- "usage.reason.native-session-role-overlap": "Multiple Roles share the same native counter",
102
- "usage.reason.session-usage-unavailable": "Session usage is missing or not safely countable",
103
- "usage.reason.cumulative-not-allocatable-to-work-item": "Session cumulative usage cannot be allocated to this WorkItem",
104
- "usage.reason.request-run-attribution-conflict": "Request Run ownership is ambiguous",
105
- "usage.reason.no-attributable-request-usage": "No exactly attributable request usage",
106
- "usage.reason.session-identity-missing": "Exact Session identity is missing",
107
- "usage.reason.run-usage-unobserved": "Some Run usage is unobserved",
108
- "usage.reason.counter-overflow": "Counter exceeds safe numeric range",
109
- "usage.reason.no-token-evidence": "No token evidence",
110
- "usage.reason.tool-history-compacted": "Tool history is compacted; retained calls only",
111
- "usage.reason.nonzero-session-baseline": "Initial nonzero Session counter excluded",
112
- "usage.reason.task-lifecycle-time-missing": "Task start/end evidence is missing",
113
- "usage.reason.native-turn-history-compacted": "Complete retained Turns only; live/incomplete Turns excluded",
114
- "detail.ready": "Ready",
115
- "detail.contextSnapshots": "Context snapshots",
116
- "detail.contextBytes": "Context bytes",
117
- "detail.compression": "Compression",
118
- "detail.marginalValue": "Marginal value",
45
+ "settings.title": "Settings",
46
+ "settings.theme": "Theme",
47
+ "settings.language": "Language",
48
+ "settings.shortcuts": "Keyboard",
49
+ "theme.system": "System",
50
+ "theme.sumi": "Sumi · dark",
51
+ "theme.washi": "Washi · light",
52
+ "theme.ai": "Ai · indigo",
53
+ "shortcut.search": "Search tasks",
54
+ "shortcut.refresh": "Refresh",
55
+ "shortcut.dock": "Show or hide the session panel",
56
+ "shortcut.operator": "Operator session",
57
+ "shortcut.tabs": "Switch task sections",
58
+ "shortcut.escape": "Close panel / leave task",
59
+ "loading.dashboard": "Reading local state…",
60
+ "loading.detail": "Reading task context…",
61
+ "errors.dashboard": "Unable to read the task catalog.",
62
+ "errors.detail": "Unable to read this task.",
63
+ "errors.disconnected": "Disconnected; showing the last read.",
64
+ "confirm.leave": "This task has unsent input or an unresolved submission. Leave anyway?",
65
+ "time.justNow": "just now",
66
+ "common.none": "none",
67
+ "common.unknown": "unknown",
68
+ "common.notReported": "not reported",
69
+ "detail.unobserved": "unknown",
119
70
  "detail.partial": "partial",
120
- "detail.unavailable": "unavailable",
121
- "detail.unobserved": "unobserved",
122
- "detail.results": "Agent results",
123
- "detail.remoteDelivery": "Remote delivery",
124
- "detail.expectedHeads": "Expected heads",
125
- "detail.provisional": "provisional",
126
- "detail.allMerged": "All merged",
127
- "detail.allVerified": "All verified",
128
- "detail.integratedCoverage": "Archive --integrated coverage",
129
- "detail.satisfied": "satisfied",
130
- "detail.blocked": "blocked",
131
- "detail.desired": "Desired launch",
132
- "detail.desiredAgent": "Desired Agent",
133
- "detail.due": "Due",
134
- "detail.effective": "Effective launch",
135
- "detail.effectiveAgent": "Effective Agent",
136
- "detail.failure": "Execution failure",
137
- "detail.reviewerRun": "Reviewer AgentRun",
138
- "detail.execution": "AgentRuns",
139
- "detail.expectedOutput": "Expected output",
140
- "detail.focus": "Current focus",
141
- "detail.runtimeHealth": "Runtime health",
142
- "detail.lastProgress": "Last semantic progress",
143
- "input.freeText": "Type your answer",
144
- "input.answered": "Input answered.",
145
- "input.new": "A new input needs your attention.",
146
- "errors.answer": "Unable to answer this input.",
71
+ "overview.kicker": "Workspace",
72
+ "overview.title": "Overview",
73
+ "overview.sub": "{total} tasks · {active} active",
74
+ "overview.inbox": "Waiting on you",
75
+ "overview.inboxEmpty": "Nothing is waiting on your answer.",
76
+ "overview.inboxElsewhere": "Open questions exist outside this page. Use the Open inputs filter to find them.",
77
+ "overview.answer": "Answer",
78
+ "overview.catalog": "Across the catalog",
79
+ "overview.catalogHint": "Counts cover every task you can see, before search and status filters.",
80
+ "overview.signalsHelp": "Execution facts include live runs, open work and recovery signals. They do not imply failure; open a task for its exact state.",
81
+ "overview.tasks": "tasks",
82
+ "overview.activeNow": "Active now",
83
+ "overview.activeEmpty": "No active tasks on this page.",
84
+ "overview.recent": "Recently updated",
85
+ "overview.thisPage": "This catalog page only.",
86
+ "overview.sessions": "Session activity",
87
+ "overview.sessionsHint": "An explicit read of this page's native Sessions. Task and run counts cannot tell how many Sessions are running.",
88
+ "overview.sessionsRead": "Read Sessions",
89
+ "overview.sessionsReread": "Read again",
90
+ "overview.sessionsReading": "Reading native Sessions…",
91
+ "overview.sessionsNotRead": "Not read yet. The compact catalog never loads Session observations.",
92
+ "overview.sessionsPageChanged": "The catalog page changed; refresh it before reading Sessions.",
93
+ "overview.readAt": "Read at",
94
+ "overview.pageScope": "Lists show the current catalog page. Use search, filters or Next to discover more.",
95
+ "overview.needsYou": "Needs your answer",
96
+ "overview.moreInputs": "Some open questions are outside this bounded read. List every original question with:",
97
+ "metrics.inputs": "Waiting on you",
98
+ "metrics.active": "Active",
99
+ "metrics.draft": "Draft",
100
+ "metrics.completed": "Completed",
101
+ "metrics.total": "Total",
102
+ "crumbs.label": "Breadcrumb",
103
+ "crumbs.tasks": "Tasks",
104
+ "task.updated": "Updated",
105
+ "tabs.label": "Task sections",
106
+ "tabs.overview": "Overview",
107
+ "tabs.work": "Work",
108
+ "tabs.execution": "Execution",
109
+ "tabs.history": "History",
110
+ "tabs.details": "Details",
111
+ "now.observed": "Observed",
112
+ "now.reading": "Reading the live execution projection…",
113
+ "now.unavailable": "Live execution observation is unavailable. Task facts below are still current.",
114
+ "now.inputs": "{count} open question(s) need your answer",
115
+ "now.noInputs": "No open question needs your answer",
116
+ "now.clear": "No attention items or blockers in the current projection. That alone does not prove health.",
117
+ "now.activeRuns": "active runs",
118
+ "now.monitoringStopped": "Monitoring stopped",
119
+ "now.failClosed": "Fail-closed",
120
+ "now.nativeWait": "is waiting for user or permission input in its native Session — inspect it there; no approval request was created.",
121
+ "now.nextOwner": "Next:",
122
+ "observation.waiting": "Observing…",
123
+ "observation.available": "Observed",
124
+ "observation.unavailable": "Observation unavailable",
125
+ "observation.title": "Observations and raw runtime facts",
126
+ "observation.help": "An open execution record is not proof of Agent activity. Native admission, runtime observation and Task progress are separate facts.",
127
+ "input.kicker": "Question",
128
+ "input.freeText": "Type your answer…",
129
+ "input.from": "From",
130
+ "input.blocks": "Blocks",
131
+ "input.timeoutAt": "Auto-resolves",
132
+ "input.recommended": "Recommended",
133
+ "input.required": "Required",
134
+ "input.answered": "Answer recorded.",
135
+ "input.new": "A new question needs your answer.",
136
+ "input.unknown": "Answer outcome unknown; refresh and check the question before answering again.",
137
+ "progress.title": "Progress",
138
+ "progress.completion": "Recorded completion",
139
+ "progress.retirement": "Retirement",
140
+ "progress.archive": "Archive",
141
+ "progress.focus": "Current focus",
142
+ "progress.lastFocus": "Last working focus",
143
+ "progress.report": "Leader's report",
144
+ "progress.lastReport": "Last working report",
145
+ "progress.briefUpdated": "Brief updated",
146
+ "progress.none": "No progress summary in this read. No percentage or ETA is inferred.",
147
+ "sessions.title": "Native Sessions",
148
+ "sessions.hint": "This Task's selected Sessions. Activity is not delivery progress.",
149
+ "sessions.unavailable": "Observation unavailable or not read yet — this does not mean zero running Sessions.",
150
+ "sessions.none": "No selected native Session is recorded.",
151
+ "sessions.unobserved": "unobserved",
152
+ "sessions.waitingFor": "Waiting for:",
153
+ "sessions.facts": "Session facts and timestamps",
154
+ "sessions.role": "Role",
155
+ "sessions.lastActivity": "Last activity",
156
+ "sessions.inputUpdated": "Native input updated",
157
+ "sessions.operations": "Operations without terminal",
158
+ "sessions.background": "Background",
159
+ "sessions.identity": "Identity",
160
+ "sessions.scope": "Independent observation read at",
161
+ "session.active": "active",
162
+ "session.waiting": "waiting",
163
+ "session.quiet": "quiet",
164
+ "session.diagnostic": "needs diagnosis",
165
+ "session.unknown": "unknown",
166
+ "session.stopped": "stopped",
167
+ "session.idle": "turn ended",
168
+ "session.background": "background",
169
+ "session.noneRecorded": "No selected Session recorded",
170
+ "goal.title": "Goal and boundaries",
171
+ "goal.boundaries": "Boundaries",
172
+ "goal.approach": "Technical approach",
173
+ "goal.requirements": "Original requirements",
174
+ "goal.none": "No goal recorded in this read.",
175
+ "decisions.title": "Key decisions",
176
+ "decisions.hint": "Reports and recommendations are not user approval.",
177
+ "decisions.none": "No current decision in this read.",
178
+ "decisions.more": "All decisions in History",
179
+ "planning.title": "Planning",
180
+ "planning.withheld": "This bounded snapshot withholds run details; read the original planning run.",
181
+ "planning.none": "No planning run is included. Direct Session activity is shown separately.",
182
+ "planning.open": "The planning run is open; that alone does not prove native activity.",
183
+ "planning.settled": "The planning run reached {status}. New messages reach the same Leader and queue its next Turn.",
184
+ "planning.run": "Planning run",
185
+ "planning.withheldValue": "withheld by this snapshot",
186
+ "planning.providerTerminal": "Provider terminal",
187
+ "planning.conversation": "Provider conversation",
188
+ "planning.liveSession": "Live Leader Session",
189
+ "planning.notRunning": "not currently running",
190
+ "planning.environment": "Environment",
191
+ "planning.emptyEnvironment": "empty (valid while planning)",
192
+ "planning.updated": "Run record updated",
193
+ "work.title": "Work items",
194
+ "work.objective": "Objective",
195
+ "work.acceptance": "Acceptance",
196
+ "work.dependsOn": "Depends on",
197
+ "work.writeProjects": "Writes",
198
+ "work.candidates": "Candidates",
199
+ "work.direct": "direct",
200
+ "work.disposition": "Disposition",
201
+ "work.outcome": "Outcome",
202
+ "records.none": "No records yet.",
203
+ "records.notIncluded": "Not included in this bounded read.",
204
+ "reviews.title": "Reviews",
205
+ "reviews.hint": "Review reports are evidence, not acceptance. Missing checks are not passes.",
206
+ "review.reviewer": "Reviewer",
207
+ "review.base": "Base",
208
+ "review.run": "Run",
209
+ "evidence.title": "Results and evidence",
210
+ "evidence.files": "Saved files",
211
+ "evidence.filesHint": "Loaded on request and read at a fixed revision.",
212
+ "evidence.load": "Load file list",
213
+ "evidence.reload": "Reload list",
214
+ "evidence.notLoaded": "File list not loaded. A missing Context row does not mean there are no files.",
215
+ "evidence.noFiles": "No saved files at this revision.",
216
+ "evidence.reading": "Reading the selected revision…",
217
+ "evidence.unavailable": "Selected revision unavailable:",
218
+ "evidence.listUnavailable": "File list unavailable:",
219
+ "evidence.differentRevision": "The list is at a different revision; your selected file below is unchanged.",
220
+ "evidence.referenced": "referenced",
221
+ "evidence.copy": "Copy reference",
222
+ "evidence.copied": "Copied",
223
+ "evidence.copyManual": "Copy the reference above",
224
+ "evidence.fixedNote": "This revision stays selected across refreshes. Reading or discussing it does not accept, publish or execute it.",
225
+ "evidence.fixedText": "Fixed artifact text",
226
+ "evidence.delivery": "Delivery, review and resources",
227
+ "evidence.deliveryHint": "Local completion, review, remote delivery and cleanup are separate facts.",
228
+ "evidence.readDelivery": "Read evidence",
229
+ "evidence.observationUnavailable": "Delivery observation unavailable; original records below are still readable.",
230
+ "evidence.remote": "Remote delivery",
231
+ "evidence.expectedCommit": "Expected local commit",
232
+ "evidence.verification": "Evidence",
233
+ "evidence.adoption": "Adoption",
234
+ "evidence.readingOriginal": "Reading original checks and review bindings…",
235
+ "evidence.integrations": "Integration checks · exact recorded candidate",
236
+ "evidence.noIntegrations": "No Integration check records. Direct Leader verification may be in the completion report.",
237
+ "evidence.candidate": "Candidate",
238
+ "evidence.noCandidate": "no check candidate",
239
+ "evidence.noChecks": "No check outcomes recorded.",
240
+ "evidence.reviews": "Review bindings · not semantic approval",
241
+ "evidence.noReviews": "No Review records.",
242
+ "evidence.readReport": "Read original report",
243
+ "evidence.noReport": "No report recorded.",
244
+ "evidence.workspaces": "Retained workspaces · recorded ownership only",
245
+ "evidence.noWorkspaces": "No managed workspaces recorded.",
246
+ "evidence.cleanupNote": "No physical cleanup inspection was run. The read-only preflight does not authorize archive or cleanup:",
247
+ "evidence.originalUnavailable": "Original evidence unavailable:",
248
+ "evidence.usage": "Usage",
249
+ "roles.title": "Roles",
250
+ "roles.noActiveRun": "No active run in this read; Session activity is a separate observation.",
251
+ "role.session": "Session",
252
+ "role.noSession": "no live Session",
253
+ "role.desired": "Desired launch",
254
+ "role.drift": "change pending next launch",
255
+ "role.access": "Access",
256
+ "role.providerRetry": "Provider retry",
257
+ "role.skills": "Skills",
258
+ "role.openSession": "Open session",
259
+ "control.title": "Redirect a running Role",
260
+ "control.meta": "queue · steer · interrupt",
261
+ "control.help": "The same three actions the CLI exposes. Steer and interrupt name an exact current Turn; a mismatch fails visibly and never falls back to a queue.",
262
+ "control.action": "Action",
263
+ "control.queue": "Queue",
264
+ "control.steer": "Steer",
265
+ "control.interrupt": "Interrupt",
266
+ "control.queue.hint": "Deliver at the next opportunity",
267
+ "control.steer.hint": "Inject into the exact current Turn",
268
+ "control.interrupt.hint": "Native cancel of the current Turn",
269
+ "control.role": "Target Role",
270
+ "control.rolePlaceholder": "e.g. worker (blank = Leader for queue)",
271
+ "control.message": "Message",
272
+ "control.expectedTurn": "Expected current Turn",
273
+ "control.expectedPlaceholder": "exact attempt or native Turn id",
274
+ "control.expectedHint": "Read it from the Role's Session facts.",
275
+ "control.workItem": "Work item (optional)",
276
+ "control.then": "Then-message reference (optional)",
277
+ "control.thenPlaceholder": "an already saved task/message id",
278
+ "control.submit": "Submit control",
279
+ "runs.title": "Execution records",
280
+ "runs.hint": "Record state and delivery evidence are separate facts.",
281
+ "runs.filter": "Filter runs",
282
+ "run.instruction": "Instruction",
283
+ "run.output": "Output",
284
+ "run.failure": "Failure",
285
+ "run.lineage": "Lineage",
286
+ "jobs.title": "Operations",
287
+ "jobs.hint": "Original operation facts. Nothing here retries automatically.",
288
+ "job.queued.note": "Queued.",
289
+ "job.running.note": "Waiting for an explicit terminal receipt.",
290
+ "job.unknown-needs-attention.note": "Unknown effect — inspect the original operation; do not resend.",
291
+ "job.terminal.note": "Terminal record.",
292
+ "usage.title": "Usage",
293
+ "usage.unavailable": "Usage observation unavailable.",
294
+ "usage.tokens": "Tokens",
295
+ "usage.toolCalls": "Tool calls",
296
+ "usage.elapsed": "Elapsed",
297
+ "usage.executionSum": "Execution time",
298
+ "usage.ready": "Ready work",
299
+ "usage.contextSnapshots": "Context snapshots",
300
+ "usage.scope": "Task lifetime; only exactly attributable evidence is counted.",
301
+ "usage.observedThrough": "Observed through",
302
+ "usage.contextBytes": "Context bytes",
303
+ "history.title": "History",
304
+ "history.filter": "Filter history",
305
+ "history.all": "All",
306
+ "history.decision": "Decisions",
307
+ "history.milestone": "Milestones",
308
+ "history.message": "Messages",
309
+ "history.omitted": "This bounded read may omit older records; each can be read by reference.",
310
+ "history.resultOf": "Result of",
311
+ "history.superseded": "Superseded because",
312
+ "details.facts": "Task facts",
313
+ "details.id": "ID",
314
+ "details.status": "Status",
315
+ "details.priority": "Priority",
316
+ "details.tags": "Tags",
317
+ "details.projects": "Projects",
318
+ "details.created": "Created",
319
+ "details.updated": "Updated",
320
+ "details.workspace": "Workspace",
321
+ "details.title": "Title",
322
+ "details.context": "Context cursor and omitted references",
323
+ "details.contextHelp": "Reads never acknowledge messages. Omitted records can be located with the CLI domain queries and read by reference.",
324
+ "panels.title": "Capability panels",
325
+ "panels.reading": "Reading current contributions…",
326
+ "panels.observed": "Observed",
327
+ "panels.none": "No visible panels.",
328
+ "panels.unavailable": "Panels unavailable:",
329
+ "panels.schema": "Input schema",
330
+ "panels.input": "Query input (JSON)",
331
+ "panels.read": "Read",
332
+ "record.revision": "Revision",
333
+ "record.omitted": "Value omitted from this bounded read.",
334
+ "record.read": "Read full record",
335
+ "record.changed": "Record changed or unavailable — refresh",
336
+ "record.output": "Original execution report",
337
+ "record.diagnostic": "Execution diagnostic",
338
+ "record.rationale": "Reason and boundaries",
339
+ "store.task-message": "Message",
340
+ "store.task-decision": "Decision",
341
+ "store.task-milestone": "Milestone",
342
+ "store.task-brief": "Brief",
343
+ "store.work-item": "Work item",
344
+ "store.input-request": "Question",
345
+ "store.run": "Run",
346
+ "store.review-round": "Review",
347
+ "store.role": "Role",
348
+ "store.job": "Operation",
349
+ "dock.label": "Session panel",
350
+ "dock.discussion": "Discussion",
351
+ "dock.session": "Live session",
352
+ "dock.swap": "Swap with task details",
353
+ "dock.hide": "Hide session panel",
354
+ "dock.resize": "Resize session panel",
355
+ "dock.target": "Session target",
356
+ "discussion.title": "Task discussion",
357
+ "discussion.source": "Recorded Task messages · not a Session transcript",
358
+ "discussion.feed": "Recorded Task messages",
359
+ "discussion.empty": "No recorded messages yet. Start the discussion below.",
360
+ "discussion.omitted": "This bounded read may omit older messages; History lists their references.",
361
+ "composer.label": "Message to the Task Leader",
362
+ "composer.placeholder": "Message the Task Leader…",
363
+ "composer.send": "Send",
364
+ "composer.sendHint": "Send · Ctrl/⌘ + Enter",
365
+ "composer.closed": "Messages can be sent while a task is draft or active.",
366
+ "intent.discuss": "Discuss",
367
+ "intent.record": "Record",
368
+ "intent.develop": "Develop",
369
+ "intent.discuss.hint": "Route to planning with the Leader",
370
+ "intent.record.hint": "Save only; do not wake the Leader",
371
+ "intent.develop.hint": "Request activation for delivery",
372
+ "receipt.notSubmitted": "Not submitted",
373
+ "receipt.waiting": "Waiting for receipt",
374
+ "receipt.saved": "Saved",
375
+ "receipt.savedRevision": "Saved · revision",
376
+ "receipt.receipt": "Receipt:",
377
+ "receipt.notSubmittedBecause": "Not submitted:",
378
+ "receipt.notSavedBecause": "Not saved:",
379
+ "receipt.unknownMessage": "Outcome unknown. Reload and check saved messages before sending again",
380
+ "receipt.unknownControl": "Outcome unknown. Re-read the Session before acting; do not resend",
381
+ "receipt.unknownSave": "Save outcome unknown. Reload to read current facts before saving again",
382
+ "facet.missing": "The receipt is missing its submission facets.",
383
+ "facet.phase": "Phase",
384
+ "facet.planning": "Planning",
385
+ "facet.activation": "Activation",
386
+ "facet.delivery": "Delivery",
387
+ "phase.active": "Active — delivery context",
388
+ "phase.draft-planning": "Draft, in planning",
389
+ "phase.draft-unplanned": "Draft, not yet planned",
390
+ "planningFacet.entered": "Entered planning",
391
+ "planningFacet.continued": "Continued planning",
392
+ "planningFacet.none": "No planning change",
393
+ "activation.requested": "Activation requested",
394
+ "activation.pending": "Activation pending",
395
+ "activation.failed": "Activation failed",
396
+ "activation.manual-required": "Manual activation required",
397
+ "activation.execution-stopped": "Execution stopped; not activated",
398
+ "activation.none": "No activation",
399
+ "deliveryFacet.queued": "Leader queued to act now",
400
+ "deliveryFacet.none": "Leader not woken",
401
+ "next.activateManually": "Next: request activation with an explicit environment (yui task activation request {task} --request-id <id> --environment <plan>).",
402
+ "next.startExecution": "Next: start execution first, then request activation ({task}).",
403
+ "next.awaitActivation": "Next: waiting on pending activation {ref}.",
404
+ "next.resolveFailed": "Next: the prior activation failed ({failure}); retry with a new request or cancel {ref}.",
405
+ "terminal.idle": "Not connected",
147
406
  "terminal.connecting": "Connecting",
148
407
  "terminal.writable": "Interactive",
149
408
  "terminal.readOnly": "Read only",
150
409
  "terminal.closed": "Detached",
151
- "terminal.close": "Close terminal",
152
- "terminal.error": "Unable to open the native session.",
153
- "terminal.historyLimited": "This existing Role has a {current}-line tmux history. Exit and re-enter it to use {target} lines.",
154
- "detail.historyEmpty": "No milestones or decisions yet.",
155
- "detail.instruction": "Instruction",
156
- "detail.leaderSummary": "Leader summary",
157
- "detail.messages": "Messages",
158
- "detail.milestones": "Milestones",
159
- "detail.objective": "Objective",
160
- "detail.openInput": "Open input",
161
- "detail.outcome": "Outcome",
162
- "detail.permission": "Permission",
163
- "detail.profileIntent": "Profile intent",
164
- "detail.project": "Project",
165
- "detail.replacement": "Replacement Task",
166
- "detail.responsibilities": "Responsibilities",
167
- "detail.retired": "Task retired",
168
- "detail.cancelled": "Task cancelled",
169
- "detail.cancelledBy": "Cancelled by",
170
- "detail.retiredBy": "Retired by",
171
- "detail.reviewBase": "Review base",
172
- "detail.reviews": "Reviews",
173
- "detail.roles": "Roles",
174
- "detail.skills": "Skills",
175
- "detail.technicalApproach": "Technical approach",
176
- "detail.updated": "Updated",
177
- "detail.workItem": "Work item",
178
- "detail.workItems": "Work items",
179
- "detail.workspace": "Workspace",
180
- "detail.writeProjects": "Writable Projects",
181
- "disposition.abandoned": "Abandoned",
182
- "disposition.integrated": "Integrated",
183
- "disposition.preserved": "Preserved",
184
- "disposition.reassigned": "Continued by a newer review",
185
- "disposition.removed": "Removed",
186
- "empty.brief": "No task brief has been recorded.",
187
- "empty.none": "No items",
188
- "empty.runs": "No AgentRuns yet.",
189
- "run.recordState": "Record state",
190
- "run.delivery": "Delivery evidence",
191
- "run.delivery.unobserved": "Unobserved",
192
- "run.delivery.submitting": "Submitting",
193
- "run.delivery.deferred": "Waiting for admission — not accepted",
194
- "run.delivery.accepted": "Accepted — awaiting terminal evidence",
195
- "run.delivery.delivery-unknown": "Acceptance unknown — no automatic replay",
196
- "run.delivery.rejected": "Rejected",
197
- "run.delivery.completed": "Completed",
198
- "run.delivery.failed": "Failed",
199
- "run.delivery.cancelled": "Cancelled",
200
- "empty.tasks": "No tasks match this view.",
201
- "errors.answer": "Unable to answer this input.",
202
- "errors.dashboard": "Unable to read the dashboard.",
203
- "errors.detail": "Unable to read task detail.",
204
- "filters.label": "Filter by status",
205
- "group.active": "Active",
206
- "group.archived": "Archived",
207
- "group.attention": "Needs input",
208
- "group.draft": "Draft",
209
- "group.finished": "Completed",
210
- "group.retired": "Retired",
211
- "group.cancelled": "Cancelled",
212
- "input.answered": "Input answered.",
213
- "input.blocking": "Blocking",
214
- "input.freeText": "Type your answer",
215
- "input.new": "A new input needs your attention.",
216
- "input.recommended": "Recommended",
217
- "input.required": "Required",
218
- "input.timeoutAt": "Auto-resolves",
219
- "launch.current": "Current desired launch",
220
- "launch.drift": "Desired change pending next launch",
221
- "loading.dashboard": "Reading local state…",
222
- "loading.detail": "Reading task detail…",
223
- "messageKind.operator": "Operator",
224
- "messageDelivery.run": "Execution record (not acceptance):",
225
- "messageDelivery.blocked": "Not delivered:",
226
- "messageDelivery.pending": "Saved, awaiting admission",
227
- "messageDelivery.notification": "Leader notification; not a separate execution",
228
- "messageKind.role-result": "Role result",
229
- "messageKind.system": "System",
230
- "messageKind.user": "User",
231
- "metrics.active": "In progress",
232
- "metrics.completed": "Completed",
233
- "metrics.inputs": "Waiting on you",
234
- "metrics.label": "Task summary",
235
- "metrics.total": "Total tasks",
236
- "milestone.recorded": "Recorded",
237
- "history.milestone": "Milestone",
238
- "history.decision": "Decision",
239
- "mode.new": "New session",
240
- "mode.resume": "Resumed session",
241
- "overview.activeEmpty": "No tasks are currently active.",
242
- "overview.activeNow": "Active now",
243
- "overview.recent": "Recently updated",
244
- "overview.attention": "Needs attention",
245
- "overview.attentionEmpty": "No open inputs. Nothing is waiting on you.",
246
- "overview.distribution": "Status distribution",
247
- "overview.inbox": "Needs your input",
248
- "overview.inboxEmpty": "Nothing is waiting on you.",
249
- "overview.lede": "Tracking {total} tasks — {active} active, {inputs} awaiting input, {completed} completed.",
250
- "overview.title": "Everything at a glance",
251
- "page.eyebrow": "SYSTEM OVERVIEW",
252
- "page.lede": "A quiet view into every task, role, and unresolved decision.",
253
- "page.title": "Overview",
254
- "priority.high": "High priority",
255
- "priority.low": "Low priority",
256
- "priority.medium": "Medium priority",
257
- "priority.urgent": "Urgent",
258
- "review.completed": "Completed",
259
- "review.failed": "Failed",
260
- "review.pending": "Pending",
261
- "review.running": "Running",
262
- "reviewExec.assignment": "Frozen assignment",
263
- "reviewExec.direct": "Direct Review",
264
- "reviewExec.main": "Main Reviewer synthesis",
265
- "reviewExec.producer": "Producer",
266
- "reviewExec.replicated": "Replicated Review",
267
- "reviewExec.status.failed": "Settled failed",
268
- "reviewExec.status.open": "Open",
269
- "reviewExec.status.succeeded": "Succeeded",
270
- "role.detached": "Detached",
271
- "role.exited": "Exited",
272
- "role.failed": "Failed",
273
- "role.idle": "Idle",
274
- "role.unknown": "Unknown / not observed",
275
- "role.running": "Running",
276
- "run.active": "Active",
277
- "run.failed": "Failed",
278
- "search.label": "Search tasks",
279
- "search.placeholder": "Filter by title, ID, tag, or project…",
280
- "stats.inputs": "inputs",
281
- "stats.running": "running",
410
+ "terminal.error": "Unavailable",
411
+ "terminal.errorDetail": "Unable to open this native Session. Check that the Controller is running and the Role has a Session.",
412
+ "terminal.global": "Global",
413
+ "terminal.noTargets": "No Roles",
414
+ "terminal.emptyTitle": "Attach to a native Session",
415
+ "terminal.emptyText": "Pick a Role above. The panel shows the Session's current screen; attaching never starts or restarts an Agent.",
416
+ "terminal.cliHint": "Full terminal",
417
+ "terminal.historyLimited": "This Role has a {current}-line tmux history. Exit and re-enter it to use {target} lines.",
418
+ "global.open": "Global input",
419
+ "global.title": "Global Role input",
420
+ "global.help": "Queue is the default. A cancel request does not prove the Turn stopped.",
421
+ "global.role": "Role",
422
+ "global.inspect": "Read state",
423
+ "status.draft": "Draft",
282
424
  "status.active": "Active",
283
- "status.all": "All",
284
- "filter.unarchived": "Unarchived",
285
- "status.archived": "Archived",
286
425
  "status.completed": "Completed",
287
- "status.draft": "Draft",
288
- "status.retired": "Retired",
289
426
  "status.cancelled": "Cancelled",
290
- "sync.label": "Last sync",
291
- "tabs.exec": "AgentRuns",
292
- "tabs.focus": "Focus",
293
- "tabs.results": "Results",
294
- "tabs.history": "History",
295
- "tabs.label": "Task sections",
296
- "tabs.messages": "Messages",
297
- "tabs.reviews": "Reviews",
298
- "tabs.roles": "Roles",
299
- "tabs.summary": "Summary",
300
- "tabs.work": "Work items",
301
- "terminal.attachNote": "This panel stays attached until you close it.",
302
- "terminal.attachTitle": "Open the full Operator in a terminal",
303
- "terminal.close": "Close terminal",
304
- "terminal.closed": "Detached",
305
- "terminal.connecting": "Connecting",
306
- "terminal.error": "Unable to open the native session.",
307
- "terminal.historyLimited": "This existing Role has a {current}-line tmux history. Exit and re-enter it to use {target} lines.",
308
- "terminal.readOnly": "Read only",
309
- "terminal.writable": "Interactive",
310
- "theme.atlas": "Atlas",
311
- "theme.controlRoom": "Control room",
312
- "theme.paper": "Paper ledger",
313
- "time.justNow": "just now",
314
- "work.awaiting_acceptance": "Awaiting acceptance",
315
- "work.cancelled": "Cancelled",
316
- "work.open": "Open",
317
- "work.accepted": "Accepted",
318
- "work.completed": "Completed",
319
- "work.failed": "Failed",
320
- "work.pending": "Pending",
321
- "work.retired": "Retired",
322
- "work.running": "Running",
323
- "work.superseded": "Superseded",
324
- "workExec.title": "Execution and recovery",
325
- "workExec.shape.direct": "Direct",
326
- "workExec.shape.replicated": "Replicated",
327
- "workExec.lane.running": "Execution record open",
328
- "workExec.lane.succeeded": "Succeeded",
329
- "workExec.lane.needs-attention": "Needs attention",
330
- "workExec.lane.failed": "Failed",
331
- "workExec.lane.unknown": "Unknown",
332
- "workExec.retry": "Retry",
333
- "workExec.settle": "Settle",
334
- "workExec.main": "Main AgentRun",
335
- "workExec.candidate": "Candidate source",
336
- "workExec.next": "Next action",
337
- "workExec.owner": "owner",
338
- "workExec.none": "none",
339
- "workExec.synthesis.not-applicable": "No synthesis",
340
- "workExec.synthesis.awaiting-selection": "Leader selects synthesis sources",
341
- "workExec.synthesis.main-running": "Main execution record open",
342
- "workExec.synthesis.main-needs-attention": "Main AgentRun needs attention",
343
- "workExec.synthesis.complete": "Synthesis complete",
344
- "workExec.synthesis.unknown": "Synthesis unknown",
345
- "workExec.mainStatus.not-started": "Not started",
346
- "workExec.mainStatus.running": "Execution record open",
347
- "workExec.mainStatus.succeeded": "Succeeded",
348
- "workExec.mainStatus.needs-attention": "Needs attention",
349
- "workExec.mainStatus.unknown": "Unknown",
350
- "workExec.candidateStatus.none": "None",
351
- "workExec.candidateStatus.observed": "Observed",
352
- "workExec.candidateStatus.unknown": "Unknown",
353
- "workExec.action.execute-directly": "Leader executes directly",
354
- "workExec.action.dispatch-work": "Dispatch work",
355
- "workExec.action.wait-for-lanes": "Wait for Lanes",
356
- "workExec.action.retry-or-settle-lanes": "Retry or settle exact Lanes",
357
- "workExec.action.inspect-unknown": "Inspect missing facts",
358
- "workExec.action.select-synthesis-sources": "Select synthesis source AgentRuns",
359
- "workExec.action.wait-for-main": "Wait for main AgentRun",
360
- "workExec.action.retry-main": "Retry main AgentRun",
361
- "workExec.action.redispatch-work": "Redispatch WorkItem",
362
- "workExec.action.submit-candidate": "Submit Candidate",
363
- "workExec.action.decide-candidate": "Review or accept Candidate",
364
- "workExec.action.none": "No action",
365
- "stats.running": "running",
366
- "stats.inputs": "inputs",
367
- "exec.status.needs-leader-action": "Needs leader action",
427
+ "status.archived": "Archived",
428
+ "priority.urgent": "Urgent",
429
+ "priority.high": "High",
430
+ "priority.medium": "Medium",
431
+ "priority.low": "Low",
432
+ "exec.status.needs-leader-action": "Needs Leader action",
368
433
  "exec.status.waiting-on-agents": "Waiting on agents",
369
434
  "exec.status.waiting-user": "Waiting on you",
370
435
  "exec.status.recovering": "Recovering",
371
436
  "exec.status.attention": "Needs attention",
372
437
  "exec.status.progressing-with-attention": "Progressing with attention",
373
438
  "exec.status.blocked": "Blocked",
439
+ "exec.status.conflicted": "Conflicted",
374
440
  "exec.status.working": "Working",
375
441
  "exec.status.completed": "Completed",
376
442
  "exec.status.retired": "Retired",
@@ -388,7 +454,7 @@ const messages = {
388
454
  "exec.action.recover-execution": "Recover execution",
389
455
  "exec.action.answer-input": "Answer input",
390
456
  "exec.action.inspect-attention": "Inspect attention",
391
- "exec.action.recover-leader": "Recover leader",
457
+ "exec.action.recover-leader": "Recover Leader",
392
458
  "exec.action.resolve-blocker": "Resolve blocker",
393
459
  "exec.action.resolve-integration-conflicts": "Resolve Integration conflicts",
394
460
  "exec.action.complete-task": "Complete task",
@@ -403,413 +469,533 @@ const messages = {
403
469
  "exec.blocker.integration": "Integration",
404
470
  "exec.blocker.input": "Input",
405
471
  "exec.blocker.identity": "Identity",
406
- "exec.monitoring.stopped": "Monitoring stopped",
407
- "exec.failClosed": "Fail-closed",
408
- "exec.executors": "active",
409
- "dag.ready": "Ready",
410
- "dag.dependsOn": "Dependencies",
411
- "dag.rootCause": "Root cause",
412
- "dag.blocked": "Blocked",
413
- "dag.running": "Running",
414
- "dag.awaiting_acceptance": "Awaiting acceptance",
415
- "dag.completed": "Completed",
416
- "dag.failed": "Failed",
417
- "dag.retired": "Retired",
418
- "dag.edge.satisfied": "satisfied",
419
- "dag.edge.active": "active",
420
- "dag.edge.failed-open": "failed",
421
- "dag.edge.dead": "missing",
422
- "detail.candidates": "Candidates",
423
- "detail.disposition": "Retirement",
424
- "detail.replacementWorkItem": "Replaced by",
425
- "detail.endedAt": "Ended",
426
- "detail.workspaceDisposition": "Workspace",
427
- "detail.lineage": "Execution",
428
- "detail.requester": "Requested by",
429
- "candidate.source.direct": "Direct",
430
- "candidate.source.run": "AgentRun",
472
+ "run.active": "Active",
473
+ "run.completed": "Completed",
474
+ "run.failed": "Failed",
475
+ "run.delivery": "Delivery",
476
+ "run.delivery.unobserved": "unobserved",
477
+ "run.delivery.submitting": "submitting",
478
+ "run.delivery.deferred": "waiting for admission — not accepted",
479
+ "run.delivery.accepted": "accepted — awaiting terminal evidence",
480
+ "run.delivery.delivery-unknown": "acceptance unknown — no automatic replay",
481
+ "run.delivery.rejected": "rejected",
482
+ "run.delivery.completed": "completed",
483
+ "run.delivery.failed": "failed",
484
+ "run.delivery.cancelled": "cancelled",
431
485
  "run.purpose.execution": "Execution",
432
486
  "run.purpose.review": "Review",
487
+ "run.purpose.planning": "Planning",
488
+ "mode.new": "New session",
489
+ "mode.resume": "Resumed session",
490
+ "work.open": "Open",
491
+ "work.accepted": "Accepted",
492
+ "work.retired": "Retired",
493
+ "review.pending": "Pending",
494
+ "review.running": "Reviewing",
495
+ "review.completed": "Completed",
496
+ "review.failed": "Failed",
433
497
  "review.scope.work-item": "Work item",
434
- "review.scope.task": "Task"
435
- },
436
- "zh-CN": {
437
- "catalog.first": "回到首页",
438
- "catalog.all": "全部任务",
439
- "catalog.clearAttention": "清除关注分类筛选",
440
- "catalog.next": "下一页",
441
- "catalog.count": "显示 {shown} 项 / 匹配 {total} 项",
442
- "catalog.attention": "整个目录的关注事实",
443
- "catalog.tasks": "个任务",
444
- "catalog.openInputs": "未解决输入",
445
- "catalog.inspectInputs": "打开“未解决输入”分类,查看全部相关任务。",
446
- "catalog.pendingOperations": "进行中的操作",
447
- "catalog.unknownOperations": "结果未知的操作",
448
- "catalog.executionSignals": "可检查的执行事实",
449
- "catalog.signalsHelp": "计数覆盖整个目录,不限当前页。执行事实包含活跃运行、未完成工作及恢复信号,不表示执行失败;打开任务查看精确执行状态。",
450
- "catalog.pageScope": "以下任务分组仅展示当前页;可翻页或搜索发现更多任务。",
451
- "a11y.skip": "跳到主面板",
452
- "actions.answer": "提交回答",
453
- "actions.back": "返回任务列表",
454
- "actions.openRole": "打开会话",
455
- "theme.controlRoom": "控制室",
456
- "theme.paper": "纸本台账",
457
- "page.eyebrow": "系统概览",
458
- "page.title": "控制室",
459
- "page.lede": "安静地查看每个任务、角色与尚未解决的决策。",
460
- "overview.title": "全局概览",
461
- "overview.lede": "正在跟踪 {total} 个任务 —— {active} 个进行中,{inputs} 个待处理输入,{completed} 个已完成。",
462
- "overview.distribution": "状态分布",
463
- "overview.attention": "需要关注",
464
- "overview.attentionEmpty": "没有待处理输入或停滞运行,当前无需你介入。",
465
- "overview.activeNow": "进行中",
466
- "overview.activeEmpty": "当前没有进行中的任务。",
467
- "sync.label": "最近同步",
468
- "actions.openSession": "打开会话",
469
- "actions.operator": "Operator 会话",
470
- "conversation.title": "任务讨论",
471
- "conversation.source": "已记录的 Task 消息 · 非 Session 完整记录",
472
- "conversation.show": "讨论",
473
- "conversation.hide": "收起讨论",
474
- "conversation.swap": "将讨论移至另一侧",
475
- "conversation.resize": "调整讨论栏宽度",
476
- "tabs.workResults": "工作与结果",
477
- "tabs.executionReviews": "执行与审阅",
478
- "tabs.historyMessages": "历史与消息",
479
- "actions.refresh": "刷新",
480
- "actions.showLess": "收起",
481
- "actions.showMore": "展开更多",
482
- "actions.showRemaining": "再显示 {count} 条",
483
- "app.title": "Yui 控制室",
484
- "author.leader": "负责人",
498
+ "review.scope.task": "Task",
499
+ "job.queued": "Queued",
500
+ "job.running": "Running",
501
+ "job.succeeded": "Succeeded",
502
+ "job.failed": "Failed",
503
+ "job.timed-out": "Timed out",
504
+ "job.cancelled": "Cancelled",
505
+ "job.unknown-needs-attention": "Unknown effect",
506
+ "role.running": "Running",
507
+ "role.waiting": "Waiting",
508
+ "role.idle": "Idle",
509
+ "role.unknown": "Not observed",
510
+ "role.failed": "Failed",
511
+ "role.exited": "Exited",
512
+ "role.detached": "Detached",
513
+ "retry.waiting": "Waiting for Provider retry",
514
+ "retry.in-flight": "Retry submitted",
515
+ "retry.recovered": "Recovered",
516
+ "retry.cancelled": "Automatic retry cancelled",
517
+ "retry.exhausted": "Retry budget exhausted",
518
+ "retry.needs-attention": "Provider needs attention",
519
+ "retry.delivery-unknown": "Delivery unknown; no replay",
520
+ "decision.active": "Active",
521
+ "decision.superseded": "Superseded",
522
+ "author.user": "You",
485
523
  "author.operator": "Operator",
486
- "author.system": "系统",
487
- "author.user": "用户",
488
- "board.eyebrow": "任务索引",
489
- "board.title": "当前工作",
490
- "brand.connection": "本机回环",
491
- "brand.subtitle": "本地控制平面",
492
- "breadcrumb.taskList": "所有工作",
493
- "controls.language": "语言",
494
- "controls.theme": "主题",
495
- "common.yes": "是",
496
- "common.no": "否",
497
- "decision.active": "有效",
498
- "decision.superseded": "已替代",
499
- "delivery.delivered": "已送达",
500
- "delivery.pushed": "已推送 · 等待提供方确认",
501
- "delivery.pending": "等待送达",
502
- "remoteDelivery.none": "无代码交付",
503
- "remoteDelivery.unavailable": "精确 head 不可用",
504
- "remoteDelivery.pending": "尚未交付",
505
- "remoteDelivery.uncovered": "PR/MR 已合并,未覆盖验收",
506
- "remoteDelivery.unverified": "已覆盖合并,尚未验证",
507
- "remoteDelivery.partial": "部分合入",
508
- "remoteDelivery.merged": "已合入",
509
- "detail.acceptance": "验收标准",
510
- "detail.agent": "Agent",
511
- "detail.agents": "智能体",
512
- "detail.archived": "任务已归档",
513
- "detail.archivedBy": "归档人",
514
- "detail.assignee": "负责人",
515
- "detail.attention": "需要你的输入",
516
- "detail.baseRef": "基线引用",
517
- "detail.completedBy": "完成人",
518
- "detail.conclusion": "任务结论",
519
- "detail.constraints": "约束",
520
- "detail.decisions": "决策",
521
- "detail.dependsOn": "依赖",
522
- "detail.dag": "任务 DAG",
523
- "detail.cost": "成本",
524
- "detail.tokens": "Token",
525
- "detail.sessionTotalTokens": "Session 累计 Token",
526
- "detail.maximumRequestInputTokens": "单次请求最大输入",
527
- "detail.toolCalls": "工具调用",
528
- "detail.elapsed": "任务历时(含规划和等待)",
529
- "detail.executionSum": "已观测原生执行累计",
530
- "detail.usageScope": "Task 全生命周期 · 仅已观测来源 · 非账单总量",
531
- "detail.observedThrough": "证据截止",
532
- "usage.reason.child-usage-overlap-unproven": "子执行用量可能与父统计重叠",
533
- "usage.reason.source-coverage-partial": "Provider 来源覆盖不完整",
534
- "usage.reason.native-session-role-overlap": "多个 Role 共享同一原生计数器",
535
- "usage.reason.session-usage-unavailable": "Session 用量缺失或无法安全计数",
536
- "usage.reason.cumulative-not-allocatable-to-work-item": "Session 累计用量不能分配给此 WorkItem",
537
- "usage.reason.request-run-attribution-conflict": "请求的 Run 归属不明确",
538
- "usage.reason.no-attributable-request-usage": "没有精确归属的请求用量",
539
- "usage.reason.session-identity-missing": "缺少精确 Session 身份",
540
- "usage.reason.run-usage-unobserved": "部分 Run 没有用量证据",
541
- "usage.reason.counter-overflow": "计数超过安全数值范围",
542
- "usage.reason.no-token-evidence": "没有 token 证据",
543
- "usage.reason.tool-history-compacted": "工具历史已压缩,仅计保留调用",
544
- "usage.reason.nonzero-session-baseline": "已排除 Session 首次非零累计基线",
545
- "usage.reason.task-lifecycle-time-missing": "缺少 Task 起止证据",
546
- "usage.reason.native-turn-history-compacted": "仅计起止完整的保留 Turn,不含运行中或证据缺失的 Turn",
547
- "detail.ready": "可就绪",
548
- "detail.contextSnapshots": "上下文快照",
549
- "detail.contextBytes": "上下文字节",
550
- "detail.compression": "压缩",
551
- "detail.marginalValue": "边际价值",
552
- "detail.partial": "部分可见",
553
- "detail.unavailable": "不可用",
554
- "detail.unobserved": "未观测",
555
- "detail.results": "Agent 结果",
556
- "detail.remoteDelivery": "远端交付",
557
- "detail.expectedHeads": "预期交付头",
558
- "detail.provisional": "暂定",
559
- "detail.allMerged": "已全部合入",
560
- "detail.allVerified": "已全部验证",
561
- "detail.integratedCoverage": "归档 --integrated 覆盖",
562
- "detail.satisfied": "已满足",
563
- "detail.blocked": "未满足",
564
- "detail.desired": "期望启动配置",
565
- "detail.desiredAgent": "期望 Agent",
566
- "detail.due": "截止时间",
567
- "detail.effective": "实际启动配置",
568
- "detail.effectiveAgent": "实际 Agent",
569
- "detail.failure": "执行失败",
570
- "detail.reviewerRun": "Reviewer 执行记录",
571
- "detail.execution": "执行记录",
572
- "detail.expectedOutput": "期望产出",
573
- "detail.focus": "当前重点",
574
- "detail.runtimeHealth": "运行健康",
575
- "detail.lastProgress": "最近语义进展",
576
- "input.freeText": "输入回答",
577
- "input.answered": "输入已回答。",
578
- "input.new": "有新的输入请求需要处理。",
579
- "errors.answer": "无法回答该输入请求。",
580
- "terminal.connecting": "正在连接",
581
- "terminal.writable": "可交互",
582
- "terminal.readOnly": "只读",
583
- "terminal.closed": "已分离",
584
- "terminal.close": "关闭终端",
585
- "terminal.error": "无法打开原生会话。",
586
- "terminal.historyLimited": "这个已有 Role 的 tmux 历史只有 {current} 行;退出并重新进入后可使用 {target} 行。",
587
- "detail.historyEmpty": "尚无里程碑或决策记录。",
588
- "detail.instruction": "执行指令",
589
- "detail.leaderSummary": "负责人总结",
590
- "detail.messages": "消息",
591
- "detail.milestones": "里程碑",
592
- "detail.objective": "目标",
593
- "detail.openInput": "待处理输入",
594
- "detail.outcome": "执行结果",
595
- "detail.permission": "权限",
596
- "detail.profileIntent": "Profile 行为意图",
597
- "detail.project": "项目",
598
- "detail.replacement": "替代任务",
599
- "detail.responsibilities": "职责",
600
- "detail.retired": "任务已退役",
601
- "detail.cancelled": "任务已取消",
602
- "detail.cancelledBy": "取消人",
603
- "detail.retiredBy": "退役人",
604
- "detail.reviewBase": "评审基线",
605
- "detail.reviews": "评审记录",
606
- "detail.roles": "角色",
607
- "detail.skills": "技能",
608
- "detail.technicalApproach": "技术方案",
609
- "detail.updated": "更新时间",
610
- "detail.workItem": "工作项",
611
- "detail.workItems": "工作项",
612
- "detail.workspace": "工作区",
613
- "detail.writeProjects": "可写项目",
614
- "disposition.abandoned": "已废弃",
615
- "disposition.integrated": "已集成",
616
- "disposition.preserved": "已保留",
617
- "disposition.reassigned": "已由后续评审继续使用",
618
- "disposition.removed": "已移除",
619
- "empty.brief": "尚未记录任务简报。",
620
- "empty.none": "暂无条目",
621
- "empty.runs": "暂无执行记录。",
622
- "run.recordState": "记录状态",
623
- "run.delivery": "投递证据",
624
- "run.delivery.unobserved": "尚无观察证据",
625
- "run.delivery.submitting": "正在提交",
626
- "run.delivery.deferred": "等待准入,明确未接受",
627
- "run.delivery.accepted": "已接受,等待准确终态",
628
- "run.delivery.delivery-unknown": "接受结果未知,不自动重发",
629
- "run.delivery.rejected": "已拒绝",
630
- "run.delivery.completed": "已完成",
631
- "run.delivery.failed": "已失败",
632
- "run.delivery.cancelled": "已取消",
633
- "empty.tasks": "当前视图没有匹配的任务。",
634
- "errors.answer": "无法回答该输入请求。",
635
- "errors.dashboard": "无法读取控制面板。",
636
- "errors.detail": "无法读取任务详情。",
524
+ "author.leader": "Leader",
525
+ "author.system": "System",
526
+ "author.role": "Role",
527
+ "messageKind.user": "User",
528
+ "messageKind.operator": "Operator",
529
+ "messageKind.role-result": "Role result",
530
+ "messageKind.system": "System",
531
+ "remoteDelivery.none": "No code delivery",
532
+ "remoteDelivery.unavailable": "Exact heads unavailable",
533
+ "remoteDelivery.pending": "Not delivered",
534
+ "remoteDelivery.uncovered": "Merged, acceptance not covered",
535
+ "remoteDelivery.unverified": "Covering merge, not verified",
536
+ "remoteDelivery.partial": "Partially merged",
537
+ "remoteDelivery.merged": "Merged",
538
+ "usage.reason.child-usage-overlap-unproven": "Child usage may overlap parent",
539
+ "usage.reason.source-coverage-partial": "Provider source coverage is partial",
540
+ "usage.reason.native-session-role-overlap": "Multiple Roles share one native counter",
541
+ "usage.reason.session-usage-unavailable": "Session usage missing or not safely countable",
542
+ "usage.reason.cumulative-not-allocatable-to-work-item": "Session usage cannot be allocated to this work item",
543
+ "usage.reason.request-run-attribution-conflict": "Request run ownership is ambiguous",
544
+ "usage.reason.no-attributable-request-usage": "No exactly attributable request usage",
545
+ "usage.reason.session-identity-missing": "Exact Session identity missing",
546
+ "usage.reason.run-usage-unobserved": "Some run usage unobserved",
547
+ "usage.reason.counter-overflow": "Counter exceeds safe numeric range",
548
+ "usage.reason.no-token-evidence": "No token evidence",
549
+ "usage.reason.tool-history-compacted": "Tool history compacted; retained calls only",
550
+ "usage.reason.nonzero-session-baseline": "Initial nonzero Session counter excluded",
551
+ "usage.reason.task-lifecycle-time-missing": "Task start/end evidence missing",
552
+ "usage.reason.native-turn-history-compacted": "Complete retained Turns only"
553
+ };
554
+ const ZH = {
555
+ "app.title": "Yui",
556
+ "a11y.skip": "跳到任务详情",
557
+ "sidebar.label": "任务",
558
+ "sidebar.allClear": "目录中暂无需要你处理的事项",
559
+ "sidebar.empty": "本页没有任务。",
560
+ "sidebar.noMatch": "没有符合筛选的任务。",
561
+ "sidebar.activeRuns": "未结清的执行记录",
562
+ "sidebar.workItems": "工作项",
563
+ "search.label": "搜索任务",
564
+ "search.placeholder": "搜索标题、ID、标签…",
637
565
  "filters.label": "按状态筛选",
566
+ "filter.all": "全部",
567
+ "filter.unarchived": "未归档",
568
+ "filter.everything": "全部任务",
569
+ "sync.label": "最近同步",
570
+ "group.attention": "需要你处理",
638
571
  "group.active": "进行中",
639
- "group.archived": "已归档",
640
- "group.attention": "需输入",
641
572
  "group.draft": "草稿",
642
- "group.finished": "已完成",
643
- "group.retired": "已退役",
573
+ "group.completed": "已完成",
644
574
  "group.cancelled": "已取消",
645
- "input.answered": "输入已回答。",
646
- "input.blocking": "阻塞",
647
- "input.freeText": "输入回答",
648
- "input.new": "有新的输入请求需要处理。",
649
- "input.recommended": "建议",
650
- "input.required": "必填",
651
- "input.timeoutAt": "自动处理",
652
- "launch.current": "与当前期望配置一致",
653
- "launch.drift": "期望变更将在下次启动生效",
575
+ "group.archived": "已归档",
576
+ "catalog.first": "首页",
577
+ "catalog.next": "下一页",
578
+ "catalog.count": "{shown} / {total}",
579
+ "catalog.clearAttention": "清除关注筛选",
580
+ "catalog.openInputs": "待答问题",
581
+ "catalog.pendingOperations": "待完成操作",
582
+ "catalog.unknownOperations": "结果未知操作",
583
+ "catalog.executionSignals": "执行事实",
584
+ "catalog.help.openInputs": "有问题等待你回答的任务",
585
+ "catalog.help.pendingOperations": "已排队或运行中、尚无终态记录的操作",
586
+ "catalog.help.unknownOperations": "效果未知的操作——重试前先检查",
587
+ "catalog.help.executionSignals": "需要检查的运行、未完成工作和恢复信号;不代表失败",
588
+ "actions.refresh": "刷新",
589
+ "actions.operator": "Operator",
590
+ "actions.back": "返回任务列表",
591
+ "actions.close": "关闭",
592
+ "actions.answer": "回答",
593
+ "actions.save": "保存",
594
+ "actions.submit": "提交",
595
+ "actions.showMore": "展开",
596
+ "actions.showLess": "收起",
597
+ "actions.showRemaining": "再显示 {count} 项",
598
+ "settings.title": "设置",
599
+ "settings.theme": "主题",
600
+ "settings.language": "语言",
601
+ "settings.shortcuts": "快捷键",
602
+ "theme.system": "跟随系统",
603
+ "theme.sumi": "墨 · 深色",
604
+ "theme.washi": "和纸 · 浅色",
605
+ "theme.ai": "藍 · 靛青",
606
+ "shortcut.search": "搜索任务",
607
+ "shortcut.refresh": "刷新",
608
+ "shortcut.dock": "显示或隐藏会话面板",
609
+ "shortcut.operator": "Operator 会话",
610
+ "shortcut.tabs": "切换任务分区",
611
+ "shortcut.escape": "关闭面板/离开任务",
654
612
  "loading.dashboard": "正在读取本地状态…",
655
- "loading.detail": "正在读取任务详情…",
656
- "messageKind.operator": "Operator",
657
- "messageDelivery.run": "执行记录(非落实确认):",
658
- "messageDelivery.blocked": "尚未投递:",
659
- "messageDelivery.pending": "已保存,等待执行准入",
660
- "messageDelivery.notification": "Leader 通知,不单独派发执行",
661
- "messageKind.role-result": "角色结果",
662
- "messageKind.system": "系统",
663
- "messageKind.user": "用户",
613
+ "loading.detail": "正在读取任务上下文…",
614
+ "errors.dashboard": "无法读取任务目录。",
615
+ "errors.detail": "无法读取此任务。",
616
+ "errors.disconnected": "连接不可用;保留上次读取。",
617
+ "confirm.leave": "此任务有未提交或结果尚不确定的输入。仍要离开?",
618
+ "time.justNow": "刚刚",
619
+ "common.none": "无",
620
+ "common.unknown": "未知",
621
+ "common.notReported": "未上报",
622
+ "detail.unobserved": "未知",
623
+ "detail.partial": "部分",
624
+ "overview.kicker": "工作区",
625
+ "overview.title": "总览",
626
+ "overview.sub": "{total} 个任务 · {active} 个进行中",
627
+ "overview.inbox": "等待你回答",
628
+ "overview.inboxEmpty": "暂无等待你回答的问题。",
629
+ "overview.inboxElsewhere": "有待答问题不在本页,可用「待答问题」筛选查找。",
630
+ "overview.answer": "去回答",
631
+ "overview.catalog": "全目录概况",
632
+ "overview.catalogHint": "计数覆盖你可见的全部任务,不受搜索和状态筛选影响。",
633
+ "overview.signalsHelp": "执行事实包括运行中的执行、未完成工作和恢复信号,并不代表失败;打开任务可查看精确状态。",
634
+ "overview.tasks": "个任务",
635
+ "overview.activeNow": "正在进行",
636
+ "overview.activeEmpty": "本页没有进行中的任务。",
637
+ "overview.recent": "最近更新",
638
+ "overview.thisPage": "仅当前目录页。",
639
+ "overview.sessions": "会话活动",
640
+ "overview.sessionsHint": "显式读取本页任务的原生会话。任务数和执行记录数无法说明有几个会话在运行。",
641
+ "overview.sessionsRead": "读取会话",
642
+ "overview.sessionsReread": "重新读取",
643
+ "overview.sessionsReading": "正在读取原生会话…",
644
+ "overview.sessionsNotRead": "尚未读取。紧凑目录不会加载会话观察。",
645
+ "overview.sessionsPageChanged": "目录页已变化;请先刷新再读取会话。",
646
+ "overview.readAt": "读取于",
647
+ "overview.pageScope": "列表仅显示当前目录页。可用搜索、筛选或「下一页」查看更多。",
648
+ "overview.needsYou": "需要你回答",
649
+ "overview.moreInputs": "部分待答问题不在本次有界读取中。可用以下命令列出全部原问题:",
650
+ "metrics.inputs": "等待你回答",
664
651
  "metrics.active": "进行中",
652
+ "metrics.draft": "草稿",
665
653
  "metrics.completed": "已完成",
666
- "metrics.inputs": "等待你回答",
667
- "metrics.label": "任务摘要",
668
- "metrics.total": "任务总数",
669
- "milestone.recorded": "已记录",
654
+ "metrics.total": "总数",
655
+ "crumbs.label": "路径",
656
+ "crumbs.tasks": "任务",
657
+ "task.updated": "更新于",
658
+ "tabs.label": "任务分区",
659
+ "tabs.overview": "概览",
660
+ "tabs.work": "工作",
661
+ "tabs.execution": "执行",
662
+ "tabs.history": "历史",
663
+ "tabs.details": "详情",
664
+ "now.observed": "观察于",
665
+ "now.reading": "正在读取实时执行投影…",
666
+ "now.unavailable": "实时执行观察不可用;下方任务事实仍为当前读取。",
667
+ "now.inputs": "{count} 个问题等待你回答",
668
+ "now.noInputs": "没有等待你回答的问题",
669
+ "now.clear": "当前投影没有注意项或阻塞;这本身不证明系统健康。",
670
+ "now.activeRuns": "个活跃执行",
671
+ "now.monitoringStopped": "监控已停止",
672
+ "now.failClosed": "失败关闭",
673
+ "now.nativeWait": "正在原生会话中等待用户或权限输入——请在原会话中查看;这里没有新建审批请求。",
674
+ "now.nextOwner": "下一步:",
675
+ "observation.waiting": "观察中…",
676
+ "observation.available": "已观察",
677
+ "observation.unavailable": "观察不可用",
678
+ "observation.title": "观察与原始运行事实",
679
+ "observation.help": "执行记录未结清不等于 Agent 正在工作;原生准入、运行观察与任务进展分别呈现。",
680
+ "input.kicker": "问题",
681
+ "input.freeText": "输入你的回答…",
682
+ "input.from": "来自",
683
+ "input.blocks": "阻塞",
684
+ "input.timeoutAt": "自动处理",
685
+ "input.recommended": "建议",
686
+ "input.required": "必答",
687
+ "input.answered": "回答已记录。",
688
+ "input.new": "有新的问题需要你回答。",
689
+ "input.unknown": "回答结果未知;请刷新并检查原问题,不要盲目重发。",
690
+ "progress.title": "进展",
691
+ "progress.completion": "已记录完成",
692
+ "progress.retirement": "退役说明",
693
+ "progress.archive": "归档说明",
694
+ "progress.focus": "当前工作",
695
+ "progress.lastFocus": "结束前的工作重点",
696
+ "progress.report": "Leader 进展摘要",
697
+ "progress.lastReport": "结束前的进展摘要",
698
+ "progress.briefUpdated": "Brief 更新于",
699
+ "progress.none": "本次读取没有进展摘要;不推算完成百分比或预计时间。",
700
+ "sessions.title": "原生会话",
701
+ "sessions.hint": "本任务当前选用的会话。活动不等于交付进展。",
702
+ "sessions.unavailable": "观察不可用或尚未读取——不代表运行会话为零。",
703
+ "sessions.none": "未记录当前选用的原生会话。",
704
+ "sessions.unobserved": "未观测",
705
+ "sessions.waitingFor": "等待:",
706
+ "sessions.facts": "会话依据与时间",
707
+ "sessions.role": "Role",
708
+ "sessions.lastActivity": "最近活动",
709
+ "sessions.inputUpdated": "原生输入更新",
710
+ "sessions.operations": "尚无终态的操作",
711
+ "sessions.background": "后台",
712
+ "sessions.identity": "标识",
713
+ "sessions.scope": "独立观察读取于",
714
+ "session.active": "活跃",
715
+ "session.waiting": "等待中",
716
+ "session.quiet": "安静",
717
+ "session.diagnostic": "需要诊断",
718
+ "session.unknown": "未知",
719
+ "session.stopped": "已停止",
720
+ "session.idle": "该轮已结束",
721
+ "session.background": "后台未结清",
722
+ "session.noneRecorded": "未记录选用会话",
723
+ "goal.title": "目标与边界",
724
+ "goal.boundaries": "边界",
725
+ "goal.approach": "技术方案",
726
+ "goal.requirements": "原始要求",
727
+ "goal.none": "本次读取没有记录目标。",
728
+ "decisions.title": "关键决定",
729
+ "decisions.hint": "报告和建议不代表用户批准。",
730
+ "decisions.none": "本次读取没有当前决定。",
731
+ "decisions.more": "在「历史」查看全部决定",
732
+ "planning.title": "规划",
733
+ "planning.withheld": "当前受限快照未展开执行详情;请读取原始 planning 执行记录。",
734
+ "planning.none": "本次读取未包含 planning 执行记录;直接会话活动单独展示。",
735
+ "planning.open": "planning 执行记录尚未结清;这不证明原生会话仍有活动。",
736
+ "planning.settled": "planning 执行记录已 {status};新消息仍送达同一 Leader 并为下一个 Turn 排队。",
737
+ "planning.run": "planning 执行记录",
738
+ "planning.withheldValue": "本快照未展开",
739
+ "planning.providerTerminal": "Provider 终态",
740
+ "planning.conversation": "Provider 会话",
741
+ "planning.liveSession": "在线 Leader 会话",
742
+ "planning.notRunning": "当前未在运行",
743
+ "planning.environment": "环境",
744
+ "planning.emptyEnvironment": "空环境(规划阶段合法)",
745
+ "planning.updated": "记录更新时间",
746
+ "work.title": "工作项",
747
+ "work.objective": "目标",
748
+ "work.acceptance": "验收标准",
749
+ "work.dependsOn": "依赖",
750
+ "work.writeProjects": "写入项目",
751
+ "work.candidates": "候选",
752
+ "work.direct": "直接",
753
+ "work.disposition": "处置",
754
+ "work.outcome": "成果",
755
+ "records.none": "暂无记录。",
756
+ "records.notIncluded": "本次有界读取未包含。",
757
+ "reviews.title": "评审",
758
+ "reviews.hint": "评审报告是证据,不是验收;缺失的检查不算通过。",
759
+ "review.reviewer": "评审者",
760
+ "review.base": "基线",
761
+ "review.run": "执行",
762
+ "evidence.title": "成果与证据",
763
+ "evidence.files": "已保存文件",
764
+ "evidence.filesHint": "按需读取,固定在指定版本。",
765
+ "evidence.load": "读取文件列表",
766
+ "evidence.reload": "重新读取",
767
+ "evidence.notLoaded": "尚未读取文件列表。Context 中没有文件行不代表没有成果。",
768
+ "evidence.noFiles": "该版本没有已保存文件。",
769
+ "evidence.reading": "正在读取所选版本…",
770
+ "evidence.unavailable": "所选版本不可用:",
771
+ "evidence.listUnavailable": "文件列表不可用:",
772
+ "evidence.differentRevision": "文件列表来自不同版本;下方所选文件未被替换。",
773
+ "evidence.referenced": "已引用",
774
+ "evidence.copy": "复制引用",
775
+ "evidence.copied": "已复制",
776
+ "evidence.copyManual": "请复制上方引用",
777
+ "evidence.fixedNote": "刷新后仍保留此版本。读取或讨论不会验收、发布或执行该成果。",
778
+ "evidence.fixedText": "固定成果正文",
779
+ "evidence.delivery": "交付、评审与资源",
780
+ "evidence.deliveryHint": "本地完成、评审、远程交付和资源清理是不同事实。",
781
+ "evidence.readDelivery": "读取证据",
782
+ "evidence.observationUnavailable": "交付观察不可用;下方原始记录仍可读取。",
783
+ "evidence.remote": "远程交付",
784
+ "evidence.expectedCommit": "期望本地提交",
785
+ "evidence.verification": "证据",
786
+ "evidence.adoption": "采用记录",
787
+ "evidence.readingOriginal": "正在读取原始检查与评审绑定…",
788
+ "evidence.integrations": "集成检查 · 精确记录候选",
789
+ "evidence.noIntegrations": "没有集成检查记录;Leader 直接执行的验证可能记录在完成报告中。",
790
+ "evidence.candidate": "候选",
791
+ "evidence.noCandidate": "无检查候选",
792
+ "evidence.noChecks": "未记录检查结果。",
793
+ "evidence.reviews": "评审绑定 · 不等于语义通过",
794
+ "evidence.noReviews": "没有评审记录。",
795
+ "evidence.readReport": "读取原始报告",
796
+ "evidence.noReport": "未记录报告。",
797
+ "evidence.workspaces": "保留工作区 · 仅已记录所有权",
798
+ "evidence.noWorkspaces": "没有记录托管工作区。",
799
+ "evidence.cleanupNote": "未执行物理清理检查。只读预检不授权归档或清理:",
800
+ "evidence.originalUnavailable": "原始证据不可用:",
801
+ "evidence.usage": "用量",
802
+ "roles.title": "Role",
803
+ "roles.noActiveRun": "此读取中没有活跃执行记录;会话活动属于独立观察。",
804
+ "role.session": "会话",
805
+ "role.noSession": "无在线会话",
806
+ "role.desired": "期望启动配置",
807
+ "role.drift": "变更将在下次启动生效",
808
+ "role.access": "权限",
809
+ "role.providerRetry": "Provider 重试",
810
+ "role.skills": "技能",
811
+ "role.openSession": "打开会话",
812
+ "control.title": "改向运行中的 Role",
813
+ "control.meta": "排队 · 即时插话 · 打断",
814
+ "control.help": "与 CLI 相同的三个动作。即时插话和打断需指明精确的当前 Turn;不匹配会明确失败,绝不降级为排队。",
815
+ "control.action": "动作",
816
+ "control.queue": "排队",
817
+ "control.steer": "即时插话",
818
+ "control.interrupt": "打断",
819
+ "control.queue.hint": "下次机会送达",
820
+ "control.steer.hint": "注入精确的当前 Turn",
821
+ "control.interrupt.hint": "原生取消当前 Turn",
822
+ "control.role": "目标 Role",
823
+ "control.rolePlaceholder": "如 worker(排队留空 = Leader)",
824
+ "control.message": "消息",
825
+ "control.expectedTurn": "预期当前 Turn",
826
+ "control.expectedPlaceholder": "精确的 attempt 或原生 Turn 标识",
827
+ "control.expectedHint": "可在该 Role 的会话依据中读取。",
828
+ "control.workItem": "工作项(可选)",
829
+ "control.then": "打断后续消息引用(可选)",
830
+ "control.thenPlaceholder": "已保存的 task/message 标识",
831
+ "control.submit": "提交控制",
832
+ "runs.title": "执行记录",
833
+ "runs.hint": "记录状态与投递证据是不同事实。",
834
+ "runs.filter": "筛选执行记录",
835
+ "run.instruction": "指令",
836
+ "run.output": "输出",
837
+ "run.failure": "失败",
838
+ "run.lineage": "谱系",
839
+ "jobs.title": "操作",
840
+ "jobs.hint": "原始操作事实;这里不会自动重试。",
841
+ "job.queued.note": "已排队。",
842
+ "job.running.note": "等待明确终态回执。",
843
+ "job.unknown-needs-attention.note": "效果未知——检查原操作,不要重发。",
844
+ "job.terminal.note": "已记录终态。",
845
+ "usage.title": "用量",
846
+ "usage.unavailable": "用量观察不可用。",
847
+ "usage.tokens": "Token",
848
+ "usage.toolCalls": "工具调用",
849
+ "usage.elapsed": "经过时间",
850
+ "usage.executionSum": "执行耗时",
851
+ "usage.ready": "可就绪工作",
852
+ "usage.contextSnapshots": "上下文快照",
853
+ "usage.scope": "任务生命周期;仅计入可精确归属的证据。",
854
+ "usage.observedThrough": "观察截至",
855
+ "usage.contextBytes": "上下文字节",
856
+ "history.title": "历史",
857
+ "history.filter": "筛选历史",
858
+ "history.all": "全部",
859
+ "history.decision": "决定",
670
860
  "history.milestone": "里程碑",
671
- "history.decision": "决策",
672
- "mode.new": "新会话",
673
- "mode.resume": "恢复会话",
674
- "overview.activeEmpty": "当前没有进行中的任务。",
675
- "overview.activeNow": "进行中",
676
- "overview.recent": "最近更新",
677
- "overview.attention": "需要关注",
678
- "overview.attentionEmpty": "没有待处理输入,当前无需你介入。",
679
- "overview.distribution": "状态分布",
680
- "overview.inbox": "需要你的输入",
681
- "overview.inboxEmpty": "目前没有等待你回答的问题。",
682
- "overview.lede": "正在跟踪 {total} 个任务 —— {active} 个进行中,{inputs} 个待处理输入,{completed} 个已完成。",
683
- "overview.title": "全局概览",
684
- "page.eyebrow": "系统概览",
685
- "page.lede": "安静地查看每个任务、角色与尚未解决的决策。",
686
- "page.title": "概览",
687
- "priority.high": "高优先级",
688
- "priority.low": "低优先级",
689
- "priority.medium": "中优先级",
690
- "priority.urgent": "紧急",
691
- "review.completed": "已完成",
692
- "review.failed": "失败",
693
- "review.pending": "待准备",
694
- "review.running": "评审中",
695
- "reviewExec.assignment": "冻结任务",
696
- "reviewExec.direct": "直接评审",
697
- "reviewExec.main": "主 Reviewer 综合",
698
- "reviewExec.producer": "Producer",
699
- "reviewExec.replicated": "复制评审",
700
- "reviewExec.status.failed": "已结算失败",
701
- "reviewExec.status.open": "待结算",
702
- "reviewExec.status.succeeded": "已成功",
703
- "role.detached": "已分离",
704
- "role.exited": "已退出",
705
- "role.failed": "失败",
706
- "role.idle": "空闲",
707
- "role.unknown": "未知/未观察",
708
- "role.running": "运行中",
709
- "run.active": "执行中",
710
- "run.failed": "失败",
711
- "search.label": "搜索任务",
712
- "search.placeholder": "按标题、ID、标签或项目筛选…",
713
- "stats.inputs": "项输入",
714
- "stats.running": "运行中",
861
+ "history.message": "消息",
862
+ "history.omitted": "本次有界读取可能省略较早记录;每条都可按引用读取。",
863
+ "history.resultOf": "结果来自",
864
+ "history.superseded": "被替代原因",
865
+ "details.facts": "任务事实",
866
+ "details.id": "ID",
867
+ "details.status": "状态",
868
+ "details.priority": "优先级",
869
+ "details.tags": "标签",
870
+ "details.projects": "项目",
871
+ "details.created": "创建于",
872
+ "details.updated": "更新于",
873
+ "details.workspace": "工作区",
874
+ "details.title": "标题",
875
+ "details.context": "Context 游标与省略引用",
876
+ "details.contextHelp": "读取不确认消息。被省略的记录可经 CLI 领域查询定位后按引用读取。",
877
+ "panels.title": "能力面板",
878
+ "panels.reading": "正在读取当前贡献…",
879
+ "panels.observed": "观察于",
880
+ "panels.none": "暂无可见面板。",
881
+ "panels.unavailable": "面板不可用:",
882
+ "panels.schema": "输入结构",
883
+ "panels.input": "查询输入(JSON)",
884
+ "panels.read": "读取",
885
+ "record.revision": "版本",
886
+ "record.omitted": "本次有界读取省略了正文。",
887
+ "record.read": "读取完整记录",
888
+ "record.changed": "记录已变化或不可用——请刷新",
889
+ "record.output": "原始执行报告",
890
+ "record.diagnostic": "执行诊断",
891
+ "record.rationale": "理由与边界",
892
+ "store.task-message": "消息",
893
+ "store.task-decision": "决定",
894
+ "store.task-milestone": "里程碑",
895
+ "store.task-brief": "Brief",
896
+ "store.work-item": "工作项",
897
+ "store.input-request": "问题",
898
+ "store.run": "执行记录",
899
+ "store.review-round": "评审",
900
+ "store.role": "Role",
901
+ "store.job": "操作",
902
+ "dock.label": "会话面板",
903
+ "dock.discussion": "讨论",
904
+ "dock.session": "实时会话",
905
+ "dock.swap": "与任务详情交换位置",
906
+ "dock.hide": "隐藏会话面板",
907
+ "dock.resize": "调整会话面板宽度",
908
+ "dock.target": "会话目标",
909
+ "discussion.title": "任务讨论",
910
+ "discussion.source": "已记录的任务消息 · 非会话完整记录",
911
+ "discussion.feed": "已记录的任务消息",
912
+ "discussion.empty": "尚无已记录消息,可在下方开始讨论。",
913
+ "discussion.omitted": "本次有界读取可能省略较早消息;可在「历史」查看引用。",
914
+ "composer.label": "发送给 Task Leader 的消息",
915
+ "composer.placeholder": "给 Task Leader 发消息…",
916
+ "composer.send": "发送",
917
+ "composer.sendHint": "发送 · Ctrl/⌘ + Enter",
918
+ "composer.closed": "任务处于草稿或进行中时才可发送消息。",
919
+ "intent.discuss": "讨论",
920
+ "intent.record": "记录",
921
+ "intent.develop": "开发",
922
+ "intent.discuss.hint": "与 Leader 进入规划",
923
+ "intent.record.hint": "仅保存,不唤醒 Leader",
924
+ "intent.develop.hint": "请求激活以进入交付",
925
+ "receipt.notSubmitted": "未提交",
926
+ "receipt.waiting": "等待回执",
927
+ "receipt.saved": "已保存",
928
+ "receipt.savedRevision": "已保存 · 版本",
929
+ "receipt.receipt": "回执:",
930
+ "receipt.notSubmittedBecause": "未提交:",
931
+ "receipt.notSavedBecause": "未保存:",
932
+ "receipt.unknownMessage": "提交结果未知。请重新加载并检查已保存消息,不要盲目重发",
933
+ "receipt.unknownControl": "结果未知。请先重新读取会话,不要重发",
934
+ "receipt.unknownSave": "保存结果未知。请重新加载读取当前事实后再决定是否提交",
935
+ "facet.missing": "回执缺少提交分面字段。",
936
+ "facet.phase": "阶段",
937
+ "facet.planning": "规划",
938
+ "facet.activation": "激活",
939
+ "facet.delivery": "投递",
940
+ "phase.active": "进行中 — 交付上下文",
941
+ "phase.draft-planning": "草稿,规划中",
942
+ "phase.draft-unplanned": "草稿,尚未规划",
943
+ "planningFacet.entered": "已进入规划",
944
+ "planningFacet.continued": "继续规划",
945
+ "planningFacet.none": "规划无变化",
946
+ "activation.requested": "已请求激活",
947
+ "activation.pending": "激活待处理",
948
+ "activation.failed": "激活失败",
949
+ "activation.manual-required": "需手动激活",
950
+ "activation.execution-stopped": "执行已停止;未激活",
951
+ "activation.none": "无激活",
952
+ "deliveryFacet.queued": "已为 Leader 排队处理",
953
+ "deliveryFacet.none": "未唤醒 Leader",
954
+ "next.activateManually": "下一步:明确环境并请求激活(yui task activation request {task} --request-id <id> --environment <plan>)。",
955
+ "next.startExecution": "下一步:先启动执行,再请求激活({task})。",
956
+ "next.awaitActivation": "下一步:等待待处理的激活 {ref}。",
957
+ "next.resolveFailed": "下一步:之前的激活失败({failure});请用新请求重试或取消 {ref}。",
958
+ "terminal.idle": "未连接",
959
+ "terminal.connecting": "正在连接",
960
+ "terminal.writable": "可交互",
961
+ "terminal.readOnly": "只读",
962
+ "terminal.closed": "已分离",
963
+ "terminal.error": "不可用",
964
+ "terminal.errorDetail": "无法打开该原生会话。请确认 Controller 正在运行且该 Role 已有会话。",
965
+ "terminal.global": "全局",
966
+ "terminal.noTargets": "暂无 Role",
967
+ "terminal.emptyTitle": "连接到原生会话",
968
+ "terminal.emptyText": "在上方选择一个 Role。面板显示该会话的当前画面;连接不会启动或重启 Agent。",
969
+ "terminal.cliHint": "完整终端",
970
+ "terminal.historyLimited": "这个 Role 的 tmux 历史只有 {current} 行;退出并重新进入后可使用 {target} 行。",
971
+ "global.open": "全局消息",
972
+ "global.title": "全局 Role 消息",
973
+ "global.help": "默认排队;取消请求不代表执行已停止。",
974
+ "global.role": "Role",
975
+ "global.inspect": "读取状态",
976
+ "status.draft": "草稿",
715
977
  "status.active": "进行中",
716
- "status.all": "全部",
717
- "filter.unarchived": "未归档",
718
- "status.archived": "已归档",
719
978
  "status.completed": "已完成",
720
- "status.draft": "草稿",
721
- "status.retired": "已退役",
722
979
  "status.cancelled": "已取消",
723
- "sync.label": "最近同步",
724
- "tabs.exec": "执行记录",
725
- "tabs.focus": "焦点",
726
- "tabs.results": "成果",
727
- "tabs.history": "历史",
728
- "tabs.label": "任务分区",
729
- "tabs.messages": "消息",
730
- "tabs.reviews": "评审",
731
- "tabs.roles": "角色",
732
- "tabs.summary": "摘要",
733
- "tabs.work": "工作项",
734
- "terminal.attachNote": "此面板将保持附加,直到你手动关闭。",
735
- "terminal.attachTitle": "在终端中打开完整的 Operator",
736
- "terminal.close": "关闭终端",
737
- "terminal.closed": "已分离",
738
- "terminal.connecting": "正在连接",
739
- "terminal.error": "无法打开原生会话。",
740
- "terminal.historyLimited": "这个已有 Role 的 tmux 历史只有 {current} 行;退出并重新进入后可使用 {target} 行。",
741
- "terminal.readOnly": "只读",
742
- "terminal.writable": "可交互",
743
- "theme.atlas": "Atlas 深空",
744
- "theme.controlRoom": "控制室",
745
- "theme.paper": "纸本台账",
746
- "time.justNow": "刚刚",
747
- "work.awaiting_acceptance": "待验收",
748
- "work.cancelled": "已取消",
749
- "work.open": "未验收",
750
- "work.accepted": "已验收",
751
- "work.completed": "已完成",
752
- "work.failed": "失败",
753
- "work.pending": "待处理",
754
- "work.retired": "已退役",
755
- "work.running": "进行中",
756
- "work.superseded": "已替代",
757
- "workExec.title": "执行与恢复",
758
- "workExec.shape.direct": "直接执行",
759
- "workExec.shape.replicated": "复制执行",
760
- "workExec.lane.running": "执行记录未结清",
761
- "workExec.lane.succeeded": "已成功",
762
- "workExec.lane.needs-attention": "需要处理",
763
- "workExec.lane.failed": "已结算失败",
764
- "workExec.lane.unknown": "未知",
765
- "workExec.retry": "重试",
766
- "workExec.settle": "结算",
767
- "workExec.main": "主执行记录",
768
- "workExec.candidate": "Candidate 来源",
769
- "workExec.next": "下一步",
770
- "workExec.owner": "责任人",
771
- "workExec.none": "无",
772
- "workExec.synthesis.not-applicable": "无需综合",
773
- "workExec.synthesis.awaiting-selection": "等待 Leader 选择综合来源",
774
- "workExec.synthesis.main-running": "主执行记录未结清",
775
- "workExec.synthesis.main-needs-attention": "主执行记录需要处理",
776
- "workExec.synthesis.complete": "综合已完成",
777
- "workExec.synthesis.unknown": "综合状态未知",
778
- "workExec.mainStatus.not-started": "未启动",
779
- "workExec.mainStatus.running": "执行记录未结清",
780
- "workExec.mainStatus.succeeded": "已成功",
781
- "workExec.mainStatus.needs-attention": "需要处理",
782
- "workExec.mainStatus.unknown": "未知",
783
- "workExec.candidateStatus.none": "无",
784
- "workExec.candidateStatus.observed": "已观测",
785
- "workExec.candidateStatus.unknown": "未知",
786
- "workExec.action.execute-directly": "Leader 直接执行",
787
- "workExec.action.dispatch-work": "派发工作",
788
- "workExec.action.wait-for-lanes": "等待 Lane",
789
- "workExec.action.retry-or-settle-lanes": "重试或结算指定 Lane",
790
- "workExec.action.inspect-unknown": "检查缺失事实",
791
- "workExec.action.select-synthesis-sources": "选择综合来源执行记录",
792
- "workExec.action.wait-for-main": "等待主执行记录",
793
- "workExec.action.retry-main": "重试主执行记录",
794
- "workExec.action.redispatch-work": "重新派发 WorkItem",
795
- "workExec.action.submit-candidate": "提交 Candidate",
796
- "workExec.action.decide-candidate": "评审或接纳 Candidate",
797
- "workExec.action.none": "无需操作",
798
- "stats.running": "运行中",
799
- "stats.inputs": "项输入",
800
- "exec.status.needs-leader-action": "待负责人处理",
980
+ "status.archived": "已归档",
981
+ "priority.urgent": "紧急",
982
+ "priority.high": "高",
983
+ "priority.medium": "中",
984
+ "priority.low": "低",
985
+ "exec.status.needs-leader-action": "待 Leader 处理",
801
986
  "exec.status.waiting-on-agents": "等待智能体",
802
987
  "exec.status.waiting-user": "等待你回答",
803
988
  "exec.status.recovering": "恢复中",
804
989
  "exec.status.attention": "需要关注",
805
990
  "exec.status.progressing-with-attention": "推进中(有注意项)",
806
991
  "exec.status.blocked": "已阻塞",
992
+ "exec.status.conflicted": "有冲突",
807
993
  "exec.status.working": "执行中",
808
994
  "exec.status.completed": "已完成",
809
995
  "exec.status.retired": "已退役",
810
996
  "exec.status.cancelled": "已取消",
811
997
  "exec.status.archived": "已归档",
812
- "exec.owner.leader": "负责人",
998
+ "exec.owner.leader": "Leader",
813
999
  "exec.owner.worker": "执行者",
814
1000
  "exec.owner.reviewer": "评审者",
815
1001
  "exec.owner.tester": "测试者",
@@ -819,15 +1005,15 @@ const messages = {
819
1005
  "exec.action.advance-task": "推进任务",
820
1006
  "exec.action.wait-for-agents": "等待智能体",
821
1007
  "exec.action.recover-execution": "恢复执行",
822
- "exec.action.answer-input": "回答输入",
1008
+ "exec.action.answer-input": "回答问题",
823
1009
  "exec.action.inspect-attention": "检查注意项",
824
- "exec.action.recover-leader": "恢复负责人",
1010
+ "exec.action.recover-leader": "恢复 Leader",
825
1011
  "exec.action.resolve-blocker": "解决阻塞",
826
1012
  "exec.action.resolve-integration-conflicts": "解决集成冲突",
827
1013
  "exec.action.complete-task": "完成任务",
828
1014
  "exec.action.none": "—",
829
- "exec.attention.leader-recovery": "负责人恢复",
830
- "exec.attention.leader-stalled": "负责人停滞",
1015
+ "exec.attention.leader-recovery": "Leader 恢复",
1016
+ "exec.attention.leader-stalled": "Leader 停滞",
831
1017
  "exec.attention.checkpoint-overdue": "检查点超时",
832
1018
  "exec.attention.identity-mismatch": "身份不匹配",
833
1019
  "exec.attention.delivery-uncertain": "送达不确定",
@@ -836,93 +1022,136 @@ const messages = {
836
1022
  "exec.blocker.integration": "集成",
837
1023
  "exec.blocker.input": "输入",
838
1024
  "exec.blocker.identity": "身份",
839
- "exec.monitoring.stopped": "监控已停止",
840
- "exec.failClosed": "失败关闭",
841
- "exec.executors": "活跃",
842
- "dag.ready": "可就绪",
843
- "dag.dependsOn": "依赖",
844
- "dag.rootCause": "根因",
845
- "dag.blocked": "阻塞",
846
- "dag.running": "运行中",
847
- "dag.awaiting_acceptance": "等待接受",
848
- "dag.completed": "已完成",
849
- "dag.failed": "失败",
850
- "dag.retired": "已退役",
851
- "dag.edge.satisfied": "已满足",
852
- "dag.edge.active": "进行中",
853
- "dag.edge.failed-open": "失败传播",
854
- "dag.edge.dead": "缺失",
855
- "detail.candidates": "候选方案",
856
- "detail.disposition": "退役处置",
857
- "detail.replacementWorkItem": "替代项",
858
- "detail.endedAt": "结束时间",
859
- "detail.workspaceDisposition": "工作区",
860
- "detail.lineage": "执行谱系",
861
- "detail.requester": "请求方",
862
- "candidate.source.direct": "直接",
863
- "candidate.source.run": "执行记录",
1025
+ "run.active": "执行中",
1026
+ "run.completed": "已完成",
1027
+ "run.failed": "失败",
1028
+ "run.delivery": "投递",
1029
+ "run.delivery.unobserved": "尚无观察证据",
1030
+ "run.delivery.submitting": "正在提交",
1031
+ "run.delivery.deferred": "等待准入,明确未接受",
1032
+ "run.delivery.accepted": "已接受,等待准确终态",
1033
+ "run.delivery.delivery-unknown": "接受结果未知,不自动重发",
1034
+ "run.delivery.rejected": "已拒绝",
1035
+ "run.delivery.completed": "已完成",
1036
+ "run.delivery.failed": "已失败",
1037
+ "run.delivery.cancelled": "已取消",
864
1038
  "run.purpose.execution": "执行",
865
1039
  "run.purpose.review": "评审",
1040
+ "run.purpose.planning": "规划",
1041
+ "mode.new": "新会话",
1042
+ "mode.resume": "恢复会话",
1043
+ "work.open": "未验收",
1044
+ "work.accepted": "已验收",
1045
+ "work.retired": "已退役",
1046
+ "review.pending": "待准备",
1047
+ "review.running": "评审中",
1048
+ "review.completed": "已完成",
1049
+ "review.failed": "失败",
866
1050
  "review.scope.work-item": "工作项",
867
- "review.scope.task": "任务"
868
- }
1051
+ "review.scope.task": "任务",
1052
+ "job.queued": "已排队",
1053
+ "job.running": "运行中",
1054
+ "job.succeeded": "成功",
1055
+ "job.failed": "失败",
1056
+ "job.timed-out": "超时",
1057
+ "job.cancelled": "已取消",
1058
+ "job.unknown-needs-attention": "效果未知",
1059
+ "role.running": "运行中",
1060
+ "role.waiting": "等待中",
1061
+ "role.idle": "空闲",
1062
+ "role.unknown": "未观察",
1063
+ "role.failed": "失败",
1064
+ "role.exited": "已退出",
1065
+ "role.detached": "已分离",
1066
+ "retry.waiting": "等待 Provider 重试",
1067
+ "retry.in-flight": "重试已提交",
1068
+ "retry.recovered": "已恢复",
1069
+ "retry.cancelled": "自动重试已取消",
1070
+ "retry.exhausted": "重试预算耗尽",
1071
+ "retry.needs-attention": "需要检查 Provider",
1072
+ "retry.delivery-unknown": "投递结果未知,禁止重放",
1073
+ "decision.active": "有效",
1074
+ "decision.superseded": "已替代",
1075
+ "author.user": "你",
1076
+ "author.operator": "Operator",
1077
+ "author.leader": "Leader",
1078
+ "author.system": "系统",
1079
+ "author.role": "Role",
1080
+ "messageKind.user": "用户",
1081
+ "messageKind.operator": "Operator",
1082
+ "messageKind.role-result": "Role 结果",
1083
+ "messageKind.system": "系统",
1084
+ "remoteDelivery.none": "无代码交付",
1085
+ "remoteDelivery.unavailable": "精确 head 不可用",
1086
+ "remoteDelivery.pending": "尚未交付",
1087
+ "remoteDelivery.uncovered": "已合并,未覆盖验收",
1088
+ "remoteDelivery.unverified": "已覆盖合并,尚未验证",
1089
+ "remoteDelivery.partial": "部分合入",
1090
+ "remoteDelivery.merged": "已合入",
1091
+ "usage.reason.child-usage-overlap-unproven": "子执行用量可能与父统计重叠",
1092
+ "usage.reason.source-coverage-partial": "Provider 来源覆盖不完整",
1093
+ "usage.reason.native-session-role-overlap": "多个 Role 共享同一原生计数器",
1094
+ "usage.reason.session-usage-unavailable": "会话用量缺失或无法安全计数",
1095
+ "usage.reason.cumulative-not-allocatable-to-work-item": "会话累计用量不能分配给此工作项",
1096
+ "usage.reason.request-run-attribution-conflict": "请求的执行归属不明确",
1097
+ "usage.reason.no-attributable-request-usage": "没有精确归属的请求用量",
1098
+ "usage.reason.session-identity-missing": "缺少精确会话身份",
1099
+ "usage.reason.run-usage-unobserved": "部分执行没有用量证据",
1100
+ "usage.reason.counter-overflow": "计数超过安全数值范围",
1101
+ "usage.reason.no-token-evidence": "没有 token 证据",
1102
+ "usage.reason.tool-history-compacted": "工具历史已压缩,仅计保留调用",
1103
+ "usage.reason.nonzero-session-baseline": "已排除会话首次非零累计基线",
1104
+ "usage.reason.task-lifecycle-time-missing": "缺少任务起止证据",
1105
+ "usage.reason.native-turn-history-compacted": "仅计起止完整的保留 Turn"
869
1106
  };
870
-
1107
+ export const I18N_SCRIPT = String.raw `
1108
+ const messages = ${JSON.stringify({ en: EN, "zh-CN": ZH })};
871
1109
  export const SUPPORTED_LOCALES = Object.freeze(Object.keys(messages));
872
1110
 
873
1111
  function preferredLocale() {
874
- const saved = localStorage.getItem("yui.locale");
1112
+ let saved = null;
1113
+ try { saved = localStorage.getItem("yui.locale"); } catch {}
875
1114
  if (SUPPORTED_LOCALES.includes(saved)) return saved;
876
1115
  const languages = navigator.languages || [navigator.language];
877
- return languages.some(function (language) { return String(language).toLowerCase().startsWith("zh"); })
878
- ? "zh-CN"
879
- : "en";
1116
+ return languages.some(function (language) { return String(language).toLowerCase().startsWith("zh"); }) ? "zh-CN" : "en";
880
1117
  }
881
1118
 
882
1119
  export function createI18n(select) {
883
1120
  let locale = preferredLocale();
884
1121
  const subscribers = new Set();
885
-
886
- function t(key) {
887
- return messages[locale][key] || messages.en[key] || key;
1122
+ function t(key, fallback) {
1123
+ const value = messages[locale][key] || messages.en[key];
1124
+ return value !== undefined ? value : fallback !== undefined ? fallback : key;
888
1125
  }
889
-
890
1126
  function apply() {
891
1127
  document.documentElement.lang = locale;
892
1128
  document.title = t("app.title");
893
- document.querySelectorAll("[data-i18n]").forEach(function (element) {
894
- element.textContent = t(element.dataset.i18n);
895
- });
1129
+ document.querySelectorAll("[data-i18n]").forEach(function (element) { element.textContent = t(element.dataset.i18n); });
896
1130
  document.querySelectorAll("[data-i18n-placeholder]").forEach(function (element) {
897
1131
  element.setAttribute("placeholder", t(element.dataset.i18nPlaceholder));
898
1132
  });
899
1133
  document.querySelectorAll("[data-i18n-aria-label]").forEach(function (element) {
900
1134
  element.setAttribute("aria-label", t(element.dataset.i18nAriaLabel));
901
1135
  });
1136
+ document.querySelectorAll("[data-i18n-title]").forEach(function (element) {
1137
+ element.setAttribute("title", t(element.dataset.i18nTitle));
1138
+ });
902
1139
  if (select) select.value = locale;
903
1140
  }
904
-
905
- function setLocale(nextLocale) {
906
- if (!SUPPORTED_LOCALES.includes(nextLocale) || nextLocale === locale) return;
907
- locale = nextLocale;
908
- localStorage.setItem("yui.locale", locale);
1141
+ function setLocale(next) {
1142
+ if (!SUPPORTED_LOCALES.includes(next) || next === locale) return;
1143
+ locale = next;
1144
+ try { localStorage.setItem("yui.locale", locale); } catch {}
909
1145
  apply();
910
1146
  subscribers.forEach(function (subscriber) { subscriber(locale); });
911
1147
  }
912
-
913
- if (select) {
914
- select.addEventListener("change", function () { setLocale(select.value); });
915
- }
1148
+ if (select) select.addEventListener("change", function () { setLocale(select.value); });
916
1149
  apply();
917
1150
  return {
918
1151
  t: t,
919
- apply: apply,
920
1152
  getLocale: function () { return locale; },
921
1153
  setLocale: setLocale,
922
- subscribe: function (subscriber) {
923
- subscribers.add(subscriber);
924
- return function () { subscribers.delete(subscriber); };
925
- }
1154
+ subscribe: function (subscriber) { subscribers.add(subscriber); }
926
1155
  };
927
1156
  }
928
1157
  `;