@typescript-agent-harness/cli 0.31.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ :root{--bg:#fff;--panel:#f6f7f9;--border:#e3e5e8;--text:#1f2328;--muted:#6b7280;--accent:#0e7490;--accent-text:#fff;--ok:#15803d;--fail:#b91c1c;--warn:#b45309;--code-bg:#f3f4f6;--hl-keyword:#cf222e;--hl-string:#0a3069;--hl-comment:#6e7781;--hl-number:#0550ae;--hl-title:#8250df;--hl-attr:#953800;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.6}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1115;--panel:#161a20;--border:#2a2f37;--text:#e6e6e6;--muted:#9aa1ab;--accent:#22a6c4;--accent-text:#0f1115;--ok:#4ade80;--fail:#f87171;--warn:#fbbf24;--code-bg:#1c2028;--hl-keyword:#ff7b72;--hl-string:#a5d6ff;--hl-comment:#8b949e;--hl-number:#79c0ff;--hl-title:#d2a8ff;--hl-attr:#ffa657}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:4px 12px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.danger{color:var(--fail)}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.app{height:100%;display:flex}.sidebar{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;flex-shrink:0;width:260px;display:flex}.sidebar-brand{justify-content:space-between;align-items:center;padding:12px 10px 6px 14px;display:flex}.brand{align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.brand-mark{background:var(--accent);width:22px;height:22px;color:var(--accent-text);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.new-session{text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;margin:4px 8px 10px;padding:6px 10px;font-size:14px;display:flex}.new-session svg{color:var(--muted)}.new-session:not(:disabled):hover{background:var(--border)}.ws-header{letter-spacing:.3px;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;padding:0 8px 4px 14px;font-size:12px;font-weight:600;display:flex}.ws-header-tools{gap:2px;display:flex}.icon-btn{color:var(--muted);background:0 0;border:none;padding:4px;display:flex}.icon-btn:not(:disabled):hover,.icon-btn.on{background:var(--border);color:var(--text)}.sidebar-search{border:1px solid var(--accent);background:var(--bg);color:var(--muted);border-radius:7px;align-items:center;gap:6px;margin:0 8px 6px;padding:3px 4px 3px 8px;display:flex}.sidebar-search input{min-width:0;color:var(--text);font:inherit;background:0 0;border:none;outline:none;flex:1;font-size:14px}.sidebar mark{color:#1f2328;background:#fde68a;border-radius:2px}.sidebar.rail{align-items:center;gap:6px;width:56px;padding:12px 0 10px}.sidebar.rail .brand-mark{width:28px;height:28px;margin-bottom:4px;font-size:14px}.rail-btn{width:36px;height:36px;color:var(--muted);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;display:flex}.rail-btn:not(:disabled):hover{background:var(--border);color:var(--text)}.rail-btn svg{width:18px;height:18px}.rail-gap{flex:1}.sidebar-note{color:var(--muted);padding:0 12px 8px;font-size:13px}.sessions{padding:0 8px 12px;overflow-y:auto}.sessions ul{margin:0;padding:0;list-style:none}.ws>ul{padding-left:16px}.sessions-heading{color:var(--muted);padding:8px 8px 4px;font-size:12px}.session-item{border-radius:6px;margin-bottom:2px}.session-item:hover{background:var(--bg)}.session-item.current{background:var(--bg);box-shadow:inset 2px 0 0 var(--accent)}.session{align-items:center;gap:4px;width:100%;padding:2px 4px 2px 8px;display:flex}.session-pick{text-align:left;min-width:0;color:inherit;font:inherit;background:0 0;border:none;flex:1;padding:2px 0;display:flex}.session .preview{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.session-time{color:var(--muted);flex:none;font-size:12px}.session-status{flex:none;justify-content:center;align-items:center;width:12px;display:flex}.session-status .spinner{width:10px;height:10px}.status-dot{background:var(--warn);border-radius:50%;width:7px;height:7px}.session-badge{color:var(--warn);background:color-mix(in srgb, var(--warn) 14%, transparent);border-radius:4px;flex:none;padding:0 5px;font-size:11px}.ws-more{color:var(--muted);background:0 0;border:none;margin:0 0 4px 16px;padding:0 8px;font-size:12.5px;display:block}.ws-more:hover{color:var(--text)}.menu-label{letter-spacing:.3px;text-transform:uppercase;color:var(--muted);padding:4px 10px 2px;font-size:11px}.menu-check{width:16px;color:var(--accent);display:inline-block}.session-tools{flex:none;gap:2px;display:none}.session-item:hover .session-time{display:none}.session-item:hover .session-tools{display:flex}.session-tools button{color:var(--muted);background:0 0;border:none;border-radius:4px;padding:3px;display:flex}.session-tools button:hover,.session-tools button.on{color:var(--text)}.session-tools button:hover{background:var(--panel)}.context-menu{z-index:10;border:1px solid var(--border);background:var(--bg);border-radius:8px;min-width:160px;margin:0;padding:4px;list-style:none;position:fixed;box-shadow:0 6px 20px #00000026}.context-menu button{text-align:left;background:0 0;border:none;width:100%;padding:4px 10px;font-size:14px}.context-menu button:not(:disabled):hover{background:var(--panel)}.ws-head{color:var(--muted);align-items:center;gap:4px;padding:6px 4px 2px 2px;font-size:12px;display:flex}.ws-head.active .ws-name{color:var(--text);font-weight:600}.ws-head.missing{opacity:.6}.ws-toggle{min-width:0;color:inherit;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:4px;padding:0 4px;font-size:12px;display:flex}.ws-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ws-note{flex:none}.ws-tools{flex:none;gap:2px;display:none}.ws-head:hover .ws-tools{display:flex}.ws-tools button{color:var(--muted);background:0 0;border:none;padding:3px;display:flex}.ws-chevron{flex:none;display:flex}.ws-tools button:hover{background:var(--panel);color:var(--text)}.session-folder{text-overflow:ellipsis;white-space:nowrap;max-width:72px;color:var(--muted);flex:none;font-size:12px;overflow:hidden}.session-item:hover .session-folder{display:none}.modal-backdrop{z-index:20;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--border);background:var(--bg);border-radius:10px;flex-direction:column;gap:8px;width:min(520px,90vw);max-height:70vh;padding:12px;display:flex}.crumbs{flex-wrap:wrap;display:flex}.crumbs button,.dirs button{text-align:left;background:0 0;border:none;padding:2px 4px}.dirs{border:1px solid var(--border);border-radius:6px;min-height:160px;margin:0;padding:0;list-style:none;overflow-y:auto}.dirs button{width:100%;padding:4px 8px}.dirs button:hover,.crumbs button:hover{background:var(--panel)}.modal-title{font-weight:600}.recent button{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dir-path{color:var(--muted);margin-left:8px;font-size:12px}.new-folder-where{align-items:center;gap:8px;font-size:13px;display:flex}.where-path{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);flex:1;overflow:hidden}.modal-error{color:var(--fail);font-size:13px}.sidebar-user{align-items:center;gap:8px;margin:auto 8px 8px;padding:6px 4px 6px 8px;display:flex}.avatar{background:var(--accent);width:24px;height:24px;color:var(--accent-text);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.user-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.settings{border:1px solid var(--border);background:var(--bg);border-radius:12px;width:min(860px,94vw);height:min(600px,86vh);display:flex;overflow:hidden;box-shadow:0 16px 48px #0003}.settings-nav{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;flex:none;gap:2px;width:180px;padding:16px 8px;display:flex}.settings-nav-title{color:var(--muted);padding:0 8px 10px;font-size:13px}.settings-nav button{text-align:left;background:0 0;border:none;border-radius:6px;padding:6px 8px;font-size:14px}.settings-nav button.active{background:var(--bg);font-weight:600}.settings-body{flex-direction:column;flex:1;gap:14px;min-width:0;padding:20px 28px;display:flex;overflow-y:auto}.settings-head{justify-content:space-between;align-items:center;display:flex}.settings-head h2{margin:0;font-size:18px}.settings-desc{color:var(--muted);margin:-6px 0 0;font-size:13px}.model-cards{border:1px solid var(--border);border-radius:8px;margin:0;padding:0;list-style:none}.model-card{align-items:center;gap:10px;padding:10px 12px;display:flex}.model-card+.model-card{border-top:1px solid var(--border)}.model-main{flex:1;min-width:0}.model-name{font-weight:600}.model-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.model-card>button:not(.icon-btn){padding:3px 12px;font-size:13px}.badge{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.settings-subhead{color:var(--muted);margin-top:6px;font-size:12px;font-weight:600}.skill-desc{-webkit-line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.settings-empty,.settings-note{color:var(--muted);font-size:13px}.add-model{align-self:flex-start}.model-form{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:12px;padding:14px;display:flex}.model-form label{flex-direction:column;gap:4px;font-size:13px;display:flex}.model-form label em{color:var(--muted);font-style:normal;font-weight:400}.model-form input{border:1px solid var(--border);font:inherit;background:var(--bg);color:inherit;border-radius:6px;padding:6px 8px}.model-form small{color:var(--muted);font-size:12px}button.link{color:var(--accent);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0}button.link:not(:disabled):hover{text-decoration:underline}.spacer{flex:1}.session-rename{border:1px solid var(--border);width:100%;font:inherit;background:var(--panel);color:var(--fg);border-radius:4px;padding:4px 6px}.user-attach-fallback{color:var(--muted);font-size:13px}main{flex-direction:column;flex:1;min-width:0;display:flex}.banner{color:var(--warn);border-bottom:1px solid var(--border);padding:6px 16px;font-size:13px}.messages{flex:1;padding:16px max(16px,50% - 430px);overflow-y:auto}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:min(52vh,420px);padding:24px 16px;display:flex}.empty-title{letter-spacing:-.02em;color:var(--text);font-size:1.25rem;font-weight:600}.empty-hint{max-width:28rem;color:var(--muted);margin:8px 0 0;font-size:14px}.user{background:var(--panel);white-space:pre-wrap;word-break:break-word;border-radius:8px;margin:20px 0 8px;padding:8px 12px}.user-attach{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.user-attach-chip{background:var(--bg);border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px}.reply{word-break:break-word}.reply pre{background:var(--code-bg);border-radius:6px;padding:10px 12px;overflow-x:auto}.reply :not(pre)>code{background:var(--code-bg);border-radius:4px;padding:1px 4px}.reply table{border-collapse:collapse}.reply th,.reply td{border:1px solid var(--border);padding:4px 8px}.hljs-keyword,.hljs-selector-tag,.hljs-literal{color:var(--hl-keyword)}.hljs-string,.hljs-regexp{color:var(--hl-string)}.hljs-comment,.hljs-quote{color:var(--hl-comment);font-style:italic}.hljs-number,.hljs-variable{color:var(--hl-number)}.hljs-title,.hljs-section,.hljs-function{color:var(--hl-title)}.hljs-attr,.hljs-attribute,.hljs-built_in,.hljs-type{color:var(--hl-attr)}.tool{white-space:nowrap;align-items:center;gap:8px;margin:4px 0;font-size:14px;display:flex;overflow:hidden}.tool .dot{color:var(--accent)}.tool.failed .dot,.tool.failed .result{color:var(--fail)}.tool .name{font-weight:600}.tool .summary{color:var(--muted);text-overflow:ellipsis;overflow:hidden}.tool.ok .result{color:var(--ok)}.steps{margin:6px 0}.steps-head{max-width:100%;color:var(--muted);white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:2px 4px 2px 0;font-size:13px;display:flex;overflow:hidden}.steps-head:hover{color:var(--text)}.steps-title{font-weight:600}.steps-detail{text-overflow:ellipsis;overflow:hidden}.steps-failed{color:var(--fail)}.steps-body{border-left:1px solid var(--border);margin-left:6px;padding-left:12px}.notice{color:var(--muted);margin:4px 0;font-size:13px}.notice.error{color:var(--fail)}.thinking{color:var(--muted);align-items:center;gap:8px;margin:8px 0;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.card{border:1px solid var(--warn);border-radius:8px;margin:12px 0;padding:12px}.card-title{margin-bottom:8px;font-weight:600}.card-body{background:var(--code-bg);white-space:pre-wrap;border-radius:6px;max-height:240px;margin:0 0 12px;padding:8px;overflow:auto}.card-actions{gap:8px;display:flex}.composer-wrap{padding:8px max(16px,50% - 430px)}.todos{border:1px solid var(--border);background:var(--panel);border-radius:8px;margin:0 max(16px,50% - 430px);padding:6px 10px;font-size:13px}.todos-head{max-width:100%;color:var(--muted);background:0 0;border:none;align-items:center;gap:6px;padding:0;display:flex}.todos-head:hover{color:var(--text)}.todos-title{font-weight:600}.todos-current{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.todos-list{max-height:160px;margin:6px 0 2px;padding:0;list-style:none;overflow-y:auto}.todos-list li{gap:6px;padding:1px 0;display:flex}.todos-list li.completed{color:var(--muted);text-decoration:line-through}.todos-list li.in_progress{font-weight:600}.todos-mark{flex:none;width:1em}.attach-rail{gap:8px;padding-bottom:8px;display:flex;overflow-x:auto}.attach-card{border:1px solid var(--border);background:var(--panel);border-radius:12px;flex:none;align-items:center;gap:8px;min-width:180px;max-width:240px;height:64px;padding:6px 8px;display:flex;position:relative}.attach-card img{object-fit:cover;border-radius:6px;width:48px;height:48px}.attach-ext{width:48px;height:48px;color:var(--muted);background:var(--bg);border-radius:6px;place-items:center;font-size:11px;font-weight:600;display:grid}.attach-meta{flex:1;min-width:0}.attach-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.attach-sub{color:var(--muted);font-size:11px}.attach-card.error .attach-sub{color:var(--fail)}.attach-remove{width:22px;line-height:1;position:absolute;top:2px;right:2px;border-radius:11px!important;height:22px!important;padding:0!important}.composer{border:1px solid var(--border);background:var(--bg);border-radius:12px;flex-direction:column;padding:8px 8px 6px 12px;display:flex}.composer:focus-within{border-color:var(--accent)}.composer textarea{resize:none;font:inherit;color:var(--text);background:0 0;border:none;outline:none;padding:2px 0}.composer-bar{align-items:center;gap:6px;margin-top:4px;display:flex}.composer-bar .attach-btn{width:30px;height:30px;color:var(--muted);background:0 0;border:none;border-radius:8px;padding:0;font-size:20px;line-height:1}.composer-bar .attach-btn:not(:disabled):hover{background:var(--border);color:var(--text)}.send-btn{background:var(--accent);border-color:var(--accent);width:32px;height:32px;color:var(--accent-text);border-radius:50%;place-items:center;padding:0;display:grid}.send-btn.stop{background:var(--text);border-color:var(--text);color:var(--bg)}.model-picker{position:relative}.model-btn{max-width:260px;height:30px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:8px;align-items:center;gap:4px;padding:0 6px 0 10px;font-size:13px;display:flex;overflow:hidden}.model-chev{flex:none;display:inline-flex;transform:rotate(-90deg)}.model-btn:not(:disabled):hover,.model-btn.on{background:var(--border);color:var(--text)}.context-menu.model-menu{min-width:240px;max-height:50vh;position:absolute;bottom:calc(100% + 6px);right:0;overflow-y:auto}.model-menu ul{margin:0;padding:0;list-style:none}.model-menu button{white-space:nowrap;align-items:center;display:flex}.model-menu .menu-label{letter-spacing:0;text-transform:none;font-size:12px}.model-gear{color:var(--muted);margin-right:6px;display:inline-flex}.model-gear svg{width:13px;height:13px}.model-key{color:var(--muted);margin-left:auto;padding-left:12px;font-size:11.5px}.model-check{box-sizing:content-box;text-align:right;width:16px;color:var(--accent);flex:none;margin-left:auto;padding-left:12px}.model-key+.model-check{margin-left:0}.menu-sep{border-top:1px solid var(--border);margin:4px 2px}.status{color:var(--muted);justify-content:space-between;gap:12px;padding:4px max(16px,50% - 430px) 10px;font-size:12px;display:flex}.status button.link:disabled{color:var(--muted);cursor:default}.signed-out{text-align:center;max-width:480px;color:var(--muted);margin:20vh auto}
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>tah</title>
7
- <script type="module" crossorigin src="/assets/index-fVp3LyQu.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-wXlReO66.css">
7
+ <script type="module" crossorigin src="/assets/index-CIES_xOf.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-CW3-eyC7.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-agent-harness/cli",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "description": "typescript-agent-harness CLI (tah)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -28,14 +28,14 @@
28
28
  "marked-terminal": "^7.3.0",
29
29
  "react": "^19.3.0",
30
30
  "string-width": "^8.3.0",
31
- "@typescript-agent-harness/agent": "0.31.0",
32
- "@typescript-agent-harness/core": "0.31.0",
33
- "@typescript-agent-harness/llm": "0.31.0",
34
- "@typescript-agent-harness/permissions": "0.31.0",
35
- "@typescript-agent-harness/mcp": "0.31.0",
36
- "@typescript-agent-harness/scheduler": "0.31.0",
37
- "@typescript-agent-harness/tools": "0.31.0",
38
- "@typescript-agent-harness/storage": "0.31.0"
31
+ "@typescript-agent-harness/agent": "0.32.0",
32
+ "@typescript-agent-harness/core": "0.32.0",
33
+ "@typescript-agent-harness/llm": "0.32.0",
34
+ "@typescript-agent-harness/mcp": "0.32.0",
35
+ "@typescript-agent-harness/scheduler": "0.32.0",
36
+ "@typescript-agent-harness/storage": "0.32.0",
37
+ "@typescript-agent-harness/permissions": "0.32.0",
38
+ "@typescript-agent-harness/tools": "0.32.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^22.18.0",