@descryy/mcp 0.11.3 → 0.11.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.
Files changed (68) hide show
  1. package/dist/bin/descry-mcp.js +0 -0
  2. package/dist/browser/driver.d.ts +21 -0
  3. package/dist/browser/driver.d.ts.map +1 -1
  4. package/dist/browser/playwright-driver.d.ts.map +1 -1
  5. package/dist/browser/playwright-driver.js +39 -0
  6. package/dist/browser/playwright-driver.js.map +1 -1
  7. package/dist/browser/reach-recording-session.d.ts.map +1 -1
  8. package/dist/browser/reach-recording-session.js +8 -0
  9. package/dist/browser/reach-recording-session.js.map +1 -1
  10. package/dist/capped.d.ts +22 -0
  11. package/dist/capped.d.ts.map +1 -1
  12. package/dist/capped.js +28 -0
  13. package/dist/capped.js.map +1 -1
  14. package/dist/registry.d.ts.map +1 -1
  15. package/dist/registry.js +8 -0
  16. package/dist/registry.js.map +1 -1
  17. package/dist/render.d.ts +44 -1
  18. package/dist/render.d.ts.map +1 -1
  19. package/dist/render.js +104 -3
  20. package/dist/render.js.map +1 -1
  21. package/dist/server.d.ts.map +1 -1
  22. package/dist/server.js +122 -12
  23. package/dist/server.js.map +1 -1
  24. package/dist/session.d.ts +114 -1
  25. package/dist/session.d.ts.map +1 -1
  26. package/dist/session.js +178 -1
  27. package/dist/session.js.map +1 -1
  28. package/dist/tools/browser-run-scenario.d.ts.map +1 -1
  29. package/dist/tools/browser-run-scenario.js +19 -0
  30. package/dist/tools/browser-run-scenario.js.map +1 -1
  31. package/dist/tools/browser-start-session.d.ts.map +1 -1
  32. package/dist/tools/browser-start-session.js +18 -0
  33. package/dist/tools/browser-start-session.js.map +1 -1
  34. package/dist/tools/code-context.d.ts.map +1 -1
  35. package/dist/tools/code-context.js +61 -33
  36. package/dist/tools/code-context.js.map +1 -1
  37. package/dist/tools/cross-pr.d.ts.map +1 -1
  38. package/dist/tools/cross-pr.js +85 -36
  39. package/dist/tools/cross-pr.js.map +1 -1
  40. package/dist/tools/disclosure.d.ts.map +1 -1
  41. package/dist/tools/disclosure.js +25 -6
  42. package/dist/tools/disclosure.js.map +1 -1
  43. package/dist/tools/git-context.d.ts.map +1 -1
  44. package/dist/tools/git-context.js +22 -1
  45. package/dist/tools/git-context.js.map +1 -1
  46. package/dist/tools/git-history.d.ts.map +1 -1
  47. package/dist/tools/git-history.js +20 -0
  48. package/dist/tools/git-history.js.map +1 -1
  49. package/dist/tools/observe-runtime.d.ts +13 -1
  50. package/dist/tools/observe-runtime.d.ts.map +1 -1
  51. package/dist/tools/observe-runtime.js +160 -12
  52. package/dist/tools/observe-runtime.js.map +1 -1
  53. package/dist/tools/pr-analysis.d.ts.map +1 -1
  54. package/dist/tools/pr-analysis.js +86 -11
  55. package/dist/tools/pr-analysis.js.map +1 -1
  56. package/dist/tools/refusal-fetch.d.ts.map +1 -1
  57. package/dist/tools/refusal-fetch.js +31 -11
  58. package/dist/tools/refusal-fetch.js.map +1 -1
  59. package/dist/tools/scope.d.ts.map +1 -1
  60. package/dist/tools/scope.js +42 -11
  61. package/dist/tools/scope.js.map +1 -1
  62. package/dist/tools/similar-incidents.d.ts.map +1 -1
  63. package/dist/tools/similar-incidents.js +42 -18
  64. package/dist/tools/similar-incidents.js.map +1 -1
  65. package/dist/tools/validate.d.ts.map +1 -1
  66. package/dist/tools/validate.js +145 -67
  67. package/dist/tools/validate.js.map +1 -1
  68. package/package.json +16 -16
package/dist/render.d.ts CHANGED
@@ -52,7 +52,7 @@
52
52
  */
53
53
  import { type ReliabilityClass, type ReportCategory } from "@descryy/ir";
54
54
  import type { ResultState, SignalTypeCount, ToolClass } from "@descryy/ir";
55
- import type { GraphStamp, QueryResult } from "@descryy/core";
55
+ import type { GraphFreshness, GraphStamp, QueryResult } from "@descryy/core";
56
56
  import type { DisclosureLedger } from "./disclosure-ledger.ts";
57
57
  export type { ResultState } from "@descryy/ir";
58
58
  /**
@@ -271,6 +271,28 @@ export interface AnswerEnvelope<T = unknown> {
271
271
  /** `null` — never absent — when the graph was not consulted at all (§3). */
272
272
  readonly resolutionFloor: number | null;
273
273
  readonly reliabilityCap: ReliabilityClass;
274
+ /**
275
+ * Lane "map-freshness" item 1: whether this graph still matches the
276
+ * repository on disk, distinct from `commitSha`/`builtAt` alone — a
277
+ * caller reading only the stamp has no way to tell "built five minutes
278
+ * ago" from "built five hundred commits ago" without running git itself.
279
+ * `null` only when `commitSha` is `null` (an empty graph has nothing to
280
+ * be fresh or stale relative to). Otherwise never absent, and `unknown`
281
+ * — never `current` — when this could not be determined (not a git
282
+ * repository, or git itself unavailable here); see `computeGraphFreshness`
283
+ * (`@descryy/core`) for how it is computed.
284
+ */
285
+ readonly freshness: {
286
+ readonly status: "current" | "behind" | "unknown";
287
+ /** `null` when `status !== "behind"`, or when `behind` but the exact
288
+ * count could not be determined (history rewritten since the build) —
289
+ * never a substitute for `0`. */
290
+ readonly commitsSince: number | null;
291
+ /** Count of indexed files that differ from the build, or `null` when
292
+ * `status !== "behind"`. The files themselves are named in `disclosures`
293
+ * (up to 5), not repeated here. */
294
+ readonly changedIndexedFiles: number | null;
295
+ } | null;
274
296
  };
