@typescript-agent-harness/cli 0.30.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/approve.d.ts.map +1 -1
  2. package/dist/approve.js +23 -1
  3. package/dist/approve.js.map +1 -1
  4. package/dist/browser.d.ts +24 -0
  5. package/dist/browser.d.ts.map +1 -0
  6. package/dist/browser.js +138 -0
  7. package/dist/browser.js.map +1 -0
  8. package/dist/cli.js +16 -1
  9. package/dist/cli.js.map +1 -1
  10. package/dist/config.d.ts +3 -6
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +14 -13
  13. package/dist/config.js.map +1 -1
  14. package/dist/host.d.ts +10 -0
  15. package/dist/host.d.ts.map +1 -1
  16. package/dist/host.js +83 -14
  17. package/dist/host.js.map +1 -1
  18. package/dist/index.d.ts +2 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/prompt.d.ts +5 -0
  22. package/dist/prompt.d.ts.map +1 -1
  23. package/dist/prompt.js +22 -1
  24. package/dist/prompt.js.map +1 -1
  25. package/dist/runtime.d.ts +9 -0
  26. package/dist/runtime.d.ts.map +1 -1
  27. package/dist/runtime.js +36 -11
  28. package/dist/runtime.js.map +1 -1
  29. package/dist/serve/http.d.ts.map +1 -1
  30. package/dist/serve/http.js +45 -1
  31. package/dist/serve/http.js.map +1 -1
  32. package/dist/serve/protocol.d.ts +31 -0
  33. package/dist/serve/protocol.d.ts.map +1 -1
  34. package/dist/settings.d.ts +6 -1
  35. package/dist/settings.d.ts.map +1 -1
  36. package/dist/settings.js +19 -6
  37. package/dist/settings.js.map +1 -1
  38. package/dist/skills/discover.d.ts +0 -1
  39. package/dist/skills/discover.d.ts.map +1 -1
  40. package/dist/skills/discover.js +5 -6
  41. package/dist/skills/discover.js.map +1 -1
  42. package/dist/skills/install.d.ts +12 -0
  43. package/dist/skills/install.d.ts.map +1 -0
  44. package/dist/skills/install.js +60 -0
  45. package/dist/skills/install.js.map +1 -0
  46. package/dist/tui/app.d.ts.map +1 -1
  47. package/dist/tui/app.js +5 -0
  48. package/dist/tui/app.js.map +1 -1
  49. package/dist/tui/commands.d.ts +2 -0
  50. package/dist/tui/commands.d.ts.map +1 -1
  51. package/dist/tui/commands.js +3 -0
  52. package/dist/tui/commands.js.map +1 -1
  53. package/dist/tui/transcript.d.ts +5 -0
  54. package/dist/tui/transcript.d.ts.map +1 -1
  55. package/dist/tui/transcript.js +5 -0
  56. package/dist/tui/transcript.js.map +1 -1
  57. package/dist/watch.d.ts +2 -0
  58. package/dist/watch.d.ts.map +1 -1
  59. package/dist/watch.js +5 -3
  60. package/dist/watch.js.map +1 -1
  61. package/dist/web/assets/index-fVp3LyQu.js +48 -0
  62. package/dist/web/assets/{index-D81Ep8jO.css → index-wXlReO66.css} +1 -1
  63. package/dist/web/index.html +2 -2
  64. package/package.json +10 -9
  65. package/dist/web/assets/index-C-9SgBRq.js +0 -45
package/dist/host.js CHANGED
@@ -1,11 +1,9 @@
1
- import { existsSync } from "node:fs";
2
1
  import os from "node:os";
3
- import path from "node:path";
4
2
  import { SESSION } from "@typescript-agent-harness/agent";
5
3
  import { composeAttachmentPrompt, parseUserContent, userContentForVision } from "./attachments/compose.js";
6
4
  import { checkMessageLimits, createAttachmentStore, } from "./attachments/store.js";
7
5
  import { loadProject } from "./project.js";
8
- import { bootRuntime, describeProject, openChatSession, openSessionByRef, storageOf, turnRounds, } from "./runtime.js";
6
+ import { bootRuntime, compactedNotice, compactFailedNotice, describeProject, openChatSession, openSessionByRef, storageOf, turnRounds, } from "./runtime.js";
9
7
  import { setSessionFlag } from "./session-flags.js";
