zidane 7.0.17 → 7.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/{acp-DTnq3bda.js → acp-BgNj1-gv.js} +2 -2
  2. package/dist/{acp-DTnq3bda.js.map → acp-BgNj1-gv.js.map} +1 -1
  3. package/dist/acp-cli.js +4 -4
  4. package/dist/acp.d.ts +1 -1
  5. package/dist/acp.js +1 -1
  6. package/dist/{agent-C5xr7lqh.js → agent-Djzx-1kD.js} +123 -22
  7. package/dist/agent-Djzx-1kD.js.map +1 -0
  8. package/dist/agent.d.ts +1 -1
  9. package/dist/agent.js +1 -1
  10. package/dist/{anthropic-D_aMBEj8.js → anthropic-DATE-m9f.js} +23 -8
  11. package/dist/anthropic-DATE-m9f.js.map +1 -0
  12. package/dist/{approvals-D3P3Wz58.js → approvals-Jztqzqjk.js} +31 -5
  13. package/dist/approvals-Jztqzqjk.js.map +1 -0
  14. package/dist/{auth-893jSFew.js → auth-DhkLW1Wu.js} +5 -5
  15. package/dist/{auth-893jSFew.js.map → auth-DhkLW1Wu.js.map} +1 -1
  16. package/dist/chat/pure.d.ts +3 -3
  17. package/dist/chat.d.ts +5 -5
  18. package/dist/chat.js +3 -3
  19. package/dist/contexts/daytona.d.ts +1 -1
  20. package/dist/contexts/e2b.d.ts +1 -1
  21. package/dist/daemon-cli.js +1 -1
  22. package/dist/eval.d.ts +1 -1
  23. package/dist/extensions.d.ts +2 -2
  24. package/dist/extensions.js +2 -2
  25. package/dist/headless.d.ts +1 -1
  26. package/dist/headless.js +1 -1
  27. package/dist/{index-CyOGLSQN.d.ts → index-498gAVpL.d.ts} +5 -5
  28. package/dist/index-498gAVpL.d.ts.map +1 -0
  29. package/dist/{index-D7H81_kd.d.ts → index-CfEJ5Vf9.d.ts} +52 -4
  30. package/dist/index-CfEJ5Vf9.d.ts.map +1 -0
  31. package/dist/index.d.ts +2 -2
  32. package/dist/index.js +6 -6
  33. package/dist/{ipc-DY40IbcP.js → ipc-B4p0P2tz.js} +2 -2
  34. package/dist/{ipc-DY40IbcP.js.map → ipc-B4p0P2tz.js.map} +1 -1
  35. package/dist/ipc.d.ts +5 -5
  36. package/dist/ipc.js +3 -3
  37. package/dist/mcp.d.ts +1 -1
  38. package/dist/{oauth-EIBUuSDK.js → oauth-D-LZ4ic-.js} +29 -2
  39. package/dist/oauth-D-LZ4ic-.js.map +1 -0
  40. package/dist/output/stream-json.d.ts +1 -1
  41. package/dist/output/terminal.d.ts +1 -1
  42. package/dist/plugins.d.ts +1 -1
  43. package/dist/presets.d.ts +1 -1
  44. package/dist/presets.js +1 -1
  45. package/dist/providers/anthropic.d.ts +1 -1
  46. package/dist/providers/anthropic.js +1 -1
  47. package/dist/providers/arcee.d.ts +1 -1
  48. package/dist/providers/baseten.d.ts +1 -1
  49. package/dist/providers/cerebras.d.ts +1 -1
  50. package/dist/providers/local.d.ts +1 -1
  51. package/dist/providers/openai-compat.d.ts +1 -1
  52. package/dist/providers/openai.d.ts +1 -1
  53. package/dist/providers/openai.js +1 -1
  54. package/dist/providers/openrouter.d.ts +1 -1
  55. package/dist/providers/xai.d.ts +1 -1
  56. package/dist/providers/xai.js +1 -1
  57. package/dist/{providers-CTkZSxvp.js → providers-Bjdvmpfu.js} +2 -2
  58. package/dist/{providers-CTkZSxvp.js.map → providers-Bjdvmpfu.js.map} +1 -1
  59. package/dist/providers.d.ts +2 -2
  60. package/dist/providers.js +4 -4
  61. package/dist/restate.d.ts +1 -1
  62. package/dist/restate.js +1 -1
  63. package/dist/{server-DaZqNd61.js → server-Cccx5jES.js} +4 -4
  64. package/dist/{server-DaZqNd61.js.map → server-Cccx5jES.js.map} +1 -1
  65. package/dist/session/sqlite.d.ts +1 -1
  66. package/dist/session-23Stp71-.js.map +1 -1
  67. package/dist/session.d.ts +2 -2
  68. package/dist/session.js +2 -2
  69. package/dist/skills.d.ts +1 -1
  70. package/dist/{tool-formatters-9_ABHXRG.d.ts → tool-formatters-D1rdZOe3.d.ts} +2 -2
  71. package/dist/{tool-formatters-9_ABHXRG.d.ts.map → tool-formatters-D1rdZOe3.d.ts.map} +1 -1
  72. package/dist/tools/fetch-url.d.ts +1 -1
  73. package/dist/tools/web-search.d.ts +1 -1
  74. package/dist/tools.d.ts +1 -1
  75. package/dist/tools.js +1 -1
  76. package/dist/{transcript-anchors-CbZkEMIN.d.ts → transcript-anchors-pHga6mOC.d.ts} +2 -2
  77. package/dist/{transcript-anchors-CbZkEMIN.d.ts.map → transcript-anchors-pHga6mOC.d.ts.map} +1 -1
  78. package/dist/tui.d.ts +3 -3
  79. package/dist/tui.js +99 -36
  80. package/dist/tui.js.map +1 -1
  81. package/dist/{turn-operations-DsVjoO3S.d.ts → turn-operations-Dzo-8TKC.d.ts} +3 -3
  82. package/dist/{turn-operations-DsVjoO3S.d.ts.map → turn-operations-Dzo-8TKC.d.ts.map} +1 -1
  83. package/dist/types.d.ts +1 -1
  84. package/package.json +1 -1
  85. package/dist/agent-C5xr7lqh.js.map +0 -1
  86. package/dist/anthropic-D_aMBEj8.js.map +0 -1
  87. package/dist/approvals-D3P3Wz58.js.map +0 -1
  88. package/dist/index-CyOGLSQN.d.ts.map +0 -1
  89. package/dist/index-D7H81_kd.d.ts.map +0 -1
  90. package/dist/oauth-EIBUuSDK.js.map +0 -1
