@askexenow/exe-os 0.9.174 → 0.9.175

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.
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ GlobTool
4
+ } from "../chunk-KCUYRZSX.js";
2
5
  import {
3
6
  GrepTool
4
7
  } from "../chunk-EIT6J37V.js";
@@ -14,9 +17,6 @@ import {
14
17
  import {
15
18
  FileReadTool
16
19
  } from "../chunk-TMEE7AT7.js";
17
- import {
18
- GlobTool
19
- } from "../chunk-KCUYRZSX.js";
20
20
  import {
21
21
  getSessionPrompt
22
22
  } from "../chunk-GSGT3QI5.js";
@@ -8,6 +8,7 @@ import {
8
8
  auditKeyHealth,
9
9
  auditNullVectors,
10
10
  auditOrphanedProjects,
11
+ auditOutbox,
11
12
  auditShards,
12
13
  auditStats,
13
14
  fixBloated,
@@ -19,7 +20,7 @@ import {
19
20
  parseFlags,
20
21
  runAudit,
21
22
  splitAtSentences
22
- } from "../chunk-SBFTWXG3.js";
23
+ } from "../chunk-Y3OLLO3J.js";
23
24
  import "../chunk-L3TB7CC3.js";
24
25
  import "../chunk-6Y4B3QF6.js";
25
26
  import "../chunk-MLKGABMK.js";
@@ -32,6 +33,7 @@ export {
32
33
  auditKeyHealth,
33
34
  auditNullVectors,
34
35
  auditOrphanedProjects,
36
+ auditOutbox,
35
37
  auditShards,
36
38
  auditStats,
37
39
  fixBloated,
@@ -4,7 +4,7 @@ import {
4
4
  } from "../chunk-BA2ZPGZK.js";
5
5
  import {
6
6
  lightweightSearch
7
- } from "../chunk-WFQH2BOA.js";
7
+ } from "../chunk-AR43F5MV.js";
8
8
  import "../chunk-HFYQQKMV.js";
9
9
  import "../chunk-CHCA3ZM2.js";
10
10
  import "../chunk-DOWW3EIO.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  hybridSearch,
4
4
  lightweightSearch
5
- } from "../chunk-WFQH2BOA.js";
5
+ } from "../chunk-AR43F5MV.js";
6
6
  import {
7
7
  initStore
8
8
  } from "../chunk-HFYQQKMV.js";
@@ -4,7 +4,7 @@ import {
4
4
  main,
5
5
  runHealth,
6
6
  runTest
7
- } from "../chunk-TOB3WKSS.js";
7
+ } from "../chunk-46Q3LLXC.js";
8
8
  import "../chunk-MVMMULOJ.js";
9
9
  import "../chunk-4GXRETYL.js";
10
10
  import "../chunk-LYH5HE24.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  lightweightSearch
3
- } from "./chunk-WFQH2BOA.js";
3
+ } from "./chunk-AR43F5MV.js";
4
4
  import "./chunk-HFYQQKMV.js";
5
5
  import "./chunk-CHCA3ZM2.js";
6
6
  import "./chunk-DOWW3EIO.js";
@@ -262,19 +262,67 @@ function nextForPostFailure(status) {
262
262
  if (status >= 500) return "AskExe support intake is unhealthy server-side. Try again shortly and report the local file path.";
263
263
  return "Run `exe-os support health`; if it passes, send this output to AskExe.";
264
264
  }
