picopilot 0.1.5 → 0.2.1

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 (126) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +205 -17
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/audio.d.ts +3 -3
  5. package/dist/commands/audio.d.ts.map +1 -1
  6. package/dist/commands/audio.js +69 -44
  7. package/dist/commands/audio.js.map +1 -1
  8. package/dist/commands/doctor.d.ts +22 -0
  9. package/dist/commands/doctor.d.ts.map +1 -0
  10. package/dist/commands/doctor.js +226 -0
  11. package/dist/commands/doctor.js.map +1 -0
  12. package/dist/commands/export.d.ts +3 -4
  13. package/dist/commands/export.d.ts.map +1 -1
  14. package/dist/commands/export.js +4 -9
  15. package/dist/commands/export.js.map +1 -1
  16. package/dist/commands/gfx.d.ts +2 -2
  17. package/dist/commands/gfx.d.ts.map +1 -1
  18. package/dist/commands/gfx.js +14 -7
  19. package/dist/commands/gfx.js.map +1 -1
  20. package/dist/commands/lint.d.ts +2 -2
  21. package/dist/commands/lint.d.ts.map +1 -1
  22. package/dist/commands/lint.js +3 -2
  23. package/dist/commands/lint.js.map +1 -1
  24. package/dist/commands/minify.d.ts +2 -2
  25. package/dist/commands/minify.d.ts.map +1 -1
  26. package/dist/commands/minify.js +3 -2
  27. package/dist/commands/minify.js.map +1 -1
  28. package/dist/commands/pico8-env.d.ts +112 -0
  29. package/dist/commands/pico8-env.d.ts.map +1 -0
  30. package/dist/commands/pico8-env.js +118 -0
  31. package/dist/commands/pico8-env.js.map +1 -0
  32. package/dist/commands/playtest.d.ts +2 -2
  33. package/dist/commands/playtest.d.ts.map +1 -1
  34. package/dist/commands/playtest.js +4 -9
  35. package/dist/commands/playtest.js.map +1 -1
  36. package/dist/commands/run.d.ts +3 -4
  37. package/dist/commands/run.d.ts.map +1 -1
  38. package/dist/commands/run.js +52 -19
  39. package/dist/commands/run.js.map +1 -1
  40. package/dist/commands/serve.d.ts +2 -2
  41. package/dist/commands/serve.d.ts.map +1 -1
  42. package/dist/commands/serve.js +4 -9
  43. package/dist/commands/serve.js.map +1 -1
  44. package/dist/commands/shrinko-env.d.ts +22 -0
  45. package/dist/commands/shrinko-env.d.ts.map +1 -0
  46. package/dist/commands/shrinko-env.js +15 -0
  47. package/dist/commands/shrinko-env.js.map +1 -0
  48. package/dist/commands/tokens.d.ts +4 -4
  49. package/dist/commands/tokens.d.ts.map +1 -1
  50. package/dist/commands/tokens.js +3 -2
  51. package/dist/commands/tokens.js.map +1 -1
  52. package/dist/commands/verify.d.ts +2 -2
  53. package/dist/commands/verify.d.ts.map +1 -1
  54. package/dist/commands/verify.js +3 -2
  55. package/dist/commands/verify.js.map +1 -1
  56. package/dist/engine/child-env.d.ts +14 -0
  57. package/dist/engine/child-env.d.ts.map +1 -0
  58. package/dist/engine/child-env.js +21 -0
  59. package/dist/engine/child-env.js.map +1 -0
  60. package/dist/engine/pico8/adapter.d.ts +23 -3
  61. package/dist/engine/pico8/adapter.d.ts.map +1 -1
  62. package/dist/engine/pico8/adapter.js.map +1 -1
  63. package/dist/engine/pico8/cleanup.d.ts +16 -0
  64. package/dist/engine/pico8/cleanup.d.ts.map +1 -0
  65. package/dist/engine/pico8/cleanup.js +74 -0
  66. package/dist/engine/pico8/cleanup.js.map +1 -0
  67. package/dist/engine/pico8/display.d.ts +149 -0
  68. package/dist/engine/pico8/display.d.ts.map +1 -0
  69. package/dist/engine/pico8/display.js +311 -0
  70. package/dist/engine/pico8/display.js.map +1 -0
  71. package/dist/engine/pico8/drive.d.ts.map +1 -1
  72. package/dist/engine/pico8/drive.js +28 -2
  73. package/dist/engine/pico8/drive.js.map +1 -1
  74. package/dist/engine/pico8/harness.d.ts +8 -0
  75. package/dist/engine/pico8/harness.d.ts.map +1 -1
  76. package/dist/engine/pico8/harness.js +9 -1
  77. package/dist/engine/pico8/harness.js.map +1 -1
  78. package/dist/engine/pico8/index.d.ts +3 -0
  79. package/dist/engine/pico8/index.d.ts.map +1 -1
  80. package/dist/engine/pico8/index.js +3 -0
  81. package/dist/engine/pico8/index.js.map +1 -1
  82. package/dist/engine/pico8/shell.d.ts +56 -3
  83. package/dist/engine/pico8/shell.d.ts.map +1 -1
  84. package/dist/engine/pico8/shell.js +188 -24
  85. package/dist/engine/pico8/shell.js.map +1 -1
  86. package/dist/engine/shrinko/shell.d.ts +3 -3
  87. package/dist/engine/shrinko/shell.js +3 -3
  88. package/package.json +2 -2
  89. package/src/cli.test.ts +229 -0
  90. package/src/cli.ts +230 -18
  91. package/src/commands/audio.test.ts +64 -1
  92. package/src/commands/audio.ts +86 -57
  93. package/src/commands/doctor.test.ts +149 -0
  94. package/src/commands/doctor.ts +284 -0
  95. package/src/commands/export.ts +9 -13
  96. package/src/commands/gfx.ts +19 -15
  97. package/src/commands/lint.ts +7 -6
  98. package/src/commands/minify.ts +7 -6
  99. package/src/commands/pico8-env.ts +192 -0
  100. package/src/commands/playtest.ts +8 -11
  101. package/src/commands/run.test.ts +110 -2
  102. package/src/commands/run.ts +68 -24
  103. package/src/commands/serve.ts +8 -11
  104. package/src/commands/shrinko-env.test.ts +68 -0
  105. package/src/commands/shrinko-env.ts +40 -0
  106. package/src/commands/tokens.ts +9 -6
  107. package/src/commands/verify.ts +7 -4
  108. package/src/engine/child-env.ts +22 -0
  109. package/src/engine/pico8/adapter.ts +25 -3
  110. package/src/engine/pico8/cleanup.test.ts +28 -0
  111. package/src/engine/pico8/cleanup.ts +76 -0
  112. package/src/engine/pico8/display.test.ts +210 -0
  113. package/src/engine/pico8/display.ts +429 -0
  114. package/src/engine/pico8/drive.test.ts +20 -0
  115. package/src/engine/pico8/drive.ts +25 -2
  116. package/src/engine/pico8/fake-xvfb.test-support.ts +55 -0
  117. package/src/engine/pico8/harness.test.ts +26 -0
  118. package/src/engine/pico8/harness.ts +18 -2
  119. package/src/engine/pico8/index.ts +3 -0
  120. package/src/engine/pico8/shell.test.ts +448 -9
  121. package/src/engine/pico8/shell.ts +255 -26
  122. package/src/engine/pico8/virtual-display.process.test.ts +206 -0
  123. package/src/engine/shrinko/shell.ts +3 -3
  124. package/src/mcp.process.test.ts +219 -0
  125. package/src/skills/picopilot-audio/SKILL.md +4 -8
  126. package/src/skills/picopilot-overview/SKILL.md +9 -1
