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.
Files changed (45) hide show
  1. package/README.md +0 -4
  2. package/README.vi.md +0 -4
  3. package/README.zh.md +0 -4
  4. package/cli/agents-files.js +27 -3
  5. package/cli/prompt-history.js +171 -0
  6. package/cli/system-prompt-files.js +20 -2
  7. package/cli.js +83 -2694
  8. package/package.json +1 -1
  9. package/web-ui/app.js +39 -56
  10. package/web-ui/index.html +0 -1
  11. package/web-ui/modules/app.computed.dashboard.mjs +0 -3
  12. package/web-ui/modules/app.computed.main-tabs.mjs +0 -474
  13. package/web-ui/modules/app.methods.agents.mjs +90 -0
  14. package/web-ui/modules/app.methods.index.mjs +1 -3
  15. package/web-ui/modules/app.methods.navigation.mjs +8 -3
  16. package/web-ui/modules/app.methods.session-actions.mjs +57 -25
  17. package/web-ui/modules/app.methods.system-prompt.mjs +81 -0
  18. package/web-ui/modules/app.methods.web-ui-preferences.mjs +26 -9
  19. package/web-ui/modules/i18n/locales/en.mjs +10 -265
  20. package/web-ui/modules/i18n/locales/ja.mjs +10 -265
  21. package/web-ui/modules/i18n/locales/vi.mjs +10 -266
  22. package/web-ui/modules/i18n/locales/zh-tw.mjs +10 -265
  23. package/web-ui/modules/i18n/locales/zh.mjs +10 -265
  24. package/web-ui/partials/index/layout-header.html +5 -48
  25. package/web-ui/partials/index/panel-config-claude.html +3 -3
  26. package/web-ui/partials/index/panel-config-codex.html +3 -3
  27. package/web-ui/partials/index/panel-config-kilocode.html +5 -5
  28. package/web-ui/partials/index/panel-config-openclaw.html +3 -3
  29. package/web-ui/partials/index/panel-config-opencode.html +5 -5
  30. package/web-ui/partials/index/panel-dashboard.html +0 -21
  31. package/web-ui/partials/index/panel-prompts.html +52 -0
  32. package/web-ui/partials/index/panel-sessions.html +12 -0
  33. package/web-ui/partials/index/panel-settings.html +35 -0
  34. package/web-ui/res/web-ui-render.precompiled.js +543 -1376
  35. package/web-ui/session-helpers.mjs +0 -16
  36. package/web-ui/styles/modals-core.css +86 -0
  37. package/web-ui/styles/sessions-preview.css +38 -0
  38. package/web-ui/styles/titles-cards.css +2 -2
  39. package/web-ui/styles.css +0 -1
  40. package/lib/automation.js +0 -404
  41. package/lib/task-orchestrator.js +0 -938
  42. package/lib/task-workspace-chat.js +0 -292
  43. package/web-ui/modules/app.methods.task-orchestration.mjs +0 -895
  44. package/web-ui/partials/index/panel-orchestration.html +0 -598
  45. package/web-ui/styles/task-orchestration.css +0 -2979
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codexmate",
3
- "version": "0.1.9",
3
+ "version": "0.1.12",
4
4
  "description": "Codex/Claude Code/OpenClaw 配置、会话与任务编排 CLI + Web 工具",
5
5
  "main": "cli.js",
