@felan-ai/ext-background-bash 0.3.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import type { AgentRuntime } from '@felan-ai/agent-core';
2
+ export type BackgroundBashStatus = 'running' | 'completed' | 'failed' | 'killed' | 'unknown';
3
+ export type BackgroundBashStatusFilter = BackgroundBashStatus | 'all';
4
+ export interface BackgroundBashInfo {
5
+ id: string;
6
+ command: string;
7
+ cwd: string;
8
+ jobDir: string;
9
+ logPath: string;
10
+ infoPath: string;
11
+ completionPath: string;
12
+ commandPath: string;
13
+ runnerPath: string;
14
+ shell: string;
15
+ shellArgs: string[];
16
+ startedAt: number;
17
+ updatedAt: number;
18
+ status: BackgroundBashStatus;
19
+ pid?: number;
20
+ processGroupId?: number;
21
+ processToken?: string;
22
+ creatorPid: number;
23
+ exitCode?: number | null;
24
+ signal?: string | null;
25
+ completedAt?: number;
26
+ error?: string;
27
+ }
28
+ export interface BackgroundBashMeta {
29
+ id: string;
30
+ command: string;
31
+ cwd: string;
32
+ jobDir: string;
33
+ logPath: string;
34
+ infoPath: string;
35
+ completionPath: string;
36
+ commandPath: string;
37
+ runnerPath: string;
38
+ shell: string;
39
+ shellArgs: string[];
40
+ startedAt: number;
41
+ pid?: number;
42
+ processGroupId?: number;
43
+ processToken?: string;
44
+ creatorPid: number;
45
+ }
46
+ export interface BackgroundBashStatusFile {
47
+ id: string;
48
+ status: BackgroundBashStatus;
49
+ startedAt: number;
50
+ updatedAt: number;
51
+ pid?: number;
52
+ exitCode?: number | null;
53
+ signal?: string | null;
54
+ completedAt?: number;
55
+ error?: string;
56
+ }
57
+ export interface BackgroundBashJob {
58
+ meta: BackgroundBashMeta;
59
+ status: BackgroundBashStatusFile;
60
+ info: BackgroundBashInfo;
61
+ }
62
+ export declare function getBackgroundBashWorkspaceKey(cwd: string): string;
63
+ export declare function getBackgroundBashRoot(storageRoot: string, cwd: string): string;
64
+ export declare function getBackgroundBashJobsDir(storageRoot: string, cwd: string): string;
65
+ export declare function isBackgroundBashJobId(id: string): boolean;
66
+ export declare function isTerminalStatus(status: BackgroundBashStatus): boolean;
67
+ export declare class BackgroundBashJobStore {
68
+ #private;
69
+ private readonly runtime;
70
+ readonly rootDir: string;
71
+ readonly jobsDir: string;
72
+ constructor(runtime: AgentRuntime);
73
+ createJob(command: string): Promise<BackgroundBashJob>;
74
+ readJob(id: string): Promise<BackgroundBashJob | undefined>;
75
+ listJobs(status?: BackgroundBashStatusFilter): Promise<BackgroundBashJob[]>;
76
+ updatePid(id: string, pid: number, processGroupId?: number): Promise<BackgroundBashJob | undefined>;
77
+ markStatus(id: string, patch: Partial<BackgroundBashStatusFile> & {
78
+ status: BackgroundBashStatus;
79
+ }): Promise<BackgroundBashJob | undefined>;
80
+ private readLegacyJob;
81
+ private writeInfo;
82
+ private writeStatus;
83
+ }
84
+ //# sourceMappingURL=job-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-store.d.ts","sourceRoot":"","sources":["../src/job-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,sBAAsB,CAAC;AAE9E,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC7F,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,GAAG,KAAK,CAAC;AAEtE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,wBAAwB,CAAC;IACjC,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAmBD,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASjE;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAEtE;AAOD,qBAAa,sBAAsB;;IAKrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAGI,OAAO,EAAE,YAAY;IAM5C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwCtD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAoB3D,QAAQ,CAAC,MAAM,GAAE,0BAAkC,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAsBlF,SAAS,CACb,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAcnC,UAAU,CACd,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG;QAAE,MAAM,EAAE,oBAAoB,CAAA;KAAE,GAC1E,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;YAqB3B,aAAa;YAuCb,SAAS;YAIT,WAAW;CAG1B"}
@@ -0,0 +1,349 @@
1
+ import { createHash, randomBytes } from 'node:crypto';
2
+ import { basename, join, resolve } from 'node:path';
3
+ const STATUS_VALUES = new Set([
4
+ 'running',
5
+ 'completed',
6
+ 'failed',
7
+ 'killed',
8
+ 'unknown',
9
+ ]);
10
+ const TERMINAL_STATUSES = new Set([
11
+ 'completed',
12
+ 'failed',
13
+ 'killed',
14
+ 'unknown',
15
+ ]);
16
+ const JOB_ID_PATTERN = /^bash-\d{14}-[a-f0-9]{6}$/u;
17
+ const encoder = new TextEncoder();
18
+ const decoder = new TextDecoder();
19
+ export function getBackgroundBashWorkspaceKey(cwd) {
20
+ const resolvedCwd = resolve(cwd);
21
+ const label = basename(resolvedCwd)
22
+ .toLowerCase()
23
+ .replace(/[^a-z0-9._-]+/gu, '-')
24
+ .replace(/^-+|-+$/gu, '')
25
+ .slice(0, 48) || 'workspace';
26
+ const digest = createHash('sha256').update(resolvedCwd).digest('hex').slice(0, 12);
27
+ return `${label}-${digest}`;
28
+ }
29
+ export function getBackgroundBashRoot(storageRoot, cwd) {
30
+ return join(storageRoot, 'background-bash', getBackgroundBashWorkspaceKey(cwd));
31
+ }
32
+ export function getBackgroundBashJobsDir(storageRoot, cwd) {
33
+ return join(getBackgroundBashRoot(storageRoot, cwd), 'jobs');
34
+ }
35
+ export function isBackgroundBashJobId(id) {
36
+ return JOB_ID_PATTERN.test(id);
37
+ }
38
+ export function isTerminalStatus(status) {
39
+ return TERMINAL_STATUSES.has(status);
40
+ }
41
+ function generateJobId() {
42
+ const stamp = new Date().toISOString().replace(/[-:.TZ]/gu, '').slice(0, 14);
43
+ return `bash-${stamp}-${randomBytes(3).toString('hex')}`;
44
+ }
45
+ export class BackgroundBashJobStore {
46
+ runtime;
47
+ rootDir;
48
+ jobsDir;
49
+ #storage;
50
+ constructor(runtime) {
51
+ this.runtime = runtime;
52
+ this.#storage = runtime.storage;
53
+ this.rootDir = getBackgroundBashRoot(this.#storage.root, runtime.cwd);
54
+ this.jobsDir = getBackgroundBashJobsDir(this.#storage.root, runtime.cwd);
55
+ }
56
+ async createJob(command) {
57
+ await this.#storage.mkdir(this.jobsDir, { recursive: true });
58
+ let id = generateJobId();
59
+ let jobDir = join(this.jobsDir, id);
60
+ for (let attempt = 0; attempt < 5; attempt += 1) {
61
+ try {
62
+ await this.#storage.mkdir(jobDir);
63
+ break;
64
+ }
65
+ catch (error) {
66
+ if (!isAlreadyExistsError(error) || attempt === 4)
67
+ throw error;
68
+ id = generateJobId();
69
+ jobDir = join(this.jobsDir, id);
70
+ }
71
+ }
72
+ const now = Date.now();
73
+ const info = {
74
+ id,
75
+ command,
76
+ cwd: this.runtime.cwd,
77
+ jobDir,
78
+ logPath: join(jobDir, 'output.log'),
79
+ infoPath: join(jobDir, 'info.json'),
80
+ completionPath: join(jobDir, 'completion.json'),
81
+ commandPath: join(jobDir, 'command.sh'),
82
+ runnerPath: join(jobDir, 'runner.sh'),
83
+ shell: 'sh',
84
+ shellArgs: [],
85
+ startedAt: now,
86
+ updatedAt: now,
87
+ status: 'running',
88
+ creatorPid: process.pid,
89
+ processToken: randomBytes(16).toString('hex'),
90
+ };
91
+ await this.writeInfo(info);
92
+ return jobFromInfo(info);
93
+ }
94
+ async readJob(id) {
95
+ if (!isBackgroundBashJobId(id))
96
+ return undefined;
97
+ const jobDir = join(this.jobsDir, id);
98
+ const info = normalizeInfo(await readJson(this.#storage, join(jobDir, 'info.json')), id, jobDir);
99
+ if (info) {
100
+ const completion = normalizeStatus(await readJson(this.#storage, info.completionPath), info);
101
+ if (completion && isTerminalStatus(completion.status)) {
102
+ const completedInfo = mergeStatus(info, completion);
103
+ if (info.status === 'running')
104
+ await this.writeInfo(completedInfo);
105
+ return jobFromInfo(completedInfo);
106
+ }
107
+ return jobFromInfo(info);
108
+ }
109
+ return this.readLegacyJob(id, jobDir);
110
+ }
111
+ async listJobs(status = 'all') {
112
+ await this.#storage.mkdir(this.jobsDir, { recursive: true });
113
+ const files = await this.#storage.listFiles(this.jobsDir, { recursive: true });
114
+ const ids = new Set();
115
+ for (const file of files) {
116
+ const [id, name] = file.replaceAll('\\', '/').split('/');
117
+ if (id && (name === 'info.json' || name === 'meta.json') && isBackgroundBashJobId(id)) {
118
+ ids.add(id);
119
+ }
120
+ }
121
+ const jobs = [];
122
+ for (const id of ids) {
123
+ const job = await this.readJob(id);
124
+ if (!job)
125
+ continue;
126
+ if (status !== 'all' && job.status.status !== status)
127
+ continue;
128
+ jobs.push(job);
129
+ }
130
+ jobs.sort((a, b) => b.meta.startedAt - a.meta.startedAt);
131
+ return jobs;
132
+ }
133
+ async updatePid(id, pid, processGroupId) {
134
+ const job = await this.readJob(id);
135
+ if (!job)
136
+ return undefined;
137
+ const info = {
138
+ ...job.info,
139
+ pid,
140
+ ...(processGroupId === undefined ? {} : { processGroupId }),
141
+ status: isTerminalStatus(job.status.status) ? job.status.status : 'running',
142
+ updatedAt: Date.now(),
143
+ };
144
+ await this.writeInfo(info);
145
+ return jobFromInfo(info);
146
+ }
147
+ async markStatus(id, patch) {
148
+ const job = await this.readJob(id);
149
+ if (!job)
150
+ return undefined;
151
+ const now = Date.now();
152
+ const status = {
153
+ ...job.status,
154
+ ...patch,
155
+ id,
156
+ status: patch.status,
157
+ startedAt: job.status.startedAt,
158
+ updatedAt: now,
159
+ ...(patch.completedAt === undefined && isTerminalStatus(patch.status)
160
+ ? { completedAt: now }
161
+ : {}),
162
+ };
163
+ const info = mergeStatus(job.info, status);
164
+ await this.writeStatus(info.completionPath, status);
165
+ await this.writeInfo(info);
166
+ return jobFromInfo(info);
167
+ }
168
+ async readLegacyJob(id, jobDir) {
169
+ const meta = await readJson(this.#storage, join(jobDir, 'meta.json'));
170
+ if (!isRecord(meta) || meta.id !== id || typeof meta.command !== 'string')
171
+ return undefined;
172
+ const startedAt = numberValue(meta.startedAt) ?? Date.now();
173
+ const baseInfo = {
174
+ id,
175
+ command: meta.command,
176
+ cwd: typeof meta.cwd === 'string' ? meta.cwd : this.runtime.cwd,
177
+ jobDir,
178
+ logPath: join(jobDir, 'output.log'),
179
+ infoPath: join(jobDir, 'info.json'),
180
+ completionPath: join(jobDir, 'completion.json'),
181
+ commandPath: join(jobDir, 'command.sh'),
182
+ runnerPath: join(jobDir, 'runner.sh'),
183
+ shell: typeof meta.shell === 'string' ? meta.shell : 'sh',
184
+ shellArgs: stringArray(meta.shellArgs),
185
+ startedAt,
186
+ updatedAt: startedAt,
187
+ status: 'unknown',
188
+ creatorPid: numberValue(meta.creatorPid) ?? 0,
189
+ ...(numberValue(meta.pid) === undefined ? {} : { pid: numberValue(meta.pid) }),
190
+ };
191
+ const legacyStatus = normalizeStatus(await readJson(this.#storage, join(jobDir, 'status.json')), baseInfo) ?? {
192
+ id,
193
+ status: 'unknown',
194
+ startedAt,
195
+ updatedAt: Date.now(),
196
+ ...(baseInfo.pid === undefined ? {} : { pid: baseInfo.pid }),
197
+ error: 'Missing status.json',
198
+ };
199
+ const info = mergeStatus(baseInfo, legacyStatus);
200
+ await this.writeInfo(info);
201
+ return jobFromInfo(info);
202
+ }
203
+ async writeInfo(info) {
204
+ await writeJson(this.#storage, info.infoPath, info);
205
+ }
206
+ async writeStatus(path, status) {
207
+ await writeJson(this.#storage, path, status);
208
+ }
209
+ }
210
+ function jobFromInfo(info) {
211
+ const meta = {
212
+ id: info.id,
213
+ command: info.command,
214
+ cwd: info.cwd,
215
+ jobDir: info.jobDir,
216
+ logPath: info.logPath,
217
+ infoPath: info.infoPath,
218
+ completionPath: info.completionPath,
219
+ commandPath: info.commandPath,
220
+ runnerPath: info.runnerPath,
221
+ shell: info.shell,
222
+ shellArgs: info.shellArgs,
223
+ startedAt: info.startedAt,
224
+ creatorPid: info.creatorPid,
225
+ ...(info.pid === undefined ? {} : { pid: info.pid }),
226
+ ...(info.processGroupId === undefined ? {} : { processGroupId: info.processGroupId }),
227
+ ...(info.processToken === undefined ? {} : { processToken: info.processToken }),
228
+ };
229
+ const status = {
230
+ id: info.id,
231
+ status: info.status,
232
+ startedAt: info.startedAt,
233
+ updatedAt: info.updatedAt,
234
+ ...(info.pid === undefined ? {} : { pid: info.pid }),
235
+ ...(info.exitCode === undefined ? {} : { exitCode: info.exitCode }),
236
+ ...(info.signal === undefined ? {} : { signal: info.signal }),
237
+ ...(info.completedAt === undefined ? {} : { completedAt: info.completedAt }),
238
+ ...(info.error === undefined ? {} : { error: info.error }),
239
+ };
240
+ return { info, meta, status };
241
+ }
242
+ function mergeStatus(info, status) {
243
+ return {
244
+ ...info,
245
+ status: status.status,
246
+ updatedAt: status.updatedAt,
247
+ ...(status.pid === undefined ? {} : { pid: status.pid }),
248
+ ...(status.exitCode === undefined ? {} : { exitCode: status.exitCode }),
249
+ ...(status.signal === undefined ? {} : { signal: status.signal }),
250
+ ...(status.completedAt === undefined ? {} : { completedAt: status.completedAt }),
251
+ ...(status.error === undefined ? {} : { error: status.error }),
252
+ };
253
+ }
254
+ function normalizeInfo(value, id, jobDir) {
255
+ if (!isRecord(value) || value.id !== id || typeof value.command !== 'string')
256
+ return undefined;
257
+ const status = statusValue(value.status);
258
+ const startedAt = numberValue(value.startedAt);
259
+ if (!status || startedAt === undefined)
260
+ return undefined;
261
+ return {
262
+ id,
263
+ command: value.command,
264
+ cwd: typeof value.cwd === 'string' ? value.cwd : '',
265
+ jobDir,
266
+ logPath: join(jobDir, 'output.log'),
267
+ infoPath: join(jobDir, 'info.json'),
268
+ completionPath: join(jobDir, 'completion.json'),
269
+ commandPath: join(jobDir, 'command.sh'),
270
+ runnerPath: join(jobDir, 'runner.sh'),
271
+ shell: typeof value.shell === 'string' ? value.shell : 'sh',
272
+ shellArgs: stringArray(value.shellArgs),
273
+ startedAt,
274
+ updatedAt: numberValue(value.updatedAt) ?? startedAt,
275
+ status,
276
+ creatorPid: numberValue(value.creatorPid) ?? 0,
277
+ ...(numberValue(value.pid) === undefined ? {} : { pid: numberValue(value.pid) }),
278
+ ...(processGroupId(value) === undefined ? {} : { processGroupId: processGroupId(value) }),
279
+ ...(processToken(value.processToken) === undefined ? {} : { processToken: processToken(value.processToken) }),
280
+ ...(nullableNumber(value.exitCode) === undefined ? {} : { exitCode: nullableNumber(value.exitCode) }),
281
+ ...(nullableString(value.signal) === undefined ? {} : { signal: nullableString(value.signal) }),
282
+ ...(numberValue(value.completedAt) === undefined ? {} : { completedAt: numberValue(value.completedAt) }),
283
+ ...(typeof value.error !== 'string' ? {} : { error: value.error }),
284
+ };
285
+ }
286
+ function normalizeStatus(value, info) {
287
+ if (!isRecord(value) || value.id !== info.id)
288
+ return undefined;
289
+ const status = statusValue(value.status);
290
+ if (!status)
291
+ return undefined;
292
+ return {
293
+ id: info.id,
294
+ status,
295
+ startedAt: numberValue(value.startedAt) ?? info.startedAt,
296
+ updatedAt: numberValue(value.updatedAt) ?? info.updatedAt,
297
+ ...(numberValue(value.pid) === undefined ? {} : { pid: numberValue(value.pid) }),
298
+ ...(nullableNumber(value.exitCode) === undefined ? {} : { exitCode: nullableNumber(value.exitCode) }),
299
+ ...(nullableString(value.signal) === undefined ? {} : { signal: nullableString(value.signal) }),
300
+ ...(numberValue(value.completedAt) === undefined ? {} : { completedAt: numberValue(value.completedAt) }),
301
+ ...(typeof value.error !== 'string' ? {} : { error: value.error }),
302
+ };
303
+ }
304
+ async function readJson(storage, path) {
305
+ try {
306
+ return JSON.parse(decoder.decode(await storage.readFile(path)));
307
+ }
308
+ catch {
309
+ return undefined;
310
+ }
311
+ }
312
+ async function writeJson(storage, path, value) {
313
+ await storage.writeFile(path, encoder.encode(`${JSON.stringify(value, null, 2)}\n`));
314
+ }
315
+ function statusValue(value) {
316
+ return typeof value === 'string' && STATUS_VALUES.has(value)
317
+ ? value
318
+ : undefined;
319
+ }
320
+ function numberValue(value) {
321
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
322
+ }
323
+ function nullableNumber(value) {
324
+ return value === null ? null : numberValue(value);
325
+ }
326
+ function nullableString(value) {
327
+ return value === null || typeof value === 'string' ? value : undefined;
328
+ }
329
+ function processGroupId(value) {
330
+ const explicit = numberValue(value.processGroupId);
331
+ if (explicit !== undefined)
332
+ return explicit;
333
+ const pid = numberValue(value.pid);
334
+ return value.processGroup === true ? pid : undefined;
335
+ }
336
+ function processToken(value) {
337
+ return typeof value === 'string' && /^[a-f0-9]{32}$/u.test(value) ? value : undefined;
338
+ }
339
+ function stringArray(value) {
340
+ return Array.isArray(value) ? value.filter((entry) => typeof entry === 'string') : [];
341
+ }
342
+ function isRecord(value) {
343
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
344
+ }
345
+ function isAlreadyExistsError(error) {
346
+ return error instanceof Error
347
+ && (('code' in error && error.code === 'EEXIST') || error.message.includes('already exists'));
348
+ }
349
+ //# sourceMappingURL=job-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-store.js","sourceRoot":"","sources":["../src/job-store.ts"],"names":[],"mappings":"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"}
package/dist/logs.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import type { AgentRuntimeStorage } from '@felan-ai/agent-core';
2
+ export declare function createOutputLog(storage: AgentRuntimeStorage, logPath: string): Promise<void>;
3
+ export declare function readLogTail(storage: AgentRuntimeStorage, logPath: string, lines?: number): Promise<string>;
4
+ export declare function readWholeLogIfSmall(storage: AgentRuntimeStorage, logPath: string, maxBytes?: number): Promise<string>;
5
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAOhE,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,EACf,KAAK,SAAqB,GACzB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,SAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,CAIjB"}
package/dist/logs.js ADDED
@@ -0,0 +1,44 @@
1
+ const DEFAULT_TAIL_LINES = 80;
2
+ const MAX_TAIL_BYTES = 128 * 1024;
3
+ const encoder = new TextEncoder();
4
+ const decoder = new TextDecoder();
5
+ export async function createOutputLog(storage, logPath) {
6
+ await storage.writeFile(logPath, encoder.encode(''));
7
+ }
8
+ export async function readLogTail(storage, logPath, lines = DEFAULT_TAIL_LINES) {
9
+ const maxLines = Math.max(1, lines);
10
+ try {
11
+ const content = await storage.readFile(logPath);
12
+ const truncatedByBytes = content.byteLength > MAX_TAIL_BYTES;
13
+ const selectedBytes = truncatedByBytes ? content.slice(-MAX_TAIL_BYTES) : content;
14
+ let text = decoder.decode(selectedBytes);
15
+ if (truncatedByBytes) {
16
+ const firstNewline = text.indexOf('\n');
17
+ if (firstNewline !== -1)
18
+ text = text.slice(firstNewline + 1);
19
+ }
20
+ const allLines = text.split(/\r?\n/);
21
+ const selected = allLines.slice(-maxLines).join('\n');
22
+ if (truncatedByBytes || allLines.length > maxLines) {
23
+ return `[Showing last ${maxLines} log lines. Full output: ${logPath}]\n${selected}`;
24
+ }
25
+ return selected || '(log is empty)';
26
+ }
27
+ catch (error) {
28
+ if (isMissingPathError(error))
29
+ return '(log file not found)';
30
+ throw error;
31
+ }
32
+ }
33
+ export async function readWholeLogIfSmall(storage, logPath, maxBytes = MAX_TAIL_BYTES) {
34
+ const content = await storage.readFile(logPath);
35
+ if (content.byteLength <= maxBytes)
36
+ return decoder.decode(content);
37
+ return readLogTail(storage, logPath);
38
+ }
39
+ function isMissingPathError(error) {
40
+ return error instanceof Error
41
+ && 'code' in error
42
+ && (error.code === 'ENOENT' || error.code === 'ENOTDIR');
43
+ }
44
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;AAClC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA4B,EAAE,OAAe;IACjF,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA4B,EAC5B,OAAe,EACf,KAAK,GAAG,kBAAkB;IAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;QAC7D,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAClF,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,YAAY,KAAK,CAAC,CAAC;gBAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,gBAAgB,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YACnD,OAAO,iBAAiB,QAAQ,4BAA4B,OAAO,MAAM,QAAQ,EAAE,CAAC;QACtF,CAAC;QACD,OAAO,QAAQ,IAAI,gBAAgB,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,kBAAkB,CAAC,KAAK,CAAC;YAAE,OAAO,sBAAsB,CAAC;QAC7D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA4B,EAC5B,OAAe,EACf,QAAQ,GAAG,cAAc;IAEzB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,UAAU,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,KAAK,YAAY,KAAK;WACxB,MAAM,IAAI,KAAK;WACf,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { AgentRuntime } from '@felan-ai/agent-core';
2
+ import { type BackgroundBashJob, type BackgroundBashStatusFilter } from './job-store.js';
3
+ export interface WaitBackgroundBashResult {
4
+ job: BackgroundBashJob;
5
+ timedOut: boolean;
6
+ }
7
+ export declare class BackgroundBashManager {
8
+ #private;
9
+ private readonly runtime;
10
+ constructor(runtime: AgentRuntime);
11
+ start(command: string): Promise<BackgroundBashJob>;
12
+ list(status?: BackgroundBashStatusFilter): Promise<BackgroundBashJob[]>;
13
+ get(id: string): Promise<BackgroundBashJob>;
14
+ wait(id: string, timeoutSeconds?: number, signal?: AbortSignal): Promise<WaitBackgroundBashResult>;
15
+ stop(id: string, signal?: NodeJS.Signals): Promise<BackgroundBashJob>;
16
+ tail(id: string, lines?: number): Promise<string>;
17
+ }
18
+ //# sourceMappingURL=process-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAEhC,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,iBAAiB,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAMD,qBAAa,qBAAqB;;IAGpB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAI5C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoClD,IAAI,CAAC,MAAM,GAAE,0BAAkC,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAS9E,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAM3C,IAAI,CACR,EAAE,EAAE,MAAM,EACV,cAAc,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,wBAAwB,CAAC;IAiB9B,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,OAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsChF,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC;CAyDpD"}