@@ -0,0 +1,112 @@
1
+ import { z } from 'incur';
2
+ import { type DisplayMode, type Pico8Adapter, type SpawnRunner, type VirtualDisplayDeps } from '../engine/pico8/index.js';
3
+ /**
4
+ * The env schema every PICO-8-gated command declares. These are the values
5
+ * picopilot itself RESOLVES (incur reads them from its env source, which tests
6
+ * override); they are NOT the whole child environment. The child gets the
7
+ * parent environment with these overlaid ({@link pico8ChildEnv}), so PICO-8
8
+ * still sees DISPLAY, HOME, XDG_RUNTIME_DIR, SDL_* and the rest.
9
+ */
10
+ export declare const PICO8_ENV: z.ZodObject<{
11
+ PICO8_PATH: z.ZodOptional<z.ZodString>;
12
+ PATH: z.ZodOptional<z.ZodString>;
13
+ }, z.core.$strip>;
14
+ /** What a command knows beyond the env when it builds an adapter. */
15
+ export interface Pico8AdapterContext {
16
+ /** The resolved display mode for `-run` sessions (ADR-0017). */
17
+ readonly display: DisplayMode;
18
+ }
19
+ /**
20
+ * Injects the PICO-8 adapter a command uses. A test passes a stub to drive the
21
+ * sentinel/backstop/absent paths without the paid binary; the default is
22
+ * {@link createShellAdapterFactory}.
23
+ */
24
+ export type Pico8AdapterFactory = (env: NodeJS.ProcessEnv, context?: Pico8AdapterContext) => Pico8Adapter;
25
+ /** Dependencies for {@link createShellAdapterFactory}, injectable for tests. */
26
+ export interface ShellAdapterFactoryDeps {
27
+ /** The parent environment PICO-8 inherits (defaults to `process.env`). */
28
+ readonly parentEnv?: NodeJS.ProcessEnv;
29
+ /** The PICO-8 spawn seam (defaults to the real spawn). */
30
+ readonly spawn?: SpawnRunner;
31
+ /** The virtual-display seam (Xvfb lookup + spawn). */
32
+ readonly virtualDisplay?: VirtualDisplayDeps;
33
+ }
34
+ /**
35
+ * The default adapter factory: the shell adapter over the user's PICO-8, with
36
+ * the child env = parent env + the command's resolved values, and the display
37
+ * mode from the context.
38
+ */
39
+ export declare function createShellAdapterFactory(deps?: ShellAdapterFactoryDeps): Pico8AdapterFactory;
40
+ /**
41
+ * The `display` option of the commands that use the display mode (`run`,
42
+ * `audio record`, `audio render`, `doctor`). A per-command option, not an incur
43
+ * global, because incur's MCP transport passes no globals: as an option it is
44
+ * also an argument of the MCP tool. Unset = the invocation-level value.
45
+ */
46
+ export declare const DISPLAY_OPTION: z.ZodOptional<z.ZodEnum<{
47
+ auto: "auto";
48
+ xvfb: "xvfb";
49
+ native: "native";
50
+ }>>;
51
+ /**
52
+ * The display mode the root middleware in `createCli` resolved for this
53
+ * invocation (top-level `--display` > PICOPILOT_DISPLAY > picopilot.json >
54
+ * auto). A command mounted on a bare CLI (some tests) has no var and gets the
55
+ * default.
56
+ */
57
+ export declare function displayModeOf(vars: unknown): DisplayMode;
58
+ /**
59
+ * The display mode a command uses: its own `display` option (a per-call MCP
60
+ * argument) wins, else the invocation-level value. An invalid invocation-level
61
+ * value (a typo in PICOPILOT_DISPLAY, say) is an `invalid-display-mode` error
62
+ * here, so only the commands that use the mode fail on it.
63
+ */
64
+ export declare function resolveCommandDisplay(option: DisplayMode | undefined, vars: unknown): {
65
+ ok: true;
66
+ mode: DisplayMode;
67
+ } | {
68
+ ok: false;
69
+ error: {
70
+ code: 'invalid-display-mode';
71
+ message: string;
72
+ exitCode: number;
73
+ };
74
+ };
75
+ /**
76
+ * Under `--mcp`, incur loads no config file, so picopilot loads picopilot.json
77
+ * itself and hands the tree to commands as the `mcpConfig` var. A command whose
78
+ * option can come from the config reads its fallback here (CLI runs get it from
79
+ * incur as the option's default, so this is undefined there).
80
+ */
81
+ export declare function mcpConfigOption(vars: unknown, commandPath: readonly string[], key: string): unknown;
82
+ /**
83
+ * The `error(...)` payload for a `display-unavailable` result (ADR-0017): the
84
+ * session needs a display, there is none, and no Xvfb is installed to provide a
85
+ * virtual one. The message and CTA name the fix, so the agent never has to
86
+ * discover it by a silent timeout.
87
+ */
88
+ export declare function displayUnavailableError(what: string, result: {
89
+ detail: string;
90
+ remedy: string;
91
+ }): {
92
+ code: "display-unavailable";
93
+ message: string;
94
+ exitCode: number;
95
+ cta: {
96
+ description: string;
97
+ commands: {
98
+ command: string;
99
+ description: string;
100
+ }[];
101
+ };
102
+ };
103
+ /** The `error(...)` payload for a `pico8-not-found` result (the exact remedy + needs). */
104
+ export declare function pico8NotFoundError(result: {
105
+ remedy: string;
106
+ needs: readonly string[];
107
+ }): {
108
+ code: "pico8-not-found";
109
+ message: string;
110
+ exitCode: number;
111
+ };
112
+ //# sourceMappingURL=pico8-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pico8-env.d.ts","sourceRoot":"","sources":["../../src/commands/pico8-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,OAAO,CAAC;AACxB,OAAO,EAGN,KAAK,WAAW,EAEhB,KAAK,YAAY,EAGjB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,MAAM,0BAA0B,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,SAAS;;;iBAMpB,CAAC;AAEH,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IACnC,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CACjC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,OAAO,CAAC,EAAE,mBAAmB,KACzB,YAAY,CAAC;AAElB,gFAAgF;AAChF,MAAM,WAAW,uBAAuB;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACvC,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACxC,IAAI,GAAE,uBAA4B,GAChC,mBAAmB,CAWrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;GAKzB,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAMxD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,IAAI,EAAE,OAAO,GAEX;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAC,GAC7B;IACA,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE;QAAC,IAAI,EAAE,sBAAsB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;CACxE,CAaH;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,GAAG,EAAE,MAAM,GACT,OAAO,CAYT;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC;;;;;;;;;;;EAiBxC;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;;;;EAMA"}
@@ -0,0 +1,118 @@
1
+ import { z } from 'incur';
2
+ import { DEFAULT_DISPLAY_MODE, DISPLAY_MODES, isDisplayMode, pico8ChildEnv, ShellPico8Adapter, } from '../engine/pico8/index.js';
3
+ /**
4
+ * The env schema every PICO-8-gated command declares. These are the values
5
+ * picopilot itself RESOLVES (incur reads them from its env source, which tests
6
+ * override); they are NOT the whole child environment. The child gets the
7
+ * parent environment with these overlaid ({@link pico8ChildEnv}), so PICO-8
8
+ * still sees DISPLAY, HOME, XDG_RUNTIME_DIR, SDL_* and the rest.
9
+ */
10
+ export const PICO8_ENV = z.object({
11
+ PICO8_PATH: z
12
+ .string()
13
+ .optional()
14
+ .describe('Explicit path to the PICO-8 binary (else `pico8` on PATH).'),
15
+ PATH: z.string().optional().describe('Used to locate `pico8`.'),
16
+ });
17
+ /**
18
+ * The default adapter factory: the shell adapter over the user's PICO-8, with
19
+ * the child env = parent env + the command's resolved values, and the display
20
+ * mode from the context.
21
+ */
22
+ export function createShellAdapterFactory(deps = {}) {
23
+ return (env, context) => new ShellPico8Adapter({
24
+ env: pico8ChildEnv(env, deps.parentEnv ?? process.env),
25
+ spawn: deps.spawn,
26
+ display: context?.display ?? DEFAULT_DISPLAY_MODE,
27
+ virtualDisplay: deps.virtualDisplay,
28
+ });
29
+ }
30
+ /**
31
+ * The `display` option of the commands that use the display mode (`run`,
32
+ * `audio record`, `audio render`, `doctor`). A per-command option, not an incur
33
+ * global, because incur's MCP transport passes no globals: as an option it is
34
+ * also an argument of the MCP tool. Unset = the invocation-level value.
35
+ */
36
+ export const DISPLAY_OPTION = z
37
+ .enum(DISPLAY_MODES)
38
+ .optional()
39
+ .describe('How a PICO-8 -run session (audio recording) gets a display: auto (default: a private virtual display only when there is none), xvfb (always virtual), native (as-is). Else PICOPILOT_DISPLAY, else picopilot.json "display".');
40
+ /**
41
+ * The display mode the root middleware in `createCli` resolved for this
42
+ * invocation (top-level `--display` > PICOPILOT_DISPLAY > picopilot.json >
43
+ * auto). A command mounted on a bare CLI (some tests) has no var and gets the
44
+ * default.
45
+ */
46
+ export function displayModeOf(vars) {
47
+ const value = vars !== null && typeof vars === 'object'
48
+ ? vars.display
49
+ : undefined;
50
+ return isDisplayMode(value) ? value : DEFAULT_DISPLAY_MODE;
51
+ }
52
+ /**
53
+ * The display mode a command uses: its own `display` option (a per-call MCP
54
+ * argument) wins, else the invocation-level value. An invalid invocation-level
55
+ * value (a typo in PICOPILOT_DISPLAY, say) is an `invalid-display-mode` error
56
+ * here, so only the commands that use the mode fail on it.
57
+ */
58
+ export function resolveCommandDisplay(option, vars) {
59
+ if (option !== undefined)
60
+ return { ok: true, mode: option };
61
+ const problem = vars !== null && typeof vars === 'object'
62
+ ? vars.displayError
63
+ : undefined;
64
+ if (typeof problem === 'string') {
65
+ return {
66
+ ok: false,
67
+ error: { code: 'invalid-display-mode', message: problem, exitCode: 1 },
68
+ };
69
+ }
70
+ return { ok: true, mode: displayModeOf(vars) };
71
+ }
72
+ /**
73
+ * Under `--mcp`, incur loads no config file, so picopilot loads picopilot.json
74
+ * itself and hands the tree to commands as the `mcpConfig` var. A command whose
75
+ * option can come from the config reads its fallback here (CLI runs get it from
76
+ * incur as the option's default, so this is undefined there).
77
+ */
78
+ export function mcpConfigOption(vars, commandPath, key) {
79
+ let node = vars !== null && typeof vars === 'object'
80
+ ? vars.mcpConfig
81
+ : undefined;
82
+ for (const part of commandPath) {
83
+ node = node
84
+ ?.commands?.[part];
85
+ }
86
+ return node?.options?.[key];
87
+ }
88
+ /**
89
+ * The `error(...)` payload for a `display-unavailable` result (ADR-0017): the
90
+ * session needs a display, there is none, and no Xvfb is installed to provide a
91
+ * virtual one. The message and CTA name the fix, so the agent never has to
92
+ * discover it by a silent timeout.
93
+ */
94
+ export function displayUnavailableError(what, result) {
95
+ return {
96
+ code: 'display-unavailable',
97
+ message: `${what} needs a display (a real audio+video -run session): ${result.detail}. Remedy: ${result.remedy}.`,
98
+ exitCode: 1,
99
+ cta: {
100
+ description: `No display and no Xvfb on this machine. Fix: ${result.remedy}. Then re-run; picopilot starts a private virtual display by itself (--display auto). Check what this machine can do:`,
101
+ commands: [
102
+ {
103
+ command: 'doctor',
104
+ description: 'Report PICO-8, shrinko8 and display capabilities, and which commands are available here.',
105
+ },
106
+ ],
107
+ },
108
+ };
109
+ }
110
+ /** The `error(...)` payload for a `pico8-not-found` result (the exact remedy + needs). */
111
+ export function pico8NotFoundError(result) {
112
+ return {
113
+ code: 'pico8-not-found',
114
+ message: `PICO-8 is not installed. ${result.remedy} (needs: ${result.needs.join(', ')})`,
115
+ exitCode: 1,
116
+ };
117
+ }
118
+ //# sourceMappingURL=pico8-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pico8-env.js","sourceRoot":"","sources":["../../src/commands/pico8-env.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { type Cli } from 'incur';
2
- import { type Pico8Adapter } from '../engine/pico8/index.js';
2
+ import { type Pico8AdapterFactory } from './pico8-env.js';
3
3
  /**
4
4
  * Injects the PICO-8 adapter `playtest` uses (defaults to the shell adapter over
5
5
  * native `pico8 -x`). Mirrors `run`'s `Pico8AdapterFactory` seam: a test passes a
6
6
  * stub to drive the drive-orchestration + the absent path WITHOUT the paid
7
7
  * binary, and to isolate the child `env` (its `PICO8_PATH`/`PATH`).
8
8
  */
