@typescript-agent-harness/cli 0.37.3 → 0.37.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/prompt.d.ts CHANGED
@@ -6,8 +6,8 @@ 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";
9
+ /** "search": web_search and web_fetch. */
10
+ web?: "search" | "off";
11
11
  browser?: boolean;
12
12
  /** `ask_user` is mounted (someone is there to answer). */
13
13
  askUser?: boolean;
@@ -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,mFAAmF;IACnF,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CA8BT;AAeD,oGAAoG;AACpG,eAAO,MAAM,SAAS,QAKX,CAAC"}
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,0CAA0C;IAC1C,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CA8BT;AAaD,oGAAoG;AACpG,eAAO,MAAM,SAAS,QAKX,CAAC"}
package/dist/prompt.js CHANGED
@@ -39,7 +39,6 @@ export function buildSystemPrompt(opts) {
39
39
  }
40
40
  const WEB_RULES = {
41
41
  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.",
42
- 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.",
43
42
  };
44
43
  const BROWSER_RULES = "For pages that need clicking, forms, logins, or JavaScript rendering, call browser_open first: it opens a Chrome browser the user can watch 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 browser.";
45
44
  const ASK_USER_RULES = "When a request is ambiguous or has several reasonable approaches, ask with ask_user (short questions, 2–5 concrete options, the recommended one first) before doing the work instead of guessing or asking in plain text; when the request is clear, just do it.";
