dodo-mcp 1.3.1 → 1.4.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 (55) hide show
  1. package/README.md +11 -1
  2. package/dist/config/globalConfig.js +17 -0
  3. package/dist/config/globalConfig.js.map +1 -1
  4. package/dist/server/aiAdmin.js +20 -5
  5. package/dist/server/aiAdmin.js.map +1 -1
  6. package/dist/server/bootstrap.js +2 -1
  7. package/dist/server/bootstrap.js.map +1 -1
  8. package/dist/server/configUi/index.html +1 -0
  9. package/dist/server/configUi/ui/recovery.js +415 -35
  10. package/dist/server/configUi/ui/recoveryMaintenance.js +61 -0
  11. package/dist/server/configUi/workbench.css +50 -1
  12. package/dist/server/configUi/workbench.js +193 -0
  13. package/dist/server/installationRuntime.js +1 -0
  14. package/dist/server/installationRuntime.js.map +1 -1
  15. package/dist/server/ipcDispatch.js +58 -5
  16. package/dist/server/ipcDispatch.js.map +1 -1
  17. package/dist/server/localConfig.js +1 -1
  18. package/dist/server/localConfig.js.map +1 -1
  19. package/dist/services/changes/planner.js +11 -2
  20. package/dist/services/changes/planner.js.map +1 -1
  21. package/dist/services/git/gitService.js +239 -0
  22. package/dist/services/git/gitService.js.map +1 -1
  23. package/dist/services/recovery/contracts.js +7 -0
  24. package/dist/services/recovery/contracts.js.map +1 -1
  25. package/dist/services/recovery/maintenance.js +226 -0
  26. package/dist/services/recovery/maintenance.js.map +1 -0
  27. package/dist/services/recovery/recoveryService.js +315 -51
  28. package/dist/services/recovery/recoveryService.js.map +1 -1
  29. package/dist/services/recovery/storage.js +46 -2
  30. package/dist/services/recovery/storage.js.map +1 -1
  31. package/dist/store/db.js +6 -0
  32. package/dist/store/db.js.map +1 -1
  33. package/dist/tools/context.js +11 -3
  34. package/dist/tools/context.js.map +1 -1
  35. package/dist/tools/recoveryTools.js +24 -3
  36. package/dist/tools/recoveryTools.js.map +1 -1
  37. package/dist/tools/surface.js +2 -2
  38. package/dist/tools/surface.js.map +1 -1
  39. package/dist/workspace/ignores.js +32 -6
  40. package/dist/workspace/ignores.js.map +1 -1
  41. package/docs/ARCHITECTURE.md +18 -2
  42. package/docs/COMPATIBILITY.md +9 -0
  43. package/docs/MANUAL_ACCEPTANCE.md +28 -0
  44. package/docs/RECOVERY.md +73 -8
  45. package/docs/RELEASE_1.3.2.md +50 -0
  46. package/docs/RELEASE_1.4.0.md +25 -0
  47. package/docs/RELEASE_NOTES.md +17 -0
  48. package/docs/SECURITY.md +17 -0
  49. package/docs/TEST_REPORT.md +28 -0
  50. package/package.json +3 -1
  51. package/schemas/global-config.schema.json +20 -0
  52. package/schemas/tools.compact.json +16 -8
  53. package/schemas/tools.hybrid.json +16 -8
  54. package/schemas/tools.json +682 -2
  55. package/scripts/setup-multimodal.mjs +0 -0
@@ -86,4 +86,53 @@
86
86
  .wb-receipt { border:1px solid var(--border);border-radius:8px;padding:12px;min-width:0; }
87
87
  .wb-receipt summary { cursor:pointer;font-size:.9rem;overflow-wrap:anywhere; }
88
88
  .wb-receipt summary:focus-visible { outline:2px solid var(--accent);outline-offset:4px; }