9
- export type Pico8AdapterFactory = (env: NodeJS.ProcessEnv) => Pico8Adapter;
9
+ export type { Pico8AdapterFactory } from './pico8-env.js';
10
10
  /**
11
11
  * Registers `picopilot playtest`, the driven-playtest command group (ADR-0011).
12
12
  * The ROOT command (`playtest <cart>`) is the ONE-SHOT driver (US #1-5,7-11): it
@@ -1 +1 @@
1
- {"version":3,"file":"playtest.d.ts","sourceRoot":"","sources":["../../src/commands/playtest.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,KAAK,GAAG,EAAqB,MAAM,OAAO,CAAC;AACnD,OAAO,EAMN,KAAK,YAAY,EAajB,MAAM,0BAA0B,CAAC;AAGlC;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,YAAY,CAAC;AA2B3E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,cAAc,GAAE,mBAA2C,GACzD,IAAI,CAEN"}
1
+ {"version":3,"file":"playtest.d.ts","sourceRoot":"","sources":["../../src/commands/playtest.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,KAAK,GAAG,EAAqB,MAAM,OAAO,CAAC;AAoBnD,OAAO,EAGN,KAAK,mBAAmB,EACxB,MAAM,gBAAgB,CAAC;AAGxB;;;;;GAKG;AACH,YAAY,EAAC,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AA0BxD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,cAAc,GAAE,mBAA2C,GACzD,IAAI,CAEN"}
@@ -2,9 +2,10 @@ import { existsSync, mkdirSync, mkdtempSync, readFileSync, writeFileSync, } from
2
2
  import { tmpdir } from 'node:os';
3
3
  import { isAbsolute, join, resolve } from 'node:path';
4
4
  import { Cli as IncurCli, z } from 'incur';
5
- import { buildDriveHarness, DEFAULT_ACK_TIMEOUT_MS, DEFAULT_IDLE_TIMEOUT_MS, DONE_SENTINEL, DriveError, PICO8_NOT_FOUND_MARKER, parseButtons, parseInputScript, SessionClient, SessionRegistry, sessionExists, SHOT_BASENAME, ShellPico8Adapter, spawnSessionDaemon, } from '../engine/pico8/index.js';
5
+ import { buildDriveHarness, DEFAULT_ACK_TIMEOUT_MS, DEFAULT_IDLE_TIMEOUT_MS, DONE_SENTINEL, DriveError, PICO8_NOT_FOUND_MARKER, parseButtons, parseInputScript, SessionClient, SessionRegistry, sessionExists, SHOT_BASENAME, spawnSessionDaemon, } from '../engine/pico8/index.js';
6
+ import { createShellAdapterFactory, PICO8_ENV, } from './pico8-env.js';
6
7
  import { makeReadInclude } from './cart-includes.js';
7
- const defaultAdapterFactory = (env) => new ShellPico8Adapter({ env });
8
+ const defaultAdapterFactory = createShellAdapterFactory();
8
9
  /**
9
10
  * The default backstop: kill a driven cart that never signals/exits after this
10
11
  * many ms. Larger than `run`'s screenshot default because a driven run advances
@@ -147,13 +148,7 @@ function buildPlaytestGroup(adapterFactory) {
147
148
  return playtest;
148
149
  }
149
150
  /** The env schema the whole `playtest` group shares (locates the binary, isolated). */
