@bendyline/gilde 0.1.3 → 0.1.5

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 (934) hide show
  1. package/README.md +1 -0
  2. package/data/chat-models/ge/gemma4-12b-q4/manifest.json +22 -8
  3. package/data/chat-models/ge/gemma4-12b-q4/versions/1.1.2/manifest.json +78 -0
  4. package/data/chat-models/ge/gemma4-12b-q8/manifest.json +25 -11
  5. package/data/chat-models/ge/gemma4-12b-q8/versions/1.0.2/manifest.json +78 -0
  6. package/data/chat-models/ge/gemma4-26b-q4/manifest.json +66 -44
  7. package/data/chat-models/ge/gemma4-26b-q4/versions/1.2.1/manifest.json +81 -0
  8. package/data/chat-models/ge/gemma4-31b-q4/manifest.json +47 -25
  9. package/data/chat-models/ge/gemma4-31b-q4/versions/1.2.1/manifest.json +87 -0
  10. package/data/chat-models/ge/gemma4-e2b-q8/manifest.json +76 -64
  11. package/data/chat-models/ge/gemma4-e2b-q8/versions/1.1.2/manifest.json +71 -0
  12. package/data/chat-models/ge/gemma4-e4b-q8/manifest.json +71 -73
  13. package/data/chat-models/ge/gemma4-e4b-q8/versions/1.1.2/manifest.json +71 -0
  14. package/data/chat-models/index.json +1 -1
  15. package/data/chat-models/la/laguna-s-2.1-118b-q4/manifest.json +17 -17
  16. package/data/chat-models/la/laguna-s-2.1-118b-q4/versions/1.0.1/manifest.json +124 -0
  17. package/data/chat-models/la/laguna-s-2.1-118b-q8/manifest.json +7 -7
  18. package/data/chat-models/la/laguna-s-2.1-118b-q8/versions/1.0.1/manifest.json +174 -0
  19. package/data/chat-models/ne/nemotron3-nano-30b-q4/manifest.json +5 -0
  20. package/data/chat-models/qw/qwen3.5-122b-a10b-q4/manifest.json +27 -19
  21. package/data/chat-models/qw/qwen3.5-122b-a10b-q4/versions/1.0.1/manifest.json +164 -0
  22. package/data/chat-models/qw/qwen3.5-2b-q4/manifest.json +79 -72
  23. package/data/chat-models/qw/qwen3.5-2b-q4/versions/1.1.2/manifest.json +76 -0
  24. package/data/chat-models/qw/qwen3.5-4b-q4/manifest.json +79 -72
  25. package/data/chat-models/qw/qwen3.5-4b-q4/versions/1.1.2/manifest.json +76 -0
  26. package/data/chat-models/qw/qwen3.5-9b-q4/manifest.json +87 -80
  27. package/data/chat-models/qw/qwen3.5-9b-q4/versions/1.1.2/manifest.json +81 -0
  28. package/data/chat-models/qw/qwen3.6-27b-q4/manifest.json +99 -92
  29. package/data/chat-models/qw/qwen3.6-27b-q4/versions/1.1.4/manifest.json +91 -0
  30. package/data/chat-models/qw/qwen3.6-27b-q8/manifest.json +17 -8
  31. package/data/chat-models/qw/qwen3.6-27b-q8/versions/1.0.2/manifest.json +103 -0
  32. package/data/chat-models/qw/qwen3.6-35b-a3b-q4/manifest.json +27 -10
  33. package/data/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.1/manifest.json +93 -0
  34. package/data/chat-models/qw/qwen3.6-35b-a3b-q8/manifest.json +26 -9
  35. package/data/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.1/manifest.json +113 -0
  36. package/data/craftbook-templates/a1/a11y-audit/art.json +12 -0
  37. package/data/craftbook-templates/a1/a11y-audit/logo.webp +0 -0
  38. package/data/craftbook-templates/a1/a11y-audit/manifest.json +1 -0
  39. package/data/craftbook-templates/ab/ab-test-readout/art.json +13 -0
  40. package/data/craftbook-templates/ab/ab-test-readout/logo.webp +0 -0
  41. package/data/craftbook-templates/ab/ab-test-readout/manifest.json +1 -0
  42. package/data/craftbook-templates/ac/accessibility-retrofit/art.json +12 -0
  43. package/data/craftbook-templates/ac/accessibility-retrofit/logo.webp +0 -0
  44. package/data/craftbook-templates/ac/accessibility-retrofit/manifest.json +1 -0
  45. package/data/craftbook-templates/ad/ad-variations/art.json +13 -0
  46. package/data/craftbook-templates/ad/ad-variations/logo.webp +0 -0
  47. package/data/craftbook-templates/ad/ad-variations/manifest.json +1 -0
  48. package/data/craftbook-templates/al/album-curate/art.json +13 -0
  49. package/data/craftbook-templates/al/album-curate/logo.webp +0 -0
  50. package/data/craftbook-templates/al/album-curate/manifest.json +1 -0
  51. package/data/craftbook-templates/al/alert-rules/art.json +12 -0
  52. package/data/craftbook-templates/al/alert-rules/logo.webp +0 -0
  53. package/data/craftbook-templates/al/alert-rules/manifest.json +1 -0
  54. package/data/craftbook-templates/al/alt-text-pass/art.json +12 -0
  55. package/data/craftbook-templates/al/alt-text-pass/logo.webp +0 -0
  56. package/data/craftbook-templates/al/alt-text-pass/manifest.json +1 -0
  57. package/data/craftbook-templates/an/anniversary-cut/art.json +13 -0
  58. package/data/craftbook-templates/an/anniversary-cut/logo.webp +0 -0
  59. package/data/craftbook-templates/an/anniversary-cut/manifest.json +1 -0
  60. package/data/craftbook-templates/an/annotated-bibliography/art.json +13 -0
  61. package/data/craftbook-templates/an/annotated-bibliography/logo.webp +0 -0
  62. package/data/craftbook-templates/an/annotated-bibliography/manifest.json +1 -0
  63. package/data/craftbook-templates/an/annual-document-review/art.json +13 -0
  64. package/data/craftbook-templates/an/annual-document-review/logo.webp +0 -0
  65. package/data/craftbook-templates/an/annual-document-review/manifest.json +1 -0
  66. package/data/craftbook-templates/an/anomaly-scan/art.json +12 -0
  67. package/data/craftbook-templates/an/anomaly-scan/logo.webp +0 -0
  68. package/data/craftbook-templates/an/anomaly-scan/manifest.json +1 -0
  69. package/data/craftbook-templates/ap/api-contract-review/art.json +13 -0
  70. package/data/craftbook-templates/ap/api-contract-review/logo.webp +0 -0
  71. package/data/craftbook-templates/ap/api-contract-review/manifest.json +1 -0
  72. package/data/craftbook-templates/ar/artifact-integrity-review/art.json +13 -0
  73. package/data/craftbook-templates/ar/artifact-integrity-review/logo.webp +0 -0
  74. package/data/craftbook-templates/ar/artifact-integrity-review/manifest.json +1 -0
  75. package/data/craftbook-templates/au/audio-ad-spot/art.json +13 -0
  76. package/data/craftbook-templates/au/audio-ad-spot/logo.webp +0 -0
  77. package/data/craftbook-templates/au/audio-ad-spot/manifest.json +1 -0
  78. package/data/craftbook-templates/au/audio-highlight-reel/art.json +13 -0
  79. package/data/craftbook-templates/au/audio-highlight-reel/logo.webp +0 -0
  80. package/data/craftbook-templates/au/audio-highlight-reel/manifest.json +1 -0
  81. package/data/craftbook-templates/au/audiobook-master-pack/art.json +13 -0
  82. package/data/craftbook-templates/au/audiobook-master-pack/logo.webp +0 -0
  83. package/data/craftbook-templates/au/audiobook-master-pack/manifest.json +1 -0
  84. package/data/craftbook-templates/au/auth-flow/art.json +12 -0
  85. package/data/craftbook-templates/au/auth-flow/logo.webp +0 -0
  86. package/data/craftbook-templates/au/auth-flow/manifest.json +1 -0
  87. package/data/craftbook-templates/au/automation-recipe/art.json +13 -0
  88. package/data/craftbook-templates/au/automation-recipe/logo.webp +0 -0
  89. package/data/craftbook-templates/au/automation-recipe/manifest.json +1 -0
  90. package/data/craftbook-templates/ba/backup-routine/art.json +13 -0
  91. package/data/craftbook-templates/ba/backup-routine/logo.webp +0 -0
  92. package/data/craftbook-templates/ba/backup-routine/manifest.json +1 -0
  93. package/data/craftbook-templates/bl/blog-post/art.json +13 -0
  94. package/data/craftbook-templates/bl/blog-post/logo.webp +0 -0
  95. package/data/craftbook-templates/bl/blog-post/manifest.json +1 -0
  96. package/data/craftbook-templates/bo/board-deck/art.json +13 -0
  97. package/data/craftbook-templates/bo/board-deck/logo.webp +0 -0
  98. package/data/craftbook-templates/bo/board-deck/manifest.json +1 -0
  99. package/data/craftbook-templates/bo/board-game-web/art.json +13 -0
  100. package/data/craftbook-templates/bo/board-game-web/logo.webp +0 -0
  101. package/data/craftbook-templates/bo/board-game-web/manifest.json +1 -0
  102. package/data/craftbook-templates/bo/booking-automation/art.json +12 -0
  103. package/data/craftbook-templates/bo/booking-automation/logo.webp +0 -0
  104. package/data/craftbook-templates/bo/booking-automation/manifest.json +1 -0
  105. package/data/craftbook-templates/br/branding-website/art.json +13 -0
  106. package/data/craftbook-templates/br/branding-website/logo.webp +0 -0
  107. package/data/craftbook-templates/br/branding-website/manifest.json +1 -0
  108. package/data/craftbook-templates/br/broadcast-announcement/art.json +13 -0
  109. package/data/craftbook-templates/br/broadcast-announcement/logo.webp +0 -0
  110. package/data/craftbook-templates/br/broadcast-announcement/manifest.json +1 -0
  111. package/data/craftbook-templates/br/browser-qa-audit/art.json +12 -0
  112. package/data/craftbook-templates/br/browser-qa-audit/logo.webp +0 -0
  113. package/data/craftbook-templates/br/browser-qa-audit/manifest.json +1 -0
  114. package/data/craftbook-templates/bu/bug-fix-tdd/art.json +12 -0
  115. package/data/craftbook-templates/bu/bug-fix-tdd/logo.webp +0 -0
  116. package/data/craftbook-templates/bu/bug-fix-tdd/manifest.json +1 -0
  117. package/data/craftbook-templates/bu/build-loop/art.json +13 -0
  118. package/data/craftbook-templates/bu/build-loop/logo.webp +0 -0
  119. package/data/craftbook-templates/bu/build-loop/manifest.json +1 -0
  120. package/data/craftbook-templates/bu/build-loop/versions/1.1.0/craftbook.json +65 -0
  121. package/data/craftbook-templates/bu/build-loop/versions/1.1.0/test.json +121 -0
  122. package/data/craftbook-templates/ca/calendar-brief/art.json +13 -0
  123. package/data/craftbook-templates/ca/calendar-brief/logo.webp +0 -0
  124. package/data/craftbook-templates/ca/calendar-brief/manifest.json +1 -0
  125. package/data/craftbook-templates/ca/canvas-generative-art/art.json +13 -0
  126. package/data/craftbook-templates/ca/canvas-generative-art/logo.webp +0 -0
  127. package/data/craftbook-templates/ca/canvas-generative-art/manifest.json +1 -0
  128. package/data/craftbook-templates/ca/careful-mode/art.json +13 -0
  129. package/data/craftbook-templates/ca/careful-mode/logo.webp +0 -0
  130. package/data/craftbook-templates/ca/careful-mode/manifest.json +1 -0
  131. package/data/craftbook-templates/ca/case-study/art.json +13 -0
  132. package/data/craftbook-templates/ca/case-study/logo.webp +0 -0
  133. package/data/craftbook-templates/ca/case-study/manifest.json +1 -0
  134. package/data/craftbook-templates/ca/case-study-writeup/art.json +13 -0
  135. package/data/craftbook-templates/ca/case-study-writeup/logo.webp +0 -0
  136. package/data/craftbook-templates/ca/case-study-writeup/manifest.json +1 -0
  137. package/data/craftbook-templates/ch/changelog-cut/art.json +12 -0
  138. package/data/craftbook-templates/ch/changelog-cut/logo.webp +0 -0
  139. package/data/craftbook-templates/ch/changelog-cut/manifest.json +1 -0
  140. package/data/craftbook-templates/ch/changelog-writeup/art.json +13 -0
  141. package/data/craftbook-templates/ch/changelog-writeup/logo.webp +0 -0
  142. package/data/craftbook-templates/ch/changelog-writeup/manifest.json +1 -0
  143. package/data/craftbook-templates/ch/chapter-narration-run/art.json +13 -0
  144. package/data/craftbook-templates/ch/chapter-narration-run/logo.webp +0 -0
  145. package/data/craftbook-templates/ch/chapter-narration-run/manifest.json +1 -0
  146. package/data/craftbook-templates/ch/chapter-weave/art.json +13 -0
  147. package/data/craftbook-templates/ch/chapter-weave/logo.webp +0 -0
  148. package/data/craftbook-templates/ch/chapter-weave/manifest.json +1 -0
  149. package/data/craftbook-templates/ch/character-sheet/art.json +13 -0
  150. package/data/craftbook-templates/ch/character-sheet/logo.webp +0 -0
  151. package/data/craftbook-templates/ch/character-sheet/manifest.json +1 -0
  152. package/data/craftbook-templates/ch/character-turnaround/art.json +13 -0
  153. package/data/craftbook-templates/ch/character-turnaround/logo.webp +0 -0
  154. package/data/craftbook-templates/ch/character-turnaround/manifest.json +1 -0
  155. package/data/craftbook-templates/ch/chart-pack/art.json +13 -0
  156. package/data/craftbook-templates/ch/chart-pack/logo.webp +0 -0
  157. package/data/craftbook-templates/ch/chart-pack/manifest.json +1 -0
  158. package/data/craftbook-templates/ch/chrome-extension/art.json +13 -0
  159. package/data/craftbook-templates/ch/chrome-extension/logo.webp +0 -0
  160. package/data/craftbook-templates/ch/chrome-extension/manifest.json +1 -0
  161. package/data/craftbook-templates/ci/ci-pipeline/art.json +12 -0
  162. package/data/craftbook-templates/ci/ci-pipeline/logo.webp +0 -0
  163. package/data/craftbook-templates/ci/ci-pipeline/manifest.json +1 -0
  164. package/data/craftbook-templates/ci/citation-audit/art.json +12 -0
  165. package/data/craftbook-templates/ci/citation-audit/logo.webp +0 -0
  166. package/data/craftbook-templates/ci/citation-audit/manifest.json +1 -0
  167. package/data/craftbook-templates/cl/cli-tool/art.json +13 -0
  168. package/data/craftbook-templates/cl/cli-tool/logo.webp +0 -0
  169. package/data/craftbook-templates/cl/cli-tool/manifest.json +1 -0
  170. package/data/craftbook-templates/cl/cli-tool/versions/1.1.0/craftbook.json +139 -0
  171. package/data/craftbook-templates/cl/cli-tool/versions/1.1.0/test.json +128 -0
  172. package/data/craftbook-templates/co/codebase-refactoring-review/art.json +12 -0
  173. package/data/craftbook-templates/co/codebase-refactoring-review/logo.webp +0 -0
  174. package/data/craftbook-templates/co/codebase-refactoring-review/manifest.json +1 -0
  175. package/data/craftbook-templates/co/codebase-ux-review/art.json +13 -0
  176. package/data/craftbook-templates/co/codebase-ux-review/logo.webp +0 -0
  177. package/data/craftbook-templates/co/codebase-ux-review/manifest.json +1 -0
  178. package/data/craftbook-templates/co/cohort-analysis/art.json +13 -0
  179. package/data/craftbook-templates/co/cohort-analysis/logo.webp +0 -0
  180. package/data/craftbook-templates/co/cohort-analysis/manifest.json +1 -0
  181. package/data/craftbook-templates/co/company-research-brief/art.json +13 -0
  182. package/data/craftbook-templates/co/company-research-brief/logo.webp +0 -0
  183. package/data/craftbook-templates/co/company-research-brief/manifest.json +1 -0
  184. package/data/craftbook-templates/co/comparison-matrix/art.json +13 -0
  185. package/data/craftbook-templates/co/comparison-matrix/logo.webp +0 -0
  186. package/data/craftbook-templates/co/comparison-matrix/manifest.json +1 -0
  187. package/data/craftbook-templates/co/compat-check/art.json +13 -0
  188. package/data/craftbook-templates/co/compat-check/logo.webp +0 -0
  189. package/data/craftbook-templates/co/compat-check/manifest.json +1 -0
  190. package/data/craftbook-templates/co/competitive-analysis/art.json +13 -0
  191. package/data/craftbook-templates/co/competitive-analysis/logo.webp +0 -0
  192. package/data/craftbook-templates/co/competitive-analysis/manifest.json +1 -0
  193. package/data/craftbook-templates/co/config-scaffold/art.json +13 -0
  194. package/data/craftbook-templates/co/config-scaffold/logo.webp +0 -0
  195. package/data/craftbook-templates/co/config-scaffold/manifest.json +1 -0
  196. package/data/craftbook-templates/co/content-accuracy-review/art.json +12 -0
  197. package/data/craftbook-templates/co/content-accuracy-review/logo.webp +0 -0
  198. package/data/craftbook-templates/co/content-accuracy-review/manifest.json +1 -0
  199. package/data/craftbook-templates/co/content-deck/art.json +13 -0
  200. package/data/craftbook-templates/co/content-deck/logo.webp +0 -0
  201. package/data/craftbook-templates/co/content-deck/manifest.json +1 -0
  202. package/data/craftbook-templates/co/contract-template/art.json +12 -0
  203. package/data/craftbook-templates/co/contract-template/logo.webp +0 -0
  204. package/data/craftbook-templates/co/contract-template/manifest.json +1 -0
  205. package/data/craftbook-templates/co/cookbook-layout/art.json +13 -0
  206. package/data/craftbook-templates/co/cookbook-layout/logo.webp +0 -0
  207. package/data/craftbook-templates/co/cookbook-layout/manifest.json +1 -0
  208. package/data/craftbook-templates/co/copy-review/art.json +13 -0
  209. package/data/craftbook-templates/co/copy-review/logo.webp +0 -0
  210. package/data/craftbook-templates/co/copy-review/manifest.json +1 -0
  211. package/data/craftbook-templates/co/corpus-email-digest/art.json +13 -0
  212. package/data/craftbook-templates/co/corpus-email-digest/logo.webp +0 -0
  213. package/data/craftbook-templates/co/corpus-email-digest/manifest.json +1 -0
  214. package/data/craftbook-templates/co/corpus-synthesis/art.json +13 -0
  215. package/data/craftbook-templates/co/corpus-synthesis/logo.webp +0 -0
  216. package/data/craftbook-templates/co/corpus-synthesis/manifest.json +1 -0
  217. package/data/craftbook-templates/co/cover-letter/art.json +13 -0
  218. package/data/craftbook-templates/co/cover-letter/logo.webp +0 -0
  219. package/data/craftbook-templates/co/cover-letter/manifest.json +1 -0
  220. package/data/craftbook-templates/cr/crm-update-batch/art.json +12 -0
  221. package/data/craftbook-templates/cr/crm-update-batch/logo.webp +0 -0
  222. package/data/craftbook-templates/cr/crm-update-batch/manifest.json +1 -0
  223. package/data/craftbook-templates/cr/cron-job/art.json +13 -0
  224. package/data/craftbook-templates/cr/cron-job/logo.webp +0 -0
  225. package/data/craftbook-templates/cr/cron-job/manifest.json +1 -0
  226. package/data/craftbook-templates/cr/crossword-forge/art.json +13 -0
  227. package/data/craftbook-templates/cr/crossword-forge/logo.webp +0 -0
  228. package/data/craftbook-templates/cr/crossword-forge/manifest.json +1 -0
  229. package/data/craftbook-templates/cs/csv-transformer/art.json +13 -0
  230. package/data/craftbook-templates/cs/csv-transformer/logo.webp +0 -0
  231. package/data/craftbook-templates/cs/csv-transformer/manifest.json +1 -0
  232. package/data/craftbook-templates/da/dashboard-spec/art.json +13 -0
  233. package/data/craftbook-templates/da/dashboard-spec/logo.webp +0 -0
  234. package/data/craftbook-templates/da/dashboard-spec/manifest.json +1 -0
  235. package/data/craftbook-templates/da/data-dictionary/art.json +13 -0
  236. package/data/craftbook-templates/da/data-dictionary/logo.webp +0 -0
  237. package/data/craftbook-templates/da/data-dictionary/manifest.json +1 -0
  238. package/data/craftbook-templates/da/data-export-migrate/art.json +13 -0
  239. package/data/craftbook-templates/da/data-export-migrate/logo.webp +0 -0
  240. package/data/craftbook-templates/da/data-export-migrate/manifest.json +1 -0
  241. package/data/craftbook-templates/da/data-join-merge/art.json +13 -0
  242. package/data/craftbook-templates/da/data-join-merge/logo.webp +0 -0
  243. package/data/craftbook-templates/da/data-join-merge/manifest.json +1 -0
  244. package/data/craftbook-templates/da/data-pipeline-etl/art.json +12 -0
  245. package/data/craftbook-templates/da/data-pipeline-etl/logo.webp +0 -0
  246. package/data/craftbook-templates/da/data-pipeline-etl/manifest.json +1 -0
  247. package/data/craftbook-templates/da/data-quality-audit/art.json +12 -0
  248. package/data/craftbook-templates/da/data-quality-audit/logo.webp +0 -0
  249. package/data/craftbook-templates/da/data-quality-audit/manifest.json +1 -0
  250. package/data/craftbook-templates/da/data-to-report/art.json +13 -0
  251. package/data/craftbook-templates/da/data-to-report/logo.webp +0 -0
  252. package/data/craftbook-templates/da/data-to-report/manifest.json +1 -0
  253. package/data/craftbook-templates/da/data-viz-page/art.json +13 -0
  254. package/data/craftbook-templates/da/data-viz-page/logo.webp +0 -0
  255. package/data/craftbook-templates/da/data-viz-page/manifest.json +1 -0
  256. package/data/craftbook-templates/da/dataset-clean/art.json +13 -0
  257. package/data/craftbook-templates/da/dataset-clean/logo.webp +0 -0
  258. package/data/craftbook-templates/da/dataset-clean/manifest.json +1 -0
  259. package/data/craftbook-templates/db/db-index-tuning/art.json +13 -0
  260. package/data/craftbook-templates/db/db-index-tuning/logo.webp +0 -0
  261. package/data/craftbook-templates/db/db-index-tuning/manifest.json +1 -0
  262. package/data/craftbook-templates/de/deep-security-review/art.json +12 -0
  263. package/data/craftbook-templates/de/deep-security-review/logo.webp +0 -0
  264. package/data/craftbook-templates/de/deep-security-review/manifest.json +1 -0
  265. package/data/craftbook-templates/de/deep-security-review/versions/1.1.0/craftbook.json +201 -0
  266. package/data/craftbook-templates/de/deep-security-review/versions/1.1.0/test.json +157 -0
  267. package/data/craftbook-templates/de/dependency-audit/art.json +12 -0
  268. package/data/craftbook-templates/de/dependency-audit/logo.webp +0 -0
  269. package/data/craftbook-templates/de/dependency-audit/manifest.json +1 -0
  270. package/data/craftbook-templates/de/deploy-checklist/art.json +13 -0
  271. package/data/craftbook-templates/de/deploy-checklist/logo.webp +0 -0
  272. package/data/craftbook-templates/de/deploy-checklist/manifest.json +1 -0
  273. package/data/craftbook-templates/de/design-review/art.json +13 -0
  274. package/data/craftbook-templates/de/design-review/logo.webp +0 -0
  275. package/data/craftbook-templates/de/design-review/manifest.json +1 -0
  276. package/data/craftbook-templates/de/design-system-consultation/art.json +13 -0
  277. package/data/craftbook-templates/de/design-system-consultation/logo.webp +0 -0
  278. package/data/craftbook-templates/de/design-system-consultation/manifest.json +1 -0
  279. package/data/craftbook-templates/di/diagram-from-text/art.json +13 -0
  280. package/data/craftbook-templates/di/diagram-from-text/logo.webp +0 -0
  281. package/data/craftbook-templates/di/diagram-from-text/manifest.json +1 -0
  282. package/data/craftbook-templates/di/digest-from-feeds/art.json +13 -0
  283. package/data/craftbook-templates/di/digest-from-feeds/logo.webp +0 -0
  284. package/data/craftbook-templates/di/digest-from-feeds/manifest.json +1 -0
  285. package/data/craftbook-templates/do/doc-intake-pipeline/art.json +13 -0
  286. package/data/craftbook-templates/do/doc-intake-pipeline/logo.webp +0 -0
  287. package/data/craftbook-templates/do/doc-intake-pipeline/manifest.json +1 -0
  288. package/data/craftbook-templates/do/doc-rewrite/art.json +13 -0
  289. package/data/craftbook-templates/do/doc-rewrite/logo.webp +0 -0
  290. package/data/craftbook-templates/do/doc-rewrite/manifest.json +1 -0
  291. package/data/craftbook-templates/do/dockerize-app/art.json +12 -0
  292. package/data/craftbook-templates/do/dockerize-app/logo.webp +0 -0
  293. package/data/craftbook-templates/do/dockerize-app/manifest.json +1 -0
  294. package/data/craftbook-templates/do/docs-site/art.json +13 -0
  295. package/data/craftbook-templates/do/docs-site/logo.webp +0 -0
  296. package/data/craftbook-templates/do/docs-site/manifest.json +1 -0
  297. package/data/craftbook-templates/do/documentation-drift-review/art.json +13 -0
  298. package/data/craftbook-templates/do/documentation-drift-review/logo.webp +0 -0
  299. package/data/craftbook-templates/do/documentation-drift-review/manifest.json +1 -0
  300. package/data/craftbook-templates/dr/drive-wrap-up/art.json +13 -0
  301. package/data/craftbook-templates/dr/drive-wrap-up/logo.webp +0 -0
  302. package/data/craftbook-templates/dr/drive-wrap-up/manifest.json +1 -0
  303. package/data/craftbook-templates/du/due-diligence-brief/art.json +13 -0
  304. package/data/craftbook-templates/du/due-diligence-brief/logo.webp +0 -0
  305. package/data/craftbook-templates/du/due-diligence-brief/manifest.json +1 -0
  306. package/data/craftbook-templates/eb/ebook-compile/art.json +13 -0
  307. package/data/craftbook-templates/eb/ebook-compile/logo.webp +0 -0
  308. package/data/craftbook-templates/eb/ebook-compile/manifest.json +1 -0
  309. package/data/craftbook-templates/ed/edit-notes/art.json +13 -0
  310. package/data/craftbook-templates/ed/edit-notes/logo.webp +0 -0
  311. package/data/craftbook-templates/ed/edit-notes/manifest.json +1 -0
  312. package/data/craftbook-templates/em/email-sequence/art.json +13 -0
  313. package/data/craftbook-templates/em/email-sequence/logo.webp +0 -0
  314. package/data/craftbook-templates/em/email-sequence/manifest.json +1 -0
  315. package/data/craftbook-templates/em/email-template/art.json +13 -0
  316. package/data/craftbook-templates/em/email-template/logo.webp +0 -0
  317. package/data/craftbook-templates/em/email-template/manifest.json +1 -0
  318. package/data/craftbook-templates/en/engineering-retrospective/art.json +12 -0
  319. package/data/craftbook-templates/en/engineering-retrospective/logo.webp +0 -0
  320. package/data/craftbook-templates/en/engineering-retrospective/manifest.json +1 -0
  321. package/data/craftbook-templates/ep/episode-plan/art.json +13 -0
  322. package/data/craftbook-templates/ep/episode-plan/logo.webp +0 -0
  323. package/data/craftbook-templates/ep/episode-plan/manifest.json +1 -0
  324. package/data/craftbook-templates/es/escalation-playbook/art.json +12 -0
  325. package/data/craftbook-templates/es/escalation-playbook/logo.webp +0 -0
  326. package/data/craftbook-templates/es/escalation-playbook/manifest.json +1 -0
  327. package/data/craftbook-templates/ev/evidence-brief/art.json +13 -0
  328. package/data/craftbook-templates/ev/evidence-brief/logo.webp +0 -0
  329. package/data/craftbook-templates/ev/evidence-brief/manifest.json +1 -0
  330. package/data/craftbook-templates/ex/executive-level-review/art.json +13 -0
  331. package/data/craftbook-templates/ex/executive-level-review/logo.webp +0 -0
  332. package/data/craftbook-templates/ex/executive-level-review/manifest.json +1 -0
  333. package/data/craftbook-templates/ex/expense-categorize/art.json +12 -0
  334. package/data/craftbook-templates/ex/expense-categorize/logo.webp +0 -0
  335. package/data/craftbook-templates/ex/expense-categorize/manifest.json +1 -0
  336. package/data/craftbook-templates/fa/fact-check/art.json +12 -0
  337. package/data/craftbook-templates/fa/fact-check/logo.webp +0 -0
  338. package/data/craftbook-templates/fa/fact-check/manifest.json +1 -0
  339. package/data/craftbook-templates/fa/family-story-chapter/art.json +13 -0
  340. package/data/craftbook-templates/fa/family-story-chapter/logo.webp +0 -0
  341. package/data/craftbook-templates/fa/family-story-chapter/manifest.json +1 -0
  342. package/data/craftbook-templates/fa/faq-from-docs/art.json +13 -0
  343. package/data/craftbook-templates/fa/faq-from-docs/logo.webp +0 -0
  344. package/data/craftbook-templates/fa/faq-from-docs/manifest.json +1 -0
  345. package/data/craftbook-templates/fa/favicon-set/art.json +13 -0
  346. package/data/craftbook-templates/fa/favicon-set/logo.webp +0 -0
  347. package/data/craftbook-templates/fa/favicon-set/manifest.json +1 -0
  348. package/data/craftbook-templates/fe/feature-flag-release/art.json +13 -0
  349. package/data/craftbook-templates/fe/feature-flag-release/logo.webp +0 -0
  350. package/data/craftbook-templates/fe/feature-flag-release/manifest.json +1 -0
  351. package/data/craftbook-templates/fe/feature-flag-rollout/art.json +13 -0
  352. package/data/craftbook-templates/fe/feature-flag-rollout/logo.webp +0 -0
  353. package/data/craftbook-templates/fe/feature-flag-rollout/manifest.json +1 -0
  354. package/data/craftbook-templates/fe/feedback-widget/art.json +13 -0
  355. package/data/craftbook-templates/fe/feedback-widget/logo.webp +0 -0
  356. package/data/craftbook-templates/fe/feedback-widget/manifest.json +1 -0
  357. package/data/craftbook-templates/fo/folder-to-audio/art.json +13 -0
  358. package/data/craftbook-templates/fo/folder-to-audio/logo.webp +0 -0
  359. package/data/craftbook-templates/fo/folder-to-audio/manifest.json +1 -0
  360. package/data/craftbook-templates/fo/forecast-model/art.json +13 -0
  361. package/data/craftbook-templates/fo/forecast-model/logo.webp +0 -0
  362. package/data/craftbook-templates/fo/forecast-model/manifest.json +1 -0
  363. package/data/craftbook-templates/fo/form-fill-batch/art.json +13 -0
  364. package/data/craftbook-templates/fo/form-fill-batch/logo.webp +0 -0
  365. package/data/craftbook-templates/fo/form-fill-batch/manifest.json +1 -0
  366. package/data/craftbook-templates/fo/form-wizard/art.json +13 -0
  367. package/data/craftbook-templates/fo/form-wizard/logo.webp +0 -0
  368. package/data/craftbook-templates/fo/form-wizard/manifest.json +1 -0
  369. package/data/craftbook-templates/fr/freeze-scope/art.json +13 -0
  370. package/data/craftbook-templates/fr/freeze-scope/logo.webp +0 -0
  371. package/data/craftbook-templates/fr/freeze-scope/manifest.json +1 -0
  372. package/data/craftbook-templates/fr/freeze-scope/versions/1.1.0/craftbook.json +48 -0
  373. package/data/craftbook-templates/fr/freeze-scope/versions/1.1.0/test.json +110 -0
  374. package/data/craftbook-templates/ga/game-with-screens/art.json +13 -0
  375. package/data/craftbook-templates/ga/game-with-screens/logo.webp +0 -0
  376. package/data/craftbook-templates/ga/game-with-screens/manifest.json +1 -0
  377. package/data/craftbook-templates/gl/glossary-build/art.json +13 -0
  378. package/data/craftbook-templates/gl/glossary-build/logo.webp +0 -0
  379. package/data/craftbook-templates/gl/glossary-build/manifest.json +1 -0
  380. package/data/craftbook-templates/gr/graphql-api/art.json +13 -0
  381. package/data/craftbook-templates/gr/graphql-api/logo.webp +0 -0
  382. package/data/craftbook-templates/gr/graphql-api/manifest.json +1 -0
  383. package/data/craftbook-templates/gr/grpc-service/art.json +13 -0
  384. package/data/craftbook-templates/gr/grpc-service/logo.webp +0 -0
  385. package/data/craftbook-templates/gr/grpc-service/manifest.json +1 -0
  386. package/data/craftbook-templates/ha/handbook-section/art.json +13 -0
  387. package/data/craftbook-templates/ha/handbook-section/logo.webp +0 -0
  388. package/data/craftbook-templates/ha/handbook-section/manifest.json +1 -0
  389. package/data/craftbook-templates/he/hero-image/art.json +13 -0
  390. package/data/craftbook-templates/he/hero-image/logo.webp +0 -0
  391. package/data/craftbook-templates/he/hero-image/manifest.json +1 -0
  392. package/data/craftbook-templates/ho/holiday-card-run/art.json +13 -0
  393. package/data/craftbook-templates/ho/holiday-card-run/logo.webp +0 -0
  394. package/data/craftbook-templates/ho/holiday-card-run/manifest.json +1 -0
  395. package/data/craftbook-templates/ho/hotfix-flow/art.json +13 -0
  396. package/data/craftbook-templates/ho/hotfix-flow/logo.webp +0 -0
  397. package/data/craftbook-templates/ho/hotfix-flow/manifest.json +1 -0
  398. package/data/craftbook-templates/ht/html-arcade-game/art.json +13 -0
  399. package/data/craftbook-templates/ht/html-arcade-game/logo.webp +0 -0
  400. package/data/craftbook-templates/ht/html-arcade-game/manifest.json +1 -0
  401. package/data/craftbook-templates/ht/html-puzzle-game/art.json +13 -0
  402. package/data/craftbook-templates/ht/html-puzzle-game/logo.webp +0 -0
  403. package/data/craftbook-templates/ht/html-puzzle-game/manifest.json +1 -0
  404. package/data/craftbook-templates/ic/icon-pack/art.json +13 -0
  405. package/data/craftbook-templates/ic/icon-pack/logo.webp +0 -0
  406. package/data/craftbook-templates/ic/icon-pack/manifest.json +1 -0
  407. package/data/craftbook-templates/id/idea-office-hours/art.json +12 -0
  408. package/data/craftbook-templates/id/idea-office-hours/logo.webp +0 -0
  409. package/data/craftbook-templates/id/idea-office-hours/manifest.json +1 -0
  410. package/data/craftbook-templates/id/idle-clicker-game/art.json +13 -0
  411. package/data/craftbook-templates/id/idle-clicker-game/logo.webp +0 -0
  412. package/data/craftbook-templates/id/idle-clicker-game/manifest.json +1 -0
  413. package/data/craftbook-templates/im/image-batch-edit/art.json +12 -0
  414. package/data/craftbook-templates/im/image-batch-edit/logo.webp +0 -0
  415. package/data/craftbook-templates/im/image-batch-edit/manifest.json +1 -0
  416. package/data/craftbook-templates/im/image-dedup-cluster/art.json +13 -0
  417. package/data/craftbook-templates/im/image-dedup-cluster/logo.webp +0 -0
  418. package/data/craftbook-templates/im/image-dedup-cluster/manifest.json +1 -0
  419. package/data/craftbook-templates/im/image-palette-extract/art.json +13 -0
  420. package/data/craftbook-templates/im/image-palette-extract/logo.webp +0 -0
  421. package/data/craftbook-templates/im/image-palette-extract/manifest.json +1 -0
  422. package/data/craftbook-templates/im/image-seo-rename/art.json +13 -0
  423. package/data/craftbook-templates/im/image-seo-rename/logo.webp +0 -0
  424. package/data/craftbook-templates/im/image-seo-rename/manifest.json +1 -0
  425. package/data/craftbook-templates/im/image-set-index/art.json +13 -0
  426. package/data/craftbook-templates/im/image-set-index/logo.webp +0 -0
  427. package/data/craftbook-templates/im/image-set-index/manifest.json +1 -0
  428. package/data/craftbook-templates/in/inbox-triage/art.json +13 -0
  429. package/data/craftbook-templates/in/inbox-triage/logo.webp +0 -0
  430. package/data/craftbook-templates/in/inbox-triage/manifest.json +1 -0
  431. package/data/craftbook-templates/in/incident-comms-templates/art.json +12 -0
  432. package/data/craftbook-templates/in/incident-comms-templates/logo.webp +0 -0
  433. package/data/craftbook-templates/in/incident-comms-templates/manifest.json +1 -0
  434. package/data/craftbook-templates/in/incident-postmortem/art.json +12 -0
  435. package/data/craftbook-templates/in/incident-postmortem/logo.webp +0 -0
  436. package/data/craftbook-templates/in/incident-postmortem/manifest.json +1 -0
  437. package/data/craftbook-templates/in/insurance-inventory/art.json +13 -0
  438. package/data/craftbook-templates/in/insurance-inventory/logo.webp +0 -0
  439. package/data/craftbook-templates/in/insurance-inventory/manifest.json +1 -0
  440. package/data/craftbook-templates/in/interactive-quiz/art.json +13 -0
  441. package/data/craftbook-templates/in/interactive-quiz/logo.webp +0 -0
  442. package/data/craftbook-templates/in/interactive-quiz/manifest.json +1 -0
  443. package/data/craftbook-templates/in/investigate/art.json +12 -0
  444. package/data/craftbook-templates/in/investigate/logo.webp +0 -0
  445. package/data/craftbook-templates/in/investigate/manifest.json +1 -0
  446. package/data/craftbook-templates/in/investigate/versions/1.1.0/craftbook.json +81 -0
  447. package/data/craftbook-templates/in/investigate/versions/1.1.0/test.json +122 -0
  448. package/data/craftbook-templates/in/investigate-root-cause/art.json +12 -0
  449. package/data/craftbook-templates/in/investigate-root-cause/logo.webp +0 -0
  450. package/data/craftbook-templates/in/investigate-root-cause/manifest.json +1 -0
  451. package/data/craftbook-templates/in/invitation-design/art.json +13 -0
  452. package/data/craftbook-templates/in/invitation-design/logo.webp +0 -0
  453. package/data/craftbook-templates/in/invitation-design/manifest.json +1 -0
  454. package/data/craftbook-templates/in/invoice-generator/art.json +13 -0
  455. package/data/craftbook-templates/in/invoice-generator/logo.webp +0 -0
  456. package/data/craftbook-templates/in/invoice-generator/manifest.json +1 -0
  457. package/data/craftbook-templates/in/invoice-run/art.json +13 -0
  458. package/data/craftbook-templates/in/invoice-run/logo.webp +0 -0
  459. package/data/craftbook-templates/in/invoice-run/manifest.json +1 -0
  460. package/data/craftbook-templates/in/invoice-run/versions/1.1.0/craftbook.json +168 -0
  461. package/data/craftbook-templates/in/invoice-run/versions/1.1.0/test.json +140 -0
  462. package/data/craftbook-templates/index.json +1 -1
  463. package/data/craftbook-templates/it/item-intake/art.json +13 -0
  464. package/data/craftbook-templates/it/item-intake/logo.webp +0 -0
  465. package/data/craftbook-templates/it/item-intake/manifest.json +1 -0
  466. package/data/craftbook-templates/ju/juice-pass/art.json +13 -0
  467. package/data/craftbook-templates/ju/juice-pass/logo.webp +0 -0
  468. package/data/craftbook-templates/ju/juice-pass/manifest.json +1 -0
  469. package/data/craftbook-templates/kn/knowledge-base-article/art.json +13 -0
  470. package/data/craftbook-templates/kn/knowledge-base-article/logo.webp +0 -0
  471. package/data/craftbook-templates/kn/knowledge-base-article/manifest.json +1 -0
  472. package/data/craftbook-templates/kp/kpi-scorecard/art.json +13 -0
  473. package/data/craftbook-templates/kp/kpi-scorecard/logo.webp +0 -0
  474. package/data/craftbook-templates/kp/kpi-scorecard/manifest.json +1 -0
  475. package/data/craftbook-templates/la/landing-copy/art.json +13 -0
  476. package/data/craftbook-templates/la/landing-copy/logo.webp +0 -0
  477. package/data/craftbook-templates/la/landing-copy/manifest.json +1 -0
  478. package/data/craftbook-templates/la/landing-page/art.json +13 -0
  479. package/data/craftbook-templates/la/landing-page/logo.webp +0 -0
  480. package/data/craftbook-templates/la/landing-page/manifest.json +1 -0
  481. package/data/craftbook-templates/le/lead-enrichment/art.json +12 -0
  482. package/data/craftbook-templates/le/lead-enrichment/logo.webp +0 -0
  483. package/data/craftbook-templates/le/lead-enrichment/manifest.json +1 -0
  484. package/data/craftbook-templates/li/library-package/art.json +13 -0
  485. package/data/craftbook-templates/li/library-package/logo.webp +0 -0
  486. package/data/craftbook-templates/li/library-package/manifest.json +1 -0
  487. package/data/craftbook-templates/li/literature-review/art.json +13 -0
  488. package/data/craftbook-templates/li/literature-review/logo.webp +0 -0
  489. package/data/craftbook-templates/li/literature-review/manifest.json +1 -0
  490. package/data/craftbook-templates/li/live-browser-qa/art.json +12 -0
  491. package/data/craftbook-templates/li/live-browser-qa/logo.webp +0 -0
  492. package/data/craftbook-templates/li/live-browser-qa/manifest.json +1 -0
  493. package/data/craftbook-templates/lo/localize-content/art.json +12 -0
  494. package/data/craftbook-templates/lo/localize-content/logo.webp +0 -0
  495. package/data/craftbook-templates/lo/localize-content/manifest.json +1 -0
  496. package/data/craftbook-templates/lo/logo-set/art.json +13 -0
  497. package/data/craftbook-templates/lo/logo-set/logo.webp +0 -0
  498. package/data/craftbook-templates/lo/logo-set/manifest.json +1 -0
  499. package/data/craftbook-templates/ma/market-scan/art.json +13 -0
  500. package/data/craftbook-templates/ma/market-scan/logo.webp +0 -0
  501. package/data/craftbook-templates/ma/market-scan/manifest.json +1 -0
  502. package/data/craftbook-templates/me/meeting-minutes/art.json +13 -0
  503. package/data/craftbook-templates/me/meeting-minutes/logo.webp +0 -0
  504. package/data/craftbook-templates/me/meeting-minutes/manifest.json +1 -0
  505. package/data/craftbook-templates/me/meeting-notes-to-actions/art.json +13 -0
  506. package/data/craftbook-templates/me/meeting-notes-to-actions/logo.webp +0 -0
  507. package/data/craftbook-templates/me/meeting-notes-to-actions/manifest.json +1 -0
  508. package/data/craftbook-templates/me/meeting-prep-brief/art.json +13 -0
  509. package/data/craftbook-templates/me/meeting-prep-brief/logo.webp +0 -0
  510. package/data/craftbook-templates/me/meeting-prep-brief/manifest.json +1 -0
  511. package/data/craftbook-templates/me/meeting-summary-audio/art.json +13 -0
  512. package/data/craftbook-templates/me/meeting-summary-audio/logo.webp +0 -0
  513. package/data/craftbook-templates/me/meeting-summary-audio/manifest.json +1 -0
  514. package/data/craftbook-templates/me/memory-prompt-session/art.json +13 -0
  515. package/data/craftbook-templates/me/memory-prompt-session/logo.webp +0 -0
  516. package/data/craftbook-templates/me/memory-prompt-session/manifest.json +1 -0
  517. package/data/craftbook-templates/me/message-queue-consumer/art.json +13 -0
  518. package/data/craftbook-templates/me/message-queue-consumer/logo.webp +0 -0
  519. package/data/craftbook-templates/me/message-queue-consumer/manifest.json +1 -0
  520. package/data/craftbook-templates/mi/micro-game-jam/art.json +13 -0
  521. package/data/craftbook-templates/mi/micro-game-jam/logo.webp +0 -0
  522. package/data/craftbook-templates/mi/micro-game-jam/manifest.json +1 -0
  523. package/data/craftbook-templates/mo/mock-interview/art.json +13 -0
  524. package/data/craftbook-templates/mo/mock-interview/logo.webp +0 -0
  525. package/data/craftbook-templates/mo/mock-interview/manifest.json +1 -0
  526. package/data/craftbook-templates/mo/mod-scaffold/art.json +13 -0
  527. package/data/craftbook-templates/mo/mod-scaffold/logo.webp +0 -0
  528. package/data/craftbook-templates/mo/mod-scaffold/manifest.json +1 -0
  529. package/data/craftbook-templates/mo/monitor-and-alert/art.json +13 -0
  530. package/data/craftbook-templates/mo/monitor-and-alert/logo.webp +0 -0
  531. package/data/craftbook-templates/mo/monitor-and-alert/manifest.json +1 -0
  532. package/data/craftbook-templates/mo/month-close/art.json +13 -0
  533. package/data/craftbook-templates/mo/month-close/logo.webp +0 -0
  534. package/data/craftbook-templates/mo/month-close/manifest.json +1 -0
  535. package/data/craftbook-templates/mo/monthly-recording-review/art.json +12 -0
  536. package/data/craftbook-templates/mo/monthly-recording-review/logo.webp +0 -0
  537. package/data/craftbook-templates/mo/monthly-recording-review/manifest.json +1 -0
  538. package/data/craftbook-templates/mo/moodboard/art.json +13 -0
  539. package/data/craftbook-templates/mo/moodboard/logo.webp +0 -0
  540. package/data/craftbook-templates/mo/moodboard/manifest.json +1 -0
  541. package/data/craftbook-templates/mo/morning-brief/art.json +13 -0
  542. package/data/craftbook-templates/mo/morning-brief/logo.webp +0 -0
  543. package/data/craftbook-templates/mo/morning-brief/manifest.json +1 -0
  544. package/data/craftbook-templates/mo/morning-report/art.json +13 -0
  545. package/data/craftbook-templates/mo/morning-report/logo.webp +0 -0
  546. package/data/craftbook-templates/mo/morning-report/manifest.json +1 -0
  547. package/data/craftbook-templates/mu/music-metadata-tag/art.json +13 -0
  548. package/data/craftbook-templates/mu/music-metadata-tag/logo.webp +0 -0
  549. package/data/craftbook-templates/mu/music-metadata-tag/manifest.json +1 -0
  550. package/data/craftbook-templates/na/narrated-slideshow/art.json +13 -0
  551. package/data/craftbook-templates/na/narrated-slideshow/logo.webp +0 -0
  552. package/data/craftbook-templates/na/narrated-slideshow/manifest.json +1 -0
  553. package/data/craftbook-templates/ne/newsletter-issue/art.json +13 -0
  554. package/data/craftbook-templates/ne/newsletter-issue/logo.webp +0 -0
  555. package/data/craftbook-templates/ne/newsletter-issue/manifest.json +1 -0
  556. package/data/craftbook-templates/no/notification-router/art.json +13 -0
  557. package/data/craftbook-templates/no/notification-router/logo.webp +0 -0
  558. package/data/craftbook-templates/no/notification-router/manifest.json +1 -0
  559. package/data/craftbook-templates/oc/ocr-extract/art.json +13 -0
  560. package/data/craftbook-templates/oc/ocr-extract/logo.webp +0 -0
  561. package/data/craftbook-templates/oc/ocr-extract/manifest.json +1 -0
  562. package/data/craftbook-templates/of/offer-compare/art.json +13 -0
  563. package/data/craftbook-templates/of/offer-compare/logo.webp +0 -0
  564. package/data/craftbook-templates/of/offer-compare/manifest.json +1 -0
  565. package/data/craftbook-templates/of/office-hours/art.json +12 -0
  566. package/data/craftbook-templates/of/office-hours/logo.webp +0 -0
  567. package/data/craftbook-templates/of/office-hours/manifest.json +1 -0
  568. package/data/craftbook-templates/of/office-hours/versions/1.1.0/craftbook.json +48 -0
  569. package/data/craftbook-templates/of/office-hours/versions/1.1.0/test.json +118 -0
  570. package/data/craftbook-templates/on/onboarding-checklist/art.json +13 -0
  571. package/data/craftbook-templates/on/onboarding-checklist/logo.webp +0 -0
  572. package/data/craftbook-templates/on/onboarding-checklist/manifest.json +1 -0
  573. package/data/craftbook-templates/on/onboarding-flow/art.json +13 -0
  574. package/data/craftbook-templates/on/onboarding-flow/logo.webp +0 -0
  575. package/data/craftbook-templates/on/onboarding-flow/manifest.json +1 -0
  576. package/data/craftbook-templates/on/oncall-handoff/art.json +12 -0
  577. package/data/craftbook-templates/on/oncall-handoff/logo.webp +0 -0
  578. package/data/craftbook-templates/on/oncall-handoff/manifest.json +1 -0
  579. package/data/craftbook-templates/on/one-pager/art.json +13 -0
  580. package/data/craftbook-templates/on/one-pager/logo.webp +0 -0
  581. package/data/craftbook-templates/on/one-pager/manifest.json +1 -0
  582. package/data/craftbook-templates/op/ops-runbook/art.json +13 -0
  583. package/data/craftbook-templates/op/ops-runbook/logo.webp +0 -0
  584. package/data/craftbook-templates/op/ops-runbook/manifest.json +1 -0
  585. package/data/craftbook-templates/pa/page-spread/art.json +13 -0
  586. package/data/craftbook-templates/pa/page-spread/logo.webp +0 -0
  587. package/data/craftbook-templates/pa/page-spread/manifest.json +1 -0
  588. package/data/craftbook-templates/pa/parser-grammar/art.json +13 -0
  589. package/data/craftbook-templates/pa/parser-grammar/logo.webp +0 -0
  590. package/data/craftbook-templates/pa/parser-grammar/manifest.json +1 -0
  591. package/data/craftbook-templates/pe/perf-audit/art.json +12 -0
  592. package/data/craftbook-templates/pe/perf-audit/logo.webp +0 -0
  593. package/data/craftbook-templates/pe/perf-audit/manifest.json +1 -0
  594. package/data/craftbook-templates/pe/perf-optimization/art.json +12 -0
  595. package/data/craftbook-templates/pe/perf-optimization/logo.webp +0 -0
  596. package/data/craftbook-templates/pe/perf-optimization/manifest.json +1 -0
  597. package/data/craftbook-templates/pe/pest-diagnosis/art.json +13 -0
  598. package/data/craftbook-templates/pe/pest-diagnosis/logo.webp +0 -0
  599. package/data/craftbook-templates/pe/pest-diagnosis/manifest.json +1 -0
  600. package/data/craftbook-templates/ph/photo-cull/art.json +13 -0
  601. package/data/craftbook-templates/ph/photo-cull/logo.webp +0 -0
  602. package/data/craftbook-templates/ph/photo-cull/manifest.json +1 -0
  603. package/data/craftbook-templates/ph/physics-toy/art.json +13 -0
  604. package/data/craftbook-templates/ph/physics-toy/logo.webp +0 -0
  605. package/data/craftbook-templates/ph/physics-toy/manifest.json +1 -0
  606. package/data/craftbook-templates/pi/pitch-deck/art.json +13 -0
  607. package/data/craftbook-templates/pi/pitch-deck/logo.webp +0 -0
  608. package/data/craftbook-templates/pi/pitch-deck/manifest.json +1 -0
  609. package/data/craftbook-templates/pl/plan/art.json +12 -0
  610. package/data/craftbook-templates/pl/plan/logo.webp +0 -0
  611. package/data/craftbook-templates/pl/plan/manifest.json +1 -0
  612. package/data/craftbook-templates/pl/playtest-report/art.json +12 -0
  613. package/data/craftbook-templates/pl/playtest-report/logo.webp +0 -0
  614. package/data/craftbook-templates/pl/playtest-report/manifest.json +1 -0
  615. package/data/craftbook-templates/po/podcast-chaptering/art.json +13 -0
  616. package/data/craftbook-templates/po/podcast-chaptering/logo.webp +0 -0
  617. package/data/craftbook-templates/po/podcast-chaptering/manifest.json +1 -0
  618. package/data/craftbook-templates/po/portfolio-site/art.json +13 -0
  619. package/data/craftbook-templates/po/portfolio-site/logo.webp +0 -0
  620. package/data/craftbook-templates/po/portfolio-site/manifest.json +1 -0
  621. package/data/craftbook-templates/po/powerpoint-deck/art.json +13 -0
  622. package/data/craftbook-templates/po/powerpoint-deck/logo.webp +0 -0
  623. package/data/craftbook-templates/po/powerpoint-deck/manifest.json +1 -0
  624. package/data/craftbook-templates/po/powerpoint-deck/versions/1.1.0/craftbook.json +128 -0
  625. package/data/craftbook-templates/po/powerpoint-deck/versions/1.1.0/test.json +97 -0
  626. package/data/craftbook-templates/pr/pr-security-review/art.json +12 -0
  627. package/data/craftbook-templates/pr/pr-security-review/logo.webp +0 -0
  628. package/data/craftbook-templates/pr/pr-security-review/manifest.json +1 -0
  629. package/data/craftbook-templates/pr/practice-exam/art.json +12 -0
  630. package/data/craftbook-templates/pr/practice-exam/logo.webp +0 -0
  631. package/data/craftbook-templates/pr/practice-exam/manifest.json +1 -0
  632. package/data/craftbook-templates/pr/practice-session/art.json +13 -0
  633. package/data/craftbook-templates/pr/practice-session/logo.webp +0 -0
  634. package/data/craftbook-templates/pr/practice-session/manifest.json +1 -0
  635. package/data/craftbook-templates/pr/pre-departure-countdown/art.json +13 -0
  636. package/data/craftbook-templates/pr/pre-departure-countdown/logo.webp +0 -0
  637. package/data/craftbook-templates/pr/pre-departure-countdown/manifest.json +1 -0
  638. package/data/craftbook-templates/pr/press-release/art.json +13 -0
  639. package/data/craftbook-templates/pr/press-release/logo.webp +0 -0
  640. package/data/craftbook-templates/pr/press-release/manifest.json +1 -0
  641. package/data/craftbook-templates/pr/price-tracker/art.json +13 -0
  642. package/data/craftbook-templates/pr/price-tracker/logo.webp +0 -0
  643. package/data/craftbook-templates/pr/price-tracker/manifest.json +1 -0
  644. package/data/craftbook-templates/pr/pricing-page/art.json +13 -0
  645. package/data/craftbook-templates/pr/pricing-page/logo.webp +0 -0
  646. package/data/craftbook-templates/pr/pricing-page/manifest.json +1 -0
  647. package/data/craftbook-templates/pr/product-descriptions/art.json +13 -0
  648. package/data/craftbook-templates/pr/product-descriptions/logo.webp +0 -0
  649. package/data/craftbook-templates/pr/product-descriptions/manifest.json +1 -0
  650. package/data/craftbook-templates/pr/proposal-sow/art.json +13 -0
  651. package/data/craftbook-templates/pr/proposal-sow/logo.webp +0 -0
  652. package/data/craftbook-templates/pr/proposal-sow/manifest.json +1 -0
  653. package/data/craftbook-templates/pu/pull-request-review/art.json +12 -0
  654. package/data/craftbook-templates/pu/pull-request-review/logo.webp +0 -0
  655. package/data/craftbook-templates/pu/pull-request-review/manifest.json +1 -0
  656. package/data/craftbook-templates/pu/pull-request-review/versions/1.1.0/craftbook.json +118 -0
  657. package/data/craftbook-templates/pu/pull-request-review/versions/1.1.0/test.json +160 -0
  658. package/data/craftbook-templates/pu/puzzle-pack-layout/art.json +13 -0
  659. package/data/craftbook-templates/pu/puzzle-pack-layout/logo.webp +0 -0
  660. package/data/craftbook-templates/pu/puzzle-pack-layout/manifest.json +1 -0
  661. package/data/craftbook-templates/pw/pwa-offline/art.json +13 -0
  662. package/data/craftbook-templates/pw/pwa-offline/logo.webp +0 -0
  663. package/data/craftbook-templates/pw/pwa-offline/manifest.json +1 -0
  664. package/data/craftbook-templates/qa/qa/art.json +12 -0
  665. package/data/craftbook-templates/qa/qa/logo.webp +0 -0
  666. package/data/craftbook-templates/qa/qa/manifest.json +1 -0
  667. package/data/craftbook-templates/qu/quarterly-summary/art.json +13 -0
  668. package/data/craftbook-templates/qu/quarterly-summary/logo.webp +0 -0
  669. package/data/craftbook-templates/qu/quarterly-summary/manifest.json +1 -0
  670. package/data/craftbook-templates/re/reading-list/art.json +13 -0
  671. package/data/craftbook-templates/re/reading-list/logo.webp +0 -0
  672. package/data/craftbook-templates/re/reading-list/manifest.json +1 -0
  673. package/data/craftbook-templates/re/receipt-intake/art.json +13 -0
  674. package/data/craftbook-templates/re/receipt-intake/logo.webp +0 -0
  675. package/data/craftbook-templates/re/receipt-intake/manifest.json +1 -0
  676. package/data/craftbook-templates/re/receipt-ocr-ledger/art.json +13 -0
  677. package/data/craftbook-templates/re/receipt-ocr-ledger/logo.webp +0 -0
  678. package/data/craftbook-templates/re/receipt-ocr-ledger/manifest.json +1 -0
  679. package/data/craftbook-templates/re/recipe-capture/art.json +12 -0
  680. package/data/craftbook-templates/re/recipe-capture/logo.webp +0 -0
  681. package/data/craftbook-templates/re/recipe-capture/manifest.json +1 -0
  682. package/data/craftbook-templates/re/record-a-relative/art.json +13 -0
  683. package/data/craftbook-templates/re/record-a-relative/logo.webp +0 -0
  684. package/data/craftbook-templates/re/record-a-relative/manifest.json +1 -0
  685. package/data/craftbook-templates/re/recurring-invoice-run/art.json +13 -0
  686. package/data/craftbook-templates/re/recurring-invoice-run/logo.webp +0 -0
  687. package/data/craftbook-templates/re/recurring-invoice-run/manifest.json +1 -0
  688. package/data/craftbook-templates/re/refactor-module/art.json +12 -0
  689. package/data/craftbook-templates/re/refactor-module/logo.webp +0 -0
  690. package/data/craftbook-templates/re/refactor-module/manifest.json +1 -0
  691. package/data/craftbook-templates/re/regex-builder/art.json +12 -0
  692. package/data/craftbook-templates/re/regex-builder/logo.webp +0 -0
  693. package/data/craftbook-templates/re/regex-builder/manifest.json +1 -0
  694. package/data/craftbook-templates/re/release-announcement/art.json +13 -0
  695. package/data/craftbook-templates/re/release-announcement/logo.webp +0 -0
  696. package/data/craftbook-templates/re/release-announcement/manifest.json +1 -0
  697. package/data/craftbook-templates/re/release-notes/art.json +13 -0
  698. package/data/craftbook-templates/re/release-notes/logo.webp +0 -0
  699. package/data/craftbook-templates/re/release-notes/manifest.json +1 -0
  700. package/data/craftbook-templates/re/release-pipeline-ci/art.json +13 -0
  701. package/data/craftbook-templates/re/release-pipeline-ci/logo.webp +0 -0
  702. package/data/craftbook-templates/re/release-pipeline-ci/manifest.json +1 -0
  703. package/data/craftbook-templates/re/release-readiness-review/art.json +13 -0
  704. package/data/craftbook-templates/re/release-readiness-review/logo.webp +0 -0
  705. package/data/craftbook-templates/re/release-readiness-review/manifest.json +1 -0
  706. package/data/craftbook-templates/re/reliability-review/art.json +12 -0
  707. package/data/craftbook-templates/re/reliability-review/logo.webp +0 -0
  708. package/data/craftbook-templates/re/reliability-review/manifest.json +1 -0
  709. package/data/craftbook-templates/re/report-pdf/art.json +13 -0
  710. package/data/craftbook-templates/re/report-pdf/logo.webp +0 -0
  711. package/data/craftbook-templates/re/report-pdf/manifest.json +1 -0
  712. package/data/craftbook-templates/re/research-report/art.json +13 -0
  713. package/data/craftbook-templates/re/research-report/logo.webp +0 -0
  714. package/data/craftbook-templates/re/research-report/manifest.json +1 -0
  715. package/data/craftbook-templates/re/research-to-document/art.json +13 -0
  716. package/data/craftbook-templates/re/research-to-document/logo.webp +0 -0
  717. package/data/craftbook-templates/re/research-to-document/manifest.json +1 -0
  718. package/data/craftbook-templates/re/research-to-document/versions/1.1.0/craftbook.json +158 -0
  719. package/data/craftbook-templates/re/research-to-document/versions/1.1.0/test.json +97 -0
  720. package/data/craftbook-templates/re/rest-api/art.json +13 -0
  721. package/data/craftbook-templates/re/rest-api/logo.webp +0 -0
  722. package/data/craftbook-templates/re/rest-api/manifest.json +1 -0
  723. package/data/craftbook-templates/re/resume-cv/art.json +13 -0
  724. package/data/craftbook-templates/re/resume-cv/logo.webp +0 -0
  725. package/data/craftbook-templates/re/resume-cv/manifest.json +1 -0
  726. package/data/craftbook-templates/re/reviewer-loop/art.json +12 -0
  727. package/data/craftbook-templates/re/reviewer-loop/logo.webp +0 -0
  728. package/data/craftbook-templates/re/reviewer-loop/manifest.json +1 -0
  729. package/data/craftbook-templates/ro/rollback-plan/art.json +13 -0
  730. package/data/craftbook-templates/ro/rollback-plan/logo.webp +0 -0
  731. package/data/craftbook-templates/ro/rollback-plan/manifest.json +1 -0
  732. package/data/craftbook-templates/ro/root-cause-investigation/art.json +12 -0
  733. package/data/craftbook-templates/ro/root-cause-investigation/logo.webp +0 -0
  734. package/data/craftbook-templates/ro/root-cause-investigation/manifest.json +1 -0
  735. package/data/craftbook-templates/ro/rough-cut-assembly/art.json +13 -0
  736. package/data/craftbook-templates/ro/rough-cut-assembly/logo.webp +0 -0
  737. package/data/craftbook-templates/ro/rough-cut-assembly/manifest.json +1 -0
  738. package/data/craftbook-templates/ru/runbook/art.json +12 -0
  739. package/data/craftbook-templates/ru/runbook/logo.webp +0 -0
  740. package/data/craftbook-templates/ru/runbook/manifest.json +1 -0
  741. package/data/craftbook-templates/sc/schema-migration/art.json +13 -0
  742. package/data/craftbook-templates/sc/schema-migration/logo.webp +0 -0
  743. package/data/craftbook-templates/sc/schema-migration/manifest.json +1 -0
  744. package/data/craftbook-templates/sc/scrape-to-structured/art.json +13 -0
  745. package/data/craftbook-templates/sc/scrape-to-structured/logo.webp +0 -0
  746. package/data/craftbook-templates/sc/scrape-to-structured/manifest.json +1 -0
  747. package/data/craftbook-templates/sc/script-automation/art.json +12 -0
  748. package/data/craftbook-templates/sc/script-automation/logo.webp +0 -0
  749. package/data/craftbook-templates/sc/script-automation/manifest.json +1 -0
  750. package/data/craftbook-templates/sd/sdk-wrapper/art.json +13 -0
  751. package/data/craftbook-templates/sd/sdk-wrapper/logo.webp +0 -0
  752. package/data/craftbook-templates/sd/sdk-wrapper/manifest.json +1 -0
  753. package/data/craftbook-templates/se/seasonal-maintenance-sweep/art.json +13 -0
  754. package/data/craftbook-templates/se/seasonal-maintenance-sweep/logo.webp +0 -0
  755. package/data/craftbook-templates/se/seasonal-maintenance-sweep/manifest.json +1 -0
  756. package/data/craftbook-templates/se/security-architecture-review/art.json +12 -0
  757. package/data/craftbook-templates/se/security-architecture-review/logo.webp +0 -0
  758. package/data/craftbook-templates/se/security-architecture-review/manifest.json +1 -0
  759. package/data/craftbook-templates/se/security-architecture-review/versions/1.1.0/craftbook.json +28 -0
  760. package/data/craftbook-templates/se/security-architecture-review/versions/1.1.0/test.json +110 -0
  761. package/data/craftbook-templates/se/seo-meta-pack/art.json +13 -0
  762. package/data/craftbook-templates/se/seo-meta-pack/logo.webp +0 -0
  763. package/data/craftbook-templates/se/seo-meta-pack/manifest.json +1 -0
  764. package/data/craftbook-templates/sh/ship/art.json +12 -0
  765. package/data/craftbook-templates/sh/ship/logo.webp +0 -0
  766. package/data/craftbook-templates/sh/ship/manifest.json +1 -0
  767. package/data/craftbook-templates/sh/ship/versions/1.1.0/craftbook.json +137 -0
  768. package/data/craftbook-templates/sh/ship/versions/1.1.0/test.json +225 -0
  769. package/data/craftbook-templates/so/social-thread/art.json +13 -0
  770. package/data/craftbook-templates/so/social-thread/logo.webp +0 -0
  771. package/data/craftbook-templates/so/social-thread/manifest.json +1 -0
  772. package/data/craftbook-templates/so/source-quality-audit/art.json +12 -0
  773. package/data/craftbook-templates/so/source-quality-audit/logo.webp +0 -0
  774. package/data/craftbook-templates/so/source-quality-audit/manifest.json +1 -0
  775. package/data/craftbook-templates/sp/spa-dashboard/art.json +13 -0
  776. package/data/craftbook-templates/sp/spa-dashboard/logo.webp +0 -0
  777. package/data/craftbook-templates/sp/spa-dashboard/manifest.json +1 -0
  778. package/data/craftbook-templates/sp/spec-authoring/art.json +13 -0
  779. package/data/craftbook-templates/sp/spec-authoring/logo.webp +0 -0
  780. package/data/craftbook-templates/sp/spec-authoring/manifest.json +1 -0
  781. package/data/craftbook-templates/sp/spec-doc/art.json +13 -0
  782. package/data/craftbook-templates/sp/spec-doc/logo.webp +0 -0
  783. package/data/craftbook-templates/sp/spec-doc/manifest.json +1 -0
  784. package/data/craftbook-templates/sp/spreadsheet-model/art.json +13 -0
  785. package/data/craftbook-templates/sp/spreadsheet-model/logo.webp +0 -0
  786. package/data/craftbook-templates/sp/spreadsheet-model/manifest.json +1 -0
  787. package/data/craftbook-templates/sp/sprite-sheet/art.json +13 -0
  788. package/data/craftbook-templates/sp/sprite-sheet/logo.webp +0 -0
  789. package/data/craftbook-templates/sp/sprite-sheet/manifest.json +1 -0
  790. package/data/craftbook-templates/sq/sql-analysis/art.json +13 -0
  791. package/data/craftbook-templates/sq/sql-analysis/logo.webp +0 -0
  792. package/data/craftbook-templates/sq/sql-analysis/manifest.json +1 -0
  793. package/data/craftbook-templates/st/standup-summary/art.json +13 -0
  794. package/data/craftbook-templates/st/standup-summary/logo.webp +0 -0
  795. package/data/craftbook-templates/st/standup-summary/manifest.json +1 -0
  796. package/data/craftbook-templates/st/state-machine/art.json +12 -0
  797. package/data/craftbook-templates/st/state-machine/logo.webp +0 -0
  798. package/data/craftbook-templates/st/state-machine/manifest.json +1 -0
  799. package/data/craftbook-templates/st/status-report/art.json +13 -0
  800. package/data/craftbook-templates/st/status-report/logo.webp +0 -0
  801. package/data/craftbook-templates/st/status-report/manifest.json +1 -0
  802. package/data/craftbook-templates/su/subscription-audit/art.json +12 -0
  803. package/data/craftbook-templates/su/subscription-audit/logo.webp +0 -0
  804. package/data/craftbook-templates/su/subscription-audit/manifest.json +1 -0
  805. package/data/craftbook-templates/su/subtitle-generator/art.json +13 -0
  806. package/data/craftbook-templates/su/subtitle-generator/logo.webp +0 -0
  807. package/data/craftbook-templates/su/subtitle-generator/manifest.json +1 -0
  808. package/data/craftbook-templates/su/summarize-long/art.json +13 -0
  809. package/data/craftbook-templates/su/summarize-long/logo.webp +0 -0
  810. package/data/craftbook-templates/su/summarize-long/manifest.json +1 -0
  811. package/data/craftbook-templates/su/survey-analysis/art.json +13 -0
  812. package/data/craftbook-templates/su/survey-analysis/logo.webp +0 -0
  813. package/data/craftbook-templates/su/survey-analysis/manifest.json +1 -0
  814. package/data/craftbook-templates/sv/svg-animation/art.json +13 -0
  815. package/data/craftbook-templates/sv/svg-animation/logo.webp +0 -0
  816. package/data/craftbook-templates/sv/svg-animation/manifest.json +1 -0
  817. package/data/craftbook-templates/ta/tailor-resume/art.json +13 -0
  818. package/data/craftbook-templates/ta/tailor-resume/logo.webp +0 -0
  819. package/data/craftbook-templates/ta/tailor-resume/manifest.json +1 -0
  820. package/data/craftbook-templates/te/technical-documentation/art.json +13 -0
  821. package/data/craftbook-templates/te/technical-documentation/logo.webp +0 -0
  822. package/data/craftbook-templates/te/technical-documentation/manifest.json +1 -0
  823. package/data/craftbook-templates/te/test-coverage-review/art.json +12 -0
  824. package/data/craftbook-templates/te/test-coverage-review/logo.webp +0 -0
  825. package/data/craftbook-templates/te/test-coverage-review/manifest.json +1 -0
  826. package/data/craftbook-templates/te/test-suite-backfill/art.json +12 -0
  827. package/data/craftbook-templates/te/test-suite-backfill/logo.webp +0 -0
  828. package/data/craftbook-templates/te/test-suite-backfill/manifest.json +1 -0
  829. package/data/craftbook-templates/th/thank-you-batch/art.json +13 -0
  830. package/data/craftbook-templates/th/thank-you-batch/logo.webp +0 -0
  831. package/data/craftbook-templates/th/thank-you-batch/manifest.json +1 -0
  832. package/data/craftbook-templates/th/thank-you-sweep/art.json +13 -0
  833. package/data/craftbook-templates/th/thank-you-sweep/logo.webp +0 -0
  834. package/data/craftbook-templates/th/thank-you-sweep/manifest.json +1 -0
  835. package/data/craftbook-templates/th/threat-model/art.json +13 -0
  836. package/data/craftbook-templates/th/threat-model/logo.webp +0 -0
  837. package/data/craftbook-templates/th/threat-model/manifest.json +1 -0
  838. package/data/craftbook-templates/th/thumbnail-generator/art.json +13 -0
  839. package/data/craftbook-templates/th/thumbnail-generator/logo.webp +0 -0
  840. package/data/craftbook-templates/th/thumbnail-generator/manifest.json +1 -0
  841. package/data/craftbook-templates/ti/tileset-batch/art.json +13 -0
  842. package/data/craftbook-templates/ti/tileset-batch/logo.webp +0 -0
  843. package/data/craftbook-templates/ti/tileset-batch/manifest.json +1 -0
  844. package/data/craftbook-templates/to/tone-rewrite/art.json +13 -0
  845. package/data/craftbook-templates/to/tone-rewrite/logo.webp +0 -0
  846. package/data/craftbook-templates/to/tone-rewrite/manifest.json +1 -0
  847. package/data/craftbook-templates/to/topic-explainer/art.json +13 -0
  848. package/data/craftbook-templates/to/topic-explainer/logo.webp +0 -0
  849. package/data/craftbook-templates/to/topic-explainer/manifest.json +1 -0
  850. package/data/craftbook-templates/tr/transcribe-and-shownotes/art.json +13 -0
  851. package/data/craftbook-templates/tr/transcribe-and-shownotes/logo.webp +0 -0
  852. package/data/craftbook-templates/tr/transcribe-and-shownotes/manifest.json +1 -0
  853. package/data/craftbook-templates/tr/transcribe-audio/art.json +13 -0
  854. package/data/craftbook-templates/tr/transcribe-audio/logo.webp +0 -0
  855. package/data/craftbook-templates/tr/transcribe-audio/manifest.json +1 -0
  856. package/data/craftbook-templates/tr/transcribe-index/art.json +13 -0
  857. package/data/craftbook-templates/tr/transcribe-index/logo.webp +0 -0
  858. package/data/craftbook-templates/tr/transcribe-index/manifest.json +1 -0
  859. package/data/craftbook-templates/ty/type-safety-pass/art.json +12 -0
  860. package/data/craftbook-templates/ty/type-safety-pass/logo.webp +0 -0
  861. package/data/craftbook-templates/ty/type-safety-pass/manifest.json +1 -0
  862. package/data/craftbook-templates/ve/version-bump/art.json +13 -0
  863. package/data/craftbook-templates/ve/version-bump/logo.webp +0 -0
  864. package/data/craftbook-templates/ve/version-bump/manifest.json +1 -0
  865. package/data/craftbook-templates/vi/video-storyboard/art.json +13 -0
  866. package/data/craftbook-templates/vi/video-storyboard/logo.webp +0 -0
  867. package/data/craftbook-templates/vi/video-storyboard/manifest.json +1 -0
  868. package/data/craftbook-templates/vi/visit-prep/art.json +13 -0
  869. package/data/craftbook-templates/vi/visit-prep/logo.webp +0 -0
  870. package/data/craftbook-templates/vi/visit-prep/manifest.json +1 -0
  871. package/data/craftbook-templates/vo/voiceover-script/art.json +13 -0
  872. package/data/craftbook-templates/vo/voiceover-script/logo.webp +0 -0
  873. package/data/craftbook-templates/vo/voiceover-script/manifest.json +1 -0
  874. package/data/craftbook-templates/we/weak-spot-drill/art.json +13 -0
  875. package/data/craftbook-templates/we/weak-spot-drill/logo.webp +0 -0
  876. package/data/craftbook-templates/we/weak-spot-drill/manifest.json +1 -0
  877. package/data/craftbook-templates/we/web-app-crud/art.json +13 -0
  878. package/data/craftbook-templates/we/web-app-crud/logo.webp +0 -0
  879. package/data/craftbook-templates/we/web-app-crud/manifest.json +1 -0
  880. package/data/craftbook-templates/we/web-component/art.json +13 -0
  881. package/data/craftbook-templates/we/web-component/logo.webp +0 -0
  882. package/data/craftbook-templates/we/web-component/manifest.json +1 -0
  883. package/data/craftbook-templates/we/webhook-handler/art.json +13 -0
  884. package/data/craftbook-templates/we/webhook-handler/logo.webp +0 -0
  885. package/data/craftbook-templates/we/webhook-handler/manifest.json +1 -0
  886. package/data/craftbook-templates/we/week-plan/art.json +13 -0
  887. package/data/craftbook-templates/we/week-plan/logo.webp +0 -0
  888. package/data/craftbook-templates/we/week-plan/manifest.json +1 -0
  889. package/data/craftbook-templates/we/weekly-menu-plan/art.json +13 -0
  890. package/data/craftbook-templates/we/weekly-menu-plan/logo.webp +0 -0
  891. package/data/craftbook-templates/we/weekly-menu-plan/manifest.json +1 -0
  892. package/data/craftbook-templates/we/weekly-pipeline-review/art.json +13 -0
  893. package/data/craftbook-templates/we/weekly-pipeline-review/logo.webp +0 -0
  894. package/data/craftbook-templates/we/weekly-pipeline-review/manifest.json +1 -0
  895. package/data/craftbook-templates/we/weekly-review/art.json +13 -0
  896. package/data/craftbook-templates/we/weekly-review/logo.webp +0 -0
  897. package/data/craftbook-templates/we/weekly-review/manifest.json +1 -0
  898. package/data/craftbook-templates/we/weekly-walkthrough/art.json +13 -0
  899. package/data/craftbook-templates/we/weekly-walkthrough/logo.webp +0 -0
  900. package/data/craftbook-templates/we/weekly-walkthrough/manifest.json +1 -0
  901. package/data/craftbook-templates/wh/whitepaper/art.json +13 -0
  902. package/data/craftbook-templates/wh/whitepaper/logo.webp +0 -0
  903. package/data/craftbook-templates/wh/whitepaper/manifest.json +1 -0
  904. package/data/craftbook-templates/ye/year-in-review/art.json +13 -0
  905. package/data/craftbook-templates/ye/year-in-review/logo.webp +0 -0
  906. package/data/craftbook-templates/ye/year-in-review/manifest.json +1 -0
  907. package/data/craftbook-templates/yo/youtube-chapters-seo/art.json +13 -0
  908. package/data/craftbook-templates/yo/youtube-chapters-seo/logo.webp +0 -0
  909. package/data/craftbook-templates/yo/youtube-chapters-seo/manifest.json +1 -0
  910. package/data/gezel-templates/ch/chess-player/manifest.json +20 -0
  911. package/data/gezel-templates/ch/chess-player/versions/1.0.0/about.md +21 -0
  912. package/data/gezel-templates/ch/chess-player/versions/1.0.0/manifest.json +10 -0
  913. package/data/gezel-templates/go/go-player/manifest.json +22 -0
  914. package/data/gezel-templates/go/go-player/versions/1.0.0/about.md +22 -0
  915. package/data/gezel-templates/go/go-player/versions/1.0.0/manifest.json +10 -0
  916. package/data/gezel-templates/index.json +1 -1
  917. package/data/project-types/ch/chess/manifest.json +20 -0
  918. package/data/project-types/ch/chess/versions/1.0.0/about.md +9 -0
  919. package/data/project-types/ch/chess/versions/1.0.0/game.json +127 -0
  920. package/data/project-types/ch/chess/versions/1.0.0/manifest.json +180 -0
  921. package/data/project-types/ch/chess/versions/1.0.0/mission.md +8 -0
  922. package/data/project-types/ch/chess/versions/1.0.0/pages/board/index.html +574 -0
  923. package/data/project-types/go/go/manifest.json +22 -0
  924. package/data/project-types/go/go/versions/1.0.0/about.md +9 -0
  925. package/data/project-types/go/go/versions/1.0.0/game.json +103 -0
  926. package/data/project-types/go/go/versions/1.0.0/manifest.json +166 -0
  927. package/data/project-types/go/go/versions/1.0.0/mission.md +8 -0
  928. package/data/project-types/go/go/versions/1.0.0/pages/board/index.html +637 -0
  929. package/data/project-types/index.json +1 -1
  930. package/package.json +2 -1
  931. package/schemas/chat-model-version.schema.json +27 -0
  932. package/schemas/craftbook-doc.schema.json +12 -0
  933. package/schemas/craftbook-template-version.schema.json +12 -0
  934. package/schemas/craftbook-test.schema.json +12 -0
