howone 0.1.29 → 0.1.31

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 (243) hide show
  1. package/package.json +1 -1
  2. package/templates/vite/.howone/skills/hallmark/SKILL.md +48 -42
  3. package/templates/vite/.howone/skills/hallmark/references/anti-patterns.md +12 -6
  4. package/templates/vite/.howone/skills/hallmark/references/assets.md +7 -0
  5. package/templates/vite/.howone/skills/hallmark/references/component-cookbook.md +19 -10
  6. package/templates/vite/.howone/skills/hallmark/references/components/f2-sticky-scroll-stack.md +1 -1
  7. package/templates/vite/.howone/skills/hallmark/references/components/ft6-letter-close.md +1 -1
  8. package/templates/vite/.howone/skills/hallmark/references/components/h7-demo-video-clipped-by-viewport-edge.md +1 -1
  9. package/templates/vite/.howone/skills/hallmark/references/components/h9-custom-illustration-centerpiece.md +1 -1
  10. package/templates/vite/.howone/skills/hallmark/references/components/n10-floating-on-scroll-morph.md +1 -1
  11. package/templates/vite/.howone/skills/hallmark/references/components/n11-mega-menu.md +40 -0
  12. package/templates/vite/.howone/skills/hallmark/references/components/n12-banner-retract.md +34 -0
  13. package/templates/vite/.howone/skills/hallmark/references/components/n13-inline-cmdk-pill.md +39 -0
  14. package/templates/vite/.howone/skills/hallmark/references/components/n1b-saas-three-section.md +35 -0
  15. package/templates/vite/.howone/skills/hallmark/references/components/n9-edge-aligned-minimal.md +1 -1
  16. package/templates/vite/.howone/skills/hallmark/references/components/s3-sticky-pinned.md +2 -2
  17. package/templates/vite/.howone/skills/hallmark/references/copy.md +8 -8
  18. package/templates/vite/.howone/skills/hallmark/references/custom-craft.md +2 -2
  19. package/templates/vite/.howone/skills/hallmark/references/custom-theme.md +50 -12
  20. package/templates/vite/.howone/skills/hallmark/references/export-formats.md +1 -1
  21. package/templates/vite/.howone/skills/hallmark/references/genres/atmospheric.md +11 -7
  22. package/templates/vite/.howone/skills/hallmark/references/genres/editorial.md +6 -4
  23. package/templates/vite/.howone/skills/hallmark/references/genres/modern-minimal.md +10 -6
  24. package/templates/vite/.howone/skills/hallmark/references/genres/playful.md +15 -10
  25. package/templates/vite/.howone/skills/hallmark/references/hero-enrichment.md +13 -12
  26. package/templates/vite/.howone/skills/hallmark/references/interaction-and-states.md +2 -1
  27. package/templates/vite/.howone/skills/hallmark/references/layout-and-space.md +4 -3
  28. package/templates/vite/.howone/skills/hallmark/references/macrostructures/04-stat-led.md +3 -1
  29. package/templates/vite/.howone/skills/hallmark/references/macrostructures/12-letter.md +1 -1
  30. package/templates/vite/.howone/skills/hallmark/references/macrostructures.md +1 -1
  31. package/templates/vite/.howone/skills/hallmark/references/microinteractions.md +1 -3
  32. package/templates/vite/.howone/skills/hallmark/references/preview-examples.md +12 -12
  33. package/templates/vite/.howone/skills/hallmark/references/responsive.md +8 -8
  34. package/templates/vite/.howone/skills/hallmark/references/slop-test.md +72 -85
  35. package/templates/vite/.howone/skills/hallmark/references/structure.md +9 -13
  36. package/templates/vite/.howone/skills/hallmark/references/study.md +40 -17
  37. package/templates/vite/.howone/skills/hallmark/references/themes/carnival.md +301 -0
  38. package/templates/vite/.howone/skills/hallmark/references/themes/cobalt.md +146 -0
  39. package/templates/vite/.howone/skills/hallmark/references/themes/hum.md +403 -0
  40. package/templates/vite/.howone/skills/hallmark/references/themes/lumen.md +478 -0
  41. package/templates/vite/.howone/skills/hallmark/references/typography.md +3 -3
  42. package/templates/vite/.howone/skills/hallmark/references/verbs/redesign.md +1 -1
  43. package/templates/vite/.howone/skills/howone/01-architect/01-app-generation.md +132 -176
  44. package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/01-schema-design.md +3 -1
  45. package/templates/vite/.howone/skills/howone/{04-ai → 03-ai-capabilities}/01-ai-capability-architecture.md +6 -5
  46. package/templates/vite/.howone/skills/howone/{04-ai/04-service-capability-catalog.md → 03-ai-capabilities/03-service-capability-catalog.md} +15 -11
  47. package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/01-client-setup.md +6 -4
  48. package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/07-ai-action-calls.md +3 -3
  49. package/templates/vite/.howone/skills/howone/{04-ai/03-ai-sdk-handoff.md → 04-app-sdk/08-ai-manifest-handoff.md} +2 -2
  50. package/templates/vite/.howone/skills/howone/SKILL.md +98 -131
  51. package/templates/vite/.howone/skills/howone/agents/openai.yaml +3 -3
  52. package/templates/vite/AGENTS.md +2 -2
  53. package/templates/vite/.howone/skills/hallmark/LICENSE +0 -21
  54. package/templates/vite/.howone/skills/hallmark/README.md +0 -147
  55. package/templates/vite/.howone/skills/hallmark/ROADMAP.md +0 -201
  56. package/templates/vite/.howone/skills/hallmark/docs/recipes.md +0 -186
  57. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-anya.jpg +0 -0
  58. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-bananastudio.jpg +0 -0
  59. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-hyperlane.jpg +0 -0
  60. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-najm.jpg +0 -0
  61. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-slow-pour.jpg +0 -0
  62. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-soroe.jpg +0 -0
  63. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-tally.jpg +0 -0
  64. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-wayfare.jpg +0 -0
  65. package/templates/vite/.howone/skills/hallmark/docs/study-examples.md +0 -176
  66. package/templates/vite/.howone/skills/hallmark/docs/talk-slides.md +0 -364
  67. package/templates/vite/.howone/skills/hallmark/package.json +0 -36
  68. package/templates/vite/.howone/skills/hallmark/site/OG-hallmark.png +0 -0
  69. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/brief.md +0 -71
  70. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/index.html +0 -64
  71. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/style.css +0 -240
  72. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/brief.md +0 -65
  73. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/index.html +0 -105
  74. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/style.css +0 -250
  75. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/brief.md +0 -64
  76. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/index.html +0 -131
  77. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/style.css +0 -240
  78. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/brief.md +0 -67
  79. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/index.html +0 -86
  80. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/style.css +0 -262
  81. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/brief.md +0 -63
  82. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/index.html +0 -167
  83. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/style.css +0 -457
  84. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/brief.md +0 -65
  85. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/index.html +0 -159
  86. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/style.css +0 -288
  87. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/brief.md +0 -64
  88. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/index.html +0 -146
  89. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/style.css +0 -484
  90. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/brief.md +0 -64
  91. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/index.html +0 -116
  92. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/style.css +0 -354
  93. package/templates/vite/.howone/skills/hallmark/site/_tests/09-slow-pour/index.html +0 -638
  94. package/templates/vite/.howone/skills/hallmark/site/_tests/10-owl-hours/index.html +0 -515
  95. package/templates/vite/.howone/skills/hallmark/site/_tests/11-soroe-ceramics/index.html +0 -515
  96. package/templates/vite/.howone/skills/hallmark/site/_tests/12-loafer/index.html +0 -608
  97. package/templates/vite/.howone/skills/hallmark/site/_tests/13-alma/index.html +0 -587
  98. package/templates/vite/.howone/skills/hallmark/site/_tests/README.md +0 -157
  99. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-loop.mp4 +0 -0
  100. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-still.jpg +0 -0
  101. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-example.mp4 +0 -0
  102. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-still.jpg +0 -0
  103. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-loop.mp4 +0 -0
  104. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-still.jpg +0 -0
  105. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Podcast-loop.mp4 +0 -0
  106. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-loop.mp4 +0 -0
  107. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-still.jpg +0 -0
  108. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-loop.mp4 +0 -0
  109. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-still.jpg +0 -0
  110. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/after-quiet-hour.png +0 -0
  111. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-loop.mp4 +0 -0
  112. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-still.jpg +0 -0
  113. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/audit-example.png +0 -0
  114. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/before-quiet-hour.png +0 -0
  115. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/example-redesign-uractivation.png +0 -0
  116. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-loop.mp4 +0 -0
  117. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-still.jpg +0 -0
  118. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/study-example.png +0 -0
  119. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/uractivation-after-loop.mp4 +0 -0
  120. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-loop.mp4 +0 -0
  121. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-still.jpg +0 -0
  122. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/index.html +0 -77
  123. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/style.css +0 -238
  124. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/index.html +0 -110
  125. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/style.css +0 -326
  126. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/index.html +0 -134
  127. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/style.css +0 -262
  128. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/README.md +0 -30
  129. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/README.md +0 -17
  130. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/audit-report.md +0 -56
  131. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/input.html +0 -160
  132. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/notes.md +0 -29
  133. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/input.html +0 -63
  134. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/notes.md +0 -72
  135. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/output.html +0 -374
  136. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/diagnosis.md +0 -52
  137. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/input-description.md +0 -29
  138. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/notes.md +0 -61
  139. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.css +0 -193
  140. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.html +0 -66
  141. package/templates/vite/.howone/skills/hallmark/site/css/base.css +0 -194
  142. package/templates/vite/.howone/skills/hallmark/site/css/components.css +0 -4886
  143. package/templates/vite/.howone/skills/hallmark/site/css/sections.css +0 -2072
  144. package/templates/vite/.howone/skills/hallmark/site/css/tokens.css +0 -1129
  145. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/index.html +0 -475
  146. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/styles.css +0 -1584
  147. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/tokens.css +0 -96
  148. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/index.html +0 -344
  149. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/script.js +0 -103
  150. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/styles.css +0 -1103
  151. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/tokens.css +0 -83
  152. package/templates/vite/.howone/skills/hallmark/site/examples/najm/index.html +0 -368
  153. package/templates/vite/.howone/skills/hallmark/site/examples/najm/script.js +0 -133
  154. package/templates/vite/.howone/skills/hallmark/site/examples/najm/styles.css +0 -1062
  155. package/templates/vite/.howone/skills/hallmark/site/examples/najm/tokens.css +0 -97
  156. package/templates/vite/.howone/skills/hallmark/site/examples/tally/app.js +0 -84
  157. package/templates/vite/.howone/skills/hallmark/site/examples/tally/index.html +0 -446
  158. package/templates/vite/.howone/skills/hallmark/site/examples/tally/styles.css +0 -1087
  159. package/templates/vite/.howone/skills/hallmark/site/examples/tally/tokens.css +0 -101
  160. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/index.html +0 -359
  161. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/style.css +0 -1168
  162. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/tokens.css +0 -81
  163. package/templates/vite/.howone/skills/hallmark/site/favicon-dark.svg +0 -5
  164. package/templates/vite/.howone/skills/hallmark/site/favicon-light.svg +0 -5
  165. package/templates/vite/.howone/skills/hallmark/site/index.html +0 -1043
  166. package/templates/vite/.howone/skills/hallmark/site/js/main.js +0 -1175
  167. package/templates/vite/.howone/skills/hallmark/vercel.json +0 -6
  168. package/templates/vite/.howone/skills/impeccable/SKILL.md +0 -168
  169. package/templates/vite/.howone/skills/impeccable/agents/impeccable-asset-producer.md +0 -101
  170. package/templates/vite/.howone/skills/impeccable/reference/adapt.md +0 -190
  171. package/templates/vite/.howone/skills/impeccable/reference/animate.md +0 -175
  172. package/templates/vite/.howone/skills/impeccable/reference/audit.md +0 -133
  173. package/templates/vite/.howone/skills/impeccable/reference/bolder.md +0 -113
  174. package/templates/vite/.howone/skills/impeccable/reference/brand.md +0 -118
  175. package/templates/vite/.howone/skills/impeccable/reference/clarify.md +0 -174
  176. package/templates/vite/.howone/skills/impeccable/reference/codex.md +0 -105
  177. package/templates/vite/.howone/skills/impeccable/reference/cognitive-load.md +0 -106
  178. package/templates/vite/.howone/skills/impeccable/reference/color-and-contrast.md +0 -105
  179. package/templates/vite/.howone/skills/impeccable/reference/colorize.md +0 -154
  180. package/templates/vite/.howone/skills/impeccable/reference/craft.md +0 -123
  181. package/templates/vite/.howone/skills/impeccable/reference/critique.md +0 -273
  182. package/templates/vite/.howone/skills/impeccable/reference/delight.md +0 -302
  183. package/templates/vite/.howone/skills/impeccable/reference/distill.md +0 -111
  184. package/templates/vite/.howone/skills/impeccable/reference/document.md +0 -427
  185. package/templates/vite/.howone/skills/impeccable/reference/extract.md +0 -69
  186. package/templates/vite/.howone/skills/impeccable/reference/harden.md +0 -347
  187. package/templates/vite/.howone/skills/impeccable/reference/heuristics-scoring.md +0 -234
  188. package/templates/vite/.howone/skills/impeccable/reference/interaction-design.md +0 -195
  189. package/templates/vite/.howone/skills/impeccable/reference/layout.md +0 -141
  190. package/templates/vite/.howone/skills/impeccable/reference/live.md +0 -622
  191. package/templates/vite/.howone/skills/impeccable/reference/motion-design.md +0 -109
  192. package/templates/vite/.howone/skills/impeccable/reference/onboard.md +0 -234
  193. package/templates/vite/.howone/skills/impeccable/reference/optimize.md +0 -258
  194. package/templates/vite/.howone/skills/impeccable/reference/overdrive.md +0 -130
  195. package/templates/vite/.howone/skills/impeccable/reference/personas.md +0 -179
  196. package/templates/vite/.howone/skills/impeccable/reference/polish.md +0 -242
  197. package/templates/vite/.howone/skills/impeccable/reference/product.md +0 -62
  198. package/templates/vite/.howone/skills/impeccable/reference/quieter.md +0 -99
  199. package/templates/vite/.howone/skills/impeccable/reference/responsive-design.md +0 -114
  200. package/templates/vite/.howone/skills/impeccable/reference/shape.md +0 -165
  201. package/templates/vite/.howone/skills/impeccable/reference/spatial-design.md +0 -100
  202. package/templates/vite/.howone/skills/impeccable/reference/teach.md +0 -156
  203. package/templates/vite/.howone/skills/impeccable/reference/typeset.md +0 -124
  204. package/templates/vite/.howone/skills/impeccable/reference/typography.md +0 -159
  205. package/templates/vite/.howone/skills/impeccable/reference/ux-writing.md +0 -107
  206. package/templates/vite/.howone/skills/impeccable/scripts/cleanup-deprecated.mjs +0 -284
  207. package/templates/vite/.howone/skills/impeccable/scripts/command-metadata.json +0 -94
  208. package/templates/vite/.howone/skills/impeccable/scripts/critique-storage.mjs +0 -242
  209. package/templates/vite/.howone/skills/impeccable/scripts/design-parser.mjs +0 -820
  210. package/templates/vite/.howone/skills/impeccable/scripts/detect-csp.mjs +0 -198
  211. package/templates/vite/.howone/skills/impeccable/scripts/detect.mjs +0 -21
  212. package/templates/vite/.howone/skills/impeccable/scripts/impeccable-paths.mjs +0 -110
  213. package/templates/vite/.howone/skills/impeccable/scripts/is-generated.mjs +0 -69
  214. package/templates/vite/.howone/skills/impeccable/scripts/live-accept.mjs +0 -595
  215. package/templates/vite/.howone/skills/impeccable/scripts/live-browser-session.js +0 -123
  216. package/templates/vite/.howone/skills/impeccable/scripts/live-browser.js +0 -4860
  217. package/templates/vite/.howone/skills/impeccable/scripts/live-complete.mjs +0 -75
  218. package/templates/vite/.howone/skills/impeccable/scripts/live-completion.mjs +0 -18
  219. package/templates/vite/.howone/skills/impeccable/scripts/live-inject.mjs +0 -446
  220. package/templates/vite/.howone/skills/impeccable/scripts/live-poll.mjs +0 -200
  221. package/templates/vite/.howone/skills/impeccable/scripts/live-resume.mjs +0 -48
  222. package/templates/vite/.howone/skills/impeccable/scripts/live-server.mjs +0 -838
  223. package/templates/vite/.howone/skills/impeccable/scripts/live-session-store.mjs +0 -254
  224. package/templates/vite/.howone/skills/impeccable/scripts/live-status.mjs +0 -47
  225. package/templates/vite/.howone/skills/impeccable/scripts/live-wrap.mjs +0 -632
  226. package/templates/vite/.howone/skills/impeccable/scripts/live.mjs +0 -247
  227. package/templates/vite/.howone/skills/impeccable/scripts/load-context.mjs +0 -141
  228. package/templates/vite/.howone/skills/impeccable/scripts/modern-screenshot.umd.js +0 -14
  229. package/templates/vite/.howone/skills/impeccable/scripts/pin.mjs +0 -214
  230. /package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/02-schema-operations.md +0 -0
  231. /package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/03-data-access-patterns.md +0 -0
  232. /package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/04-query-dsl-and-responses.md +0 -0
  233. /package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/05-ai-persistence-patterns.md +0 -0
  234. /package/templates/vite/.howone/skills/howone/{04-ai → 03-ai-capabilities}/02-workflow-contract-rules.md +0 -0
  235. /package/templates/vite/.howone/skills/howone/{04-ai/05-workflow-operations.md → 03-ai-capabilities/04-workflow-operations.md} +0 -0
  236. /package/templates/vite/.howone/skills/howone/{04-ai/06-ai-feature-playbooks.md → 03-ai-capabilities/05-ai-feature-playbooks.md} +0 -0
  237. /package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/02-entity-operations.md +0 -0
  238. /package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/03-auth.md +0 -0
  239. /package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/04-react-integration.md +0 -0
  240. /package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/05-file-upload.md +0 -0
  241. /package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/06-raw-http.md +0 -0
  242. /package/templates/vite/.howone/skills/howone/{03-sdk/08-extension-boundaries.md → 04-app-sdk/09-extension-boundaries.md} +0 -0
  243. /package/templates/vite/.howone/skills/howone/{03-sdk/09-workflow-execute-sse.md → 04-app-sdk/10-workflow-execute-sse.md} +0 -0