package/dist/acp-cli.js CHANGED
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import { m as openaiCompat } from "./openai-compat-cIeLSED_.js";
3
- import { xt as basic_default } from "./agent-C5xr7lqh.js";
3
+ import { xt as basic_default } from "./agent-Djzx-1kD.js";
4
4
  import { r as createProcessContext } from "./contexts-BSFQVclW.js";
5
5
  import { createSandboxContext } from "./contexts/sandbox.js";
6
6
  import { p as resolveStorageDirs } from "./plugins-B531Tz5b.js";
7
- import { n as anthropic } from "./anthropic-D_aMBEj8.js";
7
+ import { n as anthropic } from "./anthropic-DATE-m9f.js";
8
8
  import { arcee } from "./providers/arcee.js";
9
9
  import { baseten } from "./providers/baseten.js";
10
10
  import { cerebras } from "./providers/cerebras.js";
11
11
  import { openai } from "./providers/openai.js";
12
12
  import { openrouter } from "./providers/openrouter.js";
13
13
  import { xai } from "./providers/xai.js";
14
- import { d as StartUsageError, f as buildStartLocalOptions, h as startProviderNames, i as withAcpDefaultTools, m as startLocalArgOptions, p as parseStartArgValues, t as runAcpStdioServer } from "./acp-DTnq3bda.js";
15
- import { d as BUILTIN_PROVIDERS, i as readCredentials, m as credKeyOf, r as credentialsPath, t as detectAuth, x as modelsForDescriptor } from "./auth-893jSFew.js";
14
+ import { d as StartUsageError, f as buildStartLocalOptions, h as startProviderNames, i as withAcpDefaultTools, m as startLocalArgOptions, p as parseStartArgValues, t as runAcpStdioServer } from "./acp-BgNj1-gv.js";
15
+ import { d as BUILTIN_PROVIDERS, i as readCredentials, m as credKeyOf, r as credentialsPath, t as detectAuth, x as modelsForDescriptor } from "./auth-DhkLW1Wu.js";
16
16
  import { createDaytonaProvider } from "./contexts/daytona.js";
