@miosa/cli 1.0.45 → 1.0.47

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.
@@ -53,7 +53,27 @@ async function resolveAppId(client, appArg) {
53
53
  return app.id;
54
54
  }
55
55
  }
56
- function printMachineLogs(payload, json) {
56
+ function printMachineLogs(payload, json, filters = {}) {
57
+ if (hasLogFilters(filters)) {
58
+ const logs = filterLogLines(extractLogLines(payload), filters);
59
+ if (json) {
60
+ console.log(JSON.stringify({
61
+ ok: true,
62
+ count: logs.length,
63
+ logs: logs.map((entry) => ({
64
+ line: entry.line,
65
+ timestamp: entry.timestamp,
66
+ stream: entry.stream,
67
+ })),
68
+ }, null, 2));
69
+ return;
70
+ }
71
+ for (const entry of logs) {
72
+ const prefix = entry.timestamp ? `${chalk.dim(entry.timestamp)} ` : "";
73
+ console.log(`${prefix}${entry.line}`);
74
+ }
75
+ return;
76
+ }
57
77
  if (json) {
58
78
  console.log(JSON.stringify(payload, null, 2));
59
79
  return;
@@ -69,18 +89,18 @@ function printMachineLogs(payload, json) {
69
89
  }
70
90
  console.log(JSON.stringify(payload, null, 2));
71
91
  }
72
- async function printDeploymentLogsJson(client, deploymentId) {
92
+ async function printDeploymentLogsJson(client, deploymentId, filters = {}) {
73
93
  const payload = await client.apiGet(`/api/v1/deployments/${encodeURIComponent(deploymentId)}/logs`);
74
- printMachineLogs(payload, true);
94
+ printMachineLogs(payload, true, filters);
75
95
  }
76
- async function streamSse(res) {
96
+ async function streamSse(res, filters = {}) {
77
97
  for await (const event of parseSse(res.body)) {
78
98
  switch (event.type) {
79
99
  case "stdout":
80
- process.stdout.write(event.data);
100
+ writeFilteredLogChunk(process.stdout, event.data, filters);
81
101
  break;
82
102
  case "stderr":
83
- process.stderr.write(chalk.red(event.data));
103
+ writeFilteredLogChunk(process.stderr, event.data, filters, true);
84
104
  break;
85
105
  case "error":
86
106
  console.error(chalk.red(event.message));
@@ -93,10 +113,10 @@ async function streamSse(res) {
93
113
  if (typeof parsed["line"] === "string") {
94
114
  const line = parsed["line"];
95
115
  if (parsed["stream"] === "stderr") {
96
- process.stderr.write(chalk.red(line) + "\n");
116
+ writeFilteredLogChunk(process.stderr, line + "\n", filters, true);
97
117
  }
98
118
  else {
99
- process.stdout.write(line + "\n");
119
+ writeFilteredLogChunk(process.stdout, line + "\n", filters);
100
120
  }
101
121
  }
102
122
  }
@@ -109,6 +129,108 @@ async function streamSse(res) {
109
129
  }
110
130
  }
111
131
  }
132
+ function hasLogFilters(filters) {
133
+ return Boolean(filters.lines != null ||
134
+ filters.tail != null ||
135
+ filters.startTime ||
136
+ filters.contains ||
137
+ filters.textIncludes ||
138
+ filters.textNotIncludes ||
139
+ filters.regex ||
140
+ filters.regexIncludes ||
141
+ filters.regexNotIncludes);
142
+ }
143
+ function extractLogLines(payload) {
144
+ if (payload == null)
145
+ return [];
146
+ if (typeof payload === "string") {
147
+ return payload
148
+ .split(/\r?\n/)
149
+ .filter((line) => line.length > 0)
150
+ .map((line) => ({ line }));
151
+ }
152
+ if (Array.isArray(payload)) {
153
+ return payload.flatMap((item) => extractLogLines(item));
154
+ }
155
+ if (typeof payload === "object") {
156
+ const obj = payload;
157
+ for (const key of ["data", "logs", "lines", "items", "events"]) {
158
+ if (Array.isArray(obj[key]) || typeof obj[key] === "string") {
159
+ return extractLogLines(obj[key]);
160
+ }
161
+ }
162
+ const lineValue = obj["line"] ?? obj["log"] ?? obj["message"] ?? obj["text"] ?? obj["stdout"];
163
+ const stderrValue = obj["stderr"];
164
+ if (typeof lineValue === "string") {
165
+ return splitLogText(lineValue, {
166
+ timestamp: stringish(obj["timestamp"] ?? obj["ts"] ?? obj["time"] ?? obj["t"]),
167
+ stream: stringish(obj["stream"]),
168
+ raw: payload,
169
+ });
170
+ }
171
+ if (typeof stderrValue === "string") {
172
+ return splitLogText(stderrValue, {
173
+ timestamp: stringish(obj["timestamp"] ?? obj["ts"] ?? obj["time"] ?? obj["t"]),
174
+ stream: "stderr",
175
+ raw: payload,
176
+ });
177
+ }
178
+ return [{ line: JSON.stringify(payload), raw: payload }];
179
+ }
180
+ return [{ line: String(payload), raw: payload }];
181
+ }
182
+ function splitLogText(text, meta = {}) {
183
+ return text
184
+ .split(/\r?\n/)
185
+ .filter((line) => line.length > 0)
186
+ .map((line) => ({ ...meta, line }));
187
+ }
188
+ function stringish(value) {
189
+ if (value == null)
190
+ return undefined;
191
+ return String(value);
192
+ }
193
+ function filterLogLines(lines, filters) {
194
+ const includes = filters.contains ?? filters.textIncludes;
195
+ const regexIncludes = filters.regex ?? filters.regexIncludes;
196
+ const includeRe = regexIncludes ? new RegExp(regexIncludes) : null;
197
+ const excludeRe = filters.regexNotIncludes
198
+ ? new RegExp(filters.regexNotIncludes)
199
+ : null;
200
+ const startMs = filters.startTime ? Date.parse(filters.startTime) : NaN;
201
+ let out = lines.filter((entry) => {
202
+ if (Number.isFinite(startMs) && entry.timestamp) {
203
+ const entryMs = Date.parse(entry.timestamp);
204
+ if (Number.isFinite(entryMs) && entryMs < startMs)
205
+ return false;
206
+ }
207
+ if (includes && !entry.line.includes(includes))
208
+ return false;
209
+ if (filters.textNotIncludes && entry.line.includes(filters.textNotIncludes)) {
210
+ return false;
211
+ }
212
+ if (includeRe && !includeRe.test(entry.line))
213
+ return false;
214
+ if (excludeRe && excludeRe.test(entry.line))
215
+ return false;
216
+ return true;
217
+ });
218
+ const limit = filters.tail ?? filters.lines;
219
+ if (limit != null && limit >= 0) {
220
+ out = out.slice(-limit);
221
+ }
222
+ return out;
223
+ }
224
+ function writeFilteredLogChunk(stream, data, filters, red = false) {
225
+ if (!hasLogFilters(filters)) {
226
+ stream.write(red ? chalk.red(data) : data);
227
+ return;
228
+ }
229
+ const lines = filterLogLines(splitLogText(data), filters);
230
+ for (const entry of lines) {
231
+ stream.write((red ? chalk.red(entry.line) : entry.line) + "\n");
232
+ }
233
+ }
112
234
  // ── register ──────────────────────────────────────────────────────────────────
113
235
  export function register(program) {
114
236
  program
@@ -116,6 +238,16 @@ export function register(program) {
116
238
  .description("Stream logs — auto-detects computer, deployment, or sandbox by ID")
117
239
  .option("--machine <id>", "Explicitly fetch logs for a computer/machine")
118
240
  .option("--sandbox <id>", "Explicitly fetch logs for a sandbox")
241
+ .option("--deployment <id>", "Explicitly fetch logs for a deployment/app")
242
+ .option("-l, --lines <n>", "Limit one-shot output to the last N lines", parsePositiveInt)
243
+ .option("--tail <n>", "Alias for --lines", parsePositiveInt)
244
+ .option("--start-time <timestamp>", "Only include log lines at or after this timestamp")
245
+ .option("--contains <text>", "Only include log lines containing this text")
246
+ .option("--text-includes <text>", "Alias for --contains")
247
+ .option("--text-not-includes <text>", "Exclude log lines containing this text")
248
+ .option("--regex <pattern>", "Only include log lines matching this regex")
249
+ .option("--regex-includes <pattern>", "Alias for --regex")
250
+ .option("--regex-not-includes <pattern>", "Exclude log lines matching this regex")
119
251
  .option("--json", "Output raw JSON")
120
252
  .option("-f, --follow", "Open live TUI log tail (requires a TTY)")
121
253
  .addHelpText("after", `
@@ -126,6 +258,10 @@ Examples:
126
258
  miosa logs <sandbox-id> Stream sandbox logs (auto-detected)
127
259
  miosa logs --machine <id> Explicit computer logs
128
260
  miosa logs --sandbox <id> Explicit sandbox logs
261
+ miosa logs --deployment <id> Explicit deployment logs
262
+ miosa logs <id> --lines 100 Print recent log lines
263
+ miosa logs <id> --contains error Filter log lines by text
264
+ miosa logs <id> --regex "500|panic" Filter log lines by regex
129
265
  miosa logs <id> --follow Live TUI tail (interactive)
130
266
  miosa logs <id> -f Same as --follow
131
267
  `)
@@ -133,8 +269,9 @@ Examples:
133
269
  try {
134
270
  const config = loadConfig();
135
271
  const client = new MiosaClient(config);
272
+ const filters = opts;
136
273
  // ── --follow: mount ink TUI ───────────────────────────────────────
137
- if (opts.follow) {
274
+ if (opts.follow && !hasLogFilters(filters)) {
138
275
  if (!process.stdout.isTTY) {
139
276
  console.log();
140
277
  console.log(errorEnvelope({
@@ -185,16 +322,26 @@ Examples:
185
322
  }
186
323
  return;
187
324
  }
325
+ if (opts.deployment) {
326
+ if (isJsonMode(opts)) {
327
+ await printDeploymentLogsJson(client, opts.deployment, filters);
328
+ return;
329
+ }
330
+ console.log(chalk.dim(`Streaming deployment logs for ${opts.deployment}...`));
331
+ const res = await client.streamDeploymentLogs(opts.deployment);
332
+ await streamSse(res, filters);
333
+ return;
334
+ }
188
335
  // ── Explicit computer flag ────────────────────────────────────────
189
336
  if (opts.machine) {
190
337
  const payload = await client.apiGet(`/api/v1/computers/${encodeURIComponent(opts.machine)}/logs`);
191
- printMachineLogs(payload, isJsonMode(opts));
338
+ printMachineLogs(payload, isJsonMode(opts), filters);
192
339
  return;
193
340
  }
194
341
  // ── Explicit sandbox flag ─────────────────────────────────────────
195
342
  if (opts.sandbox) {
196
343
  const payload = await client.apiGet(`/api/v1/sandboxes/${encodeURIComponent(opts.sandbox)}/logs`);
197
- printMachineLogs(payload, isJsonMode(opts));
344
+ printMachineLogs(payload, isJsonMode(opts), filters);
198
345
  return;
199
346
  }
200
347
  // ── Auto-detect resource kind ─────────────────────────────────────
@@ -206,7 +353,7 @@ Examples:
206
353
  console.log(chalk.dim(`Fetching computer logs for ${hint.id}...`));
207
354
  }
208
355
  const payload = await client.apiGet(`/api/v1/computers/${encodeURIComponent(hint.id)}/logs`);
209
- printMachineLogs(payload, isJsonMode(opts));
356
+ printMachineLogs(payload, isJsonMode(opts), filters);
210
357
  return;
211
358
  }
212
359
  case "sandbox": {
@@ -214,17 +361,17 @@ Examples:
214
361
  console.log(chalk.dim(`Fetching sandbox logs for ${hint.id}...`));
215
362
  }
216
363
  const payload = await client.apiGet(`/api/v1/sandboxes/${encodeURIComponent(hint.id)}/logs`);
217
- printMachineLogs(payload, isJsonMode(opts));
364
+ printMachineLogs(payload, isJsonMode(opts), filters);
218
365
  return;
219
366
  }
220
367
  case "deployment": {
221
368
  if (isJsonMode(opts)) {
222
- await printDeploymentLogsJson(client, hint.id);
369
+ await printDeploymentLogsJson(client, hint.id, filters);
223
370
  return;
224
371
  }
225
372
  console.log(chalk.dim(`Streaming deployment logs for ${hint.id}...`));
226
373
  const res = await client.streamDeploymentLogs(hint.id);
227
- await streamSse(res);
374
+ await streamSse(res, filters);
228
375
  return;
229
376
  }
230
377
  }
@@ -232,16 +379,23 @@ Examples:
232
379
  // ── No ID — fall back to .miosa.json linked deployment ────────────
233
380
  const deploymentId = await resolveAppId(client, undefined);
234
381
  if (isJsonMode(opts)) {
235
- await printDeploymentLogsJson(client, deploymentId);
382
+ await printDeploymentLogsJson(client, deploymentId, filters);
236
383
  return;
237
384
  }
238
385
  console.log(chalk.dim(`Streaming logs for ${deploymentId}...`));
239
386
  const res = await client.streamDeploymentLogs(deploymentId);
240
- await streamSse(res);
387
+ await streamSse(res, filters);
241
388
  }
242
389
  catch (err) {
243
390
  handleError(err);
244
391
  }
245
392
  });
246
393
  }
394
+ function parsePositiveInt(value) {
395
+ const parsed = Number.parseInt(value, 10);
396
+ if (!Number.isFinite(parsed) || parsed < 0) {
397
+ throw new UserError(`Invalid integer: ${value}`);
398
+ }
399
+ return parsed;
400
+ }
247
401
  //# sourceMappingURL=logs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/commands/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgDzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqiE/C"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/commands/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgDzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6jE/C"}
@@ -383,6 +383,9 @@ export function register(program) {
383
383
  .allowExcessArguments()
384
384
  .option("--cwd <path>", "Working directory inside the Sandbox")
385
385
  .option("--workdir <path>", "Alias for --cwd")
386
+ .option("--cmd <command>", "Explicit command string to run; avoids CLI parsing command flags")
387
+ .option("--command <command>", "Alias for --cmd")
388
+ .option("--shell-cmd <shell>", "Run --cmd through this shell, e.g. 'bash -lc'")
386
389
  .option("--env <pair>", "Environment variable KEY=VALUE. Repeatable.", collectOption, [])
387
390
  .option("--background", "Start the command in the background and return immediately")
388
391
  .option("--detached", "Create a durable backend command and return command_id immediately")
@@ -400,7 +403,7 @@ export function register(program) {
400
403
  await postAndPrint(`/sandboxes/${enc(id)}/exec`, opts, {});
401
404
  return;
402
405
  }
403
- const cmd = joinCommandWords(words);
406
+ const cmd = resolveSandboxCommand(words, opts);
404
407
  const effectiveCommand = opts.background
405
408
  ? backgroundCommand(cmd)
406
409
  : cmd;
@@ -414,7 +417,7 @@ export function register(program) {
414
417
  }
415
418
  const env = parseEnvPairs(opts.env ?? []);
416
419
  if (opts.detached) {
417
- const result = await createSandboxCommand(id, words.join(" "), {
420
+ const result = await createSandboxCommand(id, cmd, {
418
421
  cwd,
419
422
  env,
420
423
  user: opts.user,
@@ -448,6 +451,9 @@ export function register(program) {
448
451
  .allowExcessArguments()
449
452
  .option("--cwd <path>", "Working directory inside the Sandbox")
450
453
  .option("--workdir <path>", "Alias for --cwd")
454
+ .option("--cmd <command>", "Explicit command string to run; avoids CLI parsing command flags")
455
+ .option("--command <command>", "Alias for --cmd")
456
+ .option("--shell-cmd <shell>", "Run --cmd through this shell, e.g. 'bash -lc'")
451
457
  .option("--env <pair>", "Environment variable KEY=VALUE. Repeatable.", collectOption, [])
452
458
  .option("--background", "Start the command in the background and return immediately")
453
459
  .option("--detached", "Create a durable backend command and return command_id immediately")
@@ -465,7 +471,7 @@ export function register(program) {
465
471
  await postAndPrint(`/sandboxes/${enc(id)}/exec`, opts, {});
466
472
  return;
467
473
  }
468
- const cmd = joinCommandWords(words);
474
+ const cmd = resolveSandboxCommand(words, opts);
469
475
  const effectiveCommand = opts.background
470
476
  ? backgroundCommand(cmd)
471
477
  : cmd;
@@ -479,7 +485,7 @@ export function register(program) {
479
485
  }
480
486
  const env = parseEnvPairs(opts.env ?? []);
481
487
  if (opts.detached) {
482
- const result = await createSandboxCommand(id, words.join(" "), {
488
+ const result = await createSandboxCommand(id, cmd, {
483
489
  cwd,
484
490
  env,
485
491
  user: opts.user,
@@ -2382,6 +2388,15 @@ function backgroundCommand(command) {
2382
2388
  const logPath = `/tmp/miosa-bg-${Date.now()}.log`;
2383
2389
  return `nohup sh -lc ${shellQuote(command)} > ${shellQuote(logPath)} 2>&1 & echo $!`;
2384
2390
  }
2391
+ function resolveSandboxCommand(words, opts) {
2392
+ const positional = words.length === 1 ? (words[0] ?? "") : joinCommandWords(words);
2393
+ const cmd = opts.cmd ?? opts.command ?? positional;
2394
+ if (!opts.shellCmd)
2395
+ return cmd;
2396
+ if (!cmd.trim())
2397
+ return opts.shellCmd;
2398
+ return `${opts.shellCmd} ${shellQuote(cmd)}`;
2399
+ }
2385
2400
  function collectOption(value, previous) {
2386
2401
  return [...previous, value];
2387
2402
  }