@bendyline/gilde 0.2.3 → 0.2.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 (805) hide show
  1. package/README.md +11 -0
  2. package/authoring/chat-models/glm-5.3-flash-320b-q2.json +5 -4
  3. package/authoring/chat-models/nemotron3.5-bolt-74b-iq2.json +145 -0
  4. package/authoring/chat-models/nemotron3.5-super-vl-120b-nvfp4.json +143 -0
  5. package/authoring/knowledge-keywords/README.md +100 -0
  6. package/authoring/knowledge-keywords/rules.json +850 -0
  7. package/data/chat-models/gl/glm-5.3-flash-320b-q2/manifest.json +5 -4
  8. package/data/chat-models/gl/glm-5.3-flash-320b-q2/versions/1.0.2/manifest.json +27 -0
  9. package/data/chat-models/index.json +1 -1
  10. package/data/chat-models/ne/nemotron3.5-bolt-74b-iq2/manifest.json +157 -0
  11. package/data/chat-models/ne/nemotron3.5-bolt-74b-iq2/versions/1.0.0/manifest.json +30 -0
  12. package/data/chat-models/ne/nemotron3.5-super-vl-120b-nvfp4/manifest.json +156 -0
  13. package/data/chat-models/ne/nemotron3.5-super-vl-120b-nvfp4/versions/1.0.0/manifest.json +28 -0
  14. package/data/chat-models/raw-index.json +1 -1
  15. package/data/craftbook-templates/a1/a11y-audit/art.json +13 -8
  16. package/data/craftbook-templates/a1/a11y-audit/logo.webp +0 -0
  17. package/data/craftbook-templates/ab/ab-test-readout/art.json +13 -9
  18. package/data/craftbook-templates/ab/ab-test-readout/logo.webp +0 -0
  19. package/data/craftbook-templates/ac/accessibility-retrofit/art.json +14 -9
  20. package/data/craftbook-templates/ac/accessibility-retrofit/logo.webp +0 -0
  21. package/data/craftbook-templates/ad/ad-variations/art.json +14 -10
  22. package/data/craftbook-templates/ad/ad-variations/logo.webp +0 -0
  23. package/data/craftbook-templates/al/album-curate/art.json +13 -9
  24. package/data/craftbook-templates/al/album-curate/logo.webp +0 -0
  25. package/data/craftbook-templates/al/alert-rules/art.json +13 -8
  26. package/data/craftbook-templates/al/alert-rules/logo.webp +0 -0
  27. package/data/craftbook-templates/al/alt-text-pass/art.json +13 -8
  28. package/data/craftbook-templates/al/alt-text-pass/logo.webp +0 -0
  29. package/data/craftbook-templates/an/anniversary-cut/art.json +13 -9
  30. package/data/craftbook-templates/an/anniversary-cut/logo.webp +0 -0
  31. package/data/craftbook-templates/an/annotated-bibliography/art.json +14 -10
  32. package/data/craftbook-templates/an/annotated-bibliography/logo.webp +0 -0
  33. package/data/craftbook-templates/an/annual-document-review/art.json +13 -9
  34. package/data/craftbook-templates/an/annual-document-review/logo.webp +0 -0
  35. package/data/craftbook-templates/an/anomaly-scan/art.json +13 -8
  36. package/data/craftbook-templates/an/anomaly-scan/logo.webp +0 -0
  37. package/data/craftbook-templates/ap/api-contract-review/art.json +13 -9
  38. package/data/craftbook-templates/ap/api-contract-review/logo.webp +0 -0
  39. package/data/craftbook-templates/ap/apply-review-findings/art.json +14 -9
  40. package/data/craftbook-templates/ap/apply-review-findings/logo.webp +0 -0
  41. package/data/craftbook-templates/ar/artifact-integrity-review/art.json +13 -9
  42. package/data/craftbook-templates/ar/artifact-integrity-review/logo.webp +0 -0
  43. package/data/craftbook-templates/au/audio-ad-spot/art.json +13 -9
  44. package/data/craftbook-templates/au/audio-ad-spot/logo.webp +0 -0
  45. package/data/craftbook-templates/au/audio-highlight-reel/art.json +13 -9
  46. package/data/craftbook-templates/au/audio-highlight-reel/logo.webp +0 -0
  47. package/data/craftbook-templates/au/audiobook-master-pack/art.json +14 -10
  48. package/data/craftbook-templates/au/audiobook-master-pack/logo.webp +0 -0
  49. package/data/craftbook-templates/au/auth-flow/art.json +13 -8
  50. package/data/craftbook-templates/au/auth-flow/logo.webp +0 -0
  51. package/data/craftbook-templates/au/automation-recipe/art.json +13 -9
  52. package/data/craftbook-templates/au/automation-recipe/logo.webp +0 -0
  53. package/data/craftbook-templates/ba/backup-routine/art.json +13 -9
  54. package/data/craftbook-templates/ba/backup-routine/logo.webp +0 -0
  55. package/data/craftbook-templates/bl/blog-post/art.json +14 -10
  56. package/data/craftbook-templates/bl/blog-post/logo.webp +0 -0
  57. package/data/craftbook-templates/bo/board-deck/art.json +13 -9
  58. package/data/craftbook-templates/bo/board-deck/logo.webp +0 -0
  59. package/data/craftbook-templates/bo/board-game-web/art.json +13 -9
  60. package/data/craftbook-templates/bo/board-game-web/logo.webp +0 -0
  61. package/data/craftbook-templates/bo/booking-automation/art.json +13 -8
  62. package/data/craftbook-templates/bo/booking-automation/logo.webp +0 -0
  63. package/data/craftbook-templates/br/branding-website/art.json +13 -9
  64. package/data/craftbook-templates/br/branding-website/logo.webp +0 -0
  65. package/data/craftbook-templates/br/broadcast-announcement/art.json +13 -9
  66. package/data/craftbook-templates/br/broadcast-announcement/logo.webp +0 -0
  67. package/data/craftbook-templates/br/browser-qa-audit/art.json +13 -8
  68. package/data/craftbook-templates/br/browser-qa-audit/logo.webp +0 -0
  69. package/data/craftbook-templates/bu/bug-fix-tdd/art.json +14 -9
  70. package/data/craftbook-templates/bu/bug-fix-tdd/logo.webp +0 -0
  71. package/data/craftbook-templates/bu/build-loop/art.json +13 -9
  72. package/data/craftbook-templates/bu/build-loop/logo.webp +0 -0
  73. package/data/craftbook-templates/ca/calendar-brief/art.json +13 -9
  74. package/data/craftbook-templates/ca/calendar-brief/logo.webp +0 -0
  75. package/data/craftbook-templates/ca/canvas-generative-art/art.json +13 -9
  76. package/data/craftbook-templates/ca/canvas-generative-art/logo.webp +0 -0
  77. package/data/craftbook-templates/ca/careful-mode/art.json +14 -10
  78. package/data/craftbook-templates/ca/careful-mode/logo.webp +0 -0
  79. package/data/craftbook-templates/ca/case-study/art.json +14 -10
  80. package/data/craftbook-templates/ca/case-study/logo.webp +0 -0
  81. package/data/craftbook-templates/ca/case-study-writeup/art.json +13 -9
  82. package/data/craftbook-templates/ca/case-study-writeup/logo.webp +0 -0
  83. package/data/craftbook-templates/ch/changelog-cut/art.json +13 -8
  84. package/data/craftbook-templates/ch/changelog-cut/logo.webp +0 -0
  85. package/data/craftbook-templates/ch/changelog-writeup/art.json +14 -10
  86. package/data/craftbook-templates/ch/changelog-writeup/logo.webp +0 -0
  87. package/data/craftbook-templates/ch/chapter-narration-run/art.json +13 -9
  88. package/data/craftbook-templates/ch/chapter-narration-run/logo.webp +0 -0
  89. package/data/craftbook-templates/ch/chapter-weave/art.json +13 -9
  90. package/data/craftbook-templates/ch/chapter-weave/logo.webp +0 -0
  91. package/data/craftbook-templates/ch/character-sheet/art.json +13 -9
  92. package/data/craftbook-templates/ch/character-sheet/logo.webp +0 -0
  93. package/data/craftbook-templates/ch/character-turnaround/art.json +13 -9
  94. package/data/craftbook-templates/ch/character-turnaround/logo.webp +0 -0
  95. package/data/craftbook-templates/ch/chart-pack/art.json +13 -9
  96. package/data/craftbook-templates/ch/chart-pack/logo.webp +0 -0
  97. package/data/craftbook-templates/ch/chrome-extension/art.json +13 -9
  98. package/data/craftbook-templates/ch/chrome-extension/logo.webp +0 -0
  99. package/data/craftbook-templates/ci/ci-pipeline/art.json +14 -9
  100. package/data/craftbook-templates/ci/ci-pipeline/logo.webp +0 -0
  101. package/data/craftbook-templates/ci/citation-audit/art.json +14 -9
  102. package/data/craftbook-templates/ci/citation-audit/logo.webp +0 -0
  103. package/data/craftbook-templates/cl/cli-tool/art.json +13 -9
  104. package/data/craftbook-templates/cl/cli-tool/logo.webp +0 -0
  105. package/data/craftbook-templates/co/code-review/art.json +14 -9
  106. package/data/craftbook-templates/co/code-review/logo.webp +0 -0
  107. package/data/craftbook-templates/co/codebase-refactoring-review/art.json +13 -8
  108. package/data/craftbook-templates/co/codebase-refactoring-review/logo.webp +0 -0
  109. package/data/craftbook-templates/co/codebase-ux-review/art.json +13 -9
  110. package/data/craftbook-templates/co/codebase-ux-review/logo.webp +0 -0
  111. package/data/craftbook-templates/co/codemod-sweep/art.json +14 -9
  112. package/data/craftbook-templates/co/codemod-sweep/logo.webp +0 -0
  113. package/data/craftbook-templates/co/cohort-analysis/art.json +13 -9
  114. package/data/craftbook-templates/co/cohort-analysis/logo.webp +0 -0
  115. package/data/craftbook-templates/co/company-research-brief/art.json +13 -9
  116. package/data/craftbook-templates/co/company-research-brief/logo.webp +0 -0
  117. package/data/craftbook-templates/co/comparison-matrix/art.json +14 -10
  118. package/data/craftbook-templates/co/comparison-matrix/logo.webp +0 -0
  119. package/data/craftbook-templates/co/compat-check/art.json +13 -9
  120. package/data/craftbook-templates/co/compat-check/logo.webp +0 -0
  121. package/data/craftbook-templates/co/competitive-analysis/art.json +14 -10
  122. package/data/craftbook-templates/co/competitive-analysis/logo.webp +0 -0
  123. package/data/craftbook-templates/co/comprehensive-codebase-review/art.json +14 -9
  124. package/data/craftbook-templates/co/comprehensive-codebase-review/logo.webp +0 -0
  125. package/data/craftbook-templates/co/config-scaffold/art.json +13 -9
  126. package/data/craftbook-templates/co/config-scaffold/logo.webp +0 -0
  127. package/data/craftbook-templates/co/content-accuracy-review/art.json +13 -8
  128. package/data/craftbook-templates/co/content-accuracy-review/logo.webp +0 -0
  129. package/data/craftbook-templates/co/content-deck/art.json +13 -9
  130. package/data/craftbook-templates/co/content-deck/logo.webp +0 -0
  131. package/data/craftbook-templates/co/contract-template/art.json +13 -8
  132. package/data/craftbook-templates/co/contract-template/logo.webp +0 -0
  133. package/data/craftbook-templates/co/cookbook-layout/art.json +13 -9
  134. package/data/craftbook-templates/co/cookbook-layout/logo.webp +0 -0
  135. package/data/craftbook-templates/co/copy-review/art.json +13 -9
  136. package/data/craftbook-templates/co/copy-review/logo.webp +0 -0
  137. package/data/craftbook-templates/co/corpus-email-digest/art.json +13 -9
  138. package/data/craftbook-templates/co/corpus-email-digest/logo.webp +0 -0
  139. package/data/craftbook-templates/co/corpus-synthesis/art.json +14 -10
  140. package/data/craftbook-templates/co/corpus-synthesis/logo.webp +0 -0
  141. package/data/craftbook-templates/co/cover-letter/art.json +14 -10
  142. package/data/craftbook-templates/co/cover-letter/logo.webp +0 -0
  143. package/data/craftbook-templates/cr/crm-update-batch/art.json +13 -8
  144. package/data/craftbook-templates/cr/crm-update-batch/logo.webp +0 -0
  145. package/data/craftbook-templates/cr/cron-job/art.json +13 -9
  146. package/data/craftbook-templates/cr/cron-job/logo.webp +0 -0
  147. package/data/craftbook-templates/cr/crossword-forge/art.json +13 -9
  148. package/data/craftbook-templates/cr/crossword-forge/logo.webp +0 -0
  149. package/data/craftbook-templates/cs/csv-transformer/art.json +13 -9
  150. package/data/craftbook-templates/cs/csv-transformer/logo.webp +0 -0
  151. package/data/craftbook-templates/da/dashboard-spec/art.json +13 -9
  152. package/data/craftbook-templates/da/dashboard-spec/logo.webp +0 -0
  153. package/data/craftbook-templates/da/data-dictionary/art.json +13 -9
  154. package/data/craftbook-templates/da/data-dictionary/logo.webp +0 -0
  155. package/data/craftbook-templates/da/data-export-migrate/art.json +13 -9
  156. package/data/craftbook-templates/da/data-export-migrate/logo.webp +0 -0
  157. package/data/craftbook-templates/da/data-join-merge/art.json +13 -9
  158. package/data/craftbook-templates/da/data-join-merge/logo.webp +0 -0
  159. package/data/craftbook-templates/da/data-pipeline-etl/art.json +13 -8
  160. package/data/craftbook-templates/da/data-pipeline-etl/logo.webp +0 -0
  161. package/data/craftbook-templates/da/data-quality-audit/art.json +13 -8
  162. package/data/craftbook-templates/da/data-quality-audit/logo.webp +0 -0
  163. package/data/craftbook-templates/da/data-to-report/art.json +13 -9
  164. package/data/craftbook-templates/da/data-to-report/logo.webp +0 -0
  165. package/data/craftbook-templates/da/data-viz-page/art.json +13 -9
  166. package/data/craftbook-templates/da/data-viz-page/logo.webp +0 -0
  167. package/data/craftbook-templates/da/dataset-clean/art.json +13 -9
  168. package/data/craftbook-templates/da/dataset-clean/logo.webp +0 -0
  169. package/data/craftbook-templates/db/db-index-tuning/art.json +13 -9
  170. package/data/craftbook-templates/db/db-index-tuning/logo.webp +0 -0
  171. package/data/craftbook-templates/de/deep-security-review/art.json +13 -8
  172. package/data/craftbook-templates/de/deep-security-review/logo.webp +0 -0
  173. package/data/craftbook-templates/de/dependency-audit/art.json +13 -8
  174. package/data/craftbook-templates/de/dependency-audit/logo.webp +0 -0
  175. package/data/craftbook-templates/de/dependency-upgrade/art.json +14 -9
  176. package/data/craftbook-templates/de/dependency-upgrade/logo.webp +0 -0
  177. package/data/craftbook-templates/de/deploy-checklist/art.json +14 -10
  178. package/data/craftbook-templates/de/deploy-checklist/logo.webp +0 -0
  179. package/data/craftbook-templates/de/design-review/art.json +13 -9
  180. package/data/craftbook-templates/de/design-review/logo.webp +0 -0
  181. package/data/craftbook-templates/de/design-system-consultation/art.json +13 -9
  182. package/data/craftbook-templates/de/design-system-consultation/logo.webp +0 -0
  183. package/data/craftbook-templates/di/diagram-from-text/art.json +13 -9
  184. package/data/craftbook-templates/di/diagram-from-text/logo.webp +0 -0
  185. package/data/craftbook-templates/di/digest-from-feeds/art.json +13 -9
  186. package/data/craftbook-templates/di/digest-from-feeds/logo.webp +0 -0
  187. package/data/craftbook-templates/do/doc-intake-pipeline/art.json +13 -9
  188. package/data/craftbook-templates/do/doc-intake-pipeline/logo.webp +0 -0
  189. package/data/craftbook-templates/do/doc-rewrite/art.json +14 -10
  190. package/data/craftbook-templates/do/doc-rewrite/logo.webp +0 -0
  191. package/data/craftbook-templates/do/dockerize-app/art.json +13 -8
  192. package/data/craftbook-templates/do/dockerize-app/logo.webp +0 -0
  193. package/data/craftbook-templates/do/docs-site/art.json +13 -9
  194. package/data/craftbook-templates/do/docs-site/logo.webp +0 -0
  195. package/data/craftbook-templates/do/documentation-drift-review/art.json +13 -9
  196. package/data/craftbook-templates/do/documentation-drift-review/logo.webp +0 -0
  197. package/data/craftbook-templates/dr/draft-social-post/art.json +17 -0
  198. package/data/craftbook-templates/dr/draft-social-post/logo.webp +0 -0
  199. package/data/craftbook-templates/dr/drive-wrap-up/art.json +13 -9
  200. package/data/craftbook-templates/dr/drive-wrap-up/logo.webp +0 -0
  201. package/data/craftbook-templates/du/due-diligence-brief/art.json +14 -10
  202. package/data/craftbook-templates/du/due-diligence-brief/logo.webp +0 -0
  203. package/data/craftbook-templates/eb/ebook-compile/art.json +13 -9
  204. package/data/craftbook-templates/eb/ebook-compile/logo.webp +0 -0
  205. package/data/craftbook-templates/ed/edit-notes/art.json +13 -9
  206. package/data/craftbook-templates/ed/edit-notes/logo.webp +0 -0
  207. package/data/craftbook-templates/em/email-sequence/art.json +14 -10
  208. package/data/craftbook-templates/em/email-sequence/logo.webp +0 -0
  209. package/data/craftbook-templates/em/email-template/art.json +13 -9
  210. package/data/craftbook-templates/em/email-template/logo.webp +0 -0
  211. package/data/craftbook-templates/en/engineering-retrospective/art.json +13 -8
  212. package/data/craftbook-templates/en/engineering-retrospective/logo.webp +0 -0
  213. package/data/craftbook-templates/ep/episode-plan/art.json +13 -9
  214. package/data/craftbook-templates/ep/episode-plan/logo.webp +0 -0
  215. package/data/craftbook-templates/es/escalation-playbook/art.json +13 -8
  216. package/data/craftbook-templates/es/escalation-playbook/logo.webp +0 -0
  217. package/data/craftbook-templates/ev/evidence-brief/art.json +14 -10
  218. package/data/craftbook-templates/ev/evidence-brief/logo.webp +0 -0
  219. package/data/craftbook-templates/ex/executive-level-review/art.json +13 -9
  220. package/data/craftbook-templates/ex/executive-level-review/logo.webp +0 -0
  221. package/data/craftbook-templates/ex/expense-categorize/art.json +13 -8
  222. package/data/craftbook-templates/ex/expense-categorize/logo.webp +0 -0
  223. package/data/craftbook-templates/ex/explain-code-folder/art.json +17 -0
  224. package/data/craftbook-templates/ex/explain-code-folder/logo.webp +0 -0
  225. package/data/craftbook-templates/ex/explain-code-folder/manifest.json +1 -0
  226. package/data/craftbook-templates/fa/fact-check/art.json +13 -8
  227. package/data/craftbook-templates/fa/fact-check/logo.webp +0 -0
  228. package/data/craftbook-templates/fa/family-story-chapter/art.json +13 -9
  229. package/data/craftbook-templates/fa/family-story-chapter/logo.webp +0 -0
  230. package/data/craftbook-templates/fa/faq-from-docs/art.json +14 -10
  231. package/data/craftbook-templates/fa/faq-from-docs/logo.webp +0 -0
  232. package/data/craftbook-templates/fa/favicon-set/art.json +13 -9
  233. package/data/craftbook-templates/fa/favicon-set/logo.webp +0 -0
  234. package/data/craftbook-templates/fe/feature-flag-release/art.json +14 -10
  235. package/data/craftbook-templates/fe/feature-flag-release/logo.webp +0 -0
  236. package/data/craftbook-templates/fe/feature-flag-rollout/art.json +13 -9
  237. package/data/craftbook-templates/fe/feature-flag-rollout/logo.webp +0 -0
  238. package/data/craftbook-templates/fe/feedback-widget/art.json +13 -9
  239. package/data/craftbook-templates/fe/feedback-widget/logo.webp +0 -0
  240. package/data/craftbook-templates/fl/flaky-test-fix/art.json +14 -9
  241. package/data/craftbook-templates/fl/flaky-test-fix/logo.webp +0 -0
  242. package/data/craftbook-templates/fo/folder-to-audio/art.json +13 -9
  243. package/data/craftbook-templates/fo/folder-to-audio/logo.webp +0 -0
  244. package/data/craftbook-templates/fo/forecast-model/art.json +13 -9
  245. package/data/craftbook-templates/fo/forecast-model/logo.webp +0 -0
  246. package/data/craftbook-templates/fo/form-fill-batch/art.json +13 -9
  247. package/data/craftbook-templates/fo/form-fill-batch/logo.webp +0 -0
  248. package/data/craftbook-templates/fo/form-wizard/art.json +13 -9
  249. package/data/craftbook-templates/fo/form-wizard/logo.webp +0 -0
  250. package/data/craftbook-templates/fr/freeze-scope/art.json +14 -10
  251. package/data/craftbook-templates/fr/freeze-scope/logo.webp +0 -0
  252. package/data/craftbook-templates/ga/game-with-screens/art.json +13 -9
  253. package/data/craftbook-templates/ga/game-with-screens/logo.webp +0 -0
  254. package/data/craftbook-templates/gl/glossary-build/art.json +13 -9
  255. package/data/craftbook-templates/gl/glossary-build/logo.webp +0 -0
  256. package/data/craftbook-templates/gr/graphql-api/art.json +13 -9
  257. package/data/craftbook-templates/gr/graphql-api/logo.webp +0 -0
  258. package/data/craftbook-templates/gr/grpc-service/art.json +13 -9
  259. package/data/craftbook-templates/gr/grpc-service/logo.webp +0 -0
  260. package/data/craftbook-templates/ha/handbook-section/art.json +13 -9
  261. package/data/craftbook-templates/ha/handbook-section/logo.webp +0 -0
  262. package/data/craftbook-templates/he/hero-image/art.json +13 -9
  263. package/data/craftbook-templates/he/hero-image/logo.webp +0 -0
  264. package/data/craftbook-templates/ho/holiday-card-run/art.json +13 -9
  265. package/data/craftbook-templates/ho/holiday-card-run/logo.webp +0 -0
  266. package/data/craftbook-templates/ho/hotfix-flow/art.json +14 -10
  267. package/data/craftbook-templates/ho/hotfix-flow/logo.webp +0 -0
  268. package/data/craftbook-templates/ht/html-arcade-game/art.json +13 -9
  269. package/data/craftbook-templates/ht/html-arcade-game/logo.webp +0 -0
  270. package/data/craftbook-templates/ht/html-puzzle-game/art.json +13 -9
  271. package/data/craftbook-templates/ht/html-puzzle-game/logo.webp +0 -0
  272. package/data/craftbook-templates/ic/icon-pack/art.json +13 -9
  273. package/data/craftbook-templates/ic/icon-pack/logo.webp +0 -0
  274. package/data/craftbook-templates/id/idea-office-hours/art.json +13 -8
  275. package/data/craftbook-templates/id/idea-office-hours/logo.webp +0 -0
  276. package/data/craftbook-templates/id/idle-clicker-game/art.json +13 -9
  277. package/data/craftbook-templates/id/idle-clicker-game/logo.webp +0 -0
  278. package/data/craftbook-templates/im/image-batch-edit/art.json +13 -8
  279. package/data/craftbook-templates/im/image-batch-edit/logo.webp +0 -0
  280. package/data/craftbook-templates/im/image-dedup-cluster/art.json +13 -9
  281. package/data/craftbook-templates/im/image-dedup-cluster/logo.webp +0 -0
  282. package/data/craftbook-templates/im/image-palette-extract/art.json +13 -9
  283. package/data/craftbook-templates/im/image-palette-extract/logo.webp +0 -0
  284. package/data/craftbook-templates/im/image-seo-rename/art.json +13 -9
  285. package/data/craftbook-templates/im/image-seo-rename/logo.webp +0 -0
  286. package/data/craftbook-templates/im/image-set-index/art.json +13 -9
  287. package/data/craftbook-templates/im/image-set-index/logo.webp +0 -0
  288. package/data/craftbook-templates/in/inbox-triage/art.json +13 -9
  289. package/data/craftbook-templates/in/inbox-triage/logo.webp +0 -0
  290. package/data/craftbook-templates/in/incident-comms-templates/art.json +13 -8
  291. package/data/craftbook-templates/in/incident-comms-templates/logo.webp +0 -0
  292. package/data/craftbook-templates/in/incident-postmortem/art.json +14 -9
  293. package/data/craftbook-templates/in/incident-postmortem/logo.webp +0 -0
  294. package/data/craftbook-templates/in/insurance-inventory/art.json +13 -9
  295. package/data/craftbook-templates/in/insurance-inventory/logo.webp +0 -0
  296. package/data/craftbook-templates/in/interactive-quiz/art.json +13 -9
  297. package/data/craftbook-templates/in/interactive-quiz/logo.webp +0 -0
  298. package/data/craftbook-templates/in/investigate/art.json +13 -8
  299. package/data/craftbook-templates/in/investigate/logo.webp +0 -0
  300. package/data/craftbook-templates/in/investigate-root-cause/art.json +13 -8
  301. package/data/craftbook-templates/in/investigate-root-cause/logo.webp +0 -0
  302. package/data/craftbook-templates/in/invitation-design/art.json +13 -9
  303. package/data/craftbook-templates/in/invitation-design/logo.webp +0 -0
  304. package/data/craftbook-templates/in/invoice-generator/art.json +13 -9
  305. package/data/craftbook-templates/in/invoice-generator/logo.webp +0 -0
  306. package/data/craftbook-templates/in/invoice-run/art.json +13 -9
  307. package/data/craftbook-templates/in/invoice-run/logo.webp +0 -0
  308. package/data/craftbook-templates/index.json +1 -1
  309. package/data/craftbook-templates/it/item-intake/art.json +13 -9
  310. package/data/craftbook-templates/it/item-intake/logo.webp +0 -0
  311. package/data/craftbook-templates/ju/juice-pass/art.json +13 -9
  312. package/data/craftbook-templates/ju/juice-pass/logo.webp +0 -0
  313. package/data/craftbook-templates/kn/knowledge-base-article/art.json +14 -10
  314. package/data/craftbook-templates/kn/knowledge-base-article/logo.webp +0 -0
  315. package/data/craftbook-templates/kp/kpi-scorecard/art.json +13 -9
  316. package/data/craftbook-templates/kp/kpi-scorecard/logo.webp +0 -0
  317. package/data/craftbook-templates/la/landing-copy/art.json +14 -10
  318. package/data/craftbook-templates/la/landing-copy/logo.webp +0 -0
  319. package/data/craftbook-templates/la/landing-page/art.json +13 -9
  320. package/data/craftbook-templates/la/landing-page/logo.webp +0 -0
  321. package/data/craftbook-templates/le/lead-enrichment/art.json +13 -8
  322. package/data/craftbook-templates/le/lead-enrichment/logo.webp +0 -0
  323. package/data/craftbook-templates/li/library-package/art.json +13 -9
  324. package/data/craftbook-templates/li/library-package/logo.webp +0 -0
  325. package/data/craftbook-templates/li/literature-review/art.json +14 -10
  326. package/data/craftbook-templates/li/literature-review/logo.webp +0 -0
  327. package/data/craftbook-templates/li/live-browser-qa/art.json +13 -8
  328. package/data/craftbook-templates/li/live-browser-qa/logo.webp +0 -0
  329. package/data/craftbook-templates/lo/localize-content/art.json +14 -9
  330. package/data/craftbook-templates/lo/localize-content/logo.webp +0 -0
  331. package/data/craftbook-templates/lo/logo-set/art.json +13 -9
  332. package/data/craftbook-templates/lo/logo-set/logo.webp +0 -0
  333. package/data/craftbook-templates/ma/market-scan/art.json +14 -10
  334. package/data/craftbook-templates/ma/market-scan/logo.webp +0 -0
  335. package/data/craftbook-templates/me/meeting-minutes/art.json +13 -9
  336. package/data/craftbook-templates/me/meeting-minutes/logo.webp +0 -0
  337. package/data/craftbook-templates/me/meeting-notes-to-actions/art.json +13 -9
  338. package/data/craftbook-templates/me/meeting-notes-to-actions/logo.webp +0 -0
  339. package/data/craftbook-templates/me/meeting-prep-brief/art.json +13 -9
  340. package/data/craftbook-templates/me/meeting-prep-brief/logo.webp +0 -0
  341. package/data/craftbook-templates/me/meeting-summary-audio/art.json +13 -9
  342. package/data/craftbook-templates/me/meeting-summary-audio/logo.webp +0 -0
  343. package/data/craftbook-templates/me/memory-prompt-session/art.json +13 -9
  344. package/data/craftbook-templates/me/memory-prompt-session/logo.webp +0 -0
  345. package/data/craftbook-templates/me/message-queue-consumer/art.json +13 -9
  346. package/data/craftbook-templates/me/message-queue-consumer/logo.webp +0 -0
  347. package/data/craftbook-templates/mi/micro-game-jam/art.json +13 -9
  348. package/data/craftbook-templates/mi/micro-game-jam/logo.webp +0 -0
  349. package/data/craftbook-templates/mo/mock-interview/art.json +13 -9
  350. package/data/craftbook-templates/mo/mock-interview/logo.webp +0 -0
  351. package/data/craftbook-templates/mo/mod-scaffold/art.json +13 -9
  352. package/data/craftbook-templates/mo/mod-scaffold/logo.webp +0 -0
  353. package/data/craftbook-templates/mo/monitor-and-alert/art.json +13 -9
  354. package/data/craftbook-templates/mo/monitor-and-alert/logo.webp +0 -0
  355. package/data/craftbook-templates/mo/month-close/art.json +13 -9
  356. package/data/craftbook-templates/mo/month-close/logo.webp +0 -0
  357. package/data/craftbook-templates/mo/monthly-recording-review/art.json +13 -8
  358. package/data/craftbook-templates/mo/monthly-recording-review/logo.webp +0 -0
  359. package/data/craftbook-templates/mo/moodboard/art.json +13 -9
  360. package/data/craftbook-templates/mo/moodboard/logo.webp +0 -0
  361. package/data/craftbook-templates/mo/morning-brief/art.json +13 -9
  362. package/data/craftbook-templates/mo/morning-brief/logo.webp +0 -0
  363. package/data/craftbook-templates/mo/morning-report/art.json +13 -9
  364. package/data/craftbook-templates/mo/morning-report/logo.webp +0 -0
  365. package/data/craftbook-templates/mu/music-metadata-tag/art.json +13 -9
  366. package/data/craftbook-templates/mu/music-metadata-tag/logo.webp +0 -0
  367. package/data/craftbook-templates/na/narrated-slideshow/art.json +14 -10
  368. package/data/craftbook-templates/na/narrated-slideshow/logo.webp +0 -0
  369. package/data/craftbook-templates/ne/newsletter-issue/art.json +13 -9
  370. package/data/craftbook-templates/ne/newsletter-issue/logo.webp +0 -0
  371. package/data/craftbook-templates/ni/nightly-fix-sweep/art.json +14 -9
  372. package/data/craftbook-templates/ni/nightly-fix-sweep/logo.webp +0 -0
  373. package/data/craftbook-templates/no/notification-router/art.json +13 -9
  374. package/data/craftbook-templates/no/notification-router/logo.webp +0 -0
  375. package/data/craftbook-templates/oc/ocr-extract/art.json +13 -9
  376. package/data/craftbook-templates/oc/ocr-extract/logo.webp +0 -0
  377. package/data/craftbook-templates/of/offer-compare/art.json +14 -10
  378. package/data/craftbook-templates/of/offer-compare/logo.webp +0 -0
  379. package/data/craftbook-templates/of/office-hours/art.json +13 -8
  380. package/data/craftbook-templates/of/office-hours/logo.webp +0 -0
  381. package/data/craftbook-templates/on/onboarding-checklist/art.json +13 -9
  382. package/data/craftbook-templates/on/onboarding-checklist/logo.webp +0 -0
  383. package/data/craftbook-templates/on/onboarding-flow/art.json +13 -9
  384. package/data/craftbook-templates/on/onboarding-flow/logo.webp +0 -0
  385. package/data/craftbook-templates/on/oncall-handoff/art.json +13 -8
  386. package/data/craftbook-templates/on/oncall-handoff/logo.webp +0 -0
  387. package/data/craftbook-templates/on/one-pager/art.json +13 -9
  388. package/data/craftbook-templates/on/one-pager/logo.webp +0 -0
  389. package/data/craftbook-templates/op/ops-runbook/art.json +13 -9
  390. package/data/craftbook-templates/op/ops-runbook/logo.webp +0 -0
  391. package/data/craftbook-templates/pa/page-spread/art.json +13 -9
  392. package/data/craftbook-templates/pa/page-spread/logo.webp +0 -0
  393. package/data/craftbook-templates/pa/parser-grammar/art.json +13 -9
  394. package/data/craftbook-templates/pa/parser-grammar/logo.webp +0 -0
  395. package/data/craftbook-templates/pe/perf-audit/art.json +13 -8
  396. package/data/craftbook-templates/pe/perf-audit/logo.webp +0 -0
  397. package/data/craftbook-templates/pe/perf-optimization/art.json +14 -9
  398. package/data/craftbook-templates/pe/perf-optimization/logo.webp +0 -0
  399. package/data/craftbook-templates/pe/pest-diagnosis/art.json +13 -9
  400. package/data/craftbook-templates/pe/pest-diagnosis/logo.webp +0 -0
  401. package/data/craftbook-templates/ph/photo-cull/art.json +13 -9
  402. package/data/craftbook-templates/ph/photo-cull/logo.webp +0 -0
  403. package/data/craftbook-templates/ph/photo-library-nightly/art.json +17 -0
  404. package/data/craftbook-templates/ph/photo-library-nightly/logo.webp +0 -0
  405. package/data/craftbook-templates/ph/photo-library-nightly/manifest.json +1 -0
  406. package/data/craftbook-templates/ph/physics-toy/art.json +13 -9
  407. package/data/craftbook-templates/ph/physics-toy/logo.webp +0 -0
  408. package/data/craftbook-templates/pi/pitch-deck/art.json +13 -9
  409. package/data/craftbook-templates/pi/pitch-deck/logo.webp +0 -0
  410. package/data/craftbook-templates/pl/plan/art.json +13 -8
  411. package/data/craftbook-templates/pl/plan/logo.webp +0 -0
  412. package/data/craftbook-templates/pl/playtest-report/art.json +13 -8
  413. package/data/craftbook-templates/pl/playtest-report/logo.webp +0 -0
  414. package/data/craftbook-templates/po/podcast-chaptering/art.json +13 -9
  415. package/data/craftbook-templates/po/podcast-chaptering/logo.webp +0 -0
  416. package/data/craftbook-templates/po/portfolio-site/art.json +13 -9
  417. package/data/craftbook-templates/po/portfolio-site/logo.webp +0 -0
  418. package/data/craftbook-templates/po/powerpoint-deck/art.json +14 -10
  419. package/data/craftbook-templates/po/powerpoint-deck/logo.webp +0 -0
  420. package/data/craftbook-templates/pr/pr-security-review/art.json +13 -8
  421. package/data/craftbook-templates/pr/pr-security-review/logo.webp +0 -0
  422. package/data/craftbook-templates/pr/practice-exam/art.json +13 -8
  423. package/data/craftbook-templates/pr/practice-exam/logo.webp +0 -0
  424. package/data/craftbook-templates/pr/practice-session/art.json +13 -9
  425. package/data/craftbook-templates/pr/practice-session/logo.webp +0 -0
  426. package/data/craftbook-templates/pr/pre-departure-countdown/art.json +13 -9
  427. package/data/craftbook-templates/pr/pre-departure-countdown/logo.webp +0 -0
  428. package/data/craftbook-templates/pr/press-release/art.json +14 -10
  429. package/data/craftbook-templates/pr/press-release/logo.webp +0 -0
  430. package/data/craftbook-templates/pr/price-tracker/art.json +13 -9
  431. package/data/craftbook-templates/pr/price-tracker/logo.webp +0 -0
  432. package/data/craftbook-templates/pr/pricing-page/art.json +13 -9
  433. package/data/craftbook-templates/pr/pricing-page/logo.webp +0 -0
  434. package/data/craftbook-templates/pr/product-descriptions/art.json +14 -10
  435. package/data/craftbook-templates/pr/product-descriptions/logo.webp +0 -0
  436. package/data/craftbook-templates/pr/proposal-sow/art.json +13 -9
  437. package/data/craftbook-templates/pr/proposal-sow/logo.webp +0 -0
  438. package/data/craftbook-templates/pu/pull-request-review/art.json +14 -9
  439. package/data/craftbook-templates/pu/pull-request-review/logo.webp +0 -0
  440. package/data/craftbook-templates/pu/puzzle-pack-layout/art.json +13 -9
  441. package/data/craftbook-templates/pu/puzzle-pack-layout/logo.webp +0 -0
  442. package/data/craftbook-templates/pw/pwa-offline/art.json +13 -9
  443. package/data/craftbook-templates/pw/pwa-offline/logo.webp +0 -0
  444. package/data/craftbook-templates/qa/qa/art.json +13 -8
  445. package/data/craftbook-templates/qa/qa/logo.webp +0 -0
  446. package/data/craftbook-templates/qu/quarterly-summary/art.json +13 -9
  447. package/data/craftbook-templates/qu/quarterly-summary/logo.webp +0 -0
  448. package/data/craftbook-templates/raw-index.json +1 -1
  449. package/data/craftbook-templates/re/reading-list/art.json +13 -9
  450. package/data/craftbook-templates/re/reading-list/logo.webp +0 -0
  451. package/data/craftbook-templates/re/receipt-intake/art.json +13 -9
  452. package/data/craftbook-templates/re/receipt-intake/logo.webp +0 -0
  453. package/data/craftbook-templates/re/receipt-ocr-ledger/art.json +13 -9
  454. package/data/craftbook-templates/re/receipt-ocr-ledger/logo.webp +0 -0
  455. package/data/craftbook-templates/re/reception-report/art.json +17 -0
  456. package/data/craftbook-templates/re/reception-report/logo.webp +0 -0
  457. package/data/craftbook-templates/re/recipe-capture/art.json +13 -8
  458. package/data/craftbook-templates/re/recipe-capture/logo.webp +0 -0
  459. package/data/craftbook-templates/re/record-a-relative/art.json +13 -9
  460. package/data/craftbook-templates/re/record-a-relative/logo.webp +0 -0
  461. package/data/craftbook-templates/re/recurring-invoice-run/art.json +13 -9
  462. package/data/craftbook-templates/re/recurring-invoice-run/logo.webp +0 -0
  463. package/data/craftbook-templates/re/refactor-module/art.json +14 -9
  464. package/data/craftbook-templates/re/refactor-module/logo.webp +0 -0
  465. package/data/craftbook-templates/re/regex-builder/art.json +13 -8
  466. package/data/craftbook-templates/re/regex-builder/logo.webp +0 -0
  467. package/data/craftbook-templates/re/release-announcement/art.json +14 -10
  468. package/data/craftbook-templates/re/release-announcement/logo.webp +0 -0
  469. package/data/craftbook-templates/re/release-artifact-sanity-check/art.json +14 -10
  470. package/data/craftbook-templates/re/release-artifact-sanity-check/logo.webp +0 -0
  471. package/data/craftbook-templates/re/release-notes/art.json +13 -9
  472. package/data/craftbook-templates/re/release-notes/logo.webp +0 -0
  473. package/data/craftbook-templates/re/release-pipeline-ci/art.json +14 -10
  474. package/data/craftbook-templates/re/release-pipeline-ci/logo.webp +0 -0
  475. package/data/craftbook-templates/re/release-readiness-review/art.json +13 -9
  476. package/data/craftbook-templates/re/release-readiness-review/logo.webp +0 -0
  477. package/data/craftbook-templates/re/reliability-review/art.json +13 -8
  478. package/data/craftbook-templates/re/reliability-review/logo.webp +0 -0
  479. package/data/craftbook-templates/re/report-pdf/art.json +14 -10
  480. package/data/craftbook-templates/re/report-pdf/logo.webp +0 -0
  481. package/data/craftbook-templates/re/research-report/art.json +14 -10
  482. package/data/craftbook-templates/re/research-report/logo.webp +0 -0
  483. package/data/craftbook-templates/re/research-to-document/art.json +14 -10
  484. package/data/craftbook-templates/re/research-to-document/logo.webp +0 -0
  485. package/data/craftbook-templates/re/rest-api/art.json +13 -9
  486. package/data/craftbook-templates/re/rest-api/logo.webp +0 -0
  487. package/data/craftbook-templates/re/resume-cv/art.json +13 -9
  488. package/data/craftbook-templates/re/resume-cv/logo.webp +0 -0
  489. package/data/craftbook-templates/re/review-code-folder/art.json +17 -0
  490. package/data/craftbook-templates/re/review-code-folder/logo.webp +0 -0
  491. package/data/craftbook-templates/re/review-code-folder/manifest.json +1 -0
  492. package/data/craftbook-templates/re/reviewer-loop/art.json +13 -8
  493. package/data/craftbook-templates/re/reviewer-loop/logo.webp +0 -0
  494. package/data/craftbook-templates/ro/rollback-plan/art.json +14 -10
  495. package/data/craftbook-templates/ro/rollback-plan/logo.webp +0 -0
  496. package/data/craftbook-templates/ro/root-cause-investigation/art.json +13 -8
  497. package/data/craftbook-templates/ro/root-cause-investigation/logo.webp +0 -0
  498. package/data/craftbook-templates/ro/rough-cut-assembly/art.json +13 -9
  499. package/data/craftbook-templates/ro/rough-cut-assembly/logo.webp +0 -0
  500. package/data/craftbook-templates/ru/runbook/art.json +13 -8
  501. package/data/craftbook-templates/ru/runbook/logo.webp +0 -0
  502. package/data/craftbook-templates/sc/schema-migration/art.json +14 -10
  503. package/data/craftbook-templates/sc/schema-migration/logo.webp +0 -0
  504. package/data/craftbook-templates/sc/scrape-to-structured/art.json +13 -9
  505. package/data/craftbook-templates/sc/scrape-to-structured/logo.webp +0 -0
  506. package/data/craftbook-templates/sc/script-automation/art.json +13 -8
  507. package/data/craftbook-templates/sc/script-automation/logo.webp +0 -0
  508. package/data/craftbook-templates/sd/sdk-wrapper/art.json +13 -9
  509. package/data/craftbook-templates/sd/sdk-wrapper/logo.webp +0 -0
  510. package/data/craftbook-templates/se/seasonal-maintenance-sweep/art.json +13 -9
  511. package/data/craftbook-templates/se/seasonal-maintenance-sweep/logo.webp +0 -0
  512. package/data/craftbook-templates/se/security-architecture-review/art.json +13 -8
  513. package/data/craftbook-templates/se/security-architecture-review/logo.webp +0 -0
  514. package/data/craftbook-templates/se/seo-meta-pack/art.json +14 -10
  515. package/data/craftbook-templates/se/seo-meta-pack/logo.webp +0 -0
  516. package/data/craftbook-templates/sh/ship/art.json +13 -8
  517. package/data/craftbook-templates/sh/ship/logo.webp +0 -0
  518. package/data/craftbook-templates/so/social-digest/art.json +17 -0
  519. package/data/craftbook-templates/so/social-digest/logo.webp +0 -0
  520. package/data/craftbook-templates/so/social-thread/art.json +13 -9
  521. package/data/craftbook-templates/so/social-thread/logo.webp +0 -0
  522. package/data/craftbook-templates/so/source-quality-audit/art.json +13 -8
  523. package/data/craftbook-templates/so/source-quality-audit/logo.webp +0 -0
  524. package/data/craftbook-templates/sp/spa-dashboard/art.json +13 -9
  525. package/data/craftbook-templates/sp/spa-dashboard/logo.webp +0 -0
  526. package/data/craftbook-templates/sp/spec-authoring/art.json +13 -9
  527. package/data/craftbook-templates/sp/spec-authoring/logo.webp +0 -0
  528. package/data/craftbook-templates/sp/spec-doc/art.json +13 -9
  529. package/data/craftbook-templates/sp/spec-doc/logo.webp +0 -0
  530. package/data/craftbook-templates/sp/spreadsheet-findings/art.json +17 -0
  531. package/data/craftbook-templates/sp/spreadsheet-findings/logo.webp +0 -0
  532. package/data/craftbook-templates/sp/spreadsheet-findings/manifest.json +1 -0
  533. package/data/craftbook-templates/sp/spreadsheet-model/art.json +13 -9
  534. package/data/craftbook-templates/sp/spreadsheet-model/logo.webp +0 -0
  535. package/data/craftbook-templates/sp/sprite-sheet/art.json +13 -9
  536. package/data/craftbook-templates/sp/sprite-sheet/logo.webp +0 -0
  537. package/data/craftbook-templates/sq/sql-analysis/art.json +13 -9
  538. package/data/craftbook-templates/sq/sql-analysis/logo.webp +0 -0
  539. package/data/craftbook-templates/st/standup-summary/art.json +13 -9
  540. package/data/craftbook-templates/st/standup-summary/logo.webp +0 -0
  541. package/data/craftbook-templates/st/state-machine/art.json +13 -8
  542. package/data/craftbook-templates/st/state-machine/logo.webp +0 -0
  543. package/data/craftbook-templates/st/status-report/art.json +13 -9
  544. package/data/craftbook-templates/st/status-report/logo.webp +0 -0
  545. package/data/craftbook-templates/su/subscription-audit/art.json +13 -8
  546. package/data/craftbook-templates/su/subscription-audit/logo.webp +0 -0
  547. package/data/craftbook-templates/su/subtitle-generator/art.json +13 -9
  548. package/data/craftbook-templates/su/subtitle-generator/logo.webp +0 -0
  549. package/data/craftbook-templates/su/summarize-long/art.json +14 -10
  550. package/data/craftbook-templates/su/summarize-long/logo.webp +0 -0
  551. package/data/craftbook-templates/su/survey-analysis/art.json +13 -9
  552. package/data/craftbook-templates/su/survey-analysis/logo.webp +0 -0
  553. package/data/craftbook-templates/sv/svg-animation/art.json +13 -9
  554. package/data/craftbook-templates/sv/svg-animation/logo.webp +0 -0
  555. package/data/craftbook-templates/ta/tailor-resume/art.json +13 -9
  556. package/data/craftbook-templates/ta/tailor-resume/logo.webp +0 -0
  557. package/data/craftbook-templates/te/technical-documentation/art.json +13 -9
  558. package/data/craftbook-templates/te/technical-documentation/logo.webp +0 -0
  559. package/data/craftbook-templates/te/test-coverage-review/art.json +13 -8
  560. package/data/craftbook-templates/te/test-coverage-review/logo.webp +0 -0
  561. package/data/craftbook-templates/te/test-suite-backfill/art.json +14 -9
  562. package/data/craftbook-templates/te/test-suite-backfill/logo.webp +0 -0
  563. package/data/craftbook-templates/th/thank-you-batch/art.json +13 -9
  564. package/data/craftbook-templates/th/thank-you-batch/logo.webp +0 -0
  565. package/data/craftbook-templates/th/thank-you-sweep/art.json +13 -9
  566. package/data/craftbook-templates/th/thank-you-sweep/logo.webp +0 -0
  567. package/data/craftbook-templates/th/threat-model/art.json +13 -9
  568. package/data/craftbook-templates/th/threat-model/logo.webp +0 -0
  569. package/data/craftbook-templates/th/thumbnail-generator/art.json +13 -9
  570. package/data/craftbook-templates/th/thumbnail-generator/logo.webp +0 -0
  571. package/data/craftbook-templates/ti/tidy-spreadsheet/art.json +17 -0
  572. package/data/craftbook-templates/ti/tidy-spreadsheet/logo.webp +0 -0
  573. package/data/craftbook-templates/ti/tidy-spreadsheet/manifest.json +1 -0
  574. package/data/craftbook-templates/ti/tileset-batch/art.json +13 -9
  575. package/data/craftbook-templates/ti/tileset-batch/logo.webp +0 -0
  576. package/data/craftbook-templates/to/tone-rewrite/art.json +14 -10
  577. package/data/craftbook-templates/to/tone-rewrite/logo.webp +0 -0
  578. package/data/craftbook-templates/to/topic-explainer/art.json +14 -10
  579. package/data/craftbook-templates/to/topic-explainer/logo.webp +0 -0
  580. package/data/craftbook-templates/tr/transcribe-and-shownotes/art.json +13 -9
  581. package/data/craftbook-templates/tr/transcribe-and-shownotes/logo.webp +0 -0
  582. package/data/craftbook-templates/tr/transcribe-audio/art.json +13 -9
  583. package/data/craftbook-templates/tr/transcribe-audio/logo.webp +0 -0
  584. package/data/craftbook-templates/tr/transcribe-index/art.json +13 -9
  585. package/data/craftbook-templates/tr/transcribe-index/logo.webp +0 -0
  586. package/data/craftbook-templates/tr/translate-content/art.json +17 -0
  587. package/data/craftbook-templates/tr/translate-content/logo.webp +0 -0
  588. package/data/craftbook-templates/ty/type-safety-pass/art.json +14 -9
  589. package/data/craftbook-templates/ty/type-safety-pass/logo.webp +0 -0
  590. package/data/craftbook-templates/ux/ux-update/art.json +14 -9
  591. package/data/craftbook-templates/ux/ux-update/logo.webp +0 -0
  592. package/data/craftbook-templates/ve/version-bump/art.json +13 -9
  593. package/data/craftbook-templates/ve/version-bump/logo.webp +0 -0
  594. package/data/craftbook-templates/vi/video-storyboard/art.json +13 -9
  595. package/data/craftbook-templates/vi/video-storyboard/logo.webp +0 -0
  596. package/data/craftbook-templates/vi/visit-prep/art.json +13 -9
  597. package/data/craftbook-templates/vi/visit-prep/logo.webp +0 -0
  598. package/data/craftbook-templates/vo/voiceover-script/art.json +13 -9
  599. package/data/craftbook-templates/vo/voiceover-script/logo.webp +0 -0
  600. package/data/craftbook-templates/we/weak-spot-drill/art.json +13 -9
  601. package/data/craftbook-templates/we/weak-spot-drill/logo.webp +0 -0
  602. package/data/craftbook-templates/we/web-app-crud/art.json +13 -9
  603. package/data/craftbook-templates/we/web-app-crud/logo.webp +0 -0
  604. package/data/craftbook-templates/we/web-component/art.json +13 -9
  605. package/data/craftbook-templates/we/web-component/logo.webp +0 -0
  606. package/data/craftbook-templates/we/webhook-handler/art.json +13 -9
  607. package/data/craftbook-templates/we/webhook-handler/logo.webp +0 -0
  608. package/data/craftbook-templates/we/week-plan/art.json +13 -9
  609. package/data/craftbook-templates/we/week-plan/logo.webp +0 -0
  610. package/data/craftbook-templates/we/weekly-menu-plan/art.json +13 -9
  611. package/data/craftbook-templates/we/weekly-menu-plan/logo.webp +0 -0
  612. package/data/craftbook-templates/we/weekly-pipeline-review/art.json +13 -9
  613. package/data/craftbook-templates/we/weekly-pipeline-review/logo.webp +0 -0
  614. package/data/craftbook-templates/we/weekly-review/art.json +13 -9
  615. package/data/craftbook-templates/we/weekly-review/logo.webp +0 -0
  616. package/data/craftbook-templates/we/weekly-walkthrough/art.json +13 -9
  617. package/data/craftbook-templates/we/weekly-walkthrough/logo.webp +0 -0
  618. package/data/craftbook-templates/wh/whitepaper/art.json +13 -9
  619. package/data/craftbook-templates/wh/whitepaper/logo.webp +0 -0
  620. package/data/craftbook-templates/ye/year-in-review/art.json +13 -9
  621. package/data/craftbook-templates/ye/year-in-review/logo.webp +0 -0
  622. package/data/craftbook-templates/yo/youtube-chapters-seo/art.json +13 -9
  623. package/data/craftbook-templates/yo/youtube-chapters-seo/logo.webp +0 -0
  624. package/data/image-models/index.json +1 -1
  625. package/data/image-models/mo/moss-image-sft-q4/manifest.json +38 -0
  626. package/data/image-models/mo/moss-image-sft-q4/versions/1.0.0/manifest.json +37 -0
  627. package/data/image-models/raw-index.json +1 -1
  628. package/data/knowledge-catalogs/be/bendyline-how-to-books/keywords.json +56 -0
  629. package/data/knowledge-catalogs/ca/caselaw-alaska-part-0001/keywords.json +12 -0
  630. package/data/knowledge-catalogs/ca/caselaw-nevada-part-0001/keywords.json +13 -0
  631. package/data/knowledge-catalogs/ca/caselaw-us-300-399-part-0001/keywords.json +14 -0
  632. package/data/knowledge-catalogs/ca/caselaw-us-347-349/keywords.json +17 -0
  633. package/data/knowledge-catalogs/ca/caselaw-utah-part-0001/keywords.json +12 -0
  634. package/data/knowledge-catalogs/ca/caselaw-utah-part-0002/keywords.json +12 -0
  635. package/data/knowledge-catalogs/ca/caselaw-washington-part-0001/keywords.json +12 -0
  636. package/data/knowledge-catalogs/ca/caselaw-washington-part-0002/keywords.json +12 -0
  637. package/data/knowledge-catalogs/ca/caselaw-washington-part-0003/keywords.json +12 -0
  638. package/data/knowledge-catalogs/ca/caselaw-washington-part-0004/keywords.json +12 -0
  639. package/data/knowledge-catalogs/ca/caselaw-washington-part-0005/keywords.json +12 -0
  640. package/data/knowledge-catalogs/ca/caselaw-wyoming-part-0001/keywords.json +12 -0
  641. package/data/knowledge-catalogs/mi/microsoftdocs-aspnet-core-en/keywords.json +21 -0
  642. package/data/knowledge-catalogs/mi/microsoftdocs-azure-ai-platform-en/keywords.json +27 -0
  643. package/data/knowledge-catalogs/mi/microsoftdocs-azure-apps-compute-en/keywords.json +23 -0
  644. package/data/knowledge-catalogs/mi/microsoftdocs-azure-data-aiot-en/keywords.json +26 -0
  645. package/data/knowledge-catalogs/mi/microsoftdocs-azure-management-hybrid-en/keywords.json +28 -0
  646. package/data/knowledge-catalogs/mi/microsoftdocs-azure-network-security-en/keywords.json +29 -0
  647. package/data/knowledge-catalogs/mi/microsoftdocs-dotnet-en/keywords.json +21 -0
  648. package/data/knowledge-catalogs/mi/microsoftdocs-entity-framework-en/keywords.json +14 -0
  649. package/data/knowledge-catalogs/mi/microsoftdocs-microsoft-365-en/keywords.json +20 -0
  650. package/data/knowledge-catalogs/mi/microsoftdocs-powershell-en/keywords.json +24 -0
  651. package/data/knowledge-catalogs/mi/microsoftdocs-sql-server-en/keywords.json +27 -0
  652. package/data/knowledge-catalogs/mi/microsoftdocs-windows-apps-en/keywords.json +18 -0
  653. package/data/knowledge-catalogs/mi/microsoftdocs-windows-server-en/keywords.json +28 -0
  654. package/data/knowledge-catalogs/re/regional-american-south/keywords.json +1700 -0
  655. package/data/knowledge-catalogs/re/regional-andes-amazon/keywords.json +750 -0
  656. package/data/knowledge-catalogs/re/regional-australia-nz/keywords.json +1281 -0
  657. package/data/knowledge-catalogs/re/regional-brazil/keywords.json +1125 -0
  658. package/data/knowledge-catalogs/re/regional-britain-ireland/keywords.json +3287 -0
  659. package/data/knowledge-catalogs/re/regional-california-southwest/keywords.json +1835 -0
  660. package/data/knowledge-catalogs/re/regional-canada-alaska/keywords.json +1184 -0
  661. package/data/knowledge-catalogs/re/regional-central-eastern-europe/keywords.json +1503 -0
  662. package/data/knowledge-catalogs/re/regional-east-asia/keywords.json +2836 -0
  663. package/data/knowledge-catalogs/re/regional-east-southern-africa/keywords.json +813 -0
  664. package/data/knowledge-catalogs/re/regional-mediterranean/keywords.json +2082 -0
  665. package/data/knowledge-catalogs/re/regional-mexico-central-america/keywords.json +1481 -0
  666. package/data/knowledge-catalogs/re/regional-middle-east/keywords.json +1272 -0
  667. package/data/knowledge-catalogs/re/regional-midwest/keywords.json +758 -0
  668. package/data/knowledge-catalogs/re/regional-north-africa/keywords.json +896 -0
  669. package/data/knowledge-catalogs/re/regional-northeast/keywords.json +1281 -0
  670. package/data/knowledge-catalogs/re/regional-northern-eurasia/keywords.json +346 -0
  671. package/data/knowledge-catalogs/re/regional-northern-europe/keywords.json +2688 -0
  672. package/data/knowledge-catalogs/re/regional-pacific-islands/keywords.json +973 -0
  673. package/data/knowledge-catalogs/re/regional-pacific-northwest/keywords.json +937 -0
  674. package/data/knowledge-catalogs/re/regional-rockies-plains/keywords.json +608 -0
  675. package/data/knowledge-catalogs/re/regional-south-asia/keywords.json +633 -0
  676. package/data/knowledge-catalogs/re/regional-southeast-asia/keywords.json +2697 -0
  677. package/data/knowledge-catalogs/re/regional-southern-cone/keywords.json +606 -0
  678. package/data/knowledge-catalogs/re/regional-west-central-africa/keywords.json +564 -0
  679. package/data/knowledge-catalogs/re/regional-western-europe/keywords.json +3247 -0
  680. package/data/knowledge-catalogs/wi/wikipedia-arts/keywords.json +5437 -0
  681. package/data/knowledge-catalogs/wi/wikipedia-astronomy/keywords.json +4009 -0
  682. package/data/knowledge-catalogs/wi/wikipedia-biology/keywords.json +4009 -0
  683. package/data/knowledge-catalogs/wi/wikipedia-business/keywords.json +5583 -0
  684. package/data/knowledge-catalogs/wi/wikipedia-film-tv/keywords.json +6386 -0
  685. package/data/knowledge-catalogs/wi/wikipedia-food-drink/keywords.json +4009 -0
  686. package/data/knowledge-catalogs/wi/wikipedia-games/keywords.json +5672 -0
  687. package/data/knowledge-catalogs/wi/wikipedia-language/keywords.json +4009 -0
  688. package/data/knowledge-catalogs/wi/wikipedia-law/keywords.json +4009 -0
  689. package/data/knowledge-catalogs/wi/wikipedia-literature/keywords.json +5719 -0
  690. package/data/knowledge-catalogs/wi/wikipedia-mathematics/keywords.json +4009 -0
  691. package/data/knowledge-catalogs/wi/wikipedia-medicine/keywords.json +16009 -0
  692. package/data/knowledge-catalogs/wi/wikipedia-military/keywords.json +5843 -0
  693. package/data/knowledge-catalogs/wi/wikipedia-music/keywords.json +6264 -0
  694. package/data/knowledge-catalogs/wi/wikipedia-politics/keywords.json +5447 -0
  695. package/data/knowledge-catalogs/wi/wikipedia-religion-philosophy/keywords.json +4009 -0
  696. package/data/knowledge-catalogs/wi/wikipedia-science/keywords.json +4009 -0
  697. package/data/knowledge-catalogs/wi/wikipedia-sports/keywords.json +5209 -0
  698. package/data/knowledge-catalogs/wi/wikipedia-technology/keywords.json +6537 -0
  699. package/data/knowledge-catalogs/wi/wikipedia-transportation/keywords.json +5989 -0
  700. package/data/project-types/ca/caregiving-binder/art.json +17 -0
  701. package/data/project-types/ca/caregiving-binder/logo.webp +0 -0
  702. package/data/project-types/ca/caregiving-binder/manifest.json +1 -0
  703. package/data/project-types/ch/checkers/art.json +17 -0
  704. package/data/project-types/ch/checkers/logo.webp +0 -0
  705. package/data/project-types/ch/checkers/manifest.json +1 -0
  706. package/data/project-types/ch/chess/art.json +17 -0
  707. package/data/project-types/ch/chess/logo.webp +0 -0
  708. package/data/project-types/ch/chess/manifest.json +1 -0
  709. package/data/project-types/da/data-analysis/art.json +17 -0
  710. package/data/project-types/da/data-analysis/logo.webp +0 -0
  711. package/data/project-types/da/data-analysis/manifest.json +22 -0
  712. package/data/project-types/da/data-analysis/versions/1.0.0/about.md +18 -0
  713. package/data/project-types/da/data-analysis/versions/1.0.0/manifest.json +26 -0
  714. package/data/project-types/da/data-analysis/versions/1.0.0/mission.md +4 -0
  715. package/data/project-types/da/data-analysis/versions/1.0.0/pages/analytics.js +63 -0
  716. package/data/project-types/da/data-analysis/versions/1.0.0/pages/dashboard.css +89 -0
  717. package/data/project-types/da/data-analysis/versions/1.0.0/pages/dashboard.js +180 -0
  718. package/data/project-types/da/data-analysis/versions/1.0.0/pages/datasets.js +44 -0
  719. package/data/project-types/da/data-analysis/versions/1.0.0/pages/index.html +199 -0
  720. package/data/project-types/da/data-analysis/versions/1.0.0/pages/insights.js +129 -0
  721. package/data/project-types/de/design-scheme/art.json +17 -0
  722. package/data/project-types/de/design-scheme/logo.webp +0 -0
  723. package/data/project-types/de/design-scheme/manifest.json +1 -0
  724. package/data/project-types/em/email/art.json +17 -0
  725. package/data/project-types/em/email/logo.webp +0 -0
  726. package/data/project-types/em/email/manifest.json +1 -0
  727. package/data/project-types/ev/event-planner/art.json +17 -0
  728. package/data/project-types/ev/event-planner/logo.webp +0 -0
  729. package/data/project-types/ev/event-planner/manifest.json +1 -0
  730. package/data/project-types/fi/fitness-coach/art.json +17 -0
  731. package/data/project-types/fi/fitness-coach/logo.webp +0 -0
  732. package/data/project-types/fi/fitness-coach/manifest.json +1 -0
  733. package/data/project-types/fl/flashcards/art.json +17 -0
  734. package/data/project-types/fl/flashcards/logo.webp +0 -0
  735. package/data/project-types/fl/flashcards/manifest.json +1 -0
  736. package/data/project-types/fr/freelance-office/art.json +17 -0
  737. package/data/project-types/fr/freelance-office/logo.webp +0 -0
  738. package/data/project-types/fr/freelance-office/manifest.json +1 -0
  739. package/data/project-types/fu/fundraiser-hq/art.json +17 -0
  740. package/data/project-types/fu/fundraiser-hq/logo.webp +0 -0
  741. package/data/project-types/fu/fundraiser-hq/manifest.json +1 -0
  742. package/data/project-types/go/go/art.json +17 -0
  743. package/data/project-types/go/go/logo.webp +0 -0
  744. package/data/project-types/go/go/manifest.json +1 -0
  745. package/data/project-types/ho/household-budget/art.json +17 -0
  746. package/data/project-types/ho/household-budget/logo.webp +0 -0
  747. package/data/project-types/ho/household-budget/manifest.json +1 -0
  748. package/data/project-types/ho/household-manual/art.json +17 -0
  749. package/data/project-types/ho/household-manual/logo.webp +0 -0
  750. package/data/project-types/ho/household-manual/manifest.json +1 -0
  751. package/data/project-types/im/image-feed/art.json +17 -0
  752. package/data/project-types/im/image-feed/logo.webp +0 -0
  753. package/data/project-types/im/image-feed/manifest.json +1 -0
  754. package/data/project-types/index.json +1 -1
  755. package/data/project-types/jo/job-hunt/art.json +17 -0
  756. package/data/project-types/jo/job-hunt/logo.webp +0 -0
  757. package/data/project-types/jo/job-hunt/manifest.json +1 -0
  758. package/data/project-types/ju/just-chat/art.json +17 -0
  759. package/data/project-types/ju/just-chat/logo.webp +0 -0
  760. package/data/project-types/ju/just-chat/manifest.json +1 -0
  761. package/data/project-types/la/language-trainer/art.json +17 -0
  762. package/data/project-types/la/language-trainer/logo.webp +0 -0
  763. package/data/project-types/la/language-trainer/manifest.json +1 -0
  764. package/data/project-types/li/life-binder/art.json +17 -0
  765. package/data/project-types/li/life-binder/logo.webp +0 -0
  766. package/data/project-types/li/life-binder/manifest.json +1 -0
  767. package/data/project-types/me/meal-planner/art.json +17 -0
  768. package/data/project-types/me/meal-planner/logo.webp +0 -0
  769. package/data/project-types/me/meal-planner/manifest.json +1 -0
  770. package/data/project-types/me/media-library/art.json +17 -0
  771. package/data/project-types/me/media-library/logo.webp +0 -0
  772. package/data/project-types/me/media-library/manifest.json +23 -0
  773. package/data/project-types/me/media-library/versions/1.0.0/about.md +17 -0
  774. package/data/project-types/me/media-library/versions/1.0.0/manifest.json +20 -0
  775. package/data/project-types/me/media-library/versions/1.0.0/mission.md +6 -0
  776. package/data/project-types/me/media-library/versions/1.0.0/pages/assets/alpine.svg +1 -0
  777. package/data/project-types/me/media-library/versions/1.0.0/pages/assets/coast.svg +1 -0
  778. package/data/project-types/me/media-library/versions/1.0.0/pages/assets/evening.svg +1 -0
  779. package/data/project-types/me/media-library/versions/1.0.0/pages/assets/forest.svg +1 -0
  780. package/data/project-types/me/media-library/versions/1.0.0/pages/assets/light.webm +0 -0
  781. package/data/project-types/me/media-library/versions/1.0.0/pages/assets/notes.wav +0 -0
  782. package/data/project-types/me/media-library/versions/1.0.0/pages/assets/study.svg +1 -0
  783. package/data/project-types/me/media-library/versions/1.0.0/pages/gallery.css +85 -0
  784. package/data/project-types/me/media-library/versions/1.0.0/pages/gallery.js +165 -0
  785. package/data/project-types/me/media-library/versions/1.0.0/pages/index.html +128 -0
  786. package/data/project-types/me/media-library/versions/1.0.0/pages/media-files.js +41 -0
  787. package/data/project-types/no/novel-writing-room/art.json +17 -0
  788. package/data/project-types/no/novel-writing-room/logo.webp +0 -0
  789. package/data/project-types/no/novel-writing-room/manifest.json +1 -0
  790. package/data/project-types/raw-index.json +1 -1
  791. package/data/project-types/so/social-feed/art.json +17 -0
  792. package/data/project-types/so/social-feed/logo.webp +0 -0
  793. package/data/project-types/so/social-feed/manifest.json +1 -0
  794. package/data/project-types/so/software-project/art.json +17 -0
  795. package/data/project-types/so/software-project/logo.webp +0 -0
  796. package/data/project-types/so/software-project/manifest.json +1 -0
  797. package/data/project-types/tr/trip-planner/art.json +17 -0
  798. package/data/project-types/tr/trip-planner/logo.webp +0 -0
  799. package/data/project-types/tr/trip-planner/manifest.json +1 -0
  800. package/data/project-types/wo/word-clues/art.json +17 -0
  801. package/data/project-types/wo/word-clues/logo.webp +0 -0
  802. package/data/project-types/wo/word-clues/manifest.json +1 -0
  803. package/package.json +3 -1
  804. package/schemas/chat-model-version.schema.json +23 -0
  805. package/schemas/knowledge-catalog-keywords.schema.json +50 -0
