@askexenow/exe-os 0.9.404 → 0.9.405

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/.dist-verified.json +3 -3
  2. package/dist/bin/cc-doctor.js +2 -2
  3. package/dist/bin/cli.js +4 -4
  4. package/dist/bin/deferred-daemon-restart.js +9 -9
  5. package/dist/bin/exe-boot.js +7 -31
  6. package/dist/bin/exe-forget.js +1 -1
  7. package/dist/bin/exe-healthcheck.js +2 -2
  8. package/dist/bin/exe-search.js +1 -1
  9. package/dist/bin/exe-support.js +2 -2
  10. package/dist/bin/install.js +9 -9
  11. package/dist/bin/reconcile-backlog.js +1 -1
  12. package/dist/{bug-landed-reconciler-54HRLSOX.js → bug-landed-reconciler-PWRXOBOE.js} +2 -2
  13. package/dist/build-info.json +3 -3
  14. package/dist/build-manifest.json +102 -102
  15. package/dist/{catchup-brief-O3RVR73X.js → catchup-brief-JQIWOJEN.js} +1 -1
  16. package/dist/chunk-6QBBJJK2.js +52 -0
  17. package/dist/{chunk-K7D2HVUI.js → chunk-A5YNPQBD.js} +1 -1
  18. package/dist/{chunk-3CQ3RGCQ.js → chunk-BCOGIX5I.js} +6 -12
  19. package/dist/{chunk-ZM22ANTG.js → chunk-C4IHTLDE.js} +74 -3
  20. package/dist/{chunk-6AJXDRAH.js → chunk-DDWLI43S.js} +10 -10
  21. package/dist/{chunk-5I3BXKOK.js → chunk-N4JBGOHA.js} +8 -11
  22. package/dist/{chunk-2JZPWAV4.js → chunk-NSJUD5BW.js} +3 -3
  23. package/dist/{chunk-S4M2AHSM.js → chunk-QEFKJLEY.js} +15 -2
  24. package/dist/{chunk-V5MPJSWQ.js → chunk-RKEREP4O.js} +1 -1
  25. package/dist/{chunk-LGZUV4MY.js → chunk-Z3JFXAIN.js} +1 -1
  26. package/dist/{employee-boot-brief-Q5QAW5ET.js → employee-boot-brief-FUKC7RGM.js} +2 -2
  27. package/dist/{exe-key-ZKVULIWX.js → exe-key-53GDRW6F.js} +9 -9
  28. package/dist/hooks/error-recall.js +1 -1
  29. package/dist/hooks/manifest.json +5 -5
  30. package/dist/hooks/pre-tool-use.js +1 -1
  31. package/dist/hooks/prompt-submit.js +1 -1
  32. package/dist/hooks/session-start.js +2 -2
  33. package/dist/lib/exe-daemon.js +4 -4
  34. package/dist/lib/hybrid-search.js +1 -1
  35. package/dist/mcp/register-tools.js +8 -8
  36. package/dist/mcp/server.js +8 -8
  37. package/dist/{pre-tool-use-impl-62MDMGZA.js → pre-tool-use-impl-ALN4BK7X.js} +1 -1
  38. package/dist/{reranker-WJ5L6IGK.js → reranker-YBVXW2ZZ.js} +1 -1
  39. package/dist/{runtime-drift-3MIEG6H7.js → runtime-drift-KJCKI5MM.js} +7 -1
  40. package/dist/{subagent-brief-injection-XG557M5A.js → subagent-brief-injection-NMIRQ742.js} +2 -2
  41. package/dist/{support-bug-actions-LBFOCVHF.js → support-bug-actions-ASWOZHR5.js} +4 -3
  42. package/dist/{support-inbox-ZXPG2M36.js → support-inbox-K7T6WVJW.js} +2 -2
  43. package/dist/{telemetry-upload-G33XS2I6.js → telemetry-upload-DYE34SI5.js} +1 -1
  44. package/package.json +1 -1
  45. package/release-notes.json +6 -6
  46. package/stack.release.json +3 -3
  47. package/dist/chunk-2XZ6X3PJ.js +0 -13
  48. /package/dist/{chunk-I5GDELXL.js → chunk-SBOUSFLP.js} +0 -0
@@ -3,20 +3,22 @@ import { existsSync, readFileSync } from "fs";
3
3
  import { homedir } from "os";
4
4
  import path from "path";
5
5
  function readBuildIdentity(pkgRoot) {
6
- let version;
6
+ let pkgVersion;
7
7
  try {
8
8
  const pkgPath = path.join(pkgRoot, "package.json");
9
9
  const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
10
- version = typeof pkg.version === "string" && pkg.version ? pkg.version : "unknown";
10
+ pkgVersion = typeof pkg.version === "string" && pkg.version ? pkg.version : "unknown";
11
11
  } catch {
12
12
  return null;
13
13
  }
14
+ let version = pkgVersion;
14
15
  let commit = "unknown";
15
16
  let buildTime = "unknown";
16
17
  try {
17
18
  const infoPath = path.join(pkgRoot, "dist", "build-info.json");
18
19
  if (existsSync(infoPath)) {
19
20
  const info = JSON.parse(readFileSync(infoPath, "utf-8"));
21
+ if (typeof info.version === "string" && info.version) version = info.version;
20
22
  if (typeof info.commit === "string" && info.commit) commit = info.commit;
21
23
  if (typeof info.buildTime === "string" && info.buildTime) buildTime = info.buildTime;
22
24
  }
@@ -120,6 +122,72 @@ function formatRuntimeUnverifiedBriefLine(result, surfaceLabel = result.surface)
120
122
  }
121
123
  return line;
122
124
  }
