@remnic/core 9.69.24 → 9.69.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 (136) hide show
  1. package/dist/access-admin-ops-surface.d.ts +1 -1
  2. package/dist/access-admin-ops-surface.js +4 -4
  3. package/dist/access-authorization-probe.d.ts +1 -1
  4. package/dist/access-authorization-probe.js +5 -5
  5. package/dist/access-boundary.d.ts +1 -1
  6. package/dist/access-boundary.js +4 -4
  7. package/dist/access-cli.js +29 -29
  8. package/dist/access-extraction-force-flush.d.ts +1 -1
  9. package/dist/access-extraction-force-flush.js +4 -4
  10. package/dist/access-http-briefing.d.ts +1 -1
  11. package/dist/access-http-briefing.js +5 -5
  12. package/dist/access-http-lcm-compaction.d.ts +1 -1
  13. package/dist/access-http-lifecycle-flush.d.ts +1 -1
  14. package/dist/access-http-offline-stream.d.ts +1 -1
  15. package/dist/access-http-query.js +4 -4
  16. package/dist/access-http.d.ts +2 -2
  17. package/dist/access-http.js +16 -16
  18. package/dist/access-identity-continuity-surface.js +4 -4
  19. package/dist/access-lcm-surface.d.ts +1 -1
  20. package/dist/access-lcm-surface.js +4 -4
  21. package/dist/access-mcp.d.ts +1 -1
  22. package/dist/access-mcp.js +11 -11
  23. package/dist/access-namespace-preflight.js +4 -4
  24. package/dist/access-observe-write-surface.d.ts +1 -1
  25. package/dist/access-observe-write-surface.js +4 -4
  26. package/dist/access-operations-batch.js +5 -5
  27. package/dist/access-operations.d.ts +6 -6
  28. package/dist/access-operations.js +10 -10
  29. package/dist/access-recall-concurrency.d.ts +1 -1
  30. package/dist/access-recall-concurrency.js +4 -4
  31. package/dist/access-recall-response.d.ts +1 -1
  32. package/dist/access-recall-response.js +4 -4
  33. package/dist/access-recall-surface.d.ts +1 -1
  34. package/dist/access-recall-surface.js +4 -4
  35. package/dist/access-schema.d.ts +91 -91
  36. package/dist/access-service-helpers.d.ts +1 -1
  37. package/dist/access-service.d.ts +1 -1
  38. package/dist/access-service.js +4 -4
  39. package/dist/access-surface-catalog.d.ts +1 -1
  40. package/dist/access-surface-catalog.js +6 -6
  41. package/dist/active-recall.js +4 -4
  42. package/dist/buffer.js +4 -4
  43. package/dist/{chunk-OGUKSLYZ.js → chunk-2OO6TPQG.js} +2 -2
  44. package/dist/{chunk-66OJSCI6.js → chunk-3GGUMRS4.js} +2 -2
  45. package/dist/{chunk-PX4UMA5Z.js → chunk-3NYTZE5G.js} +2 -2
  46. package/dist/{chunk-FVOP3NT7.js → chunk-5IEV3YBY.js} +2 -2
  47. package/dist/{chunk-2ITE4C2Z.js → chunk-6LLLREDJ.js} +2 -2
  48. package/dist/{chunk-K7724CH2.js → chunk-6VF3R3XQ.js} +2 -2
  49. package/dist/{chunk-56Y6EKZN.js → chunk-CGJV2YIY.js} +2 -2
  50. package/dist/{chunk-KB2G2I6Q.js → chunk-DDB3S53L.js} +2 -2
  51. package/dist/{chunk-KTWG7CNY.js → chunk-EWCNCQOU.js} +2 -2
  52. package/dist/{chunk-L7Z57SID.js → chunk-FHYVNJBN.js} +2 -2
  53. package/dist/{chunk-33JKYLPX.js → chunk-GGRD3JEH.js} +2 -2
  54. package/dist/{chunk-37KUQPX4.js → chunk-GNMELJGM.js} +2 -2
  55. package/dist/{chunk-2IOHTUP3.js → chunk-GRCREL6Q.js} +3 -3
  56. package/dist/{chunk-H54VWRPS.js → chunk-JJ4XK25O.js} +2 -2
  57. package/dist/{chunk-SVXJLDDC.js → chunk-KH6PK4EQ.js} +5 -5
  58. package/dist/{chunk-NLYVH66G.js → chunk-MT47LH5L.js} +2 -2
  59. package/dist/{chunk-SMWTZLHE.js → chunk-MZLV2OJE.js} +9 -9
  60. package/dist/{chunk-ICKJ52PE.js → chunk-OU4K7IFP.js} +3 -3
  61. package/dist/{chunk-27QVNSQ3.js → chunk-QBH7M7Q4.js} +2 -2
  62. package/dist/{chunk-O6ZNNVSP.js → chunk-RX3SC4C5.js} +2 -2
  63. package/dist/{chunk-RJYJ7KR7.js → chunk-SO4IYSGT.js} +12 -12
  64. package/dist/{chunk-C553ZTLF.js → chunk-THQTFTQS.js} +8 -8
  65. package/dist/{chunk-X5K5TAQZ.js → chunk-V4ZBR7CW.js} +2 -2
  66. package/dist/{chunk-P6FHFTZ7.js → chunk-XPFC6D45.js} +12 -7
  67. package/dist/chunk-XPFC6D45.js.map +1 -0
  68. package/dist/{chunk-ZIW5JVRM.js → chunk-XTJC7CVX.js} +2 -2
  69. package/dist/{chunk-Z6COGHHN.js → chunk-Y2MZGBOY.js} +2 -2
  70. package/dist/{chunk-H4SEGIZY.js → chunk-ZO2AZIRT.js} +2 -2
  71. package/dist/{chunk-UNNPNBR2.js → chunk-ZUNNRGJX.js} +4 -4
  72. package/dist/{chunk-BLJWYCNO.js → chunk-ZY4DSWZ5.js} +2 -2
  73. package/dist/{cli-DD0P-lu8.d.ts → cli-B_YwqoIr.d.ts} +1 -1
  74. package/dist/cli.d.ts +2 -2
  75. package/dist/cli.js +22 -22
  76. package/dist/config.js +4 -4
  77. package/dist/deep-recall-http-glue.d.ts +1 -1
  78. package/dist/deep-recall-mcp-tools.d.ts +1 -1
  79. package/dist/external-wiki-access.d.ts +1 -1
  80. package/dist/external-wiki-access.js +5 -5
  81. package/dist/external-wiki-mcp-tools.d.ts +1 -1
  82. package/dist/extraction.js +5 -5
  83. package/dist/index.d.ts +685 -681
  84. package/dist/index.js +29 -29
  85. package/dist/location/index.js +5 -5
  86. package/dist/mcp-memory-inspector-app.d.ts +1 -1
  87. package/dist/memory-subject-cli.d.ts +1 -1
  88. package/dist/memory-subject.d.ts +1 -1
  89. package/dist/operator-toolkit.js +5 -5
  90. package/dist/orchestration/maintenance.js +6 -6
  91. package/dist/orchestrator.js +29 -29
  92. package/dist/{public-http-C4i8Opxc.d.ts → public-http-D6d4W8x-.d.ts} +1 -1
  93. package/dist/resume-bundles.js +5 -5
  94. package/dist/schemas.d.ts +176 -176
  95. package/dist/shared-context/manager.d.ts +6 -6
  96. package/dist/source-agent-qualifier.js +4 -4
  97. package/dist/standup/build.js +2 -2
  98. package/dist/support-passport/index.d.ts +4 -4
  99. package/dist/support-passport/index.js +7 -7
  100. package/dist/transfer/types.d.ts +78 -78
  101. package/dist/who-knows-cli.d.ts +1 -1
  102. package/dist/who-knows.d.ts +1 -1
  103. package/package.json +2 -2
  104. package/src/activity/digest.test.ts +34 -0
  105. package/src/activity/digest.ts +34 -8
  106. package/src/activity/timeline/weekly.test.ts +29 -0
  107. package/dist/chunk-P6FHFTZ7.js.map +0 -1
  108. package/dist/{access-service-DWdY9Mlk.d.ts → access-service-Cv8Rizo0.d.ts} +64 -64
  109. /package/dist/{chunk-OGUKSLYZ.js.map → chunk-2OO6TPQG.js.map} +0 -0
  110. /package/dist/{chunk-66OJSCI6.js.map → chunk-3GGUMRS4.js.map} +0 -0
  111. /package/dist/{chunk-PX4UMA5Z.js.map → chunk-3NYTZE5G.js.map} +0 -0
  112. /package/dist/{chunk-FVOP3NT7.js.map → chunk-5IEV3YBY.js.map} +0 -0
  113. /package/dist/{chunk-2ITE4C2Z.js.map → chunk-6LLLREDJ.js.map} +0 -0
  114. /package/dist/{chunk-K7724CH2.js.map → chunk-6VF3R3XQ.js.map} +0 -0
  115. /package/dist/{chunk-56Y6EKZN.js.map → chunk-CGJV2YIY.js.map} +0 -0
  116. /package/dist/{chunk-KB2G2I6Q.js.map → chunk-DDB3S53L.js.map} +0 -0
  117. /package/dist/{chunk-KTWG7CNY.js.map → chunk-EWCNCQOU.js.map} +0 -0
  118. /package/dist/{chunk-L7Z57SID.js.map → chunk-FHYVNJBN.js.map} +0 -0
  119. /package/dist/{chunk-33JKYLPX.js.map → chunk-GGRD3JEH.js.map} +0 -0
  120. /package/dist/{chunk-37KUQPX4.js.map → chunk-GNMELJGM.js.map} +0 -0
  121. /package/dist/{chunk-2IOHTUP3.js.map → chunk-GRCREL6Q.js.map} +0 -0
  122. /package/dist/{chunk-H54VWRPS.js.map → chunk-JJ4XK25O.js.map} +0 -0
  123. /package/dist/{chunk-SVXJLDDC.js.map → chunk-KH6PK4EQ.js.map} +0 -0
  124. /package/dist/{chunk-NLYVH66G.js.map → chunk-MT47LH5L.js.map} +0 -0
  125. /package/dist/{chunk-SMWTZLHE.js.map → chunk-MZLV2OJE.js.map} +0 -0
  126. /package/dist/{chunk-ICKJ52PE.js.map → chunk-OU4K7IFP.js.map} +0 -0
  127. /package/dist/{chunk-27QVNSQ3.js.map → chunk-QBH7M7Q4.js.map} +0 -0
  128. /package/dist/{chunk-O6ZNNVSP.js.map → chunk-RX3SC4C5.js.map} +0 -0
  129. /package/dist/{chunk-RJYJ7KR7.js.map → chunk-SO4IYSGT.js.map} +0 -0
  130. /package/dist/{chunk-C553ZTLF.js.map → chunk-THQTFTQS.js.map} +0 -0
  131. /package/dist/{chunk-X5K5TAQZ.js.map → chunk-V4ZBR7CW.js.map} +0 -0
  132. /package/dist/{chunk-ZIW5JVRM.js.map → chunk-XTJC7CVX.js.map} +0 -0
  133. /package/dist/{chunk-Z6COGHHN.js.map → chunk-Y2MZGBOY.js.map} +0 -0
  134. /package/dist/{chunk-H4SEGIZY.js.map → chunk-ZO2AZIRT.js.map} +0 -0
  135. /package/dist/{chunk-UNNPNBR2.js.map → chunk-ZUNNRGJX.js.map} +0 -0
  136. /package/dist/{chunk-BLJWYCNO.js.map → chunk-ZY4DSWZ5.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/activity/digest.ts"],"sourcesContent":["/**\n * Deterministic screen-activity day-digest renderer (issue #1899).\n *\n * Renders a day's snapshots into markdown with YAML frontmatter, placed at\n * `<memoryDir>/activity/<date>.md` — outside the memory scan roots but inside\n * the QMD collection root (searchable, never auto-recalled). No LLM: the body\n * is a pure, byte-identical function of its inputs so an unchanged day skips\n * rewrite by contentHash. Day bucketing is DST-aware and half-open\n * [start, end) (AGENTS.md §23); sort keys are total with stable tiebreakers\n * (§12).\n */\n\nimport { createHash } from \"node:crypto\";\nimport path from \"node:path\";\n\nimport type { ActivityDayDigest, ActivityDayMeta, ActivitySnapshot } from \"./types.js\";\n\nexport const ACTIVITY_DIGEST_FORMAT_VERSION = 1;\nexport const ACTIVITY_DIR_NAME = \"activity\";\n\n/** Attribute at most this much dwell to a single snapshot (idle gaps capped). */\nconst MAX_DWELL_MS = 15 * 60_000;\n/** Notable-excerpt caps. */\nconst NOTABLE_MAX_WINDOWS = 10;\nconst NOTABLE_EXCERPT_CHARS = 280;\n\nconst DATE_PATTERN = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nexport function isValidActivityDate(date: string): boolean {\n if (typeof date !== \"string\" || !DATE_PATTERN.test(date)) return false;\n // Reject impossible calendar days (e.g. 2026-02-30, 2026-13-01): the UTC\n // round-trip must reproduce the same Y-M-D, else Date normalized an overflow.\n const parsed = new Date(`${date}T00:00:00Z`);\n return Number.isFinite(parsed.getTime()) && parsed.toISOString().slice(0, 10) === date;\n}\n\nexport function activityDigestPath(memoryDir: string, date: string): string {\n if (!isValidActivityDate(date)) {\n // Never interpolate an unvalidated date into a filesystem path (a `../`\n // would escape <memoryDir>/activity/). Reject loudly.\n throw new RangeError(`Invalid activity date \"${date}\"; expected YYYY-MM-DD.`);\n }\n return path.join(memoryDir, ACTIVITY_DIR_NAME, `${date}.md`);\n}\n\n// ── DST-aware local-day window ──────────────────────────────────────────────\n\nexport function timezoneOffsetIso(instant: Date, timezone: string): string {\n const parts = new Intl.DateTimeFormat(\"en-US\", {\n timeZone: timezone,\n timeZoneName: \"longOffset\",\n }).formatToParts(instant);\n const name = parts.find((part) => part.type === \"timeZoneName\")?.value ?? \"GMT\";\n const match = name.match(/GMT([+-]\\d{2}:\\d{2})?/);\n return match?.[1] ?? \"+00:00\";\n}\n\nexport function assertValidTimezone(timezone: string): void {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: timezone });\n } catch {\n throw new RangeError(`Invalid IANA timezone \"${timezone}\".`);\n }\n}\n\nfunction zonedDayStartIso(date: string, timezone: string): string {\n // The first UTC instant whose local wall-clock is this date at 00:00. Probe\n // several instants across the day to collect every offset in play; keep an\n // offset only if constructing local midnight with it lands back on that same\n // offset (so it is genuinely local midnight, not a wall-clock that never\n // occurred), then take the EARLIEST such instant — the FIRST 00:00 across a\n // DST fall-back that repeats local midnight.\n // Probe the previous UTC day too: for zones east of UTC the requested date's\n // UTC instants all fall after local midnight, so the pre-transition offset\n // valid at the real local 00:00 is only observable on the prior UTC day.\n const prevDate = shiftIsoDate(date, -1);\n const probeOffsets = new Set(\n [\n `${prevDate}T12:00:00Z`,\n `${prevDate}T23:00:00Z`,\n `${date}T00:00:00Z`,\n `${date}T12:00:00Z`,\n `${date}T23:00:00Z`,\n ].map((iso) => timezoneOffsetIso(new Date(iso), timezone)),\n );\n let best: number | null = null;\n for (const offset of probeOffsets) {\n const candidate = Date.parse(`${date}T00:00:00${offset}`);\n if (!Number.isFinite(candidate)) continue;\n // Reject an offset whose local midnight does not actually occur (the wall\n // clock skipped by a spring-forward): the offset in effect at the candidate\n // instant must be the same offset we used to build it.\n if (timezoneOffsetIso(new Date(candidate), timezone) !== offset) continue;\n if (best === null || candidate < best) best = candidate;\n }\n if (best === null) {\n // Local midnight was skipped by a spring-forward at 00:00. Advance to the\n // first local wall-clock minute on this date that actually exists (never\n // backdating to a 00:00 that never occurred), scanning forward up to 3h.\n for (let minute = 1; minute <= 180 && best === null; minute++) {\n const hh = String(Math.floor(minute / 60)).padStart(2, \"0\");\n const mm = String(minute % 60).padStart(2, \"0\");\n for (const offset of probeOffsets) {\n const candidate = Date.parse(`${date}T${hh}:${mm}:00${offset}`);\n if (!Number.isFinite(candidate)) continue;\n if (timezoneOffsetIso(new Date(candidate), timezone) !== offset) continue;\n if (best === null || candidate < best) best = candidate;\n }\n }\n }\n if (best === null) {\n // The ENTIRE civil date was skipped — no local wall-clock time on it\n // exists (Pacific/Apia 2011-12-30 is the canonical case: the date-line\n // jump went 2011-12-29 23:59:59-10:00 → 2011-12-31 00:00:00+14:00).\n // Extending the never-backdate convention above, resolve the day start\n // to the transition instant: the earliest instant whose local calendar\n // date reaches `date`. Local date is monotone non-decreasing in the UTC\n // instant (a fall-back never crosses local midnight backwards), so\n // binary-search a 48h bracket at minute granularity. The bracket is\n // safe: `<date>T00:00Z − 24h` is always locally before `date`, and\n // `<date>T00:00Z + 24h` is always locally on/after it.\n let lo = Date.parse(`${date}T00:00:00Z`) - 24 * 3_600_000;\n let hi = lo + 48 * 3_600_000;\n while (hi - lo > 60_000) {\n const mid = lo + Math.floor((hi - lo) / 2 / 60_000) * 60_000;\n if (activityDateInTimezone(new Date(mid), timezone) >= date) hi = mid;\n else lo = mid;\n }\n best = hi;\n }\n if (best === null || !Number.isFinite(best)) {\n throw new RangeError(`activity: could not resolve a local day start for \"${date}\" in \"${timezone}\".`);\n }\n return new Date(best).toISOString();\n}\n\nfunction shiftIsoDate(date: string, days: number): string {\n const parsed = new Date(`${date}T00:00:00Z`);\n parsed.setUTCDate(parsed.getUTCDate() + days);\n return parsed.toISOString().slice(0, 10);\n}\n\nfunction nextIsoDate(date: string): string {\n return shiftIsoDate(date, 1);\n}\n\n/**\n * Half-open [start, end) UTC ISO bounds of a local day. A civil date the\n * zone skipped entirely owns no interval: the window is zero-width\n * `[transition, transition)`.\n */\nexport function activityDayWindow(date: string, timezone: string): { startUtc: string; endUtc: string } {\n if (!isValidActivityDate(date)) {\n throw new RangeError(`Invalid activity date \"${date}\"; expected a real YYYY-MM-DD day.`);\n }\n assertValidTimezone(timezone);\n const startUtc = zonedDayStartIso(date, timezone);\n const endUtc = zonedDayStartIso(nextIsoDate(date), timezone);\n // Skipped-date semantics (Pacific/Apia 2011-12-30 class): the skipped\n // date's start and the following date's start both resolve to the\n // transition instant, so the window is naturally zero-width. Keep it\n // that way: a date that never occurred contributes to no daily total\n // (daysOverlappingWeek drops zero-width days) and a connector sync for\n // it fetches nothing. Pushing the end forward to stay non-degenerate\n // would alias the next real day's interval and double-attribute every\n // card in it to two daily totals.\n return { startUtc, endUtc };\n}\n\n/**\n * The local calendar day (YYYY-MM-DD) an instant falls in for an IANA\n * timezone — the day key `activityDayWindow` buckets on. Callers that need\n * \"today\" for activity artifacts MUST use this rather than the host-local\n * date, which drifts a day near either timezone's midnight.\n */\nexport function activityDateInTimezone(instant: Date, timezone: string): string {\n try {\n const parts = new Intl.DateTimeFormat(\"en-CA\", {\n timeZone: timezone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n }).formatToParts(instant);\n const get = (type: string): string => parts.find((part) => part.type === type)?.value ?? \"\";\n return `${get(\"year\")}-${get(\"month\")}-${get(\"day\")}`;\n } catch {\n return instant.toISOString().slice(0, 10);\n }\n}\n\n// ── Rendering ───────────────────────────────────────────────────────────────\n\nfunction sortedByTime(snapshots: ActivitySnapshot[]): ActivitySnapshot[] {\n return [...snapshots].sort((a, b) => {\n // Compare by parsed instant, not raw string, so mixed valid ISO forms\n // (Z vs offset, varying precision) still order chronologically.\n const at = Date.parse(a.capturedAtUtc);\n const bt = Date.parse(b.capturedAtUtc);\n if (at !== bt && Number.isFinite(at) && Number.isFinite(bt)) return at < bt ? -1 : 1;\n const aid = a.id ?? 0;\n const bid = b.id ?? 0;\n if (aid < bid) return -1;\n if (aid > bid) return 1;\n // Unsaved snapshots (pre-store) both default to id 0; fall back to the\n // content hash (their dedup identity), then app/window, for a total order.\n if (a.contentHash !== b.contentHash) return a.contentHash < b.contentHash ? -1 : 1;\n if (a.app !== b.app) return a.app < b.app ? -1 : 1;\n if (a.windowTitle !== b.windowTitle) return a.windowTitle < b.windowTitle ? -1 : 1;\n return 0;\n });\n}\n\n/**\n * Per-snapshot dwell (gap to that machine's next snapshot, capped), scoped per\n * capture machine so an interleaved snapshot from another machine can't steal\n * or truncate a snapshot's dwell (multi-machine days).\n */\nfunction computeDwell(snapshots: ActivitySnapshot[]): Map<ActivitySnapshot, number> {\n const byMachine = new Map<string, ActivitySnapshot[]>();\n for (const snapshot of snapshots) {\n const list = byMachine.get(snapshot.machine);\n if (list === undefined) byMachine.set(snapshot.machine, [snapshot]);\n else list.push(snapshot);\n }\n const dwell = new Map<ActivitySnapshot, number>();\n for (const list of byMachine.values()) {\n const ordered = sortedByTime(list);\n for (let index = 0; index < ordered.length; index++) {\n const current = ordered[index];\n if (current === undefined) continue;\n const next = ordered[index + 1];\n let value = 0;\n if (next !== undefined) {\n const delta = Date.parse(next.capturedAtUtc) - Date.parse(current.capturedAtUtc);\n if (Number.isFinite(delta) && delta > 0) value = Math.min(delta, MAX_DWELL_MS);\n }\n dwell.set(current, value);\n }\n }\n return dwell;\n}\n\nfunction formatDurationMinutes(ms: number): string {\n return `${Math.round(ms / 60_000)}m`;\n}\n\nfunction clockHhMm(iso: string, timezone: string): string {\n const ms = Date.parse(iso);\n if (!Number.isFinite(ms)) return \"??:??\";\n const parts = new Intl.DateTimeFormat(\"en-GB\", {\n timeZone: timezone,\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false,\n }).formatToParts(new Date(ms));\n const hour = parts.find((p) => p.type === \"hour\")?.value ?? \"00\";\n const minute = parts.find((p) => p.type === \"minute\")?.value ?? \"00\";\n return `${hour}:${minute}`;\n}\n\nfunction collapseWhitespace(text: string): string {\n return text.replace(/\\s+/g, \" \").trim();\n}\n\nfunction perAppSection(ordered: ActivitySnapshot[], dwell: Map<ActivitySnapshot, number>): string {\n const totals = new Map<string, number>();\n for (const snapshot of ordered) {\n totals.set(snapshot.app, (totals.get(snapshot.app) ?? 0) + (dwell.get(snapshot) ?? 0));\n }\n const rows = [...totals.entries()].sort((a, b) => {\n if (b[1] !== a[1]) return b[1] - a[1];\n if (a[0] < b[0]) return -1;\n if (a[0] > b[0]) return 1;\n return 0;\n });\n const lines = [\"## Per-app time\", \"\"];\n if (rows.length === 0) {\n lines.push(\"_No activity recorded._\");\n } else {\n for (const [app, ms] of rows) {\n lines.push(`- ${app}: ${formatDurationMinutes(ms)}`);\n }\n }\n return lines.join(\"\\n\");\n}\n\ninterface TimelineSpan {\n startIso: string;\n machine: string;\n app: string;\n windowTitle: string;\n browserUrl?: string;\n}\n\nfunction timelineSpans(ordered: ActivitySnapshot[]): TimelineSpan[] {\n const spans: TimelineSpan[] = [];\n for (const snapshot of ordered) {\n const last = spans[spans.length - 1];\n if (\n last !== undefined &&\n last.machine === snapshot.machine &&\n last.app === snapshot.app &&\n last.windowTitle === snapshot.windowTitle &&\n last.browserUrl === snapshot.browserUrl\n ) {\n continue;\n }\n spans.push({\n startIso: snapshot.capturedAtUtc,\n machine: snapshot.machine,\n app: snapshot.app,\n windowTitle: snapshot.windowTitle,\n ...(snapshot.browserUrl !== undefined ? { browserUrl: snapshot.browserUrl } : {}),\n });\n }\n return spans;\n}\n\nfunction timelineSection(ordered: ActivitySnapshot[], timezone: string): string {\n const lines = [\"## Timeline\", \"\"];\n const spans = timelineSpans(ordered);\n if (spans.length === 0) {\n lines.push(\"_No activity recorded._\");\n return lines.join(\"\\n\");\n }\n for (const span of spans) {\n const clock = clockHhMm(span.startIso, timezone);\n const window = collapseWhitespace(span.windowTitle);\n const url = span.browserUrl !== undefined ? ` (${collapseWhitespace(span.browserUrl)})` : \"\";\n lines.push(`- [${clock}] ${span.app}${window.length > 0 ? ` — ${window}` : \"\"}${url}`);\n }\n return lines.join(\"\\n\");\n}\n\nfunction notableSection(ordered: ActivitySnapshot[], dwell: Map<ActivitySnapshot, number>): string {\n const withDwell = ordered.map((snapshot) => ({ snapshot, dwell: dwell.get(snapshot) ?? 0 }));\n const ranked = withDwell\n .filter((entry) => collapseWhitespace(entry.snapshot.text).length > 0)\n .sort((a, b) => {\n if (b.dwell !== a.dwell) return b.dwell - a.dwell;\n const at = Date.parse(a.snapshot.capturedAtUtc);\n const bt = Date.parse(b.snapshot.capturedAtUtc);\n if (at !== bt && Number.isFinite(at) && Number.isFinite(bt)) return at < bt ? -1 : 1;\n const idDelta = (a.snapshot.id ?? 0) - (b.snapshot.id ?? 0);\n if (idDelta !== 0) return idDelta;\n if (a.snapshot.contentHash !== b.snapshot.contentHash) {\n return a.snapshot.contentHash < b.snapshot.contentHash ? -1 : 1;\n }\n return 0;\n })\n .slice(0, NOTABLE_MAX_WINDOWS);\n const lines = [\"## Notable\", \"\"];\n if (ranked.length === 0) {\n lines.push(\"_No notable text captured._\");\n return lines.join(\"\\n\");\n }\n for (const { snapshot } of ranked) {\n const excerpt = collapseWhitespace(snapshot.text).slice(0, NOTABLE_EXCERPT_CHARS);\n lines.push(`- **${snapshot.app}** — ${excerpt}`);\n }\n return lines.join(\"\\n\");\n}\n\nexport function composeActivityDigestBody(\n date: string,\n timezone: string,\n snapshots: ActivitySnapshot[],\n): string {\n assertValidTimezone(timezone);\n const ordered = sortedByTime(snapshots);\n const dwell = computeDwell(ordered);\n return [\n `# Activity — ${date}`,\n \"\",\n perAppSection(ordered, dwell),\n \"\",\n timelineSection(ordered, timezone),\n \"\",\n notableSection(ordered, dwell),\n \"\",\n ].join(\"\\n\");\n}\n\nexport function hashActivityBody(body: string): string {\n return createHash(\"sha256\").update(body, \"utf8\").digest(\"hex\");\n}\n\nexport function composeActivityDigestMeta(\n date: string,\n machines: string[],\n snapshots: ActivitySnapshot[],\n body: string,\n): ActivityDayMeta {\n const uniqueMachines = [...new Set(machines)].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));\n return {\n kind: \"activity-digest\",\n date,\n machines: uniqueMachines,\n snapshotCount: snapshots.length,\n contentHash: hashActivityBody(body),\n formatVersion: ACTIVITY_DIGEST_FORMAT_VERSION,\n };\n}\n\nexport function serializeActivityDigest(meta: ActivityDayMeta, body: string): string {\n const frontmatter = [\n \"---\",\n `kind: ${meta.kind}`,\n `date: ${meta.date}`,\n `machines: ${JSON.stringify(meta.machines)}`,\n `snapshotCount: ${meta.snapshotCount}`,\n `contentHash: ${meta.contentHash}`,\n `formatVersion: ${meta.formatVersion}`,\n \"---\",\n \"\",\n ].join(\"\\n\");\n return `${frontmatter}${body}`;\n}\n\nexport function parseActivityDigest(raw: string): ActivityDayDigest | null {\n if (typeof raw !== \"string\" || !raw.startsWith(\"---\\n\")) return null;\n const end = raw.indexOf(\"\\n---\\n\", 4);\n if (end === -1) return null;\n const frontmatter = raw.slice(4, end);\n const body = raw.slice(end + 5).replace(/^\\n/, \"\");\n const fields = new Map<string, string>();\n for (const line of frontmatter.split(\"\\n\")) {\n const idx = line.indexOf(\":\");\n if (idx === -1) continue;\n fields.set(line.slice(0, idx).trim(), line.slice(idx + 1).trim());\n }\n const date = fields.get(\"date\");\n const contentHash = fields.get(\"contentHash\");\n if (date === undefined || !isValidActivityDate(date) || contentHash === undefined) return null;\n if (fields.get(\"kind\") !== \"activity-digest\") return null;\n const machines = parseMachinesList(fields.get(\"machines\") ?? \"[]\");\n const snapshotCount = parseNonNegativeInt(fields.get(\"snapshotCount\"));\n const formatVersion = parseNonNegativeInt(fields.get(\"formatVersion\"));\n if (snapshotCount === null || formatVersion === null) return null;\n return {\n meta: {\n kind: \"activity-digest\",\n date,\n machines,\n snapshotCount,\n contentHash,\n formatVersion,\n },\n body,\n };\n}\n\nfunction parseNonNegativeInt(value: string | undefined): number | null {\n if (value === undefined) return null;\n const trimmed = value.trim();\n if (!/^\\d+$/.test(trimmed)) return null;\n const parsed = Number(trimmed);\n return Number.isSafeInteger(parsed) ? parsed : null;\n}\n\nfunction parseMachinesList(raw: string): string[] {\n try {\n const parsed: unknown = JSON.parse(raw);\n if (Array.isArray(parsed)) {\n return parsed.filter((entry): entry is string => typeof entry === \"string\");\n }\n } catch {\n // Legacy unquoted inline form (`[a, b]`) — fall through to the split parse.\n }\n return raw\n .replace(/^\\[/, \"\")\n .replace(/\\]$/, \"\")\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n}\n"],"mappings":"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","names":[]}
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-YSSAGB2O.js";
11
11
  import {
12
12
  deriveSourceConnector
13
- } from "./chunk-L7Z57SID.js";
13
+ } from "./chunk-FHYVNJBN.js";
14
14
  import {
15
15
  resolvePipelineProcessingCapabilities
16
16
  } from "./chunk-JUOZ62Y7.js";
