@litfamily/litgrok 1.0.0

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 (522) hide show
  1. package/.grok/agents/litgrok-executor.md +33 -0
  2. package/.grok/agents/litgrok-korean-prose-editor.md +32 -0
  3. package/.grok/agents/litgrok-korean-style-analyzer.md +30 -0
  4. package/.grok/agents/litgrok-librarian-researcher.md +31 -0
  5. package/.grok/agents/litgrok-meaning-preservation-auditor.md +30 -0
  6. package/.grok/agents/litgrok-native-flow-reviewer.md +30 -0
  7. package/.grok/agents/litgrok-planner.md +31 -0
  8. package/.grok/agents/litgrok-polish-orchestrator.md +30 -0
  9. package/.grok/agents/litgrok-qa-runner.md +33 -0
  10. package/.grok/agents/litgrok-quality-reviewer.md +33 -0
  11. package/.grok/agents/litgrok-verifier.md +32 -0
  12. package/.grok/hooks/deliverable-hedge-guard.json +16 -0
  13. package/.grok/hooks/deliverable-hedge-guard.mjs +148 -0
  14. package/.grok/hooks/lit-mark.mjs +142 -0
  15. package/.grok/hooks/plan-gate.mjs +81 -0
  16. package/.grok/hooks/post-compact.json +15 -0
  17. package/.grok/hooks/post-compact.mjs +6 -0
  18. package/.grok/hooks/post-tool-use-failure.json +15 -0
  19. package/.grok/hooks/post-tool-use-failure.mjs +6 -0
  20. package/.grok/hooks/post-tool-use.json +16 -0
  21. package/.grok/hooks/post-tool-use.mjs +7 -0
  22. package/.grok/hooks/pre-compact.json +15 -0
  23. package/.grok/hooks/pre-compact.mjs +6 -0
  24. package/.grok/hooks/record-passive-event.mjs +198 -0
  25. package/.grok/hooks/session-start.json +15 -0
  26. package/.grok/hooks/session-start.mjs +37 -0
  27. package/.grok/hooks/stop-failure.json +15 -0
  28. package/.grok/hooks/stop-failure.mjs +6 -0
  29. package/.grok/hooks/stop.json +15 -0
  30. package/.grok/hooks/stop.mjs +36 -0
  31. package/.grok/hooks/subagent-start.json +15 -0
  32. package/.grok/hooks/subagent-start.mjs +6 -0
  33. package/.grok/hooks/subagent-stop.json +15 -0
  34. package/.grok/hooks/subagent-stop.mjs +6 -0
  35. package/.grok/hooks/user-prompt-submit.json +15 -0
  36. package/.grok/hooks/user-prompt-submit.mjs +7 -0
  37. package/.grok/rules/00-litgrok.md +152 -0
  38. package/.grok/skills/autoconference/LICENSE +21 -0
  39. package/.grok/skills/autoconference/PROVENANCE.md +23 -0
  40. package/.grok/skills/autoconference/SKILL.md +140 -0
  41. package/.grok/skills/autoconference/assets/conference_template.md +76 -0
  42. package/.grok/skills/autoconference/assets/report_template.md +56 -0
  43. package/.grok/skills/autoconference/assets/synthesis_template.md +40 -0
  44. package/.grok/skills/autoconference/references/_canonical-corpus/manifest.json +138 -0
  45. package/.grok/skills/autoconference/references/agent-prompts.md +30 -0
  46. package/.grok/skills/autoconference/references/conference-protocol.md +21 -0
  47. package/.grok/skills/autoconference/references/core-principles.md +13 -0
  48. package/.grok/skills/autoconference/references/family-contract.md +26 -0
  49. package/.grok/skills/autoconference/references/modes/analyze.md +11 -0
  50. package/.grok/skills/autoconference/references/modes/core/convergence-guide.md +41 -0
  51. package/.grok/skills/autoconference/references/modes/core/crash-recovery.md +11 -0
  52. package/.grok/skills/autoconference/references/modes/core.md +26 -0
  53. package/.grok/skills/autoconference/references/modes/debate.md +11 -0
  54. package/.grok/skills/autoconference/references/modes/plan.md +12 -0
  55. package/.grok/skills/autoconference/references/modes/resume.md +11 -0
  56. package/.grok/skills/autoconference/references/modes/ship.md +11 -0
  57. package/.grok/skills/autoconference/references/modes/survey.md +11 -0
  58. package/.grok/skills/autoconference/references/results-logging.md +12 -0
  59. package/.grok/skills/autoconference/references/visualization-guide.md +10 -0
  60. package/.grok/skills/autoconference/scripts/init_conference.py +646 -0
  61. package/.grok/skills/autoconference/scripts/verify-canonical-corpus.mjs +177 -0
  62. package/.grok/skills/autoconference/templates/code-performance.md +59 -0
  63. package/.grok/skills/autoconference/templates/debate-mode.md +50 -0
  64. package/.grok/skills/autoconference/templates/prompt-optimization.md +58 -0
  65. package/.grok/skills/autoconference/templates/quick-conference.md +48 -0
  66. package/.grok/skills/autoconference/templates/research-synthesis.md +56 -0
  67. package/.grok/skills/autoconference/templates/survey-mode.md +63 -0
  68. package/.grok/skills/autoresearch/LICENSE +21 -0
  69. package/.grok/skills/autoresearch/PROVENANCE.md +22 -0
  70. package/.grok/skills/autoresearch/SKILL.md +149 -0
  71. package/.grok/skills/autoresearch/assets/report_template.md +52 -0
  72. package/.grok/skills/autoresearch/assets/research_template.md +38 -0
  73. package/.grok/skills/autoresearch/assets/results_template.tsv +2 -0
  74. package/.grok/skills/autoresearch/references/_canonical-corpus/manifest.json +148 -0
  75. package/.grok/skills/autoresearch/references/core-principles.md +16 -0
  76. package/.grok/skills/autoresearch/references/family-contract.md +36 -0
  77. package/.grok/skills/autoresearch/references/modes/core/evaluator-contract.md +12 -0
  78. package/.grok/skills/autoresearch/references/modes/core/stuck-detection.md +11 -0
  79. package/.grok/skills/autoresearch/references/modes/core.md +21 -0
  80. package/.grok/skills/autoresearch/references/modes/debug/investigation-techniques.md +11 -0
  81. package/.grok/skills/autoresearch/references/modes/debug.md +11 -0
  82. package/.grok/skills/autoresearch/references/modes/fix.md +11 -0
  83. package/.grok/skills/autoresearch/references/modes/learn.md +11 -0
  84. package/.grok/skills/autoresearch/references/modes/plan.md +14 -0
  85. package/.grok/skills/autoresearch/references/modes/predict/persona-templates.md +11 -0
  86. package/.grok/skills/autoresearch/references/modes/predict.md +11 -0
  87. package/.grok/skills/autoresearch/references/modes/reason.md +11 -0
  88. package/.grok/skills/autoresearch/references/modes/scenario/dimensions.md +11 -0
  89. package/.grok/skills/autoresearch/references/modes/scenario.md +11 -0
  90. package/.grok/skills/autoresearch/references/modes/security/owasp-checklist.md +11 -0
  91. package/.grok/skills/autoresearch/references/modes/security/stride-model.md +11 -0
  92. package/.grok/skills/autoresearch/references/modes/security.md +12 -0
  93. package/.grok/skills/autoresearch/references/modes/ship/type-checklists.md +12 -0
  94. package/.grok/skills/autoresearch/references/modes/ship.md +11 -0
  95. package/.grok/skills/autoresearch/references/results-logging.md +12 -0
  96. package/.grok/skills/autoresearch/references/visualization-guide.md +24 -0
  97. package/.grok/skills/autoresearch/scripts/init_research.py +391 -0
  98. package/.grok/skills/autoresearch/scripts/style_presets.py +123 -0
  99. package/.grok/skills/autoresearch/scripts/verify-canonical-corpus.mjs +179 -0
  100. package/.grok/skills/browser-drive/SKILL.md +194 -0
  101. package/.grok/skills/browser-drive/references/snapshot-act-loop.md +61 -0
  102. package/.grok/skills/comment-checker/SKILL.md +194 -0
  103. package/.grok/skills/debugging/SKILL.md +82 -0
  104. package/.grok/skills/debugging/references/methodology/00-setup.md +108 -0
  105. package/.grok/skills/debugging/references/methodology/02-investigate.md +126 -0
  106. package/.grok/skills/debugging/references/methodology/04-oracle-triple.md +106 -0
  107. package/.grok/skills/debugging/references/methodology/05-escalate.md +69 -0
  108. package/.grok/skills/debugging/references/methodology/06-fix.md +116 -0
  109. package/.grok/skills/debugging/references/methodology/08-qa.md +94 -0
  110. package/.grok/skills/debugging/references/methodology/09-cleanup.md +164 -0
  111. package/.grok/skills/debugging/references/methodology/partial-runtime-evidence.md +228 -0
  112. package/.grok/skills/debugging/references/post-tool-use-failure-taxonomy.md +55 -0
  113. package/.grok/skills/debugging/references/reproduction-recipes.md +182 -0
  114. package/.grok/skills/debugging/references/runtimes/bundled-js-binary.md +415 -0
  115. package/.grok/skills/debugging/references/runtimes/go.md +252 -0
  116. package/.grok/skills/debugging/references/runtimes/native-binary.md +484 -0
  117. package/.grok/skills/debugging/references/runtimes/node.md +260 -0
  118. package/.grok/skills/debugging/references/runtimes/python.md +248 -0
  119. package/.grok/skills/debugging/references/runtimes/rust.md +234 -0
  120. package/.grok/skills/debugging/references/tools/ghidra.md +212 -0
  121. package/.grok/skills/debugging/references/tools/playwright-cli.md +194 -0
  122. package/.grok/skills/debugging/references/tools/pwndbg.md +263 -0
  123. package/.grok/skills/debugging/references/tools/pwntools.md +265 -0
  124. package/.grok/skills/deep-interview/SKILL.md +216 -0
  125. package/.grok/skills/frontend-ui-ux/LICENSE +21 -0
  126. package/.grok/skills/frontend-ui-ux/PROVENANCE.json +38 -0
  127. package/.grok/skills/frontend-ui-ux/SKILL.md +58 -0
  128. package/.grok/skills/frontend-ui-ux/SOURCE-MANIFEST.json +1060 -0
  129. package/.grok/skills/frontend-ui-ux/THIRD-PARTY-NOTICE.txt +14 -0
  130. package/.grok/skills/frontend-ui-ux/data/design-intelligence.json +1 -0
  131. package/.grok/skills/frontend-ui-ux/references/_canonical-corpus/legal/frontend-ATTRIBUTION.md +217 -0
  132. package/.grok/skills/frontend-ui-ux/references/_canonical-corpus/legal/frontend-LICENSE-Apache-2.0.txt +201 -0
  133. package/.grok/skills/frontend-ui-ux/references/_canonical-corpus/legal/root-LICENSE +21 -0
  134. package/.grok/skills/frontend-ui-ux/references/_canonical-corpus/manifest.json +873 -0
  135. package/.grok/skills/frontend-ui-ux/references/adaptive-layout.md +92 -0
  136. package/.grok/skills/frontend-ui-ux/references/brand-and-imagery.md +93 -0
  137. package/.grok/skills/frontend-ui-ux/references/complete-contract.md +557 -0
  138. package/.grok/skills/frontend-ui-ux/references/composition.md +85 -0
  139. package/.grok/skills/frontend-ui-ux/references/creative-directions.md +80 -0
  140. package/.grok/skills/frontend-ui-ux/references/design/README.md +248 -0
  141. package/.grok/skills/frontend-ui-ux/references/design/_INDEX.md +191 -0
  142. package/.grok/skills/frontend-ui-ux/references/design/airbnb.md +393 -0
  143. package/.grok/skills/frontend-ui-ux/references/design/airtable.md +92 -0
  144. package/.grok/skills/frontend-ui-ux/references/design/apple.md +250 -0
  145. package/.grok/skills/frontend-ui-ux/references/design/aside.md +209 -0
  146. package/.grok/skills/frontend-ui-ux/references/design/binance.md +348 -0
  147. package/.grok/skills/frontend-ui-ux/references/design/bmw.md +183 -0
  148. package/.grok/skills/frontend-ui-ux/references/design/brutalist-skill.md +92 -0
  149. package/.grok/skills/frontend-ui-ux/references/design/bugatti.md +271 -0
  150. package/.grok/skills/frontend-ui-ux/references/design/cal.md +262 -0
  151. package/.grok/skills/frontend-ui-ux/references/design/claude.md +315 -0
  152. package/.grok/skills/frontend-ui-ux/references/design/clay.md +307 -0
  153. package/.grok/skills/frontend-ui-ux/references/design/clickhouse.md +284 -0
  154. package/.grok/skills/frontend-ui-ux/references/design/clone-from-url.md +65 -0
  155. package/.grok/skills/frontend-ui-ux/references/design/cohere.md +269 -0
  156. package/.grok/skills/frontend-ui-ux/references/design/coinbase.md +132 -0
  157. package/.grok/skills/frontend-ui-ux/references/design/composio.md +310 -0
  158. package/.grok/skills/frontend-ui-ux/references/design/cursor.md +312 -0
  159. package/.grok/skills/frontend-ui-ux/references/design/design-system-architecture.md +244 -0
  160. package/.grok/skills/frontend-ui-ux/references/design/elevenlabs.md +268 -0
  161. package/.grok/skills/frontend-ui-ux/references/design/expo.md +284 -0
  162. package/.grok/skills/frontend-ui-ux/references/design/ferrari.md +317 -0
  163. package/.grok/skills/frontend-ui-ux/references/design/figma.md +223 -0
  164. package/.grok/skills/frontend-ui-ux/references/design/framer.md +249 -0
  165. package/.grok/skills/frontend-ui-ux/references/design/gpt-tasteskill.md +74 -0
  166. package/.grok/skills/frontend-ui-ux/references/design/hashicorp.md +281 -0
  167. package/.grok/skills/frontend-ui-ux/references/design/ibm.md +335 -0
  168. package/.grok/skills/frontend-ui-ux/references/design/image-to-code-skill.md +1228 -0
  169. package/.grok/skills/frontend-ui-ux/references/design/imagegen-brandkit.md +798 -0
  170. package/.grok/skills/frontend-ui-ux/references/design/imagegen-frontend-mobile.md +1465 -0
  171. package/.grok/skills/frontend-ui-ux/references/design/imagegen-frontend-web.md +987 -0
  172. package/.grok/skills/frontend-ui-ux/references/design/intercom.md +149 -0
  173. package/.grok/skills/frontend-ui-ux/references/design/kraken.md +128 -0
  174. package/.grok/skills/frontend-ui-ux/references/design/lamborghini.md +291 -0
  175. package/.grok/skills/frontend-ui-ux/references/design/layout-skill.md +107 -0
  176. package/.grok/skills/frontend-ui-ux/references/design/lazyweb.md +77 -0
  177. package/.grok/skills/frontend-ui-ux/references/design/linear.app.md +370 -0
  178. package/.grok/skills/frontend-ui-ux/references/design/lovable.md +301 -0
  179. package/.grok/skills/frontend-ui-ux/references/design/mastercard.md +368 -0
  180. package/.grok/skills/frontend-ui-ux/references/design/meta.md +369 -0
  181. package/.grok/skills/frontend-ui-ux/references/design/minimalist-skill.md +85 -0
  182. package/.grok/skills/frontend-ui-ux/references/design/minimax.md +260 -0
  183. package/.grok/skills/frontend-ui-ux/references/design/mintlify.md +329 -0
  184. package/.grok/skills/frontend-ui-ux/references/design/miro.md +111 -0
  185. package/.grok/skills/frontend-ui-ux/references/design/mistral.ai.md +264 -0
  186. package/.grok/skills/frontend-ui-ux/references/design/mongodb.md +269 -0
  187. package/.grok/skills/frontend-ui-ux/references/design/nike.md +366 -0
  188. package/.grok/skills/frontend-ui-ux/references/design/notion.md +312 -0
  189. package/.grok/skills/frontend-ui-ux/references/design/nvidia.md +296 -0
  190. package/.grok/skills/frontend-ui-ux/references/design/ollama.md +270 -0
  191. package/.grok/skills/frontend-ui-ux/references/design/opencode.ai.md +284 -0
  192. package/.grok/skills/frontend-ui-ux/references/design/output-skill.md +49 -0
  193. package/.grok/skills/frontend-ui-ux/references/design/pinterest.md +233 -0
  194. package/.grok/skills/frontend-ui-ux/references/design/playstation.md +367 -0
  195. package/.grok/skills/frontend-ui-ux/references/design/posthog.md +259 -0
  196. package/.grok/skills/frontend-ui-ux/references/design/raycast.md +271 -0
  197. package/.grok/skills/frontend-ui-ux/references/design/react-dev-tooling-skill.md +230 -0
  198. package/.grok/skills/frontend-ui-ux/references/design/redesign-skill.md +178 -0
  199. package/.grok/skills/frontend-ui-ux/references/design/renault.md +314 -0
  200. package/.grok/skills/frontend-ui-ux/references/design/replicate.md +264 -0
  201. package/.grok/skills/frontend-ui-ux/references/design/resend.md +306 -0
  202. package/.grok/skills/frontend-ui-ux/references/design/revolut.md +188 -0
  203. package/.grok/skills/frontend-ui-ux/references/design/runwayml.md +247 -0
  204. package/.grok/skills/frontend-ui-ux/references/design/sanity.md +360 -0
  205. package/.grok/skills/frontend-ui-ux/references/design/sentry.md +265 -0
  206. package/.grok/skills/frontend-ui-ux/references/design/shopify.md +353 -0
  207. package/.grok/skills/frontend-ui-ux/references/design/soft-skill.md +98 -0
  208. package/.grok/skills/frontend-ui-ux/references/design/spacex.md +197 -0
  209. package/.grok/skills/frontend-ui-ux/references/design/spotify.md +249 -0
  210. package/.grok/skills/frontend-ui-ux/references/design/starbucks.md +583 -0
  211. package/.grok/skills/frontend-ui-ux/references/design/stitch-design-example.md +121 -0
  212. package/.grok/skills/frontend-ui-ux/references/design/stitch-skill.md +184 -0
  213. package/.grok/skills/frontend-ui-ux/references/design/stripe.md +325 -0
  214. package/.grok/skills/frontend-ui-ux/references/design/supabase.md +258 -0
  215. package/.grok/skills/frontend-ui-ux/references/design/superhuman.md +255 -0
  216. package/.grok/skills/frontend-ui-ux/references/design/taste-skill.md +1206 -0
  217. package/.grok/skills/frontend-ui-ux/references/design/tesla.md +289 -0
  218. package/.grok/skills/frontend-ui-ux/references/design/theverge.md +342 -0
  219. package/.grok/skills/frontend-ui-ux/references/design/together.ai.md +266 -0
  220. package/.grok/skills/frontend-ui-ux/references/design/uber.md +298 -0
  221. package/.grok/skills/frontend-ui-ux/references/design/vercel.md +313 -0
  222. package/.grok/skills/frontend-ui-ux/references/design/vodafone.md +426 -0
  223. package/.grok/skills/frontend-ui-ux/references/design/voltagent.md +326 -0
  224. package/.grok/skills/frontend-ui-ux/references/design/warp.md +256 -0
  225. package/.grok/skills/frontend-ui-ux/references/design/webflow.md +95 -0
  226. package/.grok/skills/frontend-ui-ux/references/design/wired.md +281 -0
  227. package/.grok/skills/frontend-ui-ux/references/design/wise.md +176 -0
  228. package/.grok/skills/frontend-ui-ux/references/design/x.ai.md +260 -0
  229. package/.grok/skills/frontend-ui-ux/references/design/zapier.md +331 -0
  230. package/.grok/skills/frontend-ui-ux/references/designpowers/EVIDENCE.md +97 -0
  231. package/.grok/skills/frontend-ui-ux/references/designpowers/README.md +48 -0
  232. package/.grok/skills/frontend-ui-ux/references/designpowers/UPSTREAM.md +80 -0
  233. package/.grok/skills/frontend-ui-ux/references/designpowers/lane-a-direction.md +64 -0
  234. package/.grok/skills/frontend-ui-ux/references/designpowers/lane-b-execution.md +65 -0
  235. package/.grok/skills/frontend-ui-ux/references/designpowers/lane-c-review.md +65 -0
  236. package/.grok/skills/frontend-ui-ux/references/designpowers/lane-d-memory.md +83 -0
  237. package/.grok/skills/frontend-ui-ux/references/designpowers/orchestration.md +80 -0
  238. package/.grok/skills/frontend-ui-ux/references/designpowers/routing.md +79 -0
  239. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/LICENSE +21 -0
  240. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
  241. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/content-writer.md +132 -0
  242. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-builder.md +109 -0
  243. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-critic.md +89 -0
  244. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-lead.md +113 -0
  245. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-scout.md +78 -0
  246. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-strategist.md +121 -0
  247. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
  248. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
  249. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/motion-designer.md +120 -0
  250. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/accessible-content/reference.md +101 -0
  251. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/adaptive-interfaces/reference.md +109 -0
  252. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/cognitive-accessibility/reference.md +107 -0
  253. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-debate/reference.md +199 -0
  254. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-debt-tracker/reference.md +174 -0
  255. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-handoff/reference.md +125 -0
  256. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-md/reference.md +106 -0
  257. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-retrospective/reference.md +266 -0
  258. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-review/reference.md +123 -0
  259. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-system-alignment/reference.md +120 -0
  260. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/designpowers-critique/reference.md +164 -0
  261. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/heuristic-evaluation/reference.md +85 -0
  262. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/inclusive-personas/reference.md +98 -0
  263. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/inspiration-scouting/reference.md +165 -0
  264. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/interaction-design/reference.md +122 -0
  265. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/motion-choreography/reference.md +81 -0
  266. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/research-planning/reference.md +96 -0
  267. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/responsive-patterns/reference.md +77 -0
  268. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/synthetic-user-testing/reference.md +192 -0
  269. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/taste-feedback/reference.md +165 -0
  270. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/taste-report/reference.md +78 -0
  271. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/token-architecture/reference.md +75 -0
  272. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/ui-composition/reference.md +117 -0
  273. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/usability-testing/reference.md +78 -0
  274. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/verification-before-shipping/reference.md +125 -0
  275. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/voice-and-tone/reference.md +79 -0
  276. package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/writing-design-plans/reference.md +119 -0
  277. package/.grok/skills/frontend-ui-ux/references/evidence-review.md +126 -0
  278. package/.grok/skills/frontend-ui-ux/references/implementation-platforms.md +109 -0
  279. package/.grok/skills/frontend-ui-ux/references/inclusive-interface.md +92 -0
  280. package/.grok/skills/frontend-ui-ux/references/interaction-motion.md +101 -0
  281. package/.grok/skills/frontend-ui-ux/references/operating-lanes.md +92 -0
  282. package/.grok/skills/frontend-ui-ux/references/perfection/README.md +160 -0
  283. package/.grok/skills/frontend-ui-ux/references/perfection/react-perf-tooling.md +127 -0
  284. package/.grok/skills/frontend-ui-ux/references/performance-delivery.md +93 -0
  285. package/.grok/skills/frontend-ui-ux/references/product-direction.md +84 -0
  286. package/.grok/skills/frontend-ui-ux/references/redesign-playbook.md +97 -0
  287. package/.grok/skills/frontend-ui-ux/references/system-foundations.md +84 -0
  288. package/.grok/skills/frontend-ui-ux/references/taste-direction.md +86 -0
  289. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/README.md +659 -0
  290. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/charts.csv +26 -0
  291. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/colors.csv +162 -0
  292. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/icons.csv +106 -0
  293. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/landing.csv +35 -0
  294. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/products.csv +162 -0
  295. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/react-performance.csv +45 -0
  296. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/astro.csv +54 -0
  297. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/flutter.csv +53 -0
  298. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/html-tailwind.csv +56 -0
  299. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/jetpack-compose.csv +53 -0
  300. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/nextjs.csv +53 -0
  301. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/nuxt-ui.csv +51 -0
  302. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/nuxtjs.csv +59 -0
  303. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/react-native.csv +52 -0
  304. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/react.csv +54 -0
  305. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/shadcn.csv +61 -0
  306. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/svelte.csv +54 -0
  307. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/swiftui.csv +51 -0
  308. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/vue.csv +50 -0
  309. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/styles.csv +85 -0
  310. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/typography.csv +74 -0
  311. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/ui-reasoning.csv +162 -0
  312. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/ux-guidelines.csv +100 -0
  313. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/web-interface.csv +31 -0
  314. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/scripts/core.py +262 -0
  315. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/scripts/design_system.py +1148 -0
  316. package/.grok/skills/frontend-ui-ux/references/ui-ux-db/scripts/search.py +114 -0
  317. package/.grok/skills/frontend-ui-ux/references/visual-language.md +84 -0
  318. package/.grok/skills/frontend-ui-ux/references/visual-reconstruction.md +97 -0
  319. package/.grok/skills/frontend-ui-ux/schemas/design-contract-v1alpha1.schema.json +306 -0
  320. package/.grok/skills/frontend-ui-ux/schemas/design-contract-v1beta1.schema.json +291 -0
  321. package/.grok/skills/frontend-ui-ux/schemas/design-contract-v1beta2.schema.json +311 -0
  322. package/.grok/skills/frontend-ui-ux/scripts/design-contract-format.mjs +286 -0
  323. package/.grok/skills/frontend-ui-ux/scripts/design-contract-inventory-rules.mjs +354 -0
  324. package/.grok/skills/frontend-ui-ux/scripts/design-contract-rules.mjs +361 -0
  325. package/.grok/skills/frontend-ui-ux/scripts/design-contract-surface-rules.mjs +313 -0
  326. package/.grok/skills/frontend-ui-ux/scripts/design-data.mjs +68 -0
  327. package/.grok/skills/frontend-ui-ux/scripts/errors.mjs +12 -0
  328. package/.grok/skills/frontend-ui-ux/scripts/import-design-intelligence.mjs +124 -0
  329. package/.grok/skills/frontend-ui-ux/scripts/json-boundary.mjs +63 -0
  330. package/.grok/skills/frontend-ui-ux/scripts/query-design-intelligence.mjs +106 -0
  331. package/.grok/skills/frontend-ui-ux/scripts/search.mjs +43 -0
  332. package/.grok/skills/frontend-ui-ux/scripts/source-replay.mjs +153 -0
  333. package/.grok/skills/frontend-ui-ux/scripts/strict-json.mjs +143 -0
  334. package/.grok/skills/frontend-ui-ux/scripts/validate-design-contract.mjs +52 -0
  335. package/.grok/skills/frontend-ui-ux/scripts/verify-canonical-corpus.mjs +214 -0
  336. package/.grok/skills/lit-burnoff/SKILL.md +175 -0
  337. package/.grok/skills/lit-burnoff-file/SKILL.md +67 -0
  338. package/.grok/skills/lit-code/SKILL.md +531 -0
  339. package/.grok/skills/lit-code/references/go/README.md +90 -0
  340. package/.grok/skills/lit-code/references/go/backend-stack.md +641 -0
  341. package/.grok/skills/lit-code/references/go/bootstrap.md +328 -0
  342. package/.grok/skills/lit-code/references/go/bubbletea-v2.md +360 -0
  343. package/.grok/skills/lit-code/references/go/cobra-stack.md +468 -0
  344. package/.grok/skills/lit-code/references/go/concurrency.md +362 -0
  345. package/.grok/skills/lit-code/references/go/data-modeling.md +329 -0
  346. package/.grok/skills/lit-code/references/go/error-handling.md +359 -0
  347. package/.grok/skills/lit-code/references/go/golangci-strict.md +236 -0
  348. package/.grok/skills/lit-code/references/go/grpc-connect.md +375 -0
  349. package/.grok/skills/lit-code/references/go/libraries.md +337 -0
  350. package/.grok/skills/lit-code/references/go/one-liners.md +202 -0
  351. package/.grok/skills/lit-code/references/go/sqlc-pgx.md +471 -0
  352. package/.grok/skills/lit-code/references/go/testing.md +467 -0
  353. package/.grok/skills/lit-code/references/go/type-patterns.md +298 -0
  354. package/.grok/skills/lit-code/references/permission-sandbox-matrix.md +70 -0
  355. package/.grok/skills/lit-code/references/python/README.md +314 -0
  356. package/.grok/skills/lit-code/references/python/async-anyio.md +442 -0
  357. package/.grok/skills/lit-code/references/python/data-modeling.md +233 -0
  358. package/.grok/skills/lit-code/references/python/data-processing.md +133 -0
  359. package/.grok/skills/lit-code/references/python/error-handling.md +218 -0
  360. package/.grok/skills/lit-code/references/python/fastapi-stack.md +316 -0
  361. package/.grok/skills/lit-code/references/python/httpx2-optimization.md +360 -0
  362. package/.grok/skills/lit-code/references/python/libraries.md +307 -0
  363. package/.grok/skills/lit-code/references/python/one-liners.md +268 -0
  364. package/.grok/skills/lit-code/references/python/orjson-stack.md +378 -0
  365. package/.grok/skills/lit-code/references/python/pydantic-ai.md +285 -0
  366. package/.grok/skills/lit-code/references/python/pyproject-strict.md +232 -0
  367. package/.grok/skills/lit-code/references/python/textual-tui.md +201 -0
  368. package/.grok/skills/lit-code/references/python/type-patterns.md +176 -0
  369. package/.grok/skills/lit-code/references/rust/README.md +317 -0
  370. package/.grok/skills/lit-code/references/rust/async-tokio.md +299 -0
  371. package/.grok/skills/lit-code/references/rust/axum-stack.md +467 -0
  372. package/.grok/skills/lit-code/references/rust/cargo-strict.md +317 -0
  373. package/.grok/skills/lit-code/references/rust/clap-stack.md +409 -0
  374. package/.grok/skills/lit-code/references/rust/concurrency.md +375 -0
  375. package/.grok/skills/lit-code/references/rust/libraries.md +439 -0
  376. package/.grok/skills/lit-code/references/rust/one-liners.md +291 -0
  377. package/.grok/skills/lit-code/references/rust/proptest-insta.md +429 -0
  378. package/.grok/skills/lit-code/references/rust/type-state.md +354 -0
  379. package/.grok/skills/lit-code/references/rust/unsafe-discipline.md +250 -0
  380. package/.grok/skills/lit-code/references/rust/zero-cost-safety.md +527 -0
  381. package/.grok/skills/lit-code/references/rust-ub/README.md +289 -0
  382. package/.grok/skills/lit-code/references/rust-ub/miri-sanitizers-loom.md +411 -0
  383. package/.grok/skills/lit-code/references/rust-ub/ub-taxonomy.md +269 -0
  384. package/.grok/skills/lit-code/references/tool-boundaries.md +66 -0
  385. package/.grok/skills/lit-code/references/typescript/README.md +195 -0
  386. package/.grok/skills/lit-code/references/typescript/backend-hono.md +672 -0
  387. package/.grok/skills/lit-code/references/typescript/bootstrap.md +199 -0
  388. package/.grok/skills/lit-code/references/typescript/data-modeling.md +202 -0
  389. package/.grok/skills/lit-code/references/typescript/error-handling.md +169 -0
  390. package/.grok/skills/lit-code/references/typescript/tsconfig-strict.md +152 -0
  391. package/.grok/skills/lit-code/references/typescript/type-patterns.md +196 -0
  392. package/.grok/skills/lit-code/references/worked-cases.md +190 -0
  393. package/.grok/skills/lit-commit/SKILL.md +218 -0
  394. package/.grok/skills/lit-comprehend/SKILL.md +63 -0
  395. package/.grok/skills/lit-comprehend/references/artifact-format.md +58 -0
  396. package/.grok/skills/lit-comprehend/references/artifact-template.md +219 -0
  397. package/.grok/skills/lit-comprehend/references/honesty-ledger-contract.md +51 -0
  398. package/.grok/skills/lit-comprehend/references/micro-worlds.md +195 -0
  399. package/.grok/skills/lit-comprehend/references/worked-explainer.md +51 -0
  400. package/.grok/skills/lit-crucible/SKILL.md +231 -0
  401. package/.grok/skills/lit-handoff/SKILL.md +159 -0
  402. package/.grok/skills/lit-handoff/evals/evals.json +154 -0
  403. package/.grok/skills/lit-handoff/examples/HANDOFF-example-generic-auth-refactor.md +97 -0
  404. package/.grok/skills/lit-handoff/references/_canonical-corpus/manifest.json +17 -0
  405. package/.grok/skills/lit-handoff/references/source-pointer.md +31 -0
  406. package/.grok/skills/lit-handoff/scripts/verify-canonical-corpus.mjs +137 -0
  407. package/.grok/skills/lit-handoff/templates/HANDOFF.md +121 -0
  408. package/.grok/skills/lit-init/SKILL.md +244 -0
  409. package/.grok/skills/lit-korean/SKILL.md +176 -0
  410. package/.grok/skills/lit-plan/SKILL.md +71 -0
  411. package/.grok/skills/lit-plan/references/plan-schema.md +87 -0
  412. package/.grok/skills/lit-plan/references/start-work-handoff-contract.md +59 -0
  413. package/.grok/skills/lit-plan/scripts/scaffold-plan.mjs +259 -0
  414. package/.grok/skills/lit-plan/scripts/validate-plan.mjs +89 -0
  415. package/.grok/skills/lit-recap/SKILL.md +57 -0
  416. package/.grok/skills/lit-scientific-visualization/SKILL.md +213 -0
  417. package/.grok/skills/lit-scientific-visualization/scripts/verify-canonical-corpus.mjs +181 -0
  418. package/.grok/skills/lit-team/SKILL.md +73 -0
  419. package/.grok/skills/lit-team/references/explore-packet.md +70 -0
  420. package/.grok/skills/lit-team/references/general-purpose-packet.md +75 -0
  421. package/.grok/skills/lit-team/references/plan-packet.md +73 -0
  422. package/.grok/skills/litgoal/SKILL.md +98 -0
  423. package/.grok/skills/litgrok/SKILL.md +77 -0
  424. package/.grok/skills/litresearch/SKILL.md +60 -0
  425. package/.grok/skills/litresearch/references/mcp-tool-use-patterns.md +83 -0
  426. package/.grok/skills/litresearch/references/source-verdict-taxonomy.md +40 -0
  427. package/.grok/skills/litwork/SKILL.md +109 -0
  428. package/.grok/skills/lsp/SKILL.md +56 -0
  429. package/.grok/skills/lsp/references/built-in-lsp-contract.md +71 -0
  430. package/.grok/skills/lsp-setup/SKILL.md +82 -0
  431. package/.grok/skills/lsp-setup/references/bash/README.md +54 -0
  432. package/.grok/skills/lsp-setup/references/c-cpp/README.md +58 -0
  433. package/.grok/skills/lsp-setup/references/csharp/README.md +64 -0
  434. package/.grok/skills/lsp-setup/references/dart/README.md +48 -0
  435. package/.grok/skills/lsp-setup/references/elixir/README.md +51 -0
  436. package/.grok/skills/lsp-setup/references/go/README.md +53 -0
  437. package/.grok/skills/lsp-setup/references/haskell/README.md +57 -0
  438. package/.grok/skills/lsp-setup/references/java/README.md +55 -0
  439. package/.grok/skills/lsp-setup/references/julia/README.md +56 -0
  440. package/.grok/skills/lsp-setup/references/kotlin/README.md +58 -0
  441. package/.grok/skills/lsp-setup/references/lua/README.md +48 -0
  442. package/.grok/skills/lsp-setup/references/php/README.md +49 -0
  443. package/.grok/skills/lsp-setup/references/python/README.md +60 -0
  444. package/.grok/skills/lsp-setup/references/ruby/README.md +53 -0
  445. package/.grok/skills/lsp-setup/references/rust/README.md +55 -0
  446. package/.grok/skills/lsp-setup/references/swift/README.md +52 -0
  447. package/.grok/skills/lsp-setup/references/terraform/README.md +50 -0
  448. package/.grok/skills/lsp-setup/references/typescript/README.md +63 -0
  449. package/.grok/skills/lsp-setup/references/yaml/README.md +47 -0
  450. package/.grok/skills/lsp-setup/references/zig/README.md +49 -0
  451. package/.grok/skills/lsp-setup/scripts/detect-lsp.mjs +40 -0
  452. package/.grok/skills/lsp-setup/scripts/lsp-server-table.mjs +309 -0
  453. package/.grok/skills/lsp-setup/scripts/verify-lsp.mjs +54 -0
  454. package/.grok/skills/refactor/SKILL.md +210 -0
  455. package/.grok/skills/review-work/SKILL.md +515 -0
  456. package/.grok/skills/review-work/references/behavior-lane-contract.md +48 -0
  457. package/.grok/skills/review-work/references/documentation-lane-contract.md +49 -0
  458. package/.grok/skills/review-work/references/integration-lane-contract.md +51 -0
  459. package/.grok/skills/review-work/references/regression-lane-contract.md +48 -0
  460. package/.grok/skills/review-work/references/safety-lane-contract.md +48 -0
  461. package/.grok/skills/review-work/references/test-lane-contract.md +48 -0
  462. package/.grok/skills/review-work/scripts/check-lanes.mjs +63 -0
  463. package/.grok/skills/rules/SKILL.md +51 -0
  464. package/.grok/skills/rules/references/loading-order-contract.md +66 -0
  465. package/.grok/skills/rules/scripts/resolve-guidance.mjs +180 -0
  466. package/.grok/skills/skill-observer/SKILL.md +78 -0
  467. package/.grok/skills/skill-observer/references/review-contract.md +77 -0
  468. package/.grok/skills/skill-observer/scripts/curator.mjs +121 -0
  469. package/.grok/skills/skill-observer/scripts/review.mjs +347 -0
  470. package/.grok/skills/skill-observer/scripts/skill-loop.mjs +2087 -0
  471. package/.grok/skills/skill-observer/scripts/validate-skills.mjs +83 -0
  472. package/.grok/skills/start-work/SKILL.md +396 -0
  473. package/.grok/skills/structural-search/SKILL.md +195 -0
  474. package/.grok/skills/visual-qa/SKILL.md +50 -0
  475. package/.grok/skills/visual-qa/references/capture-playbook.md +47 -0
  476. package/.grok/skills/visual-qa/references/complete-contract.md +721 -0
  477. package/.grok/skills/visual-qa/references/verdict-taxonomy.md +34 -0
  478. package/.grok/skills/visual-qa/scripts/verify-evidence-manifest.mjs +91 -0
  479. package/.grok/skills/wikify/SKILL.md +65 -0
  480. package/.grok/skills/wikify/references/page-format.md +81 -0
  481. package/.grok/skills/wikify/references/provenance-contract.md +52 -0
  482. package/.grok/vendor/NOTICE.md +16 -0
  483. package/.grok/vendor/licenses/045_scientific-visualization-MIT.txt +21 -0
  484. package/.grok/vendor/provenance/045_scientific-visualization.md +37 -0
  485. package/.grok/vendor/scientific-visualization/assets/color_palettes.py +197 -0
  486. package/.grok/vendor/scientific-visualization/assets/nature.mplstyle +75 -0
  487. package/.grok/vendor/scientific-visualization/assets/presentation.mplstyle +74 -0
  488. package/.grok/vendor/scientific-visualization/assets/publication.mplstyle +78 -0
  489. package/.grok/vendor/scientific-visualization/evals/evals.json +158 -0
  490. package/.grok/vendor/scientific-visualization/references/_canonical-corpus/manifest.json +38 -0
  491. package/.grok/vendor/scientific-visualization/references/color_palettes.md +380 -0
  492. package/.grok/vendor/scientific-visualization/references/journal_requirements.md +359 -0
  493. package/.grok/vendor/scientific-visualization/references/matplotlib_examples.md +608 -0
  494. package/.grok/vendor/scientific-visualization/references/mdanalysis_martini_visualization.md +85 -0
  495. package/.grok/vendor/scientific-visualization/references/publication_guidelines.md +217 -0
  496. package/.grok/vendor/scientific-visualization/references/seaborn_for_publications.md +293 -0
  497. package/.grok/vendor/scientific-visualization/scripts/figure_export.py +238 -0
  498. package/.grok/vendor/scientific-visualization/scripts/style_presets.py +467 -0
  499. package/.grok/vendor/scientific-visualization/tests/test_figure_export.py +51 -0
  500. package/.grok/vendor/scientific-visualization/tests/test_style_presets.py +114 -0
  501. package/CHANGELOG.md +131 -0
  502. package/CODE_OF_CONDUCT.md +9 -0
  503. package/CONTRIBUTING.md +22 -0
  504. package/LICENSE +21 -0
  505. package/README.md +228 -0
  506. package/README_ko-KR.md +228 -0
  507. package/SECURITY.md +11 -0
  508. package/SUPPORT.md +9 -0
  509. package/bin/litgrok.mjs +860 -0
  510. package/docs/assets/cover.webp +0 -0
  511. package/docs/assets/litgrok-clay-icon.png +0 -0
  512. package/docs/assets/litgrok-continuity-1600.webp +0 -0
  513. package/docs/assets/litgrok-ignition-1600.webp +0 -0
  514. package/docs/assets/litgrok-wordmark.svg +5 -0
  515. package/docs/assets/readme/README.md +31 -0
  516. package/docs/assets/readme/badge-license.svg +1 -0
  517. package/docs/assets/readme/badge-version.svg +1 -0
  518. package/docs/privacy.md +13 -0
  519. package/docs/reference.md +271 -0
  520. package/docs/reference_ko-KR.md +267 -0
  521. package/package.json +50 -0
  522. package/plugin.json +27 -0
