@aria-cli/tools 1.0.11 → 1.0.13

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 (231) hide show
  1. package/dist-cjs/index.js +400 -436
  2. package/dist-cjs/network-runtime/index.js +8 -173
  3. package/package.json +6 -6
  4. package/dist-cjs/ask-user-interaction.js +0 -28
  5. package/dist-cjs/ask-user-interaction.js.map +0 -1
  6. package/dist-cjs/cache/web-cache.js +0 -71
  7. package/dist-cjs/cache/web-cache.js.map +0 -1
  8. package/dist-cjs/definitions/arion.js +0 -108
  9. package/dist-cjs/definitions/arion.js.map +0 -1
  10. package/dist-cjs/definitions/browser/browser.js +0 -422
  11. package/dist-cjs/definitions/browser/browser.js.map +0 -1
  12. package/dist-cjs/definitions/browser/index.js +0 -9
  13. package/dist-cjs/definitions/browser/index.js.map +0 -1
  14. package/dist-cjs/definitions/browser/pw-downloads.js +0 -118
  15. package/dist-cjs/definitions/browser/pw-downloads.js.map +0 -1
  16. package/dist-cjs/definitions/browser/pw-interactions.js +0 -214
  17. package/dist-cjs/definitions/browser/pw-interactions.js.map +0 -1
  18. package/dist-cjs/definitions/browser/pw-responses.js +0 -85
  19. package/dist-cjs/definitions/browser/pw-responses.js.map +0 -1
  20. package/dist-cjs/definitions/browser/pw-session.js +0 -327
  21. package/dist-cjs/definitions/browser/pw-session.js.map +0 -1
  22. package/dist-cjs/definitions/browser/pw-shared.js +0 -73
  23. package/dist-cjs/definitions/browser/pw-shared.js.map +0 -1
  24. package/dist-cjs/definitions/browser/pw-snapshot.js +0 -308
  25. package/dist-cjs/definitions/browser/pw-snapshot.js.map +0 -1
  26. package/dist-cjs/definitions/browser/pw-state.js +0 -71
  27. package/dist-cjs/definitions/browser/pw-state.js.map +0 -1
  28. package/dist-cjs/definitions/browser/types.js +0 -6
  29. package/dist-cjs/definitions/browser/types.js.map +0 -1
  30. package/dist-cjs/definitions/code-intelligence.js +0 -474
  31. package/dist-cjs/definitions/code-intelligence.js.map +0 -1
  32. package/dist-cjs/definitions/core.js +0 -134
  33. package/dist-cjs/definitions/core.js.map +0 -1
  34. package/dist-cjs/definitions/delegation.js +0 -516
  35. package/dist-cjs/definitions/delegation.js.map +0 -1
  36. package/dist-cjs/definitions/deploy.js +0 -69
  37. package/dist-cjs/definitions/deploy.js.map +0 -1
  38. package/dist-cjs/definitions/filesystem.js +0 -200
  39. package/dist-cjs/definitions/filesystem.js.map +0 -1
  40. package/dist-cjs/definitions/frg.js +0 -67
  41. package/dist-cjs/definitions/frg.js.map +0 -1
  42. package/dist-cjs/definitions/index.js +0 -44
  43. package/dist-cjs/definitions/index.js.map +0 -1
  44. package/dist-cjs/definitions/memory.js +0 -127
  45. package/dist-cjs/definitions/memory.js.map +0 -1
  46. package/dist-cjs/definitions/messaging.js +0 -632
  47. package/dist-cjs/definitions/messaging.js.map +0 -1
  48. package/dist-cjs/definitions/meta.js +0 -353
  49. package/dist-cjs/definitions/meta.js.map +0 -1
  50. package/dist-cjs/definitions/network.js +0 -163
  51. package/dist-cjs/definitions/network.js.map +0 -1
  52. package/dist-cjs/definitions/outlook.js +0 -281
  53. package/dist-cjs/definitions/outlook.js.map +0 -1
  54. package/dist-cjs/definitions/patch/apply-patch.js +0 -192
  55. package/dist-cjs/definitions/patch/apply-patch.js.map +0 -1
  56. package/dist-cjs/definitions/patch/fuzzy-match.js +0 -173
  57. package/dist-cjs/definitions/patch/fuzzy-match.js.map +0 -1
  58. package/dist-cjs/definitions/patch/index.js +0 -6
  59. package/dist-cjs/definitions/patch/index.js.map +0 -1
  60. package/dist-cjs/definitions/patch/patch-parser.js +0 -216
  61. package/dist-cjs/definitions/patch/patch-parser.js.map +0 -1
  62. package/dist-cjs/definitions/patch/sandbox-paths.js +0 -114
  63. package/dist-cjs/definitions/patch/sandbox-paths.js.map +0 -1
  64. package/dist-cjs/definitions/process/index.js +0 -9
  65. package/dist-cjs/definitions/process/index.js.map +0 -1
  66. package/dist-cjs/definitions/process/process-registry.js +0 -232
  67. package/dist-cjs/definitions/process/process-registry.js.map +0 -1
  68. package/dist-cjs/definitions/process/process.js +0 -390
  69. package/dist-cjs/definitions/process/process.js.map +0 -1
  70. package/dist-cjs/definitions/process/pty-keys.js +0 -260
  71. package/dist-cjs/definitions/process/pty-keys.js.map +0 -1
  72. package/dist-cjs/definitions/process/session-slug.js +0 -146
  73. package/dist-cjs/definitions/process/session-slug.js.map +0 -1
  74. package/dist-cjs/definitions/quip.js +0 -199
  75. package/dist-cjs/definitions/quip.js.map +0 -1
  76. package/dist-cjs/definitions/search.js +0 -64
  77. package/dist-cjs/definitions/search.js.map +0 -1
  78. package/dist-cjs/definitions/session-history.js +0 -73
  79. package/dist-cjs/definitions/session-history.js.map +0 -1
  80. package/dist-cjs/definitions/shell.js +0 -185
  81. package/dist-cjs/definitions/shell.js.map +0 -1
  82. package/dist-cjs/definitions/slack.js +0 -184
  83. package/dist-cjs/definitions/slack.js.map +0 -1
  84. package/dist-cjs/definitions/web.js +0 -113
  85. package/dist-cjs/definitions/web.js.map +0 -1
  86. package/dist-cjs/executors/apply-patch.js +0 -939
  87. package/dist-cjs/executors/apply-patch.js.map +0 -1
  88. package/dist-cjs/executors/arion.js +0 -126
  89. package/dist-cjs/executors/arion.js.map +0 -1
  90. package/dist-cjs/executors/code-intelligence.js +0 -926
  91. package/dist-cjs/executors/code-intelligence.js.map +0 -1
  92. package/dist-cjs/executors/deploy.js +0 -870
  93. package/dist-cjs/executors/deploy.js.map +0 -1
  94. package/dist-cjs/executors/filesystem.js +0 -1168
  95. package/dist-cjs/executors/filesystem.js.map +0 -1
  96. package/dist-cjs/executors/frg-freshness.js +0 -628
  97. package/dist-cjs/executors/frg-freshness.js.map +0 -1
  98. package/dist-cjs/executors/frg.js +0 -335
  99. package/dist-cjs/executors/frg.js.map +0 -1
  100. package/dist-cjs/executors/index.js +0 -144
  101. package/dist-cjs/executors/index.js.map +0 -1
  102. package/dist-cjs/executors/learning-meta.js +0 -1166
  103. package/dist-cjs/executors/learning-meta.js.map +0 -1
  104. package/dist-cjs/executors/lsp-client.js +0 -311
  105. package/dist-cjs/executors/lsp-client.js.map +0 -1
  106. package/dist-cjs/executors/memory.js +0 -797
  107. package/dist-cjs/executors/memory.js.map +0 -1
  108. package/dist-cjs/executors/meta.js +0 -227
  109. package/dist-cjs/executors/meta.js.map +0 -1
  110. package/dist-cjs/executors/process-registry.js +0 -470
  111. package/dist-cjs/executors/process-registry.js.map +0 -1
  112. package/dist-cjs/executors/pty-session-store.js +0 -35
  113. package/dist-cjs/executors/pty-session-store.js.map +0 -1
  114. package/dist-cjs/executors/pty.js +0 -313
  115. package/dist-cjs/executors/pty.js.map +0 -1
  116. package/dist-cjs/executors/restart.js +0 -156
  117. package/dist-cjs/executors/restart.js.map +0 -1
  118. package/dist-cjs/executors/search-freshness.js +0 -235
  119. package/dist-cjs/executors/search-freshness.js.map +0 -1
  120. package/dist-cjs/executors/search-types.js +0 -57
  121. package/dist-cjs/executors/search-types.js.map +0 -1
  122. package/dist-cjs/executors/search.js +0 -103
  123. package/dist-cjs/executors/search.js.map +0 -1
  124. package/dist-cjs/executors/self-diagnose.js +0 -435
  125. package/dist-cjs/executors/self-diagnose.js.map +0 -1
  126. package/dist-cjs/executors/session-history.js +0 -321
  127. package/dist-cjs/executors/session-history.js.map +0 -1
  128. package/dist-cjs/executors/shell-safety.js +0 -479
  129. package/dist-cjs/executors/shell-safety.js.map +0 -1
  130. package/dist-cjs/executors/shell.js +0 -1002
  131. package/dist-cjs/executors/shell.js.map +0 -1
  132. package/dist-cjs/executors/utils.js +0 -74
  133. package/dist-cjs/executors/utils.js.map +0 -1
  134. package/dist-cjs/executors/web.js +0 -548
  135. package/dist-cjs/executors/web.js.map +0 -1
  136. package/dist-cjs/extraction/content-extraction.js +0 -244
  137. package/dist-cjs/extraction/content-extraction.js.map +0 -1
  138. package/dist-cjs/extraction/index.js +0 -9
  139. package/dist-cjs/extraction/index.js.map +0 -1
  140. package/dist-cjs/headless-control-contract.js +0 -973
  141. package/dist-cjs/headless-control-contract.js.map +0 -1
  142. package/dist-cjs/index.js.map +0 -1
  143. package/dist-cjs/local-control-http-auth.js +0 -6
  144. package/dist-cjs/local-control-http-auth.js.map +0 -1
  145. package/dist-cjs/mcp/client.js +0 -186
  146. package/dist-cjs/mcp/client.js.map +0 -1
  147. package/dist-cjs/mcp/connection.js +0 -485
  148. package/dist-cjs/mcp/connection.js.map +0 -1
  149. package/dist-cjs/mcp/index.js +0 -31
  150. package/dist-cjs/mcp/index.js.map +0 -1
  151. package/dist-cjs/mcp/jsonrpc.js +0 -149
  152. package/dist-cjs/mcp/jsonrpc.js.map +0 -1
  153. package/dist-cjs/mcp/types.js +0 -9
  154. package/dist-cjs/mcp/types.js.map +0 -1
  155. package/dist-cjs/network-control-adapter.js +0 -78
  156. package/dist-cjs/network-control-adapter.js.map +0 -1
  157. package/dist-cjs/network-runtime/address-types.js +0 -169
  158. package/dist-cjs/network-runtime/address-types.js.map +0 -1
  159. package/dist-cjs/network-runtime/db-owner-fencing.js +0 -77
  160. package/dist-cjs/network-runtime/db-owner-fencing.js.map +0 -1
  161. package/dist-cjs/network-runtime/delivery-receipts.js +0 -277
  162. package/dist-cjs/network-runtime/delivery-receipts.js.map +0 -1
  163. package/dist-cjs/network-runtime/direct-endpoint-authority.js +0 -30
  164. package/dist-cjs/network-runtime/direct-endpoint-authority.js.map +0 -1
  165. package/dist-cjs/network-runtime/index.js.map +0 -1
  166. package/dist-cjs/network-runtime/local-control-contract.js +0 -634
  167. package/dist-cjs/network-runtime/local-control-contract.js.map +0 -1
  168. package/dist-cjs/network-runtime/node-store-contract.js +0 -39
  169. package/dist-cjs/network-runtime/node-store-contract.js.map +0 -1
  170. package/dist-cjs/network-runtime/pair-route-contract.js +0 -81
  171. package/dist-cjs/network-runtime/pair-route-contract.js.map +0 -1
  172. package/dist-cjs/network-runtime/peer-capabilities.js +0 -38
  173. package/dist-cjs/network-runtime/peer-capabilities.js.map +0 -1
  174. package/dist-cjs/network-runtime/peer-principal-ref.js +0 -16
  175. package/dist-cjs/network-runtime/peer-principal-ref.js.map +0 -1
  176. package/dist-cjs/network-runtime/peer-state-machine.js +0 -130
  177. package/dist-cjs/network-runtime/peer-state-machine.js.map +0 -1
  178. package/dist-cjs/network-runtime/protocol-schemas.js +0 -213
  179. package/dist-cjs/network-runtime/protocol-schemas.js.map +0 -1
  180. package/dist-cjs/network-runtime/runtime-bootstrap-contract.js +0 -64
  181. package/dist-cjs/network-runtime/runtime-bootstrap-contract.js.map +0 -1
  182. package/dist-cjs/outlook/desktop-session.js +0 -319
  183. package/dist-cjs/outlook/desktop-session.js.map +0 -1
  184. package/dist-cjs/policy.js +0 -156
  185. package/dist-cjs/policy.js.map +0 -1
  186. package/dist-cjs/providers/brave.js +0 -67
  187. package/dist-cjs/providers/brave.js.map +0 -1
  188. package/dist-cjs/providers/duckduckgo.js +0 -181
  189. package/dist-cjs/providers/duckduckgo.js.map +0 -1
  190. package/dist-cjs/providers/exa.js +0 -68
  191. package/dist-cjs/providers/exa.js.map +0 -1
  192. package/dist-cjs/providers/firecrawl.js +0 -60
  193. package/dist-cjs/providers/firecrawl.js.map +0 -1
  194. package/dist-cjs/providers/index.js +0 -18
  195. package/dist-cjs/providers/index.js.map +0 -1
  196. package/dist-cjs/providers/jina.js +0 -54
  197. package/dist-cjs/providers/jina.js.map +0 -1
  198. package/dist-cjs/providers/router.js +0 -101
  199. package/dist-cjs/providers/router.js.map +0 -1
  200. package/dist-cjs/providers/search-provider.js +0 -37
  201. package/dist-cjs/providers/search-provider.js.map +0 -1
  202. package/dist-cjs/providers/tavily.js +0 -59
  203. package/dist-cjs/providers/tavily.js.map +0 -1
  204. package/dist-cjs/quip/desktop-session.js +0 -354
  205. package/dist-cjs/quip/desktop-session.js.map +0 -1
  206. package/dist-cjs/registry/index.js +0 -7
  207. package/dist-cjs/registry/index.js.map +0 -1
  208. package/dist-cjs/registry/registry.js +0 -762
  209. package/dist-cjs/registry/registry.js.map +0 -1
  210. package/dist-cjs/runtime-socket-local-control-client.js +0 -368
  211. package/dist-cjs/runtime-socket-local-control-client.js.map +0 -1
  212. package/dist-cjs/security/dns-normalization.js +0 -23
  213. package/dist-cjs/security/dns-normalization.js.map +0 -1
  214. package/dist-cjs/security/dns-pinning.js +0 -161
  215. package/dist-cjs/security/dns-pinning.js.map +0 -1
  216. package/dist-cjs/security/external-content.js +0 -96
  217. package/dist-cjs/security/external-content.js.map +0 -1
  218. package/dist-cjs/security/ssrf.js +0 -222
  219. package/dist-cjs/security/ssrf.js.map +0 -1
  220. package/dist-cjs/slack/desktop-session.js +0 -367
  221. package/dist-cjs/slack/desktop-session.js.map +0 -1
  222. package/dist-cjs/tool-factory.js +0 -51
  223. package/dist-cjs/tool-factory.js.map +0 -1
  224. package/dist-cjs/types.js +0 -9
  225. package/dist-cjs/types.js.map +0 -1
  226. package/dist-cjs/utils/retry.js +0 -170
  227. package/dist-cjs/utils/retry.js.map +0 -1
  228. package/dist-cjs/utils/safe-parse-json.js +0 -165
  229. package/dist-cjs/utils/safe-parse-json.js.map +0 -1
  230. package/dist-cjs/utils/url.js +0 -24
  231. package/dist-cjs/utils/url.js.map +0 -1
