zidane 6.2.23 → 6.2.26

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 (111) hide show
  1. package/dist/{acp-B7wH6LhE.js → acp-CNZqD1Fw.js} +5 -5
  2. package/dist/{acp-B7wH6LhE.js.map → acp-CNZqD1Fw.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-BSIMsEtD.js → agent--VPMZ0nT.js} +324 -39
  7. package/dist/agent--VPMZ0nT.js.map +1 -0
  8. package/dist/agent.d.ts +1 -1
  9. package/dist/agent.js +2 -2
  10. package/dist/{auth-CpdQebUy.js → auth-DIT_DMwa.js} +2 -2
  11. package/dist/{auth-CpdQebUy.js.map → auth-DIT_DMwa.js.map} +1 -1
  12. package/dist/chat/pure.d.ts +3 -3
  13. package/dist/chat/pure.js +1 -1
  14. package/dist/chat.d.ts +4 -4
  15. package/dist/chat.d.ts.map +1 -1
  16. package/dist/chat.js +6 -6
  17. package/dist/contexts/daytona.d.ts +1 -1
  18. package/dist/contexts/daytona.d.ts.map +1 -1
  19. package/dist/contexts/daytona.js +9 -2
  20. package/dist/contexts/daytona.js.map +1 -1
  21. package/dist/contexts/docker.js +1 -1
  22. package/dist/contexts/e2b.d.ts +1 -1
  23. package/dist/contexts/e2b.d.ts.map +1 -1
  24. package/dist/contexts/e2b.js +3 -4
  25. package/dist/contexts/e2b.js.map +1 -1
  26. package/dist/{contexts-A4ep-iJs.js → contexts-0rmrBhTK.js} +8 -5
  27. package/dist/contexts-0rmrBhTK.js.map +1 -0
  28. package/dist/contexts.js +1 -1
  29. package/dist/eval.d.ts +1 -1
  30. package/dist/eval.js +2 -2
  31. package/dist/extensions.d.ts +1 -1
  32. package/dist/extensions.js +1 -1
  33. package/dist/{output-cap-kBUHBlnq.js → glob-DluQFSw1.js} +2 -50
  34. package/dist/glob-DluQFSw1.js.map +1 -0
  35. package/dist/headless.d.ts +1 -1
  36. package/dist/headless.js +4 -4
  37. package/dist/history-search-worker.js +6 -1
  38. package/dist/history-search-worker.js.map +1 -1
  39. package/dist/{index-Bv9qhj4n.d.ts → index-AVZ6pYpi.d.ts} +254 -97
  40. package/dist/index-AVZ6pYpi.d.ts.map +1 -0
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.js +12 -9
  43. package/dist/index.js.map +1 -1
  44. package/dist/{inline-autocomplete-BAwBcZtD.js → inline-autocomplete-CbcdZpfC.js} +2 -1
  45. package/dist/inline-autocomplete-CbcdZpfC.js.map +1 -0
  46. package/dist/{login-BkZ_d5sT.js → login-afiadwf0.js} +35 -19
  47. package/dist/login-afiadwf0.js.map +1 -0
  48. package/dist/mcp.d.ts +1 -1
  49. package/dist/output/stream-json.d.ts +1 -1
  50. package/dist/output/terminal.d.ts +1 -1
  51. package/dist/output-cap-DM1HrgIp.js +100 -0
  52. package/dist/output-cap-DM1HrgIp.js.map +1 -0
  53. package/dist/presets.d.ts +1 -1
  54. package/dist/presets.js +1 -1
  55. package/dist/providers/anthropic.d.ts +1 -1
  56. package/dist/providers/arcee.d.ts +1 -1
  57. package/dist/providers/baseten.d.ts +1 -1
  58. package/dist/providers/cerebras.d.ts +1 -1
  59. package/dist/providers/local.d.ts +1 -1
  60. package/dist/providers/openai-compat.d.ts +1 -1
  61. package/dist/providers/openai.d.ts +1 -1
  62. package/dist/providers/openrouter.d.ts +1 -1
  63. package/dist/providers/xai.d.ts +1 -1
  64. package/dist/providers.d.ts +1 -1
  65. package/dist/{resolve-x5mlFtLX.js → resolve-BPTA1RpX.js} +23 -3
  66. package/dist/resolve-BPTA1RpX.js.map +1 -0
  67. package/dist/restate.d.ts +1 -1
  68. package/dist/{run-summary-nD3IQ4ZQ.js → run-summary-BU_NgwUT.js} +17 -1
  69. package/dist/run-summary-BU_NgwUT.js.map +1 -0
  70. package/dist/session/sqlite.d.ts +1 -1
  71. package/dist/{session-Dbvz1ZUE.js → session-jLsc_kMH.js} +22 -3
  72. package/dist/session-jLsc_kMH.js.map +1 -0
  73. package/dist/session.d.ts +2 -2
  74. package/dist/session.js +2 -2
  75. package/dist/{skills-C1vGKbqv.js → skills-C7eIjWYm.js} +2 -2
  76. package/dist/{skills-C1vGKbqv.js.map → skills-C7eIjWYm.js.map} +1 -1
  77. package/dist/skills.d.ts +1 -1
  78. package/dist/skills.js +2 -2
  79. package/dist/{tool-formatters-D9P6Znip.d.ts → tool-formatters-Dual3Hdl.d.ts} +2 -2
  80. package/dist/{tool-formatters-D9P6Znip.d.ts.map → tool-formatters-Dual3Hdl.d.ts.map} +1 -1
  81. package/dist/tools/fetch-url.d.ts +1 -1
  82. package/dist/tools/web-search.d.ts +1 -1
  83. package/dist/tools.d.ts +1 -1
  84. package/dist/tools.js +1 -1
  85. package/dist/{transcript-anchors-Ci5888xS.d.ts → transcript-anchors-CG85bieG.d.ts} +2 -2
  86. package/dist/transcript-anchors-CG85bieG.d.ts.map +1 -0
  87. package/dist/{transcript-anchors-CqzIr74w.js → transcript-anchors-CnmxZ8QR.js} +96 -16
  88. package/dist/transcript-anchors-CnmxZ8QR.js.map +1 -0
  89. package/dist/tui.d.ts +55 -8
  90. package/dist/tui.d.ts.map +1 -1
  91. package/dist/tui.js +1845 -1145
  92. package/dist/tui.js.map +1 -1
  93. package/dist/{turn-operations-CokV32wf.js → turn-operations-4tnvKwfJ.js} +82 -14
  94. package/dist/turn-operations-4tnvKwfJ.js.map +1 -0
  95. package/dist/{turn-operations-C3y6A82G.d.ts → turn-operations-BUYaSCL3.d.ts} +3 -3
  96. package/dist/{turn-operations-C3y6A82G.d.ts.map → turn-operations-BUYaSCL3.d.ts.map} +1 -1
  97. package/dist/types-BIarq1qE.js.map +1 -1
  98. package/dist/types.d.ts +1 -1
  99. package/package.json +2 -1
  100. package/dist/agent-BSIMsEtD.js.map +0 -1
  101. package/dist/contexts-A4ep-iJs.js.map +0 -1
  102. package/dist/index-Bv9qhj4n.d.ts.map +0 -1
  103. package/dist/inline-autocomplete-BAwBcZtD.js.map +0 -1
  104. package/dist/login-BkZ_d5sT.js.map +0 -1
  105. package/dist/output-cap-kBUHBlnq.js.map +0 -1
  106. package/dist/resolve-x5mlFtLX.js.map +0 -1
  107. package/dist/run-summary-nD3IQ4ZQ.js.map +0 -1
  108. package/dist/session-Dbvz1ZUE.js.map +0 -1
  109. package/dist/transcript-anchors-Ci5888xS.d.ts.map +0 -1
  110. package/dist/transcript-anchors-CqzIr74w.js.map +0 -1
  111. package/dist/turn-operations-CokV32wf.js.map +0 -1