89
- @media(max-width:640px) { .wb-form { grid-template-columns:1fr; } .wb-section { padding:12px; } .workbench-nav { padding:10px 12px; } .wb-toolbar { align-items:stretch; } .wb-tool-controls { grid-template-columns:1fr; } .wb-tool-row { grid-template-columns:1fr; } .wb-tool-row-state { max-width:none;text-align:left;padding-left:52px; } .wb-tool-group > summary { align-items:flex-start; } }
89
+
90
+ /* ---- Recovery Dashboard & Categorized Settings UI ---- */
91
+ .rec-header { display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;padding-bottom:var(--s3);border-bottom:1px solid var(--border); }
92
+ .rec-header-copy { display:flex;flex-direction:column;gap:4px;min-width:0; }
93
+ .rec-badge { display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:.82rem;font-weight:700;border:1px solid var(--border-strong);background:var(--panel-2);color:var(--text); }
94
+ .rec-badge[data-tone="ok"] { color:var(--ok);border-color:color-mix(in srgb,var(--ok) 48%,var(--border));background:color-mix(in srgb,var(--ok) 12%,var(--panel-2)); }
95
+ .rec-badge[data-tone="warn"] { color:var(--warn);border-color:color-mix(in srgb,var(--warn) 48%,var(--border));background:color-mix(in srgb,var(--warn) 12%,var(--panel-2)); }
96
+ .rec-badge[data-tone="danger"] { color:var(--danger);border-color:color-mix(in srgb,var(--danger) 48%,var(--border));background:color-mix(in srgb,var(--danger) 12%,var(--panel-2)); }
97
+ .rec-badge[data-tone="info"] { color:var(--info);border-color:color-mix(in srgb,var(--info) 48%,var(--border));background:color-mix(in srgb,var(--info) 12%,var(--panel-2)); }
98
+ .rec-stats { display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s3); }
99
+ .rec-stat { border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;background:var(--panel-2);display:flex;flex-direction:column;gap:4px;min-width:0; }
100
+ .rec-stat-label { color:var(--muted);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em; }
101
+ .rec-stat-val { font-family:var(--mono);font-size:1rem;font-weight:700;color:var(--text);overflow-wrap:anywhere; }
102
+ .rec-stat-sub { color:var(--muted);font-size:.8rem;overflow-wrap:anywhere; }
103
+ .rec-alert { border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:14px 16px;background:var(--panel-2);display:flex;flex-direction:column;gap:10px; }
104
+ .rec-alert[data-tone="warn"] { border-color:color-mix(in srgb,var(--warn) 55%,var(--border));background:color-mix(in srgb,var(--warn) 8%,var(--panel-2)); }
105
+ .rec-alert[data-tone="danger"] { border-color:color-mix(in srgb,var(--danger) 55%,var(--border));background:color-mix(in srgb,var(--danger) 8%,var(--panel-2)); }
106
+ .rec-alert[data-tone="info"] { border-color:color-mix(in srgb,var(--info) 55%,var(--border));background:color-mix(in srgb,var(--info) 8%,var(--panel-2)); }
107
+ .rec-alert-title { font-weight:700;font-size:.94rem;color:var(--text);margin:0; }
108
+ .rec-path-list { display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none; }
109
+ .rec-path-pill { font-family:var(--mono);font-size:.8rem;padding:4px 9px;border-radius:6px;background:var(--code-bg);border:1px solid var(--border-strong);color:var(--text);overflow-wrap:anywhere; }
110
+ .rec-settings-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4); }
111
+ .rec-group { border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;background:var(--panel-2);display:flex;flex-direction:column;gap:12px;min-width:0; }
112
+ .rec-group-head { display:flex;flex-direction:column;gap:3px;padding-bottom:8px;border-bottom:1px solid var(--border); }
113
+ .rec-group-title { font-size:.96rem;font-weight:700;color:var(--text);margin:0;display:flex;align-items:center;gap:8px; }
114
+ .rec-group-step { display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--accent-soft);color:var(--accent-strong);font-size:.78rem;font-weight:800;flex:none; }
115
+ .rec-group-desc { font-size:.82rem;color:var(--muted);margin:0; }
116
+ .rec-two-col { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
117
+ .rec-three-col { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px; }
118
+ .rec-chip-bar { display:flex;flex-wrap:wrap;gap:6px;align-items:center; }
119
+ .rec-chip-btn { font:inherit;font-family:var(--mono);font-size:.76rem;padding:4px 9px;border-radius:999px;border:1px solid var(--border-strong);background:var(--panel);color:var(--muted);cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease; }
120
+ .rec-chip-btn:hover { border-color:var(--accent);color:var(--text);background:var(--raised); }
121
+ .rec-action-bar { display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding-top:var(--s2); }
122
+ .rec-git-columns { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4); }
123
+ .rec-git-list { display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;padding-right:2px; }
124
+ .rec-item-card,.wb-card { border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;background:var(--panel-2);display:flex;flex-direction:column;gap:8px;min-width:0; }
125
+ .rec-item-head { display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap; }
126
+ .rec-item-actions { display:flex;flex-wrap:wrap;gap:8px;align-items:center; }
127
+ .rec-diff-box { border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:14px;background:var(--panel-2);display:flex;flex-direction:column;gap:10px; }
128
+ .rec-diff-box pre { max-height:320px;overflow:auto;margin:0; }
129
+ .rec-setting-group { border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;background:var(--panel-2);display:flex;flex-direction:column;gap:12px;min-width:0; }
130
+ .rec-setting-group > h4 { margin:0;font-size:.95rem;font-weight:700;color:var(--text);padding-bottom:6px;border-bottom:1px solid var(--border); }
131
+ .rec-chip-row { display:flex;flex-wrap:wrap;gap:6px;align-items:center; }
132
+ .wb-subtabs { display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px;margin:8px 0 4px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2); }
133
+ .wb-subtab-btn { font:inherit;font-size:.86rem;font-weight:600;padding:7px 14px;border-radius:999px;border:1px solid var(--border-strong);background:var(--panel);color:var(--muted);cursor:pointer;transition:all .15s ease; }
134
+ .wb-subtab-btn:hover { color:var(--text);border-color:var(--accent); }
135
+ .wb-subtab-btn.active,.wb-subtab-btn[aria-selected="true"] { background:var(--accent);color:var(--accent-fg,#fff);border-color:var(--accent); }
136
+
137
+ @media(max-width:860px) { .rec-settings-grid,.rec-git-columns { grid-template-columns:1fr; } }
138
+ @media(max-width:640px) { .wb-form,.rec-two-col,.rec-three-col { grid-template-columns:1fr; } .wb-section { padding:12px; } .workbench-nav { padding:10px 12px; } .wb-toolbar { align-items:stretch; } .wb-tool-controls { grid-template-columns:1fr; } .wb-tool-row { grid-template-columns:1fr; } .wb-tool-row-state { max-width:none;text-align:left;padding-left:52px; } .wb-tool-group > summary { align-items:flex-start; } }
@@ -183,12 +183,188 @@
183
183
  }
184
184
  }