@@ -108,4 +108,4 @@ export {
108
108
  renderExtractionConversation,
109
109
  applyGroundingWithConnector
110
110
  };
111
- //# sourceMappingURL=chunk-ZIW5JVRM.js.map
111
+ //# sourceMappingURL=chunk-XTJC7CVX.js.map
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-H3FZVNRN.js";
14
14
  import {
15
15
  ExtractionDeadlineError
16
- } from "./chunk-L7Z57SID.js";
16
+ } from "./chunk-FHYVNJBN.js";
17
17
  import {
18
18
  resolvePrincipal
19
19
  } from "./chunk-MRV7VSQK.js";
@@ -798,4 +798,4 @@ var SmartBuffer = class {
798
798
  export {
799
799
  SmartBuffer
800
800
  };
801
- //# sourceMappingURL=chunk-Z6COGHHN.js.map
801
+ //# sourceMappingURL=chunk-Y2MZGBOY.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runLocationSync
3
- } from "./chunk-X5K5TAQZ.js";
3
+ } from "./chunk-V4ZBR7CW.js";
4
4
  import {
5
5
  log
6
6
  } from "./chunk-3WCASNQZ.js";
@@ -58,4 +58,4 @@ export {
58
58
  LOCATION_SYNC_DEFAULT_INTERVAL_MS,
59
59
  startLocationAutoSync
60
60
  };