@@ -16,14 +16,42 @@ function projectLabel(projectRoot) {
16
16
  const parts = projectRoot.split(/[\\/]/).filter(Boolean);
17
17
  return parts[parts.length - 1] ?? projectRoot;
18
18
  }
19
+ /**
20
+ * Per-catalog memo for `tokenFor`, keyed on catalog reference identity.
21
+ * Token derivation is O(catalog) per id, and both `suggest()` (every
22
+ * keystroke) and `parseReferences()` (every submit/highlight pass) need
23
+ * a token for EVERY entry — quadratic over catalogs that can reach
24
+ * thousands of sessions. The catalog getters return a stable array until
25
+ * a refresh swaps it, so a WeakMap invalidates exactly when it should.
26
+ */
27
+ const tokensByCatalog = /* @__PURE__ */ new WeakMap();
28
+ function catalogTokens(catalog) {
29
+ let cached = tokensByCatalog.get(catalog);
30
+ if (!cached) {
31
+ cached = {
32
+ normalizedIds: catalog.map((entry) => normalizeId(entry.id)),
33
+ tokens: /* @__PURE__ */ new Map()
34
+ };
35
+ tokensByCatalog.set(catalog, cached);
36
+ }
37
+ return cached;
38
+ }
19
39
  function tokenFor(id, catalog) {
40
+ const { normalizedIds, tokens } = catalogTokens(catalog);
41
+ const known = tokens.get(id);
42
+ if (known !== void 0) return known;
20
43
  const normalized = normalizeId(id);
21
- const normalizedIds = catalog.map((entry) => normalizeId(entry.id));
44
+ let result;
22
45
  for (let len = Math.min(MIN_TOKEN_LENGTH, normalized.length); len <= normalized.length; len++) {
23
46
  const token = normalized.slice(0, len);
24
- if (normalizedIds.filter((candidate) => candidate.startsWith(token)).length === 1) return token;
47
+ if (normalizedIds.filter((candidate) => candidate.startsWith(token)).length === 1) {
48
+ result = token;
49
+ break;
50
+ }
25
51
  }
26
- return normalized || shortId(id);
52
+ result ??= normalized || shortId(id);
53
+ tokens.set(id, result);
54
+ return result;
27
55
  }
