zidane 5.7.5 → 5.7.7

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 (48) hide show
  1. package/dist/{agent-BNS2nx_T.d.ts → agent-BSPhByzT.d.ts} +21 -1
  2. package/dist/agent-BSPhByzT.d.ts.map +1 -0
  3. package/dist/chat/pure.d.ts +3 -3
  4. package/dist/chat.d.ts +74 -28
  5. package/dist/chat.d.ts.map +1 -1
  6. package/dist/chat.js +2 -2
  7. package/dist/{index-Ck_AWt8P.d.ts → index-B6h9C_JE.d.ts} +2 -2
  8. package/dist/{index-Ck_AWt8P.d.ts.map → index-B6h9C_JE.d.ts.map} +1 -1
  9. package/dist/{index-KiS7w0dC.d.ts → index-DmbrQjOk.d.ts} +2 -2
  10. package/dist/{index-KiS7w0dC.d.ts.map → index-DmbrQjOk.d.ts.map} +1 -1
  11. package/dist/index.d.ts +3 -3
  12. package/dist/index.js +3 -3
  13. package/dist/{login-BDeqENSe.js → login-C8Kc4gH0.js} +2 -2
  14. package/dist/{login-BDeqENSe.js.map → login-C8Kc4gH0.js.map} +1 -1
  15. package/dist/mcp.d.ts +1 -1
  16. package/dist/{presets-JuOnSI-i.js → presets-DTxFbEZ5.js} +2 -2
  17. package/dist/{presets-JuOnSI-i.js.map → presets-DTxFbEZ5.js.map} +1 -1
  18. package/dist/presets.d.ts +2 -2
  19. package/dist/presets.js +1 -1
  20. package/dist/providers.d.ts +1 -1
  21. package/dist/restate.d.ts +1 -1
  22. package/dist/session/sqlite.d.ts +1 -1
  23. package/dist/session.d.ts +1 -1
  24. package/dist/skills.d.ts +2 -2
  25. package/dist/{tool-formatters-CU-j3a3e.d.ts → tool-formatters-fUAp2Nr4.d.ts} +2 -2
  26. package/dist/{tool-formatters-CU-j3a3e.d.ts.map → tool-formatters-fUAp2Nr4.d.ts.map} +1 -1
  27. package/dist/tools/fetch-url.d.ts +1 -1
  28. package/dist/tools/web-search.d.ts +1 -1
  29. package/dist/{tools-BGtJK0vo.js → tools-dkB_jARJ.js} +25 -8
  30. package/dist/tools-dkB_jARJ.js.map +1 -0
  31. package/dist/tools.d.ts +2 -2
  32. package/dist/tools.js +1 -1
  33. package/dist/{transcript-anchors-BTSZAPVc.js → transcript-anchors-Cl7lbbeP.js} +75 -25
  34. package/dist/transcript-anchors-Cl7lbbeP.js.map +1 -0
  35. package/dist/{transcript-anchors-DX90kXc4.d.ts → transcript-anchors-qxevvEwT.d.ts} +4 -4
  36. package/dist/{transcript-anchors-DX90kXc4.d.ts.map → transcript-anchors-qxevvEwT.d.ts.map} +1 -1
  37. package/dist/tui.d.ts +3 -3
  38. package/dist/tui.js +3 -3
  39. package/dist/{turn-operations-DDIl4YVk.d.ts → turn-operations-CE1prnuP.d.ts} +3 -3
  40. package/dist/{turn-operations-DDIl4YVk.d.ts.map → turn-operations-CE1prnuP.d.ts.map} +1 -1
  41. package/dist/types-BPw_i5vb.js.map +1 -1
  42. package/dist/types.d.ts +2 -2
  43. package/docs/ARCHITECTURE.md +2 -1
  44. package/docs/CHAT.md +9 -6
  45. package/package.json +1 -1
  46. package/dist/agent-BNS2nx_T.d.ts.map +0 -1
  47. package/dist/tools-BGtJK0vo.js.map +0 -1
  48. package/dist/transcript-anchors-BTSZAPVc.js.map +0 -1
