@action-llama/action-llama 0.27.4 → 0.28.0

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 (242) hide show
  1. package/dist/agents/credential-setup.d.ts +0 -1
  2. package/dist/agents/credential-setup.d.ts.map +1 -1
  3. package/dist/agents/credential-setup.js +2 -23
  4. package/dist/agents/credential-setup.js.map +1 -1
  5. package/dist/agents/prompt.js +1 -1
  6. package/dist/agents/prompt.js.map +1 -1
  7. package/dist/agents/scheduler-tools.d.ts +40 -0
  8. package/dist/agents/scheduler-tools.d.ts.map +1 -0
  9. package/dist/agents/scheduler-tools.js +178 -0
  10. package/dist/agents/scheduler-tools.js.map +1 -0
  11. package/dist/agents/transport-runner.d.ts +95 -0
  12. package/dist/agents/transport-runner.d.ts.map +1 -0
  13. package/dist/agents/transport-runner.js +653 -0
  14. package/dist/agents/transport-runner.js.map +1 -0
  15. package/dist/build-info.json +1 -1
  16. package/dist/cli/commands/add.d.ts +1 -0
  17. package/dist/cli/commands/add.d.ts.map +1 -1
  18. package/dist/cli/commands/add.js +24 -9
  19. package/dist/cli/commands/add.js.map +1 -1
  20. package/dist/cli/commands/agent.d.ts +0 -3
  21. package/dist/cli/commands/agent.d.ts.map +1 -1
  22. package/dist/cli/commands/agent.js +3 -67
  23. package/dist/cli/commands/agent.js.map +1 -1
  24. package/dist/cli/commands/logs.d.ts.map +1 -1
  25. package/dist/cli/commands/logs.js +2 -3
  26. package/dist/cli/commands/logs.js.map +1 -1
  27. package/dist/cli/main.js +1 -30
  28. package/dist/cli/main.js.map +1 -1
  29. package/dist/control/routes/dashboard-api.js +1 -1
  30. package/dist/control/routes/dashboard-api.js.map +1 -1
  31. package/dist/control/routes/log-helpers.d.ts +4 -4
  32. package/dist/control/routes/log-helpers.d.ts.map +1 -1
  33. package/dist/control/routes/log-helpers.js +12 -7
  34. package/dist/control/routes/log-helpers.js.map +1 -1
  35. package/dist/control/routes/log-summary.d.ts.map +1 -1
  36. package/dist/control/routes/log-summary.js +22 -9
  37. package/dist/control/routes/log-summary.js.map +1 -1
  38. package/dist/control/routes/logs.d.ts.map +1 -1
  39. package/dist/control/routes/logs.js +10 -10
  40. package/dist/control/routes/logs.js.map +1 -1
  41. package/dist/docker/providers/index.d.ts +0 -4
  42. package/dist/docker/providers/index.d.ts.map +1 -1
  43. package/dist/docker/providers/index.js +0 -38
  44. package/dist/docker/providers/index.js.map +1 -1
  45. package/dist/execution/execution.d.ts +0 -1
  46. package/dist/execution/execution.d.ts.map +1 -1
  47. package/dist/execution/execution.js +5 -9
  48. package/dist/execution/execution.js.map +1 -1
  49. package/dist/execution/index.d.ts +1 -11
  50. package/dist/execution/index.d.ts.map +1 -1
  51. package/dist/execution/index.js +1 -8
  52. package/dist/execution/index.js.map +1 -1
  53. package/dist/execution/runner-setup.d.ts +6 -11
  54. package/dist/execution/runner-setup.d.ts.map +1 -1
  55. package/dist/execution/runner-setup.js +18 -14
  56. package/dist/execution/runner-setup.js.map +1 -1
  57. package/dist/execution/runtime-factory.d.ts +1 -15
  58. package/dist/execution/runtime-factory.d.ts.map +1 -1
  59. package/dist/execution/runtime-factory.js +1 -18
  60. package/dist/execution/runtime-factory.js.map +1 -1
  61. package/dist/frontend/assets/{index-a78B5S5H.js → index-DnSu-8Kw.js} +1 -1
  62. package/dist/frontend/assets/index-DnSu-8Kw.js.map +1 -0
  63. package/dist/frontend/index.html +1 -1
  64. package/dist/gateway/index.d.ts +1 -1
  65. package/dist/gateway/index.d.ts.map +1 -1
  66. package/dist/gateway/index.js +6 -47
  67. package/dist/gateway/index.js.map +1 -1
  68. package/dist/gateway/routes/system.d.ts +1 -4
  69. package/dist/gateway/routes/system.d.ts.map +1 -1
  70. package/dist/gateway/routes/system.js +3 -8
  71. package/dist/gateway/routes/system.js.map +1 -1
  72. package/dist/gateway/stores.d.ts +0 -4
  73. package/dist/gateway/stores.d.ts.map +1 -1
  74. package/dist/gateway/stores.js +2 -10
  75. package/dist/gateway/stores.js.map +1 -1
  76. package/dist/gateway/types.d.ts +0 -13
  77. package/dist/gateway/types.d.ts.map +1 -1
  78. package/dist/mcp/server.d.ts.map +1 -1
  79. package/dist/mcp/server.js +11 -0
  80. package/dist/mcp/server.js.map +1 -1
  81. package/dist/models/providers/custom.d.ts.map +1 -1
  82. package/dist/models/providers/custom.js +3 -2
  83. package/dist/models/providers/custom.js.map +1 -1
  84. package/dist/models/providers/openai.d.ts.map +1 -1
  85. package/dist/models/providers/openai.js +3 -2
  86. package/dist/models/providers/openai.js.map +1 -1
  87. package/dist/scheduler/gateway-setup.d.ts +0 -2
  88. package/dist/scheduler/gateway-setup.d.ts.map +1 -1
  89. package/dist/scheduler/gateway-setup.js +2 -11
  90. package/dist/scheduler/gateway-setup.js.map +1 -1
  91. package/dist/scheduler/index.d.ts.map +1 -1
  92. package/dist/scheduler/index.js +95 -55
  93. package/dist/scheduler/index.js.map +1 -1
  94. package/dist/scheduler/validation.js +1 -1
  95. package/dist/scheduler/validation.js.map +1 -1
  96. package/dist/scheduler/watcher.d.ts +2 -8
  97. package/dist/scheduler/watcher.d.ts.map +1 -1
  98. package/dist/scheduler/watcher.js +7 -104
  99. package/dist/scheduler/watcher.js.map +1 -1
  100. package/dist/shared/config/load-agent.js +2 -2
  101. package/dist/shared/config/load-agent.js.map +1 -1
  102. package/dist/shared/config/load-project.js +2 -2
  103. package/dist/shared/config/load-project.js.map +1 -1
  104. package/dist/shared/config/types.d.ts +10 -2
  105. package/dist/shared/config/types.d.ts.map +1 -1
  106. package/dist/shared/constants.d.ts +1 -1
  107. package/dist/shared/constants.d.ts.map +1 -1
  108. package/dist/shared/constants.js +2 -2
  109. package/dist/shared/constants.js.map +1 -1
  110. package/dist/shared/credential-refs.js +1 -1
  111. package/dist/shared/credential-refs.js.map +1 -1
  112. package/dist/shared/paths.d.ts.map +1 -1
  113. package/dist/shared/paths.js +2 -2
  114. package/dist/shared/paths.js.map +1 -1
  115. package/dist/shared/validation.js +1 -1
  116. package/dist/shared/validation.js.map +1 -1
  117. package/dist/transport/docker-exec.d.ts +41 -0
  118. package/dist/transport/docker-exec.d.ts.map +1 -0
  119. package/dist/transport/docker-exec.js +331 -0
  120. package/dist/transport/docker-exec.js.map +1 -0
  121. package/dist/transport/host-user.d.ts +37 -0
  122. package/dist/transport/host-user.d.ts.map +1 -0
  123. package/dist/transport/host-user.js +232 -0
  124. package/dist/transport/host-user.js.map +1 -0
  125. package/dist/transport/index.d.ts +8 -0
  126. package/dist/transport/index.d.ts.map +1 -0
  127. package/dist/transport/index.js +7 -0
  128. package/dist/transport/index.js.map +1 -0
  129. package/dist/transport/memory.d.ts +35 -0
  130. package/dist/transport/memory.d.ts.map +1 -0
  131. package/dist/transport/memory.js +110 -0
  132. package/dist/transport/memory.js.map +1 -0
  133. package/dist/transport/operations.d.ts +68 -0
  134. package/dist/transport/operations.d.ts.map +1 -0
  135. package/dist/transport/operations.js +164 -0
  136. package/dist/transport/operations.js.map +1 -0
  137. package/dist/transport/ssh.d.ts +43 -0
  138. package/dist/transport/ssh.d.ts.map +1 -0
  139. package/dist/transport/ssh.js +225 -0
  140. package/dist/transport/ssh.js.map +1 -0
  141. package/dist/transport/transport.d.ts +59 -0
  142. package/dist/transport/transport.d.ts.map +1 -0
  143. package/dist/transport/transport.js +29 -0
  144. package/dist/transport/transport.js.map +1 -0
  145. package/package.json +1 -1
  146. package/dist/agents/container-entry.d.ts +0 -31
  147. package/dist/agents/container-entry.d.ts.map +0 -1
  148. package/dist/agents/container-entry.js +0 -302
  149. package/dist/agents/container-entry.js.map +0 -1
  150. package/dist/agents/container-runner.d.ts +0 -59
  151. package/dist/agents/container-runner.d.ts.map +0 -1
  152. package/dist/agents/container-runner.js +0 -472
  153. package/dist/agents/container-runner.js.map +0 -1
  154. package/dist/agents/harness/claude-cli-harness.d.ts +0 -15
  155. package/dist/agents/harness/claude-cli-harness.d.ts.map +0 -1
  156. package/dist/agents/harness/claude-cli-harness.js +0 -240
  157. package/dist/agents/harness/claude-cli-harness.js.map +0 -1
  158. package/dist/agents/harness/consumer.d.ts +0 -31
  159. package/dist/agents/harness/consumer.d.ts.map +0 -1
  160. package/dist/agents/harness/consumer.js +0 -161
  161. package/dist/agents/harness/consumer.js.map +0 -1
  162. package/dist/agents/harness/factory.d.ts +0 -9
  163. package/dist/agents/harness/factory.d.ts.map +0 -1
  164. package/dist/agents/harness/factory.js +0 -25
  165. package/dist/agents/harness/factory.js.map +0 -1
  166. package/dist/agents/harness/index.d.ts +0 -9
  167. package/dist/agents/harness/index.d.ts.map +0 -1
  168. package/dist/agents/harness/index.js +0 -5
  169. package/dist/agents/harness/index.js.map +0 -1
  170. package/dist/agents/harness/pi-harness.d.ts +0 -18
  171. package/dist/agents/harness/pi-harness.d.ts.map +0 -1
  172. package/dist/agents/harness/pi-harness.js +0 -259
  173. package/dist/agents/harness/pi-harness.js.map +0 -1
  174. package/dist/agents/harness/types.d.ts +0 -57
  175. package/dist/agents/harness/types.d.ts.map +0 -1
  176. package/dist/agents/harness/types.js +0 -2
  177. package/dist/agents/harness/types.js.map +0 -1
  178. package/dist/agents/session-loop.d.ts +0 -36
  179. package/dist/agents/session-loop.d.ts.map +0 -1
  180. package/dist/agents/session-loop.js +0 -216
  181. package/dist/agents/session-loop.js.map +0 -1
  182. package/dist/agents/signals.d.ts +0 -34
  183. package/dist/agents/signals.d.ts.map +0 -1
  184. package/dist/agents/signals.js +0 -122
  185. package/dist/agents/signals.js.map +0 -1
  186. package/dist/cli/commands/claude.d.ts +0 -4
  187. package/dist/cli/commands/claude.d.ts.map +0 -1
  188. package/dist/cli/commands/claude.js +0 -6
  189. package/dist/cli/commands/claude.js.map +0 -1
  190. package/dist/cli/commands/run-agent.d.ts +0 -14
  191. package/dist/cli/commands/run-agent.d.ts.map +0 -1
  192. package/dist/cli/commands/run-agent.js +0 -270
  193. package/dist/cli/commands/run-agent.js.map +0 -1
  194. package/dist/docker/cloud-run-runtime.d.ts +0 -48
  195. package/dist/docker/cloud-run-runtime.d.ts.map +0 -1
  196. package/dist/docker/cloud-run-runtime.js +0 -490
  197. package/dist/docker/cloud-run-runtime.js.map +0 -1
  198. package/dist/docker/image.d.ts +0 -19
  199. package/dist/docker/image.d.ts.map +0 -1
  200. package/dist/docker/image.js +0 -111
  201. package/dist/docker/image.js.map +0 -1
  202. package/dist/execution/call-dispatcher.d.ts +0 -11
  203. package/dist/execution/call-dispatcher.d.ts.map +0 -1
  204. package/dist/execution/call-dispatcher.js +0 -75
  205. package/dist/execution/call-dispatcher.js.map +0 -1
  206. package/dist/execution/container-registry.d.ts +0 -42
  207. package/dist/execution/container-registry.d.ts.map +0 -1
  208. package/dist/execution/container-registry.js +0 -76
  209. package/dist/execution/container-registry.js.map +0 -1
  210. package/dist/execution/image-builder.d.ts +0 -48
  211. package/dist/execution/image-builder.d.ts.map +0 -1
  212. package/dist/execution/image-builder.js +0 -155
  213. package/dist/execution/image-builder.js.map +0 -1
  214. package/dist/execution/routes/calls.d.ts +0 -18
  215. package/dist/execution/routes/calls.d.ts.map +0 -1
  216. package/dist/execution/routes/calls.js +0 -74
  217. package/dist/execution/routes/calls.js.map +0 -1
  218. package/dist/execution/routes/locks.d.ts +0 -10
  219. package/dist/execution/routes/locks.d.ts.map +0 -1
  220. package/dist/execution/routes/locks.js +0 -166
  221. package/dist/execution/routes/locks.js.map +0 -1
  222. package/dist/execution/routes/shutdown.d.ts +0 -5
  223. package/dist/execution/routes/shutdown.d.ts.map +0 -1
  224. package/dist/execution/routes/shutdown.js +0 -24
  225. package/dist/execution/routes/shutdown.js.map +0 -1
  226. package/dist/execution/routes/signals.d.ts +0 -12
  227. package/dist/execution/routes/signals.d.ts.map +0 -1
  228. package/dist/execution/routes/signals.js +0 -123
  229. package/dist/execution/routes/signals.js.map +0 -1
  230. package/dist/execution/types.d.ts +0 -23
  231. package/dist/execution/types.d.ts.map +0 -1
  232. package/dist/execution/types.js +0 -2
  233. package/dist/execution/types.js.map +0 -1
  234. package/dist/frontend/assets/index-a78B5S5H.js.map +0 -1
  235. package/dist/gateway/routes/execution.d.ts +0 -24
  236. package/dist/gateway/routes/execution.d.ts.map +0 -1
  237. package/dist/gateway/routes/execution.js +0 -13
  238. package/dist/gateway/routes/execution.js.map +0 -1
  239. package/dist/scheduler/orphan-recovery.d.ts +0 -25
  240. package/dist/scheduler/orphan-recovery.d.ts.map +0 -1
  241. package/dist/scheduler/orphan-recovery.js +0 -144
  242. package/dist/scheduler/orphan-recovery.js.map +0 -1
