@pi-harness/pi-harness 0.1.1 → 0.1.2

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 (36) hide show
  1. package/apps/web/dist/assets/index-Bwqek8LF.js +20 -0
  2. package/apps/web/dist/assets/{index-DPgRbQ4_.css → index-DCHSASjq.css} +1 -1
  3. package/apps/web/dist/index.html +2 -2
  4. package/apps/web/package.json +6 -6
  5. package/apps/web/src/style.css +1 -0
  6. package/package.json +6 -6
  7. package/packages/api-gateway/dist/index.d.ts.map +1 -1
  8. package/packages/api-gateway/dist/index.js +19 -0
  9. package/packages/api-gateway/dist/index.js.map +1 -1
  10. package/packages/api-gateway/dist/marketplace-registry.json +62 -0
  11. package/packages/api-gateway/dist/marketplace.d.ts +22 -0
  12. package/packages/api-gateway/dist/marketplace.d.ts.map +1 -0
  13. package/packages/api-gateway/dist/marketplace.js +29 -0
  14. package/packages/api-gateway/dist/marketplace.js.map +1 -0
  15. package/packages/api-gateway/package.json +3 -3
  16. package/packages/api-gateway/src/index.ts +19 -0
  17. package/packages/api-gateway/src/marketplace-registry.json +62 -0
  18. package/packages/api-gateway/src/marketplace.ts +48 -0
  19. package/packages/api-gateway/test/index.test.ts +20 -0
  20. package/packages/api-gateway/test/marketplace.test.ts +17 -0
  21. package/packages/api-gateway/tsconfig.build.json +1 -1
  22. package/packages/bundle-web-app/package.json +2 -2
  23. package/packages/cli/package.json +2 -2
  24. package/packages/client-web/dist/control-room.d.ts +22 -0
  25. package/packages/client-web/dist/control-room.d.ts.map +1 -1
  26. package/packages/client-web/dist/control-room.js +1 -1
  27. package/packages/client-web/dist/control-room.js.map +1 -1
  28. package/packages/client-web/dist/react-room.d.ts.map +1 -1
  29. package/packages/client-web/dist/react-room.js +15 -4
  30. package/packages/client-web/dist/react-room.js.map +1 -1
  31. package/packages/client-web/package.json +1 -1
  32. package/packages/client-web/src/control-room.ts +3 -2
  33. package/packages/client-web/src/react-room.tsx +19 -7
  34. package/packages/core/package.json +1 -1
  35. package/packages/host-webserver/package.json +1 -1
  36. package/apps/web/dist/assets/index-C4tLweAB.js +0 -20