185
185
 
186
+ let activeProjectTab = 'all';
187
+
188
+ function renderFileAccessPolicyCard(parent, config, onSaved) {
189
+ const card=section(
190
+ 'การอนุญาตเข้าถึงไฟล์และไฟล์ความลับ (File Access & Secret Policy)',
191
+ 'กำหนดระดับการอนุญาตไฟล์ทั้งหมดในที่เดียว เช่น อนุญาตไฟล์ตัวอย่าง (.env.example), อนุญาตเฉพาะไฟล์ที่ระบุ หรือยืนยันเพื่ออนุญาตทุกไฟล์โดยไม่บล็อก SECRET_PATH_DENIED มีผลทันทีโดยไม่ต้องรีสตาร์ต'
192
+ );
193
+ parent.append(card);
194
+
195
+ const grid=el('div',undefined,'rec-settings-grid');
196
+ card.append(grid);
197
+
198
+ const gMode=el('div',undefined,'rec-setting-group');
199
+ gMode.append(el('h4','1. โหมดการอนุญาตไฟล์ความลับ (Secret Policy Mode)'));
200
+ const modeSelect=choice(
201
+ gMode,
202
+ 'ระดับการป้องกันไฟล์ความลับ',
203
+ 'secretPolicyMode',
204
+ [
205
+ ['standard','มาตรฐาน (แนะนำ — บล็อก .env จริง แต่อนุญาต .env.example / .env.sample อัตโนมัติ)'],
206
+ ['off','อนุญาตทุกไฟล์ (Allow All — ปิดการบล็อก SECRET_PATH_DENIED ทั้งหมด เข้าถึงและแก้ไขได้ทุกไฟล์)'],
207
+ ['strict','เข้มงวดสูงสุด (Strict — บล็อกทุกไฟล์ที่ตรงรูปแบบ .env* รวมถึงไฟล์ตัวอย่าง เว้นแต่ระบุในรายการอนุญาต)'],
208
+ ],
209
+ config.secretPolicyMode||'standard'
210
+ );
211
+ const confirmAllowAll=check(
212
+ gMode,
213
+ 'ยืนยันว่าต้องการเปิดโหมดอนุญาตทุกไฟล์ (Allow All) เพื่อให้เข้าถึงและแก้ไขได้ทุกไฟล์รวมถึง .env และไฟล์ความลับ',
214
+ 'confirmAllowAllFiles',
215
+ config.secretPolicyMode==='off'
216
+ );
217
+ const presetRow=el('div',undefined,'rec-chip-row');
218
+ presetRow.append(
219
+ button('ตั้งเป็นมาตรฐาน (แนะนำ)',()=>{modeSelect.value='standard';confirmAllowAll.checked=false;},'btn small'),
220
+ button('อนุญาตทุกไฟล์ (ไม่บล็อกเลย)',()=>{modeSelect.value='off';confirmAllowAll.checked=true;},'btn small'),
221
+ button('ตั้งเป็นเข้มงวดสูงสุด',()=>{modeSelect.value='strict';confirmAllowAll.checked=false;},'btn small')
222
+ );
223
+ gMode.append(presetRow);
224
+ grid.append(gMode);
225
+
226
+ const gAllow=el('div',undefined,'rec-setting-group');
227
+ gAllow.append(el('h4','2. รายการไฟล์ที่อนุญาตพิเศษ (Secret Allow)'));
228
+ const allowField=field(
229
+ gAllow,
230
+ 'ไฟล์หรือรูปแบบที่อนุญาตให้อ่าน/แก้ไขได้เสมอ (หนึ่งรายการต่อบรรทัด)',
231
+ 'secretAllow',
232
+ (config.secretAllow||[]).join('\n'),
233
+ 'textarea'
234
+ );
235
+ allowField.rows=4;
236
+ const allowChips=el('div',undefined,'rec-chip-row');
237
+ for(const item of ['.env.example','.env.sample','.env.template','.env.development','.env.docker','.env.local','.env','*.pem','*.key']){
238
+ allowChips.append(button(`+ ${item}`,()=>{
239
+ const cur=allowField.value.split('\n').map(v=>v.trim()).filter(Boolean);
240
+ if(!cur.includes(item))allowField.value=[...cur,item].join('\n');
241
+ },'btn small'));
242
+ }
243
+ gAllow.append(allowChips);
244
+ grid.append(gAllow);
245
+
246
+ const gDeny=el('div',undefined,'rec-setting-group');
247
+ gDeny.append(el('h4','3. รายการไฟล์ที่ไม่อนุญาตเพิ่มเติม (Secret Deny)'));
248
+ const denyField=field(
249
+ gDeny,
250
+ 'ไฟล์หรือรูปแบบที่ต้องการบล็อกเสมอ (มีผลแม้เปิดโหมดอนุญาตทุกไฟล์)',
251
+ 'secretDeny',
252
+ (config.secretDeny||[]).join('\n'),
253
+ 'textarea'
254
+ );
255
+ denyField.rows=4;
256
+ const denyChips=el('div',undefined,'rec-chip-row');
257
+ for(const item of ['.env.production','secrets/**','*.secret','credentials.json']){
258
+ denyChips.append(button(`+ ${item}`,()=>{
259
+ const cur=denyField.value.split('\n').map(v=>v.trim()).filter(Boolean);
260
+ if(!cur.includes(item))denyField.value=[...cur,item].join('\n');
261
+ },'btn small'));
262
+ }
263
+ gDeny.append(denyChips);
264
+ grid.append(gDeny);
265
+
266
+ const gFlex=el('div',undefined,'rec-setting-group');
267
+ gFlex.append(el('h4','4. ความยืดหยุ่นในการทำงานร่วมกับ AI & Editor'));
268
+ const relaxEpoch=check(
269
+ gFlex,
270
+ 'ไม่บล็อก STALE_WORKSPACE เมื่อเซิร์ฟเวอร์รีสตาร์ต (รับค่า workspaceEpoch เดิมของโปรเจกต์อัตโนมัติ)',
271
+ 'relaxEpochCheck',
272
+ Boolean(config.relaxEpochCheck)
273
+ );
274
+ const relaxHash=check(
275
+ gFlex,
276
+ 'ยืดหยุ่น expectedHash สำหรับ edit_file เมื่อแก้ไฟล์ร่วมกับ VS Code / Editor อื่น (ลดปัญหา FILE_CHANGED)',
277
+ 'relaxExpectedHash',
278
+ Boolean(config.relaxExpectedHash)
279
+ );
280
+ gFlex.append(el('p','ช่วยให้ AI ทำงานต่อเนื่องได้แม้คุณเซฟไฟล์ใน VS Code หรือเพิ่งรีสตาร์ต DODO ใหม่','muted'));
281
+ grid.append(gFlex);
282
+
283
+ const actionBar=el('div',undefined,'rec-action-bar');
284
+ actionBar.append(button('บันทึกการอนุญาตไฟล์และความยืดหยุ่น (มีผลทันที)',async()=>{
285
+ if(modeSelect.value==='off'&&!confirmAllowAll.checked){
286
+ if(!await confirmDanger('ยืนยันอนุญาตทุกไฟล์?','การเปิดโหมดอนุญาตทุกไฟล์ (Allow All) จะปิดการบล็อก SECRET_PATH_DENIED ทำให้เข้าถึงและแก้ไขได้ทุกไฟล์ในโปรเจกต์ (รวมถึง .env และคีย์ต่าง ๆ)','ยืนยันอนุญาตทุกไฟล์'))return;
287
+ confirmAllowAll.checked=true;
288
+ }
289
+ const payload={
290
+ secretPolicyMode:modeSelect.value,
291
+ secretAllow:[...new Set(allowField.value.split('\n').map(v=>v.trim()).filter(Boolean))],
292
+ secretDeny:[...new Set(denyField.value.split('\n').map(v=>v.trim()).filter(Boolean))],
293
+ relaxEpochCheck:relaxEpoch.checked,
294
+ relaxExpectedHash:relaxHash.checked,
295
+ };
296
+ await api('admin/config',payload);
297
+ notice('บันทึกการอนุญาตไฟล์และความยืดหยุ่นแล้ว — มีผลทันทีทุกโปรเจกต์');
298
+ if(onSaved)await onSaved(payload);
299
+ },'btn primary'));
300
+ card.append(actionBar);
301
+ return card;
302
+ }
303
+
186
304
  async function projects(body) {
187
305
  const personal=state.accessMode==='personal';
188
306
  const s=section('โปรเจกต์พร้อมกัน',personal?'เพิ่ม path แล้วใช้ได้ทันที ไม่ต้องอนุญาต client หรือ profile ซ้ำ งานต่างโปรเจกต์ทำพร้อมกันได้':'เปิด runtime แยกโปรเจกต์และกำหนด ACL/trust ของแต่ละโปรเจกต์เอง');body.append(s);
189
307
  const name=field(s,'ชื่อโปรเจกต์','projectName'),root=field(s,'Absolute path ในเครื่อง','projectRoot');
190
308
  s.append(button(personal?'เพิ่มและพร้อมใช้':'เพิ่ม path',async()=>{await api('projects/add',{path:root.value,...(name.value?{displayName:name.value}:{})});notice(personal?'เพิ่มโปรเจกต์แล้ว พร้อมใช้งานทันที':'เพิ่มในทะเบียนแล้ว ตั้งค่าสิทธิ์ก่อนใช้งาน');await show('projects');}));
191
309
  if(!selected){s.append(el('p',personal?'เพิ่มหรือเลือกโปรเจกต์จากรายการด้านบน':'เลือกโปรเจกต์จากรายการด้านบนเพื่อจัดการสิทธิ์','wb-empty'));return;}
310
+
311
+ const [config,stuckChangesets]=await Promise.all([
312
+ api('admin/config'),
313
+ api('admin/action',{projectId:selected.projectId,operation:'recover.list',args:{}},true).catch(()=>[]),
314
+ ]);
315
+
316
+ if(Array.isArray(stuckChangesets)&&stuckChangesets.length>0){
317
+ const stuckBanner=el('div',undefined,'rec-alert');
318
+ stuckBanner.dataset.tone='danger';
319
+ stuckBanner.append(
320
+ el('p',`พบรายการแก้ไฟล์ที่ค้างจากการทำงานรอบก่อน (${stuckChangesets.length} รายการ)`,'rec-alert-title'),
321
+ el('p','โปรเจกต์นี้อาจติดบล็อกการแก้ไฟล์จนกว่าจะปลดล็อกรายการที่ค้าง คุณสามารถกดปุ่มด้านล่างเพื่อปลดล็อกทั้งหมดได้ในคลิกเดียว','muted')
322
+ );
323
+ const stuckActions=el('div',undefined,'rec-action-bar');
324
+ stuckActions.append(button('ปลดล็อกรายการแก้ไฟล์ที่ค้างทั้งหมด (Resolve All)',async()=>{
325
+ await api('admin/action',{projectId:selected.projectId,operation:'recover.resolve',args:{changesetId:'*',action:'resolve-all'}},true);
326
+ notice('ปลดล็อกรายการแก้ไฟล์ที่ค้างทั้งหมดเรียบร้อยแล้ว');
327
+ await show('projects');
328
+ },'btn primary'));
329
+ stuckBanner.append(stuckActions);
330
+ s.append(stuckBanner);
331
+ }
332
+
333
+ const tabBar=el('div',undefined,'wb-subtabs');
334
+ tabBar.setAttribute('role','tablist');
335
+ const tabDefs=[
336
+ ['all','แสดงทั้งหมด'],
337
+ ['general','ทั่วไป & การอนุญาตไฟล์'],
338
+ ['recovery','สำรอง & กู้คืน (Recovery & Git)'],
339
+ ['deploy','Deployment'],
340
+ ['data','Database & Config Vault'],
341
+ ['jobs','Jobs'],
342
+ ];
343
+ const applySubtabFilter=()=>{
344
+ for(const btn of tabBar.querySelectorAll('button')){
345
+ const isCurrent=btn.dataset.subtab===activeProjectTab;
346
+ btn.setAttribute('aria-selected',String(isCurrent));
347
+ btn.classList.toggle('active',isCurrent);
348
+ }
349
+ for(const child of s.children){
350
+ if(!child.dataset.projectTab)continue;
351
+ child.hidden=activeProjectTab!=='all'&&child.dataset.projectTab!==activeProjectTab;
352
+ }
353
+ };
354
+ for(const [tabId,tabLabel] of tabDefs){
355
+ const btn=button(tabLabel,()=>{activeProjectTab=tabId;applySubtabFilter();},'wb-subtab-btn');
356
+ btn.dataset.subtab=tabId;
357
+ btn.setAttribute('role','tab');
358
+ tabBar.append(btn);
359
+ }
360
+ s.append(tabBar);
361
+ const markChildrenFrom=(startIdx,tabId)=>{
362
+ for(let i=startIdx;i<s.children.length;i+=1){
363
+ s.children[i].dataset.projectTab=tabId;
364
+ }
365
+ };
366
+
367
+ const genStart=s.children.length;
192
368
  if(!personal){
193
369
  const trust=choice(s,'Trust ที่บันทึก','trust',[['inspect','inspect — อ่าน; งานที่มีผลขออนุมัติ'],['edit','edit — อ่านและแก้ไฟล์; คำสั่งขออนุมัติ'],['trusted','trusted — รันคำสั่งด้วยสิทธิ์ OS ของผู้ใช้']],selected.savedTrust);
194
370
  trust.parentElement.append(help('trust ที่บันทึกคือค่าถาวรของโปรเจกต์ ส่วนสิทธิ์ที่มีผลรอบนี้อาจต่างกันเมื่อ DODO ถูกเปิดด้วย override flag คำสั่งใน trusted ไม่ใช่ OS sandbox', 'trust'));
@@ -209,12 +385,28 @@
209
385
  s.append(button('ตั้งเป็น default project',async()=>{await api('ai/project',{projectId:selected.projectId,action:'close'});await api('workspace/switch',{path:selected.root});await reload();await selectProject();notice('เปลี่ยน default workspace แล้ว');await show('projects');}));
210
386
  s.append(button('ปิด runtime ที่ว่าง',async()=>{const result=await api('ai/project',{projectId:selected.projectId,action:'close'});notice(result.closed?'ปิด runtime รองแล้ว โปรเจกต์ยังพร้อมเปิดใหม่':'ไม่มี runtime รองที่ปิดได้');}));
211
387
  }
388
+ renderFileAccessPolicyCard(s,config,()=>show('projects'));
389
+ markChildrenFrom(genStart,'general');
390
+
391
+ const recStart=s.children.length;
212
392
  await recoveryPanel(s);
393
+ markChildrenFrom(recStart,'recovery');
394
+
213
395
  const projectContext={...selected};
396
+ const depStart=s.children.length;
214
397
  await deploymentPanel(s,(operation,args={})=>api('admin/action',{projectId:projectContext.projectId,operation,args},true),projectContext);
398
+ markChildrenFrom(depStart,'deploy');
399
+
400
+ const dataStart=s.children.length;
215
401
  await dataRecoveryPanel(s,(operation,args={})=>api('admin/action',{projectId:projectContext.projectId,operation,args},true),projectContext);
402
+ markChildrenFrom(dataStart,'data');
403
+
404
+ const jobsStart=s.children.length;
216
405
  const jobs=section('Jobs ของโปรเจกต์','สถานะจาก runtime ปัจจุบัน');s.append(jobs);
217
406
  const jobsDetails=el('details');jobsDetails.append(el('summary','รายละเอียดทางเทคนิค (JSON)'));output(jobsDetails,selected.jobs);jobs.append(jobsDetails);
407
+ markChildrenFrom(jobsStart,'jobs');
408
+
409
+ applySubtabFilter();
218
410
  }
