odai-dsh-agent 0.2.25 → 0.2.27

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 (72) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +156 -155
  3. package/build/bin/odai-dsh-agent.mjs +17 -17
  4. package/build/src/installer.d.mts.map +1 -1
  5. package/build/src/installer.mjs +1 -0
  6. package/build/src/installer.mjs.map +1 -1
  7. package/client/client.js +12 -12
  8. package/control-center.cordis.patch.yml +3 -3
  9. package/package.json +90 -90
  10. package/preset/odai/agent.cordis.yml +260 -260
  11. package/preset/odai/odai-governance.mjs +1 -0
  12. package/preset/odai/preset.yml +3 -3
  13. package/preset/odai/runtime/compaction-config.d.mts +1 -1
  14. package/preset/odai/runtime/compaction-config.d.mts.map +1 -1
  15. package/preset/odai/runtime/compaction-config.mjs +4 -2
  16. package/preset/odai/runtime/compaction-config.mjs.map +1 -1
  17. package/preset/odai/runtime/compaction-runtime.d.mts.map +1 -1
  18. package/preset/odai/runtime/compaction-runtime.mjs +7 -1
  19. package/preset/odai/runtime/compaction-runtime.mjs.map +1 -1
  20. package/preset/odai/runtime/lifecycle-runtime.d.mts.map +1 -1
  21. package/preset/odai/runtime/lifecycle-runtime.mjs +6 -0
  22. package/preset/odai/runtime/lifecycle-runtime.mjs.map +1 -1
  23. package/preset/odai/runtime/output-config.d.mts.map +1 -1
  24. package/preset/odai/runtime/output-config.mjs +4 -3
  25. package/preset/odai/runtime/output-config.mjs.map +1 -1
  26. package/preset/odai/runtime/prompt-runtime.d.mts.map +1 -1
  27. package/preset/odai/runtime/prompt-runtime.mjs +4 -7
  28. package/preset/odai/runtime/prompt-runtime.mjs.map +1 -1
  29. package/preset/odai/runtime/role-overlays.mjs +8 -8
  30. package/preset/odai/runtime/router.d.mts.map +1 -1
  31. package/preset/odai/runtime/router.mjs +2 -5
  32. package/preset/odai/runtime/router.mjs.map +1 -1
  33. package/preset/odai/runtime/routing-context.d.mts +11 -2
  34. package/preset/odai/runtime/routing-context.d.mts.map +1 -1
  35. package/preset/odai/runtime/routing-context.mjs +95 -18
  36. package/preset/odai/runtime/routing-context.mjs.map +1 -1
  37. package/preset/odai/runtime/runtime-support.d.mts.map +1 -1
  38. package/preset/odai/runtime/runtime-support.mjs +13 -3
  39. package/preset/odai/runtime/runtime-support.mjs.map +1 -1
  40. package/preset/odai/runtime/session-evidence.d.mts.map +1 -1
  41. package/preset/odai/runtime/session-evidence.mjs +12 -2
  42. package/preset/odai/runtime/session-evidence.mjs.map +1 -1
  43. package/preset/odai/runtime/skill-bundle.d.mts +1 -0
  44. package/preset/odai/runtime/skill-bundle.d.mts.map +1 -1
  45. package/preset/odai/runtime/skill-bundle.mjs +7 -2
  46. package/preset/odai/runtime/skill-bundle.mjs.map +1 -1
  47. package/preset/odai/skills/odai/SKILL.md +70 -68
  48. package/preset/odai/skills/odai/agents/openai.yaml +4 -4
  49. package/preset/odai/skills/odai/assets/claude-agents/agent.md +11 -11
  50. package/preset/odai/skills/odai/assets/codex-agents/config.toml +11 -11
  51. package/preset/odai/skills/odai/assets/codex-agents/role.toml +5 -5
  52. package/preset/odai/skills/odai/assets/copilot-agents/agent.md +13 -13
  53. package/preset/odai/skills/odai/assets/hooks-policy.example.json +24 -24
  54. package/preset/odai/skills/odai/assets/routing-roles/controller.md +15 -15
  55. package/preset/odai/skills/odai/assets/routing-roles/frontend.md +7 -7
  56. package/preset/odai/skills/odai/assets/routing-roles/planner.md +28 -28
  57. package/preset/odai/skills/odai/assets/routing-roles/researcher.md +7 -7
  58. package/preset/odai/skills/odai/assets/routing-roles/reviewer.md +11 -11
  59. package/preset/odai/skills/odai/assets/task-state.md +17 -14
  60. package/preset/odai/skills/odai/manifest.json +52 -52
  61. package/preset/odai/skills/odai/references/craft.md +53 -54
  62. package/preset/odai/skills/odai/references/dao.md +31 -30
  63. package/preset/odai/skills/odai/references/leverage.md +50 -48
  64. package/preset/odai/skills/odai/references/planning.md +83 -83
  65. package/preset/odai/skills/odai/references/support.md +31 -30
  66. package/preset/odai/skills/odai/references/verification.md +24 -22
  67. package/preset/odai/skills/odai/scripts/build-hooks.mjs +273 -273
  68. package/preset/odai/skills/odai/scripts/build-routing.mjs +315 -315
  69. package/preset/odai/skills/odai/scripts/install-routing.mjs +448 -448
  70. package/preset/odai/skills/odai/scripts/odai-hook.mjs +457 -457
  71. package/preset/odai/skills/odai/scripts/run-role.mjs +285 -285
  72. package/preset/odai/skills/odai/scripts/verify-routing.mjs +103 -103