10
8
  import { setSessionTitle } from "./session-titles.js";
11
9
  import { displayUserText, toRows } from "./sessions.js";
@@ -19,16 +17,28 @@ function clip(s, width = SUMMARY_WIDTH) {
19
17
  }
20
18
  export function toolSummary(tool, input) {
21
19
  const a = (input ?? {});
22
- if (tool === "read_file" || tool === "write_file")
20
+ if (tool === "read_file" || tool === "write_file" || tool === "edit_file")
23
21
  return clip(String(a.path ?? ""));
24
22
  if (tool === "list_files")
25
23
  return clip(String(a.directory ?? "."));
26
24
  if (tool === "grep")
27
25
  return clip(`${String(a.pattern ?? "")}${a.directory ? ` in ${String(a.directory)}` : ""}`);
26
+ if (tool === "web_search")
27
+ return clip(String(a.query ?? ""));
28
+ if (tool === "web_fetch")
29
+ return clip(String(a.url ?? ""));
30
+ if (tool === "browser_open" || tool === "browser_navigate")
31
+ return clip(String(a.url ?? ""));
32
+ if (tool.startsWith("browser_") && typeof a.element === "string")
33
+ return clip(a.element);
28
34
  if (tool === "execute_command") {
29
35
  const args = Array.isArray(a.args) ? a.args.map(String) : [];
30
36
  return clip([String(a.program ?? ""), ...args].join(" "));
31
37
  }
38
+ if (tool === "todo_write" && Array.isArray(a.todos)) {
39
+ const current = a.todos.find((t) => t?.status === "in_progress");
40
+ return clip(current?.content ?? `${a.todos.length} tasks`);
41
+ }
32
42
  return clip(JSON.stringify(input ?? {}));
33
43
  }
34
44
  function errorText(output) {
@@ -48,13 +58,50 @@ export function toolResult(tool, ok, output) {
48
58
  return `${o.entries.length} entries`;
49
59
  if (tool === "write_file" && typeof o.bytes === "number")
50
60
  return `${o.bytes} bytes`;
61
+ if (tool === "edit_file" && typeof o.replacements === "number") {
62
+ return `${o.replacements} replacement${o.replacements === 1 ? "" : "s"}`;
63
+ }
51
64
  if (tool === "grep" && Array.isArray(o.matches)) {
52
65
  return `${o.matches.length} matches${o.truncated ? " (truncated)" : ""}`;
53
66
  }
54
67
  if (tool === "execute_command")
55
68
  return o.timedOut ? "timed out" : `exit ${String(o.exitCode)}`;
69
+ if (tool === "web_search" && Array.isArray(o.results))
70
+ return `${o.results.length} results`;
71
+ if (tool === "web_fetch" && typeof o.content === "string") {
72
+ return `${o.content.length} chars${o.truncated ? " (truncated)" : ""}`;
73
+ }
74
+ if (tool === "todo_write" && Array.isArray(o.todos)) {
75
+ return `${o.todos.filter((t) => t.status === "completed").length}/${o.todos.length} done`;
76
+ }
77
+ if (tool === "browser_open")
78
+ return o.opened ? "opened" : "already open";
79
+ if (tool.startsWith("browser_") && typeof output === "string") {
80
+ return /- Page Title: (.+)/.exec(output)?.[1]?.trim() || `${output.length} chars`;
81
+ }
56
82
  return "done";
57
83
  }
84
+ /** The list from the last successful `todo_write`; tool outputs are stored as JSON text. */
85
+ export function todosOf(messages) {
86
+ const todoCalls = new Set();
87
+ let todos;
88
+ for (const m of messages) {
89
+ if (m.role === "assistant") {
90
+ for (const call of m.toolCalls ?? [])
91
+ if (call.name === "todo_write")
92
+ todoCalls.add(call.id);
93
+ }
94
+ if (m.role !== "tool" || !todoCalls.has(m.toolCallId))
95
+ continue;
96
+ try {
97
+ const output = JSON.parse(String(m.content));
98
+ if (Array.isArray(output.todos))
99
+ todos = output.todos;
100
+ }
101
+ catch { }
102
+ }
103
+ return todos;
104
+ }
58
105
  /** The last `turns` user turns as display items; `hiddenTurns` counts the earlier ones. */
59
106
  export function historyOf(messages, turns = HISTORY_TURNS) {
60
107
  const starts = messages.flatMap((m, i) => (m.role === "user" ? [i] : []));
@@ -200,6 +247,9 @@ export async function createChatHost(flags, opts = {}) {
200
247
  runtime.on("tool.finished", (e) => {
201
248
  const p = e;
202
249
  toolEnd(p.callId, p.tool, true, p.output);
250
+ const todos = p.output?.todos;
251
+ if (p.tool === "todo_write" && Array.isArray(todos))
252
+ emit({ type: "todos", todos: todos });
203
253
  });
204
254
  runtime.on("tool.failed", (e) => {
205
255
  const p = e;
@@ -217,6 +267,12 @@ export async function createChatHost(flags, opts = {}) {
217
267
  text: `[ctx] trimmed: ${p.droppedTurns} old turn(s) dropped, ${p.elidedToolResults} tool output(s) omitted, ${p.chars} chars sent (full history kept; /reset for a fresh session)`,
218
268
  });
219
269
  });
270
+ runtime.on("agent.context.compacted", (e) => {
271
+ emit({ type: "notice", text: compactedNotice(e) });
272
+ });
273
+ runtime.on("agent.context.compact-failed", (e) => {
274
+ emit({ type: "notice", text: compactFailedNotice(e), error: true });
275
+ });
220
276
  }
221
277
  };