@@ -0,0 +1,9 @@
1
+ A standing chess table. You play white on the board in the **Output** tab;
2
+ your Schaakspeler plays black — reading the exact position, replying on the
3
+ board, and keeping up a light line of {{personality}} table talk.
4
+
5
+ The Schaakspeler plays as an **{{playStyle}}**: opponents keep plans and tactics
6
+ to themselves, while instructors offer one small teaching observation at a
7
+ time. Click a white piece, then a highlighted square. The board enforces the
8
+ whole game — check, castling, en passant, promotion, mate, stalemate, repetition,
9
+ and the fifty-move rule — so neither player has to referee the other.
@@ -0,0 +1,127 @@
1
+ {
2
+ "version": 1,
3
+ "squares": "rnbqkbnrpppppppp................................PPPPPPPPRNBQKBNR",
4
+ "turn": "user",
5
+ "status": "playing",
6
+ "castling": "KQkq",
7
+ "enPassant": null,
8
+ "halfmoveClock": 0,
9
+ "fullmoveNumber": 1,
10
+ "positionHistory": [
11
+ "rnbqkbnrpppppppp................................PPPPPPPPRNBQKBNR|user|KQkq|-"
12
+ ],
13
+ "legalMoves": [
14
+ {
15
+ "from": "a2",
16
+ "to": "a3",
17
+ "capture": false
18
+ },
19
+ {
20
+ "from": "a2",
21
+ "to": "a4",
22
+ "capture": false,
23
+ "doublePawn": true
24
+ },
25
+ {
26
+ "from": "b2",
27
+ "to": "b3",
28
+ "capture": false
29
+ },
30
+ {
31
+ "from": "b2",
32
+ "to": "b4",
33
+ "capture": false,
34
+ "doublePawn": true
35
+ },
36
+ {
37
+ "from": "c2",
38
+ "to": "c3",
39
+ "capture": false
40
+ },
41
+ {
42
+ "from": "c2",
43
+ "to": "c4",
44
+ "capture": false,
45
+ "doublePawn": true
46
+ },
47
+ {
48
+ "from": "d2",
49
+ "to": "d3",
50
+ "capture": false
51
+ },
52
+ {
53
+ "from": "d2",
54
+ "to": "d4",
55
+ "capture": false,
56
+ "doublePawn": true
57
+ },
58
+ {
59
+ "from": "e2",
60
+ "to": "e3",
61
+ "capture": false
62
+ },
63
+ {
64
+ "from": "e2",
65
+ "to": "e4",
66
+ "capture": false,
67
+ "doublePawn": true
68
+ },
69
+ {
70
+ "from": "f2",
71
+ "to": "f3",
72
+ "capture": false
73
+ },
74
+ {
75
+ "from": "f2",
76
+ "to": "f4",
77
+ "capture": false,
78
+ "doublePawn": true
79
+ },
80
+ {
81
+ "from": "g2",
82
+ "to": "g3",
83
+ "capture": false
84
+ },
85
+ {
86
+ "from": "g2",
87
+ "to": "g4",
88
+ "capture": false,
89
+ "doublePawn": true
90
+ },
91
+ {
92
+ "from": "h2",
93
+ "to": "h3",
94
+ "capture": false
95
+ },
96
+ {
97
+ "from": "h2",
98
+ "to": "h4",
99
+ "capture": false,
100
+ "doublePawn": true
101
+ },
102
+ {
103
+ "from": "b1",
104
+ "to": "a3",
105
+ "capture": false
106
+ },
107
+ {
108
+ "from": "b1",
109
+ "to": "c3",
110
+ "capture": false
111
+ },
112
+ {
113
+ "from": "g1",
114
+ "to": "f3",
115
+ "capture": false
116
+ },
117
+ {
118
+ "from": "g1",
119
+ "to": "h3",
120
+ "capture": false
121
+ }
122
+ ],
123
+ "moveLog": [],
124
+ "lastMove": null,
125
+ "lastMoveThought": "",
126
+ "updatedAt": "2026-07-28T00:00:00.000Z"
127
+ }
@@ -0,0 +1,180 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "version": "1.0.0",
4
+ "releasedAt": "2026-07-28T00:00:00Z",
5
+ "meesterManaged": false,
6
+ "mode": "solo",
7
+ "leadLabel": "Opponent",
8
+ "leanProfile": true,
9
+ "tabVisibility": {
10
+ "overview": false,
11
+ "tasks": false,
12
+ "approvals": false,
13
+ "workspace": false,
14
+ "artifacts": false,
15
+ "map": false
16
+ },
17
+ "params": {
18
+ "type": "object",
19
+ "properties": {
20
+ "personality": {
21
+ "type": "string",
22
+ "title": "Table-talk style",
23
+ "description": "How your opponent talks between moves.",
24
+ "enum": [
25
+ "peppy",
26
+ "cheeky",
27
+ "zen",
28
+ "gracious"
29
+ ],
30
+ "default": "peppy"
31
+ },
32
+ "playStyle": {
33
+ "type": "string",
34
+ "title": "How should the Schaakspeler play?",
35
+ "description": "An opponent keeps their strategy to themselves; an instructor offers light teaching notes.",
36
+ "enum": [
37
+ "Opponent",
38
+ "Instructor"
39
+ ],
40
+ "default": "Opponent"
41
+ }
42
+ },
43
+ "required": [
44
+ "personality",
45
+ "playStyle"
46
+ ]
47
+ },
48
+ "nameTemplate": "Chess vs the Schaakspeler",
49
+ "aboutTemplate": "about.md",
50
+ "missionTemplate": "mission.md",
51
+ "gezels": [
52
+ {
53
+ "templateId": "chess-player",
54
+ "voorman": true
55
+ }
56
+ ],
57
+ "scripts": {
58
+ "game-store": "import { type InferredInput, defineScript, gezel } from '@bendyline/gezel-sdk';\n\nexport const meta = defineScript({\n name: 'game-store',\n description:\n \"Read and update the chess game (game.json). Call action:'board' to see the position and every legal move; action:'ai_move' to play your move (from/to, optional promotion and moveThought); action:'state' for a light summary; action:'new_game' to reset. Illegal moves fail with the engine's legal-move list.\",\n inputs: {\n action: {\n type: 'string',\n description: \"One of 'state', 'board', 'user_move', 'ai_move', or 'new_game'.\",\n required: true,\n },\n from: { type: 'string', description: \"Origin square, e.g. 'e7'.\" },\n to: { type: 'string', description: \"Destination square, e.g. 'e5'.\" },\n promotion: {\n type: 'string',\n description: \"Promotion piece: 'q', 'r', 'b', or 'n'. Defaults to queen.\",\n },\n moveThought: {\n type: 'string',\n description: 'A short line of table talk to show on the board (max 140 chars).',\n },\n },\n outputs: {\n board: { type: 'string', description: 'ASCII board with coordinates.' },\n turn: { type: 'string', description: \"Whose move: 'user' (white) or 'ai' (black).\" },\n status: {\n type: 'string',\n description: 'playing, user_won, ai_won, or draw.',\n },\n lastMove: { type: 'string', description: \"The move just played, e.g. 'e2-e4'.\" },\n legalMoves: { type: 'string', description: 'Rendered legal moves for the side to move.' },\n summary: { type: 'string', description: 'Human-readable game summary.' },\n },\n requires: ['workspace.read', 'workspace.write'],\n} as const);\n\nconst input = gezel.input as InferredInput<typeof meta>;\n\n// ── chess-rules-start ──\n// Pure, annotation-free chess engine. Squares are a 64-character row-major\n// string: y0 is rank 8, x0 is file a. Uppercase pieces are white (the user);\n// lowercase pieces are black (the AI).\n\nvar FILES = 'abcdefgh';\nvar PROMOTIONS = ['q', 'r', 'b', 'n'];\n\nfunction sqName(x, y) {\n return FILES[x] + String(8 - y);\n}\n\nfunction parseSq(name) {\n if (typeof name !== 'string' || name.length !== 2) return null;\n var x = FILES.indexOf(name[0].toLowerCase());\n var rank = Number(name[1]);\n if (x < 0 || !(rank >= 1 && rank <= 8)) return null;\n return { x: x, y: 8 - rank };\n}\n\nfunction inBounds(x, y) {\n return x >= 0 && x < 8 && y >= 0 && y < 8;\n}\n\nfunction pieceAt(squares, x, y) {\n return squares[y * 8 + x];\n}\n\nfunction withPiece(squares, x, y, ch) {\n var i = y * 8 + x;\n return squares.slice(0, i) + ch + squares.slice(i + 1);\n}\n\nfunction sideOf(ch) {\n if (!ch || ch === '.') return null;\n return ch === ch.toUpperCase() ? 'user' : 'ai';\n}\n\nfunction otherSide(side) {\n return side === 'user' ? 'ai' : 'user';\n}\n\nfunction kindOf(ch) {\n return ch && ch !== '.' ? ch.toLowerCase() : '';\n}\n\nfunction buildInitial() {\n return 'rnbqkbnr' + 'pppppppp' + '.'.repeat(32) + 'PPPPPPPP' + 'RNBQKBNR';\n}\n\nfunction findKing(squares, side) {\n var needle = side === 'user' ? 'K' : 'k';\n var i = squares.indexOf(needle);\n return i < 0 ? null : { x: i % 8, y: Math.floor(i / 8) };\n}\n\nfunction isAttacked(squares, x, y, bySide) {\n var pawn = bySide === 'user' ? 'P' : 'p';\n var pawnY = y - (bySide === 'user' ? -1 : 1);\n for (var pdx of [-1, 1]) {\n var px = x - pdx;\n if (inBounds(px, pawnY) && pieceAt(squares, px, pawnY) === pawn) return true;\n }\n\n var knight = bySide === 'user' ? 'N' : 'n';\n var knightSteps = [\n [-2, -1],\n [-2, 1],\n [-1, -2],\n [-1, 2],\n [1, -2],\n [1, 2],\n [2, -1],\n [2, 1],\n ];\n for (var n of knightSteps) {\n if (inBounds(x + n[0], y + n[1]) && pieceAt(squares, x + n[0], y + n[1]) === knight) {\n return true;\n }\n }\n\n var rays = [\n [-1, 0, 'rq'],\n [1, 0, 'rq'],\n [0, -1, 'rq'],\n [0, 1, 'rq'],\n [-1, -1, 'bq'],\n [-1, 1, 'bq'],\n [1, -1, 'bq'],\n [1, 1, 'bq'],\n ];\n for (var ray of rays) {\n var rx = x + ray[0];\n var ry = y + ray[1];\n while (inBounds(rx, ry)) {\n var seen = pieceAt(squares, rx, ry);\n if (seen !== '.') {\n if (sideOf(seen) === bySide && ray[2].indexOf(kindOf(seen)) >= 0) return true;\n break;\n }\n rx += ray[0];\n ry += ray[1];\n }\n }\n\n var king = bySide === 'user' ? 'K' : 'k';\n for (var ky = -1; ky <= 1; ky += 1) {\n for (var kx = -1; kx <= 1; kx += 1) {\n if (\n (kx !== 0 || ky !== 0) &&\n inBounds(x + kx, y + ky) &&\n pieceAt(squares, x + kx, y + ky) === king\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction inCheck(squares, side) {\n var king = findKing(squares, side);\n return !king || isAttacked(squares, king.x, king.y, otherSide(side));\n}\n\nfunction pushMove(out, fromX, fromY, toX, toY, extra) {\n out.push(\n Object.assign(\n {\n from: sqName(fromX, fromY),\n to: sqName(toX, toY),\n capture: false,\n },\n extra || {},\n ),\n );\n}\n\nfunction pseudoMovesFor(squares, side, castling, enPassant) {\n var out = [];\n for (var y = 0; y < 8; y += 1) {\n for (var x = 0; x < 8; x += 1) {\n var ch = pieceAt(squares, x, y);\n if (sideOf(ch) !== side) continue;\n var kind = kindOf(ch);\n\n if (kind === 'p') {\n var dir = side === 'user' ? -1 : 1;\n var startY = side === 'user' ? 6 : 1;\n var promotionY = side === 'user' ? 0 : 7;\n var oneY = y + dir;\n if (inBounds(x, oneY) && pieceAt(squares, x, oneY) === '.') {\n if (oneY === promotionY) {\n for (var promotion of PROMOTIONS) {\n pushMove(out, x, y, x, oneY, { promotion: promotion });\n }\n } else {\n pushMove(out, x, y, x, oneY);\n var twoY = y + dir * 2;\n if (y === startY && pieceAt(squares, x, twoY) === '.') {\n pushMove(out, x, y, x, twoY, { doublePawn: true });\n }\n }\n }\n for (var dx of [-1, 1]) {\n var cx = x + dx;\n var cy = y + dir;\n if (!inBounds(cx, cy)) continue;\n var target = pieceAt(squares, cx, cy);\n var targetName = sqName(cx, cy);\n var isEp = targetName === enPassant && target === '.';\n if ((target !== '.' && sideOf(target) === otherSide(side)) || isEp) {\n if (cy === promotionY) {\n for (var capturePromotion of PROMOTIONS) {\n pushMove(out, x, y, cx, cy, {\n capture: true,\n promotion: capturePromotion,\n enPassant: isEp,\n });\n }\n } else {\n pushMove(out, x, y, cx, cy, { capture: true, enPassant: isEp });\n }\n }\n }\n continue;\n }\n\n if (kind === 'n') {\n var jumps = [\n [-2, -1],\n [-2, 1],\n [-1, -2],\n [-1, 2],\n [1, -2],\n [1, 2],\n [2, -1],\n [2, 1],\n ];\n for (var jump of jumps) {\n var nx = x + jump[0];\n var ny = y + jump[1];\n if (!inBounds(nx, ny) || sideOf(pieceAt(squares, nx, ny)) === side) continue;\n pushMove(out, x, y, nx, ny, { capture: pieceAt(squares, nx, ny) !== '.' });\n }\n continue;\n }\n\n if (kind === 'b' || kind === 'r' || kind === 'q') {\n var dirs = [];\n if (kind === 'b' || kind === 'q') dirs.push([-1, -1], [-1, 1], [1, -1], [1, 1]);\n if (kind === 'r' || kind === 'q') dirs.push([-1, 0], [1, 0], [0, -1], [0, 1]);\n for (var d of dirs) {\n var sx = x + d[0];\n var sy = y + d[1];\n while (inBounds(sx, sy)) {\n var occupant = pieceAt(squares, sx, sy);\n if (sideOf(occupant) === side) break;\n pushMove(out, x, y, sx, sy, { capture: occupant !== '.' });\n if (occupant !== '.') break;\n sx += d[0];\n sy += d[1];\n }\n }\n continue;\n }\n\n if (kind === 'k') {\n for (var kdy = -1; kdy <= 1; kdy += 1) {\n for (var kdx = -1; kdx <= 1; kdx += 1) {\n if (kdx === 0 && kdy === 0) continue;\n var ktx = x + kdx;\n var kty = y + kdy;\n if (!inBounds(ktx, kty) || sideOf(pieceAt(squares, ktx, kty)) === side) continue;\n pushMove(out, x, y, ktx, kty, { capture: pieceAt(squares, ktx, kty) !== '.' });\n }\n }\n\n var homeY = side === 'user' ? 7 : 0;\n var kingChar = side === 'user' ? 'K' : 'k';\n var rookChar = side === 'user' ? 'R' : 'r';\n var enemy = otherSide(side);\n if (x === 4 && y === homeY && ch === kingChar && !isAttacked(squares, 4, homeY, enemy)) {\n var kingRight = side === 'user' ? castling.indexOf('K') >= 0 : castling.indexOf('k') >= 0;\n if (\n kingRight &&\n pieceAt(squares, 7, homeY) === rookChar &&\n pieceAt(squares, 5, homeY) === '.' &&\n pieceAt(squares, 6, homeY) === '.' &&\n !isAttacked(squares, 5, homeY, enemy) &&\n !isAttacked(squares, 6, homeY, enemy)\n ) {\n pushMove(out, x, y, 6, homeY, { castle: 'king' });\n }\n var queenRight = side === 'user' ? castling.indexOf('Q') >= 0 : castling.indexOf('q') >= 0;\n if (\n queenRight &&\n pieceAt(squares, 0, homeY) === rookChar &&\n pieceAt(squares, 1, homeY) === '.' &&\n pieceAt(squares, 2, homeY) === '.' &&\n pieceAt(squares, 3, homeY) === '.' &&\n !isAttacked(squares, 3, homeY, enemy) &&\n !isAttacked(squares, 2, homeY, enemy)\n ) {\n pushMove(out, x, y, 2, homeY, { castle: 'queen' });\n }\n }\n }\n }\n }\n return out;\n}\n\nfunction applyUnchecked(squares, move, side) {\n var from = parseSq(move.from);\n var to = parseSq(move.to);\n var ch = pieceAt(squares, from.x, from.y);\n var next = withPiece(squares, from.x, from.y, '.');\n if (move.enPassant) {\n next = withPiece(next, to.x, from.y, '.');\n }\n if (move.castle === 'king') {\n next = withPiece(next, 7, from.y, '.');\n next = withPiece(next, 5, from.y, side === 'user' ? 'R' : 'r');\n } else if (move.castle === 'queen') {\n next = withPiece(next, 0, from.y, '.');\n next = withPiece(next, 3, from.y, side === 'user' ? 'R' : 'r');\n }\n if (move.promotion) ch = side === 'user' ? move.promotion.toUpperCase() : move.promotion;\n return withPiece(next, to.x, to.y, ch);\n}\n\nfunction legalMovesFor(squares, side, castling, enPassant) {\n return pseudoMovesFor(squares, side, castling || '', enPassant || null).filter(function (move) {\n return !inCheck(applyUnchecked(squares, move, side), side);\n });\n}\n\nfunction nextCastling(castling, squares, move) {\n var rights = castling || '';\n var ch = pieceAt(squares, parseSq(move.from).x, parseSq(move.from).y);\n if (ch === 'K') rights = rights.replace(/K|Q/g, '');\n if (ch === 'k') rights = rights.replace(/k|q/g, '');\n if (move.from === 'a1' || move.to === 'a1') rights = rights.replace('Q', '');\n if (move.from === 'h1' || move.to === 'h1') rights = rights.replace('K', '');\n if (move.from === 'a8' || move.to === 'a8') rights = rights.replace('q', '');\n if (move.from === 'h8' || move.to === 'h8') rights = rights.replace('k', '');\n return rights;\n}\n\nfunction nextEnPassant(move, side) {\n if (!move.doublePawn) return null;\n var from = parseSq(move.from);\n var to = parseSq(move.to);\n return sqName(from.x, (from.y + to.y) / 2);\n}\n\nfunction isInsufficientMaterial(squares) {\n var pieces = [];\n for (var i = 0; i < squares.length; i += 1) {\n var ch = squares[i];\n if (ch !== '.' && kindOf(ch) !== 'k') pieces.push({ ch: ch, x: i % 8, y: Math.floor(i / 8) });\n }\n if (pieces.length === 0) return true;\n if (pieces.length === 1 && (kindOf(pieces[0].ch) === 'b' || kindOf(pieces[0].ch) === 'n')) {\n return true;\n }\n if (\n pieces.length > 0 &&\n pieces.every(function (p) {\n return kindOf(p.ch) === 'b';\n })\n ) {\n var color = (pieces[0].x + pieces[0].y) % 2;\n return pieces.every(function (p) {\n return (p.x + p.y) % 2 === color;\n });\n }\n return false;\n}\n\nfunction positionKey(squares, side, castling, enPassant) {\n var effectiveEnPassant =\n enPassant &&\n legalMovesFor(squares, side, castling, enPassant).some(function (move) {\n return move.enPassant;\n })\n ? enPassant\n : '-';\n return [squares, side, castling || '-', effectiveEnPassant].join('|');\n}\n\nfunction statusAfter(squares, sideToMove, castling, enPassant) {\n if (isInsufficientMaterial(squares)) return 'draw';\n var moves = legalMovesFor(squares, sideToMove, castling, enPassant);\n if (moves.length > 0) return 'playing';\n if (!inCheck(squares, sideToMove)) return 'draw';\n return sideToMove === 'user' ? 'ai_won' : 'user_won';\n}\n\nfunction describeMove(move) {\n if (move.castle === 'king') return move.from + '-' + move.to + ' (O-O)';\n if (move.castle === 'queen') return move.from + '-' + move.to + ' (O-O-O)';\n var text = move.from + (move.capture ? 'x' : '-') + move.to;\n if (move.promotion) text += '=' + move.promotion.toUpperCase();\n if (move.enPassant) text += ' e.p.';\n return text;\n}\n\nfunction renderAscii(squares) {\n var lines = [' a b c d e f g h'];\n for (var y = 0; y < 8; y += 1) {\n var row = String(8 - y);\n for (var x = 0; x < 8; x += 1) row += ' ' + pieceAt(squares, x, y);\n lines.push(row + ' ' + String(8 - y));\n }\n lines.push(' a b c d e f g h');\n lines.push('Uppercase = white (user). Lowercase = black (you).');\n return lines.join('\\n');\n}\n// ── chess-rules-end ──\n\nconst STATE_FILE = 'game.json';\nconst SIDE_NAMES = { user: 'white', ai: 'black' };\n\ninterface ChessMove {\n from: string;\n to: string;\n capture: boolean;\n promotion?: string;\n doublePawn?: boolean;\n enPassant?: boolean;\n castle?: string;\n}\n\ninterface GameState {\n version: number;\n squares: string;\n turn: 'user' | 'ai';\n status: 'playing' | 'user_won' | 'ai_won' | 'draw';\n castling: string;\n enPassant: string | null;\n halfmoveClock: number;\n fullmoveNumber: number;\n positionHistory: string[];\n legalMoves: ChessMove[];\n moveLog: Array<{\n by: 'user' | 'ai';\n from: string;\n to: string;\n promotion?: string;\n notation: string;\n at: string;\n moveThought?: string;\n }>;\n lastMove: {\n by: 'user' | 'ai';\n from: string;\n to: string;\n promotion?: string;\n notation: string;\n } | null;\n lastMoveThought: string;\n updatedAt: string;\n}\n\nfunction freshState(): GameState {\n const squares = buildInitial();\n const castling = 'KQkq';\n return {\n version: 1,\n squares,\n turn: 'user',\n status: 'playing',\n castling,\n enPassant: null,\n halfmoveClock: 0,\n fullmoveNumber: 1,\n positionHistory: [positionKey(squares, 'user', castling, null)],\n legalMoves: legalMovesFor(squares, 'user', castling, null),\n moveLog: [],\n lastMove: null,\n lastMoveThought: '',\n updatedAt: new Date().toISOString(),\n };\n}\n\nasync function load(): Promise<GameState> {\n let raw: string;\n try {\n raw = await gezel.fs.read(STATE_FILE);\n } catch {\n return freshState();\n }\n const parsed = JSON.parse(raw) as Partial<GameState>;\n if (typeof parsed.squares !== 'string' || parsed.squares.length !== 64) {\n throw new Error(`${STATE_FILE} is corrupt; call action:'new_game' to reset.`);\n }\n return {\n ...freshState(),\n ...parsed,\n castling: typeof parsed.castling === 'string' ? parsed.castling : '',\n enPassant: parsed.enPassant ?? null,\n } as GameState;\n}\n\nasync function persist(state: GameState): Promise<GameState> {\n state.legalMoves =\n state.status === 'playing'\n ? legalMovesFor(state.squares, state.turn, state.castling, state.enPassant)\n : [];\n state.updatedAt = new Date().toISOString();\n await gezel.fs.write(STATE_FILE, `${JSON.stringify(state, null, 2)}\\n`);\n return state;\n}\n\nfunction renderLegal(state: GameState): string {\n if (state.status !== 'playing') return '(game over)';\n return state.legalMoves.map(describeMove).join(', ') || '(none)';\n}\n\nfunction summarize(state: GameState): string {\n if (state.status === 'user_won') return 'Checkmate — the user (white) won.';\n if (state.status === 'ai_won') return 'Checkmate — you (black) won.';\n if (state.status === 'draw') return 'Game over — draw.';\n const check = inCheck(state.squares, state.turn) ? ' The king is in check.' : '';\n return `Move ${state.fullmoveNumber}: ${SIDE_NAMES[state.turn]} (${state.turn}) to move.${check}`;\n}\n\nfunction applyTurn(\n state: GameState,\n by: 'user' | 'ai',\n moveThought?: string,\n): { state: GameState; move: ChessMove } {\n if (state.status !== 'playing') {\n throw new Error(`The game is over (${state.status}). Call action:'new_game' to start another.`);\n }\n if (state.turn !== by) {\n throw new Error(by === 'ai' ? \"It's not your turn yet.\" : 'The opponent is still to move.');\n }\n if (!input.from || !input.to) throw new Error(\"Pass 'from' and 'to' squares.\");\n const wantedPromotion = (input.promotion || 'q').toLowerCase();\n const candidates = state.legalMoves.filter(\n (move) =>\n move.from === input.from!.toLowerCase() &&\n move.to === input.to!.toLowerCase(),\n );\n const move =\n candidates.find((candidate) => (candidate.promotion || 'q') === wantedPromotion) ??\n candidates.find((candidate) => !candidate.promotion);\n if (!move) {\n throw new Error(\n `Illegal move ${input.from}-${input.to}. Legal moves for ${SIDE_NAMES[by]}: ${renderLegal(state)}`,\n );\n }\n\n const movingPiece = pieceAt(\n state.squares,\n parseSq(move.from)!.x,\n parseSq(move.from)!.y,\n );\n const oldSquares = state.squares;\n state.castling = nextCastling(state.castling, oldSquares, move);\n state.squares = applyUnchecked(oldSquares, move, by);\n state.enPassant = nextEnPassant(move, by);\n state.halfmoveClock =\n kindOf(movingPiece) === 'p' || move.capture ? 0 : state.halfmoveClock + 1;\n if (by === 'ai') state.fullmoveNumber += 1;\n state.turn = otherSide(by) as 'user' | 'ai';\n const key = positionKey(state.squares, state.turn, state.castling, state.enPassant);\n state.positionHistory.push(key);\n state.status = statusAfter(\n state.squares,\n state.turn,\n state.castling,\n state.enPassant,\n ) as GameState['status'];\n if (\n state.status === 'playing' &&\n (state.halfmoveClock >= 100 ||\n state.positionHistory.filter((candidate) => candidate === key).length >= 3)\n ) {\n state.status = 'draw';\n }\n\n const notation = describeMove(move);\n const entry = {\n by,\n from: move.from,\n to: move.to,\n ...(move.promotion ? { promotion: move.promotion } : {}),\n notation,\n at: new Date().toISOString(),\n ...(moveThought ? { moveThought } : {}),\n };\n state.moveLog.push(entry);\n state.lastMove = {\n by,\n from: move.from,\n to: move.to,\n ...(move.promotion ? { promotion: move.promotion } : {}),\n notation,\n };\n if (by === 'ai' && moveThought) state.lastMoveThought = moveThought;\n return { state, move };\n}\n\nlet state = await load();\nlet lastMoveText = state.lastMove?.notation ?? '(none)';\n\nif (input.action === 'new_game') {\n state = await persist(freshState());\n lastMoveText = '(none)';\n} else if (input.action === 'user_move' || input.action === 'ai_move') {\n const by = input.action === 'user_move' ? 'user' : 'ai';\n const moveThought = input.moveThought?.trim().slice(0, 140);\n const applied = applyTurn(state, by, moveThought);\n state = await persist(applied.state);\n lastMoveText = describeMove(applied.move);\n} else if (input.action !== 'state' && input.action !== 'board') {\n throw new Error(`Unknown action '${input.action}'. Use state, board, user_move, ai_move, or new_game.`);\n}\n\ngezel.output({\n board:\n `${renderAscii(state.squares)}\\nTurn: ${SIDE_NAMES[state.turn]} (${state.turn}).` +\n `${inCheck(state.squares, state.turn) && state.status === 'playing' ? ' CHECK.' : ''}\\n` +\n `Legal moves: ${renderLegal(state)}`,\n turn: state.turn,\n status: state.status,\n lastMove: lastMoveText,\n legalMoves: renderLegal(state),\n summary: summarize(state),\n});\n"
59
+ },
60
+ "tools": [
61
+ {
62
+ "name": "get_board",
63
+ "description": "See the authoritative chess position, whose turn it is, and every legal move.",
64
+ "script": "game-store",
65
+ "inputs": {
66
+ "type": "object",
67
+ "properties": {}
68
+ },
69
+ "bind": {
70
+ "action": "board"
71
+ }
72
+ },
73
+ {
74
+ "name": "make_move",
75
+ "description": "Play your black move. Pass from/to; for promotion optionally choose 'q', 'r', 'b', or 'n'. Include a short moveThought for the board.",
76
+ "script": "game-store",
77
+ "inputs": {
78
+ "type": "object",
79
+ "properties": {
80
+ "from": {
81
+ "type": "string",
82
+ "description": "Origin square, e.g. 'e7'."
83
+ },
84
+ "to": {
85
+ "type": "string",
86
+ "description": "Destination square, e.g. 'e5'."
87
+ },
88
+ "promotion": {
89
+ "type": "string",
90
+ "enum": [
91
+ "q",
92
+ "r",
93
+ "b",
94
+ "n"
95
+ ],
96
+ "description": "Promotion piece. Defaults to queen."
97
+ },
98
+ "moveThought": {
99
+ "type": "string",
100
+ "description": "A short line of table talk (max 140 chars)."
101
+ }
102
+ },
103
+ "required": [
104
+ "from",
105
+ "to"
106
+ ]
107
+ },
108
+ "bind": {
109
+ "action": "ai_move"
110
+ }
111
+ },
112
+ {
113
+ "name": "user_move",
114
+ "description": "The user's white move, played from the chess board.",
115
+ "script": "game-store",
116
+ "inputs": {
117
+ "type": "object",
118
+ "properties": {
119
+ "from": {
120
+ "type": "string"
121
+ },
122
+ "to": {
123
+ "type": "string"
124
+ },
125
+ "promotion": {
126
+ "type": "string",
127
+ "enum": [
128
+ "q",
129
+ "r",
130
+ "b",
131
+ "n"
132
+ ]
133
+ }
134
+ },
135
+ "required": [
136
+ "from",
137
+ "to"
138
+ ]
139
+ },
140
+ "bind": {
141
+ "action": "user_move"
142
+ },
143
+ "reaction": {
144
+ "gezel": "chess-player",
145
+ "hideSeed": true,
146
+ "prompt": "Your opponent played {{output.lastMove}}. Status: {{output.status}}. Board now:\n{{output.board}}\nThe board and Legal moves line come directly from the chess engine and are always correct. Do not re-derive the position, dispute a listed move, or invent a move outside that list. Spend your thought on choosing among the listed legal moves.\nStyle: {{playStyle}}. In Opponent style, do not volunteer advice or reveal the user’s available moves, threats, tactics, or your plan; comment only about your own move or the atmosphere. In Instructor style, offer at most one brief teaching observation without choosing the user’s move. Answer strategy questions when asked.\nAct on this latest position. If the game is over, do not move — give one gracious line and offer a new game. Otherwise choose a strong legal move and play it with make_move, including a short {{personality}} moveThought that follows the selected style. If make_move rejects it, choose one move verbatim from the legal list in the error and retry. After moving, reply with ONE short line of table talk."
147
+ }
148
+ },
149
+ {
150
+ "name": "new_game",
151
+ "description": "Reset the chess board to the standard opening position.",
152
+ "script": "game-store",
153
+ "inputs": {
154
+ "type": "object",
155
+ "properties": {}
156
+ },
157
+ "bind": {
158
+ "action": "new_game"
159
+ }
160
+ }
161
+ ],
162
+ "craftbooks": [],
163
+ "schedules": [],
164
+ "pages": {
165
+ "entry": "board/index.html",
166
+ "reads": [
167
+ {
168
+ "source": "workspace",
169
+ "path": "game.json"
170
+ }
171
+ ],
172
+ "tools": [
173
+ "user_move",
174
+ "new_game"
175
+ ]
176
+ },
177
+ "workspaceSeed": [
178
+ "game.json"
179
+ ]
180
+ }
@@ -0,0 +1,8 @@
1
+ - Keep a standard chess position ready, with white moving first and a rematch one
2
+ press away.
3
+ - The Schaakspeler answers every user move with a legal black move of their own.
4
+ - Let the engine settle check, mate, stalemate, promotion, castling, en passant,
5
+ repetition, and fifty-move draws.
6
+ - Keep table talk {{personality}} and kind, matching the chosen {{playStyle}}:
7
+ Opponents do not leak plans or hints; Instructors teach lightly.
8
+ - End wins, losses, and draws graciously, with an easy offer of another game.