6
6
  "bin": {
package/web-ui/app.js CHANGED
@@ -74,6 +74,13 @@ document.addEventListener('DOMContentLoaded', () => {
74
74
  showAgentsModal: false,
75
75
  promptsSubTab: 'codex',
76
76
  projectClaudeMdPath: '',
77
+ promptHistoryVisible: false,
78
+ promptHistoryLoading: false,
79
+ promptHistoryBucket: '',
80
+ promptHistoryItems: [],
81
+ promptHistoryPreviewId: '',
82
+ promptHistoryPreviewContent: '',
83
+ promptHistoryError: '',
77
84
  promptPresets: [],
78
85
  selectedPromptPresetId: '',
79
86
  promptPresetNameDraft: '',
@@ -130,6 +137,7 @@ document.addEventListener('DOMContentLoaded', () => {
130
137
  configTemplateDiffFingerprint: '',
131
138
  _configTemplateDiffPreviewRequestToken: null,
132
139
  configTemplateDiffConfirmEnabled: true,
140
+ configModeVisibility: { codex: true, claude: true, openclaw: true, opencode: true, kilocode: true },
133
141
  codexApplying: false,
134
142
  _pendingCodexApplyOptions: null,
135
143
  agentsContent: '',
@@ -155,12 +163,19 @@ document.addEventListener('DOMContentLoaded', () => {
155
163
  agentsModalTitle: 'AGENTS.md 编辑器',
156
164
  agentsModalHint: '保存后会写入目标 AGENTS.md(与 config.toml 同级)。',
157
165
  sysPromptScope: 'global',
158
- sysPromptMode: 'append',
166
+ sysPromptMode: 'system',
159
167
  sysPromptContent: '',
160
168
  sysPromptOriginalContent: '',
161
169
  sysPromptPath: '',
162
170
  sysPromptExists: false,
163
171
  sysPromptHash: '',
172
+ sysHistoryBucket: '',
173
+ sysHistoryVisible: false,
174
+ sysHistoryLoading: false,
175
+ sysHistoryItems: [],
176
+ sysHistoryPreviewId: '',
177
+ sysHistoryPreviewContent: '',
178
+ sysHistoryError: '',
164
179
  sysPromptLoading: false,
165
180
  sysPromptSaving: false,
166
181
  sysPromptDiffVisible: false,
@@ -480,45 +495,6 @@ document.addEventListener('DOMContentLoaded', () => {
480
495
  sidebarCollapsed: false,
481
496
  sessionLoadNativeDialog: false,
482
497
  starPrompted: false,
483
- taskOrchestrationTabEnabled: true,
484
- taskOrchestration: {
485
- loading: false,
486
- planning: false,
487
- running: false,
488
- queueAdding: false,
489
- queueStarting: false,
490
- retrying: false,
491
- target: '',
492
- chatDraft: '',
493
- title: '',
494
- notes: '',
495
- workspacePath: '',
496
- threadId: '',
497
- followUpsText: '',
498
- workflowIdsText: '',
499
- selectedEngine: 'openai-chat',
500
- runMode: 'write',
501
- concurrency: 2,
502
- autoFixRounds: 1,
503
- plan: null,
504
- planFingerprint: '',
505
- planIssues: [],
506
- planWarnings: [],
507
- overviewWarnings: [],
508
- workflows: [],
509
- queue: [],
510
- runs: [],
511
- selectedRunId: '',
512
- workspaceTab: 'queue',
513
- selectedRunDetail: null,
514
- selectedRunLoading: false,
515
- selectedRunError: '',
516
- detailRequestToken: 0,
517
- settingsOpen: false,
518
- lastLoadedAt: '',
519
- lastError: ''
520
- },
521
- _taskOrchestrationPollTimer: 0,
522
498
  webhookConfig: { enabled: false, url: '', events: ['provider-switch', 'claude-md-edit'] },
523
499
  webhookEventOptions: ['provider-switch', 'claude-md-edit'],
524
500
  webhookSaving: false,
@@ -535,7 +511,6 @@ document.addEventListener('DOMContentLoaded', () => {
535
511
  const url = new URL(window.location.href);
536
512
  url.pathname = '/';
537
513
  // Preserve startup query/hash flags while normalizing the legacy web-ui path.
538
- // Feature gates such as ?taskOrchestration=1 are consumed below after redirect.
539
514
  window.location.replace(url.toString());
540
515
  return;
541
516
  }
@@ -568,15 +543,8 @@ document.addEventListener('DOMContentLoaded', () => {
568
543
  this.agentsModalTitle = this.t('modal.agents.title');
569
544
  this.agentsModalHint = this.t('modal.agents.hint');
570
545
  }
571
- try {
572
- const url = new URL(window.location.href);
573
- const requestedTaskOrchestration = String(url.searchParams.get('taskOrchestration') || '').trim().toLowerCase();
574
- if (requestedTaskOrchestration === '1' || requestedTaskOrchestration === 'true') {
575
- this.taskOrchestrationTabEnabled = true;
576
- }
577
- } catch (_) {}
578
546
  {
579
- const mainTabSet = new Set(['dashboard', 'config', 'sessions', 'usage', 'orchestration', 'market', 'plugins', 'docs', 'settings', 'trash', 'prompts']);
547
+ const mainTabSet = new Set(['dashboard', 'config', 'sessions', 'usage', 'market', 'plugins', 'docs', 'settings', 'trash', 'prompts']);
580
548
  let urlMainTab = '';
581
549
  try {
582
550
  const url = new URL(window.location.href);
@@ -608,8 +576,6 @@ document.addEventListener('DOMContentLoaded', () => {
608
576
  ? this.getFirstSelectableMainTab()
609
577
  : 'dashboard';
610
578
  this.switchMainTab(fallbackTab);
611
- } else if (!this.taskOrchestrationTabEnabled && this.mainTab === 'orchestration') {
612
- this.switchMainTab('dashboard');
613
579
  }
614
580
  this.restoreSessionFilterCache();
615
581
  this.restoreSessionPinnedMap();
@@ -750,7 +716,6 @@ document.addEventListener('DOMContentLoaded', () => {
750
716
  window.removeEventListener('keydown', this.handleGlobalKeydown);
751
717
  window.removeEventListener('beforeunload', this.handleBeforeUnload);
752
718
  this.applyCompactLayoutClass(false);
753
- this.stopTaskOrchestrationPolling();
754
719
  this.sessionPreviewScrollEl = null;
755
720
  this.sessionPreviewContainerEl = null;
756
721
  this.sessionPreviewHeaderEl = null;
@@ -768,11 +733,15 @@ document.addEventListener('DOMContentLoaded', () => {
768
733
  }
769
734
  return;
770
735
  }
771
- if (newTab === 'prompts' && typeof this.loadPromptsContent === 'function') {
736
+ if (newTab === 'prompts') {
772
737
  if (this.promptsSubTab === 'claude-project' && !this.projectPathOptions.length && !this.projectPathOptionsLoading && typeof this.loadProjectPathOptions === 'function') {
773
738
  this.loadProjectPathOptions();
774
739
  }
775
- this.loadPromptsContent();
740
+ if (this.promptsSubTab === 'system') {
741
+ if (typeof this.loadSystemPrompt === 'function') this.loadSystemPrompt();
742
+ } else if (typeof this.loadPromptsContent === 'function') {
743
+ this.loadPromptsContent();
744
+ }
776
745
  }
777
746
  },
778
747
  promptsSubTab(newVal) {
@@ -783,14 +752,28 @@ document.addEventListener('DOMContentLoaded', () => {
783
752
  this.__skipNextPromptsSubTabLoad = false;
784
753
  return;
785
754
  }
786
- if (this.mainTab === 'prompts' && typeof this.loadPromptsContent === 'function') {
787
- this.loadPromptsContent();
755
+ if (this.mainTab === 'prompts') {
756
+ if (this.promptsSubTab === 'system') {
757
+ if (typeof this.loadSystemPrompt === 'function') this.loadSystemPrompt();
758
+ } else if (typeof this.loadPromptsContent === 'function') {
759
+ this.loadPromptsContent();
760
+ }
788
761
  }
789
762
  },
790
763
  projectClaudeMdPath(newPath) {
791
764
  if (typeof this.persistWebUiPreferences === 'function') {
792
765
  this.persistWebUiPreferences({ projectClaudeMdPath: newPath || '' });
793
766
  }
767
+ },
768
+ sysPromptScope(newVal) {
769
+ if (typeof this.persistWebUiPreferences === 'function') {
770
+ this.persistWebUiPreferences({ sysPromptScope: newVal });
771
+ }
772
+ },
773
+ sysPromptMode(newVal) {
774
+ if (typeof this.persistWebUiPreferences === 'function') {
775
+ this.persistWebUiPreferences({ sysPromptMode: newVal });
776
+ }
794
777
  }
795
778
  },
796
779
 
package/web-ui/index.html CHANGED
@@ -20,7 +20,6 @@
20
20
  <!-- @include ./partials/index/panel-config-kilocode.html -->
21
21
  <!-- @include ./partials/index/panel-sessions.html -->
22
22
  <!-- @include ./partials/index/panel-usage.html -->
23
- <!-- @include ./partials/index/panel-orchestration.html -->
24
23
  <!-- @include ./partials/index/panel-docs.html -->
25
24
  <!-- @include ./partials/index/panel-settings.html -->
26
25
  <!-- @include ./partials/index/panel-trash.html -->
@@ -185,9 +185,6 @@ export function createDashboardComputed() {
185
185
  if (this.codexApplying || this.configTemplateApplying || this.openclawApplying) tasks.push(this.t('dashboard.busy.configApply'));
186
186
  if (this.agentsSaving) tasks.push(this.t('dashboard.busy.agents'));
187
187
  if (this.skillsLoading || this.skillsDeleting || this.skillsScanningImports || this.skillsImporting || this.skillsZipImporting || this.skillsExporting) tasks.push(this.t('dashboard.busy.skills'));
188
- if (this.taskOrchestration && (this.taskOrchestration.loading || this.taskOrchestration.planning || this.taskOrchestration.running || this.taskOrchestration.queueAdding || this.taskOrchestration.queueStarting || this.taskOrchestration.retrying || this.taskOrchestration.selectedRunLoading)) {
189
- tasks.push(this.t('dashboard.busy.tasks'));
190
- }
191
188
  return tasks.length ? tasks.join(' / ') : this.t('dashboard.busy.idle');
192
189
  },
193
190
  inspectorMessageSummary() {