275
297
  readonly truncated: TruncationDetail | null;
276
298
  /**
@@ -466,6 +488,27 @@ export interface RenderOptions {
466
488
  * gets the same "nothing known" default `renderHandshake` always had.
467
489
  */
468
490
  readonly graphStamp?: Omit<GraphStamp, "resolutionFloor">;
491
+ /**
492
+ * Lane "map-freshness" item 1 — computed once per call in `server.ts`
493
+ * (`Session#checkFreshness()`, which needs a live git read and so, like
494
+ * `configDrift`, must not be done by an envelope function itself) and
495
+ * folded into both the machine-readable `AnswerEnvelope.graph.freshness`
496
+ * and, when not `current`, a plain-words disclosure naming up to 5 changed
497
+ * files. Optional so every direct `renderAnswer` call in a test compiles
498
+ * unchanged; omitted (rather than defaulted to "current") reports `null`
499
+ * when the stored graph is non-empty, which reads as "not checked" via
500
+ * `freshnessField`'s own fallback — never a false `current`.
501
+ */
502
+ readonly freshness?: GraphFreshness;
503
+ /**
504
+ * Lane "map-freshness" items 2-3 — plain-words notes from an automatic
505
+ * build (empty graph) or refresh (behind, within budget) that ran in
506
+ * `server.ts` before this tool call, e.g. "code map built automatically
507
+ * for this answer (took 4.2s)". Ordered ahead of every other disclosure
508
+ * (see `build()` below) — a caller needs to know the map just changed
509
+ * before it needs anything else about what the answer covers.
510
+ */
511
+ readonly autoNotes?: readonly string[];
469
512
  /**
470
513
  * N2 steps 2-3 — computed once per call in `server.ts` (it requires a
471
514
  * fresh read of `.descry/config.json`, which no envelope function should
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAKH,OAAO,EASL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAmB,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,UAAU,qCAAsC,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;IACnC,yEAAyE;IACzE,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC;CACpC;AASD,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,sBAAsB,EAAE,eAAe,CAAC;CAClD;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC;IAC7C;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAC5C;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzG;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,4EAA4E;QAC5E,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QACxC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC;QAC1C;;;;;;;;;;WAUG;QACH,QAAQ,CAAC,SAAS,EAAE;YAClB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;YAClD;;8CAEkC;YAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;YACrC;;gDAEoC;YACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;SAC7C,GAAG,IAAI,CAAC;KACV,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzG,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,sFAAsF;IACtF,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/C;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI,CAAC;IAClD,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CA6L1D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAYrD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGtD,CAAC;AAEF,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAeD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC1D;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACtF;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAgKD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,OAAO,EAAE,aAAa,GACrB,cAAc,CAsKhB;AAiED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAM7E;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GACrB,cAAc,CA0ChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,cAAc,CAqChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,cAAc,CA0ChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,cAAc,CAuCnF"}
package/dist/render.js CHANGED
@@ -53,6 +53,7 @@
53
53
  import { randomUUID } from "node:crypto";
54
54
  import { aliasDisclosure } from "./tools/aliases.js";
55
55
  import { RELIABILITY_CLASSES, REPORT_CATEGORIES, RESULT_STATES, TOOL_CLASSES, existenceCategory as deriveExistenceCategory, reliabilityCap, reliabilityDisclosure, reportCategory as deriveReportCategory, } from "@descryy/ir";
56
+ import { sampleChangedFiles } from "@descryy/core";
56
57
  /**
57
58
  * MK-5 — which of the sixteen tools states a conclusion about the user's code
58
59
  * versus which reports a fact about the graph.
@@ -196,8 +197,36 @@ export const ANSWER_ENVELOPE_SCHEMA = {
196
197
  "fact; B = structural or reference evidence; A = as strong as this " +
197
198
  "graph makes it.",
198
199
  },
200
+ freshness: nullable({
201
+ type: "object",
202
+ description: "Whether this graph still matches the repository on disk. Null only " +
203
+ "when commitSha is null (nothing analysed yet, so nothing to be " +
204
+ "fresh or stale relative to).",
205
+ properties: {
206
+ status: {
207
+ type: "string",
208
+ enum: ["current", "behind", "unknown"],
209
+ description: "current = HEAD is the build commit and no indexed file is " +
210
+ "uncommitted; behind = HEAD moved past the build, or an indexed " +
211
+ "file has an uncommitted edit; unknown = not a git repository, " +
212
+ "or git unavailable here — never reported as current.",
213
+ },
214
+ commitsSince: nullable({
215
+ type: "integer",
216
+ description: "Commits made after the build. Null when status isn't behind, " +
217
+ "or when behind but the exact count could not be determined " +
218
+ "(history rewritten since the build) — never a substitute for 0.",
219
+ }),
220
+ changedIndexedFiles: nullable({
221
+ type: "integer",
222
+ description: "How many indexed files differ from the build. Up to 5 of them " +
223
+ "are named in disclosures. Null when status isn't behind.",
224
+ }),
225
+ },
226
+ required: ["status", "commitsSince", "changedIndexedFiles"],
227
+ }),
199
228
  },
200
- required: ["commitSha", "builtAt", "irSchemaVersion", "resolutionFloor", "reliabilityCap"],
229
+ required: ["commitSha", "builtAt", "irSchemaVersion", "resolutionFloor", "reliabilityCap", "freshness"],
201
230
  },
202
231
  truncated: nullable({
203
232
  type: "object",
@@ -426,6 +455,63 @@ function aliasNotes(options) {
426
455
  ? []
427
456
  : [aliasDisclosure(options.aliasedFrom, options.aliasedTo)];
428
457
  }
458
+ /**
459
+ * Lane "map-freshness" item 1 — `AnswerEnvelope.graph.freshness`'s structured
460
+ * half, shared by every envelope-building function in this file. `null` when
461
+ * `commitSha` is `null` (nothing to be fresh or stale relative to, same
462
+ * reasoning as `resolutionFloor: null` on an unconsulted graph). Otherwise
463
+ * `unknown` with both counts `null` when this call's `RenderOptions` never
464
+ * supplied a `freshness` — "not checked" must never render as the false
465
+ * positive "current" would be.
466
+ */
467
+ function freshnessField(commitSha, freshness) {
468
+ if (commitSha === null)
469
+ return null;
470
+ if (freshness === undefined)
471
+ return { status: "unknown", commitsSince: null, changedIndexedFiles: null };
472
+ return {
473
+ status: freshness.status,
474
+ commitsSince: freshness.status === "behind" ? freshness.commitsSince : null,
475
+ changedIndexedFiles: freshness.status === "behind" ? freshness.changedFiles.length : null,
476
+ };
477
+ }
478
+ /**
479
+ * The plain-words half — "up to 5 of those files, plus the total" (lane
480
+ * "map-freshness" item 1). `undefined` on `current`/`unknown-with-nothing-
481
+ * to-say`: a disclosure that repeats "the map is current" on every single
482
+ * reply is exactly the noise `disclosure-ledger.ts` exists to avoid for the
483
+ * reliability sentence, and this field has no standing-ledger mechanism of
484
+ * its own to fall back to, so it says nothing rather than something on
485
+ * every call.
486
+ */
487
+ function freshnessDisclosure(freshness) {
488
+ if (freshness === undefined || freshness.status === "current")
489
+ return undefined;
490
+ if (freshness.status === "unknown") {
491
+ return ("Whether the code map matches the current code could not be determined — this is not a git " +
492
+ "repository, or git is unavailable here.");
493
+ }
494
+ const { shown, total } = sampleChangedFiles(freshness);
495
+ const commitsPart = freshness.commitsSince === null
496
+ ? "an unknown number of commits (history was rewritten since the map was built)"
497
+ : freshness.commitsSince === 0
498
+ ? "0 commits"
499
+ : `${freshness.commitsSince} commit(s)`;
500
+ const filesPart = total === 0
501
+ ? "no indexed file is known to have changed"
502
+ : `${total} indexed file(s) changed since the map was built` +
503
+ (shown.length > 0 ? ` — including ${shown.join(", ")}${total > shown.length ? ", …" : ""}` : "");
504
+ return `The code map is behind the current code: ${commitsPart} since it was built. ${filesPart}.`;
505
+ }
506
+ /** Both halves of the lane "map-freshness" disclosure, shared by every
507
+ * envelope-building function in this file (see `RenderOptions.autoNotes`/
508
+ * `.freshness`'s own docs). Ordered ahead of everything else these
509
+ * functions add — a caller needs to know the map just changed, or is
510
+ * stale, before it needs any other caveat. */
511
+ function freshnessCrossCuttingNotes(options) {
512
+ const note = freshnessDisclosure(options.freshness);
513
+ return [...(options.autoNotes ?? []), ...(note === undefined ? [] : [note])];
514
+ }
429
515
  export function renderAnswer(tool, answer, options) {
430
516
  const { result, nameLevel } = answer;
431
517
  const state = answer.state ?? "ok";
@@ -495,6 +581,12 @@ export function renderAnswer(tool, answer, options) {
495
581
  ? []
496
582
  : [discardedArgsNote(options.discardedArgs)]),
497
583
  ];