150
- const PLAYTEST_ENV = z.object({
151
- PICO8_PATH: z
152
- .string()
153
- .optional()
154
- .describe('Explicit path to the PICO-8 binary (else `pico8` on PATH).'),
155
- PATH: z.string().optional().describe('Used to locate `pico8`.'),
156
- });
151
+ const PLAYTEST_ENV = PICO8_ENV;
157
152
  /**
158
153
  * The ONE-SHOT root handler (unchanged behaviour from the one-shot task): build
159
154
  * the throwaway driven cart, pipe the whole scripted input as fixed-size blocks,
@@ -1 +1 @@
1
- {"version":3,"file":"playtest.js","sourceRoot":"","sources":["../../src/commands/playtest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playtest.js","sourceRoot":"","sources":["../../src/commands/playtest.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,EAAW,GAAG,IAAI,QAAQ,EAAE,CAAC,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EACN,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,UAAU,EAEV,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,GAIlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,yBAAyB,EACzB,SAAS,GAET,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAUnD,MAAM,qBAAqB,GAAwB,yBAAyB,EAAE,CAAC;AAE/E;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC,uFAAuF;AACvF,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,0EAA0E;AAC1E,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,sEAAsE;AACtE,SAAS,WAAW,CAAC,CAAS;IAC7B,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,oDAAoD;AACpD,SAAS,KAAK,CAAC,EAAU;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,gBAAgB,CAC/B,GAAY,EACZ,iBAAsC,qBAAqB;IAE3D,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,cAAmC;IAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;QAC5C,WAAW,EACV,gWAAgW;KACjW,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;QACvB,WAAW,EACV,oNAAoN;QACrN,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,OAAO,CAAC,SAAS,CAAC;iBAClB,QAAQ,CACR,sEAAsE,CACtE;SACF,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACR,sTAAsT,CACtT;YACF,IAAI,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CACR,gJAAgJ,CAChJ;YACF,MAAM,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,EAAE;iBACV,QAAQ,CACR,uFAAuF,CACvF;YACF,OAAO,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACR,yGAAyG,CACzG;YACF,QAAQ,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,OAAO,CAAC,aAAa,CAAC;iBACtB,QAAQ,CACR,4EAA4E,CAC5E;YACF,UAAU,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,OAAO,CAAC,mBAAmB,CAAC;iBAC5B,QAAQ,CACR,sEAAsE,CACtE;SACF,CAAC;QACF,GAAG,EAAE,YAAY;QACjB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,CAAC;iBACZ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CACR,0EAA0E,CAC1E;YACF,MAAM,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,CAAC,0DAA0D,CAAC;YACtE,UAAU,EAAE,CAAC;iBACX,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;iBACrC,QAAQ,CACR,+EAA+E,CAC/E;YACF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YACpE,KAAK,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,CAAC,2DAA2D,CAAC;YACvE,SAAS,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,CACR,iEAAiE,CACjE;YACF,MAAM,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,CAAC,uDAAuD,CAAC;SACnE,CAAC;QACF,QAAQ,EAAE;YACT,EAAC,WAAW,EAAE,qDAAqD,EAAC;YACpE;gBACC,WAAW,EAAE,wDAAwD;gBACrE,IAAI,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC;gBACvB,OAAO,EAAE,EAAC,KAAK,EAAE,oBAAoB,EAAC;aACtC;YACD;gBACC,WAAW,EAAE,wCAAwC;gBACrD,IAAI,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC;gBACvB,OAAO,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAC;aAChC;SACD;QACD,KAAK,CAAC,GAAG,CAAC,GAAQ;YACjB,OAAO,UAAU,CAChB;gBACC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,EAAE,EAAE,GAAG,CAAC,EAAgD;aACxD,EACD,cAAc,CACd,CAAC;QACH,CAAC;KACD,CAAC,CAAC;IAEH,oBAAoB,CAAC,QAA8B,CAAC,CAAC;IACrD,OAAO,QAA8B,CAAC;AACvC,CAAC;AAED,uFAAuF;AACvF,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B;;;;GAIG;AACH,KAAK,UAAU,UAAU,CACxB,GAaC,EACD,cAAmC;IAEnC,MAAM,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAC,GAAG,GAAG,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;YACZ,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,cAAc,QAAQ,EAAE;YACjC,QAAQ,EAAE,CAAC;SACX,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC;IACZ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC;YACJ,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACJ,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC3D,OAAO;YACP,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC;SACtC,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,CAAC,CAAC;IACT,CAAC;IAED,MAAM,OAAO,GACZ,OAAO,CAAC,OAAO,KAAK,SAAS;QAC5B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;QAC9B,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,SAAS,CAAC,OAAO,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9C,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAwB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;QAClC,QAAQ,EAAE,UAAU;QACpB,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC,MAAM;YACnB,OAAO,EAAE,4BAA4B,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACxF,QAAQ,EAAE,CAAC;SACX,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,EAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IACvD,MAAM,GAAG,GACR,UAAU,KAAK,SAAS;QACvB,CAAC,CAAC;YACA,WAAW,EACV,sFAAsF;YACvF,QAAQ,EAAE;gBACT;oBACC,OAAO,EAAE,QAAQ;oBACjB,WAAW,EAAE,kDAAkD;iBAC/D;gBACD;oBACC,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,gDAAgD;iBAC7D;aACD;SACD;QACF,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,EAAE,CACR;QACC,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC;QAC7B,MAAM;QACN,UAAU;QACV,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS;KAClC,EACD,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,GAAG,EAAC,CACrC,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E,4DAA4D;AAC5D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACpE,KAAK,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,CAAC,+CAA+C,CAAC;IAC3D,KAAK,EAAE,CAAC;SACN,OAAO,EAAE;SACT,QAAQ,CACR,iEAAiE,CACjE;IACF,GAAG,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC;IACvE,UAAU,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACtE,QAAQ,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;IAClE,OAAO,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;CAC5E,CAAC,CAAC;AAEH,4EAA4E;AAC5E,SAAS,oBAAoB,CAAC,QAAiB;IAC9C,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;QACzB,WAAW,EACV,mOAAmO;QACpO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,OAAO,CAAC,SAAS,CAAC;iBAClB,QAAQ,CAAC,0DAA0D,CAAC;SACtE,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,EAAE,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACR,iFAAiF,CACjF;YACF,IAAI,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CACR,mEAAmE,CACnE;YACF,aAAa,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,OAAO,CAAC,uBAAuB,CAAC;iBAChC,QAAQ,CACR,yEAAyE,CACzE;YACF,YAAY,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,OAAO,CAAC,sBAAsB,CAAC;iBAC/B,QAAQ,CACR,+DAA+D,CAC/D;SACF,CAAC;QACF,GAAG,EAAE,YAAY;QACjB,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE;YACT,EAAC,WAAW,EAAE,4BAA4B,EAAC;YAC3C;gBACC,WAAW,EAAE,+BAA+B;gBAC5C,IAAI,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC;gBACvB,OAAO,EAAE,EAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAC;aAC9B;SACD;QACD,KAAK,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAC;YACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC;oBACZ,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,cAAc,QAAQ,EAAE;oBACjC,QAAQ,EAAE,CAAC;iBACX,CAAC,CAAC;YACJ,CAAC;YAED,qEAAqE;YACrE,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YACvC,IAAI,EAAU,CAAC;YACf,IAAI,CAAC;gBACJ,EAAE;oBACD,OAAO,CAAC,EAAE,KAAK,SAAS;wBACvB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;wBACxC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAC;oBACZ,IAAI,EAAE,6BAA6B;oBACnC,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnD,QAAQ,EAAE,CAAC;iBACX,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACrE,OAAO,KAAK,CAAC;oBACZ,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,cAAc,EAAE,qDAAqD;oBAC9E,QAAQ,EAAE,CAAC;iBACX,CAAC,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAElC,2EAA2E;YAC3E,mEAAmE;YACnE,IAAI,OAAO,CAAC;YACZ,IAAI,CAAC;gBACJ,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;oBAC3D,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,YAAY,EAAE,aAAa;oBAC3B,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC;iBACtC,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;oBAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACpB,OAAO,KAAK,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;gBAC/D,CAAC;gBACD,MAAM,CAAC,CAAC;YACT,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAChD,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE5C,0EAA0E;YAC1E,8CAA8C;YAC9C,kBAAkB,CAAC;gBAClB,EAAE;gBACF,KAAK;gBACL,QAAQ,EAAE,UAAU;gBACpB,YAAY,EAAE,aAAa;gBAC3B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,YAAY,EAAE,OAAO,CAAC,YAAY;aAClC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;YACpE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpB,OAAO,KAAK,CAAC;oBACZ,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EACN,0EAA0E;oBAC3E,QAAQ,EAAE,CAAC;iBACX,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpB,OAAO,KAAK,CAAC;oBACZ,IAAI,EAAE,+BAA+B;oBACrC,OAAO,EAAE,kDAAkD,sBAAsB,IAAI;oBACrF,QAAQ,EAAE,CAAC;iBACX,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,CACR,EAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAC,EACnD;gBACC,GAAG,EAAE;oBACJ,WAAW,EAAE,YAAY,EAAE,iCAAiC;oBAC5D,QAAQ,EAAE;wBACT;4BACC,OAAO,EAAE,kBAAkB,EAAE,YAAY;4BACzC,WAAW,EAAE,kCAAkC;yBAC/C;wBACD;4BACC,OAAO,EAAE,iBAAiB,EAAE,cAAc;4BAC1C,WAAW,EAAE,uCAAuC;yBACpD;wBACD;4BACC,OAAO,EAAE,iBAAiB,EAAE,EAAE;4BAC9B,WAAW,EAAE,mCAAmC;yBAChD;wBACD;4BACC,OAAO,EAAE,iBAAiB,EAAE,EAAE;4BAC9B,WAAW,EAAE,wBAAwB;yBACrC;qBACD;iBACD;aACD,CACD,CAAC;QACH,CAAC;KACD,CAAC,CAAC;IAEH,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;QACzB,WAAW,EACV,gLAAgL;QACjL,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAClE,OAAO,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CAAC,oDAAoD,CAAC;SAChE,CAAC;QACF,GAAG,EAAE,YAAY;QACjB,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE;YACT,EAAC,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAC,EAAC;YACvE,EAAC,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,EAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAC,EAAC;SAC7D;QACD,KAAK,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC;YAC1B,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACJ,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;oBAC7B,OAAO,KAAK,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;gBAC/D,CAAC;gBACD,MAAM,CAAC,CAAC;YACT,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;KACD,CAAC,CAAC;IAEH,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;QACxB,WAAW,EACV,mJAAmJ;QACpJ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAClE,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,OAAO,CAAC,CAAC,CAAC;iBACV,QAAQ,CAAC,oDAAoD,CAAC;SAChE,CAAC;QACF,GAAG,EAAE,YAAY;QACjB,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE;YACT,EAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAC,EAAE,EAAE,MAAM,EAAC,EAAC;YACtD;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,EAAC,EAAE,EAAE,MAAM,EAAC;gBAClB,OAAO,EAAE,EAAC,MAAM,EAAE,EAAE,EAAC;aACrB;SACD;QACD,KAAK,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAC;YACnC,OAAO,QAAQ,CACd,IAAI,CAAC,EAAE,EACP,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAC,EACtC,KAAK,EACL,EAAE,CACF,CAAC;QACH,CAAC;KACD,CAAC,CAAC;IAEH,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;QACxB,WAAW,EACV,4FAA4F;QAC7F,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAClE,CAAC;QACF,GAAG,EAAE,YAAY;QACjB,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE;YACT,EAAC,WAAW,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAC,EAAE,EAAE,MAAM,EAAC,EAAC;SACjE;QACD,KAAK,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC;YAC1B,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;KACD,CAAC,CAAC;IAEH,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC1B,WAAW,EACV,sFAAsF;QACvF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAClE,CAAC;QACF,GAAG,EAAE,YAAY;QACjB,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,CAAC,EAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAC,EAAE,EAAE,MAAM,EAAC,EAAC,CAAC;QAChE,KAAK,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC;YAC1B,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACvD,CAAC;KACD,CAAC,CAAC;IAEH,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;QACxB,WAAW,EACV,0GAA0G;QAC3G,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAClE,CAAC;QACF,GAAG,EAAE,YAAY;QACjB,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,CAAC,EAAC,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAC,EAAE,EAAE,MAAM,EAAC,EAAC,CAAC;QAC/D,KAAK,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC;YACV,IAAI,CAAC;gBACJ,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAC;oBACZ,IAAI,EAAE,6BAA6B;oBACnC,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnD,QAAQ,EAAE,CAAC;iBACX,CAAC,CAAC;YACJ,CAAC;YACD,2EAA2E;YAC3E,gDAAgD;YAChD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzB,OAAO,EAAE,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;YAClD,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/D,+DAA+D;YAC/D,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,GAAG,CAAC;QACZ,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,YAAY,CAC1B,KAAoC,EACpC,SAAiB;IAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC9B,IAAI,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,QAAQ,CAAC;QACxC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAC;QAC7C,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,QAAQ,CACtB,EAAU,EACV,OAAuB,EACvB,KAAkE,EAClE,EAAsC;IAEtC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACJ,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;YACZ,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,QAAQ,EAAE,CAAC;SACX,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;YACZ,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,oBAAoB,EAAE,uCAAuC;YACtE,QAAQ,EAAE,CAAC;SACX,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,QAAyB,CAAC;IAC9B,IAAI,CAAC;QACJ,QAAQ,GAAG,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;YACZ,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,4BAA4B,EAAE,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACzF,QAAQ,EAAE,CAAC;SACX,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;YACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,CAAC;SACX,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
@@ -1,12 +1,11 @@
1
1
  import { type Cli } from 'incur';
2
- import { type Pico8Adapter } from '../engine/pico8/index.js';
2
+ import { type Pico8AdapterFactory } from './pico8-env.js';
3
3
  /**
4
4
  * Injects the PICO-8 adapter `run` uses (defaults to the shell adapter over
5
5
  * native `pico8 -x`). Mirrors the shrinko `adapterFactory` seam: a test passes a
6
- * stub to drive the sentinel/backstop/absent paths without the paid binary, and
7
- * to isolate the child `env` (its `PICO8_PATH`/`PATH`).
6
+ * stub to drive the sentinel/backstop/absent paths without the paid binary.
8
7
  */