@@ -0,0 +1,55 @@
1
+ # Rust — LSP setup (Grok Build / LitGrok)
2
+
3
+ - **Recommended server:** `rust-analyzer`
4
+ - **Extensions:** `.rs`
5
+ - **Install hint:** `rustup component add rust-analyzer`
6
+
7
+ ## Install
8
+
9
+ - **macOS:** `rustup component add rust-analyzer` (or `brew install rust-analyzer`)
10
+ - **Linux:** `rustup component add rust-analyzer`
11
+ - **Windows:** `rustup component add rust-analyzer`
12
+
13
+ The rustup component is the recommended path — it stays pinned to your toolchain.
14
+ `rust-analyzer` also needs the `rust-src` component to index the standard library
15
+ (`rustup component add rust-src`).
16
+
17
+ Confirm it resolves:
18
+
19
+ ```bash
20
+ command -v rust-analyzer
21
+ ```
22
+
23
+ ## Server settings
24
+
25
+ Grok Build documents no project language-server schema, and LitGrok ships no server
26
+ configuration: the only documented code-intelligence surface is the built-in tool
27
+ behind `GROK_LSP_TOOLS=1` / `[features] lsp_tools`, which is off by default (see the
28
+ `lsp` skill). Installing the server binary on PATH is the whole setup this reference
29
+ can vouch for. Do not add a server entry to `.grok/config.toml`; that key is not a
30
+ documented Grok Build surface.
31
+
32
+ ## Alternatives
33
+
34
+ None — `rust-analyzer` is the official and sole Rust language server.
35
+
36
+ ## Troubleshooting
37
+ - **PATH:** `rust-analyzer` must be on PATH; reopen shell after install. The rustup shim lives in `~/.cargo/bin`.
38
+ - **Exits while loading rust-src:** if rust-analyzer crashes during stdlib indexing, reinstall the source component:
39
+
40
+ ```bash
41
+ rustup component remove rust-src && rustup component add rust-src
42
+ ```
43
+
44
+ - **No proc-macro / build script support:** ensure the project builds with `cargo check`; rust-analyzer reuses the same toolchain.
45
+
46
+ ## Verify
47
+
48
+ ```bash
49
+ command -v rust-analyzer
50
+ ```
51
+
52
+ A resolving executable is the only claim this reference makes. Whether Grok Build's
53
+ built-in code-intelligence tool picks the server up is undocumented; confirm tool
54
+ visibility inside the session as the `lsp` skill describes, and fall back to the
55
+ project's own checks when it is absent.
@@ -0,0 +1,52 @@
1
+ # Swift — LSP setup (Grok Build / LitGrok)
2
+
3
+ - **Recommended server:** `sourcekit-lsp`
4
+ - **Extensions:** `.swift .objc .objcpp`
5
+ - **Install hint:** `Included with Xcode or the Swift toolchain`
6
+
7
+ ## Install
8
+
9
+ `sourcekit-lsp` ships with the Swift toolchain — no separate install.
10
+
11
+ - **macOS:** `xcode-select --install` (or install full Xcode). It resolves to the active toolchain selected by `xcode-select`.
12
+ - **Linux:** Install a swift.org toolchain (`sourcekit-lsp` ships inside it); add the toolchain's `usr/bin` to PATH.
13
+ - **Windows:** Install the swift.org Windows toolchain; `sourcekit-lsp` is bundled.
14
+
15
+ Confirm it resolves:
16
+
17
+ ```bash
18
+ command -v sourcekit-lsp
19
+ ```
20
+
21
+ ## Server settings
22
+
23
+ Grok Build documents no project language-server schema, and LitGrok ships no server
24
+ configuration: the only documented code-intelligence surface is the built-in tool
25
+ behind `GROK_LSP_TOOLS=1` / `[features] lsp_tools`, which is off by default (see the
26
+ `lsp` skill). Installing the server binary on PATH is the whole setup this reference
27
+ can vouch for. Do not add a server entry to `.grok/config.toml`; that key is not a
28
+ documented Grok Build surface.
29
+
30
+ ## Alternatives
31
+
32
+ **No mainstream alternative.** `sourcekit-lsp` is the official Apple/swift.org
33
+ server and the only practical choice.
34
+
35
+ ## Troubleshooting
36
+
37
+ - **PATH:** `sourcekit-lsp` on PATH; reopen shell after install (or after `xcode-select -s`).
38
+ - **Wrong toolchain (macOS):** point `xcode-select` at the right Xcode/toolchain; mismatches cause stale or missing results.
39
+ - **No `Package.swift` / compile db:** add a SwiftPM manifest or generate `compile_commands.json` for accurate indexing.
40
+ - **Objective-C (`.objc`/`.objcpp`):** needs a compilation database to resolve headers and frameworks.
41
+ - **First build slow:** the server builds the module graph on first open; wait for it.
42
+
43
+ ## Verify
44
+
45
+ ```bash
46
+ command -v sourcekit-lsp
47
+ ```
48
+
49
+ A resolving executable is the only claim this reference makes. Whether Grok Build's
50
+ built-in code-intelligence tool picks the server up is undocumented; confirm tool
51
+ visibility inside the session as the `lsp` skill describes, and fall back to the
52
+ project's own checks when it is absent.
@@ -0,0 +1,50 @@
1
+ # Terraform — LSP setup (Grok Build / LitGrok)
2
+
3
+ - **Recommended server:** `terraform-ls serve`
4
+ - **Extensions:** `.tf .tfvars`
5
+ - **Install hint:** See https://github.com/hashicorp/terraform-ls
6
+
7
+ ## Install
8
+
9
+ - **macOS:** `brew install hashicorp/tap/terraform-ls`
10
+ - **Linux:** download a release from https://github.com/hashicorp/terraform-ls/releases and place `terraform-ls` on PATH (or `apt`/`dnf` via the HashiCorp repo)
11
+ - **Windows:** `choco install terraform-ls` (or download a release zip)
12
+
13
+ `terraform-ls` requires the `terraform` binary itself to be installed and on PATH.
14
+
15
+ Confirm both resolve:
16
+
17
+ ```bash
18
+ command -v terraform-ls
19
+ command -v terraform
20
+ ```
21
+
22
+ ## Server settings
23
+
24
+ Grok Build documents no project language-server schema, and LitGrok ships no server
25
+ configuration: the only documented code-intelligence surface is the built-in tool
26
+ behind `GROK_LSP_TOOLS=1` / `[features] lsp_tools`, which is off by default (see the
27
+ `lsp` skill). Installing the server binary on PATH is the whole setup this reference
28
+ can vouch for. Do not add a server entry to `.grok/config.toml`; that key is not a
29
+ documented Grok Build surface.
30
+
31
+ ## Alternatives
32
+
33
+ - `tflint` standalone for opinionated linting (complements the LSP).
34
+ - `terraform fmt` for formatting.
35
+
36
+ ## Troubleshooting
37
+ - **PATH:** `terraform-ls` AND `terraform` both on PATH; reopen shell after install.
38
+ - **No provider completion:** run `terraform init` so the `.terraform/` schema cache exists.
39
+ - **`.tfvars` not analyzed:** open the containing module so the server has root context.
40
+
41
+ ## Verify
42
+
43
+ ```bash
44
+ command -v terraform-ls
45
+ ```
46
+
47
+ A resolving executable is the only claim this reference makes. Whether Grok Build's
48
+ built-in code-intelligence tool picks the server up is undocumented; confirm tool
49
+ visibility inside the session as the `lsp` skill describes, and fall back to the
50
+ project's own checks when it is absent.
@@ -0,0 +1,63 @@
1
+ # TypeScript / JavaScript — LSP setup (Grok Build / LitGrok)
2
+
3
+ - **Recommended server:** `typescript-language-server --stdio`
4
+ - **Extensions:** `.ts .tsx .js .jsx .mjs .cjs .mts .cts`
5
+ - **Install hint:** `npm install -g typescript-language-server typescript`
6
+
7
+ ## Install
8
+
9
+ - **macOS:** `npm install -g typescript-language-server typescript`
10
+ - **Linux:** `npm install -g typescript-language-server typescript`
11
+ - **Windows:** `npm install -g typescript-language-server typescript` (PowerShell or cmd)
12
+
13
+ `typescript-language-server` is only a thin wrapper — it needs the `typescript`
14
+ package (`tsserver`) present too, either globally or in the project's
15
+ `node_modules`. Always install both.
16
+
17
+ Confirm it resolves:
18
+
19
+ ```bash
20
+ command -v typescript-language-server
21
+ ```
22
+
23
+ ## Server settings
24
+
25
+ Grok Build documents no project language-server schema, and LitGrok ships no server
26
+ configuration: the only documented code-intelligence surface is the built-in tool
27
+ behind `GROK_LSP_TOOLS=1` / `[features] lsp_tools`, which is off by default (see the
28
+ `lsp` skill). Installing the server binary on PATH is the whole setup this reference
29
+ can vouch for. Do not add a server entry to `.grok/config.toml`; that key is not a
30
+ documented Grok Build surface.
31
+
32
+ ## Alternatives
33
+
34
+ Swap the server launch for your toolchain; each row owns the extensions named in
35
+ its description:
36
+
37
+ | server launch | when to choose |
38
+ | ----------------------------------------- | --------------------------------------- |
39
+ | `["deno", "lsp"]` | Deno projects (handles `.ts/.tsx/.js`) |
40
+ | `["biome", "lsp-proxy", "--stdio"]` | Biome lint/format as the LSP |
41
+ | `["vscode-eslint-language-server", "--stdio"]` | ESLint diagnostics |
42
+ | `["oxlint", "--lsp"]` | fast Oxc-based linting |
43
+ | `["vue-language-server", "--stdio"]` | `.vue` single-file components |
44
+ | `["svelteserver", "--stdio"]` | `.svelte` files |
45
+ | `["astro-ls", "--stdio"]` | `.astro` files |
46
+
47
+ `eslint` install: `npm i -g vscode-langservers-extracted`. To run Deno instead
48
+ of the default, launch `deno lsp` in place of `typescript-language-server --stdio`.
49
+
50
+ ## Troubleshooting
51
+ - **PATH:** `typescript-language-server` must be on PATH; reopen shell after `npm i -g`. Check your global bin with `npm bin -g`.
52
+ - **Missing tsserver:** errors like "Could not find tsserver" mean the `typescript` package is absent — install it globally or in the project.
53
+
54
+ ## Verify
55
+
56
+ ```bash
57
+ command -v typescript-language-server
58
+ ```
59
+
60
+ A resolving executable is the only claim this reference makes. Whether Grok Build's
61
+ built-in code-intelligence tool picks the server up is undocumented; confirm tool
62
+ visibility inside the session as the `lsp` skill describes, and fall back to the
63
+ project's own checks when it is absent.
@@ -0,0 +1,47 @@
1
+ # YAML — LSP setup (Grok Build / LitGrok)
2
+
3
+ - **Recommended server:** `yaml-language-server --stdio`
4
+ - **Extensions:** `.yaml .yml`
5
+ - **Install hint:** `npm install -g yaml-language-server`
6
+
7
+ ## Install
8
+
9
+ - **macOS:** `npm install -g yaml-language-server`
10
+ - **Linux:** `npm install -g yaml-language-server`
11
+ - **Windows:** `npm install -g yaml-language-server` (PowerShell)
12
+
13
+ Confirm it resolves:
14
+
15
+ ```bash
16
+ command -v yaml-language-server
17
+ ```
18
+
19
+ ## Server settings
20
+
21
+ Grok Build documents no project language-server schema, and LitGrok ships no server
22
+ configuration: the only documented code-intelligence surface is the built-in tool
23
+ behind `GROK_LSP_TOOLS=1` / `[features] lsp_tools`, which is off by default (see the
24
+ `lsp` skill). Installing the server binary on PATH is the whole setup this reference
25
+ can vouch for. Do not add a server entry to `.grok/config.toml`; that key is not a
26
+ documented Grok Build surface.
27
+
28
+ ## Alternatives
29
+
30
+ - `redhat.vscode-yaml` bundles the same server in editors.
31
+ - `yamllint` standalone for style/lint-only checks.
32
+
33
+ ## Troubleshooting
34
+ - **PATH:** `yaml-language-server` on PATH; reopen shell after `npm -g` install.
35
+ - **No validation:** no schema matched — add a `$schema` modeline or a `yaml.schemas` mapping in your editor's init options.
36
+ - **Wrong schema applied:** SchemaStore guessed by filename; pin explicitly with a modeline.
37
+
38
+ ## Verify
39
+
40
+ ```bash
41
+ command -v yaml-language-server
42
+ ```
43
+
44
+ A resolving executable is the only claim this reference makes. Whether Grok Build's
45
+ built-in code-intelligence tool picks the server up is undocumented; confirm tool
46
+ visibility inside the session as the `lsp` skill describes, and fall back to the
47
+ project's own checks when it is absent.
@@ -0,0 +1,49 @@
1
+ # Zig — LSP setup (Grok Build / LitGrok)
2
+
3
+ - **Recommended server:** `zls`
4
+ - **Extensions:** `.zig .zon`
5
+ - **Install hint:** `https://github.com/zigtools/zls`
6
+
7
+ ## Install
8
+
9
+ ZLS (the Zig Language Server) must be built against the **same Zig version** you use.
10
+ See `https://github.com/zigtools/zls`.
11
+
12
+ - **macOS:** `brew install zls`
13
+ - **Linux:** download a prebuilt release matching your Zig version, or `zig build -Doptimize=ReleaseSafe` from the zls source
14
+ - **Windows:** download the matching release from the zls GitHub releases, or build from source
15
+
16
+ Confirm it resolves:
17
+
18
+ ```bash
19
+ command -v zls
20
+ ```
21
+
22
+ ## Server settings
23
+
24
+ Grok Build documents no project language-server schema, and LitGrok ships no server
25
+ configuration: the only documented code-intelligence surface is the built-in tool
26
+ behind `GROK_LSP_TOOLS=1` / `[features] lsp_tools`, which is off by default (see the
27
+ `lsp` skill). Installing the server binary on PATH is the whole setup this reference
28
+ can vouch for. Do not add a server entry to `.grok/config.toml`; that key is not a
29
+ documented Grok Build surface.
30
+
31
+ ## Alternatives
32
+
33
+ None.
34
+
35
+ ## Troubleshooting
36
+ - **VERSION MATCH (critical):** zls version MUST match your zig version — build/install zls against the exact same Zig. A mismatch causes crashes, parse errors, or silent failures. After upgrading Zig, upgrade/rebuild zls too.
37
+ - **PATH:** `zls` must be on PATH; reopen the shell after install.
38
+ - **zig not found:** zls invokes `zig` for builds — make sure `zig` itself is also on PATH.
39
+
40
+ ## Verify
41
+
42
+ ```bash
43
+ command -v zls
44
+ ```
45
+
46
+ A resolving executable is the only claim this reference makes. Whether Grok Build's
47
+ built-in code-intelligence tool picks the server up is undocumented; confirm tool
48
+ visibility inside the session as the `lsp` skill describes, and fall back to the
49
+ project's own checks when it is absent.
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+
3
+ import {
4
+ assertProjectDirectory,
5
+ cliExitCode,
6
+ collectExtensions,
7
+ coverageForExtensions,
8
+ hostStatusMessage,
9
+ inspectProject,
10
+ isDirectInvocation,
11
+ parseOptions,
12
+ } from './lsp-server-table.mjs';
13
+
14
+ function main() {
15
+ try {
16
+ const options = parseOptions(process.argv.slice(2), { maxFiles: true, positional: 1 });
17
+ const project = assertProjectDirectory(options.positionals[0]);
18
+ const extensions = collectExtensions(project, options.maxFiles);
19
+ const host = inspectProject(project, options);
20
+ const report = {
21
+ root: project,
22
+ extensions,
23
+ host,
24
+ coverage: coverageForExtensions(extensions, host),
25
+ };
26
+ if (options.json) {
27
+ process.stdout.write(`${JSON.stringify(report)}\n`);
28
+ } else {
29
+ process.stdout.write(`PASS root=${project} extensions=${extensions.length} status=${host.status}\n`);
30
+ process.stdout.write(`${hostStatusMessage(host)}\n`);
31
+ for (const entry of report.coverage) process.stdout.write(`${entry.extension}: ${entry.status}\n`);
32
+ }
33
+ process.exitCode = 0;
34
+ } catch (error) {
35
+ process.stderr.write(`${error?.code ?? 'GROK_DETECT_FAILED'}: ${error?.message ?? String(error)}\n`);
36
+ process.exitCode = cliExitCode(error);
37
+ }
38
+ }
39
+
40
+ if (isDirectInvocation(import.meta.url)) main();
@@ -0,0 +1,309 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { spawnSync } from 'node:child_process';
4
+ import { lstatSync, readdirSync, realpathSync } from 'node:fs';
5
+ import { extname, isAbsolute, join, relative, resolve, sep } from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+
8
+ const DEFAULT_TIMEOUT_MS = 5_000;
9
+ const MAX_TIMEOUT_MS = 120_000;
10
+ const DEFAULT_MAX_FILES = 50_000;
11
+ const MAX_FILES = 100_000;
12
+ const MAX_OUTPUT_BYTES = 1_024 * 1_024;
13
+ const MAX_INSPECTION_ENTRIES = 64;
14
+ const MAX_INSPECTION_KEYS = 64;
15
+ const SKIPPED_DIRECTORIES = new Set([
16
+ '.git',
17
+ '.grok',
18
+ '.hg',
19
+ '.svn',
20
+ 'build',
21
+ 'coverage',
22
+ 'dist',
23
+ 'node_modules',
24
+ 'vendor',
25
+ ]);
26
+
27
+ export class LspSetupError extends Error {
28
+ constructor(code, detail = '') {
29
+ super(detail ? `${code}: ${detail}` : code);
30
+ this.name = 'LspSetupError';
31
+ this.code = code;
32
+ }
33
+ }
34
+
35
+ function fail(code, detail = '') {
36
+ throw new LspSetupError(code, detail);
37
+ }
38
+
39
+ function safeString(value, maximum) {
40
+ return typeof value === 'string' && value.length <= maximum && !value.includes('\0') ? value : undefined;
41
+ }
42
+
43
+ function numericOption(value, fallback, maximum, label) {
44
+ if (value === undefined) return fallback;
45
+ if (typeof value !== 'string' || !/^[1-9]\d*$/.test(value)) {
46
+ fail('CLI_ARGUMENT_INVALID', `${label} must be a positive integer`);
47
+ }
48
+ const parsed = Number(value);
49
+ if (!Number.isSafeInteger(parsed) || parsed > maximum) {
50
+ fail('CLI_ARGUMENT_INVALID', `${label} exceeds its bound`);
51
+ }
52
+ return parsed;
53
+ }
54
+
55
+ export function parseOptions(argv, { positional = 0, maxFiles = false } = {}) {
56
+ const options = { json: false, project: undefined, grokBin: undefined, timeout: DEFAULT_TIMEOUT_MS };
57
+ const positionals = [];
58
+ for (let index = 0; index < argv.length; index += 1) {
59
+ const argument = argv[index];
60
+ if (argument === '--json') {
61
+ options.json = true;
62
+ continue;
63
+ }
64
+ if (argument === '--project' || argument.startsWith('--project=')) {
65
+ const value = argument === '--project' ? argv[++index] : argument.slice('--project='.length);
66
+ if (!safeString(value, 4_096) || value.startsWith('-')) fail('CLI_ARGUMENT_INVALID', '--project requires a path');
67
+ options.project = value;
68
+ continue;
69
+ }
70
+ if (argument === '--grok-bin' || argument.startsWith('--grok-bin=')) {
71
+ const value = argument === '--grok-bin' ? argv[++index] : argument.slice('--grok-bin='.length);
72
+ if (!safeString(value, 4_096) || value.startsWith('-')) fail('CLI_ARGUMENT_INVALID', '--grok-bin requires a path');
73
+ options.grokBin = value;
74
+ continue;
75
+ }
76
+ if (argument === '--timeout' || argument.startsWith('--timeout=')) {
77
+ const value = argument === '--timeout' ? argv[++index] : argument.slice('--timeout='.length);
78
+ options.timeout = numericOption(value, DEFAULT_TIMEOUT_MS, MAX_TIMEOUT_MS, '--timeout');
79
+ continue;
80
+ }
81
+ if (maxFiles && (argument === '--max-files' || argument.startsWith('--max-files='))) {
82
+ const value = argument === '--max-files' ? argv[++index] : argument.slice('--max-files='.length);
83
+ options.maxFiles = numericOption(value, DEFAULT_MAX_FILES, MAX_FILES, '--max-files');
84
+ continue;
85
+ }
86
+ if (argument.startsWith('-')) fail('CLI_ARGUMENT_INVALID', `unknown argument ${argument}`);
87
+ positionals.push(argument);
88
+ }
89
+ if (positionals.length !== positional) {
90
+ fail('CLI_ARGUMENT_INVALID', `expected ${positional} positional path${positional === 1 ? '' : 's'}`);
91
+ }
92
+ return { ...options, positionals };
93
+ }
94
+
95
+ export function assertProjectDirectory(input = process.cwd()) {
96
+ const candidate = resolve(input);
97
+ let status;
98
+ try {
99
+ status = lstatSync(candidate);
100
+ } catch (error) {
101
+ fail('GROK_PROJECT_INVALID', `${candidate} (${error?.code ?? 'unreadable'})`);
102
+ }
103
+ if (!status.isDirectory() || status.isSymbolicLink()) fail('GROK_PROJECT_INVALID', candidate);
104
+ try {
105
+ return realpathSync(candidate);
106
+ } catch (error) {
107
+ fail('GROK_PROJECT_INVALID', `${candidate} (${error?.code ?? 'unreadable'})`);
108
+ }
109
+ }
110
+
111
+ export function assertRegularFile(input) {
112
+ const candidate = resolve(input);
113
+ let status;
114
+ try {
115
+ status = lstatSync(candidate);
116
+ } catch (error) {
117
+ fail('GROK_FILE_INVALID', `${candidate} (${error?.code ?? 'unreadable'})`);
118
+ }
119
+ if (!status.isFile() || status.isSymbolicLink()) fail('GROK_FILE_INVALID', candidate);
120
+ try {
121
+ return realpathSync(candidate);
122
+ } catch (error) {
123
+ fail('GROK_FILE_INVALID', `${candidate} (${error?.code ?? 'unreadable'})`);
124
+ }
125
+ }
126
+
127
+ function childEntries(directory) {
128
+ try {
129
+ return readdirSync(directory, { withFileTypes: true })
130
+ .sort((left, right) => left.name < right.name ? -1 : left.name > right.name ? 1 : 0);
131
+ } catch (error) {
132
+ fail('GROK_PROJECT_SCAN_FAILED', `${directory} (${error?.code ?? 'unreadable'})`);
133
+ }
134
+ }
135
+
136
+ export function collectExtensions(project, maxFiles = DEFAULT_MAX_FILES) {
137
+ const counts = new Map();
138
+ let fileCount = 0;
139
+ function visit(directory) {
140
+ for (const entry of childEntries(directory)) {
141
+ if (entry.isSymbolicLink()) continue;
142
+ const child = join(directory, entry.name);
143
+ if (entry.isDirectory()) {
144
+ if (!SKIPPED_DIRECTORIES.has(entry.name)) visit(child);
145
+ continue;
146
+ }
147
+ if (!entry.isFile()) continue;
148
+ fileCount += 1;
149
+ if (fileCount > maxFiles) fail('GROK_PROJECT_TOO_LARGE', `more than ${maxFiles} files`);
150
+ const extension = extname(entry.name).toLowerCase();
151
+ if (extension) counts.set(extension, (counts.get(extension) ?? 0) + 1);
152
+ }
153
+ }
154
+ visit(project);
155
+ return [...counts.entries()]
156
+ .sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)
157
+ .map(([extension, files]) => ({ extension, files }));
158
+ }
159
+
160
+ function boundedOutput(value) {
161
+ return typeof value === 'string' && Buffer.byteLength(value, 'utf8') <= MAX_OUTPUT_BYTES ? value : undefined;
162
+ }
163
+
164
+ function inspectBinary(options, env) {
165
+ return options.grokBin ?? env.GROK_BIN ?? env.LITGROK_GROK_BIN ?? 'grok';
166
+ }
167
+
168
+ function runGrokInspect(project, options = {}) {
169
+ const env = options.env ?? process.env;
170
+ const result = spawnSync(inspectBinary(options, env), ['inspect', '--json'], {
171
+ cwd: project,
172
+ encoding: 'utf8',
173
+ env,
174
+ maxBuffer: MAX_OUTPUT_BYTES,
175
+ timeout: options.timeout ?? DEFAULT_TIMEOUT_MS,
176
+ windowsHide: true,
177
+ });
178
+ const stdout = boundedOutput(result.stdout);
179
+ const stderr = boundedOutput(result.stderr);
180
+ if (result.error || result.status !== 0 || stdout === undefined) {
181
+ return {
182
+ ok: false,
183
+ status: result.status,
184
+ signal: result.signal,
185
+ errorCode: result.error?.code ?? (stdout === undefined ? 'OUTPUT_TOO_LARGE' : 'EXIT_NONZERO'),
186
+ timedOut: result.error?.code === 'ETIMEDOUT',
187
+ stdoutBytes: typeof result.stdout === 'string' ? Buffer.byteLength(result.stdout, 'utf8') : 0,
188
+ stderrBytes: typeof result.stderr === 'string' ? Buffer.byteLength(result.stderr, 'utf8') : 0,
189
+ };
190
+ }
191
+ return {
192
+ ok: true,
193
+ stdout,
194
+ stderr,
195
+ status: result.status,
196
+ signal: result.signal,
197
+ };
198
+ }
199
+
200
+ function parseInspection(result) {
201
+ if (!result.ok) {
202
+ const detail = result.timedOut
203
+ ? 'inspect timed out'
204
+ : `${result.errorCode ?? 'failed'} status=${result.status ?? 'null'} signal=${result.signal ?? 'none'}`;
205
+ fail('GROK_INSPECT_FAILED', detail);
206
+ }
207
+ let value;
208
+ try {
209
+ value = JSON.parse(result.stdout);
210
+ } catch {
211
+ fail('GROK_INSPECT_FAILED', 'inspect returned invalid JSON');
212
+ }
213
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
214
+ fail('GROK_INSPECT_FAILED', 'inspect returned a non-object');
215
+ }
216
+ return value;
217
+ }
218
+
219
+ export function summarizeInspection(value) {
220
+ const hasInventory = Array.isArray(value.lspServers);
221
+ const status = hasInventory
222
+ ? (value.lspServers.length === 0 ? 'unconfigured' : 'opaque')
223
+ : 'not-exposed';
224
+ const summary = {
225
+ status,
226
+ lspServerCount: hasInventory ? value.lspServers.length : null,
227
+ entries: hasInventory
228
+ ? value.lspServers.slice(0, MAX_INSPECTION_ENTRIES).map((entry, index) => ({
229
+ index,
230
+ keys: entry && typeof entry === 'object' && !Array.isArray(entry)
231
+ ? Object.keys(entry).sort().slice(0, MAX_INSPECTION_KEYS)
232
+ : [],
233
+ }))
234
+ : [],
235
+ };
236
+ if (typeof value.grokVersion === 'string' && value.grokVersion.length <= 128) summary.grokVersion = value.grokVersion;
237
+ if (typeof value.projectRoot === 'string' && value.projectRoot.length <= 4_096) summary.projectRoot = value.projectRoot;
238
+ if (value.projectRoot === null) summary.projectRoot = null;
239
+ if (typeof value.projectTrusted === 'boolean') summary.projectTrusted = value.projectTrusted;
240
+ return summary;
241
+ }
242
+
243
+ export function inspectProject(project, options = {}) {
244
+ const result = runGrokInspect(project, options);
245
+ return summarizeInspection(parseInspection(result));
246
+ }
247
+
248
+ export function hostStatusMessage(summary) {
249
+ if (summary.status === 'unconfigured') {
250
+ return 'Grok Build reported no language-server entries; no direct diagnostics transport is exposed; use compiler, linter, or tests.';
251
+ }
252
+ if (summary.status === 'opaque') {
253
+ return 'Grok Build reported opaque host language-server entries, but no documented diagnostic transport is exposed.';
254
+ }
255
+ if (summary.status === 'not-exposed') {
256
+ return 'Grok Build does not expose a language-server inventory; use compiler, linter, or tests.';
257
+ }
258
+ return 'Grok Build language-server inspection failed; no diagnostics were attempted.';
259
+ }
260
+
261
+ export function coverageForExtensions(extensions, summary) {
262
+ return extensions.map(({ extension, files }) => ({
263
+ extension,
264
+ files,
265
+ status: summary.status,
266
+ message: hostStatusMessage(summary),
267
+ }));
268
+ }
269
+
270
+ export function ensureFileInProject(file, project) {
271
+ const suffix = relative(project, file);
272
+ const parentPrefix = `..${sep}`;
273
+ if (!suffix || isAbsolute(suffix) || suffix === '..' || suffix.startsWith(parentPrefix)) {
274
+ fail('GROK_FILE_OUTSIDE_PROJECT', `${file} is not below ${project}`);
275
+ }
276
+ return file;
277
+ }
278
+
279
+ export function cliExitCode(error, fallback = 1) {
280
+ if (error?.code === 'CLI_ARGUMENT_INVALID' || error?.code === 'GROK_PROJECT_INVALID'
281
+ || error?.code === 'GROK_FILE_INVALID' || error?.code === 'GROK_FILE_OUTSIDE_PROJECT') return 2;
282
+ return fallback;
283
+ }
284
+
285
+ export function isDirectInvocation(moduleUrl = import.meta.url) {
286
+ if (!process.argv[1]) return false;
287
+ try {
288
+ return fileURLToPath(moduleUrl) === realpathSync(resolve(process.argv[1]));
289
+ } catch {
290
+ return false;
291
+ }
292
+ }
293
+
294
+ function main() {
295
+ try {
296
+ const options = parseOptions(process.argv.slice(2));
297
+ const project = assertProjectDirectory(options.project ?? process.cwd());
298
+ const summary = inspectProject(project, options);
299
+ const report = { ...summary, message: hostStatusMessage(summary) };
300
+ if (options.json) process.stdout.write(`${JSON.stringify(report)}\n`);
301
+ else process.stdout.write(`PASS status=${summary.status} lspServers=${summary.lspServerCount ?? 'not-exposed'}\n${report.message}\n`);
302
+ process.exitCode = 0;
303
+ } catch (error) {
304
+ process.stderr.write(`${error?.code ?? 'GROK_INSPECT_FAILED'}: ${error?.message ?? String(error)}\n`);
305
+ process.exitCode = cliExitCode(error);
306
+ }
307
+ }
308
+
309
+ if (isDirectInvocation()) main();