265
+ async function runFlush(json) {
266
+ const { flushSupportOutbox } = await import("./support-outbox-KEJ73I3F.js");
267
+ const result = await flushSupportOutbox({ maxPerFlush: 10 });
268
+ if (json) {
269
+ console.log(JSON.stringify(result, null, 2));
270
+ return;
271
+ }
272
+ console.log("\nexe-os support flush\n");
273
+ console.log(` Bug reports sent: ${result.bugsSent}`);
274
+ console.log(` Feature requests sent: ${result.featuresSent}`);
275
+ console.log(` Errors: ${result.errors}`);
276
+ console.log(` Skipped: ${result.skipped}`);
277
+ console.log("");
278
+ const total = result.bugsSent + result.featuresSent;
279
+ if (total > 0) {
280
+ console.log(`Flushed ${total} item(s) to AskExe.`);
281
+ } else if (result.errors > 0) {
282
+ console.log("Nothing sent \u2014 network errors occurred. Retry later.");
283
+ } else {
284
+ console.log("Outbox is empty \u2014 nothing to flush.");
285
+ }
286
+ console.log("");
287
+ }
288
+ async function runStatus(json) {
289
+ const { getOutboxStatus } = await import("./support-outbox-KEJ73I3F.js");
290
+ const status = await getOutboxStatus();
291
+ if (json) {
292
+ console.log(JSON.stringify(status, null, 2));
293
+ return;
294
+ }
295
+ console.log("\nexe-os support status\n");
296
+ const bugs = status.bugReports;
297
+ const features = status.featureRequests;
298
+ console.log(` Bug reports: ${bugs.unsent} unsent / ${bugs.total} total${bugs.oldest ? ` (oldest: ${bugs.oldest.slice(0, 10)})` : ""}`);
299
+ console.log(` Feature requests: ${features.unsent} unsent / ${features.total} total${features.oldest ? ` (oldest: ${features.oldest.slice(0, 10)})` : ""}`);
300
+ console.log("");
301
+ const totalUnsent = bugs.unsent + features.unsent;
302
+ if (totalUnsent > 0) {
303
+ console.log(`${totalUnsent} unsent item(s). Run \`exe-os support flush\` to send manually.`);
304
+ } else {
305
+ console.log("All items sent \u2014 outbox is clear.");
306
+ }
307
+ console.log("");
308
+ }
265
309
  function printHelp() {
266
310
  console.log(`
267
311
  exe-os support
268
312
 
269
- Customer-safe diagnostics for AskExe bug-report intake.
313
+ Customer-safe diagnostics for AskExe support intake.
270
314
 
271
315
  Commands:
272
316
  exe-os support health Check local setup + AskExe support server health
273
317
  exe-os support test --project hygo Send a safe smoke report end-to-end
318
+ exe-os support flush Force-flush unsent bug reports + feature requests
319
+ exe-os support status Show outbox status (unsent counts)
274
320
 
275
321
  What success means:
276
322
  health = this device looks ready
277
323
  test = AskExe received a real report from this device
324
+ flush = all unsent items attempted delivery
325
+ status = visibility into what's queued
278
326
  `);
279
327
  }