9
- export type Pico8AdapterFactory = (env: NodeJS.ProcessEnv) => Pico8Adapter;
8
+ export type { Pico8AdapterFactory } from './pico8-env.js';
10
9
  /**
11
10
  * Registers `picopilot run`, the THIN sentinel-watch + screenshot-collect
12
11
  * orchestration command (US #14, ADR-0006). It is NOT a `pico8` wrapper: its
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,KAAK,GAAG,EAAI,MAAM,OAAO,CAAC;AAClC,OAAO,EAIN,KAAK,YAAY,EAEjB,MAAM,0BAA0B,CAAC;AAElC;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,YAAY,CAAC;AAQ3E;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAC1B,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,cAAc,GAAE,mBAA2C,GACzD,IAAI,CAsON"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,KAAK,GAAG,EAAI,MAAM,OAAO,CAAC;AAOlC,OAAO,EAON,KAAK,mBAAmB,EACxB,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,YAAY,EAAC,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAOxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAC1B,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,cAAc,GAAE,mBAA2C,GACzD,IAAI,CA4QN"}
@@ -2,8 +2,10 @@ import { existsSync, mkdirSync, mkdtempSync, readFileSync, writeFileSync, } from
2
2
  import { tmpdir } from 'node:os';
3
3
  import { isAbsolute, join, resolve } from 'node:path';
4
4
  import { z } from 'incur';
5
- import { buildRecordHarness, DONE_SENTINEL, HarnessError, ShellPico8Adapter, } from '../engine/pico8/index.js';
6
- const defaultAdapterFactory = (env) => new ShellPico8Adapter({ env });
5
+ import { buildRecordHarness, DONE_SENTINEL, HarnessError, } from '../engine/pico8/index.js';
6
+ import { makeReadInclude } from './cart-includes.js';
7
+ import { createShellAdapterFactory, DISPLAY_OPTION, displayUnavailableError, PICO8_ENV, pico8NotFoundError, resolveCommandDisplay, } from './pico8-env.js';
8
+ const defaultAdapterFactory = createShellAdapterFactory();
7
9
  /** The default backstop: kill a cart that never signals/exits after this many ms. */
