@aria-cli/tools 1.0.1 → 1.0.3

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 (157) hide show
  1. package/dist/.aria-build-stamp.json +1 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/definitions/code-intelligence.d.ts +9 -0
  4. package/dist/definitions/code-intelligence.d.ts.map +1 -0
  5. package/dist/definitions/code-intelligence.js +471 -0
  6. package/dist/definitions/code-intelligence.js.map +1 -0
  7. package/dist/definitions/core.d.ts +3 -0
  8. package/dist/definitions/core.d.ts.map +1 -1
  9. package/dist/definitions/core.js +13 -1
  10. package/dist/definitions/core.js.map +1 -1
  11. package/dist/definitions/filesystem.d.ts +3 -2
  12. package/dist/definitions/filesystem.d.ts.map +1 -1
  13. package/dist/definitions/filesystem.js +4 -38
  14. package/dist/definitions/filesystem.js.map +1 -1
  15. package/dist/definitions/frg.d.ts +4 -0
  16. package/dist/definitions/frg.d.ts.map +1 -0
  17. package/dist/definitions/frg.js +64 -0
  18. package/dist/definitions/frg.js.map +1 -0
  19. package/dist/definitions/index.d.ts +3 -0
  20. package/dist/definitions/index.d.ts.map +1 -1
  21. package/dist/definitions/index.js +3 -0
  22. package/dist/definitions/index.js.map +1 -1
  23. package/dist/definitions/search.d.ts +10 -0
  24. package/dist/definitions/search.d.ts.map +1 -0
  25. package/dist/definitions/search.js +61 -0
  26. package/dist/definitions/search.js.map +1 -0
  27. package/dist/executors/apply-patch.d.ts.map +1 -1
  28. package/dist/executors/apply-patch.js +18 -0
  29. package/dist/executors/apply-patch.js.map +1 -1
  30. package/dist/executors/code-intelligence.d.ts +139 -0
  31. package/dist/executors/code-intelligence.d.ts.map +1 -0
  32. package/dist/executors/code-intelligence.js +883 -0
  33. package/dist/executors/code-intelligence.js.map +1 -0
  34. package/dist/executors/filesystem.d.ts.map +1 -1
  35. package/dist/executors/filesystem.js +14 -8
  36. package/dist/executors/filesystem.js.map +1 -1
  37. package/dist/executors/frg-freshness.d.ts +94 -0
  38. package/dist/executors/frg-freshness.d.ts.map +1 -0
  39. package/dist/executors/frg-freshness.js +577 -0
  40. package/dist/executors/frg-freshness.js.map +1 -0
  41. package/dist/executors/frg.d.ts +28 -0
  42. package/dist/executors/frg.d.ts.map +1 -0
  43. package/dist/executors/frg.js +299 -0
  44. package/dist/executors/frg.js.map +1 -0
  45. package/dist/executors/index.d.ts +6 -0
  46. package/dist/executors/index.d.ts.map +1 -1
  47. package/dist/executors/index.js +5 -0
  48. package/dist/executors/index.js.map +1 -1
  49. package/dist/executors/lsp-client.d.ts +39 -0
  50. package/dist/executors/lsp-client.d.ts.map +1 -0
  51. package/dist/executors/lsp-client.js +297 -0
  52. package/dist/executors/lsp-client.js.map +1 -0
  53. package/dist/executors/restart.d.ts +4 -9
  54. package/dist/executors/restart.d.ts.map +1 -1
  55. package/dist/executors/restart.js +20 -51
  56. package/dist/executors/restart.js.map +1 -1
  57. package/dist/executors/search-freshness.d.ts +51 -0
  58. package/dist/executors/search-freshness.d.ts.map +1 -0
  59. package/dist/executors/search-freshness.js +196 -0
  60. package/dist/executors/search-freshness.js.map +1 -0
  61. package/dist/executors/search.d.ts +12 -0
  62. package/dist/executors/search.d.ts.map +1 -0
  63. package/dist/executors/search.js +67 -0
  64. package/dist/executors/search.js.map +1 -0
  65. package/dist/headless-control-contract.d.ts +4 -0
  66. package/dist/headless-control-contract.d.ts.map +1 -1
  67. package/dist/index.d.ts +2 -2
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +1 -1
  70. package/dist/index.js.map +1 -1
  71. package/dist/network-runtime/local-control-contract.d.ts +2 -0
  72. package/dist/network-runtime/local-control-contract.d.ts.map +1 -1
  73. package/dist/network-runtime/local-control-contract.js +2 -0
  74. package/dist/network-runtime/local-control-contract.js.map +1 -1
  75. package/dist-cjs/.tsbuildinfo +1 -1
  76. package/dist-cjs/definitions/code-intelligence.d.ts +8 -0
  77. package/dist-cjs/definitions/code-intelligence.js +474 -0
  78. package/dist-cjs/definitions/code-intelligence.js.map +1 -0
  79. package/dist-cjs/definitions/core.d.ts +3 -0
  80. package/dist-cjs/definitions/core.js +17 -2
  81. package/dist-cjs/definitions/core.js.map +1 -1
  82. package/dist-cjs/definitions/filesystem.d.ts +3 -2
  83. package/dist-cjs/definitions/filesystem.js +3 -37
  84. package/dist-cjs/definitions/filesystem.js.map +1 -1
  85. package/dist-cjs/definitions/frg.d.ts +3 -0
  86. package/dist-cjs/definitions/frg.js +67 -0
  87. package/dist-cjs/definitions/frg.js.map +1 -0
  88. package/dist-cjs/definitions/index.d.ts +3 -0
  89. package/dist-cjs/definitions/index.js +7 -1
  90. package/dist-cjs/definitions/index.js.map +1 -1
  91. package/dist-cjs/definitions/search.d.ts +9 -0
  92. package/dist-cjs/definitions/search.js +64 -0
  93. package/dist-cjs/definitions/search.js.map +1 -0
  94. package/dist-cjs/executors/apply-patch.js +18 -0
  95. package/dist-cjs/executors/apply-patch.js.map +1 -1
  96. package/dist-cjs/executors/code-intelligence.d.ts +138 -0
  97. package/dist-cjs/executors/code-intelligence.js +926 -0
  98. package/dist-cjs/executors/code-intelligence.js.map +1 -0
  99. package/dist-cjs/executors/filesystem.js +17 -8
  100. package/dist-cjs/executors/filesystem.js.map +1 -1
  101. package/dist-cjs/executors/frg-freshness.d.ts +93 -0
  102. package/dist-cjs/executors/frg-freshness.js +628 -0
  103. package/dist-cjs/executors/frg-freshness.js.map +1 -0
  104. package/dist-cjs/executors/frg.d.ts +27 -0
  105. package/dist-cjs/executors/frg.js +335 -0
  106. package/dist-cjs/executors/frg.js.map +1 -0
  107. package/dist-cjs/executors/index.d.ts +6 -0
  108. package/dist-cjs/executors/index.js +34 -2
  109. package/dist-cjs/executors/index.js.map +1 -1
  110. package/dist-cjs/executors/lsp-client.d.ts +38 -0
  111. package/dist-cjs/executors/lsp-client.js +311 -0
  112. package/dist-cjs/executors/lsp-client.js.map +1 -0
  113. package/dist-cjs/executors/restart.d.ts +4 -9
  114. package/dist-cjs/executors/restart.js +19 -50
  115. package/dist-cjs/executors/restart.js.map +1 -1
  116. package/dist-cjs/executors/search-freshness.d.ts +50 -0
  117. package/dist-cjs/executors/search-freshness.js +235 -0
  118. package/dist-cjs/executors/search-freshness.js.map +1 -0
  119. package/dist-cjs/executors/search.d.ts +11 -0
  120. package/dist-cjs/executors/search.js +103 -0
  121. package/dist-cjs/executors/search.js.map +1 -0
  122. package/dist-cjs/headless-control-contract.d.ts +15 -11
  123. package/dist-cjs/index.d.ts +2 -2
  124. package/dist-cjs/index.js +22 -2
  125. package/dist-cjs/index.js.map +1 -1
  126. package/dist-cjs/network-runtime/local-control-contract.d.ts +2 -0
  127. package/dist-cjs/network-runtime/local-control-contract.js +2 -0
  128. package/dist-cjs/network-runtime/local-control-contract.js.map +1 -1
  129. package/package.json +22 -18
  130. package/src/definitions/code-intelligence.ts +526 -0
  131. package/src/definitions/core.ts +13 -1
  132. package/src/definitions/filesystem.ts +3 -39
  133. package/src/definitions/frg.ts +67 -0
  134. package/src/definitions/index.ts +3 -0
  135. package/src/definitions/search.ts +67 -0
  136. package/src/executors/apply-patch.ts +20 -0
  137. package/src/executors/code-intelligence.ts +1179 -0
  138. package/src/executors/filesystem.ts +15 -8
  139. package/src/executors/frg-freshness.ts +743 -0
  140. package/src/executors/frg.ts +394 -0
  141. package/src/executors/index.ts +58 -0
  142. package/src/executors/lsp-client.ts +355 -0
  143. package/src/executors/restart.ts +21 -56
  144. package/src/executors/search-freshness.ts +249 -0
  145. package/src/executors/search.ts +89 -0
  146. package/src/index.ts +25 -0
  147. package/src/network-runtime/local-control-contract.ts +2 -0
  148. package/tests/definitions/tool-inventory.test.ts +17 -6
  149. package/tests/executors/frg-freshness.test.ts +136 -0
  150. package/tests/executors/frg-merge.test.ts +70 -0
  151. package/tests/executors/frg-session-content.test.ts +40 -0
  152. package/tests/executors/frg.test.ts +56 -0
  153. package/tests/integration/headless-control-contract.integration.test.ts +2 -0
  154. package/tests/loading-tier.test.ts +6 -6
  155. package/tests/test-lane-manifest.ts +4 -0
  156. package/tsconfig.cjs.json +9 -1
  157. package/tsconfig.json +1 -1
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ /**
3
+ * Native LSP Client — uses vscode-jsonrpc for proper message framing.
4
+ *
5
+ * Same approach as Claude Code: createMessageConnection over stdio.
6
+ * Same configuration as Claude Code's LSP plugins.
7
+ * Supports: TypeScript, Python, Go, Rust, C/C++, Swift, Java, Kotlin, Lua, PHP, Ruby, C#.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.LspServer = exports.LSP_SERVERS = void 0;
11
+ exports.getServerForFile = getServerForFile;
12
+ exports.getLanguageId = getLanguageId;
13
+ exports.getOrCreateServer = getOrCreateServer;
14
+ exports.shutdownAll = shutdownAll;
15
+ const node_child_process_1 = require("node:child_process");
16
+ const node_fs_1 = require("node:fs");
17
+ const node_path_1 = require("node:path");
18
+ const node_url_1 = require("node:url");
19
+ const node_module_1 = require("node:module");
20
+ let vscodeJsonrpc;
21
+ // ESM module path for createRequire
22
+ const __esmFilePath = (0, node_url_1.fileURLToPath)(import.meta.url);
23
+ function getJsonRpc() {
24
+ if (!vscodeJsonrpc) {
25
+ vscodeJsonrpc = (0, node_module_1.createRequire)(__esmFilePath)("vscode-jsonrpc/node");
26
+ }
27
+ return vscodeJsonrpc;
28
+ }
29
+ exports.LSP_SERVERS = {
30
+ typescript: {
31
+ command: "typescript-language-server",
32
+ args: ["--stdio"],
33
+ extensionToLanguage: {
34
+ ".ts": "typescript",
35
+ ".tsx": "typescriptreact",
36
+ ".js": "javascript",
37
+ ".jsx": "javascriptreact",
38
+ ".mts": "typescript",
39
+ ".cts": "typescript",
40
+ ".mjs": "javascript",
41
+ ".cjs": "javascript",
42
+ },
43
+ startupTimeout: 30_000,
44
+ },
45
+ python: {
46
+ command: "pyright-langserver",
47
+ args: ["--stdio"],
48
+ extensionToLanguage: { ".py": "python", ".pyi": "python" },
49
+ startupTimeout: 60_000,
50
+ },
51
+ go: {
52
+ command: "gopls",
53
+ args: [],
54
+ extensionToLanguage: { ".go": "go" },
55
+ startupTimeout: 30_000,
56
+ },
57
+ rust: {
58
+ command: "rust-analyzer",
59
+ args: [],
60
+ extensionToLanguage: { ".rs": "rust" },
61
+ startupTimeout: 60_000,
62
+ },
63
+ "c/cpp": {
64
+ command: "clangd",
65
+ args: ["--background-index"],
66
+ extensionToLanguage: {
67
+ ".c": "c",
68
+ ".h": "c",
69
+ ".cpp": "cpp",
70
+ ".cc": "cpp",
71
+ ".cxx": "cpp",
72
+ ".hpp": "cpp",
73
+ ".hxx": "cpp",
74
+ },
75
+ startupTimeout: 30_000,
76
+ },
77
+ swift: {
78
+ command: "sourcekit-lsp",
79
+ args: [],
80
+ extensionToLanguage: { ".swift": "swift" },
81
+ startupTimeout: 30_000,
82
+ },
83
+ java: {
84
+ command: "jdtls",
85
+ args: [],
86
+ extensionToLanguage: { ".java": "java" },
87
+ startupTimeout: 120_000,
88
+ },
89
+ kotlin: {
90
+ command: "kotlin-language-server",
91
+ args: ["--stdio"],
92
+ extensionToLanguage: { ".kt": "kotlin", ".kts": "kotlin" },
93
+ startupTimeout: 120_000,
94
+ },
95
+ lua: {
96
+ command: "lua-language-server",
97
+ args: [],
98
+ extensionToLanguage: { ".lua": "lua" },
99
+ startupTimeout: 30_000,
100
+ },
101
+ php: {
102
+ command: "intelephense",
103
+ args: ["--stdio"],
104
+ extensionToLanguage: { ".php": "php" },
105
+ startupTimeout: 30_000,
106
+ },
107
+ ruby: {
108
+ command: "ruby-lsp",
109
+ args: [],
110
+ extensionToLanguage: { ".rb": "ruby", ".rake": "ruby", ".gemspec": "ruby" },
111
+ startupTimeout: 30_000,
112
+ },
113
+ csharp: {
114
+ command: "csharp-ls",
115
+ args: [],
116
+ extensionToLanguage: { ".cs": "csharp" },
117
+ startupTimeout: 30_000,
118
+ },
119
+ };
120
+ // Build reverse lookup: file extension → server name
121
+ const EXT_TO_SERVER = new Map();
122
+ for (const [serverName, config] of Object.entries(exports.LSP_SERVERS)) {
123
+ for (const ext of Object.keys(config.extensionToLanguage)) {
124
+ EXT_TO_SERVER.set(ext, serverName);
125
+ }
126
+ }
127
+ function getServerForFile(filePath) {
128
+ const ext = filePath.slice(filePath.lastIndexOf("."));
129
+ return EXT_TO_SERVER.get(ext);
130
+ }
131
+ function getLanguageId(filePath) {
132
+ const ext = filePath.slice(filePath.lastIndexOf("."));
133
+ const serverName = EXT_TO_SERVER.get(ext);
134
+ if (!serverName)
135
+ return undefined;
136
+ return exports.LSP_SERVERS[serverName]?.extensionToLanguage[ext];
137
+ }
138
+ // ---------------------------------------------------------------------------
139
+ // LSP Server Instance — uses vscode-jsonrpc createMessageConnection
140
+ // ---------------------------------------------------------------------------
141
+ class LspServer {
142
+ process = null;
143
+ connection = null;
144
+ initialized = false;
145
+ openFiles = new Set();
146
+ diagnosticsReceived = new Set();
147
+ serverName;
148
+ config;
149
+ rootUri;
150
+ constructor(serverName, rootPath) {
151
+ this.serverName = serverName;
152
+ const cfg = exports.LSP_SERVERS[serverName];
153
+ if (!cfg)
154
+ throw new Error(`Unknown LSP server: ${serverName}`);
155
+ this.config = cfg;
156
+ this.rootUri = `file://${(0, node_path_1.resolve)(rootPath)}`;
157
+ }
158
+ async start() {
159
+ if (this.connection)
160
+ return;
161
+ this.process = (0, node_child_process_1.spawn)(this.config.command, this.config.args, {
162
+ stdio: ["pipe", "pipe", "pipe"],
163
+ });
164
+ this.process.stderr?.on("data", () => {
165
+ // Swallow stderr — language servers are noisy
166
+ });
167
+ this.process.on("exit", () => {
168
+ this.connection?.dispose();
169
+ this.connection = null;
170
+ this.process = null;
171
+ this.initialized = false;
172
+ this.openFiles.clear();
173
+ this.diagnosticsReceived.clear();
174
+ });
175
+ // Create vscode-jsonrpc connection — handles Content-Length framing,
176
+ // request/response matching, notification routing. Same as Claude Code.
177
+ const jsonrpc = getJsonRpc();
178
+ this.connection = jsonrpc.createMessageConnection(new jsonrpc.StreamMessageReader(this.process.stdout), new jsonrpc.StreamMessageWriter(this.process.stdin));
179
+ // Listen for diagnostics notifications (signals file analysis complete)
180
+ this.connection.onNotification("textDocument/publishDiagnostics", (params) => {
181
+ const p = params;
182
+ if (p.uri)
183
+ this.diagnosticsReceived.add(p.uri);
184
+ });
185
+ this.connection.listen();
186
+ // Initialize handshake
187
+ await this.connection.sendRequest("initialize", {
188
+ processId: globalThis.process.pid,
189
+ rootUri: this.rootUri,
190
+ capabilities: {
191
+ textDocument: {
192
+ definition: { dynamicRegistration: false },
193
+ references: { dynamicRegistration: false },
194
+ hover: { dynamicRegistration: false, contentFormat: ["plaintext", "markdown"] },
195
+ documentSymbol: { dynamicRegistration: false },
196
+ rename: { dynamicRegistration: false, prepareSupport: false },
197
+ publishDiagnostics: { relatedInformation: true },
198
+ },
199
+ workspace: {
200
+ workspaceFolders: true,
201
+ },
202
+ },
203
+ workspaceFolders: [{ uri: this.rootUri, name: "root" }],
204
+ });
205
+ this.connection.sendNotification("initialized", {});
206
+ this.initialized = true;
207
+ }
208
+ async stop() {
209
+ if (!this.connection)
210
+ return;
211
+ try {
212
+ await this.connection.sendRequest("shutdown");
213
+ this.connection.sendNotification("exit");
214
+ }
215
+ catch {
216
+ // Force kill if graceful shutdown fails
217
+ }
218
+ this.connection.dispose();
219
+ this.connection = null;
220
+ this.process?.kill("SIGTERM");
221
+ this.process = null;
222
+ this.initialized = false;
223
+ }
224
+ // Ensure a file is opened in the language server
225
+ async openFile(filePath) {
226
+ const uri = `file://${(0, node_path_1.resolve)(filePath)}`;
227
+ if (this.openFiles.has(uri))
228
+ return;
229
+ const languageId = getLanguageId(filePath);
230
+ if (!languageId)
231
+ return;
232
+ let text;
233
+ try {
234
+ text = (0, node_fs_1.readFileSync)((0, node_path_1.resolve)(filePath), "utf-8");
235
+ }
236
+ catch {
237
+ return;
238
+ }
239
+ this.connection?.sendNotification("textDocument/didOpen", {
240
+ textDocument: { uri, languageId, version: 1, text },
241
+ });
242
+ this.openFiles.add(uri);
243
+ // No wait needed. LSP servers queue requests after didOpen and respond
244
+ // when ready. Tested: TypeScript responds to hover in 239ms with zero
245
+ // wait (before diagnostics arrive). Pyright responds after its analysis.
246
+ // The sendRequest in the caller will block until the server responds.
247
+ }
248
+ // --- LSP Operations ---
249
+ async definition(filePath, line, character) {
250
+ await this.ensureReady(filePath);
251
+ return this.connection.sendRequest("textDocument/definition", {
252
+ textDocument: { uri: `file://${(0, node_path_1.resolve)(filePath)}` },
253
+ position: { line, character },
254
+ });
255
+ }
256
+ async references(filePath, line, character) {
257
+ await this.ensureReady(filePath);
258
+ return this.connection.sendRequest("textDocument/references", {
259
+ textDocument: { uri: `file://${(0, node_path_1.resolve)(filePath)}` },
260
+ position: { line, character },
261
+ context: { includeDeclaration: true },
262
+ });
263
+ }
264
+ async hover(filePath, line, character) {
265
+ await this.ensureReady(filePath);
266
+ return this.connection.sendRequest("textDocument/hover", {
267
+ textDocument: { uri: `file://${(0, node_path_1.resolve)(filePath)}` },
268
+ position: { line, character },
269
+ });
270
+ }
271
+ async documentSymbols(filePath) {
272
+ await this.ensureReady(filePath);
273
+ return this.connection.sendRequest("textDocument/documentSymbol", {
274
+ textDocument: { uri: `file://${(0, node_path_1.resolve)(filePath)}` },
275
+ });
276
+ }
277
+ async rename(filePath, line, character, newName) {
278
+ await this.ensureReady(filePath);
279
+ return this.connection.sendRequest("textDocument/rename", {
280
+ textDocument: { uri: `file://${(0, node_path_1.resolve)(filePath)}` },
281
+ position: { line, character },
282
+ newName,
283
+ });
284
+ }
285
+ // --- Internals ---
286
+ async ensureReady(filePath) {
287
+ if (!this.initialized)
288
+ await this.start();
289
+ await this.openFile(filePath);
290
+ }
291
+ }
292
+ exports.LspServer = LspServer;
293
+ // ---------------------------------------------------------------------------
294
+ // Server Pool — one server per language, shared across queries
295
+ // ---------------------------------------------------------------------------
296
+ const serverPool = new Map();
297
+ function getOrCreateServer(serverName, rootPath) {
298
+ const key = `${serverName}:${rootPath}`;
299
+ let server = serverPool.get(key);
300
+ if (!server) {
301
+ server = new LspServer(serverName, rootPath);
302
+ serverPool.set(key, server);
303
+ }
304
+ return server;
305
+ }
306
+ async function shutdownAll() {
307
+ const stops = [...serverPool.values()].map((s) => s.stop());
308
+ await Promise.allSettled(stops);
309
+ serverPool.clear();
310
+ }
311
+ //# sourceMappingURL=lsp-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lsp-client.js","sourceRoot":"","sources":["../../src/executors/lsp-client.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,10 @@
1
1
  /**
2
2
  * @aria/tools - Restart executor
3
3
  *
4
- * Two restart paths:
5
- *
6
- * 1. Supervised (TUI via relaunch.ts): ARIA_NO_RELAUNCH=true is set by the
7
- * parent supervisor. Child exits with RELAUNCH_EXIT_CODE (199), parent
8
- * respawns automatically.
9
- *
10
- * 2. Daemon (daemon-launcher): No supervisor loop. The executor spawns a
11
- * replacement daemon on the process 'exit' event (after the singleton lock
12
- * is released), then sends SIGINT to trigger graceful shutdown.
4
+ * Single restart path for both TUI and daemon:
5
+ * Register an 'exit' handler to spawn a replacement process, then SIGINT
6
+ * the current process for graceful shutdown. The replacement starts fresh
7
+ * and goes through normal startup (heap check, createCliContext, REPL/daemon).
13
8
  */