17
17
  import { createDockerContext } from "./contexts/docker.js";
18
18
  import { createE2BProvider } from "./contexts/e2b.js";
package/dist/acp.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Hg as SessionContentBlock, Ng as PromptPart, Sg as McpServerConfig, Xi as AgentOptions, Z_ as SessionStore, a_ as ToolResultContent, ag as AgentBehavior, m_ as TurnUsage, mm as Provider, q_ as Session, qi as Agent, t as Preset, y_ as ToolDef } from "./index-D7H81_kd.js";
1
+ import { Gg as SessionContentBlock, Ig as PromptPart, S_ as ToolDef, Tg as McpServerConfig, X_ as Session, Xi as AgentOptions, __ as TurnUsage, c_ as ToolResultContent, cg as AgentBehavior, ev as SessionStore, gm as Provider, qi as Agent, t as Preset } from "./index-CfEJ5Vf9.js";
2
2
  import { c as ExecutionContext } from "./types-U-rIVUDw.js";
3
3
  import { Readable, Writable } from "node:stream";
4
4
 
package/dist/acp.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { n as JsonRpcRemoteError, r as createJsonRpcConnection } from "./json-rpc-rSWMUh9b.js";
2
- import { a as wrapToolsForAcpClient, c as sessionBlocksToAcp, i as withAcpDefaultTools, l as stopReasonFromRun, n as AcpProtocolError, o as acpMcpServersToZidane, r as createAcpServer, s as acpPromptToPromptParts, t as runAcpStdioServer, u as toolResultToAcpContent } from "./acp-DTnq3bda.js";
2
+ import { a as wrapToolsForAcpClient, c as sessionBlocksToAcp, i as withAcpDefaultTools, l as stopReasonFromRun, n as AcpProtocolError, o as acpMcpServersToZidane, r as createAcpServer, s as acpPromptToPromptParts, t as runAcpStdioServer, u as toolResultToAcpContent } from "./acp-BgNj1-gv.js";
3
3
  export { AcpProtocolError, JsonRpcRemoteError, acpMcpServersToZidane, acpPromptToPromptParts, createAcpServer, createJsonRpcConnection, runAcpStdioServer, sessionBlocksToAcp, stopReasonFromRun, toolResultToAcpContent, withAcpDefaultTools, wrapToolsForAcpClient };