61
- //# sourceMappingURL=chunk-H4SEGIZY.js.map
61
+ //# sourceMappingURL=chunk-ZO2AZIRT.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  startLocationAutoSync
3
- } from "./chunk-H4SEGIZY.js";
3
+ } from "./chunk-ZO2AZIRT.js";
4
4
  import {
5
5
  ensureContradictionScanCron,
6
6
  ensureDaySummaryCron,
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-JEC4DVM3.js";
23
23
  import {
24
24
  validateActivityBaseUrl
25
- } from "./chunk-OGUKSLYZ.js";
25
+ } from "./chunk-2OO6TPQG.js";
26
26
  import {
27
27
  activityDateInTimezone,
28
28
  activityDayWindow,
@@ -31,7 +31,7 @@ import {
31
31
  composeActivityDigestMeta,
32
32
  isValidActivityDate,
33
33
  serializeActivityDigest
34
- } from "./chunk-P6FHFTZ7.js";
34
+ } from "./chunk-XPFC6D45.js";
35
35
  import {
36
36
  STATE_FILE_MAX_DECRYPT_BYTES,
37
37
  drainPendingLifecycleLedgerIfAny,
@@ -1729,4 +1729,4 @@ export {
1729
1729
  ActivitySyncScheduler,
1730
1730
  MaintenanceScheduler
1731
1731
  };
1732
- //# sourceMappingURL=chunk-UNNPNBR2.js.map
1732
+ //# sourceMappingURL=chunk-ZUNNRGJX.js.map
@@ -37,7 +37,7 @@ import {
37
37
  } from "./chunk-QVSRE355.js";
38
38
  import {
39
39
  getOperation
40
- } from "./chunk-ICKJ52PE.js";
40
+ } from "./chunk-OU4K7IFP.js";
41
41
  import {
42
42
  WHO_KNOWS_MCP_TOOLS
43
43
  } from "./chunk-2EKJDQZB.js";