package/client/client.js CHANGED
@@ -526,18 +526,18 @@ window.__ModuleLoader__.load({
526
526
  const tag = document.createElement("style");
527
527
  tag.dataset.plugin = PACKAGE_ID;
528
528
  tag.dataset.pluginCss = styleId;
529
- tag.textContent = `
530
- .odaiCC__launcher,.odaiCC{--odai-cc-bg:#f5f7fa;--odai-cc-panel:#fff;--odai-cc-surface:#f8fafc;--odai-cc-surface-2:#edf1f5;--odai-cc-text:#151922;--odai-cc-text-2:#4c5665;--odai-cc-text-3:#778190;--odai-cc-border:#d8dee7;--odai-cc-border-strong:#bdc6d2;--odai-cc-hover:#edf3ff;--odai-cc-accent:#2f6feb}
531
- .odaiCC__launcher{box-sizing:border-box;height:28px;border:1px solid var(--odai-cc-border);border-radius:6px;background:transparent;color:var(--odai-cc-text-2);display:inline-flex;align-items:center;gap:6px;padding:0 8px;cursor:pointer;font:600 11px/1 inherit;letter-spacing:0}.odaiCC__launcher:hover{background:var(--odai-cc-hover);color:var(--odai-cc-text)}
532
- .odaiCC__graphIcon{position:relative;width:17px;height:15px;display:inline-block;flex:none}.odaiCC__graphNode{position:absolute;width:5px;height:5px;border:1.5px solid currentColor;border-radius:50%;box-sizing:border-box}.odaiCC__graphNode--a{left:0;top:5px}.odaiCC__graphNode--b{right:0;top:0}.odaiCC__graphNode--c{right:0;bottom:0}.odaiCC__graphLine{position:absolute;left:5px;top:7px;width:7px;height:1px;background:currentColor}.odaiCC__graphLine:before,.odaiCC__graphLine:after{content:"";position:absolute;right:0;width:5px;height:1px;background:currentColor;transform-origin:right center}.odaiCC__graphLine:before{transform:rotate(-38deg)}.odaiCC__graphLine:after{transform:rotate(38deg)}
533
- .odaiCC{position:fixed;inset:0;z-index:120;color:var(--odai-cc-text);font-family:inherit;letter-spacing:0}.odaiCC *{box-sizing:border-box}.odaiCC__backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.28)}.odaiCC__drawer{position:absolute;inset:14px;max-width:1180px;margin-left:auto;border:1px solid var(--odai-cc-border-strong);border-radius:8px;background:var(--odai-cc-panel);box-shadow:0 24px 80px rgba(0,0,0,.42);display:flex;flex-direction:column;overflow:hidden}.odaiCC__header{min-height:62px;border-bottom:1px solid var(--odai-cc-border);display:grid;grid-template-columns:minmax(230px,1fr) auto minmax(44px,1fr);align-items:center;gap:16px;padding:10px 14px}.odaiCC__brand{display:flex;align-items:center;gap:10px;min-width:0}.odaiCC__brand>.odaiCC__graphIcon{width:22px;height:19px;color:var(--odai-cc-accent)}.odaiCC__brand h2{font-size:16px;line-height:22px;margin:0}.odaiCC__brand span{display:block;color:var(--odai-cc-text-3);font-size:11px;line-height:16px}.odaiCC__tabs{display:flex;border:1px solid var(--odai-cc-border);border-radius:6px;padding:2px;background:var(--odai-cc-surface)}.odaiCC__tabs button{height:30px;min-width:72px;border:0;border-radius:4px;background:transparent;color:var(--odai-cc-text-3);cursor:pointer;font:600 12px/1 inherit}.odaiCC__tabs button.is-active{background:var(--odai-cc-panel);color:var(--odai-cc-text);box-shadow:0 1px 4px rgba(0,0,0,.2)}.odaiCC__close{justify-self:end;width:32px;height:32px;border:0;border-radius:6px;background:transparent;color:var(--odai-cc-text-2);font-size:22px;line-height:1;cursor:pointer}.odaiCC__close:hover{background:var(--odai-cc-hover)}.odaiCC__body{min-height:0;flex:1;overflow:auto}.odaiCC__live{padding:14px}.odaiCC__kicker{display:block;color:var(--odai-cc-text-3);font:700 9px/14px inherit;letter-spacing:.08em}.odaiCC__sectionHead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.odaiCC__sectionHead h3{font-size:12px;line-height:18px;margin:0}.odaiCC__eventCount{color:var(--odai-cc-text-3);font-size:10px}.odaiCC__flow{border:1px solid var(--odai-cc-border);border-radius:8px;background:var(--odai-cc-surface);padding:12px}.odaiCC__flowGrid{display:grid;grid-template-columns:minmax(160px,220px) minmax(360px,1fr);gap:22px;align-items:center;min-height:265px}.odaiCC__controllerNode{border:1px solid rgba(119,167,255,.45);border-radius:8px;background:rgba(119,167,255,.08);padding:18px}.odaiCC__controllerNode strong,.odaiCC__roleNode strong{display:block;font-size:12px;line-height:18px}.odaiCC__controllerNode small,.odaiCC__roleNode small{display:block;color:var(--odai-cc-text-3);font-size:10px;line-height:15px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.odaiCC__nodeEyebrow{color:#2f6feb;font-size:9px;font-weight:700}.odaiCC__roleStack{display:flex;flex-direction:column;gap:8px}.odaiCC__flowRole{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;border:0;background:transparent;color:inherit;padding:0;text-align:left}.odaiCC__flowRole:not(:disabled){cursor:pointer}.odaiCC__flowRole:disabled{opacity:1}.odaiCC__edge{position:relative;height:1px;background:var(--odai-cc-border-strong);margin-right:12px}.odaiCC__edge i{position:absolute;right:-1px;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}.odaiCC__edge em{position:absolute;left:5px;top:-17px;color:var(--odai-cc-text-3);font:500 9px/12px inherit;font-style:normal}.odaiCC__edge[data-state=proposal],.odaiCC__edge[data-state=decision]{background:repeating-linear-gradient(90deg,#65c6b8 0 5px,transparent 5px 9px);color:#65c6b8}.odaiCC__edge[data-state=same-turn]{background:#b99cff;color:#b99cff}.odaiCC__edge[data-state=child]{background:var(--odai-cc-accent);color:var(--odai-cc-accent)}.odaiCC__edge[data-state=handback]{background:#f1bb61;color:#f1bb61}.odaiCC__edge[data-state=blocked],.odaiCC__edge[data-state=interrupted]{background:#ef7e78;color:#ef7e78}.odaiCC__roleNode{border:1px solid var(--odai-cc-border);border-radius:7px;background:var(--odai-cc-panel);padding:8px 10px;min-width:0}.odaiCC__flowRole:not(:disabled):hover .odaiCC__roleNode{border-color:var(--odai-cc-accent)}.odaiCC__role{display:inline-flex;align-items:center;gap:5px;color:var(--odai-cc-text-2);font-size:9px;line-height:14px}.odaiCC__role i{width:6px;height:6px;border-radius:50%;background:#8f969e}.odaiCC__role--controller i{background:var(--odai-cc-accent)}.odaiCC__role--researcher i{background:#65c6b8}.odaiCC__role--planner i{background:#b99cff}.odaiCC__role--reviewer i{background:#f1bb61}.odaiCC__role--frontend i{background:#ef8fbd}.odaiCC__evidenceGrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:12px;margin-top:12px}.odaiCC__timeline,.odaiCC__inspector{min-width:0;border:1px solid var(--odai-cc-border);border-radius:8px;background:var(--odai-cc-surface);padding:10px}.odaiCC__turn{border-top:1px solid var(--odai-cc-border);padding:8px 0}.odaiCC__turn:first-child{border-top:0;padding-top:0}.odaiCC__turn summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;font-size:10px}.odaiCC__turn summary::-webkit-details-marker{display:none}.odaiCC__turn summary span{color:var(--odai-cc-text-3)}.odaiCC__events{display:flex;flex-direction:column;gap:6px;margin-top:8px}.odaiCC__event{width:100%;border:1px solid var(--odai-cc-border);border-radius:7px;background:var(--odai-cc-panel);color:inherit;padding:8px;text-align:left;cursor:pointer}.odaiCC__event:hover,.odaiCC__event.is-selected{border-color:var(--odai-cc-accent);background:var(--odai-cc-hover)}.odaiCC__eventTop{display:flex;align-items:center;gap:6px;color:var(--odai-cc-text-3);font-size:9px}.odaiCC__eventTop time{margin-left:auto}.odaiCC__eventTop code{font-size:9px}.odaiCC__event>strong{display:block;margin-top:5px;font-size:11px;line-height:16px}.odaiCC__eventDetail{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--odai-cc-text-2);font-size:10px;line-height:15px;margin-top:2px}.odaiCC__eventBottom{display:flex;gap:8px;align-items:center;color:var(--odai-cc-text-3);font-size:9px;margin-top:6px}.odaiCC__state{display:inline-flex;border-radius:999px;background:var(--odai-cc-surface-2);color:var(--odai-cc-text-2);padding:1px 6px;font-size:9px;line-height:13px}.odaiCC__state--proposal{background:rgba(101,198,184,.15);color:#18756b}.odaiCC__state--same-turn{background:rgba(185,156,255,.15);color:#6f42c1}.odaiCC__state--child{background:rgba(119,167,255,.15);color:#245ec7}.odaiCC__state--handback{background:rgba(241,187,97,.15);color:#946000}.odaiCC__state--blocked,.odaiCC__state--interrupted{background:rgba(239,126,120,.15);color:#b42318}.odaiCC__facts{margin:0;display:flex;flex-direction:column;gap:7px}.odaiCC__facts>div{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px;font-size:10px}.odaiCC__facts dt{color:var(--odai-cc-text-3)}.odaiCC__facts dd{margin:0;overflow-wrap:anywhere}.odaiCC__facts code{font-size:9px}.odaiCC__raw{max-height:360px;overflow:auto;border:1px solid var(--odai-cc-border);border-radius:7px;background:var(--odai-cc-panel);color:var(--odai-cc-text-2);font:9px/14px ui-monospace,SFMono-Regular,Menlo,monospace;padding:8px;margin:10px 0 0}.odaiCC__empty{border:1px dashed var(--odai-cc-border-strong);border-radius:7px;color:var(--odai-cc-text-3);font-size:10px;line-height:16px;padding:18px;text-align:center}
534
- .odaiCC__routing{max-width:1000px;margin:0 auto;padding:16px 18px}.odaiCC__routingHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.odaiCC__routingHead h3{font-size:16px;line-height:22px;margin:0}.odaiCC__quietButton,.odaiCC__primaryButton,.odaiCC__dangerButton{height:30px;border-radius:6px;padding:0 11px;font:600 12px/1 inherit;cursor:pointer}.odaiCC__quietButton{border:1px solid var(--odai-cc-border);background:transparent;color:var(--odai-cc-text-2)}.odaiCC__primaryButton{border:1px solid var(--odai-cc-accent);background:var(--odai-cc-accent);color:#fff}.odaiCC__dangerButton{border:1px solid rgba(239,126,120,.45);background:transparent;color:#b42318}.odaiCC button:disabled:not(.odaiCC__flowRole){opacity:.45;cursor:default}.odaiCC__flowRole:disabled{opacity:1;cursor:default}.odaiCC__alert{border:1px solid var(--odai-cc-border);border-radius:7px;padding:8px 10px;font-size:12px;line-height:18px;margin-bottom:10px}.odaiCC__alert.is-error{border-color:rgba(239,126,120,.4);background:rgba(239,126,120,.08);color:#b42318}.odaiCC__alert.is-success{border-color:rgba(101,198,184,.4);background:rgba(101,198,184,.08);color:#18756b}.odaiCC__controllerLock,.odaiCC__routeRow{border-top:1px solid var(--odai-cc-border);padding:9px 0}.odaiCC__controllerLock{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:12px;align-items:center}.odaiCC__controllerLock strong{display:block;font-size:13px;line-height:18px}.odaiCC__controllerLock span:not(.odaiCC__role):not(.odaiCC__lock){display:block;color:var(--odai-cc-text-3);font-size:11px;line-height:16px}.odaiCC__lock{border:1px solid var(--odai-cc-border);border-radius:999px;color:var(--odai-cc-text-3);font-size:10px;padding:3px 7px}.odaiCC__routeRow{display:grid;grid-template-columns:minmax(300px,1fr) minmax(410px,1.15fr);gap:8px 20px;align-items:center}.odaiCC__routeSummary{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:10px;align-items:center}.odaiCC__routeValue strong{display:block;font-size:13px;line-height:18px;overflow-wrap:anywhere}.odaiCC__routeValue span{display:block;color:var(--odai-cc-text-3);font-size:11px;line-height:16px}.odaiCC__dispatch{display:grid;grid-template-columns:70px auto minmax(0,1fr);gap:10px;align-items:center}.odaiCC__dispatch>span,.odaiCC__dispatch small{color:var(--odai-cc-text-3);font-size:11px;line-height:16px}.odaiCC__segments{display:flex;border:1px solid var(--odai-cc-border);border-radius:6px;overflow:hidden}.odaiCC__segments button{height:28px;border:0;border-right:1px solid var(--odai-cc-border);background:transparent;color:var(--odai-cc-text-3);padding:0 9px;font:500 11px/1 inherit;cursor:pointer}.odaiCC__segments button:last-child{border-right:0}.odaiCC__segments button.is-active{background:var(--odai-cc-hover);color:var(--odai-cc-text)}.odaiCC__routeForm{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:10px;border:1px solid var(--odai-cc-border);border-radius:7px;background:var(--odai-cc-surface)}.odaiCC__routeForm label span{display:block;color:var(--odai-cc-text-3);font-size:11px;line-height:16px;margin-bottom:4px}.odaiCC__routeForm input{width:100%;min-width:0;height:32px;border:1px solid var(--odai-cc-border);border-radius:5px;background:var(--odai-cc-panel);color:var(--odai-cc-text);padding:0 8px;font:12px/1 inherit;outline:none}.odaiCC__routeForm input:focus{border-color:var(--odai-cc-accent)}.odaiCC__formActions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
535
- .odaiCC__body{overflow:hidden}.odaiCC__live{height:100%;min-height:0;display:flex;flex-direction:column;gap:14px;overflow:hidden;padding:14px}.odaiCC__live>.odaiCC__alert{flex:none;margin-bottom:0}.odaiCC__flow{flex:none;max-height:38vh;overflow:auto;scrollbar-gutter:stable}.odaiCC__evidenceGrid{flex:1;min-height:0;overflow:hidden;margin-top:0}.odaiCC__timeline{display:flex;flex-direction:column;min-height:0;overflow:hidden}.odaiCC__timeline>.odaiCC__sectionHead{flex:none}.odaiCC__turns{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.odaiCC__inspector{min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.odaiCC__inspector>.odaiCC__sectionHead{position:sticky;top:0;z-index:1;background:var(--odai-cc-panel);padding-bottom:8px}.odaiCC__sectionHead h3{font-size:13px;line-height:20px}.odaiCC__kicker{font:700 11px/16px inherit;letter-spacing:0}.odaiCC__role,.odaiCC__state,.odaiCC__nodeEyebrow{font-size:11px}.odaiCC__controllerNode strong,.odaiCC__roleNode strong{font-size:13px;line-height:18px}.odaiCC__controllerNode small,.odaiCC__roleNode small,.odaiCC__edge em{font-size:11px;line-height:16px}.odaiCC__eventCount{font-size:11px;line-height:16px}.odaiCC__turn summary{font-size:12px;line-height:18px}.odaiCC__eventTop code,.odaiCC__eventTop time{font-size:11px;line-height:16px}.odaiCC__event>strong{font-size:13px;line-height:18px}.odaiCC__eventDetail,.odaiCC__eventBottom{font-size:11px;line-height:16px}.odaiCC__eventTop .odaiCC__state,.odaiCC__eventBottom .odaiCC__role,.odaiCC__facts .odaiCC__state,.odaiCC__facts .odaiCC__role{font-size:10px}.odaiCC__facts dt{font-size:11px;line-height:18px}.odaiCC__facts dd{font-size:12px;line-height:18px}.odaiCC__facts code{font-size:11px;line-height:18px}.odaiCC__raw{font:12px/18px ui-monospace,SFMono-Regular,Consolas,monospace}.odaiCC__loadEarlier{width:100%;height:30px;border:0;border-bottom:1px solid var(--odai-cc-border);background:var(--odai-cc-surface);color:var(--odai-cc-text-2);font:600 10px/1 inherit;cursor:pointer}.odaiCC__loadEarlier:hover{background:var(--odai-cc-hover);color:var(--odai-cc-text)}.odaiCC__routing{height:100%;overflow-y:auto}
536
- @media(max-width:900px){.odaiCC__routeRow{display:block}.odaiCC__dispatch{margin-top:7px}}
537
- @media(max-width:760px){.odaiCC__launcher span:last-child{display:none}.odaiCC__drawer{inset:6px}.odaiCC__header{grid-template-columns:minmax(0,1fr) auto auto;gap:7px;padding:8px}.odaiCC__brand span{display:none}.odaiCC__tabs button{min-width:56px}.odaiCC__live{padding:8px}.odaiCC__flowGrid{grid-template-columns:1fr;gap:10px;min-height:0}.odaiCC__controllerNode{padding:10px}.odaiCC__flowRole{grid-template-columns:65px minmax(0,1fr)}.odaiCC__evidenceGrid{grid-template-columns:1fr}.odaiCC__inspector{max-height:none}.odaiCC__routing{padding:10px}.odaiCC__controllerLock,.odaiCC__routeSummary{grid-template-columns:92px minmax(0,1fr) auto}.odaiCC__dispatch{grid-template-columns:92px 1fr}.odaiCC__dispatch small{grid-column:2}.odaiCC__routeForm{grid-template-columns:1fr 1fr;margin-left:0}.odaiCC__raw{max-height:240px}}
538
- @media(max-width:760px){.odaiCC__body{overflow:hidden}.odaiCC__live{gap:8px}.odaiCC__flow{max-height:30vh}.odaiCC__evidenceGrid{grid-template-rows:minmax(180px,1fr) minmax(120px,35vh);overflow:hidden}.odaiCC__timeline,.odaiCC__inspector{min-height:0;max-height:none}}
539
- @media(prefers-color-scheme:dark){.odaiCC__launcher,.odaiCC{--odai-cc-bg:#14171b;--odai-cc-panel:#191d22;--odai-cc-surface:#1f242a;--odai-cc-surface-2:#282e35;--odai-cc-text:#f2f4f7;--odai-cc-text-2:#c5cbd3;--odai-cc-text-3:#929ba7;--odai-cc-border:#333a43;--odai-cc-border-strong:#46505c;--odai-cc-hover:#26354b;--odai-cc-accent:#77a7ff}.odaiCC__nodeEyebrow{color:#91b7ff}.odaiCC__state--proposal,.odaiCC__alert.is-success{color:#90d9cf}.odaiCC__state--same-turn{color:#cbb8ff}.odaiCC__state--child{color:#a6c3ff}.odaiCC__state--handback{color:#f4ca84}.odaiCC__state--blocked,.odaiCC__state--interrupted,.odaiCC__dangerButton,.odaiCC__alert.is-error{color:#f3a39e}}
540
- @media(prefers-reduced-motion:no-preference){.odaiCC__drawer{animation:odaiCCIn .15s ease-out}}@keyframes odaiCCIn{from{opacity:.72;transform:translateX(8px)}to{opacity:1;transform:none}}
529
+ tag.textContent = `
530
+ .odaiCC__launcher,.odaiCC{--odai-cc-bg:#f5f7fa;--odai-cc-panel:#fff;--odai-cc-surface:#f8fafc;--odai-cc-surface-2:#edf1f5;--odai-cc-text:#151922;--odai-cc-text-2:#4c5665;--odai-cc-text-3:#778190;--odai-cc-border:#d8dee7;--odai-cc-border-strong:#bdc6d2;--odai-cc-hover:#edf3ff;--odai-cc-accent:#2f6feb}
531
+ .odaiCC__launcher{box-sizing:border-box;height:28px;border:1px solid var(--odai-cc-border);border-radius:6px;background:transparent;color:var(--odai-cc-text-2);display:inline-flex;align-items:center;gap:6px;padding:0 8px;cursor:pointer;font:600 11px/1 inherit;letter-spacing:0}.odaiCC__launcher:hover{background:var(--odai-cc-hover);color:var(--odai-cc-text)}
532
+ .odaiCC__graphIcon{position:relative;width:17px;height:15px;display:inline-block;flex:none}.odaiCC__graphNode{position:absolute;width:5px;height:5px;border:1.5px solid currentColor;border-radius:50%;box-sizing:border-box}.odaiCC__graphNode--a{left:0;top:5px}.odaiCC__graphNode--b{right:0;top:0}.odaiCC__graphNode--c{right:0;bottom:0}.odaiCC__graphLine{position:absolute;left:5px;top:7px;width:7px;height:1px;background:currentColor}.odaiCC__graphLine:before,.odaiCC__graphLine:after{content:"";position:absolute;right:0;width:5px;height:1px;background:currentColor;transform-origin:right center}.odaiCC__graphLine:before{transform:rotate(-38deg)}.odaiCC__graphLine:after{transform:rotate(38deg)}
533
+ .odaiCC{position:fixed;inset:0;z-index:120;color:var(--odai-cc-text);font-family:inherit;letter-spacing:0}.odaiCC *{box-sizing:border-box}.odaiCC__backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.28)}.odaiCC__drawer{position:absolute;inset:14px;max-width:1180px;margin-left:auto;border:1px solid var(--odai-cc-border-strong);border-radius:8px;background:var(--odai-cc-panel);box-shadow:0 24px 80px rgba(0,0,0,.42);display:flex;flex-direction:column;overflow:hidden}.odaiCC__header{min-height:62px;border-bottom:1px solid var(--odai-cc-border);display:grid;grid-template-columns:minmax(230px,1fr) auto minmax(44px,1fr);align-items:center;gap:16px;padding:10px 14px}.odaiCC__brand{display:flex;align-items:center;gap:10px;min-width:0}.odaiCC__brand>.odaiCC__graphIcon{width:22px;height:19px;color:var(--odai-cc-accent)}.odaiCC__brand h2{font-size:16px;line-height:22px;margin:0}.odaiCC__brand span{display:block;color:var(--odai-cc-text-3);font-size:11px;line-height:16px}.odaiCC__tabs{display:flex;border:1px solid var(--odai-cc-border);border-radius:6px;padding:2px;background:var(--odai-cc-surface)}.odaiCC__tabs button{height:30px;min-width:72px;border:0;border-radius:4px;background:transparent;color:var(--odai-cc-text-3);cursor:pointer;font:600 12px/1 inherit}.odaiCC__tabs button.is-active{background:var(--odai-cc-panel);color:var(--odai-cc-text);box-shadow:0 1px 4px rgba(0,0,0,.2)}.odaiCC__close{justify-self:end;width:32px;height:32px;border:0;border-radius:6px;background:transparent;color:var(--odai-cc-text-2);font-size:22px;line-height:1;cursor:pointer}.odaiCC__close:hover{background:var(--odai-cc-hover)}.odaiCC__body{min-height:0;flex:1;overflow:auto}.odaiCC__live{padding:14px}.odaiCC__kicker{display:block;color:var(--odai-cc-text-3);font:700 9px/14px inherit;letter-spacing:.08em}.odaiCC__sectionHead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.odaiCC__sectionHead h3{font-size:12px;line-height:18px;margin:0}.odaiCC__eventCount{color:var(--odai-cc-text-3);font-size:10px}.odaiCC__flow{border:1px solid var(--odai-cc-border);border-radius:8px;background:var(--odai-cc-surface);padding:12px}.odaiCC__flowGrid{display:grid;grid-template-columns:minmax(160px,220px) minmax(360px,1fr);gap:22px;align-items:center;min-height:265px}.odaiCC__controllerNode{border:1px solid rgba(119,167,255,.45);border-radius:8px;background:rgba(119,167,255,.08);padding:18px}.odaiCC__controllerNode strong,.odaiCC__roleNode strong{display:block;font-size:12px;line-height:18px}.odaiCC__controllerNode small,.odaiCC__roleNode small{display:block;color:var(--odai-cc-text-3);font-size:10px;line-height:15px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.odaiCC__nodeEyebrow{color:#2f6feb;font-size:9px;font-weight:700}.odaiCC__roleStack{display:flex;flex-direction:column;gap:8px}.odaiCC__flowRole{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;border:0;background:transparent;color:inherit;padding:0;text-align:left}.odaiCC__flowRole:not(:disabled){cursor:pointer}.odaiCC__flowRole:disabled{opacity:1}.odaiCC__edge{position:relative;height:1px;background:var(--odai-cc-border-strong);margin-right:12px}.odaiCC__edge i{position:absolute;right:-1px;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}.odaiCC__edge em{position:absolute;left:5px;top:-17px;color:var(--odai-cc-text-3);font:500 9px/12px inherit;font-style:normal}.odaiCC__edge[data-state=proposal],.odaiCC__edge[data-state=decision]{background:repeating-linear-gradient(90deg,#65c6b8 0 5px,transparent 5px 9px);color:#65c6b8}.odaiCC__edge[data-state=same-turn]{background:#b99cff;color:#b99cff}.odaiCC__edge[data-state=child]{background:var(--odai-cc-accent);color:var(--odai-cc-accent)}.odaiCC__edge[data-state=handback]{background:#f1bb61;color:#f1bb61}.odaiCC__edge[data-state=blocked],.odaiCC__edge[data-state=interrupted]{background:#ef7e78;color:#ef7e78}.odaiCC__roleNode{border:1px solid var(--odai-cc-border);border-radius:7px;background:var(--odai-cc-panel);padding:8px 10px;min-width:0}.odaiCC__flowRole:not(:disabled):hover .odaiCC__roleNode{border-color:var(--odai-cc-accent)}.odaiCC__role{display:inline-flex;align-items:center;gap:5px;color:var(--odai-cc-text-2);font-size:9px;line-height:14px}.odaiCC__role i{width:6px;height:6px;border-radius:50%;background:#8f969e}.odaiCC__role--controller i{background:var(--odai-cc-accent)}.odaiCC__role--researcher i{background:#65c6b8}.odaiCC__role--planner i{background:#b99cff}.odaiCC__role--reviewer i{background:#f1bb61}.odaiCC__role--frontend i{background:#ef8fbd}.odaiCC__evidenceGrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:12px;margin-top:12px}.odaiCC__timeline,.odaiCC__inspector{min-width:0;border:1px solid var(--odai-cc-border);border-radius:8px;background:var(--odai-cc-surface);padding:10px}.odaiCC__turn{border-top:1px solid var(--odai-cc-border);padding:8px 0}.odaiCC__turn:first-child{border-top:0;padding-top:0}.odaiCC__turn summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;font-size:10px}.odaiCC__turn summary::-webkit-details-marker{display:none}.odaiCC__turn summary span{color:var(--odai-cc-text-3)}.odaiCC__events{display:flex;flex-direction:column;gap:6px;margin-top:8px}.odaiCC__event{width:100%;border:1px solid var(--odai-cc-border);border-radius:7px;background:var(--odai-cc-panel);color:inherit;padding:8px;text-align:left;cursor:pointer}.odaiCC__event:hover,.odaiCC__event.is-selected{border-color:var(--odai-cc-accent);background:var(--odai-cc-hover)}.odaiCC__eventTop{display:flex;align-items:center;gap:6px;color:var(--odai-cc-text-3);font-size:9px}.odaiCC__eventTop time{margin-left:auto}.odaiCC__eventTop code{font-size:9px}.odaiCC__event>strong{display:block;margin-top:5px;font-size:11px;line-height:16px}.odaiCC__eventDetail{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--odai-cc-text-2);font-size:10px;line-height:15px;margin-top:2px}.odaiCC__eventBottom{display:flex;gap:8px;align-items:center;color:var(--odai-cc-text-3);font-size:9px;margin-top:6px}.odaiCC__state{display:inline-flex;border-radius:999px;background:var(--odai-cc-surface-2);color:var(--odai-cc-text-2);padding:1px 6px;font-size:9px;line-height:13px}.odaiCC__state--proposal{background:rgba(101,198,184,.15);color:#18756b}.odaiCC__state--same-turn{background:rgba(185,156,255,.15);color:#6f42c1}.odaiCC__state--child{background:rgba(119,167,255,.15);color:#245ec7}.odaiCC__state--handback{background:rgba(241,187,97,.15);color:#946000}.odaiCC__state--blocked,.odaiCC__state--interrupted{background:rgba(239,126,120,.15);color:#b42318}.odaiCC__facts{margin:0;display:flex;flex-direction:column;gap:7px}.odaiCC__facts>div{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px;font-size:10px}.odaiCC__facts dt{color:var(--odai-cc-text-3)}.odaiCC__facts dd{margin:0;overflow-wrap:anywhere}.odaiCC__facts code{font-size:9px}.odaiCC__raw{max-height:360px;overflow:auto;border:1px solid var(--odai-cc-border);border-radius:7px;background:var(--odai-cc-panel);color:var(--odai-cc-text-2);font:9px/14px ui-monospace,SFMono-Regular,Menlo,monospace;padding:8px;margin:10px 0 0}.odaiCC__empty{border:1px dashed var(--odai-cc-border-strong);border-radius:7px;color:var(--odai-cc-text-3);font-size:10px;line-height:16px;padding:18px;text-align:center}
534
+ .odaiCC__routing{max-width:1000px;margin:0 auto;padding:16px 18px}.odaiCC__routingHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.odaiCC__routingHead h3{font-size:16px;line-height:22px;margin:0}.odaiCC__quietButton,.odaiCC__primaryButton,.odaiCC__dangerButton{height:30px;border-radius:6px;padding:0 11px;font:600 12px/1 inherit;cursor:pointer}.odaiCC__quietButton{border:1px solid var(--odai-cc-border);background:transparent;color:var(--odai-cc-text-2)}.odaiCC__primaryButton{border:1px solid var(--odai-cc-accent);background:var(--odai-cc-accent);color:#fff}.odaiCC__dangerButton{border:1px solid rgba(239,126,120,.45);background:transparent;color:#b42318}.odaiCC button:disabled:not(.odaiCC__flowRole){opacity:.45;cursor:default}.odaiCC__flowRole:disabled{opacity:1;cursor:default}.odaiCC__alert{border:1px solid var(--odai-cc-border);border-radius:7px;padding:8px 10px;font-size:12px;line-height:18px;margin-bottom:10px}.odaiCC__alert.is-error{border-color:rgba(239,126,120,.4);background:rgba(239,126,120,.08);color:#b42318}.odaiCC__alert.is-success{border-color:rgba(101,198,184,.4);background:rgba(101,198,184,.08);color:#18756b}.odaiCC__controllerLock,.odaiCC__routeRow{border-top:1px solid var(--odai-cc-border);padding:9px 0}.odaiCC__controllerLock{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:12px;align-items:center}.odaiCC__controllerLock strong{display:block;font-size:13px;line-height:18px}.odaiCC__controllerLock span:not(.odaiCC__role):not(.odaiCC__lock){display:block;color:var(--odai-cc-text-3);font-size:11px;line-height:16px}.odaiCC__lock{border:1px solid var(--odai-cc-border);border-radius:999px;color:var(--odai-cc-text-3);font-size:10px;padding:3px 7px}.odaiCC__routeRow{display:grid;grid-template-columns:minmax(300px,1fr) minmax(410px,1.15fr);gap:8px 20px;align-items:center}.odaiCC__routeSummary{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:10px;align-items:center}.odaiCC__routeValue strong{display:block;font-size:13px;line-height:18px;overflow-wrap:anywhere}.odaiCC__routeValue span{display:block;color:var(--odai-cc-text-3);font-size:11px;line-height:16px}.odaiCC__dispatch{display:grid;grid-template-columns:70px auto minmax(0,1fr);gap:10px;align-items:center}.odaiCC__dispatch>span,.odaiCC__dispatch small{color:var(--odai-cc-text-3);font-size:11px;line-height:16px}.odaiCC__segments{display:flex;border:1px solid var(--odai-cc-border);border-radius:6px;overflow:hidden}.odaiCC__segments button{height:28px;border:0;border-right:1px solid var(--odai-cc-border);background:transparent;color:var(--odai-cc-text-3);padding:0 9px;font:500 11px/1 inherit;cursor:pointer}.odaiCC__segments button:last-child{border-right:0}.odaiCC__segments button.is-active{background:var(--odai-cc-hover);color:var(--odai-cc-text)}.odaiCC__routeForm{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:10px;border:1px solid var(--odai-cc-border);border-radius:7px;background:var(--odai-cc-surface)}.odaiCC__routeForm label span{display:block;color:var(--odai-cc-text-3);font-size:11px;line-height:16px;margin-bottom:4px}.odaiCC__routeForm input{width:100%;min-width:0;height:32px;border:1px solid var(--odai-cc-border);border-radius:5px;background:var(--odai-cc-panel);color:var(--odai-cc-text);padding:0 8px;font:12px/1 inherit;outline:none}.odaiCC__routeForm input:focus{border-color:var(--odai-cc-accent)}.odaiCC__formActions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
535
+ .odaiCC__body{overflow:hidden}.odaiCC__live{height:100%;min-height:0;display:flex;flex-direction:column;gap:14px;overflow:hidden;padding:14px}.odaiCC__live>.odaiCC__alert{flex:none;margin-bottom:0}.odaiCC__flow{flex:none;max-height:38vh;overflow:auto;scrollbar-gutter:stable}.odaiCC__evidenceGrid{flex:1;min-height:0;overflow:hidden;margin-top:0}.odaiCC__timeline{display:flex;flex-direction:column;min-height:0;overflow:hidden}.odaiCC__timeline>.odaiCC__sectionHead{flex:none}.odaiCC__turns{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.odaiCC__inspector{min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.odaiCC__inspector>.odaiCC__sectionHead{position:sticky;top:0;z-index:1;background:var(--odai-cc-panel);padding-bottom:8px}.odaiCC__sectionHead h3{font-size:13px;line-height:20px}.odaiCC__kicker{font:700 11px/16px inherit;letter-spacing:0}.odaiCC__role,.odaiCC__state,.odaiCC__nodeEyebrow{font-size:11px}.odaiCC__controllerNode strong,.odaiCC__roleNode strong{font-size:13px;line-height:18px}.odaiCC__controllerNode small,.odaiCC__roleNode small,.odaiCC__edge em{font-size:11px;line-height:16px}.odaiCC__eventCount{font-size:11px;line-height:16px}.odaiCC__turn summary{font-size:12px;line-height:18px}.odaiCC__eventTop code,.odaiCC__eventTop time{font-size:11px;line-height:16px}.odaiCC__event>strong{font-size:13px;line-height:18px}.odaiCC__eventDetail,.odaiCC__eventBottom{font-size:11px;line-height:16px}.odaiCC__eventTop .odaiCC__state,.odaiCC__eventBottom .odaiCC__role,.odaiCC__facts .odaiCC__state,.odaiCC__facts .odaiCC__role{font-size:10px}.odaiCC__facts dt{font-size:11px;line-height:18px}.odaiCC__facts dd{font-size:12px;line-height:18px}.odaiCC__facts code{font-size:11px;line-height:18px}.odaiCC__raw{font:12px/18px ui-monospace,SFMono-Regular,Consolas,monospace}.odaiCC__loadEarlier{width:100%;height:30px;border:0;border-bottom:1px solid var(--odai-cc-border);background:var(--odai-cc-surface);color:var(--odai-cc-text-2);font:600 10px/1 inherit;cursor:pointer}.odaiCC__loadEarlier:hover{background:var(--odai-cc-hover);color:var(--odai-cc-text)}.odaiCC__routing{height:100%;overflow-y:auto}
536
+ @media(max-width:900px){.odaiCC__routeRow{display:block}.odaiCC__dispatch{margin-top:7px}}
537
+ @media(max-width:760px){.odaiCC__launcher span:last-child{display:none}.odaiCC__drawer{inset:6px}.odaiCC__header{grid-template-columns:minmax(0,1fr) auto auto;gap:7px;padding:8px}.odaiCC__brand span{display:none}.odaiCC__tabs button{min-width:56px}.odaiCC__live{padding:8px}.odaiCC__flowGrid{grid-template-columns:1fr;gap:10px;min-height:0}.odaiCC__controllerNode{padding:10px}.odaiCC__flowRole{grid-template-columns:65px minmax(0,1fr)}.odaiCC__evidenceGrid{grid-template-columns:1fr}.odaiCC__inspector{max-height:none}.odaiCC__routing{padding:10px}.odaiCC__controllerLock,.odaiCC__routeSummary{grid-template-columns:92px minmax(0,1fr) auto}.odaiCC__dispatch{grid-template-columns:92px 1fr}.odaiCC__dispatch small{grid-column:2}.odaiCC__routeForm{grid-template-columns:1fr 1fr;margin-left:0}.odaiCC__raw{max-height:240px}}
538
+ @media(max-width:760px){.odaiCC__body{overflow:hidden}.odaiCC__live{gap:8px}.odaiCC__flow{max-height:30vh}.odaiCC__evidenceGrid{grid-template-rows:minmax(180px,1fr) minmax(120px,35vh);overflow:hidden}.odaiCC__timeline,.odaiCC__inspector{min-height:0;max-height:none}}
539
+ @media(prefers-color-scheme:dark){.odaiCC__launcher,.odaiCC{--odai-cc-bg:#14171b;--odai-cc-panel:#191d22;--odai-cc-surface:#1f242a;--odai-cc-surface-2:#282e35;--odai-cc-text:#f2f4f7;--odai-cc-text-2:#c5cbd3;--odai-cc-text-3:#929ba7;--odai-cc-border:#333a43;--odai-cc-border-strong:#46505c;--odai-cc-hover:#26354b;--odai-cc-accent:#77a7ff}.odaiCC__nodeEyebrow{color:#91b7ff}.odaiCC__state--proposal,.odaiCC__alert.is-success{color:#90d9cf}.odaiCC__state--same-turn{color:#cbb8ff}.odaiCC__state--child{color:#a6c3ff}.odaiCC__state--handback{color:#f4ca84}.odaiCC__state--blocked,.odaiCC__state--interrupted,.odaiCC__dangerButton,.odaiCC__alert.is-error{color:#f3a39e}}
540
+ @media(prefers-reduced-motion:no-preference){.odaiCC__drawer{animation:odaiCCIn .15s ease-out}}@keyframes odaiCCIn{from{opacity:.72;transform:translateX(8px)}to{opacity:1;transform:none}}
541
541
  `;
542
542
  document.head.appendChild(tag);
543
543
  }
@@ -1,3 +1,3 @@
1
- - insert:
2
- - id: odai-control-center
3
- name: odai-dsh-agent
1
+ - insert:
2
+ - id: odai-control-center
3
+ name: odai-dsh-agent
package/package.json CHANGED
@@ -1,90 +1,90 @@
1
- {
2
- "name": "odai-dsh-agent",
3
- "version": "0.2.25",
4
- "description": "完整继承 DSH 标准模式 全部能力的 Odai Agent preset。主要用于治理、规划、测试、验证 等,可当成默认总控使用。",
5
- "license": "MIT",
6
- "repository": {
7
- "type": "git",
8
- "url": "git+https://github.com/orziz/odai.git",
9
- "directory": "dsh/agent"
10
- },
11
- "homepage": "https://github.com/orziz/odai#readme",
12
- "bugs": {
13
- "url": "https://github.com/orziz/odai/issues"
14
- },
15
- "type": "module",
16
- "main": "./build/src/installer.mjs",
17
- "exports": {
18
- ".": "./build/src/installer.mjs",
19
- "./control-center": "./build/src/control-center-installer.mjs",
20
- "./control-center-host": "./preset/odai/runtime/control-center-host.mjs",
21
- "./client": "./client/client.js",
22
- "./package.json": "./package.json"
23
- },
24
- "bin": {
25
- "odai-dsh-agent": "./build/bin/odai-dsh-agent.mjs"
26
- },
27
- "publishConfig": {
28
- "registry": "https://registry.npmjs.org/",
29
- "access": "public"
30
- },
31
- "files": [
32
- "build/bin",
33
- "build/src",
34
- "client",
35
- "preset",
36
- "control-center.cordis.patch.yml",
37
- "README.md",
38
- "LICENSE"
39
- ],
40
- "dsh": {
41
- "bundle": {
42
- "patch": "./control-center.cordis.patch.yml"
43
- },
44
- "client": {
45
- "inject": [
46
- "@deepseek-ai/dsh-client-runtime",
47
- "@deepseek-ai/dsh-client-connection",
48
- "@deepseek-ai/dsh-client-ui-layout",
49
- "@deepseek-ai/dsh-client-ui-conversation"
50
- ],
51
- "platform": "web"
52
- }
53
- },
54
- "scripts": {
55
- "build:dsh": "npm --prefix ../.. run build:dsh",
56
- "typecheck:dsh": "npm --prefix ../.. run typecheck:dsh",
57
- "check": "npm run typecheck:dsh && npm run build:dsh && find ../runtime/build build/bin build/src -name '*.mjs' -print0 | xargs -0 -n1 node --check",
58
- "prepare:artifact": "npm run build:dsh && node ../../scripts/package-odai-artifact.mjs prepare --skill-root preset/odai/skills --runtime-root preset/odai/runtime --client-root client --client-package odai-dsh-agent",
59
- "clean:artifact": "node ../../scripts/package-odai-artifact.mjs clean --skill-root preset/odai/skills --runtime-root preset/odai/runtime --client-root client --client-package odai-dsh-agent",
60
- "prepare": "npm run prepare:artifact",
61
- "verify:version": "node ../../scripts/verify-dsh-package-versions.mjs",
62
- "prepack": "npm run verify:version && node ../../scripts/validate-odai-skill.mjs",
63
- "postpack": "npm run clean:artifact",
64
- "pack:dry-run": "node ../../scripts/run-package-pack.mjs --clean preset/odai/runtime --clean preset/odai/skills --clean client -- --dry-run",
65
- "test": "npm run verify:version && npm run build:dsh && npm --prefix ../.. exec -- tsx --test ./tests/*.test.mts",
66
- "verify:dsh": "npm run build:dsh && npm --prefix ../.. exec -- tsx ./tests/verify-agent-load.mts"
67
- },
68
- "dependencies": {
69
- "semver": "^7.8.0",
70
- "yaml": "^2.8.1"
71
- },
72
- "peerDependencies": {
73
- "@deepseek-ai/dsh": "0.1.2-rc.1"
74
- },
75
- "peerDependenciesMeta": {
76
- "@deepseek-ai/dsh": {
77
- "optional": true
78
- }
79
- },
80
- "engines": {
81
- "node": ">=22.15.0"
82
- },
83
- "keywords": [
84
- "agent",
85
- "deepseek-harness",
86
- "dsh",
87
- "odai",
88
- "preset"
89
- ]
90
- }
1
+ {
2
+ "name": "odai-dsh-agent",
3
+ "version": "0.2.27",
4
+ "description": "完整继承 DSH 标准模式 全部能力的 Odai Agent preset。主要用于治理、规划、测试、验证 等,可当成默认总控使用。",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/orziz/odai.git",
9
+ "directory": "dsh/agent"
10
+ },
11
+ "homepage": "https://github.com/orziz/odai#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/orziz/odai/issues"
14
+ },
15
+ "type": "module",
16
+ "main": "./build/src/installer.mjs",
17
+ "exports": {
18
+ ".": "./build/src/installer.mjs",
19
+ "./control-center": "./build/src/control-center-installer.mjs",
20
+ "./control-center-host": "./preset/odai/runtime/control-center-host.mjs",
21
+ "./client": "./client/client.js",
22
+ "./package.json": "./package.json"
23
+ },
24
+ "bin": {
25
+ "odai-dsh-agent": "./build/bin/odai-dsh-agent.mjs"
26
+ },
27
+ "publishConfig": {
28
+ "registry": "https://registry.npmjs.org/",
29
+ "access": "public"
30
+ },
31
+ "files": [
32
+ "build/bin",
33
+ "build/src",
34
+ "client",
35
+ "preset",
36
+ "control-center.cordis.patch.yml",
37
+ "README.md",
38
+ "LICENSE"
39
+ ],
40
+ "dsh": {
41
+ "bundle": {
42
+ "patch": "./control-center.cordis.patch.yml"
43
+ },
44
+ "client": {
45
+ "inject": [
46
+ "@deepseek-ai/dsh-client-runtime",
47
+ "@deepseek-ai/dsh-client-connection",
48
+ "@deepseek-ai/dsh-client-ui-layout",
49
+ "@deepseek-ai/dsh-client-ui-conversation"
50
+ ],
51
+ "platform": "web"
52
+ }
53
+ },
54
+ "scripts": {
55
+ "build:dsh": "npm --prefix ../.. run build:dsh",
56
+ "typecheck:dsh": "npm --prefix ../.. run typecheck:dsh",
57
+ "check": "npm run typecheck:dsh && npm run build:dsh && find ../runtime/build build/bin build/src -name '*.mjs' -print0 | xargs -0 -n1 node --check",
58
+ "prepare:artifact": "npm run build:dsh && node ../../scripts/package-odai-artifact.mjs prepare --skill-root preset/odai/skills --runtime-root preset/odai/runtime --client-root client --client-package odai-dsh-agent",
59
+ "clean:artifact": "node ../../scripts/package-odai-artifact.mjs clean --skill-root preset/odai/skills --runtime-root preset/odai/runtime --client-root client --client-package odai-dsh-agent",
60
+ "prepare": "npm run prepare:artifact",
61
+ "verify:version": "node ../../scripts/verify-dsh-package-versions.mjs",
62
+ "prepack": "npm run verify:version && node ../../scripts/validate-odai-skill.mjs",
63
+ "postpack": "npm run clean:artifact",
64
+ "pack:dry-run": "node ../../scripts/run-package-pack.mjs --clean preset/odai/runtime --clean preset/odai/skills --clean client -- --dry-run",
65
+ "test": "npm run verify:version && npm run build:dsh && npm --prefix ../.. exec -- tsx --test ./tests/*.test.mts",
66
+ "verify:dsh": "npm run build:dsh && npm --prefix ../.. exec -- tsx ./tests/verify-agent-load.mts"
67
+ },
68
+ "dependencies": {
69
+ "semver": "^7.8.0",
70
+ "yaml": "^2.8.1"
71
+ },
72
+ "peerDependencies": {
73
+ "@deepseek-ai/dsh": "0.1.2-rc.1"
74
+ },
75
+ "peerDependenciesMeta": {
76
+ "@deepseek-ai/dsh": {
77
+ "optional": true
78
+ }
79
+ },
80
+ "engines": {
81
+ "node": ">=22.15.0"
82
+ },
83
+ "keywords": [
84
+ "agent",
85
+ "deepseek-harness",
86
+ "dsh",
87
+ "odai",
88
+ "preset"
89
+ ]
90
+ }