28
56
  function stripTrailingPunctuation(candidate) {
29
57
  return candidate.replace(/[.,;:)\]}!?]+$/, "");
@@ -1311,6 +1339,26 @@ const DEFAULT_RESULT_LIMIT = 50;
1311
1339
  /** Identity formatter — preserves the discovery path verbatim. */
1312
1340
  const IDENTITY_FORMAT = (entry) => entry.path;
1313
1341
  /**
1342
+ * Per-catalog fzf instance, keyed on catalog reference identity.
1343
+ * `suggest()` runs on every keystroke and `new Fzf(...)` walks the whole
1344
+ * catalog (up to ~10k entries on monorepos) to build its match structures
1345
+ * — rebuilding that per keystroke dominated the popover's latency. The
1346
+ * catalog getter returns a stable array until a re-scan swaps it, so a
1347
+ * WeakMap on the array reference invalidates exactly when it should.
1348
+ */
1349
+ const fzfByCatalog$1 = /* @__PURE__ */ new WeakMap();
1350
+ function fzfFor(catalog) {
1351
+ let fzf = fzfByCatalog$1.get(catalog);
1352
+ if (!fzf) {
1353
+ fzf = new Fzf(catalog, {
1354
+ selector: (f) => f.name,
1355
+ casing: "case-insensitive"
1356
+ });
1357
+ fzfByCatalog$1.set(catalog, fzf);
1358
+ }
1359
+ return fzf;
1360
+ }
1361
+ /**
1314
1362
  * Displayed/inserted form of a catalog entry. Directories carry a
1315
1363
  * trailing `/` so the emitted mention (`@src/chat/`) is visually and
1316
1364
  * semantically unambiguous — both to the user and to the agent's
@@ -1334,10 +1382,7 @@ function displayOf(entry, formatPath) {
1334
1382
  */