280
328
  function output(rows, json, command) {
@@ -10,6 +10,10 @@ import {
10
10
  import {
11
11
  getToolCapabilityIndex
12
12
  } from "./chunk-6BZF3TEG.js";
13
+ import {
14
+ isRerankerAvailable,
15
+ rerankWithScores
16
+ } from "./chunk-WZTQUBIE.js";
13
17
  import {
14
18
  getEntityByName,
15
19
  getEntityNeighbors,
@@ -25,10 +29,6 @@ import {
25
29
  import {
26
30
  listRecentSessionEvents
27
31
  } from "./chunk-KLHNXG7S.js";
28
- import {
29
- isRerankerAvailable,
30
- rerankWithScores
31
- } from "./chunk-WZTQUBIE.js";
32
32
  import {
33
33
  analyzeBlastRadius,
34
34
  buildCodeContextIndex,
@@ -118,7 +118,7 @@ import {
118
118
  import {
119
119
  formatReport,
120
120
  runAudit
121
- } from "./chunk-SBFTWXG3.js";
121
+ } from "./chunk-Y3OLLO3J.js";
122
122
  import {
123
123
  runHealthCheck
124
124
  } from "./chunk-J73N5EJ6.js";
@@ -126,7 +126,7 @@ import {
126
126
  hasFailures,
127
127
  runHealth,
128
128
  runTest
129
- } from "./chunk-TOB3WKSS.js";
129
+ } from "./chunk-46Q3LLXC.js";
130
130
  import {
131
131
  renderClientCOOTemplate
132
132
  } from "./chunk-GSGT3QI5.js";
@@ -183,7 +183,7 @@ import {
183
183
  import {
184
184
  hybridSearch,
185
185
  recentRecords
186
- } from "./chunk-WFQH2BOA.js";
186
+ } from "./chunk-AR43F5MV.js";
187
187
  import {
188
188
  attachDocumentMetadata,
189
189
  flushBatch,
@@ -618,9 +618,20 @@ async function auditKeyHealth() {
618
618
  return { masterKeyPresent: false, recoveryBackupMarked: false };
619
619
  }
620
620
  }
621
+ async function auditOutbox() {
622
+ try {
623
+ const { getOutboxStatus } = await import("./support-outbox-KEJ73I3F.js");
624
+ return await getOutboxStatus();
625
+ } catch {
626
+ return {
627
+ bugReports: { total: 0, unsent: 0 },
628
+ featureRequests: { total: 0, unsent: 0 }
629
+ };
630
+ }
631
+ }
621
632
  async function runAudit(client, flags) {
622
633
  const runConflicts = flags.conflicts || process.env.EXE_AUDIT_CONFLICTS === "1";
623
- const [stats, nullVectors, duplicates, bloated, fts, orphanedProjects, shards, keyHealth] = await Promise.all([
634
+ const [stats, nullVectors, duplicates, bloated, fts, orphanedProjects, shards, keyHealth, outbox] = await Promise.all([
624
635
  auditStats(client, flags),
625
636
  auditNullVectors(client, flags),
626
637
  auditDuplicates(client, flags),
@@ -628,7 +639,8 @@ async function runAudit(client, flags) {
628
639
  auditFts(client),
629
640
  auditOrphanedProjects(client),
630
641
  auditShards(),
631
- auditKeyHealth()
642
+ auditKeyHealth(),
643
+ auditOutbox()
632
644
  ]);
633
645
  let conflicts;
634
646
  if (runConflicts) {
@@ -649,7 +661,7 @@ async function runAudit(client, flags) {
649
661
  const duplicateCount = duplicates.reduce((sum, d) => sum + d.delete_ids.length, 0);
650
662
  const hookHealth = auditHookHealth();
651
663
  const hookOwnership = auditHookOwnership();
652
- return { stats, nullVectors, duplicates, duplicateCount, bloated, fts, orphanedProjects, conflicts, hookHealth, hookOwnership, shards, keyHealth };
664
+ return { stats, nullVectors, duplicates, duplicateCount, bloated, fts, orphanedProjects, conflicts, hookHealth, hookOwnership, shards, keyHealth, outbox };
653
665
  }
654
666
  function indicator(value, warn) {
655
667
  if (value === 0) return "\u{1F7E2}";
@@ -755,6 +767,13 @@ function formatReport(report, flags) {
755
767
  lines.push(`\u{1F534} Shards: ${fmtNum(sh.unreadable)} unreadable (${names}${sh.unreadableNames.length > 5 ? ", ..." : ""})`);
756
768
  }
757
769
  }
770
+ const ob = report.outbox;
771
+ const unsentTotal = ob.bugReports.unsent + ob.featureRequests.unsent;
772
+ if (unsentTotal === 0) {
773
+ lines.push("\u{1F7E2} Support outbox: all items sent");
774
+ } else {
775
+ lines.push(`\u{1F7E0} Support outbox: ${fmtNum(unsentTotal)} unsent (${ob.bugReports.unsent} bugs, ${ob.featureRequests.unsent} features)`);
776
+ }
758
777
  lines.push("");
759
778
  if (flags.verbose) {
760
779
  if (report.duplicates.length > 0) {
@@ -1028,6 +1047,7 @@ export {
1028
1047
  auditHookOwnership,
1029
1048
  auditShards,
1030
1049
  auditKeyHealth,
1050
+ auditOutbox,
1031
1051
  runAudit,
1032
1052
  formatReport,
1033
1053
  fixNullVectors,
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  hybridSearch,
6
6
  lightweightSearch
7
- } from "../chunk-WFQH2BOA.js";
7
+ } from "../chunk-AR43F5MV.js";
8
8
  import {
9
9
  initStore
10
10
  } from "../chunk-HFYQQKMV.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  hybridSearch,
3
3
  lightweightSearch
4
- } from "../chunk-WFQH2BOA.js";
4
+ } from "../chunk-AR43F5MV.js";
5
5
  import {
6
6
  initStore
7
7
  } from "../chunk-HFYQQKMV.js";
@@ -135,7 +135,7 @@ You are **${ag.agentId}** (${ag.agentRole}). Daemon is degraded \u2014 memory un
135
135
  query = `last actions on ${projectName}`;
136
136
  header = "## Resuming Session\nHere's where you left off:";
137
137
  try {
138
- const { buildCatchupBrief } = await import("../catchup-brief-KUESSOKQ.js");
138
+ const { buildCatchupBrief } = await import("../catchup-brief-QT2OPLCK.js");
139
139
  const brief = await buildCatchupBrief(
140
140
  agentId,
141
141
  projectName,
@@ -5,7 +5,7 @@ import {
5
5
  recentRecords,
6
6
  rrfMerge,
7
7
  rrfMergeMulti
8
- } from "../chunk-WFQH2BOA.js";
8
+ } from "../chunk-AR43F5MV.js";
9
9
  import "../chunk-HFYQQKMV.js";
10
10
  import "../chunk-CHCA3ZM2.js";
11
11
  import "../chunk-DOWW3EIO.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  registerAllTools
3
- } from "../chunk-MVPJEV6U.js";
3
+ } from "../chunk-UUJOPO6M.js";
4
4
  import "../chunk-PLNYW6PA.js";
5
5
  import "../chunk-R4IK2YT3.js";
6
6
  import "../chunk-VCCIWTWG.js";
7
7
  import "../chunk-6BZF3TEG.js";
8
+ import "../chunk-WZTQUBIE.js";
8
9
  import "../chunk-XOVQ43JR.js";
9
10
  import "../chunk-557C2IGL.js";
10
11
  import "../chunk-E6ORBQHP.js";
11
12
  import "../chunk-KLHNXG7S.js";
12
- import "../chunk-WZTQUBIE.js";
13
13
  import "../chunk-PMMPAFGZ.js";
14
14
  import "../chunk-GROYT25I.js";
15
15
  import "../chunk-ZR2ZH5CN.js";
@@ -35,10 +35,10 @@ import "../chunk-46SQTBQW.js";
35
35
  import "../chunk-GP6G6EQI.js";
36
36
  import "../chunk-GUMRIUI5.js";
37
37
  import "../chunk-I7AW4237.js";
38
- import "../chunk-SBFTWXG3.js";
38
+ import "../chunk-Y3OLLO3J.js";
39
39
  import "../chunk-J73N5EJ6.js";
40
40
  import "../chunk-UQICZSRC.js";
41
- import "../chunk-TOB3WKSS.js";
41
+ import "../chunk-46Q3LLXC.js";
42
42
  import "../chunk-GSGT3QI5.js";
43
43
  import "../chunk-3MN7V2SR.js";
44
44
  import "../chunk-LGY2BIOT.js";
@@ -56,7 +56,7 @@ import "../chunk-BA2ZPGZK.js";
56
56
  import "../chunk-2SVJSE6I.js";
57
57
  import "../chunk-D6EK7PYQ.js";
58
58
  import "../chunk-CMFLJNP6.js";
59
- import "../chunk-WFQH2BOA.js";
59
+ import "../chunk-AR43F5MV.js";
60
60
  import "../chunk-HFYQQKMV.js";
61
61
  import "../chunk-CHCA3ZM2.js";
62
62
  import "../chunk-DOWW3EIO.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "../chunk-V4TZI6EO.js";
4
4
  import {
5
5
  registerAllTools
6
- } from "../chunk-MVPJEV6U.js";
6
+ } from "../chunk-UUJOPO6M.js";
7
7
  import {
8
8
  initLicenseGate
9
9
  } from "../chunk-PLNYW6PA.js";
@@ -13,11 +13,11 @@ import {
13
13
  } from "../chunk-R4IK2YT3.js";
14
14
  import "../chunk-VCCIWTWG.js";
15
15
  import "../chunk-6BZF3TEG.js";
16
+ import "../chunk-WZTQUBIE.js";
16
17
  import "../chunk-XOVQ43JR.js";
17
18
  import "../chunk-557C2IGL.js";
18
19
  import "../chunk-E6ORBQHP.js";
19
20
  import "../chunk-KLHNXG7S.js";
20
- import "../chunk-WZTQUBIE.js";
21
21
  import "../chunk-PMMPAFGZ.js";
22
22
  import "../chunk-GROYT25I.js";
23
23
  import "../chunk-ZR2ZH5CN.js";
@@ -43,10 +43,10 @@ import "../chunk-46SQTBQW.js";
43
43
  import "../chunk-GP6G6EQI.js";
44
44
  import "../chunk-GUMRIUI5.js";
45
45
  import "../chunk-I7AW4237.js";
46
- import "../chunk-SBFTWXG3.js";
46
+ import "../chunk-Y3OLLO3J.js";
47
47
  import "../chunk-J73N5EJ6.js";
48
48
  import "../chunk-UQICZSRC.js";
49
- import "../chunk-TOB3WKSS.js";
49
+ import "../chunk-46Q3LLXC.js";
50
50
  import "../chunk-GSGT3QI5.js";
51
51
  import "../chunk-3MN7V2SR.js";
52
52
  import "../chunk-LGY2BIOT.js";
@@ -66,7 +66,7 @@ import "../chunk-BA2ZPGZK.js";
66
66
  import "../chunk-2SVJSE6I.js";
67
67
  import "../chunk-D6EK7PYQ.js";
68
68
  import "../chunk-CMFLJNP6.js";
69
- import "../chunk-WFQH2BOA.js";
69
+ import "../chunk-AR43F5MV.js";
70
70
  import {
71
71
  disposeStore,
72
72
  initStore
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.9.174",
3
+ "version": "0.9.175",
4
4
  "description": "AI employee operating system — persistent memory, task management, and multi-agent coordination for Claude Code.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",
File without changes