@@ -0,0 +1,17 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "promptVersion": "workshop-mark-cutout-v3",
4
+ "subject": "a heart beside a small seven-compartment pill organizer",
5
+ "sourceSummary": "Coordinate a loved one's care without losing the thread.",
6
+ "styleReference": "wikipedia-astronomy",
7
+ "setReference": "data-dictionary-cutout-v3",
8
+ "sheet": "round3-projects",
9
+ "cell": 5,
10
+ "fill": 0.88,
11
+ "shadow": {
12
+ "color": "#1c120a",
13
+ "opacity": 0.38,
14
+ "blur": 0.035,
15
+ "offsetY": 0.025
16
+ }
17
+ }
@@ -19,6 +19,7 @@
19
19
  "maintainer": {
20
20
  "name": "Gezel"
21
21
  },
22
+ "logo": "logo.webp",
22
23
  "license": "MIT",
23
24
  "yankedVersions": []
24
25
  }
@@ -0,0 +1,17 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "promptVersion": "workshop-mark-cutout-v3",
4
+ "subject": "a short stack of round checker pieces in two colors, the top one wearing a small crown",
5
+ "sourceSummary": "Play checkers against a gezel opponent on a live board.",
6
+ "styleReference": "wikipedia-astronomy",
7
+ "setReference": "data-dictionary-cutout-v3",
8
+ "sheet": "s02",
9
+ "cell": 1,
10
+ "fill": 0.88,
11
+ "shadow": {
12
+ "color": "#1c120a",
13
+ "opacity": 0.38,
14
+ "blur": 0.035,
15
+ "offsetY": 0.025
16
+ }
17
+ }
@@ -14,6 +14,7 @@
14
14
  "maintainer": {
15
15
  "name": "Gezel"
16
16
  },
