codexmate 0.0.56 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/README.vi.md +1 -0
- package/README.zh.md +2 -2
- package/cli/openai-bridge-retry.js +62 -0
- package/cli/openai-bridge-runtime.js +1819 -0
- package/cli/openai-bridge.js +137 -2048
- package/cli.js +749 -133
- package/lib/task-orchestrator.js +90 -21
- package/lib/task-workspace-chat.js +292 -0
- package/package.json +2 -2
- package/web-ui/app.js +67 -131
- package/web-ui/modules/app.computed.main-tabs.mjs +304 -7
- package/web-ui/modules/app.methods.agents.mjs +192 -1
- package/web-ui/modules/app.methods.claude-config.mjs +65 -25
- package/web-ui/modules/app.methods.navigation.mjs +67 -83
- package/web-ui/modules/app.methods.openclaw-editing.mjs +3 -6
- package/web-ui/modules/app.methods.providers.mjs +40 -10
- package/web-ui/modules/app.methods.session-actions.mjs +1 -12
- package/web-ui/modules/app.methods.session-browser.mjs +23 -54
- package/web-ui/modules/app.methods.session-trash.mjs +0 -1
- package/web-ui/modules/app.methods.startup-claude.mjs +16 -31
- package/web-ui/modules/app.methods.task-orchestration.mjs +347 -8
- package/web-ui/modules/app.methods.tool-config-permissions.mjs +0 -3
- package/web-ui/modules/app.methods.web-ui-preferences.mjs +442 -68
- package/web-ui/modules/config-template-confirm-pref.mjs +2 -3
- package/web-ui/modules/i18n/locales/en.mjs +181 -30
- package/web-ui/modules/i18n/locales/ja.mjs +178 -27
- package/web-ui/modules/i18n/locales/vi.mjs +180 -29
- package/web-ui/modules/i18n/locales/zh-tw.mjs +181 -30
- package/web-ui/modules/i18n/locales/zh.mjs +183 -32
- package/web-ui/modules/i18n.mjs +5 -12
- package/web-ui/modules/sessions-filters-url.mjs +1 -2
- package/web-ui/partials/index/layout-header.html +44 -38
- package/web-ui/partials/index/modals-basic.html +26 -0
- package/web-ui/partials/index/panel-orchestration.html +489 -282
- package/web-ui/partials/index/panel-prompts.html +66 -3
- package/web-ui/res/web-ui-render.precompiled.js +1181 -604
- package/web-ui/styles/layout-shell.css +157 -1
- package/web-ui/styles/modals-core.css +173 -0
- package/web-ui/styles/navigation-panels.css +11 -0
- package/web-ui/styles/responsive.css +32 -0
- package/web-ui/styles/task-orchestration.css +2161 -4
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
id="panel-prompts"
|
|
6
6
|
role="tabpanel"
|
|
7
7
|
aria-labelledby="tab-prompts">
|
|
8
|
-
<div class="
|
|
9
|
-
<button type="button" :class="['
|
|
10
|
-
<button type="button" :class="['
|
|
8
|
+
<div class="prompts-md-tabs" role="tablist" :aria-label="t('tab.prompts')">
|
|
9
|
+
<button type="button" :class="['prompts-md-tab', { active: promptsSubTab === 'codex' }]" role="tab" :aria-selected="promptsSubTab === 'codex'" @click="switchPromptsSubTab('codex')">{{ t('prompts.subTab.codex') }}</button>
|
|
10
|
+
<button type="button" :class="['prompts-md-tab', { active: promptsSubTab === 'claude-project' }]" role="tab" :aria-selected="promptsSubTab === 'claude-project'" @click="switchPromptsSubTab('claude-project')">{{ t('prompts.subTab.project') }}</button>
|
|
11
11
|
</div>
|
|
12
12
|
|
|
13
13
|
<div v-if="promptsSubTab === 'claude-project'" class="project-path-selector">
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
</div>
|
|
33
33
|
</div>
|
|
34
34
|
|
|
35
|
+
|
|
35
36
|
<div class="prompts-editor">
|
|
36
37
|
<div class="prompts-editor-toolbar">
|
|
37
38
|
<div class="form-hint">
|
|
@@ -83,6 +84,68 @@
|
|
|
83
84
|
</div>
|
|
84
85
|
</div>
|
|
85
86
|
</div>
|
|
87
|
+
<div class="prompt-presets-inline-row">
|
|
88
|
+
<div class="prompt-presets-inline-group">
|
|
89
|
+
<label class="prompt-presets-inline-label">{{ t('prompts.presets.title') }}</label>
|
|
90
|
+
<select
|
|
91
|
+
class="form-input prompt-presets-select"
|
|
92
|
+
:disabled="agentsLoading || agentsSaving || agentsDiffVisible || !promptPresets.length"
|
|
93
|
+
:title="t('prompts.presets.title')"
|
|
94
|
+
@change="applyPromptPresetSelection($event)">
|
|
95
|
+
<option value="">{{ t('prompts.presets.selectPlaceholder') }}</option>
|
|
96
|
+
<option v-for="preset in promptPresets" :key="preset.id" :value="preset.id">{{ preset.name }}</option>
|
|
97
|
+
</select>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="prompt-presets-inline-group prompt-presets-inline-group--save">
|
|
100
|
+
<input
|
|
101
|
+
type="text"
|
|
102
|
+
class="form-input prompt-presets-name-input"
|
|
103
|
+
v-model="promptPresetNameDraft"
|
|
104
|
+
:placeholder="t('prompts.presets.namePlaceholder')"
|
|
105
|
+
:disabled="agentsLoading || agentsSaving || agentsDiffVisible"
|
|
106
|
+
@keydown.enter.prevent="saveCurrentPromptAsPreset">
|
|
107
|
+
<button
|
|
108
|
+
type="button"
|
|
109
|
+
class="btn-mini btn-confirm-mini"
|
|
110
|
+
@click="saveCurrentPromptAsPreset"
|
|
111
|
+
:disabled="promptPresetSaving || agentsLoading || agentsSaving || agentsDiffVisible"
|
|
112
|
+
:title="t('prompts.presets.saveCurrent')">
|
|
113
|
+
{{ t('prompts.presets.saveCurrent') }}
|
|
114
|
+
</button>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
<details class="prompt-presets-panel">
|
|
118
|
+
<summary class="prompt-presets-summary">
|
|
119
|
+
<span>{{ t('prompts.presets.title') }}</span>
|
|
120
|
+
<small>{{ t('prompts.presets.hint') }}</small>
|
|
121
|
+
</summary>
|
|
122
|
+
<div class="form-group prompt-presets-body">
|
|
123
|
+
<div class="editor-frame prompt-presets-frame">
|
|
124
|
+
<div v-if="!promptPresets.length" class="state-message prompt-presets-empty">{{ t('prompts.presets.empty') }}</div>
|
|
125
|
+
<div v-else class="prompt-presets-list">
|
|
126
|
+
<article v-for="preset in promptPresets" :key="preset.id" class="prompt-preset-row">
|
|
127
|
+
<div class="prompt-preset-main">
|
|
128
|
+
<input
|
|
129
|
+
type="text"
|
|
130
|
+
class="form-input prompt-preset-name"
|
|
131
|
+
:value="getPromptPresetRenameDraft(preset)"
|
|
132
|
+
@input="setPromptPresetRenameDraft(preset.id, $event.target.value)"
|
|
133
|
+
@keydown.enter.prevent="renamePromptPreset(preset)"
|
|
134
|
+
:aria-label="t('prompts.presets.renameAria')">
|
|
135
|
+
<div class="form-hint">{{ t('prompts.presets.updatedAt', { time: formatPromptPresetTime(preset.updatedAt) }) }}</div>
|
|
136
|
+
<pre class="prompt-preset-preview">{{ preset.content }}</pre>
|
|
137
|
+
</div>
|
|
138
|
+
<div class="prompts-editor-actions prompt-preset-actions">
|
|
139
|
+
<button type="button" class="btn-mini" @click="renamePromptPreset(preset)">{{ t('common.save') }}</button>
|
|
140
|
+
<button type="button" class="btn-mini" @click="applyPromptPresetToEditor(preset)">{{ t('common.paste') }}</button>
|
|
141
|
+
<button type="button" class="btn-mini btn-danger-mini" @click="deletePromptPreset(preset)">{{ t('common.delete') }}</button>
|
|
142
|
+
</div>
|
|
143
|
+
</article>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</details>
|
|
148
|
+
|
|
86
149
|
|
|
87
150
|
<div class="form-group">
|
|
88
151
|
<div v-if="agentsDiffVisible">
|