8
10
  const DEFAULT_BACKSTOP_MS = 15_000;
9
11
  /**
@@ -53,20 +55,15 @@ export function registerRun(cli, adapterFactory = defaultAdapterFactory) {
53
55
  .string()
54
56
  .optional()
55
57
  .describe('One-shot scripted input passed as `-p` (the cart reads it via stat(6)) for automated playtests.'),
58
+ display: DISPLAY_OPTION,
56
59
  recordAudio: z
57
60
  .boolean()
58
61
  .default(false)
59
- .describe("Also capture a WAV of the run's audio alongside the screenshots (ADR-0009). A REAL-TIME recording that needs a real audio+video session (a separate -run pass, NOT the headless screenshot pass), never an offline export."),
60
- }),
61
- // incur resolves these from the (test-overridable) env source and hands
62
- // them to the child, so PICO8_PATH/PATH locate the binary in isolation.
63
- env: z.object({
64
- PICO8_PATH: z
65
- .string()
66
- .optional()
67
- .describe('Explicit path to the PICO-8 binary (else `pico8` on PATH).'),
68
- PATH: z.string().optional().describe('Used to locate `pico8`.'),
62
+ .describe("Also capture a WAV of the run's audio alongside the screenshots (ADR-0009). A REAL-TIME recording in a separate -run pass (not the headless screenshot pass), never an offline export. Works headless: with no display, picopilot runs that pass on a private virtual display (ADR-0017, --display)."),
69
63
  }),
64
+ // incur resolves these from the (test-overridable) env source; the child
65
+ // gets the parent env with them overlaid (DISPLAY, HOME, ... pass through).
66
+ env: PICO8_ENV,
70
67
  output: z.object({
71
68
  screenshots: z
72
69
  .array(z.string())
@@ -85,6 +82,18 @@ export function registerRun(cli, adapterFactory = defaultAdapterFactory) {
85
82
  audioCaptured: z
86
83
  .boolean()
87
84
  .describe('Whether a non-empty WAV was captured (false unless --record-audio ran and produced audio).'),
85
+ audioDisplay: z
86
+ .enum(['native', 'Xvfb', 'xvfb-run'])
87
+ .optional()
88
+ .describe('With --record-audio: which display the -run pass used (native, or a private virtual display).'),
89
+ noAudioReason: z
90
+ .string()
91
+ .optional()
92
+ .describe('With --record-audio and no WAV: why (backstop fired / PICO-8 exited before the done-sentinel / empty capture).'),
93
+ pico8LogTail: z
94
+ .string()
95
+ .optional()
96
+ .describe("With --record-audio and no WAV: the tail of PICO-8's own log.txt (load errors, SDL init failures)."),
88
97
  }),
89
98
  examples: [
90
99
  { description: 'Run main.p8' },
@@ -95,7 +104,7 @@ export function registerRun(cli, adapterFactory = defaultAdapterFactory) {
95
104
  options: { shotDir: './shots' },
96
105
  },
97
106
  ],
98
- async run({ args, options, env, error, ok }) {
107
+ async run({ args, options, env, error, ok, var: vars }) {
99
108
  const cartPath = isAbsolute(args.cart)
100
109
  ? args.cart
101
110
  : resolve(process.cwd(), args.cart);
@@ -117,7 +126,14 @@ export function registerRun(cli, adapterFactory = defaultAdapterFactory) {
117
126
  : mkdtempSync(join(tmpdir(), 'picopilot-run-'));
118
127
  if (!existsSync(shotDir))
119
128
  mkdirSync(shotDir, { recursive: true });
120
- const adapter = adapterFactory(env);
129
+ // The display mode only matters to the --record-audio (-run) pass, so a
130
+ // bad PICOPILOT_DISPLAY only fails a run that records.
131
+ const display = resolveCommandDisplay(options.display, vars);
132
+ if (options.recordAudio && !display.ok)
133
+ return error(display.error);
134
+ const adapter = adapterFactory(env, {
135
+ display: display.ok ? display.mode : 'auto',
136
+ });
121
137
  const result = await adapter.run({
122
138
  cartPath,
123
139
  shotDir,
@@ -142,10 +158,16 @@ export function registerRun(cli, adapterFactory = defaultAdapterFactory) {
142
158
  // uses. The WAV lands in the isolated shotDir alongside the screenshots.
143
159
  let wav;
144
160
  let audioCaptured = false;
161
+ let noAudioReason;
162
+ let pico8LogTail;
163
+ let audioDisplay;
145
164
  if (options.recordAudio) {
146
165
  try {
166
+ // `#include`s are inlined (resolved against the SOURCE cart's folder):
167
+ // the harness runs from shotDir, where `main.lua` does not exist.
147
168
  const harness = buildRecordHarness(readFileSync(cartPath, 'utf8'), {
148
169
  sentinel: options.sentinel,
170
+ readInclude: makeReadInclude(cartPath),
149
171
  });
150
172
  const harnessCart = join(shotDir, 'record-audio-harness.p8');
151
173
  writeFileSync(harnessCart, harness.cartText);
@@ -156,18 +178,26 @@ export function registerRun(cli, adapterFactory = defaultAdapterFactory) {
156
178
  sentinel: options.sentinel,
157
179
  backstopMs: options.backstopMs,
158
180
  });
159
- if (rec.ok) {
160
- wav = rec.value.wavPath;
161
- audioCaptured = rec.value.wavPath !== undefined;
181
+ if (!rec.ok) {
182
+ // pico8-not-found is impossible here (the screenshot pass above would
183
+ // have returned it); display-unavailable is the real case: the -run
184
+ // pass needs a display, there is none, and no Xvfb to make one.
185
+ return error(rec.reason === 'display-unavailable'
186
+ ? displayUnavailableError('run --record-audio', rec)
187
+ : pico8NotFoundError(rec));
162
188
  }
163
- // A record-pass pico8-not-found is impossible here: the screenshot
164
- // pass above already returned pico8-not-found if PICO-8 were absent.
189
+ wav = rec.value.wavPath;
190
+ audioCaptured = rec.value.wavPath !== undefined;
191
+ noAudioReason = rec.value.noWavReason;
192
+ pico8LogTail = rec.value.pico8LogTail;
193
+ audioDisplay = rec.value.display;
165
194
  }
166
195
  catch (e) {
167
196
  if (!(e instanceof HarnessError))
168
197
  throw e;
169
198
  // A harness-build failure (unparseable cart) leaves audioCaptured false;
170
199
  // the screenshot run's report still stands.
200
+ noAudioReason = `the record harness could not be built: ${e.message}`;
171
201
  }
172
202
  }
173
203
  // A backstop timeout is a soft warning: the cart never signalled done, so
@@ -217,6 +247,9 @@ export function registerRun(cli, adapterFactory = defaultAdapterFactory) {
217
247
  shotDir,
218
248
  wav,
219
249
  audioCaptured,
250
+ ...(audioDisplay !== undefined ? { audioDisplay } : {}),
251
+ ...(noAudioReason !== undefined ? { noAudioReason } : {}),
252
+ ...(pico8LogTail !== undefined ? { pico8LogTail } : {}),
220
253
  }, cta === undefined ? undefined : { cta });
221
254
  },
222
255
  });
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,EAAW,CAAC,EAAC,MAAM,OAAO,CAAC;AAClC,OAAO,EACN,kBAAkB,EAClB,aAAa,EACb,YAAY,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACN,yBAAyB,EACzB,cAAc,EACd,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,qBAAqB,GAErB,MAAM,gBAAgB,CAAC;AASxB,MAAM,qBAAqB,GAAwB,yBAAyB,EAAE,CAAC;AAE/E,qFAAqF;AACrF,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,WAAW,CAC1B,GAAY,EACZ,iBAAsC,qBAAqB;IAE3D,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;QAClB,WAAW,EACV,yGAAyG;QAC1G,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,OAAO,CAAC,SAAS,CAAC;iBAClB,QAAQ,CACR,iEAAiE,CACjE;SACF,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACR,gGAAgG,CAChG;YACF,QAAQ,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,OAAO,CAAC,aAAa,CAAC;iBACtB,QAAQ,CACR,uEAAuE,CACvE;YACF,UAAU,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,OAAO,CAAC,mBAAmB,CAAC;iBAC5B,QAAQ,CACR,sEAAsE,CACtE;YACF,KAAK,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACR,iGAAiG,CACjG;YACF,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,CAAC;iBACZ,OAAO,EAAE;iBACT,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CACR,sSAAsS,CACtS;SACF,CAAC;QACF,yEAAyE;QACzE,4EAA4E;QAC5E,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,CAAC;iBACZ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CAAC,0DAA0D,CAAC;YACtE,MAAM,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,CAAC,0DAA0D,CAAC;YACtE,UAAU,EAAE,CAAC;iBACX,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;iBACrC,QAAQ,CACR,+EAA+E,CAC/E;YACF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YACpE,GAAG,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACR,iGAAiG,CACjG;YACF,aAAa,EAAE,CAAC;iBACd,OAAO,EAAE;iBACT,QAAQ,CACR,4FAA4F,CAC5F;YACF,YAAY,EAAE,CAAC;iBACb,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;iBACpC,QAAQ,EAAE;iBACV,QAAQ,CACR,+FAA+F,CAC/F;YACF,aAAa,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACR,gHAAgH,CAChH;YACF,YAAY,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACR,oGAAoG,CACpG;SACF,CAAC;QACF,QAAQ,EAAE;YACT,EAAC,WAAW,EAAE,aAAa,EAAC;YAC5B,EAAC,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,EAAC;YAC7D;gBACC,WAAW,EAAE,uCAAuC;gBACpD,IAAI,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC;gBACvB,OAAO,EAAE,EAAC,OAAO,EAAE,SAAS,EAAC;aAC7B;SACD;QACD,KAAK,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAC;YACnD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,IAAI,CAAC,IAAI;gBACX,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAErC,0EAA0E;YAC1E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC;oBACZ,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,cAAc,QAAQ,EAAE;oBACjC,QAAQ,EAAE,CAAC;iBACX,CAAC,CAAC;YACJ,CAAC;YAED,0EAA0E;YAC1E,yEAAyE;YACzE,uCAAuC;YACvC,MAAM,OAAO,GACZ,OAAO,CAAC,OAAO,KAAK,SAAS;gBAC5B,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC5B,CAAC,CAAC,OAAO,CAAC,OAAO;oBACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC;gBAC1C,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS,CAAC,OAAO,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;YAEhE,wEAAwE;YACxE,uDAAuD;YACvD,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,cAAc,CAAC,GAAwB,EAAE;gBACxD,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;aAC3C,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChC,QAAQ;gBACR,OAAO;gBACP,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;aACpB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,qEAAqE;gBACrE,wEAAwE;gBACxE,OAAO,KAAK,CAAC;oBACZ,IAAI,EAAE,MAAM,CAAC,MAAM;oBACnB,OAAO,EAAE,4BAA4B,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;oBACxF,QAAQ,EAAE,CAAC;iBACX,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,EAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YAEvD,4EAA4E;YAC5E,yEAAyE;YACzE,6EAA6E;YAC7E,0EAA0E;YAC1E,yEAAyE;YACzE,IAAI,GAAuB,CAAC;YAC5B,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,aAAiC,CAAC;YACtC,IAAI,YAAgC,CAAC;YACrC,IAAI,YAAwD,CAAC;YAC7D,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACJ,uEAAuE;oBACvE,kEAAkE;oBAClE,MAAM,OAAO,GAAG,kBAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;wBAClE,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC;qBACtC,CAAC,CAAC;oBACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;oBAC7D,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC7C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;wBAChC,QAAQ,EAAE,WAAW;wBACrB,MAAM,EAAE,OAAO;wBACf,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;qBAC9B,CAAC,CAAC;oBACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;wBACb,sEAAsE;wBACtE,oEAAoE;wBACpE,gEAAgE;wBAChE,OAAO,KAAK,CACX,GAAG,CAAC,MAAM,KAAK,qBAAqB;4BACnC,CAAC,CAAC,uBAAuB,CAAC,oBAAoB,EAAE,GAAG,CAAC;4BACpD,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAC1B,CAAC;oBACH,CAAC;oBACD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;oBACxB,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;oBAChD,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;oBACtC,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;oBACtC,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;gBAClC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,IAAI,CAAC,CAAC,CAAC,YAAY,YAAY,CAAC;wBAAE,MAAM,CAAC,CAAC;oBAC1C,yEAAyE;oBACzE,4CAA4C;oBAC5C,aAAa,GAAG,0CAA0C,CAAC,CAAC,OAAO,EAAE,CAAC;gBACvE,CAAC;YACF,CAAC;YAED,0EAA0E;YAC1E,yEAAyE;YACzE,4EAA4E;YAC5E,4EAA4E;YAC5E,0EAA0E;YAC1E,iEAAiE;YACjE,uEAAuE;YACvE,MAAM,GAAG,GACR,UAAU,KAAK,SAAS;gBACvB,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;oBACzB,CAAC,CAAC;wBACA,WAAW,EACV,8IAA8I;wBAC/I,QAAQ,EAAE;4BACT;gCACC,OAAO,EAAE,KAAK;gCACd,WAAW,EACV,2LAA2L;6BAC5L;4BACD;gCACC,OAAO,EAAE,cAAc;gCACvB,WAAW,EACV,+EAA+E;6BAChF;4BACD;gCACC,OAAO,EAAE,QAAQ;gCACjB,WAAW,EACV,wEAAwE;6BACzE;yBACD;qBACD;oBACF,CAAC,CAAC;wBACA,WAAW,EACV,+LAA+L;wBAChM,QAAQ,EAAE;4BACT;gCACC,OAAO,EAAE,QAAQ;gCACjB,WAAW,EACV,kDAAkD;6BACnD;4BACD;gCACC,OAAO,EAAE,QAAQ;gCACjB,WAAW,EAAE,6CAA6C;6BAC1D;yBACD;qBACD;gBACH,CAAC,CAAC,SAAS,CAAC;YAEd,OAAO,EAAE,CACR;gBACC,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC;gBAC7B,MAAM;gBACN,UAAU;gBACV,OAAO;gBACP,GAAG;gBACH,aAAa;gBACb,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,YAAY,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,YAAY,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD,EACD,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,GAAG,EAAC,CACrC,CAAC;QACH,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import { type Server } from 'node:http';
2
2
  import { type Cli } from 'incur';
3
- import { type Pico8Adapter } from '../engine/pico8/index.js';
3
+ import { type Pico8AdapterFactory } from './pico8-env.js';
4
4
  /**
5
5
  * Injects the PICO-8 adapter `serve` uses (defaults to the shell adapter). Same
6
6
  * seam as `export`/`run`: a test passes a stub so the export step needs no paid
7
7
  * binary, and the child `env` (`PICO8_PATH`/`PATH`) stays isolated.
8
8
  */