125
+ var EXE_HOOK_TARGET = /[\\/]dist[\\/]hooks[\\/]/;
126
+ function collectDistinctHookRoots(probes) {
127
+ const roots = /* @__PURE__ */ new Set();
128
+ for (const probe of probes) {
129
+ if (probe.runtime !== "claude" || !probe.target) continue;
130
+ if (!EXE_HOOK_TARGET.test(probe.target)) continue;
131
+ roots.add(pkgRootFromHookTarget(probe.target));
132
+ }
133
+ return [...roots];
134
+ }
135
+ function compareAllHookRoots(roots, installed) {
136
+ if (roots.length === 0) {
137
+ return [compareRuntimeIdentity("hooks", null, installed)];
138
+ }
139
+ return roots.map((root) => compareRuntimeIdentity("hooks", readBuildIdentity(root), installed));
140
+ }
141
+ function runningIdentityKey(result) {
142
+ if (!result.running) return null;
143
+ return `${result.running.root}|${result.running.version}|${result.running.commit}`;
144
+ }
145
+ function groupByRunningIdentity(items) {
146
+ const groups = /* @__PURE__ */ new Map();
147
+ for (const item of items) {
148
+ const key = runningIdentityKey(item.result);
149
+ if (key === null) continue;
150
+ const group = groups.get(key);
151
+ if (group) group.push(item);
152
+ else groups.set(key, [item]);
153
+ }
154
+ return [...groups.values()];
155
+ }
156
+ function mergedLabel(group) {
157
+ if (group.length === 1) return group[0].label;
158
+ if (group.length === 2 && group.some((g) => g.label === "hooks") && group.some((g) => g.label === "daemon")) {
159
+ return "both";
160
+ }
161
+ return group.map((g) => g.label).join("+");
162
+ }
163
+ var MAX_DRIFT_ROOTS_SHOWN = 2;
164
+ function formatRuntimeDriftBootLines(hookResults, daemonResult) {
165
+ const warnings = [];
166
+ const multiHooks = hookResults.length > 1;
167
+ const labeled = [
168
+ ...hookResults.map((result, i) => ({ label: multiHooks ? `hooks#${i + 1}` : "hooks", result })),
169
+ { label: "daemon", result: daemonResult }
170
+ ];
171
+ const driftItems = labeled.filter((item) => item.result.status === "drift");
172
+ const distinctDriftingRoots = new Set(driftItems.map((item) => item.result.running.root)).size;
173
+ if (distinctDriftingRoots > MAX_DRIFT_ROOTS_SHOWN) {
174
+ const installedVersion = driftItems[0]?.result.installed?.version ?? "unknown";
175
+ let line = `\u{1F534} RUNTIME DRIFT: ${distinctDriftingRoots} build roots differ from installed ${installedVersion}`;
176
+ if (briefDisplayWidth(line) > BRIEF_LINE_MAX_WIDTH) line = clampMiddle(line, BRIEF_LINE_MAX_WIDTH);
177
+ warnings.push(line);
178
+ } else {
179
+ for (const group of groupByRunningIdentity(driftItems)) {
180
+ const lines = formatRuntimeDriftBriefLines(group[0].result, mergedLabel(group));
181
+ if (lines) warnings.push(...lines);
182
+ }
183
+ }
184
+ const unverifiedItems = labeled.filter((item) => item.result.status === "unknown" && item.result.unverified);
185
+ for (const group of groupByRunningIdentity(unverifiedItems)) {
186
+ const line = formatRuntimeUnverifiedBriefLine(group[0].result, mergedLabel(group));
187
+ if (line) warnings.push(line);
188
+ }
189
+ return warnings;
190
+ }
123
191
 
