@agimon-ai/doompi-runner 0.0.1-alpha.39 → 0.0.1-alpha.40

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agimon-ai/doompi-runner",
3
- "version": "0.0.1-alpha.39",
3
+ "version": "0.0.1-alpha.40",
4
4
  "description": "Supervised shell execution, background process control, and run logs for Pi coding agents.",
5
5
  "keywords": [
6
6
  "ai",
@@ -323,11 +323,12 @@
323
323
  "@xterm/headless": "6.0.0",
324
324
  "hono": "4.13.3",
325
325
  "typebox": "1.3.16",
326
- "@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.39",
327
- "@agimon-ai/doompi-telemetry": "0.0.1-alpha.39",
328
- "@agimon-ai/doompi-ui": "0.0.1-alpha.39",
329
- "@agimon-ai/doompi-web-contracts": "0.0.1-alpha.2",
330
- "@agimon-ai/doompi-web-components": "0.0.1-alpha.0"
326
+ "@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.40",
327
+ "@agimon-ai/doompi-telemetry": "0.0.1-alpha.40",
328
+ "@agimon-ai/doompi-ui": "0.0.1-alpha.40",
329
+ "@agimon-ai/doompi-web-components": "0.0.1-alpha.1",
330
+ "@agimon-ai/doompi-web-contracts": "0.0.1-alpha.3",
331
+ "@agimon-ai/doompi-web-security": "0.0.1-alpha.2"
331
332
  },
332
333
  "devDependencies": {
333
334
  "@earendil-works/pi-coding-agent": "0.84.3",
@@ -355,14 +356,14 @@
355
356
  }
356
357
  },
357
358
  "optionalDependencies": {
358
- "@agimon-ai/doompi-runner-rmux-darwin-arm64": "0.0.1-alpha.39",
359
- "@agimon-ai/doompi-runner-rmux-darwin-x64": "0.0.1-alpha.39",
360
- "@agimon-ai/doompi-runner-rmux-linux-arm64": "0.0.1-alpha.39",
361
- "@agimon-ai/doompi-runner-rmux-linux-x64": "0.0.1-alpha.39",
362
- "@agimon-ai/doompi-runner-rtk-darwin-arm64": "0.0.1-alpha.39",
363
- "@agimon-ai/doompi-runner-rtk-darwin-x64": "0.0.1-alpha.39",
364
- "@agimon-ai/doompi-runner-rtk-linux-arm64": "0.0.1-alpha.39",
365
- "@agimon-ai/doompi-runner-rtk-linux-x64": "0.0.1-alpha.39"
359
+ "@agimon-ai/doompi-runner-rmux-darwin-arm64": "0.0.1-alpha.40",
360
+ "@agimon-ai/doompi-runner-rmux-darwin-x64": "0.0.1-alpha.40",
361
+ "@agimon-ai/doompi-runner-rmux-linux-arm64": "0.0.1-alpha.40",
362
+ "@agimon-ai/doompi-runner-rtk-darwin-arm64": "0.0.1-alpha.40",
363
+ "@agimon-ai/doompi-runner-rmux-linux-x64": "0.0.1-alpha.40",
364
+ "@agimon-ai/doompi-runner-rtk-darwin-x64": "0.0.1-alpha.40",
365
+ "@agimon-ai/doompi-runner-rtk-linux-arm64": "0.0.1-alpha.40",
366
+ "@agimon-ai/doompi-runner-rtk-linux-x64": "0.0.1-alpha.40"
366
367
  },