@@ -1 +1 @@
1
- :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#0f1115;--muted:#81858c;--faint:#adb2b8;--line:#00000017;--soft:#f9fafb;--blue:#4176e6;--blue-soft:#edf3fe;--green:#22c55e;--red:#ec1313;--amber:#f59e0b;--mono:"JetBrains Mono","SFMono-Regular",Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{color:var(--ink);font:13px/1.5 var(--sans);-webkit-font-smoothing:antialiased;background:#fff}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:1px;outline:2px solid #4176e673}[hidden]{display:none!important}.app-frame{background:#fff;width:100%;height:100%;display:flex;overflow:hidden}.sidebar{background:var(--soft);border-right:1px solid #0000000f;flex-direction:column;flex:0 0 264px;width:264px;min-height:0;display:flex}.brand-row{flex:0 0 48px;align-items:center;gap:9px;height:48px;padding:0 14px;display:flex}.brand-row strong{letter-spacing:-.1px;font-size:13px;font-weight:600}.pi-mark{background:var(--ink);color:#fff;width:22px;height:22px;font:13px var(--mono);border-radius:6px;flex:none;place-items:center;display:grid}.pi-mark.large{border-radius:11px;width:38px;height:38px;font-size:19px}.version{color:var(--faint);font:10px var(--mono);margin-left:auto}.sidebar-actions{flex-direction:column;gap:8px;padding:0 10px 10px;display:flex}.new-session{background:var(--ink);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:32px;font-size:12.5px;font-weight:500;display:flex}.new-session:hover,.send-button:hover{background:#43454a}.sidebar-actions input{background:#fff;border:1px solid #0000001a;border-radius:8px;outline:none;width:100%;height:30px;padding:0 10px;font-size:12px}.sidebar-scroll{flex:1;min-height:0;padding:0 8px 8px;overflow:auto}.session-group{margin-bottom:8px}.group-label{color:var(--faint);letter-spacing:.04em;padding:6px 8px 4px;font-size:10px}.session-row{text-align:left;border-radius:8px;align-items:center;gap:7px;width:100%;padding:7px 9px;display:flex}.session-row:hover{background:#f1f3f5}.session-row.active{background:#ebeef2}.session-dot{background:#cfd3d6;border-radius:50%;flex:none;width:6px;height:6px}.session-dot.running{background:var(--green);animation:1.4s ease-in-out infinite pulse}.session-dot.ok{background:var(--green)}.session-dot.warn{background:var(--amber)}.session-dot.error{background:var(--red)}.session-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.session-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.session-copy small{text-overflow:ellipsis;white-space:nowrap;color:var(--faint);font:10px var(--mono);overflow:hidden}.runtime-cells{color:var(--faint);font:9.5px var(--mono);border-top:1px solid #0000000f;flex-wrap:wrap;gap:4px 12px;padding:8px 19px 9px;display:flex}.runtime-cells span{gap:5px;display:flex}.runtime-cells b{font-weight:400}.runtime-cells strong{color:#61666b;font-weight:400}.sidebar-footer{border-top:1px solid #0000000f;flex-direction:column;gap:2px;padding:6px 10px 8px;display:flex}.sidebar-link{text-align:left;border-radius:8px;align-items:center;gap:9px;height:30px;padding:0 9px;font-size:12.5px;display:flex}.sidebar-link:hover{background:#f1f3f5}.sidebar-link span:nth-child(2){flex:1}.sidebar-link b{color:#61666b;font:10px var(--mono);background:#ebeef2;border-radius:20px;padding:1px 6px;font-weight:400}.link-glyph{color:var(--blue);font:11.5px var(--mono)}.main-pane{flex-direction:column;flex:1;min-width:0;display:flex}.main-header{border-bottom:1px solid #0000000f;flex:0 0 48px;align-items:center;gap:12px;height:48px;padding:0 16px;display:flex}.active-heading{flex-direction:column;min-width:0;display:flex}.active-heading strong,.active-heading small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.active-heading strong{font-size:13px;font-weight:600}.active-heading small{color:var(--faint);font:10px var(--mono)}.header-spacer{flex:1}.run-indicator{color:#61666b;font:10.5px var(--mono);flex:none;align-items:center;gap:6px;display:flex}.run-indicator>span{background:var(--green);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite pulse}.run-indicator button{color:var(--red);border:1px solid #ec13133d;border-radius:6px;padding:2px 8px;font-size:11px}.run-indicator.running>span{background:var(--blue)}.view-tabs{background:#f1f3f5;border-radius:8px;gap:2px;padding:2px;display:flex}.view-tab{color:var(--muted);border-radius:6px;padding:4px 11px;font-size:12px}.view-tab.active{color:var(--ink);background:#fff;font-weight:600;box-shadow:0 1px 3px #00000014}.session-menu,.details-toggle{color:#61666b;background:#fff;border:1px solid #0000001a;border-radius:8px;height:28px}.session-menu{width:28px;font-size:15px}.details-toggle{padding:0 9px;font-size:12px}.session-menu:hover,.details-toggle:hover{background:#f1f3f5}.view-host,.view-panel{flex-direction:column;flex:1;min-height:0;display:flex}.chat-scroll{flex:1;min-height:0;padding:20px 24px 4px;overflow-y:auto}.turn{max-width:748px;margin:0 auto 16px;font-size:13.5px;line-height:1.78}.turn.user{justify-content:flex-end;display:flex}.user-bubble{background:var(--blue-soft);white-space:pre-wrap;border-radius:12px;max-width:84%;padding:10px 14px}.turn-text{white-space:pre-wrap;margin:0}.reasoning-head{color:var(--muted);align-items:center;gap:6px;padding:0;font-size:11.5px;display:flex}.reasoning-head .caret{color:var(--faint);font-size:9px}.reasoning-body{color:#61666b;white-space:pre-wrap;border-left:2px solid #ebeef2;margin:6px 0 0;padding-left:11px;font-size:12.5px;line-height:1.75;display:none}.reasoning:hover .reasoning-body{display:block}.plugin-event{height:30px;color:var(--blue);font:11px var(--mono);background:#f7faff;border:1px dashed #4176e659;border-radius:8px;align-items:center;gap:8px;padding:0 11px;display:flex}.plugin-event>span:last-child{text-overflow:ellipsis;white-space:nowrap;color:#61666b;font:12px var(--sans);overflow:hidden}.plugin-hook{background:#e4edfd;border-radius:4px;padding:1px 6px;color:#81858c!important;font:10px var(--mono)!important}.tool-card,.approval-card,.subagent-card,.todo-card{border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}.tool-head,.subagent-head{text-align:left;background:#fff;align-items:center;gap:9px;width:100%;min-height:34px;padding:7px 11px;display:flex}.tool-head{font:11.5px var(--mono)}.tool-glyph{width:12px;color:var(--muted)}.tool-target,.subagent-goal{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px;overflow:hidden}.tool-head .tool-target,.subagent-goal{flex:1}.tool-stat{color:var(--muted)}.tool-detail-link{color:var(--blue);font:10.5px var(--sans)}.tool-output,.diff-preview,.toml{background:var(--soft);white-space:pre-wrap;word-break:break-word;color:#61666b;font:11.5px/1.7 var(--mono);border-top:1px solid #0000000f;margin:0;padding:10px 12px}.diff-line{font:11.5px/1.7 var(--mono);gap:10px;padding:0 8px;display:flex}.diff-line.added{background:#e6faed}.diff-line.removed{background:#fff0f0}.diff-no{width:30px;color:var(--faint);text-align:right}.diff-sign{width:8px;color:var(--green)}.diff-line.removed .diff-sign{color:var(--red)}.approval-card{background:#fffaf0;border-color:#f59e0b66;padding:11px 13px}.approval-card pre{background:0 0;border:0;padding:8px 0}.approval-actions{gap:7px;margin-top:4px;display:flex}.approval-actions button,.plugin-add button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 11px;font-size:11.5px}.approval-actions .primary,.plugin-add .primary{background:var(--ink);color:#fff}.approval-actions .danger{color:var(--red)}.subagent-head{font-size:12.5px}.subagent-glyph{color:#679efe;font:11px var(--mono)}.subagent-preset{color:#81858c;font:10.5px var(--mono);background:#e4edfd;border-radius:4px;padding:1px 6px}.subagent-duration{color:var(--faint);font:10.5px var(--mono)}.subagent-body{border-top:1px solid #0000000f;padding:4px 11px 9px;display:block}.subagent-lineage{color:var(--faint);font:10px var(--mono);padding:6px 0 4px;display:block}.subagent-step{border-left:2px solid #e4edfd;align-items:center;gap:8px;padding:4px 0 4px 10px;display:flex}.subagent-step code{width:42px;color:var(--muted);font:10.5px var(--mono)}.subagent-step span{text-overflow:ellipsis;white-space:nowrap;color:#61666b;font:11px var(--mono);flex:1;overflow:hidden}.subagent-step small{color:var(--faint);font:10px var(--mono)}.subagent-body p{border-top:1px solid #0000000f;margin:8px 0 0;padding-top:8px}.todo-head{border-bottom:1px solid #0000000f;align-items:center;gap:8px;height:32px;padding:0 11px;display:flex}.todo-head small{color:var(--faint);font:10.5px var(--mono)}.todo-row{border-bottom:1px solid #0000000a;align-items:flex-start;gap:9px;padding:7px 11px;display:flex}.todo-row.done{color:var(--muted);text-decoration:line-through}.todo-mark{color:var(--green);font:11px var(--mono)}.stats-row{color:var(--faint);font:10.5px var(--mono);flex-wrap:wrap;gap:14px;display:flex}.composer-wrap{flex:none;padding:8px 24px 14px}.context-line{max-width:748px;color:var(--faint);font:10.5px var(--mono);align-items:center;gap:9px;margin:0 auto 8px;display:flex}.context-line b{color:var(--muted);font-weight:400}.context-line button{color:var(--blue);padding:0;font-size:11px}.context-bar{background:#ebeef2;border-radius:3px;flex:1;height:4px;display:flex;overflow:hidden}.context-bar i{height:100%}.context-bar.expanded{height:8px}.composer{background:#fff;border:1px solid #0000001f;border-radius:12px;max-width:748px;margin:0 auto;overflow:hidden;box-shadow:0 1px 2px #00000008}.composer textarea{resize:none;width:100%;min-height:65px;color:var(--ink);background:0 0;border:0;outline:0;padding:11px 13px 4px;font-size:13.5px;line-height:1.7;display:block}.composer-tools{align-items:center;gap:6px;padding:6px 8px 8px;display:flex}.composer-tools select,.tool-chip{height:26px;font:11px var(--mono);background:#fff;border:1px solid #0000001a;border-radius:7px;padding:0 7px}.tool-chip{color:#61666b;font-family:var(--sans);padding:0 9px;font-size:11.5px}.composer-hint{color:#cfd3d6;font:10px var(--mono);text-align:right;flex:1}.send-button{background:var(--ink);color:#fff;border-radius:8px;width:28px;height:28px;font-size:15px}.send-button:disabled{cursor:not-allowed;opacity:.45}.new-session-screen{text-align:center;flex-direction:column;align-items:center;gap:11px;max-width:580px;margin:0 auto;padding:40px 0;display:flex}.new-session-screen h2{margin:0;font-size:16.5px}.new-session-screen p{color:var(--muted);margin:0}.workspace-picker{text-align:left;gap:6px;width:100%;margin-top:12px;display:grid}.workspace-row{border:1px solid var(--line);text-align:left;background:#fff;border-radius:9px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.workspace-row:hover{background:var(--soft);border-color:#4176e666}.workspace-row code{text-overflow:ellipsis;white-space:nowrap;font:12px var(--mono);flex:1;overflow:hidden}.workspace-row small{color:var(--faint);font:10px var(--mono);margin-top:3px;display:block}.workspace-row .live{color:var(--green)}.workspace-row .offline{color:#cfd3d6}.effective-config{background:var(--soft);text-align:left;border:1px solid #00000014;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;width:100%;padding:9px 12px;display:flex}.effective-config code{color:var(--faint);font:10.5px var(--mono)}.effective-config span{color:#61666b;font:10.5px var(--mono)}.trajectory-summary{border-bottom:1px solid var(--line);color:var(--muted);flex:none;padding:12px 16px 10px;font-size:11.5px}.trajectory-summary b{color:var(--faint);font:10.5px var(--mono);margin-left:9px;font-weight:400}.timeline{gap:3px;height:26px;margin-top:8px;display:flex}.timeline-turn{background:#ebeef2;border-radius:3px;align-items:stretch;padding:0;display:flex;overflow:hidden}.timeline-strip{opacity:.9;width:100%;display:block}.source-filters{border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;align-items:center;gap:6px;padding:9px 16px;display:flex}.filter{color:var(--muted);border:1px solid #0000001a;border-radius:20px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;display:flex}.filter.active{background:var(--blue-soft);color:var(--blue);border-color:#4176e659}.filter b{color:var(--faint);font:10px var(--mono);font-weight:400}.event-count{color:var(--faint);font:10.5px var(--mono);margin-left:auto}.event-table{flex:1;min-height:0;overflow:auto}.event-head,.event-row{grid-template-columns:78px 132px 1fr 88px 68px;align-items:center;gap:12px;padding:7px 16px;display:grid}.event-head{background:var(--soft);color:var(--faint);font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid #0000000f}.event-row{text-align:left;border-bottom:1px solid #0000000a;width:100%;font-size:12px}.event-row:hover{background:var(--soft)}.event-row>span,.event-row code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.event-row>span:first-child,.event-row>span:last-child{color:var(--faint);font:10.5px var(--mono)}.event-row strong{text-overflow:ellipsis;white-space:nowrap;font-weight:400;overflow:hidden}.event-row>span:nth-child(2){color:#61666b;font:11px var(--mono);align-items:center;gap:7px;display:flex}.event-dot{background:var(--blue);border-radius:2px;flex:none;width:6px;height:6px}.files-content{max-width:820px;padding:18px 24px}.files-title{align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.files-title strong{font-size:13px}.files-title span{color:var(--faint);font:11px var(--mono)}.file-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}.file-row{border-bottom:1px solid #0000000a;align-items:center;gap:12px;padding:10px 13px;display:flex}.file-row:last-child{border-bottom:0}.file-row code{text-overflow:ellipsis;white-space:nowrap;font:12px var(--mono);flex:1;overflow:hidden}.file-kind{color:#61666b;font:10px var(--mono);background:#f1f3f5;border-radius:4px;padding:1px 6px}.file-kind.new{color:#16a34a;background:#e6faed}.file-row .add{color:var(--green);font:11px var(--mono)}.file-row .del{color:var(--red);font:11px var(--mono)}.diff-button{color:var(--blue);font-size:11.5px}.file-actions{gap:8px;margin-top:12px;display:flex}.file-actions button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px 11px;font-size:11.5px}.file-actions .primary{background:var(--ink);color:#fff}.details-panel{background:#fff;border-left:1px solid #0000001a;flex:0 336px;width:336px;min-width:268px}.details-panel>header{border-bottom:1px solid #0000000f;align-items:center;gap:8px;height:40px;padding:0 12px;display:flex}.details-panel>header strong{flex:1;font-size:13px}.details-panel>header button{color:var(--muted);font-size:19px;line-height:1}.details-body{padding:12px;overflow:auto}.detail-stats{grid-template-columns:1fr 1fr;gap:7px;margin-bottom:12px;display:grid}.detail-stats>div{border:1px solid #00000014;border-radius:8px;padding:9px}.detail-stats small,.detail-section>small{color:var(--faint);font:9.5px var(--mono);letter-spacing:.04em;display:block}.detail-stats b{font:12.5px var(--mono);margin-top:2px;font-weight:400;display:block}.detail-section{flex-direction:column;gap:5px;margin-top:14px;display:flex}.detail-plugin{color:var(--blue);font:10.5px var(--mono);overflow-wrap:anywhere;border:1px solid #00000014;border-radius:8px;padding:6px 9px;display:block}.raw-json{margin:14px 0 0}.plugins-view{min-width:0}.subnav{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:10px;padding:10px 16px;font-size:11.5px;display:flex}.subnav>a{color:var(--blue);margin-left:auto}.segmented{background:#f1f3f5;border-radius:8px;gap:2px;padding:2px;display:flex}.segmented button{color:var(--muted);border-radius:6px;padding:4px 11px;font-size:12px}.segmented button.active{color:var(--ink);background:#fff;font-weight:600;box-shadow:0 1px 3px #00000014}.plugins-scroll{flex:1;padding:14px 16px;overflow:auto}.plugins-list{flex-direction:column;gap:9px;max-width:900px;display:flex}.plugin-card{border:1px solid var(--line);border-radius:10px;padding:11px 13px}.plugin-card-head{align-items:flex-start;gap:10px;display:flex}.plugin-icon{color:var(--blue);font:11px var(--mono);margin-top:2px}.plugin-copy{flex:1;min-width:0}.plugin-title{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.plugin-title code{font:12px var(--mono);font-weight:500}.plugin-title small{color:var(--faint);font:10px var(--mono)}.capability,.update,.local{color:#61666b;background:#ebeef2;border-radius:4px;padding:1px 6px;font-size:10px}.update{background:var(--blue-soft);color:var(--blue)}.local{color:#dd8629;font:10px var(--mono);background:#fef5e7}.plugin-copy p{color:#61666b;margin:4px 0 7px;font-size:12px;line-height:1.6}.hook-list{flex-wrap:wrap;gap:5px;display:flex}.hook-list span{color:var(--muted);font:10px var(--mono);border:1px solid #00000014;border-radius:4px;padding:1px 6px}.switch{background:#cfd3d6;border-radius:20px;flex:0 0 34px;width:34px;height:20px;position:relative}.switch.on{background:var(--ink)}.switch i{background:#fff;border-radius:50%;width:16px;height:16px;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch.on i{left:16px}.plugin-add{border:1px dashed #00000029;border-radius:10px;align-items:center;gap:9px;padding:12px 13px;display:flex}.plugin-add code{color:var(--muted);font:11.5px var(--mono)}.plugin-add input{min-width:0;height:28px;font:11.5px var(--mono);border:1px solid #0000001a;border-radius:7px;flex:1;padding:0 9px}.settings-overlay,.command-palette{z-index:40;background:#0000003d;place-items:center;padding:40px;display:grid;position:fixed;inset:0}.settings-dialog{background:#fff;border-radius:14px;width:100%;max-width:880px;height:100%;max-height:620px;display:flex;overflow:hidden;box-shadow:0 24px 64px #0000003d}.settings-dialog>aside{background:var(--soft);border-right:1px solid #0000000f;flex-direction:column;flex:0 0 184px;gap:2px;width:184px;padding:12px 8px;display:flex}.settings-dialog>aside>strong{padding:4px 9px 10px;font-size:13px}.settings-tab{text-align:left;border-radius:8px;height:30px;padding:0 9px;font-size:12.5px}.settings-tab.active{background:#f1f3f5;font-weight:600}.settings-tab b{float:right;color:#61666b;font:10px var(--mono);font-weight:400}.settings-dialog>section{flex-direction:column;flex:1;min-width:0;display:flex}.settings-dialog section>header{border-bottom:1px solid #0000000f;align-items:center;height:44px;padding:0 16px;display:flex}.settings-dialog section>header strong{flex:1;font-size:13px}.settings-dialog section>header button{color:var(--muted);font-size:19px}.settings-body{flex:1;padding:14px 16px;overflow:auto}.settings-intro{border-bottom:1px solid var(--line);padding:5px 0 11px}.settings-intro small{color:var(--faint);font:9.5px var(--mono)}.settings-intro h3{font:13px var(--mono);margin:4px 0;font-weight:500}.settings-intro p{color:var(--muted);margin:0;font-size:12px}.general-row{border-bottom:1px solid #0000000f;align-items:center;gap:12px;padding:12px 0;display:flex}.general-row>div{flex:1}.general-row strong{font-size:12.5px;display:block}.general-row small{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.provider-card{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:12px 13px}.provider-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.provider-dot{color:var(--green);font-size:10px}.provider-head strong{font-size:12.5px}.provider-state{color:var(--green);font:10.5px var(--mono);margin-left:auto}.provider-field{align-items:center;gap:8px;margin-top:7px;display:flex}.provider-field code{color:#61666b;width:66px;font:11px var(--mono);flex:0 0 66px}.provider-field input{min-width:0;height:28px;font:11.5px var(--mono);background:#fff;border:1px solid #0000001a;border-radius:7px;flex:1;padding:0 9px}.provider-footer{align-items:center;gap:8px;margin-top:9px;display:flex}.provider-footer code{color:var(--muted);font:10.5px var(--mono)}.provider-footer button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:4px 9px;font-size:11px}.provider-footer .link-button{color:var(--blue);border:0;margin-left:auto}.model-chips{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.model-chips span{color:var(--blue);font:10.5px var(--mono);background:#e4edfd;border-radius:4px;padding:1px 7px}.add-provider{text-align:left;color:#61666b;border:1px dashed #00000029;border-radius:10px;align-items:center;gap:9px;width:100%;padding:11px 13px;display:flex}.add-provider small{color:var(--faint);font:10.5px var(--mono);margin-left:auto}.toml-toolbar{color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;font-size:11.5px;display:flex}.toml-toolbar span{flex:1}.toml-toolbar button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:4px 9px;font-size:11px}.toml-toolbar button.active{background:#f1f3f5;font-weight:600}.toml-toolbar .primary{background:var(--ink);color:#fff}.toml{border:1px solid var(--line);color:#61666b;border-radius:9px;min-height:420px}.command-palette{background:#0000002e}.palette-dialog{background:#fff;border:1px solid #0000001f;border-radius:12px;width:100%;max-width:600px;overflow:hidden;box-shadow:0 24px 64px #00000038}.palette-dialog>input{border:0;border-bottom:1px solid var(--line);outline:0;width:100%;padding:12px 14px}.palette-group{padding:8px}.palette-group small{color:var(--faint);font:10px var(--mono);padding:4px 6px;display:block}.palette-group button{text-align:left;width:100%;font:12px var(--mono);padding:9px 7px;display:flex}.palette-group button span{color:var(--muted);font:12px var(--sans);margin-left:16px}@keyframes pulse{50%{opacity:.3}}@media (width<=1100px){.details-panel,.details-toggle{display:none}}@media (width<=760px){.sidebar{flex-basis:216px;width:216px}.main-header{gap:7px;padding:0 10px}.active-heading small{max-width:180px}.composer-wrap,.chat-scroll{padding-left:12px;padding-right:12px}.view-tabs{margin-left:auto}.composer-hint{display:none}}@media (width<=560px){.sidebar{flex-basis:54px;width:54px}.brand-row{justify-content:center;padding:0}.brand-row strong,.version,.sidebar-actions,.sidebar-scroll,.runtime-cells,.sidebar-footer,.main-header .active-heading small{display:none}.view-tab{padding:4px 7px}.details-panel{display:none}.composer-tools{justify-content:flex-end}}.main-header{position:relative}.context-bar i:first-child{background:#c7d6f5;width:44%}.context-bar i:nth-child(2){background:#dce7fb;width:33%}.context-bar i:nth-child(3){background:#edf2fd;width:23%}.file-summary{color:var(--muted);font:10.5px var(--mono);margin:-8px 0 12px}.settings-note{color:var(--muted);margin-top:10px;font-size:11px;line-height:1.5;display:block}.extension-list{max-width:900px}.extension-list .empty-state{border:1px dashed #00000024;border-radius:10px}.subnav>a{white-space:nowrap}.plugin-card .switch{margin-left:auto}.session-menu-popover[hidden]{display:none}.empty-state{color:var(--muted);text-align:center;padding:28px 16px;font-size:12px}.settings-plugin-row{font:11.5px var(--mono);color:#61666b;border-bottom:1px solid #0000000f;padding:8px 0}.settings-body>p{color:var(--muted);font-size:12px}.provider-card input{width:100%;height:28px;font:11.5px var(--mono);border:1px solid #0000001a;border-radius:7px;margin-top:7px;padding:0 9px;display:block}.stop-button{color:var(--red);border:1px solid #ec13133d;border-radius:6px;padding:2px 8px;font-size:11px}.stop-button:disabled{opacity:.45;cursor:not-allowed}.session-menu-popover{z-index:35;background:#fff;border:1px solid #0000001a;border-radius:10px;width:224px;position:absolute;top:34px;right:0;overflow:hidden;box-shadow:0 10px 28px #00000024}.session-menu{position:relative}.session-action{text-align:left;border-bottom:1px solid #0000000a;flex-direction:column;gap:1px;width:100%;padding:8px 11px;display:flex}.session-action:hover{background:var(--soft)}.session-action strong{font-size:12px}.session-action small{color:var(--faint);font-size:10px}.plugins-page{flex-direction:column;flex:1;min-height:0;display:flex}.plugin-description{color:var(--muted);margin:4px 0 0;font-size:12px}.plugin-card{display:block}.plugin-card>.plugin-icon{margin-right:9px}:root{--starter-border:#0000001a}.starter-grid{grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:10px;display:grid}.starter-card{border:1px solid var(--starter-border);text-align:left;background:#fff;border-radius:10px;padding:10px 12px}.starter-card:hover{background:var(--soft);border-color:#4176e666}.starter-card strong,.starter-card small{display:block}.starter-card strong{font-size:12.5px}.starter-card small{color:var(--muted);font:10.5px var(--mono);margin-top:4px}:root{--empty:#9aa0a6}.timeline-empty{color:var(--faint);font:10px var(--mono);padding:5px 8px}.timeline-turn{flex:1;min-width:4px}.timeline-strip{background:var(--blue);border-radius:3px;height:100%}.timeline-turn:nth-child(3n) .timeline-strip{background:#93c5fd}.timeline-turn:nth-child(4n) .timeline-strip{background:#f59e0b}.extension-note{color:#61666b;margin:0 0 10px;font-size:12px;line-height:1.6}.extension-table{border:1px solid var(--line);border-radius:10px;overflow:hidden}.extension-row{border-bottom:1px solid #0000000a;grid-template-columns:148px 1fr 66px;align-items:center;gap:12px;padding:9px 13px;display:grid}.extension-row:last-child{border-bottom:0}.extension-head{background:var(--soft);color:var(--faint);font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase;padding-top:7px;padding-bottom:7px}.extension-owners{flex-wrap:wrap;gap:5px;min-width:0;display:flex}.extension-owners span{color:var(--blue);font:10.5px var(--mono);overflow-wrap:anywhere;background:#e4edfd;border-radius:4px;padding:1px 7px}.raw-json{border:1px solid var(--line);border-radius:8px;overflow:hidden}.raw-json summary{cursor:pointer;color:var(--muted);font:10.5px var(--mono);padding:7px 9px}.raw-json-body{border-top:1px solid var(--line);white-space:pre-wrap;margin:0;padding:9px}.detail-actions{gap:7px;margin-top:14px;display:flex}.detail-actions button{border:1px solid var(--line);color:#61666b;background:#fff;border-radius:7px;padding:5px 9px;font-size:11px}.detail-actions button:disabled{cursor:not-allowed;opacity:.5}.status-pill.running{color:var(--blue)}.status-pill.running:before{background:var(--blue);box-shadow:0 0 8px #4176e673}.palette-group button.active{background:#f1f3f5}.file-actions input{min-width:180px;height:29px;font:11.5px var(--mono);background:#fff;border:1px solid #0000001a;border-radius:7px;padding:0 9px}.file-actions input:focus{border-color:#4176e680;outline:0}.action-error{color:var(--red);margin:9px 0 0;font-size:11.5px}.provider-result{color:var(--blue);font:10.5px var(--mono);margin-top:9px;display:block}
1
+ :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#0f1115;--muted:#81858c;--faint:#adb2b8;--line:#00000017;--soft:#f9fafb;--blue:#4176e6;--blue-soft:#edf3fe;--green:#22c55e;--red:#ec1313;--amber:#f59e0b;--mono:"JetBrains Mono","SFMono-Regular",Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{color:var(--ink);font:13px/1.5 var(--sans);-webkit-font-smoothing:antialiased;background:#fff}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:1px;outline:2px solid #4176e673}[hidden]{display:none!important}.app-frame{background:#fff;width:100%;height:100%;display:flex;overflow:hidden}.sidebar{background:var(--soft);border-right:1px solid #0000000f;flex-direction:column;flex:0 0 264px;width:264px;min-height:0;display:flex}.brand-row{flex:0 0 48px;align-items:center;gap:9px;height:48px;padding:0 14px;display:flex}.brand-row strong{letter-spacing:-.1px;font-size:13px;font-weight:600}.pi-mark{background:var(--ink);color:#fff;width:22px;height:22px;font:13px var(--mono);border-radius:6px;flex:none;place-items:center;display:grid}.pi-mark.large{border-radius:11px;width:38px;height:38px;font-size:19px}.version{color:var(--faint);font:10px var(--mono);margin-left:auto}.sidebar-actions{flex-direction:column;gap:8px;padding:0 10px 10px;display:flex}.new-session{background:var(--ink);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:32px;font-size:12.5px;font-weight:500;display:flex}.new-session:hover,.send-button:hover{background:#43454a}.sidebar-actions input{background:#fff;border:1px solid #0000001a;border-radius:8px;outline:none;width:100%;height:30px;padding:0 10px;font-size:12px}.sidebar-scroll{flex:1;min-height:0;padding:0 8px 8px;overflow:auto}.session-group{margin-bottom:8px}.group-label{color:var(--faint);letter-spacing:.04em;padding:6px 8px 4px;font-size:10px}.session-row{text-align:left;border-radius:8px;align-items:center;gap:7px;width:100%;padding:7px 9px;display:flex}.session-row:hover{background:#f1f3f5}.session-row.active{background:#ebeef2}.session-dot{background:#cfd3d6;border-radius:50%;flex:none;width:6px;height:6px}.session-dot.running{background:var(--green);animation:1.4s ease-in-out infinite pulse}.session-dot.ok{background:var(--green)}.session-dot.warn{background:var(--amber)}.session-dot.error{background:var(--red)}.session-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.session-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.session-copy small{text-overflow:ellipsis;white-space:nowrap;color:var(--faint);font:10px var(--mono);overflow:hidden}.runtime-cells{color:var(--faint);font:9.5px var(--mono);border-top:1px solid #0000000f;flex-wrap:wrap;gap:4px 12px;padding:8px 19px 9px;display:flex}.runtime-cells span{gap:5px;display:flex}.runtime-cells b{font-weight:400}.runtime-cells strong{color:#61666b;font-weight:400}.sidebar-footer{border-top:1px solid #0000000f;flex-direction:column;gap:2px;padding:6px 10px 8px;display:flex}.sidebar-link{text-align:left;border-radius:8px;align-items:center;gap:9px;height:30px;padding:0 9px;font-size:12.5px;display:flex}.sidebar-link:hover{background:#f1f3f5}.sidebar-link span:nth-child(2){flex:1}.sidebar-link b{color:#61666b;font:10px var(--mono);background:#ebeef2;border-radius:20px;padding:1px 6px;font-weight:400}.link-glyph{color:var(--blue);font:11.5px var(--mono)}.main-pane{flex-direction:column;flex:1;min-width:0;display:flex}.main-header{border-bottom:1px solid #0000000f;flex:0 0 48px;align-items:center;gap:12px;height:48px;padding:0 16px;display:flex}.active-heading{flex-direction:column;min-width:0;display:flex}.active-heading strong,.active-heading small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.active-heading strong{font-size:13px;font-weight:600}.active-heading small{color:var(--faint);font:10px var(--mono)}.header-spacer{flex:1}.run-indicator{color:#61666b;font:10.5px var(--mono);flex:none;align-items:center;gap:6px;display:flex}.run-indicator>span{background:var(--green);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite pulse}.run-indicator button{color:var(--red);border:1px solid #ec13133d;border-radius:6px;padding:2px 8px;font-size:11px}.run-indicator.running>span{background:var(--blue)}.view-tabs{background:#f1f3f5;border-radius:8px;gap:2px;padding:2px;display:flex}.view-tab{color:var(--muted);border-radius:6px;padding:4px 11px;font-size:12px}.view-tab.active{color:var(--ink);background:#fff;font-weight:600;box-shadow:0 1px 3px #00000014}.session-menu,.details-toggle{color:#61666b;background:#fff;border:1px solid #0000001a;border-radius:8px;height:28px}.session-menu{width:28px;font-size:15px}.details-toggle{padding:0 9px;font-size:12px}.session-menu:hover,.details-toggle:hover{background:#f1f3f5}.view-host,.view-panel{flex-direction:column;flex:1;min-height:0;display:flex}.chat-scroll{flex:1;min-height:0;padding:20px 24px 4px;overflow-y:auto}.turn{max-width:748px;margin:0 auto 16px;font-size:13.5px;line-height:1.78}.turn.user{justify-content:flex-end;display:flex}.user-bubble{background:var(--blue-soft);white-space:pre-wrap;border-radius:12px;max-width:84%;padding:10px 14px}.turn-text{white-space:pre-wrap;margin:0}.reasoning-head{color:var(--muted);align-items:center;gap:6px;padding:0;font-size:11.5px;display:flex}.reasoning-head .caret{color:var(--faint);font-size:9px}.reasoning-body{color:#61666b;white-space:pre-wrap;border-left:2px solid #ebeef2;margin:6px 0 0;padding-left:11px;font-size:12.5px;line-height:1.75;display:none}.reasoning:hover .reasoning-body{display:block}.plugin-event{height:30px;color:var(--blue);font:11px var(--mono);background:#f7faff;border:1px dashed #4176e659;border-radius:8px;align-items:center;gap:8px;padding:0 11px;display:flex}.plugin-event>span:last-child{text-overflow:ellipsis;white-space:nowrap;color:#61666b;font:12px var(--sans);overflow:hidden}.plugin-hook{background:#e4edfd;border-radius:4px;padding:1px 6px;color:#81858c!important;font:10px var(--mono)!important}.tool-card,.approval-card,.subagent-card,.todo-card{border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}.tool-head,.subagent-head{text-align:left;background:#fff;align-items:center;gap:9px;width:100%;min-height:34px;padding:7px 11px;display:flex}.tool-head{font:11.5px var(--mono)}.tool-glyph{width:12px;color:var(--muted)}.tool-target,.subagent-goal{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px;overflow:hidden}.tool-head .tool-target,.subagent-goal{flex:1}.tool-stat{color:var(--muted)}.tool-detail-link{color:var(--blue);font:10.5px var(--sans)}.tool-output,.diff-preview,.toml{background:var(--soft);white-space:pre-wrap;word-break:break-word;color:#61666b;font:11.5px/1.7 var(--mono);border-top:1px solid #0000000f;margin:0;padding:10px 12px}.diff-line{font:11.5px/1.7 var(--mono);gap:10px;padding:0 8px;display:flex}.diff-line.added{background:#e6faed}.diff-line.removed{background:#fff0f0}.diff-no{width:30px;color:var(--faint);text-align:right}.diff-sign{width:8px;color:var(--green)}.diff-line.removed .diff-sign{color:var(--red)}.approval-card{background:#fffaf0;border-color:#f59e0b66;padding:11px 13px}.approval-card pre{background:0 0;border:0;padding:8px 0}.approval-actions{gap:7px;margin-top:4px;display:flex}.approval-actions button,.plugin-add button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 11px;font-size:11.5px}.approval-actions .primary,.plugin-add .primary{background:var(--ink);color:#fff}.approval-actions .danger{color:var(--red)}.subagent-head{font-size:12.5px}.subagent-glyph{color:#679efe;font:11px var(--mono)}.subagent-preset{color:#81858c;font:10.5px var(--mono);background:#e4edfd;border-radius:4px;padding:1px 6px}.subagent-duration{color:var(--faint);font:10.5px var(--mono)}.subagent-body{border-top:1px solid #0000000f;padding:4px 11px 9px;display:block}.subagent-lineage{color:var(--faint);font:10px var(--mono);padding:6px 0 4px;display:block}.subagent-step{border-left:2px solid #e4edfd;align-items:center;gap:8px;padding:4px 0 4px 10px;display:flex}.subagent-step code{width:42px;color:var(--muted);font:10.5px var(--mono)}.subagent-step span{text-overflow:ellipsis;white-space:nowrap;color:#61666b;font:11px var(--mono);flex:1;overflow:hidden}.subagent-step small{color:var(--faint);font:10px var(--mono)}.subagent-body p{border-top:1px solid #0000000f;margin:8px 0 0;padding-top:8px}.todo-head{border-bottom:1px solid #0000000f;align-items:center;gap:8px;height:32px;padding:0 11px;display:flex}.todo-head small{color:var(--faint);font:10.5px var(--mono)}.todo-row{border-bottom:1px solid #0000000a;align-items:flex-start;gap:9px;padding:7px 11px;display:flex}.todo-row.done{color:var(--muted);text-decoration:line-through}.todo-mark{color:var(--green);font:11px var(--mono)}.stats-row{color:var(--faint);font:10.5px var(--mono);flex-wrap:wrap;gap:14px;display:flex}.composer-wrap{flex:none;padding:8px 24px 14px}.context-line{max-width:748px;color:var(--faint);font:10.5px var(--mono);align-items:center;gap:9px;margin:0 auto 8px;display:flex}.context-line b{color:var(--muted);font-weight:400}.context-line button{color:var(--blue);padding:0;font-size:11px}.context-bar{background:#ebeef2;border-radius:3px;flex:1;height:4px;display:flex;overflow:hidden}.context-bar i{height:100%}.context-bar.expanded{height:8px}.composer{background:#fff;border:1px solid #0000001f;border-radius:12px;max-width:748px;margin:0 auto;overflow:hidden;box-shadow:0 1px 2px #00000008}.composer textarea{resize:none;width:100%;min-height:65px;color:var(--ink);background:0 0;border:0;outline:0;padding:11px 13px 4px;font-size:13.5px;line-height:1.7;display:block}.composer-tools{align-items:center;gap:6px;padding:6px 8px 8px;display:flex}.composer-tools select,.tool-chip{height:26px;font:11px var(--mono);background:#fff;border:1px solid #0000001a;border-radius:7px;padding:0 7px}.tool-chip{color:#61666b;font-family:var(--sans);padding:0 9px;font-size:11.5px}.composer-hint{color:#cfd3d6;font:10px var(--mono);text-align:right;flex:1}.send-button{background:var(--ink);color:#fff;border-radius:8px;width:28px;height:28px;font-size:15px}.send-button:disabled{cursor:not-allowed;opacity:.45}.new-session-screen{text-align:center;flex-direction:column;align-items:center;gap:11px;max-width:580px;margin:0 auto;padding:40px 0;display:flex}.new-session-screen h2{margin:0;font-size:16.5px}.new-session-screen p{color:var(--muted);margin:0}.workspace-picker{text-align:left;gap:6px;width:100%;margin-top:12px;display:grid}.workspace-row{border:1px solid var(--line);text-align:left;background:#fff;border-radius:9px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.workspace-row:hover{background:var(--soft);border-color:#4176e666}.workspace-row code{text-overflow:ellipsis;white-space:nowrap;font:12px var(--mono);flex:1;overflow:hidden}.workspace-row small{color:var(--faint);font:10px var(--mono);margin-top:3px;display:block}.workspace-row .live{color:var(--green)}.workspace-row .offline{color:#cfd3d6}.effective-config{background:var(--soft);text-align:left;border:1px solid #00000014;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;width:100%;padding:9px 12px;display:flex}.effective-config code{color:var(--faint);font:10.5px var(--mono)}.effective-config span{color:#61666b;font:10.5px var(--mono)}.trajectory-summary{border-bottom:1px solid var(--line);color:var(--muted);flex:none;padding:12px 16px 10px;font-size:11.5px}.trajectory-summary b{color:var(--faint);font:10.5px var(--mono);margin-left:9px;font-weight:400}.timeline{gap:3px;height:26px;margin-top:8px;display:flex}.timeline-turn{background:#ebeef2;border-radius:3px;align-items:stretch;padding:0;display:flex;overflow:hidden}.timeline-strip{opacity:.9;width:100%;display:block}.source-filters{border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;align-items:center;gap:6px;padding:9px 16px;display:flex}.filter{color:var(--muted);border:1px solid #0000001a;border-radius:20px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;display:flex}.filter.active{background:var(--blue-soft);color:var(--blue);border-color:#4176e659}.filter b{color:var(--faint);font:10px var(--mono);font-weight:400}.event-count{color:var(--faint);font:10.5px var(--mono);margin-left:auto}.event-table{flex:1;min-height:0;overflow:auto}.event-head,.event-row{grid-template-columns:78px 132px 1fr 88px 68px;align-items:center;gap:12px;padding:7px 16px;display:grid}.event-head{background:var(--soft);color:var(--faint);font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid #0000000f}.event-row{text-align:left;border-bottom:1px solid #0000000a;width:100%;font-size:12px}.event-row:hover{background:var(--soft)}.event-row>span,.event-row code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.event-row>span:first-child,.event-row>span:last-child{color:var(--faint);font:10.5px var(--mono)}.event-row strong{text-overflow:ellipsis;white-space:nowrap;font-weight:400;overflow:hidden}.event-row>span:nth-child(2){color:#61666b;font:11px var(--mono);align-items:center;gap:7px;display:flex}.event-dot{background:var(--blue);border-radius:2px;flex:none;width:6px;height:6px}.files-content{max-width:820px;padding:18px 24px}.files-title{align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.files-title strong{font-size:13px}.files-title span{color:var(--faint);font:11px var(--mono)}.file-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}.file-row{border-bottom:1px solid #0000000a;align-items:center;gap:12px;padding:10px 13px;display:flex}.file-row:last-child{border-bottom:0}.file-row code{text-overflow:ellipsis;white-space:nowrap;font:12px var(--mono);flex:1;overflow:hidden}.file-kind{color:#61666b;font:10px var(--mono);background:#f1f3f5;border-radius:4px;padding:1px 6px}.file-kind.new{color:#16a34a;background:#e6faed}.file-row .add{color:var(--green);font:11px var(--mono)}.file-row .del{color:var(--red);font:11px var(--mono)}.diff-button{color:var(--blue);font-size:11.5px}.file-actions{gap:8px;margin-top:12px;display:flex}.file-actions button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px 11px;font-size:11.5px}.file-actions .primary{background:var(--ink);color:#fff}.details-panel{background:#fff;border-left:1px solid #0000001a;flex:0 336px;width:336px;min-width:268px}.details-panel>header{border-bottom:1px solid #0000000f;align-items:center;gap:8px;height:40px;padding:0 12px;display:flex}.details-panel>header strong{flex:1;font-size:13px}.details-panel>header button{color:var(--muted);font-size:19px;line-height:1}.details-body{padding:12px;overflow:auto}.detail-stats{grid-template-columns:1fr 1fr;gap:7px;margin-bottom:12px;display:grid}.detail-stats>div{border:1px solid #00000014;border-radius:8px;padding:9px}.detail-stats small,.detail-section>small{color:var(--faint);font:9.5px var(--mono);letter-spacing:.04em;display:block}.detail-stats b{font:12.5px var(--mono);margin-top:2px;font-weight:400;display:block}.detail-section{flex-direction:column;gap:5px;margin-top:14px;display:flex}.detail-plugin{color:var(--blue);font:10.5px var(--mono);overflow-wrap:anywhere;border:1px solid #00000014;border-radius:8px;padding:6px 9px;display:block}.raw-json{margin:14px 0 0}.plugins-view{min-width:0}.subnav{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:10px;padding:10px 16px;font-size:11.5px;display:flex}.subnav>a{color:var(--blue);margin-left:auto}.segmented{background:#f1f3f5;border-radius:8px;gap:2px;padding:2px;display:flex}.segmented button{color:var(--muted);border-radius:6px;padding:4px 11px;font-size:12px}.segmented button.active{color:var(--ink);background:#fff;font-weight:600;box-shadow:0 1px 3px #00000014}.plugins-scroll{flex:1;padding:14px 16px;overflow:auto}.plugins-list{flex-direction:column;gap:9px;max-width:900px;display:flex}.plugin-card{border:1px solid var(--line);border-radius:10px;padding:11px 13px}.plugin-card-head{align-items:flex-start;gap:10px;display:flex}.plugin-icon{color:var(--blue);font:11px var(--mono);margin-top:2px}.plugin-copy{flex:1;min-width:0}.plugin-title{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.plugin-title code{font:12px var(--mono);font-weight:500}.plugin-title small{color:var(--faint);font:10px var(--mono)}.capability,.update,.local{color:#61666b;background:#ebeef2;border-radius:4px;padding:1px 6px;font-size:10px}.update{background:var(--blue-soft);color:var(--blue)}.local{color:#dd8629;font:10px var(--mono);background:#fef5e7}.plugin-copy p{color:#61666b;margin:4px 0 7px;font-size:12px;line-height:1.6}.hook-list{flex-wrap:wrap;gap:5px;display:flex}.hook-list span{color:var(--muted);font:10px var(--mono);border:1px solid #00000014;border-radius:4px;padding:1px 6px}.switch{background:#cfd3d6;border-radius:20px;flex:0 0 34px;width:34px;height:20px;position:relative}.switch.on{background:var(--ink)}.switch i{background:#fff;border-radius:50%;width:16px;height:16px;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch.on i{left:16px}.plugin-add{border:1px dashed #00000029;border-radius:10px;align-items:center;gap:9px;padding:12px 13px;display:flex}.plugin-add code{color:var(--muted);font:11.5px var(--mono)}.plugin-add input{min-width:0;height:28px;font:11.5px var(--mono);border:1px solid #0000001a;border-radius:7px;flex:1;padding:0 9px}.settings-overlay,.command-palette{z-index:40;background:#0000003d;place-items:center;padding:40px;display:grid;position:fixed;inset:0}.settings-dialog{background:#fff;border-radius:14px;width:100%;max-width:880px;height:100%;max-height:620px;display:flex;overflow:hidden;box-shadow:0 24px 64px #0000003d}.settings-dialog>aside{background:var(--soft);border-right:1px solid #0000000f;flex-direction:column;flex:0 0 184px;gap:2px;width:184px;padding:12px 8px;display:flex}.settings-dialog>aside>strong{padding:4px 9px 10px;font-size:13px}.settings-tab{text-align:left;border-radius:8px;height:30px;padding:0 9px;font-size:12.5px}.settings-tab.active{background:#f1f3f5;font-weight:600}.settings-tab b{float:right;color:#61666b;font:10px var(--mono);font-weight:400}.settings-dialog>section{flex-direction:column;flex:1;min-width:0;display:flex}.settings-dialog section>header{border-bottom:1px solid #0000000f;align-items:center;height:44px;padding:0 16px;display:flex}.settings-dialog section>header strong{flex:1;font-size:13px}.settings-dialog section>header button{color:var(--muted);font-size:19px}.settings-body{flex:1;padding:14px 16px;overflow:auto}.settings-intro{border-bottom:1px solid var(--line);padding:5px 0 11px}.settings-intro small{color:var(--faint);font:9.5px var(--mono)}.settings-intro h3{font:13px var(--mono);margin:4px 0;font-weight:500}.settings-intro p{color:var(--muted);margin:0;font-size:12px}.general-row{border-bottom:1px solid #0000000f;align-items:center;gap:12px;padding:12px 0;display:flex}.general-row>div{flex:1}.general-row strong{font-size:12.5px;display:block}.general-row small{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.provider-card{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:12px 13px}.provider-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.provider-dot{color:var(--green);font-size:10px}.provider-head strong{font-size:12.5px}.provider-state{color:var(--green);font:10.5px var(--mono);margin-left:auto}.provider-field{align-items:center;gap:8px;margin-top:7px;display:flex}.provider-field code{color:#61666b;width:66px;font:11px var(--mono);flex:0 0 66px}.provider-field input{min-width:0;height:28px;font:11.5px var(--mono);background:#fff;border:1px solid #0000001a;border-radius:7px;flex:1;padding:0 9px}.provider-footer{align-items:center;gap:8px;margin-top:9px;display:flex}.provider-footer code{color:var(--muted);font:10.5px var(--mono)}.provider-footer button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:4px 9px;font-size:11px}.provider-footer .link-button{color:var(--blue);border:0;margin-left:auto}.model-chips{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.model-chips span{color:var(--blue);font:10.5px var(--mono);background:#e4edfd;border-radius:4px;padding:1px 7px}.add-provider{text-align:left;color:#61666b;border:1px dashed #00000029;border-radius:10px;align-items:center;gap:9px;width:100%;padding:11px 13px;display:flex}.add-provider small{color:var(--faint);font:10.5px var(--mono);margin-left:auto}.toml-toolbar{color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;font-size:11.5px;display:flex}.toml-toolbar span{flex:1}.toml-toolbar button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:4px 9px;font-size:11px}.toml-toolbar button.active{background:#f1f3f5;font-weight:600}.toml-toolbar .primary{background:var(--ink);color:#fff}.toml{border:1px solid var(--line);color:#61666b;border-radius:9px;min-height:420px}.command-palette{background:#0000002e}.palette-dialog{background:#fff;border:1px solid #0000001f;border-radius:12px;width:100%;max-width:600px;overflow:hidden;box-shadow:0 24px 64px #00000038}.palette-dialog>input{border:0;border-bottom:1px solid var(--line);outline:0;width:100%;padding:12px 14px}.palette-group{padding:8px}.palette-group small{color:var(--faint);font:10px var(--mono);padding:4px 6px;display:block}.palette-group button{text-align:left;width:100%;font:12px var(--mono);padding:9px 7px;display:flex}.palette-group button span{color:var(--muted);font:12px var(--sans);margin-left:16px}@keyframes pulse{50%{opacity:.3}}@media (width<=1100px){.details-panel,.details-toggle{display:none}}@media (width<=760px){.sidebar{flex-basis:216px;width:216px}.main-header{gap:7px;padding:0 10px}.active-heading small{max-width:180px}.composer-wrap,.chat-scroll{padding-left:12px;padding-right:12px}.view-tabs{margin-left:auto}.composer-hint{display:none}}@media (width<=560px){.sidebar{flex-basis:54px;width:54px}.brand-row{justify-content:center;padding:0}.brand-row strong,.version,.sidebar-actions,.sidebar-scroll,.runtime-cells,.sidebar-footer,.main-header .active-heading small{display:none}.view-tab{padding:4px 7px}.details-panel{display:none}.composer-tools{justify-content:flex-end}}.main-header{position:relative}.context-bar i:first-child{background:#c7d6f5;width:44%}.context-bar i:nth-child(2){background:#dce7fb;width:33%}.context-bar i:nth-child(3){background:#edf2fd;width:23%}.file-summary{color:var(--muted);font:10.5px var(--mono);margin:-8px 0 12px}.settings-note{color:var(--muted);margin-top:10px;font-size:11px;line-height:1.5;display:block}.extension-list{max-width:900px}.extension-list .empty-state{border:1px dashed #00000024;border-radius:10px}.subnav>a{white-space:nowrap}.plugin-card .switch{margin-left:auto}.session-menu-popover[hidden]{display:none}.empty-state{color:var(--muted);text-align:center;padding:28px 16px;font-size:12px}.settings-plugin-row{font:11.5px var(--mono);color:#61666b;border-bottom:1px solid #0000000f;padding:8px 0}.settings-body>p{color:var(--muted);font-size:12px}.provider-card input{width:100%;height:28px;font:11.5px var(--mono);border:1px solid #0000001a;border-radius:7px;margin-top:7px;padding:0 9px;display:block}.stop-button{color:var(--red);border:1px solid #ec13133d;border-radius:6px;padding:2px 8px;font-size:11px}.stop-button:disabled{opacity:.45;cursor:not-allowed}.session-menu-popover{z-index:35;background:#fff;border:1px solid #0000001a;border-radius:10px;width:224px;position:absolute;top:34px;right:0;overflow:hidden;box-shadow:0 10px 28px #00000024}.session-menu{position:relative}.session-action{text-align:left;border-bottom:1px solid #0000000a;flex-direction:column;gap:1px;width:100%;padding:8px 11px;display:flex}.session-action:hover{background:var(--soft)}.session-action strong{font-size:12px}.session-action small{color:var(--faint);font-size:10px}.plugins-page{flex-direction:column;flex:1;min-height:0;display:flex}.plugin-description{color:var(--muted);margin:4px 0 0;font-size:12px}.plugin-card{display:block}.plugin-card>.plugin-icon{margin-right:9px}:root{--starter-border:#0000001a}.starter-grid{grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:10px;display:grid}.starter-card{border:1px solid var(--starter-border);text-align:left;background:#fff;border-radius:10px;padding:10px 12px}.starter-card:hover{background:var(--soft);border-color:#4176e666}.starter-card strong,.starter-card small{display:block}.starter-card strong{font-size:12.5px}.starter-card small{color:var(--muted);font:10.5px var(--mono);margin-top:4px}:root{--empty:#9aa0a6}.timeline-empty{color:var(--faint);font:10px var(--mono);padding:5px 8px}.timeline-turn{flex:1;min-width:4px}.timeline-strip{background:var(--blue);border-radius:3px;height:100%}.timeline-turn:nth-child(3n) .timeline-strip{background:#93c5fd}.timeline-turn:nth-child(4n) .timeline-strip{background:#f59e0b}.extension-note{color:#61666b;margin:0 0 10px;font-size:12px;line-height:1.6}.extension-table{border:1px solid var(--line);border-radius:10px;overflow:hidden}.extension-row{border-bottom:1px solid #0000000a;grid-template-columns:148px 1fr 66px;align-items:center;gap:12px;padding:9px 13px;display:grid}.extension-row:last-child{border-bottom:0}.extension-head{background:var(--soft);color:var(--faint);font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase;padding-top:7px;padding-bottom:7px}.extension-owners{flex-wrap:wrap;gap:5px;min-width:0;display:flex}.extension-owners span{color:var(--blue);font:10.5px var(--mono);overflow-wrap:anywhere;background:#e4edfd;border-radius:4px;padding:1px 7px}.raw-json{border:1px solid var(--line);border-radius:8px;overflow:hidden}.raw-json summary{cursor:pointer;color:var(--muted);font:10.5px var(--mono);padding:7px 9px}.raw-json-body{border-top:1px solid var(--line);white-space:pre-wrap;margin:0;padding:9px}.detail-actions{gap:7px;margin-top:14px;display:flex}.detail-actions button{border:1px solid var(--line);color:#61666b;background:#fff;border-radius:7px;padding:5px 9px;font-size:11px}.detail-actions button:disabled{cursor:not-allowed;opacity:.5}.marketplace-view{min-width:0}.marketplace-hero{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f8f9ff,#fff);justify-content:space-between;align-items:flex-start;gap:20px;padding:18px 16px 15px;display:flex}.marketplace-hero small{color:var(--blue);font:10px var(--mono);letter-spacing:.08em}.marketplace-hero h2{margin:4px 0 3px;font-size:17px}.marketplace-hero p{color:var(--muted);margin:0;font-size:12px}.marketplace-hero>a{color:var(--blue);flex:none;font-size:12px}.marketplace-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 16px;display:flex}.marketplace-toolbar input{border:1px solid #0000001a;border-radius:7px;outline:0;flex:1;min-width:220px;height:30px;padding:0 10px;font-size:12px}.marketplace-toolbar select{color:#61666b;background:#fff;border:1px solid #0000001a;border-radius:7px;height:30px;padding:0 9px;font-size:12px}.marketplace-toolbar>span{color:var(--faint);font:10.5px var(--mono)}.marketplace-list{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:10px;max-width:940px;display:grid}.marketplace-card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:13px}.marketplace-card-head{align-items:flex-start;gap:10px;display:flex}.marketplace-icon{color:var(--blue);font:13px var(--mono)}.marketplace-card .plugin-copy{min-width:0}.marketplace-card .plugin-title strong{font-size:13px}.marketplace-badge,.marketplace-source{font:10px var(--mono);border-radius:4px;padding:1px 6px}.marketplace-badge{color:#16a34a;background:#e6faed}.marketplace-source.official{color:var(--blue);background:#e4edfd}.marketplace-source.community{color:#dd8629;background:#fef5e7}.marketplace-package{color:#61666b;font:10.5px var(--mono);overflow-wrap:anywhere;margin-top:5px;display:block}.marketplace-card p{color:var(--muted);margin:6px 0 8px;font-size:12px;line-height:1.55}.marketplace-install{background:var(--blue-soft);color:var(--blue);border:1px solid #4176e64d;border-radius:7px;flex:none;padding:5px 8px;font-size:11px}.marketplace-meta{color:var(--faint);font:10.5px var(--mono);border-top:1px solid #0000000f;align-items:center;gap:8px;margin-top:11px;padding-top:9px;display:flex}.marketplace-meta a{color:var(--blue);font:11px var(--sans);margin-left:auto}.marketplace-contribute{color:var(--muted);background:#f8f9ff;border:1px dashed #4176e659;border-radius:10px;align-items:center;gap:10px;margin-top:13px;padding:11px 13px;font-size:11.5px;display:flex}.marketplace-contribute strong{color:var(--ink);font-size:12px}.marketplace-contribute a{color:var(--blue);flex:none;margin-left:auto}.status-pill.running{color:var(--blue)}.status-pill.running:before{background:var(--blue);box-shadow:0 0 8px #4176e673}.palette-group button.active{background:#f1f3f5}.file-actions input{min-width:180px;height:29px;font:11.5px var(--mono);background:#fff;border:1px solid #0000001a;border-radius:7px;padding:0 9px}.file-actions input:focus{border-color:#4176e680;outline:0}.action-error{color:var(--red);margin:9px 0 0;font-size:11.5px}.provider-result{color:var(--blue);font:10.5px var(--mono);margin-top:9px;display:block}
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <meta name="theme-color" content="#071016">
7
7
  <title>Pi Harness / Control Room</title>