124
192
  export {
125
193
  readBuildIdentity,
@@ -128,5 +196,8 @@ export {
128
196
  formatRuntimeDriftWarning,
129
197
  BRIEF_LINE_MAX_WIDTH,
130
198
  formatRuntimeDriftBriefLines,
131
- formatRuntimeUnverifiedBriefLine
199
+ formatRuntimeUnverifiedBriefLine,
200
+ collectDistinctHookRoots,
201
+ compareAllHookRoots,
202
+ formatRuntimeDriftBootLines
132
203
  };
@@ -29,7 +29,7 @@ import {
29
29
  registerUpdateBugReport,
30
30
  resolveAttribution,
31
31
  verificationArtifactInputSchema
32
- } from "./chunk-LGZUV4MY.js";
32
+ } from "./chunk-Z3JFXAIN.js";
33
33
  import {
34
34
  persistSupportArtifact,
35
35
  supportClusterClearableSchema,
@@ -43,8 +43,7 @@ import {
43
43
  import {
44
44
  BugCensusError,
45
45
  fetchBugCensus,
46
- formatBugCensus,
47
- hasSupportAdminToken
46
+ formatBugCensus
48
47
  } from "./chunk-L6DCLZG7.js";
49
48
  import {
50
49
  queueSupportStatusUpdateSync
@@ -81,7 +80,7 @@ import {
81
80
  import {
82
81
  isRerankerAvailable,
83
82
  rerankWithScores
84
- } from "./chunk-I5GDELXL.js";
83
+ } from "./chunk-SBOUSFLP.js";
85
84
  import {
86
85
  listRecentSessionEvents
87
86
  } from "./chunk-ZB3ZSZSY.js";
@@ -275,7 +274,7 @@ import {
275
274
  import {
276
275
  readSupervisionState,
277
276
  runHealthCheck
278
- } from "./chunk-5I3BXKOK.js";
277
+ } from "./chunk-N4JBGOHA.js";
279
278
  import {
280
279
  checkCpuStealSync
281
280
  } from "./chunk-SSC7EKY2.js";
@@ -296,15 +295,16 @@ import {
296
295
  hasFailures,
297
296
  runHealth,
298
297
  runTest
299
- } from "./chunk-S4M2AHSM.js";
298
+ } from "./chunk-QEFKJLEY.js";
300
299
  import {
301
300
  isSupportReportSentStatus,
302
301
  markSupportReportSent
303
302
  } from "./chunk-MMRUBN3I.js";
304
303
  import {
304
+ hasSupportAdminAccess,
305
305
  resolveSupportAdminToken,
306
306
  supportAdminHeaders
307
- } from "./chunk-2XZ6X3PJ.js";
307
+ } from "./chunk-6QBBJJK2.js";
308
308
  import {
309
309
  renderClientCOOTemplate
310
310
  } from "./chunk-MRQIIVHK.js";
@@ -376,7 +376,7 @@ import {
376
376
  hybridSearch,
377
377
  isCapturedSearchCall,
378
378
  recentRecords
379
- } from "./chunk-2JZPWAV4.js";
379
+ } from "./chunk-NSJUD5BW.js";
380
380
  import {
381
381
  buildFtsMatch,
382
382
  tokenizeForFts
@@ -20148,7 +20148,7 @@ ${err.stack ?? ""}` : String(err);
20148
20148
  gate("registerUpdateBugReport", registerUpdateBugReport);
20149
20149
  gate("registerUpdateFeatureRequest", registerUpdateFeatureRequest);
20150
20150
  gate("registerSupportTools", registerSupportTools);
20151
- if (hasSupportAdminToken()) {
20151
+ if (hasSupportAdminAccess()) {
20152
20152
  gate("registerListBugReports", registerListBugReports);
20153
20153
  gate("registerGetBugReport", registerGetBugReport);
20154
20154
  gate("registerTriageBugReport", registerTriageBugReport);
@@ -20157,7 +20157,7 @@ ${err.stack ?? ""}` : String(err);
20157
20157
  gate("registerTriageFeatureRequest", registerTriageFeatureRequest);
20158
20158
  }
20159
20159
  }
20160
- if (hasSupportAdminToken()) {
20160
+ if (hasSupportAdminAccess()) {
20161
20161
  gate("registerBugCensus", registerBugCensus);
20162
20162
  }
20163
20163
  if (exposeConsolidatedDiagnostics) {
@@ -1,9 +1,10 @@
1
1
  import {
2
+ collectDistinctHookRoots,
3
+ compareAllHookRoots,
2
4
  compareRuntimeIdentity,
3
5
  formatRuntimeDriftWarning,
4
- pkgRootFromHookTarget,
5
6
  readBuildIdentity
6
- } from "./chunk-ZM22ANTG.js";
7
+ } from "./chunk-C4IHTLDE.js";
7
8
  import {
8
9
  checkCpuStealSync
9
10
  } from "./chunk-SSC7EKY2.js";
@@ -342,20 +343,16 @@ function checkRuntimeDrift(pkgRoot, opts) {
342
343
  }];
343
344
  }
344
345
  const hookReport = auditRegisteredHookLiveness({ home: opts?.home });