package/dist/tools.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { C as getReadState, E as resolveReadStateMap, S as ReadStateMap, T as readStateKey, b as ToolMap, v as ToolContext, w as hashContent, x as ReadStateEntry, y as ToolDef } from "./agent-BNS2nx_T.js";
2
- import { A as SkillsReadToolOptions, B as createInteractionTool, C as SubagentDef, D as createSkillsUseTool, E as SkillsUseToolOptions, F as shell, H as glob, I as readFile, L as multiEdit, M as shellKill, N as CreateShellToolOptions, O as SkillsRunScriptToolOptions, P as createShellTool, R as listFiles, S as SpawnToolState, T as createSpawnTool, U as edit, V as grep, _ as LazyToolEntry, b as ChildAgent, g as validateToolArgs, h as ValidationResult, j as createSkillsReadTool, k as createSkillsRunScriptTool, m as writeFile, v as ToolSearchToolOptions, w as SubagentRegistry, x as SpawnToolOptions, y as createToolSearchTool, z as InteractionToolOptions } from "./index-Ck_AWt8P.js";
1
+ import { C as getReadState, E as resolveReadStateMap, S as ReadStateMap, T as readStateKey, b as ToolMap, v as ToolContext, w as hashContent, x as ReadStateEntry, y as ToolDef } from "./agent-BSPhByzT.js";
2
+ import { A as SkillsReadToolOptions, B as createInteractionTool, C as SubagentDef, D as createSkillsUseTool, E as SkillsUseToolOptions, F as shell, H as glob, I as readFile, L as multiEdit, M as shellKill, N as CreateShellToolOptions, O as SkillsRunScriptToolOptions, P as createShellTool, R as listFiles, S as SpawnToolState, T as createSpawnTool, U as edit, V as grep, _ as LazyToolEntry, b as ChildAgent, g as validateToolArgs, h as ValidationResult, j as createSkillsReadTool, k as createSkillsRunScriptTool, m as writeFile, v as ToolSearchToolOptions, w as SubagentRegistry, x as SpawnToolOptions, y as createToolSearchTool, z as InteractionToolOptions } from "./index-B6h9C_JE.js";
3
3
  export { type ChildAgent, type CreateShellToolOptions, type InteractionToolOptions, type LazyToolEntry, type ReadStateEntry, type ReadStateMap, type SkillsReadToolOptions, type SkillsRunScriptToolOptions, type SkillsUseToolOptions, type SpawnToolOptions, type SpawnToolState, type SubagentDef, type SubagentRegistry, type ToolContext, type ToolDef, type ToolMap, type ToolSearchToolOptions, type ValidationResult, createInteractionTool, createShellTool, createSkillsReadTool, createSkillsRunScriptTool, createSkillsUseTool, createSpawnTool, createToolSearchTool, edit, getReadState, glob, grep, hashContent, listFiles, multiEdit, readFile, readStateKey, resolveReadStateMap, shell, shellKill, validateToolArgs, writeFile };
package/dist/tools.js CHANGED
@@ -1,2 +1,2 @@
1
- import { A as getReadState, M as readStateKey, N as resolveReadStateMap, S as validateToolArgs, _ as shell, a as multiEdit, c as grep, f as createToolSearchTool, g as createShellTool, h as createSkillsReadTool, i as readFile, j as hashContent, l as glob, m as createSkillsRunScriptTool, n as createSpawnTool, o as listFiles, p as createSkillsUseTool, r as shellKill, s as createInteractionTool, t as writeFile, u as edit } from "./tools-BGtJK0vo.js";
1
+ import { A as getReadState, M as readStateKey, N as resolveReadStateMap, S as validateToolArgs, _ as shell, a as multiEdit, c as grep, f as createToolSearchTool, g as createShellTool, h as createSkillsReadTool, i as readFile, j as hashContent, l as glob, m as createSkillsRunScriptTool, n as createSpawnTool, o as listFiles, p as createSkillsUseTool, r as shellKill, s as createInteractionTool, t as writeFile, u as edit } from "./tools-dkB_jARJ.js";
2
2
  export { createInteractionTool, createShellTool, createSkillsReadTool, createSkillsRunScriptTool, createSkillsUseTool, createSpawnTool, createToolSearchTool, edit, getReadState, glob, grep, hashContent, listFiles, multiEdit, readFile, readStateKey, resolveReadStateMap, shell, shellKill, validateToolArgs, writeFile };
