picopilot 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +111 -16
  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 +61 -44
  7. package/dist/commands/audio.js.map +1 -1
  8. package/dist/commands/cart-includes.d.ts +11 -0
  9. package/dist/commands/cart-includes.d.ts.map +1 -0
  10. package/dist/commands/cart-includes.js +26 -0
  11. package/dist/commands/cart-includes.js.map +1 -0
  12. package/dist/commands/doctor.d.ts +22 -0
  13. package/dist/commands/doctor.d.ts.map +1 -0
  14. package/dist/commands/doctor.js +222 -0
  15. package/dist/commands/doctor.js.map +1 -0
  16. package/dist/commands/export.d.ts +3 -4
  17. package/dist/commands/export.d.ts.map +1 -1
  18. package/dist/commands/export.js +66 -86
  19. package/dist/commands/export.js.map +1 -1
  20. package/dist/commands/gfx.d.ts +2 -2
  21. package/dist/commands/gfx.d.ts.map +1 -1
  22. package/dist/commands/gfx.js +3 -2
  23. package/dist/commands/gfx.js.map +1 -1
  24. package/dist/commands/label-cart.d.ts +72 -0
  25. package/dist/commands/label-cart.d.ts.map +1 -0
  26. package/dist/commands/label-cart.js +228 -0
  27. package/dist/commands/label-cart.js.map +1 -0
  28. package/dist/commands/lint.d.ts +2 -2
  29. package/dist/commands/lint.d.ts.map +1 -1
  30. package/dist/commands/lint.js +3 -2
  31. package/dist/commands/lint.js.map +1 -1
  32. package/dist/commands/minify.d.ts +2 -2
  33. package/dist/commands/minify.d.ts.map +1 -1
  34. package/dist/commands/minify.js +3 -2
  35. package/dist/commands/minify.js.map +1 -1
  36. package/dist/commands/pico8-env.d.ts +76 -0
  37. package/dist/commands/pico8-env.d.ts.map +1 -0
  38. package/dist/commands/pico8-env.js +71 -0
  39. package/dist/commands/pico8-env.js.map +1 -0
  40. package/dist/commands/playtest.d.ts +2 -2
  41. package/dist/commands/playtest.d.ts.map +1 -1
  42. package/dist/commands/playtest.js +6 -32
  43. package/dist/commands/playtest.js.map +1 -1
  44. package/dist/commands/run.d.ts +3 -4
  45. package/dist/commands/run.d.ts.map +1 -1
  46. package/dist/commands/run.js +46 -19
  47. package/dist/commands/run.js.map +1 -1
  48. package/dist/commands/serve.d.ts +2 -2
  49. package/dist/commands/serve.d.ts.map +1 -1
  50. package/dist/commands/serve.js +65 -19
  51. package/dist/commands/serve.js.map +1 -1
  52. package/dist/commands/shrinko-env.d.ts +22 -0
  53. package/dist/commands/shrinko-env.d.ts.map +1 -0
  54. package/dist/commands/shrinko-env.js +15 -0
  55. package/dist/commands/shrinko-env.js.map +1 -0
  56. package/dist/commands/tokens.d.ts +4 -4
  57. package/dist/commands/tokens.d.ts.map +1 -1
  58. package/dist/commands/tokens.js +3 -2
  59. package/dist/commands/tokens.js.map +1 -1
  60. package/dist/commands/verify.d.ts +2 -2
  61. package/dist/commands/verify.d.ts.map +1 -1
  62. package/dist/commands/verify.js +3 -2
  63. package/dist/commands/verify.js.map +1 -1
  64. package/dist/engine/child-env.d.ts +14 -0
  65. package/dist/engine/child-env.d.ts.map +1 -0
  66. package/dist/engine/child-env.js +21 -0
  67. package/dist/engine/child-env.js.map +1 -0
  68. package/dist/engine/gfx/label.d.ts +15 -9
  69. package/dist/engine/gfx/label.d.ts.map +1 -1
  70. package/dist/engine/gfx/label.js +130 -38
  71. package/dist/engine/gfx/label.js.map +1 -1
  72. package/dist/engine/pico8/adapter.d.ts +23 -3
  73. package/dist/engine/pico8/adapter.d.ts.map +1 -1
  74. package/dist/engine/pico8/adapter.js.map +1 -1
  75. package/dist/engine/pico8/cleanup.d.ts +16 -0
  76. package/dist/engine/pico8/cleanup.d.ts.map +1 -0
  77. package/dist/engine/pico8/cleanup.js +74 -0
  78. package/dist/engine/pico8/cleanup.js.map +1 -0
  79. package/dist/engine/pico8/display.d.ts +149 -0
  80. package/dist/engine/pico8/display.d.ts.map +1 -0
  81. package/dist/engine/pico8/display.js +311 -0
  82. package/dist/engine/pico8/display.js.map +1 -0
  83. package/dist/engine/pico8/drive.d.ts.map +1 -1
  84. package/dist/engine/pico8/drive.js +28 -2
  85. package/dist/engine/pico8/drive.js.map +1 -1
  86. package/dist/engine/pico8/harness.d.ts +8 -0
  87. package/dist/engine/pico8/harness.d.ts.map +1 -1
  88. package/dist/engine/pico8/harness.js +9 -1
  89. package/dist/engine/pico8/harness.js.map +1 -1
  90. package/dist/engine/pico8/index.d.ts +3 -0
  91. package/dist/engine/pico8/index.d.ts.map +1 -1
  92. package/dist/engine/pico8/index.js +3 -0
  93. package/dist/engine/pico8/index.js.map +1 -1
  94. package/dist/engine/pico8/session-daemon-entry.d.ts +1 -1
  95. package/dist/engine/pico8/session-daemon-entry.js +1 -1
  96. package/dist/engine/pico8/session-daemon-main.d.ts +1 -1
  97. package/dist/engine/pico8/session-daemon-main.js +1 -1
  98. package/dist/engine/pico8/session-daemon.d.ts +1 -1
  99. package/dist/engine/pico8/session-daemon.d.ts.map +1 -1
  100. package/dist/engine/pico8/session-daemon.js +19 -19
  101. package/dist/engine/pico8/session-daemon.js.map +1 -1
  102. package/dist/engine/pico8/session.d.ts +1 -1
  103. package/dist/engine/pico8/session.js +1 -1
  104. package/dist/engine/pico8/shell.d.ts +56 -3
  105. package/dist/engine/pico8/shell.d.ts.map +1 -1
  106. package/dist/engine/pico8/shell.js +188 -24
  107. package/dist/engine/pico8/shell.js.map +1 -1
  108. package/dist/engine/pico8/supervisor.d.ts +1 -1
  109. package/dist/engine/pico8/supervisor.js +1 -1
  110. package/dist/engine/shrinko/adapter.d.ts +1 -1
  111. package/dist/engine/shrinko/shell.d.ts +3 -3
  112. package/dist/engine/shrinko/shell.js +3 -3
  113. package/package.json +2 -1
  114. package/src/cli.test.ts +188 -0
  115. package/src/cli.ts +122 -16
  116. package/src/commands/audio.test.ts +76 -1
  117. package/src/commands/audio.ts +79 -57
  118. package/src/commands/cart-includes.ts +27 -0
  119. package/src/commands/doctor.test.ts +149 -0
  120. package/src/commands/doctor.ts +280 -0
  121. package/src/commands/export.test.ts +327 -3
  122. package/src/commands/export.ts +81 -99
  123. package/src/commands/gfx.ts +7 -6
  124. package/src/commands/label-cart.ts +304 -0
  125. package/src/commands/lint.test.ts +6 -0
  126. package/src/commands/lint.ts +7 -6
  127. package/src/commands/minify.test.ts +6 -0
  128. package/src/commands/minify.ts +7 -6
  129. package/src/commands/pico8-env.ts +124 -0
  130. package/src/commands/playtest.test.ts +3 -0
  131. package/src/commands/playtest.ts +10 -34
  132. package/src/commands/run.test.ts +116 -2
  133. package/src/commands/run.ts +62 -24
  134. package/src/commands/serve.test.ts +138 -2
  135. package/src/commands/serve.ts +80 -21
  136. package/src/commands/shrinko-env.test.ts +68 -0
  137. package/src/commands/shrinko-env.ts +40 -0
  138. package/src/commands/tokens.test.ts +19 -0
  139. package/src/commands/tokens.ts +9 -6
  140. package/src/commands/verify.test.ts +12 -0
  141. package/src/commands/verify.ts +7 -4
  142. package/src/engine/child-env.ts +22 -0
  143. package/src/engine/gfx/fixtures/pico8-screenshot-384.png +0 -0
  144. package/src/engine/gfx/label.test.ts +467 -1
  145. package/src/engine/gfx/label.ts +147 -41
  146. package/src/engine/pico8/adapter.ts +25 -3
  147. package/src/engine/pico8/cleanup.test.ts +28 -0
  148. package/src/engine/pico8/cleanup.ts +76 -0
  149. package/src/engine/pico8/display.test.ts +210 -0
  150. package/src/engine/pico8/display.ts +429 -0
  151. package/src/engine/pico8/drive.test.ts +20 -0
  152. package/src/engine/pico8/drive.ts +25 -2
  153. package/src/engine/pico8/fake-xvfb.test-support.ts +55 -0
  154. package/src/engine/pico8/harness.test.ts +26 -0
  155. package/src/engine/pico8/harness.ts +18 -2
  156. package/src/engine/pico8/index.ts +3 -0
  157. package/src/engine/pico8/session-daemon-entry.ts +1 -1
  158. package/src/engine/pico8/session-daemon-main.ts +1 -1
  159. package/src/engine/pico8/session-daemon.test.ts +32 -1
  160. package/src/engine/pico8/session-daemon.ts +25 -17
  161. package/src/engine/pico8/session.test.ts +1 -1
  162. package/src/engine/pico8/session.ts +1 -1
  163. package/src/engine/pico8/shell.test.ts +449 -10
  164. package/src/engine/pico8/shell.ts +255 -26
  165. package/src/engine/pico8/supervisor.ts +1 -1
  166. package/src/engine/pico8/virtual-display.process.test.ts +206 -0
  167. package/src/engine/shrinko/adapter.ts +1 -1
  168. package/src/engine/shrinko/shell.ts +3 -3
  169. package/src/engine/skills/skills.test.ts +10 -0
  170. package/src/skills/picopilot-audio/SKILL.md +4 -8
  171. package/src/skills/picopilot-debug/SKILL.md +18 -1
  172. package/src/skills/picopilot-overview/SKILL.md +9 -1