@@ -4050,4 +4050,4 @@ export {
4050
4050
  MCP_MIGRATED_OPERATIONS,
4051
4051
  EngramMcpServer
4052
4052
  };
4053
- //# sourceMappingURL=chunk-BLJWYCNO.js.map
4053
+ //# sourceMappingURL=chunk-ZY4DSWZ5.js.map
@@ -5,7 +5,7 @@ import { M as MemoryFile, m as MemoryFrontmatter, w as MemoryStatus, a9 as Behav
5
5
  import { C as ConversationIndexCoordinator, T as TierMigrationCoordinator, O as Orchestrator } from './orchestrator-DgyvFfPR.js';
6
6
  import { S as StorageManager } from './storage-BLJRnFi6.js';
7
7
  import { TrustZoneDemoSeedResult, TrustZoneName, TrustZonePromotionResult, TrustZoneStoreStatus } from './trust-zones.js';
8
- import { f as EngramAccessService } from './access-service-DWdY9Mlk.js';
8
+ import { f as EngramAccessService } from './access-service-Cv8Rizo0.js';
9
9
  import { Writable, Readable } from 'node:stream';
10
10
  import { ResolveSecretRefFn } from './resolve-auth-token.js';
11
11
  import { CausalTrajectoryStoreStatus } from './causal-trajectory.js';
package/dist/cli.d.ts CHANGED
@@ -5,8 +5,8 @@ import './types-YY-eKKU7.js';
5
5
  import './orchestrator-DgyvFfPR.js';
6
6
  import './storage-BLJRnFi6.js';
7
7
  import './trust-zones.js';
8
- export { c as AccessHttpServeCliCommandOptions, d as ArchiveObservationsCliCommandOptions, e as AuditMemoryCliCommandOptions, B as BulkImportCliCommandOptions, C as CliApi, g as CliCommand, h as CliProgram, i as CompatCliCommandOptions, j as ConnectorsRunCliOutputOptions, k as ConversationIndexHealthCliOrchestrator, D as DashboardStartCliCommandOptions, l as DedupeCandidate, E as ExactDedupePlan, G as GraphHealthCliCommandOptions, M as MemoryActionAuditCliCommandOptions, m as MemoryActionAuditCliNamespaceSummary, n as MemoryActionAuditCliReport, o as MemoryGovernanceCliCommandOptions, q as MemoryGovernanceReportCliCommandOptions, s as MemoryGovernanceRestoreCliCommandOptions, t as MemoryReviewDispositionCliCommandOptions, u as MemoryTimelineCliCommandOptions, v as MigrateCliOrchestrator, w as MigrateCliReport, x as MigrateObservationsCliCommandOptions, P as PolicyDiffCliReport, y as PolicyDiffEntry, z as PolicyRollbackCliReport, F as PolicyStatusCliReport, H as PolicyTuningCliOrchestrator, R as RebuildMemoryLifecycleLedgerCliCommandOptions, I as RebuildMemoryProjectionCliCommandOptions, J as RebuildObservationsCliCommandOptions, K as RepairMemoryProjectionCliCommandOptions, L as ReplayCliCommandOptions, N as ReplayCliOrchestrator, O as RouteCliCommandOptions, S as SessionIntegrityCliCommandOptions, Q as SessionRepairCliCommandOptions, T as TailscaleStatusCliCommandOptions, U as TailscaleSyncCliCommandOptions, V as TierMigrateCliAdapter, W as TierMigrateCoordinatorCliAdapter, X as TierMigrateLegacyCliAdapter, Y as TierStatusCliAdapter, Z as TierStatusCoordinatorCliAdapter, _ as TierStatusLegacyCliAdapter, $ as TrainingExportCliCommandOptions, a0 as VerifyMemoryProjectionCliCommandOptions, a1 as WebDavServeCliCommandOptions, a2 as WorkProjectCliCommandOptions, a3 as WorkTaskCliCommandOptions, a4 as emitConnectorsRunCliResult, a5 as filterNormalMemorySearchResults, a6 as hasDestructivePurgeFailures, a7 as isNormalRetrievalVisibleMemory, a8 as listMemoryMarkdownFilePaths, a9 as parseDurationToMs, aa as parseStrictCliDate, ab as planAggressiveDuplicateDeletions, ac as planExactDuplicateDeletions, ad as registerCli, ae as resolveAccessPrincipalOverride, af as resolveMemoryDirForNamespace, ag as runAbstractionNodeStatusCliCommand, ah as runAccessHttpServeCliCommand, ai as runAccessHttpStatusCliCommand, aj as runAccessHttpStopCliCommand, ak as runAccessMcpServeCliCommand, al as runArchiveObservationsCliCommand, r as runAuditMemoryCliCommand, am as runBenchmarkBaselineReportCliCommand, an as runBenchmarkBaselineSnapshotCliCommand, ao as runBenchmarkCiGateCliCommand, ap as runBenchmarkImportCliCommand, aq as runBenchmarkStatusCliCommand, ar as runBenchmarkStoredBaselineCiGateCliCommand, as as runBenchmarkValidateCliCommand, b as runBulkImportCliCommand, at as runCausalTrajectoryStatusCliCommand, au as runCommitmentLifecycleCliCommand, av as runCommitmentRecordCliCommand, aw as runCommitmentSetStateCliCommand, ax as runCommitmentStatusCliCommand, ay as runCompatCliCommand, az as runCompoundingPromoteCliCommand, aA as runConversationIndexHealthCliCommand, aB as runConversationIndexInspectCliCommand, aC as runConversationIndexRebuildCliCommand, aD as runCueAnchorStatusCliCommand, aE as runDashboardStartCliCommand, aF as runDashboardStatusCliCommand, aG as runDashboardStopCliCommand, aH as runGraphHealthCliCommand, aI as runHarmonicSearchCliCommand, aJ as runMemoryActionAuditCliCommand, aK as runMemoryGovernanceCliCommand, aL as runMemoryGovernanceReportCliCommand, aM as runMemoryGovernanceRestoreCliCommand, aN as runMemoryReviewDispositionCliCommand, aO as runMemoryTimelineCliCommand, aP as runMigrateNormalizeFrontmatterCliCommand, aQ as runMigrateObservationsCliCommand, aR as runMigrateRechunkCliCommand, aS as runMigrateReextractCliCommand, aT as runMigrateRescoreImportanceCliCommand, aU as runObjectiveStateStatusCliCommand, aV as runPolicyDiffCliCommand, aW as runPolicyRollbackCliCommand, aX as runPolicyStatusCliCommand, aY as runRebuildMemoryLifecycleLedgerCliCommand, aZ as runRebuildMemoryProjectionCliCommand, a_ as runRebuildObservationsCliCommand, a$ as runRepairMemoryProjectionCliCommand, b0 as runReplayCliCommand, b1 as runResumeBundleBuildCliCommand, b2 as runResumeBundleRecordCliCommand, b3 as runResumeBundleStatusCliCommand, b4 as runRouteCliCommand, b5 as runSemanticRulePromoteCliCommand, b6 as runSemanticRuleVerifyCliCommand, b7 as runSessionCheckCliCommand, b8 as runSessionRepairCliCommand, b9 as runTailscaleStatusCliCommand, ba as runTailscaleSyncCliCommand, bb as runTierMigrateCliCommand, bc as runTierStatusCliCommand, bd as runTrainingExportCliCommand, be as runTrustZoneDemoSeedCliCommand, bf as runTrustZonePromoteCliCommand, bg as runTrustZoneStatusCliCommand, bh as runUtilityLearningCliCommand, bi as runUtilityLearningStatusCliCommand, bj as runUtilityTelemetryRecordCliCommand, bk as runUtilityTelemetryStatusCliCommand, bl as runVerifiedRecallSearchCliCommand, bm as runVerifyMemoryProjectionCliCommand, bn as runWebDavServeCliCommand, bo as runWebDavStopCliCommand, bp as runWorkProductRecallSearchCliCommand, bq as runWorkProductRecordCliCommand, br as runWorkProductStatusCliCommand, bs as runWorkProjectCliCommand, bt as runWorkTaskCliCommand } from './cli-DD0P-lu8.js';
9
- import './access-service-DWdY9Mlk.js';
8
+ export { c as AccessHttpServeCliCommandOptions, d as ArchiveObservationsCliCommandOptions, e as AuditMemoryCliCommandOptions, B as BulkImportCliCommandOptions, C as CliApi, g as CliCommand, h as CliProgram, i as CompatCliCommandOptions, j as ConnectorsRunCliOutputOptions, k as ConversationIndexHealthCliOrchestrator, D as DashboardStartCliCommandOptions, l as DedupeCandidate, E as ExactDedupePlan, G as GraphHealthCliCommandOptions, M as MemoryActionAuditCliCommandOptions, m as MemoryActionAuditCliNamespaceSummary, n as MemoryActionAuditCliReport, o as MemoryGovernanceCliCommandOptions, q as MemoryGovernanceReportCliCommandOptions, s as MemoryGovernanceRestoreCliCommandOptions, t as MemoryReviewDispositionCliCommandOptions, u as MemoryTimelineCliCommandOptions, v as MigrateCliOrchestrator, w as MigrateCliReport, x as MigrateObservationsCliCommandOptions, P as PolicyDiffCliReport, y as PolicyDiffEntry, z as PolicyRollbackCliReport, F as PolicyStatusCliReport, H as PolicyTuningCliOrchestrator, R as RebuildMemoryLifecycleLedgerCliCommandOptions, I as RebuildMemoryProjectionCliCommandOptions, J as RebuildObservationsCliCommandOptions, K as RepairMemoryProjectionCliCommandOptions, L as ReplayCliCommandOptions, N as ReplayCliOrchestrator, O as RouteCliCommandOptions, S as SessionIntegrityCliCommandOptions, Q as SessionRepairCliCommandOptions, T as TailscaleStatusCliCommandOptions, U as TailscaleSyncCliCommandOptions, V as TierMigrateCliAdapter, W as TierMigrateCoordinatorCliAdapter, X as TierMigrateLegacyCliAdapter, Y as TierStatusCliAdapter, Z as TierStatusCoordinatorCliAdapter, _ as TierStatusLegacyCliAdapter, $ as TrainingExportCliCommandOptions, a0 as VerifyMemoryProjectionCliCommandOptions, a1 as WebDavServeCliCommandOptions, a2 as WorkProjectCliCommandOptions, a3 as WorkTaskCliCommandOptions, a4 as emitConnectorsRunCliResult, a5 as filterNormalMemorySearchResults, a6 as hasDestructivePurgeFailures, a7 as isNormalRetrievalVisibleMemory, a8 as listMemoryMarkdownFilePaths, a9 as parseDurationToMs, aa as parseStrictCliDate, ab as planAggressiveDuplicateDeletions, ac as planExactDuplicateDeletions, ad as registerCli, ae as resolveAccessPrincipalOverride, af as resolveMemoryDirForNamespace, ag as runAbstractionNodeStatusCliCommand, ah as runAccessHttpServeCliCommand, ai as runAccessHttpStatusCliCommand, aj as runAccessHttpStopCliCommand, ak as runAccessMcpServeCliCommand, al as runArchiveObservationsCliCommand, r as runAuditMemoryCliCommand, am as runBenchmarkBaselineReportCliCommand, an as runBenchmarkBaselineSnapshotCliCommand, ao as runBenchmarkCiGateCliCommand, ap as runBenchmarkImportCliCommand, aq as runBenchmarkStatusCliCommand, ar as runBenchmarkStoredBaselineCiGateCliCommand, as as runBenchmarkValidateCliCommand, b as runBulkImportCliCommand, at as runCausalTrajectoryStatusCliCommand, au as runCommitmentLifecycleCliCommand, av as runCommitmentRecordCliCommand, aw as runCommitmentSetStateCliCommand, ax as runCommitmentStatusCliCommand, ay as runCompatCliCommand, az as runCompoundingPromoteCliCommand, aA as runConversationIndexHealthCliCommand, aB as runConversationIndexInspectCliCommand, aC as runConversationIndexRebuildCliCommand, aD as runCueAnchorStatusCliCommand, aE as runDashboardStartCliCommand, aF as runDashboardStatusCliCommand, aG as runDashboardStopCliCommand, aH as runGraphHealthCliCommand, aI as runHarmonicSearchCliCommand, aJ as runMemoryActionAuditCliCommand, aK as runMemoryGovernanceCliCommand, aL as runMemoryGovernanceReportCliCommand, aM as runMemoryGovernanceRestoreCliCommand, aN as runMemoryReviewDispositionCliCommand, aO as runMemoryTimelineCliCommand, aP as runMigrateNormalizeFrontmatterCliCommand, aQ as runMigrateObservationsCliCommand, aR as runMigrateRechunkCliCommand, aS as runMigrateReextractCliCommand, aT as runMigrateRescoreImportanceCliCommand, aU as runObjectiveStateStatusCliCommand, aV as runPolicyDiffCliCommand, aW as runPolicyRollbackCliCommand, aX as runPolicyStatusCliCommand, aY as runRebuildMemoryLifecycleLedgerCliCommand, aZ as runRebuildMemoryProjectionCliCommand, a_ as runRebuildObservationsCliCommand, a$ as runRepairMemoryProjectionCliCommand, b0 as runReplayCliCommand, b1 as runResumeBundleBuildCliCommand, b2 as runResumeBundleRecordCliCommand, b3 as runResumeBundleStatusCliCommand, b4 as runRouteCliCommand, b5 as runSemanticRulePromoteCliCommand, b6 as runSemanticRuleVerifyCliCommand, b7 as runSessionCheckCliCommand, b8 as runSessionRepairCliCommand, b9 as runTailscaleStatusCliCommand, ba as runTailscaleSyncCliCommand, bb as runTierMigrateCliCommand, bc as runTierStatusCliCommand, bd as runTrainingExportCliCommand, be as runTrustZoneDemoSeedCliCommand, bf as runTrustZonePromoteCliCommand, bg as runTrustZoneStatusCliCommand, bh as runUtilityLearningCliCommand, bi as runUtilityLearningStatusCliCommand, bj as runUtilityTelemetryRecordCliCommand, bk as runUtilityTelemetryStatusCliCommand, bl as runVerifiedRecallSearchCliCommand, bm as runVerifyMemoryProjectionCliCommand, bn as runWebDavServeCliCommand, bo as runWebDavStopCliCommand, bp as runWorkProductRecallSearchCliCommand, bq as runWorkProductRecordCliCommand, br as runWorkProductStatusCliCommand, bs as runWorkProjectCliCommand, bt as runWorkTaskCliCommand } from './cli-B_YwqoIr.js';
9
+ import './access-service-Cv8Rizo0.js';
10
10
  import 'node:stream';
11
11
  import './resolve-auth-token.js';
12
12
  import './causal-trajectory.js';
package/dist/cli.js CHANGED
@@ -91,7 +91,7 @@ import {
91
91
  runWorkProductStatusCliCommand,
92
92
  runWorkProjectCliCommand,
93
93
  runWorkTaskCliCommand
94
- } from "./chunk-SMWTZLHE.js";
94
+ } from "./chunk-MZLV2OJE.js";
95
95
  import "./chunk-MMACM5G2.js";