219
411
 
220
412
  const recoveryPanel=window.DodoRecovery({el,section,button,check,field,choice,notice,confirmDanger,help,api,refresh:()=>show('projects'),getSelected:()=>selected});
@@ -438,6 +630,7 @@
438
630
  access.querySelector('h2').append(help('Personal = คนเดียวใช้ ทุก client ที่อนุมัติแล้วใช้ทุกโปรเจกต์ตาม token scopes · Managed = แยกสิทธิ์ราย client รายโปรเจกต์ การสลับโหมดไม่แตะ OAuth scopes, sandbox หรือ guards ใด ๆ', 'Personal / Managed mode'));
439
631
  if(state.accessMode==='personal')access.append(button('เปลี่ยนเป็นโหมดแยกสิทธิ์',async()=>{if(!await confirmDanger('เปลี่ยนเป็นโหมดแยกสิทธิ์?','หลังเปลี่ยน AI จะหยุดจนกว่าจะตั้ง ACL/trust/profile permission ของแต่ละโปรเจกต์','เปลี่ยนโหมด'))return;await api('ai/access-mode',{mode:'managed'});notice('เปิดโหมดแยกสิทธิ์แล้ว');await show('settings');}));
440
632
  else access.append(button('ใช้โหมดส่วนตัวแบบเพิ่มแล้วใช้ได้เลย',async()=>{if(!await confirmDanger('เปลี่ยนเป็นโหมดส่วนตัว?','OAuth client ที่คุณอนุมัติจะใช้ทุกโปรเจกต์ตาม token scopes และ remote profiles จะส่ง context ไป provider ได้','เปลี่ยนโหมด'))return;await api('ai/access-mode',{mode:'personal'});notice('เปิดโหมดส่วนตัวแล้ว มีผลทันที');await show('settings');},'btn primary'));