@@ -1 +1 @@
1
- {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/engine/pico8/drive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/engine/pico8/drive.ts"],"names":[],"mappings":"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"}
@@ -135,12 +135,20 @@ export declare function buildRenderHarness(cartText: string, target: RenderTarge
135
135
  * calls the original. This is the record analogue of the debug skill's "add
136
136
  * capture lines, run, revert" recipe, done on a THROWAWAY copy.
137
137
  *
138
+ * The harness runs from a different folder than the source cart (an isolated
139
+ * temp dir), so a relative `#include main.lua` (picopilot's standard scaffold)
140
+ * would not resolve there and the harness would fail to load. Pass
141
+ * `readInclude` (bound to the SOURCE cart's folder, see `makeReadInclude`) and
142
+ * every `#include` is inlined, exactly as the playtest drive transform does, so
143
+ * the harness is self-contained wherever it runs.
144
+ *
138
145
  * @throws {HarnessError} an unparseable cart.
139
146
  */
140
147
  export declare function buildRecordHarness(cartText: string, options?: {
141
148
  seconds?: number;
142
149
  sentinel?: string;
143
150
  wavBasename?: string;
151
+ readInclude?: (includePath: string) => string | undefined;
144
152
  }): RenderHarness;
145
153
  export {};
146
154
  //# sourceMappingURL=harness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../src/engine/pico8/harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAStC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACrB;IAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAC,GAC9C;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAC,GAClD;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC;AAE3B,gFAAgF;AAChF,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,wFAAwF;AACxF,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,gBAAgB;AAC3B,qEAAqE;AACnE,kCAAkC;AACpC,8EAA8E;GAC5E,2BAA2B;AAC7B,sDAAsD;GACpD,+BAA+B,CAAC;AAEnC,0EAA0E;AAC1E,qBAAa,YAAa,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;gBACpB,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM;CAKnD;AAKD;;;;;GAKG;AACH,UAAU,SAAS;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAoBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAUtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC5B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,MAAM,GACf,MAAM,CAaR;AAcD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAS3D;AAED,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAkCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAM,GACvE,aAAa,CA4Cf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAM,GACvE,aAAa,CA6Cf"}
1
+ {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../src/engine/pico8/harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAUtC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACrB;IAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAC,GAC9C;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAC,GAClD;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC;AAE3B,gFAAgF;AAChF,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,wFAAwF;AACxF,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,gBAAgB;AAC3B,qEAAqE;AACnE,kCAAkC;AACpC,8EAA8E;GAC5E,2BAA2B;AAC7B,sDAAsD;GACpD,+BAA+B,CAAC;AAEnC,0EAA0E;AAC1E,qBAAa,YAAa,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;gBACpB,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM;CAKnD;AAKD;;;;;GAKG;AACH,UAAU,SAAS;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAoBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAUtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC5B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,MAAM,GACf,MAAM,CAaR;AAcD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAS3D;AAED,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAkCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAM,GACvE,aAAa,CA4Cf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACrD,GACJ,aAAa,CAgDf"}
@@ -14,6 +14,7 @@
14
14
  import { Cart } from '../cart/index.js';
15
15
  import { DONE_SENTINEL, PICO8_FRAMES_PER_SECOND, PICO8_TICKS_PER_SECOND, RECORD_WAV_BASENAME, } from './adapter.js';
16
16
  import { SFX_ROW_LENGTH } from '../audio/sfx.js';
17
+ import { resolveIncludes } from './drive.js';
17
18
  /** The lowest/highest SFX slot a render target may name (finding: 64 slots). */
18
19
  export const SFX_TARGET_MIN = 0;
19
20
  export const SFX_TARGET_MAX = 63;
@@ -206,6 +207,13 @@ export function buildRenderHarness(cartText, target, options = {}) {
206
207
  * calls the original. This is the record analogue of the debug skill's "add
207
208
  * capture lines, run, revert" recipe, done on a THROWAWAY copy.
208
209
  *
210
+ * The harness runs from a different folder than the source cart (an isolated
211
+ * temp dir), so a relative `#include main.lua` (picopilot's standard scaffold)
212
+ * would not resolve there and the harness would fail to load. Pass
213
+ * `readInclude` (bound to the SOURCE cart's folder, see `makeReadInclude`) and
214
+ * every `#include` is inlined, exactly as the playtest drive transform does, so
215
+ * the harness is self-contained wherever it runs.
216
+ *
209
217
  * @throws {HarnessError} an unparseable cart.
210
218
  */
211
219
  export function buildRecordHarness(cartText, options = {}) {
@@ -220,7 +228,7 @@ export function buildRecordHarness(cartText, options = {}) {
220
228
  const frames = Math.max(1, Math.round(seconds * PICO8_FRAMES_PER_SECOND));
221
229
  const sentinel = options.sentinel ?? DONE_SENTINEL;
222
230
  const wavBasename = options.wavBasename ?? RECORD_WAV_BASENAME;
223
- const existing = cart.getSection('lua') ?? '';
231
+ const existing = resolveIncludes(cart.getSection('lua') ?? '', options.readInclude);
224
232
  // Append the recorder AFTER the cart's own code. It wraps _update so it works
225
233
  // whether or not the cart defines one, and never edits the cart's own logic.
226
234
  const recorder = [
@@ -1 +1 @@
1
- {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../src/engine/pico8/harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../src/engine/pico8/harness.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,13 @@
6
6
  * - `adapter`: the `Pico8Adapter` interface, `Pico8Result`, the structured
7
7
  * `pico8-not-found` value, and the run-report shapes.
8
8
  * - `sentinel`: the pure sentinel-watch core (CI-testable without the binary).
9
+ * - `display`: the display mode (auto/xvfb/native) + the private virtual
10
+ * display a `-run` session uses on a display-less box (ADR-0017).
9
11
  * - `shell`: the v1 adapter shelling out to native `pico8 -x`, with an
10
12
  * injectable spawn seam for isolation-testing.
11
13
  */
12
14
  export * from './adapter.js';
15
+ export * from './display.js';
13
16
  export * from './drive.js';
14
17
  export * from './harness.js';
15
18
  export * from './sentinel.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/pico8/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/pico8/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
@@ -6,10 +6,13 @@
6
6
  * - `adapter`: the `Pico8Adapter` interface, `Pico8Result`, the structured
7
7
  * `pico8-not-found` value, and the run-report shapes.
8
8
  * - `sentinel`: the pure sentinel-watch core (CI-testable without the binary).
9
+ * - `display`: the display mode (auto/xvfb/native) + the private virtual
10
+ * display a `-run` session uses on a display-less box (ADR-0017).
9
11
  * - `shell`: the v1 adapter shelling out to native `pico8 -x`, with an
10
12
  * injectable spawn seam for isolation-testing.
11
13
  */
12
14
  export * from './adapter.js';
15
+ export * from './display.js';
13
16
  export * from './drive.js';
14
17
  export * from './harness.js';
15
18
  export * from './sentinel.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/pico8/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/pico8/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The detached daemon process ENTRY (ADR-0011, prd US #6). `playtest start`
2
+ * The detached daemon process ENTRY (ADR-0011, spec US #6). `playtest start`
3
3
  * spawns this file (via `process.execPath [+ execArgv] <this> <configJson>`, so
4
4
  * it re-uses the exact loader the parent ran under, dev `tsx` or built `dist`) as
5
5
  * a DETACHED background process that owns the live driven PICO-8 for the session's
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The detached daemon process ENTRY (ADR-0011, prd US #6). `playtest start`
2
+ * The detached daemon process ENTRY (ADR-0011, spec US #6). `playtest start`
3
3
  * spawns this file (via `process.execPath [+ execArgv] <this> <configJson>`, so
4
4
  * it re-uses the exact loader the parent ran under, dev `tsx` or built `dist`) as
5
5
  * a DETACHED background process that owns the live driven PICO-8 for the session's
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The playtest session DAEMON ENTRYPOINT (ADR-0011, prd US #6): the small
2
+ * The playtest session DAEMON ENTRYPOINT (ADR-0011, spec US #6): the small
3
3
  * detached process `playtest start` spawns to OWN a live driven PICO-8 for a
4
4
  * session's lifetime. It is invoked via the hidden `playtest __daemon` verb (so it
5
5
  * re-uses the exact same executable/loader the parent ran under, dev `tsx` or
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The playtest session DAEMON ENTRYPOINT (ADR-0011, prd US #6): the small
2
+ * The playtest session DAEMON ENTRYPOINT (ADR-0011, spec US #6): the small
3
3
  * detached process `playtest start` spawns to OWN a live driven PICO-8 for a
4
4
  * session's lifetime. It is invoked via the hidden `playtest __daemon` verb (so it
5
5
  * re-uses the exact same executable/loader the parent ran under, dev `tsx` or
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The playtest session DAEMON runtime + CLIENT (ADR-0011, prd US #6). This is the
2
+ * The playtest session DAEMON runtime + CLIENT (ADR-0011, spec US #6). This is the
3
3
  * IO half of the supervisor: the daemon LISTENS on a session's Unix domain socket
4
4
  * and drives a live {@link DriveSession} on behalf of each verb sub-invocation;
5
5
  * the {@link SessionClient} CONNECTS to that socket to send a verb and read back
@@ -1 +1 @@
1
- {"version":3,"file":"session-daemon.d.ts","sourceRoot":"","sources":["../../../src/engine/pico8/session-daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAC7C,OAAO,EAIN,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,qBAAa,aAAa;IACb,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAE/C;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;CA6BvD;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAE1D;AAWD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,OAAO,0BAA0B,EAAE,YAAY,GACrD,IAAI,CAON;AAED,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG;IAC3D,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB,CA0IA"}
1
+ {"version":3,"file":"session-daemon.d.ts","sourceRoot":"","sources":["../../../src/engine/pico8/session-daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAC7C,OAAO,EAIN,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,qBAAa,aAAa;IACb,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAE/C;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;CA6BvD;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAE1D;AAWD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,OAAO,0BAA0B,EAAE,YAAY,GACrD,IAAI,CAON;AAED,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG;IAC3D,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB,CA6IA"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The playtest session DAEMON runtime + CLIENT (ADR-0011, prd US #6). This is the
2
+ * The playtest session DAEMON runtime + CLIENT (ADR-0011, spec US #6). This is the
3
3
  * IO half of the supervisor: the daemon LISTENS on a session's Unix domain socket
4
4
  * and drives a live {@link DriveSession} on behalf of each verb sub-invocation;
5
5
  * the {@link SessionClient} CONNECTS to that socket to send a verb and read back
@@ -13,7 +13,7 @@
13
13
  */
14
14
  import { spawn } from 'node:child_process';
15
15
  import { createConnection, createServer } from 'node:net';
16
- import { existsSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
16
+ import { existsSync, rmSync, writeFileSync } from 'node:fs';
17
17
  import { dirname, join } from 'node:path';
18
18
  import { fileURLToPath } from 'node:url';
19
19
  import { DriveSession, SessionError, } from './session.js';
@@ -166,7 +166,7 @@ export function serveSession(options) {
166
166
  }
167
167
  case 'shot': {
168
168
  const r = await session.shot();
169
- const screenshot = collectShot(options.paths.shotDir, r.shotName);
169
+ const screenshot = await collectShot(options.paths.shotDir, r.shotName);
170
170
  return ok(options.id, {
171
171
  frame: r.frame,
172
172
  ack: r.ack,
@@ -240,25 +240,25 @@ export function serveSession(options) {
240
240
  function ok(id, partial) {
241
241
  return { ok: true, value: { id, ...partial } };
242
242
  }
243
+ /** How long `shot` waits for PICO-8 to write the PNG after acking the SHOT. */
244
+ const SHOT_FILE_TIMEOUT_MS = 3000;
245
+ const SHOT_FILE_POLL_MS = 20;
243
246
  /**
244
- * Resolves the absolute path of the screenshot a SHOT just produced in the
245
- * `-desktop` dir. The cart named it `<shotName>` (basename) and PICO-8 appends
246
- * `.png`; if the exact file is not yet visible (a filesystem race) it falls back
247
- * to the most-recent PNG, so the caller still gets a path to read.
247
+ * Resolves the screenshot the cart just took: `<shotDir>/<shotName>.png`. The
248
+ * cart's SHOT ACK is printed BEFORE `extcmd("screen")` lands on disk (verified
249
+ * on PICO-8 0.2.7), so poll briefly for that exact file. It deliberately never
250
+ * falls back to "the most recent PNG": that returned the PREVIOUS shot (or
251
+ * nothing) whenever the new file was still being written. `undefined` only if
252
+ * the file never appears within {@link SHOT_FILE_TIMEOUT_MS}.
248
253
  */
249
- function collectShot(shotDir, shotName) {
254
+ async function collectShot(shotDir, shotName) {
250
255
  const exact = join(shotDir, `${shotName}.png`);
251
- if (existsSync(exact))
252
- return exact;
253
- try {
254
- const pngs = readdirSync(shotDir)
255
- .filter((f) => f.toLowerCase().endsWith('.png'))
256
- .sort();
257
- const last = pngs.at(-1);
258
- return last !== undefined ? join(shotDir, last) : undefined;
259
- }
260
- catch {
261
- return undefined;
256
+ const deadline = Date.now() + SHOT_FILE_TIMEOUT_MS;
257
+ while (!existsSync(exact)) {
258
+ if (Date.now() >= deadline)
259
+ return undefined;
260
+ await new Promise((r) => setTimeout(r, SHOT_FILE_POLL_MS));
262
261
  }
262
+ return exact;
263
263
  }
264
264
  //# sourceMappingURL=session-daemon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-daemon.js","sourceRoot":"","sources":["../../../src/engine/pico8/session-daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-daemon.js","sourceRoot":"","sources":["../../../src/engine/pico8/session-daemon.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The RESUMABLE playtest SESSION handshake core (ADR-0011, prd US #6): the pure,
2
+ * The RESUMABLE playtest SESSION handshake core (ADR-0011, spec US #6): the pure,
3
3
  * CI-testable half of the "A" live model. It keeps a single driven PICO-8 process
4
4
  * ALIVE and PAUSED between the agent's turns and drives it one command at a time
5
5
  * over the verified transport: write a FIXED-SIZE command block, WAIT for the
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The RESUMABLE playtest SESSION handshake core (ADR-0011, prd US #6): the pure,
2
+ * The RESUMABLE playtest SESSION handshake core (ADR-0011, spec US #6): the pure,
3
3
  * CI-testable half of the "A" live model. It keeps a single driven PICO-8 process
4
4
  * ALIVE and PAUSED between the agent's turns and drives it one command at a time
5
5
  * over the verified transport: write a FIXED-SIZE command block, WAIT for the
@@ -1,16 +1,19 @@
1
- import { type DriveOptions, type ExportOptions, type Pico8Adapter, type Pico8DriveResult, type Pico8ExportResult, type Pico8RecordResult, type Pico8Result, type RecordOptions, type RunOptions } from './adapter.js';
1
+ import { type DriveOptions, type ExitReason, type ExportOptions, type Pico8Adapter, type Pico8DriveResult, type Pico8ExportResult, type Pico8RecordResult, type Pico8Result, type RecordOptions, type RunOptions } from './adapter.js';
2
+ import { type DisplayMode, type VirtualDisplayDeps } from './display.js';
2
3
  /**
3
4
  * A spawned PICO-8 process, abstracted so tests inject a fake. `onStdout`
4
5
  * delivers stdout chunks (both `stdout` and `stderr` folded in, since PICO-8's
5
6
  * `printh` and its own lines can land on either); `onClose` fires when the
6
7
  * process exits on its own; `onError` fires on a spawn failure (ENOENT ⇒ PICO-8
7
- * absent). `kill` terminates the process tree (the backstop / sentinel kill).
8
+ * absent). `kill` terminates the process tree (the backstop / sentinel kill),
9
+ * with SIGKILL unless a gentler `signal` is given (the `xvfb-run` fallback is
10
+ * first sent SIGTERM so Xvfb can remove its lock file and socket).
8
11
  */
9
12
  export interface Pico8Process {
10
13
  onStdout(cb: (chunk: string) => void): void;
11
14
  onClose(cb: (code: number | null) => void): void;
12
15
  onError(cb: (err: NodeJS.ErrnoException) => void): void;
13
- kill(): void;
16
+ kill(signal?: NodeJS.Signals): void;
14
17
  /**
15
18
  * Writes raw bytes to the process's stdin, for the `drive` transport (the
16
19
  * fixed-size command blocks). Absent/undefined when stdin was detached
@@ -34,6 +37,28 @@ export declare function pico8HomeDir(): string;
34
37
  * land in the CWD. Applied at every spawn site.
35
38
  */
36
39
  export declare function withPico8Home(args: string[]): string[];
40
+ /**
41
+ * The environment PICO-8 is spawned with: the parent env overlaid with the
42
+ * picopilot-resolved values ({@link overlayEnv}). A `-run` session cannot open a
43
+ * window or an audio device without DISPLAY, HOME, XDG_RUNTIME_DIR, SDL_*, ...
44
+ */
45
+ export declare function pico8ChildEnv(resolved: Readonly<Record<string, string | undefined>>, parent: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
46
+ export declare function pico8RuntimeDir(): string;
47
+ /** `env` with a private {@link pico8RuntimeDir} filled in when XDG_RUNTIME_DIR is absent. */
48
+ export declare function withRuntimeDir(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
49
+ /** The last lines of PICO-8's `log.txt` in the isolated `-home`, or undefined if absent. */
50
+ export declare function readPico8LogTail(home?: string, lines?: number): string | undefined;
51
+ /**
52
+ * Says WHY a record run produced no WAV, from how it ended. The sentinel is the
53
+ * harness's last act (after `audio_end`), so anything other than a sentinel
54
+ * means the harness never finished; a sentinel with no WAV means `audio_end`
55
+ * saved nothing usable.
56
+ */
57
+ export declare function explainNoWav(exitReason: ExitReason, ctx: {
58
+ backstopMs: number;
59
+ wavDir: string;
60
+ basename: string;
61
+ }): string;
37
62
  export declare const spawnRunner: SpawnRunner;
38
63
  /** The candidate ways to launch PICO-8, tried in order: `PICO8_PATH`, then `pico8` on `PATH`. */
39
64
  export declare function pico8Candidates(env: NodeJS.ProcessEnv): string[];
@@ -43,7 +68,22 @@ export interface ShellPico8Options {
43
68
  readonly env: NodeJS.ProcessEnv;
44
69
  /** The spawn runner (defaults to {@link spawnRunner}); tests inject a fake. */
45
70
  readonly spawn?: SpawnRunner;
71
+ /**
72
+ * The display mode for `-run` sessions (ADR-0017; defaults to `auto`). Only
73
+ * {@link ShellPico8Adapter.record} consults it: the `-x` paths never need a
74
+ * display and never start one.
75
+ */
76
+ readonly display?: DisplayMode;
77
+ /** The virtual-display dependencies (Xvfb lookup + spawn); tests inject fakes. */
78
+ readonly virtualDisplay?: VirtualDisplayDeps;
79
+ /**
80
+ * How long a gracefully-ended run (the `xvfb-run` fallback) gets between
81
+ * SIGTERM and SIGKILL, in ms (default {@link DEFAULT_KILL_GRACE_MS}).
82
+ */
83
+ readonly killGraceMs?: number;
46
84
  }
85
+ /** The default SIGTERM-to-SIGKILL grace for a gracefully-ended run. */
86
+ export declare const DEFAULT_KILL_GRACE_MS = 2000;
47
87
  /**
48
88
  * The v1 {@link Pico8Adapter}: shells out to the user's native `pico8 -x`
49
89
  * (ADR-0006, native path first). It owns the ORCHESTRATION the command should
@@ -57,6 +97,9 @@ export interface ShellPico8Options {
57
97
  export declare class ShellPico8Adapter implements Pico8Adapter {
58
98
  private readonly env;
59
99
  private readonly spawnRun;
100
+ private readonly display;
101
+ private readonly virtualDisplay;
102
+ private readonly killGraceMs;
60
103
  constructor(options: ShellPico8Options);
61
104
  run(options: RunOptions): Promise<Pico8Result>;
62
105
  /**
@@ -90,6 +133,16 @@ export declare class ShellPico8Adapter implements Pico8Adapter {
90
133
  */
91
134
  export(options: ExportOptions): Promise<Pico8ExportResult>;
92
135
  record(options: RecordOptions): Promise<Pico8RecordResult>;
136
+ /**
137
+ * The record session on a private virtual display (ADR-0017): start Xvfb
138
+ * (or fall back to `xvfb-run`), run PICO-8 on it with a dummy SDL audio
139
+ * driver (unless the caller chose one; `audio_rec` captures PICO-8's own
140
+ * mixer, not the device), and ALWAYS stop the display afterwards, however
141
+ * the run ended (sentinel, backstop, crash, spawn failure).
142
+ */
143
+ private recordOnVirtualDisplay;
144
+ /** The record launch itself, natively or under a virtual display's env/wrapper. */
145
+ private recordWith;
93
146
  /**
94
147
  * The shared launch/sentinel-watch/backstop/collect loop behind both
95
148
  * {@link run} and {@link record}. `buildOk` turns the exit reason + captured
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/engine/pico8/shell.ts"],"names":[],"mappings":"AAUA,OAAO,EACN,KAAK,YAAY,EAGjB,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAEhB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,MAAM,cAAc,CAAC;AAGtB;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,KAAK,IAAI,GAAG,IAAI,CAAC;IACxD,IAAI,IAAI,IAAI,CAAC;IACb;;;;OAIG;IACH,UAAU,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,OAAO,CAAC,EAAE;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAC,KACvB,YAAY,CAAC;AAsBlB,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAItD;AAED,eAAO,MAAM,WAAW,EAAE,WAsCzB,CAAC;AAEF,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,EAAE,CAKhE;AAuDD,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IACjC,iFAAiF;IACjF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;gBAE3B,OAAO,EAAE,iBAAiB;IAKtC,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAoB9C;;;;;;;;;;OAUG;IACH;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBvD;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+B1D,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsB1D;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;CA0DnB"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/engine/pico8/shell.ts"],"names":[],"mappings":"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"}