@jskit-ai/assistant-core 0.2.12 → 0.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +346 -0
- package/examples/conversation/package.json +5 -5
- package/fixtures/responsive-assistant/ConversationFixture.vue +1 -0
- package/locales/en.json +171 -6
- package/package.json +5 -5
- package/src/client/conversation/AssistantGoalControl.vue +1 -1
- package/src/server/conversation/boundedToolLoop.js +4 -2
- package/src/server/conversation/claudeClient.js +15 -10
- package/src/server/conversation/claudeCommandRun.js +16 -6
- package/src/server/conversation/claudeNativeTurn.js +6 -5
- package/src/server/conversation/claudeProcess.js +20 -8
- package/src/server/conversation/claudeProcessStart.js +1 -1
- package/src/server/conversation/claudeSessionCleanup.js +6 -10
- package/src/server/conversation/claudeTurn.js +2 -3
- package/src/server/conversation/codexAccountReader.js +15 -6
- package/src/server/conversation/codexConversationStops.js +3 -3
- package/src/server/conversation/codexConversations.js +1 -1
- package/src/server/conversation/codexDetachedTurn.js +4 -2
- package/src/server/conversation/codexGoalCommands.js +3 -1
- package/src/server/conversation/codexHelperExecution.js +4 -4
- package/src/server/conversation/codexHelperThreadRecovery.js +2 -2
- package/src/server/conversation/codexHistoryAdapter.js +1 -1
- package/src/server/conversation/codexMessageCommands.js +4 -2
- package/src/server/conversation/codexModelCatalog.js +1 -1
- package/src/server/conversation/codexObservationControl.js +1 -1
- package/src/server/conversation/codexProcess.js +3 -1
- package/src/server/conversation/codexProvider.js +4 -2
- package/src/server/conversation/codexProviderAuth.js +17 -9
- package/src/server/conversation/codexProviderInvalidation.js +6 -2
- package/src/server/conversation/codexProviderThreads.js +4 -2
- package/src/server/conversation/codexProviderTurns.js +4 -2
- package/src/server/conversation/codexRenewalThreads.js +2 -2
- package/src/server/conversation/conversationTurnDelivery.js +3 -1
- package/src/server/conversation/conversationTurns.js +3 -1
- package/src/server/conversation/openCodeProcess.js +5 -9
- package/src/server/conversation/openCodeRuntime.js +3 -1
- package/src/server/conversation/openCodeTurn.js +3 -2
- package/src/server/conversation/providers/claudeDriver.js +12 -4
- package/src/server/conversation/providers/codex.js +8 -4
- package/src/server/conversation/providers/codexDriver.js +23 -10
- package/src/server/conversation/providers/codexDriverConnection.js +18 -6
- package/src/server/conversation/providers/codexDriverTurns.js +3 -1
- package/src/server/conversation/providers/opencode.js +3 -1
- package/src/server/conversation/providers/opencodeDriver.js +3 -1
- package/src/server/conversation/providers/opencodeStandalone.js +37 -13
- package/src/server/conversation/providers/scoped.js +3 -1
- package/src/server/conversation/systemPrompt.js +3 -1
- package/src/server/conversation/tools.js +6 -2
- package/src/shared/assistantSettingsResource.js +14 -2
- package/test/assistantScroll.browser.test.js +4 -0
- package/test/claudeLifecycle.test.js +17 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,351 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
- Assistant failures that reach a person translate: 63 more undotted codes render from `jskit.errors.<code>`, and 98 sentences that share a code with others, or are sent without one, carry a `messageCode` (`assistant.claude.*`, `assistant.codex.*`, `assistant.opencode.*`, `assistant.conversation.*`, `assistant.turn.*`). The English messages are unchanged.
|
|
6
|
+
- The OpenCode version mismatch, Claude control-request timeout and unreadable saved Claude conversation errors carry `params` for their catalog English.
|
|
7
|
+
- The assistant settings resource sends its system prompt field messages in the coded `{ code, message, params }` form.
|
|
8
|
+
|
|
9
|
+
### New message keys (163)
|
|
10
|
+
|
|
11
|
+
<details><summary>Key list</summary>
|
|
12
|
+
|
|
13
|
+
- `jskit.assistant.settings.systemPromptTooLong`
|
|
14
|
+
- `jskit.assistant.settings.systemPromptInvalid`
|
|
15
|
+
- `jskit.assistant.turn.invalidResponse`
|
|
16
|
+
- `jskit.assistant.turn.requestIncomplete`
|
|
17
|
+
- `jskit.assistant.conversation.contextChangedInstallingPrompt`
|
|
18
|
+
- `jskit.assistant.conversation.contextChangedReadingInstructions`
|
|
19
|
+
- `jskit.assistant.conversation.messageNotAcknowledged`
|
|
20
|
+
- `jskit.assistant.conversation.stopTemporaryBeforeChange`
|
|
21
|
+
- `jskit.assistant.conversation.toolArgumentsTooLarge`
|
|
22
|
+
- `jskit.assistant.conversation.toolCallLimit`
|
|
23
|
+
- `jskit.assistant.claude.accountChangedRefreshModels`
|
|
24
|
+
- `jskit.assistant.claude.accountQueryCancelled`
|
|
25
|
+
- `jskit.assistant.claude.accountQueryCleanupUnconfirmed`
|
|
26
|
+
- `jskit.assistant.claude.answerInterrupted`
|
|
27
|
+
- `jskit.assistant.claude.chooseConnectedModel`
|
|
28
|
+
- `jskit.assistant.claude.closedOrWorking`
|
|
29
|
+
- `jskit.assistant.claude.connectionClosed`
|
|
30
|
+
- `jskit.assistant.claude.connectionWasClosed`
|
|
31
|
+
- `jskit.assistant.claude.controlNeedsTerminal`
|
|
32
|
+
- `jskit.assistant.claude.eventConnectionEnded`
|
|
33
|
+
- `jskit.assistant.claude.exitedUnexpectedly`
|
|
34
|
+
- `jskit.assistant.claude.modelUnsupported`
|
|
35
|
+
- `jskit.assistant.claude.noTurnToSteer`
|
|
36
|
+
- `jskit.assistant.claude.otherHostConfiguration`
|
|
37
|
+
- `jskit.assistant.claude.reasoningEffortUnsupported`
|
|
38
|
+
- `jskit.assistant.claude.reconnecting`
|
|
39
|
+
- `jskit.assistant.claude.sendNowUnsupported`
|
|
40
|
+
- `jskit.assistant.claude.signInRequired`
|
|
41
|
+
- `jskit.assistant.claude.stopBeforeReset`
|
|
42
|
+
- `jskit.assistant.claude.toolCallLimit`
|
|
43
|
+
- `jskit.assistant.claude.turnStillWorking`
|
|
44
|
+
- `jskit.assistant.claude.workEnded`
|
|
45
|
+
- `jskit.assistant.claude.outputTooLarge`
|
|
46
|
+
- `jskit.assistant.codex.accountChangedSendAgain`
|
|
47
|
+
- `jskit.assistant.codex.accountUnavailable`
|
|
48
|
+
- `jskit.assistant.codex.assistantChangedRefresh`
|
|
49
|
+
- `jskit.assistant.codex.authChangedReopen`
|
|
50
|
+
- `jskit.assistant.codex.authModeUnsupported`
|
|
51
|
+
- `jskit.assistant.codex.authRecordInvalid`
|
|
52
|
+
- `jskit.assistant.codex.authRecordTooLarge`
|
|
53
|
+
- `jskit.assistant.codex.authRecordUnreadable`
|
|
54
|
+
- `jskit.assistant.codex.authorizedSettingsRequired`
|
|
55
|
+
- `jskit.assistant.codex.connectionClosedBeforeSettings`
|
|
56
|
+
- `jskit.assistant.codex.connectionUnverified`
|
|
57
|
+
- `jskit.assistant.codex.credentialsUnreadable`
|
|
58
|
+
- `jskit.assistant.codex.ephemeralInstructionsFixed`
|
|
59
|
+
- `jskit.assistant.codex.goalPauseUnconfirmed`
|
|
60
|
+
- `jskit.assistant.codex.goalsAreControls`
|
|
61
|
+
- `jskit.assistant.codex.helperAccessTokenStale`
|
|
62
|
+
- `jskit.assistant.codex.helperAccountActivationFailed`
|
|
63
|
+
- `jskit.assistant.codex.helperAccountChanged`
|
|
64
|
+
- `jskit.assistant.codex.helperAccountChangedBeforeRun`
|
|
65
|
+
- `jskit.assistant.codex.helperAccountChangedStarting`
|
|
66
|
+
- `jskit.assistant.codex.helperAccountIdentityInvalid`
|
|
67
|
+
- `jskit.assistant.codex.helperAuthRefreshRejected`
|
|
68
|
+
- `jskit.assistant.codex.helperAuthUnavailable`
|
|
69
|
+
- `jskit.assistant.codex.helperExecutionFailed`
|
|
70
|
+
- `jskit.assistant.codex.helperThreadReconnectAccount`
|
|
71
|
+
- `jskit.assistant.codex.historyFormatStartFresh`
|
|
72
|
+
- `jskit.assistant.codex.historyFormatUnsupported`
|
|
73
|
+
- `jskit.assistant.codex.loadedThreadsInvalid`
|
|
74
|
+
- `jskit.assistant.codex.modelDiscoveryUnavailable`
|
|
75
|
+
- `jskit.assistant.codex.modelUnsupported`
|
|
76
|
+
- `jskit.assistant.codex.nativeGoalChanged`
|
|
77
|
+
- `jskit.assistant.codex.observationLostStopUnverified`
|
|
78
|
+
- `jskit.assistant.codex.oldThreadUnreadable`
|
|
79
|
+
- `jskit.assistant.codex.otherAccount`
|
|
80
|
+
- `jskit.assistant.codex.otherHostConfiguration`
|
|
81
|
+
- `jskit.assistant.codex.otherProviderAccount`
|
|
82
|
+
- `jskit.assistant.codex.outputTooLarge`
|
|
83
|
+
- `jskit.assistant.codex.paginatedConversationHistoryMissing`
|
|
84
|
+
- `jskit.assistant.codex.paginatedHistoryMissing`
|
|
85
|
+
- `jskit.assistant.codex.reasoningEffortUnsupported`
|
|
86
|
+
- `jskit.assistant.codex.reconnectOpenAi`
|
|
87
|
+
- `jskit.assistant.codex.responseTimeout`
|
|
88
|
+
- `jskit.assistant.codex.signInRequired`
|
|
89
|
+
- `jskit.assistant.codex.stillReconnecting`
|
|
90
|
+
- `jskit.assistant.codex.stoppedUseResume`
|
|
91
|
+
- `jskit.assistant.codex.temporaryConnectionLost`
|
|
92
|
+
- `jskit.assistant.codex.temporaryConversationClosed`
|
|
93
|
+
- `jskit.assistant.codex.temporaryTurnStopped`
|
|
94
|
+
- `jskit.assistant.codex.threadInventoryUntrusted`
|
|
95
|
+
- `jskit.assistant.codex.toolEntryPointsChanged`
|
|
96
|
+
- `jskit.assistant.codex.turnStopUnconfirmed`
|
|
97
|
+
- `jskit.assistant.opencode.cleanupUnconfirmed`
|
|
98
|
+
- `jskit.assistant.opencode.closedOrWorking`
|
|
99
|
+
- `jskit.assistant.opencode.messageNotAcknowledged`
|
|
100
|
+
- `jskit.assistant.opencode.modelDefinitionUnavailable`
|
|
101
|
+
- `jskit.assistant.opencode.nativeStillWorking`
|
|
102
|
+
- `jskit.assistant.opencode.noTurnToSteer`
|
|
103
|
+
- `jskit.assistant.opencode.otherAccount`
|
|
104
|
+
- `jskit.assistant.opencode.otherHistoryStore`
|
|
105
|
+
- `jskit.assistant.opencode.otherHistoryStoreOrRuntime`
|
|
106
|
+
- `jskit.assistant.opencode.otherWorkingDirectory`
|
|
107
|
+
- `jskit.assistant.opencode.reasoningEffortUnsupported`
|
|
108
|
+
- `jskit.assistant.opencode.reopenTerminalToAttach`
|
|
109
|
+
- `jskit.assistant.opencode.savedConversationUnavailable`
|
|
110
|
+
- `jskit.assistant.opencode.turnFailed`
|
|
111
|
+
- `jskit.assistant.opencode.turnUnreadable`
|
|
112
|
+
- `jskit.assistant.opencode.turnNotFinished`
|
|
113
|
+
- `jskit.errors.conversation_claude_turn_timeout`
|
|
114
|
+
- `jskit.errors.conversation_claude_renewal_history_mismatch`
|
|
115
|
+
- `jskit.errors.conversation_claude_renewal_unrelated_history`
|
|
116
|
+
- `jskit.errors.conversation_claude_renewal_turn_active`
|
|
117
|
+
- `jskit.errors.conversation_claude_unavailable`
|
|
118
|
+
- `jskit.errors.conversation_claude_retained_goal_invalid`
|
|
119
|
+
- `jskit.errors.conversation_claude_retained_goal_conflict`
|
|
120
|
+
- `jskit.errors.conversation_claude_session_closing`
|
|
121
|
+
- `jskit.errors.conversation_claude_preparation_stopped`
|
|
122
|
+
- `jskit.errors.conversation_claude_terminal_turn_active`
|
|
123
|
+
- `jskit.errors.conversation_claude_still_working`
|
|
124
|
+
- `jskit.errors.conversation_claude_history_retire_busy`
|
|
125
|
+
- `jskit.errors.conversation_claude_message_required`
|
|
126
|
+
- `jskit.errors.conversation_claude_command_stopped`
|
|
127
|
+
- `jskit.errors.conversation_claude_context_usage_unavailable`
|
|
128
|
+
- `jskit.errors.conversation_claude_goal_clear_unconfirmed`
|
|
129
|
+
- `jskit.errors.conversation_claude_saved_state_unreadable`
|
|
130
|
+
- `jskit.errors.conversation_tool_not_executed`
|
|
131
|
+
- `jskit.errors.conversation_tool_outcome_unknown`
|
|
132
|
+
- `jskit.errors.conversation_unsupported`
|
|
133
|
+
- `jskit.errors.assistant_claude_goal_attachment_pending`
|
|
134
|
+
- `jskit.errors.assistant_claude_admission_unknown`
|
|
135
|
+
- `jskit.errors.assistant_claude_startup_exited`
|
|
136
|
+
- `jskit.errors.claude_stop_unconfirmed`
|
|
137
|
+
- `jskit.errors.claude_account_changed`
|
|
138
|
+
- `jskit.errors.assistant_opencode_recovery_order_unconfirmed`
|
|
139
|
+
- `jskit.errors.assistant_opencode_interrupt_unconfirmed`
|
|
140
|
+
- `jskit.errors.assistant_opencode_interrupt_timeout`
|
|
141
|
+
- `jskit.errors.assistant_opencode_key_verification_unavailable`
|
|
142
|
+
- `jskit.errors.assistant_opencode_stop_unverified`
|
|
143
|
+
- `jskit.errors.assistant_opencode_connection_reload_failed`
|
|
144
|
+
- `jskit.errors.assistant_opencode_response_too_large`
|
|
145
|
+
- `jskit.errors.assistant_opencode_event_too_large`
|
|
146
|
+
- `jskit.errors.assistant_opencode_directory_unavailable`
|
|
147
|
+
- `jskit.errors.assistant_opencode_catalog_invalid`
|
|
148
|
+
- `jskit.errors.assistant_opencode_catalog_stop_failed`
|
|
149
|
+
- `jskit.errors.assistant_opencode_events_timeout`
|
|
150
|
+
- `jskit.errors.assistant_opencode_observation_lost`
|
|
151
|
+
- `jskit.errors.assistant_opencode_parent_unverified`
|
|
152
|
+
- `jskit.errors.assistant_opencode_start_timeout`
|
|
153
|
+
- `jskit.errors.assistant_opencode_version_mismatch`
|
|
154
|
+
- `jskit.errors.assistant_opencode_zen_catalog_unavailable`
|
|
155
|
+
- `jskit.errors.assistant_agent_control_binding_retained`
|
|
156
|
+
- `jskit.errors.assistant_codex_provider_binding_retained`
|
|
157
|
+
- `jskit.errors.assistant_codex_provider_switch_busy`
|
|
158
|
+
- `jskit.errors.assistant_codex_history_request_too_large`
|
|
159
|
+
- `jskit.errors.assistant_codex_history_request_unreadable`
|
|
160
|
+
- `jskit.errors.assistant_codex_app_server_message_too_large`
|
|
161
|
+
- `jskit.errors.codex_reconnect_required`
|
|
162
|
+
- `jskit.errors.codex_provider_connection_changed`
|
|
163
|
+
- `jskit.errors.codex_runtime_invalidated`
|
|
164
|
+
- `jskit.errors.assistant_provider_fetch_missing`
|
|
165
|
+
- `jskit.errors.assistant_tool_arguments_invalid`
|
|
166
|
+
- `jskit.errors.assistant_tool_result_unserializable`
|
|
167
|
+
- `jskit.errors.assistant_tool_result_too_large`
|
|
168
|
+
- `jskit.errors.assistant_tool_contract_too_large`
|
|
169
|
+
- `jskit.errors.assistant_tool_arguments_too_large`
|
|
170
|
+
- `jskit.errors.assistant_action_cursor_invalid`
|
|
171
|
+
- `jskit.errors.assistant_action_unknown`
|
|
172
|
+
- `jskit.errors.assistant_action_contract_required`
|
|
173
|
+
- `jskit.errors.assistant_tool_output_invalid`
|
|
174
|
+
- `jskit.errors.assistant_tool_unknown`
|
|
175
|
+
- `jskit.errors.assistant_claude_control_timeout`
|
|
176
|
+
|
|
177
|
+
</details>
|
|
178
|
+
|
|
179
|
+
### Codes (163)
|
|
180
|
+
|
|
181
|
+
Error, field-error and message codes this package now sends, with their English. Undotted codes kept their existing values and render from `jskit.errors.<code>`.
|
|
182
|
+
|
|
183
|
+
| Code | English |
|
|
184
|
+
| --- | --- |
|
|
185
|
+
| `assistant.settings.systemPromptTooLong` | Assistant system prompt must be at most {max} characters. |
|
|
186
|
+
| `assistant.settings.systemPromptInvalid` | Assistant system prompt must be valid text. |
|
|
187
|
+
| `assistant.turn.invalidResponse` | The assistant returned an invalid response. |
|
|
188
|
+
| `assistant.turn.requestIncomplete` | The assistant could not complete this request. |
|
|
189
|
+
| `assistant.conversation.contextChangedInstallingPrompt` | Conversation context changed while installing its system prompt. Retry before sending. |
|
|
190
|
+
| `assistant.conversation.contextChangedReadingInstructions` | Conversation context changed while reading instructions. Retry before sending. |
|
|
191
|
+
| `assistant.conversation.messageNotAcknowledged` | The engine did not acknowledge the message. |
|
|
192
|
+
| `assistant.conversation.stopTemporaryBeforeChange` | Stop this temporary conversation before changing its AI. |
|
|
193
|
+
| `assistant.conversation.toolArgumentsTooLarge` | The application tool arguments exceed their size limit. |
|
|
194
|
+
| `assistant.conversation.toolCallLimit` | The assistant reached the application tool-call limit for this turn. |
|
|
195
|
+
| `assistant.claude.accountChangedRefreshModels` | The signed-in Claude account changed. Refresh the model list. |
|
|
196
|
+
| `assistant.claude.accountQueryCancelled` | Claude account query was cancelled for reconnection. |
|
|
197
|
+
| `assistant.claude.accountQueryCleanupUnconfirmed` | Claude account query process cleanup could not be confirmed. |
|
|
198
|
+
| `assistant.claude.answerInterrupted` | Claude interrupted this answer. |
|
|
199
|
+
| `assistant.claude.chooseConnectedModel` | Choose a connected Claude Code model. |
|
|
200
|
+
| `assistant.claude.closedOrWorking` | This Claude conversation is closed or already working. |
|
|
201
|
+
| `assistant.claude.connectionClosed` | Claude connection is closed. |
|
|
202
|
+
| `assistant.claude.connectionWasClosed` | Claude connection was closed. |
|
|
203
|
+
| `assistant.claude.controlNeedsTerminal` | This control request requires the native Claude Code terminal. |
|
|
204
|
+
| `assistant.claude.eventConnectionEnded` | Claude event connection ended unexpectedly. |
|
|
205
|
+
| `assistant.claude.exitedUnexpectedly` | Claude exited unexpectedly. |
|
|
206
|
+
| `assistant.claude.modelUnsupported` | This exact provider/model is not supported by the Claude integration. Choose a supported model without renaming it. |
|
|
207
|
+
| `assistant.claude.noTurnToSteer` | Claude has no active turn to steer. |
|
|
208
|
+
| `assistant.claude.otherHostConfiguration` | This Claude conversation belongs to another working directory or credential home. Restore its original host configuration. |
|
|
209
|
+
| `assistant.claude.reasoningEffortUnsupported` | The selected Claude model does not support this reasoning effort. |
|
|
210
|
+
| `assistant.claude.reconnecting` | Claude is reconnecting. |
|
|
211
|
+
| `assistant.claude.sendNowUnsupported` | This Claude version does not support targeted Send now. |
|
|
212
|
+
| `assistant.claude.signInRequired` | Sign in with claude auth login before using this conversation. |
|
|
213
|
+
| `assistant.claude.stopBeforeReset` | Stop Claude before resetting its turn view. |
|
|
214
|
+
| `assistant.claude.toolCallLimit` | Claude exceeded the application tool-call limit. |
|
|
215
|
+
| `assistant.claude.turnStillWorking` | This Claude turn is still working. |
|
|
216
|
+
| `assistant.claude.workEnded` | Claude work ended. |
|
|
217
|
+
| `assistant.claude.outputTooLarge` | Claude output exceeded its size limit. |
|
|
218
|
+
| `assistant.codex.accountChangedSendAgain` | Codex (OpenAI) changed account. Send your message again. |
|
|
219
|
+
| `assistant.codex.accountUnavailable` | The selected Codex account is unavailable. Reconnect Codex and retry. |
|
|
220
|
+
| `assistant.codex.assistantChangedRefresh` | The assistant changed. Refresh before resuming. |
|
|
221
|
+
| `assistant.codex.authChangedReopen` | Codex authentication changed. Reopen the conversation with its original account. |
|
|
222
|
+
| `assistant.codex.authModeUnsupported` | The selected Codex authentication mode is unsupported. Reconnect Codex and retry. |
|
|
223
|
+
| `assistant.codex.authRecordInvalid` | The selected Codex authentication record is invalid. Reconnect Codex and retry. |
|
|
224
|
+
| `assistant.codex.authRecordTooLarge` | The selected Codex authentication record is too large. Reconnect Codex and retry. |
|
|
225
|
+
| `assistant.codex.authRecordUnreadable` | The selected Codex authentication record could not be read. Reconnect Codex and retry. |
|
|
226
|
+
| `assistant.codex.authorizedSettingsRequired` | Codex requires current authorized settings before resuming this conversation. |
|
|
227
|
+
| `assistant.codex.connectionClosedBeforeSettings` | The assistant connection closed before confirming its settings. |
|
|
228
|
+
| `assistant.codex.connectionUnverified` | The assistant connection could not be verified. Your conversation and files are preserved. Retry the connection, or renew the session to continue in a fresh conversation. |
|
|
229
|
+
| `assistant.codex.credentialsUnreadable` | Codex credential data could not be read. Restore its account configuration. |
|
|
230
|
+
| `assistant.codex.ephemeralInstructionsFixed` | Start a new ephemeral conversation to change its instructions. |
|
|
231
|
+
| `assistant.codex.goalPauseUnconfirmed` | Codex did not confirm that the same goal was paused. |
|
|
232
|
+
| `assistant.codex.goalsAreControls` | Codex goals are controls. Inspect any unresolved goal-message record before continuing. |
|
|
233
|
+
| `assistant.codex.helperAccessTokenStale` | The selected Codex account has not produced a newer access token yet. Reconnect Codex and retry. |
|
|
234
|
+
| `assistant.codex.helperAccountActivationFailed` | Codex could not activate the selected account for isolated helper work. Reconnect Codex and retry. |
|
|
235
|
+
| `assistant.codex.helperAccountChanged` | The selected Codex account changed during helper work. Retry the task with the current account. |
|
|
236
|
+
| `assistant.codex.helperAccountChangedBeforeRun` | The selected Codex account changed before low-cost assistant work could run. Retry the task with the current account. |
|
|
237
|
+
| `assistant.codex.helperAccountChangedStarting` | The selected Codex account changed while helper execution was starting. Retry the task. |
|
|
238
|
+
| `assistant.codex.helperAccountIdentityInvalid` | The requested low-cost assistant account identity is invalid. Refresh the task and retry. |
|
|
239
|
+
| `assistant.codex.helperAuthRefreshRejected` | Codex helper authentication refresh was rejected. Reconnect Codex and retry. |
|
|
240
|
+
| `assistant.codex.helperAuthUnavailable` | Codex helper authentication is unavailable. Reconnect Codex and retry. |
|
|
241
|
+
| `assistant.codex.helperExecutionFailed` | Codex isolated helper execution failed. Retry the task. |
|
|
242
|
+
| `assistant.codex.helperThreadReconnectAccount` | Reconnect the original Codex account to resume or delete this helper thread. |
|
|
243
|
+
| `assistant.codex.historyFormatStartFresh` | This conversation uses an unsupported Codex history format. Start a fresh conversation. |
|
|
244
|
+
| `assistant.codex.historyFormatUnsupported` | This conversation uses an unsupported Codex history format. Renew the session to keep your files and saved chat and start a fresh conversation. You can write the handover yourself. |
|
|
245
|
+
| `assistant.codex.loadedThreadsInvalid` | Codex returned an invalid loaded-thread inventory. Restore its connection before retrying. |
|
|
246
|
+
| `assistant.codex.modelDiscoveryUnavailable` | Codex live model discovery is unavailable. |
|
|
247
|
+
| `assistant.codex.modelUnsupported` | This exact provider/model is not supported by the Codex integration. Choose a supported model without renaming it. |
|
|
248
|
+
| `assistant.codex.nativeGoalChanged` | The native goal changed. Read it again before changing it. |
|
|
249
|
+
| `assistant.codex.observationLostStopUnverified` | Codex observation was lost and a stop is not yet verified. Retry after the service has stopped. |
|
|
250
|
+
| `assistant.codex.oldThreadUnreadable` | The old assistant thread cannot be read. Write or edit the handover manually instead. |
|
|
251
|
+
| `assistant.codex.otherAccount` | This conversation belongs to another Codex account. Restore that account or start a new conversation. |
|
|
252
|
+
| `assistant.codex.otherHostConfiguration` | This Codex conversation belongs to another working directory or credential home. Restore its original host configuration. |
|
|
253
|
+
| `assistant.codex.otherProviderAccount` | This conversation belongs to another Codex provider account. Restore that connection or start a new conversation. |
|
|
254
|
+
| `assistant.codex.outputTooLarge` | Codex output exceeded the configured limit. |
|
|
255
|
+
| `assistant.codex.paginatedConversationHistoryMissing` | Codex did not create the required paginated conversation history. Update Codex before starting a conversation. |
|
|
256
|
+
| `assistant.codex.paginatedHistoryMissing` | Codex did not create the required paginated history. Update Codex before starting this conversation. |
|
|
257
|
+
| `assistant.codex.reasoningEffortUnsupported` | The selected Codex model does not support this reasoning effort. |
|
|
258
|
+
| `assistant.codex.reconnectOpenAi` | Reconnect the OpenAI account before using this model. |
|
|
259
|
+
| `assistant.codex.responseTimeout` | Timed out waiting for Codex app-server response. |
|
|
260
|
+
| `assistant.codex.signInRequired` | Sign in with codex login before using this conversation. |
|
|
261
|
+
| `assistant.codex.stillReconnecting` | Codex is still reconnecting: its shared runtime is busy starting or stopping. Please try again shortly. |
|
|
262
|
+
| `assistant.codex.stoppedUseResume` | Codex is stopped. Use Resume or Send to continue. |
|
|
263
|
+
| `assistant.codex.temporaryConnectionLost` | Connection to Codex was lost while the temporary AI was working. |
|
|
264
|
+
| `assistant.codex.temporaryConversationClosed` | Temporary AI conversation was closed. |
|
|
265
|
+
| `assistant.codex.temporaryTurnStopped` | Temporary AI turn was stopped. |
|
|
266
|
+
| `assistant.codex.threadInventoryUntrusted` | Codex returned an untrustworthy thread/provider inventory. Restore its connection before changing credentials. |
|
|
267
|
+
| `assistant.codex.toolEntryPointsChanged` | This Codex conversation was created with different application tool entry points. Start a new conversation to enable or remove application tools. |
|
|
268
|
+
| `assistant.codex.turnStopUnconfirmed` | Codex did not confirm that its turn stopped. |
|
|
269
|
+
| `assistant.opencode.cleanupUnconfirmed` | OpenCode process cleanup could not be confirmed. Restore its execution host before continuing. |
|
|
270
|
+
| `assistant.opencode.closedOrWorking` | This OpenCode conversation is closed or already working. |
|
|
271
|
+
| `assistant.opencode.messageNotAcknowledged` | OpenCode did not acknowledge the message. |
|
|
272
|
+
| `assistant.opencode.modelDefinitionUnavailable` | OpenCode could not load the configured model definition. Check the selected integration before sending. |
|
|
273
|
+
| `assistant.opencode.nativeStillWorking` | The native OpenCode conversation is still working. Stop or inspect it before sending another message. |
|
|
274
|
+
| `assistant.opencode.noTurnToSteer` | OpenCode has no active turn to steer. |
|
|
275
|
+
| `assistant.opencode.otherAccount` | This conversation belongs to another OpenCode account. Restore that connection or start a new conversation. |
|
|
276
|
+
| `assistant.opencode.otherHistoryStore` | This OpenCode conversation belongs to another native history store. Restore its original host configuration. |
|
|
277
|
+
| `assistant.opencode.otherHistoryStoreOrRuntime` | This OpenCode conversation belongs to another native history store or runtime. Restore its original host configuration. |
|
|
278
|
+
| `assistant.opencode.otherWorkingDirectory` | This OpenCode conversation belongs to another working directory or native state directory. Restore its original host configuration. |
|
|
279
|
+
| `assistant.opencode.reasoningEffortUnsupported` | The selected OpenCode model does not support this reasoning effort. |
|
|
280
|
+
| `assistant.opencode.reopenTerminalToAttach` | Reopen the OpenCode terminal before attaching files. |
|
|
281
|
+
| `assistant.opencode.savedConversationUnavailable` | The saved OpenCode conversation is unavailable. Restore its native history before continuing. |
|
|
282
|
+
| `assistant.opencode.turnFailed` | OpenCode turn failed. |
|
|
283
|
+
| `assistant.opencode.turnUnreadable` | The exact OpenCode turn did not produce a readable result. |
|
|
284
|
+
| `assistant.opencode.turnNotFinished` | OpenCode did not finish the turn. |
|
|
285
|
+
| `conversation_claude_turn_timeout` | Claude did not finish within the time limit. |
|
|
286
|
+
| `conversation_claude_renewal_history_mismatch` | The Claude renewal conversation does not match the expected native history. |
|
|
287
|
+
| `conversation_claude_renewal_unrelated_history` | The successor Claude conversation already contains unrelated messages. |
|
|
288
|
+
| `conversation_claude_renewal_turn_active` | Stop the current turn before renewing this conversation. |
|
|
289
|
+
| `conversation_claude_unavailable` | This Claude conversation is unavailable. |
|
|
290
|
+
| `conversation_claude_retained_goal_invalid` | The retained Claude goal is invalid. Restore its saved conversation state. |
|
|
291
|
+
| `conversation_claude_retained_goal_conflict` | The saved Claude goal cannot be both paused and blocked. |
|
|
292
|
+
| `conversation_claude_session_closing` | This session is closing. |
|
|
293
|
+
| `conversation_claude_preparation_stopped` | Claude preparation was stopped while this session was closing or changing. |
|
|
294
|
+
| `conversation_claude_terminal_turn_active` | Stop the current turn before opening the Claude Code terminal. |
|
|
295
|
+
| `conversation_claude_still_working` | This conversation is still working. |
|
|
296
|
+
| `conversation_claude_history_retire_busy` | Stop the saved Claude process and its terminal before retiring native history. |
|
|
297
|
+
| `conversation_claude_message_required` | Enter a message for Claude. |
|
|
298
|
+
| `conversation_claude_command_stopped` | The goal command was stopped before delivery. |
|
|
299
|
+
| `conversation_claude_context_usage_unavailable` | Claude's current context usage is unavailable. |
|
|
300
|
+
| `conversation_claude_goal_clear_unconfirmed` | Claude has not saved the retained goal's native clear receipt. |
|
|
301
|
+
| `conversation_claude_saved_state_unreadable` | The saved Claude conversation {conversationId} is unreadable. Restore its saved conversation state. |
|
|
302
|
+
| `conversation_tool_not_executed` | Execution stopped before the action began. |
|
|
303
|
+
| `conversation_tool_outcome_unknown` | The application operation did not return a verified result. Inspect its target before requesting another execution. |
|
|
304
|
+
| `conversation_unsupported` | This original scoped conversation has no canonical message or goal receipt. |
|
|
305
|
+
| `assistant_claude_goal_attachment_pending` | Claude accepted the goal command, but its goal attachment is not available yet. Check its original receipt before trying again. |
|
|
306
|
+
| `assistant_claude_admission_unknown` | Claude has not acknowledged this prompt. Its delivery is uncertain. |
|
|
307
|
+
| `assistant_claude_startup_exited` | Claude exited before initialization completed. |
|
|
308
|
+
| `claude_stop_unconfirmed` | Claude process cleanup could not be confirmed. Restore its execution host before continuing. |
|
|
309
|
+
| `claude_account_changed` | This conversation belongs to another Claude account. Reconnect that account or start a new session. |
|
|
310
|
+
| `assistant_opencode_recovery_order_unconfirmed` | OpenCode could not confirm that the new input follows its final-answer recovery. The admitted message was not resent. |
|
|
311
|
+
| `assistant_opencode_interrupt_unconfirmed` | OpenCode did not confirm Stop. Try Stop again. |
|
|
312
|
+
| `assistant_opencode_interrupt_timeout` | OpenCode did not confirm Stop within 5 seconds. Try Stop again. |
|
|
313
|
+
| `assistant_opencode_key_verification_unavailable` | OpenCode API-key verification could not run. |
|
|
314
|
+
| `assistant_opencode_stop_unverified` | OpenCode process exit could not be verified. |
|
|
315
|
+
| `assistant_opencode_connection_reload_failed` | OpenCode could not load the changed AI connection for this work. Send your message again. |
|
|
316
|
+
| `assistant_opencode_response_too_large` | OpenCode returned more data than the bridge accepts. |
|
|
317
|
+
| `assistant_opencode_event_too_large` | An OpenCode event exceeded the bridge limit. |
|
|
318
|
+
| `assistant_opencode_directory_unavailable` | OpenCode did not confirm its conversation directory is ready. |
|
|
319
|
+
| `assistant_opencode_catalog_invalid` | OpenCode returned an invalid provider catalogue. |
|
|
320
|
+
| `assistant_opencode_catalog_stop_failed` | The temporary OpenCode catalogue process did not stop cleanly. |
|
|
321
|
+
| `assistant_opencode_events_timeout` | OpenCode's event connection did not become ready. |
|
|
322
|
+
| `assistant_opencode_observation_lost` | OpenCode's event connection ended before observation was closed. |
|
|
323
|
+
| `assistant_opencode_parent_unverified` | The subagent's parent session could not be verified. |
|
|
324
|
+
| `assistant_opencode_start_timeout` | OpenCode did not become ready before the startup deadline. |
|
|
325
|
+
| `assistant_opencode_version_mismatch` | OpenCode {installed} is installed; this host requires {required}. |
|
|
326
|
+
| `assistant_opencode_zen_catalog_unavailable` | OpenCode Zen's current model list could not be read. Try again. |
|
|
327
|
+
| `assistant_agent_control_binding_retained` | Another native subscriber retained the previous assistant settings. Close the native assistant terminal and retry Resume. |
|
|
328
|
+
| `assistant_codex_provider_binding_retained` | Another native subscriber retained the previous model provider. Close the native assistant terminal and retry. |
|
|
329
|
+
| `assistant_codex_provider_switch_busy` | Stop the current turn before immediately changing model providers. |
|
|
330
|
+
| `assistant_codex_history_request_too_large` | Codex history exceeds the adapter request limit. |
|
|
331
|
+
| `assistant_codex_history_request_unreadable` | Codex sent an unreadable or oversized history request. |
|
|
332
|
+
| `assistant_codex_app_server_message_too_large` | Codex app-server message exceeded the configured transport limit. |
|
|
333
|
+
| `codex_reconnect_required` | Sign in with codex login before continuing. |
|
|
334
|
+
| `codex_provider_connection_changed` | This Codex provider connection changed. Work is stopped; use Send or Resume after reconnecting. |
|
|
335
|
+
| `codex_runtime_invalidated` | Codex's native runtime was invalidated. |
|
|
336
|
+
| `assistant_provider_fetch_missing` | Global fetch is not available for anthropic provider. |
|
|
337
|
+
| `assistant_tool_arguments_invalid` | Tool arguments must be a JSON object. |
|
|
338
|
+
| `assistant_tool_result_unserializable` | Tool result could not be serialized. |
|
|
339
|
+
| `assistant_tool_result_too_large` | Tool result exceeds the assistant size limit. Narrow the request and try again. |
|
|
340
|
+
| `assistant_tool_contract_too_large` | Action contract exceeds the assistant size limit. Narrow the request and try again. |
|
|
341
|
+
| `assistant_tool_arguments_too_large` | Tool arguments exceed the assistant size limit. Narrow the request and try again. |
|
|
342
|
+
| `assistant_action_cursor_invalid` | Action search cursor is invalid for this query. |
|
|
343
|
+
| `assistant_action_unknown` | Action is not available. |
|
|
344
|
+
| `assistant_action_contract_required` | Load this action's exact contract before executing it. |
|
|
345
|
+
| `assistant_tool_output_invalid` | Assistant tool output validation failed. |
|
|
346
|
+
| `assistant_tool_unknown` | Unknown tool. |
|
|
347
|
+
| `assistant_claude_control_timeout` | Claude {request} timed out. |
|
|
348
|
+
|
|
3
349
|
## 0.2.0 - 2026-10-29
|
|
4
350
|
|
|
5
351
|
- Translation ready: every user-visible text is a message key with its English in `locales/en.json`, so an app translates it by supplying translation files only. With no translations, texts and behaviour are unchanged. See the guide "Translating a JSKIT app".
|
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
"build": "vite build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@jskit-ai/assistant-core": "0.2.
|
|
12
|
-
"@jskit-ai/http-runtime": "0.2.
|
|
13
|
-
"@jskit-ai/kernel": "0.2.
|
|
11
|
+
"@jskit-ai/assistant-core": "0.2.14",
|
|
12
|
+
"@jskit-ai/http-runtime": "0.2.6",
|
|
13
|
+
"@jskit-ai/kernel": "0.2.6",
|
|
14
14
|
"@mdi/js": "^7.4.47",
|
|
15
15
|
"vue": "^3.5.13",
|
|
16
16
|
"vuetify": "^4.0.0",
|
|
17
|
-
"@jskit-ai/connectors-core": "0.2.
|
|
18
|
-
"@jskit-ai/connectors-catalog": "0.2.
|
|
17
|
+
"@jskit-ai/connectors-core": "0.2.7",
|
|
18
|
+
"@jskit-ai/connectors-catalog": "0.2.7"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@vitejs/plugin-vue": "^6.0.7",
|
|
@@ -179,6 +179,7 @@ const adapter = reactive({
|
|
|
179
179
|
<button v-if="capabilitiesEnabled" @click="finishUploads">Finish uploads</button>
|
|
180
180
|
<button @click="goalEnabled = !goalEnabled">Toggle goals</button>
|
|
181
181
|
<button v-if="goal" @click="goal = { ...goal, status: 'blocked', reason: 'An explanation of the blocker. '.repeat(200) }">Block goal with long explanation</button>
|
|
182
|
+
<button v-if="goal" @click="goal = { ...goal, status: 'complete' }">Complete goal</button>
|
|
182
183
|
<template v-if="previewFixture">
|
|
183
184
|
<button @click="temporaryWords = 'Exact temporary words'; temporaryPresent = true; temporaryEditing = false">Add temporary message</button>
|
|
184
185
|
<button @click="newerWords = 'Keep newer live words'; newerPresent = true; newerEditing = false">Add newer temporary message</button>
|
package/locales/en.json
CHANGED
|
@@ -163,7 +163,9 @@
|
|
|
163
163
|
"suggestedAnswers": "Suggested answers"
|
|
164
164
|
},
|
|
165
165
|
"settings": {
|
|
166
|
-
"readOnly": "Read-only"
|
|
166
|
+
"readOnly": "Read-only",
|
|
167
|
+
"systemPromptTooLong": "Assistant system prompt must be at most {max} characters.",
|
|
168
|
+
"systemPromptInvalid": "Assistant system prompt must be valid text."
|
|
167
169
|
},
|
|
168
170
|
"transcript": {
|
|
169
171
|
"assistant": "Assistant",
|
|
@@ -190,7 +192,9 @@
|
|
|
190
192
|
},
|
|
191
193
|
"turn": {
|
|
192
194
|
"failed": "Assistant stopped with an error.",
|
|
193
|
-
"stopped": "Stopped."
|
|
195
|
+
"stopped": "Stopped.",
|
|
196
|
+
"invalidResponse": "The assistant returned an invalid response.",
|
|
197
|
+
"requestIncomplete": "The assistant could not complete this request."
|
|
194
198
|
},
|
|
195
199
|
"conversation": {
|
|
196
200
|
"handleClosed": "This conversation handle is closed.",
|
|
@@ -321,7 +325,13 @@
|
|
|
321
325
|
"toolProgressLimit": "Application tool progress text exceeds the configured API limit.",
|
|
322
326
|
"finalReplyLimit": "The assistant exceeded the configured final reply limit.",
|
|
323
327
|
"historyBudgetExceeded": "Conversation updates exceed the configured history budget. Renew the context with a continuity briefing before continuing.",
|
|
324
|
-
"briefingBudgetExceeded": "The continuity briefing exceeds the configured history budget."
|
|
328
|
+
"briefingBudgetExceeded": "The continuity briefing exceeds the configured history budget.",
|
|
329
|
+
"contextChangedInstallingPrompt": "Conversation context changed while installing its system prompt. Retry before sending.",
|
|
330
|
+
"contextChangedReadingInstructions": "Conversation context changed while reading instructions. Retry before sending.",
|
|
331
|
+
"messageNotAcknowledged": "The engine did not acknowledge the message.",
|
|
332
|
+
"stopTemporaryBeforeChange": "Stop this temporary conversation before changing its AI.",
|
|
333
|
+
"toolArgumentsTooLarge": "The application tool arguments exceed their size limit.",
|
|
334
|
+
"toolCallLimit": "The assistant reached the application tool-call limit for this turn."
|
|
325
335
|
},
|
|
326
336
|
"claude": {
|
|
327
337
|
"goalChanged": "The Claude goal changed. Refresh before trying again.",
|
|
@@ -335,7 +345,30 @@
|
|
|
335
345
|
"steeringUnavailable": "This Claude turn cannot accept steering now.",
|
|
336
346
|
"settingsChangeWhileWorking": "Stop the current Claude turn before changing its settings.",
|
|
337
347
|
"notConnected": "Claude Code is not connected.",
|
|
338
|
-
"accountStatusInvalid": "Claude Code returned an invalid account status."
|
|
348
|
+
"accountStatusInvalid": "Claude Code returned an invalid account status.",
|
|
349
|
+
"accountChangedRefreshModels": "The signed-in Claude account changed. Refresh the model list.",
|
|
350
|
+
"accountQueryCancelled": "Claude account query was cancelled for reconnection.",
|
|
351
|
+
"accountQueryCleanupUnconfirmed": "Claude account query process cleanup could not be confirmed.",
|
|
352
|
+
"answerInterrupted": "Claude interrupted this answer.",
|
|
353
|
+
"chooseConnectedModel": "Choose a connected Claude Code model.",
|
|
354
|
+
"closedOrWorking": "This Claude conversation is closed or already working.",
|
|
355
|
+
"connectionClosed": "Claude connection is closed.",
|
|
356
|
+
"connectionWasClosed": "Claude connection was closed.",
|
|
357
|
+
"controlNeedsTerminal": "This control request requires the native Claude Code terminal.",
|
|
358
|
+
"eventConnectionEnded": "Claude event connection ended unexpectedly.",
|
|
359
|
+
"exitedUnexpectedly": "Claude exited unexpectedly.",
|
|
360
|
+
"modelUnsupported": "This exact provider/model is not supported by the Claude integration. Choose a supported model without renaming it.",
|
|
361
|
+
"noTurnToSteer": "Claude has no active turn to steer.",
|
|
362
|
+
"otherHostConfiguration": "This Claude conversation belongs to another working directory or credential home. Restore its original host configuration.",
|
|
363
|
+
"reasoningEffortUnsupported": "The selected Claude model does not support this reasoning effort.",
|
|
364
|
+
"reconnecting": "Claude is reconnecting.",
|
|
365
|
+
"sendNowUnsupported": "This Claude version does not support targeted Send now.",
|
|
366
|
+
"signInRequired": "Sign in with claude auth login before using this conversation.",
|
|
367
|
+
"stopBeforeReset": "Stop Claude before resetting its turn view.",
|
|
368
|
+
"toolCallLimit": "Claude exceeded the application tool-call limit.",
|
|
369
|
+
"turnStillWorking": "This Claude turn is still working.",
|
|
370
|
+
"workEnded": "Claude work ended.",
|
|
371
|
+
"outputTooLarge": "Claude output exceeded its size limit."
|
|
339
372
|
},
|
|
340
373
|
"codex": {
|
|
341
374
|
"helperThreadUnavailable": "This low-cost assistant thread is no longer available. Start the background task again instead of reusing another assistant conversation.",
|
|
@@ -355,7 +388,58 @@
|
|
|
355
388
|
"messageEmpty": "Codex message is empty.",
|
|
356
389
|
"messageInputEmpty": "Codex message input is empty.",
|
|
357
390
|
"operationNotSteerable": "The active assistant operation cannot accept messages yet.",
|
|
358
|
-
"temporaryConversationBusy": "Temporary AI is already working on this conversation."
|
|
391
|
+
"temporaryConversationBusy": "Temporary AI is already working on this conversation.",
|
|
392
|
+
"accountChangedSendAgain": "Codex (OpenAI) changed account. Send your message again.",
|
|
393
|
+
"accountUnavailable": "The selected Codex account is unavailable. Reconnect Codex and retry.",
|
|
394
|
+
"assistantChangedRefresh": "The assistant changed. Refresh before resuming.",
|
|
395
|
+
"authChangedReopen": "Codex authentication changed. Reopen the conversation with its original account.",
|
|
396
|
+
"authModeUnsupported": "The selected Codex authentication mode is unsupported. Reconnect Codex and retry.",
|
|
397
|
+
"authRecordInvalid": "The selected Codex authentication record is invalid. Reconnect Codex and retry.",
|
|
398
|
+
"authRecordTooLarge": "The selected Codex authentication record is too large. Reconnect Codex and retry.",
|
|
399
|
+
"authRecordUnreadable": "The selected Codex authentication record could not be read. Reconnect Codex and retry.",
|
|
400
|
+
"authorizedSettingsRequired": "Codex requires current authorized settings before resuming this conversation.",
|
|
401
|
+
"connectionClosedBeforeSettings": "The assistant connection closed before confirming its settings.",
|
|
402
|
+
"connectionUnverified": "The assistant connection could not be verified. Your conversation and files are preserved. Retry the connection, or renew the session to continue in a fresh conversation.",
|
|
403
|
+
"credentialsUnreadable": "Codex credential data could not be read. Restore its account configuration.",
|
|
404
|
+
"ephemeralInstructionsFixed": "Start a new ephemeral conversation to change its instructions.",
|
|
405
|
+
"goalPauseUnconfirmed": "Codex did not confirm that the same goal was paused.",
|
|
406
|
+
"goalsAreControls": "Codex goals are controls. Inspect any unresolved goal-message record before continuing.",
|
|
407
|
+
"helperAccessTokenStale": "The selected Codex account has not produced a newer access token yet. Reconnect Codex and retry.",
|
|
408
|
+
"helperAccountActivationFailed": "Codex could not activate the selected account for isolated helper work. Reconnect Codex and retry.",
|
|
409
|
+
"helperAccountChanged": "The selected Codex account changed during helper work. Retry the task with the current account.",
|
|
410
|
+
"helperAccountChangedBeforeRun": "The selected Codex account changed before low-cost assistant work could run. Retry the task with the current account.",
|
|
411
|
+
"helperAccountChangedStarting": "The selected Codex account changed while helper execution was starting. Retry the task.",
|
|
412
|
+
"helperAccountIdentityInvalid": "The requested low-cost assistant account identity is invalid. Refresh the task and retry.",
|
|
413
|
+
"helperAuthRefreshRejected": "Codex helper authentication refresh was rejected. Reconnect Codex and retry.",
|
|
414
|
+
"helperAuthUnavailable": "Codex helper authentication is unavailable. Reconnect Codex and retry.",
|
|
415
|
+
"helperExecutionFailed": "Codex isolated helper execution failed. Retry the task.",
|
|
416
|
+
"helperThreadReconnectAccount": "Reconnect the original Codex account to resume or delete this helper thread.",
|
|
417
|
+
"historyFormatStartFresh": "This conversation uses an unsupported Codex history format. Start a fresh conversation.",
|
|
418
|
+
"historyFormatUnsupported": "This conversation uses an unsupported Codex history format. Renew the session to keep your files and saved chat and start a fresh conversation. You can write the handover yourself.",
|
|
419
|
+
"loadedThreadsInvalid": "Codex returned an invalid loaded-thread inventory. Restore its connection before retrying.",
|
|
420
|
+
"modelDiscoveryUnavailable": "Codex live model discovery is unavailable.",
|
|
421
|
+
"modelUnsupported": "This exact provider/model is not supported by the Codex integration. Choose a supported model without renaming it.",
|
|
422
|
+
"nativeGoalChanged": "The native goal changed. Read it again before changing it.",
|
|
423
|
+
"observationLostStopUnverified": "Codex observation was lost and a stop is not yet verified. Retry after the service has stopped.",
|
|
424
|
+
"oldThreadUnreadable": "The old assistant thread cannot be read. Write or edit the handover manually instead.",
|
|
425
|
+
"otherAccount": "This conversation belongs to another Codex account. Restore that account or start a new conversation.",
|
|
426
|
+
"otherHostConfiguration": "This Codex conversation belongs to another working directory or credential home. Restore its original host configuration.",
|
|
427
|
+
"otherProviderAccount": "This conversation belongs to another Codex provider account. Restore that connection or start a new conversation.",
|
|
428
|
+
"outputTooLarge": "Codex output exceeded the configured limit.",
|
|
429
|
+
"paginatedConversationHistoryMissing": "Codex did not create the required paginated conversation history. Update Codex before starting a conversation.",
|
|
430
|
+
"paginatedHistoryMissing": "Codex did not create the required paginated history. Update Codex before starting this conversation.",
|
|
431
|
+
"reasoningEffortUnsupported": "The selected Codex model does not support this reasoning effort.",
|
|
432
|
+
"reconnectOpenAi": "Reconnect the OpenAI account before using this model.",
|
|
433
|
+
"responseTimeout": "Timed out waiting for Codex app-server response.",
|
|
434
|
+
"signInRequired": "Sign in with codex login before using this conversation.",
|
|
435
|
+
"stillReconnecting": "Codex is still reconnecting: its shared runtime is busy starting or stopping. Please try again shortly.",
|
|
436
|
+
"stoppedUseResume": "Codex is stopped. Use Resume or Send to continue.",
|
|
437
|
+
"temporaryConnectionLost": "Connection to Codex was lost while the temporary AI was working.",
|
|
438
|
+
"temporaryConversationClosed": "Temporary AI conversation was closed.",
|
|
439
|
+
"temporaryTurnStopped": "Temporary AI turn was stopped.",
|
|
440
|
+
"threadInventoryUntrusted": "Codex returned an untrustworthy thread/provider inventory. Restore its connection before changing credentials.",
|
|
441
|
+
"toolEntryPointsChanged": "This Codex conversation was created with different application tool entry points. Start a new conversation to enable or remove application tools.",
|
|
442
|
+
"turnStopUnconfirmed": "Codex did not confirm that its turn stopped."
|
|
359
443
|
},
|
|
360
444
|
"provider": {
|
|
361
445
|
"notConfigured": "Assistant provider is not configured.",
|
|
@@ -365,6 +449,24 @@
|
|
|
365
449
|
"stream": {
|
|
366
450
|
"failed": "Assistant stream failed.",
|
|
367
451
|
"requestFailed": "Request failed."
|
|
452
|
+
},
|
|
453
|
+
"opencode": {
|
|
454
|
+
"cleanupUnconfirmed": "OpenCode process cleanup could not be confirmed. Restore its execution host before continuing.",
|
|
455
|
+
"closedOrWorking": "This OpenCode conversation is closed or already working.",
|
|
456
|
+
"messageNotAcknowledged": "OpenCode did not acknowledge the message.",
|
|
457
|
+
"modelDefinitionUnavailable": "OpenCode could not load the configured model definition. Check the selected integration before sending.",
|
|
458
|
+
"nativeStillWorking": "The native OpenCode conversation is still working. Stop or inspect it before sending another message.",
|
|
459
|
+
"noTurnToSteer": "OpenCode has no active turn to steer.",
|
|
460
|
+
"otherAccount": "This conversation belongs to another OpenCode account. Restore that connection or start a new conversation.",
|
|
461
|
+
"otherHistoryStore": "This OpenCode conversation belongs to another native history store. Restore its original host configuration.",
|
|
462
|
+
"otherHistoryStoreOrRuntime": "This OpenCode conversation belongs to another native history store or runtime. Restore its original host configuration.",
|
|
463
|
+
"otherWorkingDirectory": "This OpenCode conversation belongs to another working directory or native state directory. Restore its original host configuration.",
|
|
464
|
+
"reasoningEffortUnsupported": "The selected OpenCode model does not support this reasoning effort.",
|
|
465
|
+
"reopenTerminalToAttach": "Reopen the OpenCode terminal before attaching files.",
|
|
466
|
+
"savedConversationUnavailable": "The saved OpenCode conversation is unavailable. Restore its native history before continuing.",
|
|
467
|
+
"turnFailed": "OpenCode turn failed.",
|
|
468
|
+
"turnUnreadable": "The exact OpenCode turn did not produce a readable result.",
|
|
469
|
+
"turnNotFinished": "OpenCode did not finish the turn."
|
|
368
470
|
}
|
|
369
471
|
},
|
|
370
472
|
"errors": {
|
|
@@ -380,7 +482,70 @@
|
|
|
380
482
|
"assistant_opencode_key_verification_failed": "OpenCode rejected the API-key verification request.",
|
|
381
483
|
"assistant_opencode_turn_thread_mismatch": "The OpenCode predecessor history changed before handover generation.",
|
|
382
484
|
"assistant_opencode_turn_fresh_thread_required": "The renewed OpenCode conversation does not own the expected fresh native history.",
|
|
383
|
-
"assistant_opencode_turn_unrelated_history": "The successor OpenCode history contains unrelated conversation and cannot be used for renewal."
|
|
485
|
+
"assistant_opencode_turn_unrelated_history": "The successor OpenCode history contains unrelated conversation and cannot be used for renewal.",
|
|
486
|
+
"conversation_claude_turn_timeout": "Claude did not finish within the time limit.",
|
|
487
|
+
"conversation_claude_renewal_history_mismatch": "The Claude renewal conversation does not match the expected native history.",
|
|
488
|
+
"conversation_claude_renewal_unrelated_history": "The successor Claude conversation already contains unrelated messages.",
|
|
489
|
+
"conversation_claude_renewal_turn_active": "Stop the current turn before renewing this conversation.",
|
|
490
|
+
"conversation_claude_unavailable": "This Claude conversation is unavailable.",
|
|
491
|
+
"conversation_claude_retained_goal_invalid": "The retained Claude goal is invalid. Restore its saved conversation state.",
|
|
492
|
+
"conversation_claude_retained_goal_conflict": "The saved Claude goal cannot be both paused and blocked.",
|
|
493
|
+
"conversation_claude_session_closing": "This session is closing.",
|
|
494
|
+
"conversation_claude_preparation_stopped": "Claude preparation was stopped while this session was closing or changing.",
|
|
495
|
+
"conversation_claude_terminal_turn_active": "Stop the current turn before opening the Claude Code terminal.",
|
|
496
|
+
"conversation_claude_still_working": "This conversation is still working.",
|
|
497
|
+
"conversation_claude_history_retire_busy": "Stop the saved Claude process and its terminal before retiring native history.",
|
|
498
|
+
"conversation_claude_message_required": "Enter a message for Claude.",
|
|
499
|
+
"conversation_claude_command_stopped": "The goal command was stopped before delivery.",
|
|
500
|
+
"conversation_claude_context_usage_unavailable": "Claude's current context usage is unavailable.",
|
|
501
|
+
"conversation_claude_goal_clear_unconfirmed": "Claude has not saved the retained goal's native clear receipt.",
|
|
502
|
+
"conversation_claude_saved_state_unreadable": "The saved Claude conversation {conversationId} is unreadable. Restore its saved conversation state.",
|
|
503
|
+
"conversation_tool_not_executed": "Execution stopped before the action began.",
|
|
504
|
+
"conversation_tool_outcome_unknown": "The application operation did not return a verified result. Inspect its target before requesting another execution.",
|
|
505
|
+
"conversation_unsupported": "This original scoped conversation has no canonical message or goal receipt.",
|
|
506
|
+
"assistant_claude_goal_attachment_pending": "Claude accepted the goal command, but its goal attachment is not available yet. Check its original receipt before trying again.",
|
|
507
|
+
"assistant_claude_admission_unknown": "Claude has not acknowledged this prompt. Its delivery is uncertain.",
|
|
508
|
+
"assistant_claude_startup_exited": "Claude exited before initialization completed.",
|
|
509
|
+
"claude_stop_unconfirmed": "Claude process cleanup could not be confirmed. Restore its execution host before continuing.",
|
|
510
|
+
"claude_account_changed": "This conversation belongs to another Claude account. Reconnect that account or start a new session.",
|
|
511
|
+
"assistant_opencode_recovery_order_unconfirmed": "OpenCode could not confirm that the new input follows its final-answer recovery. The admitted message was not resent.",
|
|
512
|
+
"assistant_opencode_interrupt_unconfirmed": "OpenCode did not confirm Stop. Try Stop again.",
|
|
513
|
+
"assistant_opencode_interrupt_timeout": "OpenCode did not confirm Stop within 5 seconds. Try Stop again.",
|
|
514
|
+
"assistant_opencode_key_verification_unavailable": "OpenCode API-key verification could not run.",
|
|
515
|
+
"assistant_opencode_stop_unverified": "OpenCode process exit could not be verified.",
|
|
516
|
+
"assistant_opencode_connection_reload_failed": "OpenCode could not load the changed AI connection for this work. Send your message again.",
|
|
517
|
+
"assistant_opencode_response_too_large": "OpenCode returned more data than the bridge accepts.",
|
|
518
|
+
"assistant_opencode_event_too_large": "An OpenCode event exceeded the bridge limit.",
|
|
519
|
+
"assistant_opencode_directory_unavailable": "OpenCode did not confirm its conversation directory is ready.",
|
|
520
|
+
"assistant_opencode_catalog_invalid": "OpenCode returned an invalid provider catalogue.",
|
|
521
|
+
"assistant_opencode_catalog_stop_failed": "The temporary OpenCode catalogue process did not stop cleanly.",
|
|
522
|
+
"assistant_opencode_events_timeout": "OpenCode's event connection did not become ready.",
|
|
523
|
+
"assistant_opencode_observation_lost": "OpenCode's event connection ended before observation was closed.",
|
|
524
|
+
"assistant_opencode_parent_unverified": "The subagent's parent session could not be verified.",
|
|
525
|
+
"assistant_opencode_start_timeout": "OpenCode did not become ready before the startup deadline.",
|
|
526
|
+
"assistant_opencode_version_mismatch": "OpenCode {installed} is installed; this host requires {required}.",
|
|
527
|
+
"assistant_opencode_zen_catalog_unavailable": "OpenCode Zen's current model list could not be read. Try again.",
|
|
528
|
+
"assistant_agent_control_binding_retained": "Another native subscriber retained the previous assistant settings. Close the native assistant terminal and retry Resume.",
|
|
529
|
+
"assistant_codex_provider_binding_retained": "Another native subscriber retained the previous model provider. Close the native assistant terminal and retry.",
|
|
530
|
+
"assistant_codex_provider_switch_busy": "Stop the current turn before immediately changing model providers.",
|
|
531
|
+
"assistant_codex_history_request_too_large": "Codex history exceeds the adapter request limit.",
|
|
532
|
+
"assistant_codex_history_request_unreadable": "Codex sent an unreadable or oversized history request.",
|
|
533
|
+
"assistant_codex_app_server_message_too_large": "Codex app-server message exceeded the configured transport limit.",
|
|
534
|
+
"codex_reconnect_required": "Sign in with codex login before continuing.",
|
|
535
|
+
"codex_provider_connection_changed": "This Codex provider connection changed. Work is stopped; use Send or Resume after reconnecting.",
|
|
536
|
+
"codex_runtime_invalidated": "Codex's native runtime was invalidated.",
|
|
537
|
+
"assistant_provider_fetch_missing": "Global fetch is not available for anthropic provider.",
|
|
538
|
+
"assistant_tool_arguments_invalid": "Tool arguments must be a JSON object.",
|
|
539
|
+
"assistant_tool_result_unserializable": "Tool result could not be serialized.",
|
|
540
|
+
"assistant_tool_result_too_large": "Tool result exceeds the assistant size limit. Narrow the request and try again.",
|
|
541
|
+
"assistant_tool_contract_too_large": "Action contract exceeds the assistant size limit. Narrow the request and try again.",
|
|
542
|
+
"assistant_tool_arguments_too_large": "Tool arguments exceed the assistant size limit. Narrow the request and try again.",
|
|
543
|
+
"assistant_action_cursor_invalid": "Action search cursor is invalid for this query.",
|
|
544
|
+
"assistant_action_unknown": "Action is not available.",
|
|
545
|
+
"assistant_action_contract_required": "Load this action's exact contract before executing it.",
|
|
546
|
+
"assistant_tool_output_invalid": "Assistant tool output validation failed.",
|
|
547
|
+
"assistant_tool_unknown": "Unknown tool.",
|
|
548
|
+
"assistant_claude_control_timeout": "Claude {request} timed out."
|
|
384
549
|
}
|
|
385
550
|
}
|
|
386
551
|
}
|