@@ -1,4 +1,4 @@
1
- import { G as modelSupportsReasoning, K as modelsForDescriptor, P as BUILTIN_PROVIDERS, R as credKeyOf, X as restoreModelOptions, _ as shell, a as multiEdit, c as grep, i as readFile$1, l as glob$1, n as createSpawnTool, o as listFiles, t as writeFile$1, u as edit, z as effectiveContextWindow } from "./tools-BGtJK0vo.js";
1
+ import { G as modelSupportsReasoning, K as modelsForDescriptor, P as BUILTIN_PROVIDERS, R as credKeyOf, X as restoreModelOptions, _ as shell, a as multiEdit, c as grep, i as readFile$1, l as glob$1, n as createSpawnTool, o as listFiles, t as writeFile$1, u as edit, z as effectiveContextWindow } from "./tools-dkB_jARJ.js";
2
2
  import { d as shortId, o as fmtTokens, u as previewLine } from "./edit-utils-DnfNoj16.js";
3
3
  import { u as writeFileAtomic } from "./providers-h4HJPbbv.js";
4
4
  import { l as errorMessage } from "./errors-CoQnKRf1.js";
@@ -7,7 +7,7 @@ import { r as toolResultToText } from "./types-BPw_i5vb.js";
7
7
  import { a as discoverSkills } from "./interpolate-TySiqKzc.js";
8
8
  import { r as normalizeMcpServers, t as connectMcpServers } from "./mcp-Kqzz-Rs_.js";
9
9
  import { r as formatTokenUsage } from "./stats-DAKBEKjc.js";
10
- import { n as definePreset, t as composePresets } from "./presets-JuOnSI-i.js";
10
+ import { n as definePreset, t as composePresets } from "./presets-DTxFbEZ5.js";
11
11
  import { r as fetchUrl } from "./fetch-url-CPxfiXDa.js";
12
12
  import { webSearch } from "./tools/web-search.js";
13
13
  import { D as extractEditPayload, I as parseEditOutcomesFromResult, J as collectReferences, Y as findActiveTrigger, q as applyInsert, u as ownerOf } from "./turn-operations-CCHfR9eC.js";
@@ -321,6 +321,31 @@ const READ_DESCRIPTION = "Return the current active task list. Returns an empty
321
321
  function defaultReminder(count) {
322
322
  return `(You've called todowrite ${count} times. Make sure each checkpoint reflects real progress; avoid re-planning every step.)`;
323
323
  }