345
- const hookProbe = hookReport.probes.find(
346
- (p) => p.runtime === "claude" && p.target && /[\\/]dist[\\/]hooks[\\/]/.test(p.target)
346
+ const hookRoots = collectDistinctHookRoots(hookReport.probes);
347
+ const hookResults = compareAllHookRoots(hookRoots, installed);
348
+ const hookChecks = hookResults.map(
349
+ (result, i) => formatDriftCheck(hookResults.length === 1 ? "exed/runtime-drift-hooks" : `exed/runtime-drift-hooks[${i + 1}]`, result)
347
350
  );
348
- const hookRoot = hookProbe?.target ? pkgRootFromHookTarget(hookProbe.target) : null;
349
- const hookRunning = hookRoot ? readBuildIdentity(hookRoot) : null;
350
- const hookResult = compareRuntimeIdentity("hooks", hookRunning, installed);
351
351
  const daemonScript = resolveRunningDaemonScript(opts?.pidFile ?? path2.join(EXE_AI_DIR, "exed.pid"));
352
352
  const daemonRoot = daemonScript ? checkoutRootFromScript(daemonScript) : null;
353
353
  const daemonRunning = daemonRoot ? readBuildIdentity(daemonRoot) : null;
354
354
  const daemonResult = compareRuntimeIdentity("daemon", daemonRunning, installed);
355
- return [
356
- formatDriftCheck("exed/runtime-drift-hooks", hookResult),
357
- formatDriftCheck("exed/runtime-drift-daemon", daemonResult)
358
- ];
355
+ return [...hookChecks, formatDriftCheck("exed/runtime-drift-daemon", daemonResult)];
359
356
  }
