@fprad0/skill-master-mcp 0.0.11 → 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 (337) hide show
  1. package/CHANGELOG.md +96 -83
  2. package/README.md +472 -443
  3. package/VERSION.md +9 -9
  4. package/bin/lib/bootstrap-global-core.mjs +34 -0
  5. package/bin/lib/client-config.mjs +293 -268
  6. package/bin/lib/doctor-core.mjs +202 -0
  7. package/bin/lib/menu-core.mjs +1629 -1154
  8. package/bin/lib/operation-result.mjs +59 -0
  9. package/bin/lib/register-clients-core.mjs +247 -0
  10. package/bin/lib/skill-installation.mjs +215 -0
  11. package/bin/lib/update-cli-core.mjs +117 -0
  12. package/bin/skill-master-activation.mjs +163 -163
  13. package/bin/skill-master-bootstrap-global.mjs +61 -49
  14. package/bin/skill-master-configure-private-registry.mjs +3 -3
  15. package/bin/skill-master-doctor.mjs +239 -181
  16. package/bin/skill-master-eval-activation.mjs +32 -32
  17. package/bin/skill-master-install-global-skills.mjs +59 -97
  18. package/bin/skill-master-install-project-skills.mjs +97 -0
  19. package/bin/skill-master-menu.mjs +406 -320
  20. package/bin/skill-master-register-clients.mjs +232 -98
  21. package/bin/skill-master-success-skills.mjs +307 -307
  22. package/bin/skill-master-update.mjs +121 -72
  23. package/bin/skill-master.mjs +3 -3
  24. package/dist/activation.d.ts.map +1 -1
  25. package/dist/activation.js +12 -0
  26. package/dist/activation.js.map +1 -1
  27. package/dist/prompt-router.d.ts.map +1 -1
  28. package/dist/prompt-router.js +19 -0
  29. package/dist/prompt-router.js.map +1 -1
  30. package/dist/recommender.d.ts.map +1 -1
  31. package/dist/recommender.js +4 -1
  32. package/dist/recommender.js.map +1 -1
  33. package/docs/architecture/APRENDIZADO_DE_IMPLEMENTACOES_BEM_SUCEDIDAS.md +125 -125
  34. package/docs/architecture/ARQUITETURA_AUTO_UPDATE.md +9 -9
  35. package/docs/architecture/PLANO_MASTER_ACIONAMENTO_AUTOMATICO_E_APRENDIZADO.md +341 -341
  36. package/docs/architecture/REDE_SEGURA_DE_SKILLS.md +148 -148
  37. package/docs/operations/GUIA_MULTI_COMPUTADOR.md +262 -255
  38. package/docs/operations/GUIA_NPM_PRIVADO.md +294 -294
  39. package/docs/operations/GUIA_NPM_PUBLICO.md +147 -147
  40. package/docs/operations/MENU_VISUAL_EVIDENCE_2026-06-28.md +66 -0
  41. package/docs/operations/assets/menu-frame-compact.html +76 -0
  42. package/docs/operations/assets/menu-frame-compact.png +0 -0
  43. package/docs/operations/assets/menu-frame-large.html +84 -0
  44. package/docs/operations/assets/menu-frame-large.png +0 -0
  45. package/docs/operations/assets/menu-frame-running.html +80 -0
  46. package/docs/operations/assets/menu-frame-running.png +0 -0
  47. package/docs/operations/cross-platform-auth-transfer/ANALISE_COMPATIBILIDADE_MCP_2026-06-28.md +140 -0
  48. package/docs/operations/cross-platform-auth-transfer/README_TRANSFERENCIA.md +85 -0
  49. package/docs/operations/reborn-menu-cyberpunk-transfer/ANALISE_MENU_REBORN_CYBERPUNK_2026-06-28.md +174 -0
  50. package/docs/operations/reborn-menu-cyberpunk-transfer/HANDOFF_IMPLEMENTACAO_REBORN_CYBERPUNK_2026-06-28.md +119 -0
  51. package/docs/operations/reborn-menu-cyberpunk-transfer/ORDEM_DE_EXECUCAO_MENU_REBORN_CYBERPUNK.md +134 -0
  52. package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA.md +84 -0
  53. package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA_REBORN_PACKAGE.md +56 -0
  54. package/docs/operations/reborn-menu-cyberpunk-transfer/references/cyan-hud-frame-sheet.jpg +0 -0
  55. package/docs/operations/reborn-menu-cyberpunk-transfer/references/cyberpunk-pattern-sheet.jpg +0 -0
  56. package/docs/operations/reborn-menu-cyberpunk-transfer/references/fluid-workflow-windows.gif +0 -0
  57. package/docs/operations/token-economy-transfer/ANALISE_AVANCADA_ECONOMIA_TOKENS_2026-06-30.md +141 -0
  58. package/docs/operations/token-economy-transfer/PLANO_DEV_SENIOR_MASTER_TOKEN_ECONOMY_2026-06-30.md +171 -0
  59. package/docs/operations/token-economy-transfer/README_TRANSFERENCIA_TOKEN_ECONOMY.md +31 -0
  60. package/docs/planning/MENU_RUNTIME_CORRECTION_PLAN_2026-06-30.md +551 -0
  61. package/docs/planning/V0_0_9_APROVACAO_CRITICA_MENSAGENS_DE_VENDA.md +85 -85
  62. package/docs/planning/V0_0_9_FONTES_E_CRITERIOS_DE_AUTORIDADE.md +139 -139
  63. package/docs/planning/V0_0_9_MATRIZ_SKILLS_MULTIDISCIPLINARES.md +105 -105
  64. package/docs/planning/V0_0_9_POLITICA_MORAL_CATOLICA_PARA_IA.md +181 -181
  65. package/docs/planning/V0_0_9_PROMPTS_EXECUCAO.md +59 -59
  66. package/docs/planning/V0_0_9_ROADMAP_DISCERNIMENTO_E_CONHECIMENTO_AMPLO.md +181 -181
  67. package/docs/prompt-tasks/PROMPT_TASK_001_BOOTSTRAP_SKILL_MASTER_MCP.md +6 -0
  68. package/docs/prompt-tasks/PROMPT_TASK_002_AUTO_UPDATE_LAUNCHER.md +6 -0
  69. package/docs/prompt-tasks/PROMPT_TASK_003_REMOTE_MANIFEST_AND_RELEASES.md +6 -0
  70. package/docs/prompt-tasks/PROMPT_TASK_004_MULTI_USER_DISTRIBUTION.md +6 -0
  71. package/docs/prompt-tasks/PROMPT_TASK_005_SECURITY_AND_QUALITY_GATE.md +6 -0
  72. package/docs/prompt-tasks/PROMPT_TASK_006_MASTER_ACIONAMENTO_APRENDIZADO.md +83 -0
  73. package/docs/prompt-tasks/PROMPT_TASK_007_PERSONA_ORQUESTRADORA.md +88 -0
  74. package/docs/prompt-tasks/PROMPT_TASK_008_PROMPT_ROUTER_MODOS_ATIVACAO.md +156 -0
  75. package/docs/prompt-tasks/PROMPT_TASK_009_PIPELINE_APRENDIZADO_SUCESSO.md +105 -0
  76. package/docs/prompt-tasks/PROMPT_TASK_010_EVALS_GOVERNANCA_ATIVACAO.md +119 -0
  77. package/docs/prompt-tasks/PROMPT_TASK_011_MENU_NOTIFICACOES_NOTION.md +120 -0
  78. package/docs/prompt-tasks/PROMPT_TASK_012_MENU_CYBERPUNK_PIXEL_FRAME.md +123 -0
  79. package/docs/prompt-tasks/PROMPT_TASK_013_MENU_FLUID_DNA_ANIMATION.md +114 -0
  80. package/docs/prompt-tasks/PROMPT_TASK_014_MENU_FUNCTIONAL_PARITY_QA.md +157 -0
  81. package/docs/prompt-tasks/PROMPT_TASK_015_TRANSFER_RELEASE_HANDOFF.md +127 -0
  82. package/docs/prompt-tasks/PROMPT_TASK_016_CROSS_PLATFORM_MCP_AUTH_REGISTRATION.md +107 -0
  83. package/docs/prompt-tasks/PROMPT_TASK_018_NPM_PUBLISH_2FA_SETUP.md +80 -0
  84. package/docs/prompt-tasks/PROMPT_TASK_019_TOKEN_ECONOMY_GLOBAL_SKILLS.md +56 -0
  85. package/docs/prompt-tasks/PROMPT_TASK_MASTER_EXECUTOR.md +6 -0
  86. package/docs/skill-candidates/v0.0.10/cli-creator/LICENSE.txt +201 -201
  87. package/docs/skill-candidates/v0.0.10/cli-creator/SKILL.md +160 -160
  88. package/docs/skill-candidates/v0.0.10/cli-creator/agents/openai.yaml +4 -4
  89. package/docs/skill-candidates/v0.0.10/cli-creator/references/agent-cli-patterns.md +154 -154
  90. package/docs/skill-candidates/v0.0.10/developer-workstation-ops/SKILL.md +32 -32
  91. package/docs/skill-candidates/v0.0.10/figma/LICENSE.txt +1 -1
  92. package/docs/skill-candidates/v0.0.10/figma/SKILL.md +42 -42
  93. package/docs/skill-candidates/v0.0.10/figma/agents/openai.yaml +14 -14
  94. package/docs/skill-candidates/v0.0.10/figma/assets/figma-small.svg +3 -3
  95. package/docs/skill-candidates/v0.0.10/figma/assets/icon.svg +28 -28
  96. package/docs/skill-candidates/v0.0.10/figma/references/figma-mcp-config.md +35 -35
  97. package/docs/skill-candidates/v0.0.10/figma/references/figma-tools-and-prompts.md +34 -34
  98. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/LICENSE.TXT +1 -1
  99. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/SKILL.md +349 -349
  100. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/agents/openai.yaml +14 -14
  101. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/assets/figma-small.svg +3 -3
  102. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/assets/icon.svg +28 -28
  103. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/references/mapping-checklist.md +7 -7
  104. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/scripts/normalize_node_id.py +25 -25
  105. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/LICENSE.TXT +1 -1
  106. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/SKILL.md +537 -537
  107. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/agents/openai.yaml +14 -14
  108. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/assets/figma-small.svg +3 -3
  109. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/assets/icon.svg +28 -28
  110. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/references/rule-template.md +15 -15
  111. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/scripts/check_agents_md.sh +9 -9
  112. package/docs/skill-candidates/v0.0.10/figma-generate-design/LICENSE.TXT +1 -1
  113. package/docs/skill-candidates/v0.0.10/figma-generate-design/SKILL.md +341 -341
  114. package/docs/skill-candidates/v0.0.10/figma-generate-design/agents/openai.yaml +14 -14
  115. package/docs/skill-candidates/v0.0.10/figma-generate-design/assets/figma-small.svg +3 -3
  116. package/docs/skill-candidates/v0.0.10/figma-generate-design/assets/icon.svg +28 -28
  117. package/docs/skill-candidates/v0.0.10/figma-generate-design/maintainers.yml +1 -1
  118. package/docs/skill-candidates/v0.0.10/figma-generate-library/LICENSE.TXT +1 -1
  119. package/docs/skill-candidates/v0.0.10/figma-generate-library/SKILL.md +314 -314
  120. package/docs/skill-candidates/v0.0.10/figma-generate-library/agents/openai.yaml +14 -14
  121. package/docs/skill-candidates/v0.0.10/figma-generate-library/assets/figma-small.svg +3 -3
  122. package/docs/skill-candidates/v0.0.10/figma-generate-library/assets/icon.svg +28 -28
  123. package/docs/skill-candidates/v0.0.10/figma-generate-library/maintainers.yml +3 -3
  124. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/code-connect-setup.md +260 -260
  125. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/component-creation.md +1014 -1014
  126. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/discovery-phase.md +518 -518
  127. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/documentation-creation.md +834 -834
  128. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/error-recovery.md +540 -540
  129. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/naming-conventions.md +527 -527
  130. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/token-creation.md +962 -962
  131. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/bindVariablesToComponent.js +110 -110
  132. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/cleanupOrphans.js +127 -127
  133. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createComponentWithVariants.js +148 -148
  134. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createDocumentationPage.js +139 -139
  135. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createSemanticTokens.js +108 -108
  136. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createVariableCollection.js +49 -49
  137. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/inspectFileStructure.js +121 -121
  138. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/rehydrateState.js +92 -92
  139. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/validateCreation.js +83 -83
  140. package/docs/skill-candidates/v0.0.10/figma-implement-design/LICENSE.txt +1 -1
  141. package/docs/skill-candidates/v0.0.10/figma-implement-design/SKILL.md +258 -258
  142. package/docs/skill-candidates/v0.0.10/figma-implement-design/agents/openai.yaml +14 -14
  143. package/docs/skill-candidates/v0.0.10/figma-implement-design/assets/figma-small.svg +3 -3
  144. package/docs/skill-candidates/v0.0.10/figma-implement-design/assets/icon.svg +28 -28
  145. package/docs/skill-candidates/v0.0.10/figma-use/LICENSE.TXT +1 -1
  146. package/docs/skill-candidates/v0.0.10/figma-use/SKILL.md +233 -233
  147. package/docs/skill-candidates/v0.0.10/figma-use/agents/openai.yaml +14 -14
  148. package/docs/skill-candidates/v0.0.10/figma-use/assets/figma-small.svg +3 -3
  149. package/docs/skill-candidates/v0.0.10/figma-use/assets/icon.svg +28 -28
  150. package/docs/skill-candidates/v0.0.10/figma-use/maintainers.yml +1 -1
  151. package/docs/skill-candidates/v0.0.10/figma-use/references/api-reference.md +301 -301
  152. package/docs/skill-candidates/v0.0.10/figma-use/references/common-patterns.md +512 -512
  153. package/docs/skill-candidates/v0.0.10/figma-use/references/component-patterns.md +488 -488
  154. package/docs/skill-candidates/v0.0.10/figma-use/references/effect-style-patterns.md +123 -123
  155. package/docs/skill-candidates/v0.0.10/figma-use/references/gotchas.md +599 -599
  156. package/docs/skill-candidates/v0.0.10/figma-use/references/maintainers.yml +12 -12
  157. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-patterns.md +513 -513
  158. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-standalone.d.ts +11293 -11293
  159. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-standalone.index.md +441 -441
  160. package/docs/skill-candidates/v0.0.10/figma-use/references/text-style-patterns.md +203 -203
  161. package/docs/skill-candidates/v0.0.10/figma-use/references/validation-and-recovery.md +109 -109
  162. package/docs/skill-candidates/v0.0.10/figma-use/references/variable-patterns.md +354 -354
  163. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/maintainers.yml +9 -9
  164. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components--creating.md +17 -17
  165. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components--using.md +17 -17
  166. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components.md +50 -50
  167. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-effect-styles.md +52 -52
  168. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-text-styles.md +90 -90
  169. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables--creating.md +13 -13
  170. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables--using.md +13 -13
  171. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables.md +64 -64
  172. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds.md +41 -41
  173. package/docs/skill-candidates/v0.0.10/frontend-design/LICENSE.txt +177 -177
  174. package/docs/skill-candidates/v0.0.10/frontend-design/SKILL.md +55 -55
  175. package/docs/skill-candidates/v0.0.10/frontend-ui-ux-systems/SKILL.md +32 -32
  176. package/docs/skill-candidates/v0.0.10/github/SKILL.md +74 -74
  177. package/docs/skill-candidates/v0.0.10/github/agents/openai.yaml +6 -6
  178. package/docs/skill-candidates/v0.0.10/github/assets/github-small.svg +3 -3
  179. package/docs/skill-candidates/v0.0.10/image-graphic-design-rendering/SKILL.md +28 -28
  180. package/docs/skill-candidates/v0.0.10/language-quality-pt-en-fr-it-ru/SKILL.md +28 -28
  181. package/docs/skill-candidates/v0.0.10/math-physics-reasoning/SKILL.md +28 -28
  182. package/docs/skill-candidates/v0.0.10/mcp-builder/LICENSE.txt +201 -201
  183. package/docs/skill-candidates/v0.0.10/mcp-builder/SKILL.md +236 -236
  184. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/evaluation.md +601 -601
  185. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/mcp_best_practices.md +249 -249
  186. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/node_mcp_server.md +969 -969
  187. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/python_mcp_server.md +718 -718
  188. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/connections.py +151 -151
  189. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/evaluation.py +373 -373
  190. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/example_evaluation.xml +22 -22
  191. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/requirements.txt +2 -2
  192. package/docs/skill-candidates/v0.0.10/mcp-client-readiness/SKILL.md +31 -31
  193. package/docs/skill-candidates/v0.0.10/openai-docs/LICENSE.txt +201 -201
  194. package/docs/skill-candidates/v0.0.10/openai-docs/SKILL.md +161 -161
  195. package/docs/skill-candidates/v0.0.10/openai-docs/agents/openai.yaml +14 -14
  196. package/docs/skill-candidates/v0.0.10/openai-docs/assets/openai-small.svg +3 -3
  197. package/docs/skill-candidates/v0.0.10/openai-docs/references/latest-model.md +37 -37
  198. package/docs/skill-candidates/v0.0.10/openai-docs/references/prompting-guide.md +244 -244
  199. package/docs/skill-candidates/v0.0.10/openai-docs/references/upgrade-guide.md +181 -181
  200. package/docs/skill-candidates/v0.0.10/openai-docs/scripts/fetch-codex-manual.mjs +598 -598
  201. package/docs/skill-candidates/v0.0.10/openai-docs/scripts/resolve-latest-model-info.js +147 -147
  202. package/docs/skill-candidates/v0.0.10/playwright/NOTICE.txt +14 -14
  203. package/docs/skill-candidates/v0.0.10/playwright/SKILL.md +147 -147
  204. package/docs/skill-candidates/v0.0.10/playwright/agents/openai.yaml +6 -6
  205. package/docs/skill-candidates/v0.0.10/playwright/assets/playwright-small.svg +3 -3
  206. package/docs/skill-candidates/v0.0.10/playwright/references/cli.md +116 -116
  207. package/docs/skill-candidates/v0.0.10/playwright/references/workflows.md +95 -95
  208. package/docs/skill-candidates/v0.0.10/playwright/scripts/playwright_cli.sh +25 -25
  209. package/docs/skill-candidates/v0.0.10/polyglot-backend-engineering/SKILL.md +32 -32
  210. package/docs/skill-candidates/v0.0.10/screenshot/LICENSE.txt +201 -201
  211. package/docs/skill-candidates/v0.0.10/screenshot/SKILL.md +267 -267
  212. package/docs/skill-candidates/v0.0.10/screenshot/agents/openai.yaml +6 -6
  213. package/docs/skill-candidates/v0.0.10/screenshot/assets/screenshot-small.svg +5 -5
  214. package/docs/skill-candidates/v0.0.10/screenshot/scripts/ensure_macos_permissions.sh +54 -54
  215. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_display_info.swift +22 -22
  216. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_permissions.swift +40 -40
  217. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_window_info.swift +126 -126
  218. package/docs/skill-candidates/v0.0.10/screenshot/scripts/take_screenshot.ps1 +163 -163
  219. package/docs/skill-candidates/v0.0.10/screenshot/scripts/take_screenshot.py +585 -585
  220. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/SKILL.md +62 -62
  221. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/agents/openai.yaml +4 -4
  222. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/activation-policy.md +77 -77
  223. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/human-approval-policy.md +83 -83
  224. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/persona-dev-senior-master.md +46 -46
  225. package/docs/skill-candidates/v0.0.10/terminal-menu-operations/SKILL.md +30 -30
  226. package/docs/skill-candidates/v0.0.10/terminal-pixel-art-tui/SKILL.md +43 -43
  227. package/docs/skill-candidates/v0.0.10/webapp-testing/LICENSE.txt +201 -201
  228. package/docs/skill-candidates/v0.0.10/webapp-testing/SKILL.md +95 -95
  229. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/console_logging.py +34 -34
  230. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/element_discovery.py +39 -39
  231. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/static_html_automation.py +32 -32
  232. package/docs/skill-candidates/v0.0.10/webapp-testing/scripts/with_server.py +105 -105
  233. package/docs/skill-candidates/v0.0.10/winui-app/LICENSE.txt +201 -201
  234. package/docs/skill-candidates/v0.0.10/winui-app/SKILL.md +94 -94
  235. package/docs/skill-candidates/v0.0.10/winui-app/agents/openai.yaml +5 -5
  236. package/docs/skill-candidates/v0.0.10/winui-app/config.yaml +50 -50
  237. package/docs/skill-candidates/v0.0.10/winui-app/references/_sections.md +96 -96
  238. package/docs/skill-candidates/v0.0.10/winui-app/references/accessibility-input-and-localization.md +51 -51
  239. package/docs/skill-candidates/v0.0.10/winui-app/references/build-run-and-launch-verification.md +72 -72
  240. package/docs/skill-candidates/v0.0.10/winui-app/references/community-toolkit-controls-and-helpers.md +57 -57
  241. package/docs/skill-candidates/v0.0.10/winui-app/references/controls-layout-and-adaptive-ui.md +84 -84
  242. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-environment-audit-and-remediation.md +82 -82
  243. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-setup-and-project-selection.md +67 -67
  244. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-template-first-recovery.md +62 -62
  245. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-winui-app-structure.md +62 -62
  246. package/docs/skill-candidates/v0.0.10/winui-app/references/motion-animations-and-polish.md +45 -45
  247. package/docs/skill-candidates/v0.0.10/winui-app/references/performance-diagnostics-and-responsiveness.md +46 -46
  248. package/docs/skill-candidates/v0.0.10/winui-app/references/sample-source-map.md +37 -37
  249. package/docs/skill-candidates/v0.0.10/winui-app/references/shell-navigation-and-windowing.md +67 -67
  250. package/docs/skill-candidates/v0.0.10/winui-app/references/styling-theming-materials-and-icons.md +71 -71
  251. package/docs/skill-candidates/v0.0.10/winui-app/references/testing-debugging-and-review-checklists.md +77 -77
  252. package/docs/skill-candidates/v0.0.10/winui-app/references/windows-app-sdk-lifecycle-notifications-and-deployment.md +52 -52
  253. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/SKILL.md +398 -398
  254. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/common-patterns.md +330 -330
  255. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/complete-examples.md +871 -871
  256. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/component-patterns.md +501 -501
  257. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/data-fetching.md +766 -766
  258. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/file-organization.md +501 -501
  259. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/loading-and-error-states.md +500 -500
  260. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/performance.md +405 -405
  261. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/routing-guide.md +363 -363
  262. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/styling-guide.md +427 -427
  263. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/typescript-standards.md +417 -417
  264. package/docs/skill-candidates/v0.0.11/git-version-control-ops/SKILL.md +34 -34
  265. package/docs/skill-candidates/v0.0.11/go-engineering/SKILL.md +34 -34
  266. package/docs/skill-candidates/v0.0.11/java-engineering/SKILL.md +34 -34
  267. package/docs/skill-candidates/v0.0.11/javascript-engineering/SKILL.md +34 -34
  268. package/docs/skill-candidates/v0.0.11/json-contract-design/SKILL.md +34 -34
  269. package/docs/skill-candidates/v0.0.11/multi-client-mcp-ops/SKILL.md +36 -36
  270. package/docs/skill-candidates/v0.0.11/nextjs/SKILL.md +745 -745
  271. package/docs/skill-candidates/v0.0.11/nextjs/agents/openai.yaml +3 -3
  272. package/docs/skill-candidates/v0.0.11/nextjs/references/app-router-files.md +94 -94
  273. package/docs/skill-candidates/v0.0.11/python-engineering/SKILL.md +34 -34
  274. package/docs/skill-candidates/v0.0.11/ruby-engineering/SKILL.md +34 -34
  275. package/docs/skill-candidates/v0.0.11/senior-fullstack/SKILL.md +209 -209
  276. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/architecture_patterns.md +103 -103
  277. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/development_workflows.md +103 -103
  278. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/tech_stack_guide.md +103 -103
  279. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/code_quality_analyzer.py +114 -114
  280. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/fullstack_scaffolder.py +114 -114
  281. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/project_scaffolder.py +114 -114
  282. package/docs/skill-candidates/v0.0.11/shadcn/SKILL.md +573 -573
  283. package/docs/skill-candidates/v0.0.11/shadcn/agents/openai.yaml +3 -3
  284. package/docs/skill-candidates/v0.0.11/sql-postgresql-engineering/SKILL.md +34 -34
  285. package/docs/skill-candidates/v0.0.11/terminal-shell-ops/SKILL.md +34 -34
  286. package/docs/skill-candidates/v0.0.11/typescript-expert/SKILL.md +429 -429
  287. package/docs/skill-candidates/v0.0.11/typescript-expert/references/tsconfig-strict.json +91 -91
  288. package/docs/skill-candidates/v0.0.11/typescript-expert/references/typescript-cheatsheet.md +383 -383
  289. package/docs/skill-candidates/v0.0.11/typescript-expert/references/utility-types.ts +335 -335
  290. package/docs/skill-candidates/v0.0.11/typescript-expert/scripts/ts_diagnostic.py +203 -203
  291. package/docs/skill-candidates/v0.0.11/ui-component-primitives/SKILL.md +34 -34
  292. package/docs/skill-candidates/v0.0.11/web-mobile-design-systems/SKILL.md +34 -34
  293. package/docs/skill-candidates/v0.0.11/windows-linux-platform-ops/SKILL.md +34 -34
  294. package/docs/skill-candidates/v0.0.12/context-compression-handoff/SKILL.md +47 -0
  295. package/docs/skill-candidates/v0.0.12/csharp-senior-master-engineering/SKILL.md +32 -0
  296. package/docs/skill-candidates/v0.0.12/css-senior-master-engineering/SKILL.md +32 -0
  297. package/docs/skill-candidates/v0.0.12/go-senior-master-engineering/SKILL.md +32 -0
  298. package/docs/skill-candidates/v0.0.12/html-senior-master-engineering/SKILL.md +32 -0
  299. package/docs/skill-candidates/v0.0.12/javascript-senior-master-engineering/SKILL.md +32 -0
  300. package/docs/skill-candidates/v0.0.12/json-senior-master-engineering/SKILL.md +32 -0
  301. package/docs/skill-candidates/v0.0.12/prompt-budget-gate/SKILL.md +46 -0
  302. package/docs/skill-candidates/v0.0.12/python-senior-master-engineering/SKILL.md +32 -0
  303. package/docs/skill-candidates/v0.0.12/react-senior-master-engineering/SKILL.md +32 -0
  304. package/docs/skill-candidates/v0.0.12/ruby-senior-master-engineering/SKILL.md +32 -0
  305. package/docs/skill-candidates/v0.0.12/senior-master-code-optimizer/SKILL.md +48 -0
  306. package/docs/skill-candidates/v0.0.12/sql-senior-master-engineering/SKILL.md +31 -0
  307. package/docs/skill-candidates/v0.0.12/token-economy-orchestrator/SKILL.md +38 -0
  308. package/docs/skill-candidates/v0.0.12/typescript-senior-master-engineering/SKILL.md +35 -0
  309. package/docs/skill-candidates/v0.0.9/ai-ethics-human-dignity/SKILL.md +32 -32
  310. package/docs/skill-candidates/v0.0.9/broad-domain-router/SKILL.md +41 -41
  311. package/docs/skill-candidates/v0.0.9/catholic-moral-discernment/SKILL.md +31 -31
  312. package/docs/skill-candidates/v0.0.9/engineering-systems-master/SKILL.md +31 -31
  313. package/docs/skill-candidates/v0.0.9/language-quality-pt-en-fr/SKILL.md +28 -28
  314. package/docs/skill-candidates/v0.0.9/math-science-reasoning/SKILL.md +29 -29
  315. package/docs/skill-candidates/v0.0.9/philosophy-sociology-discernment/SKILL.md +28 -28
  316. package/docs/skill-candidates/v0.0.9/professional-boundary-triage/SKILL.md +40 -40
  317. package/docs/skill-candidates/v0.0.9/release-ethics-gate/SKILL.md +32 -32
  318. package/docs/skill-candidates/v0.0.9/source-authority-reviewer/SKILL.md +31 -31
  319. package/examples/client-configs/claude-code.commands.md +21 -17
  320. package/examples/client-configs/claude-code.project.mcp.json +18 -18
  321. package/examples/client-configs/claude-desktop.macos.json +18 -18
  322. package/examples/client-configs/claude-desktop.windows.json +20 -20
  323. package/examples/client-configs/codex.windows.toml +11 -11
  324. package/examples/client-configs/gemini-code-assist.intellij.mcp.json +18 -18
  325. package/examples/client-configs/gemini.linux.settings.json +21 -21
  326. package/examples/client-configs/gemini.windows.settings.json +23 -23
  327. package/examples/client-configs/generic-stdio.json +16 -16
  328. package/manifests/channels/beta.json +26 -26
  329. package/manifests/channels/stable.json +27 -27
  330. package/network/approved-skills.json +54 -54
  331. package/network/unapproved-skill-candidates.json +110 -110
  332. package/package.json +87 -78
  333. package/scripts/configure-private-registry.mjs +208 -208
  334. package/scripts/lib/private-registry.mjs +97 -97
  335. package/scripts/render-menu-evidence.mjs +130 -0
  336. package/scripts/verify-menu-actions.mjs +117 -115
  337. package/sources.json +11 -11