367
368
  "engines": {
368
369
  "node": ">=22.19.0"
@@ -135,7 +135,7 @@ export function RunnerLogPanel({ sessionId, runId, sendSessionFrame }: WebPlugin
135
135
 
136
136
  return (
137
137
  <div data-testid="runner-log-panel" className="flex min-h-0 flex-1 flex-col">
138
- <div className="flex h-11 shrink-0 items-center gap-2.5 border-b border-doom-border-soft px-[26px]">
138
+ <div className="flex min-h-11 shrink-0 flex-wrap items-center gap-2 border-b border-doom-border-soft px-3 py-2 sm:h-11 sm:flex-nowrap sm:gap-2.5 sm:px-[26px] sm:py-0">
139
139
  <span data-testid="runner-log-name" className="shrink-0 truncate text-[12px] font-bold text-doom-hi">
140
140
  {run?.name ?? runId}
141
141
  </span>
@@ -171,14 +171,14 @@ export function RunnerLogPanel({ sessionId, runId, sendSessionFrame }: WebPlugin
171
171
  </div>
172
172
 
173
173
  {run ? (
174
- <div className="flex shrink-0 flex-col gap-1.5 border-b border-doom-border-soft px-[26px] py-2.5">
174
+ <div className="flex shrink-0 flex-col gap-1.5 border-b border-doom-border-soft px-3 py-2.5 sm:px-[26px]">
175
175
  <MetaRow label="command" value={run.command} />
176
176
  <MetaRow label="cwd" value={run.cwd} />
177
177
  </div>
178
178
  ) : null}
179
179
 
180
- <div className="flex h-10 shrink-0 items-center gap-2.5 border-b border-doom-border-soft px-[26px]">
181
- <span className="relative flex w-[300px] shrink-0 items-center">
180
+ <div className="flex min-h-10 shrink-0 flex-wrap items-center gap-2 border-b border-doom-border-soft px-3 py-2 sm:h-10 sm:flex-nowrap sm:gap-2.5 sm:px-[26px] sm:py-0">
181
+ <span className="relative flex min-w-0 flex-1 items-center sm:w-[300px] sm:flex-none">
182
182
  <SearchIcon className="pointer-events-none absolute left-2.5 h-3 w-3 text-doom-faint" />
183
183
  <Input
184
184
  size="sm"
@@ -212,7 +212,10 @@ export function RunnerLogPanel({ sessionId, runId, sendSessionFrame }: WebPlugin
212
212
  {`± ${String(context)} lines`}
213
213
  </Button>
214
214
  <span className="min-w-0 flex-1" />
215
- <span data-testid="runner-log-stats" className="shrink-0 text-[10px] text-doom-faint">
215
+ <span
216
+ data-testid="runner-log-stats"
217
+ className="min-w-0 basis-full truncate text-[10px] text-doom-faint sm:basis-auto"
218
+ >
216
219
  {slice === undefined
217
220
  ? 'reading…'
218
221
  : filtering
@@ -233,7 +236,10 @@ export function RunnerLogPanel({ sessionId, runId, sendSessionFrame }: WebPlugin
233
236
  </Button>
234
237
  </div>
235
238
 
236
- <div data-testid="runner-log-body" className="min-h-0 flex-1 overflow-auto bg-doom-panel-deep px-[26px] py-3">
239
+ <div
240
+ data-testid="runner-log-body"
241
+ className="min-h-0 flex-1 overflow-auto bg-doom-panel-deep px-3 py-3 sm:px-[26px]"
242
+ >
237
243
  {error !== undefined ? (
238
244
  <p data-testid="runner-log-error" className="text-[10px] text-doom-red">
239
245
  {error}
@@ -250,7 +256,7 @@ export function RunnerLogPanel({ sessionId, runId, sendSessionFrame }: WebPlugin
250
256
  <div ref={bottom} />
251
257
  </div>
252
258
 
253
- <div className="flex h-8 shrink-0 items-center gap-2.5 border-t border-doom-border-soft px-[26px]">
259
+ <div className="flex h-8 shrink-0 items-center gap-2.5 border-t border-doom-border-soft px-3 sm:px-[26px]">
254
260
  <span data-testid="runner-log-path" className="min-w-0 flex-1 truncate text-[9px] text-doom-faint">
255
261
  {run?.logPath ?? slice?.path ?? ''}
256
262
  </span>
package/web/logApi.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { sealedTransport } from '@agimon-ai/doompi-web-security/browser';
1
2
  import {
2
3
  RUNNER_LOG_STREAM_EVENT,
3
4
  type RunnerLogQueryParams,
@@ -30,7 +31,7 @@ export async function fetchRunnerLog(
30
31
  ): Promise<RunnerLogResult> {
31
32
  let response: Response;
32
33
  try {
33
- response = await fetch(runnerLogUrl(sessionId, runId, params), { signal });
34
+ response = await sealedTransport.fetch(runnerLogUrl(sessionId, runId, params), { signal });
34
35
  } catch (error) {
35
36
  // An aborted request is the caller replacing it, not a failure to report.
36
37
  if (error instanceof DOMException && error.name === 'AbortError') return { error: '' };