@@ -1,435 +0,0 @@
1
- "use strict";
2
- /**
3
- * @aria/tools - Self-diagnose tool executor
4
- *
5
- * Pure signal diagnostic tool. 5 sections, zero noise:
6
- * 1. runtime — process health + resource leaks
7
- * 2. errors — structured errors from JSONL (active + rotated)
8
- * 3. crashes — crash markers + dumps
9
- * 4. databases — sizes, WAL health, schema version
10
- * 5. daemon — daemon audit + delegation journal
11
- */
12
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- var desc = Object.getOwnPropertyDescriptor(m, k);
15
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
- desc = { enumerable: true, get: function() { return m[k]; } };
17
- }
18
- Object.defineProperty(o, k2, desc);
19
- }) : (function(o, m, k, k2) {
20
- if (k2 === undefined) k2 = k;
21
- o[k2] = m[k];
22
- }));
23
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
- Object.defineProperty(o, "default", { enumerable: true, value: v });
25
- }) : function(o, v) {
26
- o["default"] = v;
27
- });
28
- var __importStar = (this && this.__importStar) || (function () {
29
- var ownKeys = function(o) {
30
- ownKeys = Object.getOwnPropertyNames || function (o) {
31
- var ar = [];
32
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
- return ar;
34
- };
35
- return ownKeys(o);
36
- };
37
- return function (mod) {
38
- if (mod && mod.__esModule) return mod;
39
- var result = {};
40
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
- __setModuleDefault(result, mod);
42
- return result;
43
- };
44
- })();
45
- Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.executeSelfDiagnose = executeSelfDiagnose;
47
- const fs = __importStar(require("node:fs/promises"));
48
- const path = __importStar(require("node:path"));
49
- const os = __importStar(require("node:os"));
50
- const utils_js_1 = require("./utils.js");
51
- // ============================================================================
52
- // Constants
53
- // ============================================================================
54
- const ALL_SECTIONS = ["runtime", "errors", "crashes", "databases", "daemon", "network"];
55
- const ARIA_HOME = path.join(os.homedir(), ".aria");
56
- // ============================================================================
57
- // Helpers
58
- // ============================================================================
59
- async function safeStat(p) {
60
- try {
61
- const s = await fs.stat(p);
62
- return { size: s.size, mtime: s.mtime };
63
- }
64
- catch {
65
- return null;
66
- }
67
- }
68
- function truncate(s, max) {
69
- if (!s)
70
- return "";
71
- return s.length <= max ? s : s.slice(0, max - 3) + "...";
72
- }
73
- async function dirCount(dir) {
74
- try {
75
- const entries = await fs.readdir(dir);
76
- return entries.length;
77
- }
78
- catch {
79
- return 0;
80
- }
81
- }
82
- async function tailJsonl(filePath, maxLines) {
83
- try {
84
- const content = await fs.readFile(filePath, "utf-8");
85
- const lines = content.trim().split("\n").slice(-maxLines);
86
- return lines
87
- .map((l) => {
88
- try {
89
- return JSON.parse(l);
90
- }
91
- catch {
92
- return null;
93
- }
94
- })
95
- .filter(Boolean);
96
- }
97
- catch {
98
- return [];
99
- }
100
- }
101
- // ============================================================================
102
- // Section: runtime
103
- // ============================================================================
104
- async function getRuntime(ctx) {
105
- const mem = process.memoryUsage();
106
- // Resource leak detection
107
- const socketDirs = await dirCount(path.join(ARIA_HOME, "sock"));
108
- const ownerFiles = await dirCount(path.join(ARIA_HOME, "run/owners"));
109
- // Stuck restart detection
110
- let relaunchPending = false;
111
- try {
112
- const entries = await fs.readdir(path.join(ARIA_HOME, "relaunch-pending"));
113
- relaunchPending = entries.length > 0;
114
- }
115
- catch {
116
- /* dir may not exist */
117
- }
118
- return {
119
- pid: process.pid,
120
- uptime_s: Math.round(process.uptime()),
121
- heap_mb: Math.round(mem.heapUsed / 1e6),
122
- rss_mb: Math.round(mem.rss / 1e6),
123
- node_version: process.version,
124
- platform: process.platform,
125
- arch: process.arch,
126
- cwd: process.cwd(),
127
- session_id: ctx.currentSessionId ?? null,
128
- socket_dirs: socketDirs,
129
- owner_files: ownerFiles,
130
- relaunch_pending: relaunchPending,
131
- };
132
- }
133
- // ============================================================================
134
- // Section: errors (active + rotated JSONL, merged, filtered)
135
- // ============================================================================
136
- async function getErrors(since, focus, limit) {
137
- // Read both active and rotated logs
138
- const active = path.join(ARIA_HOME, "error-events.jsonl");
139
- const rotated = path.join(ARIA_HOME, "error-events.jsonl.1");
140
- const [activeEntries, rotatedEntries] = await Promise.all([
141
- tailJsonl(active, 200),
142
- tailJsonl(rotated, 100),
143
- ]);
144
- const all = [
145
- ...rotatedEntries.map((e) => ({ ...e, _src: "rotated" })),
146
- ...activeEntries.map((e) => ({ ...e, _src: "active" })),
147
- ];
148
- const filtered = all.filter((entry) => {
149
- const ts = entry.timestamp;
150
- if (ts) {
151
- const d = new Date(ts);
152
- if (d < since)
153
- return false;
154
- }
155
- if (focus) {
156
- const haystack = [
157
- String(entry.message ?? ""),
158
- String(entry.category ?? ""),
159
- String(entry.stackTrace ?? ""),
160
- ]
161
- .join(" ")
162
- .toLowerCase();
163
- if (!haystack.includes(focus))
164
- return false;
165
- }
166
- return true;
167
- });
168
- return filtered.slice(-limit).map((entry) => ({
169
- timestamp: String(entry.timestamp ?? ""),
170
- severity: String(entry.severity ?? "unknown"),
171
- category: String(entry.category ?? ""),
172
- message: String(entry.message ?? ""),
173
- stackTrace: truncate(String(entry.stackTrace ?? ""), 500),
174
- source: String(entry._src),
175
- }));
176
- }
177
- // ============================================================================
178
- // Section: crashes
179
- // ============================================================================
180
- async function getCrashes(limit) {
181
- const results = [];
182
- for (const subdir of ["crash-markers", "crash-dumps"]) {
183
- const dir = path.join(ARIA_HOME, subdir);
184
- try {
185
- const files = await fs.readdir(dir);
186
- const jsonFiles = files.filter((f) => f.endsWith(".json"));
187
- const stats = await Promise.all(jsonFiles.map(async (f) => {
188
- const p = path.join(dir, f);
189
- const s = await safeStat(p);
190
- return { file: f, path: p, stat: s };
191
- }));
192
- const sorted = stats
193
- .filter((f) => f.stat)
194
- .sort((a, b) => b.stat.mtime.getTime() - a.stat.mtime.getTime());
195
- for (const { file, path: fp, stat } of sorted.slice(0, limit)) {
196
- try {
197
- const raw = await fs.readFile(fp, "utf-8");
198
- const parsed = JSON.parse(raw);
199
- if (subdir === "crash-markers") {
200
- results.push({
201
- file: `${subdir}/${file}`,
202
- timestamp: stat.mtime.toISOString(),
203
- content: parsed,
204
- });
205
- }
206
- else {
207
- const msg = parsed.error_message ?? parsed.message ?? parsed.error ?? "";
208
- results.push({
209
- file: `${subdir}/${file}`,
210
- size: stat.size,
211
- timestamp: stat.mtime.toISOString(),
212
- error_message: truncate(String(msg), 200),
213
- });
214
- }
215
- }
216
- catch {
217
- results.push({
218
- file: `${subdir}/${file}`,
219
- timestamp: stat.mtime.toISOString(),
220
- error_message: "Failed to parse",
221
- });
222
- }
223
- }
224
- }
225
- catch {
226
- /* dir may not exist */
227
- }
228
- }
229
- return results;
230
- }
231
- // ============================================================================
232
- // Section: databases (sizes, WAL health, schema version)
233
- // ============================================================================
234
- async function getDatabases() {
235
- const results = [];
236
- // Key database paths (only real ones, not empty legacy ghosts)
237
- const dbPaths = [
238
- {
239
- name: "memory.db (main)",
240
- path: path.join(ARIA_HOME, "arions/ARIA/memory.db"),
241
- checkSchema: true,
242
- },
243
- { name: "history.db", path: path.join(ARIA_HOME, "history.db") },
244
- { name: "investigation-metrics.db", path: path.join(ARIA_HOME, "investigation-metrics.db") },
245
- { name: "network/state.db", path: path.join(ARIA_HOME, "network/state.db") },
246
- { name: "node/node-state.db", path: path.join(ARIA_HOME, "node/node-state.db") },
247
- ];
248
- for (const db of dbPaths) {
249
- const stat = await safeStat(db.path);
250
- if (!stat || stat.size === 0)
251
- continue;
252
- // WAL size — a large WAL means checkpoint isn't running
253
- const walStat = await safeStat(db.path + "-wal");
254
- const walMb = walStat && walStat.size > 0 ? (walStat.size / 1e6).toFixed(1) : null;
255
- // Schema version for the main DB (lightweight: only reads one int)
256
- let schemaVersion;
257
- if (db.checkSchema) {
258
- try {
259
- // Use a child process to avoid importing better-sqlite3 / locking the DB
260
- const { execFileSync } = await Promise.resolve().then(() => __importStar(require("node:child_process")));
261
- const out = execFileSync("sqlite3", [db.path, "SELECT MAX(version) FROM schema_version;"], {
262
- timeout: 1000,
263
- encoding: "utf-8",
264
- }).trim();
265
- schemaVersion = parseInt(out, 10) || undefined;
266
- }
267
- catch {
268
- // sqlite3 CLI not available or query failed — not critical
269
- }
270
- }
271
- const info = {
272
- name: db.name,
273
- size_mb: (stat.size / 1e6).toFixed(1),
274
- wal_mb: walMb,
275
- modified: stat.mtime.toISOString(),
276
- };
277
- if (schemaVersion !== undefined)
278
- info.schema_version = schemaVersion;
279
- results.push(info);
280
- }
281
- return results;
282
- }
283
- // ============================================================================
284
- // Section: daemon (audit + delegation journal)
285
- // ============================================================================
286
- async function getDaemon(limit) {
287
- const results = [];
288
- // Daemon audit log — restart loops, crashes, startup events
289
- const auditPath = path.join(ARIA_HOME, "arions/ARIA/daemon/audit.jsonl");
290
- const auditEntries = await tailJsonl(auditPath, limit);
291
- if (auditEntries.length > 0) {
292
- results.push({ source: "daemon/audit", entries: auditEntries });
293
- }
294
- // Delegation journal — worker spawn/complete/fail
295
- const delegationPath = path.join(ARIA_HOME, "arions/ARIA/delegation-journal.jsonl");
296
- const delegationEntries = await tailJsonl(delegationPath, limit);
297
- if (delegationEntries.length > 0) {
298
- results.push({ source: "delegation-journal", entries: delegationEntries });
299
- }
300
- return results;
301
- }
302
- // ============================================================================
303
- // Section: network (identity, peers, tunnels, TLS, diagnostics)
304
- // ============================================================================
305
- async function getNetwork(limit) {
306
- // Node identity from network/config.json
307
- let nodeId = null;
308
- let displayName = null;
309
- let listenPort = null;
310
- let externalEndpoint = null;
311
- try {
312
- const raw = await fs.readFile(path.join(ARIA_HOME, "network/config.json"), "utf-8");
313
- const cfg = JSON.parse(raw);
314
- nodeId = cfg.nodeId ?? null;
315
- displayName = cfg.localDisplayNameSnapshot ?? null;
316
- listenPort = cfg.listenPort ?? null;
317
- if (cfg.externalEndpoint) {
318
- externalEndpoint = `${cfg.externalEndpoint.address}:${cfg.externalEndpoint.port}`;
319
- }
320
- // Never expose private keys — only the fact we have them
321
- }
322
- catch {
323
- /* config may not exist */
324
- }
325
- // Peers from network/state.db (using sqlite3 CLI to avoid locking)
326
- const peers = [];
327
- let peerCount = 0;
328
- try {
329
- const { execFileSync } = await Promise.resolve().then(() => __importStar(require("node:child_process")));
330
- const out = execFileSync("sqlite3", [
331
- path.join(ARIA_HOME, "network/state.db"),
332
- "-json",
333
- `SELECT nodeId, displayName, status, lastSeen FROM network_peers ORDER BY lastSeen DESC LIMIT ${limit};`,
334
- ], { timeout: 1000, encoding: "utf-8" }).trim();
335
- if (out) {
336
- const rows = JSON.parse(out);
337
- for (const row of rows) {
338
- peers.push({
339
- node_id: row.nodeId ?? "",
340
- name: row.displayName ?? "",
341
- status: row.status ?? "unknown",
342
- last_seen: row.lastSeen ? new Date(row.lastSeen).toISOString() : null,
343
- });
344
- }
345
- }
346
- const countOut = execFileSync("sqlite3", [path.join(ARIA_HOME, "network/state.db"), "SELECT COUNT(*) FROM network_peers;"], { timeout: 1000, encoding: "utf-8" }).trim();
347
- peerCount = parseInt(countOut, 10) || 0;
348
- }
349
- catch {
350
- /* sqlite3 CLI not available or query failed */
351
- }
352
- // TLS state
353
- let tlsCertsPresent = false;
354
- let trustedCas = 0;
355
- try {
356
- await fs.access(path.join(ARIA_HOME, "network/tls/server.pem"));
357
- tlsCertsPresent = true;
358
- }
359
- catch {
360
- /* no TLS certs */
361
- }
362
- try {
363
- const cas = await fs.readdir(path.join(ARIA_HOME, "network/trusted-cas"));
364
- trustedCas = cas.filter((f) => f.endsWith(".pem")).length;
365
- }
366
- catch {
367
- /* dir may not exist */
368
- }
369
- // Recent tunnel events (connection attempts, handshakes, failures)
370
- const tunnelEvents = await tailJsonl(path.join(ARIA_HOME, "audit/wireguard-secure-tunnel.jsonl"), limit);
371
- // Recent diagnostics (disconnects, reconnects, errors)
372
- const diagnostics = await tailJsonl(path.join(ARIA_HOME, "audit/wireguard-diagnostics.jsonl"), limit);
373
- return {
374
- node_id: nodeId,
375
- display_name: displayName,
376
- listen_port: listenPort,
377
- external_endpoint: externalEndpoint,
378
- peer_count: peerCount,
379
- peers,
380
- tls_certs_present: tlsCertsPresent,
381
- trusted_cas: trustedCas,
382
- recent_tunnel_events: tunnelEvents,
383
- recent_diagnostics: diagnostics,
384
- };
385
- }
386
- // ============================================================================
387
- // Main Executor
388
- // ============================================================================
389
- async function executeSelfDiagnose(input, ctx) {
390
- if (ctx.abortSignal?.aborted)
391
- return (0, utils_js_1.fail)("Operation cancelled");
392
- const startMs = Date.now();
393
- const limit = input.limit ?? 10;
394
- const since = input.since ? new Date(input.since) : new Date(Date.now() - 3600_000);
395
- const focus = input.focus?.toLowerCase();
396
- const requested = input.sections ?? ALL_SECTIONS;
397
- const sectionsToRun = requested.filter((s) => ALL_SECTIONS.includes(s));
398
- const sectionFns = {
399
- runtime: () => getRuntime(ctx),
400
- errors: () => getErrors(since, focus, limit),
401
- crashes: () => getCrashes(limit),
402
- databases: () => getDatabases(),
403
- daemon: () => getDaemon(limit),
404
- network: () => getNetwork(limit),
405
- };
406
- const results = {};
407
- const errors = [];
408
- const returned = [];
409
- const withTimeout = (fn, name) => Promise.race([
410
- fn().then((r) => {
411
- returned.push(name);
412
- return r;
413
- }),
414
- new Promise((_, reject) => setTimeout(() => reject(new Error(`${name} timed out`)), 2000)),
415
- ]).catch((err) => {
416
- errors.push(`${name}: ${err.message}`);
417
- return null;
418
- });
419
- await Promise.all(sectionsToRun.map(async (name) => {
420
- const fn = sectionFns[name];
421
- if (fn)
422
- results[name] = await withTimeout(fn, name);
423
- }));
424
- const elapsed = Date.now() - startMs;
425
- results._meta = {
426
- sections_requested: sectionsToRun,
427
- sections_returned: returned,
428
- elapsed_ms: elapsed,
429
- errors,
430
- };
431
- const msg = `Diagnostics: ${returned.length}/${sectionsToRun.length} sections in ${elapsed}ms` +
432
- (errors.length > 0 ? ` (${errors.length} errors)` : "");
433
- return (0, utils_js_1.success)(msg, results);
434
- }
435
- //# sourceMappingURL=self-diagnose.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"self-diagnose.js","sourceRoot":"","sources":["../../src/executors/self-diagnose.ts"],"names":[],"mappings":"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"}