@@ -0,0 +1,225 @@
1
+ /**
2
+ * SshTransport — executes commands on a remote host via a persistent SSH
3
+ * connection. Shell state (cwd, env vars) persists across exec() calls.
4
+ *
5
+ * File I/O uses the same SSH connection's stdin/stdout with base64 encoding
6
+ * to avoid opening additional connections.
7
+ */
8
+ import { spawn } from "child_process";
9
+ import { randomBytes } from "crypto";
10
+ /** How long to wait for the shell to become ready after connecting (ms). */
11
+ const SHELL_READY_TIMEOUT_MS = 15_000;
12
+ /** Default command execution timeout (ms). */
13
+ const DEFAULT_EXEC_TIMEOUT_MS = 300_000;
14
+ /** Generate a unique delimiter that won't appear in command output. */
15
+ function makeDelimiter() {
16
+ return `__AL_DELIM_${randomBytes(8).toString("hex")}__`;
17
+ }
18
+ export class SshTransport {
19
+ opts;
20
+ shell = null;
21
+ ready = false;
22
+ buffer = "";
23
+ constructor(opts) {
24
+ this.opts = opts;
25
+ }
26
+ /** Establish the persistent SSH shell session. Must be called before exec(). */
27
+ async connect() {
28
+ const args = [
29
+ "-tt", // Force PTY allocation for interactive shell
30
+ "-o", "BatchMode=yes",
31
+ "-o", "ServerAliveInterval=15",
32
+ "-o", "ServerAliveCountMax=3",
33
+ ];
34
+ if (this.opts.port) {
35
+ args.push("-p", String(this.opts.port));
36
+ }
37
+ if (this.opts.keyPath) {
38
+ args.push("-i", this.opts.keyPath);
39
+ }
40
+ // Apply custom SSH options
41
+ if (this.opts.sshOptions) {
42
+ for (const [key, value] of Object.entries(this.opts.sshOptions)) {
43
+ args.push("-o", `${key}=${value}`);
44
+ }
45
+ }
46
+ const target = this.opts.user
47
+ ? `${this.opts.user}@${this.opts.host}`
48
+ : this.opts.host;
49
+ args.push(target);
50
+ // Launch interactive shell
51
+ args.push("bash", "--norc", "--noprofile");
52
+ this.shell = spawn("ssh", args, {
53
+ stdio: ["pipe", "pipe", "pipe"],
54
+ });
55
+ this.shell.stdout.on("data", (chunk) => {
56
+ // Strip ANSI escape sequences and carriage returns from PTY output
57
+ this.buffer += stripAnsi(chunk.toString());
58
+ });
59
+ this.shell.on("exit", () => {
60
+ this.ready = false;
61
+ });
62
+ // Wait for shell to be ready
63
+ const readyDelim = makeDelimiter();
64
+ this.shell.stdin.write(`echo "${readyDelim} $?"\n`);
65
+ await this.waitForDelimiter(readyDelim, this.opts.connectTimeoutMs ?? SHELL_READY_TIMEOUT_MS);
66
+ this.ready = true;
67
+ // Set initial cwd if specified
68
+ if (this.opts.cwd) {
69
+ await this.exec(`cd ${shellQuote(this.opts.cwd)}`);
70
+ }
71
+ }
72
+ /**
73
+ * Wait for a delimiter to appear in the stdout buffer.
74
+ * Returns the output before the delimiter and the exit code.
75
+ */
76
+ waitForDelimiter(delimiter, timeoutMs) {
77
+ return new Promise((resolve, reject) => {
78
+ const timer = setTimeout(() => {
79
+ clearInterval(poll);
80
+ reject(new Error(`Timed out waiting for SSH shell response (${timeoutMs}ms)`));
81
+ }, timeoutMs);
82
+ const check = () => {
83
+ const idx = this.buffer.indexOf(delimiter);
84
+ if (idx === -1)
85
+ return;
86
+ const lineEnd = this.buffer.indexOf("\n", idx);
87
+ if (lineEnd === -1)
88
+ return;
89
+ const output = this.buffer.slice(0, idx);
90
+ const delimLine = this.buffer.slice(idx, lineEnd);
91
+ this.buffer = this.buffer.slice(lineEnd + 1);
92
+ clearTimeout(timer);
93
+ clearInterval(poll);
94
+ const match = delimLine.match(/\s+(\d+)\s*$/);
95
+ const exitCode = match ? parseInt(match[1], 10) : 0;
96
+ resolve({ output, exitCode });
97
+ };
98
+ const poll = setInterval(check, 10);
99
+ check();
100
+ });
101
+ }
102
+ async exec(command, options) {
103
+ if (!this.shell || !this.ready) {
104
+ throw new Error("Transport not connected. Call connect() first.");
105
+ }
106
+ const delimiter = makeDelimiter();
107
+ let stderr = "";
108
+ const stderrHandler = (chunk) => {
109
+ stderr += chunk.toString();
110
+ };
111
+ this.shell.stderr.on("data", stderrHandler);
112
+ // Abort handling
113
+ let aborted = false;
114
+ const onAbort = () => {
115
+ aborted = true;
116
+ this.shell?.stdin?.write("\x03\n");
117
+ };
118
+ if (options?.signal) {
119
+ if (options.signal.aborted) {
120
+ this.shell.stderr.removeListener("data", stderrHandler);
121
+ return { stdout: "", stderr: "Aborted", exitCode: 130 };
122
+ }
123
+ options.signal.addEventListener("abort", onAbort, { once: true });
124
+ }
125
+ const timeoutMs = options?.timeout ?? DEFAULT_EXEC_TIMEOUT_MS;
126
+ // Streaming
127
+ let streamingInterval;
128
+ let lastStreamedIdx = 0;
129
+ if (options?.onData) {
130
+ streamingInterval = setInterval(() => {
131
+ if (this.buffer.length > lastStreamedIdx) {
132
+ const newData = this.buffer.slice(lastStreamedIdx);
133
+ const delimIdx = newData.indexOf("__AL_DELIM_");
134
+ const safeData = delimIdx >= 0 ? newData.slice(0, delimIdx) : newData;
135
+ if (safeData.length > 0) {
136
+ options.onData(Buffer.from(safeData));
137
+ lastStreamedIdx += safeData.length;
138
+ }
139
+ }
140
+ }, 50);
141
+ }
142
+ try {
143
+ this.shell.stdin.write(`${command}\necho "${delimiter} $?"\n`);
144
+ const { output, exitCode } = await this.waitForDelimiter(delimiter, timeoutMs);
145
+ return {
146
+ stdout: output.trimEnd(),
147
+ stderr: stderr.trimEnd(),
148
+ exitCode: aborted ? 130 : exitCode,
149
+ };
150
+ }
151
+ catch (err) {
152
+ if (aborted) {
153
+ return { stdout: "", stderr: "Aborted", exitCode: 130 };
154
+ }
155
+ throw err;
156
+ }
157
+ finally {
158
+ this.shell.stderr.removeListener("data", stderrHandler);
159
+ if (options?.signal) {
160
+ options.signal.removeEventListener("abort", onAbort);
161
+ }
162
+ if (streamingInterval)
163
+ clearInterval(streamingInterval);
164
+ }
165
+ }
166
+ async readFiles(paths) {
167
+ const result = new Map();
168
+ if (paths.length === 0)
169
+ return result;
170
+ // Use base64 encoding over the shell to read files without extra connections.
171
+ // For each file: base64-encode → capture in delimiter-framed output → decode locally.
172
+ for (const path of paths) {
173
+ try {
174
+ const { stdout, exitCode } = await this.exec(`test -r ${shellQuote(path)} && base64 ${shellQuote(path)} || echo "__AL_FILE_MISSING__"`, { timeout: 30_000 });
175
+ if (exitCode === 0 && !stdout.includes("__AL_FILE_MISSING__")) {
176
+ // Remove any whitespace (base64 may be wrapped)
177
+ const cleaned = stdout.replace(/\s/g, "");
178
+ result.set(path, Buffer.from(cleaned, "base64"));
179
+ }
180
+ }
181
+ catch {
182
+ // Skip files that can't be read
183
+ }
184
+ }
185
+ return result;
186
+ }
187
+ async writeFiles(files) {
188
+ if (files.size === 0)
189
+ return;
190
+ // Use base64 encoding over the shell to write files without extra connections.
191
+ for (const [path, content] of files) {
192
+ const dir = path.substring(0, path.lastIndexOf("/"));
193
+ if (dir && dir !== "/") {
194
+ await this.exec(`mkdir -p ${shellQuote(dir)}`, { timeout: 10_000 });
195
+ }
196
+ const b64 = content.toString("base64");
197
+ // Use heredoc to avoid shell argument length limits
198
+ await this.exec(`echo '${b64}' | base64 -d > ${shellQuote(path)}`, { timeout: 30_000 });
199
+ }
200
+ }
201
+ async close() {
202
+ if (this.shell) {
203
+ this.ready = false;
204
+ try {
205
+ this.shell.stdin?.write("exit\n");
206
+ this.shell.stdin?.end();
207
+ }
208
+ catch {
209
+ // stdin may already be closed
210
+ }
211
+ this.shell.kill();
212
+ this.shell = null;
213
+ }
214
+ }
215
+ }
216
+ /** Escape a string for use in a shell command. */
217
+ function shellQuote(s) {
218
+ return `'${s.replace(/'/g, "'\\''")}'`;
219
+ }
220
+ /** Strip ANSI escape sequences and carriage returns from PTY output. */
221
+ function stripAnsi(s) {
222
+ // eslint-disable-next-line no-control-regex
223
+ return s.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, "").replace(/\r/g, "");
224
+ }
225
+ //# sourceMappingURL=ssh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../src/transport/ssh.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC,4EAA4E;AAC5E,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,8CAA8C;AAC9C,MAAM,uBAAuB,GAAG,OAAO,CAAC;AAExC,uEAAuE;AACvE,SAAS,aAAa;IACpB,OAAO,cAAc,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAC1D,CAAC;AAmBD,MAAM,OAAO,YAAY;IAKH;IAJZ,KAAK,GAAwB,IAAI,CAAC;IAClC,KAAK,GAAG,KAAK,CAAC;IACd,MAAM,GAAG,EAAE,CAAC;IAEpB,YAAoB,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAE9C,gFAAgF;IAChF,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,GAAa;YACrB,KAAK,EAAW,6CAA6C;YAC7D,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,uBAAuB;SAC9B,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,2BAA2B;QAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;YAC3B,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACvC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElB,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE;YAC9B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC9C,mEAAmE;YACnE,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,KAAK,CAAC,SAAS,UAAU,QAAQ,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,sBAAsB,CAAC,CAAC;QAC9F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,+BAA+B;QAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,SAAiB,EAAE,SAAiB;QAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,aAAa,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,6CAA6C,SAAS,KAAK,CAAC,CAAC,CAAC;YACjF,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,MAAM,KAAK,GAAG,GAAG,EAAE;gBACjB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,OAAO;gBAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC/C,IAAI,OAAO,KAAK,CAAC,CAAC;oBAAE,OAAO;gBAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBAE7C,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,aAAa,CAAC,IAAI,CAAC,CAAC;gBAEpB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpD,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC;YAEF,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpC,KAAK,EAAE,CAAC;QACV,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,OAAqB;QAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAE7C,iBAAiB;QACjB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC;QACF,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAO,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBACzD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAC1D,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,EAAE,OAAO,IAAI,uBAAuB,CAAC;QAE9D,YAAY;QACZ,IAAI,iBAA6D,CAAC;QAClE,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;gBACnC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;oBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;oBAChD,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBACtE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,OAAO,CAAC,MAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACvC,eAAe,IAAI,QAAQ,CAAC,MAAM,CAAC;oBACrC,CAAC;gBACH,CAAC;YACH,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,KAAK,CAAC,GAAG,OAAO,WAAW,SAAS,QAAQ,CAAC,CAAC;YAChE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAE/E,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;gBACxB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;gBACxB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ;aACnC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAC1D,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,MAAO,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YACzD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,iBAAiB;gBAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAe;QAC7B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAEtC,8EAA8E;QAC9E,sFAAsF;QACtF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAC1C,WAAW,UAAU,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,IAAI,CAAC,gCAAgC,EACzF,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAC;gBACF,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC9D,gDAAgD;oBAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC1C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gCAAgC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAA0B;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAE7B,+EAA+E;QAC/E,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvC,oDAAoD;YACpD,MAAM,IAAI,CAAC,IAAI,CACb,SAAS,GAAG,mBAAmB,UAAU,CAAC,IAAI,CAAC,EAAE,EACjD,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,8BAA8B;YAChC,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;CACF;AAED,kDAAkD;AAClD,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,wEAAwE;AACxE,SAAS,SAAS,CAAC,CAAS;IAC1B,4CAA4C;IAC5C,OAAO,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Transport — the abstraction layer between the scheduler (brain) and runtime (body).
3
+ *
4
+ * A transport provides a persistent connection to a runtime environment (container, VM,
5
+ * OS user) through which the scheduler can execute commands and transfer files. The agent
6
+ * (LLM) doesn't know about the transport — it sees standard tools (bash, read, write, edit)
7
+ * that happen to execute remotely.
8
+ *
9
+ * Transport implementations:
10
+ * - DockerExecTransport — local Docker via `docker exec`
11
+ * - SshTransport — remote VMs via SSH (future)
12
+ * - HostUserTransport — local OS user via `sudo -u` (future)
13
+ */
14
+ /** Result of executing a command on the runtime. */
15
+ export interface ExecResult {
16
+ stdout: string;
17
+ stderr: string;
18
+ exitCode: number | null;
19
+ }
20
+ /** Options for command execution. */
21
+ export interface ExecOptions {
22
+ /** Callback for streaming stdout data as it arrives. */
23
+ onData?: (data: Buffer) => void;
24
+ /** AbortSignal to cancel execution. */
25
+ signal?: AbortSignal;
26
+ /** Timeout in milliseconds. */
27
+ timeout?: number;
28
+ }
29
+ /**
30
+ * Transport interface — the contract all transport implementations must satisfy.
31
+ *
32
+ * Provides two channels:
33
+ * 1. A persistent shell session for command execution (exec)
34
+ * 2. A file transfer mechanism for reading/writing files (readFiles/writeFiles)
35
+ */
36
+ export interface Transport {
37
+ /**
38
+ * Execute a command in the persistent shell session.
39
+ * Shell state (cwd, env vars) persists across calls.
40
+ */
41
+ exec(command: string, options?: ExecOptions): Promise<ExecResult>;
42
+ /**
43
+ * Read multiple files from the runtime in a single batch.
44
+ * Returns a map of path → contents. Missing files are omitted from the result.
45
+ */
46
+ readFiles(paths: string[]): Promise<Map<string, Buffer>>;
47
+ /**
48
+ * Write multiple files to the runtime in a single batch.
49
+ * Creates parent directories as needed.
50
+ */
51
+ writeFiles(files: Map<string, Buffer>): Promise<void>;
52
+ /** Close the transport connection and release resources. */
53
+ close(): Promise<void>;
54
+ }
55
+ /** Convenience: read a single file via the transport. */
56
+ export declare function readFile(transport: Transport, path: string): Promise<Buffer>;
57
+ /** Convenience: write a single file via the transport. */
58
+ export declare function writeFile(transport: Transport, path: string, content: Buffer): Promise<void>;
59
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,oDAAoD;AACpD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,qCAAqC;AACrC,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,uCAAuC;IACvC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAElE;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzD;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD,4DAA4D;IAC5D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,yDAAyD;AACzD,wBAAsB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOlF;AAED,0DAA0D;AAC1D,wBAAsB,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIlG"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Transport — the abstraction layer between the scheduler (brain) and runtime (body).
3
+ *
4
+ * A transport provides a persistent connection to a runtime environment (container, VM,
5
+ * OS user) through which the scheduler can execute commands and transfer files. The agent
6
+ * (LLM) doesn't know about the transport — it sees standard tools (bash, read, write, edit)
7
+ * that happen to execute remotely.
8
+ *
9
+ * Transport implementations:
10
+ * - DockerExecTransport — local Docker via `docker exec`
11
+ * - SshTransport — remote VMs via SSH (future)
12
+ * - HostUserTransport — local OS user via `sudo -u` (future)
13
+ */
14
+ /** Convenience: read a single file via the transport. */
15
+ export async function readFile(transport, path) {
16
+ const result = await transport.readFiles([path]);
17
+ const content = result.get(path);
18
+ if (!content) {
19
+ throw new Error(`File not found: ${path}`);
20
+ }
21
+ return content;
22
+ }
23
+ /** Convenience: write a single file via the transport. */
24
+ export async function writeFile(transport, path, content) {
25
+ const files = new Map();
26
+ files.set(path, content);
27
+ await transport.writeFiles(files);
28
+ }
29
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiDH,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,SAAoB,EAAE,IAAY;IAC/D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAAoB,EAAE,IAAY,EAAE,OAAe;IACjF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,MAAM,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@action-llama/action-llama",
3
- "version": "0.27.4",
3
+ "version": "0.28.0",
4
4
  "description": "Automated development agents triggered by cron or webhooks. BYOM — bring your own model.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,31 +0,0 @@
