agentglow 0.4.1 → 0.4.3
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 +6 -0
- package/dist/chunks/KitScene-DsZmpTf7.js +7095 -0
- package/dist/chunks/index-B6EboYGn.js +699 -0
- package/dist/chunks/index-CW8fTJn1.js +53 -0
- package/dist/chunks/index-CoeLwySn.js +593 -0
- package/dist/chunks/index-DATZHNA0.js +943 -0
- package/dist/chunks/index-DlvN9YSt.js +884 -0
- package/dist/chunks/index-avfwD6eP.js +770 -0
- package/dist/chunks/index-nw9i304P.js +436 -0
- package/dist/chunks/index-s99mYaJ9.js +941 -0
- package/dist/index.js +1 -1
- package/dist/style.css +1 -1
- package/dist/types/AgentScene.d.ts +8 -1
- package/dist/types/world.d.ts +55 -0
- package/package.json +1 -1
- package/dist/chunks/KitScene-qkWr95H9.js +0 -5933
- package/dist/chunks/ResourceWire-BWQJV3bx.js +0 -36
- package/dist/chunks/index-2zvNrAfW.js +0 -921
- package/dist/chunks/index-BP5CK-0G.js +0 -495
- package/dist/chunks/index-B__6Mr7M.js +0 -839
- package/dist/chunks/index-Bfpwwg62.js +0 -793
- package/dist/chunks/index-BkOdY6y8.js +0 -678
- package/dist/chunks/index-Bxr6tpps.js +0 -1015
- package/dist/chunks/index-DjDzoHSk.js +0 -52
- package/dist/chunks/index-vbo-4RNb.js +0 -990
package/dist/index.js
CHANGED
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.scene-root{position:fixed;top:0;right:0;bottom:0;left:0;background:#03050b;color:#e8edf5;font-family:Public Sans,system-ui,sans-serif;overflow:hidden}.scene-root canvas{display:block}.hud{position:absolute;z-index:10;background:#0a0e1a8c;border:1px solid rgba(148,163,255,.16);border-radius:14px;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff0a}.hud-topwrap{position:absolute;z-index:10;top:12px;left:12px;max-width:calc(100% - var(--hud-side, 320px) - 36px);display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;pointer-events:none}.hud-topwrap.is-rail{--hud-side: 40px}.hud-topwrap>*{pointer-events:auto}.hud-top{position:relative;padding:6px 8px 6px 12px;min-width:0}.hud-bar{display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap}.hud-bar .hud-run{margin-top:0}.hud-info{all:unset;cursor:pointer;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:italic 600 11px/1 Georgia,serif;color:#94a3b8;border:1px solid rgba(148,163,184,.35)}.hud-info:hover,.hud-info.on{color:#e2e8f0;border-color:#818cf8}.hud-theme{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#03050b8c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%2394a3b8'/%3E%3C/svg%3E") no-repeat right 9px center;color:#cbd5e1;border:1px solid rgba(148,163,255,.22);border-radius:999px;font:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:4px 24px 4px 10px;cursor:pointer;outline:none}.hud-theme:hover{border-color:#818cf8}.hud-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;letter-spacing:-.01em;white-space:nowrap}.hud-sub{margin:6px 0 2px;max-width:460px;font-size:12px;line-height:1.45;color:#94a3b8}.hud-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 10px #22c55e;animation:hud-ping 1.6s ease-out infinite}@keyframes hud-ping{0%{box-shadow:0 0 #22c55eb3}to{box-shadow:0 0 0 10px #22c55e00}}.hud-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:999px;background:#94a3b829;color:#cbd5e1}.hud-stats{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.hud-stat{font-size:11px;color:#94a3b8;padding:2px 8px;border-radius:999px;background:#03050b66;white-space:nowrap}.hud-stat b{color:#f1f5f9;font-weight:700;font-variant-numeric:tabular-nums}.hud-dec{--dc: 94, 234, 212;animation:hud-dec-pulse .7s ease-out}.hud-dec.is-deny{--dc: 251, 59, 92}@keyframes hud-dec-pulse{0%{background:rgba(var(--dc),.5);box-shadow:0 0 rgba(var(--dc),.7);color:#fff}35%{background:rgba(var(--dc),.28);box-shadow:0 0 0 5px rgba(var(--dc),0)}to{background:#03050b66;box-shadow:0 0 rgba(var(--dc),0)}}@media(prefers-reduced-motion:reduce){.hud-dec{animation:none}}.hud-dec-hv{display:inline-flex;align-items:center;gap:4px;color:#a7f3d0;background:#5eead41a}.hud-dec-hv.is-deny{color:#fecdd3;background:#fb3b5c24}.hud-spark{color:#5eead4;margin-left:2px}.hud-dec-hv.is-deny .hud-spark{color:#fb7185}.hud-halt{color:#fecdd3;background:#fb3b5c38;box-shadow:inset 0 0 0 1px #fb3b5c8c;animation:hud-halt 1.6s ease-in-out infinite}.hud-halt b{color:#fb3b5c;letter-spacing:.04em}@keyframes hud-halt{50%{background:#fb3b5c57}}@media(prefers-reduced-motion:reduce){.hud-halt{animation:none}}.scene-root :focus-visible{outline:2px solid #818cf8;outline-offset:2px}.hud-side{top:12px;right:12px;bottom:12px;width:320px;display:flex;flex-direction:column;padding:8px 10px 10px;font-size:13px;box-sizing:border-box;animation:hs-in .18s ease-out}.hud-side.is-rail{width:40px;padding:6px 0;align-items:center}@keyframes hs-in{0%{opacity:.4}}.hs-head{display:flex;align-items:center;gap:2px;padding-bottom:8px;margin:0 -2px 2px;border-bottom:1px solid rgba(148,163,255,.12)}.hs-head button{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;padding:5px 9px;border-radius:999px}.hs-head button:hover{color:#e2e8f0}.hs-head button.on{color:#f1f5f9;background:#818cf838}.hs-head em,.hs-icon em{font-style:normal;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;color:#c7d2fe;letter-spacing:0}.hs-head .hs-collapse{margin-left:auto;font-size:14px;padding:2px 8px;letter-spacing:0}.hs-rail{display:flex;flex-direction:column;align-items:center;gap:6px}.hs-rail button{all:unset;cursor:pointer;position:relative;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:#94a3b8}.hs-rail button:hover{color:#e2e8f0;background:#94a3ff1a}.hs-rail .hs-collapse{font-size:14px;margin-bottom:4px}.hs-icon em{position:absolute;top:-3px;right:-5px;min-width:14px;height:14px;padding:0 3px;box-sizing:border-box;border-radius:999px;display:grid;place-items:center;font-size:9px;background:#4f46e5;color:#eef2ff}.hs-icon em:empty{min-width:8px;width:8px;height:8px;padding:0;top:1px;right:1px;background:#22d3ee;box-shadow:0 0 8px #22d3ee}.hs-body{flex:1;min-height:0;display:flex;flex-direction:column}.hs-body[hidden]{display:none}.hs-empty{margin:14px 4px;font-size:12px;line-height:1.5;color:#64748b}.hs-events{list-style:none;margin:6px -4px 0;padding:0;overflow-y:auto;min-height:0;flex:1;font-size:11.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hs-events li>*{all:unset;box-sizing:border-box;width:100%;display:flex;gap:8px;align-items:baseline;padding:4px 6px;border-radius:7px;color:#cbd5e1;line-height:1.4}.hs-events li>button{cursor:pointer}.hs-events li>button:hover{background:#94a3ff1a;color:#f1f5f9}.hs-events i{flex:0 0 7px;height:7px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);transform:translateY(-1px)}.hs-events span{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.ap-head{display:flex;align-items:center;gap:8px;margin-top:6px}.ap-count{flex:none;color:#64748b;font-size:11px;font-variant-numeric:tabular-nums}.ap-link{all:unset;cursor:pointer;font-size:12px;color:#93c5fd}.ap-link:hover{color:#bfdbfe}.ap-searchrow{display:flex;align-items:center;gap:8px;margin-top:8px}.ap-search{flex:1;min-width:0;width:100%;box-sizing:border-box;background:#03050b99;border:1px solid rgba(148,163,255,.2);border-radius:8px;color:inherit;font:inherit;font-size:12px;padding:6px 9px;outline:none}.ap-search:focus{border-color:#818cf8}.ap-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.ap-chips button{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:11px;padding:3px 7px;border-radius:999px;border:1px solid rgba(148,163,255,.15);color:#cbd5e1}.ap-chips button.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 18%,transparent);color:#f8fafc}.ap-chips i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.ap-chips em{font-style:normal;color:var(--c);font-weight:700;font-variant-numeric:tabular-nums}.ap-row-filters{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.ap-seg{display:flex;border:1px solid rgba(148,163,255,.15);border-radius:8px;overflow:hidden}.ap-seg{flex:none}.ap-seg button{all:unset;cursor:pointer;font-size:11px;padding:3px 6px;color:#94a3b8;text-transform:capitalize}.ap-seg button.on{background:#818cf840;color:#f1f5f9}.ap-row-filters select{flex:1;min-width:64px;background:#03050b99;color:#cbd5e1;border:1px solid rgba(148,163,255,.15);border-radius:8px;font:inherit;font-size:11px;padding:3px 6px}.ap-list{list-style:none;margin:8px -4px 0;padding:0;overflow-y:auto;min-height:0;flex:1}.ap-list li button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:flex;align-items:center;gap:8px;padding:6px;border-radius:8px}.ap-list li button:hover{background:#94a3ff1a}.ap-list li button.is-done{opacity:.55}.ap-list i{flex:0 0 9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.ap-list i[data-status=thinking]{animation:ap-pulse .9s ease-in-out infinite}.ap-list i[data-status=waiting]{opacity:.5}.ap-list i[data-status=done]{background:transparent;border:1.5px solid var(--c);box-shadow:none}@keyframes ap-pulse{50%{transform:scale(1.5)}}.ap-name{flex:1;min-width:0;display:flex;flex-direction:column;font-size:12px;color:#e2e8f0}.ap-name small{color:#64748b;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-meta{text-align:right;font-size:11px;color:#94a3b8;font-variant-numeric:tabular-nums;display:flex;flex-direction:column}.ap-meta b{color:var(--c);font-weight:600;text-transform:lowercase}.hs-events li.is-skill>*{background:#f5b83d12}.hs-skill{flex:0 0 auto;font-size:9.5px;font-weight:600;line-height:1.5;text-transform:uppercase;letter-spacing:.06em;color:#fcd581;padding:0 6px;border-radius:999px;border:1px solid rgba(245,184,61,.55);background:#f5b83d1f}.ap-title{display:flex;align-items:center;gap:6px;min-width:0}.ap-skill{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;font-size:9.5px;font-weight:600;color:#fcd581;padding:0 6px;border-radius:999px;border:1px solid rgba(245,184,61,.55);background:#f5b83d1f}.ap-skill:before{content:"skill:";color:#b8893a;font-weight:500}.hs-skill:before{content:"";display:inline-block;width:6px;height:6px;margin:0 4px 0 -1px;border:1px solid currentColor;border-radius:50%;vertical-align:0;box-shadow:0 0 4px #f5b83d99}.hs-events li.is-dec>*{background:#5eead40d}.hs-events li.is-deny>*{background:#fb3b5c1f}.hs-dec{flex:0 0 auto;font-size:9.5px;font-weight:600;line-height:1.5;text-transform:uppercase;letter-spacing:.06em;color:var(--c);padding:0 6px;border-radius:3px;border:1px solid var(--c);background:#ffffff0a}.ap-decisions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.ap-decisions li{display:flex;gap:6px;align-items:baseline;font-size:11px;color:#e2e8f0;padding:2px 6px;border-left:2px solid var(--c);background:#ffffff08}.ap-decisions li.is-deny{background:#fb3b5c1f}.ap-decisions li.is-strike span{text-decoration:line-through;color:#94a3b8}.ap-hv{font-size:11.5px;color:#e2e8f0;margin:0 0 4px;font-variant-numeric:tabular-nums}.ap-hv-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;gap:1px;background:#ffffff0d}.ap-hv-bar span{flex-basis:0;min-width:2px}.ap-decisions b{flex:0 0 auto;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--c)}.ap-decisions span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ap-decisions em{flex:0 0 auto;font-style:normal;font-size:10px;color:#94a3b8;font-variant-numeric:tabular-nums}.ap-skills{display:flex;flex-wrap:wrap;gap:4px}.ap-skills span{font-size:11px;color:#e2e8f0;padding:2px 8px;border-radius:999px;border:1px solid rgba(245,184,61,.35);background:#f5b83d0f;display:inline-flex;gap:5px;align-items:baseline}.ap-skills span.on{border-color:#f5b83d;background:#f5b83d2e;color:#fde7b0;box-shadow:0 0 10px #f5b83d40}.ap-skills em{font-style:normal;font-size:10px;color:#b8893a;font-variant-numeric:tabular-nums}.ap-more{padding:6px;color:#64748b;font-size:11px}.ap-detail{overflow-y:auto;min-height:0;margin-top:8px;flex:1}.ap-detail h3{margin:0;display:flex;align-items:center;gap:8px;font-size:15px;color:var(--c)}.ap-detail h3 i{width:11px;height:11px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}.ap-detail h3 small{color:#64748b;font-size:11px;font-weight:500}.ap-status{margin-top:3px;font-size:12px;color:#cbd5e1}.ap-status[data-status=thinking]{color:#fde68a}.ap-status[data-status=waiting]{color:#fcd34d}.ap-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(46px,1fr));gap:4px;margin:10px 0 4px}.ap-stats div{background:#03050b73;border-radius:8px;padding:6px;text-align:center}.ap-stats dt{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.ap-stats dd{margin:2px 0 0;font-size:15px;font-weight:700;color:#f1f5f9;font-variant-numeric:tabular-nums}.ap-detail section{margin-top:10px}.ap-detail h4{margin:0 0 4px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.ap-detail p{margin:0;font-size:12px;color:#cbd5e1}.ap-steps{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.ap-steps span{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:999px;border:1px solid #334155;color:#64748b}.ap-steps span[data-status=running]{border-color:#fbbf24;color:#fde68a}.ap-steps span[data-status=waiting]{border-color:#f59e0b;color:#fcd34d;background:#f59e0b24;animation:ap-wait-pulse 1.8s ease-in-out infinite}.ap-steps span[data-status=done]{border-color:#22c55e;color:#86efac}.ap-steps span[data-status=failed]{border-color:#ef4444;color:#fca5a5}.ap-chip-link{all:unset;cursor:pointer;display:block;font-size:12px;color:#e2e8f0;padding:3px 6px;border-left:2px solid var(--c);margin:2px 0;border-radius:0 6px 6px 0}.ap-chip-link:hover{background:#94a3ff1a}.ap-wait{color:#fbbf24!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ap-idle{color:#94a3b8!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ap-runhead{display:flex;align-items:center;justify-content:space-between}.ap-dismiss{border:0;background:transparent;color:#94a3b8;font-size:15px;line-height:1;padding:0 4px;cursor:pointer;border-radius:4px}.ap-dismiss:hover,.ap-dismiss:focus-visible{color:#f1f5f9;background:#94a3b82e}.hud-hidden{border:0;cursor:pointer}.hud-hidden:hover{color:#f1f5f9}.ap-nodes{line-height:1.5}.ap-chat{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:12px;color:#e2e8f0;white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow-y:auto}.ap-chat li[data-role=user]{color:#c7d2fe}.ap-chat li[data-role=agent]{padding-bottom:6px;border-bottom:1px solid rgba(148,163,255,.12)}.ap-chat b{font-weight:650}.ap-events{margin:0;padding-left:14px;display:grid;gap:3px;font-size:11px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hud-badge--live{background:#22c55e2e;color:#86efac}.hud-badge--denied{background:#f871712e;color:#fca5a5;text-transform:none;letter-spacing:.02em}.hud-chip{text-transform:none;letter-spacing:.02em;font-weight:500;background:#818cf829;color:#c7d2fe;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.hud-chip b{font-weight:650;color:#e0e7ff}.hud-run{display:flex;gap:6px;margin-top:8px;align-items:center;flex-wrap:wrap}.hud-run input{flex:1;min-width:160px;background:#03050b99;border:1px solid rgba(148,163,255,.2);border-radius:999px;color:inherit;font:inherit;font-size:12px;padding:6px 11px;outline:none}.hud-run button{border:0;border-radius:999px;padding:6px 13px;font:inherit;font-size:12px;font-weight:600;background:linear-gradient(135deg,#818cf8,#22d3ee);color:#03050b;cursor:pointer}.hud-run button:disabled{opacity:.5}.hud-run select{max-width:160px;min-width:0;background:#03050b99;color:#cbd5e1;border:1px solid rgba(148,163,255,.2);border-radius:999px;font:inherit;font-size:12px;padding:5px 9px;cursor:pointer}.hud-run span{font-size:11px;color:#86efac}.agentglow-embed{position:relative;overflow:hidden;width:100%;height:100%;min-height:320px;isolation:isolate}.agentglow-embed .scene-root{position:absolute;top:0;right:0;bottom:0;left:0}.lod-cluster-label{all:unset;box-sizing:border-box;display:grid;gap:1px;text-align:center;cursor:pointer;pointer-events:auto;font-size:12px;font-weight:600;color:#f8fafc;padding:4px 11px 5px;border-radius:12px;white-space:nowrap;background:#03050b9e;border:1px solid color-mix(in srgb,var(--c, #818cf8) 60%,transparent);text-shadow:0 0 10px var(--c, #818cf8);box-shadow:0 0 18px color-mix(in srgb,var(--c, #818cf8) 22%,transparent);transition:border-color .2s,background .2s}.lod-cluster-label:hover{background:color-mix(in srgb,var(--c, #818cf8) 22%,rgba(3,5,11,.7));border-color:var(--c, #818cf8)}.lod-cluster-label b{font-weight:700;letter-spacing:-.01em}.lod-cluster-label small{font-size:10px;font-weight:500;color:#94a3b8;text-shadow:none;font-variant-numeric:tabular-nums}.hud-dock{display:flex;align-items:center;gap:8px}.hud-dock:empty{display:none}.hud-dock>.hud{position:static}.hud-lod{padding:6px 8px 6px 12px;display:flex;align-items:center;gap:8px;font-size:12px;color:#cbd5e1;white-space:nowrap}.hud-lod span b{margin:0 1px}.hud-lod b{color:#f1f5f9;font-variant-numeric:tabular-nums}.hud-lod i{width:7px;height:7px;border-radius:50%;background:#a5b4fc;box-shadow:0 0 8px #a5b4fc}.hud-lod button{all:unset;cursor:pointer;font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid rgba(148,163,255,.25);color:#c7d2fe}.hud-lod button:hover{background:#818cf833;color:#f8fafc}.scene-root{container:agscene / size}@container agscene (max-width: 719px){.scene-root .hud-top{padding:5px 7px 5px 10px}.scene-root .hud-title{font-size:13px}.scene-root .hud-theme{padding:3px 20px 3px 8px;font-size:10px;background-position:right 7px center}.scene-root .hud-stat:nth-child(n+3){display:none}.scene-root .hud-side:not(.is-rail){width:min(290px,calc(100% - 64px));padding:6px 8px 8px}.scene-root .hs-head button{padding:4px 6px;letter-spacing:.04em;font-size:10.5px}.scene-root .hs-head .hs-collapse{padding:2px 4px}.scene-root .ap-list li button{padding:4px 6px}.scene-root .hud-topwrap:not(.is-rail){--hud-side: min(290px, calc(100% - 64px) )}}@container agscene (max-height: 520px){.scene-root .hud-sub{max-height:4.5em;overflow:auto}}@keyframes ap-wait-pulse{50%{box-shadow:0 0 10px #f59e0b8c;border-color:#fbbf24}}@media(prefers-reduced-motion:reduce){.ap-steps span[data-status=waiting]{animation:none}}.hud-approve{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}.hud-approve button{border:1px solid transparent;border-radius:999px;padding:5px 13px;font:inherit;font-size:12px;font-weight:650;cursor:pointer}.hud-approve .ha-yes{background:linear-gradient(135deg,#34d399,#22d3ee);color:#03050b}.hud-approve .ha-no{background:#fb3b5c24;border-color:#fb718599;color:#fecdd3}.hud-approve .ha-yes:hover{filter:brightness(1.1)}.hud-approve .ha-no:hover{background:#fb3b5c47}.hud-approve span{font-size:11px;color:#94a3b8}.hud-approve[data-verdict=approved] span,.hud-approve[data-verdict=approving] span{color:#86efac}.hud-approve[data-verdict=rejected] span,.hud-approve[data-verdict=rejecting] span,.hud-approve[data-verdict=error] span{color:#fda4af}.hud-approve.is-compact{margin-top:0;flex:none;gap:4px}.hud-approve.is-compact button{padding:3px 9px;font-size:11px}.hud-approvals{left:12px;bottom:12px;z-index:9;width:max-content;max-width:min(460px,calc(100% - 356px));padding:8px 10px;font-size:12px;box-sizing:border-box;border-color:#f59e0b73;box-shadow:0 8px 32px #00000059,0 0 18px #f59e0b1f}.hud-approvals.is-rail{max-width:min(460px,calc(100% - 76px))}.hud-approvals h4{margin:0 0 6px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#fcd34d;display:flex;gap:6px;align-items:baseline}.hud-approvals h4 em{font-style:normal;font-variant-numeric:tabular-nums;color:#fde68a}.hud-approvals ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.hud-approvals .ha-late{font-style:normal}.hud-approvals .ha-late.is-due{color:#86efac}.hud-approvals .ha-late.is-overdue{color:#f59e0b;font-weight:600}.hud-approvals li{display:flex;align-items:center;gap:8px;min-width:0}.hud-approvals .ha-who{all:unset;cursor:pointer;flex:1;min-width:0;display:flex;align-items:baseline;gap:6px;padding:2px 4px;border-radius:6px}.hud-approvals .ha-who:hover{background:#94a3ff1a}.hud-approvals .ha-who i{flex:0 0 8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);align-self:center}.hud-approvals .ha-who b{color:#e2e8f0;font-weight:650;white-space:nowrap}.hud-approvals .ha-who span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fbbf24;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.hud-approvals p{margin:6px 0 0;font-size:11px;color:#64748b}.hud-approvals .ha-details,.ap-approve-row .ha-details{all:unset;cursor:pointer;flex:none;font-size:11px;color:#cbd5e1;padding:3px 8px;border-radius:999px;border:1px solid rgba(148,163,255,.28)}.hud-approvals .ha-details:hover,.ap-approve-row .ha-details:hover,.hud-approvals .ha-details:focus-visible{border-color:#818cf8;color:#f1f5f9}.ap-approve-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ap-approve-row .ha-details{margin-top:8px}.hud-drawer{top:64px;max-height:calc(100% - 76px);right:calc(var(--hud-side, 320px) + 24px);width:360px;max-width:calc(100% - var(--hud-side, 320px) - 48px);z-index:11;display:flex;flex-direction:column;gap:10px;padding:14px 14px 12px;box-sizing:border-box;overflow-y:auto;font-size:12px;outline:none;background:#0a0e1ac7;border-color:#f59e0b73;box-shadow:0 12px 40px #00000073,0 0 22px #f59e0b1a;animation:hd-in .18s ease-out}.hud-drawer.is-rail{--hud-side: 40px}@keyframes hd-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.hud-drawer{animation:none}}.hud-drawer .hd-head{display:flex;align-items:flex-start;gap:8px}.hud-drawer .hd-head>div{flex:1;min-width:0}.hud-drawer .hd-kicker{margin:0 0 2px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#fcd34d}.hud-drawer h3{margin:0;font-size:15px;font-weight:700;line-height:1.3;color:#f1f5f9;overflow-wrap:anywhere}.hud-drawer .hd-close{all:unset;cursor:pointer;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-size:17px;color:#94a3b8}.hud-drawer .hd-close:hover,.hud-drawer .hd-close:focus-visible{color:#f1f5f9;background:#94a3ff24}.hud-drawer .hd-who{all:unset;cursor:pointer;display:flex;align-items:baseline;gap:6px;min-width:0;padding:2px 4px;margin:-2px -4px;border-radius:6px}.hud-drawer .hd-who:hover{background:#94a3ff1a}.hud-drawer .hd-who i{flex:0 0 8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);align-self:center}.hud-drawer .hd-who b{color:#e2e8f0;white-space:nowrap}.hud-drawer .hd-who span{color:#94a3b8;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-drawer .hd-deadline{align-self:flex-start;font-size:11px;font-variant-numeric:tabular-nums;color:#fde68a;padding:2px 9px;border-radius:999px;background:#f59e0b1f;border:1px solid rgba(245,158,11,.3)}.hud-drawer .hd-deadline.is-due{color:#86efac;background:#22c55e1f;border-color:#22c55e59}.hud-drawer .hd-deadline.is-overdue{color:#fbbf24;font-weight:650}.hud-drawer section h4{margin:0 0 5px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.hud-drawer .hd-why{border-left:2px solid #5eead4;padding:2px 0 2px 8px}.hud-drawer .hd-why.is-deny{border-left-color:#fb7185}.hud-drawer .hd-why p{margin:0 0 4px;color:#e2e8f0;line-height:1.4}.hud-drawer .hd-why p b{font-size:9px;letter-spacing:.06em;color:#94a3b8;margin-right:2px}.hud-drawer .hd-why p em{font-style:normal;font-weight:700;color:#5eead4}.hud-drawer .hd-why.is-deny p em{color:#fda4af}.hud-drawer .hd-reason{margin:0;color:#fbbf24;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.hud-drawer .hd-dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:0;font-size:11px}.hud-drawer .hd-dl div{display:contents}.hud-drawer .hd-dl dt{color:#64748b}.hud-drawer .hd-dl dd{margin:0;color:#e2e8f0;font-variant-numeric:tabular-nums;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-drawer .hd-details dd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hud-drawer .ap-decisions{margin:0}.hud-drawer .hd-foot{display:grid;gap:8px;padding-top:4px;border-top:1px solid rgba(148,163,255,.12)}.hud-drawer .hd-note{width:100%;box-sizing:border-box;resize:vertical;min-height:38px;margin-top:8px;padding:6px 8px;font:inherit;font-size:12px;color:#e2e8f0;background:#03050b8c;border:1px solid rgba(148,163,255,.22);border-radius:8px;outline:none}.hud-drawer .hd-note:focus{border-color:#818cf8}.hud-drawer .hud-approve{margin-top:0}.hud-drawer .hd-keys{margin:0;font-size:10px;color:#64748b}.hud-drawer .hd-links{display:flex;flex-wrap:wrap;gap:6px}.hud-drawer .hd-links a,.hud-drawer .hd-links button{all:unset;cursor:pointer;font-size:11px;color:#c7d2fe;padding:3px 9px;border-radius:999px;border:1px solid rgba(148,163,255,.28)}.hud-drawer .hd-links a:hover,.hud-drawer .hd-links button:hover,.hud-drawer .hd-links a:focus-visible,.hud-drawer .hd-links button:focus-visible{border-color:#818cf8;color:#f1f5f9}.hud-halotip{position:fixed;z-index:30;pointer-events:none;padding:5px 8px;border-radius:8px;font-size:11px;line-height:1.45;color:#cbd5e1;background:#0a0e1ae0;border:1px solid rgba(148,163,255,.22);font-variant-numeric:tabular-nums;white-space:nowrap}.hud-halotip b{color:#f1f5f9}@container agscene (max-width: 719px){.scene-root .hud-approvals{max-width:calc(100% - 76px);padding:6px 8px}.scene-root .hud-approvals .ha-who span{display:none}.scene-root .hud-drawer{left:8px;right:8px;top:auto;bottom:8px;width:auto;max-width:none;max-height:72%}}.hud-rejected{color:#fde68a}.hud-rejected b{color:#fbbf24}.ap-prim-dim{font-size:11px;color:#94a3b8;margin:3px 0 0;font-variant-numeric:tabular-nums}.ap-prim-bar{height:6px;border-radius:3px;overflow:hidden;background:#ffffff0f;margin-top:6px}.ap-prim-bar span{display:block;height:100%;background:#5eead4;box-shadow:0 0 8px #5eead480}.ap-skills span.ap-prim-stage{border-color:color-mix(in srgb,var(--c) 45%,transparent);background:color-mix(in srgb,var(--c) 8%,transparent)}.ap-skills span.ap-prim-stage.on{border-color:var(--c);color:#e6fffb;box-shadow:0 0 10px color-mix(in srgb,var(--c) 30%,transparent)}.ap-skills span.ap-prim-stage em{color:#94a3b8}.ap-prim-dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0;font-size:11px}.ap-prim-dl div{display:contents}.ap-prim-dl dt{color:#64748b}.ap-prim-dl dd{margin:0;color:#e2e8f0;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-run{display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}.flow-run .scene-label{font-size:11px;max-width:220px;overflow:hidden;text-overflow:ellipsis}.flow-steps{display:flex;gap:3px;font:600 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.06em}.flow-steps span{padding:2px 5px;border-radius:999px;color:#64748b;background:#03050b8c;border:1px solid rgba(100,116,139,.35)}.flow-steps span[data-s=running]{color:#03050b;background:var(--c);border-color:var(--c);box-shadow:0 0 12px var(--c)}.flow-steps span[data-s=done]{color:var(--c);border-color:color-mix(in srgb,var(--c) 60%,transparent)}.flow-steps span[data-s=failed]{color:#fecaca;background:#7f1d1d}.flow-step{font:600 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb,var(--c) 70%,white);text-shadow:0 0 8px var(--c);opacity:.55;pointer-events:none;white-space:nowrap;transition:opacity .3s}.flow-step[data-s=running]{opacity:1}.flow-hint{font-size:10px;padding:1px 7px;opacity:.9}.flow-label-core{font-size:11px;letter-spacing:.04em}
|
|
1
|
+
.scene-root{position:fixed;top:0;right:0;bottom:0;left:0;background:#03050b;color:#e8edf5;font-family:Public Sans,system-ui,sans-serif;overflow:hidden}.scene-root canvas{display:block}.hud{position:absolute;z-index:10;background:#0a0e1a8c;border:1px solid rgba(148,163,255,.16);border-radius:14px;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff0a}.hud-topwrap{position:absolute;z-index:10;top:12px;left:12px;max-width:calc(100% - var(--hud-side, 320px) - 36px);display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;pointer-events:none}.hud-topwrap.is-rail{--hud-side: 40px}.hud-topwrap>*{pointer-events:auto}.hud-top{position:relative;padding:6px 8px 6px 12px;min-width:0}.hud-bar{display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap}.hud-bar .hud-run{margin-top:0}.hud-info{all:unset;cursor:pointer;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:italic 600 11px/1 Georgia,serif;color:#94a3b8;border:1px solid rgba(148,163,184,.35)}.hud-info:hover,.hud-info.on{color:#e2e8f0;border-color:#818cf8}.hud-clear{all:unset;cursor:pointer;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:999px;color:#94a3b8;border:1px solid rgba(148,163,184,.35)}.hud-clear:hover,.hud-clear:focus-visible{color:#e2e8f0;border-color:#818cf8}.hud-cleared{background:#818cf833;color:#c7d2fe}.hud-theme{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#03050b8c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%2394a3b8'/%3E%3C/svg%3E") no-repeat right 9px center;color:#cbd5e1;border:1px solid rgba(148,163,255,.22);border-radius:999px;font:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:4px 24px 4px 10px;cursor:pointer;outline:none}.hud-theme:hover{border-color:#818cf8}.hud-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;letter-spacing:-.01em;white-space:nowrap}.hud-sub{margin:6px 0 2px;max-width:460px;font-size:12px;line-height:1.45;color:#94a3b8}.hud-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 10px #22c55e;animation:hud-ping 1.6s ease-out infinite}@keyframes hud-ping{0%{box-shadow:0 0 #22c55eb3}to{box-shadow:0 0 0 10px #22c55e00}}.hud-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:999px;background:#94a3b829;color:#cbd5e1}.hud-stats{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.hud-stat{font-size:11px;color:#94a3b8;padding:2px 8px;border-radius:999px;background:#03050b66;white-space:nowrap}.hud-stat b{color:#f1f5f9;font-weight:700;font-variant-numeric:tabular-nums}.hud-dec{--dc: 94, 234, 212;animation:hud-dec-pulse .7s ease-out}.hud-dec.is-deny{--dc: 251, 59, 92}@keyframes hud-dec-pulse{0%{background:rgba(var(--dc),.5);box-shadow:0 0 rgba(var(--dc),.7);color:#fff}35%{background:rgba(var(--dc),.28);box-shadow:0 0 0 5px rgba(var(--dc),0)}to{background:#03050b66;box-shadow:0 0 rgba(var(--dc),0)}}@media(prefers-reduced-motion:reduce){.hud-dec{animation:none}}.hud-dec-hv{display:inline-flex;align-items:center;gap:4px;color:#a7f3d0;background:#5eead41a}.hud-dec-hv.is-deny{color:#fecdd3;background:#fb3b5c24}.hud-spark{color:#5eead4;margin-left:2px}.hud-dec-hv.is-deny .hud-spark{color:#fb7185}.hud-halt{color:#fecdd3;background:#fb3b5c38;box-shadow:inset 0 0 0 1px #fb3b5c8c;animation:hud-halt 1.6s ease-in-out infinite}.hud-halt b{color:#fb3b5c;letter-spacing:.04em}@keyframes hud-halt{50%{background:#fb3b5c57}}@media(prefers-reduced-motion:reduce){.hud-halt{animation:none}}.scene-root :focus-visible{outline:2px solid #818cf8;outline-offset:2px}.hud-side{top:12px;right:12px;bottom:12px;width:320px;display:flex;flex-direction:column;padding:8px 10px 10px;font-size:13px;box-sizing:border-box;animation:hs-in .18s ease-out}.hud-side.is-rail{width:40px;padding:6px 0;align-items:center}@keyframes hs-in{0%{opacity:.4}}.hs-head{display:flex;align-items:center;gap:2px;padding-bottom:8px;margin:0 -2px 2px;border-bottom:1px solid rgba(148,163,255,.12)}.hs-head button{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;padding:5px 9px;border-radius:999px}.hs-head button:hover{color:#e2e8f0}.hs-head button.on{color:#f1f5f9;background:#818cf838}.hs-head em,.hs-icon em{font-style:normal;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;color:#c7d2fe;letter-spacing:0}.hs-head .hs-collapse{margin-left:auto;font-size:14px;padding:2px 8px;letter-spacing:0}.hs-rail{display:flex;flex-direction:column;align-items:center;gap:6px}.hs-rail button{all:unset;cursor:pointer;position:relative;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:#94a3b8}.hs-rail button:hover{color:#e2e8f0;background:#94a3ff1a}.hs-rail .hs-collapse{font-size:14px;margin-bottom:4px}.hs-icon em{position:absolute;top:-3px;right:-5px;min-width:14px;height:14px;padding:0 3px;box-sizing:border-box;border-radius:999px;display:grid;place-items:center;font-size:9px;background:#4f46e5;color:#eef2ff}.hs-icon em:empty{min-width:8px;width:8px;height:8px;padding:0;top:1px;right:1px;background:#22d3ee;box-shadow:0 0 8px #22d3ee}.hs-body{flex:1;min-height:0;display:flex;flex-direction:column}.hs-body[hidden]{display:none}.hs-empty{margin:14px 4px;font-size:12px;line-height:1.5;color:#64748b}.hs-events{list-style:none;margin:6px -4px 0;padding:0;overflow-y:auto;min-height:0;flex:1;font-size:11.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hs-events li>*{all:unset;box-sizing:border-box;width:100%;display:flex;gap:8px;align-items:baseline;padding:4px 6px;border-radius:7px;color:#cbd5e1;line-height:1.4}.hs-events li>button{cursor:pointer}.hs-events li>button:hover{background:#94a3ff1a;color:#f1f5f9}.hs-events i{flex:0 0 7px;height:7px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);transform:translateY(-1px)}.hs-events span{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.ap-head{display:flex;align-items:center;gap:8px;margin-top:6px}.ap-count{flex:none;color:#64748b;font-size:11px;font-variant-numeric:tabular-nums}.ap-link{all:unset;cursor:pointer;font-size:12px;color:#93c5fd}.ap-link:hover{color:#bfdbfe}.ap-searchrow{display:flex;align-items:center;gap:8px;margin-top:8px}.ap-search{flex:1;min-width:0;width:100%;box-sizing:border-box;background:#03050b99;border:1px solid rgba(148,163,255,.2);border-radius:8px;color:inherit;font:inherit;font-size:12px;padding:6px 9px;outline:none}.ap-search:focus{border-color:#818cf8}.ap-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.ap-chips button{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:11px;padding:3px 7px;border-radius:999px;border:1px solid rgba(148,163,255,.15);color:#cbd5e1}.ap-chips button.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 18%,transparent);color:#f8fafc}.ap-chips i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.ap-chips em{font-style:normal;color:var(--c);font-weight:700;font-variant-numeric:tabular-nums}.ap-row-filters{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.ap-seg{display:flex;border:1px solid rgba(148,163,255,.15);border-radius:8px;overflow:hidden}.ap-seg{flex:none}.ap-seg button{all:unset;cursor:pointer;font-size:11px;padding:3px 6px;color:#94a3b8;text-transform:capitalize}.ap-seg button.on{background:#818cf840;color:#f1f5f9}.ap-row-filters select{flex:1;min-width:64px;background:#03050b99;color:#cbd5e1;border:1px solid rgba(148,163,255,.15);border-radius:8px;font:inherit;font-size:11px;padding:3px 6px}.ap-list{list-style:none;margin:8px -4px 0;padding:0;overflow-y:auto;min-height:0;flex:1}.ap-list li button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:flex;align-items:center;gap:8px;padding:6px;border-radius:8px}.ap-list li button:hover{background:#94a3ff1a}.ap-list li button.is-done{opacity:.55}.ap-list i{flex:0 0 9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.ap-list i[data-status=thinking]{animation:ap-pulse .9s ease-in-out infinite}.ap-list i[data-status=waiting]{opacity:.5}.ap-list i[data-status=done]{background:transparent;border:1.5px solid var(--c);box-shadow:none}@keyframes ap-pulse{50%{transform:scale(1.5)}}.ap-name{flex:1;min-width:0;display:flex;flex-direction:column;font-size:12px;color:#e2e8f0}.ap-name small{color:#64748b;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-meta{text-align:right;font-size:11px;color:#94a3b8;font-variant-numeric:tabular-nums;display:flex;flex-direction:column}.ap-meta b{color:var(--c);font-weight:600;text-transform:lowercase}.hs-events li.is-skill>*{background:#f5b83d12}.hs-skill{flex:0 0 auto;font-size:9.5px;font-weight:600;line-height:1.5;text-transform:uppercase;letter-spacing:.06em;color:#fcd581;padding:0 6px;border-radius:999px;border:1px solid rgba(245,184,61,.55);background:#f5b83d1f}.ap-title{display:flex;align-items:center;gap:6px;min-width:0}.ap-skill{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;font-size:9.5px;font-weight:600;color:#fcd581;padding:0 6px;border-radius:999px;border:1px solid rgba(245,184,61,.55);background:#f5b83d1f}.ap-skill:before{content:"skill:";color:#b8893a;font-weight:500}.hs-skill:before{content:"";display:inline-block;width:6px;height:6px;margin:0 4px 0 -1px;border:1px solid currentColor;border-radius:50%;vertical-align:0;box-shadow:0 0 4px #f5b83d99}.hs-events li.is-dec>*{background:#5eead40d}.hs-events li.is-deny>*{background:#fb3b5c1f}.hs-dec{flex:0 0 auto;font-size:9.5px;font-weight:600;line-height:1.5;text-transform:uppercase;letter-spacing:.06em;color:var(--c);padding:0 6px;border-radius:3px;border:1px solid var(--c);background:#ffffff0a}.ap-decisions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.ap-decisions li{display:flex;gap:6px;align-items:baseline;font-size:11px;color:#e2e8f0;padding:2px 6px;border-left:2px solid var(--c);background:#ffffff08}.ap-decisions li.is-deny{background:#fb3b5c1f}.ap-decisions li.is-strike span{text-decoration:line-through;color:#94a3b8}.ap-hv{font-size:11.5px;color:#e2e8f0;margin:0 0 4px;font-variant-numeric:tabular-nums}.ap-hv-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;gap:1px;background:#ffffff0d}.ap-hv-bar span{flex-basis:0;min-width:2px}.ap-decisions b{flex:0 0 auto;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--c)}.ap-decisions span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ap-decisions em{flex:0 0 auto;font-style:normal;font-size:10px;color:#94a3b8;font-variant-numeric:tabular-nums}.ap-skills{display:flex;flex-wrap:wrap;gap:4px}.ap-skills span{font-size:11px;color:#e2e8f0;padding:2px 8px;border-radius:999px;border:1px solid rgba(245,184,61,.35);background:#f5b83d0f;display:inline-flex;gap:5px;align-items:baseline}.ap-skills span.on{border-color:#f5b83d;background:#f5b83d2e;color:#fde7b0;box-shadow:0 0 10px #f5b83d40}.ap-skills em{font-style:normal;font-size:10px;color:#b8893a;font-variant-numeric:tabular-nums}.ap-more{padding:6px;color:#64748b;font-size:11px}.ap-detail{overflow-y:auto;min-height:0;margin-top:8px;flex:1}.ap-detail h3{margin:0;display:flex;align-items:center;gap:8px;font-size:15px;color:var(--c)}.ap-detail h3 i{width:11px;height:11px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}.ap-detail h3 small{color:#64748b;font-size:11px;font-weight:500}.ap-status{margin-top:3px;font-size:12px;color:#cbd5e1}.ap-status[data-status=thinking]{color:#fde68a}.ap-status[data-status=waiting]{color:#fcd34d}.ap-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(46px,1fr));gap:4px;margin:10px 0 4px}.ap-stats div{background:#03050b73;border-radius:8px;padding:6px;text-align:center}.ap-stats dt{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.ap-stats dd{margin:2px 0 0;font-size:15px;font-weight:700;color:#f1f5f9;font-variant-numeric:tabular-nums}.ap-detail section{margin-top:10px}.ap-detail h4{margin:0 0 4px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.ap-detail p{margin:0;font-size:12px;color:#cbd5e1}.ap-steps{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.ap-steps span{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:999px;border:1px solid #334155;color:#64748b}.ap-steps span[data-status=running]{border-color:#fbbf24;color:#fde68a}.ap-steps span[data-status=waiting]{border-color:#f59e0b;color:#fcd34d;background:#f59e0b24;animation:ap-wait-pulse 1.8s ease-in-out infinite}.ap-steps span[data-status=done]{border-color:#22c55e;color:#86efac}.ap-steps span[data-status=failed]{border-color:#ef4444;color:#fca5a5}.ap-chip-link{all:unset;cursor:pointer;display:block;font-size:12px;color:#e2e8f0;padding:3px 6px;border-left:2px solid var(--c);margin:2px 0;border-radius:0 6px 6px 0}.ap-chip-link:hover{background:#94a3ff1a}.ap-wait{color:#fbbf24!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ap-idle{color:#94a3b8!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ap-runhead{display:flex;align-items:center;justify-content:space-between}.ap-dismiss{border:0;background:transparent;color:#94a3b8;font-size:15px;line-height:1;padding:0 4px;cursor:pointer;border-radius:4px}.ap-dismiss:hover,.ap-dismiss:focus-visible{color:#f1f5f9;background:#94a3b82e}.hud-hidden{border:0;cursor:pointer}.hud-hidden:hover{color:#f1f5f9}.ap-nodes{line-height:1.5}.ap-chat{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:12px;color:#e2e8f0;white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow-y:auto}.ap-chat li[data-role=user]{color:#c7d2fe}.ap-chat li[data-role=agent]{padding-bottom:6px;border-bottom:1px solid rgba(148,163,255,.12)}.ap-chat b{font-weight:650}.ap-events{margin:0;padding-left:14px;display:grid;gap:3px;font-size:11px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hud-badge--live{background:#22c55e2e;color:#86efac}.hud-badge--denied{background:#f871712e;color:#fca5a5;text-transform:none;letter-spacing:.02em}.hud-chip{text-transform:none;letter-spacing:.02em;font-weight:500;background:#818cf829;color:#c7d2fe;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.hud-chip b{font-weight:650;color:#e0e7ff}.hud-run{display:flex;gap:6px;margin-top:8px;align-items:center;flex-wrap:wrap}.hud-run input{flex:1;min-width:160px;background:#03050b99;border:1px solid rgba(148,163,255,.2);border-radius:999px;color:inherit;font:inherit;font-size:12px;padding:6px 11px;outline:none}.hud-run button{border:0;border-radius:999px;padding:6px 13px;font:inherit;font-size:12px;font-weight:600;background:linear-gradient(135deg,#818cf8,#22d3ee);color:#03050b;cursor:pointer}.hud-run button:disabled{opacity:.5}.hud-run select{max-width:160px;min-width:0;background:#03050b99;color:#cbd5e1;border:1px solid rgba(148,163,255,.2);border-radius:999px;font:inherit;font-size:12px;padding:5px 9px;cursor:pointer}.hud-run span{font-size:11px;color:#86efac}.agentglow-embed{position:relative;overflow:hidden;width:100%;height:100%;min-height:320px;isolation:isolate}.agentglow-embed .scene-root{position:absolute;top:0;right:0;bottom:0;left:0}.lod-cluster-label{all:unset;box-sizing:border-box;display:grid;gap:1px;text-align:center;cursor:pointer;pointer-events:auto;font-size:12px;font-weight:600;color:#f8fafc;padding:4px 11px 5px;border-radius:12px;white-space:nowrap;background:#03050b9e;border:1px solid color-mix(in srgb,var(--c, #818cf8) 60%,transparent);text-shadow:0 0 10px var(--c, #818cf8);box-shadow:0 0 18px color-mix(in srgb,var(--c, #818cf8) 22%,transparent);transition:border-color .2s,background .2s}.lod-cluster-label:hover{background:color-mix(in srgb,var(--c, #818cf8) 22%,rgba(3,5,11,.7));border-color:var(--c, #818cf8)}.lod-cluster-label b{font-weight:700;letter-spacing:-.01em}.lod-cluster-label small{font-size:10px;font-weight:500;color:#94a3b8;text-shadow:none;font-variant-numeric:tabular-nums}.hud-dock{display:flex;align-items:center;gap:8px}.hud-dock:empty{display:none}.hud-dock>.hud{position:static}.hud-lod{padding:6px 8px 6px 12px;display:flex;align-items:center;gap:8px;font-size:12px;color:#cbd5e1;white-space:nowrap}.hud-lod span b{margin:0 1px}.hud-lod b{color:#f1f5f9;font-variant-numeric:tabular-nums}.hud-lod i{width:7px;height:7px;border-radius:50%;background:#a5b4fc;box-shadow:0 0 8px #a5b4fc}.hud-lod button{all:unset;cursor:pointer;font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid rgba(148,163,255,.25);color:#c7d2fe}.hud-lod button:hover{background:#818cf833;color:#f8fafc}.scene-root{container:agscene / size}@container agscene (max-width: 719px){.scene-root .hud-top{padding:5px 7px 5px 10px}.scene-root .hud-title{font-size:13px}.scene-root .hud-theme{padding:3px 20px 3px 8px;font-size:10px;background-position:right 7px center}.scene-root .hud-stat:nth-child(n+3){display:none}.scene-root .hud-side:not(.is-rail){width:min(290px,calc(100% - 64px));padding:6px 8px 8px}.scene-root .hs-head button{padding:4px 6px;letter-spacing:.04em;font-size:10.5px}.scene-root .hs-head .hs-collapse{padding:2px 4px}.scene-root .ap-list li button{padding:4px 6px}.scene-root .hud-topwrap:not(.is-rail){--hud-side: min(290px, calc(100% - 64px) )}}@container agscene (max-height: 520px){.scene-root .hud-sub{max-height:4.5em;overflow:auto}}@keyframes ap-wait-pulse{50%{box-shadow:0 0 10px #f59e0b8c;border-color:#fbbf24}}@media(prefers-reduced-motion:reduce){.ap-steps span[data-status=waiting]{animation:none}}.hud-approve{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}.hud-approve button{border:1px solid transparent;border-radius:999px;padding:5px 13px;font:inherit;font-size:12px;font-weight:650;cursor:pointer}.hud-approve .ha-yes{background:linear-gradient(135deg,#34d399,#22d3ee);color:#03050b}.hud-approve .ha-no{background:#fb3b5c24;border-color:#fb718599;color:#fecdd3}.hud-approve .ha-yes:hover{filter:brightness(1.1)}.hud-approve .ha-no:hover{background:#fb3b5c47}.hud-approve span{font-size:11px;color:#94a3b8}.hud-approve[data-verdict=approved] span,.hud-approve[data-verdict=approving] span{color:#86efac}.hud-approve[data-verdict=rejected] span,.hud-approve[data-verdict=rejecting] span,.hud-approve[data-verdict=error] span{color:#fda4af}.hud-approve.is-compact{margin-top:0;flex:none;gap:4px}.hud-approve.is-compact button{padding:3px 9px;font-size:11px}.hud-approvals{left:12px;bottom:12px;z-index:9;width:max-content;max-width:min(460px,calc(100% - 356px));padding:8px 10px;font-size:12px;box-sizing:border-box;border-color:#f59e0b73;box-shadow:0 8px 32px #00000059,0 0 18px #f59e0b1f}.hud-approvals.is-rail{max-width:min(460px,calc(100% - 76px))}.hud-approvals h4{margin:0 0 6px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#fcd34d;display:flex;gap:6px;align-items:baseline}.hud-approvals h4 em{font-style:normal;font-variant-numeric:tabular-nums;color:#fde68a}.hud-approvals ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.hud-approvals .ha-late{font-style:normal}.hud-approvals .ha-late.is-due{color:#86efac}.hud-approvals .ha-late.is-overdue{color:#f59e0b;font-weight:600}.hud-approvals li{display:flex;align-items:center;gap:8px;min-width:0}.hud-approvals .ha-who{all:unset;cursor:pointer;flex:1;min-width:0;display:flex;align-items:baseline;gap:6px;padding:2px 4px;border-radius:6px}.hud-approvals .ha-who:hover{background:#94a3ff1a}.hud-approvals .ha-who i{flex:0 0 8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);align-self:center}.hud-approvals .ha-who b{color:#e2e8f0;font-weight:650;white-space:nowrap}.hud-approvals .ha-who span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fbbf24;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.hud-approvals p{margin:6px 0 0;font-size:11px;color:#64748b}.hud-approvals .ha-details,.ap-approve-row .ha-details{all:unset;cursor:pointer;flex:none;font-size:11px;color:#cbd5e1;padding:3px 8px;border-radius:999px;border:1px solid rgba(148,163,255,.28)}.hud-approvals .ha-details:hover,.ap-approve-row .ha-details:hover,.hud-approvals .ha-details:focus-visible{border-color:#818cf8;color:#f1f5f9}.ap-approve-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ap-approve-row .ha-details{margin-top:8px}.hud-drawer{top:64px;max-height:calc(100% - 76px);right:calc(var(--hud-side, 320px) + 24px);width:360px;max-width:calc(100% - var(--hud-side, 320px) - 48px);z-index:11;display:flex;flex-direction:column;gap:10px;padding:14px 14px 12px;box-sizing:border-box;overflow-y:auto;font-size:12px;outline:none;background:#0a0e1ac7;border-color:#f59e0b73;box-shadow:0 12px 40px #00000073,0 0 22px #f59e0b1a;animation:hd-in .18s ease-out}.hud-drawer.is-rail{--hud-side: 40px}@keyframes hd-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.hud-drawer{animation:none}}.hud-drawer .hd-head{display:flex;align-items:flex-start;gap:8px}.hud-drawer .hd-head>div{flex:1;min-width:0}.hud-drawer .hd-kicker{margin:0 0 2px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#fcd34d}.hud-drawer h3{margin:0;font-size:15px;font-weight:700;line-height:1.3;color:#f1f5f9;overflow-wrap:anywhere}.hud-drawer .hd-close{all:unset;cursor:pointer;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-size:17px;color:#94a3b8}.hud-drawer .hd-close:hover,.hud-drawer .hd-close:focus-visible{color:#f1f5f9;background:#94a3ff24}.hud-drawer .hd-who{all:unset;cursor:pointer;display:flex;align-items:baseline;gap:6px;min-width:0;padding:2px 4px;margin:-2px -4px;border-radius:6px}.hud-drawer .hd-who:hover{background:#94a3ff1a}.hud-drawer .hd-who i{flex:0 0 8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);align-self:center}.hud-drawer .hd-who b{color:#e2e8f0;white-space:nowrap}.hud-drawer .hd-who span{color:#94a3b8;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-drawer .hd-deadline{align-self:flex-start;font-size:11px;font-variant-numeric:tabular-nums;color:#fde68a;padding:2px 9px;border-radius:999px;background:#f59e0b1f;border:1px solid rgba(245,158,11,.3)}.hud-drawer .hd-deadline.is-due{color:#86efac;background:#22c55e1f;border-color:#22c55e59}.hud-drawer .hd-deadline.is-overdue{color:#fbbf24;font-weight:650}.hud-drawer section h4{margin:0 0 5px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.hud-drawer .hd-why{border-left:2px solid #5eead4;padding:2px 0 2px 8px}.hud-drawer .hd-why.is-deny{border-left-color:#fb7185}.hud-drawer .hd-why p{margin:0 0 4px;color:#e2e8f0;line-height:1.4}.hud-drawer .hd-why p b{font-size:9px;letter-spacing:.06em;color:#94a3b8;margin-right:2px}.hud-drawer .hd-why p em{font-style:normal;font-weight:700;color:#5eead4}.hud-drawer .hd-why.is-deny p em{color:#fda4af}.hud-drawer .hd-reason{margin:0;color:#fbbf24;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.hud-drawer .hd-dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:0;font-size:11px}.hud-drawer .hd-dl div{display:contents}.hud-drawer .hd-dl dt{color:#64748b}.hud-drawer .hd-dl dd{margin:0;color:#e2e8f0;font-variant-numeric:tabular-nums;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-drawer .hd-details dd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hud-drawer .ap-decisions{margin:0}.hud-drawer .hd-foot{display:grid;gap:8px;padding-top:4px;border-top:1px solid rgba(148,163,255,.12)}.hud-drawer .hd-note{width:100%;box-sizing:border-box;resize:vertical;min-height:38px;margin-top:8px;padding:6px 8px;font:inherit;font-size:12px;color:#e2e8f0;background:#03050b8c;border:1px solid rgba(148,163,255,.22);border-radius:8px;outline:none}.hud-drawer .hd-note:focus{border-color:#818cf8}.hud-drawer .hud-approve{margin-top:0}.hud-drawer .hd-keys{margin:0;font-size:10px;color:#64748b}.hud-drawer .hd-links{display:flex;flex-wrap:wrap;gap:6px}.hud-drawer .hd-links a,.hud-drawer .hd-links button{all:unset;cursor:pointer;font-size:11px;color:#c7d2fe;padding:3px 9px;border-radius:999px;border:1px solid rgba(148,163,255,.28)}.hud-drawer .hd-links a:hover,.hud-drawer .hd-links button:hover,.hud-drawer .hd-links a:focus-visible,.hud-drawer .hd-links button:focus-visible{border-color:#818cf8;color:#f1f5f9}.hud-halotip{position:fixed;z-index:30;pointer-events:none;padding:5px 8px;border-radius:8px;font-size:11px;line-height:1.45;color:#cbd5e1;background:#0a0e1ae0;border:1px solid rgba(148,163,255,.22);font-variant-numeric:tabular-nums;white-space:nowrap}.hud-halotip b{color:#f1f5f9}@container agscene (max-width: 719px){.scene-root .hud-approvals{max-width:calc(100% - 76px);padding:6px 8px}.scene-root .hud-approvals .ha-who span{display:none}.scene-root .hud-drawer{left:8px;right:8px;top:auto;bottom:8px;width:auto;max-width:none;max-height:72%}}.hud-rejected{color:#fde68a}.hud-rejected b{color:#fbbf24}.ap-prim-dim{font-size:11px;color:#94a3b8;margin:3px 0 0;font-variant-numeric:tabular-nums}.ap-prim-bar{height:6px;border-radius:3px;overflow:hidden;background:#ffffff0f;margin-top:6px}.ap-prim-bar span{display:block;height:100%;background:#5eead4;box-shadow:0 0 8px #5eead480}.ap-skills span.ap-prim-stage{border-color:color-mix(in srgb,var(--c) 45%,transparent);background:color-mix(in srgb,var(--c) 8%,transparent)}.ap-skills span.ap-prim-stage.on{border-color:var(--c);color:#e6fffb;box-shadow:0 0 10px color-mix(in srgb,var(--c) 30%,transparent)}.ap-skills span.ap-prim-stage em{color:#94a3b8}.ap-prim-dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0;font-size:11px}.ap-prim-dl div{display:contents}.ap-prim-dl dt{color:#64748b}.ap-prim-dl dd{margin:0;color:#e2e8f0;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-detail h3 .rp-icon{color:var(--c);font-style:normal;margin-right:2px}.rp-spark{display:block;width:100%;height:34px;background:#ffffff08;border-radius:4px}.rp-table{width:100%;border-collapse:collapse;font-size:11px;color:#e2e8f0;font-variant-numeric:tabular-nums;margin:4px 0;table-layout:fixed}.rp-table th{text-align:right;font-weight:600;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;padding:2px 4px}.rp-table td{text-align:right;padding:2px 4px;border-top:1px solid rgba(255,255,255,.05)}.rp-table th:first-child,.rp-table td:first-child{text-align:left;width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-legend{display:flex;flex-wrap:wrap;gap:4px 10px;margin:4px 0 0;font-size:10.5px;color:#cbd5e1}.rp-legend span:before{content:"";display:inline-block;width:7px;height:7px;border-radius:2px;background:var(--c);margin-right:4px}.rp-legend em{font-style:normal;color:#94a3b8}.rp-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:4px 10px;margin:4px 0}.rp-kv dt{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.rp-kv dd{margin:0;font-size:12px;color:#e2e8f0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.rp-note{font-size:10px;color:#64748b;margin:4px 0 0}.ap-chip-link em{font-style:normal;color:#94a3b8;margin-left:4px}.rp-detail .ap-stats{grid-template-columns:repeat(3,1fr)}.flow-run{display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}.flow-run .scene-label{font-size:11px;max-width:220px;overflow:hidden;text-overflow:ellipsis}.flow-steps{display:flex;gap:3px;font:600 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.06em}.flow-steps span{padding:2px 5px;border-radius:999px;color:#64748b;background:#03050b8c;border:1px solid rgba(100,116,139,.35)}.flow-steps span[data-s=running]{color:#03050b;background:var(--c);border-color:var(--c);box-shadow:0 0 12px var(--c)}.flow-steps span[data-s=done]{color:var(--c);border-color:color-mix(in srgb,var(--c) 60%,transparent)}.flow-steps span[data-s=failed]{color:#fecaca;background:#7f1d1d}.flow-step{font:600 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb,var(--c) 70%,white);text-shadow:0 0 8px var(--c);opacity:.55;pointer-events:none;white-space:nowrap;transition:opacity .3s}.flow-step[data-s=running]{opacity:1}.flow-hint{font-size:10px;padding:1px 7px;opacity:.9}.flow-label-core{font-size:11px;letter-spacing:.04em}
|
|
@@ -23,8 +23,15 @@ export type AgentSceneProps = {
|
|
|
23
23
|
* "not authorized" in the HUD instead of falling back to the simulator.
|
|
24
24
|
*/
|
|
25
25
|
token?: string;
|
|
26
|
+
/** Show the per-viewer "Clear view" HUD button (and Shift+C). Default true. The server is never touched. */
|
|
27
|
+
clearable?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Controlled clear: an epoch-ms timestamp hides everything older for this viewer (as the HUD button does),
|
|
30
|
+
* `null` shows everything again, `undefined` (default) leaves it to the viewer. See also clearView() / showAllView().
|
|
31
|
+
*/
|
|
32
|
+
clearedAt?: number | null;
|
|
26
33
|
style?: CSSProperties;
|
|
27
34
|
className?: string;
|
|
28
35
|
};
|
|
29
|
-
export declare function AgentScene({ theme, source, hud, sim, scope, run, token, style, className }: AgentSceneProps): import("react").JSX.Element;
|
|
36
|
+
export declare function AgentScene({ theme, source, hud, sim, scope, run, token, clearable, clearedAt, style, className }: AgentSceneProps): import("react").JSX.Element;
|
|
30
37
|
export default AgentScene;
|
package/dist/types/world.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ResSel } from "./resinfo";
|
|
1
2
|
import { type Backlog, type PrimEdge, type PrimState, type PrimWorldEvent, type ResStat } from "./prims";
|
|
2
3
|
export type { PrimState, PrimWorldEvent } from "./prims";
|
|
3
4
|
export type AgentType = "planner" | "researcher" | "graph_scout" | "records_scout" | "data_scout" | "writer";
|
|
@@ -82,7 +83,17 @@ export type WorldEvent = {
|
|
|
82
83
|
id: string;
|
|
83
84
|
op: "read" | "write";
|
|
84
85
|
nodes: string[];
|
|
86
|
+
kinds?: (string | null)[];
|
|
85
87
|
ts: number;
|
|
88
|
+
} | {
|
|
89
|
+
type: "graph_nodes";
|
|
90
|
+
nodes: {
|
|
91
|
+
name: string;
|
|
92
|
+
kind?: string | null;
|
|
93
|
+
peers?: string[];
|
|
94
|
+
}[];
|
|
95
|
+
run_id?: string;
|
|
96
|
+
ts?: number;
|
|
86
97
|
} | {
|
|
87
98
|
type: "final";
|
|
88
99
|
run_id: string;
|
|
@@ -189,6 +200,7 @@ export type WorldEvent = {
|
|
|
189
200
|
kind: ResourceKind;
|
|
190
201
|
}[];
|
|
191
202
|
ts: number;
|
|
203
|
+
kind?: "model" | "mcp";
|
|
192
204
|
} | {
|
|
193
205
|
type: "mcp";
|
|
194
206
|
run_id: string;
|
|
@@ -203,6 +215,8 @@ export type WorldEvent = {
|
|
|
203
215
|
units?: number;
|
|
204
216
|
unit?: string;
|
|
205
217
|
device?: string;
|
|
218
|
+
error?: boolean;
|
|
219
|
+
status?: number;
|
|
206
220
|
} | PrimWorldEvent;
|
|
207
221
|
export type DecisionKind = "choice" | "score" | "noul";
|
|
208
222
|
/** The decision that triggered a wait (docs/SPEC.md "Human approval"): a summary of its `decision` event. */
|
|
@@ -433,6 +447,9 @@ export type Instance = {
|
|
|
433
447
|
/** backend service agent: requests / errors handled (from `service_stats`) */
|
|
434
448
|
svcN?: number;
|
|
435
449
|
svcErr?: number;
|
|
450
|
+
/** backend service agent: requests per route and per status class since first seen (Resource details layout) */
|
|
451
|
+
svcRoutes?: Map<string, number>;
|
|
452
|
+
svcCodes?: Map<string, number>;
|
|
436
453
|
/** backend service agent: performance.now() of its last traffic (requests / messages in or out); see svcIdle */
|
|
437
454
|
svcAt?: number;
|
|
438
455
|
/** a long-running request of a service shown as its subagent: started / ended (epoch ms, end 0 while open) */
|
|
@@ -578,6 +595,8 @@ export type McpServer = {
|
|
|
578
595
|
calls: number;
|
|
579
596
|
inflight: number;
|
|
580
597
|
resources: Map<string, McpResource>;
|
|
598
|
+
/** a named resource group's kind (mcp_register `kind`): "model" = only models (labelled "ML"); absent = MCP */
|
|
599
|
+
kind?: "model" | "mcp";
|
|
581
600
|
};
|
|
582
601
|
/** One MCP request/response: a packet flying instance → server ("call") or server → instance ("result"). */
|
|
583
602
|
export type McpCall = {
|
|
@@ -602,6 +621,7 @@ export type McpPending = {
|
|
|
602
621
|
since: number;
|
|
603
622
|
};
|
|
604
623
|
export declare const MCP_COLORS: Record<string, string>;
|
|
624
|
+
/** A graph node lit by a read / write. `area`: lit for an event that named no node (no name label). */
|
|
605
625
|
export type Flare = {
|
|
606
626
|
id: number;
|
|
607
627
|
run: string;
|
|
@@ -609,8 +629,13 @@ export type Flare = {
|
|
|
609
629
|
node: string;
|
|
610
630
|
op: "read" | "write";
|
|
611
631
|
start: number;
|
|
632
|
+
area?: boolean;
|
|
612
633
|
};
|
|
613
634
|
/** Finished (exit done/failed) - drawn dimmed until its run ends, then faded out with the whole run. */
|
|
635
|
+
/** The label prefix of an MCP-style server: "ML" for a resource group holding only models, else "MCP". */
|
|
636
|
+
export declare const mcpPrefix: (srv: Pick<McpServer, "kind">) => "ML" | "MCP";
|
|
637
|
+
/** "MCP · backend", "ML · payment-integrity scorer": the one server label every theme draws. */
|
|
638
|
+
export declare const mcpTitle: (srv: Pick<McpServer, "kind" | "name">) => string;
|
|
614
639
|
export declare const isDone: (i: Instance) => boolean;
|
|
615
640
|
/** Working: not finished and not fading out (HUD "alive", LOD budget, cluster counts). */
|
|
616
641
|
export declare const isLive: (i: Instance) => boolean;
|
|
@@ -642,6 +667,8 @@ export declare const world: {
|
|
|
642
667
|
mcpServers: Map<string, McpServer>;
|
|
643
668
|
/** registered (not necessarily used) MCP servers: server -> backend name -> kind */
|
|
644
669
|
mcpRegistry: Map<string, Map<string, ResourceKind>>;
|
|
670
|
+
/** resource group kinds from mcp_register (`kind`), so a server drawn later gets its ML / MCP label */
|
|
671
|
+
mcpKinds: Map<string, "model" | "mcp">;
|
|
645
672
|
mcpCalls: McpCall[];
|
|
646
673
|
/** in-flight MCP calls keyed `${instance}|${server}|${tool}`; resolvedAt kept briefly for a "snap back" effect */
|
|
647
674
|
mcpPending: Map<string, McpPending>;
|
|
@@ -719,6 +746,8 @@ export declare const world: {
|
|
|
719
746
|
archive: Map<string, Instance>;
|
|
720
747
|
/** instance selected in the agent panel or by clicking a shape */
|
|
721
748
|
selected: string | null;
|
|
749
|
+
/** a resource selected instead (MCP server / group, backend, agent -> server link): the Resource details panel */
|
|
750
|
+
selectedRes: ResSel | null;
|
|
722
751
|
/** the server answered 401 for this scope/run/token (the HUD shows a notice; no simulator fallback) */
|
|
723
752
|
unauthorized: boolean;
|
|
724
753
|
/** desk-wide halts (global-scope guard denies, see Halt), keyed by the owning agent */
|
|
@@ -782,6 +811,8 @@ export declare function useWorld(): {
|
|
|
782
811
|
mcpServers: Map<string, McpServer>;
|
|
783
812
|
/** registered (not necessarily used) MCP servers: server -> backend name -> kind */
|
|
784
813
|
mcpRegistry: Map<string, Map<string, ResourceKind>>;
|
|
814
|
+
/** resource group kinds from mcp_register (`kind`), so a server drawn later gets its ML / MCP label */
|
|
815
|
+
mcpKinds: Map<string, "model" | "mcp">;
|
|
785
816
|
mcpCalls: McpCall[];
|
|
786
817
|
/** in-flight MCP calls keyed `${instance}|${server}|${tool}`; resolvedAt kept briefly for a "snap back" effect */
|
|
787
818
|
mcpPending: Map<string, McpPending>;
|
|
@@ -859,6 +890,8 @@ export declare function useWorld(): {
|
|
|
859
890
|
archive: Map<string, Instance>;
|
|
860
891
|
/** instance selected in the agent panel or by clicking a shape */
|
|
861
892
|
selected: string | null;
|
|
893
|
+
/** a resource selected instead (MCP server / group, backend, agent -> server link): the Resource details panel */
|
|
894
|
+
selectedRes: ResSel | null;
|
|
862
895
|
/** the server answered 401 for this scope/run/token (the HUD shows a notice; no simulator fallback) */
|
|
863
896
|
unauthorized: boolean;
|
|
864
897
|
/** desk-wide halts (global-scope guard denies, see Halt), keyed by the owning agent */
|
|
@@ -881,7 +914,27 @@ export declare function useWorld(): {
|
|
|
881
914
|
export declare const hash01: (id: string, salt?: number) => number;
|
|
882
915
|
/** high volume: most individual decision glyphs on screen at once (all agents) */
|
|
883
916
|
export declare const HV_GLYPHS_MAX = 3;
|
|
917
|
+
/** epoch ms of this viewer's clear (0 = not cleared) */
|
|
918
|
+
export declare const viewClearedAt: () => number;
|
|
919
|
+
/** React hook: the clear timestamp (0 = showing everything) */
|
|
920
|
+
export declare function useClearedAt(): number;
|
|
921
|
+
/** Apply one world event (stream, replay or simulator). Honours this viewer's clear (see clearView). */
|
|
884
922
|
export declare function apply(ev: WorldEvent): void;
|
|
923
|
+
/**
|
|
924
|
+
* Clear this viewer's view at `at` (epoch ms, default now): everything drawn so far is hidden (runs, agents,
|
|
925
|
+
* services, MCP servers, graph glow, events, counters) and only events with `ts >= at` draw from then on. Runs and
|
|
926
|
+
* agents still open at the clear re-appear on their next event. Connection-level code persists the timestamp.
|
|
927
|
+
*/
|
|
928
|
+
export declare function clearWorldAt(at?: number): void;
|
|
929
|
+
/**
|
|
930
|
+
* Set the clear timestamp without touching what is drawn: for a world that is about to be (re)filled from a replay
|
|
931
|
+
* (page load with a persisted clear). 0 = no clear.
|
|
932
|
+
*/
|
|
933
|
+
export declare function setViewClearedAt(at: number): void;
|
|
934
|
+
/** Undo the clear: empty the world and, in sim mode, replay this session's events (live mode re-reads the server). */
|
|
935
|
+
export declare function unclearWorld(replaySim: boolean): void;
|
|
936
|
+
/** forget the sim log (a fresh connection) */
|
|
937
|
+
export declare function resetSimLog(): void;
|
|
885
938
|
export declare function tick(now?: number): void;
|
|
886
939
|
/** 0..1 visibility for an instance: grows in on spawn, fades out after exit. */
|
|
887
940
|
export declare function presence(i: Instance, now?: number): number;
|
|
@@ -897,6 +950,8 @@ export declare function roleScale(i: Instance): number;
|
|
|
897
950
|
export declare function getInstance(id: string | null | undefined): Instance | undefined;
|
|
898
951
|
/** Select an agent (panel list click or 3D click); null clears. */
|
|
899
952
|
export declare function selectInstance(id: string | null): void;
|
|
953
|
+
/** Select a resource (server / backend / link) for the Resource details panel; null closes it. */
|
|
954
|
+
export declare function selectResource(sel: ResSel | null): void;
|
|
900
955
|
export declare function setSimulated(v: boolean): void;
|
|
901
956
|
/** Name the graph structure (e.g. when the server serves a real FalkorDB sample). */
|
|
902
957
|
export declare function setGraphLabel(label: string): void;
|