633
+ renderFileAccessPolicyCard(body,config,()=>show('settings'));
441
634
  const exposure=section('Sub-agent tools ใน MCP',config.exposeSubagentsToMcp?'เปิดอยู่: AI ภายนอกมองเห็น operations สำหรับสร้างและจัดการ sub-agent':'ปิดอยู่: หน้าเว็บยังสร้าง agent ได้ แต่ MCP clients จะไม่เห็น operations กลุ่ม sub-agent');body.append(exposure);
442
635
  const exposureSummary=exposure.querySelector(':scope > p.muted');
443
636
  exposure.querySelector('h2').append(help('ควบคุมเฉพาะ MCP catalog: subagent_spawn, subagent_status, subagent_result และ subagent_control รวมถึงรายการใน dodo_discover/gateway schema ไม่เพิ่มหรือลด OAuth scopes, trust, approvals หรือสิทธิ์ของ profile', 'Sub-agent tool exposure'));
@@ -124,6 +124,7 @@ export class InstallationRuntime {
124
124
  return !this.closed && Boolean(this.store.db.prepare("SELECT 1 FROM ai_runs WHERE workspace_id=? AND status NOT IN ('completed','failed','canceled') LIMIT 1").get(workspaceId));
125
125
  }
126
126
  status() { return [...this.runtimes].map(([projectId, w]) => ({ projectId, state: this.closing.has(projectId) ? 'closing' : 'ready', workspaceId: w.workspaceId, workspaceEpoch: w.epoch, jobs: w.services.jobs.runningCount(), requests: this.users.get(w.workspaceId) ?? 0 })); }
