@goldencomm/create-baseline 0.0.1

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 (377) hide show
  1. package/README.md +88 -0
  2. package/index.mjs +296 -0
  3. package/package.json +44 -0
  4. package/templates/next/.claude/skills/ai-elements/SKILL.md +160 -0
  5. package/templates/next/.claude/skills/ai-elements/references/agent.md +134 -0
  6. package/templates/next/.claude/skills/ai-elements/references/artifact.md +84 -0
  7. package/templates/next/.claude/skills/ai-elements/references/attachments.md +190 -0
  8. package/templates/next/.claude/skills/ai-elements/references/audio-player.md +134 -0
  9. package/templates/next/.claude/skills/ai-elements/references/canvas.md +34 -0
  10. package/templates/next/.claude/skills/ai-elements/references/chain-of-thought.md +81 -0
  11. package/templates/next/.claude/skills/ai-elements/references/checkpoint.md +183 -0
  12. package/templates/next/.claude/skills/ai-elements/references/code-block.md +170 -0
  13. package/templates/next/.claude/skills/ai-elements/references/commit.md +177 -0
  14. package/templates/next/.claude/skills/ai-elements/references/confirmation.md +262 -0
  15. package/templates/next/.claude/skills/ai-elements/references/connection.md +34 -0
  16. package/templates/next/.claude/skills/ai-elements/references/context.md +126 -0
  17. package/templates/next/.claude/skills/ai-elements/references/controls.md +32 -0
  18. package/templates/next/.claude/skills/ai-elements/references/conversation.md +224 -0
  19. package/templates/next/.claude/skills/ai-elements/references/edge.md +52 -0
  20. package/templates/next/.claude/skills/ai-elements/references/environment-variables.md +102 -0
  21. package/templates/next/.claude/skills/ai-elements/references/file-tree.md +72 -0
  22. package/templates/next/.claude/skills/ai-elements/references/image.md +146 -0
  23. package/templates/next/.claude/skills/ai-elements/references/inline-citation.md +299 -0
  24. package/templates/next/.claude/skills/ai-elements/references/jsx-preview.md +104 -0
  25. package/templates/next/.claude/skills/ai-elements/references/message.md +237 -0
  26. package/templates/next/.claude/skills/ai-elements/references/mic-selector.md +189 -0
  27. package/templates/next/.claude/skills/ai-elements/references/model-selector.md +112 -0
  28. package/templates/next/.claude/skills/ai-elements/references/node.md +73 -0
  29. package/templates/next/.claude/skills/ai-elements/references/open-in-chat.md +67 -0
  30. package/templates/next/.claude/skills/ai-elements/references/package-info.md +95 -0
  31. package/templates/next/.claude/skills/ai-elements/references/panel.md +33 -0
  32. package/templates/next/.claude/skills/ai-elements/references/persona.md +166 -0
  33. package/templates/next/.claude/skills/ai-elements/references/plan.md +79 -0
  34. package/templates/next/.claude/skills/ai-elements/references/prompt-input.md +579 -0
  35. package/templates/next/.claude/skills/ai-elements/references/queue.md +172 -0
  36. package/templates/next/.claude/skills/ai-elements/references/reasoning.md +238 -0
  37. package/templates/next/.claude/skills/ai-elements/references/sandbox.md +129 -0
  38. package/templates/next/.claude/skills/ai-elements/references/schema-display.md +102 -0
  39. package/templates/next/.claude/skills/ai-elements/references/shimmer.md +48 -0
  40. package/templates/next/.claude/skills/ai-elements/references/snippet.md +64 -0
  41. package/templates/next/.claude/skills/ai-elements/references/sources.md +209 -0
  42. package/templates/next/.claude/skills/ai-elements/references/speech-input.md +163 -0
  43. package/templates/next/.claude/skills/ai-elements/references/stack-trace.md +224 -0
  44. package/templates/next/.claude/skills/ai-elements/references/suggestion.md +124 -0
  45. package/templates/next/.claude/skills/ai-elements/references/task.md +222 -0
  46. package/templates/next/.claude/skills/ai-elements/references/terminal.md +103 -0
  47. package/templates/next/.claude/skills/ai-elements/references/test-results.md +157 -0
  48. package/templates/next/.claude/skills/ai-elements/references/tool.md +285 -0
  49. package/templates/next/.claude/skills/ai-elements/references/toolbar.md +32 -0
  50. package/templates/next/.claude/skills/ai-elements/references/transcription.md +120 -0
  51. package/templates/next/.claude/skills/ai-elements/references/voice-selector.md +241 -0
  52. package/templates/next/.claude/skills/ai-elements/references/web-preview.md +200 -0
  53. package/templates/next/.claude/skills/ai-elements/scripts/agent.tsx +61 -0
  54. package/templates/next/.claude/skills/ai-elements/scripts/artifact.tsx +127 -0
  55. package/templates/next/.claude/skills/ai-elements/scripts/attachments-inline.tsx +128 -0
  56. package/templates/next/.claude/skills/ai-elements/scripts/attachments-list.tsx +95 -0
  57. package/templates/next/.claude/skills/ai-elements/scripts/attachments.tsx +85 -0
  58. package/templates/next/.claude/skills/ai-elements/scripts/audio-player-remote.tsx +35 -0
  59. package/templates/next/.claude/skills/ai-elements/scripts/audio-player.tsx +68 -0
  60. package/templates/next/.claude/skills/ai-elements/scripts/chain-of-thought.tsx +82 -0
  61. package/templates/next/.claude/skills/ai-elements/scripts/checkpoint.tsx +110 -0
  62. package/templates/next/.claude/skills/ai-elements/scripts/code-block-dark.tsx +46 -0
  63. package/templates/next/.claude/skills/ai-elements/scripts/code-block.tsx +120 -0
  64. package/templates/next/.claude/skills/ai-elements/scripts/commit.tsx +94 -0
  65. package/templates/next/.claude/skills/ai-elements/scripts/confirmation-accepted.tsx +40 -0
  66. package/templates/next/.claude/skills/ai-elements/scripts/confirmation-rejected.tsx +40 -0
  67. package/templates/next/.claude/skills/ai-elements/scripts/confirmation-request.tsx +54 -0
  68. package/templates/next/.claude/skills/ai-elements/scripts/confirmation.tsx +55 -0
  69. package/templates/next/.claude/skills/ai-elements/scripts/context.tsx +45 -0
  70. package/templates/next/.claude/skills/ai-elements/scripts/conversation.tsx +177 -0
  71. package/templates/next/.claude/skills/ai-elements/scripts/environment-variables.tsx +62 -0
  72. package/templates/next/.claude/skills/ai-elements/scripts/file-tree-basic.tsx +18 -0
  73. package/templates/next/.claude/skills/ai-elements/scripts/file-tree-expanded.tsx +21 -0
  74. package/templates/next/.claude/skills/ai-elements/scripts/file-tree-selection.tsx +24 -0
  75. package/templates/next/.claude/skills/ai-elements/scripts/file-tree.tsx +42 -0
  76. package/templates/next/.claude/skills/ai-elements/scripts/image.tsx +20 -0
  77. package/templates/next/.claude/skills/ai-elements/scripts/inline-citation.tsx +97 -0
  78. package/templates/next/.claude/skills/ai-elements/scripts/jsx-preview.tsx +104 -0
  79. package/templates/next/.claude/skills/ai-elements/scripts/message.tsx +365 -0
  80. package/templates/next/.claude/skills/ai-elements/scripts/mic-selector.tsx +49 -0
  81. package/templates/next/.claude/skills/ai-elements/scripts/model-selector.tsx +365 -0
  82. package/templates/next/.claude/skills/ai-elements/scripts/open-in-chat.tsx +33 -0
  83. package/templates/next/.claude/skills/ai-elements/scripts/package-info.tsx +51 -0
  84. package/templates/next/.claude/skills/ai-elements/scripts/persona-command.tsx +110 -0
  85. package/templates/next/.claude/skills/ai-elements/scripts/persona-glint.tsx +110 -0
  86. package/templates/next/.claude/skills/ai-elements/scripts/persona-halo.tsx +110 -0
  87. package/templates/next/.claude/skills/ai-elements/scripts/persona-mana.tsx +110 -0
  88. package/templates/next/.claude/skills/ai-elements/scripts/persona-obsidian.tsx +110 -0
  89. package/templates/next/.claude/skills/ai-elements/scripts/persona-opal.tsx +110 -0
  90. package/templates/next/.claude/skills/ai-elements/scripts/plan.tsx +65 -0
  91. package/templates/next/.claude/skills/ai-elements/scripts/prompt-input-cursor.tsx +502 -0
  92. package/templates/next/.claude/skills/ai-elements/scripts/prompt-input-tooltip.tsx +44 -0
  93. package/templates/next/.claude/skills/ai-elements/scripts/prompt-input.tsx +267 -0
  94. package/templates/next/.claude/skills/ai-elements/scripts/queue-prompt-input.tsx +394 -0
  95. package/templates/next/.claude/skills/ai-elements/scripts/queue.tsx +295 -0
  96. package/templates/next/.claude/skills/ai-elements/scripts/reasoning.tsx +71 -0
  97. package/templates/next/.claude/skills/ai-elements/scripts/sandbox.tsx +178 -0
  98. package/templates/next/.claude/skills/ai-elements/scripts/schema-display-basic.tsx +9 -0
  99. package/templates/next/.claude/skills/ai-elements/scripts/schema-display-body.tsx +20 -0
  100. package/templates/next/.claude/skills/ai-elements/scripts/schema-display-nested.tsx +23 -0
  101. package/templates/next/.claude/skills/ai-elements/scripts/schema-display-params.tsx +16 -0
  102. package/templates/next/.claude/skills/ai-elements/scripts/schema-display.tsx +110 -0
  103. package/templates/next/.claude/skills/ai-elements/scripts/shimmer-duration.tsx +31 -0
  104. package/templates/next/.claude/skills/ai-elements/scripts/shimmer-elements.tsx +43 -0
  105. package/templates/next/.claude/skills/ai-elements/scripts/shimmer.tsx +17 -0
  106. package/templates/next/.claude/skills/ai-elements/scripts/snippet-plain.tsx +19 -0
  107. package/templates/next/.claude/skills/ai-elements/scripts/snippet.tsx +25 -0
  108. package/templates/next/.claude/skills/ai-elements/scripts/sources-custom.tsx +39 -0
  109. package/templates/next/.claude/skills/ai-elements/scripts/sources.tsx +32 -0
  110. package/templates/next/.claude/skills/ai-elements/scripts/speech-input.tsx +84 -0
  111. package/templates/next/.claude/skills/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
  112. package/templates/next/.claude/skills/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
  113. package/templates/next/.claude/skills/ai-elements/scripts/stack-trace.tsx +58 -0
  114. package/templates/next/.claude/skills/ai-elements/scripts/suggestion-input.tsx +144 -0
  115. package/templates/next/.claude/skills/ai-elements/scripts/suggestion.tsx +32 -0
  116. package/templates/next/.claude/skills/ai-elements/scripts/task.tsx +59 -0
  117. package/templates/next/.claude/skills/ai-elements/scripts/terminal-basic.tsx +7 -0
  118. package/templates/next/.claude/skills/ai-elements/scripts/terminal-clear.tsx +19 -0
  119. package/templates/next/.claude/skills/ai-elements/scripts/terminal-streaming.tsx +38 -0
  120. package/templates/next/.claude/skills/ai-elements/scripts/terminal.tsx +82 -0
  121. package/templates/next/.claude/skills/ai-elements/scripts/test-results-basic.tsx +27 -0
  122. package/templates/next/.claude/skills/ai-elements/scripts/test-results-errors.tsx +51 -0
  123. package/templates/next/.claude/skills/ai-elements/scripts/test-results-suites.tsx +40 -0
  124. package/templates/next/.claude/skills/ai-elements/scripts/test-results.tsx +102 -0
  125. package/templates/next/.claude/skills/ai-elements/scripts/tool-input-available.tsx +31 -0
  126. package/templates/next/.claude/skills/ai-elements/scripts/tool-input-streaming.tsx +30 -0
  127. package/templates/next/.claude/skills/ai-elements/scripts/tool-output-available.tsx +80 -0
  128. package/templates/next/.claude/skills/ai-elements/scripts/tool-output-error.tsx +44 -0
  129. package/templates/next/.claude/skills/ai-elements/scripts/tool.tsx +222 -0
  130. package/templates/next/.claude/skills/ai-elements/scripts/transcription.tsx +290 -0
  131. package/templates/next/.claude/skills/ai-elements/scripts/voice-selector.tsx +245 -0
  132. package/templates/next/.claude/skills/ai-elements/scripts/web-preview.tsx +115 -0
  133. package/templates/next/.claude/skills/ai-sdk/SKILL.md +78 -0
  134. package/templates/next/.claude/skills/frontend-design/LICENSE.txt +177 -0
  135. package/templates/next/.claude/skills/frontend-design/SKILL.md +55 -0
  136. package/templates/next/.claude/skills/gc-implement-figma-page/SKILL.md +93 -0
  137. package/templates/next/.claude/skills/migrate-ai-sdk-v6-to-v7/SKILL.md +108 -0
  138. package/templates/next/.claude/skills/vercel-composition-patterns/AGENTS.md +946 -0
  139. package/templates/next/.claude/skills/vercel-composition-patterns/README.md +60 -0
  140. package/templates/next/.claude/skills/vercel-composition-patterns/SKILL.md +89 -0
  141. package/templates/next/.claude/skills/vercel-composition-patterns/metadata.json +11 -0
  142. package/templates/next/.claude/skills/vercel-composition-patterns/rules/_sections.md +29 -0
  143. package/templates/next/.claude/skills/vercel-composition-patterns/rules/_template.md +24 -0
  144. package/templates/next/.claude/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  145. package/templates/next/.claude/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
  146. package/templates/next/.claude/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  147. package/templates/next/.claude/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
  148. package/templates/next/.claude/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
  149. package/templates/next/.claude/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
  150. package/templates/next/.claude/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
  151. package/templates/next/.claude/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
  152. package/templates/next/.claude/skills/vercel-react-best-practices/AGENTS.md +3810 -0
  153. package/templates/next/.claude/skills/vercel-react-best-practices/README.md +123 -0
  154. package/templates/next/.claude/skills/vercel-react-best-practices/SKILL.md +149 -0
  155. package/templates/next/.claude/skills/vercel-react-best-practices/metadata.json +15 -0
  156. package/templates/next/.claude/skills/vercel-react-best-practices/rules/_sections.md +46 -0
  157. package/templates/next/.claude/skills/vercel-react-best-practices/rules/_template.md +28 -0
  158. package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
  159. package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  160. package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  161. package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  162. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  163. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
  164. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-defer-await.md +82 -0
  165. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  166. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  167. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  168. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-analyzable-paths.md +63 -0
  169. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
  170. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  171. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  172. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  173. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  174. package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  175. package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  176. package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  177. package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  178. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  179. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  180. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  181. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  182. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  183. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  184. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  185. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  186. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  187. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  188. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  189. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
  190. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  191. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  192. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  193. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  194. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  195. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  196. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  197. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  198. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  199. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  200. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  201. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  202. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  203. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  204. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  205. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  206. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  207. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  208. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  209. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  210. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  211. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  212. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  213. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  214. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  215. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  216. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  217. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  218. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  219. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  220. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  221. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  222. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  223. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
  224. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
  225. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  226. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
  227. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  228. package/templates/next/.claude/skills/web-design-guidelines/SKILL.md +39 -0
  229. package/templates/next/CLAUDE.md +42 -0
  230. package/templates/next/README.md +30 -0
  231. package/templates/next/_gitignore +4 -0
  232. package/templates/next/app/globals.css +13 -0
  233. package/templates/next/app/layout.tsx +44 -0
  234. package/templates/next/app/page.tsx +30 -0
  235. package/templates/next/globals.d.ts +8 -0
  236. package/templates/next/next.config.mjs +6 -0
  237. package/templates/next/package.json +38 -0
  238. package/templates/next/postcss.config.mjs +5 -0
  239. package/templates/next/skills-lock.json +47 -0
  240. package/templates/next/tsconfig.json +36 -0
  241. package/templates/shopify-theme/.claude/skills/gc-shopify-block/SKILL.md +44 -0
  242. package/templates/shopify-theme/.claude/skills/shopify-dev/SKILL.md +51 -0
  243. package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/log_skill_use.mjs +205 -0
  244. package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/search_docs.mjs +272 -0
  245. package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/track-telemetry.ps1 +361 -0
  246. package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/track-telemetry.sh +527 -0
  247. package/templates/shopify-theme/.claude/skills/shopify-liquid/SKILL.md +343 -0
  248. package/templates/shopify-theme/.claude/skills/shopify-liquid/blocks/hero-slide.liquid +342 -0
  249. package/templates/shopify-theme/.claude/skills/shopify-liquid/config/settings_schema.json +1 -0
  250. package/templates/shopify-theme/.claude/skills/shopify-liquid/featured-collection.liquid +457 -0
  251. package/templates/shopify-theme/.claude/skills/shopify-liquid/locales/en.default.json +10 -0
  252. package/templates/shopify-theme/.claude/skills/shopify-liquid/locales/en.default.schema.json +103 -0
  253. package/templates/shopify-theme/.claude/skills/shopify-liquid/package.json +10 -0
  254. package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/search_docs.mjs +759 -0
  255. package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/track-telemetry.ps1 +361 -0
  256. package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/track-telemetry.sh +527 -0
  257. package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/validate.mjs +654 -0
  258. package/templates/shopify-theme/.claude/skills/shopify-liquid/sections/hero-banner.liquid +329 -0
  259. package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/SKILL.md +165 -0
  260. package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/scripts/log_skill_use.mjs +205 -0
  261. package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/scripts/track-telemetry.ps1 +361 -0
  262. package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/scripts/track-telemetry.sh +527 -0
  263. package/templates/shopify-theme/.shopifyignore +9 -0
  264. package/templates/shopify-theme/CLAUDE.md +51 -0
  265. package/templates/shopify-theme/README.md +92 -0
  266. package/templates/shopify-theme/assets/baseline.css +8390 -0
  267. package/templates/shopify-theme/assets/swiper-element-bundle.min.js +14 -0
  268. package/templates/shopify-theme/blocks/_accordion.liquid +59 -0
  269. package/templates/shopify-theme/blocks/_carousel-slide.liquid +24 -0
  270. package/templates/shopify-theme/blocks/_modal-body.liquid +18 -0
  271. package/templates/shopify-theme/blocks/_modal-footer.liquid +36 -0
  272. package/templates/shopify-theme/blocks/_modal-header.liquid +19 -0
  273. package/templates/shopify-theme/blocks/_modal-media.liquid +37 -0
  274. package/templates/shopify-theme/blocks/accordion-group.liquid +53 -0
  275. package/templates/shopify-theme/blocks/alert.liquid +92 -0
  276. package/templates/shopify-theme/blocks/avatar-group.liquid +51 -0
  277. package/templates/shopify-theme/blocks/avatar.liquid +56 -0
  278. package/templates/shopify-theme/blocks/badge.liquid +33 -0
  279. package/templates/shopify-theme/blocks/breadcrumb.liquid +45 -0
  280. package/templates/shopify-theme/blocks/button.liquid +51 -0
  281. package/templates/shopify-theme/blocks/buttons.liquid +41 -0
  282. package/templates/shopify-theme/blocks/card.liquid +67 -0
  283. package/templates/shopify-theme/blocks/carousel.liquid +55 -0
  284. package/templates/shopify-theme/blocks/column.liquid +33 -0
  285. package/templates/shopify-theme/blocks/image.liquid +37 -0
  286. package/templates/shopify-theme/blocks/modal.liquid +52 -0
  287. package/templates/shopify-theme/blocks/popover.liquid +24 -0
  288. package/templates/shopify-theme/blocks/skeleton.liquid +22 -0
  289. package/templates/shopify-theme/blocks/spinner.liquid +22 -0
  290. package/templates/shopify-theme/blocks/split.liquid +39 -0
  291. package/templates/shopify-theme/blocks/tab.liquid +19 -0
  292. package/templates/shopify-theme/blocks/tabs.liquid +78 -0
  293. package/templates/shopify-theme/blocks/tags.liquid +55 -0
  294. package/templates/shopify-theme/blocks/text.liquid +55 -0
  295. package/templates/shopify-theme/blocks/tooltip.liquid +50 -0
  296. package/templates/shopify-theme/blocks/typography.liquid +90 -0
  297. package/templates/shopify-theme/config/settings_data.json +4 -0
  298. package/templates/shopify-theme/config/settings_schema.json +10 -0
  299. package/templates/shopify-theme/layout/theme.liquid +21 -0
  300. package/templates/shopify-theme/locales/en.default.json +5 -0
  301. package/templates/shopify-theme/locales/en.default.schema.json +131 -0
  302. package/templates/shopify-theme/package.json +21 -0
  303. package/templates/shopify-theme/scripts/sync-tokens.mjs +32 -0
  304. package/templates/shopify-theme/sections/baseline-components.liquid +81 -0
  305. package/templates/shopify-theme/skills-lock.json +23 -0
  306. package/templates/shopify-theme/snippets/lucide.liquid +34 -0
  307. package/templates/shopify-theme/snippets/pagination.liquid +44 -0
  308. package/templates/shopify-theme/templates/collection.json +13 -0
  309. package/templates/shopify-theme/templates/gift_card.liquid +5 -0
  310. package/templates/shopify-theme/templates/index.json +135 -0
  311. package/templates/shopify-theme/templates/list-collections.json +13 -0
  312. package/templates/shopify-theme/templates/product.json +13 -0
  313. package/templates/wordpress/.claude/CLAUDE.md +37 -0
  314. package/templates/wordpress/.claude/skills/wp-block-development/SKILL.md +174 -0
  315. package/templates/wordpress/.claude/skills/wp-block-development/references/attributes-and-serialization.md +22 -0
  316. package/templates/wordpress/.claude/skills/wp-block-development/references/block-json.md +49 -0
  317. package/templates/wordpress/.claude/skills/wp-block-development/references/creating-new-blocks.md +46 -0
  318. package/templates/wordpress/.claude/skills/wp-block-development/references/debugging.md +36 -0
  319. package/templates/wordpress/.claude/skills/wp-block-development/references/deprecations.md +24 -0
  320. package/templates/wordpress/.claude/skills/wp-block-development/references/dynamic-rendering.md +23 -0
  321. package/templates/wordpress/.claude/skills/wp-block-development/references/inner-blocks.md +25 -0
  322. package/templates/wordpress/.claude/skills/wp-block-development/references/registration.md +30 -0
  323. package/templates/wordpress/.claude/skills/wp-block-development/references/supports-and-wrappers.md +18 -0
  324. package/templates/wordpress/.claude/skills/wp-block-development/references/tooling-and-testing.md +21 -0
  325. package/templates/wordpress/.claude/skills/wp-block-development/scripts/list_blocks.mjs +121 -0
  326. package/templates/wordpress/.claude/skills/wp-block-themes/SKILL.md +116 -0
  327. package/templates/wordpress/.claude/skills/wp-block-themes/references/creating-new-block-theme.md +37 -0
  328. package/templates/wordpress/.claude/skills/wp-block-themes/references/debugging.md +24 -0
  329. package/templates/wordpress/.claude/skills/wp-block-themes/references/patterns.md +18 -0
  330. package/templates/wordpress/.claude/skills/wp-block-themes/references/style-variations.md +14 -0
  331. package/templates/wordpress/.claude/skills/wp-block-themes/references/templates-and-parts.md +16 -0
  332. package/templates/wordpress/.claude/skills/wp-block-themes/references/theme-json.md +59 -0
  333. package/templates/wordpress/.claude/skills/wp-block-themes/scripts/detect_block_themes.mjs +117 -0
  334. package/templates/wordpress/.claude/skills/wp-performance/SKILL.md +146 -0
  335. package/templates/wordpress/.claude/skills/wp-performance/references/autoload-options.md +24 -0
  336. package/templates/wordpress/.claude/skills/wp-performance/references/cron.md +20 -0
  337. package/templates/wordpress/.claude/skills/wp-performance/references/database.md +20 -0
  338. package/templates/wordpress/.claude/skills/wp-performance/references/http-api.md +15 -0
  339. package/templates/wordpress/.claude/skills/wp-performance/references/measurement.md +21 -0
  340. package/templates/wordpress/.claude/skills/wp-performance/references/object-cache.md +24 -0
  341. package/templates/wordpress/.claude/skills/wp-performance/references/query-monitor-headless.md +38 -0
  342. package/templates/wordpress/.claude/skills/wp-performance/references/server-timing.md +22 -0
  343. package/templates/wordpress/.claude/skills/wp-performance/references/wp-cli-doctor.md +24 -0
  344. package/templates/wordpress/.claude/skills/wp-performance/references/wp-cli-profile.md +32 -0
  345. package/templates/wordpress/.claude/skills/wp-performance/scripts/perf_inspect.mjs +128 -0
  346. package/templates/wordpress/.claude/skills/wp-plugin-development/SKILL.md +112 -0
  347. package/templates/wordpress/.claude/skills/wp-plugin-development/references/data-and-cron.md +19 -0
  348. package/templates/wordpress/.claude/skills/wp-plugin-development/references/debugging.md +19 -0
  349. package/templates/wordpress/.claude/skills/wp-plugin-development/references/lifecycle.md +33 -0
  350. package/templates/wordpress/.claude/skills/wp-plugin-development/references/security.md +29 -0
  351. package/templates/wordpress/.claude/skills/wp-plugin-development/references/settings-api.md +22 -0
  352. package/templates/wordpress/.claude/skills/wp-plugin-development/references/structure.md +16 -0
  353. package/templates/wordpress/.claude/skills/wp-plugin-development/scripts/detect_plugins.mjs +122 -0
  354. package/templates/wordpress/.claude/skills/wp-rest-api/SKILL.md +114 -0
  355. package/templates/wordpress/.claude/skills/wp-rest-api/references/authentication.md +18 -0
  356. package/templates/wordpress/.claude/skills/wp-rest-api/references/custom-content-types.md +20 -0
  357. package/templates/wordpress/.claude/skills/wp-rest-api/references/discovery-and-params.md +20 -0
  358. package/templates/wordpress/.claude/skills/wp-rest-api/references/responses-and-fields.md +30 -0
  359. package/templates/wordpress/.claude/skills/wp-rest-api/references/routes-and-endpoints.md +36 -0
  360. package/templates/wordpress/.claude/skills/wp-rest-api/references/schema.md +22 -0
  361. package/templates/wordpress/.ddev/commands/web/seed +7 -0
  362. package/templates/wordpress/.ddev/config.yaml +18 -0
  363. package/templates/wordpress/.ddev/docker-compose.packages.yaml +14 -0
  364. package/templates/wordpress/.ddev/docker-compose.redis.yaml +11 -0
  365. package/templates/wordpress/.env.example +33 -0
  366. package/templates/wordpress/CLAUDE.md +34 -0
  367. package/templates/wordpress/README.md +45 -0
  368. package/templates/wordpress/_gitignore +33 -0
  369. package/templates/wordpress/auth.json.example +18 -0
  370. package/templates/wordpress/composer.json +91 -0
  371. package/templates/wordpress/composer.lock +1594 -0
  372. package/templates/wordpress/package.json +13 -0
  373. package/templates/wordpress/scripts/seed.sh +64 -0
  374. package/templates/wordpress/skills-lock.json +35 -0
  375. package/templates/wordpress/wp-config.php +89 -0
  376. package/templates/wordpress/wp-content/index.php +2 -0
  377. package/templates/wordpress/wp-content/mu-plugins/baseline-bootstrap.php +26 -0