222
278
  let runtime;
@@ -294,13 +350,14 @@ export async function createChatHost(flags, opts = {}) {
294
350
  await reloading;
295
351
  };
296
352
  let stopWatching = () => { };
353
+ let reloadedAt = 0;
297
354
  const watch = () => {
298
355
  if (!flags.watch)
299
356
  return;
300
- const homeSkillsExist = existsSync(path.join(homeDir, ".tah", "skills"));
301
- if (!project && !homeSkillsExist)
302
- return;
303
357
  stopWatching = watchProject(flags.cwd, (files) => {
358
+ // The watcher reports a write ~debounce ms late; an explicit reload just before already read it.
359
+ if (Date.now() - reloadedAt < 1000)
360
+ return;
304
361
  if (!flags.persist) {
305
362
  emit({ type: "notice", text: `[tah] ${files.join(", ")} changed — restart to apply (persist is off)` });
306
363
  return;
@@ -308,14 +365,18 @@ export async function createChatHost(flags, opts = {}) {
308
365
  for (const file of files)
309
366
  changed.add(file);
310
367
  reloadWhenIdle();
311
- }, 200, { homeSkillsDir: homeDir });
368
+ }, 200, { homeSkillsDir: homeDir, skillsOnly: !project });
369
+ };
370
+ const sessionEvent = (resumed) => {
371
+ const todos = todosOf(session.messages);
372
+ return {
373
+ type: "session",
374
+ id: session.id,
375
+ resumed,
376
+ ...historyOf(session.messages, historyTurns),
377
+ ...(todos ? { todos } : {}),
378
+ };
312
379
  };
313
- const sessionEvent = (resumed) => ({
314
- type: "session",
315
- id: session.id,
316
- resumed,
317
- ...historyOf(session.messages, historyTurns),
318
- });
319
380
  const showSession = (resumed) => emit(sessionEvent(resumed));
320
381
  async function turn(run, user) {
321
382
  idle();
@@ -418,6 +479,12 @@ export async function createChatHost(flags, opts = {}) {
418
479
  return turn(run, { text: display, ...(meta.length ? { attachments: meta } : {}) });
419
480
  }),
420
481
  continueTurn: () => ready(() => turn(() => session.resume())),