@@ -1530,6 +1530,42 @@ function createArtifactDetectHook(registration, options = {}) {
1530
1530
  //#endregion
1531
1531
  //#region src/extensions/builtin-artifact-kinds.ts
1532
1532
  const GITHUB_PR_URL = /https:\/\/github\.com\/([\w.-]+)\/([\w.-]+)\/pull\/(\d+)/g;
1533
+ /**
1534
+ * GitHub token for PR refresh: `GITHUB_TOKEN` / `GH_TOKEN` from the
1535
+ * environment, else whatever the `gh` CLI is logged in with (`gh auth
1536
+ * token`) — the same credential git-flow's `/pull-request` uses, so a PR the
1537
+ * user could create is a PR we can read. The CLI lookup is cached for five
1538
+ * minutes (per process) and never throws: no `gh`, not logged in → `null`,
1539
+ * and the request goes out anonymous (public repos still work).
1540
+ */
1541
+ let ghTokenCache = null;
1542
+ const GH_TOKEN_TTL_MS = 5 * 6e4;
1543
+ async function resolveGithubToken() {
1544
+ const env = process.env.GITHUB_TOKEN ?? process.env.GH_TOKEN;
1545
+ if (env) return env;
1546
+ if (ghTokenCache && Date.now() - ghTokenCache.at < GH_TOKEN_TTL_MS) return ghTokenCache.value;
1547
+ let value = null;
1548
+ try {
1549
+ const { execFile } = await import("node:child_process");
1550
+ value = await new Promise((resolve) => {
1551
+ execFile("gh", ["auth", "token"], { timeout: 3e3 }, (err, stdout) => {
1552
+ resolve(err ? null : stdout.trim() || null);
1553
+ });
1554
+ });
1555
+ } catch {
1556
+ value = null;
1557
+ }
1558
+ ghTokenCache = {
1559
+ value,
1560
+ at: Date.now()
1561
+ };
1562
+ return value;
1563
+ }
1564
+ /**
1565
+ * Indirection so tests (and hosts with their own credential store) can swap
1566
+ * the token source without touching the environment or the `gh` binary.
1567
+ */
1568
+ const githubTokenSource = { resolve: resolveGithubToken };
1533
1569
  /** A single GitHub path segment (owner / repo), as the detector captures it. */
1534
1570
  const GITHUB_SEGMENT = /^[\w.-]+$/;
1535
1571
  const GITLAB_MR_URL = /https?:\/\/[\w.-]+\/([\w./-]+?)\/-\/merge_requests\/(\d+)/g;
@@ -1590,18 +1626,48 @@ const pullRequestKind = {
1590
1626
  render(artifact) {
1591
1627
  const meta = metaRecord(artifact);
1592
1628
  const state = typeof meta.state === "string" ? meta.state : void 0;
1629
+ const badges = [];
1630
+ if (typeof meta.additions === "number" || typeof meta.deletions === "number") badges.push({
1631
+ text: `+${meta.additions ?? 0} −${meta.deletions ?? 0}`,
1632
+ tone: "diff",
1633
+ ...typeof meta.changedFiles === "number" ? { title: `${meta.changedFiles} file${meta.changedFiles === 1 ? "" : "s"} changed` } : {}
1634
+ });
1635
+ if (typeof meta.reviews === "number" && meta.reviews > 0) badges.push({
1636
+ text: `${meta.reviews} review${meta.reviews === 1 ? "" : "s"}`,
1637
+ tone: "neutral"
1638
+ });
1639
+ if (typeof meta.comments === "number" && meta.comments > 0) badges.push({
1640
+ text: `${meta.comments} comment${meta.comments === 1 ? "" : "s"}`,
1641
+ tone: "neutral"
1642
+ });
1643
+ if (meta.mergeable === "clean" && (state === "open" || state === "approved")) badges.push({
1644
+ text: "ready to merge",
1645
+ tone: "success"
1646
+ });
1647
+ else if (meta.mergeable === "unstable") badges.push({
1648
+ text: "checks failing",
1649
+ tone: "warn"
1650
+ });
1651
+ else if (meta.mergeable === "dirty") badges.push({
1652
+ text: "conflicts",
1653
+ tone: "warn"
1654
+ });
1655
+ const prTitle = typeof meta.title === "string" && meta.title.trim() ? meta.title.trim() : null;
1593
1656
  return {
1594
- title: artifact.label,
1595
- ...typeof meta.title === "string" ? { subtitle: meta.title } : {},
1657
+ title: prTitle ?? artifact.label,
1658
+ ...prTitle ? { subtitle: artifact.label } : {},
1596
1659
  href: artifact.uri,
1597
- ...state ? { status: state } : {}
1660
+ ...state ? { status: state.replace("_", " ") } : {},
1661
+ ...badges.length > 0 ? { badges } : {}
1598
1662
  };
1599
1663
  },
1600
1664
  /**
1601
- * GitHub only (GitLab needs per-host auth). Unauthenticated when no
1602
- * `GITHUB_TOKEN` / `GH_TOKEN` is in the environment — public repos work,
1603
- * private ones (and the 60/h anonymous limit) degrade to `undefined`, i.e.
1604
- * "no refresh", never an error. Bounded by a 4 s timeout.
1665
+ * GitHub only (GitLab needs per-host auth). Token from the environment or
1666
+ * the `gh` CLI (see {@link resolveGithubToken}); without either the call is
1667
+ * anonymous — public repos work, private ones (and the 60/h anonymous
1668
+ * limit) degrade to `undefined`, i.e. "no refresh", never an error.
1669
+ * Bounded by a 4 s timeout. Captures state, title, diff size, changed
1670
+ * files and comment counts into `meta` for the rail.
1605
1671
  *
1606
1672
  * Rate-limit hygiene: terminal states (`merged` / `closed`) never change,
1607
1673
  * and a fresh `resolvedAt` (within {@link PR_RESOLVE_TTL_MS}) is reused, so
@@ -1615,35 +1681,70 @@ const pullRequestKind = {
1615
1681
  * so a crafted `owner` can't steer this token-bearing request at another
1616
1682
  * endpoint.
1617
1683
  */
1618
- async resolve(artifact) {
1684
+ async resolve(artifact, opts) {
1619
1685
  const meta = metaRecord(artifact);
1620
1686
  if (meta.provider !== "github") return void 0;
1621
1687
  const { owner, repo, number } = meta;
1622
1688
  if (typeof owner !== "string" || !GITHUB_SEGMENT.test(owner)) return void 0;
1623
1689
  if (typeof repo !== "string" || !GITHUB_SEGMENT.test(repo)) return void 0;
1624
1690
  if (typeof number !== "number" || !Number.isInteger(number) || number <= 0) return void 0;
1625
- if (meta.state === "merged" || meta.state === "closed") return void 0;
1626
- if (typeof meta.resolvedAt === "number" && Date.now() - meta.resolvedAt < PR_RESOLVE_TTL_MS) return void 0;
1627
- const token = process.env.GITHUB_TOKEN ?? process.env.GH_TOKEN;
1691
+ if (meta.state === "merged" || meta.state === "closed" && !opts?.force) return void 0;
1692
+ if (!opts?.force && typeof meta.resolvedAt === "number" && Date.now() - meta.resolvedAt < PR_RESOLVE_TTL_MS) return void 0;
1693
+ const token = await githubTokenSource.resolve();
1628
1694
  const controller = new AbortController();
1629
1695
  const timer = setTimeout(() => controller.abort(), 4e3);
1696
+ const headers = {
1697
+ "Accept": "application/vnd.github+json",
1698
+ "User-Agent": "zidane",
1699
+ ...token ? { Authorization: `Bearer ${token}` } : {}
1700
+ };
1630
1701
  try {
1631
- const res = await fetch(`https://api.github.com/repos/${owner}/${repo}/pulls/${number}`, {
1632
- headers: {
1633
- "Accept": "application/vnd.github+json",
1634
- "User-Agent": "zidane",
1635
- ...token ? { Authorization: `Bearer ${token}` } : {}
1636
- },
1702
+ const base = `https://api.github.com/repos/${owner}/${repo}/pulls/${number}`;
1703
+ const res = await fetch(base, {
1704
+ headers,
1637
1705
  signal: controller.signal
1638
1706
  });
1639
1707
  if (!res.ok) return void 0;
1640
1708
  const body = await res.json();
1641
- const state = body.merged ? "merged" : body.draft ? "draft" : typeof body.state === "string" ? body.state : void 0;
1709
+ const num = (v) => typeof v === "number" && Number.isFinite(v) ? v : void 0;
1710
+ const comments = (num(body.comments) ?? 0) + (num(body.review_comments) ?? 0);
1711
+ let decision;
1712
+ let reviews;
1713
+ const isOpen = !body.merged && body.state === "open";
1714
+ if (isOpen) try {
1715
+ const rr = await fetch(`${base}/reviews?per_page=100`, {
1716
+ headers,
1717
+ signal: controller.signal
1718
+ });
1719
+ if (rr.ok) {
1720
+ const list = await rr.json();
1721
+ if (Array.isArray(list)) {
1722
+ reviews = list.filter((r) => r.state && r.state !== "PENDING").length;
1723
+ const latest = /* @__PURE__ */ new Map();
1724
+ for (const r of list) {
1725
+ const login = r.user?.login;
1726
+ if (!login || login === body.user?.login || !r.state || r.state === "COMMENTED" || r.state === "PENDING") continue;
1727
+ latest.set(login, r.state);
1728
+ }
1729
+ const states = [...latest.values()];
1730
+ if (states.includes("CHANGES_REQUESTED")) decision = "changes_requested";
1731
+ else if (states.includes("APPROVED")) decision = "approved";
1732
+ }
1733
+ }
1734
+ } catch {}
1735
+ const state = body.merged ? "merged" : body.draft ? "draft" : body.state === "open" ? decision ?? "open" : typeof body.state === "string" ? body.state : void 0;
1642
1736
  if (!state) return void 0;
1737
+ const mergeable = typeof body.mergeable_state === "string" ? body.mergeable_state : void 0;
1643
1738
  return { meta: {
1644
1739
  ...meta,
1645
1740
  state,
1646
1741
  ...typeof body.title === "string" ? { title: body.title } : {},
1742
+ ...num(body.additions) !== void 0 ? { additions: num(body.additions) } : {},
1743
+ ...num(body.deletions) !== void 0 ? { deletions: num(body.deletions) } : {},
1744
+ ...num(body.changed_files) !== void 0 ? { changedFiles: num(body.changed_files) } : {},
1745
+ ...num(body.comments) !== void 0 || num(body.review_comments) !== void 0 ? { comments } : {},
1746
+ ...reviews !== void 0 ? { reviews } : {},
1747
+ ...isOpen && mergeable ? { mergeable } : {},
1647
1748
  resolvedAt: Date.now()
1648
1749
  } };
1649
1750
  } catch {
@@ -1801,11 +1902,11 @@ function renderArtifactRow(artifact, registry) {
1801
1902
  * no resolver, the resolver declined, or it threw. Callers persist the
1802
1903
  * result through their store / RPC — this never writes.
1803
1904
  */
1804
- async function refreshArtifact(artifact, registry) {
1905
+ async function refreshArtifact(artifact, registry, opts) {
1805
1906
  const registration = resolveArtifactKind(artifact.kind, registry);
1806
1907
  if (!registration?.resolve) return void 0;
1807
1908
  try {
1808
- const patch = await registration.resolve(artifact);
1909
+ const patch = await registration.resolve(artifact, opts);
1809
1910
  if (!patch || patch.label === void 0 && patch.meta === void 0) return void 0;
1810
1911
  return {
1811
1912
  ...artifact,
@@ -17965,6 +18066,6 @@ function createAgent(rawOptions) {
17965
18066
  };
17966
18067
  }
17967
18068
  //#endregion
17968
- export { installExtensionFromSpec as $, normalizeShellCommand as $n, KEYBINDING_DEF_BY_ACTION as $t, selectFilesFromSession as A, resolveExtensionConfig as An, createSkillsRunScriptTool as At, buildUpToCompactPrompt as B, commitKind as Bn, formatModelLine as Bt, resolveLegacySessionDir as C, createDebugLog as Cn, WAIT_TASK_TIMED_OUT_PREFIX as Ct, resolveTasksDir as D, coerceExtensionConfigInput as Dn, isSpawnTool as Dt, resolveSessionDir as E, clampExtensionConfigNumber as En, createSpawnTool as Et, TRAILER as F, createExtensionBus as Fn, tailTruncate as Ft, summaryToTurn as G, resolveArtifactKind as Gn, glob as Gt, anchorPreviewFor as H, pullRequestKind as Hn, listFiles as Ht, buildCompactPrompt as I, serializedPayloadBytes as In, readFile$1 as It, CompactPromptTooLongError as J, OUTPUT_RESERVE_TOKENS as Jn, artifacts_default as Jt, truncateHeadForPtlRetry as K, createArtifactDetectHook as Kn, edit as Kt, buildFromCompactPrompt as L, BUILTIN_ARTIFACT_KINDS as Ln, looksBinary as Lt, compactConversation as M, sanitizeExtensionConfigActionPatch as Mn, shellKill as Mt, BASE_INSTRUCTIONS as N, toWireConfigSchema as Nn, createShellTool as Nt, buildPostCompactAttachments as O, isValidExtensionConfigItem as On, reserveChildLabel as Ot, NO_TOOLS_PREAMBLE as P, EXTENSION_BUS_MAX_PAYLOAD_BYTES as Pn, shell as Pt, fetchExtensionSource as Q, defaultRepeatGuardTracked as Qn, KEYBINDING_DEFS as Qt, buildFullCompactPrompt as R, artifactKindLabel as Rn, multiEdit as Rt, resolveLegacyPersistDir as S, scanExtensionDirectories as Sn, writeFile$1 as St, resolvePersistDir as T, defineExtension as Tn, createToolSearchTool as Tt, sliceForCompaction as U, refreshArtifact as Un, createInteractionTool as Ut, ANCHOR_PREVIEW_MAX_CHARS as V, fileKind as Vn, matchModelEntries as Vt, stripImagesFromTurns as W, renderArtifactRow as Wn, grep as Wt, createExtensionPromptBridge as X, shouldAutoCompact as Xn, recordArtifact as Xt, EMPTY_EXTENSION_REGISTRY as Y, effectiveContextWindow as Yn, RECORD_ARTIFACT_TOOL as Yt, ExtensionInstallError as Z, defaultRepeatGuardNormalize as Zn, DEFAULT_KEYBINDINGS as Zt, buildPersistedStub as _, defaultExtensionScanPaths as _n, createWorkspaceSurface as _t, stagedToolState as a, matchesBinding as an, readStateKey as ar, createExtensionHud as at, migrateSessionArtifactDirs as b, isExtensionDefinition as bn, basicTools as bt, INTERRUPT_MESSAGE_FOR_TOOL_USE as c, readKeybindings as cn, buildExtensionRegistry as ct, TOOL_USE_SKIPPED_MESSAGE as d, stripJsonComments as dn, filterExtensionRegistry as dt, KEYBINDING_KEY_COL_WIDTH as en, stableStringify as er, listExtensionCandidates as et, applyCompactSummaryCutoff as f, ALTERNATE_CRED_KEY_SUFFIX as fn, filterRegistryPlugins as ft, PERSISTENCE_PREVIEW_BYTES as g, ENTRY_CANDIDATES as gn, createExtensionHostRuntimeBridge as gt, PERSISTED_STUB_PREFIX as h, registerExtensionHostModules as hn, createArtifactsSurface as ht, isToolStateOps as i, keybindingsPath as in, hydrateReadStateFromSessionAsync as ir, updateInstalledExtension as it, selectRecentFiles as j, resolveExtensionConfigValue as jn, createSkillsReadTool as jt, selectFilesFromReadState as k, isValidExtensionConfigValue as kn, createSkillsUseTool as kt, SHELL_CASCADE_CANCEL_MESSAGE as l, readKeybindingsRaw as ln, composeExtensionPreset as lt, renderStaleReadNotice as m, isReservedCredKey as mn, partitionExtensionCatalog as mt, DEFAULT_MAX_VALUE_BYTES as n, formatBindingForDisplay as nn, hashContent as nr, readExtensionInstallProvenance as nt, normalizeProviders as o, mergeKeybindings as on, resolveReadStateMap as or, discoverAndBuildExtensionRegistry as ot, collectNewlyStaleReadPaths as p, alternateCredKey as pn, mergeContributions as pt, CompactInvalidInputError as q, AUTO_COMPACT_MIN_GROWTH_FRACTION as qn, validateToolArgs as qt, createToolStateController as r, groupBindings as rn, hydrateReadStateFromSession as rr, removeInstalledExtension as rt, resolveModelTargets as s, parseBindingSpec as sn, buildExtensionPreset as st, createAgent as t, ensureKeybindingsFile as tn, getReadState as tr, parseExtensionInstallSource as tt, TOOL_USE_CANCELLED_MESSAGE as u, resolveExtensionKeybindings as un, disposeExtensionRegistry as ut, cleanupPersistedSession as v, discoverExtensions as vn, composePresets as vt, resolveMcpWarningsDir as w, setDebugLogSink as wn, waitTask as wt, rehomePersistedStubs as x, parseExtensionScanPathEnv as xn, basic_default as xt, maybePersistToolResult as y, inlineLoadedExtension as yn, definePreset as yt, buildTailCompactPrompt as z, branchKind as zn, createModelSearchTool as zt };
18069
+ export { installExtensionFromSpec as $, defaultRepeatGuardTracked as $n, KEYBINDING_DEF_BY_ACTION as $t, selectFilesFromSession as A, resolveExtensionConfig as An, createSkillsRunScriptTool as At, buildUpToCompactPrompt as B, commitKind as Bn, formatModelLine as Bt, resolveLegacySessionDir as C, createDebugLog as Cn, WAIT_TASK_TIMED_OUT_PREFIX as Ct, resolveTasksDir as D, coerceExtensionConfigInput as Dn, isSpawnTool as Dt, resolveSessionDir as E, clampExtensionConfigNumber as En, createSpawnTool as Et, TRAILER as F, createExtensionBus as Fn, tailTruncate as Ft, summaryToTurn as G, renderArtifactRow as Gn, glob as Gt, anchorPreviewFor as H, githubTokenSource as Hn, listFiles as Ht, buildCompactPrompt as I, serializedPayloadBytes as In, readFile$1 as It, CompactPromptTooLongError as J, AUTO_COMPACT_MIN_GROWTH_FRACTION as Jn, artifacts_default as Jt, truncateHeadForPtlRetry as K, resolveArtifactKind as Kn, edit as Kt, buildFromCompactPrompt as L, BUILTIN_ARTIFACT_KINDS as Ln, looksBinary as Lt, compactConversation as M, sanitizeExtensionConfigActionPatch as Mn, shellKill as Mt, BASE_INSTRUCTIONS as N, toWireConfigSchema as Nn, createShellTool as Nt, buildPostCompactAttachments as O, isValidExtensionConfigItem as On, reserveChildLabel as Ot, NO_TOOLS_PREAMBLE as P, EXTENSION_BUS_MAX_PAYLOAD_BYTES as Pn, shell as Pt, fetchExtensionSource as Q, defaultRepeatGuardNormalize as Qn, KEYBINDING_DEFS as Qt, buildFullCompactPrompt as R, artifactKindLabel as Rn, multiEdit as Rt, resolveLegacyPersistDir as S, scanExtensionDirectories as Sn, writeFile$1 as St, resolvePersistDir as T, defineExtension as Tn, createToolSearchTool as Tt, sliceForCompaction as U, pullRequestKind as Un, createInteractionTool as Ut, ANCHOR_PREVIEW_MAX_CHARS as V, fileKind as Vn, matchModelEntries as Vt, stripImagesFromTurns as W, refreshArtifact as Wn, grep as Wt, createExtensionPromptBridge as X, effectiveContextWindow as Xn, recordArtifact as Xt, EMPTY_EXTENSION_REGISTRY as Y, OUTPUT_RESERVE_TOKENS as Yn, RECORD_ARTIFACT_TOOL as Yt, ExtensionInstallError as Z, shouldAutoCompact as Zn, DEFAULT_KEYBINDINGS as Zt, buildPersistedStub as _, defaultExtensionScanPaths as _n, createWorkspaceSurface as _t, stagedToolState as a, matchesBinding as an, hydrateReadStateFromSessionAsync as ar, createExtensionHud as at, migrateSessionArtifactDirs as b, isExtensionDefinition as bn, basicTools as bt, INTERRUPT_MESSAGE_FOR_TOOL_USE as c, readKeybindings as cn, buildExtensionRegistry as ct, TOOL_USE_SKIPPED_MESSAGE as d, stripJsonComments as dn, filterExtensionRegistry as dt, KEYBINDING_KEY_COL_WIDTH as en, normalizeShellCommand as er, listExtensionCandidates as et, applyCompactSummaryCutoff as f, ALTERNATE_CRED_KEY_SUFFIX as fn, filterRegistryPlugins as ft, PERSISTENCE_PREVIEW_BYTES as g, ENTRY_CANDIDATES as gn, createExtensionHostRuntimeBridge as gt, PERSISTED_STUB_PREFIX as h, registerExtensionHostModules as hn, createArtifactsSurface as ht, isToolStateOps as i, keybindingsPath as in, hydrateReadStateFromSession as ir, updateInstalledExtension as it, selectRecentFiles as j, resolveExtensionConfigValue as jn, createSkillsReadTool as jt, selectFilesFromReadState as k, isValidExtensionConfigValue as kn, createSkillsUseTool as kt, SHELL_CASCADE_CANCEL_MESSAGE as l, readKeybindingsRaw as ln, composeExtensionPreset as lt, renderStaleReadNotice as m, isReservedCredKey as mn, partitionExtensionCatalog as mt, DEFAULT_MAX_VALUE_BYTES as n, formatBindingForDisplay as nn, getReadState as nr, readExtensionInstallProvenance as nt, normalizeProviders as o, mergeKeybindings as on, readStateKey as or, discoverAndBuildExtensionRegistry as ot, collectNewlyStaleReadPaths as p, alternateCredKey as pn, mergeContributions as pt, CompactInvalidInputError as q, createArtifactDetectHook as qn, validateToolArgs as qt, createToolStateController as r, groupBindings as rn, hashContent as rr, removeInstalledExtension as rt, resolveModelTargets as s, parseBindingSpec as sn, resolveReadStateMap as sr, buildExtensionPreset as st, createAgent as t, ensureKeybindingsFile as tn, stableStringify as tr, parseExtensionInstallSource as tt, TOOL_USE_CANCELLED_MESSAGE as u, resolveExtensionKeybindings as un, disposeExtensionRegistry as ut, cleanupPersistedSession as v, discoverExtensions as vn, composePresets as vt, resolveMcpWarningsDir as w, setDebugLogSink as wn, waitTask as wt, rehomePersistedStubs as x, parseExtensionScanPathEnv as xn, basic_default as xt, maybePersistToolResult as y, inlineLoadedExtension as yn, definePreset as yt, buildTailCompactPrompt as z, branchKind as zn, createModelSearchTool as zt };
17969
18070
 
17970
- //# sourceMappingURL=agent-C5xr7lqh.js.map
18071
+ //# sourceMappingURL=agent-Djzx-1kD.js.map