96
96
  import "./chunk-54BGIBCR.js";
97
97
  import "./chunk-H4CKS5B2.js";
@@ -128,12 +128,12 @@ import "./chunk-HL4DB7TO.js";
128
128
  import "./chunk-OJP3N7UK.js";
129
129
  import "./chunk-OEYZXDQI.js";
130
130
  import "./chunk-5ATKSPEQ.js";
131
- import "./chunk-KTWG7CNY.js";
131
+ import "./chunk-EWCNCQOU.js";
132
132
  import "./chunk-G7NYVKD6.js";
133
133
  import "./chunk-AM4T6CHX.js";
134
134
  import "./chunk-S7T2TY65.js";
135
135
  import "./chunk-2LA3H54D.js";
136
- import "./chunk-H54VWRPS.js";
136
+ import "./chunk-JJ4XK25O.js";
137
137
  import "./chunk-SJDQ5RSN.js";
138
138
  import "./chunk-KFY3SGN7.js";
139
139
  import "./chunk-CMTINOFS.js";
@@ -160,11 +160,11 @@ import "./chunk-NHLLKEKK.js";
160
160
  import "./chunk-B7RWBZXW.js";
161
161
  import "./chunk-YBPYIAA5.js";
162
162
  import "./chunk-6TBIWIAG.js";