8
- <script type="module" crossorigin src="/assets/index-C4tLweAB.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-DPgRbQ4_.css">
8
+ <script type="module" crossorigin src="/assets/index-Bwqek8LF.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-DCHSASjq.css">
10
10
  </head>
11
11
  <body>
12
12
  <main id="root"></main>
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/web",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Browser application entry for Pi Harness",
5
5
  "private": true,
6
6
  "type": "module",
@@ -10,11 +10,11 @@
10
10
  "dev": "vite"
11
11
  },
12
12
  "dependencies": {
13
- "@pi-harness/api-gateway": "0.1.1",
14
- "@pi-harness/client-web": "0.1.1",
15
- "@pi-harness/core": "0.1.1",
16
- "@pi-harness/host-webserver": "0.1.1",
17
- "@pi-harness/web-app": "0.1.1"
13
+ "@pi-harness/api-gateway": "0.1.2",
14
+ "@pi-harness/client-web": "0.1.2",
15
+ "@pi-harness/core": "0.1.2",
16
+ "@pi-harness/host-webserver": "0.1.2",
17
+ "@pi-harness/web-app": "0.1.2"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/node": "22.19.19",
@@ -5,3 +5,4 @@
5
5
  :root{--empty:#9aa0a6}.empty-state{padding:28px 16px;color:var(--muted);text-align:center;font-size:12px}.settings-plugin-row{padding:8px 0;border-bottom:1px solid rgba(0,0,0,.06);font:11.5px var(--mono);color:#61666b}.settings-body>p{color:var(--muted);font-size:12px}.provider-card input{display:block;width:100%;height:28px;margin-top:7px;border:1px solid rgba(0,0,0,.1);border-radius:7px;padding:0 9px;font:11.5px var(--mono)}.stop-button{padding:2px 8px;border:1px solid rgba(236,19,19,.24);border-radius:6px;color:var(--red);font-size:11px}.stop-button:disabled{opacity:.45;cursor:not-allowed}.session-menu-popover{position:absolute;top:34px;right:0;z-index:35;width:224px;border:1px solid rgba(0,0,0,.1);border-radius:10px;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.14);overflow:hidden}.session-menu{position:relative}.session-action{display:flex;flex-direction:column;gap:1px;width:100%;padding:8px 11px;border-bottom:1px solid rgba(0,0,0,.04);text-align:left}.session-action:hover{background:var(--soft)}.session-action strong{font-size:12px}.session-action small{color:var(--faint);font-size:10px}.plugins-page{display:flex;flex:1;min-height:0;flex-direction:column}.plugin-description{margin:4px 0 0;color:var(--muted);font-size:12px}.plugin-card{display:block}.plugin-card>.plugin-icon{margin-right:9px}
6
6
  :root{--starter-border:rgba(0,0,0,.1)}.starter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:10px}.starter-card{padding:10px 12px;border:1px solid var(--starter-border);border-radius:10px;background:#fff;text-align:left}.starter-card:hover{border-color:rgba(65,118,230,.4);background:var(--soft)}.starter-card strong,.starter-card small{display:block}.starter-card strong{font-size:12.5px}.starter-card strong{font-size:12.5px}.starter-card small{margin-top:4px;color:var(--muted);font:10.5px var(--mono)}
7
7
  :root{--empty:#9aa0a6}.timeline-empty{padding:5px 8px;color:var(--faint);font:10px var(--mono)}.timeline-turn{flex:1;min-width:4px}.timeline-strip{height:100%;background:var(--blue);border-radius:3px}.timeline-turn:nth-child(3n) .timeline-strip{background:#93c5fd}.timeline-turn:nth-child(4n) .timeline-strip{background:#f59e0b}.extension-note{margin:0 0 10px;color:#61666b;font-size:12px;line-height:1.6}.extension-table{border:1px solid var(--line);border-radius:10px;overflow:hidden}.extension-row{display:grid;grid-template-columns:148px 1fr 66px;gap:12px;align-items:center;padding:9px 13px;border-bottom:1px solid rgba(0,0,0,.04)}.extension-row:last-child{border-bottom:0}.extension-head{padding-top:7px;padding-bottom:7px;background:var(--soft);color:var(--faint);font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase}.extension-owners{display:flex;flex-wrap:wrap;gap:5px;min-width:0}.extension-owners span{padding:1px 7px;border-radius:4px;background:#e4edfd;color:var(--blue);font:10.5px var(--mono);overflow-wrap:anywhere}.raw-json{overflow:hidden;border:1px solid var(--line);border-radius:8px}.raw-json summary{padding:7px 9px;cursor:pointer;color:var(--muted);font:10.5px var(--mono)}.raw-json-body{margin:0;padding:9px;border-top:1px solid var(--line);white-space:pre-wrap}.detail-actions{display:flex;gap:7px;margin-top:14px}.detail-actions button{padding:5px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#61666b;font-size:11px}.detail-actions button:disabled{cursor:not-allowed;opacity:.5}
8
+ .marketplace-view{min-width:0}.marketplace-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 16px 15px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f8f9ff,#fff)}.marketplace-hero small{color:var(--blue);font:10px var(--mono);letter-spacing:.08em}.marketplace-hero h2{margin:4px 0 3px;font-size:17px}.marketplace-hero p{margin:0;color:var(--muted);font-size:12px}.marketplace-hero>a{flex:none;color:var(--blue);font-size:12px}.marketplace-toolbar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line)}.marketplace-toolbar input{min-width:220px;flex:1;height:30px;padding:0 10px;border:1px solid rgba(0,0,0,.1);border-radius:7px;outline:0;font-size:12px}.marketplace-toolbar select{height:30px;padding:0 9px;border:1px solid rgba(0,0,0,.1);border-radius:7px;background:#fff;color:#61666b;font-size:12px}.marketplace-toolbar>span{color:var(--faint);font:10.5px var(--mono)}.marketplace-list{max-width:940px;display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:10px}.marketplace-card{padding:13px;border:1px solid var(--line);border-radius:10px;background:#fff}.marketplace-card-head{display:flex;align-items:flex-start;gap:10px}.marketplace-icon{color:var(--blue);font:13px var(--mono)}.marketplace-card .plugin-copy{min-width:0}.marketplace-card .plugin-title strong{font-size:13px}.marketplace-badge,.marketplace-source{padding:1px 6px;border-radius:4px;font:10px var(--mono)}.marketplace-badge{background:#e6faed;color:#16a34a}.marketplace-source.official{background:#e4edfd;color:var(--blue)}.marketplace-source.community{background:#fef5e7;color:#dd8629}.marketplace-package{display:block;margin-top:5px;color:#61666b;font:10.5px var(--mono);overflow-wrap:anywhere}.marketplace-card p{margin:6px 0 8px;color:var(--muted);font-size:12px;line-height:1.55}.marketplace-install{flex:none;padding:5px 8px;border:1px solid rgba(65,118,230,.3);border-radius:7px;background:var(--blue-soft);color:var(--blue);font-size:11px}.marketplace-meta{display:flex;align-items:center;gap:8px;margin-top:11px;padding-top:9px;border-top:1px solid rgba(0,0,0,.06);color:var(--faint);font:10.5px var(--mono)}.marketplace-meta a{margin-left:auto;color:var(--blue);font:11px var(--sans)}.marketplace-contribute{display:flex;align-items:center;gap:10px;margin-top:13px;padding:11px 13px;border:1px dashed rgba(65,118,230,.35);border-radius:10px;background:#f8f9ff;color:var(--muted);font-size:11.5px}.marketplace-contribute strong{color:var(--ink);font-size:12px}.marketplace-contribute a{margin-left:auto;flex:none;color:var(--blue)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/pi-harness",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "workspaces": [
6
6
  "packages/*",
@@ -19,11 +19,11 @@
19
19
  "packages"
20
20
  ],
21
21
  "dependencies": {
22
- "@pi-harness/api-gateway": "0.1.1",
23
- "@pi-harness/cli": "0.1.1",
24
- "@pi-harness/core": "0.1.1",
25
- "@pi-harness/host-webserver": "0.1.1",
26
- "@pi-harness/web-app": "0.1.1"
22
+ "@pi-harness/api-gateway": "0.1.2",
23
+ "@pi-harness/cli": "0.1.2",
24
+ "@pi-harness/core": "0.1.2",
25
+ "@pi-harness/host-webserver": "0.1.2",
26
+ "@pi-harness/web-app": "0.1.2"
27
27
  },
28
28
  "scripts": {
29
29
  "build": "npm run build -w @pi-harness/core && npm run build -w @pi-harness/plugin-hello && npm run build -w @pi-harness/cli && npm run build -w @pi-harness/host-webserver && npm run build -w @pi-harness/api-gateway && npm run build -w @pi-harness/client-web && npm run build -w @pi-harness/web-app && npm run build -w @pi-harness/web",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;;;;mBAqHlC,OAAO;;AAHxB,wBA0cE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;;;;mBAsHlC,OAAO;;AAHxB,wBA4dE"}
@@ -2,6 +2,7 @@ import { execFile } from "node:child_process";
2
2
  import { rm } from "node:fs/promises";
3
3
  import { isAbsolute, relative, resolve } from "node:path";
4
4
  import { SessionManager } from "@earendil-works/pi-coding-agent";
5
+ import { MARKETPLACE_CAPABILITIES, searchMarketplace } from "./marketplace.js";
5
6
  function sendJson(response, status, payload) {
6
7
  const body = JSON.stringify(payload);
7
8
  response.writeHead(status, { "content-type": "application/json; charset=utf-8", "cache-control": "no-store", "content-length": Buffer.byteLength(body) });
@@ -217,6 +218,23 @@ export default {
217
218
  sendJson(response, 200, jsonSafe({ items }));
218
219
  },
219
220
  });
221
+ const disposeMarketplace = services.webServer.register({
222
+ path: "/api/marketplace",
223
+ handler(request, response) {
224
+ if (request.method !== "GET") {
225
+ sendJson(response, 405, { error: "Method not allowed" });
226
+ return;
227
+ }
228
+ const url = new URL(request.url ?? "/api/marketplace", "http://localhost");
229
+ const query = url.searchParams.get("q") ?? "";
230
+ const capability = url.searchParams.get("capability") ?? "";
231
+ if (query.length > 120 || capability.length > 80) {
232
+ sendJson(response, 400, { error: "Marketplace filters are too long" });
233
+ return;
234
+ }
235
+ sendJson(response, 200, { items: searchMarketplace(query, capability), capabilities: MARKETPLACE_CAPABILITIES });
236
+ },
237
+ });
220
238
  const disposeCommands = services.webServer.register({
221
239
  path: "/api/commands",
222
240
  handler(_request, response) {
@@ -560,6 +578,7 @@ export default {
560
578
  disposeProviderTest();
561
579
  disposeProviderRefresh();
562
580
  disposePlugins();
581
+ disposeMarketplace();
563
582
  disposeCommands();
564
583
  disposeModel();
565
584
  disposeFiles();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ [
2
+ {
3
+ "id": "cordis-logger-console",
4
+ "packageName": "@deepseek-ai/cordis-plugin-logger-console",
5
+ "version": "1.0.1",
6
+ "name": "Console logger",
7
+ "description": "Exports Cordis lifecycle and runtime diagnostics to the host console.",
8
+ "author": "DeepSeek AI",
9
+ "repository": "https://github.com/deepseek-ai/deepseek-harness",
10
+ "license": "MIT",
11
+ "source": "official",
12
+ "status": "verified",
13
+ "capabilities": ["logging", "diagnostics"],
14
+ "hooks": ["context lifecycle"],
15
+ "profile": { "name": "@deepseek-ai/cordis-plugin-logger-console", "config": {} }
16
+ },
17
+ {
18
+ "id": "cordis-timer",
19
+ "packageName": "@deepseek-ai/cordis-plugin-timer",
20
+ "version": "1.1.3",
21
+ "name": "Timer",
22
+ "description": "Provides a lifecycle-owned timer service to Cordis plugins.",
23
+ "author": "DeepSeek AI",
24
+ "repository": "https://github.com/deepseek-ai/deepseek-harness",
25
+ "license": "MIT",
26
+ "source": "official",
27
+ "status": "verified",
28
+ "capabilities": ["runtime", "scheduling"],
29
+ "hooks": ["context lifecycle"],
30
+ "profile": { "name": "@deepseek-ai/cordis-plugin-timer", "config": {} }
31
+ },
32
+ {
33
+ "id": "cordis-hmr",
34
+ "packageName": "@deepseek-ai/cordis-plugin-hmr",
35
+ "version": "1.0.16",
36
+ "name": "Hot reload",
37
+ "description": "Reloads changed Cordis modules during development with lifecycle cleanup.",
38
+ "author": "DeepSeek AI",
39
+ "repository": "https://github.com/deepseek-ai/deepseek-harness",
40
+ "license": "MIT",
41
+ "source": "official",
42
+ "status": "verified",
43
+ "capabilities": ["development", "hot reload"],
44
+ "hooks": ["module reload", "full reload"],
45
+ "profile": { "name": "@deepseek-ai/cordis-plugin-hmr", "config": {} }
46
+ },
47
+ {
48
+ "id": "cordis-group",
49
+ "packageName": "@deepseek-ai/cordis-plugin-group",
50
+ "version": "1.0.1",
51
+ "name": "Plugin groups",
52
+ "description": "Composes nested Cordis plugin trees with explicit ownership and rollback.",
53
+ "author": "DeepSeek AI",
54
+ "repository": "https://github.com/deepseek-ai/deepseek-harness",
55
+ "license": "MIT",
56
+ "source": "official",
57
+ "status": "verified",
58
+ "capabilities": ["composition", "lifecycle"],
59
+ "hooks": ["nested plugin tree"],
60
+ "profile": { "name": "@deepseek-ai/cordis-plugin-group", "config": {} }
61
+ }
62
+ ]
@@ -0,0 +1,22 @@
1
+ export interface MarketplacePlugin {
2
+ readonly id: string;
3
+ readonly packageName: string;
4
+ readonly version: string;
5
+ readonly name: string;
6
+ readonly description: string;
7
+ readonly author: string;
8
+ readonly repository: string;
9
+ readonly license: string;
10
+ readonly source: "official" | "community";
11
+ readonly status: "verified" | "experimental";
12
+ readonly capabilities: readonly string[];
13
+ readonly hooks: readonly string[];
14
+ readonly profile: {
15
+ readonly name: string;
16
+ readonly config: Record<string, unknown>;
17
+ };
18
+ }
19
+ export declare const MARKETPLACE_PLUGINS: readonly MarketplacePlugin[];
20
+ export declare function searchMarketplace(query?: string, capability?: string): readonly MarketplacePlugin[];
21
+ export declare const MARKETPLACE_CAPABILITIES: string[];
22
+ //# sourceMappingURL=marketplace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../src/marketplace.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACvF;AAmBD,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAAwD,CAAC;AAErH,wBAAgB,iBAAiB,CAAC,KAAK,SAAK,EAAE,UAAU,SAAK,GAAG,SAAS,iBAAiB,EAAE,CAQ3F;AAED,eAAO,MAAM,wBAAwB,UAAoF,CAAC"}
@@ -0,0 +1,29 @@
1
+ import registry from "./marketplace-registry.json" with { type: "json" };
2
+ const npmPackagePattern = /^(?:@[a-z0-9._~-]+\/)?[a-z0-9._~-]+$/;
3
+ function isMarketplacePlugin(value) {
4
+ if (value === null || typeof value !== "object")
5
+ return false;
6
+ const item = value;
7
+ return typeof item.id === "string" && /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(item.id)
8
+ && typeof item.packageName === "string" && npmPackagePattern.test(item.packageName)
9
+ && typeof item.version === "string" && /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(item.version)
10
+ && typeof item.name === "string" && typeof item.description === "string" && typeof item.author === "string"
11
+ && typeof item.repository === "string" && item.repository.startsWith("https://") && typeof item.license === "string"
12
+ && (item.source === "official" || item.source === "community") && (item.status === "verified" || item.status === "experimental")
13
+ && Array.isArray(item.capabilities) && item.capabilities.every((entry) => typeof entry === "string")
14
+ && Array.isArray(item.hooks) && item.hooks.every((entry) => typeof entry === "string")
15
+ && item.profile !== undefined && typeof item.profile === "object" && typeof item.profile.name === "string"
16
+ && item.profile.config !== undefined && typeof item.profile.config === "object";
17
+ }
18
+ export const MARKETPLACE_PLUGINS = registry.filter(isMarketplacePlugin);
19
+ export function searchMarketplace(query = "", capability = "") {
20
+ const normalizedQuery = query.trim().toLowerCase();
21
+ const normalizedCapability = capability.trim().toLowerCase();
22
+ return MARKETPLACE_PLUGINS.filter((plugin) => {
23
+ const searchable = [plugin.name, plugin.packageName, plugin.description, plugin.author, ...plugin.capabilities, ...plugin.hooks].join(" ").toLowerCase();
24
+ return (normalizedQuery === "" || searchable.includes(normalizedQuery))
25
+ && (normalizedCapability === "" || plugin.capabilities.some((item) => item.toLowerCase() === normalizedCapability));
26
+ });
27
+ }
28
+ export const MARKETPLACE_CAPABILITIES = [...new Set(MARKETPLACE_PLUGINS.flatMap((plugin) => plugin.capabilities))].sort();
29
+ //# sourceMappingURL=marketplace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../src/marketplace.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/api-gateway",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Cordis HTTP API routes for the Pi Harness browser client",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@deepseek-ai/cordis": "4.0.1",
26
- "@pi-harness/core": "0.1.1",
27
- "@pi-harness/host-webserver": "0.1.1"
26
+ "@pi-harness/core": "0.1.2",
27
+ "@pi-harness/host-webserver": "0.1.2"
28
28
  }
29
29
  }
@@ -7,6 +7,7 @@ import { SessionManager, type AgentSessionEvent } from "@earendil-works/pi-codin
7
7
  import type Loader from "@deepseek-ai/cordis-plugin-loader";
8
8
  import type { PiRuntimeService, PiModelsService, PiHarnessLaunch } from "@pi-harness/core";
9
9
  import type { WebServer } from "@pi-harness/host-webserver";
10
+ import { MARKETPLACE_CAPABILITIES, searchMarketplace } from "./marketplace.js";
10
11
 
11
12
  interface ApiServices {
12
13
  readonly runtime: PiRuntimeService;
@@ -228,6 +229,23 @@ export default {
228
229
  sendJson(response, 200, jsonSafe({ items }));
229
230
  },
230
231
  });
232
+ const disposeMarketplace = services.webServer.register({
233
+ path: "/api/marketplace",
234
+ handler(request, response) {
235
+ if (request.method !== "GET") {
236
+ sendJson(response, 405, { error: "Method not allowed" });
237
+ return;
238
+ }
239
+ const url = new URL(request.url ?? "/api/marketplace", "http://localhost");
240
+ const query = url.searchParams.get("q") ?? "";
241
+ const capability = url.searchParams.get("capability") ?? "";
242
+ if (query.length > 120 || capability.length > 80) {
243
+ sendJson(response, 400, { error: "Marketplace filters are too long" });
244
+ return;
245
+ }
246
+ sendJson(response, 200, { items: searchMarketplace(query, capability), capabilities: MARKETPLACE_CAPABILITIES });
247
+ },
248
+ });
231
249
  const disposeCommands = services.webServer.register({
232
250
  path: "/api/commands",
233
251
  handler(_request, response) {
@@ -557,6 +575,7 @@ export default {
557
575
  disposeProviderTest();
558
576
  disposeProviderRefresh();
559
577
  disposePlugins();
578
+ disposeMarketplace();
560
579
  disposeCommands();
561
580
  disposeModel();
562
581
  disposeFiles();