@@ -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,IAYjC;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,IAAI,IAAI,CAAC,OAAO;YAAE,YAAY,IAAI,OAAO,cAAc,EAAE,CAAC;QAC1D,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,IAAI,IAAI,CAAC,OAAO;QAAE,YAAY,IAAI,IAAI,cAAc,EAAE,CAAC;IACvD,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,4YAA4Y,CAAC;AAE/Y,MAAM,cAAc,GAClB,kQAAkQ,CAAC;AAErQ,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"}
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,IAYjC;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,IAAI,IAAI,CAAC,OAAO;YAAE,YAAY,IAAI,OAAO,cAAc,EAAE,CAAC;QAC1D,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,IAAI,IAAI,CAAC,OAAO;QAAE,YAAY,IAAI,IAAI,cAAc,EAAE,CAAC;IACvD,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;CACvI,CAAC;AAEF,MAAM,aAAa,GACjB,4YAA4Y,CAAC;AAE/Y,MAAM,cAAc,GAClB,kQAAkQ,CAAC;AAErQ,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.js CHANGED
@@ -111,7 +111,7 @@ export async function bootRuntime(flags, opts = {}) {
111
111
  const discovered = discoverSkills({ cwd: flags.cwd, homeDir: opts.homeDir ?? os.homedir() });
112
112
  const skillsCatalog = buildSkillsCatalogSection(discovered.skills);
113
113
  const skillsNote = discovered.skills.length > 0 ? ` skills+${discovered.skills.length}` : "";
114
- 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" : ""}${vision ? " vision=on" : ""}${flags.allow.length || flags.deny.length ? " perms=on" : ""}${flags.onceMs >= 0 ? ` once=${flags.onceMs}ms` : ""}${skillsNote}`;
114
+ 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 ? " web=on" : ""}${browser ? " browser=on" : ""}${mcpOn ? " mcp=on" : ""}${caps.fromConfig ? " config=on" : ""}${vision ? " vision=on" : ""}${flags.allow.length || flags.deny.length ? " perms=on" : ""}${flags.onceMs >= 0 ? ` once=${flags.onceMs}ms` : ""}${skillsNote}`;
115
115
  if (print && !flags.quiet) {
116
116
  log(startup);
117
117
  if (project)
@@ -169,7 +169,7 @@ export async function bootRuntime(flags, opts = {}) {
169
169
  ]
170
170
  : [];
171
171
  if (caps.web)
172
- tools.push(webFetchTool(), ...(webKey ? [webSearchTool({ apiKey: webKey })] : []));
172
+ tools.push(webFetchTool(), webSearchTool(webKey ? { apiKey: webKey } : {}));
173
173
  const mountSkill = discovered.skills.some((s) => s.modelInvocable);
174
174
  for (const { file, tool } of project?.tools ?? []) {
175
175
  if (tool.name === "skill") {
@@ -238,7 +238,7 @@ export async function bootRuntime(flags, opts = {}) {
238
238
  exec,
239
239
  mcp: mcpOn,
240
240
  builtinTools: builtin,
241
- web: caps.web ? (webKey ? "search" : "fetch") : "off",
241
+ web: caps.web ? "search" : "off",
242
242
  browser: Boolean(browser),
243
243
  askUser: Boolean(opts.question),
244
244
  ...(role !== undefined ? { role } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -151,7 +151,7 @@ export type SettingsView = {
151
151
  model: string;
152
152
  key: "DEEPSEEK_API_KEY" | "OPENAI_API_KEY";
153
153
  } | null;
154
- /** Tavily key for `web_search`: from settings (removable here) or `TAVILY_API_KEY`; `null` = web_search is off. */
154
+ /** Tavily key for `web_search`: from settings (removable here) or `TAVILY_API_KEY`; `null` = no key, search uses Exa, then Bing. */
155
155
  search: {
156
156
  source: "settings" | "env";
157
157
  keyHint: string;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/serve/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/serve/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,kIAAkI;AAClI,MAAM,MAAM,SAAS,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzH,kEAAkE;AAClE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAClD,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC;IAC/C,8HAA8H;IAC9H,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC;IAC3E,uEAAuE;IACvE,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC;IACjE,uEAAuE;IACvE,KAAK,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,6FAA6F;IAC7F,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChF,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,yEAAyE;IACzE,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7C,kCAAkC;IAClC,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACnC,yCAAyC;IACzC,SAAS,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACrC,2GAA2G;IAC3G,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,0DAA0D;IAC1D,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,4HAA4H;IAC5H,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,mHAAmH;IACnH,WAAW,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,wCAAwC;IACxC,aAAa,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,kEAAkE;AAClE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB,CAAC;AAEF,6GAA6G;AAC7G,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC3F,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,wHAAwH;IACxH,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,kBAAkB,GAAG,gBAAgB,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1E,oIAAoI;IACpI,MAAM,EAAE;QAAE,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAChE,CAAC;AAEF,iIAAiI;AACjI,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1F,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAElF,oCAAoC;AACpC,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,sHAAsH;AACtH,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC;AAE3H,0CAA0C;AAC1C,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3F,iIAAiI;AACjI,MAAM,MAAM,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3G,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG;IACzB,uFAAuF;IACvF,SAAS,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnD,+BAA+B;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qGAAqG;IACrG,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvG,mHAAmH;AACnH,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACnH;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,iIAAiI;AACjI,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -46,4 +46,4 @@ https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(
46
46
  `,...a.current()}),u=l.charCodeAt(0);return(u===9||u===32)&&(l=nd(u)+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}ad.peek=od;function ad(e){return e.value||``}function od(){return`<`}sd.peek=cd;function sd(e,t,n,r){let i=X(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function cd(){return`!`}ld.peek=ud;function ld(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=u.filter(function(e){return e!==`phrasing`}),o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function ud(){return`!`}dd.peek=fd;function dd(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^\n\r ]/.test(r)&&(/^[\n\r ]/.test(r)&&/[\n\r ]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a<n.unsafe.length;){let e=n.unsafe[a],t=n.compilePattern(e);if(!e.atBreak)continue;let i;for(;i=t.exec(r);){let e=i.index;r.charCodeAt(e)===10&&r.charCodeAt(e-1)===13&&e--,r=r.slice(0,e)+` `+r.slice(i.index+1)}}return i+r+i}function fd(){return"`"}function pd(e,t){let n=nn(e);return!(t.options.resourceLink||!e.url||e.title||!e.children||e.children.length!==1||e.children[0].type!==`text`||n!==e.url&&`mailto:`+n!==e.url||!/^[a-z][+\-.a-z]+:/i.test(e.url)||/[\0- <>\u007F]/.test(e.url))}md.peek=hd;function md(e,t,n,r){let i=X(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r);if(pd(e,n)){let t=n.stack;n.stack=t.filter(function(e){return e!==`phrasing`});let r=n.enter(`autolink`),i=o.move(`<`);return i+=o.move(n.containerPhrasing(e,{before:i,after:`>`,...o.current()})),i+=o.move(`>`),r(),n.stack=t,i}let s=n.enter(`link`),c=n.enter(`label`),l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function hd(e,t,n){return pd(e,n)?`<`:`[`}gd.peek=_d;function gd(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=u.filter(function(e){return e!==`phrasing`}),o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function _d(){return`[`}function vd(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function yd(e){let t=vd(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function bd(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function xd(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function Sd(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?bd(n):vd(n),s=e.ordered?o===`.`?`)`:`.`:yd(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),xd(n)===o&&t){let t=-1;for(;++t<e.children.length;){let n=e.children[t];if(n&&n.type===`listItem`&&n.children&&n.children[0]&&n.children[0].type===`thematicBreak`){c=!0;break}}}}c&&(o=s),n.bulletCurrent=o;let l=n.containerFlow(e,r);return n.bulletLastUsed=o,n.bulletCurrent=a,i(),l}function Cd(e){let t=e.options.listItemIndent||`one`;if(t!==`tab`&&t!==`one`&&t!==`mixed`)throw Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function wd(e,t,n,r){let i=Cd(n),a=n.bulletCurrent||vd(n);t&&t.type===`list`&&t.ordered&&(a=(typeof t.start==`number`&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function Td(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}function Ed(e,t,n,r){if(!e.children.some(function(e){return Hu(e)}))return n.containerFlow(e,r);let i=n.enter(`phrasing`),a=n.containerPhrasing(e,r);return i(),a}function Dd(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Od.attention=kd,Od.peek=Ad;function Od(e,t,n,r){let i=n.enter(`phrasing`),a=n.containerPhrasing({type:`root`,children:[e]},r);return i(),a}function kd(e,t){return{construct:`strong`,markers:Dd(t)===`*`?[`*`,`_`]:[`_`,`*`],sizes:[2]}}function Ad(e,t,n){return n.options.strong||`*`}function jd(e,t,n,r){let i=t?t.children:[],a=i.indexOf(e);return n.safe(e.value,{...r,afterNode:i[a+1],beforeNode:i[a-1]})}function Md(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function Nd(e,t,n){let r=(xd(n)+(n.options.ruleSpaces?` `:``)).repeat(Md(n));return n.options.ruleSpaces?r.slice(0,-1):r}var Pd={blockquote:Uu,break:qu,code:Y,definition:Z,emphasis:$u,hardBreak:qu,heading:id,html:ad,image:sd,imageReference:ld,inlineCode:dd,link:md,linkReference:gd,list:Sd,listItem:wd,paragraph:Td,root:Ed,strong:Od,text:jd,thematicBreak:Nd};function Fd(){return{enter:{table:Id,tableData:Bd,tableHeader:Bd,tableRow:Rd},exit:{codeText:Vd,table:Ld,tableData:zd,tableHeader:zd,tableRow:zd}}}function Id(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function Ld(e){this.exit(e),this.data.inTable=void 0}function Rd(e){this.enter({type:`tableRow`,children:[]},e)}function zd(e){this.exit(e)}function Bd(e){this.enter({type:`tableCell`,children:[]},e)}function Vd(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Hd));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Hd(e,t){return t===`|`?t:e}function Ud(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:`
47
47
  `,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(`
48
48
  `))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return zu(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=Pd.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function Wd(){return{exit:{taskListCheckValueChecked:Kd,taskListCheckValueUnchecked:Kd,paragraph:qd}}}function Gd(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:Jd}}}function Kd(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function qd(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function Jd(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=Pd.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function Yd(){return[nu(),Eu(),ju(),Fd(),Wd()]}function Xd(e){return{extensions:[ru(),Du(e),Mu(),Ud(e),Gd()]}}var Zd={tokenize:ff,partial:!0},Qd={tokenize:pf,partial:!0},$d={tokenize:mf,partial:!0},ef={tokenize:hf,partial:!0},tf={tokenize:gf,partial:!0},nf={name:`wwwAutolink`,tokenize:uf,previous:_f},rf={name:`protocolAutolink`,tokenize:df,previous:vf},af={name:`emailAutolink`,tokenize:lf,previous:yf},of={};function sf(){return{text:of}}for(var cf=48;cf<123;)of[cf]=af,cf++,cf===58?cf=65:cf===91&&(cf=97);of[43]=af,of[45]=af,of[46]=af,of[95]=af,of[72]=[af,rf],of[104]=[af,rf],of[87]=[af,nf],of[119]=[af,nf];function lf(e,t,n){let r=this,i,a;return o;function o(t){return!bf(t)||!yf.call(r,r.previous)||xf(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return bf(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(tf,u,l)(t):t===45||t===95||vn(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&_n(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function uf(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!_f.call(r,r.previous)||xf(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(Zd,e.attempt(Qd,e.attempt($d,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function df(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&vf.call(r,r.previous)&&!xf(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(_n(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||bn(t)||wn(t)||En(t)||Tn(t)?n(t):e.attempt(Qd,e.attempt($d,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function ff(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function pf(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(ef,c,s)(t):t===null||wn(t)||En(t)||t!==45&&Tn(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function mf(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(ef,t,a)(o):o===null||wn(o)||En(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function hf(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||wn(o)||En(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||wn(e)||En(e)?t(e):r(e)}function a(e){return _n(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):_n(t)?(e.consume(t),o):n(t)}}function gf(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return vn(e)?n(e):t(e)}}function _f(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||wn(e)}function vf(e){return!_n(e)}function yf(e){return!(e===47||bf(e))}function bf(e){return e===43||e===45||e===46||e===95||vn(e)}function xf(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var Sf={tokenize:Af,partial:!0};function Cf(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:Df,continuation:{tokenize:Of},exit:kf}},text:{91:{name:`gfmFootnoteCall`,tokenize:Ef},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:wf,resolveTo:Tf}}}}function wf(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=gn(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function Tf(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function Ef(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||wn(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(gn(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return wn(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function Df(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||wn(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=gn(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return wn(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),G(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function Of(e,t,n){return e.check(Kn,t,e.attempt(Sf,t,n))}function kf(e){e.exit(`gfmFootnoteDefinition`)}function Af(e,t,n){let r=this;return G(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function jf(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&ln(o,o.length,0,zn(s,e.slice(r+1,n),t)),ln(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),ln(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=Rn(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=Rn(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Mf=class{constructor(){this.map=[],this.index=new Map}add(e,t,n){Nf(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0,this.index.clear()}};function Nf(e,t,n,r){if(n===0&&r.length===0)return;let i=e.index.get(t);if(i){i[1]+=n,i[2].push(...r);return}let a=[t,n,r];e.map.push(a),e.index.set(t,a)}function Pf(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function Ff(){return{flow:{null:{name:`table`,tokenize:If,resolveAll:Lf}}}}function If(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let{type:e}=r.events[t][1];if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124||(o=!0,a+=1),u(e)}function u(t){return t===null?n(t):U(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):W(t)?G(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||wn(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,W(t)?G(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return W(t)?G(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||U(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return W(t)?G(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||U(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||U(n)?(e.exit(`tableRow`),t(n)):W(n)?G(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||wn(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function Lf(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Mf;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(zf(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=Rf(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=Rf(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=Rf(f,t,o,i,n,d)):(o[0]=o[1],d=Rf(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&zf(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=Pf(t.events,n))}return e}function Rf(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},Bf(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=Bf(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=Bf(t.events,n[2]),a=Bf(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},Bf(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function zf(e,t,n,r,i){let a=[],o=Bf(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function Bf(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var Vf={name:`tasklistCheck`,tokenize:Hf};function Q(){return{text:{91:Vf}}}function Hf(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return wn(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return U(r)?t(r):W(r)?e.check({tokenize:Uf},t,n)(r):n(r)}}function Uf(e,t,n){return G(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function Wf(e){return fn([sf(),Cf(),jf(e),Ff(),Q()])}var Gf={};function Kf(e){let t=this,n=e||Gf,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(Wf(n)),a.push(Yd()),o.push(Xd(n))}var qf=1048576,Jf=262144,Yf=`allow-scripts allow-forms allow-popups allow-modals`;function Xf(e){return e<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(1)}KB`:`${(e/1048576).toFixed(1)}MB`}var Zf=(e,t)=>e.kind===`markdown`||e.kind===`text`||e.kind===`html`&&t;function Qf(e){let{target:t,version:n,onOpen:r,onBrowse:i,onClose:a}=e,o=b(t),[s,c]=(0,v.useState)(),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(),[p,m]=(0,v.useState)(0),[h,g]=(0,v.useState)(!1),[_,y]=(0,v.useState)();(0,v.useEffect)(()=>{let e=!0;return P.fileStat(t).then(t=>{e&&(u(!1),f(void 0),c(e=>e&&e.path===t.path&&e.mtime===t.mtime?e:t))},t=>{e&&(t instanceof A&&t.status===404?u(!0):f(t instanceof Error?t.message:String(t)))}),()=>{e=!1}},[o,n,p]);let x=s?Zf(s,h):!1;(0,v.useEffect)(()=>{if(y(void 0),!s||!x)return;if(s.bytes===0){y(``);return}let e=!0;return P.fileText(t,s.mtime,qf).then(t=>e&&y(t),t=>e&&f(t instanceof Error?t.message:String(t))),()=>{e=!1}},[s,x,p]);let S=`path`in t?s?.path??t.path:t.name??s?.path??`attachment`,C=s?.kind===`html`?s.previewURL:void 0;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`preview-head`,children:[(0,L.jsx)(`span`,{className:`preview-title`,title:S,children:S}),s?.kind===`html`?(0,L.jsx)(`button`,{type:`button`,onClick:()=>g(!h),children:h?`Rendered`:`Source`}):null,C&&i?(0,L.jsx)(`button`,{type:`button`,onClick:()=>i(C),children:`Open in browser`}):null,(0,L.jsx)(`button`,{type:`button`,onClick:()=>m(p+1),"aria-label":`Refresh`,children:`↻`}),(0,L.jsx)(`button`,{type:`button`,onClick:a,"aria-label":`Close`,children:`✕`})]}),(0,L.jsx)(`div`,{className:`preview-body`,children:l?(0,L.jsx)(`div`,{className:`preview-empty`,children:s?`This file was deleted`:`Not found in this folder`}):d?(0,L.jsxs)(`div`,{className:`preview-empty`,children:[`Could not load: `,d]}):s?(0,L.jsx)($f,{stat:s,target:t,source:h,text:_,onOpen:r},p):(0,L.jsx)(`div`,{className:`preview-empty`,children:(0,L.jsx)(`span`,{className:`spinner`})})})]})}function $f(e){let{stat:t,target:n,source:r,text:i,onOpen:a}=e,o=N(n,t.mtime);if(t.kind===`image`)return(0,L.jsx)(`img`,{className:`preview-image`,src:o,alt:t.path});if(t.kind===`pdf`)return(0,L.jsx)(`iframe`,{className:`preview-frame`,src:o,title:t.path});if(t.kind===`video`)return(0,L.jsx)(`video`,{className:`preview-video`,src:o,controls:!0});if(t.kind===`html`&&!r&&t.previewURL)return(0,L.jsx)(`iframe`,{className:`preview-frame`,src:`${t.previewURL}?v=${t.mtime}`,sandbox:Yf,title:t.path});if(t.kind===`binary`)return(0,L.jsxs)(`div`,{className:`preview-empty`,children:[`No preview for this file · `,Xf(t.bytes)]});if(i===void 0)return(0,L.jsx)(`div`,{className:`preview-empty`,children:(0,L.jsx)(`span`,{className:`spinner`})});let s=t.bytes>qf?(0,L.jsx)(`div`,{className:`preview-note`,children:`File too large — showing the first 1 MB`}):null;return t.kind===`markdown`&&!r?(0,L.jsxs)(`div`,{className:`reply preview-markdown`,children:[s,(0,L.jsx)(as,{remarkPlugins:[Kf],rehypePlugins:[ql],components:ep(t,a),children:i})]}):i.length>Jf?(0,L.jsxs)(L.Fragment,{children:[s,(0,L.jsx)(`pre`,{className:`preview-text`,children:i})]}):(0,L.jsxs)(`div`,{className:`reply preview-code`,children:[s,(0,L.jsx)(as,{rehypePlugins:[ql],children:D(i,t.path)})]})}function ep(e,t){return{img({node:t,src:n,alt:r}){let i=typeof n==`string`?E(e.path,n):null;return(0,L.jsx)(`img`,{src:i?N({path:i},e.mtime):n,alt:r??``})},a({node:n,href:r,children:i}){let a=r?E(e.path,r):null;return a?(0,L.jsx)(`a`,{href:r,className:`file-link`,onClick:e=>{e.preventDefault(),t({path:a})},children:i}):(0,L.jsx)(`a`,{href:r,target:`_blank`,rel:`noreferrer`,children:i})}}}function $(e){return e.title?.trim()||e.preview||`New chat`}var tp=(e,t)=>t.session.updatedAt-e.session.updatedAt;function np(e){return e.flatMap(e=>e.sessions.filter(e=>!e.archived).map(t=>({session:t,ws:e})))}function rp(e,t){let n=t.trim().toLowerCase();return n?np(e).filter(e=>$(e.session).toLowerCase().includes(n)||e.ws.name.toLowerCase().includes(n)).sort(tp):[]}function ip(e){return np(e).filter(e=>!e.session.pinned).sort(tp)}function ap(e,t){let n=t.trim().toLowerCase();if(!n)return[{text:e,hit:!1}];let r=[],i=e.toLowerCase(),a=0;for(let t=i.indexOf(n);t!==-1;t=i.indexOf(n,a))t>a&&r.push({text:e.slice(a,t),hit:!1}),r.push({text:e.slice(t,t+n.length),hit:!0}),a=t+n.length;return a<e.length&&r.push({text:e.slice(a),hit:!1}),r}function op(e,t){if(t.expanded||e.length<=t.limit)return{rows:e,hidden:0};let n=e.slice(0,t.limit),r=e.slice(t.limit).find(e=>e.id===t.current);return r&&n.push(r),{rows:n,hidden:e.length-n.length}}var sp=5,cp=`tah.collapsedWorkspaces`,lp=`tah.sidebarRail`,up=`tah.sidebarGroup`;function dp(){try{let e=JSON.parse(localStorage.getItem(cp)??`[]`);return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}catch{return[]}}function fp(e){let t=new Date(e),n=e=>String(e).padStart(2,`0`);return`${t.getMonth()+1}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}`}function pp(e){let t=Math.floor((Date.now()-e)/6e4);if(t<1)return`now`;if(t<60)return`${t}m`;let n=Math.floor(t/60);return n<24?`${n}h`:`${Math.floor(n/24)}d`}var mp=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M6 2h4l-.5 4 2.5 2.5v1H4v-1L6.5 6 6 2zM8 9.5V14`,strokeLinejoin:`round`})}),hp=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M2 3h12v3H2zM3 6v7h10V6M6.5 8.5h3`,strokeLinejoin:`round`})}),gp=e=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,"aria-hidden":!0,style:{transform:e.open?`rotate(90deg)`:void 0,transition:`transform 0.12s`},children:(0,L.jsx)(`path`,{d:`M6 3.5 10.5 8 6 12.5`,strokeLinecap:`round`,strokeLinejoin:`round`})}),_p=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M8 3v10M3 8h10`,strokeLinecap:`round`})}),vp=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`12`,height:`12`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M4 4l8 8M12 4l-8 8`,strokeLinecap:`round`})}),yp=()=>(0,L.jsxs)(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,fill:`currentColor`,"aria-hidden":!0,children:[(0,L.jsx)(`circle`,{cx:`3.5`,cy:`8`,r:`1.2`}),(0,L.jsx)(`circle`,{cx:`8`,cy:`8`,r:`1.2`}),(0,L.jsx)(`circle`,{cx:`12.5`,cy:`8`,r:`1.2`})]}),bp=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.3`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M1.5 4V12.5h7M1.5 4V3h4.5l1.5 1.5h7v4M12 10v5M9.5 12.5h5`,strokeLinejoin:`round`,strokeLinecap:`round`})}),xp=()=>(0,L.jsxs)(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.3`,"aria-hidden":!0,children:[(0,L.jsx)(`rect`,{x:`1.5`,y:`2.5`,width:`13`,height:`11`,rx:`2`}),(0,L.jsx)(`path`,{d:`M6 2.5v11`})]}),Sp=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.3`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M13.5 8.5v4a1.5 1.5 0 0 1-1.5 1.5H4A1.5 1.5 0 0 1 2.5 12.5V4A1.5 1.5 0 0 1 4 2.5h4M11.5 1.8l2.7 2.7L8.5 10.2H5.8V7.5z`,strokeLinecap:`round`,strokeLinejoin:`round`})}),Cp=()=>(0,L.jsxs)(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,"aria-hidden":!0,children:[(0,L.jsx)(`circle`,{cx:`7`,cy:`7`,r:`4.5`}),(0,L.jsx)(`path`,{d:`M10.5 10.5 14 14`,strokeLinecap:`round`})]}),wp=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M2.5 4h11M4.5 8h7M6.5 12h3`,strokeLinecap:`round`})}),Tp=()=>(0,L.jsxs)(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.3`,"aria-hidden":!0,children:[(0,L.jsx)(`circle`,{cx:`8`,cy:`8`,r:`2.2`}),(0,L.jsx)(`path`,{d:`M8 1.5v1.6M8 12.9v1.6M1.5 8h1.6M12.9 8h1.6M3.4 3.4l1.1 1.1M11.5 11.5l1.1 1.1M3.4 12.6l1.1-1.1M11.5 4.5l1.1-1.1`,strokeLinecap:`round`}),(0,L.jsx)(`circle`,{cx:`8`,cy:`8`,r:`4.6`})]});function Ep(e,t=!1){let n=e.currentTarget.getBoundingClientRect();return t?{x:n.right+6,y:Math.min(n.top,innerHeight-120)}:{x:Math.min(n.left,innerWidth-190),y:n.bottom+4}}function Dp(e){let[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(),[s,c]=(0,v.useState)(dp),[l,u]=(0,v.useState)([]),[d,f]=(0,v.useState)(()=>localStorage.getItem(lp)===`1`),[p,m]=(0,v.useState)(()=>localStorage.getItem(up)===`flat`?`flat`:`workspace`),[h,g]=(0,v.useState)(),_=(0,v.useRef)(null),y=(0,v.useRef)(null),b=(0,v.useRef)(null),x=e=>c(t=>{let n=t.includes(e)?t.filter(t=>t!==e):[...t,e];return localStorage.setItem(cp,JSON.stringify(n)),n}),S=e=>{localStorage.setItem(lp,e?`1`:`0`),f(e)},C=e=>{localStorage.setItem(up,e),m(e)},w=()=>{S(!1),g(e=>e??``)};(0,v.useEffect)(()=>{t&&_.current?.focus()},[t]);let T=h!==void 0;(0,v.useEffect)(()=>{T&&y.current?.focus()},[T]);let E=!!a;(0,v.useEffect)(()=>{if(!E)return;let e=()=>o(void 0),t=t=>{b.current?.contains(t.target)||e()},n=t=>{t.key===`Escape`&&e()};return window.addEventListener(`mousedown`,t),window.addEventListener(`keydown`,n),window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`mousedown`,t),window.removeEventListener(`keydown`,n),window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[E]);let D=e=>`${e.ws.path}\n${e.session.id}`,O=t=>{e.busy||(n(D(t)),i($(t.session)))},k=async t=>{let i=r;n(void 0),await e.onRename(t.session.id,i,t.ws.path)},A=e.workspaces??[],j=A.flatMap(e=>e.sessions.filter(e=>!e.archived).map(t=>({session:t,ws:e}))).filter(e=>e.session.pinned),M=(a,s)=>{let c=a.session,l=a.ws.active&&c.id===e.current,u=l?e.waiting:void 0;return(0,L.jsx)(`li`,{className:l?`session-item current`:`session-item`,onContextMenu:e=>{e.preventDefault(),o({kind:`session`,item:a,x:Math.min(e.clientX,innerWidth-180),y:Math.min(e.clientY,innerHeight-200)})},children:t===D(a)?(0,L.jsx)(`form`,{className:`session editing`,onSubmit:e=>{e.preventDefault(),k(a)},children:(0,L.jsx)(`input`,{ref:_,className:`session-rename`,value:r,"aria-label":`Rename session`,onChange:e=>i(e.target.value),onBlur:()=>void k(a),onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),n(void 0))}})}):(0,L.jsxs)(`div`,{className:`session`,children:[(0,L.jsx)(`span`,{className:`session-status`,children:u?(0,L.jsx)(`span`,{className:`status-dot`,"aria-label":u}):l&&e.busy?(0,L.jsx)(`span`,{className:`spinner`,"aria-label":`running`}):null}),(0,L.jsx)(`button`,{type:`button`,className:`session-pick`,disabled:e.busy&&!l,onClick:()=>!l&&e.onPick(c.id,a.ws.path),onDoubleClick:e=>{e.preventDefault(),O(a)},title:`${c.id}\n${c.turns} turns · ${fp(c.updatedAt)}\nDouble-click to rename`,children:(0,L.jsx)(`span`,{className:`preview`,children:ap($(c),h??``).map((e,t)=>e.hit?(0,L.jsx)(`mark`,{children:e.text},t):e.text)})}),u?(0,L.jsx)(`span`,{className:`session-badge`,children:u}):null,s?(0,L.jsx)(`span`,{className:`session-folder`,children:a.ws.name}):null,u?null:(0,L.jsx)(`span`,{className:`session-time`,children:pp(c.updatedAt)}),(0,L.jsxs)(`span`,{className:`session-tools`,children:[(0,L.jsx)(`button`,{type:`button`,"aria-label":c.pinned?`Unpin`:`Pin`,title:c.pinned?`Unpin`:`Pin`,className:c.pinned?`on`:void 0,onClick:()=>e.onFlag(c.id,`pinned`,!c.pinned,a.ws.path),children:(0,L.jsx)(mp,{})}),(0,L.jsx)(`button`,{type:`button`,"aria-label":`Archive`,title:`Archive`,onClick:()=>e.onFlag(c.id,`archived`,!0,a.ws.path),children:(0,L.jsx)(hp,{})})]})]})},D(a))},N=e=>()=>{o(void 0),e()},P=t=>{let n=s.includes(t.path),r=l.includes(t.path),i=t.sessions.filter(e=>!e.archived&&!e.pinned),a=op(i,{limit:sp,expanded:r,current:t.active?e.current:``}),c=r?i.length>sp:a.hidden>0;return(0,L.jsxs)(`section`,{className:`ws`,children:[(0,L.jsxs)(`div`,{className:`ws-head${t.active?` active`:``}${t.missing?` missing`:``}`,title:t.path,children:[(0,L.jsxs)(`button`,{type:`button`,className:`ws-toggle`,"aria-expanded":!n,onClick:()=>x(t.path),children:[(0,L.jsx)(`span`,{className:`ws-chevron`,children:(0,L.jsx)(gp,{open:!n})}),(0,L.jsx)(`span`,{className:`ws-name`,children:t.name})]}),t.missing?(0,L.jsx)(`span`,{className:`ws-note`,children:`folder not found`}):null,(0,L.jsxs)(`span`,{className:`ws-tools`,children:[t.missing?null:(0,L.jsx)(`button`,{type:`button`,title:`New session`,"aria-label":`New session in ${t.name}`,disabled:e.busy,onClick:()=>e.onNew(t.path),children:(0,L.jsx)(_p,{})}),t.active?null:(0,L.jsx)(`button`,{type:`button`,title:`More`,"aria-label":`More for ${t.name}`,"aria-haspopup":`menu`,onClick:e=>o({kind:`folder`,ws:t,...Ep(e)}),children:(0,L.jsx)(yp,{})})]})]}),n?null:(0,L.jsxs)(L.Fragment,{children:[t.error?(0,L.jsx)(`div`,{className:`sidebar-note`,children:t.error}):null,(0,L.jsx)(`ul`,{children:a.rows.map(e=>M({session:e,ws:t},!1))}),c?(0,L.jsx)(`button`,{type:`button`,className:`ws-more`,onClick:()=>u(e=>r?e.filter(e=>e!==t.path):[...e,t.path]),children:r?`Show less`:`Show ${a.hidden} more`}):null]})]},t.path)},ee=rp(A,h??``),F=e.user===void 0?null:(0,L.jsxs)(`div`,{className:`sidebar-user`,children:[(0,L.jsx)(`span`,{className:`avatar`,"aria-hidden":!0,children:(e.user[0]??`?`).toUpperCase()}),(0,L.jsx)(`span`,{className:`user-name`,children:e.user}),(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,title:`Settings`,"aria-label":`Settings`,onClick:e.onSettings,children:(0,L.jsx)(Tp,{})})]});return(0,L.jsxs)(`aside`,{className:d?`sidebar rail`:`sidebar`,children:[d?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`brand-mark`,"aria-hidden":!0,children:`t`}),(0,L.jsx)(`button`,{type:`button`,className:`rail-btn`,title:`Expand sidebar`,"aria-label":`Expand sidebar`,onClick:()=>S(!1),children:(0,L.jsx)(xp,{})}),(0,L.jsx)(`button`,{type:`button`,className:`rail-btn`,title:`New session`,"aria-label":`New session`,disabled:e.busy,onClick:()=>e.onNew(),children:(0,L.jsx)(Sp,{})}),(0,L.jsx)(`button`,{type:`button`,className:`rail-btn`,title:`Search`,"aria-label":`Search sessions`,onClick:w,children:(0,L.jsx)(Cp,{})}),(0,L.jsx)(`button`,{type:`button`,className:`rail-btn`,title:`Add workspace`,"aria-label":`Add workspace`,"aria-haspopup":`menu`,disabled:e.busy,onClick:e=>o({kind:`add`,...Ep(e,!0)}),children:(0,L.jsx)(bp,{})}),(0,L.jsx)(`span`,{className:`rail-gap`}),e.user===void 0?null:(0,L.jsx)(`button`,{type:`button`,className:`rail-btn`,title:`Settings`,"aria-label":`Settings`,onClick:e.onSettings,children:(0,L.jsx)(Tp,{})})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`sidebar-brand`,children:[(0,L.jsxs)(`span`,{className:`brand`,children:[(0,L.jsx)(`span`,{className:`brand-mark`,"aria-hidden":!0,children:`t`}),`tah`]}),(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,title:`Collapse sidebar`,"aria-label":`Collapse sidebar`,onClick:()=>S(!0),children:(0,L.jsx)(xp,{})})]}),(0,L.jsxs)(`button`,{type:`button`,className:`new-session`,onClick:()=>e.onNew(),disabled:e.busy,children:[(0,L.jsx)(Sp,{}),`New session`]}),h===void 0?(0,L.jsxs)(`div`,{className:`ws-header`,children:[(0,L.jsx)(`span`,{children:p===`flat`?`Sessions`:`Workspaces`}),(0,L.jsxs)(`span`,{className:`ws-header-tools`,children:[(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,title:`Search`,"aria-label":`Search sessions`,onClick:w,children:(0,L.jsx)(Cp,{})}),(0,L.jsx)(`button`,{type:`button`,className:a?.kind===`view`?`icon-btn on`:`icon-btn`,title:`View options`,"aria-label":`View options`,"aria-haspopup":`menu`,onClick:e=>o({kind:`view`,...Ep(e)}),children:(0,L.jsx)(wp,{})}),(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,title:`Add workspace`,"aria-label":`Add workspace`,"aria-haspopup":`menu`,disabled:e.busy,onClick:e=>o({kind:`add`,...Ep(e)}),children:(0,L.jsx)(bp,{})})]})]}):(0,L.jsxs)(`div`,{className:`sidebar-search`,children:[(0,L.jsx)(Cp,{}),(0,L.jsx)(`input`,{ref:y,value:h,placeholder:`Search sessions`,"aria-label":`Search sessions`,onChange:e=>g(e.target.value),onBlur:()=>!h.trim()&&g(void 0),onKeyDown:e=>e.key===`Escape`&&g(void 0)}),(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,title:`Clear`,"aria-label":`Clear search`,onClick:()=>g(void 0),children:(0,L.jsx)(vp,{})})]}),e.unavailable?(0,L.jsx)(`div`,{className:`sidebar-note`,children:e.unavailable}):null,(0,L.jsx)(`div`,{className:`sessions`,children:h===void 0?(0,L.jsxs)(L.Fragment,{children:[j.length?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`sessions-heading`,children:`Pinned`}),(0,L.jsx)(`ul`,{children:j.map(e=>M(e,!0))})]}):null,p===`flat`?(0,L.jsx)(`ul`,{children:ip(A).map(e=>M(e,!0))}):A.map(P)]}):h.trim()?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`ul`,{children:ee.map(e=>M(e,!0))}),(0,L.jsxs)(`div`,{className:`sidebar-note`,children:[ee.length?`${ee.length} session${ee.length===1?``:`s`}`:`No matches`,` · titles and folder names`]})]}):null}),F]}),a?.kind===`session`?(0,L.jsxs)(`ul`,{ref:b,className:`context-menu`,role:`menu`,style:{left:a.x,top:a.y},children:[(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,role:`menuitem`,onClick:N(()=>e.onFlag(a.item.session.id,`pinned`,!a.item.session.pinned,a.item.ws.path)),children:a.item.session.pinned?`Unpin`:`Pin`})}),(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,role:`menuitem`,disabled:e.busy,onClick:N(()=>O(a.item)),children:`Rename`})}),(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,role:`menuitem`,disabled:e.busy,onClick:N(()=>e.onFork(a.item.session.id,a.item.ws.path)),children:`Fork`})}),(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,role:`menuitem`,onClick:N(()=>void navigator.clipboard?.writeText(a.item.session.id)),children:`Copy ID`})}),(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,role:`menuitem`,onClick:N(()=>e.onFlag(a.item.session.id,`archived`,!0,a.item.ws.path)),children:`Archive`})})]}):null,a?.kind===`folder`?(0,L.jsx)(`ul`,{ref:b,className:`context-menu`,role:`menu`,style:{left:a.x,top:a.y},children:(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,role:`menuitem`,onClick:N(()=>e.onRemoveFolder(a.ws.path)),children:`Remove from list`})})}):null,a?.kind===`add`?(0,L.jsxs)(`ul`,{ref:b,className:`context-menu`,role:`menu`,style:{left:a.x,top:a.y},children:[(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,role:`menuitem`,onClick:N(e.onOpenProject),children:`Open project…`})}),(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,role:`menuitem`,onClick:N(e.onNewFolder),children:`New folder…`})})]}):null,a?.kind===`view`?(0,L.jsxs)(`ul`,{ref:b,className:`context-menu`,role:`menu`,style:{left:a.x,top:a.y},children:[(0,L.jsx)(`li`,{className:`menu-label`,children:`Group by`}),[[`workspace`,`Workspace`],[`flat`,`One list`]].map(([e,t])=>(0,L.jsx)(`li`,{children:(0,L.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":p===e,onClick:N(()=>C(e)),children:[(0,L.jsx)(`span`,{className:`menu-check`,children:p===e?`✓`:``}),t]})},e))]}):null]})}var Op={completed:`☑`,in_progress:`▶`,pending:`☐`};function kp({todos:e}){let[t,n]=(0,v.useState)(!0),r=e.filter(e=>e.status===`completed`).length;if(r===e.length)return null;let i=e.find(e=>e.status===`in_progress`);return(0,L.jsxs)(`div`,{className:`todos`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`todos-head`,"aria-expanded":t,onClick:()=>n(!t),children:[(0,L.jsx)(gp,{open:t}),(0,L.jsxs)(`span`,{className:`todos-title`,children:[`Tasks `,r,`/`,e.length]}),!t&&i?(0,L.jsx)(`span`,{className:`todos-current`,children:i.content}):null]}),t?(0,L.jsx)(`ul`,{className:`todos-list`,children:e.map((e,t)=>(0,L.jsxs)(`li`,{className:e.status,children:[(0,L.jsx)(`span`,{className:`todos-mark`,children:Op[e.status]}),e.content]},t))}):null]})}function Ap(e){let{path:t,onOpen:n}=e;return(0,L.jsxs)(`div`,{className:`tool ${e.status}`,children:[(0,L.jsx)(`span`,{className:`dot`,children:`⏺`}),(0,L.jsx)(`span`,{className:`name`,children:e.tool}),e.summary&&t&&n?(0,L.jsx)(`button`,{type:`button`,className:`summary file-link`,title:t,onClick:()=>n({path:t}),children:e.summary}):e.summary?(0,L.jsx)(`span`,{className:`summary`,children:e.summary}):null,e.status===`running`?(0,L.jsx)(`span`,{className:`spinner`,"aria-label":`running`}):null,e.status===`ok`?(0,L.jsxs)(`span`,{className:`result`,children:[`✓ `,e.result]}):null,e.status===`failed`?(0,L.jsxs)(`span`,{className:`result`,children:[`✗ `,e.result]}):null]})}function jp(e,t){return{a({node:n,href:r,children:i,...a}){let o=T(r);return o?(0,L.jsx)(`a`,{href:r,className:`file-link`,onClick:t=>{t.preventDefault(),e({path:o})},children:i}):(0,L.jsx)(`a`,{href:r,...r?.startsWith(`#`)?{}:{target:`_blank`,rel:`noreferrer`},...a,onClick:e=>{t&&r&&ne(r,e,location.origin)&&(e.preventDefault(),t(r))},children:i})},code({node:t,children:n,...r}){let i=typeof n==`string`&&!n.includes(`
49
- `)?w(n):null;return i?(0,L.jsx)(`code`,{...r,className:`file-link`,role:`button`,tabIndex:0,title:`Open ${i}`,onClick:t=>{t.preventDefault(),t.stopPropagation(),e({path:i})},onKeyDown:t=>{t.key===`Enter`&&(t.stopPropagation(),e({path:i}))},children:n}):(0,L.jsx)(`code`,{...r,children:n})}}}var Mp=(0,v.memo)(function({text:e,onOpen:t,onBrowse:n}){let r=(0,v.useMemo)(()=>jp(t,n),[t,n]);return(0,L.jsx)(`div`,{className:`reply`,children:(0,L.jsx)(as,{remarkPlugins:[Kf],rehypePlugins:[ql],components:r,children:e})})});function Np(e){return e<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(1)}KB`:`${(e/1048576).toFixed(1)}MB`}var Pp=(0,v.memo)(function({entry:e,onOpen:t,onBrowse:n}){switch(e.kind){case`user`:return(0,L.jsxs)(`div`,{className:`user`,children:[e.attachments?.length?(0,L.jsx)(`div`,{className:`user-attach`,children:e.attachments.map(e=>(0,L.jsxs)(`button`,{type:`button`,className:`attach-card sent ${e.kind}`,title:e.name,onClick:()=>t({attachment:e.id,name:e.name}),children:[e.kind===`image`?(0,L.jsx)(`img`,{src:N({attachment:e.id},0),alt:``,loading:`lazy`}):(0,L.jsx)(`span`,{className:`attach-ext`,children:e.name.split(`.`).pop()?.toUpperCase()??`FILE`}),(0,L.jsxs)(`span`,{className:`attach-meta`,children:[(0,L.jsx)(`span`,{className:`attach-name`,children:e.name}),(0,L.jsx)(`span`,{className:`attach-sub`,children:Np(e.bytes)})]})]},e.id))}):null,e.text?(0,L.jsx)(`div`,{children:e.text}):e.attachments?.length?(0,L.jsx)(`div`,{className:`user-attach-fallback`,children:`Attached`}):(0,L.jsx)(`div`,{className:`user-attach-fallback`,children:`(empty)`})]});case`assistant`:return(0,L.jsx)(Mp,{text:e.text,onOpen:t,onBrowse:n});case`tool`:return(0,L.jsx)(Ap,{tool:e.tool,summary:e.summary,status:e.status,result:e.result,...e.path?{path:e.path}:{},onOpen:t});case`notice`:return(0,L.jsx)(`div`,{className:e.error?`notice error`:`notice`,children:e.text})}}),Fp=e=>e.kind===`notice`&&!e.error&&e.text.startsWith(`[ctx]`);function Ip(e){let t=[];for(let n of e){let e=t.at(-1);n.kind===`tool`||Fp(n)?e?.kind===`steps`?e.entries.push(n):t.push({kind:`steps`,id:n.id,entries:[n]}):t.push({kind:`row`,entry:n})}return t}function Lp({entries:e,live:t,onOpen:n,onBrowse:r}){let[i,a]=(0,v.useState)(!1),o=e.filter(e=>e.kind===`tool`);if(!o.length)return e.map(e=>(0,L.jsx)(Pp,{entry:e,onOpen:n,onBrowse:r},e.id));let s=new Map;for(let e of o)s.set(e.tool,(s.get(e.tool)??0)+1);let c=[...s].map(([e,t])=>t>1?`${e} ×${t}`:e).join(` · `),l=o.filter(e=>e.status===`failed`).length,u=i?e:t?o.slice(-3):[];return(0,L.jsxs)(`div`,{className:`steps`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`steps-head`,"aria-expanded":i,onClick:()=>a(!i),children:[(0,L.jsx)(gp,{open:i}),t?(0,L.jsx)(`span`,{className:`spinner`,"aria-label":`running`}):null,(0,L.jsxs)(`span`,{className:`steps-title`,children:[t?`Working`:`Ran`,` `,o.length,` `,o.length===1?`step`:`steps`]}),(0,L.jsx)(`span`,{className:`steps-detail`,children:c}),l?(0,L.jsxs)(`span`,{className:`steps-failed`,children:[l,` failed`]}):null]}),u.length?(0,L.jsx)(`div`,{className:`steps-body`,children:u.map(e=>(0,L.jsx)(Pp,{entry:e,onOpen:n,onBrowse:r},e.id))}):null]})}function Rp({entries:e,busy:t,onOpen:n,onBrowse:r,children:i}){let a=(0,v.useRef)(null),o=(0,v.useRef)(!0);return(0,v.useEffect)(()=>{let e=a.current;e&&o.current&&(e.scrollTop=e.scrollHeight)}),(0,L.jsxs)(`div`,{className:`messages`,ref:a,onScroll:e=>{let t=e.currentTarget;o.current=t.scrollHeight-t.scrollTop-t.clientHeight<40},children:[e.length===0?(0,L.jsxs)(`div`,{className:`empty`,children:[(0,L.jsx)(`div`,{className:`empty-title`,children:`New chat`}),(0,L.jsx)(`p`,{className:`empty-hint`,children:`Ask the agent anything below. Attach files with +, or drop / paste into the composer.`})]}):null,Ip(e).map((e,i,a)=>e.kind===`row`?(0,L.jsx)(Pp,{entry:e.entry,onOpen:n,onBrowse:r},e.entry.id):(0,L.jsx)(Lp,{entries:e.entries,live:t&&i===a.length-1,onOpen:n,onBrowse:r},e.id)),i]})}var zp={"api.deepseek.com":`DeepSeek`,"api.openai.com":`OpenAI`};function Bp(e){let t;try{t=new URL(e).host}catch{return e}return zp[t]??t}function Vp(e){let t=[];for(let n of e){let e=Bp(n.baseURL),r=t.find(t=>t.name===e);r?r.models.push(n):t.push({name:e,models:[n]})}return t}function Hp(e){let t=e.models.find(t=>t.id===e.activeModel);return t?t.model:e.env?`${e.env.model} · .env`:`No model`}function Up(e){let[t,n]=(0,v.useState)(!1),r=(0,v.useRef)(null),{view:i}=e;if((0,v.useEffect)(()=>{if(!t)return;let e=e=>{r.current?.contains(e.target)||n(!1)},i=e=>{e.key===`Escape`&&n(!1)};return window.addEventListener(`mousedown`,e),window.addEventListener(`keydown`,i),()=>{window.removeEventListener(`mousedown`,e),window.removeEventListener(`keydown`,i)}},[t]),(0,v.useEffect)(()=>{e.busy&&n(!1)},[e.busy]),!i)return null;let a=t=>{n(!1),t!==i.activeModel&&e.onPick(t)};return(0,L.jsxs)(`div`,{className:`model-picker`,ref:r,children:[(0,L.jsxs)(`button`,{type:`button`,className:t?`model-btn on`:`model-btn`,disabled:e.busy,title:e.busy?`Wait for the reply to finish to switch models`:`Switch model`,"aria-haspopup":`menu`,"aria-expanded":t,onClick:()=>n(e=>!e),children:[Hp(i),(0,L.jsx)(`span`,{className:`model-chev`,children:(0,L.jsx)(gp,{open:!1})})]}),t?(0,L.jsxs)(`ul`,{className:`context-menu model-menu`,role:`menu`,children:[Vp(i.models).map(e=>(0,L.jsxs)(`li`,{role:`none`,children:[(0,L.jsx)(`div`,{className:`menu-label`,children:e.name}),(0,L.jsx)(`ul`,{role:`none`,children:e.models.map(e=>(0,L.jsx)(`li`,{role:`none`,children:(0,L.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":e.id===i.activeModel,onClick:()=>a(e.id),children:[e.model,e.vision?(0,L.jsx)(`span`,{className:`model-key`,children:`images`}):null,(0,L.jsx)(`span`,{className:`model-check`,children:e.id===i.activeModel?`✓`:``})]})},e.id))})]},e.name)),i.env?(0,L.jsxs)(`li`,{role:`none`,children:[(0,L.jsx)(`div`,{className:`menu-label`,children:`From .env`}),(0,L.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":i.activeModel===null,onClick:()=>a(null),children:[i.env.model,(0,L.jsx)(`span`,{className:`model-key`,children:i.env.key}),(0,L.jsx)(`span`,{className:`model-check`,children:i.activeModel===null?`✓`:``})]})]}):null,(0,L.jsx)(`li`,{role:`separator`,className:`menu-sep`}),(0,L.jsx)(`li`,{role:`none`,children:(0,L.jsxs)(`button`,{type:`button`,role:`menuitem`,onClick:()=>{n(!1),e.onManage()},children:[(0,L.jsx)(`span`,{className:`model-gear`,children:(0,L.jsx)(Tp,{})}),i.models.length?`Manage models…`:`Add a model…`]})})]}):null]})}var Wp=e=>e instanceof Error?e.message:String(e),Gp=(e,t)=>`${e.replace(/[\\/]$/,``)}/${t}`;function Kp(e){let[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!1),{onClose:d}=e,f=e=>P.fs(e).then(e=>{n(e),i(void 0)},e=>i(Wp(e)));return(0,v.useEffect)(()=>{f(e.start)},[]),(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&d()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[d]),(0,L.jsx)(`div`,{className:`modal-backdrop`,onMouseDown:e=>e.target===e.currentTarget&&d(),children:(0,L.jsxs)(`div`,{className:`modal`,role:`dialog`,"aria-label":`Add folder`,children:[(0,L.jsx)(`div`,{className:`crumbs`,children:t?.crumbs.map((e,t)=>(0,L.jsx)(`button`,{type:`button`,onClick:()=>void f(e.path),children:t===0?e.name:`${e.name}/`},e.path))}),(0,L.jsxs)(`ul`,{className:`dirs`,children:[t?.parent?(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,onClick:()=>void f(t.parent??void 0),children:`..`})}):null,t?.dirs.map(e=>(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,onClick:()=>void f(Gp(t.path,e)),children:e})},e))]}),a&&t?(0,L.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),P.mkdir({path:t.path,name:s.trim()}).then(e=>(o(!1),c(``),f(e.path)),e=>i(Wp(e)))},children:(0,L.jsx)(`input`,{autoFocus:!0,className:`session-rename`,value:s,placeholder:`New folder name`,"aria-label":`New folder name`,onChange:e=>c(e.target.value),onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),o(!1))}})}):null,r?(0,L.jsx)(`div`,{className:`modal-error`,children:r}):null,(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`button`,{type:`button`,disabled:!t,onClick:()=>o(!0),children:`New folder`}),(0,L.jsx)(`span`,{className:`spacer`}),(0,L.jsx)(`button`,{type:`button`,onClick:d,children:`Cancel`}),(0,L.jsx)(`button`,{type:`button`,className:`primary`,disabled:!t||e.busy||l,onClick:()=>{t&&(u(!0),e.onOpen(t.path).catch(e=>{u(!1),i(Wp(e))}))},children:e.confirmLabel??`Open this folder`})]})]})})}var qp=e=>e instanceof Error?e.message:String(e);function Jp(e){let[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(e.desktop),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(!1),{onClose:p}=e;if((0,v.useEffect)(()=>{if(a)return;let e=e=>{e.key===`Escape`&&p()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[p,a]),a)return(0,L.jsx)(Kp,{busy:!1,start:r,confirmLabel:`Use this location`,onOpen:async e=>{i(e),o(!1)},onClose:()=>o(!1)});let m=async()=>{f(!0),c(void 0);try{let e=await P.choose({start:r});e&&i(e)}catch(e){e instanceof A&&e.status===501?o(!0):c(qp(e))}finally{f(!1)}},h=!!t.trim()&&!e.busy&&!l&&!d,g=()=>{h&&(u(!0),P.mkdir({path:r,name:t.trim()}).then(t=>e.onOpen(t.path)).catch(e=>{u(!1),c(qp(e))}))};return(0,L.jsx)(`div`,{className:`modal-backdrop`,onMouseDown:e=>e.target===e.currentTarget&&p(),children:(0,L.jsxs)(`div`,{className:`modal`,role:`dialog`,"aria-label":`New folder`,children:[(0,L.jsx)(`div`,{className:`modal-title`,children:`New folder`}),(0,L.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),g()},children:(0,L.jsx)(`input`,{autoFocus:!0,className:`session-rename`,value:t,placeholder:`Folder name`,"aria-label":`Folder name`,onChange:e=>n(e.target.value)})}),(0,L.jsxs)(`div`,{className:`new-folder-where`,children:[(0,L.jsx)(`span`,{children:`Location`}),(0,L.jsx)(`span`,{className:`where-path`,title:r,children:r}),(0,L.jsx)(`button`,{type:`button`,disabled:d,onClick:()=>void m(),children:`Change…`})]}),s?(0,L.jsx)(`div`,{className:`modal-error`,children:s}):null,(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`span`,{className:`spacer`}),(0,L.jsx)(`button`,{type:`button`,onClick:p,children:`Cancel`}),(0,L.jsx)(`button`,{type:`button`,className:`primary`,disabled:!h,onClick:g,children:`Create`})]})]})})}var Yp=e=>e instanceof Error?e.message:String(e);function Xp(e){let[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(),[s,c]=(0,v.useState)(!1),{onClose:l}=e,u=async t=>{c(!0);try{await e.onOpen(t)}catch(e){c(!1),o(Yp(e))}},d=async e=>{c(!0),o(void 0);try{let t=await P.choose();if(t)return void await u(t);if(e)return l();c(!1)}catch(e){c(!1),e instanceof A&&e.status===501?i(!0):o(Yp(e))}};return(0,v.useEffect)(()=>{P.recent().then(e=>{n(e),e.length===0&&d(!0)},()=>n([]))},[]),(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&l()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[l]),r?(0,L.jsx)(Kp,{busy:e.busy,onOpen:e.onOpen,onClose:l}):(0,L.jsx)(`div`,{className:`modal-backdrop`,onMouseDown:e=>e.target===e.currentTarget&&l(),children:(0,L.jsxs)(`div`,{className:`modal`,role:`dialog`,"aria-label":`Open project`,children:[(0,L.jsx)(`div`,{className:`modal-title`,children:t?.length?`Recent projects`:`Open project`}),t?.length?(0,L.jsx)(`ul`,{className:`dirs recent`,children:t.map(t=>(0,L.jsx)(`li`,{children:(0,L.jsxs)(`button`,{type:`button`,title:t.path,disabled:e.busy||s,onClick:()=>void u(t.path),children:[t.name,(0,L.jsx)(`span`,{className:`dir-path`,children:t.path})]})},t.path))}):(0,L.jsx)(`div`,{className:`sidebar-note`,children:`Choose a folder in the system dialog…`}),a?(0,L.jsx)(`div`,{className:`modal-error`,children:a}):null,(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`button`,{type:`button`,className:`primary`,disabled:e.busy||s,onClick:()=>void d(!1),children:`Choose folder…`}),(0,L.jsx)(`span`,{className:`spacer`}),(0,L.jsx)(`button`,{type:`button`,onClick:l,children:`Cancel`})]})]})})}var Zp=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M2.5 4h11M6 4V2.5h4V4M4 4l.7 9.5h6.6L12 4M6.8 6.5v4.5M9.2 6.5v4.5`,strokeLinejoin:`round`,strokeLinecap:`round`})}),Qp=e=>e instanceof Error?e.message:String(e);function $p(e){let t=[e.imported.length?`Imported ${e.imported.join(`, `)}.`:`Nothing new imported.`];return e.skipped.length&&t.push(`Skipped ${e.skipped.join(`; `)}.`),t.join(` `)}function em(e){let[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)(),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(!1),d=e.busy||s;(0,v.useEffect)(()=>{P.skills().then(n,e=>i(Qp(e)))},[]);let f=async e=>{c(!0);try{let t=await P.importSkills({path:e});n(t),o($p(t))}catch(e){i(Qp(e))}finally{c(!1)}},p=async()=>{i(void 0),o(void 0),c(!0);let e;try{e=await P.choose()}catch(e){e instanceof A&&e.status===501?u(!0):i(Qp(e));return}finally{c(!1)}e&&await f(e)},m=async e=>{i(void 0),o(void 0),c(!0);try{n(await P.removeSkill({name:e}))}catch(e){i(Qp(e))}finally{c(!1)}},h=e=>(0,L.jsxs)(`li`,{className:`model-card`,children:[(0,L.jsxs)(`div`,{className:`model-main`,children:[(0,L.jsx)(`div`,{className:`model-name`,children:e.name}),(0,L.jsx)(`div`,{className:`skill-desc`,title:`${e.description}\n${e.path}`,children:e.description})]}),e.source===`home`?(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Remove ${e.name}`,title:`Remove`,disabled:d,onClick:()=>void m(e.name),children:(0,L.jsx)(Zp,{})}):null]},`${e.source}:${e.name}`),g=t?.skills.filter(e=>e.source===`home`)??[],_=t?.skills.filter(e=>e.source===`folder`)??[];return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`settings-desc`,children:`Skills are instructions the agent loads when a task matches. Import a folder with a SKILL.md, or a folder of them such as ~/.cursor/skills or ~/.claude/skills. Imported skills are copied to ~/.tah/skills and work in every folder.`}),(0,L.jsx)(`button`,{type:`button`,className:`add-model`,disabled:d,onClick:()=>void p(),children:`Import skill folder…`}),a?(0,L.jsx)(`div`,{className:`settings-note`,children:a}):null,r?(0,L.jsx)(`div`,{className:`modal-error`,children:r}):null,e.busy?(0,L.jsx)(`div`,{className:`settings-note`,children:`Wait for the current reply to finish to change skills.`}):null,t?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`settings-subhead`,children:`All folders · ~/.tah/skills`}),g.length?(0,L.jsx)(`ul`,{className:`model-cards`,children:g.map(h)}):(0,L.jsx)(`div`,{className:`settings-empty`,children:`None imported yet.`}),(0,L.jsx)(`div`,{className:`settings-subhead`,children:`This folder · skills/, .agents/skills/, .cursor/skills/`}),_.length?(0,L.jsx)(`ul`,{className:`model-cards`,children:_.map(h)}):(0,L.jsx)(`div`,{className:`settings-empty`,children:`None.`})]}):null,l?(0,L.jsx)(Kp,{busy:e.busy,confirmLabel:`Import`,onOpen:async e=>{u(!1),await f(e)},onClose:()=>u(!1)}):null]})}var tm=e=>e instanceof Error?e.message:String(e),nm=e=>e.trim().toLowerCase().startsWith(`deepseek`)?`https://api.deepseek.com/v1`:`https://api.openai.com/v1`;function rm(e){try{let t=new URL(e).host;return t===`api.deepseek.com`?`DeepSeek`:t===`api.openai.com`?`OpenAI`:t}catch{return e}}var im=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M4 4l8 8M12 4l-8 8`,strokeLinecap:`round`})}),am={models:`Models`,web:`Web search`,skills:`Skills`};function om(e){let[t,n]=(0,v.useState)(`models`),{onClose:r}=e;return(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]),(0,L.jsx)(`div`,{className:`modal-backdrop`,onMouseDown:e=>e.target===e.currentTarget&&r(),children:(0,L.jsxs)(`div`,{className:`settings`,role:`dialog`,"aria-label":`Settings`,children:[(0,L.jsxs)(`nav`,{className:`settings-nav`,children:[(0,L.jsx)(`div`,{className:`settings-nav-title`,children:`Settings`}),Object.keys(am).map(e=>(0,L.jsx)(`button`,{type:`button`,className:e===t?`active`:void 0,onClick:()=>n(e),children:am[e]},e))]}),(0,L.jsxs)(`section`,{className:`settings-body`,children:[(0,L.jsxs)(`header`,{className:`settings-head`,children:[(0,L.jsx)(`h2`,{children:am[t]}),(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Close settings`,title:`Close`,onClick:r,children:(0,L.jsx)(im,{})})]}),t===`models`?(0,L.jsx)(cm,{busy:e.busy,view:e.view,onChange:e.onChange}):t===`web`?(0,L.jsx)(sm,{busy:e.busy,view:e.view,onChange:e.onChange}):(0,L.jsx)(em,{busy:e.busy})]})]})})}function sm(e){let[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)(!1),{search:s}=e.view,c=e.busy||a,l=async t=>{o(!0),i(void 0);try{e.onChange(await P.searchKey({apiKey:t})),n(``)}catch(e){i(tm(e))}finally{o(!1)}};return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`p`,{className:`settings-desc`,children:[`The agent reads web pages with web_fetch out of the box. To let it search the web too, add a`,` `,(0,L.jsx)(`a`,{href:`https://app.tavily.com`,target:`_blank`,rel:`noreferrer`,children:`Tavily`}),` `,`API key (free tier available). It applies to every folder.`]}),s?(0,L.jsx)(`ul`,{className:`model-cards`,children:(0,L.jsxs)(`li`,{className:`model-card in-use`,children:[(0,L.jsxs)(`div`,{className:`model-main`,children:[(0,L.jsx)(`div`,{className:`model-name`,children:`Tavily`}),(0,L.jsxs)(`div`,{className:`model-meta`,children:[s.keyHint,` · `,s.source===`env`?`from TAVILY_API_KEY in .env`:`saved in settings`]})]}),(0,L.jsx)(`span`,{className:`badge`,children:`On`}),s.source===`settings`?(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Remove Tavily key`,title:`Remove`,disabled:c,onClick:()=>void l(null),children:(0,L.jsx)(Zp,{})}):null]})}):(0,L.jsx)(`div`,{className:`settings-empty`,children:`Web search is off — no key yet.`}),(0,L.jsxs)(`form`,{className:`model-form`,onSubmit:e=>{e.preventDefault(),l(t)},children:[(0,L.jsxs)(`label`,{children:[(0,L.jsx)(`span`,{children:s?`Replace API key`:`Tavily API key`}),(0,L.jsx)(`input`,{type:`password`,autoComplete:`off`,value:t,placeholder:`tvly-…`,onChange:e=>n(e.target.value)}),(0,L.jsx)(`small`,{children:`Stored only on this computer, in ~/.tah/settings.json.`})]}),(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`span`,{className:`spacer`}),(0,L.jsx)(`button`,{type:`submit`,className:`primary`,disabled:c||!t.trim(),children:`Save key`})]})]}),r?(0,L.jsx)(`div`,{className:`modal-error`,children:r}):null,e.busy?(0,L.jsx)(`div`,{className:`settings-note`,children:`Wait for the current reply to finish to change the key.`}):null]})}function cm(e){let[t,n]=(0,v.useState)(e.view.models.length===0),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(),[p,m]=(0,v.useState)(!1),{view:h}=e,g=e.busy||p,_=h.models.find(e=>e.id===h.activeModel),y=async t=>{m(!0),f(void 0);try{return e.onChange(await t),!0}catch(e){return f(tm(e)),!1}finally{m(!1)}},b=()=>{n(!1),i(``),o(``),c(``),u(!1),f(void 0)},x=async()=>{let e={model:r,apiKey:a,vision:l,...s.trim()?{baseURL:s.trim()}:{}};await y(P.addModel(e))&&b()};return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`settings-desc`,children:`Add an API key for DeepSeek, OpenAI, or any OpenAI-compatible service. The model in use applies to every folder; switching takes effect on the next message.`}),h.models.length?(0,L.jsx)(`ul`,{className:`model-cards`,children:h.models.map(e=>{let t=e.id===h.activeModel;return(0,L.jsxs)(`li`,{className:t?`model-card in-use`:`model-card`,children:[(0,L.jsxs)(`div`,{className:`model-main`,children:[(0,L.jsx)(`div`,{className:`model-name`,children:e.model}),(0,L.jsxs)(`div`,{className:`model-meta`,title:e.baseURL,children:[rm(e.baseURL),` · `,e.keyHint]})]}),(0,L.jsxs)(`label`,{className:`model-vision`,title:`Send image attachments to this model`,children:[(0,L.jsx)(`input`,{type:`checkbox`,checked:e.vision,disabled:g,onChange:t=>void y(P.modelVision({id:e.id,vision:t.target.checked}))}),`Images`]}),t?(0,L.jsx)(`span`,{className:`badge`,children:`In use`}):(0,L.jsx)(`button`,{type:`button`,disabled:g,onClick:()=>void y(P.activeModel({id:e.id})),children:`Use`}),(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Remove ${e.model}`,title:`Remove`,disabled:g,onClick:()=>void y(P.removeModel({id:e.id})),children:(0,L.jsx)(Zp,{})})]},e.id)})}):t?null:(0,L.jsx)(`div`,{className:`settings-empty`,children:`No models yet.`}),t?(0,L.jsxs)(`form`,{className:`model-form`,onSubmit:e=>{e.preventDefault(),x()},children:[(0,L.jsxs)(`label`,{children:[(0,L.jsx)(`span`,{children:`Model name`}),(0,L.jsx)(`input`,{autoFocus:!0,value:r,placeholder:`deepseek-chat`,onChange:e=>i(e.target.value)})]}),(0,L.jsxs)(`label`,{children:[(0,L.jsx)(`span`,{children:`API Key`}),(0,L.jsx)(`input`,{type:`password`,autoComplete:`off`,value:a,placeholder:`sk-…`,onChange:e=>o(e.target.value)}),(0,L.jsx)(`small`,{children:`Stored only on this computer, in ~/.tah/settings.json.`})]}),(0,L.jsxs)(`label`,{children:[(0,L.jsxs)(`span`,{children:[`Base URL `,(0,L.jsx)(`em`,{children:`optional`})]}),(0,L.jsx)(`input`,{value:s,placeholder:nm(r),onChange:e=>c(e.target.value)}),(0,L.jsxs)(`small`,{children:[`Leave empty to use `,nm(r)]})]}),(0,L.jsxs)(`label`,{className:`check`,children:[(0,L.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u(e.target.checked)}),(0,L.jsx)(`span`,{children:`Can read images`})]}),(0,L.jsx)(`small`,{className:`check-note`,children:`Sends image attachments to the model. Leave off for text-only models such as deepseek-chat.`}),(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`span`,{className:`spacer`}),h.models.length?(0,L.jsx)(`button`,{type:`button`,onClick:b,children:`Cancel`}):null,(0,L.jsx)(`button`,{type:`submit`,className:`primary`,disabled:g||!r.trim()||!a.trim(),children:`Add model`})]})]}):(0,L.jsx)(`button`,{type:`button`,className:`add-model`,disabled:g,onClick:()=>n(!0),children:`+ Add model`}),d?(0,L.jsx)(`div`,{className:`modal-error`,children:d}):null,e.busy?(0,L.jsx)(`div`,{className:`settings-note`,children:`Wait for the current reply to finish to change models.`}):null,(0,L.jsx)(`div`,{className:`settings-note`,children:_?(0,L.jsxs)(L.Fragment,{children:[`Using `,(0,L.jsx)(`strong`,{children:_.model}),`.`,` `,(0,L.jsx)(`button`,{type:`button`,className:`link`,disabled:g,onClick:()=>void y(P.activeModel({id:null})),children:`Use .env instead`})]}):(0,L.jsx)(L.Fragment,{children:`No model in use — keys come from DEEPSEEK_API_KEY / OPENAI_API_KEY in .env.`})})]})}var lm=`tah.previewWidth`;function um(e){let[t,n]=(0,v.useState)(()=>Math.max(Math.min(Number(localStorage.getItem(lm))||480,window.innerWidth-360),280)),r=(0,v.useRef)(void 0);return(0,L.jsxs)(`aside`,{className:`side-panel`,style:{width:t},children:[(0,L.jsx)(`div`,{className:`preview-resize`,onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),r.current={x:e.clientX,width:t}},onPointerMove:e=>{if(!r.current)return;let t=Math.max(Math.min(r.current.width+r.current.x-e.clientX,window.innerWidth-360),280);n(t)},onPointerUp:()=>{r.current&&(r.current=void 0,localStorage.setItem(lm,String(t)))}}),e.both?(0,L.jsx)(`div`,{className:`side-switch`,role:`tablist`,children:[`file`,`browser`].map(t=>(0,L.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":e.view===t,className:e.view===t?`active`:``,onClick:()=>e.onView(t),children:t===`file`?`File`:`Browser`},t))}):null,e.children]})}function dm(e){let t=[e.cwd,e.sessionId,`${e.rounds} rounds`,...e.approve?[]:[`approve=off`]];return(0,L.jsxs)(`div`,{className:`status`,children:[(0,L.jsx)(`span`,{children:t.filter(Boolean).join(` · `)}),e.onBrowser?(0,L.jsx)(`button`,{type:`button`,className:`link`,onClick:e.onBrowser,title:`Open the built-in browser`,children:`Browser`}):null,(0,L.jsx)(`button`,{type:`button`,className:`link`,disabled:!e.onCompact,onClick:e.onCompact,title:`Summarize the conversation so far to free up context`,children:`Compact`})]})}var fm={sessionId:``,entries:[],approval:void 0,question:void 0,retry:void 0,todos:[],queue:[],stepLimit:!1,busy:!1,turnsEnded:0,rounds:0,nextId:0};function pm(e,...t){let n=e.nextId,r=t.map(e=>({...e,id:n++}));return{...e,entries:[...e.entries,...r],nextId:n}}function mm(e){return e.role===`tool`?{kind:`tool`,callId:e.callId,tool:e.tool,summary:e.summary,status:e.ok?`ok`:`failed`,result:e.result,...e.path?{path:e.path}:{}}:e.role===`user`?{kind:`user`,text:e.text,...e.attachments?.length?{attachments:e.attachments}:{}}:{kind:e.role,text:e.text}}var hm=e=>({...e,busy:!0,stepLimit:!1}),gm=new Set([`session`,`user`,`text`,`tool.start`,`approval`,`question`,`turn.end`,`turn.error`,`local.reset`]);function _m(e,t){switch(e.retry!==void 0&&gm.has(t.type)&&(e={...e,retry:void 0}),t.type){case`batch`:return t.actions.reduce(_m,e);case`local.reset`:return fm;case`local.error`:return pm(e,{kind:`notice`,text:t.text,error:!0});case`local.continue`:return hm(e);case`local.dismiss`:return{...e,stepLimit:!1};case`session`:return pm({...e.sessionId?{...e,entries:[]}:e,sessionId:t.id,busy:!1,approval:void 0,question:void 0,stepLimit:!1,rounds:0,todos:t.todos??[]},...t.history.map(mm));case`user`:return pm(hm(e),{kind:`user`,text:t.text,...t.attachments?.length?{attachments:t.attachments}:{}});case`text`:{let n=hm(e),r=n.entries.at(-1);return r?.kind===`assistant`?{...n,entries:[...n.entries.slice(0,-1),{...r,text:r.text+t.delta}]}:pm(n,{kind:`assistant`,text:t.delta})}case`tool.start`:return pm(hm(e),{kind:`tool`,callId:t.callId,tool:t.tool,summary:t.summary,status:`running`,result:``,...t.path?{path:t.path}:{}});case`tool.end`:{let n=t.ok?`ok`:`failed`,r=e.entries.findIndex(e=>e.kind===`tool`&&e.callId===t.callId),i=e.entries[r];if(i?.kind!==`tool`)return pm(e,{kind:`tool`,callId:t.callId,tool:t.tool,summary:t.summary,status:n,result:t.result,...t.path?{path:t.path}:{}});let a=[...e.entries];return a[r]={...i,status:n,result:t.result},{...e,entries:a}}case`approval`:return{...hm(e),approval:{id:t.id,tool:t.tool,input:t.input}};case`approval.end`:return e.approval?.id===t.id?{...e,approval:void 0}:e;case`question`:return{...hm(e),question:{id:t.id,questions:t.questions}};case`question.end`:return e.question?.id===t.id?{...e,question:void 0}:e;case`todos`:return{...e,todos:t.todos};case`queue`:return{...e,queue:t.items};case`retry`:return{...hm(e),retry:t.text};case`notice`:return pm(e,{kind:`notice`,text:t.text,error:t.error??!1});case`turn.end`:return{...e,busy:!1,turnsEnded:e.turnsEnded+1,approval:void 0,question:void 0,rounds:t.rounds,stepLimit:t.finishReason===`max_steps`};case`turn.error`:return pm({...e,busy:!1,approval:void 0,question:void 0,turnsEnded:e.turnsEnded+1},t.cancelled?{kind:`notice`,text:`turn cancelled — history kept`,error:!1}:{kind:`notice`,text:`turn failed: ${t.message} — history kept; try again`,error:!0})}}function vm(){let[e,t]=(0,v.useReducer)(_m,fm),[n,r]=(0,v.useState)(),[i,a]=(0,v.useState)(`connecting`),[o,s]=(0,v.useState)(),[c,l]=(0,v.useState)(),[u,d]=(0,v.useState)(),[f,p]=(0,v.useState)(),[m,h]=(0,v.useState)(),[g,_]=(0,v.useState)(0),y=(0,v.useCallback)(()=>h(void 0),[]),[x,S]=(0,v.useState)(!1),[C,w]=(0,v.useState)(!1),[T,E]=(0,v.useState)(`file`),D=(0,v.useCallback)(e=>{h(e),E(`file`)},[]),O=(0,v.useCallback)(()=>{S(!0),E(`browser`)},[]),A=(0,v.useCallback)(()=>d(void 0),[]),j=(0,v.useRef)([]),M=(0,v.useRef)(0),N=(0,v.useCallback)(e=>{j.current.push(e),!M.current&&(M.current=requestAnimationFrame(()=>{M.current=0,t({type:`batch`,actions:j.current.splice(0)})}))},[]);(0,v.useEffect)(()=>{let e=()=>{},t=!1,n=new URLSearchParams(location.search).get(`token`);return n&&history.replaceState(null,``,location.pathname),(n?P.auth({token:n}).catch(()=>{}):Promise.resolve()).then(()=>{t||(e=ee({onOpen(){P.info().then(r,()=>{}),P.settings().then(p,()=>{})},onEvent(e){N(e),k(e)&&_(e=>e+1),ue(e)&&O()},onStatus:a}))}),()=>{t=!0,e()}},[N,O]);let F=(0,v.useCallback)(()=>P.workspaces().then(e=>{s(e),l(void 0)},e=>l(e instanceof Error?e.message:String(e))),[]);(0,v.useEffect)(()=>{i!==`open`||e.busy||F()},[i,e.busy,e.sessionId,e.turnsEnded,F]),(0,v.useEffect)(()=>h(void 0),[e.sessionId]),(0,v.useEffect)(()=>{if(i!==`open`)return;let e=!1;return P.browserState().then(t=>{e||w(t.available)},()=>{}),()=>{e=!0}},[i,e.sessionId]);let te=async e=>{await P.addWorkspace({path:e}),await P.reset({cwd:e}),d(void 0),await F()},I=e=>e.catch(e=>N({type:`local.error`,text:e instanceof Error?e.message:String(e)})),ne=(0,v.useMemo)(()=>C?e=>{O(),I(P.browserOpen({url:e}))}:void 0,[C,O,N]);if(i===`signed-out`)return(0,L.jsxs)(`div`,{className:`signed-out`,children:[`Open the link `,(0,L.jsx)(`code`,{children:`tah serve`}),` printed in your terminal to sign in.`]});let re=e.entries.at(-1),ie=e.entries.some(e=>e.kind===`tool`&&e.status===`running`),ae=e.busy&&!e.approval&&!e.question&&!ie&&re?.kind!==`assistant`,oe=m!==void 0,se=x&&C,ce=oe&&se?T:oe?`file`:se?`browser`:void 0;return(0,L.jsxs)(`div`,{className:`app`,children:[(0,L.jsx)(Dp,{workspaces:o,unavailable:c,current:e.sessionId,busy:e.busy,waiting:e.approval?`needs approval`:e.question?`needs answer`:void 0,onNew:e=>I(P.reset(e?{cwd:e}:{})),onFork:(e,t)=>I(P.fork({id:e,...t?{cwd:t}:{}})),onPick:(e,t)=>I(P.resume({ref:e,cwd:t})),onRename:async(e,t,n)=>{await P.rename({id:e,title:t,cwd:n}),await F()},onFlag:(e,t,n,r)=>I(P.sessionFlag({id:e,flag:t,on:n,cwd:r}).then(F)),onOpenProject:()=>d(`open`),onNewFolder:()=>d(`new`),onRemoveFolder:e=>I(P.removeWorkspace({path:e}).then(F)),user:f?.user,onSettings:()=>d(`settings`)}),u===`settings`&&f?(0,L.jsx)(om,{busy:e.busy,view:f,onChange:p,onClose:A}):null,u===`open`?(0,L.jsx)(Xp,{busy:e.busy,onClose:A,onOpen:te}):null,u===`new`&&n?(0,L.jsx)(Jp,{busy:e.busy,desktop:n.desktop,onClose:A,onOpen:te}):null,(0,L.jsxs)(`main`,{children:[i===`reconnecting`?(0,L.jsx)(`div`,{className:`banner`,children:`Reconnecting…`}):null,(0,L.jsxs)(Rp,{entries:e.entries,busy:e.busy,onOpen:D,onBrowse:ne,children:[e.retry?(0,L.jsxs)(`div`,{className:`thinking retry`,children:[(0,L.jsx)(`span`,{className:`spinner`}),` `,e.retry]}):ae?(0,L.jsxs)(`div`,{className:`thinking`,children:[(0,L.jsx)(`span`,{className:`spinner`}),` thinking…`]}):null,e.approval?(0,L.jsx)(z,{approval:e.approval,onAnswer:t=>e.approval&&I(P.answer({id:e.approval.id,answer:t}))}):null,e.question?(0,L.jsx)(ye,{question:e.question,onAnswer:t=>e.question&&I(P.question({id:e.question.id,answers:t})),onSkip:()=>e.question&&I(P.question({id:e.question.id,skip:!0}))},e.question.id):null,e.stepLimit&&!e.busy?(0,L.jsxs)(`div`,{className:`card`,children:[(0,L.jsxs)(`div`,{className:`card-title`,children:[`Step limit reached`,n?.maxSteps?` (${n.maxSteps} rounds this turn)`:``,`.`]}),(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`button`,{className:`primary`,onClick:()=>{N({type:`local.continue`}),I(P.continueTurn())},children:`Continue`}),(0,L.jsx)(`button`,{onClick:()=>N({type:`local.dismiss`}),children:`Stop`})]})]}):null]}),(0,L.jsx)(kp,{todos:e.todos}),(0,L.jsx)(we,{items:e.queue,busy:e.busy,onSend:e=>I(P.queue({id:e,send:!0})),onRemove:e=>I(P.queue({id:e,remove:!0}))}),(0,L.jsx)(Ce,{cwd:o?.find(e=>e.active)?.path,busy:e.busy,disabled:i!==`open`||e.stepLimit,onSend:(e,t)=>I(P.send({text:e,attachmentIds:t})),onStop:()=>I(P.cancel()),children:(0,L.jsx)(Up,{view:f,busy:e.busy,onPick:e=>I(P.activeModel({id:e}).then(p)),onManage:()=>d(`settings`)})}),(0,L.jsx)(dm,{cwd:o?.find(e=>e.active)?.path,sessionId:e.sessionId,rounds:e.rounds,approve:n?.approve??!0,onCompact:i===`open`&&!e.busy&&!e.stepLimit?()=>{N({type:`local.continue`}),I(P.compact())}:void 0,onBrowser:C?O:void 0})]}),ce?(0,L.jsx)(um,{view:ce,both:oe&&se,onView:E,children:ce===`file`&&m?(0,L.jsx)(Qf,{target:m,version:g,onOpen:D,onBrowse:ne,onClose:y},b(m)):(0,L.jsx)(xe,{agentBusy:le(e.entries),onClose:()=>S(!1)})}):null]})}(0,y.createRoot)(document.getElementById(`root`)).render((0,L.jsx)(vm,{}));
49
+ `)?w(n):null;return i?(0,L.jsx)(`code`,{...r,className:`file-link`,role:`button`,tabIndex:0,title:`Open ${i}`,onClick:t=>{t.preventDefault(),t.stopPropagation(),e({path:i})},onKeyDown:t=>{t.key===`Enter`&&(t.stopPropagation(),e({path:i}))},children:n}):(0,L.jsx)(`code`,{...r,children:n})}}}var Mp=(0,v.memo)(function({text:e,onOpen:t,onBrowse:n}){let r=(0,v.useMemo)(()=>jp(t,n),[t,n]);return(0,L.jsx)(`div`,{className:`reply`,children:(0,L.jsx)(as,{remarkPlugins:[Kf],rehypePlugins:[ql],components:r,children:e})})});function Np(e){return e<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(1)}KB`:`${(e/1048576).toFixed(1)}MB`}var Pp=(0,v.memo)(function({entry:e,onOpen:t,onBrowse:n}){switch(e.kind){case`user`:return(0,L.jsxs)(`div`,{className:`user`,children:[e.attachments?.length?(0,L.jsx)(`div`,{className:`user-attach`,children:e.attachments.map(e=>(0,L.jsxs)(`button`,{type:`button`,className:`attach-card sent ${e.kind}`,title:e.name,onClick:()=>t({attachment:e.id,name:e.name}),children:[e.kind===`image`?(0,L.jsx)(`img`,{src:N({attachment:e.id},0),alt:``,loading:`lazy`}):(0,L.jsx)(`span`,{className:`attach-ext`,children:e.name.split(`.`).pop()?.toUpperCase()??`FILE`}),(0,L.jsxs)(`span`,{className:`attach-meta`,children:[(0,L.jsx)(`span`,{className:`attach-name`,children:e.name}),(0,L.jsx)(`span`,{className:`attach-sub`,children:Np(e.bytes)})]})]},e.id))}):null,e.text?(0,L.jsx)(`div`,{children:e.text}):e.attachments?.length?(0,L.jsx)(`div`,{className:`user-attach-fallback`,children:`Attached`}):(0,L.jsx)(`div`,{className:`user-attach-fallback`,children:`(empty)`})]});case`assistant`:return(0,L.jsx)(Mp,{text:e.text,onOpen:t,onBrowse:n});case`tool`:return(0,L.jsx)(Ap,{tool:e.tool,summary:e.summary,status:e.status,result:e.result,...e.path?{path:e.path}:{},onOpen:t});case`notice`:return(0,L.jsx)(`div`,{className:e.error?`notice error`:`notice`,children:e.text})}}),Fp=e=>e.kind===`notice`&&!e.error&&e.text.startsWith(`[ctx]`);function Ip(e){let t=[];for(let n of e){let e=t.at(-1);n.kind===`tool`||Fp(n)?e?.kind===`steps`?e.entries.push(n):t.push({kind:`steps`,id:n.id,entries:[n]}):t.push({kind:`row`,entry:n})}return t}function Lp({entries:e,live:t,onOpen:n,onBrowse:r}){let[i,a]=(0,v.useState)(!1),o=e.filter(e=>e.kind===`tool`);if(!o.length)return e.map(e=>(0,L.jsx)(Pp,{entry:e,onOpen:n,onBrowse:r},e.id));let s=new Map;for(let e of o)s.set(e.tool,(s.get(e.tool)??0)+1);let c=[...s].map(([e,t])=>t>1?`${e} ×${t}`:e).join(` · `),l=o.filter(e=>e.status===`failed`).length,u=i?e:t?o.slice(-3):[];return(0,L.jsxs)(`div`,{className:`steps`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`steps-head`,"aria-expanded":i,onClick:()=>a(!i),children:[(0,L.jsx)(gp,{open:i}),t?(0,L.jsx)(`span`,{className:`spinner`,"aria-label":`running`}):null,(0,L.jsxs)(`span`,{className:`steps-title`,children:[t?`Working`:`Ran`,` `,o.length,` `,o.length===1?`step`:`steps`]}),(0,L.jsx)(`span`,{className:`steps-detail`,children:c}),l?(0,L.jsxs)(`span`,{className:`steps-failed`,children:[l,` failed`]}):null]}),u.length?(0,L.jsx)(`div`,{className:`steps-body`,children:u.map(e=>(0,L.jsx)(Pp,{entry:e,onOpen:n,onBrowse:r},e.id))}):null]})}function Rp({entries:e,busy:t,onOpen:n,onBrowse:r,children:i}){let a=(0,v.useRef)(null),o=(0,v.useRef)(!0);return(0,v.useEffect)(()=>{let e=a.current;e&&o.current&&(e.scrollTop=e.scrollHeight)}),(0,L.jsxs)(`div`,{className:`messages`,ref:a,onScroll:e=>{let t=e.currentTarget;o.current=t.scrollHeight-t.scrollTop-t.clientHeight<40},children:[e.length===0?(0,L.jsxs)(`div`,{className:`empty`,children:[(0,L.jsx)(`div`,{className:`empty-title`,children:`New chat`}),(0,L.jsx)(`p`,{className:`empty-hint`,children:`Ask the agent anything below. Attach files with +, or drop / paste into the composer.`})]}):null,Ip(e).map((e,i,a)=>e.kind===`row`?(0,L.jsx)(Pp,{entry:e.entry,onOpen:n,onBrowse:r},e.entry.id):(0,L.jsx)(Lp,{entries:e.entries,live:t&&i===a.length-1,onOpen:n,onBrowse:r},e.id)),i]})}var zp={"api.deepseek.com":`DeepSeek`,"api.openai.com":`OpenAI`};function Bp(e){let t;try{t=new URL(e).host}catch{return e}return zp[t]??t}function Vp(e){let t=[];for(let n of e){let e=Bp(n.baseURL),r=t.find(t=>t.name===e);r?r.models.push(n):t.push({name:e,models:[n]})}return t}function Hp(e){let t=e.models.find(t=>t.id===e.activeModel);return t?t.model:e.env?`${e.env.model} · .env`:`No model`}function Up(e){let[t,n]=(0,v.useState)(!1),r=(0,v.useRef)(null),{view:i}=e;if((0,v.useEffect)(()=>{if(!t)return;let e=e=>{r.current?.contains(e.target)||n(!1)},i=e=>{e.key===`Escape`&&n(!1)};return window.addEventListener(`mousedown`,e),window.addEventListener(`keydown`,i),()=>{window.removeEventListener(`mousedown`,e),window.removeEventListener(`keydown`,i)}},[t]),(0,v.useEffect)(()=>{e.busy&&n(!1)},[e.busy]),!i)return null;let a=t=>{n(!1),t!==i.activeModel&&e.onPick(t)};return(0,L.jsxs)(`div`,{className:`model-picker`,ref:r,children:[(0,L.jsxs)(`button`,{type:`button`,className:t?`model-btn on`:`model-btn`,disabled:e.busy,title:e.busy?`Wait for the reply to finish to switch models`:`Switch model`,"aria-haspopup":`menu`,"aria-expanded":t,onClick:()=>n(e=>!e),children:[Hp(i),(0,L.jsx)(`span`,{className:`model-chev`,children:(0,L.jsx)(gp,{open:!1})})]}),t?(0,L.jsxs)(`ul`,{className:`context-menu model-menu`,role:`menu`,children:[Vp(i.models).map(e=>(0,L.jsxs)(`li`,{role:`none`,children:[(0,L.jsx)(`div`,{className:`menu-label`,children:e.name}),(0,L.jsx)(`ul`,{role:`none`,children:e.models.map(e=>(0,L.jsx)(`li`,{role:`none`,children:(0,L.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":e.id===i.activeModel,onClick:()=>a(e.id),children:[e.model,e.vision?(0,L.jsx)(`span`,{className:`model-key`,children:`images`}):null,(0,L.jsx)(`span`,{className:`model-check`,children:e.id===i.activeModel?`✓`:``})]})},e.id))})]},e.name)),i.env?(0,L.jsxs)(`li`,{role:`none`,children:[(0,L.jsx)(`div`,{className:`menu-label`,children:`From .env`}),(0,L.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":i.activeModel===null,onClick:()=>a(null),children:[i.env.model,(0,L.jsx)(`span`,{className:`model-key`,children:i.env.key}),(0,L.jsx)(`span`,{className:`model-check`,children:i.activeModel===null?`✓`:``})]})]}):null,(0,L.jsx)(`li`,{role:`separator`,className:`menu-sep`}),(0,L.jsx)(`li`,{role:`none`,children:(0,L.jsxs)(`button`,{type:`button`,role:`menuitem`,onClick:()=>{n(!1),e.onManage()},children:[(0,L.jsx)(`span`,{className:`model-gear`,children:(0,L.jsx)(Tp,{})}),i.models.length?`Manage models…`:`Add a model…`]})})]}):null]})}var Wp=e=>e instanceof Error?e.message:String(e),Gp=(e,t)=>`${e.replace(/[\\/]$/,``)}/${t}`;function Kp(e){let[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!1),{onClose:d}=e,f=e=>P.fs(e).then(e=>{n(e),i(void 0)},e=>i(Wp(e)));return(0,v.useEffect)(()=>{f(e.start)},[]),(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&d()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[d]),(0,L.jsx)(`div`,{className:`modal-backdrop`,onMouseDown:e=>e.target===e.currentTarget&&d(),children:(0,L.jsxs)(`div`,{className:`modal`,role:`dialog`,"aria-label":`Add folder`,children:[(0,L.jsx)(`div`,{className:`crumbs`,children:t?.crumbs.map((e,t)=>(0,L.jsx)(`button`,{type:`button`,onClick:()=>void f(e.path),children:t===0?e.name:`${e.name}/`},e.path))}),(0,L.jsxs)(`ul`,{className:`dirs`,children:[t?.parent?(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,onClick:()=>void f(t.parent??void 0),children:`..`})}):null,t?.dirs.map(e=>(0,L.jsx)(`li`,{children:(0,L.jsx)(`button`,{type:`button`,onClick:()=>void f(Gp(t.path,e)),children:e})},e))]}),a&&t?(0,L.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),P.mkdir({path:t.path,name:s.trim()}).then(e=>(o(!1),c(``),f(e.path)),e=>i(Wp(e)))},children:(0,L.jsx)(`input`,{autoFocus:!0,className:`session-rename`,value:s,placeholder:`New folder name`,"aria-label":`New folder name`,onChange:e=>c(e.target.value),onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),o(!1))}})}):null,r?(0,L.jsx)(`div`,{className:`modal-error`,children:r}):null,(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`button`,{type:`button`,disabled:!t,onClick:()=>o(!0),children:`New folder`}),(0,L.jsx)(`span`,{className:`spacer`}),(0,L.jsx)(`button`,{type:`button`,onClick:d,children:`Cancel`}),(0,L.jsx)(`button`,{type:`button`,className:`primary`,disabled:!t||e.busy||l,onClick:()=>{t&&(u(!0),e.onOpen(t.path).catch(e=>{u(!1),i(Wp(e))}))},children:e.confirmLabel??`Open this folder`})]})]})})}var qp=e=>e instanceof Error?e.message:String(e);function Jp(e){let[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(e.desktop),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(!1),{onClose:p}=e;if((0,v.useEffect)(()=>{if(a)return;let e=e=>{e.key===`Escape`&&p()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[p,a]),a)return(0,L.jsx)(Kp,{busy:!1,start:r,confirmLabel:`Use this location`,onOpen:async e=>{i(e),o(!1)},onClose:()=>o(!1)});let m=async()=>{f(!0),c(void 0);try{let e=await P.choose({start:r});e&&i(e)}catch(e){e instanceof A&&e.status===501?o(!0):c(qp(e))}finally{f(!1)}},h=!!t.trim()&&!e.busy&&!l&&!d,g=()=>{h&&(u(!0),P.mkdir({path:r,name:t.trim()}).then(t=>e.onOpen(t.path)).catch(e=>{u(!1),c(qp(e))}))};return(0,L.jsx)(`div`,{className:`modal-backdrop`,onMouseDown:e=>e.target===e.currentTarget&&p(),children:(0,L.jsxs)(`div`,{className:`modal`,role:`dialog`,"aria-label":`New folder`,children:[(0,L.jsx)(`div`,{className:`modal-title`,children:`New folder`}),(0,L.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),g()},children:(0,L.jsx)(`input`,{autoFocus:!0,className:`session-rename`,value:t,placeholder:`Folder name`,"aria-label":`Folder name`,onChange:e=>n(e.target.value)})}),(0,L.jsxs)(`div`,{className:`new-folder-where`,children:[(0,L.jsx)(`span`,{children:`Location`}),(0,L.jsx)(`span`,{className:`where-path`,title:r,children:r}),(0,L.jsx)(`button`,{type:`button`,disabled:d,onClick:()=>void m(),children:`Change…`})]}),s?(0,L.jsx)(`div`,{className:`modal-error`,children:s}):null,(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`span`,{className:`spacer`}),(0,L.jsx)(`button`,{type:`button`,onClick:p,children:`Cancel`}),(0,L.jsx)(`button`,{type:`button`,className:`primary`,disabled:!h,onClick:g,children:`Create`})]})]})})}var Yp=e=>e instanceof Error?e.message:String(e);function Xp(e){let[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(),[s,c]=(0,v.useState)(!1),{onClose:l}=e,u=async t=>{c(!0);try{await e.onOpen(t)}catch(e){c(!1),o(Yp(e))}},d=async e=>{c(!0),o(void 0);try{let t=await P.choose();if(t)return void await u(t);if(e)return l();c(!1)}catch(e){c(!1),e instanceof A&&e.status===501?i(!0):o(Yp(e))}};return(0,v.useEffect)(()=>{P.recent().then(e=>{n(e),e.length===0&&d(!0)},()=>n([]))},[]),(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&l()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[l]),r?(0,L.jsx)(Kp,{busy:e.busy,onOpen:e.onOpen,onClose:l}):(0,L.jsx)(`div`,{className:`modal-backdrop`,onMouseDown:e=>e.target===e.currentTarget&&l(),children:(0,L.jsxs)(`div`,{className:`modal`,role:`dialog`,"aria-label":`Open project`,children:[(0,L.jsx)(`div`,{className:`modal-title`,children:t?.length?`Recent projects`:`Open project`}),t?.length?(0,L.jsx)(`ul`,{className:`dirs recent`,children:t.map(t=>(0,L.jsx)(`li`,{children:(0,L.jsxs)(`button`,{type:`button`,title:t.path,disabled:e.busy||s,onClick:()=>void u(t.path),children:[t.name,(0,L.jsx)(`span`,{className:`dir-path`,children:t.path})]})},t.path))}):(0,L.jsx)(`div`,{className:`sidebar-note`,children:`Choose a folder in the system dialog…`}),a?(0,L.jsx)(`div`,{className:`modal-error`,children:a}):null,(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`button`,{type:`button`,className:`primary`,disabled:e.busy||s,onClick:()=>void d(!1),children:`Choose folder…`}),(0,L.jsx)(`span`,{className:`spacer`}),(0,L.jsx)(`button`,{type:`button`,onClick:l,children:`Cancel`})]})]})})}var Zp=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M2.5 4h11M6 4V2.5h4V4M4 4l.7 9.5h6.6L12 4M6.8 6.5v4.5M9.2 6.5v4.5`,strokeLinejoin:`round`,strokeLinecap:`round`})}),Qp=e=>e instanceof Error?e.message:String(e);function $p(e){let t=[e.imported.length?`Imported ${e.imported.join(`, `)}.`:`Nothing new imported.`];return e.skipped.length&&t.push(`Skipped ${e.skipped.join(`; `)}.`),t.join(` `)}function em(e){let[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)(),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(!1),d=e.busy||s;(0,v.useEffect)(()=>{P.skills().then(n,e=>i(Qp(e)))},[]);let f=async e=>{c(!0);try{let t=await P.importSkills({path:e});n(t),o($p(t))}catch(e){i(Qp(e))}finally{c(!1)}},p=async()=>{i(void 0),o(void 0),c(!0);let e;try{e=await P.choose()}catch(e){e instanceof A&&e.status===501?u(!0):i(Qp(e));return}finally{c(!1)}e&&await f(e)},m=async e=>{i(void 0),o(void 0),c(!0);try{n(await P.removeSkill({name:e}))}catch(e){i(Qp(e))}finally{c(!1)}},h=e=>(0,L.jsxs)(`li`,{className:`model-card`,children:[(0,L.jsxs)(`div`,{className:`model-main`,children:[(0,L.jsx)(`div`,{className:`model-name`,children:e.name}),(0,L.jsx)(`div`,{className:`skill-desc`,title:`${e.description}\n${e.path}`,children:e.description})]}),e.source===`home`?(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Remove ${e.name}`,title:`Remove`,disabled:d,onClick:()=>void m(e.name),children:(0,L.jsx)(Zp,{})}):null]},`${e.source}:${e.name}`),g=t?.skills.filter(e=>e.source===`home`)??[],_=t?.skills.filter(e=>e.source===`folder`)??[];return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`settings-desc`,children:`Skills are instructions the agent loads when a task matches. Import a folder with a SKILL.md, or a folder of them such as ~/.cursor/skills or ~/.claude/skills. Imported skills are copied to ~/.tah/skills and work in every folder.`}),(0,L.jsx)(`button`,{type:`button`,className:`add-model`,disabled:d,onClick:()=>void p(),children:`Import skill folder…`}),a?(0,L.jsx)(`div`,{className:`settings-note`,children:a}):null,r?(0,L.jsx)(`div`,{className:`modal-error`,children:r}):null,e.busy?(0,L.jsx)(`div`,{className:`settings-note`,children:`Wait for the current reply to finish to change skills.`}):null,t?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`settings-subhead`,children:`All folders · ~/.tah/skills`}),g.length?(0,L.jsx)(`ul`,{className:`model-cards`,children:g.map(h)}):(0,L.jsx)(`div`,{className:`settings-empty`,children:`None imported yet.`}),(0,L.jsx)(`div`,{className:`settings-subhead`,children:`This folder · skills/, .agents/skills/, .cursor/skills/`}),_.length?(0,L.jsx)(`ul`,{className:`model-cards`,children:_.map(h)}):(0,L.jsx)(`div`,{className:`settings-empty`,children:`None.`})]}):null,l?(0,L.jsx)(Kp,{busy:e.busy,confirmLabel:`Import`,onOpen:async e=>{u(!1),await f(e)},onClose:()=>u(!1)}):null]})}var tm=e=>e instanceof Error?e.message:String(e),nm=e=>e.trim().toLowerCase().startsWith(`deepseek`)?`https://api.deepseek.com/v1`:`https://api.openai.com/v1`;function rm(e){try{let t=new URL(e).host;return t===`api.deepseek.com`?`DeepSeek`:t===`api.openai.com`?`OpenAI`:t}catch{return e}}var im=()=>(0,L.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,"aria-hidden":!0,children:(0,L.jsx)(`path`,{d:`M4 4l8 8M12 4l-8 8`,strokeLinecap:`round`})}),am={models:`Models`,web:`Web search`,skills:`Skills`};function om(e){let[t,n]=(0,v.useState)(`models`),{onClose:r}=e;return(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]),(0,L.jsx)(`div`,{className:`modal-backdrop`,onMouseDown:e=>e.target===e.currentTarget&&r(),children:(0,L.jsxs)(`div`,{className:`settings`,role:`dialog`,"aria-label":`Settings`,children:[(0,L.jsxs)(`nav`,{className:`settings-nav`,children:[(0,L.jsx)(`div`,{className:`settings-nav-title`,children:`Settings`}),Object.keys(am).map(e=>(0,L.jsx)(`button`,{type:`button`,className:e===t?`active`:void 0,onClick:()=>n(e),children:am[e]},e))]}),(0,L.jsxs)(`section`,{className:`settings-body`,children:[(0,L.jsxs)(`header`,{className:`settings-head`,children:[(0,L.jsx)(`h2`,{children:am[t]}),(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Close settings`,title:`Close`,onClick:r,children:(0,L.jsx)(im,{})})]}),t===`models`?(0,L.jsx)(cm,{busy:e.busy,view:e.view,onChange:e.onChange}):t===`web`?(0,L.jsx)(sm,{busy:e.busy,view:e.view,onChange:e.onChange}):(0,L.jsx)(em,{busy:e.busy})]})]})})}function sm(e){let[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)(!1),{search:s}=e.view,c=e.busy||a,l=async t=>{o(!0),i(void 0);try{e.onChange(await P.searchKey({apiKey:t})),n(``)}catch(e){i(tm(e))}finally{o(!1)}};return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`p`,{className:`settings-desc`,children:[`Web search works out of the box: queries are sent to Exa, or to Bing when Exa is unavailable. To use`,` `,(0,L.jsx)(`a`,{href:`https://app.tavily.com`,target:`_blank`,rel:`noreferrer`,children:`Tavily`}),` `,`instead, add its API key (free tier available). It applies to every folder.`]}),s?(0,L.jsx)(`ul`,{className:`model-cards`,children:(0,L.jsxs)(`li`,{className:`model-card in-use`,children:[(0,L.jsxs)(`div`,{className:`model-main`,children:[(0,L.jsx)(`div`,{className:`model-name`,children:`Tavily`}),(0,L.jsxs)(`div`,{className:`model-meta`,children:[s.keyHint,` · `,s.source===`env`?`from TAVILY_API_KEY in .env`:`saved in settings`]})]}),(0,L.jsx)(`span`,{className:`badge`,children:`On`}),s.source===`settings`?(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Remove Tavily key`,title:`Remove`,disabled:c,onClick:()=>void l(null),children:(0,L.jsx)(Zp,{})}):null]})}):(0,L.jsx)(`ul`,{className:`model-cards`,children:(0,L.jsxs)(`li`,{className:`model-card in-use`,children:[(0,L.jsxs)(`div`,{className:`model-main`,children:[(0,L.jsx)(`div`,{className:`model-name`,children:`Exa + Bing`}),(0,L.jsx)(`div`,{className:`model-meta`,children:`no key needed`})]}),(0,L.jsx)(`span`,{className:`badge`,children:`On`})]})}),(0,L.jsxs)(`form`,{className:`model-form`,onSubmit:e=>{e.preventDefault(),l(t)},children:[(0,L.jsxs)(`label`,{children:[(0,L.jsx)(`span`,{children:s?`Replace API key`:`Tavily API key (optional)`}),(0,L.jsx)(`input`,{type:`password`,autoComplete:`off`,value:t,placeholder:`tvly-…`,onChange:e=>n(e.target.value)}),(0,L.jsx)(`small`,{children:`Stored only on this computer, in ~/.tah/settings.json.`})]}),(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`span`,{className:`spacer`}),(0,L.jsx)(`button`,{type:`submit`,className:`primary`,disabled:c||!t.trim(),children:`Save key`})]})]}),r?(0,L.jsx)(`div`,{className:`modal-error`,children:r}):null,e.busy?(0,L.jsx)(`div`,{className:`settings-note`,children:`Wait for the current reply to finish to change the key.`}):null]})}function cm(e){let[t,n]=(0,v.useState)(e.view.models.length===0),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(),[p,m]=(0,v.useState)(!1),{view:h}=e,g=e.busy||p,_=h.models.find(e=>e.id===h.activeModel),y=async t=>{m(!0),f(void 0);try{return e.onChange(await t),!0}catch(e){return f(tm(e)),!1}finally{m(!1)}},b=()=>{n(!1),i(``),o(``),c(``),u(!1),f(void 0)},x=async()=>{let e={model:r,apiKey:a,vision:l,...s.trim()?{baseURL:s.trim()}:{}};await y(P.addModel(e))&&b()};return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`settings-desc`,children:`Add an API key for DeepSeek, OpenAI, or any OpenAI-compatible service. The model in use applies to every folder; switching takes effect on the next message.`}),h.models.length?(0,L.jsx)(`ul`,{className:`model-cards`,children:h.models.map(e=>{let t=e.id===h.activeModel;return(0,L.jsxs)(`li`,{className:t?`model-card in-use`:`model-card`,children:[(0,L.jsxs)(`div`,{className:`model-main`,children:[(0,L.jsx)(`div`,{className:`model-name`,children:e.model}),(0,L.jsxs)(`div`,{className:`model-meta`,title:e.baseURL,children:[rm(e.baseURL),` · `,e.keyHint]})]}),(0,L.jsxs)(`label`,{className:`model-vision`,title:`Send image attachments to this model`,children:[(0,L.jsx)(`input`,{type:`checkbox`,checked:e.vision,disabled:g,onChange:t=>void y(P.modelVision({id:e.id,vision:t.target.checked}))}),`Images`]}),t?(0,L.jsx)(`span`,{className:`badge`,children:`In use`}):(0,L.jsx)(`button`,{type:`button`,disabled:g,onClick:()=>void y(P.activeModel({id:e.id})),children:`Use`}),(0,L.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Remove ${e.model}`,title:`Remove`,disabled:g,onClick:()=>void y(P.removeModel({id:e.id})),children:(0,L.jsx)(Zp,{})})]},e.id)})}):t?null:(0,L.jsx)(`div`,{className:`settings-empty`,children:`No models yet.`}),t?(0,L.jsxs)(`form`,{className:`model-form`,onSubmit:e=>{e.preventDefault(),x()},children:[(0,L.jsxs)(`label`,{children:[(0,L.jsx)(`span`,{children:`Model name`}),(0,L.jsx)(`input`,{autoFocus:!0,value:r,placeholder:`deepseek-chat`,onChange:e=>i(e.target.value)})]}),(0,L.jsxs)(`label`,{children:[(0,L.jsx)(`span`,{children:`API Key`}),(0,L.jsx)(`input`,{type:`password`,autoComplete:`off`,value:a,placeholder:`sk-…`,onChange:e=>o(e.target.value)}),(0,L.jsx)(`small`,{children:`Stored only on this computer, in ~/.tah/settings.json.`})]}),(0,L.jsxs)(`label`,{children:[(0,L.jsxs)(`span`,{children:[`Base URL `,(0,L.jsx)(`em`,{children:`optional`})]}),(0,L.jsx)(`input`,{value:s,placeholder:nm(r),onChange:e=>c(e.target.value)}),(0,L.jsxs)(`small`,{children:[`Leave empty to use `,nm(r)]})]}),(0,L.jsxs)(`label`,{className:`check`,children:[(0,L.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u(e.target.checked)}),(0,L.jsx)(`span`,{children:`Can read images`})]}),(0,L.jsx)(`small`,{className:`check-note`,children:`Sends image attachments to the model. Leave off for text-only models such as deepseek-chat.`}),(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`span`,{className:`spacer`}),h.models.length?(0,L.jsx)(`button`,{type:`button`,onClick:b,children:`Cancel`}):null,(0,L.jsx)(`button`,{type:`submit`,className:`primary`,disabled:g||!r.trim()||!a.trim(),children:`Add model`})]})]}):(0,L.jsx)(`button`,{type:`button`,className:`add-model`,disabled:g,onClick:()=>n(!0),children:`+ Add model`}),d?(0,L.jsx)(`div`,{className:`modal-error`,children:d}):null,e.busy?(0,L.jsx)(`div`,{className:`settings-note`,children:`Wait for the current reply to finish to change models.`}):null,(0,L.jsx)(`div`,{className:`settings-note`,children:_?(0,L.jsxs)(L.Fragment,{children:[`Using `,(0,L.jsx)(`strong`,{children:_.model}),`.`,` `,(0,L.jsx)(`button`,{type:`button`,className:`link`,disabled:g,onClick:()=>void y(P.activeModel({id:null})),children:`Use .env instead`})]}):(0,L.jsx)(L.Fragment,{children:`No model in use — keys come from DEEPSEEK_API_KEY / OPENAI_API_KEY in .env.`})})]})}var lm=`tah.previewWidth`;function um(e){let[t,n]=(0,v.useState)(()=>Math.max(Math.min(Number(localStorage.getItem(lm))||480,window.innerWidth-360),280)),r=(0,v.useRef)(void 0);return(0,L.jsxs)(`aside`,{className:`side-panel`,style:{width:t},children:[(0,L.jsx)(`div`,{className:`preview-resize`,onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),r.current={x:e.clientX,width:t}},onPointerMove:e=>{if(!r.current)return;let t=Math.max(Math.min(r.current.width+r.current.x-e.clientX,window.innerWidth-360),280);n(t)},onPointerUp:()=>{r.current&&(r.current=void 0,localStorage.setItem(lm,String(t)))}}),e.both?(0,L.jsx)(`div`,{className:`side-switch`,role:`tablist`,children:[`file`,`browser`].map(t=>(0,L.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":e.view===t,className:e.view===t?`active`:``,onClick:()=>e.onView(t),children:t===`file`?`File`:`Browser`},t))}):null,e.children]})}function dm(e){let t=[e.cwd,e.sessionId,`${e.rounds} rounds`,...e.approve?[]:[`approve=off`]];return(0,L.jsxs)(`div`,{className:`status`,children:[(0,L.jsx)(`span`,{children:t.filter(Boolean).join(` · `)}),e.onBrowser?(0,L.jsx)(`button`,{type:`button`,className:`link`,onClick:e.onBrowser,title:`Open the built-in browser`,children:`Browser`}):null,(0,L.jsx)(`button`,{type:`button`,className:`link`,disabled:!e.onCompact,onClick:e.onCompact,title:`Summarize the conversation so far to free up context`,children:`Compact`})]})}var fm={sessionId:``,entries:[],approval:void 0,question:void 0,retry:void 0,todos:[],queue:[],stepLimit:!1,busy:!1,turnsEnded:0,rounds:0,nextId:0};function pm(e,...t){let n=e.nextId,r=t.map(e=>({...e,id:n++}));return{...e,entries:[...e.entries,...r],nextId:n}}function mm(e){return e.role===`tool`?{kind:`tool`,callId:e.callId,tool:e.tool,summary:e.summary,status:e.ok?`ok`:`failed`,result:e.result,...e.path?{path:e.path}:{}}:e.role===`user`?{kind:`user`,text:e.text,...e.attachments?.length?{attachments:e.attachments}:{}}:{kind:e.role,text:e.text}}var hm=e=>({...e,busy:!0,stepLimit:!1}),gm=new Set([`session`,`user`,`text`,`tool.start`,`approval`,`question`,`turn.end`,`turn.error`,`local.reset`]);function _m(e,t){switch(e.retry!==void 0&&gm.has(t.type)&&(e={...e,retry:void 0}),t.type){case`batch`:return t.actions.reduce(_m,e);case`local.reset`:return fm;case`local.error`:return pm(e,{kind:`notice`,text:t.text,error:!0});case`local.continue`:return hm(e);case`local.dismiss`:return{...e,stepLimit:!1};case`session`:return pm({...e.sessionId?{...e,entries:[]}:e,sessionId:t.id,busy:!1,approval:void 0,question:void 0,stepLimit:!1,rounds:0,todos:t.todos??[]},...t.history.map(mm));case`user`:return pm(hm(e),{kind:`user`,text:t.text,...t.attachments?.length?{attachments:t.attachments}:{}});case`text`:{let n=hm(e),r=n.entries.at(-1);return r?.kind===`assistant`?{...n,entries:[...n.entries.slice(0,-1),{...r,text:r.text+t.delta}]}:pm(n,{kind:`assistant`,text:t.delta})}case`tool.start`:return pm(hm(e),{kind:`tool`,callId:t.callId,tool:t.tool,summary:t.summary,status:`running`,result:``,...t.path?{path:t.path}:{}});case`tool.end`:{let n=t.ok?`ok`:`failed`,r=e.entries.findIndex(e=>e.kind===`tool`&&e.callId===t.callId),i=e.entries[r];if(i?.kind!==`tool`)return pm(e,{kind:`tool`,callId:t.callId,tool:t.tool,summary:t.summary,status:n,result:t.result,...t.path?{path:t.path}:{}});let a=[...e.entries];return a[r]={...i,status:n,result:t.result},{...e,entries:a}}case`approval`:return{...hm(e),approval:{id:t.id,tool:t.tool,input:t.input}};case`approval.end`:return e.approval?.id===t.id?{...e,approval:void 0}:e;case`question`:return{...hm(e),question:{id:t.id,questions:t.questions}};case`question.end`:return e.question?.id===t.id?{...e,question:void 0}:e;case`todos`:return{...e,todos:t.todos};case`queue`:return{...e,queue:t.items};case`retry`:return{...hm(e),retry:t.text};case`notice`:return pm(e,{kind:`notice`,text:t.text,error:t.error??!1});case`turn.end`:return{...e,busy:!1,turnsEnded:e.turnsEnded+1,approval:void 0,question:void 0,rounds:t.rounds,stepLimit:t.finishReason===`max_steps`};case`turn.error`:return pm({...e,busy:!1,approval:void 0,question:void 0,turnsEnded:e.turnsEnded+1},t.cancelled?{kind:`notice`,text:`turn cancelled — history kept`,error:!1}:{kind:`notice`,text:`turn failed: ${t.message} — history kept; try again`,error:!0})}}function vm(){let[e,t]=(0,v.useReducer)(_m,fm),[n,r]=(0,v.useState)(),[i,a]=(0,v.useState)(`connecting`),[o,s]=(0,v.useState)(),[c,l]=(0,v.useState)(),[u,d]=(0,v.useState)(),[f,p]=(0,v.useState)(),[m,h]=(0,v.useState)(),[g,_]=(0,v.useState)(0),y=(0,v.useCallback)(()=>h(void 0),[]),[x,S]=(0,v.useState)(!1),[C,w]=(0,v.useState)(!1),[T,E]=(0,v.useState)(`file`),D=(0,v.useCallback)(e=>{h(e),E(`file`)},[]),O=(0,v.useCallback)(()=>{S(!0),E(`browser`)},[]),A=(0,v.useCallback)(()=>d(void 0),[]),j=(0,v.useRef)([]),M=(0,v.useRef)(0),N=(0,v.useCallback)(e=>{j.current.push(e),!M.current&&(M.current=requestAnimationFrame(()=>{M.current=0,t({type:`batch`,actions:j.current.splice(0)})}))},[]);(0,v.useEffect)(()=>{let e=()=>{},t=!1,n=new URLSearchParams(location.search).get(`token`);return n&&history.replaceState(null,``,location.pathname),(n?P.auth({token:n}).catch(()=>{}):Promise.resolve()).then(()=>{t||(e=ee({onOpen(){P.info().then(r,()=>{}),P.settings().then(p,()=>{})},onEvent(e){N(e),k(e)&&_(e=>e+1),ue(e)&&O()},onStatus:a}))}),()=>{t=!0,e()}},[N,O]);let F=(0,v.useCallback)(()=>P.workspaces().then(e=>{s(e),l(void 0)},e=>l(e instanceof Error?e.message:String(e))),[]);(0,v.useEffect)(()=>{i!==`open`||e.busy||F()},[i,e.busy,e.sessionId,e.turnsEnded,F]),(0,v.useEffect)(()=>h(void 0),[e.sessionId]),(0,v.useEffect)(()=>{if(i!==`open`)return;let e=!1;return P.browserState().then(t=>{e||w(t.available)},()=>{}),()=>{e=!0}},[i,e.sessionId]);let te=async e=>{await P.addWorkspace({path:e}),await P.reset({cwd:e}),d(void 0),await F()},I=e=>e.catch(e=>N({type:`local.error`,text:e instanceof Error?e.message:String(e)})),ne=(0,v.useMemo)(()=>C?e=>{O(),I(P.browserOpen({url:e}))}:void 0,[C,O,N]);if(i===`signed-out`)return(0,L.jsxs)(`div`,{className:`signed-out`,children:[`Open the link `,(0,L.jsx)(`code`,{children:`tah serve`}),` printed in your terminal to sign in.`]});let re=e.entries.at(-1),ie=e.entries.some(e=>e.kind===`tool`&&e.status===`running`),ae=e.busy&&!e.approval&&!e.question&&!ie&&re?.kind!==`assistant`,oe=m!==void 0,se=x&&C,ce=oe&&se?T:oe?`file`:se?`browser`:void 0;return(0,L.jsxs)(`div`,{className:`app`,children:[(0,L.jsx)(Dp,{workspaces:o,unavailable:c,current:e.sessionId,busy:e.busy,waiting:e.approval?`needs approval`:e.question?`needs answer`:void 0,onNew:e=>I(P.reset(e?{cwd:e}:{})),onFork:(e,t)=>I(P.fork({id:e,...t?{cwd:t}:{}})),onPick:(e,t)=>I(P.resume({ref:e,cwd:t})),onRename:async(e,t,n)=>{await P.rename({id:e,title:t,cwd:n}),await F()},onFlag:(e,t,n,r)=>I(P.sessionFlag({id:e,flag:t,on:n,cwd:r}).then(F)),onOpenProject:()=>d(`open`),onNewFolder:()=>d(`new`),onRemoveFolder:e=>I(P.removeWorkspace({path:e}).then(F)),user:f?.user,onSettings:()=>d(`settings`)}),u===`settings`&&f?(0,L.jsx)(om,{busy:e.busy,view:f,onChange:p,onClose:A}):null,u===`open`?(0,L.jsx)(Xp,{busy:e.busy,onClose:A,onOpen:te}):null,u===`new`&&n?(0,L.jsx)(Jp,{busy:e.busy,desktop:n.desktop,onClose:A,onOpen:te}):null,(0,L.jsxs)(`main`,{children:[i===`reconnecting`?(0,L.jsx)(`div`,{className:`banner`,children:`Reconnecting…`}):null,(0,L.jsxs)(Rp,{entries:e.entries,busy:e.busy,onOpen:D,onBrowse:ne,children:[e.retry?(0,L.jsxs)(`div`,{className:`thinking retry`,children:[(0,L.jsx)(`span`,{className:`spinner`}),` `,e.retry]}):ae?(0,L.jsxs)(`div`,{className:`thinking`,children:[(0,L.jsx)(`span`,{className:`spinner`}),` thinking…`]}):null,e.approval?(0,L.jsx)(z,{approval:e.approval,onAnswer:t=>e.approval&&I(P.answer({id:e.approval.id,answer:t}))}):null,e.question?(0,L.jsx)(ye,{question:e.question,onAnswer:t=>e.question&&I(P.question({id:e.question.id,answers:t})),onSkip:()=>e.question&&I(P.question({id:e.question.id,skip:!0}))},e.question.id):null,e.stepLimit&&!e.busy?(0,L.jsxs)(`div`,{className:`card`,children:[(0,L.jsxs)(`div`,{className:`card-title`,children:[`Step limit reached`,n?.maxSteps?` (${n.maxSteps} rounds this turn)`:``,`.`]}),(0,L.jsxs)(`div`,{className:`card-actions`,children:[(0,L.jsx)(`button`,{className:`primary`,onClick:()=>{N({type:`local.continue`}),I(P.continueTurn())},children:`Continue`}),(0,L.jsx)(`button`,{onClick:()=>N({type:`local.dismiss`}),children:`Stop`})]})]}):null]}),(0,L.jsx)(kp,{todos:e.todos}),(0,L.jsx)(we,{items:e.queue,busy:e.busy,onSend:e=>I(P.queue({id:e,send:!0})),onRemove:e=>I(P.queue({id:e,remove:!0}))}),(0,L.jsx)(Ce,{cwd:o?.find(e=>e.active)?.path,busy:e.busy,disabled:i!==`open`||e.stepLimit,onSend:(e,t)=>I(P.send({text:e,attachmentIds:t})),onStop:()=>I(P.cancel()),children:(0,L.jsx)(Up,{view:f,busy:e.busy,onPick:e=>I(P.activeModel({id:e}).then(p)),onManage:()=>d(`settings`)})}),(0,L.jsx)(dm,{cwd:o?.find(e=>e.active)?.path,sessionId:e.sessionId,rounds:e.rounds,approve:n?.approve??!0,onCompact:i===`open`&&!e.busy&&!e.stepLimit?()=>{N({type:`local.continue`}),I(P.compact())}:void 0,onBrowser:C?O:void 0})]}),ce?(0,L.jsx)(um,{view:ce,both:oe&&se,onView:E,children:ce===`file`&&m?(0,L.jsx)(Qf,{target:m,version:g,onOpen:D,onBrowse:ne,onClose:y},b(m)):(0,L.jsx)(xe,{agentBusy:le(e.entries),onClose:()=>S(!1)})}):null]})}(0,y.createRoot)(document.getElementById(`root`)).render((0,L.jsx)(vm,{}));
@@ -4,7 +4,7 @@
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-JSnDO6LW.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-CkvB3COf.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-BdJrl5mh.css">
9
9
  </head>
10
10
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-agent-harness/cli",
3
- "version": "0.37.3",
3
+ "version": "0.37.4",
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.37.3",
32
- "@typescript-agent-harness/core": "0.37.3",
33
- "@typescript-agent-harness/llm": "0.37.3",
34
- "@typescript-agent-harness/mcp": "0.37.3",
35
- "@typescript-agent-harness/permissions": "0.37.3",
36
- "@typescript-agent-harness/scheduler": "0.37.3",
37
- "@typescript-agent-harness/tools": "0.37.3",
38
- "@typescript-agent-harness/storage": "0.37.3"
31
+ "@typescript-agent-harness/agent": "0.37.4",
32
+ "@typescript-agent-harness/core": "0.37.4",
33
+ "@typescript-agent-harness/llm": "0.37.4",
34
+ "@typescript-agent-harness/mcp": "0.37.4",
35
+ "@typescript-agent-harness/permissions": "0.37.4",
36
+ "@typescript-agent-harness/scheduler": "0.37.4",
37
+ "@typescript-agent-harness/storage": "0.37.4",
38
+ "@typescript-agent-harness/tools": "0.37.4"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^22.18.0",