584
+ // Lane "map-freshness" items 1-3: an automatic build/refresh note (if one
585
+ // ran before this call) and the freshness disclosure itself, both ahead of
586
+ // every other disclosure — a caller needs to know the map just changed, or
587
+ // is stale, before it needs anything else this reply does not cover. See
588
+ // `freshnessCrossCuttingNotes` above.
589
+ const crossCuttingNotes = freshnessCrossCuttingNotes(options);
498
590
  // B10 — minted by the caller before this call, so it is threaded through
499
591
  // rather than generated here; a fallback exists only for the direct callers
500
592
  // (tests) that have no session id sequence to draw from. See `callId`'s own
@@ -516,6 +608,7 @@ export function renderAnswer(tool, answer, options) {
516
608
  irSchemaVersion: result.stamp.irSchemaVersion,
517
609
  resolutionFloor,
518
610
  reliabilityCap: cap,
611
+ freshness: freshnessField(result.stamp.commitSha, options.freshness),
519
612
  },
520
613
  truncated: fitTruncation ?? (!result.truncated ? null : (answer.truncatedDetail ?? null)),
521
614
  refusals: answer.refusalSummary ?? null,
@@ -523,8 +616,12 @@ export function renderAnswer(tool, answer, options) {
523
616
  // The fit's own notes go first among the disclosures it added, ahead of
524
617
  // the standing reliability sentence, for the same reason `narrate` puts
525
618
  // disclosures last: what is specific to this call must not be buried
526
- // under what is true of every call.
527
- disclosures: extraNotes.length === 0 ? disclosures : [...result.notes, ...extraNotes, ...disclosures.slice(result.notes.length)],
619
+ // under what is true of every call. `crossCuttingNotes` goes ahead of
620
+ // even that — see its own doc above.
621
+ disclosures: [
622
+ ...crossCuttingNotes,
623
+ ...(extraNotes.length === 0 ? disclosures : [...result.notes, ...extraNotes, ...disclosures.slice(result.notes.length)]),
624
+ ],
528
625
  configStale: options.configDrift?.stale ?? false,
529
626
  reportCategory: deriveEnvelopeCategory(options.toolTier, state, resolutionFloor, nameLevel, answer.runtimeEvidence),
530
627
  existenceCategory: deriveEnvelopeExistence(options.toolTier, state, answer.runtimeEvidence),
@@ -682,6 +779,7 @@ export function renderRefusedInput(tool, message, options) {
682
779
  irSchemaVersion: stamp?.irSchemaVersion ?? 0,
683
780
  resolutionFloor: null,
684
781
  reliabilityCap: "C",
782
+ freshness: freshnessField(stamp?.commitSha ?? null, options.freshness),
685
783
  },
686
784
  truncated: null,
687
785
  refusals: null,
@@ -743,6 +841,7 @@ export function renderFailed(tool, message, options, headline) {
743
841
  irSchemaVersion: stamp?.irSchemaVersion ?? 0,
744
842
  resolutionFloor: null,
745
843
  reliabilityCap: "C",
844
+ freshness: freshnessField(stamp?.commitSha ?? null, options.freshness),
746
845
  },
747
846
  truncated: null,
748
847
  refusals: null,
@@ -795,6 +894,7 @@ export function renderHandshake(tool, token, willDo, options) {
795
894
  // whether this pending action has been confirmed yet.
796
895
  resolutionFloor: null,
797
896
  reliabilityCap: "C",
897
+ freshness: freshnessField(stamp?.commitSha ?? null, options.freshness),
798
898
  },
799
899
  truncated: null,
800
900
  refusals: null,
@@ -842,6 +942,7 @@ export function renderTimedOut(tool, options) {
842
942
  irSchemaVersion: stamp?.irSchemaVersion ?? 0,
843
943
  resolutionFloor: null,
844
944
  reliabilityCap: "C",
945
+ freshness: freshnessField(stamp?.commitSha ?? null, options.freshness),
845
946
  },
846
947
  truncated: null,
847
948
  refusals: null,
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,iBAAiB,IAAI,uBAAuB,EAC5C,cAAc,EACd,qBAAqB,EACrB,cAAc,IAAI,oBAAoB,GAGvC,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAMnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,UAAU,CAAU,CAAC;AAkB9D,MAAM,UAAU,GAAe;IAC7B,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,YAAY;IACzB,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AA8FF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AA4KtC,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E,yEAAyE;AACzE,SAAS,QAAQ,CAAC,MAA+B;IAC/C,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA4B;IAC7D,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,wBAAwB;IAC/B,WAAW,EACT,uEAAuE;QACvE,2EAA2E;QAC3E,8CAA8C;IAChD,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;QAC3E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,wDAAwD;SACtE;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,sFAAsF;gBACtF,oEAAoE;SACvE;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC;YACxB,WAAW,EACT,uEAAuE;gBACvE,wEAAwE;gBACxE,wEAAwE;gBACxE,4BAA4B;SAC/B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC;YACvB,WAAW,EAAE,kDAAkD;SAChE;QACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;QAC/E,IAAI,EAAE;YACJ,WAAW,EACT,wEAAwE;gBACxE,6DAA6D;gBAC7D,iEAAiE;SACpE;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2BAA2B;YACxC,UAAU,EAAE;gBACV,SAAS,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBACvC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBACrC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACpC,eAAe,EAAE;oBACf,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBACxD,WAAW,EACT,kEAAkE;wBAClE,oEAAoE;wBACpE,mBAAmB;iBACtB;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC;oBAC9B,WAAW,EACT,iEAAiE;wBACjE,oEAAoE;wBACpE,iBAAiB;iBACpB;gBACD,SAAS,EAAE,QAAQ,CAAC;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qEAAqE;wBACrE,iEAAiE;wBACjE,8BAA8B;oBAChC,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;4BACtC,WAAW,EACT,4DAA4D;gCAC5D,iEAAiE;gCACjE,gEAAgE;gCAChE,sDAAsD;yBACzD;wBACD,YAAY,EAAE,QAAQ,CAAC;4BACrB,IAAI,EAAE,SAAS;4BACf,WAAW,EACT,+DAA+D;gCAC/D,6DAA6D;gCAC7D,iEAAiE;yBACpE,CAAC;wBACF,mBAAmB,EAAE,QAAQ,CAAC;4BAC5B,IAAI,EAAE,SAAS;4BACf,WAAW,EACT,gEAAgE;gCAChE,0DAA0D;yBAC7D,CAAC;qBACH;oBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,qBAAqB,CAAC;iBAC5D,CAAC;aACH;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,CAAC;SACxG;QACD,SAAS,EAAE,QAAQ,CAAC;YAClB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBACpE,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;aACnC;YACD,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;SACrC,CAAC;QACF,QAAQ,EAAE,QAAQ,CAAC;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;aACpF;YACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;SAC1C,CAAC;QACF,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC7B;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;SACnC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW,EACT,kEAAkE;gBAClE,oDAAoD;SACvD;QACD,WAAW,EAAE;YACX,IAAI,EAAE,SAAS;YACf,WAAW,EACT,iEAAiE;gBACjE,kEAAkE;gBAClE,sEAAsE;gBACtE,oEAAoE;gBACpE,2BAA2B;SAC9B;QACD,cAAc,EAAE;YACd,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC;YAC7D,WAAW,EACT,oEAAoE;gBACpE,yEAAyE;gBACzE,6EAA6E;SAChF;QACD,iBAAiB,EAAE;YACjB,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC;YAC7D,WAAW,EACT,yEAAyE;gBACzE,0EAA0E;gBAC1E,yEAAyE;gBACzE,0EAA0E;gBAC1E,uEAAuE;gBACvE,sDAAsD;SACzD;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,oEAAoE;YACjF,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;gBAC1C,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;gBACnD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE;gBACrD,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;aACvD;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,CAAC;SAC5E;KACF;IACD,2EAA2E;IAC3E,wEAAwE;IACxE,2EAA2E;IAC3E,QAAQ,EAAE;QACR,MAAM;QACN,aAAa;QACb,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;QACN,OAAO;QACP,WAAW;QACX,UAAU;QACV,QAAQ;QACR,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,mBAAmB;QACnB,YAAY;KACb;CACF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA4B;IACxD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EACT,qEAAqE;QACrE,iEAAiE;IACnE,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC5B;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;CACxC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA4B;IACzD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;CACnD,CAAC;AAEF,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;;iFAGiF;AACjF,SAAS,iBAAiB,CAAC,SAA4B;IACrD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,CACL,sBAAsB,KAAK,mEAAmE;QAC9F,iEAAiE,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,+BAA+B;QAC/J,+FAA+F,CAChG,CAAC;AACJ,CAAC;AAiGD;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,IAAc,EACd,KAAkB,EAClB,eAA8B,EAC9B,SAAkB,EAClB,SAAwC;IAExC,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IACjD,OAAO,oBAAoB,CAAC;QAC1B,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,cAAc;QACd,kBAAkB,EAAE,SAAS,KAAK,SAAS;QAC3C,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,uBAAuB,EAAE,KAAK;QAC9B,sBAAsB,EAAE,SAAS,EAAE,sBAAsB,IAAI,CAAC;QAC9D,yEAAyE;QACzE,uEAAuE;QACvE,0DAA0D;QAC1D,UAAU,EAAE,CAAC,eAAe,IAAI,CAAC,CAAoB;QACrD,SAAS;QACT,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC,QAAQ,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,uBAAuB,CAC9B,IAAc,EACd,KAAkB,EAClB,SAAwC;IAExC,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpF,OAAO,uBAAuB,CAAC;QAC7B,kBAAkB,EAAE,SAAS,KAAK,SAAS;QAC3C,uBAAuB,EAAE,KAAK;QAC9B,sBAAsB,EAAE,SAAS,EAAE,sBAAsB,IAAI,CAAC;KAC/D,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,OAAsB;IACxC,OAAO,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QACzE,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CACrB,SAAwB,EACxB,SAAqC;IAErC,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;IACzG,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,YAAY,EAAE,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;QAC3E,mBAAmB,EAAE,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;KAC1F,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAAC,SAAqC;IAChE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChF,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CACL,4FAA4F;YAC5F,yCAAyC,CAC1C,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,WAAW,GACf,SAAS,CAAC,YAAY,KAAK,IAAI;QAC7B,CAAC,CAAC,8EAA8E;QAChF,CAAC,CAAC,SAAS,CAAC,YAAY,KAAK,CAAC;YAC5B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,GAAG,SAAS,CAAC,YAAY,YAAY,CAAC;IAC9C,MAAM,SAAS,GACb,KAAK,KAAK,CAAC;QACT,CAAC,CAAC,0CAA0C;QAC5C,CAAC,CAAC,GAAG,KAAK,kDAAkD;YAC1D,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvG,OAAO,4CAA4C,WAAW,wBAAwB,SAAS,GAAG,CAAC;AACrG,CAAC;AAED;;;;+CAI+C;AAC/C,SAAS,0BAA0B,CAAC,OAAsB;IACxD,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,MAAqB,EACrB,OAAsB;IAEtB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;IAEnC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,GAAG,IAAI,kFAAkF;YACvF,mFAAmF;YACnF,yCAAyC,CAC5C,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,eAAe,CACvB,GAAG,IAAI,cAAc,KAAK,oEAAoE;YAC5F,8FAA8F;YAC9F,+BAA+B,CAClC,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,oEAAoE;IACpE,iEAAiE;IACjE,0EAA0E;IAC1E,kEAAkE;IAClE,uEAAuE;IACvE,iEAAiE;IACjE,IAAI,uBAAuB,GAAkB,IAAI,CAAC;IAClD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC7D,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,YAAY,EAAE,CAAC;YAC7C,MAAM,IAAI,eAAe,CACvB,GAAG,IAAI,kFAAkF;gBACvF,sFAAsF;gBACtF,kEAAkE,CACrE,CAAC;QACJ,CAAC;QACD,uBAAuB;YACrB,wFAAwF;gBACxF,kCAAkC,CAAC;IACvC,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;IACrD,MAAM,GAAG,GAAG,cAAc,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACvD,6EAA6E;IAC7E,2EAA2E;IAC3E,gEAAgE;IAChE,MAAM,WAAW,GAAG,qBAAqB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG;QAClB,GAAG,MAAM,CAAC,KAAK;QACf,2EAA2E;QAC3E,mEAAmE;QACnE,GAAG,UAAU,CAAC,OAAO,CAAC;QACtB,GAAG,CAAC,uBAAuB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;QACtE,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,KAAK;YAChE,CAAC,CAAC,WAAW,CAAC,KAAK;YACnB,CAAC,CAAC,WAAW,CAAC,IAAI;QACpB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC;YAC/B,CAAC,CAAC;gBACE,gDAAgD,MAAM,CAAC,KAAK,CAAC,YAAY,YAAY;oBACnF,wEAAwE;aAC3E;YACH,CAAC,CAAC,EAAE,CAAC;QACP,6EAA6E;QAC7E,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,sCAAsC;QACtC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC;YAC5B,CAAC,CAAC,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,SAAS,qCAAqC,CAAC;YACnF,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9E,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;YAC3E,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KAChD,CAAC;IAEF,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,yEAAyE;IACzE,sCAAsC;IACtC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAE9D,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,+CAA+C;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;IAE9C,MAAM,KAAK,GAAG,CACZ,IAAc,EACd,UAA6B,EAC7B,aAAsC,EACnB,EAAE,CAAC,CAAC;QACvB,IAAI;QACJ,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM;QACN,KAAK;QACL,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI;QACJ,KAAK,EAAE;YACL,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;YACjC,OAAO,EACL,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI;gBAChC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;YACvD,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe;YAC7C,eAAe;YACf,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;SACrE;QACD,SAAS,EAAE,aAAa,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC;QACzF,QAAQ,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;QACvC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QAClE,wEAAwE;QACxE,wEAAwE;QACxE,qEAAqE;QACrE,sEAAsE;QACtE,qCAAqC;QACrC,WAAW,EAAE;YACX,GAAG,iBAAiB;YACpB,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;SACzH;QACD,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,KAAK;QAChD,cAAc,EAAE,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC;QACnH,iBAAiB,EAAE,uBAAuB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC;QAC3F,UAAU,EAAE,UAAU;KACvB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,CAAC,QAA2B,EAAkB,EAAE,CAAC,CAAC;QAC9D,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,iBAAiB,EAAE,QAA8C;KAClE,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,eAAe,CAAC;IACzD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO;QAAE,OAAO,QAAQ,CAAC;IAErF,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,EAAE,MAAM,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,eAAe,CACvB,GAAG,IAAI,qFAAqF;gBAC1F,0FAA0F;gBAC1F,4CAA4C,CAC/C,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO;YAAE,MAAM;IACvC,CAAC;IACD,0EAA0E;IAC1E,yEAAyE;IACzE,uCAAuC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,QAAwB;IACtC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,gFAAgF;AAChF,SAAS,MAAM,CAAC,QAAwB;IACtC,OAAQ,QAAQ,CAAC,iBAA+C,CAAC,IAAI,CAAC;AACxE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,OAAO,CAAC,QAAwB;IACvC,MAAM,KAAK,GAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QAC1D,KAAK,CAAC,IAAI,CACR,EAAE,EACF,KAAK,QAAQ,CAAC,KAAK,MAAM;YACvB,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS;gBAC3B,CAAC,CAAC,iEAAiE;gBACnE,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ;oBAC3B,CAAC,CAAC,wDAAwD;oBAC1D,CAAC,CAAC,2DAA2D,CAAC,CACrE,CAAC;IACJ,CAAC;SAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,gFAAgF,CAAC,CAAC;IACnG,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,6EAA6E;IAC7E,uEAAuE;IACvE,0EAA0E;IAC1E,2EAA2E;IAC3E,qDAAqD;IACrD,MAAM,KAAK,GACT,QAAQ,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI;QAC/B,CAAC,CAAC,6DAA6D;QAC/D,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,KAAK,IAAI;YACvC,CAAC,CAAC,YAAY,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;gBACnD,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5E,iGAAiG;YACnG,CAAC,CAAC,YAAY,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;gBACnD,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5E,uBAAuB,QAAQ,CAAC,KAAK,CAAC,eAAe,yBAAyB;gBAC9E,qBAAqB,QAAQ,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAEtB,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,kCAAkC,CAAC,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,OAAe;IAC3D,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,OAAO,EAAE,EAAE,CAAC;QACxD,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;QACrD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,OAAe,EACf,OAAsB;IAEtB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,MAAM,QAAQ,GAAyB;QACrC,IAAI;QACJ,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE;QACtC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,QAAQ,EAAE,GAAG,IAAI,mBAAmB,OAAO,EAAE;QAC7C,IAAI,EAAE,IAAI;QACV,KAAK,EAAE;YACL,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,qEAAqE;YACrE,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,IAAI;YACnC,OAAO,EAAE,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;YAC7H,eAAe,EAAE,KAAK,EAAE,eAAe,IAAI,CAAC;YAC5C,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC;SACvE;QACD,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QAClE,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9H,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,KAAK;QAChD,gEAAgE;QAChE,wEAAwE;QACxE,sEAAsE;QACtE,uEAAuE;QACvE,wDAAwD;QACxD,cAAc,EAAE,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB;QAC3E,kFAAkF;QAClF,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,UAAU;KACvB,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,iBAAiB,EAAE,QAA8C;QACjE,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,OAAe,EACf,OAAsB,EACtB,QAAiB;IAEjB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,MAAM,QAAQ,GAAyB;QACrC,IAAI;QACJ,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE;QACtC,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,QAAQ,EAAE,QAAQ,IAAI,GAAG,IAAI,UAAU;QACvC,IAAI,EAAE,IAAI;QACV,KAAK,EAAE;YACL,oEAAoE;YACpE,wEAAwE;YACxE,uEAAuE;YACvE,0DAA0D;YAC1D,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,IAAI;YACnC,OAAO,EAAE,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;YAC7H,eAAe,EAAE,KAAK,EAAE,eAAe,IAAI,CAAC;YAC5C,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC;SACvE;QACD,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QAClE,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9H,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,KAAK;QAChD,gFAAgF;QAChF,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,UAAU;KACvB,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,iBAAiB,EAAE,QAA8C;QACjE,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,KAAa,EACb,MAAc,EACd,OAAsB;IAEtB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,MAAM,QAAQ,GAAgG;QAC5G,IAAI;QACJ,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE;QACtC,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,QAAQ,EAAE,0BAA0B,MAAM,EAAE;QAC5C,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;QACtC,KAAK,EAAE;YACL,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,IAAI;YACnC,OAAO,EAAE,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;YAC7H,eAAe,EAAE,KAAK,EAAE,eAAe,IAAI,CAAC;YAC5C,qEAAqE;YACrE,mEAAmE;YACnE,+DAA+D;YAC/D,wEAAwE;YACxE,sDAAsD;YACtD,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC;SACvE;QACD,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QAClE,WAAW,EAAE;YACX,GAAG,UAAU,CAAC,OAAO,CAAC;YACtB,+BAA+B,IAAI,kCAAkC,KAAK,4BAA4B;gBACpG,sDAAsD;YACxD,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC/E;QACD,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,KAAK;QAChD,iFAAiF;QACjF,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,UAAU;KACvB,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,iBAAiB,EAAE,QAA8C;KAClE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAAsB;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,MAAM,QAAQ,GAAyB;QACrC,IAAI;QACJ,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE;QACtC,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,QAAQ,EAAE,GAAG,IAAI,aAAa;QAC9B,IAAI,EAAE,IAAI;QACV,KAAK,EAAE;YACL,kEAAkE;YAClE,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,IAAI;YACnC,OAAO,EAAE,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;YAC7H,eAAe,EAAE,KAAK,EAAE,eAAe,IAAI,CAAC;YAC5C,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC;SACvE;QACD,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QAClE,WAAW,EAAE;YACX,GAAG,UAAU,CAAC,OAAO,CAAC;YACtB,GAAG,IAAI,8BAA8B,OAAO,CAAC,OAAO,2CAA2C;gBAC7F,oEAAoE;YACtE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC/E;QACD,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,KAAK;QAChD,8DAA8D;QAC9D,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,UAAU;KACvB,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,iBAAiB,EAAE,QAA8C;QACjE,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAiCH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkDhD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED,MAAM,WAAW,SAAS;IACxB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AA8ED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAmZpE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAiCH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAwJhD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED,MAAM,WAAW,SAAS;IACxB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AA+ED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAqapE"}
package/dist/server.js CHANGED
@@ -31,8 +31,9 @@ import { TOOL_ALIASES } from "./tools/aliases.js";
31
31
  import { fail, isRequest, negotiateVersion, ok, parseMessage, ProtocolError, RPC_INTERNAL_ERROR, RPC_INVALID_PARAMS, RPC_METHOD_NOT_FOUND, } from "./protocol.js";
32
32
  import { renderAnswer, renderFailed, renderHandshake, renderRefusedInput, renderTimedOut, renderToolError, TOOL_OUTPUT_SCHEMA, } from "./render.js";
33
33
  import { createDisclosureLedger } from "./disclosure-ledger.js";
34
- import { checkConfigDrift, ConfigError } from "./session.js";
34
+ import { AUTO_REFRESH_BUDGET_MS, checkConfigDrift, checkFreshness, ConfigError } from "./session.js";
35
35
  import { TOOLS, TOOLS_BY_NAME, ToolInputError, } from "./tools/index.js";
36
+ import { analyzeTool } from "./tools/analyze.js";
36
37
  /** Every call's declared budget (§6). Fixed today; per-trigger budgets are P26/P28 work. */
37
38
  const CALL_BUDGET_MS = 15 * 60 * 1000;
38
39
  function isAbort(error) {
@@ -59,6 +60,97 @@ function readGraphStampSafely(session) {
59
60
  return undefined;
60
61
  }
61
62
  }
63
+ const NO_FRESHNESS_OUTCOME = { freshness: undefined, autoNotes: [] };
64
+ function elapsedSeconds(startedAt) {
65
+ return ((Date.now() - startedAt) / 1000).toFixed(1);
66
+ }
67
+ /**
68
+ * Lane "map-freshness" items 1-3, run once per call, ahead of `tool.run` —
69
+ * the one shared place this happens, rather than 29 separate tools each
70
+ * growing their own copy (the lane's own instruction). Builds the graph when
71
+ * it is empty, refreshes it (within a budget) when it is `behind`, and
72
+ * either way reads the freshness this call should report.
73
+ *
74
+ * Skipped entirely for `workspace`: its `analyze`/`index` verbs already are
75
+ * the build/refresh mechanism (so running this ahead of them would be a
76
+ * second, redundant build) and `link` only declares repositories. The retired
77
+ * `analyze`/`analyze_workspace` names are aliases that resolve to `workspace`
78
+ * before this runs, so they are covered by the same check. `analyzeTool` is
79
+ * imported directly: it is not registered in `TOOLS_BY_NAME` under its own
80
+ * name any more, so a by-name lookup finds nothing.
81
+ *
82
+ * Never throws: an auto-build/refresh that fails (a `ConfigError` needing
83
+ * input this call can't default, an aborted refresh, anything else) is
84
+ * caught and treated as "did not run" — the real tool call proceeds exactly
85
+ * as it would have if this had never been attempted, per the lane's own
86
+ * "keep today's named refusal" instruction. An empty graph that stays empty
87
+ * after a failed auto-build still reports `freshness: null` (never `unknown`
88
+ * or a fabricated `current`) via `freshnessField` in `render.ts`, from the
89
+ * real `commitSha` this function reads again after the attempt.
90
+ */
91
+ async function ensureFreshGraph(session, tool, ctx) {
92
+ if (tool.name === "workspace")
93
+ return NO_FRESHNESS_OUTCOME;
94
+ let stamp;
95
+ try {
96
+ stamp = session.provider().baseStamp();
97
+ }
98
+ catch {
99
+ return NO_FRESHNESS_OUTCOME;
100
+ }
101
+ // Item 2: an empty graph is built with defaults before this call answers.
102
+ // `analyzeTool.run` already calls `ctx.progress(...)` as it works, so
103
+ // reusing this call's real `ctx` (rather than a stand-in) is what "sends
104
+ // progress notifications" means here — nothing extra to wire.
105
+ if (stamp.commitSha === null) {
106
+ const startedAt = Date.now();
107
+ try {
108
+ await analyzeTool.run({}, ctx);
109
+ }
110
+ catch {
111
+ // Needs input `analyze`'s own defaults can't supply (not a git
112
+ // repository, for instance) — leave the graph empty and let the real
113
+ // tool call's own "graph is empty" refusal stand, unchanged.
114
+ }
115
+ const rebuilt = readGraphStampSafely(session);
116
+ if (rebuilt === undefined || rebuilt.commitSha === null)
117
+ return NO_FRESHNESS_OUTCOME;
118
+ return {
119
+ freshness: await checkFreshness(session),
120
+ autoNotes: [`Code map built automatically for this answer (took ${elapsedSeconds(startedAt)}s).`],
121
+ };
122
+ }
123
+ const freshness = await checkFreshness(session);
124
+ if (freshness === undefined || freshness.status !== "behind")
125
+ return { freshness, autoNotes: [] };
126
+ // Item 3: refresh within a budget. `AbortSignal.any` combines the caller's
127
+ // signal with a timeout for this attempt, and `analyze` hands it to every
128
+ // source's `prepare()`. That is the whole reach of the budget: a source
129
+ // that checks the signal abandons the refresh, one that does not (git
130
+ // history does not) runs to completion, so the budget bounds a slow
131
+ // adapter, not the refresh as a whole. It is not raced against a timer:
132
+ // an abandoned refresh left running would write the graph while the real
133
+ // tool reads it. A budget of 0 or less skips the refresh outright.
134
+ const budgetMs = session.autoRefreshBudgetMs ?? AUTO_REFRESH_BUDGET_MS;
135
+ if (budgetMs <= 0)
136
+ return { freshness, autoNotes: [] };
137
+ const refreshCtx = { ...ctx, signal: AbortSignal.any([ctx.signal, AbortSignal.timeout(budgetMs)]) };
138
+ const startedAt = Date.now();
139
+ try {
140
+ await analyzeTool.run({}, refreshCtx);
141
+ }
142
+ catch {
143
+ // Timed out, or failed outright — answer from the graph as it stood
144
+ // before this attempt. `freshness` (still `behind`) already carries its
145
+ // own disclosure downstream (`freshnessDisclosure` in `render.ts`), so
146
+ // the caller learns the map is stale even though the refresh did not run.
147
+ return { freshness, autoNotes: [] };
148
+ }
149
+ return {
150
+ freshness: await checkFreshness(session),
151
+ autoNotes: [`Code map refreshed automatically for this answer (took ${elapsedSeconds(startedAt)}s).`],
152
+ };
153
+ }
62
154
  /** A schema's own declared top-level argument names — empty when it has none, or when the
63
155
  * schema isn't the `{ properties: {...} }` shape every tool's `inputSchema` actually is. */
64
156
  function declaredTopLevelProperties(schema) {
@@ -101,8 +193,8 @@ export function isOutOfBand(line) {
101
193
  }
102
194
  }
103
195
  const SERVER_INSTRUCTIONS = "Descry reads the repository's source into a code graph and answers questions about it.\n\n" +
104
- "Call `analyze` first — every other tool queries the graph it builds, and a stale graph " +
105
- "answers about code that has changed.\n\n" +
196
+ "Call `workspace` (`{verb: \"analyze\"}`) first — every other tool queries the graph it builds, " +
197
+ "and a stale graph answers about code that has changed.\n\n" +
106
198
  "Every reply has a `state`, one of five, and they are different claims: `ok` (found " +
107
199
  "something), `empty` (looked completely, found nothing — a fact about your code), `refused` " +
108
200
  "(could not look — a fact about Descry, never about your code), `failed` (something broke) " +
@@ -132,26 +224,27 @@ const SERVER_INSTRUCTIONS = "Descry reads the repository's source into a code gr
132
224
  "make it: a name-level fact resolved at R2 or better, a shape-level fact backed by a type " +
133
225
  "checker (R3), or anything witnessed at runtime (R4, unconditional). Read the disclosures " +
134
226
  "before summarising — they say what the answer does *not* cover.\n\n" +
135
- "Coverage is a separate question from confidence: call `verification_status` with a list of " +
136
- "node ids or file paths from an earlier reply to learn which of them the graph actually " +
137
- "reached, and at what resolution, rather than assuming silence means untested. `refusal_fetch` " +
138
- "gives the graph's full ledger of things an adapter could not resolve — call it with no " +
139
- "arguments for a one-line summary and a handle, then again with that handle to page through " +
140
- "every row; never assume the summary's one exemplar is the only refusal.\n\n" +
227
+ "Coverage is a separate question from confidence: call `disclosure` with `{verb: \"coverage\", " +
228
+ "refs: [...]}` and a list of node ids or file paths from an earlier reply to learn which of " +
229
+ "them the graph actually reached, and at what resolution, rather than assuming silence means " +
230
+ "untested. `disclosure`'s `{verb: \"unresolved\"}` gives the graph's full ledger of things an " +
231
+ "adapter could not resolve — call it with no `handle` for a one-line summary and a handle, " +
232
+ "then again with that handle to page through every row; never assume the summary's one " +
233
+ "exemplar is the only refusal.\n\n" +
141
234
  "`class` on each tool (`read`, `stateful-read` or `action`) says whether it is safe to retry. " +
142
235
  "The one `action`-class tool (`questions`, when answering) takes a two-call handshake: the " +
143
236
  "first call performs nothing and returns a confirmation token; only a second call presenting " +
144
237
  "that exact token performs the write.\n\n" +
145
- "`tier` on each tool is `conclusion` for the three that already state a verdict about your " +
238
+ "`tier` on each tool is `conclusion` for the tools that already state a verdict about your " +
146
239
  "code (`validate`, `contracts`, `cross_pr` — quote their `headline` verbatim rather than " +
147
- "rephrasing it) or `evidence` for the other thirteen, which return graph facts for you to " +
240
+ "rephrasing it) or `evidence` for every other tool, which returns graph facts for you to " +
148
241
  "reason over yourself. Every reply also carries `reportCategory` — one of `confirmed`, " +
149
242
  "`strongly supported`, `unconfirmed`, `not analysable`, `unsupported`, or `null` where no " +
150
243
  "claim applies. It is `null` on every `conclusion`-tier reply (the `headline` already states " +
151
244
  "the verdict in plain words). On an `evidence`-tier reply it follows that reply's own " +
152
245
  "`resolutionFloor`: `unconfirmed` below R4, where nothing was observed, and `strongly " +
153
246
  "supported` at R4, where every hop behind the answer was witnessed in a real run — " +
154
- "`observe_runtime` and `observe_tests` are what write those edges. `confirmed` never appears " +
247
+ "`observe`'s `runtime` and `tests` verbs are what write those edges. `confirmed` never appears " +
155
248
  "here — that word is reserved for results that passed the full governance pipeline, and its " +
156
249
  "absence is honest, not a bug.\n\n" +
157
250
  "Beside it, `existenceCategory` answers a different question, and the two are not " +
@@ -284,6 +377,14 @@ export function createMcpServer(options) {
284
377
  // reply this call produces — ok, refused, failed or timed out — carries the
285
378
  // same disclosure and the same `configStale` flag, not only `analyze`'s.
286
379
  const configDrift = await checkConfigDrift(session);
380
+ // Lane "map-freshness": set for real just before `tool.run` (once `ctx`
381
+ // exists), by `ensureFreshGraph`. Declared here, ahead of every early
382
+ // `renderOptions()` call below (an `"arguments"`-shape refusal, an
383
+ // unknown-argument refusal), so those calls see the same
384
+ // `NO_FRESHNESS_OUTCOME` default `configDrift` above already reads —
385
+ // never a "used before declaration" on a call site that runs before
386
+ // `ctx` does.
387
+ let freshnessOutcome = NO_FRESHNESS_OUTCOME;
287
388
  const renderOptions = () => ({
288
389
  toolVersion: tool.version,
289
390
  toolClass: tool.class,
@@ -293,6 +394,8 @@ export function createMcpServer(options) {
293
394
  disclosureLedger,
294
395
  callId,
295
396
  configDrift,
397
+ ...(freshnessOutcome.freshness === undefined ? {} : { freshness: freshnessOutcome.freshness }),
398
+ ...(freshnessOutcome.autoNotes.length === 0 ? {} : { autoNotes: freshnessOutcome.autoNotes }),
296
399
  ...(alias === undefined ? {} : { aliasedFrom: name, aliasedTo: tool.name }),
297
400
  });
298
401
  const rawArgs = params["arguments"];
@@ -397,6 +500,13 @@ export function createMcpServer(options) {
397
500
  ...(graphStamp === undefined ? {} : { graphStamp }),
398
501
  });
399
502
  }
503
+ // Lane "map-freshness" items 1-3: build an empty graph, refresh a
504
+ // `behind` one within budget, and read the freshness this call should
505
+ // report — once, here, ahead of the real work, not inside `tool.run`
506
+ // itself. After the handshake check (a mint does no I/O, so nothing to
507
+ // ensure yet) and before `tool.run` (which is what needs a fresh graph
508
+ // to answer from).
509
+ freshnessOutcome = await ensureFreshGraph(session, tool, ctx);
400
510
  const outcome = await tool.run(dispatch.args, ctx);
401
511
  // Cancelled while it was running, and it finished anyway — the client
402
512
  // stopped listening for this id, so the answer is dropped rather than