freecodego 0.1.7-alpha.2.2 → 0.1.7-rc.2.2

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 (593) hide show
  1. package/README.i18n.yaml +45 -5
  2. package/README.md +4 -4
  3. package/README.zh.md +4 -4
  4. package/cordis.patch.yml +230 -126
  5. package/dist/assets/design/craft/FUTURE_SECTIONS.md +9 -0
  6. package/dist/assets/design/craft/LICENSE +201 -0
  7. package/dist/assets/design/craft/PROVENANCE.md +77 -0
  8. package/dist/assets/design/craft/README.md +106 -0
  9. package/dist/assets/design/craft/accessibility-baseline.md +201 -0
  10. package/dist/assets/design/craft/animation-discipline.md +154 -0
  11. package/dist/assets/design/craft/anti-ai-slop.md +84 -0
  12. package/dist/assets/design/craft/color.md +88 -0
  13. package/dist/assets/design/craft/form-validation.md +221 -0
  14. package/dist/assets/design/craft/laws-of-ux.md +296 -0
  15. package/dist/assets/design/craft/rtl-and-bidi.md +186 -0
  16. package/dist/assets/design/craft/state-coverage.md +134 -0
  17. package/dist/assets/design/craft/typography-hierarchy-editorial.md +182 -0
  18. package/dist/assets/design/craft/typography-hierarchy.md +165 -0
  19. package/dist/assets/design/craft/typography.md +122 -0
  20. package/dist/assets/design/react-bits/SKILL.md +130 -0
  21. package/dist/assets/design/skills/embedded-captions/CATALOG.md +91 -0
  22. package/dist/assets/design/skills/embedded-captions/SKILL.md +260 -0
  23. package/dist/assets/design/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
  24. package/dist/assets/design/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
  25. package/dist/assets/design/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
  26. package/dist/assets/design/skills/embedded-captions/dna/README.md +148 -0
  27. package/dist/assets/design/skills/embedded-captions/dna/chrome.json +68 -0
  28. package/dist/assets/design/skills/embedded-captions/dna/cream.json +69 -0
  29. package/dist/assets/design/skills/embedded-captions/dna/documentary.json +62 -0
  30. package/dist/assets/design/skills/embedded-captions/dna/editorial.json +70 -0
  31. package/dist/assets/design/skills/embedded-captions/dna/glitch.json +82 -0
  32. package/dist/assets/design/skills/embedded-captions/dna/ink.json +65 -0
  33. package/dist/assets/design/skills/embedded-captions/dna/keynote.json +62 -0
  34. package/dist/assets/design/skills/embedded-captions/dna/loud.json +75 -0
  35. package/dist/assets/design/skills/embedded-captions/dna/neon.json +58 -0
  36. package/dist/assets/design/skills/embedded-captions/dna/velocity.json +89 -0
  37. package/dist/assets/design/skills/embedded-captions/modes/cinematic/README.md +48 -0
  38. package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
  39. package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
  40. package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
  41. package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
  42. package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
  43. package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
  44. package/dist/assets/design/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
  45. package/dist/assets/design/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
  46. package/dist/assets/design/skills/embedded-captions/modes/cinematic/engine.html +355 -0
  47. package/dist/assets/design/skills/embedded-captions/modes/standard/_anatomy.md +232 -0
  48. package/dist/assets/design/skills/embedded-captions/modes/standard/_motion.md +192 -0
  49. package/dist/assets/design/skills/embedded-captions/references/aesthetic-principles.md +167 -0
  50. package/dist/assets/design/skills/embedded-captions/references/anti-patterns.md +188 -0
  51. package/dist/assets/design/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
  52. package/dist/assets/design/skills/embedded-captions/references/caption-grouping.md +130 -0
  53. package/dist/assets/design/skills/embedded-captions/references/composition-craft.md +522 -0
  54. package/dist/assets/design/skills/embedded-captions/references/direction-catalog.md +138 -0
  55. package/dist/assets/design/skills/embedded-captions/references/example-renders/champion.html +371 -0
  56. package/dist/assets/design/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
  57. package/dist/assets/design/skills/embedded-captions/references/failure-modes.md +145 -0
  58. package/dist/assets/design/skills/embedded-captions/references/layout-heuristics.md +238 -0
  59. package/dist/assets/design/skills/embedded-captions/references/motion-vocabulary.md +148 -0
  60. package/dist/assets/design/skills/embedded-captions/references/rail.md +68 -0
  61. package/dist/assets/design/skills/embedded-captions/references/reference-bar.md +47 -0
  62. package/dist/assets/design/skills/embedded-captions/references/scene-types.md +94 -0
  63. package/dist/assets/design/skills/embedded-captions/references/typographic-moves.md +266 -0
  64. package/dist/assets/design/skills/embedded-captions/references/typography-presets.md +63 -0
  65. package/dist/assets/design/skills/embedded-captions/scripts/fixtures/heroless/theme.json +11 -0
  66. package/dist/assets/design/skills/embedded-captions/scripts/fixtures/heroless/transcript.json +10 -0
  67. package/dist/assets/design/skills/embedded-captions/themes/README.md +243 -0
  68. package/dist/assets/design/skills/embedded-captions/themes/anchor.json +27 -0
  69. package/dist/assets/design/skills/embedded-captions/themes/arcade.json +51 -0
  70. package/dist/assets/design/skills/embedded-captions/themes/aurora.json +41 -0
  71. package/dist/assets/design/skills/embedded-captions/themes/biolume.json +35 -0
  72. package/dist/assets/design/skills/embedded-captions/themes/brush.json +74 -0
  73. package/dist/assets/design/skills/embedded-captions/themes/chalkboard.json +52 -0
  74. package/dist/assets/design/skills/embedded-captions/themes/dossier.json +56 -0
  75. package/dist/assets/design/skills/embedded-captions/themes/graffiti.json +62 -0
  76. package/dist/assets/design/skills/embedded-captions/themes/hologram.json +41 -0
  77. package/dist/assets/design/skills/embedded-captions/themes/inkwater.json +43 -0
  78. package/dist/assets/design/skills/embedded-captions/themes/laser.json +46 -0
  79. package/dist/assets/design/skills/embedded-captions/themes/lastpage.json +33 -0
  80. package/dist/assets/design/skills/embedded-captions/themes/neonsign.json +53 -0
  81. package/dist/assets/design/skills/embedded-captions/themes/ordnance.json +54 -0
  82. package/dist/assets/design/skills/embedded-captions/themes/papercut.json +37 -0
  83. package/dist/assets/design/skills/embedded-captions/themes/popup.json +46 -0
  84. package/dist/assets/design/skills/embedded-captions/themes/ransom.json +62 -0
  85. package/dist/assets/design/skills/embedded-captions/themes/scoreboard.json +54 -0
  86. package/dist/assets/design/skills/embedded-captions/themes/spectrum.json +46 -0
  87. package/dist/assets/design/skills/embedded-captions/themes/stardust.json +29 -0
  88. package/dist/assets/design/skills/embedded-captions/themes/stomp.json +43 -0
  89. package/dist/assets/design/skills/embedded-captions/themes/terminal.json +49 -0
  90. package/dist/assets/design/skills/embedded-captions/themes/thunder.json +44 -0
  91. package/dist/assets/design/skills/embedded-captions/themes/transit.json +44 -0
  92. package/dist/assets/design/skills/embedded-captions/themes/vhs.json +47 -0
  93. package/dist/assets/design/skills/faceless-explainer/SKILL.md +235 -0
  94. package/dist/assets/design/skills/faceless-explainer/references/cut-catalog.md +215 -0
  95. package/dist/assets/design/skills/faceless-explainer/references/motion-language.md +156 -0
  96. package/dist/assets/design/skills/faceless-explainer/references/story-design.md +255 -0
  97. package/dist/assets/design/skills/faceless-explainer/references/visual-design.md +146 -0
  98. package/dist/assets/design/skills/faceless-explainer/sub-agents/frame-worker.md +12 -0
  99. package/dist/assets/design/skills/general-video/SKILL.md +164 -0
  100. package/dist/assets/design/skills/general-video/sub-agents/frame-worker.md +34 -0
  101. package/dist/assets/design/skills/hyperframes/SKILL.md +134 -0
  102. package/dist/assets/design/skills/hyperframes/references/brief-contract.md +108 -0
  103. package/dist/assets/design/skills/hyperframes/references/brief-format.md +72 -0
  104. package/dist/assets/design/skills/hyperframes/references/capability-menu.md +47 -0
  105. package/dist/assets/design/skills/hyperframes/references/frame-worker-core.md +80 -0
  106. package/dist/assets/design/skills/hyperframes/references/intent-interview.md +71 -0
  107. package/dist/assets/design/skills/hyperframes/references/pitch-round.md +40 -0
  108. package/dist/assets/design/skills/hyperframes/references/production-loop.md +26 -0
  109. package/dist/assets/design/skills/hyperframes/references/review-loop.md +37 -0
  110. package/dist/assets/design/skills/hyperframes/references/route-briefs.md +11 -0
  111. package/dist/assets/design/skills/hyperframes/references/routes/embedded-captions.md +11 -0
  112. package/dist/assets/design/skills/hyperframes/references/routes/faceless-explainer.md +12 -0
  113. package/dist/assets/design/skills/hyperframes/references/routes/general-video.md +12 -0
  114. package/dist/assets/design/skills/hyperframes/references/routes/motion-graphics.md +11 -0
  115. package/dist/assets/design/skills/hyperframes/references/routes/music-to-video.md +12 -0
  116. package/dist/assets/design/skills/hyperframes/references/routes/pr-to-video.md +28 -0
  117. package/dist/assets/design/skills/hyperframes/references/routes/product-launch-video.md +13 -0
  118. package/dist/assets/design/skills/hyperframes/references/routes/remotion-to-hyperframes.md +9 -0
  119. package/dist/assets/design/skills/hyperframes/references/routes/slideshow.md +11 -0
  120. package/dist/assets/design/skills/hyperframes/references/routes/talking-head-recut.md +11 -0
  121. package/dist/assets/design/skills/hyperframes/references/script-format.md +52 -0
  122. package/dist/assets/design/skills/hyperframes/references/skill-lifecycle.md +30 -0
  123. package/dist/assets/design/skills/hyperframes/references/storyboard-format.md +99 -0
  124. package/dist/assets/design/skills/hyperframes/references/subagent-dispatch.md +35 -0
  125. package/dist/assets/design/skills/hyperframes/references/workflow-catalog.md +10 -0
  126. package/dist/assets/design/skills/hyperframes-animation/SKILL.md +86 -0
  127. package/dist/assets/design/skills/hyperframes-animation/adapters/animate-text.md +64 -0
  128. package/dist/assets/design/skills/hyperframes-animation/adapters/animejs.md +130 -0
  129. package/dist/assets/design/skills/hyperframes-animation/adapters/css-animations.md +143 -0
  130. package/dist/assets/design/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +199 -0
  131. package/dist/assets/design/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
  132. package/dist/assets/design/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +129 -0
  133. package/dist/assets/design/skills/hyperframes-animation/adapters/gsap.md +105 -0
  134. package/dist/assets/design/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
  135. package/dist/assets/design/skills/hyperframes-animation/adapters/lottie.md +130 -0
  136. package/dist/assets/design/skills/hyperframes-animation/adapters/three.md +145 -0
  137. package/dist/assets/design/skills/hyperframes-animation/adapters/typegpu.md +182 -0
  138. package/dist/assets/design/skills/hyperframes-animation/adapters/waapi.md +101 -0
  139. package/dist/assets/design/skills/hyperframes-animation/blueprints/agent-progress-theater.md +76 -0
  140. package/dist/assets/design/skills/hyperframes-animation/blueprints/camera-journey.md +61 -0
  141. package/dist/assets/design/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
  142. package/dist/assets/design/skills/hyperframes-animation/blueprints/constellation-hub.md +63 -0
  143. package/dist/assets/design/skills/hyperframes-animation/blueprints/cta-morph-press.md +63 -0
  144. package/dist/assets/design/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +89 -0
  145. package/dist/assets/design/skills/hyperframes-animation/blueprints/dataviz-countup.md +59 -0
  146. package/dist/assets/design/skills/hyperframes-animation/blueprints/device-surface-showcase.md +68 -0
  147. package/dist/assets/design/skills/hyperframes-animation/blueprints/fixed-anchor-cycle.md +46 -0
  148. package/dist/assets/design/skills/hyperframes-animation/blueprints/grid-card-assemble.md +81 -0
  149. package/dist/assets/design/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +133 -0
  150. package/dist/assets/design/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +121 -0
  151. package/dist/assets/design/skills/hyperframes-animation/blueprints/overwhelm-surround.md +58 -0
  152. package/dist/assets/design/skills/hyperframes-animation/blueprints/panel-edit-live-sync.md +73 -0
  153. package/dist/assets/design/skills/hyperframes-animation/blueprints/prompt-type-submit-generate.md +85 -0
  154. package/dist/assets/design/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
  155. package/dist/assets/design/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
  156. package/dist/assets/design/skills/hyperframes-animation/blueprints/titlecard-reveal.md +80 -0
  157. package/dist/assets/design/skills/hyperframes-animation/blueprints/transcript-scroll-artifact-reveal.md +45 -0
  158. package/dist/assets/design/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
  159. package/dist/assets/design/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
  160. package/dist/assets/design/skills/hyperframes-animation/blueprints/zoom-out-workspace-reveal.md +68 -0
  161. package/dist/assets/design/skills/hyperframes-animation/blueprints-index.md +202 -0
  162. package/dist/assets/design/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
  163. package/dist/assets/design/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
  164. package/dist/assets/design/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
  165. package/dist/assets/design/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
  166. package/dist/assets/design/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
  167. package/dist/assets/design/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
  168. package/dist/assets/design/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
  169. package/dist/assets/design/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
  170. package/dist/assets/design/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
  171. package/dist/assets/design/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
  172. package/dist/assets/design/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
  173. package/dist/assets/design/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
  174. package/dist/assets/design/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
  175. package/dist/assets/design/skills/hyperframes-animation/references/motion-blur.md +133 -0
  176. package/dist/assets/design/skills/hyperframes-animation/rules/3d-camera-flight.md +180 -0
  177. package/dist/assets/design/skills/hyperframes-animation/rules/3d-page-scroll.md +135 -0
  178. package/dist/assets/design/skills/hyperframes-animation/rules/3d-text-depth-layers.md +128 -0
  179. package/dist/assets/design/skills/hyperframes-animation/rules/ai-tracking-box.md +139 -0
  180. package/dist/assets/design/skills/hyperframes-animation/rules/ambient-glow-bloom.md +133 -0
  181. package/dist/assets/design/skills/hyperframes-animation/rules/anchored-layout-expand.md +148 -0
  182. package/dist/assets/design/skills/hyperframes-animation/rules/asr-keyword-glow.md +128 -0
  183. package/dist/assets/design/skills/hyperframes-animation/rules/avatar-cloud-network.md +145 -0
  184. package/dist/assets/design/skills/hyperframes-animation/rules/camera-cursor-tracking.md +133 -0
  185. package/dist/assets/design/skills/hyperframes-animation/rules/card-morph-anchor.md +134 -0
  186. package/dist/assets/design/skills/hyperframes-animation/rules/center-outward-expansion.md +88 -0
  187. package/dist/assets/design/skills/hyperframes-animation/rules/chart-scrub-readout.md +151 -0
  188. package/dist/assets/design/skills/hyperframes-animation/rules/chromatic-glitch.md +150 -0
  189. package/dist/assets/design/skills/hyperframes-animation/rules/context-sensitive-cursor.md +140 -0
  190. package/dist/assets/design/skills/hyperframes-animation/rules/control-target-sync.md +131 -0
  191. package/dist/assets/design/skills/hyperframes-animation/rules/coordinate-target-zoom.md +138 -0
  192. package/dist/assets/design/skills/hyperframes-animation/rules/counting-dynamic-scale.md +115 -0
  193. package/dist/assets/design/skills/hyperframes-animation/rules/css-marker-patterns.md +208 -0
  194. package/dist/assets/design/skills/hyperframes-animation/rules/cursor-click-ripple.md +104 -0
  195. package/dist/assets/design/skills/hyperframes-animation/rules/cursor-drag.md +141 -0
  196. package/dist/assets/design/skills/hyperframes-animation/rules/depth-of-field-blur.md +112 -0
  197. package/dist/assets/design/skills/hyperframes-animation/rules/depth-scatter-assemble.md +139 -0
  198. package/dist/assets/design/skills/hyperframes-animation/rules/discrete-text-sequence.md +146 -0
  199. package/dist/assets/design/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +149 -0
  200. package/dist/assets/design/skills/hyperframes-animation/rules/gradient-text-sweep.md +136 -0
  201. package/dist/assets/design/skills/hyperframes-animation/rules/gsap-effects.md +196 -0
  202. package/dist/assets/design/skills/hyperframes-animation/rules/hacker-flip-3d.md +123 -0
  203. package/dist/assets/design/skills/hyperframes-animation/rules/kinetic-beat-slam.md +137 -0
  204. package/dist/assets/design/skills/hyperframes-animation/rules/motion-blur-streak.md +130 -0
  205. package/dist/assets/design/skills/hyperframes-animation/rules/multi-cursor-choreography.md +133 -0
  206. package/dist/assets/design/skills/hyperframes-animation/rules/multi-phase-camera.md +129 -0
  207. package/dist/assets/design/skills/hyperframes-animation/rules/nudge-curve.md +47 -0
  208. package/dist/assets/design/skills/hyperframes-animation/rules/orbit-3d-entry.md +148 -0
  209. package/dist/assets/design/skills/hyperframes-animation/rules/particle-burst.md +149 -0
  210. package/dist/assets/design/skills/hyperframes-animation/rules/physics-press-reaction.md +101 -0
  211. package/dist/assets/design/skills/hyperframes-animation/rules/press-release-spring.md +108 -0
  212. package/dist/assets/design/skills/hyperframes-animation/rules/reactive-displacement.md +92 -0
  213. package/dist/assets/design/skills/hyperframes-animation/rules/scale-swap-transition.md +88 -0
  214. package/dist/assets/design/skills/hyperframes-animation/rules/sine-wave-loop.md +85 -0
  215. package/dist/assets/design/skills/hyperframes-animation/rules/split-tilt-cards.md +123 -0
  216. package/dist/assets/design/skills/hyperframes-animation/rules/spring-pop-entrance.md +107 -0
  217. package/dist/assets/design/skills/hyperframes-animation/rules/stat-bars-and-fills.md +145 -0
  218. package/dist/assets/design/skills/hyperframes-animation/rules/svg-icon-enrichment.md +141 -0
  219. package/dist/assets/design/skills/hyperframes-animation/rules/svg-path-draw.md +122 -0
  220. package/dist/assets/design/skills/hyperframes-animation/rules/theme-crossfade-morph.md +126 -0
  221. package/dist/assets/design/skills/hyperframes-animation/rules/vertical-spring-ticker.md +104 -0
  222. package/dist/assets/design/skills/hyperframes-animation/rules/viewport-change.md +148 -0
  223. package/dist/assets/design/skills/hyperframes-animation/rules/waterfall-entry.md +81 -0
  224. package/dist/assets/design/skills/hyperframes-animation/rules-index.md +113 -0
  225. package/dist/assets/design/skills/hyperframes-animation/techniques.md +507 -0
  226. package/dist/assets/design/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +168 -0
  227. package/dist/assets/design/skills/hyperframes-animation/transitions/catalog.md +127 -0
  228. package/dist/assets/design/skills/hyperframes-animation/transitions/css-3d.md +12 -0
  229. package/dist/assets/design/skills/hyperframes-animation/transitions/css-blur.md +51 -0
  230. package/dist/assets/design/skills/hyperframes-animation/transitions/css-cover.md +43 -0
  231. package/dist/assets/design/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
  232. package/dist/assets/design/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
  233. package/dist/assets/design/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
  234. package/dist/assets/design/skills/hyperframes-animation/transitions/css-grid.md +10 -0
  235. package/dist/assets/design/skills/hyperframes-animation/transitions/css-light.md +49 -0
  236. package/dist/assets/design/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
  237. package/dist/assets/design/skills/hyperframes-animation/transitions/css-other.md +25 -0
  238. package/dist/assets/design/skills/hyperframes-animation/transitions/css-push.md +41 -0
  239. package/dist/assets/design/skills/hyperframes-animation/transitions/css-radial.md +37 -0
  240. package/dist/assets/design/skills/hyperframes-animation/transitions/css-scale.md +24 -0
  241. package/dist/assets/design/skills/hyperframes-animation/transitions/overview.md +153 -0
  242. package/dist/assets/design/skills/hyperframes-audio/SKILL.md +476 -0
  243. package/dist/assets/design/skills/hyperframes-audio/references/attributes.md +138 -0
  244. package/dist/assets/design/skills/hyperframes-audio/references/diagnosis.md +274 -0
  245. package/dist/assets/design/skills/hyperframes-audio/references/fx-registry.md +84 -0
  246. package/dist/assets/design/skills/hyperframes-audio/references/presets.md +216 -0
  247. package/dist/assets/design/skills/hyperframes-core/SKILL.md +97 -0
  248. package/dist/assets/design/skills/hyperframes-core/references/composition-patterns.md +224 -0
  249. package/dist/assets/design/skills/hyperframes-core/references/creator-editing-recipes.md +491 -0
  250. package/dist/assets/design/skills/hyperframes-core/references/data-attributes.md +78 -0
  251. package/dist/assets/design/skills/hyperframes-core/references/determinism-rules.md +53 -0
  252. package/dist/assets/design/skills/hyperframes-core/references/full-screen-motion.md +67 -0
  253. package/dist/assets/design/skills/hyperframes-core/references/minimal-composition.md +69 -0
  254. package/dist/assets/design/skills/hyperframes-core/references/sub-compositions.md +176 -0
  255. package/dist/assets/design/skills/hyperframes-core/references/tailwind.md +104 -0
  256. package/dist/assets/design/skills/hyperframes-core/references/tracks-and-clips.md +87 -0
  257. package/dist/assets/design/skills/hyperframes-core/references/variables-and-media.md +107 -0
  258. package/dist/assets/design/skills/hyperframes-creative/SKILL.md +71 -0
  259. package/dist/assets/design/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
  260. package/dist/assets/design/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
  261. package/dist/assets/design/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
  262. package/dist/assets/design/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
  263. package/dist/assets/design/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
  264. package/dist/assets/design/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
  265. package/dist/assets/design/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
  266. package/dist/assets/design/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
  267. package/dist/assets/design/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
  268. package/dist/assets/design/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
  269. package/dist/assets/design/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
  270. package/dist/assets/design/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
  271. package/dist/assets/design/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
  272. package/dist/assets/design/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
  273. package/dist/assets/design/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
  274. package/dist/assets/design/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
  275. package/dist/assets/design/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
  276. package/dist/assets/design/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
  277. package/dist/assets/design/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
  278. package/dist/assets/design/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
  279. package/dist/assets/design/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
  280. package/dist/assets/design/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
  281. package/dist/assets/design/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
  282. package/dist/assets/design/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
  283. package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/FRAME.md +277 -0
  284. package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/caption-skin.html +224 -0
  285. package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/fonts/OFL-eb-garamond.txt +93 -0
  286. package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/fonts/OFL-inter.txt +93 -0
  287. package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/fonts/OFL-jetbrains-mono.txt +93 -0
  288. package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/frame-showcase.html +1438 -0
  289. package/dist/assets/design/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
  290. package/dist/assets/design/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
  291. package/dist/assets/design/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
  292. package/dist/assets/design/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
  293. package/dist/assets/design/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
  294. package/dist/assets/design/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
  295. package/dist/assets/design/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
  296. package/dist/assets/design/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
  297. package/dist/assets/design/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
  298. package/dist/assets/design/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
  299. package/dist/assets/design/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
  300. package/dist/assets/design/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
  301. package/dist/assets/design/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
  302. package/dist/assets/design/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
  303. package/dist/assets/design/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
  304. package/dist/assets/design/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
  305. package/dist/assets/design/skills/hyperframes-creative/palettes/monochrome.md +14 -0
  306. package/dist/assets/design/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
  307. package/dist/assets/design/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
  308. package/dist/assets/design/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
  309. package/dist/assets/design/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
  310. package/dist/assets/design/skills/hyperframes-creative/references/audio-reactive.md +76 -0
  311. package/dist/assets/design/skills/hyperframes-creative/references/beat-direction.md +164 -0
  312. package/dist/assets/design/skills/hyperframes-creative/references/composition-patterns.md +199 -0
  313. package/dist/assets/design/skills/hyperframes-creative/references/data-in-motion.md +19 -0
  314. package/dist/assets/design/skills/hyperframes-creative/references/design-adherence.md +19 -0
  315. package/dist/assets/design/skills/hyperframes-creative/references/design-picker.md +123 -0
  316. package/dist/assets/design/skills/hyperframes-creative/references/design-spec.md +55 -0
  317. package/dist/assets/design/skills/hyperframes-creative/references/house-style.md +73 -0
  318. package/dist/assets/design/skills/hyperframes-creative/references/motion-principles.md +151 -0
  319. package/dist/assets/design/skills/hyperframes-creative/references/narration.md +92 -0
  320. package/dist/assets/design/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
  321. package/dist/assets/design/skills/hyperframes-creative/references/story-spine.md +45 -0
  322. package/dist/assets/design/skills/hyperframes-creative/references/storyboard-recipe.md +57 -0
  323. package/dist/assets/design/skills/hyperframes-creative/references/typography.md +218 -0
  324. package/dist/assets/design/skills/hyperframes-creative/references/video-composition.md +63 -0
  325. package/dist/assets/design/skills/hyperframes-creative/references/visual-styles.md +457 -0
  326. package/dist/assets/design/skills/hyperframes-creative/templates/design-picker.html +1432 -0
  327. package/dist/assets/design/skills/hyperframes-keyframes/SKILL.md +262 -0
  328. package/dist/assets/design/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
  329. package/dist/assets/design/skills/hyperframes-keyframes/references/keyframe-patterns.md +108 -0
  330. package/dist/assets/design/skills/hyperframes-studio/SKILL.md +75 -0
  331. package/dist/assets/design/skills/motion-graphics/SKILL.md +175 -0
  332. package/dist/assets/design/skills/motion-graphics/agents/builder.md +41 -0
  333. package/dist/assets/design/skills/motion-graphics/agents/director.md +54 -0
  334. package/dist/assets/design/skills/motion-graphics/agents/finalize.md +17 -0
  335. package/dist/assets/design/skills/motion-graphics/catalog-map.md +52 -0
  336. package/dist/assets/design/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
  337. package/dist/assets/design/skills/motion-graphics/categories/charts/module.md +22 -0
  338. package/dist/assets/design/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
  339. package/dist/assets/design/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
  340. package/dist/assets/design/skills/motion-graphics/categories/lower-thirds/module.md +20 -0
  341. package/dist/assets/design/skills/motion-graphics/categories/maps/module.md +61 -0
  342. package/dist/assets/design/skills/motion-graphics/categories/news/module.md +56 -0
  343. package/dist/assets/design/skills/motion-graphics/categories/stat/module.md +21 -0
  344. package/dist/assets/design/skills/motion-graphics/categories/tweet/module.md +16 -0
  345. package/dist/assets/design/skills/motion-graphics/categories/webpage/module.md +30 -0
  346. package/dist/assets/design/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
  347. package/dist/assets/design/skills/motion-graphics/phases/source/guide.md +21 -0
  348. package/dist/assets/design/skills/motion-graphics/references/builder-contract.md +38 -0
  349. package/dist/assets/design/skills/motion-graphics/references/motion-vocabulary.md +47 -0
  350. package/dist/assets/design/skills/motion-graphics/references/shot-plan-ir.md +54 -0
  351. package/dist/assets/design/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
  352. package/dist/assets/design/skills/music-to-video/SKILL.md +207 -0
  353. package/dist/assets/design/skills/music-to-video/references/frame-skeleton.md +100 -0
  354. package/dist/assets/design/skills/music-to-video/references/montage.md +55 -0
  355. package/dist/assets/design/skills/music-to-video/references/motion-primitive-catalog.md +75 -0
  356. package/dist/assets/design/skills/music-to-video/references/motion-primitives/3d-card-flip/index.html +53 -0
  357. package/dist/assets/design/skills/music-to-video/references/motion-primitives/3d-card-flip/scene.html +119 -0
  358. package/dist/assets/design/skills/music-to-video/references/motion-primitives/bg-flow-field/index.html +53 -0
  359. package/dist/assets/design/skills/music-to-video/references/motion-primitives/bg-flow-field/scene.html +294 -0
  360. package/dist/assets/design/skills/music-to-video/references/motion-primitives/binary-decrypt/index.html +54 -0
  361. package/dist/assets/design/skills/music-to-video/references/motion-primitives/binary-decrypt/scene.html +85 -0
  362. package/dist/assets/design/skills/music-to-video/references/motion-primitives/blur-resolve/index.html +53 -0
  363. package/dist/assets/design/skills/music-to-video/references/motion-primitives/blur-resolve/scene.html +60 -0
  364. package/dist/assets/design/skills/music-to-video/references/motion-primitives/braam-punch/index.html +53 -0
  365. package/dist/assets/design/skills/music-to-video/references/motion-primitives/braam-punch/scene.html +100 -0
  366. package/dist/assets/design/skills/music-to-video/references/motion-primitives/chromatic-split/index.html +53 -0
  367. package/dist/assets/design/skills/music-to-video/references/motion-primitives/chromatic-split/scene.html +111 -0
  368. package/dist/assets/design/skills/music-to-video/references/motion-primitives/chrome-sweep/index.html +53 -0
  369. package/dist/assets/design/skills/music-to-video/references/motion-primitives/chrome-sweep/scene.html +68 -0
  370. package/dist/assets/design/skills/music-to-video/references/motion-primitives/counting-punch/index.html +54 -0
  371. package/dist/assets/design/skills/music-to-video/references/motion-primitives/counting-punch/scene.html +119 -0
  372. package/dist/assets/design/skills/music-to-video/references/motion-primitives/crash-zoom-in/index.html +53 -0
  373. package/dist/assets/design/skills/music-to-video/references/motion-primitives/crash-zoom-in/scene.html +120 -0
  374. package/dist/assets/design/skills/music-to-video/references/motion-primitives/datamosh-smear/index.html +55 -0
  375. package/dist/assets/design/skills/music-to-video/references/motion-primitives/datamosh-smear/scene.html +131 -0
  376. package/dist/assets/design/skills/music-to-video/references/motion-primitives/directional-fill/index.html +53 -0
  377. package/dist/assets/design/skills/music-to-video/references/motion-primitives/directional-fill/scene.html +103 -0
  378. package/dist/assets/design/skills/music-to-video/references/motion-primitives/dolly-zoom/index.html +53 -0
  379. package/dist/assets/design/skills/music-to-video/references/motion-primitives/dolly-zoom/scene.html +102 -0
  380. package/dist/assets/design/skills/music-to-video/references/motion-primitives/electric-arc/index.html +54 -0
  381. package/dist/assets/design/skills/music-to-video/references/motion-primitives/electric-arc/scene.html +105 -0
  382. package/dist/assets/design/skills/music-to-video/references/motion-primitives/flash-cut/index.html +53 -0
  383. package/dist/assets/design/skills/music-to-video/references/motion-primitives/flash-cut/scene.html +97 -0
  384. package/dist/assets/design/skills/music-to-video/references/motion-primitives/gooey-metaball/index.html +54 -0
  385. package/dist/assets/design/skills/music-to-video/references/motion-primitives/gooey-metaball/scene.html +206 -0
  386. package/dist/assets/design/skills/music-to-video/references/motion-primitives/hard-cut/index.html +53 -0
  387. package/dist/assets/design/skills/music-to-video/references/motion-primitives/hard-cut/scene.html +82 -0
  388. package/dist/assets/design/skills/music-to-video/references/motion-primitives/hypercut-whip/index.html +53 -0
  389. package/dist/assets/design/skills/music-to-video/references/motion-primitives/hypercut-whip/scene.html +44 -0
  390. package/dist/assets/design/skills/music-to-video/references/motion-primitives/iris-open/index.html +53 -0
  391. package/dist/assets/design/skills/music-to-video/references/motion-primitives/iris-open/scene.html +69 -0
  392. package/dist/assets/design/skills/music-to-video/references/motion-primitives/kinetic-letter-in/index.html +53 -0
  393. package/dist/assets/design/skills/music-to-video/references/motion-primitives/kinetic-letter-in/scene.html +64 -0
  394. package/dist/assets/design/skills/music-to-video/references/motion-primitives/liquid-morph/index.html +53 -0
  395. package/dist/assets/design/skills/music-to-video/references/motion-primitives/liquid-morph/scene.html +96 -0
  396. package/dist/assets/design/skills/music-to-video/references/motion-primitives/mask-reveal/index.html +53 -0
  397. package/dist/assets/design/skills/music-to-video/references/motion-primitives/mask-reveal/scene.html +74 -0
  398. package/dist/assets/design/skills/music-to-video/references/motion-primitives/mosaic-pack/index.html +53 -0
  399. package/dist/assets/design/skills/music-to-video/references/motion-primitives/mosaic-pack/scene.html +89 -0
  400. package/dist/assets/design/skills/music-to-video/references/motion-primitives/neon-flicker/index.html +53 -0
  401. package/dist/assets/design/skills/music-to-video/references/motion-primitives/neon-flicker/scene.html +73 -0
  402. package/dist/assets/design/skills/music-to-video/references/motion-primitives/outline-to-fill/index.html +53 -0
  403. package/dist/assets/design/skills/music-to-video/references/motion-primitives/outline-to-fill/scene.html +82 -0
  404. package/dist/assets/design/skills/music-to-video/references/motion-primitives/palette-flip/index.html +53 -0
  405. package/dist/assets/design/skills/music-to-video/references/motion-primitives/palette-flip/scene.html +97 -0
  406. package/dist/assets/design/skills/music-to-video/references/motion-primitives/particle-burst/index.html +53 -0
  407. package/dist/assets/design/skills/music-to-video/references/motion-primitives/particle-burst/scene.html +106 -0
  408. package/dist/assets/design/skills/music-to-video/references/motion-primitives/pixel-dissolve/index.html +53 -0
  409. package/dist/assets/design/skills/music-to-video/references/motion-primitives/pixel-dissolve/scene.html +86 -0
  410. package/dist/assets/design/skills/music-to-video/references/motion-primitives/radial-burst-lines/index.html +53 -0
  411. package/dist/assets/design/skills/music-to-video/references/motion-primitives/radial-burst-lines/scene.html +130 -0
  412. package/dist/assets/design/skills/music-to-video/references/motion-primitives/screen-shake/index.html +53 -0
  413. package/dist/assets/design/skills/music-to-video/references/motion-primitives/screen-shake/scene.html +78 -0
  414. package/dist/assets/design/skills/music-to-video/references/motion-primitives/slot-machine-reveal/index.html +53 -0
  415. package/dist/assets/design/skills/music-to-video/references/motion-primitives/slot-machine-reveal/scene.html +100 -0
  416. package/dist/assets/design/skills/music-to-video/references/motion-primitives/spotlight-sweep/index.html +53 -0
  417. package/dist/assets/design/skills/music-to-video/references/motion-primitives/spotlight-sweep/scene.html +102 -0
  418. package/dist/assets/design/skills/music-to-video/references/motion-primitives/staggered-exit/index.html +53 -0
  419. package/dist/assets/design/skills/music-to-video/references/motion-primitives/staggered-exit/scene.html +82 -0
  420. package/dist/assets/design/skills/music-to-video/references/motion-primitives/text-spectral-rays/USAGE.md +42 -0
  421. package/dist/assets/design/skills/music-to-video/references/motion-primitives/text-spectral-rays/index.html +53 -0
  422. package/dist/assets/design/skills/music-to-video/references/motion-primitives/text-spectral-rays/scene.html +280 -0
  423. package/dist/assets/design/skills/music-to-video/references/motion-primitives/text-wave-distort/index.html +54 -0
  424. package/dist/assets/design/skills/music-to-video/references/motion-primitives/text-wave-distort/scene.html +106 -0
  425. package/dist/assets/design/skills/music-to-video/references/motion-primitives/tile-mosaic/index.html +53 -0
  426. package/dist/assets/design/skills/music-to-video/references/motion-primitives/tile-mosaic/scene.html +109 -0
  427. package/dist/assets/design/skills/music-to-video/references/motion-primitives/typewriter-reveal/index.html +53 -0
  428. package/dist/assets/design/skills/music-to-video/references/motion-primitives/typewriter-reveal/scene.html +91 -0
  429. package/dist/assets/design/skills/music-to-video/references/motion-primitives/word-grid-burst/index.html +53 -0
  430. package/dist/assets/design/skills/music-to-video/references/motion-primitives/word-grid-burst/scene.html +96 -0
  431. package/dist/assets/design/skills/music-to-video/references/planning.md +104 -0
  432. package/dist/assets/design/skills/music-to-video/references/storyboard-format.md +94 -0
  433. package/dist/assets/design/skills/music-to-video/references/template-catalog.md +106 -0
  434. package/dist/assets/design/skills/music-to-video/references/templates/card-flyby/index.html +527 -0
  435. package/dist/assets/design/skills/music-to-video/references/templates/card-flyby/program.json +13 -0
  436. package/dist/assets/design/skills/music-to-video/references/templates/held-message-living-field/index.html +485 -0
  437. package/dist/assets/design/skills/music-to-video/references/templates/held-text-strobe-burst/index.html +302 -0
  438. package/dist/assets/design/skills/music-to-video/references/templates/intro-kinetic-cascade/index.html +610 -0
  439. package/dist/assets/design/skills/music-to-video/references/templates/intro-kinetic-cascade/program.json +41 -0
  440. package/dist/assets/design/skills/music-to-video/references/templates/logo-split-lockup-pulse/index.html +596 -0
  441. package/dist/assets/design/skills/music-to-video/references/templates/poster-tile-mosaic/index.html +589 -0
  442. package/dist/assets/design/skills/music-to-video/references/templates/poster-tile-mosaic/program.json +25 -0
  443. package/dist/assets/design/skills/music-to-video/references/templates/roll-flipbook-word-cycle/index.html +267 -0
  444. package/dist/assets/design/skills/music-to-video/references/templates/split-anchor-word-slot/index.html +594 -0
  445. package/dist/assets/design/skills/music-to-video/references/templates/split-anchor-word-slot/program.json +39 -0
  446. package/dist/assets/design/skills/music-to-video/references/templates/typewriter-phrase-keyword-shuffle/index.html +238 -0
  447. package/dist/assets/design/skills/music-to-video/sub-agents/frame-worker.md +49 -0
  448. package/dist/assets/design/skills/pr-to-video/SKILL.md +271 -0
  449. package/dist/assets/design/skills/pr-to-video/references/code-vocabulary.md +112 -0
  450. package/dist/assets/design/skills/pr-to-video/references/cut-catalog.md +215 -0
  451. package/dist/assets/design/skills/pr-to-video/references/motion-language.md +156 -0
  452. package/dist/assets/design/skills/pr-to-video/references/story-design.md +230 -0
  453. package/dist/assets/design/skills/pr-to-video/references/visual-design.md +164 -0
  454. package/dist/assets/design/skills/pr-to-video/sub-agents/frame-worker.md +38 -0
  455. package/dist/assets/design/skills/product-launch-video/SKILL.md +262 -0
  456. package/dist/assets/design/skills/product-launch-video/references/cut-catalog.md +220 -0
  457. package/dist/assets/design/skills/product-launch-video/references/motion-language.md +156 -0
  458. package/dist/assets/design/skills/product-launch-video/references/story-design.md +508 -0
  459. package/dist/assets/design/skills/product-launch-video/references/visual-design.md +126 -0
  460. package/dist/assets/design/skills/product-launch-video/sub-agents/frame-worker.md +21 -0
  461. package/dist/assets/design/skills/remotion-to-hyperframes/SKILL.md +130 -0
  462. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/README.md +41 -0
  463. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/expected.json +26 -0
  464. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/hf-src/compositions/title.html +31 -0
  465. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/hf-src/index.html +46 -0
  466. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/package.json +14 -0
  467. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/tsconfig.json +15 -0
  468. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/README.md +54 -0
  469. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/expected.json +29 -0
  470. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/compositions/scene-1.html +35 -0
  471. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/compositions/scene-2.html +35 -0
  472. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/compositions/scene-3.html +36 -0
  473. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/index.html +75 -0
  474. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/package.json +14 -0
  475. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/tsconfig.json +15 -0
  476. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/README.md +85 -0
  477. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/expected.json +41 -0
  478. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/compositions/scene-1.html +52 -0
  479. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/compositions/scene-2.html +99 -0
  480. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/compositions/scene-3.html +55 -0
  481. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/index.html +70 -0
  482. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/package.json +15 -0
  483. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/tsconfig.json +15 -0
  484. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/README.md +51 -0
  485. package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/expected.json +85 -0
  486. package/dist/assets/design/skills/remotion-to-hyperframes/references/api-map.md +142 -0
  487. package/dist/assets/design/skills/remotion-to-hyperframes/references/escape-hatch.md +115 -0
  488. package/dist/assets/design/skills/remotion-to-hyperframes/references/eval.md +140 -0
  489. package/dist/assets/design/skills/remotion-to-hyperframes/references/fonts.md +112 -0
  490. package/dist/assets/design/skills/remotion-to-hyperframes/references/limitations.md +136 -0
  491. package/dist/assets/design/skills/remotion-to-hyperframes/references/lottie.md +119 -0
  492. package/dist/assets/design/skills/remotion-to-hyperframes/references/media.md +149 -0
  493. package/dist/assets/design/skills/remotion-to-hyperframes/references/parameters.md +172 -0
  494. package/dist/assets/design/skills/remotion-to-hyperframes/references/sequencing.md +251 -0
  495. package/dist/assets/design/skills/remotion-to-hyperframes/references/timing.md +165 -0
  496. package/dist/assets/design/skills/remotion-to-hyperframes/references/transitions.md +113 -0
  497. package/dist/assets/design/skills/slideshow/SKILL.md +530 -0
  498. package/dist/assets/design/skills/slideshow/references/standalone-harness.md +1017 -0
  499. package/dist/assets/design/skills/talking-head-recut/NOTICE.md +39 -0
  500. package/dist/assets/design/skills/talking-head-recut/SKILL.md +1007 -0
  501. package/dist/assets/design/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
  502. package/dist/assets/design/skills/talking-head-recut/references/confirm-visual-direction-with-user-do-this-first.md +211 -0
  503. package/dist/assets/design/skills/talking-head-recut/references/frames/clean.html +92 -0
  504. package/dist/assets/design/skills/talking-head-recut/references/frames/hairline.html +171 -0
  505. package/dist/assets/design/skills/talking-head-recut/references/frames/polaroid.html +131 -0
  506. package/dist/assets/design/skills/talking-head-recut/references/layouts/overlay.html +164 -0
  507. package/dist/assets/design/skills/talking-head-recut/references/layouts/pip.html +143 -0
  508. package/dist/assets/design/skills/talking-head-recut/references/layouts/split.html +121 -0
  509. package/dist/assets/design/skills/talking-head-recut/references/layouts/stack.html +109 -0
  510. package/dist/assets/design/skills/talking-head-recut/references/styles/academic.html +172 -0
  511. package/dist/assets/design/skills/talking-head-recut/references/styles/audit.html +170 -0
  512. package/dist/assets/design/skills/talking-head-recut/references/styles/editorial.html +189 -0
  513. package/dist/assets/design/skills/talking-head-recut/references/styles/geom.html +181 -0
  514. package/dist/assets/design/skills/talking-head-recut/references/styles/minimal.html +130 -0
  515. package/dist/assets/design/skills/talking-head-recut/references/styles/spotlight.html +142 -0
  516. package/dist/assets/design/skills/talking-head-recut/references/styles/swiss.html +188 -0
  517. package/dist/assets/design/skills/talking-head-recut/references/styles/terminal.html +196 -0
  518. package/dist/assets/design/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
  519. package/dist/assets/design/skills/talking-head-recut/references/styles/xhs.html +206 -0
  520. package/dist/assets/design/taste/LICENSE +21 -0
  521. package/dist/assets/design/taste/PROVENANCE.md +70 -0
  522. package/dist/assets/design/taste/brandkit/SKILL.md +798 -0
  523. package/dist/assets/design/taste/brutalist-skill/SKILL.md +92 -0
  524. package/dist/assets/design/taste/gpt-tasteskill/SKILL.md +74 -0
  525. package/dist/assets/design/taste/image-to-code-skill/SKILL.md +1228 -0
  526. package/dist/assets/design/taste/imagegen-frontend-mobile/SKILL.md +1465 -0
  527. package/dist/assets/design/taste/imagegen-frontend-web/SKILL.md +987 -0
  528. package/dist/assets/design/taste/minimalist-skill/SKILL.md +85 -0
  529. package/dist/assets/design/taste/output-skill/SKILL.md +49 -0
  530. package/dist/assets/design/taste/redesign-skill/SKILL.md +178 -0
  531. package/dist/assets/design/taste/soft-skill/SKILL.md +98 -0
  532. package/dist/assets/design/taste/stitch-skill/DESIGN.md +121 -0
  533. package/dist/assets/design/taste/stitch-skill/SKILL.md +184 -0
  534. package/dist/assets/design/taste/taste-skill/SKILL.md +1043 -0
  535. package/dist/assets/design/taste/taste-skill/references/4-2-color-calibration.md +24 -0
  536. package/dist/assets/design/taste/taste-skill/references/4-7-layout-discipline-hard-rules-failing-any-of-.md +27 -0
  537. package/dist/assets/design/taste/taste-skill/references/4-8-image-visual-asset-strategy.md +35 -0
  538. package/dist/assets/design/taste/taste-skill/references/4-9-content-density.md +34 -0
  539. package/dist/assets/design/taste/taste-skill/references/9-f-production-test-tells-banned-outright.md +54 -0
  540. package/dist/assets/design/taste/taste-skill-v1/SKILL.md +226 -0
  541. package/dist/assets/engineering/skills-starter/engineering-ui-design/SKILL.md +84 -0
  542. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/SKILL.md +68 -459
  543. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/dispatch-and-review-rules.md +74 -0
  544. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/example-workflow.md +70 -0
  545. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/model-selection.md +40 -0
  546. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/process-diagrams.md +92 -0
  547. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/setup-and-ledger.md +75 -0
  548. package/dist/assets/uiux/LICENSE +21 -0
  549. package/dist/assets/uiux/PROVENANCE.md +110 -0
  550. package/dist/assets/uiux/data/app-interface.csv +33 -0
  551. package/dist/assets/uiux/data/charts.csv +26 -0
  552. package/dist/assets/uiux/data/colors.csv +193 -0
  553. package/dist/assets/uiux/data/icons.csv +106 -0
  554. package/dist/assets/uiux/data/landing.csv +35 -0
  555. package/dist/assets/uiux/data/motion.csv +18 -0
  556. package/dist/assets/uiux/data/products.csv +193 -0
  557. package/dist/assets/uiux/data/react-performance.csv +45 -0
  558. package/dist/assets/uiux/data/stacks/angular.csv +51 -0
  559. package/dist/assets/uiux/data/stacks/astro.csv +54 -0
  560. package/dist/assets/uiux/data/stacks/avalonia.csv +57 -0
  561. package/dist/assets/uiux/data/stacks/flutter.csv +53 -0
  562. package/dist/assets/uiux/data/stacks/html-tailwind.csv +60 -0
  563. package/dist/assets/uiux/data/stacks/javafx.csv +76 -0
  564. package/dist/assets/uiux/data/stacks/jetpack-compose.csv +53 -0
  565. package/dist/assets/uiux/data/stacks/laravel.csv +51 -0
  566. package/dist/assets/uiux/data/stacks/nextjs.csv +62 -0
  567. package/dist/assets/uiux/data/stacks/nuxt-ui.csv +77 -0
  568. package/dist/assets/uiux/data/stacks/nuxtjs.csv +68 -0
  569. package/dist/assets/uiux/data/stacks/react-native.csv +52 -0
  570. package/dist/assets/uiux/data/stacks/react.csv +67 -0
  571. package/dist/assets/uiux/data/stacks/shadcn.csv +69 -0
  572. package/dist/assets/uiux/data/stacks/svelte.csv +56 -0
  573. package/dist/assets/uiux/data/stacks/swiftui.csv +51 -0
  574. package/dist/assets/uiux/data/stacks/threejs.csv +54 -0
  575. package/dist/assets/uiux/data/stacks/uno.csv +60 -0
  576. package/dist/assets/uiux/data/stacks/uwp.csv +56 -0
  577. package/dist/assets/uiux/data/stacks/vue.csv +50 -0
  578. package/dist/assets/uiux/data/stacks/winui.csv +60 -0
  579. package/dist/assets/uiux/data/stacks/wpf.csv +57 -0
  580. package/dist/assets/uiux/data/styles.csv +89 -0
  581. package/dist/assets/uiux/data/typography.csv +75 -0
  582. package/dist/assets/uiux/data/ui-reasoning.csv +193 -0
  583. package/dist/assets/uiux/data/ux-guidelines.csv +120 -0
  584. package/dist/auto-review.js +38 -4
  585. package/dist/bootstrap.js +65061 -56810
  586. package/dist/client.cjs +4668 -3598
  587. package/dist/subagent-claude-code.js +493 -0
  588. package/dist/subagent-codex.js +1068 -0
  589. package/dist/tool-session-query.js +993 -0
  590. package/package.json +81 -74
  591. package/dist/agent-team.js +0 -16235
  592. package/dist/schedule.js +0 -15898
  593. package/dist/tool-agent-team.js +0 -16766