163
- import "./chunk-2IOHTUP3.js";
163
+ import "./chunk-GRCREL6Q.js";
164
164
  import "./chunk-ZKOPY4WW.js";
165
165
  import "./chunk-62OKGIJA.js";
166
- import "./chunk-OGUKSLYZ.js";
167
- import "./chunk-33JKYLPX.js";
166
+ import "./chunk-2OO6TPQG.js";
167
+ import "./chunk-GGRD3JEH.js";
168
168
  import "./chunk-Z3O53WZR.js";
169
169
  import "./chunk-H3TKENU4.js";
170
170
  import "./chunk-Z5LAYHGJ.js";
@@ -181,7 +181,7 @@ import "./chunk-PIG4WJFQ.js";
181
181
  import "./chunk-C6WMSXCJ.js";
182
182
  import "./chunk-KFZY2OFH.js";
183
183
  import "./chunk-B32WYRXX.js";
184
- import "./chunk-C553ZTLF.js";
184
+ import "./chunk-THQTFTQS.js";
185
185
  import "./chunk-V7IZKJI3.js";
186
186
  import "./chunk-TB6CBZ5V.js";
187
187
  import "./chunk-SEDEKFYQ.js";
@@ -193,22 +193,22 @@ import "./chunk-42NQ7AVG.js";
193
193
  import "./chunk-7RXCMVFQ.js";
