codexmate 0.1.9 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -4
- package/README.vi.md +0 -4
- package/README.zh.md +0 -4
- package/cli/agents-files.js +27 -3
- package/cli/prompt-history.js +171 -0
- package/cli/system-prompt-files.js +20 -2
- package/cli.js +83 -2694
- package/package.json +1 -1
- package/web-ui/app.js +39 -56
- package/web-ui/index.html +0 -1
- package/web-ui/modules/app.computed.dashboard.mjs +0 -3
- package/web-ui/modules/app.computed.main-tabs.mjs +0 -474
- package/web-ui/modules/app.methods.agents.mjs +90 -0
- package/web-ui/modules/app.methods.index.mjs +1 -3
- package/web-ui/modules/app.methods.navigation.mjs +8 -3
- package/web-ui/modules/app.methods.session-actions.mjs +57 -25
- package/web-ui/modules/app.methods.system-prompt.mjs +81 -0
- package/web-ui/modules/app.methods.web-ui-preferences.mjs +26 -9
- package/web-ui/modules/i18n/locales/en.mjs +10 -265
- package/web-ui/modules/i18n/locales/ja.mjs +10 -265
- package/web-ui/modules/i18n/locales/vi.mjs +10 -266
- package/web-ui/modules/i18n/locales/zh-tw.mjs +10 -265
- package/web-ui/modules/i18n/locales/zh.mjs +10 -265
- package/web-ui/partials/index/layout-header.html +5 -48
- package/web-ui/partials/index/panel-config-claude.html +3 -3
- package/web-ui/partials/index/panel-config-codex.html +3 -3
- package/web-ui/partials/index/panel-config-kilocode.html +5 -5
- package/web-ui/partials/index/panel-config-openclaw.html +3 -3
- package/web-ui/partials/index/panel-config-opencode.html +5 -5
- package/web-ui/partials/index/panel-dashboard.html +0 -21
- package/web-ui/partials/index/panel-prompts.html +52 -0
- package/web-ui/partials/index/panel-sessions.html +12 -0
- package/web-ui/partials/index/panel-settings.html +35 -0
- package/web-ui/res/web-ui-render.precompiled.js +543 -1376
- package/web-ui/session-helpers.mjs +0 -16
- package/web-ui/styles/modals-core.css +86 -0
- package/web-ui/styles/sessions-preview.css +38 -0
- package/web-ui/styles/titles-cards.css +2 -2
- package/web-ui/styles.css +0 -1
- package/lib/automation.js +0 -404
- package/lib/task-orchestrator.js +0 -938
- package/lib/task-workspace-chat.js +0 -292
- package/web-ui/modules/app.methods.task-orchestration.mjs +0 -895
- package/web-ui/partials/index/panel-orchestration.html +0 -598
- package/web-ui/styles/task-orchestration.css +0 -2979
|
@@ -65,6 +65,13 @@
|
|
|
65
65
|
:title="t('common.paste')">
|
|
66
66
|
<svg class="btn-icon-sm" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="8" y="2" width="8" height="4" rx="1"/><path d="M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2"/></svg>
|
|
67
67
|
</button>
|
|
68
|
+
<button
|
|
69
|
+
class="btn-mini"
|
|
70
|
+
@click="openPromptHistory"
|
|
71
|
+
:disabled="agentsSaving || agentsDiffVisible"
|
|
72
|
+
:title="t('common.history')">
|
|
73
|
+
<svg class="btn-icon-sm" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 8v4l3 2"/><path d="M3 12a9 9 0 1 0 9-9 9 9 0 0 0-7.5 4M3 4v4h4"/></svg>
|
|
74
|
+
</button>
|
|
68
75
|
</div>
|
|
69
76
|
<div class="prompts-editor-group prompts-editor-group--workflow">
|
|
70
77
|
<button class="btn-mini" @click="loadPromptsContent" :disabled="agentsSaving || agentsDiffLoading" :title="t('common.cancel')">
|
|
@@ -85,6 +92,27 @@
|
|
|
85
92
|
</div>
|
|
86
93
|
</div>
|
|
87
94
|
</div>
|
|
95
|
+
<details v-if="promptHistoryVisible" class="prompt-history-panel" open>
|
|
96
|
+
<summary class="prompt-history-summary">
|
|
97
|
+
<span>{{ t('common.history') }}</span>
|
|
98
|
+
<button type="button" class="btn-mini prompt-history-close" @click="closePromptHistory" :title="t('common.close')">✕</button>
|
|
99
|
+
</summary>
|
|
100
|
+
<div class="prompt-history-body">
|
|
101
|
+
<ul v-if="!promptHistoryLoading && !promptHistoryError && promptHistoryItems.length" class="prompt-history-list">
|
|
102
|
+
<li v-for="item in promptHistoryItems" :key="item.id" :class="['prompt-history-item', { active: promptHistoryPreviewId === item.id }]" @click="viewPromptHistoryItem(item)">
|
|
103
|
+
<span class="prompt-history-time">{{ item.id }}</span>
|
|
104
|
+
<span class="prompt-history-size">{{ Math.round(item.size / 1024 * 10) / 10 }} KB</span>
|
|
105
|
+
</li>
|
|
106
|
+
</ul>
|
|
107
|
+
<div v-if="promptHistoryLoading" class="state-message">{{ t('diff.generating') }}</div>
|
|
108
|
+
<div v-else-if="promptHistoryError" class="state-message error">{{ promptHistoryError }}</div>
|
|
109
|
+
<div v-else-if="!promptHistoryItems.length" class="state-message">{{ t('toast.history.empty') }}</div>
|
|
110
|
+
<div v-if="promptHistoryPreviewContent" class="prompt-history-preview-wrap">
|
|
111
|
+
<pre class="prompt-history-preview">{{ promptHistoryPreviewContent }}</pre>
|
|
112
|
+
<button type="button" class="btn-mini btn-confirm-mini" @click="applyPromptHistoryToEditor" :disabled="agentsSaving || agentsDiffVisible">{{ t('common.restoreToEditor') }}</button>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
</details>
|
|
88
116
|
<div class="prompt-presets-inline-row">
|
|
89
117
|
<div class="prompt-presets-inline-group">
|
|
90
118
|
<label class="prompt-presets-inline-label">{{ t('prompts.presets.title') }}</label>
|
|
@@ -228,6 +256,9 @@
|
|
|
228
256
|
<button class="btn-mini" @click="pasteSysPromptContent" :disabled="sysPromptLoading || sysPromptSaving || sysPromptDiffVisible" :title="t('common.paste')">
|
|
229
257
|
<svg class="btn-icon-sm" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="8" y="2" width="8" height="4" rx="1"/><path d="M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2"/></svg>
|
|
230
258
|
</button>
|
|
259
|
+
<button class="btn-mini" @click="openSysHistory" :disabled="sysPromptSaving || sysPromptDiffVisible" :title="t('common.history')">
|
|
260
|
+
<svg class="btn-icon-sm" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 8v4l3 2"/><path d="M3 12a9 9 0 1 0 9-9 9 9 0 0 0-7.5 4M3 4v4h4"/></svg>
|
|
261
|
+
</button>
|
|
231
262
|
</div>
|
|
232
263
|
<div class="prompts-editor-group prompts-editor-group--workflow">
|
|
233
264
|
<button class="btn-mini" @click="cancelSysPromptEdit" :disabled="sysPromptSaving || sysPromptDiffLoading" :title="t('common.cancel')">
|
|
@@ -243,6 +274,27 @@
|
|
|
243
274
|
</div>
|
|
244
275
|
</div>
|
|
245
276
|
</div>
|
|
277
|
+
<details v-if="sysHistoryVisible" class="prompt-history-panel" open>
|
|
278
|
+
<summary class="prompt-history-summary">
|
|
279
|
+
<span>{{ t('common.history') }}</span>
|
|
280
|
+
<button type="button" class="btn-mini prompt-history-close" @click="closeSysHistory" :title="t('common.close')">✕</button>
|
|
281
|
+
</summary>
|
|
282
|
+
<div class="prompt-history-body">
|
|
283
|
+
<ul v-if="!sysHistoryLoading && !sysHistoryError && sysHistoryItems.length" class="prompt-history-list">
|
|
284
|
+
<li v-for="item in sysHistoryItems" :key="item.id" :class="['prompt-history-item', { active: sysHistoryPreviewId === item.id }]" @click="viewSysHistoryItem(item)">
|
|
285
|
+
<span class="prompt-history-time">{{ item.id }}</span>
|
|
286
|
+
<span class="prompt-history-size">{{ Math.round(item.size / 1024 * 10) / 10 }} KB</span>
|
|
287
|
+
</li>
|
|
288
|
+
</ul>
|
|
289
|
+
<div v-if="sysHistoryLoading" class="state-message">{{ t('diff.generating') }}</div>
|
|
290
|
+
<div v-else-if="sysHistoryError" class="state-message error">{{ sysHistoryError }}</div>
|
|
291
|
+
<div v-else-if="!sysHistoryItems.length" class="state-message">{{ t('toast.history.empty') }}</div>
|
|
292
|
+
<div v-if="sysHistoryPreviewContent" class="prompt-history-preview-wrap">
|
|
293
|
+
<pre class="prompt-history-preview">{{ sysHistoryPreviewContent }}</pre>
|
|
294
|
+
<button type="button" class="btn-mini btn-confirm-mini" @click="applySysHistoryToEditor" :disabled="sysPromptSaving || sysPromptDiffVisible">{{ t('common.restoreToEditor') }}</button>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
</details>
|
|
246
298
|
<div class="form-group">
|
|
247
299
|
<div v-if="sysPromptDiffVisible">
|
|
248
300
|
<div
|
|
@@ -410,6 +410,18 @@
|
|
|
410
410
|
</div>
|
|
411
411
|
</div>
|
|
412
412
|
<div class="session-msg-content" v-html="highlightQueryText(msg.text) || ''"></div>
|
|
413
|
+
<button
|
|
414
|
+
v-if="msg.normalizedRole === 'user'"
|
|
415
|
+
type="button"
|
|
416
|
+
class="session-msg-copy"
|
|
417
|
+
@click="copySessionMessage(msg)"
|
|
418
|
+
:aria-label="t('sessions.preview.copyMessage')"
|
|
419
|
+
:title="t('sessions.preview.copyMessage')">
|
|
420
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
421
|
+
<rect x="8" y="8" width="12" height="12" rx="2"></rect>
|
|
422
|
+
<path d="M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2"></path>
|
|
423
|
+
</svg>
|
|
424
|
+
</button>
|
|
413
425
|
</div>
|
|
414
426
|
<div v-if="canLoadMoreSessionMessages" class="session-preview-load-more">
|
|
415
427
|
<span>{{ t('sessions.preview.shownCount', { shown: activeSessionVisibleMessages.length, total: activeSessionMessages.length }) }}</span>
|
|
@@ -138,6 +138,41 @@
|
|
|
138
138
|
</div>
|
|
139
139
|
</div>
|
|
140
140
|
</section>
|
|
141
|
+
|
|
142
|
+
<section class="settings-card" :aria-label="t('settings.configTabs.title')">
|
|
143
|
+
<div class="settings-card-main">
|
|
144
|
+
<div class="settings-card-content">
|
|
145
|
+
<div class="settings-card-title">{{ t('settings.configTabs.title') }}</div>
|
|
146
|
+
<p class="settings-card-desc">{{ t('settings.configTabs.meta') }}</p>
|
|
147
|
+
<label class="settings-toggle-row">
|
|
148
|
+
<input type="checkbox" :checked="configModeVisibility.codex" @change="setConfigModeVisibility('codex', $event.target.checked)">
|
|
149
|
+
<span class="toggle-track"><span class="toggle-thumb"></span></span>
|
|
150
|
+
<span>{{ t('tab.config.codex') }}</span>
|
|
151
|
+
</label>
|
|
152
|
+
<label class="settings-toggle-row">
|
|
153
|
+
<input type="checkbox" :checked="configModeVisibility.claude" @change="setConfigModeVisibility('claude', $event.target.checked)">
|
|
154
|
+
<span class="toggle-track"><span class="toggle-thumb"></span></span>
|
|
155
|
+
<span>{{ t('tab.config.claude') }}</span>
|
|
156
|
+
</label>
|
|
157
|
+
<label class="settings-toggle-row">
|
|
158
|
+
<input type="checkbox" :checked="configModeVisibility.openclaw" @change="setConfigModeVisibility('openclaw', $event.target.checked)">
|
|
159
|
+
<span class="toggle-track"><span class="toggle-thumb"></span></span>
|
|
160
|
+
<span>{{ t('tab.config.openclaw') }}</span>
|
|
161
|
+
</label>
|
|
162
|
+
<label class="settings-toggle-row">
|
|
163
|
+
<input type="checkbox" :checked="configModeVisibility.opencode" @change="setConfigModeVisibility('opencode', $event.target.checked)">
|
|
164
|
+
<span class="toggle-track"><span class="toggle-thumb"></span></span>
|
|
165
|
+
<span>{{ t('tab.config.opencode') }}</span>
|
|
166
|
+
</label>
|
|
167
|
+
<label class="settings-toggle-row">
|
|
168
|
+
<input type="checkbox" :checked="configModeVisibility.kilocode" @change="setConfigModeVisibility('kilocode', $event.target.checked)">
|
|
169
|
+
<span class="toggle-track"><span class="toggle-thumb"></span></span>
|
|
170
|
+
<span>{{ t('tab.config.kilocode') }}</span>
|
|
171
|
+
</label>
|
|
172
|
+
<p class="settings-card-hint">{{ t('settings.configTabs.hint') }}</p>
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
</section>
|
|
141
176
|
</div>
|
|
142
177
|
</div>
|
|
143
178
|
|