9
- export type Pico8AdapterFactory = (env: NodeJS.ProcessEnv) => Pico8Adapter;
9
+ export type { Pico8AdapterFactory } from './pico8-env.js';
10
10
  /**
11
11
  * Injects the HTTP-server factory `serve` binds. The default is a zero-dep
12
12
  * `node:http` static server over the export dir; a test injects a fake to assert
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,KAAK,MAAM,EAAC,MAAM,WAAW,CAAC;AAGpD,OAAO,EAAC,KAAK,GAAG,EAAI,MAAM,OAAO,CAAC;AAClC,OAAO,EAEN,KAAK,YAAY,EAGjB,MAAM,0BAA0B,CAAC;AAGlC;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,YAAY,CAAC;AAK3E;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,KACR,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAiB7C;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;AA6E7D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAC5B,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,cAAc,GAAE,mBAA2C,EAC3D,aAAa,GAAE,aAAoC,EACnD,eAAe,GAAE,gBAA0C,GACzD,IAAI,CAwKN"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,KAAK,MAAM,EAAC,MAAM,WAAW,CAAC;AAGpD,OAAO,EAAC,KAAK,GAAG,EAAI,MAAM,OAAO,CAAC;AAMlC,OAAO,EAGN,KAAK,mBAAmB,EACxB,MAAM,gBAAgB,CAAC;AAGxB;;;;GAIG;AACH,YAAY,EAAC,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAIxD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,KACR,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAiB7C;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;AA6E7D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAC5B,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,cAAc,GAAE,mBAA2C,EAC3D,aAAa,GAAE,aAAoC,EACnD,eAAe,GAAE,gBAA0C,GACzD,IAAI,CAkKN"}
@@ -3,9 +3,10 @@ import { createServer } from 'node:http';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { extname, isAbsolute, join, normalize, resolve } from 'node:path';
5
5
  import { z } from 'incur';
6
- import { EXPORT_HTML_NAME, ShellPico8Adapter, } from '../engine/pico8/index.js';
6
+ import { EXPORT_HTML_NAME, } from '../engine/pico8/index.js';
7
+ import { createShellAdapterFactory, PICO8_ENV, } from './pico8-env.js';
7
8
  import { prepareLabeledCart } from './label-cart.js';
8
- const defaultAdapterFactory = (env) => new ShellPico8Adapter({ env });
9
+ const defaultAdapterFactory = createShellAdapterFactory();
9
10
  const DEFAULT_PORT = 5858;
10
11
  const DEFAULT_BACKSTOP_MS = 30_000;
11
12
  /**
@@ -146,13 +147,7 @@ export function registerServe(cli, adapterFactory = defaultAdapterFactory, serve
146
147
  .default(DEFAULT_BACKSTOP_MS)
147
148
  .describe('Safety backstop for the export step (and the --label-frame capture run).'),
148
149
  }),
149
- env: z.object({
150
- PICO8_PATH: z
151
- .string()
152
- .optional()
153
- .describe('Explicit path to the PICO-8 binary (else `pico8` on PATH).'),
154
- PATH: z.string().optional().describe('Used to locate `pico8`.'),
155
- }),
150
+ env: PICO8_ENV,
156
151
  output: z.object({
157
152
  url: z.string().describe('The local URL to open in a browser.'),
158
153
  port: z.number().describe('The port the server bound to.'),