194
194
  import "./chunk-3HSRWJTC.js";
195
195
  import "./chunk-GHTSNGBZ.js";
196
- import "./chunk-66OJSCI6.js";
197
- import "./chunk-FVOP3NT7.js";
196
+ import "./chunk-3GGUMRS4.js";
197
+ import "./chunk-5IEV3YBY.js";
198
198
  import "./chunk-SRT6SHVZ.js";
199
- import "./chunk-BLJWYCNO.js";
199
+ import "./chunk-ZY4DSWZ5.js";
200
200
  import "./chunk-EAARGPWI.js";
201
201
  import "./chunk-A5KNZSNA.js";
202
202
  import "./chunk-HUSTM6PU.js";
203
203
  import "./chunk-D24OXEPB.js";
204
- import "./chunk-SVXJLDDC.js";
205
- import "./chunk-2ITE4C2Z.js";
206
- import "./chunk-K7724CH2.js";
207
- import "./chunk-X5K5TAQZ.js";
208
- import "./chunk-O6ZNNVSP.js";
204
+ import "./chunk-KH6PK4EQ.js";
205
+ import "./chunk-6LLLREDJ.js";
206
+ import "./chunk-6VF3R3XQ.js";
207
+ import "./chunk-V4ZBR7CW.js";
208
+ import "./chunk-RX3SC4C5.js";
209
209
  import "./chunk-7T4TOGMS.js";
210
210
  import "./chunk-7YQ6ESEA.js";
211
- import "./chunk-37KUQPX4.js";
211
+ import "./chunk-GNMELJGM.js";
212
212
  import "./chunk-SCXURCVT.js";
213
213
  import "./chunk-EQWEIIKQ.js";
214
214
  import "./chunk-XOVKXJEP.js";
@@ -224,11 +224,11 @@ import "./chunk-TVEONGBU.js";
224
224
  import "./chunk-QOOBICJF.js";
225
225
  import "./chunk-AB3A7EFH.js";
226
226
  import "./chunk-QVSRE355.js";
227
- import "./chunk-56Y6EKZN.js";
227
+ import "./chunk-CGJV2YIY.js";
228
228
  import "./chunk-TIDEL77O.js";
229
229
  import "./chunk-GZ3R6XOE.js";