360
357
  function checkTaskSystem(pkgRoot) {
361
358
  const results = [];
@@ -597,7 +597,7 @@ async function hybridSearch(queryText, agentId, options) {
597
597
  let rerankerAvailable = false;
598
598
  if (process.env.EXE_IS_DAEMON === "1") {
599
599
  try {
600
- const { isRerankerAvailable } = await import("./reranker-WJ5L6IGK.js");
600
+ const { isRerankerAvailable } = await import("./reranker-YBVXW2ZZ.js");
601
601
  rerankerAvailable = isRerankerAvailable();
602
602
  } catch {
603
603
  }
@@ -828,7 +828,7 @@ ${hydeDoc}`;
828
828
  try {
829
829
  let rerankedRecords;
830
830
  if (graphContextMap.size > 0) {
831
- const { rerankWithContext } = await import("./reranker-WJ5L6IGK.js");
831
+ const { rerankWithContext } = await import("./reranker-YBVXW2ZZ.js");
832
832
  const candidates = merged.map((m) => ({
833
833
  text: m.raw_text,
834
834
  context: graphContextMap.get(m.id)
@@ -836,7 +836,7 @@ ${hydeDoc}`;
836
836
  const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
837
837
  rerankedRecords = scored.map((s) => merged[s.index]);
838
838
  } else {
839
- const { rerank } = await import("./reranker-WJ5L6IGK.js");
839
+ const { rerank } = await import("./reranker-YBVXW2ZZ.js");
840
840
  rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
841
841
  }
842
842
  if (rerankedRecords.length > 0) {
@@ -2,9 +2,11 @@ import {
2
2
  markSupportReportSentSync
3
3
  } from "./chunk-MMRUBN3I.js";
4
4
  import {
5
+ SupportAdminTransportError,
6
+ assertSecureTransport,
5
7
  resolveSupportAdminToken,
6
8
  supportAdminHeaders
7
- } from "./chunk-2XZ6X3PJ.js";
9
+ } from "./chunk-6QBBJJK2.js";
8
10
  import {
9
11
  loadLicense,
10
12
  readCachedLicenseToken
@@ -214,8 +216,19 @@ async function maybeCloseAdmin(id, adminEndpoint, version, config) {
214
216
  if (!token) {
215
217
  return { check: "askexe_admin_autoclose", level: "warn", detail: "skipped; admin token is AskExe-only" };
216
218
  }
219
+ let parsed;
217
220
  try {
218
- const res = await fetch(`${adminEndpoint}/${encodeURIComponent(id)}`, {
221
+ parsed = assertSecureTransport(`${adminEndpoint}/${encodeURIComponent(id)}`, { tokenName: "AskExe support admin token" });
222
+ } catch (err) {
223
+ return {
224
+ check: "askexe_admin_autoclose",
225
+ level: "warn",
226
+ detail: err instanceof SupportAdminTransportError ? err.message : "refused: insecure admin endpoint",
227
+ next: "Set ASKEXE_SUPPORT_ADMIN_ENDPOINT to an https:// URL."
228
+ };
229
+ }
230
+ try {
231
+ const res = await fetch(parsed, {
219
232
  method: "PATCH",
220
233
  headers: { authorization: `Bearer ${token}`, "content-type": "application/json" },
221
234
  // The smoke report is NOT a defect, so there is no fix commit and no defect
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-WCGNCH3Q.js";
4
4
  import {
5
5
  registerAllTools
6
- } from "./chunk-6AJXDRAH.js";
6
+ } from "./chunk-DDWLI43S.js";
7
7
 
8
8
  // src/mcp/mcp-surface-hash.ts
9
9
  function computeMcpSurfaceHash() {
@@ -24,7 +24,7 @@ import {
24
24
  import {
25
25
  resolveSupportAdminToken,
26
26
  supportAdminHeaders
27
- } from "./chunk-2XZ6X3PJ.js";
27
+ } from "./chunk-6QBBJJK2.js";
28
28
  import {
29
29
  SUPPORT_PRODUCTS,
30
30
  describeUpstreamFailure,
@@ -3,13 +3,13 @@ import {
3
3
  buildEmployeeBootBrief,
4
4
  capBehaviorsToCharBudget,
5
5
  renderBehaviorSection
6
- } from "./chunk-K7D2HVUI.js";
6
+ } from "./chunk-A5YNPQBD.js";
7
7
  import "./chunk-HSFBNCNC.js";
8
8
  import "./chunk-APOS4EIO.js";
9
9
  import "./chunk-L3L4KCBJ.js";
10
10
  import "./chunk-ZD5TZZXU.js";
11
11
  import "./chunk-QGGH7LOU.js";
12
- import "./chunk-2JZPWAV4.js";
12
+ import "./chunk-NSJUD5BW.js";
13
13
  import "./chunk-VMHZSZQJ.js";
14
14
  import "./chunk-DJKUA73M.js";
15
15
  import "./chunk-MXEEMTCV.js";
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  computeMcpSurfaceHash
4
- } from "./chunk-V5MPJSWQ.js";
4
+ } from "./chunk-RKEREP4O.js";
5
5
  import "./chunk-WCGNCH3Q.js";
6
- import "./chunk-6AJXDRAH.js";
6
+ import "./chunk-DDWLI43S.js";
7
7
  import "./chunk-3HDUO5XG.js";
8
8
  import "./chunk-2NNTKVDN.js";
9
9
  import "./chunk-AZIJQ6IM.js";
10
10
  import "./chunk-557C2IGL.js";
11
- import "./chunk-LGZUV4MY.js";
11
+ import "./chunk-Z3JFXAIN.js";
12
12
  import "./chunk-MMQH7AM7.js";
13
13
  import "./chunk-L6DCLZG7.js";
14
14
  import "./chunk-USZHUBHT.js";
@@ -17,7 +17,7 @@ import "./chunk-DLATN3UV.js";
17
17
  import "./chunk-TCGYYUDX.js";
18
18
  import "./chunk-FBGQXSBL.js";
19
19
  import "./chunk-LGTGY32U.js";
20
- import "./chunk-I5GDELXL.js";
20
+ import "./chunk-SBOUSFLP.js";
21
21
  import "./chunk-ZB3ZSZSY.js";
22
22
  import "./chunk-KPJYEYGL.js";
23
23
  import "./chunk-KRNF2TTT.js";
@@ -65,8 +65,8 @@ import "./chunk-B4LS4IPJ.js";
65
65
  import "./chunk-Y3CXCRCP.js";
66
66
  import "./chunk-RGPEUXOE.js";
67
67
  import "./chunk-3OEVDGIY.js";
68
- import "./chunk-5I3BXKOK.js";
69
- import "./chunk-ZM22ANTG.js";
68
+ import "./chunk-N4JBGOHA.js";
69
+ import "./chunk-C4IHTLDE.js";
70
70
  import "./chunk-SSC7EKY2.js";
71
71
  import "./chunk-ZXMNWYAU.js";
72
72
  import "./chunk-YNBQSYY5.js";
@@ -79,9 +79,9 @@ import "./chunk-ZPPPHVSU.js";
79
79
  import "./chunk-5TAJDCZY.js";
80
80
  import "./chunk-YQGMSXT5.js";
81
81
  import "./chunk-CBPNZFSU.js";
82
- import "./chunk-S4M2AHSM.js";
82
+ import "./chunk-QEFKJLEY.js";
83
83
  import "./chunk-MMRUBN3I.js";
84
- import "./chunk-2XZ6X3PJ.js";
84
+ import "./chunk-6QBBJJK2.js";
85
85
  import "./chunk-GSOKSUBB.js";
86
86
  import "./chunk-MRQIIVHK.js";
87
87
  import "./chunk-YROE2BJ6.js";
@@ -111,7 +111,7 @@ import "./chunk-QGGH7LOU.js";
111
111
  import "./chunk-OV5RG5UT.js";
112
112
  import "./chunk-2MUKF6YI.js";
113
113
  import "./chunk-DLJSC6YA.js";
114
- import "./chunk-2JZPWAV4.js";
114
+ import "./chunk-NSJUD5BW.js";
115
115
  import "./chunk-VMHZSZQJ.js";
116
116
  import "./chunk-DJKUA73M.js";
117
117
  import "./chunk-MXEEMTCV.js";
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  hybridSearch,
10
10
  lightweightSearch
11
- } from "../chunk-2JZPWAV4.js";
11
+ } from "../chunk-NSJUD5BW.js";
12
12
  import "../chunk-VMHZSZQJ.js";
13
13
  import "../chunk-DJKUA73M.js";
14
14
  import {
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-09-27T11:20:45.084Z",
3
+ "generatedAt": "2026-09-27T13:10:14.947Z",
4
4
  "hashes": {
5
5
  "bug-report-worker.js": "494b08796a02ef90db7bd6480fedaeb229a6fff22c962ceed12a6d9ab0ac73b8",
6
6
  "codex-stop-task-finalizer.js": "a016591ca826a5f7233b788eb61f61522de6faa09d6c1097c58154f49171d7a5",
7
7
  "commit-complete.js": "e2e49d5b001373c9514e5504d3fac4fcc717c65905b3b9bc14a55112c41c1697",
8
- "error-recall.js": "afef8fdba4476384ea11dd3873527a08e7f4d1dd322b2daed746935a3d19766a",
8
+ "error-recall.js": "e57d311bf48077745b606cc13732928a5380ff88aa96140be3101ae5d48b1850",
9
9
  "exe-heartbeat-hook.js": "c77f6dc90d762c2f82ff08a2f17862c35e07f98dc3b49dbf8975351af5ee5184",
10
10
  "ingest-worker.js": "2c0362038195e8480866640c7deb78131f102863ad1f4b7cfb7468353f70e036",
11
11
  "ingest.js": "ebbc69702029821d5ae1564e6c23ac48d47aedd85f37b64ca0a9c9d2eba6c591",
@@ -14,10 +14,10 @@
14
14
  "post-compact.js": "bc717725f8daf079c158cec3b423c67ea00e5cad26b8f9910495142596f8dbfe",
15
15
  "post-tool-combined.js": "6bc5724e6469021292eac22f5516b6bde510e2d283e7b29f36113198ecc0eac9",
16
16
  "pre-compact.js": "859ebf31b4ed6d44a2f6caf96ead56b92612d02a19195230aa4d46464cbb98b0",
17
- "pre-tool-use.js": "360dce8e74104feafce9bb500a64341800615f96f9560c063aeee36f43e64dc2",
18
- "prompt-submit.js": "12e7e47e4e72ec3034d825eca1dcb8ab9838cfda275da0030938cc53a9fcea79",
17
+ "pre-tool-use.js": "010730996e737dbdfe15639c9513e58969cfc5616340006c2a20a74c51811878",
18
+ "prompt-submit.js": "05707c69b2ab956e309e58ea1c05ef8d199ccf4ab20555b214ca327b1eca0f1c",
19
19
  "session-end.js": "5117c01fe840fffc4710a13699787494e6e2a9c67df5b88fd6da8f3ddb4d6081",
20
- "session-start.js": "7c7b2c053384297f7706615d79dee6147fcd5c06b2675f0f5710ab13aa994bfa",
20
+ "session-start.js": "117cd252465f037a4eade2bbaeb622b05dff8a74bdcc676697c3b02610e0a151",
21
21
  "stop.js": "6357c33cdbe5033e3a7568fbbaf6d9bb1b4770f27dc104725a852df1cbb8e699",
22
22
  "subagent-stop.js": "dbd0109cbb245d7659191b265d7841791f46ff9139c840abf177415f2322bf51",
23
23
  "summary-worker.js": "a52f3a3b1659da74aaee7a2cf6e909bc6f7189fd3cbe64ad1e9a22d1c7fe4c9f"
@@ -23,7 +23,7 @@ try {
23
23
  }
24
24
  }
25
25
  try {
26
- await import("../pre-tool-use-impl-62MDMGZA.js");
26
+ await import("../pre-tool-use-impl-ALN4BK7X.js");
27
27
  } catch (err) {
28
28
  process.stderr.write(
29
29
  `[exe-os:hook:pre-tool-use] FATAL loading hook implementation: ${err instanceof Error ? err.stack ?? err.message : String(err)}
@@ -16,7 +16,7 @@ import {
16
16
  import {
17
17
  hybridSearch,
18
18
  lightweightSearch
19
- } from "../chunk-2JZPWAV4.js";
19
+ } from "../chunk-NSJUD5BW.js";
20
20
  import "../chunk-VMHZSZQJ.js";
21
21
  import "../chunk-DJKUA73M.js";
22
22
  import "../chunk-MXEEMTCV.js";
@@ -258,7 +258,7 @@ You are **${ag.agentId}**. The daemon was degraded at boot \u2014 memory context
258
258
  if (source === "resume") {
259
259
  header = "## Resuming Session\nHere's where you left off:";
260
260
  try {
261
- const { buildCatchupBrief } = await import("../catchup-brief-O3RVR73X.js");
261
+ const { buildCatchupBrief } = await import("../catchup-brief-JQIWOJEN.js");
262
262
  const brief = await buildCatchupBrief(
263
263
  agentId,
264
264
  projectName,
@@ -327,7 +327,7 @@ flow, so bug fixes are fast.`;
327
327
  `;
328
328
  if (agentId !== "default" && !daemonDegraded) {
329
329
  try {
330
- const { buildEmployeeBootBrief } = await import("../employee-boot-brief-Q5QAW5ET.js");
330
+ const { buildEmployeeBootBrief } = await import("../employee-boot-brief-FUKC7RGM.js");
331
331
  const memoryBrief = await buildEmployeeBootBrief({
332
332
  agentId,
333
333
  cwd: data.cwd || process.cwd(),
@@ -6568,7 +6568,7 @@ function startBugLandedReconcile() {
6568
6568
  fired("bug_landed_reconcile");
6569
6569
  if (sweepStarved("bug_landed_reconcile")) return;
6570
6570
  try {
6571
- const { reconcileLandedBugs } = await import("../bug-landed-reconciler-54HRLSOX.js");
6571
+ const { reconcileLandedBugs } = await import("../bug-landed-reconciler-PWRXOBOE.js");
6572
6572
  const result = await reconcileLandedBugs();
6573
6573
  const { reposScanned, reposErrored, prsScanned, matched, reconciled, skipped, errored } = result.summary;
6574
6574
  process.stderr.write(
@@ -6590,12 +6590,12 @@ function startBugLandedReconcile() {
6590
6590
  }
6591
6591
  async function maybeScheduleBugLandedReconcile() {
6592
6592
  try {
6593
- const { hasSupportAdminAccess } = await import("../support-bug-actions-LBFOCVHF.js");
6593
+ const { hasSupportAdminAccess } = await import("../support-bug-actions-ASWOZHR5.js");
6594
6594
  if (!await hasSupportAdminAccess()) {
6595
6595
  process.stderr.write("[exed] Bug-landed reconcile: no AskExe support admin token configured \u2014 skipping (customer install)\n");
6596
6596
  return;
6597
6597
  }
6598
- const { isGhAvailableAndAuthenticated } = await import("../bug-landed-reconciler-54HRLSOX.js");
6598
+ const { isGhAvailableAndAuthenticated } = await import("../bug-landed-reconciler-PWRXOBOE.js");
6599
6599
  if (!await isGhAvailableAndAuthenticated()) {
6600
6600
  process.stderr.write("[exed] Bug-landed reconcile: gh CLI not available/authenticated \u2014 skipping\n");
6601
6601
  return;
@@ -9944,7 +9944,7 @@ function startLocalFirstTimers() {
9944
9944
  const TELEMETRY_DAILY_MS = 24 * 60 * 60 * 1e3;
9945
9945
  const telemetryDaily = async () => {
9946
9946
  try {
9947
- const { sendTelemetry, isTelemetryEnabled } = await import("../telemetry-upload-G33XS2I6.js");
9947
+ const { sendTelemetry, isTelemetryEnabled } = await import("../telemetry-upload-DYE34SI5.js");
9948
9948
  if (!isTelemetryEnabled()) return;
9949
9949
  const { upstream } = await sendTelemetry(24);
9950
9950
  if (upstream.startsWith("sent")) {
@@ -10,7 +10,7 @@ import {
10
10
  rrfMerge,
11
11
  rrfMergeMulti,
12
12
  runGraphArm
13
- } from "../chunk-2JZPWAV4.js";
13
+ } from "../chunk-NSJUD5BW.js";
14
14
  import "../chunk-VMHZSZQJ.js";
15
15
  import "../chunk-DJKUA73M.js";
16
16
  import "../chunk-MXEEMTCV.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  registerAllTools
3
- } from "../chunk-6AJXDRAH.js";
3
+ } from "../chunk-DDWLI43S.js";
4
4
  import "../chunk-3HDUO5XG.js";
5
5
  import "../chunk-2NNTKVDN.js";
6
6
  import "../chunk-AZIJQ6IM.js";
7
7
  import "../chunk-557C2IGL.js";
8
- import "../chunk-LGZUV4MY.js";
8
+ import "../chunk-Z3JFXAIN.js";
9
9
  import "../chunk-MMQH7AM7.js";
10
10
  import "../chunk-L6DCLZG7.js";
11
11
  import "../chunk-USZHUBHT.js";
@@ -14,7 +14,7 @@ import "../chunk-DLATN3UV.js";
14
14
  import "../chunk-TCGYYUDX.js";
15
15
  import "../chunk-FBGQXSBL.js";
16
16
  import "../chunk-LGTGY32U.js";
17
- import "../chunk-I5GDELXL.js";
17
+ import "../chunk-SBOUSFLP.js";
18
18
  import "../chunk-ZB3ZSZSY.js";
19
19
  import "../chunk-KPJYEYGL.js";
20
20
  import "../chunk-KRNF2TTT.js";
@@ -62,8 +62,8 @@ import "../chunk-B4LS4IPJ.js";
62
62
  import "../chunk-Y3CXCRCP.js";
63
63
  import "../chunk-RGPEUXOE.js";
64
64
  import "../chunk-3OEVDGIY.js";
65
- import "../chunk-5I3BXKOK.js";
66
- import "../chunk-ZM22ANTG.js";
65
+ import "../chunk-N4JBGOHA.js";
66
+ import "../chunk-C4IHTLDE.js";
67
67
  import "../chunk-SSC7EKY2.js";
68
68
  import "../chunk-ZXMNWYAU.js";
69
69
  import "../chunk-YNBQSYY5.js";
@@ -76,9 +76,9 @@ import "../chunk-ZPPPHVSU.js";
76
76
  import "../chunk-5TAJDCZY.js";
77
77
  import "../chunk-YQGMSXT5.js";
78
78
  import "../chunk-CBPNZFSU.js";
79
- import "../chunk-S4M2AHSM.js";
79
+ import "../chunk-QEFKJLEY.js";
80
80
  import "../chunk-MMRUBN3I.js";
81
- import "../chunk-2XZ6X3PJ.js";
81
+ import "../chunk-6QBBJJK2.js";
82
82
  import "../chunk-GSOKSUBB.js";
83
83
  import "../chunk-MRQIIVHK.js";
84
84
  import "../chunk-YROE2BJ6.js";
@@ -108,7 +108,7 @@ import "../chunk-QGGH7LOU.js";
108
108
  import "../chunk-OV5RG5UT.js";
109
109
  import "../chunk-2MUKF6YI.js";
110
110
  import "../chunk-DLJSC6YA.js";
111
- import "../chunk-2JZPWAV4.js";
111
+ import "../chunk-NSJUD5BW.js";
112
112
  import "../chunk-VMHZSZQJ.js";
113
113
  import "../chunk-DJKUA73M.js";
114
114
  import "../chunk-MXEEMTCV.js";
@@ -10,12 +10,12 @@ import {
10
10
  } from "../chunk-WCGNCH3Q.js";
11
11
  import {
12
12
  registerAllTools
13
- } from "../chunk-6AJXDRAH.js";
13
+ } from "../chunk-DDWLI43S.js";
14
14
  import "../chunk-3HDUO5XG.js";
15
15
  import "../chunk-2NNTKVDN.js";
16
16
  import "../chunk-AZIJQ6IM.js";
17
17
  import "../chunk-557C2IGL.js";
18
- import "../chunk-LGZUV4MY.js";
18
+ import "../chunk-Z3JFXAIN.js";
19
19
  import "../chunk-MMQH7AM7.js";
20
20
  import "../chunk-L6DCLZG7.js";
21
21
  import "../chunk-USZHUBHT.js";
@@ -24,7 +24,7 @@ import "../chunk-DLATN3UV.js";
24
24
  import "../chunk-TCGYYUDX.js";
25
25
  import "../chunk-FBGQXSBL.js";
26
26
  import "../chunk-LGTGY32U.js";
27
- import "../chunk-I5GDELXL.js";
27
+ import "../chunk-SBOUSFLP.js";
28
28
  import "../chunk-ZB3ZSZSY.js";
29
29
  import "../chunk-KPJYEYGL.js";
30
30
  import "../chunk-KRNF2TTT.js";
@@ -77,8 +77,8 @@ import "../chunk-B4LS4IPJ.js";
77
77
  import "../chunk-Y3CXCRCP.js";
78
78
  import "../chunk-RGPEUXOE.js";
79
79
  import "../chunk-3OEVDGIY.js";
80
- import "../chunk-5I3BXKOK.js";
81
- import "../chunk-ZM22ANTG.js";
80
+ import "../chunk-N4JBGOHA.js";
81
+ import "../chunk-C4IHTLDE.js";
82
82
  import "../chunk-SSC7EKY2.js";
83
83
  import "../chunk-ZXMNWYAU.js";
84
84
  import "../chunk-YNBQSYY5.js";
@@ -91,9 +91,9 @@ import "../chunk-ZPPPHVSU.js";
91
91
  import "../chunk-5TAJDCZY.js";
92
92
  import "../chunk-YQGMSXT5.js";
93
93
  import "../chunk-CBPNZFSU.js";
94
- import "../chunk-S4M2AHSM.js";
94
+ import "../chunk-QEFKJLEY.js";
95
95
  import "../chunk-MMRUBN3I.js";
96
- import "../chunk-2XZ6X3PJ.js";
96
+ import "../chunk-6QBBJJK2.js";
97
97
  import "../chunk-GSOKSUBB.js";
98
98
  import "../chunk-MRQIIVHK.js";
99
99
  import "../chunk-YROE2BJ6.js";
@@ -125,7 +125,7 @@ import "../chunk-QGGH7LOU.js";
125
125
  import "../chunk-OV5RG5UT.js";
126
126
  import "../chunk-2MUKF6YI.js";
127
127
  import "../chunk-DLJSC6YA.js";
128
- import "../chunk-2JZPWAV4.js";
128
+ import "../chunk-NSJUD5BW.js";
129
129
  import "../chunk-VMHZSZQJ.js";
130
130
  import "../chunk-DJKUA73M.js";
131
131
  import {
@@ -1101,7 +1101,7 @@ Do NOT attempt workarounds \u2014 direct DB access bypasses encryption, breaks d
1101
1101
  }
1102
1102
  if (!wroteStdout && data.agent_type != null) {
1103
1103
  try {
1104
- const { buildSubagentBootstrapContext } = await import("./subagent-brief-injection-XG557M5A.js");
1104
+ const { buildSubagentBootstrapContext } = await import("./subagent-brief-injection-NMIRQ742.js");
1105
1105
  const subagentBrief = await buildSubagentBootstrapContext(data);
1106
1106
  if (subagentBrief) {
1107
1107
  const output = JSON.stringify({
@@ -5,7 +5,7 @@ import {
5
5
  rerank,
6
6
  rerankWithContext,
7
7
  rerankWithScores
8
- } from "./chunk-I5GDELXL.js";
8
+ } from "./chunk-SBOUSFLP.js";
9
9
  import "./chunk-MMS2HBRT.js";
10
10
  import "./chunk-RH4AH3YB.js";
11
11
  import "./chunk-HSGBZSCA.js";