@@ -0,0 +1,759 @@
1
+ #!/usr/bin/env node
2
+
3
+ // <define:__SUPPORTED_VERSIONS__>
4
+ var define_SUPPORTED_VERSIONS_default = [];
5
+
6
+ // src/agent-skills/scripts/search_docs.ts
7
+ import { parseArgs } from "util";
8
+
9
+ // src/http/index.ts
10
+ var PROD_BASE_URL = "https://shopify.dev/";
11
+ var SHOP_DEV_BASE_URL = "https://shopify-dev.shop.dev/";
12
+ function stagingHost(serverNumber) {
13
+ return `https://shopify-dev-staging${serverNumber}.shopifycloud.com/`;
14
+ }
15
+ function resolveShopifyDevBaseUrl(options) {
16
+ const env = options?.env ?? process.env;
17
+ const stagingRaw = env.SHOPIFY_DEV_STAGING_SERVER_NUMBER?.trim();
18
+ if (stagingRaw) {
19
+ if (!/^\d+$/.test(stagingRaw)) {
20
+ throw new Error(
21
+ `SHOPIFY_DEV_STAGING_SERVER_NUMBER must be a positive integer; got: "${stagingRaw}"`
22
+ );
23
+ }
24
+ const serverNumber = Number(stagingRaw);
25
+ if (!Number.isSafeInteger(serverNumber) || serverNumber <= 0) {
26
+ throw new Error(
27
+ `SHOPIFY_DEV_STAGING_SERVER_NUMBER must be a positive integer; got: "${stagingRaw}"`
28
+ );
29
+ }
30
+ const token = env.MINERVA_TOKEN;
31
+ if (!token) {
32
+ const audience = stagingHost(serverNumber).replace(/\/$/, "");
33
+ throw new Error(
34
+ `SHOPIFY_DEV_STAGING_SERVER_NUMBER=${serverNumber} is set but no Minerva token is available. Staging servers are behind Minerva. Get a token via:
35
+ export MINERVA_TOKEN=$(devx minerva-auth --client-id 0oa1bphetnkOusboI0x8 --audience ${audience})`
36
+ );
37
+ }
38
+ return {
39
+ url: stagingHost(serverNumber),
40
+ headers: { Cookie: `MINERVA_TOKEN=${token}` }
41
+ };
42
+ }
43
+ const instrumentationOverride = env.SHOPIFY_DEV_INSTRUMENTATION_URL?.trim();
44
+ if (instrumentationOverride && options?.uri?.startsWith("/mcp/usage")) {
45
+ return { url: instrumentationOverride, headers: {} };
46
+ }
47
+ if (env.DEV && env.DEV !== "false") {
48
+ return { url: SHOP_DEV_BASE_URL, headers: {} };
49
+ }
50
+ return { url: PROD_BASE_URL, headers: {} };
51
+ }
52
+ async function shopifyDevFetch(uri, options) {
53
+ let url;
54
+ let resolvedHeaders = {};
55
+ if (uri.startsWith("http://") || uri.startsWith("https://")) {
56
+ url = new URL(uri);
57
+ } else {
58
+ const resolved = resolveShopifyDevBaseUrl({ uri });
59
+ url = new URL(uri, resolved.url);
60
+ resolvedHeaders = resolved.headers;
61
+ }
62
+ if (options?.parameters) {
63
+ Object.entries(options.parameters).forEach(([key, value]) => {
64
+ url.searchParams.append(key, value);
65
+ });
66
+ }
67
+ const response = await fetch(url.toString(), {
68
+ method: options?.method || "GET",
69
+ headers: {
70
+ Accept: "application/json",
71
+ "Cache-Control": "no-cache",
72
+ "X-Shopify-Surface": "mcp",
73
+ "X-Shopify-MCP-Version": options?.instrumentation?.packageVersion || "",
74
+ "X-Shopify-Timestamp": options?.instrumentation?.timestamp || "",
75
+ ...resolvedHeaders,
76
+ ...options?.headers
77
+ },
78
+ ...options?.body && { body: options.body }
79
+ });
80
+ if (!response.ok) {
81
+ let errorBody;
82
+ try {
83
+ errorBody = await response.text();
84
+ } catch {
85
+ }
86
+ throw new Error(
87
+ errorBody ? `HTTP ${response.status}: ${errorBody}` : `HTTP error! status: ${response.status}`
88
+ );
89
+ }
90
+ return await response.text();
91
+ }
92
+
93
+ // src/data/supported-versions-schema.json
94
+ var supported_versions_schema_default = {
95
+ admin: [
96
+ {
97
+ name: "unstable"
98
+ },
99
+ {
100
+ name: "2026-07",
101
+ releaseCandidate: true
102
+ },
103
+ {
104
+ name: "2026-04",
105
+ latestVersion: true
106
+ },
107
+ {
108
+ name: "2026-01"
109
+ },
110
+ {
111
+ name: "2025-10"
112
+ },
113
+ {
114
+ name: "2025-07"
115
+ }
116
+ ],
117
+ "storefront-graphql": [
118
+ {
119
+ name: "unstable"
120
+ },
121
+ {
122
+ name: "2026-07",
123
+ releaseCandidate: true
124
+ },
125
+ {
126
+ name: "2026-04",
127
+ latestVersion: true
128
+ },
129
+ {
130
+ name: "2026-01"
131
+ },
132
+ {
133
+ name: "2025-10"
134
+ },
135
+ {
136
+ name: "2025-07"
137
+ }
138
+ ],
139
+ partner: [
140
+ {
141
+ name: "unstable"
142
+ },
143
+ {
144
+ name: "2026-07",
145
+ releaseCandidate: true
146
+ },
147
+ {
148
+ name: "2026-04",
149
+ latestVersion: true
150
+ },
151
+ {
152
+ name: "2026-01"
153
+ },
154
+ {
155
+ name: "2025-10"
156
+ },
157
+ {
158
+ name: "2025-07"
159
+ }
160
+ ],
161
+ customer: [
162
+ {
163
+ name: "unstable"
164
+ },
165
+ {
166
+ name: "2026-07",
167
+ releaseCandidate: true
168
+ },
169
+ {
170
+ name: "2026-04",
171
+ latestVersion: true
172
+ },
173
+ {
174
+ name: "2026-01"
175
+ },
176
+ {
177
+ name: "2025-10"
178
+ },
179
+ {
180
+ name: "2025-07"
181
+ }
182
+ ],
183
+ "payments-apps": [
184
+ {
185
+ name: "unstable"
186
+ },
187
+ {
188
+ name: "2026-07",
189
+ releaseCandidate: true
190
+ },
191
+ {
192
+ name: "2026-04",
193
+ latestVersion: true
194
+ },
195
+ {
196
+ name: "2026-01"
197
+ },
198
+ {
199
+ name: "2025-10"
200
+ },
201
+ {
202
+ name: "2025-07"
203
+ }
204
+ ],
205
+ "polaris-app-home": [],
206
+ "polaris-admin-extensions": [
207
+ {
208
+ name: "2026-04",
209
+ releaseCandidate: true
210
+ },
211
+ {
212
+ name: "2026-01",
213
+ latestVersion: true
214
+ },
215
+ {
216
+ name: "2025-10"
217
+ },
218
+ {
219
+ name: "2025-07"
220
+ }
221
+ ],
222
+ "polaris-checkout-extensions": [
223
+ {
224
+ name: "2026-07",
225
+ releaseCandidate: true
226
+ },
227
+ {
228
+ name: "2026-04",
229
+ latestVersion: true
230
+ },
231
+ {
232
+ name: "2026-01"
233
+ },
234
+ {
235
+ name: "2025-10"
236
+ },
237
+ {
238
+ name: "2025-07"
239
+ }
240
+ ],
241
+ "polaris-customer-account-extensions": [
242
+ {
243
+ name: "2026-07",
244
+ releaseCandidate: true
245
+ },
246
+ {
247
+ name: "2026-04",
248
+ latestVersion: true
249
+ },
250
+ {
251
+ name: "2026-01"
252
+ },
253
+ {
254
+ name: "2025-10"
255
+ },
256
+ {
257
+ name: "2025-07"
258
+ }
259
+ ],
260
+ "pos-ui": [
261
+ {
262
+ name: "2026-07",
263
+ releaseCandidate: true
264
+ },
265
+ {
266
+ name: "2026-04",
267
+ latestVersion: true
268
+ },
269
+ {
270
+ name: "2026-01"
271
+ },
272
+ {
273
+ name: "2025-10"
274
+ },
275
+ {
276
+ name: "2025-07"
277
+ }
278
+ ],
279
+ hydrogen: [
280
+ {
281
+ name: "2026-04",
282
+ latestVersion: true
283
+ },
284
+ {
285
+ name: "2026-01"
286
+ },
287
+ {
288
+ name: "2025-10"
289
+ },
290
+ {
291
+ name: "2025-07"
292
+ }
293
+ ],
294
+ "storefront-web-components": [],
295
+ functions_cart_checkout_validation: [
296
+ {
297
+ name: "unstable"
298
+ },
299
+ {
300
+ name: "2026-07",
301
+ releaseCandidate: true
302
+ },
303
+ {
304
+ name: "2026-04",
305
+ latestVersion: true
306
+ },
307
+ {
308
+ name: "2026-01"
309
+ },
310
+ {
311
+ name: "2025-10"
312
+ },
313
+ {
314
+ name: "2025-07"
315
+ }
316
+ ],
317
+ functions_cart_transform: [
318
+ {
319
+ name: "unstable"
320
+ },
321
+ {
322
+ name: "2026-07",
323
+ releaseCandidate: true
324
+ },
325
+ {
326
+ name: "2026-04",
327
+ latestVersion: true
328
+ },
329
+ {
330
+ name: "2026-01"
331
+ },
332
+ {
333
+ name: "2025-10"
334
+ },
335
+ {
336
+ name: "2025-07"
337
+ }
338
+ ],
339
+ functions_delivery_customization: [
340
+ {
341
+ name: "unstable"
342
+ },
343
+ {
344
+ name: "2026-07",
345
+ releaseCandidate: true
346
+ },
347
+ {
348
+ name: "2026-04",
349
+ latestVersion: true
350
+ },
351
+ {
352
+ name: "2026-01"
353
+ },
354
+ {
355
+ name: "2025-10"
356
+ },
357
+ {
358
+ name: "2025-07"
359
+ }
360
+ ],
361
+ functions_discount: [
362
+ {
363
+ name: "unstable"
364
+ },
365
+ {
366
+ name: "2026-07",
367
+ releaseCandidate: true
368
+ },
369
+ {
370
+ name: "2026-04",
371
+ latestVersion: true
372
+ },
373
+ {
374
+ name: "2026-01"
375
+ },
376
+ {
377
+ name: "2025-10"
378
+ },
379
+ {
380
+ name: "2025-07"
381
+ }
382
+ ],
383
+ functions_discounts_allocator: [
384
+ {
385
+ name: "unstable",
386
+ latestVersion: true
387
+ }
388
+ ],
389
+ functions_fulfillment_constraints: [
390
+ {
391
+ name: "unstable"
392
+ },
393
+ {
394
+ name: "2026-07",
395
+ releaseCandidate: true
396
+ },
397
+ {
398
+ name: "2026-04",
399
+ latestVersion: true
400
+ },
401
+ {
402
+ name: "2026-01"
403
+ },
404
+ {
405
+ name: "2025-10"
406
+ },
407
+ {
408
+ name: "2025-07"
409
+ }
410
+ ],
411
+ functions_local_pickup_delivery_option_generator: [
412
+ {
413
+ name: "unstable",
414
+ latestVersion: true
415
+ }
416
+ ],
417
+ functions_order_discounts: [
418
+ {
419
+ name: "unstable"
420
+ },
421
+ {
422
+ name: "2026-07",
423
+ releaseCandidate: true
424
+ },
425
+ {
426
+ name: "2026-04",
427
+ latestVersion: true
428
+ },
429
+ {
430
+ name: "2026-01"
431
+ },
432
+ {
433
+ name: "2025-10"
434
+ },
435
+ {
436
+ name: "2025-07"
437
+ }
438
+ ],
439
+ functions_order_routing_location_rule: [
440
+ {
441
+ name: "unstable"
442
+ },
443
+ {
444
+ name: "2026-07",
445
+ releaseCandidate: true
446
+ },
447
+ {
448
+ name: "2026-04",
449
+ latestVersion: true
450
+ },
451
+ {
452
+ name: "2026-01"
453
+ },
454
+ {
455
+ name: "2025-10"
456
+ },
457
+ {
458
+ name: "2025-07"
459
+ }
460
+ ],
461
+ functions_payment_customization: [
462
+ {
463
+ name: "unstable"
464
+ },
465
+ {
466
+ name: "2026-07",
467
+ releaseCandidate: true
468
+ },
469
+ {
470
+ name: "2026-04",
471
+ latestVersion: true
472
+ },
473
+ {
474
+ name: "2026-01"
475
+ },
476
+ {
477
+ name: "2025-10"
478
+ },
479
+ {
480
+ name: "2025-07"
481
+ }
482
+ ],
483
+ functions_pickup_point_delivery_option_generator: [
484
+ {
485
+ name: "unstable",
486
+ latestVersion: true
487
+ }
488
+ ],
489
+ functions_product_discounts: [
490
+ {
491
+ name: "unstable"
492
+ },
493
+ {
494
+ name: "2026-07",
495
+ releaseCandidate: true
496
+ },
497
+ {
498
+ name: "2026-04",
499
+ latestVersion: true
500
+ },
501
+ {
502
+ name: "2026-01"
503
+ },
504
+ {
505
+ name: "2025-10"
506
+ },
507
+ {
508
+ name: "2025-07"
509
+ }
510
+ ],
511
+ functions_shipping_discounts: [
512
+ {
513
+ name: "unstable"
514
+ },
515
+ {
516
+ name: "2026-07",
517
+ releaseCandidate: true
518
+ },
519
+ {
520
+ name: "2026-04",
521
+ latestVersion: true
522
+ },
523
+ {
524
+ name: "2026-01"
525
+ },
526
+ {
527
+ name: "2025-10"
528
+ },
529
+ {
530
+ name: "2025-07"
531
+ }
532
+ ]
533
+ };
534
+
535
+ // src/types/api-versions.ts
536
+ var versionEntries = supported_versions_schema_default;
537
+ var SUPPORTED_API_VERSIONS = Object.fromEntries(
538
+ Object.entries(versionEntries).filter(([_, versions]) => versions.length > 0).map(([api, versions]) => [api, versions.map((v) => v.name)])
539
+ );
540
+ function hasSupportedVersions(apiName) {
541
+ return Object.prototype.hasOwnProperty.call(SUPPORTED_API_VERSIONS, apiName);
542
+ }
543
+ function getSupportedVersions(apiName) {
544
+ return hasSupportedVersions(apiName) ? SUPPORTED_API_VERSIONS[apiName] : [];
545
+ }
546
+ function getLatestVersion(apiName) {
547
+ const versions = versionEntries[apiName];
548
+ if (!versions) return void 0;
549
+ return versions.find((v) => v.latestVersion)?.name ?? versions[0]?.name;
550
+ }
551
+ function resolveVersion(apiName, requested) {
552
+ if (!hasSupportedVersions(apiName)) {
553
+ throw new Error(
554
+ `API "${apiName}" is not in the supported versions catalog. Only call resolveVersion for APIs with entries in SUPPORTED_API_VERSIONS.`
555
+ );
556
+ }
557
+ const supportedVersions = getSupportedVersions(apiName);
558
+ if (supportedVersions.length === 0) {
559
+ return { ok: false, reason: "no_versions", supportedVersions };
560
+ }
561
+ if (requested) {
562
+ if (supportedVersions.includes(requested)) {
563
+ return {
564
+ ok: true,
565
+ version: requested,
566
+ source: "explicit",
567
+ supportedVersions
568
+ };
569
+ }
570
+ return { ok: false, reason: "unsupported_version", supportedVersions };
571
+ }
572
+ const latest = getLatestVersion(apiName);
573
+ if (!latest) return { ok: false, reason: "no_versions", supportedVersions };
574
+ return { ok: true, version: latest, source: "default", supportedVersions };
575
+ }
576
+
577
+ // src/agent-skills/scripts/instrumentation.ts
578
+ function nonEmptyUsageMetadata(metadata) {
579
+ return {
580
+ ...metadata?.api && { api: metadata.api },
581
+ ...metadata?.api_version && { api_version: metadata.api_version },
582
+ ...metadata?.resolve_api_version && {
583
+ resolve_api_version: metadata.resolve_api_version
584
+ }
585
+ };
586
+ }
587
+ function isInstrumentationDisabled() {
588
+ try {
589
+ return process.env.OPT_OUT_INSTRUMENTATION === "true";
590
+ } catch {
591
+ return false;
592
+ }
593
+ }
594
+ function readHostSessionId() {
595
+ const candidates = [
596
+ process.env.CLAUDE_SESSION_ID,
597
+ process.env.CLAUDE_CODE_SESSION_ID,
598
+ process.env.CURSOR_SESSION_ID,
599
+ process.env.COPILOT_SESSION_ID
600
+ ];
601
+ for (const v of candidates) {
602
+ if (typeof v === "string" && v.length > 0) return v;
603
+ }
604
+ return void 0;
605
+ }
606
+ async function reportValidation(toolName, result, context, metadata) {
607
+ if (isInstrumentationDisabled()) return;
608
+ const {
609
+ model,
610
+ clientName,
611
+ clientVersion,
612
+ user_prompt,
613
+ sessionId,
614
+ toolUseId,
615
+ ...remainingContext
616
+ } = context ?? {};
617
+ const resolvedSessionId = typeof sessionId === "string" && sessionId.length > 0 ? sessionId : readHostSessionId();
618
+ const truncatedUserPrompt = typeof user_prompt === "string" && user_prompt.length > 0 ? user_prompt.slice(0, 2e3) : void 0;
619
+ try {
620
+ const headers = {
621
+ "Content-Type": "application/json",
622
+ "X-Shopify-Surface": "skills"
623
+ };
624
+ if (clientName) headers["X-Shopify-Client-Name"] = String(clientName);
625
+ if (clientVersion)
626
+ headers["X-Shopify-Client-Version"] = String(clientVersion);
627
+ if (model) headers["X-Shopify-Client-Model"] = String(model);
628
+ await shopifyDevFetch("/mcp/usage", {
629
+ method: "POST",
630
+ headers,
631
+ body: JSON.stringify({
632
+ tool: toolName,
633
+ parameters: {
634
+ skill: "shopify-liquid",
635
+ skillVersion: "1.12.0",
636
+ ...truncatedUserPrompt !== void 0 && {
637
+ user_prompt: truncatedUserPrompt
638
+ },
639
+ ...resolvedSessionId !== void 0 && {
640
+ sessionId: resolvedSessionId
641
+ },
642
+ ...typeof toolUseId === "string" && toolUseId.length > 0 && {
643
+ toolUseId
644
+ },
645
+ ...remainingContext
646
+ },
647
+ result,
648
+ ...nonEmptyUsageMetadata(metadata)
649
+ }),
650
+ instrumentation: {
651
+ packageVersion: "1.12.0",
652
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
653
+ }
654
+ });
655
+ } catch {
656
+ }
657
+ }
658
+
659
+ // src/agent-skills/scripts/search_docs.ts
660
+ var { values, positionals } = parseArgs({
661
+ options: {
662
+ model: { type: "string" },
663
+ "client-name": { type: "string" },
664
+ "client-version": { type: "string" },
665
+ version: { type: "string" },
666
+ "session-id": { type: "string" },
667
+ "tool-use-id": { type: "string" }
668
+ },
669
+ allowPositionals: true
670
+ });
671
+ var query = positionals[0];
672
+ if (!query) {
673
+ console.error(
674
+ "Usage: search_docs.js <query> [--model <id>] [--client-name <name>]"
675
+ );
676
+ process.exit(1);
677
+ }
678
+ var requestedApiVersion = values.version;
679
+ var resolvedApiVersion;
680
+ function searchUsageMetadata() {
681
+ return {
682
+ ...{ api: "liquid" },
683
+ ...requestedApiVersion && { api_version: requestedApiVersion },
684
+ ...resolvedApiVersion && { resolve_api_version: resolvedApiVersion }
685
+ };
686
+ }
687
+ async function performSearch(query2, apiName, apiVersion) {
688
+ const body = { query: query2 };
689
+ if (apiName) body.api_name = apiName;
690
+ if (apiVersion) body.api_version = apiVersion;
691
+ const responseText = await shopifyDevFetch("/assistant/search", {
692
+ method: "POST",
693
+ headers: {
694
+ "Content-Type": "application/json",
695
+ "X-Shopify-Surface": "skills"
696
+ },
697
+ body: JSON.stringify(body),
698
+ instrumentation: {
699
+ packageVersion: "1.12.0",
700
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
701
+ }
702
+ });
703
+ try {
704
+ const jsonData = JSON.parse(responseText);
705
+ return JSON.stringify(jsonData, null, 2);
706
+ } catch {
707
+ return responseText;
708
+ }
709
+ }
710
+ try {
711
+ let apiVersionForSearch = requestedApiVersion;
712
+ if (define_SUPPORTED_VERSIONS_default.length > 0) {
713
+ const resolution = resolveVersion("liquid", requestedApiVersion);
714
+ if (!resolution.ok) {
715
+ throw new Error(
716
+ `Invalid --version: "${requestedApiVersion}". Supported versions: ${resolution.supportedVersions.join(", ")}.`
717
+ );
718
+ }
719
+ resolvedApiVersion = resolution.version;
720
+ apiVersionForSearch = resolution.version;
721
+ }
722
+ const result = await performSearch(
723
+ query,
724
+ "liquid",
725
+ apiVersionForSearch || void 0
726
+ );
727
+ process.stdout.write(result);
728
+ process.stdout.write("\n");
729
+ await reportValidation(
730
+ "search_docs",
731
+ result,
732
+ {
733
+ model: values.model,
734
+ clientName: values["client-name"],
735
+ clientVersion: values["client-version"],
736
+ sessionId: values["session-id"],
737
+ toolUseId: values["tool-use-id"],
738
+ query
739
+ },
740
+ searchUsageMetadata()
741
+ );
742
+ } catch (error) {
743
+ const message = error instanceof Error ? error.message : String(error);
744
+ console.error(`Search failed: ${message}`);
745
+ await reportValidation(
746
+ "search_docs",
747
+ message,
748
+ {
749
+ model: values.model,
750
+ clientName: values["client-name"],
751
+ clientVersion: values["client-version"],
752
+ sessionId: values["session-id"],
753
+ toolUseId: values["tool-use-id"],
754
+ query
755
+ },
756
+ searchUsageMetadata()
757
+ );
758
+ process.exit(1);
759
+ }