482
+ compact: () => ready(() => turn(async () => {
483
+ emit({ type: "notice", text: "[ctx] summarizing the conversation so far…" });
484
+ if (!(await session.compact()))
485
+ emit({ type: "notice", text: "[ctx] nothing to compact yet" });
486
+ return { sessionId: session.id, text: "", finishReason: "stop", steps: [] };
487
+ })),
421
488
  cancel() {
422
489
  rejectPending();
423
490
  if (busy)
@@ -457,6 +524,8 @@ export async function createChatHost(flags, opts = {}) {
457
524
  if (!flags.persist)
458
525
  throw new Error("restart tah to apply (persist is off)");
459
526
  await reload();
527
+ changed.clear();
528
+ reloadedAt = Date.now();
460
529
  }),
461
530
  async close() {
462
531
  stopWatching();
package/dist/host.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,9 +4,10 @@ export type { Context, Plugin } from "@typescript-agent-harness/core";
4
4
  export type { Tool, ToolContext } from "@typescript-agent-harness/tools";
5
5
  export type { ApprovalAnswer } from "@typescript-agent-harness/permissions";
6
6
  export type { HistoryItem, HostEvent, SessionEvent } from "./host.js";
7
+ export type { Todo, TodoStatus } from "@typescript-agent-harness/tools";
7
8
  export type { SessionRow } from "./sessions.js";
8
9
  export type { AttachmentMeta } from "./attachments/store.js";
9
- export type { DirListing, RecentFolder, ServeError, ServeInfo, ServeRequest, SettingsView, WorkspaceView, } from "./serve/protocol.js";
10
+ export type { DirListing, RecentFolder, ServeError, ServeInfo, ServeRequest, SettingsView, SkillsImport, SkillsView, WorkspaceView, } from "./serve/protocol.js";
10
11
  /** A file in `tools/`; `name` defaults to the file name with `-` → `_`. */
11
12
  export type ProjectTool<TInput = unknown, TOutput = unknown> = Omit<Tool<TInput, TOutput>, "name"> & {
12
13
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAE5D,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,2EAA2E;AAC3E,MAAM,MAAM,WAAW,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG;IACnG,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EACxC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAEjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAE5D,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACtE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,2EAA2E;AAC3E,MAAM,MAAM,WAAW,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG;IACnG,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EACxC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAEjE"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2BA,MAAM,UAAU,UAAU,CACxB,IAAkC;IAElC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8BA,MAAM,UAAU,UAAU,CACxB,IAAkC;IAElC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/prompt.d.ts CHANGED
@@ -6,6 +6,11 @@ export declare function buildSystemPrompt(opts: {
6
6
  role?: string;
7
7
  /** false: only the project's tools are mounted, so the file / command rules are left out. */
8
8
  builtinTools?: boolean;
9
+ /** "search": web_search and web_fetch; "fetch": web_fetch only (no search key). */
10
+ web?: "search" | "fetch" | "off";
11
+ browser?: boolean;
9
12
  skillsCatalog?: string;
10
13
  }): string;
14
+ /** Without this the model guesses it runs in Cursor or Claude Code and gives their instructions. */
15
+ export declare const ABOUT_TAH: string;
11
16
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,sCAAsC,CAAC;AAChE,eAAO,MAAM,YAAY,qFAAqF,CAAC;AAE/G,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6FAA6F;IAC7F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAuBT"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,sCAAsC,CAAC;AAChE,eAAO,MAAM,YAAY,qFAAqF,CAAC;AAE/G,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6FAA6F;IAC7F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mFAAmF;IACnF,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CA4BT;AAYD,oGAAoG;AACpG,eAAO,MAAM,SAAS,QAKX,CAAC"}
package/dist/prompt.js CHANGED
@@ -7,9 +7,13 @@ export function buildSystemPrompt(opts) {
7
7
  if (opts.mcp) {
8
8
  systemPrompt += "\n\nMCP tools from --mcp are also available.";
9
9
  }
10
+ if (opts.web && opts.web !== "off")
11
+ systemPrompt += `\n\n${WEB_RULES[opts.web]}`;
12
+ if (opts.browser)
13
+ systemPrompt += `\n\n${BROWSER_RULES}`;
10
14
  return appendSkillsCatalog(systemPrompt, opts.skillsCatalog);
11
15
  }
12
- const rules = "Prefer list_files, read_file, and grep before answering. Use write_file only when asked to change files.";
16
+ const rules = "Prefer list_files, read_file, and grep before answering. Change files only when asked: edit_file for changes to an existing file, write_file for new files or full rewrites. For tasks with 3 or more steps, keep a task list with todo_write and update it as you go.";
13
17
  let systemPrompt = role ? `${role}\n\n${rules}` : `${DEFAULT_ROLE} ${rules}`;
14
18
  if (opts.exec) {
15
19
  systemPrompt +=
@@ -22,8 +26,25 @@ export function buildSystemPrompt(opts) {
22
26
  if (opts.mcp) {
23
27
  systemPrompt += " MCP tools from --mcp are also available.";
24
28
  }
29
+ if (opts.web && opts.web !== "off")
30
+ systemPrompt += ` ${WEB_RULES[opts.web]}`;
31
+ if (opts.browser)
32
+ systemPrompt += ` ${BROWSER_RULES}`;
33
+ systemPrompt += `\n\n${ABOUT_TAH}`;
25
34
  return appendSkillsCatalog(systemPrompt, opts.skillsCatalog);
26
35
  }
36
+ const WEB_RULES = {
37
+ search: "Use web_search for current or external information (docs, versions, news) and web_fetch to read a page; cite the URLs you rely on.",
38
+ fetch: "Use web_fetch to read a web page the user gives you; cite the URL. web_search is off until a Tavily API key is set (web app: Settings → Web search, or TAVILY_API_KEY in .env) — say so if the user needs a search.",
39
+ };
40
+ const BROWSER_RULES = "For pages that need clicking, forms, logins, or JavaScript rendering, call browser_open first: it opens a Chrome window the user can see and adds browser_* tools. Understand pages with browser_snapshot or browser_find; screenshots are only saved for the user. For logins, captchas, payments, or anything that needs the user's confirmation, stop and ask the user to finish it in that window.";
41
+ /** Without this the model guesses it runs in Cursor or Claude Code and gives their instructions. */
42
+ export const ABOUT_TAH = [
43
+ "You run inside tah (typescript-agent-harness), not Cursor or Claude Code.",
44
+ "Skills are folders with a SKILL.md whose YAML frontmatter has `name` (kebab-case, the same as the folder name) and `description` (when to use it).",
45
+ "tah loads skills from `skills/`, `.agents/skills/` and `.cursor/skills/` in the working folder, and from `~/.tah/skills/` for every folder; a new or changed skill is available from the next message.",
46
+ "To install a skill here, write `skills/<name>/SKILL.md` with write_file. The user can also import skill folders in the web app under Settings → Skills.",
47
+ ].join(" ");
27
48
  function appendSkillsCatalog(systemPrompt, skillsCatalog) {
28
49
  if (!skillsCatalog)
29
50
  return systemPrompt;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,kFAAkF,CAAC;AAE/G,MAAM,UAAU,iBAAiB,CAAC,IAOjC;IACC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QAChC,IAAI,YAAY,GAAG,IAAI,IAAI,YAAY,CAAC;QACxC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,YAAY,IAAI,8CAA8C,CAAC;QACjE,CAAC;QACD,OAAO,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,KAAK,GACT,0GAA0G,CAAC;IAC7G,IAAI,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,KAAK,EAAE,CAAC;IAC7E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,YAAY;YACV,iEAAiE,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,YAAY;YACV,iKAAiK,CAAC;IACtK,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,YAAY,IAAI,2CAA2C,CAAC;IAC9D,CAAC;IACD,OAAO,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAoB,EAAE,aAAsB;IACvE,IAAI,CAAC,aAAa;QAAE,OAAO,YAAY,CAAC;IACxC,OAAO,GAAG,YAAY,OAAO,aAAa,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,kFAAkF,CAAC;AAE/G,MAAM,UAAU,iBAAiB,CAAC,IAUjC;IACC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QAChC,IAAI,YAAY,GAAG,IAAI,IAAI,YAAY,CAAC;QACxC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,YAAY,IAAI,8CAA8C,CAAC;QACjE,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK;YAAE,YAAY,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjF,IAAI,IAAI,CAAC,OAAO;YAAE,YAAY,IAAI,OAAO,aAAa,EAAE,CAAC;QACzD,OAAO,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,KAAK,GACT,wQAAwQ,CAAC;IAC3Q,IAAI,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,KAAK,EAAE,CAAC;IAC7E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,YAAY;YACV,iEAAiE,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,YAAY;YACV,iKAAiK,CAAC;IACtK,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,YAAY,IAAI,2CAA2C,CAAC;IAC9D,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK;QAAE,YAAY,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9E,IAAI,IAAI,CAAC,OAAO;QAAE,YAAY,IAAI,IAAI,aAAa,EAAE,CAAC;IACtD,YAAY,IAAI,OAAO,SAAS,EAAE,CAAC;IACnC,OAAO,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,SAAS,GAAG;IAChB,MAAM,EACJ,oIAAoI;IACtI,KAAK,EACH,qNAAqN;CACxN,CAAC;AAEF,MAAM,aAAa,GACjB,wYAAwY,CAAC;AAE3Y,oGAAoG;AACpG,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,2EAA2E;IAC3E,oJAAoJ;IACpJ,wMAAwM;IACxM,yJAAyJ;CAC1J,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,SAAS,mBAAmB,CAAC,YAAoB,EAAE,aAAsB;IACvE,IAAI,CAAC,aAAa;QAAE,OAAO,YAAY,CAAC;IACxC,OAAO,GAAG,YAAY,OAAO,aAAa,EAAE,CAAC;AAC/C,CAAC"}
package/dist/runtime.d.ts CHANGED
@@ -3,6 +3,7 @@ import { Runtime } from "@typescript-agent-harness/core";
3
3
  import { type ApprovalPluginOptions } from "@typescript-agent-harness/permissions";
4
4
  import type { CliFlags } from "./args.js";
5
5
  import type { StorageService } from "@typescript-agent-harness/storage";
6
+ import { type BrowserServer } from "./browser.js";
6
7
  import { type ResolvedCapabilities } from "./config.js";
7
8
  import { type Project } from "./project.js";
8
9
  import type { SkillSummary } from "./skills/types.js";
@@ -18,6 +19,13 @@ export type StreamFlag = {
18
19
  };
19
20
  /** ~25k tokens of English/code (CJK costs more); leaves room for tool schemas and the reply on 64k-context models. */
20
21
  export declare const DEFAULT_CONTEXT_CHARS = 100000;
22
+ export declare const compactedNotice: (p: {
23
+ turns: number;
24
+ chars: number;
25
+ }) => string;
26
+ export declare const compactFailedNotice: (p: {
27
+ error: string;
28
+ }) => string;
21
29
  export declare function describeProject(project: Project, systemFile: boolean): string;
22
30
  /**
23
31
  * `print: false` leaves stdout alone; the caller subscribes to runtime events itself (the TUI).
@@ -29,6 +37,7 @@ export declare function bootRuntime(flags: CliFlags, opts?: {
29
37
  print?: boolean;
30
38
  project?: Project | undefined;
31
39
  homeDir?: string;
40
+ browserServer?: BrowserServer;
32
41
  }): Promise<{
33
42
  runtime: Runtime;
34
43
  streamed: StreamFlag;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -5,12 +5,13 @@ import { agentPlugin, SESSION } from "@typescript-agent-harness/agent";
5
5
  import { Runtime } from "@typescript-agent-harness/core";
6
6
  import { LLM, llmPlugin } from "@typescript-agent-harness/llm";
7
7
  import { approvalPlugin, permissionsPlugin, } from "@typescript-agent-harness/permissions";
8
- import { listFilesTool, readFileTool, grepTool, toolsPlugin, writeFileTool, executeCommandTool, } from "@typescript-agent-harness/tools";
8
+ import { listFilesTool, readFileTool, grepTool, toolsPlugin, writeFileTool, editFileTool, todoWriteTool, webFetchTool, webSearchTool, executeCommandTool, } from "@typescript-agent-harness/tools";
9
9
  import { APPROVAL_TOOLS } from "./approve.js";
10
- import { activeModel, defaultBaseURL } from "./settings.js";
11
- import { assertWebImplemented, loadTahConfig, resolveCapabilities, } from "./config.js";
10
+ import { createBrowser } from "./browser.js";
11
+ import { activeModel, defaultBaseURL, searchKey } from "./settings.js";
12
+ import { loadTahConfig, resolveCapabilities, } from "./config.js";
12
13
  import { createMarkdownStream, dim, renderMarkdown, useColor } from "./markdown.js";
13
- import { isProject, loadProject, ProjectError } from "./project.js";
14
+ import { loadProject, ProjectError } from "./project.js";
14
15
  import { buildSystemPrompt } from "./prompt.js";
15
16
  import { buildSkillsCatalogSection } from "./skills/catalog.js";
16
17
  import { discoverSkills } from "./skills/discover.js";
@@ -18,6 +19,8 @@ import { createSkillTool } from "./skills/tool.js";
18
19
  import { formatSessions, resolveSessionRef, toRows } from "./sessions.js";
19
20
  /** ~25k tokens of English/code (CJK costs more); leaves room for tool schemas and the reply on 64k-context models. */
20
21
  export const DEFAULT_CONTEXT_CHARS = 100_000;
22
+ export const compactedNotice = (p) => `[ctx] compacted: ${p.turns} earlier turn(s) summarized in ${p.chars} chars (full history kept)`;
23
+ export const compactFailedNotice = (p) => `[ctx] compaction failed: ${p.error} — trimming old turns instead`;
21
24
  export function describeProject(project, systemFile) {
22
25
  const parts = ["[tah] project:"];
23
26
  if (project.instructions !== undefined) {
@@ -55,8 +58,16 @@ export async function bootRuntime(flags, opts = {}) {
55
58
  : project?.instructions;
56
59
  const config = loadTahConfig(flags.cwd);
57
60
  const caps = resolveCapabilities(config, flags, project);
58
- assertWebImplemented(caps);
61
+ const webKey = caps.web && !flags.mock ? searchKey(opts.homeDir ?? os.homedir()) : undefined;
59
62
  flags.vision = caps.vision;
63
+ const browser = caps.browser && !flags.mock
64
+ ? createBrowser({
65
+ cwd: flags.cwd,
66
+ homeDir: opts.homeDir ?? os.homedir(),
67
+ headless: flags.command === "run",
68
+ ...(opts.browserServer ? { server: opts.browserServer } : {}),
69
+ })
70
+ : undefined;
60
71
  const builtin = caps.coding;
61
72
  const exec = caps.exec;
62
73
  const mcpOn = Boolean(caps.mcp);
@@ -93,14 +104,10 @@ export async function bootRuntime(flags, opts = {}) {
93
104
  }
94
105
  console.log(color ? dim(line) : line);
95
106
  };
96
- const discovered = discoverSkills({
97
- cwd: flags.cwd,
98
- isProject: Boolean(project) || isProject(flags.cwd),
99
- homeDir: opts.homeDir ?? os.homedir(),
100
- });
107
+ const discovered = discoverSkills({ cwd: flags.cwd, homeDir: opts.homeDir ?? os.homedir() });
101
108
  const skillsCatalog = buildSkillsCatalogSection(discovered.skills);
102
109
  const skillsNote = discovered.skills.length > 0 ? ` skills+${discovered.skills.length}` : "";
103
- const startup = `[tah] cwd=${flags.cwd} llm=${provider}${chosen ? ` model=${chosen.model}` : ""}${flags.persist ? " persist=on" : " persist=off"}${exec ? " exec=on" : " exec=off"}${builtin ? "" : " builtin=off"}${ask ? " approve=on" : " approve=off"}${Number.isFinite(flags.maxSteps) ? ` maxSteps=${flags.maxSteps}` : ""}${flags.systemFile ? ` system=${flags.systemFile}` : ""}${mcpOn ? " mcp=on" : ""}${caps.fromConfig ? " config=on" : ""}${caps.vision ? " vision=on" : ""}${flags.allow.length || flags.deny.length ? " perms=on" : ""}${flags.onceMs >= 0 ? ` once=${flags.onceMs}ms` : ""}${skillsNote}`;
110
+ const startup = `[tah] cwd=${flags.cwd} llm=${provider}${chosen ? ` model=${chosen.model}` : ""}${flags.persist ? " persist=on" : " persist=off"}${exec ? " exec=on" : " exec=off"}${builtin ? "" : " builtin=off"}${ask ? " approve=on" : " approve=off"}${Number.isFinite(flags.maxSteps) ? ` maxSteps=${flags.maxSteps}` : ""}${flags.systemFile ? ` system=${flags.systemFile}` : ""}${caps.web ? (webKey ? " web=on" : " web=fetch") : ""}${browser ? " browser=on" : ""}${mcpOn ? " mcp=on" : ""}${caps.fromConfig ? " config=on" : ""}${caps.vision ? " vision=on" : ""}${flags.allow.length || flags.deny.length ? " perms=on" : ""}${flags.onceMs >= 0 ? ` once=${flags.onceMs}ms` : ""}${skillsNote}`;
104
111
  if (print && !flags.quiet) {
105
112
  log(startup);
106
113
  if (project)
@@ -120,11 +127,19 @@ export async function bootRuntime(flags, opts = {}) {
120
127
  runtime.on("tool.finished", (e) => {
121
128
  const p = e;
122
129
  log(`[tool] ${p.tool} done`);
130
+ const todos = p.output?.todos;
131
+ if (p.tool === "todo_write" && Array.isArray(todos)) {
132
+ const mark = { completed: "[x]", in_progress: "[>]", pending: "[ ]" };
133
+ for (const t of todos)
134
+ log(` ${mark[t.status]} ${t.content}`);
135
+ }
123
136
  });
124
137
  runtime.on("agent.context.trimmed", (e) => {
125
138
  const p = e;
126
139
  log(`[ctx] trimmed: ${p.droppedTurns} old turn(s) dropped, ${p.elidedToolResults} tool output(s) omitted, ${p.chars} chars sent (full history kept; /reset for a fresh session)`);
127
140
  });
141
+ runtime.on("agent.context.compacted", (e) => log(compactedNotice(e)));
142
+ runtime.on("agent.context.compact-failed", (e) => log(compactFailedNotice(e)));
128
143
  }
129
144
  if (print) {
130
145
  for (const w of discovered.warnings)
@@ -143,9 +158,13 @@ export async function bootRuntime(flags, opts = {}) {
143
158
  readFileTool(flags.cwd),
144
159
  grepTool(flags.cwd),
145
160
  writeFileTool(flags.cwd),
161
+ editFileTool(flags.cwd),
162
+ todoWriteTool(),
146
163
  ...(exec ? [executeCommandTool(flags.cwd)] : []),
147
164
  ]
148
165
  : [];
166
+ if (caps.web)
167
+ tools.push(webFetchTool(), ...(webKey ? [webSearchTool({ apiKey: webKey })] : []));
149
168
  const mountSkill = discovered.skills.some((s) => s.modelInvocable);
150
169
  for (const { file, tool } of project?.tools ?? []) {
151
170
  if (tool.name === "skill") {
@@ -170,6 +189,8 @@ export async function bootRuntime(flags, opts = {}) {
170
189
  runtime.use(approvalPlugin({
171
190
  tools: APPROVAL_TOOLS,
172
191
  ask: (call, signal) => {
192
+ if (call.name === "browser_open" && browser?.isOpen())
193
+ return Promise.resolve("yes");
173
194
  md.flush();
174
195
  return ask(call, signal);
175
196
  },
@@ -182,6 +203,8 @@ export async function bootRuntime(flags, opts = {}) {
182
203
  ? { provider, apiKey: chosen.apiKey, baseURL: chosen.baseURL ?? defaultBaseURL(chosen.model), defaultModel: chosen.model }
183
204
  : { provider }))
184
205
  .use(toolsPlugin({ tools }));
206
+ if (browser)
207
+ runtime.use(browser.plugin);
185
208
  if (caps.mcp) {
186
209
  const { mcpPlugin, stdioMcpBackend } = await import("@typescript-agent-harness/mcp");
187
210
  runtime.use(mcpPlugin({
@@ -199,6 +222,8 @@ export async function bootRuntime(flags, opts = {}) {
199
222
  exec,
200
223
  mcp: mcpOn,
201
224
  builtinTools: builtin,
225
+ web: caps.web ? (webKey ? "search" : "fetch") : "off",
226
+ browser: Boolean(browser),
202
227
  ...(role !== undefined ? { role } : {}),
203
228
  ...(skillsCatalog !== undefined ? { skillsCatalog } : {}),
204
229
  }),