1335
1383
  function scoreFiles(catalog, query, limit, formatPath) {
1336
1384
  const q = query.trim().toLowerCase();
1337
- const fuzzyHits = q.length > 0 ? new Set(new Fzf([...catalog], {
1338
- selector: (f) => f.name,
1339
- casing: "case-insensitive"
1340
- }).find(q).map((r) => r.item)) : null;
1385
+ const fuzzyHits = q.length > 0 ? new Set(fzfFor(catalog).find(q).map((r) => r.item)) : null;
1341
1386
  const scored = [];
1342
1387
  for (const file of catalog) {
1343
1388
  const display = displayOf(file, formatPath);
@@ -1490,6 +1535,28 @@ const SKILLS_TRIGGER = "/";
1490
1535
  /** Valid skill-name shape (matches the parser): lowercase alnum + dashes. */
1491
1536
  const SKILL_NAME_RX = /^[a-z0-9][a-z0-9-]*$/;
1492
1537
  /**
1538
+ * Per-catalog valid-set + fzf instance, keyed on catalog reference
1539
+ * identity — `suggest()` runs per keystroke and both the name filter and
1540
+ * `new Fzf(...)` walk the whole catalog. The getter returns a stable
1541
+ * array until a reload/toggle swaps it.
1542
+ */
1543
+ const fzfByCatalog = /* @__PURE__ */ new WeakMap();
1544
+ function validAndFzfFor(catalog) {
1545
+ let cached = fzfByCatalog.get(catalog);
1546
+ if (!cached) {
1547
+ const valid = catalog.filter((skill) => SKILL_NAME_RX.test(skill.name));
1548
+ cached = {
1549
+ valid,
1550
+ fzf: new Fzf(valid, {
1551
+ selector: (s) => s.name,
1552
+ casing: "case-insensitive"
1553
+ })
1554
+ };
1555
+ fzfByCatalog.set(catalog, cached);
1556
+ }
1557
+ return cached;
1558
+ }
1559
+ /**
1493
1560
  * Filter + rank visible skills against a query. Hoisted to a module
1494
1561
  * helper so the sync and async branches of `suggest()` share one
1495
1562
  * implementation (the async branch hits this once the lazy SKILL.md
@@ -1497,11 +1564,8 @@ const SKILL_NAME_RX = /^[a-z0-9][a-z0-9-]*$/;
1497
1564
  */
1498
1565
  function scoreSkills(catalog, query) {
1499
1566
  const q = query.trim().toLowerCase();
1500
- const valid = catalog.filter((skill) => SKILL_NAME_RX.test(skill.name));
1501
- const fuzzyHits = q.length > 0 ? new Set(new Fzf(valid, {
1502
- selector: (s) => s.name,
1503
- casing: "case-insensitive"
1504
- }).find(q).map((r) => r.item)) : null;
1567
+ const { valid, fzf } = validAndFzfFor(catalog);
1568
+ const fuzzyHits = q.length > 0 ? new Set(fzf.find(q).map((r) => r.item)) : null;
1505
1569
  const scored = [];
1506
1570
  for (const skill of valid) {
1507
1571
  const name = skill.name.toLowerCase();
@@ -2377,7 +2441,11 @@ const TOOL_DISPLAY = {
2377
2441
  format: (input) => {
2378
2442
  const task = stringField(input, "task");
2379
2443
  if (!task) return null;
2380
- return { target: truncate(task, 120) };
2444
+ const resume = stringField(input, "resume");
2445
+ return {
2446
+ target: truncate(task, 120),
2447
+ ...resume ? { meta: [`resumed ${resume}`] } : {}
2448
+ };
2381
2449
  }
2382
2450
  },
2383
2451
  tool_search: {
@@ -2657,4 +2725,4 @@ function countNeighbors(turnIds, turnId) {
2657
2725
  //#endregion
2658
2726
  export { extractEditPayload as $, FILES_TRIGGER as A, isVisible as B, chunkMarkdownForRender as C, SKILLS_TRIGGER as D, stripHtmlCommentsOutsideCode as E, BASH_CALL_ID_PREFIX as F, streamEventSearchText as G, promptHistoryFromEvents as H, EDIT_TOOL_NAMES as I, buildContextualDiff as J, turnSelectionOwnership as K, isEditErrorResult as L, uniqueFilesFromReferences as M, blendHsl as N, createSkillsCompletionProvider as O, buildLinearRamp as P, computeLineDiff as Q, isTurnHighlighted as R, MARKDOWN_RENDER_CHUNK_TARGET_BYTES as S, splitMarkdownCodeBlocks as T, selectableTurnIds as U, isVisibleDuringSearch as V, selectionAfterTurnRemoval as W, clipDiffForRender as X, buildUnifiedDiff as Y, computeInlineDiff as Z, turnContextSize as _, TOOL_DISPLAY as a, buildEditOutcomesAnnotation as at, filterModelCatalog as b, MAX_TRANSCRIPT_EVENTS as c, parseEditOutcomesFromResult as ct, finalizeStreamingMarkdown as d, stripEditOutcomesAnnotation as dt, filetypeFromPath as et, finalizeStreamingMarkdownForOwner as f, summarizeOutcomes as ft, revealEarlierTranscriptEvents as g, uniqueChatIdsFromReferences as gt, replaceTranscriptTurnEvents as h, createChatsCompletionProvider as ht, turnAsText as i, tokenize as it, createFilesCompletionProvider as j, uniqueSkillNamesFromReferences as k, TRANSCRIPT_TRIM_TO_EVENTS as l, resolveApprovalForPayload as lt, ownerOf as m, chatReferenceTokensFromText as mt, deleteTurnSafely as n, splitLines as nt, displayNameFor as o, maskToOutcomeKinds as ot, hiddenEarlierTranscriptCount as p, CHATS_TRIGGER as pt, applyEditPayload as q, truncateTurnsAt as r, summarizeEditPayload as rt, formatToolCall as s, mergeApprovalAndBodyOutcomes as st, countNeighbors as t, previewEditPayload as tt, capTranscriptEvents as u, rewriteMultiEditHeader as ut, splitPromptSegments as v, normalizeMarkdownCodeFences as w, indexOfEntry as x, buildModelCatalog as y, isUserBashEvent as z };
2659
2727
 
2660
- //# sourceMappingURL=turn-operations-CokV32wf.js.map
2728
+ //# sourceMappingURL=turn-operations-4tnvKwfJ.js.map