@@ -0,0 +1,1068 @@
1
+ // packages/subagent/subagent-codex/lib/index.js
2
+ import { createRequire } from "node:module";
3
+ import z from "@deepseek-ai/schemastery";
4
+
5
+ // packages/util/timeout/lib/index.js
6
+ var MAX_TIMER_DELAY_MS = 2147483647;
7
+
8
+ // packages/subagent/subagent-codex/lib/index.js
9
+ import { NO_START_CAPABILITIES, assertPositiveFinite, resolveChildCwd, settleRunResult, subprocessRunHandle } from "@deepseek-ai/dsh-subagent";
10
+ import { randomUUID as randomUUID2 } from "node:crypto";
11
+ import { readFileSync, writeFileSync } from "node:fs";
12
+ import { dirname, resolve } from "node:path";
13
+ import { brandString } from "@deepseek-ai/dsh-brand";
14
+
15
+ // packages/sdk/protocol/lib/index.js
16
+ import { randomUUID } from "node:crypto";
17
+ import { StringDecoder } from "node:string_decoder";
18
+ var JsonRpcResponseError = class extends Error {
19
+ code;
20
+ data;
21
+ /**
22
+ * @param code - the wire error code, or `undefined` when the peer sent none.
23
+ * @param message - the wire error message.
24
+ * @param data - the optional structured error payload, verbatim.
25
+ */
26
+ constructor(code, message, data) {
27
+ super(message);
28
+ this.code = code;
29
+ this.data = data;
30
+ this.name = "JsonRpcResponseError";
31
+ }
32
+ };
33
+ var JsonRpcLineTransport = class {
34
+ input;
35
+ output;
36
+ buffer = "";
37
+ decoder = new StringDecoder("utf8");
38
+ started = false;
39
+ requestHandler;
40
+ notificationHandler;
41
+ pending = /* @__PURE__ */ new Map();
42
+ constructor(input, output) {
43
+ this.input = input;
44
+ this.output = output;
45
+ }
46
+ /** Attach the input listeners and begin reading frames. Idempotent. */
47
+ start() {
48
+ if (this.started) return;
49
+ this.started = true;
50
+ this.input.on("data", this.onData);
51
+ this.input.on("error", this.onInputError);
52
+ this.input.on("end", this.onInputEnd);
53
+ }
54
+ /**
55
+ * Detach listeners and reject pending requests. Safe before {@link start}.
56
+ */
57
+ close() {
58
+ this.input.off("data", this.onData);
59
+ this.input.off("error", this.onInputError);
60
+ this.input.off("end", this.onInputEnd);
61
+ this.failPending(/* @__PURE__ */ new Error("JSON-RPC transport closed"));
62
+ }
63
+ /**
64
+ * Install the request handler, replacing any prior handler.
65
+ * @param handler - resolves to the response `result`; a rejection becomes a
66
+ * `-32603` error response carrying the message.
67
+ */
68
+ onRequest(handler) {
69
+ this.requestHandler = handler;
70
+ }
71
+ /**
72
+ * Install the notification handler, replacing any prior handler.
73
+ * @param handler - invoked per notification with the method and normalized
74
+ * params object.
75
+ */
76
+ onNotification(handler) {
77
+ this.notificationHandler = handler;
78
+ }
79
+ /**
80
+ * Send a request and await its response.
81
+ * @param method - the JSON-RPC method name.
82
+ * @param params - the request parameters object.
83
+ * @param signal - optional abandonment signal: aborting removes the pending
84
+ * entry (no state is retained for a response that may never come) and
85
+ * rejects with the signal's reason.
86
+ * @returns the result; rejects per {@link JsonRpcTransportPeer.request}.
87
+ */
88
+ request(method, params, signal) {
89
+ const id = `req_${randomUUID().replaceAll("-", "")}`;
90
+ const message = {
91
+ jsonrpc: "2.0",
92
+ id,
93
+ method,
94
+ params
95
+ };
96
+ return new Promise((resolve2, reject) => {
97
+ let detach = () => {
98
+ };
99
+ if (signal !== void 0) {
100
+ if (signal.aborted) {
101
+ reject(abortError(signal.reason));
102
+ return;
103
+ }
104
+ const onAbort = () => {
105
+ this.pending.delete(id);
106
+ reject(abortError(signal.reason));
107
+ };
108
+ signal.addEventListener("abort", onAbort, { once: true });
109
+ detach = () => {
110
+ signal.removeEventListener("abort", onAbort);
111
+ };
112
+ }
113
+ this.pending.set(id, {
114
+ resolve: (value) => {
115
+ detach();
116
+ resolve2(value);
117
+ },
118
+ reject: (error) => {
119
+ detach();
120
+ reject(error);
121
+ }
122
+ });
123
+ try {
124
+ this.write(message);
125
+ } catch (error) {
126
+ this.pending.delete(id);
127
+ detach();
128
+ reject(error instanceof Error ? error : new Error(String(error)));
129
+ }
130
+ });
131
+ }
132
+ notify(method, params) {
133
+ this.write(params === void 0 ? {
134
+ jsonrpc: "2.0",
135
+ method
136
+ } : {
137
+ jsonrpc: "2.0",
138
+ method,
139
+ params
140
+ });
141
+ }
142
+ /**
143
+ * Wait for prior frame write callbacks. The empty barrier emits no bytes.
144
+ * @returns a promise that settles with the output write callback.
145
+ */
146
+ flush() {
147
+ return new Promise((resolve2, reject) => {
148
+ this.output.write("", (error) => {
149
+ if (error) reject(error);
150
+ else resolve2();
151
+ });
152
+ });
153
+ }
154
+ onData = (chunk) => {
155
+ this.buffer += typeof chunk === "string" ? chunk : this.decoder.write(chunk);
156
+ this.drainLines();
157
+ };
158
+ drainLines() {
159
+ for (; ; ) {
160
+ const newline = this.buffer.indexOf("\n");
161
+ if (newline < 0) break;
162
+ const line = this.buffer.slice(0, newline).trim();
163
+ this.buffer = this.buffer.slice(newline + 1);
164
+ if (!line) continue;
165
+ this.handleLine(line);
166
+ }
167
+ }
168
+ onInputError = (error) => {
169
+ this.failPending(error);
170
+ };
171
+ onInputEnd = () => {
172
+ this.buffer += this.decoder.end();
173
+ this.drainLines();
174
+ this.failPending(/* @__PURE__ */ new Error("JSON-RPC input closed"));
175
+ };
176
+ async handleLine(line) {
177
+ let message;
178
+ try {
179
+ message = JSON.parse(line);
180
+ } catch {
181
+ return;
182
+ }
183
+ if (!message || typeof message !== "object") return;
184
+ const frame = message;
185
+ const id = frame.id;
186
+ const method = frame.method;
187
+ if ((typeof id === "string" || typeof id === "number") && typeof method === "string") {
188
+ await this.handleIncomingRequest(id, method, objectParams(frame.params));
189
+ return;
190
+ }
191
+ if (typeof id === "string" || typeof id === "number") {
192
+ this.handleIncomingResponse(id, frame);
193
+ return;
194
+ }
195
+ if (typeof method === "string") this.notificationHandler?.(method, objectParams(frame.params));
196
+ }
197
+ async handleIncomingRequest(id, method, params) {
198
+ const handler = this.requestHandler;
199
+ if (!handler) {
200
+ this.writeError(id, -32601, `method not found: ${method}`);
201
+ return;
202
+ }
203
+ try {
204
+ const result = await handler(method, params);
205
+ this.write({
206
+ jsonrpc: "2.0",
207
+ id,
208
+ result
209
+ });
210
+ } catch (error) {
211
+ this.writeError(id, -32603, error instanceof Error ? error.message : String(error));
212
+ }
213
+ }
214
+ handleIncomingResponse(id, frame) {
215
+ const pending = this.pending.get(id);
216
+ if (!pending) return;
217
+ this.pending.delete(id);
218
+ if (frame.error && typeof frame.error === "object") {
219
+ const error = frame.error;
220
+ pending.reject(new JsonRpcResponseError(typeof error.code === "number" ? error.code : void 0, typeof error.message === "string" ? error.message : "JSON-RPC error", error.data));
221
+ return;
222
+ }
223
+ pending.resolve(frame.result);
224
+ }
225
+ writeError(id, code, message) {
226
+ this.write({
227
+ jsonrpc: "2.0",
228
+ id,
229
+ error: {
230
+ code,
231
+ message
232
+ }
233
+ });
234
+ }
235
+ write(message) {
236
+ this.output.write(`${JSON.stringify(message)}
237
+ `);
238
+ }
239
+ failPending(error) {
240
+ const pending = [...this.pending.values()];
241
+ this.pending.clear();
242
+ for (const waiter of pending) waiter.reject(error);
243
+ }
244
+ };
245
+ function objectParams(params) {
246
+ return params && typeof params === "object" && !Array.isArray(params) ? params : {};
247
+ }
248
+ function abortError(reason) {
249
+ return reason instanceof Error ? reason : /* @__PURE__ */ new Error(`JSON-RPC request aborted: ${String(reason)}`);
250
+ }
251
+
252
+ // packages/subagent/subagent-codex/lib/index.js
253
+ var THREAD_PERMISSION_PARAMS = {
254
+ never: { approvalPolicy: "never" },
255
+ "approve-for-me": {
256
+ approvalPolicy: "on-request",
257
+ approvalsReviewer: "auto_review",
258
+ sandbox: "workspace-write"
259
+ },
260
+ "dangerously-bypass-approvals-and-sandbox": {
261
+ approvalPolicy: "never",
262
+ sandbox: "danger-full-access"
263
+ }
264
+ };
265
+ function object(value, label) {
266
+ if (value === null || typeof value !== "object" || Array.isArray(value)) throw new Error(`subagent-codex: app-server returned invalid ${label}`);
267
+ return value;
268
+ }
269
+ function string(value, label) {
270
+ if (typeof value !== "string" || value.length === 0) throw new Error(`subagent-codex: app-server returned invalid ${label}`);
271
+ return value;
272
+ }
273
+ function unattendedDecision(params) {
274
+ const available = params.availableDecisions;
275
+ if (available === void 0 || available === null) return "decline";
276
+ if (Array.isArray(available)) {
277
+ if (available.includes("cancel")) return "cancel";
278
+ if (available.includes("decline")) return "decline";
279
+ }
280
+ throw new Error("subagent-codex: app-server offered no unattended approval decision");
281
+ }
282
+ function numericHttpStatus(value) {
283
+ return typeof value === "number" && Number.isInteger(value) && value >= 0 && value <= 65535 ? value : void 0;
284
+ }
285
+ function objectFailureInfo(value) {
286
+ const keys = Object.keys(value);
287
+ const category = keys[0];
288
+ if (keys.length !== 1 || category === void 0) return { category: "unknown" };
289
+ const detail = value[category];
290
+ if (detail === null || typeof detail !== "object" || Array.isArray(detail)) return { category: "unknown" };
291
+ const fields = detail;
292
+ switch (category) {
293
+ case "httpConnectionFailed":
294
+ case "responseStreamConnectionFailed":
295
+ case "responseStreamDisconnected":
296
+ case "responseTooManyFailedAttempts": {
297
+ const httpStatus = numericHttpStatus(fields.httpStatusCode);
298
+ return httpStatus === void 0 ? { category: "transport" } : {
299
+ category: "transport",
300
+ httpStatus
301
+ };
302
+ }
303
+ case "activeTurnNotSteerable":
304
+ return { category: "product-error" };
305
+ default:
306
+ return { category: "unknown" };
307
+ }
308
+ }
309
+ function failureInfo(turn) {
310
+ if (turn.status !== "failed") return { category: "unknown" };
311
+ const error = turn.error;
312
+ if (error === null || typeof error !== "object" || Array.isArray(error)) return { category: "unknown" };
313
+ const info = error.codexErrorInfo;
314
+ if (typeof info === "string") switch (info) {
315
+ case "contextWindowExceeded":
316
+ return {
317
+ category: "limit",
318
+ maxTokens: true
319
+ };
320
+ case "sessionBudgetExceeded":
321
+ case "usageLimitExceeded":
322
+ return { category: "limit" };
323
+ case "serverOverloaded":
324
+ case "internalServerError":
325
+ return { category: "service" };
326
+ case "cyberPolicy":
327
+ case "misalignmentPolicyViolation":
328
+ case "unauthorized":
329
+ return { category: "access-policy" };
330
+ case "badRequest":
331
+ case "threadRollbackFailed":
332
+ case "other":
333
+ return { category: "product-error" };
334
+ case "sandboxError":
335
+ return {
336
+ category: "access-policy",
337
+ sandboxFailure: true
338
+ };
339
+ default:
340
+ return { category: "unknown" };
341
+ }
342
+ return info !== null && typeof info === "object" && !Array.isArray(info) ? objectFailureInfo(info) : { category: "unknown" };
343
+ }
344
+ function unattendedDiagnostic(mode, request, decision, reason) {
345
+ return `Codex unattended decision (mode: ${mode}; request: ${request}; decision: ${decision}): ${reason}`;
346
+ }
347
+ function thrown$1(value) {
348
+ return value instanceof Error ? value : new Error(String(value));
349
+ }
350
+ function abortError2(signal) {
351
+ return signal.reason instanceof Error ? signal.reason : /* @__PURE__ */ new Error(`subagent-codex: app-server request aborted: ${String(signal.reason)}`);
352
+ }
353
+ async function raceAbort(pending, signal) {
354
+ if (signal.aborted) {
355
+ pending.catch(() => {
356
+ });
357
+ throw abortError2(signal);
358
+ }
359
+ let rejectAbort;
360
+ const aborted = new Promise((_resolve, reject) => {
361
+ rejectAbort = reject;
362
+ });
363
+ const onAbort = () => {
364
+ rejectAbort(abortError2(signal));
365
+ };
366
+ signal.addEventListener("abort", onAbort, { once: true });
367
+ try {
368
+ return await Promise.race([pending, aborted]);
369
+ } finally {
370
+ signal.removeEventListener("abort", onAbort);
371
+ }
372
+ }
373
+ var CodexAppServerWire = class {
374
+ input;
375
+ permissionMode;
376
+ model;
377
+ transport;
378
+ fatal = Promise.withResolvers();
379
+ threadId;
380
+ turnId;
381
+ pendingTurnId;
382
+ turnCompleted;
383
+ earlyTurnNotifications = [];
384
+ lastFinalAnswer;
385
+ lastUnphasedAnswer;
386
+ diagnostic;
387
+ failure;
388
+ diagnosticOrder = 0;
389
+ observationOrder = 0;
390
+ pendingDiagnostic;
391
+ inputEnded = false;
392
+ terminalObserved = false;
393
+ closed = false;
394
+ constructor(input, output, permissionMode, model) {
395
+ this.input = input;
396
+ this.permissionMode = permissionMode;
397
+ this.model = model;
398
+ this.transport = new JsonRpcLineTransport(input, output);
399
+ this.fatal.promise.catch(() => {
400
+ });
401
+ this.transport.onRequest((method, params) => this.handleServerRequest(method, params));
402
+ this.transport.onNotification((method, params) => {
403
+ try {
404
+ this.handleNotification(method, params);
405
+ } catch (error) {
406
+ this.fail(thrown$1(error));
407
+ }
408
+ });
409
+ this.input.on("error", this.onInputError);
410
+ this.input.on("end", this.onInputEnd);
411
+ output.on("error", this.onOutputError);
412
+ }
413
+ /** Start reading app-server frames. */
414
+ start() {
415
+ this.transport.start();
416
+ }
417
+ /**
418
+ * Whether protocol output ended before a terminal turn notification.
419
+ * @returns `true` only for an early protocol close without a terminal turn.
420
+ */
421
+ endedBeforeTerminal() {
422
+ return this.inputEnded && !this.terminalObserved;
423
+ }
424
+ /**
425
+ * Perform the required app-server initialize/initialized handshake.
426
+ * @param signal - unpublished-start cancellation.
427
+ */
428
+ async initialize(signal) {
429
+ object(await this.guarded(this.transport.request("initialize", {
430
+ clientInfo: {
431
+ name: "deepseek-harness",
432
+ title: "DeepSeek Harness",
433
+ version: "0.0.1"
434
+ },
435
+ capabilities: {
436
+ experimentalApi: false,
437
+ requestAttestation: false
438
+ }
439
+ }, signal), signal), "initialize response");
440
+ this.transport.notify("initialized");
441
+ await this.guarded(this.transport.flush(), signal);
442
+ }
443
+ /**
444
+ * Create the run's private ephemeral thread and retain its identity.
445
+ * @param cwd - parent Session workspace.
446
+ * @param signal - unpublished-start cancellation.
447
+ */
448
+ async startThread(cwd, signal) {
449
+ const thread = object(object(await this.guarded(this.transport.request("thread/start", {
450
+ cwd,
451
+ ephemeral: true,
452
+ ...this.model === void 0 ? {} : { model: this.model },
453
+ ...THREAD_PERMISSION_PARAMS[this.permissionMode]
454
+ }, signal), signal), "thread/start response").thread, "thread/start thread");
455
+ const id = string(thread.id, "thread/start thread id");
456
+ if (thread.ephemeral !== true) throw new Error("subagent-codex: app-server did not create an ephemeral thread");
457
+ this.threadId = id;
458
+ }
459
+ /**
460
+ * Submit the one text-only task and wait for this thread/turn's authoritative
461
+ * terminal notification.
462
+ * @param texts - already validated task text blocks.
463
+ * @param signal - local cancellation for the published run.
464
+ * @returns the shared subagent result.
465
+ */
466
+ async runTurn(texts, signal) {
467
+ const completion = Promise.withResolvers();
468
+ this.turnCompleted = completion;
469
+ const threadId = this.threadId;
470
+ try {
471
+ const turn = object(object(await this.guarded(this.transport.request("turn/start", {
472
+ threadId,
473
+ input: texts.map((text) => ({
474
+ type: "text",
475
+ text,
476
+ text_elements: []
477
+ }))
478
+ }, signal), signal), "turn/start response").turn, "turn/start turn");
479
+ this.commitTurnId(string(turn.id, "turn/start turn id"));
480
+ } catch (error) {
481
+ this.recordFailure({
482
+ stage: "turn-start",
483
+ category: "unknown"
484
+ });
485
+ throw error;
486
+ }
487
+ let completed;
488
+ let terminal;
489
+ try {
490
+ completed = await this.guarded(completion.promise, signal);
491
+ terminal = object(completed.params.turn, "turn/completed turn");
492
+ } catch (error) {
493
+ this.recordFailure({
494
+ stage: "turn",
495
+ category: "unknown"
496
+ });
497
+ throw error;
498
+ }
499
+ const status = terminal.status;
500
+ if (status !== "completed") {
501
+ const parsed = failureInfo(terminal);
502
+ this.recordFailure(parsed.httpStatus === void 0 ? {
503
+ stage: "turn",
504
+ category: parsed.category
505
+ } : {
506
+ stage: "turn",
507
+ category: parsed.category,
508
+ httpStatus: parsed.httpStatus
509
+ });
510
+ if (parsed.sandboxFailure) this.recordDiagnostic("sandbox execution", "failed", "Codex reported a sandbox failure", completed.order);
511
+ if (parsed.maxTokens) return {
512
+ output: this.collectOutput(),
513
+ stopReason: "max-tokens"
514
+ };
515
+ const detail = status === "failed" ? `: ${parsed.category}` : "";
516
+ throw new Error(`subagent-codex: Codex turn ended with status ${String(status)}${detail}`);
517
+ }
518
+ const output = this.collectOutput();
519
+ if (output.length === 0) {
520
+ this.recordFailure({
521
+ stage: "turn",
522
+ category: "invalid-result"
523
+ });
524
+ throw new Error("subagent-codex: Codex completed without a final answer");
525
+ }
526
+ return {
527
+ output,
528
+ stopReason: "completed"
529
+ };
530
+ }
531
+ /**
532
+ * Best-effort remote cancellation. Local settlement and process teardown
533
+ * remain authoritative when the child no longer accepts protocol requests.
534
+ */
535
+ interrupt() {
536
+ if (this.threadId === void 0 || this.turnId === void 0 || this.closed) return;
537
+ this.transport.request("turn/interrupt", {
538
+ threadId: this.threadId,
539
+ turnId: this.turnId
540
+ }).catch(() => {
541
+ });
542
+ }
543
+ /**
544
+ * The best non-commentary answer observed so far, preserving exact bytes.
545
+ * @returns the selected final or nullable-phase text block, if any.
546
+ */
547
+ collectOutput() {
548
+ const selected = this.lastFinalAnswer ?? this.lastUnphasedAnswer;
549
+ return selected !== void 0 && selected.trim().length > 0 ? [{
550
+ type: "text",
551
+ text: selected
552
+ }] : [];
553
+ }
554
+ /**
555
+ * The latest safe unattended permission fact observed for this run.
556
+ * @returns provider-authored diagnostic text, when one was observed.
557
+ */
558
+ collectDiagnostic() {
559
+ return this.diagnostic;
560
+ }
561
+ /**
562
+ * The structured failure fact observed for this published turn.
563
+ * Call only after a non-completed return or rejection from {@link runTurn}.
564
+ * @returns the fixed stage/category pair and optional HTTP status.
565
+ */
566
+ collectFailure() {
567
+ return this.failure;
568
+ }
569
+ /** Detach JSON-RPC listeners and reject outstanding requests. Idempotent. */
570
+ close() {
571
+ if (this.closed) return;
572
+ this.closed = true;
573
+ this.input.off("end", this.onInputEnd);
574
+ this.transport.close();
575
+ }
576
+ async guarded(pending, signal) {
577
+ return raceAbort(Promise.race([this.fatal.promise, pending]), signal);
578
+ }
579
+ fail(error) {
580
+ this.fatal.reject(error);
581
+ }
582
+ onInputError = (error) => {
583
+ this.fail(error);
584
+ };
585
+ onOutputError = (error) => {
586
+ this.fail(error);
587
+ };
588
+ onInputEnd = () => {
589
+ this.inputEnded = true;
590
+ this.fail(/* @__PURE__ */ new Error("subagent-codex: app-server protocol stream closed"));
591
+ };
592
+ observePendingTurnId(id) {
593
+ if (this.turnCompleted === void 0) throw new Error("subagent-codex: app-server referenced a turn before turn/start");
594
+ if (this.pendingTurnId !== void 0 && this.pendingTurnId !== id) throw new Error("subagent-codex: app-server referenced conflicting turns");
595
+ this.pendingTurnId = id;
596
+ }
597
+ commitTurnId(id) {
598
+ if (this.pendingTurnId !== void 0 && this.pendingTurnId !== id) throw new Error("subagent-codex: turn/start response did not match the active turn");
599
+ this.turnId = id;
600
+ const pendingDiagnostic = this.pendingDiagnostic;
601
+ this.pendingDiagnostic = void 0;
602
+ if (pendingDiagnostic !== void 0) this.recordDiagnostic(pendingDiagnostic.request, pendingDiagnostic.decision, pendingDiagnostic.reason, pendingDiagnostic.order);
603
+ const notifications = this.earlyTurnNotifications.splice(0);
604
+ for (const notification of notifications) this.handleNotification(notification.method, notification.params, notification.order);
605
+ }
606
+ /**
607
+ * Validate the request's thread and turn association.
608
+ * @returns `true` when the matching turn is still provisional, so the caller
609
+ * defers its diagnostic until `commitTurnId()`.
610
+ */
611
+ validateRunIds(params, nullableTurn = false) {
612
+ if (params.threadId !== this.threadId) throw new Error("subagent-codex: app-server request referenced another thread");
613
+ if (nullableTurn && params.turnId === null) return false;
614
+ const id = string(params.turnId, "server request turn id");
615
+ if (this.turnId === void 0) {
616
+ this.observePendingTurnId(id);
617
+ return true;
618
+ }
619
+ if (id !== this.turnId) throw new Error("subagent-codex: app-server request referenced another turn");
620
+ return false;
621
+ }
622
+ recordRequestDiagnostic(provisional, request, decision, reason) {
623
+ const order = this.nextObservationOrder();
624
+ if (provisional) {
625
+ this.pendingDiagnostic = {
626
+ order,
627
+ request,
628
+ decision,
629
+ reason
630
+ };
631
+ return;
632
+ }
633
+ this.recordDiagnostic(request, decision, reason, order);
634
+ }
635
+ recordDiagnostic(request, decision, reason, order = this.nextObservationOrder()) {
636
+ if (order < this.diagnosticOrder) return;
637
+ this.diagnosticOrder = order;
638
+ this.diagnostic = unattendedDiagnostic(this.permissionMode, request, decision, reason);
639
+ }
640
+ recordFailure(facts) {
641
+ this.failure = facts;
642
+ }
643
+ nextObservationOrder() {
644
+ this.observationOrder += 1;
645
+ return this.observationOrder;
646
+ }
647
+ recordDeclinedItem(item, order) {
648
+ if (item.type === "commandExecution" && item.status === "declined") {
649
+ this.recordDiagnostic("command execution", "declined", "Codex declined the command under the selected permission mode", order);
650
+ return true;
651
+ }
652
+ if (item.type === "fileChange" && item.status === "declined") {
653
+ this.recordDiagnostic("file change", "declined", "Codex declined the file change under the selected permission mode", order);
654
+ return true;
655
+ }
656
+ return false;
657
+ }
658
+ handleServerRequest(method, params) {
659
+ try {
660
+ switch (method) {
661
+ case "item/commandExecution/requestApproval": {
662
+ const provisional = this.validateRunIds(params);
663
+ const decision = unattendedDecision(params);
664
+ this.recordRequestDiagnostic(provisional, "command approval", decision === "cancel" ? "cancelled" : "declined", "the provider does not grant interactive approval");
665
+ return Promise.resolve({ decision });
666
+ }
667
+ case "item/fileChange/requestApproval": {
668
+ const provisional = this.validateRunIds(params);
669
+ const decision = unattendedDecision(params);
670
+ this.recordRequestDiagnostic(provisional, "file approval", decision === "cancel" ? "cancelled" : "declined", "the provider does not grant interactive approval");
671
+ return Promise.resolve({ decision });
672
+ }
673
+ case "item/permissions/requestApproval":
674
+ this.recordRequestDiagnostic(this.validateRunIds(params), "permission grant", "denied", "the provider grants no additional turn permissions");
675
+ return Promise.resolve({
676
+ permissions: {},
677
+ scope: "turn"
678
+ });
679
+ case "item/tool/requestUserInput":
680
+ this.recordRequestDiagnostic(this.validateRunIds(params), "user input", "empty response", "the provider does not collect interactive answers");
681
+ return Promise.resolve({ answers: {} });
682
+ case "mcpServer/elicitation/request":
683
+ this.recordRequestDiagnostic(this.validateRunIds(params, true), "MCP elicitation", "declined", "the provider does not collect interactive MCP input");
684
+ return Promise.resolve({
685
+ action: "decline",
686
+ content: null,
687
+ _meta: null
688
+ });
689
+ default:
690
+ throw new Error(`subagent-codex: unsupported app-server request ${JSON.stringify(method)}`);
691
+ }
692
+ } catch (error) {
693
+ const normalized = thrown$1(error);
694
+ this.fail(normalized);
695
+ return Promise.reject(normalized);
696
+ }
697
+ }
698
+ handleNotification(method, params, order) {
699
+ if (method === "turn/started") {
700
+ if (string(params.threadId, "turn/started thread id") !== this.threadId) return;
701
+ const turn2 = object(params.turn, "turn/started turn");
702
+ if (this.turnCompleted !== void 0 && this.turnId === void 0) this.observePendingTurnId(string(turn2.id, "turn/started turn id"));
703
+ return;
704
+ }
705
+ if (method === "item/completed") {
706
+ if (string(params.threadId, "item/completed thread id") !== this.threadId) return;
707
+ const id2 = string(params.turnId, "item/completed turn id");
708
+ if (this.turnId === void 0) {
709
+ if (this.turnCompleted !== void 0) {
710
+ this.observePendingTurnId(id2);
711
+ this.earlyTurnNotifications.push({
712
+ method,
713
+ params,
714
+ order: this.nextObservationOrder()
715
+ });
716
+ }
717
+ return;
718
+ }
719
+ if (id2 !== this.turnId) return;
720
+ const item = object(params.item, "item/completed item");
721
+ if (this.recordDeclinedItem(item, order)) return;
722
+ if (item.type !== "agentMessage") return;
723
+ const text = typeof item.text === "string" ? item.text : (() => {
724
+ throw new Error("subagent-codex: app-server returned an invalid agent message");
725
+ })();
726
+ if (item.phase === "final_answer") this.lastFinalAnswer = text;
727
+ else if (item.phase === null) this.lastUnphasedAnswer = text;
728
+ else if (item.phase !== "commentary") throw new Error(`subagent-codex: app-server returned an unknown agent message phase ${JSON.stringify(item.phase)}`);
729
+ return;
730
+ }
731
+ if (method !== "turn/completed") return;
732
+ if (string(params.threadId, "turn/completed thread id") !== this.threadId) return;
733
+ const turn = object(params.turn, "turn/completed turn");
734
+ const id = string(turn.id, "turn/completed turn id");
735
+ const turnCompleted = this.turnCompleted;
736
+ if (turnCompleted === void 0) return;
737
+ if (this.turnId === void 0) {
738
+ this.observePendingTurnId(id);
739
+ this.earlyTurnNotifications.push({
740
+ method,
741
+ params,
742
+ order: this.nextObservationOrder()
743
+ });
744
+ return;
745
+ }
746
+ if (id !== this.turnId) return;
747
+ this.terminalObserved = true;
748
+ if (![
749
+ "completed",
750
+ "interrupted",
751
+ "failed"
752
+ ].includes(String(turn.status))) throw new Error(`subagent-codex: app-server returned invalid terminal turn status ${String(turn.status)}`);
753
+ turnCompleted.resolve({
754
+ params,
755
+ order: order ?? this.nextObservationOrder()
756
+ });
757
+ }
758
+ };
759
+ var DEFAULT_DISPOSE_GRACE_MS = 3e3;
760
+ var codexPackageJsonPath = createRequire(import.meta.url).resolve("@openai/codex/package.json");
761
+ var codexPackageManifest = JSON.parse(readFileSync(codexPackageJsonPath, "utf8"));
762
+ var CODEX_PACKAGE_BIN = resolve(dirname(codexPackageJsonPath), codexPackageManifest.bin.codex);
763
+ var CODEX_PERMISSION_MODES = [
764
+ "never",
765
+ "approve-for-me",
766
+ "dangerously-bypass-approvals-and-sandbox"
767
+ ];
768
+ var DEFAULT_CODEX_PERMISSION_MODE = "never";
769
+ function failureDiagnostic(facts) {
770
+ const fields = [
771
+ "product: Codex",
772
+ `stage: ${facts.stage}`,
773
+ `category: ${facts.category}`
774
+ ];
775
+ if (facts.httpStatus !== void 0) fields.push(`HTTP status: ${facts.httpStatus}`);
776
+ const processFields = [["exit code", facts.outcome?.exitCode], ["signal", facts.outcome?.signal]];
777
+ for (const [label, value] of processFields) if (value !== null && value !== void 0) fields.push(`${label}: ${value}`);
778
+ return `Product subagent failure (${fields.join("; ")})`;
779
+ }
780
+ var CodexRunFailure = class extends Error {
781
+ facts;
782
+ constructor(facts, cause) {
783
+ super(`subagent-codex: ${failureDiagnostic(facts)}`, cause === void 0 ? void 0 : { cause });
784
+ this.facts = facts;
785
+ this.name = "CodexRunFailure";
786
+ }
787
+ };
788
+ function codexStartupFailure(cause) {
789
+ return new CodexRunFailure({
790
+ stage: "initialize",
791
+ category: "unknown"
792
+ }, cause);
793
+ }
794
+ function codexAppServerArgv() {
795
+ return [
796
+ process.execPath,
797
+ CODEX_PACKAGE_BIN,
798
+ "app-server",
799
+ "--stdio"
800
+ ];
801
+ }
802
+ function thrown(value) {
803
+ return value instanceof Error ? value : new Error(String(value));
804
+ }
805
+ function textTask(prompt) {
806
+ if (prompt.length === 0) throw new Error("subagent-codex: the one-shot task must contain only text blocks");
807
+ const texts = [];
808
+ for (const block of prompt) {
809
+ if (block.type !== "text") throw new Error("subagent-codex: the one-shot task must contain only text blocks");
810
+ texts.push(block.text);
811
+ }
812
+ if (texts.every((text) => text.trim().length === 0)) throw new Error("subagent-codex: the one-shot task must not be empty");
813
+ return texts;
814
+ }
815
+ async function disposeCodexChild(wire, child) {
816
+ wire.close();
817
+ let outcome;
818
+ child.done.then((value) => {
819
+ outcome = value;
820
+ }, () => {
821
+ });
822
+ try {
823
+ child.stdin?.end();
824
+ } catch {
825
+ }
826
+ child.terminate();
827
+ try {
828
+ await child.waitForExit();
829
+ } catch (error) {
830
+ throw new CodexRunFailure({
831
+ stage: "teardown",
832
+ category: "unknown",
833
+ outcome
834
+ }, thrown(error));
835
+ }
836
+ await child.done.catch(() => {
837
+ });
838
+ }
839
+ async function startCodexRun(request, spec) {
840
+ const texts = textTask(request.prompt);
841
+ if (request.signal.aborted) throw new Error("subagent-codex: request was aborted before app-server startup");
842
+ let child;
843
+ try {
844
+ child = spec.spawn({
845
+ argv: codexAppServerArgv(),
846
+ cwd: spec.cwd,
847
+ stdio: {
848
+ stdin: "pipe",
849
+ stdout: "pipe",
850
+ stderr: "pipe"
851
+ },
852
+ graceMs: spec.disposeGraceMs,
853
+ env: spec.env
854
+ });
855
+ } catch (error) {
856
+ throw new CodexRunFailure({
857
+ stage: "initialize",
858
+ category: "unknown"
859
+ }, thrown(error));
860
+ }
861
+ const wire = new CodexAppServerWire(child.stdout, child.stdin, spec.permissionMode, spec.model);
862
+ const onStderr = (chunk) => {
863
+ const bytes = typeof chunk === "string" ? Buffer.from(chunk) : chunk;
864
+ try {
865
+ writeFileSync(process.stderr.fd, bytes);
866
+ } catch {
867
+ }
868
+ };
869
+ const onStderrError = () => {
870
+ };
871
+ child.stderr?.on("data", onStderr);
872
+ child.stderr?.on("error", onStderrError);
873
+ const disposeProcess = async () => {
874
+ try {
875
+ await disposeCodexChild(wire, child);
876
+ await new Promise((resolve2) => {
877
+ setImmediate(resolve2);
878
+ });
879
+ } finally {
880
+ child.stderr?.off("data", onStderr);
881
+ child.stderr?.off("error", onStderrError);
882
+ }
883
+ };
884
+ let processFailureFacts;
885
+ const processFailure = child.done.then((outcome) => {
886
+ processFailureFacts = {
887
+ stage: "process",
888
+ category: "process",
889
+ outcome
890
+ };
891
+ throw new CodexRunFailure(processFailureFacts);
892
+ }, (error) => {
893
+ processFailureFacts = {
894
+ stage: "process",
895
+ category: "unknown"
896
+ };
897
+ throw new CodexRunFailure(processFailureFacts, thrown(error));
898
+ });
899
+ processFailure.catch(() => {
900
+ });
901
+ const runAbort = new AbortController();
902
+ const requestCancel = () => {
903
+ if (runAbort.signal.aborted) return;
904
+ runAbort.abort(/* @__PURE__ */ new Error("subagent-codex: run cancelled locally"));
905
+ wire.interrupt();
906
+ };
907
+ const onAbort = () => {
908
+ requestCancel();
909
+ };
910
+ request.signal.addEventListener("abort", onAbort, { once: true });
911
+ let startupStage = "initialize";
912
+ try {
913
+ wire.start();
914
+ await Promise.race([wire.initialize(request.signal), processFailure]);
915
+ startupStage = "thread-start";
916
+ await Promise.race([wire.startThread(spec.cwd, request.signal), processFailure]);
917
+ } catch (error) {
918
+ request.signal.removeEventListener("abort", onAbort);
919
+ const cancelledBeforeCleanup = runAbort.signal.aborted;
920
+ if (!(error instanceof CodexRunFailure) && !cancelledBeforeCleanup) await new Promise((resolve2) => {
921
+ setImmediate(resolve2);
922
+ });
923
+ const failure = new CodexRunFailure({
924
+ stage: startupStage,
925
+ category: "unknown",
926
+ outcome: error instanceof CodexRunFailure ? error.facts.outcome : processFailureFacts?.outcome
927
+ }, thrown(error));
928
+ try {
929
+ await disposeProcess();
930
+ } catch (disposeError) {
931
+ const cleanupFailure = thrown(disposeError);
932
+ throw new AggregateError([failure, cleanupFailure], `${failure.message}; ${cleanupFailure.message}`);
933
+ }
934
+ if (cancelledBeforeCleanup) throw new Error("subagent-codex: request was aborted before run publication");
935
+ try {
936
+ request.signal.throwIfAborted();
937
+ } catch {
938
+ throw new Error("subagent-codex: request was aborted before run publication");
939
+ }
940
+ throw failure;
941
+ }
942
+ const collectOutput = () => wire.collectOutput();
943
+ let diagnostic;
944
+ const recordFailureDiagnostic = (facts) => {
945
+ const failure = failureDiagnostic(facts);
946
+ const permission = wire.collectDiagnostic();
947
+ diagnostic = permission === void 0 ? failure : `${failure}
948
+ ${permission}`;
949
+ return diagnostic;
950
+ };
951
+ const withProcessOutcome = (facts) => {
952
+ const outcome = processFailureFacts?.outcome;
953
+ return outcome === void 0 ? facts : {
954
+ ...facts,
955
+ outcome
956
+ };
957
+ };
958
+ const publishedProcessFailure = processFailure.catch(async (error) => {
959
+ await new Promise((resolve2) => {
960
+ setImmediate(resolve2);
961
+ });
962
+ throw error;
963
+ });
964
+ const result = settleRunResult({
965
+ attempt: async () => {
966
+ try {
967
+ const terminal = await Promise.race([wire.runTurn(texts, runAbort.signal), publishedProcessFailure]);
968
+ if (terminal.stopReason === "completed") return terminal;
969
+ await new Promise((resolve2) => {
970
+ setImmediate(resolve2);
971
+ });
972
+ const facts = withProcessOutcome(wire.collectFailure());
973
+ return {
974
+ ...terminal,
975
+ diagnostic: recordFailureDiagnostic(facts)
976
+ };
977
+ } catch (error) {
978
+ await new Promise((resolve2) => {
979
+ setImmediate(resolve2);
980
+ });
981
+ const endedBeforeTerminal = wire.endedBeforeTerminal();
982
+ if (endedBeforeTerminal && processFailureFacts === void 0 && !runAbort.signal.aborted) try {
983
+ if (await child.waitForExit(AbortSignal.timeout(Math.ceil(spec.disposeGraceMs)))) await child.done;
984
+ } catch {
985
+ }
986
+ const facts = error instanceof CodexRunFailure ? error.facts : endedBeforeTerminal && processFailureFacts !== void 0 ? processFailureFacts : withProcessOutcome(wire.collectFailure());
987
+ recordFailureDiagnostic(facts);
988
+ throw error instanceof CodexRunFailure ? error : new CodexRunFailure(facts, thrown(error));
989
+ }
990
+ },
991
+ collectOutput,
992
+ collectDiagnostic: () => diagnostic,
993
+ cancelled: () => runAbort.signal.aborted,
994
+ onError: spec.onError,
995
+ signal: request.signal,
996
+ onAbort
997
+ });
998
+ return subprocessRunHandle({
999
+ id: brandString(randomUUID2()),
1000
+ result,
1001
+ signal: request.signal,
1002
+ onAbort,
1003
+ requestCancel,
1004
+ teardown: disposeProcess
1005
+ });
1006
+ }
1007
+ var name = "subagent-codex";
1008
+ var inject = ["subagents", "subprocess"];
1009
+ var DEFAULT_PROVIDER_NAME = "codex";
1010
+ var Config = z.object({
1011
+ providerName: z.string().min(1).default(DEFAULT_PROVIDER_NAME),
1012
+ model: z.string().min(1),
1013
+ env: z.dict(z.string()).default({}),
1014
+ permissionMode: z.union([...CODEX_PERMISSION_MODES]).default(DEFAULT_CODEX_PERMISSION_MODE),
1015
+ disposeGraceMs: z.number().default(DEFAULT_DISPOSE_GRACE_MS)
1016
+ });
1017
+ var CodexProvider = class {
1018
+ name;
1019
+ ctx;
1020
+ config;
1021
+ capabilities = NO_START_CAPABILITIES;
1022
+ inheritsParentContext = false;
1023
+ constructor(name2, ctx, config) {
1024
+ this.name = name2;
1025
+ this.ctx = ctx;
1026
+ this.config = config;
1027
+ }
1028
+ start(request) {
1029
+ const parentCwd = request.parent.session.header.cwd;
1030
+ if (parentCwd === void 0) throw new Error("subagent-codex: no working directory for the child \u2014 delegate from a parent session that has one");
1031
+ let cwd;
1032
+ try {
1033
+ cwd = resolveChildCwd("subagent-codex", void 0, parentCwd);
1034
+ } catch (error) {
1035
+ if (request.signal.aborted) throw new Error("subagent-codex: request was aborted before app-server startup");
1036
+ throw codexStartupFailure(error);
1037
+ }
1038
+ return startCodexRun(request, {
1039
+ cwd,
1040
+ ...this.config.model === void 0 ? {} : { model: this.config.model },
1041
+ permissionMode: this.config.permissionMode,
1042
+ env: this.config.env,
1043
+ disposeGraceMs: this.config.disposeGraceMs,
1044
+ spawn: (spawnSpec) => this.ctx.subprocess.spawn(spawnSpec),
1045
+ onError: (error, stopReason) => {
1046
+ this.ctx.logger.warn(`subagent-codex "${this.name}": child run failed (${stopReason}): ${error.message}`);
1047
+ }
1048
+ });
1049
+ }
1050
+ };
1051
+ function apply(ctx, config) {
1052
+ const resolved = {
1053
+ providerName: config.providerName ?? DEFAULT_PROVIDER_NAME,
1054
+ ...config.model === void 0 ? {} : { model: config.model },
1055
+ env: config.env,
1056
+ permissionMode: config.permissionMode ?? "never",
1057
+ disposeGraceMs: config.disposeGraceMs
1058
+ };
1059
+ assertPositiveFinite("subagent-codex", "disposeGraceMs", resolved.disposeGraceMs);
1060
+ if (resolved.disposeGraceMs > MAX_TIMER_DELAY_MS) throw new Error(`subagent-codex: disposeGraceMs must be no greater than ${MAX_TIMER_DELAY_MS}`);
1061
+ ctx.subagents.registerProvider(new CodexProvider(resolved.providerName, ctx, resolved));
1062
+ }
1063
+ export {
1064
+ Config,
1065
+ apply,
1066
+ inject,
1067
+ name
1068
+ };