17
+ "logo": "logo.webp",
17
18
  "license": "MIT",
18
19
  "yankedVersions": []
19
20
  }
@@ -0,0 +1,17 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "promptVersion": "workshop-mark-cutout-v3",
4
+ "subject": "a single chess knight piece",
5
+ "sourceSummary": "Play a complete game of chess against a gezel opponent on a live board.",
6
+ "styleReference": "wikipedia-astronomy",
7
+ "setReference": "data-dictionary-cutout-v3",
8
+ "sheet": "round3-projects",
9
+ "cell": 4,
10
+ "fill": 0.88,
11
+ "shadow": {
12
+ "color": "#1c120a",
13
+ "opacity": 0.38,
14
+ "blur": 0.035,
15
+ "offsetY": 0.025
16
+ }
17
+ }
@@ -15,6 +15,7 @@
15
15
  "maintainer": {
16
16
  "name": "Gezel"
17
17
  },
18
+ "logo": "logo.webp",
18
19
  "license": "MIT",
19
20
  "yankedVersions": []
20
21
  }
@@ -0,0 +1,17 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "promptVersion": "workshop-mark-cutout-v3",
4
+ "subject": "a tilted spreadsheet grid with a small pie chart standing on it",
5
+ "sourceSummary": "Explore the datasets in a project folder.",
6
+ "styleReference": "wikipedia-astronomy",
7
+ "setReference": "data-dictionary-cutout-v3",
8
+ "sheet": "s01",
9
+ "cell": 6,
10
+ "fill": 0.88,
11
+ "shadow": {
12
+ "color": "#1c120a",
13
+ "opacity": 0.38,
14
+ "blur": 0.035,
15
+ "offsetY": 0.025
16
+ }
17
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "kind": "project-type",
4
+ "id": "data-analysis",
5
+ "name": "Data Analysis",
6
+ "description": "Explore the datasets in a project folder. A live dashboard finds spreadsheets and data files and opens them in Gezel's file viewers.",
7
+ "tags": [
8
+ "data",
9
+ "analysis",
10
+ "spreadsheets",
11
+ "csv",
12
+ "dashboard",
13
+ "reports"
14
+ ],
15
+ "category": "data",
16
+ "icon": "chart",
17
+ "maintainer": {
18
+ "name": "Gezel"
19
+ },
20
+ "logo": "logo.webp",
21
+ "license": "MIT"
22
+ }
@@ -0,0 +1,18 @@
1
+ # Data Analysis
2
+
3
+ This project explores the datasets in its workspace. Its dashboard discovers
4
+ spreadsheets, delimited tables, structured data, and database files in the
5
+ project folder and its subfolders. Open a file to use Gezel's existing viewer.
6
+
7
+ Start with the question the person wants to answer. Inspect the relevant data,
8
+ explain missing values and assumptions, and support conclusions with evidence.
9
+ Keep original datasets intact; save derived data and reports as separate files.
10
+
11
+ The dashboard lists files and metadata, and uses Gezel's shared table APIs to
12
+ show row counts, numeric summaries, column types, and charts for indexed tables.
13
+ Charts start with record counts and offer explicit numeric averages. These are
14
+ descriptive summaries of the indexed snapshot, not conclusions about causality.
15
+ Unindexed files remain browsable; missing query support is explained on the page.
16
+ Hidden folders, document companion
17
+ folders, and dependency folders are omitted. Large or partly unreadable folders
18
+ are explicitly labeled as incomplete.
@@ -0,0 +1,26 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "version": "1.0.0",
4
+ "releasedAt": "2026-10-19T00:00:00Z",
5
+ "extends": "data-analysis",
6
+ "nameTemplate": "Data Analysis",
7
+ "aboutTemplate": "about.md",
8
+ "missionTemplate": "mission.md",
9
+ "gezels": [
10
+ {
11
+ "templateId": "researcher",
12
+ "voorman": true
13
+ }
14
+ ],
15
+ "pages": {
16
+ "entry": "index.html",
17
+ "api": 1,
18
+ "reads": [
19
+ {
20
+ "source": "workspace",
21
+ "path": ".",
22
+ "subtree": true
23
+ }
24
+ ]
25
+ }
26
+ }
@@ -0,0 +1,4 @@
1
+ - Make the project's datasets easy to find and open.
2
+ - Answer the user's questions with reproducible analysis and clear evidence.
3
+ - Preserve source data and explain uncertainty, assumptions, and limitations.
4
+ - Keep derived datasets, reports, and notes easy to trace back to their sources.
@@ -0,0 +1,63 @@
1
+ (() => {
2
+ 'use strict';
3
+ const quote = (name) => `"${String(name).replaceAll('"', '""')}"`;
4
+ const numeric = (columns) => columns.filter((c) => ['BIGINT', 'DOUBLE'].includes(c.type) && c.role !== 'identifier');
5
+ const groups = (columns) => columns.filter((c) => c.type !== 'JSON').sort((a, b) => {
6
+ const rank = (c) => c.role === 'dimension' ? 0 : c.role === 'time' ? 1 : c.role === 'identifier' ? 3 : 2;
7
+ return rank(a) - rank(b);
8
+ });
9
+ function summary(table, columns) {
10
+ const measures = numeric(columns).slice(0, 6);
11
+ const fields = ['count(*) AS row_count'];
12
+ measures.forEach((c, i) => {
13
+ for (const fn of ['count', 'min', 'max', 'avg']) fields.push(`${fn}(${quote(c.name)}) AS ${fn}_${i}`);
14
+ });
15
+ return {
16
+ sql: `SELECT ${fields.join(', ')} FROM ${quote(table)}`,
17
+ measures,
18
+ sample(rows) {
19
+ const result = { row_count: rows.length };
20
+ measures.forEach((c, i) => {
21
+ const values = rows.map((r) => r[c.name]).filter((v) => v !== null && v !== undefined);
22
+ result[`count_${i}`] = values.length;
23
+ result[`min_${i}`] = values.length ? Math.min(...values) : null;
24
+ result[`max_${i}`] = values.length ? Math.max(...values) : null;
25
+ result[`avg_${i}`] = values.length ? values.reduce((a, b) => a + b, 0) / values.length : null;
26
+ });
27
+ return [result];
28
+ },
29
+ };
30
+ }
31
+ function chart(table, group, measure) {
32
+ const time = ['DATE', 'TIMESTAMP'].includes(group.type);
33
+ const key = time ? `CAST(date_trunc('month', ${quote(group.name)}) AS VARCHAR)` : `CAST(${quote(group.name)} AS VARCHAR)`;
34
+ const value = measure ? `avg(${quote(measure.name)})` : 'count(*)';
35
+ return {
36
+ sql: `SELECT ${key} AS label, ${value} AS value FROM ${quote(table)} WHERE ${quote(group.name)} IS NOT NULL GROUP BY 1 ORDER BY ${time ? 'label DESC' : 'value DESC NULLS LAST, label ASC'} LIMIT 12`,
37
+ time,
38
+ sample(rows) {
39
+ const buckets = new Map();
40
+ for (const row of rows) {
41
+ if (row[group.name] == null) continue;
42
+ const label = time ? `${String(row[group.name]).slice(0, 7)}-01 00:00:00` : String(row[group.name]);
43
+ if (!buckets.has(label)) buckets.set(label, []);
44
+ buckets.get(label).push(row);
45
+ }
46
+ return [...buckets].map(([label, bucket]) => {
47
+ const values = measure ? bucket.map((r) => r[measure.name]).filter((v) => v != null) : [];
48
+ return { label, value: measure ? (values.length ? values.reduce((a, b) => a + b, 0) / values.length : null) : bucket.length };
49
+ }).sort((a, b) => time ? b.label.localeCompare(a.label) : (b.value ?? -Infinity) - (a.value ?? -Infinity) || a.label.localeCompare(b.label)).slice(0, 12);
50
+ },
51
+ };
52
+ }
53
+ function bars(rows) {
54
+ const values = rows.map((r) => Number(r.value)).filter(Number.isFinite);
55
+ const low = Math.min(0, ...values), high = Math.max(0, ...values);
56
+ const span = high - low || 1;
57
+ return { zero: -low / span * 100, rows: rows.map((row) => {
58
+ const value = Number(row.value);
59
+ return { ...row, left: (Math.min(0, value) - low) / span * 100, width: Math.abs(value) / span * 100 };
60
+ }) };
61
+ }
62
+ window.dataAnalysisQueries = { quote, numeric, groups, summary, chart, bars };
63
+ })();
@@ -0,0 +1,89 @@
1
+ :root {
2
+ color-scheme: light dark;
3
+ --bg: #faf7f2; --surface: #fffdf9; --text: #2b2620; --text-muted: #71675c;
4
+ --border: #dcd4c8; --accent: #835333; --accent-soft: #eee5da; --danger: #a42b2b;
5
+ --radius-md: 6px; --radius-lg: 10px;
6
+ font-family: var(--font-body, system-ui, sans-serif); font-size: 16px;
7
+ }
8
+ @media (prefers-color-scheme: dark) {
9
+ :root { --bg: #1c1a17; --surface: #262320; --text: #efe9e0; --text-muted: #b9aea0; --border: #464039; --accent: #e2b38c; --accent-soft: #332b24; --danger: #ffaaaa; }
10
+ }
11
+ :root[data-theme="light"] { color-scheme: light; --bg: #faf7f2; --surface: #fffdf9; --text: #2b2620; --text-muted: #71675c; --border: #dcd4c8; --accent: #835333; --accent-soft: #eee5da; --danger: #a42b2b; }
12
+ :root[data-theme="dark"] { color-scheme: dark; --bg: #1c1a17; --surface: #262320; --text: #efe9e0; --text-muted: #b9aea0; --border: #464039; --accent: #e2b38c; --accent-soft: #332b24; --danger: #ffaaaa; }
13
+ * { box-sizing: border-box; }
14
+ [hidden] { display: none !important; }
15
+ body { margin: 0; background: var(--bg); color: var(--text); line-height: 1.5; }
16
+ main { max-width: 1040px; margin: 0 auto; padding: clamp(16px, 4vw, 44px); }
17
+ h1, h2, h3 { font-family: var(--font-heading, Georgia, serif); font-weight: 400; line-height: 1.25; }
18
+ h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); margin: 0; }
19
+ h2 { font-size: 1.3rem; margin: 0; }
20
+ h3 { font-size: 1.15rem; margin-top: 0; }
21
+ p { margin: 0 0 12px; }
22
+ header, .section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
23
+ header { margin: 24px 0; }
24
+ .eyebrow { color: var(--accent); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 8px; }
25
+ .intro { color: var(--text-muted); margin: 8px 0 0; }
26
+ button, input, select { font: inherit; font-family: var(--font-ui, system-ui, sans-serif); border: 1px solid var(--border); border-radius: var(--radius-md); color: var(--text); background: var(--surface); min-height: 44px; padding: 9px 12px; }
27
+ button { cursor: pointer; box-shadow: inset 0 1px 0 color-mix(in srgb, var(--text) 5%, transparent), 0 1px 2px #0000000d; }
28
+ button:hover { background: var(--accent-soft); border-color: var(--accent); }
29
+ button:disabled { cursor: wait; opacity: .6; }
30
+ :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
31
+ .summary { display: grid; grid-template-columns: repeat(3, 1fr); margin: 24px 0 32px; border-block: 1px solid var(--border); }
32
+ .summary > div { padding: 16px 12px 16px 0; }
33
+ dt { color: var(--text-muted); font-size: .85rem; }
34
+ dd { margin: 4px 0 0; font-size: 1.5rem; font-variant-numeric: tabular-nums; }
35
+ .muted, .hint, footer, #status { color: var(--text-muted); font-size: .85rem; }
36
+ .section-heading p { margin: 0; }
37
+ .hint { margin: 12px 0 20px; }
38
+ .filters { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
39
+ .filters label { font-size: .8rem; color: var(--text-muted); flex: 1 1 130px; min-width: 0; }
40
+ .filters label:first-child { flex: 3 1 200px; }
41
+ input, select { display: block; width: 100%; margin-top: 5px; font-size: .9rem; }
42
+ .file-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--border); }
43
+ .file-list li { display: flex; align-items: center; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--border); }
44
+ .file-format { font-size: .72rem; font-weight: 600; color: var(--accent); background: var(--accent-soft); border-radius: var(--radius-md); padding: 10px 6px; min-width: 56px; text-align: center; }
45
+ .file-info { flex: 1; min-width: 0; }
46
+ .file-name { display: block; font-weight: 600; overflow-wrap: anywhere; }
47
+ .file-detail { color: var(--text-muted); font-size: .8rem; overflow-wrap: anywhere; }
48
+ .file-open { color: var(--accent); flex-shrink: 0; font-size: .85rem; }
49
+ .empty { text-align: center; padding: 32px 16px; background: var(--surface); border: 1px dashed var(--border); border-radius: var(--radius-lg); color: var(--text-muted); }
50
+ .empty p { margin-bottom: 0; }
51
+ #error { color: var(--danger); }
52
+ .notice, [data-gezel-demo-banner] { padding: 12px 16px; background: var(--accent-soft); border-radius: var(--radius-md); font-size: .85rem; }
53
+ [data-gezel-demo-banner] { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
54
+ section + section { margin-top: 32px; }
55
+ #reports-section h2 { margin-bottom: 16px; }
56
+ footer { margin-top: 28px; }
57
+ .source-line { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: .85rem; overflow-wrap: anywhere; }
58
+ .table-summary { margin-block: 16px 24px; }
59
+ #table-stamp { font-size: .85rem; overflow-wrap: anywhere; }
60
+ #insights-error { color: var(--danger); font-size: .85rem; overflow-wrap: anywhere; }
61
+ .chart-figure { margin: 20px 0 28px; }
62
+ figcaption { color: var(--text-muted); font-size: .85rem; margin-bottom: 16px; }
63
+ #chart { list-style: none; padding: 0; margin: 0; }
64
+ #chart li { display: grid; grid-template-columns: minmax(70px, 1fr) minmax(80px, 3fr) minmax(56px, 1fr); gap: 12px; align-items: center; font-size: .85rem; margin-block: 10px; }
65
+ #chart li > :first-child { overflow-wrap: anywhere; }
66
+ #chart li > :last-child { text-align: right; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
67
+ .bar-track { display: block; position: relative; height: 24px; background: var(--accent-soft); }
68
+ .bar-track::after { content: ''; position: absolute; left: var(--zero, 0%); top: -3px; bottom: -3px; border-left: 1px solid var(--text-muted); }
69
+ .bar { position: absolute; height: 100%; background: var(--accent); }
70
+ details { border-top: 1px solid var(--border); padding-block: 12px; }
71
+ summary { cursor: pointer; font-weight: 600; padding: 8px 0; }
72
+ .table-scroll { overflow-x: auto; }
73
+ .table-scroll th { font-weight: 600; }
74
+ .table-scroll td { font-variant-numeric: tabular-nums; }
75
+ #numeric-summary th, #numeric-summary td { white-space: nowrap; }
76
+ #schema-body th, #schema-body td { max-width: 240px; overflow-wrap: anywhere; }
77
+ dialog { max-width: min(540px, calc(100% - 32px)); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); color: var(--text); padding: 24px; }
78
+ dialog::backdrop { background: #0008; }
79
+ dialog h2 { overflow-wrap: anywhere; }
80
+ dialog p { margin-top: 12px; }
81
+ table { border-collapse: collapse; width: 100%; margin-bottom: 20px; font-size: .85rem; }
82
+ th, td { text-align: left; padding: 8px; border-bottom: 1px solid var(--border); }
83
+ @media (max-width: 480px) {
84
+ .file-format { display: none; }
85
+ .file-list li { gap: 8px; }
86
+ .section-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
87
+ dd { font-size: 1.2rem; }
88
+ [data-gezel-demo-banner] { align-items: flex-start; flex-direction: column; }
89
+ }
@@ -0,0 +1,180 @@
1
+ (() => {
2
+ 'use strict';
3
+
4
+ const { data: DATA, reports: REPORTS, extension, scan } = window.dataAnalysisFiles;
5
+ const $ = (id) => document.getElementById(id);
6
+ const api = window.gezel;
7
+ const demo = demoMode;
8
+ let files = [];
9
+ let busy = false;
10
+ let again = false;
11
+ let stopped = false;
12
+ let debounce;
13
+ const watches = new Map();
14
+ const sampleFiles = [
15
+ { path: 'sales/quarterly-sales.csv', size: 12480, mtime: 1791849600000 },
16
+ { path: 'sales/revenue-plan.xlsx', size: 48210, mtime: 1791763200000 },
17
+ { path: 'customers.json', size: 22680, mtime: 1791676800000 },
18
+ { path: 'research/survey-responses.tsv', size: 8640, mtime: 1791590400000 },
19
+ { path: 'archive/orders.parquet', size: 3145728, mtime: 1791504000000 },
20
+ { path: 'reports/quarterly-summary.pdf', size: 128040, mtime: 1791849600000 },
21
+ ];
22
+
23
+ function sizeLabel(size) {
24
+ if (size < 1024) return `${size} B`;
25
+ const units = ['KB', 'MB', 'GB', 'TB'];
26
+ let value = size / 1024;
27
+ let unit = 0;
28
+ while (value >= 1024 && unit < units.length - 1) { value /= 1024; unit++; }
29
+ return `${new Intl.NumberFormat(undefined, { maximumFractionDigits: 1 }).format(value)} ${units[unit]}`;
30
+ }
31
+ function message(id, text) { $(id).textContent = text; $(id).hidden = !text; }
32
+ function compare(a, b) {
33
+ const sort = $('sort').value;
34
+ const delta = sort === 'size' ? b.size - a.size : sort === 'modified' ? b.mtime - a.mtime : 0;
35
+ return delta || a.path.localeCompare(b.path, undefined, { numeric: true, sensitivity: 'base' });
36
+ }
37
+ function scheduleRefresh() {
38
+ clearTimeout(debounce);
39
+ debounce = setTimeout(() => { if (!stopped) void refresh(); }, 200);
40
+ }
41
+ async function discover() {
42
+ const result = await scan((path) => api.data.list(path), { cancelled: () => stopped });
43
+ const visited = new Set(result.folders);
44
+ if (!stopped) {
45
+ for (const [path, stop] of watches) {
46
+ if (!visited.has(path)) { stop(); watches.delete(path); }
47
+ }
48
+ for (const path of visited) {
49
+ if (!watches.has(path)) watches.set(path, api.data.watch(path, scheduleRefresh));
50
+ }
51
+ }
52
+ const notes = [];
53
+ if (result.limited) notes.push(`This is a partial listing: scanning is limited to ${result.maxFolders} folders and ${result.maxFiles.toLocaleString()} files.`);
54
+ if (result.skipped) notes.push(`${result.skipped} subfolder${result.skipped === 1 ? '' : 's'} could not be read. Refresh to try again.`);
55
+ return { files: result.files, notice: notes.join(' ') };
56
+ }
57
+
58
+ async function openFile(file) {
59
+ message('error', '');
60
+ if (demo) {
61
+ $('demo-title').textContent = file.path;
62
+ $('demo-preview').showModal();
63
+ return;
64
+ }
65
+ if (api.page.mode !== 'embedded' || typeof api.data.open !== 'function') {
66
+ message('error', 'Open this project in the latest Gezel app to use its file viewers.');
67
+ return;
68
+ }
69
+ try { await api.data.open(file.path); }
70
+ catch (error) { message('error', `Could not open ${file.path}: ${error.message || 'Please try again.'}`); }
71
+ }
72
+ function row(file) {
73
+ const li = document.createElement('li');
74
+ const badge = document.createElement('span');
75
+ badge.className = 'file-format';
76
+ badge.textContent = extension(file.path).toUpperCase();
77
+ const info = document.createElement('div');
78
+ info.className = 'file-info';
79
+ const name = document.createElement('span');
80
+ name.className = 'file-name';
81
+ name.textContent = file.path.split('/').pop();
82
+ const detail = document.createElement('span');
83
+ detail.className = 'file-detail';
84
+ const folder = file.path.includes('/') ? file.path.slice(0, file.path.lastIndexOf('/')) : 'Project folder';
85
+ const date = file.mtime ? new Date(file.mtime).toLocaleDateString(undefined, { month: 'short', day: 'numeric', year: 'numeric' }) : 'Date unavailable';
86
+ detail.textContent = `${folder} · ${sizeLabel(file.size)} · ${date}`;
87
+ info.append(name, detail);
88
+ const open = document.createElement('button');
89
+ open.type = 'button';
90
+ open.className = 'file-open';
91
+ open.textContent = 'Open';
92
+ open.setAttribute('aria-label', `Open ${file.path}`);
93
+ open.addEventListener('click', () => { void openFile(file); });
94
+ li.append(badge, info, open);
95
+ return li;
96
+ }
97
+ function render() {
98
+ const datasets = files.filter((file) => DATA.has(extension(file.path)));
99
+ const formats = [...new Set(datasets.map((file) => extension(file.path)))].sort();
100
+ const chosen = $('format').value;
101
+ const all = document.createElement('option');
102
+ all.value = ''; all.textContent = 'All formats';
103
+ $('format').replaceChildren(all, ...formats.map((format) => {
104
+ const option = document.createElement('option');
105
+ option.value = format; option.textContent = format.toUpperCase();
106
+ return option;
107
+ }));
108
+ $('format').value = formats.includes(chosen) ? chosen : '';
109
+ const query = $('search').value.trim().toLowerCase();
110
+ const shown = datasets.filter((file) => file.path.toLowerCase().includes(query) && (!$('format').value || extension(file.path) === $('format').value)).sort(compare);
111
+ $('datasets').replaceChildren(...shown.map(row));
112
+ $('dataset-count').textContent = datasets.length.toLocaleString();
113
+ $('format-count').textContent = formats.length.toLocaleString();
114
+ $('total-size').textContent = sizeLabel(datasets.reduce((sum, file) => sum + file.size, 0));
115
+ $('empty').hidden = datasets.length > 0;
116
+ $('no-matches').hidden = datasets.length === 0 || shown.length > 0;
117
+ $('datasets').hidden = shown.length === 0;
118
+ const reports = files.filter((file) => REPORTS.has(extension(file.path)) && file.path.toLowerCase().includes(query)).sort(compare);
119
+ $('reports').replaceChildren(...reports.map(row));
120
+ $('reports-section').hidden = reports.length === 0;
121
+ $('status').textContent = `${shown.length} of ${datasets.length} dataset${datasets.length === 1 ? '' : 's'}`;
122
+ }
123
+ async function refresh() {
124
+ if (busy) { again = true; return; }
125
+ window.dataAnalysisInsights.refresh();
126
+ busy = true;
127
+ $('refresh').disabled = true;
128
+ $('datasets').setAttribute('aria-busy', 'true');
129
+ message('error', '');
130
+ try {
131
+ const result = demo ? { files: sampleFiles.map((file) => ({ ...file })), notice: '' } : await discover();
132
+ if (stopped) return;
133
+ files = result.files;
134
+ message('notice', result.notice);
135
+ render();
136
+ $('updated').textContent = demo ? 'Sample files' : `Updated ${new Date().toLocaleTimeString(undefined, { hour: 'numeric', minute: '2-digit' })}`;
137
+ } catch (error) {
138
+ message('error', `Could not read the project folder: ${error.message || 'Please try again.'}`);
139
+ $('status').textContent = files.length ? 'Showing the previous listing.' : 'Folder unavailable. Use Refresh to try again.';
140
+ $('updated').textContent = 'Refresh needed';
141
+ } finally {
142
+ busy = false;
143
+ $('refresh').disabled = false;
144
+ $('datasets').removeAttribute('aria-busy');
145
+ if (again && !stopped) { again = false; scheduleRefresh(); }
146
+ }
147
+ }
148
+
149
+ $('search').addEventListener('input', render);
150
+ $('format').addEventListener('change', render);
151
+ $('sort').addEventListener('change', render);
152
+ $('refresh').addEventListener('click', () => { void refresh(); });
153
+ $('reset-demo').addEventListener('click', () => {
154
+ $('search').value = ''; $('format').value = ''; $('sort').value = 'name';
155
+ $('demo-preview').close();
156
+ window.dataAnalysisInsights.reset();
157
+ void refresh();
158
+ });
159
+ document.querySelector('[data-gezel-demo-banner]').hidden = !demo;
160
+ let stopTheme;
161
+ if (api) {
162
+ const applyTheme = ({ mode }) => { document.documentElement.dataset.theme = mode; };
163
+ applyTheme(api.ui.theme);
164
+ stopTheme = api.ui.onTheme(applyTheme);
165
+ }
166
+ // A periodic sweep also closes the gap between a listing and its first watch stamp.
167
+ const timer = demo ? null : setInterval(() => {
168
+ if (document.visibilityState !== 'hidden') void refresh();
169
+ }, 30000);
170
+ document.addEventListener('visibilitychange', () => {
171
+ if (!demo && document.visibilityState !== 'hidden') scheduleRefresh();
172
+ });
173
+ window.addEventListener('pagehide', () => {
174
+ stopped = true;
175
+ clearTimeout(debounce); clearInterval(timer);
176
+ for (const stop of watches.values()) stop();
177
+ stopTheme?.();
178
+ }, { once: true });
179
+ void refresh();
180
+ })();
@@ -0,0 +1,44 @@
1
+ (() => {
2
+ 'use strict';
3
+ const data = new Set(['csv', 'tsv', 'tab', 'xlsx', 'xls', 'xlsm', 'xlsb', 'ods', 'numbers', 'json', 'jsonl', 'ndjson', 'parquet', 'arrow', 'feather', 'sqlite', 'sqlite3', 'db', 'duckdb', 'h5', 'hdf5', 'rds', 'rdata', 'sav', 'dta', 'sas7bdat', 'xml']);
4
+ const reports = new Set(['html', 'htm', 'pdf', 'md', 'docx', 'pptx', 'ipynb']);
5
+ const skip = new Set(['node_modules', '__pycache__', 'venv', 'env']);
6
+ const extension = (path) => (path.split('.').pop() || '').toLowerCase();
7
+
8
+ async function scan(list, { maxFolders = 100, maxFiles = 10000, cancelled = () => false } = {}) {
9
+ const queue = ['.'];
10
+ const folders = new Set();
11
+ const files = [];
12
+ let skipped = 0;
13
+ let seenFiles = 0;
14
+ let limited = false;
15
+ while (queue.length && folders.size < maxFolders && seenFiles < maxFiles && !cancelled()) {
16
+ const folder = queue.shift();
17
+ folders.add(folder);
18
+ let entries;
19
+ try { entries = await list(folder); }
20
+ catch (error) {
21
+ if (folder === '.') throw error;
22
+ skipped++;
23
+ continue;
24
+ }
25
+ for (const entry of entries) {
26
+ if (!entry.name || /[\\/]/.test(entry.name) || entry.name.startsWith('.') || entry.name.startsWith('~$')) continue;
27
+ const path = folder === '.' ? entry.name : `${folder}/${entry.name}`;
28
+ if (entry.kind === 'dir') {
29
+ if (!skip.has(entry.name) && !entry.name.endsWith('_files')) {
30
+ if (queue.length + folders.size < maxFolders) queue.push(path);
31
+ else limited = true;
32
+ }
33
+ } else {
34
+ seenFiles++;
35
+ const ext = extension(path);
36
+ if (data.has(ext) || reports.has(ext)) files.push({ path, size: entry.size, mtime: entry.mtime });
37
+ if (seenFiles >= maxFiles) { limited = true; break; }
38
+ }
39
+ }
40
+ }
41
+ return { files, folders: [...folders], skipped, limited, maxFolders, maxFiles };
42
+ }
43
+ window.dataAnalysisFiles = { data, reports, extension, scan };
44
+ })();