230
- import "./chunk-PX4UMA5Z.js";
231
- import "./chunk-ICKJ52PE.js";
230
+ import "./chunk-3NYTZE5G.js";
231
+ import "./chunk-OU4K7IFP.js";
232
232
  import "./chunk-W4F3C7N7.js";
233
233
  import "./chunk-MPC7TYTZ.js";
234
234
  import "./chunk-VVX5PZFS.js";
@@ -337,8 +337,8 @@ import "./chunk-R7QY5ZVB.js";
337
337
  import "./chunk-5WITETWU.js";
338
338
  import "./chunk-6CIAGZ6X.js";
339
339
  import "./chunk-UBCBDJOB.js";
340
- import "./chunk-L7Z57SID.js";
341
- import "./chunk-NLYVH66G.js";
340
+ import "./chunk-FHYVNJBN.js";
341
+ import "./chunk-MT47LH5L.js";
342
342
  import "./chunk-CSAKJVXW.js";
343
343
  import "./chunk-K2XUWZBM.js";
344
344
  import "./chunk-OD4FM2U7.js";
@@ -370,7 +370,7 @@ import "./chunk-QDW3E4RD.js";
370
370
  import "./chunk-B3O3IRZN.js";
371
371
  import "./chunk-NXH34IPL.js";
372
372
  import "./chunk-ZIKENA2C.js";
373
- import "./chunk-P6FHFTZ7.js";
373
+ import "./chunk-XPFC6D45.js";
374
374
  import "./chunk-VYCOJKSX.js";
375
375
  import "./chunk-6Q3ZTEF6.js";
376
376
  import "./chunk-W5BIQOAJ.js";
package/dist/config.js CHANGED
@@ -4,11 +4,11 @@ import {
4
4
  isOpenaiApiKeyDisabled,
5
5
  parseConfig,
6
6
  resolveEnvVars
7
- } from "./chunk-2IOHTUP3.js";
7
+ } from "./chunk-GRCREL6Q.js";
8
8
  import "./chunk-ZKOPY4WW.js";
9
9
  import "./chunk-62OKGIJA.js";
10
- import "./chunk-OGUKSLYZ.js";
11
- import "./chunk-33JKYLPX.js";
10
+ import "./chunk-2OO6TPQG.js";
11
+ import "./chunk-GGRD3JEH.js";
12
12
  import "./chunk-Z3O53WZR.js";
13
13
  import "./chunk-H3TKENU4.js";
14
14
  import "./chunk-Z5LAYHGJ.js";
@@ -38,7 +38,7 @@ import "./chunk-QDW3E4RD.js";
38
38
  import "./chunk-B3O3IRZN.js";
39
39
  import "./chunk-NXH34IPL.js";
40
40
  import "./chunk-ZIKENA2C.js";
41
- import "./chunk-P6FHFTZ7.js";
41
+ import "./chunk-XPFC6D45.js";
42
42
  import "./chunk-VYCOJKSX.js";
43
43
  import "./chunk-6Q3ZTEF6.js";
44
44
  import "./chunk-YCVB7X56.js";
@@ -1,5 +1,5 @@
1
1
  import { IncomingMessage, ServerResponse } from 'node:http';
2
- import { f as EngramAccessService } from './access-service-DWdY9Mlk.js';
2
+ import { f as EngramAccessService } from './access-service-Cv8Rizo0.js';
3
3
  import './types-YY-eKKU7.js';
4
4
  import './message-parts/index.js';
5
5
  import './bounded-jsonl-state.js';
@@ -1,4 +1,4 @@
1
- import { K as McpTool } from './access-service-DWdY9Mlk.js';
1
+ import { K as McpTool } from './access-service-Cv8Rizo0.js';
2
2
  import './types-YY-eKKU7.js';
3
3
  import './message-parts/index.js';
4
4
  import './bounded-jsonl-state.js';
@@ -1,4 +1,4 @@
1
- import { B as BoundOperation } from './access-service-DWdY9Mlk.js';
1
+ import { B as BoundOperation } from './access-service-Cv8Rizo0.js';
2
2
  import { ExternalWikiSearchResult, ExternalWikiSearchInput } from './external-wiki-search.js';
3
3
  import './types-YY-eKKU7.js';
4
4
  import './message-parts/index.js';
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  externalWikiSearchOperation
3
- } from "./chunk-O6ZNNVSP.js";
3
+ } from "./chunk-RX3SC4C5.js";
4
4
  import "./chunk-7T4TOGMS.js";
5
5
  import "./chunk-7YQ6ESEA.js";
6
- import "./chunk-ICKJ52PE.js";
6
+ import "./chunk-OU4K7IFP.js";
7
7
  import "./chunk-W4F3C7N7.js";
8
8
  import "./chunk-MPC7TYTZ.js";
9
9
  import "./chunk-VVX5PZFS.js";
@@ -112,8 +112,8 @@ import "./chunk-R7QY5ZVB.js";
112
112
  import "./chunk-5WITETWU.js";
113
113
  import "./chunk-6CIAGZ6X.js";
114
114
  import "./chunk-UBCBDJOB.js";
115
- import "./chunk-L7Z57SID.js";
116
- import "./chunk-NLYVH66G.js";
115
+ import "./chunk-FHYVNJBN.js";
116
+ import "./chunk-MT47LH5L.js";
117
117
  import "./chunk-CSAKJVXW.js";
118
118
  import "./chunk-K2XUWZBM.js";
119
119
  import "./chunk-OD4FM2U7.js";
@@ -145,7 +145,7 @@ import "./chunk-QDW3E4RD.js";
145
145
  import "./chunk-B3O3IRZN.js";
146
146
  import "./chunk-NXH34IPL.js";
147
147
  import "./chunk-ZIKENA2C.js";
148
- import "./chunk-P6FHFTZ7.js";
148
+ import "./chunk-XPFC6D45.js";
149
149
  import "./chunk-VYCOJKSX.js";
150
150
  import "./chunk-6Q3ZTEF6.js";
151
151
  import "./chunk-W5BIQOAJ.js";
@@ -1,4 +1,4 @@
1
- import { K as McpTool } from './access-service-DWdY9Mlk.js';
1
+ import { K as McpTool } from './access-service-Cv8Rizo0.js';
2
2
  import './types-YY-eKKU7.js';
3
3
  import './message-parts/index.js';
4
4
  import './bounded-jsonl-state.js';
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ExtractionEngine,
3
3
  shouldEnableLocalExtractionThinking
4
- } from "./chunk-KB2G2I6Q.js";
5
- import "./chunk-ZIW5JVRM.js";
4
+ } from "./chunk-DDB3S53L.js";
5
+ import "./chunk-XTJC7CVX.js";
6
6
  import "./chunk-AJTG3CP7.js";
7
7
  import "./chunk-54V4BZWP.js";
8
8
  import "./chunk-2CGLBUW3.js";
@@ -73,8 +73,8 @@ import "./chunk-RBOJCG4T.js";
73
73
  import "./chunk-R7QY5ZVB.js";
74
74
  import "./chunk-5WITETWU.js";
75
75
  import "./chunk-6CIAGZ6X.js";
76
- import "./chunk-L7Z57SID.js";
77
- import "./chunk-NLYVH66G.js";
76
+ import "./chunk-FHYVNJBN.js";
77
+ import "./chunk-MT47LH5L.js";
78
78
  import "./chunk-CSAKJVXW.js";
79
79
  import "./chunk-K2XUWZBM.js";
80
80
  import "./chunk-OD4FM2U7.js";
@@ -98,7 +98,7 @@ import "./chunk-ZCUTSMR2.js";
98
98
  import "./chunk-QDW3E4RD.js";
99
99
  import "./chunk-NXH34IPL.js";
100
100
  import "./chunk-ZIKENA2C.js";
101
- import "./chunk-P6FHFTZ7.js";
101
+ import "./chunk-XPFC6D45.js";
102
102
  import "./chunk-VYCOJKSX.js";
103
103
  import "./chunk-6Q3ZTEF6.js";
104
104
  import "./chunk-W5BIQOAJ.js";