@@ -1,335 +1,335 @@
1
- /**
2
- * TypeScript Utility Types Library
3
- *
4
- * A collection of commonly used utility types for TypeScript projects.
5
- * Copy and use as needed in your projects.
6
- */
7
-
8
- // =============================================================================
9
- // BRANDED TYPES
10
- // =============================================================================
11
-
12
- /**
13
- * Create nominal/branded types to prevent primitive obsession.
14
- *
15
- * @example
16
- * type UserId = Brand<string, 'UserId'>
17
- * type OrderId = Brand<string, 'OrderId'>
18
- */
19
- export type Brand<K, T> = K & { readonly __brand: T }
20
-
21
- // Branded type constructors
22
- export type UserId = Brand<string, 'UserId'>
23
- export type Email = Brand<string, 'Email'>
24
- export type UUID = Brand<string, 'UUID'>
25
- export type Timestamp = Brand<number, 'Timestamp'>
26
- export type PositiveNumber = Brand<number, 'PositiveNumber'>
27
-
28
- // =============================================================================
29
- // RESULT TYPE (Error Handling)
30
- // =============================================================================
31
-
32
- /**
33
- * Type-safe error handling without exceptions.
34
- */
35
- export type Result<T, E = Error> =
36
- | { success: true; data: T }
37
- | { success: false; error: E }
38
-
39
- export const ok = <T>(data: T): Result<T, never> => ({
40
- success: true,
41
- data
42
- })
43
-
44
- export const err = <E>(error: E): Result<never, E> => ({
45
- success: false,
46
- error
47
- })
48
-
49
- // =============================================================================
50
- // OPTION TYPE (Nullable Handling)
51
- // =============================================================================
52
-
53
- /**
54
- * Explicit optional value handling.
55
- */
56
- export type Option<T> = Some<T> | None
57
-
58
- export type Some<T> = { type: 'some'; value: T }
59
- export type None = { type: 'none' }
60
-
61
- export const some = <T>(value: T): Some<T> => ({ type: 'some', value })
62
- export const none: None = { type: 'none' }
63
-
64
- // =============================================================================
65
- // DEEP UTILITIES
66
- // =============================================================================
67
-
68
- /**
69
- * Make all properties deeply readonly.
70
- */
71
- export type DeepReadonly<T> = T extends (...args: any[]) => any
72
- ? T
73
- : T extends object
74
- ? { readonly [K in keyof T]: DeepReadonly<T[K]> }
75
- : T
76
-
77
- /**
78
- * Make all properties deeply optional.
79
- */
80
- export type DeepPartial<T> = T extends object
81
- ? { [K in keyof T]?: DeepPartial<T[K]> }
82
- : T
83
-
84
- /**
85
- * Make all properties deeply required.
86
- */
87
- export type DeepRequired<T> = T extends object
88
- ? { [K in keyof T]-?: DeepRequired<T[K]> }
89
- : T
90
-
91
- /**
92
- * Make all properties deeply mutable (remove readonly).
93
- */
94
- export type DeepMutable<T> = T extends object
95
- ? { -readonly [K in keyof T]: DeepMutable<T[K]> }
96
- : T
97
-
98
- // =============================================================================
99
- // OBJECT UTILITIES
100
- // =============================================================================
101
-
102
- /**
103
- * Get keys of object where value matches type.
104
- */
105
- export type KeysOfType<T, V> = {
106
- [K in keyof T]: T[K] extends V ? K : never
107
- }[keyof T]
108
-
109
- /**
110
- * Pick properties by value type.
111
- */
112
- export type PickByType<T, V> = Pick<T, KeysOfType<T, V>>
113
-
114
- /**
115
- * Omit properties by value type.
116
- */
117
- export type OmitByType<T, V> = Omit<T, KeysOfType<T, V>>
118
-
119
- /**
120
- * Make specific keys optional.
121
- */
122
- export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>
123
-
124
- /**
125
- * Make specific keys required.
126
- */
127
- export type RequiredBy<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>
128
-
129
- /**
130
- * Make specific keys readonly.
131
- */
132
- export type ReadonlyBy<T, K extends keyof T> = Omit<T, K> & Readonly<Pick<T, K>>
133
-
134
- /**
135
- * Merge two types (second overrides first).
136
- */
137
- export type Merge<T, U> = Omit<T, keyof U> & U
138
-
139
- // =============================================================================
140
- // ARRAY UTILITIES
141
- // =============================================================================
142
-
143
- /**
144
- * Get element type from array.
145
- */
146
- export type ElementOf<T> = T extends (infer E)[] ? E : never
147
-
148
- /**
149
- * Tuple of specific length.
150
- */
151
- export type Tuple<T, N extends number> = N extends N
152
- ? number extends N
153
- ? T[]
154
- : _TupleOf<T, N, []>
155
- : never
156
-
157
- type _TupleOf<T, N extends number, R extends unknown[]> = R['length'] extends N
158
- ? R
159
- : _TupleOf<T, N, [T, ...R]>
160
-
161
- /**
162
- * Non-empty array.
163
- */
164
- export type NonEmptyArray<T> = [T, ...T[]]
165
-
166
- /**
167
- * At least N elements.
168
- */
169
- export type AtLeast<T, N extends number> = [...Tuple<T, N>, ...T[]]
170
-
171
- // =============================================================================
172
- // FUNCTION UTILITIES
173
- // =============================================================================
174
-
175
- /**
176
- * Get function arguments as tuple.
177
- */
178
- export type Arguments<T> = T extends (...args: infer A) => any ? A : never
179
-
180
- /**
181
- * Get first argument of function.
182
- */
183
- export type FirstArgument<T> = T extends (first: infer F, ...args: any[]) => any
184
- ? F
185
- : never
186
-
187
- /**
188
- * Async version of function.
189
- */
190
- export type AsyncFunction<T extends (...args: any[]) => any> = (
191
- ...args: Parameters<T>
192
- ) => Promise<Awaited<ReturnType<T>>>
193
-
194
- /**
195
- * Promisify return type.
196
- */
197
- export type Promisify<T> = T extends (...args: infer A) => infer R
198
- ? (...args: A) => Promise<Awaited<R>>
199
- : never
200
-
201
- // =============================================================================
202
- // STRING UTILITIES
203
- // =============================================================================
204
-
205
- /**
206
- * Split string by delimiter.
207
- */
208
- export type Split<S extends string, D extends string> =
209
- S extends `${infer T}${D}${infer U}`
210
- ? [T, ...Split<U, D>]
211
- : [S]
212
-
213
- /**
214
- * Join tuple to string.
215
- */
216
- export type Join<T extends string[], D extends string> =
217
- T extends []
218
- ? ''
219
- : T extends [infer F extends string]
220
- ? F
221
- : T extends [infer F extends string, ...infer R extends string[]]
222
- ? `${F}${D}${Join<R, D>}`
223
- : never
224
-
225
- /**
226
- * Path to nested object.
227
- */
228
- export type PathOf<T, K extends keyof T = keyof T> = K extends string
229
- ? T[K] extends object
230
- ? K | `${K}.${PathOf<T[K]>}`
231
- : K
232
- : never
233
-
234
- // =============================================================================
235
- // UNION UTILITIES
236
- // =============================================================================
237
-
238
- /**
239
- * Last element of union.
240
- */
241
- export type UnionLast<T> = UnionToIntersection<
242
- T extends any ? () => T : never
243
- > extends () => infer R
244
- ? R
245
- : never
246
-
247
- /**
248
- * Union to intersection.
249
- */
250
- export type UnionToIntersection<U> = (
251
- U extends any ? (k: U) => void : never
252
- ) extends (k: infer I) => void
253
- ? I
254
- : never
255
-
256
- /**
257
- * Union to tuple.
258
- */
259
- export type UnionToTuple<T, L = UnionLast<T>> = [T] extends [never]
260
- ? []
261
- : [...UnionToTuple<Exclude<T, L>>, L]
262
-
263
- // =============================================================================
264
- // VALIDATION UTILITIES
265
- // =============================================================================
266
-
267
- /**
268
- * Assert type at compile time.
269
- */
270
- export type AssertEqual<T, U> =
271
- (<V>() => V extends T ? 1 : 2) extends (<V>() => V extends U ? 1 : 2)
272
- ? true
273
- : false
274
-
275
- /**
276
- * Ensure type is not never.
277
- */
278
- export type IsNever<T> = [T] extends [never] ? true : false
279
-
280
- /**
281
- * Ensure type is any.
282
- */
283
- export type IsAny<T> = 0 extends 1 & T ? true : false
284
-
285
- /**
286
- * Ensure type is unknown.
287
- */
288
- export type IsUnknown<T> = IsAny<T> extends true
289
- ? false
290
- : unknown extends T
291
- ? true
292
- : false
293
-
294
- // =============================================================================
295
- // JSON UTILITIES
296
- // =============================================================================
297
-
298
- /**
299
- * JSON-safe types.
300
- */
301
- export type JsonPrimitive = string | number | boolean | null
302
- export type JsonArray = JsonValue[]
303
- export type JsonObject = { [key: string]: JsonValue }
304
- export type JsonValue = JsonPrimitive | JsonArray | JsonObject
305
-
306
- /**
307
- * Make type JSON-serializable.
308
- */
309
- export type Jsonify<T> = T extends JsonPrimitive
310
- ? T
311
- : T extends undefined | ((...args: any[]) => any) | symbol
312
- ? never
313
- : T extends { toJSON(): infer R }
314
- ? R
315
- : T extends object
316
- ? { [K in keyof T]: Jsonify<T[K]> }
317
- : never
318
-
319
- // =============================================================================
320
- // EXHAUSTIVE CHECK
321
- // =============================================================================
322
-
323
- /**
324
- * Ensure all cases are handled in switch/if.
325
- */
326
- export function assertNever(value: never, message?: string): never {
327
- throw new Error(message ?? `Unexpected value: ${value}`)
328
- }
329
-
330
- /**
331
- * Exhaustive check without throwing.
332
- */
333
- export function exhaustiveCheck(_value: never): void {
334
- // This function should never be called
335
- }
1
+ /**
2
+ * TypeScript Utility Types Library
3
+ *
4
+ * A collection of commonly used utility types for TypeScript projects.
5
+ * Copy and use as needed in your projects.
6
+ */
7
+
8
+ // =============================================================================
9
+ // BRANDED TYPES
10
+ // =============================================================================
11
+
12
+ /**
13
+ * Create nominal/branded types to prevent primitive obsession.
14
+ *
15
+ * @example
16
+ * type UserId = Brand<string, 'UserId'>
17
+ * type OrderId = Brand<string, 'OrderId'>
18
+ */
19
+ export type Brand<K, T> = K & { readonly __brand: T }
20
+
21
+ // Branded type constructors
22
+ export type UserId = Brand<string, 'UserId'>
23
+ export type Email = Brand<string, 'Email'>
24
+ export type UUID = Brand<string, 'UUID'>
25
+ export type Timestamp = Brand<number, 'Timestamp'>
26
+ export type PositiveNumber = Brand<number, 'PositiveNumber'>
27
+
28
+ // =============================================================================
29
+ // RESULT TYPE (Error Handling)
30
+ // =============================================================================
31
+
32
+ /**
33
+ * Type-safe error handling without exceptions.
34
+ */
35
+ export type Result<T, E = Error> =
36
+ | { success: true; data: T }
37
+ | { success: false; error: E }
38
+
39
+ export const ok = <T>(data: T): Result<T, never> => ({
40
+ success: true,
41
+ data
42
+ })
43
+
44
+ export const err = <E>(error: E): Result<never, E> => ({
45
+ success: false,
46
+ error
47
+ })
48
+
49
+ // =============================================================================
50
+ // OPTION TYPE (Nullable Handling)
51
+ // =============================================================================
52
+
53
+ /**
54
+ * Explicit optional value handling.
55
+ */
56
+ export type Option<T> = Some<T> | None
57
+
58
+ export type Some<T> = { type: 'some'; value: T }
59
+ export type None = { type: 'none' }
60
+
61
+ export const some = <T>(value: T): Some<T> => ({ type: 'some', value })
62
+ export const none: None = { type: 'none' }
63
+
64
+ // =============================================================================
65
+ // DEEP UTILITIES
66
+ // =============================================================================
67
+
68
+ /**
69
+ * Make all properties deeply readonly.
70
+ */
71
+ export type DeepReadonly<T> = T extends (...args: any[]) => any
72
+ ? T
73
+ : T extends object
74
+ ? { readonly [K in keyof T]: DeepReadonly<T[K]> }
75
+ : T
76
+
77
+ /**
78
+ * Make all properties deeply optional.
79
+ */
80
+ export type DeepPartial<T> = T extends object
81
+ ? { [K in keyof T]?: DeepPartial<T[K]> }
82
+ : T
83
+
84
+ /**
85
+ * Make all properties deeply required.
86
+ */
87
+ export type DeepRequired<T> = T extends object
88
+ ? { [K in keyof T]-?: DeepRequired<T[K]> }
89
+ : T
90
+
91
+ /**
92
+ * Make all properties deeply mutable (remove readonly).
93
+ */
94
+ export type DeepMutable<T> = T extends object
95
+ ? { -readonly [K in keyof T]: DeepMutable<T[K]> }
96
+ : T
97
+
98
+ // =============================================================================
99
+ // OBJECT UTILITIES
100
+ // =============================================================================
101
+
102
+ /**
103
+ * Get keys of object where value matches type.
104
+ */
105
+ export type KeysOfType<T, V> = {
106
+ [K in keyof T]: T[K] extends V ? K : never
107
+ }[keyof T]
108
+
109
+ /**
110
+ * Pick properties by value type.
111
+ */
112
+ export type PickByType<T, V> = Pick<T, KeysOfType<T, V>>
113
+
114
+ /**
115
+ * Omit properties by value type.
116
+ */
117
+ export type OmitByType<T, V> = Omit<T, KeysOfType<T, V>>
118
+
119
+ /**
120
+ * Make specific keys optional.
121
+ */
122
+ export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>
123
+
124
+ /**
125
+ * Make specific keys required.
126
+ */
127
+ export type RequiredBy<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>
128
+
129
+ /**
130
+ * Make specific keys readonly.
131
+ */
132
+ export type ReadonlyBy<T, K extends keyof T> = Omit<T, K> & Readonly<Pick<T, K>>
133
+
134
+ /**
135
+ * Merge two types (second overrides first).
136
+ */
137
+ export type Merge<T, U> = Omit<T, keyof U> & U
138
+
139
+ // =============================================================================
140
+ // ARRAY UTILITIES
141
+ // =============================================================================
142
+
143
+ /**
144
+ * Get element type from array.
145
+ */
146
+ export type ElementOf<T> = T extends (infer E)[] ? E : never
147
+
148
+ /**
149
+ * Tuple of specific length.
150
+ */
151
+ export type Tuple<T, N extends number> = N extends N
152
+ ? number extends N
153
+ ? T[]
154
+ : _TupleOf<T, N, []>
155
+ : never
156
+
157
+ type _TupleOf<T, N extends number, R extends unknown[]> = R['length'] extends N
158
+ ? R
159
+ : _TupleOf<T, N, [T, ...R]>
160
+
161
+ /**
162
+ * Non-empty array.
163
+ */
164
+ export type NonEmptyArray<T> = [T, ...T[]]
165
+
166
+ /**
167
+ * At least N elements.
168
+ */
169
+ export type AtLeast<T, N extends number> = [...Tuple<T, N>, ...T[]]
170
+
171
+ // =============================================================================
172
+ // FUNCTION UTILITIES
173
+ // =============================================================================
174
+
175
+ /**
176
+ * Get function arguments as tuple.
177
+ */
178
+ export type Arguments<T> = T extends (...args: infer A) => any ? A : never
179
+
180
+ /**
181
+ * Get first argument of function.
182
+ */
183
+ export type FirstArgument<T> = T extends (first: infer F, ...args: any[]) => any
184
+ ? F
185
+ : never
186
+
187
+ /**
188
+ * Async version of function.
189
+ */
190
+ export type AsyncFunction<T extends (...args: any[]) => any> = (
191
+ ...args: Parameters<T>
192
+ ) => Promise<Awaited<ReturnType<T>>>
193
+
194
+ /**
195
+ * Promisify return type.
196
+ */
197
+ export type Promisify<T> = T extends (...args: infer A) => infer R
198
+ ? (...args: A) => Promise<Awaited<R>>
199
+ : never
200
+
201
+ // =============================================================================
202
+ // STRING UTILITIES
203
+ // =============================================================================
204
+
205
+ /**
206
+ * Split string by delimiter.
207
+ */
208
+ export type Split<S extends string, D extends string> =
209
+ S extends `${infer T}${D}${infer U}`
210
+ ? [T, ...Split<U, D>]
211
+ : [S]
212
+
213
+ /**
214
+ * Join tuple to string.
215
+ */
216
+ export type Join<T extends string[], D extends string> =
217
+ T extends []
218
+ ? ''
219
+ : T extends [infer F extends string]
220
+ ? F
221
+ : T extends [infer F extends string, ...infer R extends string[]]
222
+ ? `${F}${D}${Join<R, D>}`
223
+ : never
224
+
225
+ /**
226
+ * Path to nested object.
227
+ */
228
+ export type PathOf<T, K extends keyof T = keyof T> = K extends string
229
+ ? T[K] extends object
230
+ ? K | `${K}.${PathOf<T[K]>}`
231
+ : K
232
+ : never
233
+
234
+ // =============================================================================
235
+ // UNION UTILITIES
236
+ // =============================================================================
237
+
238
+ /**
239
+ * Last element of union.
240
+ */
241
+ export type UnionLast<T> = UnionToIntersection<
242
+ T extends any ? () => T : never
243
+ > extends () => infer R
244
+ ? R
245
+ : never
246
+
247
+ /**
248
+ * Union to intersection.
249
+ */
250
+ export type UnionToIntersection<U> = (
251
+ U extends any ? (k: U) => void : never
252
+ ) extends (k: infer I) => void
253
+ ? I
254
+ : never
255
+
256
+ /**
257
+ * Union to tuple.
258
+ */
259
+ export type UnionToTuple<T, L = UnionLast<T>> = [T] extends [never]
260
+ ? []
261
+ : [...UnionToTuple<Exclude<T, L>>, L]
262
+
263
+ // =============================================================================
264
+ // VALIDATION UTILITIES
265
+ // =============================================================================
266
+
267
+ /**
268
+ * Assert type at compile time.
269
+ */
270
+ export type AssertEqual<T, U> =
271
+ (<V>() => V extends T ? 1 : 2) extends (<V>() => V extends U ? 1 : 2)
272
+ ? true
273
+ : false
274
+
275
+ /**
276
+ * Ensure type is not never.
277
+ */
278
+ export type IsNever<T> = [T] extends [never] ? true : false
279
+
280
+ /**
281
+ * Ensure type is any.
282
+ */
283
+ export type IsAny<T> = 0 extends 1 & T ? true : false
284
+
285
+ /**
286
+ * Ensure type is unknown.
287
+ */
288
+ export type IsUnknown<T> = IsAny<T> extends true
289
+ ? false
290
+ : unknown extends T
291
+ ? true
292
+ : false
293
+
294
+ // =============================================================================
295
+ // JSON UTILITIES
296
+ // =============================================================================
297
+
298
+ /**
299
+ * JSON-safe types.
300
+ */
301
+ export type JsonPrimitive = string | number | boolean | null
302
+ export type JsonArray = JsonValue[]
303
+ export type JsonObject = { [key: string]: JsonValue }
304
+ export type JsonValue = JsonPrimitive | JsonArray | JsonObject
305
+
306
+ /**
307
+ * Make type JSON-serializable.
308
+ */
309
+ export type Jsonify<T> = T extends JsonPrimitive
310
+ ? T
311
+ : T extends undefined | ((...args: any[]) => any) | symbol
312
+ ? never
313
+ : T extends { toJSON(): infer R }
314
+ ? R
315
+ : T extends object
316
+ ? { [K in keyof T]: Jsonify<T[K]> }
317
+ : never
318
+
319
+ // =============================================================================
320
+ // EXHAUSTIVE CHECK
321
+ // =============================================================================
322
+
323
+ /**
324
+ * Ensure all cases are handled in switch/if.
325
+ */
326
+ export function assertNever(value: never, message?: string): never {
327
+ throw new Error(message ?? `Unexpected value: ${value}`)
328
+ }
329
+
330
+ /**
331
+ * Exhaustive check without throwing.
332
+ */
333
+ export function exhaustiveCheck(_value: never): void {
334
+ // This function should never be called
335
+ }