14
9
  import type { ToolContext, ToolResult } from "../types.js";
15
10
  export interface RestartInput {
@@ -2,15 +2,10 @@
2
2
  /**
3
3
  * @aria/tools - Restart executor
4
4
  *
5
- * Two restart paths:
6
- *
7
- * 1. Supervised (TUI via relaunch.ts): ARIA_NO_RELAUNCH=true is set by the
8
- * parent supervisor. Child exits with RELAUNCH_EXIT_CODE (199), parent
9
- * respawns automatically.
10
- *
11
- * 2. Daemon (daemon-launcher): No supervisor loop. The executor spawns a
12
- * replacement daemon on the process 'exit' event (after the singleton lock
13
- * is released), then sends SIGINT to trigger graceful shutdown.
5
+ * Single restart path for both TUI and daemon:
6
+ * Register an 'exit' handler to spawn a replacement process, then SIGINT
7
+ * the current process for graceful shutdown. The replacement starts fresh
8
+ * and goes through normal startup (heap check, createCliContext, REPL/daemon).
14
9
  */
15
10
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
11
  if (k2 === undefined) k2 = k;
@@ -117,7 +112,6 @@ function findDaemonPid() {
117
112
  async function executeRestart(input, ctx) {
118
113
  if (ctx.abortSignal?.aborted)
119
114
  return (0, utils_js_1.fail)("Operation cancelled");
120
- const supervised = process.env[types_1.NO_RELAUNCH_ENV] === "true";
121
115
  const reason = (input.reason ?? "").trim() || "Restart requested";
122
116
  // Note: tool definition has requiresConfirmation: true, so the framework
123
117
  // already prompts the user before execute() is called. No need to confirm again.
@@ -134,54 +128,29 @@ async function executeRestart(input, ctx) {
134
128
  process.stderr.write(`[aria] Restarting: ${reason}\n`);
135
129
  const sessionId = process.env[types_1.RESUME_SESSION_ENV] ?? null;
136
130
  const arionName = process.env[types_1.RESUME_ARION_ENV] || "ARIA";
137
- // Write disk-backed marker as durable fallback in case IPC is lost.
131
+ // Write disk-backed marker so the replacement process can resume the session.
138
132
  (0, types_1.writeRelaunchMarker)({
139
133
  sessionId,
140
134
  arionName,
141
135
  pid: process.ppid || process.pid,
142
136
  timestamp: new Date().toISOString(),
143
137
  });
144
- if (supervised) {
145
- // Path 1: Supervised by parent-child relaunch loop (TUI mode).
146
- // Pass session forward via IPC, then exit with magic code for parent to respawn.
147
- try {
148
- const send = process.send;
149
- if (typeof send === "function") {
150
- send({
151
- type: "aria-relaunch",
152
- resumeSessionId: sessionId,
153
- arionName,
154
- });
155
- }
156
- }
157
- catch {
158
- // non-fatal — disk marker is the fallback
159
- }
160
- process.exit(types_1.RELAUNCH_EXIT_CODE);
138
+ // Spawn replacement on exit, then SIGINT for graceful shutdown.
139
+ // Works for both TUI and daemon no supervisor needed.
140
+ const targetPid = findDaemonPid() ?? process.pid;
141
+ process.once("exit", () => {
142
+ (0, node_child_process_1.spawn)(process.execPath, [...process.execArgv, ...process.argv.slice(1)], {
143
+ detached: true,
144
+ stdio: "ignore",
145
+ }).unref();
146
+ });
147
+ process.stderr.write(`[aria] Sending SIGINT to pid ${targetPid} for graceful restart\n`);
148
+ try {
149
+ process.kill(targetPid, "SIGINT");
161
150
  }
162
- else {
163
- // Path 2: Daemon mode — no supervisor loop.
164
- // Register an 'exit' handler to spawn the replacement AFTER the singleton
165
- // lock is released (beforeExit releases it). Then SIGINT ourselves to
166
- // trigger graceful daemon shutdown. The SIGINT handler fires synchronously
167
- // (just sets controller.abort()), so the tool can still return success.
168
- const daemonPid = findDaemonPid() ?? process.pid;
169
- process.once("exit", () => {
170
- (0, node_child_process_1.spawn)(process.execPath, [...process.execArgv, ...process.argv.slice(1)], {
171
- detached: true,
172
- stdio: "ignore",
173
- }).unref();
174
- });
175
- process.stderr.write(`[aria] Sending SIGINT to daemon pid ${daemonPid} for graceful restart\n`);
176
- try {
177
- process.kill(daemonPid, "SIGINT");
178
- }
179
- catch {
180
- // PID already dead or not our process — fall back to self
181
- process.kill(process.pid, "SIGINT");
182
- }
151
+ catch {
152
+ process.kill(process.pid, "SIGINT");
183
153
  }
184
- // Unreachable in supervised path (process.exit above), but returned in daemon path
185
154
  return (0, utils_js_1.success)("Restarting...");
186
155
  }
187
156
  //# sourceMappingURL=restart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"restart.js","sourceRoot":"","sources":["../../src/executors/restart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restart.js","sourceRoot":"","sources":["../../src/executors/restart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Freshness tracker for aria-search (code_search tool).
3
+ *
4
+ * Mirrors frg-freshness.ts patterns to close the freshness gaps:
5
+ * 1. Tracks file mutations from ARIA tool writes (session overlay)
6
+ * 2. Reconciles git-dirty files on each search
7
+ * 3. Generates session overlay for the napi search() call
8
+ *
9
+ * The session overlay gives 0ms visibility for pending mutations —
10
+ * files written by agents/users appear in search results immediately
11
+ * without waiting for an index rebuild or hot.log sync.
12
+ */
13
+ export type SearchMutationOperation = "write" | "delete";
14
+ export interface SearchMutationRecord {
15
+ path: string;
16
+ operation: SearchMutationOperation;
17
+ content?: string;
18
+ sequence: number;
19
+ }
20
+ export interface SearchSessionOverlay {
21
+ sessionWrites: Array<{
22
+ path: string;
23
+ content: string;
24
+ }>;
25
+ sessionDeletes: string[];
26
+ }
27
+ /**
28
+ * Record a file mutation from an ARIA tool write/edit/delete.
29
+ * Called alongside recordFrgMutation in filesystem.ts and apply-patch.ts.
30
+ */
31
+ export declare function recordSearchMutation(filePath: string, operation: SearchMutationOperation, content?: string): void;
32
+ /**
33
+ * Reconcile git-dirty files into the pending mutations map.
34
+ * Runs `git diff --name-status -z HEAD` and `git ls-files -o --exclude-standard -z`
35
+ * to detect files modified/created/deleted by external agents or the user.
36
+ *
37
+ * Throttled to at most once per GIT_RECONCILE_INTERVAL_MS to avoid
38
+ * hammering git on rapid sequential searches.
39
+ */
40
+ export declare function reconcileSearchGitDirty(root: string): void;
41
+ /**
42
+ * Generate the session overlay for the napi search() call.
43
+ * Reads content from disk for mutations without cached content.
44
+ */
45
+ export declare function getSearchSessionOverlay(root: string): SearchSessionOverlay;
46
+ /**
47
+ * Clear all pending mutations for a repo root.
48
+ * Called after a full index rebuild (all mutations are now in the base index).
49
+ */
50
+ export declare function clearSearchMutations(root: string): void;