@@ -1,200 +0,0 @@
1
- /**
2
- * CLI client for the live variant mode poll/reply protocol.
3
- *
4
- * Usage:
5
- * npx impeccable poll # Block until browser event, print JSON
6
- * npx impeccable poll --timeout=600000 # Custom timeout (ms); default is long-poll friendly
7
- * npx impeccable poll --reply <id> done # Reply "done" to event <id>
8
- * npx impeccable poll --reply <id> error "msg" # Reply with error
9
- */
10
-
11
- import { execFileSync } from 'node:child_process';
12
- import path from 'node:path';
13
- import { fileURLToPath } from 'node:url';
14
- import { completionAckForAcceptResult, completionTypeForAcceptResult } from './live-completion.mjs';
15
- import { readLiveServerInfo } from './impeccable-paths.mjs';
16
-
17
- // Node's built-in fetch (undici under the hood) enforces a 300s headers
18
- // timeout that can't be lowered per-request. We cap each request below
19
- // that ceiling and loop in `pollOnce` to synthesize a long poll without
20
- // depending on the standalone undici package.
21
- const PER_REQUEST_TIMEOUT_MS = 270_000;
22
-
23
- function readServerInfo() {
24
- const record = readLiveServerInfo(process.cwd());
25
- if (!record) {
26
- console.error('No running live server found. Start one with: npx impeccable live');
27
- process.exit(1);
28
- }
29
- return record.info;
30
- }
31
-
32
- export function buildPollReplyPayload(token, { id, type, message, file, data }) {
33
- return { token, id, type, message, file, data };
34
- }
35
-
36
- async function postReply(base, token, reply) {
37
- const res = await fetch(`${base}/poll`, {
38
- method: 'POST',
39
- headers: { 'Content-Type': 'application/json' },
40
- body: JSON.stringify(buildPollReplyPayload(token, reply)),
41
- });
42
- if (!res.ok) {
43
- const body = await res.json().catch(() => ({}));
44
- throw new Error(body.error || res.statusText);
45
- }
46
- }
47
-
48
- export async function pollCli() {
49
- const args = process.argv.slice(2);
50
-
51
- if (args.includes('--help') || args.includes('-h')) {
52
- console.log(`Usage: impeccable poll [options]
53
-
54
- Wait for a browser event from the live variant server, or reply to one.
55
-
56
- Modes:
57
- poll Block until a browser event arrives, print JSON
58
- poll --reply <id> done Reply "done" to event <id>
59
- poll --reply <id> error "msg" Reply with an error message
60
-
61
- Options:
62
- --timeout=MS Long-poll timeout in ms (default: 600000). Use the default unless the user asked to pause live; never use a short timeout to end the chat turn
63
- --help Show this help message`);
64
- process.exit(0);
65
- }
66
-
67
- const info = readServerInfo();
68
- const base = `http://localhost:${info.port}`;
69
-
70
- // Reply mode: npx impeccable poll --reply <id> <status> [--file path] [message]
71
- const replyIdx = args.indexOf('--reply');
72
- if (replyIdx !== -1) {
73
- const id = args[replyIdx + 1];
74
- const status = args[replyIdx + 2] || 'done';
75
- const fileIdx = args.indexOf('--file');
76
- const filePath = fileIdx !== -1 && fileIdx + 1 < args.length ? args[fileIdx + 1] : undefined;
77
- // Message is any remaining positional arg that isn't a flag
78
- const message = args.find((a, i) => i > replyIdx + 2 && !a.startsWith('--') && i !== fileIdx + 1) || undefined;
79
-
80
- if (!id) {
81
- console.error('Usage: npx impeccable poll --reply <id> <status> [--file path] [message]');
82
- process.exit(1);
83
- }
84
-
85
- try {
86
- await postReply(base, info.token, { id, type: status, message, file: filePath });
87
-
88
- // Success — silent exit (agent doesn't need output for replies)
89
- } catch (err) {
90
- if (err.cause?.code === 'ECONNREFUSED') {
91
- console.error('Live server not running. Start one with: npx impeccable live');
92
- } else {
93
- console.error('Reply failed:', err.message);
94
- }
95
- process.exit(1);
96
- }
97
- return;
98
- }
99
-
100
- // Poll mode: block until browser event. Default 10 min. Node's built-in
101
- // fetch enforces a 300s headers timeout, so we loop in slices under that
102
- // ceiling and keep re-polling until we get a real event or the user's
103
- // total timeout runs out.
104
- const timeoutArg = args.find(a => a.startsWith('--timeout='));
105
- const totalTimeout = timeoutArg ? parseInt(timeoutArg.split('=')[1], 10) : 600000;
106
-
107
- const deadline = Date.now() + totalTimeout;
108
- let event;
109
- try {
110
- while (true) {
111
- const remaining = deadline - Date.now();
112
- if (remaining <= 0) {
113
- event = { type: 'timeout' };
114
- break;
115
- }
116
- const slice = Math.min(remaining, PER_REQUEST_TIMEOUT_MS);
117
- const res = await fetch(`${base}/poll?token=${info.token}&timeout=${slice}`);
118
-
119
- if (res.status === 401) {
120
- console.error('Authentication failed. The server token may have changed.');
121
- console.error('Try restarting: npx impeccable live stop && npx impeccable live');
122
- process.exit(1);
123
- }
124
-
125
- if (!res.ok) {
126
- console.error(`Poll failed: ${res.status} ${res.statusText}`);
127
- process.exit(1);
128
- }
129
-
130
- const next = await res.json();
131
- // Server-side timeout means no browser event arrived in this slice.
132
- // Loop and re-poll until we get a real event or we hit the user's
133
- // total deadline.
134
- if (next?.type === 'timeout' && Date.now() < deadline) continue;
135
- event = next;
136
- break;
137
- }
138
-
139
- // Auto-handle accept/discard via deterministic script
140
- if (event.type === 'accept' || event.type === 'discard') {
141
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
142
- const acceptScript = path.join(__dirname, 'live-accept.mjs');
143
- const scriptArgs = event.type === 'discard'
144
- ? ['--id', event.id, '--discard']
145
- : ['--id', event.id, '--variant', event.variantId];
146
- if (event.type === 'accept' && event.paramValues && Object.keys(event.paramValues).length > 0) {
147
- scriptArgs.push('--param-values', JSON.stringify(event.paramValues));
148
- }
149
- try {
150
- const out = execFileSync(
151
- 'node',
152
- [acceptScript, ...scriptArgs],
153
- { encoding: 'utf-8', cwd: process.cwd(), timeout: 30_000 }
154
- );
155
- event._acceptResult = JSON.parse(out.trim());
156
- } catch (err) {
157
- event._acceptResult = { handled: false, mode: 'error', error: err.message };
158
- }
159
-
160
- const completionType = completionTypeForAcceptResult(event.type, event._acceptResult);
161
- try {
162
- await postReply(base, info.token, {
163
- id: event.id,
164
- type: completionType,
165
- message: event._acceptResult?.error,
166
- file: event._acceptResult?.file,
167
- data: event._acceptResult?.carbonize === true ? { carbonize: true } : undefined,
168
- });
169
- } catch (err) {
170
- event._completionAck = { ok: false, error: err.message };
171
- }
172
- if (!event._completionAck) {
173
- event._completionAck = completionAckForAcceptResult(event.id, completionType, event._acceptResult);
174
- }
175
- }
176
-
177
- // Second signal path: stderr banner in case the agent parses stdout
178
- // JSON but skips nested fields. One line is enough — the full checklist
179
- // is in reference/live.md.
180
- if (event._acceptResult?.carbonize === true) {
181
- process.stderr.write('\n⚠ Carbonize cleanup REQUIRED before next poll. After cleanup, run live-complete.mjs --id ' + event.id + '. See reference/live.md "Required after accept".\n\n');
182
- }
183
-
184
- // Print the event as JSON — the agent reads this from stdout
185
- console.log(JSON.stringify(event));
186
- } catch (err) {
187
- if (err.cause?.code === 'ECONNREFUSED') {
188
- console.error('Live server not running. Start one with: npx impeccable live');
189
- } else {
190
- console.error('Poll failed:', err.message);
191
- }
192
- process.exit(1);
193
- }
194
- }
195
-
196
- // Auto-execute when run directly
197
- const _running = process.argv[1];
198
- if (_running?.endsWith('live-poll.mjs') || _running?.endsWith('live-poll.mjs/')) {
199
- pollCli();
200
- }
@@ -1,48 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Recover the next agent action from the durable live-session journal.
4
- */
5
-
6
- import { createLiveSessionStore } from './live-session-store.mjs';
7
-
8
- function parseArgs(argv) {
9
- const out = { id: null };
10
- for (let i = 0; i < argv.length; i++) {
11
- const arg = argv[i];
12
- if (arg === '--id') out.id = argv[++i];
13
- else if (arg.startsWith('--id=')) out.id = arg.slice('--id='.length);
14
- else if (arg === '--help' || arg === '-h') out.help = true;
15
- }
16
- return out;
17
- }
18
-
19
- export async function resumeCli() {
20
- const args = parseArgs(process.argv.slice(2));
21
- if (args.help) {
22
- console.log(`Usage: node live-resume.mjs [--id SESSION_ID]\n\nPrint the active durable session checkpoint and the next safe agent action.`);
23
- return;
24
- }
25
-
26
- const store = createLiveSessionStore({ cwd: process.cwd(), sessionId: args.id || undefined });
27
- const snapshot = args.id ? store.getSnapshot(args.id) : store.listActiveSessions()[0] || null;
28
- if (!snapshot) {
29
- console.log(JSON.stringify({ active: false, nextAction: 'No active durable live session found.' }, null, 2));
30
- return;
31
- }
32
-
33
- const pending = snapshot.pendingEvent || null;
34
- const nextAction = pending
35
- ? `Run live-poll.mjs, handle ${pending.type} ${pending.id}, then acknowledge with live-poll.mjs --reply ${pending.id} done.`
36
- : snapshot.phase === 'carbonize_required'
37
- ? `Finish carbonize cleanup${snapshot.sourceFile ? ` in ${snapshot.sourceFile}` : ''}, then run live-complete.mjs --id ${snapshot.id}.`
38
- : snapshot.phase === 'accept_requested'
39
- ? `Run live-complete.mjs --id ${snapshot.id} after verifying the accepted variant is written.`
40
- : `Inspect ${snapshot.id}; no pending agent event is currently queued.`;
41
-
42
- console.log(JSON.stringify({ active: true, snapshot, pendingEvent: pending, nextAction }, null, 2));
43
- }
44
-
45
- const _running = process.argv[1];
46
- if (_running?.endsWith('live-resume.mjs') || _running?.endsWith('live-resume.mjs/')) {
47
- resumeCli();
48
- }