324
+ function defaultIdenticalBlockReason(count) {
325
+ return `You've written the same todo list ${count} times in a row without any change. Stop re-checkpointing — either do the next concrete action (edit a file, run a command) and then write a list that reflects real progress, or finish the task. Re-emitting the identical list does nothing.`;
326
+ }
327
+ /**
328
+ * Stable fingerprint for a `todowrite` payload, used by the run-scoped
329
+ * `block-after` dedup gate. Normalizes the incoming `{ todos }` the same
330
+ * way the tool body does before {@link todosEqual} — sanitize to the
331
+ * three known fields, last-wins id-dedup, order preserved — so the gate's
332
+ * notion of "identical" lines up exactly with the body's "unchanged"
333
+ * short-circuit. Returns `undefined` for shapes with no usable items so
334
+ * the dedup middleware skips them (a malformed call shouldn't poison the
335
+ * loop counter).
336
+ */
337
+ function hashTodoWriteInput(input) {
338
+ const items = sanitizeItems(Array.isArray(input.todos) ? input.todos : [], Number.MAX_SAFE_INTEGER);
339
+ const byId = /* @__PURE__ */ new Map();
340
+ for (const item of items) byId.set(item.id, item);
341
+ const normalized = [...byId.values()];
342
+ if (normalized.length === 0) return void 0;
343
+ return JSON.stringify(normalized.map((t) => [
344
+ t.id,
345
+ t.status,
346
+ t.content
347
+ ]));
348
+ }
324
349
  /**
325
350
  * `true` when the run with `runId` is a subagent (has a `parentRunId`).
326
351
  * Top-level runs return `false`; an unknown / missing run also returns
@@ -453,35 +478,49 @@ function pruneTodosByRun(session) {
453
478
  }
454
479
  /**
455
480
  * Build a `Preset` carrying the `{ todowrite, todoread }` tool pair.
456
- * Identical-payload dedup is handled inside the tool body — the
457
- * comparison resolves against the active slot (session-shared for
458
- * top-level runs, per-run for subagents) and intentionally does NOT
459
- * plumb through `behavior.dedupTools`. See the `dedupIdentical` option
460
- * doc for the rationale.
461
- *
462
- * By default the preset adds **no** `toolBudgets` entry`todowrite`
463
- * is a state-transition tool, so a hard cap is the wrong abstraction
464
- * (it punishes the legitimate "finish the N-item plan" path). Hosts
465
- * that want a ceiling pass `maxWritesPerRun: N` explicitly; the
466
- * factory then plumbs a `behavior.toolBudgets.todowrite` entry
467
- * through.
481
+ *
482
+ * Loop hardening is layered, soft hard:
483
+ * 1. **In-body identical dedup** (`dedupIdentical`, on) resolves
484
+ * against the active slot (session-shared for top-level runs,
485
+ * per-run for subagents) and returns "No change — N items already
486
+ * tracked." Advisory; the model can ignore it.
487
+ * 2. **In-band reminder** (`remindAfter`, on)appends a "you've
488
+ * checkpointed N times" nudge to the result. Also advisory.
489
+ * 3. **Consecutive-identical hard block** (`maxIdenticalWrites`, ON by
490
+ * default) a run-scoped `behavior.dedupTools.todowrite` entry in
491
+ * `block-after` mode. After N byte-identical writes in a row the
492
+ * gate refuses with `Blocked: …` and the body never runs. This is
493
+ * the real loop breaker, and it's safe-by-default precisely because
494
+ * it only fires on *identical* payloads — a legitimate N-item plan
495
+ * writes a *different* list each step and never trips it.
496
+ *
497
+ * By default the preset adds **no** `toolBudgets` entry — a blanket
498
+ * per-call cap is the wrong abstraction for a state-transition tool (it
499
+ * punishes the legitimate "finish the N-item plan" path). Hosts that
500
+ * want a ceiling on *all* writes (not just identical ones) pass
501
+ * `maxWritesPerRun: N` explicitly; the factory then also plumbs a
502
+ * `behavior.toolBudgets.todowrite` entry.
468
503
  *
469
504
  * Returning a `Preset` (not a bare tool map) lets the result flow
470
- * through {@link composePresets} unchanged todos compose with any
471
- * other preset the same way every other preset does. `toolBudgets` is
472
- * a tool-name-keyed record that `composePresets` deep-merges, so a
473
- * caller's custom budget entries for other tools survive the
474
- * layering, and a caller's override for `todowrite` itself wins by
475
- * being placed later in the chain.
505
+ * through {@link composePresets} unchanged. `behavior.dedupTools` and
506
+ * `behavior.toolBudgets` are tool-name-keyed records that
507
+ * `composePresets` deep-merges, so a caller's entries for other tools
508
+ * survive the layering, and a caller's override for `todowrite` itself
509
+ * wins by being placed later in the chain.
476
510
  *
477
511
  * ```ts
478
512
  * import { basic, composePresets } from 'zidane/presets'
479
513
  * import { createTodoTools } from 'zidane/chat'
480
514
  *
481
- * // Default: no budget relies on the in-band reminder + dedup.
515
+ * // Default: soft dedup + reminder + a run-scoped hard block after 5
516
+ * // identical writes in a row.
482
517
  * createAgent({ ...composePresets(basic, createTodoTools()), provider })
483
518
  *
484
- * // Opt-in hard cap: refuse > 20 writes per run.
519
+ * // Tune (or disable) the identical-write block.
520
+ * createTodoTools({ maxIdenticalWrites: 3 }) // stricter
521
+ * createTodoTools({ maxIdenticalWrites: 0 }) // off — soft signals only
522
+ *
523
+ * // Opt-in blanket cap on *all* writes (counts distinct ones too).
485
524
  * createAgent({
486
525
  * ...composePresets(basic, createTodoTools({ maxWritesPerRun: 20 })),
487
526
  * provider,
@@ -489,8 +528,8 @@ function pruneTodosByRun(session) {
489
528
  * ```
490
529
  *
491
530
  * For the trivial "just add the tools to an existing config" case, plain
492
- * spread is also fine since the returned `Preset` only sets `tools`
493
- * (and `behavior` when a budget is opted in):
531
+ * spread is also fine the returned `Preset` sets `tools` plus a
532
+ * `behavior` block (carrying the default identical-write dedup):
494
533
  *
495
534
  * ```ts
496
535
  * createAgent({ ...basic, ...createTodoTools(), provider })
@@ -503,6 +542,7 @@ function createTodoTools(options = {}) {
503
542
  const dedupIdentical = options.dedupIdentical ?? true;
504
543
  const maxWritesPerRun = options.maxWritesPerRun ?? 0;
505
544
  const onMaxWrites = options.onMaxWrites ?? "steer";
545
+ const maxIdenticalWrites = options.maxIdenticalWrites ?? 5;
506
546
  const tools = {
507
547
  [TODOWRITE_TOOL]: createTodoWriteTool({
508
548
  maxItems,
@@ -518,6 +558,16 @@ function createTodoTools(options = {}) {
518
558
  max: maxWritesPerRun,
519
559
  onExceed: onMaxWrites
520
560
  } };
561
+ if (maxIdenticalWrites > 0) {
562
+ const reason = options.identicalBlockReason ?? defaultIdenticalBlockReason;
563
+ behavior.dedupTools = { [TODOWRITE_TOOL]: {
564
+ hasher: hashTodoWriteInput,
565
+ mode: "block-after",
566
+ threshold: maxIdenticalWrites,
567
+ scope: "run",
568
+ reason: (_input, count) => reason(count)
569
+ } };
570
+ }
521
571
  return definePreset(Object.keys(behavior).length > 0 ? {
522
572
  tools,
523
573
  behavior
@@ -9039,4 +9089,4 @@ function computeTurnAnchors(items) {
9039
9089
  //#endregion
9040
9090
  export { useMcpAuthDispatch as $, BUILD_AGENT as $n, deriveSessionTitle as $t, runOAuthLogin as A, buildUpdateHint as An, SUBAGENT_GUIDANCE as Ar, clampFps as At, refreshMcpToolsCatalog as B, AUTO_COMPACT_MIN_GROWTH_FRACTION as Bn, CATPPUCCIN_LATTE as Bt, projectsFilePath as C, parseBindingSpec as Cn, COMMUNICATION_DOCTRINE as Cr, listProjectFiles as Ct, formatPathForCwd as D, tryOpenBrowser as Dn, INTERACTION_GUIDANCE_NO_PROMPTS as Dr, SETTINGS_CHOICES as Dt, writeProjects as E, useCompletion as En, INTERACTION_GUIDANCE as Er, SETTINGS_CATEGORIES as Et, parseMcpsFile as F, detectPackageManager as Fn, resolveTheme as Ft, useMcpToolToggleSet as G, readCredentials as Gn, useDiscovery as Gt, subscribeMcpToolsCache as H, detectAuth as Hn, CATPPUCCIN_MOCHA as Ht, projectUserPaths as I, parseSemver as In, VAPORWAVE_THEME as It, parentServerName as J, setProviderCredential as Jn, useConfig as Jt, buildVisibleMcpRows as K, readProviderCredential as Kn, useDiscoveryOptional as Kt, clearMcpToolsCache as L, performInPlaceSelfUpdate as Ln, GRUVBOX_DARK as Lt, buildMcpServers as M, checkForUpdate as Mn, buildBuildSystem as Mr, BUILTIN_THEMES as Mt, defaultMcpsConfigPaths as N, compareSemver as Nn, buildPlanSystem as Nr, DEFAULT_THEME as Nt, fetchOAuthRedirect as O, bootProfileEnabled as On, PLAN_MODE_DOCTRINE as Or, SETTINGS_TOGGLES as Ot, discoverProjectMcps as P, detectLibc as Pn, envSection as Pr, resolveChipColor as Pt, McpAuthProvider as Q, findGitRoot$1 as Qn, createStateStore as Qt, loadMcpToolsCache as R, performSelfUpdate as Rn, GRUVBOX_LIGHT as Rt, matchesSafelistEntry as S, mergeKeybindings as Sn, ACTIONS_WITH_CARE_DOCTRINE as Sr, shortChord as St, suggestSafelistEntry as T, stripJsonComments as Tn, IDENTITY_PREFIX as Tr, DEFAULT_SETTINGS as Tt, buildToolToggle as U, applyApiKeyEnv as Un, createDiscoverySlot as Ut, saveMcpToolsCache as V, shouldAutoCompact as Vn, CATPPUCCIN_MACCHIATO as Vt, useMcpToolToggleMap as W, credentialsPath as Wn, DiscoveryProvider as Wt, mcpCredentialsPath as X, discoverAgentsMd as Xn, resolveStoragePaths as Xt, createFileMcpCredentialStore as Y, writeCredentials as Yn, resolveConfig as Yt, patchMcpCredential as Z, renderAgentsMdBlock as Zn, resolveStorageDirs as Zt, useSafeModeQueue as _, ensureKeybindingsFile as _n, pickActiveRunId as _r, hintsLength as _t, useSurfaces as a, saveState as an, accentColor as ar, InteractionsProvider as at, getSafelist as b, keybindingsPath as bn, setTodosForRun as br, generateSessionTitle as bt, useStreamBuffer as c, sumRunCosts as cn, TODOREAD_TOOL as cr, createInteractionTools as ct, discoverProjectSkills as d, toolResultText as dn, TODO_STATUS_GLYPHS as dr, pendingInteractionsFromTurns as dt, eventsFromTurns as en, BUILTIN_AGENTS as er, useMcpAuthState as et, renderSession as f, updateToolEventOutcomes as fn, TODO_WRITE_COUNTS_METADATA_KEY as fr, serializeInteractionResponse as ft, useSafeModeActions as g, KEYBINDING_KEY_COL_WIDTH as gn, isTodoTool as gr, clipHintsToWidth as gt, SafeModeProvider as h, KEYBINDING_DEF_BY_ACTION as hn, getTodosForRun as hr, EMPTY_HINTS as ht, useSelectStyle as i, marginTopFor as in, PLAN_AGENT as ir, ASK_USER_TOOL as it, supportsOAuth as j, useUpdateCheck as jn, TOKEN_DISCIPLINE_DOCTRINE as jr, useSettings as jt, oauthUsesManualCodePaste as k, bootTick as kn, PLAN_MODE_DOCTRINE_NO_PROMPTS as kr, SettingsProvider as kt, buildSkillsConfig as l, titleFromTurns as ln, TODOS_METADATA_KEY as lr, isInteractionTool as lt, writeSessionExport as m, KEYBINDING_DEFS as mn, getArchivedTodosForRun as mr, useInteractionsQueue as mt, ThemeProvider as n, listSessionMeta as nn, DEFAULT_BUDGET_EXCLUDE_TOOLS as nr, reduceMcpAuth as nt, useSyntaxStyles as o, serverToolResultSummary as on, resolveAgentId as or, PRESENT_PLAN_TOOL as ot, resolveSessionExportTarget as p, DEFAULT_KEYBINDINGS as pn, createTodoTools as pr, useInteractionsActions as pt, indexOfServerRow as q, removeProviderCredential as qn, ConfigProvider as qt, useColors as r, loadState as rn, DEFAULT_PERSIST_EXCLUDE_TOOLS as rr, splitMarkdownCodeBlocks as rt, useTheme as s, stripSpawnTokensLine as sn, singleAgentRegistry as sr, buildResumedToolResultsTurn as st, computeTurnAnchors as t, lastContextSizeFromTurns as tn, DEFAULT_AGENT_ID as tr, getMcpAuthStatus as tt, defaultSkillScanPaths as u, toolCallPreview as un, TODOWRITE_TOOL as ur, makeRequestInteraction as ut, IMPLICITLY_SAFE_TOOLS as v, formatBindingForDisplay as vn, pruneTodosByRun as vr, truncateTrailing as vt, readProjects as w, readKeybindings as wn, DOING_TASKS_DOCTRINE as wr, useEnabledToggleSet as wt, isOnSafelist as x, matchesBinding as xn, useActiveTodos as xr, buildHints as xt, addToSafelist as y, groupBindings as yn, selectActiveTodos as yr, cleanTitle as yt, mcpToolsCachePath as z, resolvePlatformPackage as zn, CATPPUCCIN_FRAPPE as zt };
9041
9091
 
9042
- //# sourceMappingURL=transcript-anchors-BTSZAPVc.js.map
9092
+ //# sourceMappingURL=transcript-anchors-Cl7lbbeP.js.map