127
+ allWorkspaces() { return [this.current(), ...this.runtimes.values()]; }
127
128
  async closeProject(id) {
128
129
  if (this.opening.has(id))
129
130
  throw new DodoError('CONFLICT', 'project is opening');
@@ -1 +1 @@
1
- {"version":3,"file":"installationRuntime.js","sourceRoot":"","sources":["../../src/server/installationRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installationRuntime.js","sourceRoot":"","sources":["../../src/server/installationRuntime.ts"],"names":[],"mappings":"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"}
@@ -229,6 +229,10 @@ export function createIpcDispatcher(ctx) {
229
229
  const limit = Math.max(1, Math.min(Number(args['limit'] ?? 50), 500));
230
230
  return store.recentAudit(workspaceId, limit);
231
231
  }
232
+ case 'recovery.recovery_storage_status':
233
+ case 'recovery.recovery_cleanup_preview':
234
+ case 'recovery.recovery_settings_preview':
235
+ case 'recovery.recovery_maintenance_apply':
232
236
  case 'recovery.restore_status':
233
237
  case 'recovery.checkpoint_list':
234
238
  case 'recovery.checkpoint_inspect':
@@ -241,12 +245,12 @@ export function createIpcDispatcher(ctx) {
241
245
  case 'recovery.restore_apply': {
242
246
  const operation = cmd.slice('recovery.'.length);
243
247
  const shape = RECOVERY_INPUTS[operation];
244
- const input = z.object({ ...shape, ...(operation === 'restore_apply' ? { confirm: z.literal(true), workspaceId: z.literal(workspaceId), workspaceEpoch: z.literal(epoch) } : {}) }).strict().parse(args);
248
+ const input = z.object({ ...shape, ...((operation === 'restore_apply' || operation === 'recovery_maintenance_apply') ? { confirm: z.literal(true), workspaceId: z.literal(workspaceId), workspaceEpoch: z.literal(epoch) } : {}) }).strict().parse(args);
245
249
  const raw = Object.fromEntries(Object.keys(shape).map(k => [k, input[k]]));
246
250
  const principal = { grantId: 'local-config-owner', clientId: 'local-owner', sub: 'owner', scopes: ['dodo:read', 'dodo:write', 'dodo:exec'] };
247
251
  const execute = async () => {
248
252
  ctx.revalidateOwner?.();
249
- const result = await performRecovery(operation, raw, { services, principal, trustMode: services.trustMode() }, true);
253
+ const result = await performRecovery(operation, raw, { services, principal, trustMode: services.trustMode(), revalidate: () => ctx.revalidateOwner?.() }, true);
250
254
  ctx.revalidateOwner?.();
251
255
  store.audit({ principal: principal.grantId, workspaceId, tool: cmd, result: 'ok' });
252
256
  return result;
@@ -418,6 +422,48 @@ export function createIpcDispatcher(ctx) {
418
422
  await services.recovery.checkpoint('owner-checkpoint', 'local-config-owner');
419
423
  return services.recovery.status();
420
424
  }
425
+ case 'recovery.reset': {
426
+ ctx.revalidateOwner?.();
427
+ if (!services.recovery)
428
+ throw new DodoError('NOT_SUPPORTED', 'Recovery is unavailable');
429
+ return services.recovery.resetBlockedState(() => ctx.revalidateOwner?.());
430
+ }
431
+ case 'recovery.git.status': {
432
+ const body = z.object({ limit: z.number().int().min(1).max(100).default(20) }).strict().parse(args);
433
+ ctx.revalidateOwner?.();
434
+ if (!services.recovery)
435
+ throw new DodoError('NOT_SUPPORTED', 'Recovery is unavailable');
436
+ return services.recovery.gitRecoveryStatus(body.limit);
437
+ }
438
+ case 'recovery.git.checkpoint': {
439
+ ctx.revalidateOwner?.();
440
+ if (!services.recovery)
441
+ throw new DodoError('NOT_SUPPORTED', 'Recovery is unavailable');
442
+ return services.recovery.createGitCheckpoint('owner-checkpoint', 'local-config-owner');
443
+ }
444
+ case 'recovery.git.preview': {
445
+ const body = z.object({ ref: z.string().min(1).max(256), paths: z.array(z.string().min(1).max(1024)).max(100).optional() }).strict().parse(args);
446
+ ctx.revalidateOwner?.();
447
+ if (!services.recovery)
448
+ throw new DodoError('NOT_SUPPORTED', 'Recovery is unavailable');
449
+ return services.recovery.previewGitRestore(body.paths ? { ref: body.ref, paths: body.paths } : { ref: body.ref });
450
+ }
451
+ case 'recovery.git.restore': {
452
+ const body = z.object({
453
+ ref: z.string().min(1).max(256),
454
+ paths: z.array(z.string().min(1).max(1024)).max(100).optional(),
455
+ workspaceId: z.string(),
456
+ workspaceEpoch: z.string(),
457
+ confirm: z.literal(true),
458
+ }).strict().parse(args);
459
+ if (body.workspaceId !== workspaceId || body.workspaceEpoch !== epoch) {
460
+ throw new DodoError('STALE_WORKSPACE', 'review the current project and epoch again');
461
+ }
462
+ ctx.revalidateOwner?.();
463
+ if (!services.recovery)
464
+ throw new DodoError('NOT_SUPPORTED', 'Recovery is unavailable');
465
+ return services.recovery.applyGitRestore(body.paths ? { ref: body.ref, paths: body.paths } : { ref: body.ref }, () => ctx.revalidateOwner?.());
466
+ }
421
467
  case 'recover.list': {
422
468
  return store.listChangesetsByStatus('recovery_required').filter(c => c.workspaceId === workspaceId).map((c) => ({
423
469
  changesetId: c.id,
@@ -428,8 +474,15 @@ export function createIpcDispatcher(ctx) {
428
474
  }));
429
475
  }
430
476
  case 'recover.resolve': {
431
- const id = String(args['changesetId']);
432
- const action = String(args['action']);
477
+ const id = String(args['changesetId'] ?? '');
478
+ const action = String(args['action'] ?? '');
479
+ if (action === 'resolve-all' || id === '*') {
480
+ const list = store.listChangesetsByStatus('recovery_required').filter(c => c.workspaceId === workspaceId);
481
+ for (const cs of list) {
482
+ store.setChangesetStatus(cs.id, 'failed', 'manually resolved by owner');
483
+ }
484
+ return { resolvedCount: list.length, resolvedIds: list.map(c => c.id), resolved: true };
485
+ }
433
486
  const cs = store.getChangeset(id);
434
487
  if (!cs || cs.workspaceId !== workspaceId || cs.status !== 'recovery_required')
435
488
  throw new Error('changeset is not in recovery_required state');
@@ -437,7 +490,7 @@ export function createIpcDispatcher(ctx) {
437
490
  store.setChangesetStatus(id, 'failed', 'manually resolved by owner');
438
491
  return { changesetId: id, resolved: true };
439
492
  }
440
- throw new Error('unknown recovery action (supported: mark-resolved after fixing files manually; backups are in the DODO state directory)');
493
+ throw new Error('unknown recovery action (supported: mark-resolved, resolve-all; backups are in the DODO state directory)');
441
494
  }
442
495
  case 'recover.rollback': {
443
496
  const input = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"ipcDispatch.js","sourceRoot":"","sources":["../../src/server/ipcDispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ipcDispatch.js","sourceRoot":"","sources":["../../src/server/ipcDispatch.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@ export async function startLocalConfig(target, port = 21731, info = {}) {
72
72
  };
73
73
  const assets = { html: loadAsset('index.html'), css: loadAsset('app.css'), js: loadAsset('app.js') };
74
74
  // Fail fast at startup when the shipped UI is incomplete (broken install).
75
- for (const critical of ['workbench.js', 'workbench.css', 'ui/dom.js', 'ui/recovery.js', 'ui/deployment.js', 'ui/dataRecovery.js', 'ui/tooltips.js', 'ui/alerts.js', 'vendor/sweetalert2.min.js', 'vendor/sweetalert2.min.css'])
75
+ for (const critical of ['workbench.js', 'workbench.css', 'ui/dom.js', 'ui/recoveryMaintenance.js', 'ui/recovery.js', 'ui/deployment.js', 'ui/dataRecovery.js', 'ui/tooltips.js', 'ui/alerts.js', 'vendor/sweetalert2.min.js', 'vendor/sweetalert2.min.css'])
76
76
  loadAsset(critical);
77
77
  const app = express();
78
78
  app.disable('x-powered-by');