1
- import { DefaultResourceLoader, SettingsManager } from "@mariozechner/pi-coding-agent";
2
- import type { AgentConfig } from "../shared/config.js";
3
- /**
4
- * Components initialized once and reused across invocations (Lambda) or
5
- * used for the single run (Docker/ECS).
6
- */
7
- export interface AgentInit {
8
- agentConfig: AgentConfig;
9
- skillBody: string;
10
- timeoutSeconds: number;
11
- resourceLoader: InstanceType<typeof DefaultResourceLoader>;
12
- settingsManager: ReturnType<typeof SettingsManager.inMemory>;
13
- signalDir: string;
14
- }
15
- /**
16
- * One-time initialization — called once during Lambda init (cold start) or
17
- * at the start of a direct container run. Sets up PATH, signal dir, loads
18
- * static config, creates reusable model/resourceLoader/settingsManager.
19
- */
20
- export declare function initAgent(): Promise<AgentInit>;
21
- /**
22
- * Per-invocation handler. Loads credentials, creates a session, runs the
23
- * prompt, reads signals, and returns an exit code.
24
- */
25
- export declare function handleInvocation(init: AgentInit): Promise<number>;
26
- /**
27
- * Legacy single-function entrypoint. Calls initAgent() then handleInvocation().
28
- * Kept for backward compatibility with non-Lambda container runs.
29
- */
30
- export declare function runAgent(): Promise<number>;
31
- //# sourceMappingURL=container-entry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"container-entry.d.ts","sourceRoot":"","sources":["../../src/agents/container-entry.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,qBAAqB,EACrB,eAAe,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAyBvD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC3D,eAAe,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC7D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,CAiGpD;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAkMvE;AAED;;;GAGG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAGhD"}