@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,390 +0,0 @@
1
- "use strict";
2
- /**
3
- * process tool — ARIA Tool wrapper for background shell process management.
4
- *
5
- * Supports spawn/read/write/kill/list/send_key actions.
6
- * Uses node:child_process (no native deps).
7
- * Process registry forked from OpenClaw (MIT).
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.processTool = void 0;
11
- const node_child_process_1 = require("node:child_process");
12
- const shell_js_1 = require("../../executors/shell.js");
13
- const process_registry_js_1 = require("./process-registry.js");
14
- const pty_keys_js_1 = require("./pty-keys.js");
15
- // ── Constants ───────────────────────────────────────────────────────
16
- const MAX_OUTPUT_CHARS = 200_000; // 200KB ring buffer cap per process
17
- const DEFAULT_SPAWN_TIMEOUT_MS = 30_000;
18
- const MAX_SPAWN_TIMEOUT_MS = 300_000; // 5 minutes
19
- const OUTPUT_SETTLE_MS = 200; // wait for initial output after spawn
20
- // ── Action handlers ─────────────────────────────────────────────────
21
- function handleSpawn(input, cwd) {
22
- return new Promise((resolve) => {
23
- const command = input.command;
24
- if (!command) {
25
- resolve({ success: false, message: "spawn requires 'command' parameter" });
26
- return;
27
- }
28
- const sessionId = (0, process_registry_js_1.createSessionSlug)();
29
- const timeout = Math.min(input.timeout ?? DEFAULT_SPAWN_TIMEOUT_MS, MAX_SPAWN_TIMEOUT_MS);
30
- const child = (0, node_child_process_1.spawn)("sh", ["-c", command], {
31
- cwd,
32
- stdio: ["pipe", "pipe", "pipe"],
33
- env: (0, shell_js_1.sanitizeEnv)(),
34
- detached: false,
35
- });
36
- const session = {
37
- id: sessionId,
38
- command,
39
- pid: child.pid,
40
- startedAt: Date.now(),
41
- cwd,
42
- maxOutputChars: MAX_OUTPUT_CHARS,
43
- totalOutputChars: 0,
44
- pendingStdout: [],
45
- pendingStderr: [],
46
- pendingStdoutChars: 0,
47
- pendingStderrChars: 0,
48
- aggregated: "",
49
- tail: "",
50
- exited: false,
51
- truncated: false,
52
- backgrounded: true,
53
- child,
54
- stdin: child.stdin
55
- ? {
56
- write: (data, cb) => child.stdin.write(data, cb),
57
- end: () => child.stdin.end(),
58
- destroy: () => child.stdin.destroy(),
59
- get destroyed() {
60
- return child.stdin.destroyed;
61
- },
62
- }
63
- : undefined,
64
- };
65
- (0, process_registry_js_1.addSession)(session);
66
- (0, process_registry_js_1.markBackgrounded)(session);
67
- child.stdout?.on("data", (chunk) => {
68
- (0, process_registry_js_1.appendOutput)(session, "stdout", chunk.toString());
69
- });
70
- child.stderr?.on("data", (chunk) => {
71
- (0, process_registry_js_1.appendOutput)(session, "stderr", chunk.toString());
72
- });
73
- child.on("error", (err) => {
74
- (0, process_registry_js_1.markExited)(session, null, null, "failed");
75
- // Error after we already resolved is fine — the process just failed later
76
- });
77
- child.on("exit", (code, signal) => {
78
- if (session.exited)
79
- return;
80
- const status = signal ? "killed" : code === 0 ? "completed" : "failed";
81
- (0, process_registry_js_1.markExited)(session, code, signal, status);
82
- });
83
- // Set up timeout to kill if it runs too long without interaction
84
- if (timeout > 0) {
85
- const timer = setTimeout(() => {
86
- if (!session.exited) {
87
- try {
88
- child.kill("SIGTERM");
89
- }
90
- catch {
91
- // Process may have already exited
92
- }
93
- }
94
- }, timeout);
95
- timer.unref();
96
- // Clear timeout if process exits before timeout
97
- child.on("exit", () => clearTimeout(timer));
98
- }
99
- // Wait briefly for initial output
100
- setTimeout(() => {
101
- const { stdout, stderr } = (0, process_registry_js_1.drainSession)(session);
102
- const initialOutput = [stdout && `stdout: ${stdout}`, stderr && `stderr: ${stderr}`]
103
- .filter(Boolean)
104
- .join("\n");
105
- resolve({
106
- success: true,
107
- message: [
108
- `Process spawned with session_id: ${sessionId}`,
109
- `PID: ${child.pid}`,
110
- `Command: ${command}`,
111
- initialOutput && `\nInitial output:\n${initialOutput}`,
112
- ]
113
- .filter(Boolean)
114
- .join("\n"),
115
- data: { session_id: sessionId, pid: child.pid },
116
- });
117
- }, OUTPUT_SETTLE_MS);
118
- });
119
- }
120
- function handleRead(input) {
121
- const sessionId = input.session_id;
122
- if (!sessionId) {
123
- return { success: false, message: "read requires 'session_id' parameter" };
124
- }
125
- const session = (0, process_registry_js_1.getSession)(sessionId);
126
- if (session) {
127
- const { stdout, stderr } = (0, process_registry_js_1.drainSession)(session);
128
- const hasOutput = stdout || stderr;
129
- return {
130
- success: true,
131
- message: [
132
- `Session: ${sessionId} (running, PID: ${session.pid})`,
133
- hasOutput ? "" : "(no new output since last read)",
134
- stdout && `stdout:\n${stdout}`,
135
- stderr && `stderr:\n${stderr}`,
136
- ]
137
- .filter((s) => typeof s === "string" && s !== "")
138
- .join("\n"),
139
- data: {
140
- session_id: sessionId,
141
- status: "running",
142
- pid: session.pid,
143
- stdout,
144
- stderr,
145
- total_output_chars: session.totalOutputChars,
146
- truncated: session.truncated,
147
- },
148
- };
149
- }
150
- const finished = (0, process_registry_js_1.getFinishedSession)(sessionId);
151
- if (finished) {
152
- return {
153
- success: true,
154
- message: [
155
- `Session: ${sessionId} (${finished.status})`,
156
- `Exit code: ${finished.exitCode ?? "N/A"}`,
157
- finished.exitSignal && `Signal: ${finished.exitSignal}`,
158
- `Output:\n${finished.tail}`,
159
- finished.truncated && "(output was truncated)",
160
- ]
161
- .filter(Boolean)
162
- .join("\n"),
163
- data: {
164
- session_id: sessionId,
165
- status: finished.status,
166
- exit_code: finished.exitCode,
167
- exit_signal: finished.exitSignal,
168
- output: finished.tail,
169
- total_output_chars: finished.totalOutputChars,
170
- truncated: finished.truncated,
171
- },
172
- };
173
- }
174
- return { success: false, message: `No session found with id: ${sessionId}` };
175
- }
176
- async function handleWrite(input) {
177
- const sessionId = input.session_id;
178
- if (!sessionId) {
179
- return { success: false, message: "write requires 'session_id' parameter" };
180
- }
181
- if (input.input === undefined || input.input === null) {
182
- return { success: false, message: "write requires 'input' parameter" };
183
- }
184
- const session = (0, process_registry_js_1.getSession)(sessionId);
185
- if (!session) {
186
- const finished = (0, process_registry_js_1.getFinishedSession)(sessionId);
187
- if (finished) {
188
- return {
189
- success: false,
190
- message: `Session ${sessionId} has already exited (${finished.status})`,
191
- };
192
- }
193
- return { success: false, message: `No session found with id: ${sessionId}` };
194
- }
195
- if (!session.stdin || session.stdin.destroyed) {
196
- return { success: false, message: `Session ${sessionId} stdin is not available` };
197
- }
198
- return new Promise((resolve) => {
199
- session.stdin.write(input.input, (err) => {
200
- if (err) {
201
- resolve({
202
- success: false,
203
- message: `Failed to write to session ${sessionId}: ${err.message}`,
204
- });
205
- return;
206
- }
207
- resolve({
208
- success: true,
209
- message: `Wrote ${input.input.length} chars to session ${sessionId}`,
210
- data: { session_id: sessionId, bytes_written: input.input.length },
211
- });
212
- });
213
- });
214
- }
215
- function handleKill(input) {
216
- const sessionId = input.session_id;
217
- if (!sessionId) {
218
- return { success: false, message: "kill requires 'session_id' parameter" };
219
- }
220
- const session = (0, process_registry_js_1.getSession)(sessionId);
221
- if (!session) {
222
- const finished = (0, process_registry_js_1.getFinishedSession)(sessionId);
223
- if (finished) {
224
- return {
225
- success: false,
226
- message: `Session ${sessionId} has already exited (${finished.status})`,
227
- };
228
- }
229
- return { success: false, message: `No session found with id: ${sessionId}` };
230
- }
231
- const signal = (input.signal ?? "SIGTERM");
232
- if (session.child) {
233
- try {
234
- session.child.kill(signal);
235
- }
236
- catch {
237
- // Process may have already exited
238
- }
239
- }
240
- return {
241
- success: true,
242
- message: `Sent ${signal} to session ${sessionId} (PID: ${session.pid})`,
243
- data: { session_id: sessionId, signal },
244
- };
245
- }
246
- function handleList() {
247
- const running = (0, process_registry_js_1.listRunningSessions)().map((s) => ({
248
- session_id: s.id,
249
- command: s.command,
250
- pid: s.pid,
251
- status: s.exited ? "exited" : "running",
252
- started_at: new Date(s.startedAt).toISOString(),
253
- runtime_ms: Date.now() - s.startedAt,
254
- total_output_chars: s.totalOutputChars,
255
- }));
256
- const finished = (0, process_registry_js_1.listFinishedSessions)().map((s) => ({
257
- session_id: s.id,
258
- command: s.command,
259
- status: s.status,
260
- exit_code: s.exitCode,
261
- started_at: new Date(s.startedAt).toISOString(),
262
- ended_at: new Date(s.endedAt).toISOString(),
263
- runtime_ms: s.endedAt - s.startedAt,
264
- total_output_chars: s.totalOutputChars,
265
- }));
266
- const all = [...running, ...finished];
267
- if (all.length === 0) {
268
- return { success: true, message: "No active or recent sessions.", data: { sessions: [] } };
269
- }
270
- const lines = all.map((s) => ` ${s.session_id}: ${s.command} [${s.status}] (${s.runtime_ms}ms)`);
271
- return {
272
- success: true,
273
- message: `Sessions (${all.length}):\n${lines.join("\n")}`,
274
- data: { sessions: all },
275
- };
276
- }
277
- async function handleSendKey(input) {
278
- const sessionId = input.session_id;
279
- if (!sessionId) {
280
- return { success: false, message: "send_key requires 'session_id' parameter" };
281
- }
282
- if (!input.key) {
283
- return { success: false, message: "send_key requires 'key' parameter" };
284
- }
285
- const session = (0, process_registry_js_1.getSession)(sessionId);
286
- if (!session) {
287
- const finished = (0, process_registry_js_1.getFinishedSession)(sessionId);
288
- if (finished) {
289
- return {
290
- success: false,
291
- message: `Session ${sessionId} has already exited (${finished.status})`,
292
- };
293
- }
294
- return { success: false, message: `No session found with id: ${sessionId}` };
295
- }
296
- if (!session.stdin || session.stdin.destroyed) {
297
- return { success: false, message: `Session ${sessionId} stdin is not available` };
298
- }
299
- const { data: keyData, warnings } = (0, pty_keys_js_1.encodeKeySequence)({ keys: [input.key] });
300
- if (!keyData) {
301
- return {
302
- success: false,
303
- message: `Could not encode key: ${input.key}${warnings.length ? ` (${warnings.join(", ")})` : ""}`,
304
- };
305
- }
306
- return new Promise((resolve) => {
307
- session.stdin.write(keyData, (err) => {
308
- if (err) {
309
- resolve({
310
- success: false,
311
- message: `Failed to send key to session ${sessionId}: ${err.message}`,
312
- });
313
- return;
314
- }
315
- resolve({
316
- success: true,
317
- message: `Sent key '${input.key}' to session ${sessionId}${warnings.length ? ` (warnings: ${warnings.join(", ")})` : ""}`,
318
- data: { session_id: sessionId, key: input.key, warnings },
319
- });
320
- });
321
- });
322
- }
323
- // ── Tool definition ─────────────────────────────────────────────────
324
- exports.processTool = {
325
- name: "process",
326
- description: "Manage background shell processes. Supports spawning long-running commands, reading their output, writing input, and killing them. Each process gets a human-readable session ID.",
327
- category: "shell",
328
- parameters: {
329
- type: "object",
330
- properties: {
331
- action: {
332
- type: "string",
333
- enum: ["spawn", "read", "write", "kill", "list", "send_key"],
334
- description: "Action to perform",
335
- },
336
- command: {
337
- type: "string",
338
- description: "Shell command to run (for spawn)",
339
- },
340
- session_id: {
341
- type: "string",
342
- description: "Session ID (from spawn result)",
343
- },
344
- input: {
345
- type: "string",
346
- description: "Input to write to stdin (for write)",
347
- },
348
- key: {
349
- type: "string",
350
- description: "Special key to send (for send_key): Enter, Tab, Ctrl+C, Up, Down, etc.",
351
- },
352
- timeout: {
353
- type: "number",
354
- description: "Timeout in ms (for spawn, default 30000)",
355
- },
356
- signal: {
357
- type: "string",
358
- description: "Signal to send (for kill, default SIGTERM)",
359
- },
360
- },
361
- required: ["action"],
362
- },
363
- riskLevel: "dangerous",
364
- isReadOnly: false,
365
- loadingTier: "always",
366
- async execute(rawInput, context) {
367
- const input = rawInput;
368
- const cwd = context.workingDir;
369
- switch (input.action) {
370
- case "spawn":
371
- return handleSpawn(input, cwd);
372
- case "read":
373
- return handleRead(input);
374
- case "write":
375
- return handleWrite(input);
376
- case "kill":
377
- return handleKill(input);
378
- case "list":
379
- return handleList();
380
- case "send_key":
381
- return handleSendKey(input);
382
- default:
383
- return {
384
- success: false,
385
- message: `Unknown action: ${input.action}. Valid actions: spawn, read, write, kill, list, send_key`,
386
- };
387
- }
388
- },
389
- };
390
- //# sourceMappingURL=process.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/definitions/process/process.ts"],"names":[],"mappings":"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"}
@@ -1,260 +0,0 @@
1
- "use strict";
2
- // Originally from OpenClaw (MIT License, Copyright 2025 Peter Steinberger)
3
- // https://github.com/openclaw/openclaw
4
- // Modified for ARIA — stripped OpenClaw runtime, inlined escapeRegExp
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BRACKETED_PASTE_END = exports.BRACKETED_PASTE_START = void 0;
7
- exports.encodeKeySequence = encodeKeySequence;
8
- exports.encodePaste = encodePaste;
9
- const ESC = "\x1b";
10
- const CR = "\r";
11
- const TAB = "\t";
12
- const BACKSPACE = "\x7f";
13
- exports.BRACKETED_PASTE_START = `${ESC}[200~`;
14
- exports.BRACKETED_PASTE_END = `${ESC}[201~`;
15
- const namedKeyMap = new Map([
16
- ["enter", CR],
17
- ["return", CR],
18
- ["tab", TAB],
19
- ["escape", ESC],
20
- ["esc", ESC],
21
- ["space", " "],
22
- ["bspace", BACKSPACE],
23
- ["backspace", BACKSPACE],
24
- ["up", `${ESC}[A`],
25
- ["down", `${ESC}[B`],
26
- ["right", `${ESC}[C`],
27
- ["left", `${ESC}[D`],
28
- ["home", `${ESC}[1~`],
29
- ["end", `${ESC}[4~`],
30
- ["pageup", `${ESC}[5~`],
31
- ["pgup", `${ESC}[5~`],
32
- ["ppage", `${ESC}[5~`],
33
- ["pagedown", `${ESC}[6~`],
34
- ["pgdn", `${ESC}[6~`],
35
- ["npage", `${ESC}[6~`],
36
- ["insert", `${ESC}[2~`],
37
- ["ic", `${ESC}[2~`],
38
- ["delete", `${ESC}[3~`],
39
- ["del", `${ESC}[3~`],
40
- ["dc", `${ESC}[3~`],
41
- ["btab", `${ESC}[Z`],
42
- ["f1", `${ESC}OP`],
43
- ["f2", `${ESC}OQ`],
44
- ["f3", `${ESC}OR`],
45
- ["f4", `${ESC}OS`],
46
- ["f5", `${ESC}[15~`],
47
- ["f6", `${ESC}[17~`],
48
- ["f7", `${ESC}[18~`],
49
- ["f8", `${ESC}[19~`],
50
- ["f9", `${ESC}[20~`],
51
- ["f10", `${ESC}[21~`],
52
- ["f11", `${ESC}[23~`],
53
- ["f12", `${ESC}[24~`],
54
- ["kp/", `${ESC}Oo`],
55
- ["kp*", `${ESC}Oj`],
56
- ["kp-", `${ESC}Om`],
57
- ["kp+", `${ESC}Ok`],
58
- ["kp7", `${ESC}Ow`],
59
- ["kp8", `${ESC}Ox`],
60
- ["kp9", `${ESC}Oy`],
61
- ["kp4", `${ESC}Ot`],
62
- ["kp5", `${ESC}Ou`],
63
- ["kp6", `${ESC}Ov`],
64
- ["kp1", `${ESC}Oq`],
65
- ["kp2", `${ESC}Or`],
66
- ["kp3", `${ESC}Os`],
67
- ["kp0", `${ESC}Op`],
68
- ["kp.", `${ESC}On`],
69
- ["kpenter", `${ESC}OM`],
70
- ]);
71
- const modifiableNamedKeys = new Set([
72
- "up",
73
- "down",
74
- "left",
75
- "right",
76
- "home",
77
- "end",
78
- "pageup",
79
- "pgup",
80
- "ppage",
81
- "pagedown",
82
- "pgdn",
83
- "npage",
84
- "insert",
85
- "ic",
86
- "delete",
87
- "del",
88
- "dc",
89
- ]);
90
- function encodeKeySequence(request) {
91
- const warnings = [];
92
- let data = "";
93
- if (request.literal) {
94
- data += request.literal;
95
- }
96
- if (request.hex?.length) {
97
- for (const raw of request.hex) {
98
- const byte = parseHexByte(raw);
99
- if (byte === null) {
100
- warnings.push(`Invalid hex byte: ${raw}`);
101
- continue;
102
- }
103
- data += String.fromCharCode(byte);
104
- }
105
- }
106
- if (request.keys?.length) {
107
- for (const token of request.keys) {
108
- data += encodeKeyToken(token, warnings);
109
- }
110
- }
111
- return { data, warnings };
112
- }
113
- function encodePaste(text, bracketed = true) {
114
- if (!bracketed) {
115
- return text;
116
- }
117
- return `${exports.BRACKETED_PASTE_START}${text}${exports.BRACKETED_PASTE_END}`;
118
- }
119
- function encodeKeyToken(raw, warnings) {
120
- const token = raw.trim();
121
- if (!token) {
122
- return "";
123
- }
124
- if (token.length === 2 && token.startsWith("^")) {
125
- const ctrl = toCtrlChar(token[1]);
126
- if (ctrl) {
127
- return ctrl;
128
- }
129
- }
130
- const parsed = parseModifiers(token);
131
- const base = parsed.base;
132
- const baseLower = base.toLowerCase();
133
- if (baseLower === "tab" && parsed.mods.shift) {
134
- return `${ESC}[Z`;
135
- }
136
- const baseSeq = namedKeyMap.get(baseLower);
137
- if (baseSeq) {
138
- let seq = baseSeq;
139
- if (modifiableNamedKeys.has(baseLower) && hasAnyModifier(parsed.mods)) {
140
- const mod = xtermModifier(parsed.mods);
141
- if (mod > 1) {
142
- const modified = applyXtermModifier(seq, mod);
143
- if (modified) {
144
- seq = modified;
145
- return seq;
146
- }
147
- }
148
- }
149
- if (parsed.mods.alt) {
150
- return `${ESC}${seq}`;
151
- }
152
- return seq;
153
- }
154
- if (base.length === 1) {
155
- return applyCharModifiers(base, parsed.mods);
156
- }
157
- if (parsed.hasModifiers) {
158
- warnings.push(`Unknown key "${base}" for modifiers; sending literal.`);
159
- }
160
- return base;
161
- }
162
- function parseModifiers(token) {
163
- const mods = { ctrl: false, alt: false, shift: false };
164
- let rest = token;
165
- let sawModifiers = false;
166
- while (rest.length > 2 && rest[1] === "-") {
167
- const mod = rest[0].toLowerCase();
168
- if (mod === "c") {
169
- mods.ctrl = true;
170
- }
171
- else if (mod === "m") {
172
- mods.alt = true;
173
- }
174
- else if (mod === "s") {
175
- mods.shift = true;
176
- }
177
- else {
178
- break;
179
- }
180
- sawModifiers = true;
181
- rest = rest.slice(2);
182
- }
183
- return { mods, base: rest, hasModifiers: sawModifiers };
184
- }
185
- function applyCharModifiers(char, mods) {
186
- let value = char;
187
- if (mods.shift && value.length === 1 && /[a-z]/.test(value)) {
188
- value = value.toUpperCase();
189
- }
190
- if (mods.ctrl) {
191
- const ctrl = toCtrlChar(value);
192
- if (ctrl) {
193
- value = ctrl;
194
- }
195
- }
196
- if (mods.alt) {
197
- value = `${ESC}${value}`;
198
- }
199
- return value;
200
- }
201
- function toCtrlChar(char) {
202
- if (char.length !== 1) {
203
- return null;
204
- }
205
- if (char === "?") {
206
- return "\x7f";
207
- }
208
- const code = char.toUpperCase().charCodeAt(0);
209
- if (code >= 64 && code <= 95) {
210
- return String.fromCharCode(code & 0x1f);
211
- }
212
- return null;
213
- }
214
- function xtermModifier(mods) {
215
- let mod = 1;
216
- if (mods.shift) {
217
- mod += 1;
218
- }
219
- if (mods.alt) {
220
- mod += 2;
221
- }
222
- if (mods.ctrl) {
223
- mod += 4;
224
- }
225
- return mod;
226
- }
227
- /** Inlined from OpenClaw src/utils.ts — escapes special regex characters */
228
- function escapeRegExp(value) {
229
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
230
- }
231
- function applyXtermModifier(sequence, modifier) {
232
- const escPattern = escapeRegExp(ESC);
233
- const csiNumber = new RegExp(`^${escPattern}\\[(\\d+)([~A-Z])$`);
234
- const csiArrow = new RegExp(`^${escPattern}\\[(A|B|C|D|H|F)$`);
235
- const numberMatch = sequence.match(csiNumber);
236
- if (numberMatch) {
237
- return `${ESC}[${numberMatch[1]};${modifier}${numberMatch[2]}`;
238
- }
239
- const arrowMatch = sequence.match(csiArrow);
240
- if (arrowMatch) {
241
- return `${ESC}[1;${modifier}${arrowMatch[1]}`;
242
- }
243
- return null;
244
- }
245
- function hasAnyModifier(mods) {
246
- return mods.ctrl || mods.alt || mods.shift;
247
- }
248
- function parseHexByte(raw) {
249
- const trimmed = raw.trim().toLowerCase();
250
- const normalized = trimmed.startsWith("0x") ? trimmed.slice(2) : trimmed;
251
- if (!/^[0-9a-f]{1,2}$/.test(normalized)) {
252
- return null;
253
- }
254
- const value = Number.parseInt(normalized, 16);
255
- if (Number.isNaN(value) || value < 0 || value > 0xff) {
256
- return null;
257
- }
258
- return value;
259
- }
260
- //# sourceMappingURL=pty-keys.js.map