workspace-architect 1.4.1 → 1.5.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 (355) hide show
  1. package/assets-manifest.json +3392 -0
  2. package/bin/cli.js +134 -72
  3. package/package.json +10 -2
  4. package/.env.example +0 -1
  5. package/.gitattributes +0 -1
  6. package/.github/workflows/manual-publish.yml +0 -36
  7. package/.github/workflows/sync-and-publish.yml +0 -58
  8. package/.release-it.json +0 -20
  9. package/CHANGELOG.md +0 -53
  10. package/assets/chatmodes/4.1-Beast.chatmode.md +0 -152
  11. package/assets/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -337
  12. package/assets/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -644
  13. package/assets/chatmodes/accessibility.chatmode.md +0 -298
  14. package/assets/chatmodes/address-comments.chatmode.md +0 -59
  15. package/assets/chatmodes/aem-frontend-specialist.chatmode.md +0 -385
  16. package/assets/chatmodes/api-architect.chatmode.md +0 -40
  17. package/assets/chatmodes/atlassian-requirements-to-jira.chatmode.md +0 -444
  18. package/assets/chatmodes/azure-logic-apps-expert.chatmode.md +0 -100
  19. package/assets/chatmodes/azure-principal-architect.chatmode.md +0 -58
  20. package/assets/chatmodes/azure-saas-architect.chatmode.md +0 -118
  21. package/assets/chatmodes/azure-verified-modules-bicep.chatmode.md +0 -44
  22. package/assets/chatmodes/azure-verified-modules-terraform.chatmode.md +0 -58
  23. package/assets/chatmodes/bicep-implement.chatmode.md +0 -40
  24. package/assets/chatmodes/bicep-plan.chatmode.md +0 -112
  25. package/assets/chatmodes/blueprint-mode-codex.chatmode.md +0 -110
  26. package/assets/chatmodes/blueprint-mode.chatmode.md +0 -171
  27. package/assets/chatmodes/clojure-interactive-programming.chatmode.md +0 -174
  28. package/assets/chatmodes/code-tour.chatmode.md +0 -205
  29. package/assets/chatmodes/critical-thinking.chatmode.md +0 -23
  30. package/assets/chatmodes/csharp-dotnet-janitor.chatmode.md +0 -83
  31. package/assets/chatmodes/csharp-mcp-expert.chatmode.md +0 -69
  32. package/assets/chatmodes/debug.chatmode.md +0 -79
  33. package/assets/chatmodes/declarative-agents-architect.chatmode.md +0 -76
  34. package/assets/chatmodes/demonstrate-understanding.chatmode.md +0 -60
  35. package/assets/chatmodes/dotnet-upgrade.chatmode.md +0 -222
  36. package/assets/chatmodes/drupal-expert.chatmode.md +0 -687
  37. package/assets/chatmodes/electron-angular-native.chatmode.md +0 -285
  38. package/assets/chatmodes/expert-cpp-software-engineer.chatmode.md +0 -27
  39. package/assets/chatmodes/expert-dotnet-software-engineer.chatmode.md +0 -22
  40. package/assets/chatmodes/expert-nextjs-developer.chatmode.md +0 -477
  41. package/assets/chatmodes/expert-react-frontend-engineer.chatmode.md +0 -738
  42. package/assets/chatmodes/gilfoyle.chatmode.md +0 -66
  43. package/assets/chatmodes/go-mcp-expert.chatmode.md +0 -122
  44. package/assets/chatmodes/gpt-5-beast-mode.chatmode.md +0 -109
  45. package/assets/chatmodes/hlbpa.chatmode.md +0 -232
  46. package/assets/chatmodes/implementation-plan.chatmode.md +0 -159
  47. package/assets/chatmodes/janitor.chatmode.md +0 -89
  48. package/assets/chatmodes/java-mcp-expert.chatmode.md +0 -325
  49. package/assets/chatmodes/kotlin-mcp-expert.chatmode.md +0 -181
  50. package/assets/chatmodes/kusto-assistant.chatmode.md +0 -143
  51. package/assets/chatmodes/laravel-expert-agent.chatmode.md +0 -628
  52. package/assets/chatmodes/mentor.chatmode.md +0 -32
  53. package/assets/chatmodes/meta-agentic-project-scaffold.chatmode.md +0 -15
  54. package/assets/chatmodes/microsoft-agent-framework-dotnet.chatmode.md +0 -62
  55. package/assets/chatmodes/microsoft-agent-framework-python.chatmode.md +0 -62
  56. package/assets/chatmodes/microsoft-study-mode.chatmode.md +0 -32
  57. package/assets/chatmodes/microsoft_learn_contributor.chatmode.md +0 -388
  58. package/assets/chatmodes/ms-sql-dba.chatmode.md +0 -25
  59. package/assets/chatmodes/php-mcp-expert.chatmode.md +0 -498
  60. package/assets/chatmodes/pimcore-expert.chatmode.md +0 -869
  61. package/assets/chatmodes/plan.chatmode.md +0 -114
  62. package/assets/chatmodes/planner.chatmode.md +0 -14
  63. package/assets/chatmodes/playwright-tester.chatmode.md +0 -13
  64. package/assets/chatmodes/postgresql-dba.chatmode.md +0 -17
  65. package/assets/chatmodes/power-bi-data-modeling-expert.chatmode.md +0 -319
  66. package/assets/chatmodes/power-bi-dax-expert.chatmode.md +0 -334
  67. package/assets/chatmodes/power-bi-performance-expert.chatmode.md +0 -533
  68. package/assets/chatmodes/power-bi-visualization-expert.chatmode.md +0 -549
  69. package/assets/chatmodes/power-platform-expert.chatmode.md +0 -116
  70. package/assets/chatmodes/power-platform-mcp-integration-expert.chatmode.md +0 -149
  71. package/assets/chatmodes/prd.chatmode.md +0 -201
  72. package/assets/chatmodes/principal-software-engineer.chatmode.md +0 -41
  73. package/assets/chatmodes/prompt-builder.chatmode.md +0 -352
  74. package/assets/chatmodes/prompt-engineer.chatmode.md +0 -72
  75. package/assets/chatmodes/python-mcp-expert.chatmode.md +0 -99
  76. package/assets/chatmodes/refine-issue.chatmode.md +0 -34
  77. package/assets/chatmodes/research-technical-spike.chatmode.md +0 -169
  78. package/assets/chatmodes/ruby-mcp-expert.chatmode.md +0 -346
  79. package/assets/chatmodes/rust-gpt-4.1-beast-mode.chatmode.md +0 -197
  80. package/assets/chatmodes/rust-mcp-expert.chatmode.md +0 -465
  81. package/assets/chatmodes/search-ai-optimization-expert.chatmode.md +0 -227
  82. package/assets/chatmodes/semantic-kernel-dotnet.chatmode.md +0 -31
  83. package/assets/chatmodes/semantic-kernel-python.chatmode.md +0 -28
  84. package/assets/chatmodes/shopify-expert.chatmode.md +0 -681
  85. package/assets/chatmodes/simple-app-idea-generator.chatmode.md +0 -134
  86. package/assets/chatmodes/software-engineer-agent-v1.chatmode.md +0 -164
  87. package/assets/chatmodes/specification.chatmode.md +0 -127
  88. package/assets/chatmodes/swift-mcp-expert.chatmode.md +0 -240
  89. package/assets/chatmodes/task-planner.chatmode.md +0 -374
  90. package/assets/chatmodes/task-researcher.chatmode.md +0 -254
  91. package/assets/chatmodes/tdd-green.chatmode.md +0 -59
  92. package/assets/chatmodes/tdd-red.chatmode.md +0 -59
  93. package/assets/chatmodes/tdd-refactor.chatmode.md +0 -84
  94. package/assets/chatmodes/tech-debt-remediation-plan.chatmode.md +0 -49
  95. package/assets/chatmodes/terraform-azure-implement.chatmode.md +0 -104
  96. package/assets/chatmodes/terraform-azure-planning.chatmode.md +0 -157
  97. package/assets/chatmodes/typescript-mcp-expert.chatmode.md +0 -91
  98. package/assets/chatmodes/voidbeast-gpt41enhanced.chatmode.md +0 -230
  99. package/assets/chatmodes/wg-code-alchemist.chatmode.md +0 -61
  100. package/assets/chatmodes/wg-code-sentinel.chatmode.md +0 -55
  101. package/assets/collections/ai-prompt-engineering.json +0 -95
  102. package/assets/collections/angular-development.json +0 -19
  103. package/assets/collections/azure-cloud-architect.json +0 -150
  104. package/assets/collections/cpp-development.json +0 -4
  105. package/assets/collections/database-administration.json +0 -13
  106. package/assets/collections/devops-sre.json +0 -33
  107. package/assets/collections/dotnet-development.json +0 -114
  108. package/assets/collections/general-productivity.json +0 -4
  109. package/assets/collections/go-development.json +0 -42
  110. package/assets/collections/java-spring-developer.json +0 -111
  111. package/assets/collections/learning-mentoring.json +0 -9
  112. package/assets/collections/legacy-migration.json +0 -6
  113. package/assets/collections/mcp-specialist.json +0 -92
  114. package/assets/collections/mobile-development.json +0 -12
  115. package/assets/collections/php-cms-development.json +0 -68
  116. package/assets/collections/power-platform-specialist.json +0 -128
  117. package/assets/collections/project-management.json +0 -50
  118. package/assets/collections/python-development.json +0 -66
  119. package/assets/collections/quality-assurance.json +0 -56
  120. package/assets/collections/ruby-development.json +0 -43
  121. package/assets/collections/rust-development.json +0 -63
  122. package/assets/collections/security-specialist.json +0 -65
  123. package/assets/collections/software-architect.json +0 -85
  124. package/assets/collections/technical-writing.json +0 -23
  125. package/assets/collections/web-frontend-development.json +0 -52
  126. package/assets/instructions/a11y.instructions.md +0 -369
  127. package/assets/instructions/ai-prompt-engineering-safety-best-practices.instructions.md +0 -867
  128. package/assets/instructions/angular.instructions.md +0 -104
  129. package/assets/instructions/ansible.instructions.md +0 -88
  130. package/assets/instructions/aspnet-rest-apis.instructions.md +0 -110
  131. package/assets/instructions/astro.instructions.md +0 -182
  132. package/assets/instructions/azure-devops-pipelines.instructions.md +0 -185
  133. package/assets/instructions/azure-functions-typescript.instructions.md +0 -14
  134. package/assets/instructions/azure-logic-apps-power-automate.instructions.md +0 -1943
  135. package/assets/instructions/azure-verified-modules-terraform.instructions.md +0 -229
  136. package/assets/instructions/bicep-code-best-practices.instructions.md +0 -54
  137. package/assets/instructions/blazor.instructions.md +0 -77
  138. package/assets/instructions/clojure.instructions.md +0 -349
  139. package/assets/instructions/cmake-vcpkg.instructions.md +0 -10
  140. package/assets/instructions/codexer.instructions.md +0 -428
  141. package/assets/instructions/coldfusion-cfc.instructions.md +0 -30
  142. package/assets/instructions/coldfusion-cfm.instructions.md +0 -28
  143. package/assets/instructions/collections.instructions.md +0 -54
  144. package/assets/instructions/containerization-docker-best-practices.instructions.md +0 -681
  145. package/assets/instructions/convert-jpa-to-spring-data-cosmos.instructions.md +0 -949
  146. package/assets/instructions/copilot-thought-logging.instructions.md +0 -62
  147. package/assets/instructions/csharp-ja.instructions.md +0 -114
  148. package/assets/instructions/csharp-ko.instructions.md +0 -77
  149. package/assets/instructions/csharp-mcp-server.instructions.md +0 -95
  150. package/assets/instructions/csharp.instructions.md +0 -114
  151. package/assets/instructions/dart-n-flutter.instructions.md +0 -447
  152. package/assets/instructions/declarative-agents-microsoft365.instructions.md +0 -316
  153. package/assets/instructions/devbox-image-definition.instructions.md +0 -302
  154. package/assets/instructions/devops-core-principles.instructions.md +0 -167
  155. package/assets/instructions/dotnet-architecture-good-practices.instructions.md +0 -279
  156. package/assets/instructions/dotnet-framework.instructions.md +0 -113
  157. package/assets/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md +0 -1922
  158. package/assets/instructions/dotnet-maui.instructions.md +0 -69
  159. package/assets/instructions/dotnet-upgrade.instructions.md +0 -287
  160. package/assets/instructions/dotnet-wpf.instructions.md +0 -79
  161. package/assets/instructions/genaiscript.instructions.md +0 -21
  162. package/assets/instructions/generate-modern-terraform-code-for-azure.instructions.md +0 -82
  163. package/assets/instructions/gilfoyle-code-review.instructions.md +0 -114
  164. package/assets/instructions/github-actions-ci-cd-best-practices.instructions.md +0 -607
  165. package/assets/instructions/go-mcp-server.instructions.md +0 -346
  166. package/assets/instructions/go.instructions.md +0 -373
  167. package/assets/instructions/instructions.instructions.md +0 -256
  168. package/assets/instructions/java-11-to-java-17-upgrade.instructions.md +0 -793
  169. package/assets/instructions/java-17-to-java-21-upgrade.instructions.md +0 -464
  170. package/assets/instructions/java-21-to-java-25-upgrade.instructions.md +0 -311
  171. package/assets/instructions/java-mcp-server.instructions.md +0 -553
  172. package/assets/instructions/java.instructions.md +0 -81
  173. package/assets/instructions/joyride-user-project.instructions.md +0 -206
  174. package/assets/instructions/joyride-workspace-automation.instructions.md +0 -46
  175. package/assets/instructions/kotlin-mcp-server.instructions.md +0 -481
  176. package/assets/instructions/kubernetes-deployment-best-practices.instructions.md +0 -307
  177. package/assets/instructions/langchain-python.instructions.md +0 -229
  178. package/assets/instructions/localization.instructions.md +0 -39
  179. package/assets/instructions/makefile.instructions.md +0 -410
  180. package/assets/instructions/markdown.instructions.md +0 -52
  181. package/assets/instructions/memory-bank.instructions.md +0 -299
  182. package/assets/instructions/mongo-dba.instructions.md +0 -25
  183. package/assets/instructions/ms-sql-dba.instructions.md +0 -25
  184. package/assets/instructions/nestjs.instructions.md +0 -406
  185. package/assets/instructions/nextjs-tailwind.instructions.md +0 -72
  186. package/assets/instructions/nextjs.instructions.md +0 -143
  187. package/assets/instructions/nodejs-javascript-vitest.instructions.md +0 -30
  188. package/assets/instructions/object-calisthenics.instructions.md +0 -302
  189. package/assets/instructions/oqtane.instructions.md +0 -86
  190. package/assets/instructions/performance-optimization.instructions.md +0 -420
  191. package/assets/instructions/php-mcp-server.instructions.md +0 -809
  192. package/assets/instructions/playwright-dotnet.instructions.md +0 -101
  193. package/assets/instructions/playwright-python.instructions.md +0 -62
  194. package/assets/instructions/playwright-typescript.instructions.md +0 -86
  195. package/assets/instructions/power-apps-canvas-yaml.instructions.md +0 -827
  196. package/assets/instructions/power-apps-code-apps.instructions.md +0 -601
  197. package/assets/instructions/power-bi-custom-visuals-development.instructions.md +0 -810
  198. package/assets/instructions/power-bi-data-modeling-best-practices.instructions.md +0 -639
  199. package/assets/instructions/power-bi-dax-best-practices.instructions.md +0 -795
  200. package/assets/instructions/power-bi-devops-alm-best-practices.instructions.md +0 -623
  201. package/assets/instructions/power-bi-report-design-best-practices.instructions.md +0 -752
  202. package/assets/instructions/power-bi-security-rls-best-practices.instructions.md +0 -504
  203. package/assets/instructions/power-platform-connector.instructions.md +0 -430
  204. package/assets/instructions/power-platform-mcp-development.instructions.md +0 -88
  205. package/assets/instructions/powershell-pester-5.instructions.md +0 -197
  206. package/assets/instructions/powershell.instructions.md +0 -356
  207. package/assets/instructions/prompt.instructions.md +0 -73
  208. package/assets/instructions/python-mcp-server.instructions.md +0 -204
  209. package/assets/instructions/python.instructions.md +0 -56
  210. package/assets/instructions/quarkus-mcp-server-sse.instructions.md +0 -49
  211. package/assets/instructions/quarkus.instructions.md +0 -98
  212. package/assets/instructions/r.instructions.md +0 -116
  213. package/assets/instructions/reactjs.instructions.md +0 -162
  214. package/assets/instructions/ruby-mcp-server.instructions.md +0 -629
  215. package/assets/instructions/ruby-on-rails.instructions.md +0 -124
  216. package/assets/instructions/rust-mcp-server.instructions.md +0 -715
  217. package/assets/instructions/rust.instructions.md +0 -135
  218. package/assets/instructions/security-and-owasp.instructions.md +0 -51
  219. package/assets/instructions/self-explanatory-code-commenting.instructions.md +0 -162
  220. package/assets/instructions/shell.instructions.md +0 -132
  221. package/assets/instructions/spec-driven-workflow-v1.instructions.md +0 -323
  222. package/assets/instructions/springboot.instructions.md +0 -68
  223. package/assets/instructions/sql-sp-generation.instructions.md +0 -74
  224. package/assets/instructions/svelte.instructions.md +0 -161
  225. package/assets/instructions/swift-mcp-server.instructions.md +0 -498
  226. package/assets/instructions/taming-copilot.instructions.md +0 -40
  227. package/assets/instructions/tanstack-start-shadcn-tailwind.instructions.md +0 -212
  228. package/assets/instructions/task-implementation.instructions.md +0 -190
  229. package/assets/instructions/tasksync.instructions.md +0 -352
  230. package/assets/instructions/terraform-azure.instructions.md +0 -254
  231. package/assets/instructions/terraform-sap-btp.instructions.md +0 -195
  232. package/assets/instructions/terraform.instructions.md +0 -113
  233. package/assets/instructions/typescript-5-es2022.instructions.md +0 -114
  234. package/assets/instructions/typescript-mcp-server.instructions.md +0 -228
  235. package/assets/instructions/update-code-from-shorthand.instructions.md +0 -130
  236. package/assets/instructions/vuejs3.instructions.md +0 -153
  237. package/assets/instructions/wordpress.instructions.md +0 -186
  238. package/assets/prompts/add-educational-comments.prompt.md +0 -129
  239. package/assets/prompts/ai-prompt-engineering-safety-review.prompt.md +0 -230
  240. package/assets/prompts/architecture-blueprint-generator.prompt.md +0 -322
  241. package/assets/prompts/aspnet-minimal-api-openapi.prompt.md +0 -42
  242. package/assets/prompts/az-cost-optimize.prompt.md +0 -305
  243. package/assets/prompts/azure-resource-health-diagnose.prompt.md +0 -290
  244. package/assets/prompts/boost-prompt.prompt.md +0 -25
  245. package/assets/prompts/breakdown-epic-arch.prompt.md +0 -66
  246. package/assets/prompts/breakdown-epic-pm.prompt.md +0 -58
  247. package/assets/prompts/breakdown-feature-implementation.prompt.md +0 -128
  248. package/assets/prompts/breakdown-feature-prd.prompt.md +0 -61
  249. package/assets/prompts/breakdown-plan.prompt.md +0 -509
  250. package/assets/prompts/breakdown-test.prompt.md +0 -365
  251. package/assets/prompts/code-exemplars-blueprint-generator.prompt.md +0 -126
  252. package/assets/prompts/comment-code-generate-a-tutorial.prompt.md +0 -26
  253. package/assets/prompts/containerize-aspnet-framework.prompt.md +0 -455
  254. package/assets/prompts/containerize-aspnetcore.prompt.md +0 -393
  255. package/assets/prompts/conventional-commit.prompt.md +0 -73
  256. package/assets/prompts/copilot-instructions-blueprint-generator.prompt.md +0 -294
  257. package/assets/prompts/cosmosdb-datamodeling.prompt.md +0 -1045
  258. package/assets/prompts/create-agentsmd.prompt.md +0 -249
  259. package/assets/prompts/create-architectural-decision-record.prompt.md +0 -97
  260. package/assets/prompts/create-github-action-workflow-specification.prompt.md +0 -276
  261. package/assets/prompts/create-github-issue-feature-from-specification.prompt.md +0 -28
  262. package/assets/prompts/create-github-issues-feature-from-implementation-plan.prompt.md +0 -28
  263. package/assets/prompts/create-github-issues-for-unmet-specification-requirements.prompt.md +0 -35
  264. package/assets/prompts/create-github-pull-request-from-specification.prompt.md +0 -24
  265. package/assets/prompts/create-implementation-plan.prompt.md +0 -157
  266. package/assets/prompts/create-llms.prompt.md +0 -210
  267. package/assets/prompts/create-oo-component-documentation.prompt.md +0 -193
  268. package/assets/prompts/create-readme.prompt.md +0 -21
  269. package/assets/prompts/create-specification.prompt.md +0 -127
  270. package/assets/prompts/create-spring-boot-java-project.prompt.md +0 -163
  271. package/assets/prompts/create-spring-boot-kotlin-project.prompt.md +0 -147
  272. package/assets/prompts/create-technical-spike.prompt.md +0 -231
  273. package/assets/prompts/csharp-async.prompt.md +0 -50
  274. package/assets/prompts/csharp-docs.prompt.md +0 -63
  275. package/assets/prompts/csharp-mcp-server-generator.prompt.md +0 -59
  276. package/assets/prompts/csharp-mstest.prompt.md +0 -67
  277. package/assets/prompts/csharp-nunit.prompt.md +0 -72
  278. package/assets/prompts/csharp-tunit.prompt.md +0 -101
  279. package/assets/prompts/csharp-xunit.prompt.md +0 -69
  280. package/assets/prompts/declarative-agents.prompt.md +0 -93
  281. package/assets/prompts/documentation-writer.prompt.md +0 -46
  282. package/assets/prompts/dotnet-best-practices.prompt.md +0 -84
  283. package/assets/prompts/dotnet-design-pattern-review.prompt.md +0 -41
  284. package/assets/prompts/dotnet-upgrade.prompt.md +0 -116
  285. package/assets/prompts/editorconfig.prompt.md +0 -64
  286. package/assets/prompts/ef-core.prompt.md +0 -76
  287. package/assets/prompts/finalize-agent-prompt.prompt.md +0 -27
  288. package/assets/prompts/first-ask.prompt.md +0 -29
  289. package/assets/prompts/folder-structure-blueprint-generator.prompt.md +0 -405
  290. package/assets/prompts/gen-specs-as-issues.prompt.md +0 -165
  291. package/assets/prompts/generate-custom-instructions-from-codebase.prompt.md +0 -240
  292. package/assets/prompts/git-flow-branch-creator.prompt.md +0 -293
  293. package/assets/prompts/github-copilot-starter.prompt.md +0 -372
  294. package/assets/prompts/go-mcp-server-generator.prompt.md +0 -334
  295. package/assets/prompts/java-docs.prompt.md +0 -24
  296. package/assets/prompts/java-junit.prompt.md +0 -64
  297. package/assets/prompts/java-mcp-server-generator.prompt.md +0 -756
  298. package/assets/prompts/java-refactoring-extract-method.prompt.md +0 -105
  299. package/assets/prompts/java-refactoring-remove-parameter.prompt.md +0 -85
  300. package/assets/prompts/java-springboot.prompt.md +0 -66
  301. package/assets/prompts/javascript-typescript-jest.prompt.md +0 -44
  302. package/assets/prompts/kotlin-mcp-server-generator.prompt.md +0 -449
  303. package/assets/prompts/kotlin-springboot.prompt.md +0 -71
  304. package/assets/prompts/mcp-copilot-studio-server-generator.prompt.md +0 -118
  305. package/assets/prompts/memory-merger.prompt.md +0 -107
  306. package/assets/prompts/mkdocs-translations.prompt.md +0 -110
  307. package/assets/prompts/model-recommendation.prompt.md +0 -677
  308. package/assets/prompts/multi-stage-dockerfile.prompt.md +0 -47
  309. package/assets/prompts/my-issues.prompt.md +0 -9
  310. package/assets/prompts/my-pull-requests.prompt.md +0 -15
  311. package/assets/prompts/next-intl-add-language.prompt.md +0 -20
  312. package/assets/prompts/php-mcp-server-generator.prompt.md +0 -522
  313. package/assets/prompts/playwright-automation-fill-in-form.prompt.md +0 -30
  314. package/assets/prompts/playwright-explore-website.prompt.md +0 -19
  315. package/assets/prompts/playwright-generate-test.prompt.md +0 -19
  316. package/assets/prompts/postgresql-code-review.prompt.md +0 -214
  317. package/assets/prompts/postgresql-optimization.prompt.md +0 -406
  318. package/assets/prompts/power-apps-code-app-scaffold.prompt.md +0 -150
  319. package/assets/prompts/power-bi-dax-optimization.prompt.md +0 -175
  320. package/assets/prompts/power-bi-model-design-review.prompt.md +0 -405
  321. package/assets/prompts/power-bi-performance-troubleshooting.prompt.md +0 -384
  322. package/assets/prompts/power-bi-report-design-consultation.prompt.md +0 -353
  323. package/assets/prompts/power-platform-mcp-connector-suite.prompt.md +0 -156
  324. package/assets/prompts/project-workflow-analysis-blueprint-generator.prompt.md +0 -294
  325. package/assets/prompts/prompt-builder.prompt.md +0 -142
  326. package/assets/prompts/pytest-coverage.prompt.md +0 -28
  327. package/assets/prompts/python-mcp-server-generator.prompt.md +0 -105
  328. package/assets/prompts/readme-blueprint-generator.prompt.md +0 -79
  329. package/assets/prompts/remember-interactive-programming.prompt.md +0 -13
  330. package/assets/prompts/remember.prompt.md +0 -125
  331. package/assets/prompts/repo-story-time.prompt.md +0 -156
  332. package/assets/prompts/review-and-refactor.prompt.md +0 -15
  333. package/assets/prompts/ruby-mcp-server-generator.prompt.md +0 -660
  334. package/assets/prompts/rust-mcp-server-generator.prompt.md +0 -578
  335. package/assets/prompts/shuffle-json-data.prompt.md +0 -151
  336. package/assets/prompts/sql-code-review.prompt.md +0 -303
  337. package/assets/prompts/sql-optimization.prompt.md +0 -298
  338. package/assets/prompts/suggest-awesome-github-copilot-agents.prompt.md +0 -72
  339. package/assets/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +0 -71
  340. package/assets/prompts/suggest-awesome-github-copilot-collections.prompt.md +0 -149
  341. package/assets/prompts/suggest-awesome-github-copilot-instructions.prompt.md +0 -88
  342. package/assets/prompts/suggest-awesome-github-copilot-prompts.prompt.md +0 -71
  343. package/assets/prompts/swift-mcp-server-generator.prompt.md +0 -669
  344. package/assets/prompts/technology-stack-blueprint-generator.prompt.md +0 -242
  345. package/assets/prompts/typescript-mcp-server-generator.prompt.md +0 -90
  346. package/assets/prompts/update-avm-modules-in-bicep.prompt.md +0 -60
  347. package/assets/prompts/update-implementation-plan.prompt.md +0 -157
  348. package/assets/prompts/update-llms.prompt.md +0 -216
  349. package/assets/prompts/update-markdown-file-index.prompt.md +0 -76
  350. package/assets/prompts/update-oo-component-documentation.prompt.md +0 -162
  351. package/assets/prompts/update-specification.prompt.md +0 -127
  352. package/assets/prompts/write-coding-standards-from-file.prompt.md +0 -316
  353. package/scripts/analyze-collections.js +0 -387
  354. package/scripts/sync.js +0 -99
  355. package/verdaccio/config.yaml +0 -202
@@ -1,387 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { program } from 'commander';
4
- import fs from 'fs-extra';
5
- import path from 'path';
6
- import matter from 'gray-matter';
7
- import chalk from 'chalk';
8
- import { fileURLToPath } from 'url';
9
-
10
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
11
- const ROOT_DIR = path.join(__dirname, '..');
12
- const ASSETS_DIR = path.join(ROOT_DIR, 'assets');
13
-
14
- const DIRS = {
15
- collections: path.join(ASSETS_DIR, 'collections'),
16
- chatmodes: path.join(ASSETS_DIR, 'chatmodes'),
17
- instructions: path.join(ASSETS_DIR, 'instructions'),
18
- prompts: path.join(ASSETS_DIR, 'prompts'),
19
- };
20
-
21
- // Expanded stop words
22
- const STOP_WORDS = new Set([
23
- 'a', 'an', 'the', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for', 'of', 'with', 'by', 'is', 'are', 'was', 'were', 'be', 'been', 'this', 'that', 'it', 'as', 'from', 'mode', 'chat', 'prompt', 'instruction', 'file', 'use', 'using', 'create', 'make', 'expert', 'guide', 'help', 'code', 'generate', 'write', 'user', 'system', 'assistant', 'response', 'output', 'input', 'example', 'task', 'context', 'role', 'act', 'like', 'you', 'your', 'my', 'i', 'me', 'we', 'us', 'our', 'can', 'could', 'would', 'should', 'will', 'shall', 'may', 'might', 'must', 'do', 'does', 'did', 'done', 'doing', 'have', 'has', 'had', 'having', 'get', 'gets', 'got', 'getting', 'go', 'goes', 'went', 'gone', 'going', 'say', 'says', 'said', 'saying', 'tell', 'tells', 'told', 'telling', 'ask', 'asks', 'asked', 'asking', 'answer', 'answers', 'answered', 'answering', 'question', 'questions', 'questioning', 'problem', 'problems', 'issue', 'issues', 'solution', 'solutions', 'solve', 'solves', 'solved', 'solving', 'fix', 'fixes', 'fixed', 'fixing', 'bug', 'bugs', 'error', 'errors', 'warning', 'warnings', 'info', 'information', 'data', 'value', 'values', 'variable', 'variables', 'function', 'functions', 'method', 'methods', 'class', 'classes', 'object', 'objects', 'array', 'arrays', 'string', 'strings', 'number', 'numbers', 'boolean', 'booleans', 'true', 'false', 'null', 'undefined', 'nan', 'infinity'
24
- ]);
25
-
26
- // Simple Stemmer
27
- function stem(word) {
28
- if (word.length < 4) return word;
29
- if (word.endsWith('ies') && word.length > 4) return word.slice(0, -3) + 'y';
30
- if (word.endsWith('es') && word.length > 3) return word.slice(0, -2);
31
- if (word.endsWith('s') && !word.endsWith('ss') && word.length > 2) return word.slice(0, -1);
32
- if (word.endsWith('ing') && word.length > 4) return word.slice(0, -3);
33
- if (word.endsWith('ed') && word.length > 3) return word.slice(0, -2);
34
- if (word.endsWith('ly') && word.length > 4) return word.slice(0, -2);
35
- return word;
36
- }
37
-
38
- function getTokens(text) {
39
- if (!text) return [];
40
- // Normalize text: split camelCase, snake_case, kebab-case
41
- const normalized = text
42
- .replace(/([a-z])([A-Z])/g, '$1 $2')
43
- .replace(/[-_.]/g, ' ');
44
-
45
- return normalized
46
- .toLowerCase()
47
- .split(/[^a-z0-9]+/)
48
- .filter(t => t.length > 2 && !STOP_WORDS.has(t))
49
- .map(t => stem(t));
50
- }
51
-
52
- // Custom TF-IDF Implementation
53
- class TfIdf {
54
- constructor() {
55
- this.documents = []; // Array of { termCounts: Map<Term, Count>, totalTerms: number }
56
- this.docFrequencies = new Map(); // Term -> DocCount
57
- }
58
-
59
- addDocument(tokens) {
60
- const termCounts = new Map();
61
- const uniqueTerms = new Set(tokens);
62
-
63
- for (const token of tokens) {
64
- termCounts.set(token, (termCounts.get(token) || 0) + 1);
65
- }
66
-
67
- this.documents.push({ termCounts, totalTerms: tokens.length });
68
-
69
- for (const term of uniqueTerms) {
70
- this.docFrequencies.set(term, (this.docFrequencies.get(term) || 0) + 1);
71
- }
72
- }
73
-
74
- getTfIdfVector(docIndex) {
75
- const doc = this.documents[docIndex];
76
- const vector = {};
77
- const totalDocs = this.documents.length;
78
-
79
- for (const [term, count] of doc.termCounts) {
80
- const tf = count / doc.totalTerms;
81
- const df = this.docFrequencies.get(term) || 0;
82
- const idf = Math.log(1 + (totalDocs / (1 + df))); // Smooth IDF
83
- vector[term] = tf * idf;
84
- }
85
- return vector;
86
- }
87
-
88
- // Helper to create a vector for a new set of tokens (like a query or profile)
89
- // using the existing IDF stats
90
- getVectorForTokens(tokens) {
91
- const termCounts = new Map();
92
- for (const token of tokens) {
93
- termCounts.set(token, (termCounts.get(token) || 0) + 1);
94
- }
95
-
96
- const vector = {};
97
- const totalDocs = this.documents.length;
98
-
99
- for (const [term, count] of termCounts) {
100
- const tf = count / tokens.length;
101
- const df = this.docFrequencies.get(term) || 0;
102
- const idf = Math.log(1 + (totalDocs / (1 + df)));
103
- vector[term] = tf * idf;
104
- }
105
- return vector;
106
- }
107
- }
108
-
109
- function extractBoostedContent(content) {
110
- if (!content) return '';
111
-
112
- let boosted = '';
113
-
114
- // Headers
115
- const headers = content.match(/^#+\s+(.*)$/gm);
116
- if (headers) {
117
- boosted += headers.map(h => h.replace(/^#+\s+/, '')).join(' ') + ' ';
118
- }
119
-
120
- // Bold text
121
- const bold = content.match(/\*\*(.*?)\*\*/g);
122
- if (bold) {
123
- boosted += bold.map(b => b.replace(/\*\*/g, '')).join(' ') + ' ';
124
- }
125
-
126
- return boosted;
127
- }
128
-
129
- async function loadAssets(type) {
130
- const dir = DIRS[type];
131
- if (!await fs.pathExists(dir)) return [];
132
-
133
- const files = await fs.readdir(dir);
134
- const assets = [];
135
-
136
- for (const file of files) {
137
- if (!file.endsWith('.md')) continue;
138
-
139
- const filePath = path.join(dir, file);
140
- const content = await fs.readFile(filePath, 'utf8');
141
- const parsed = matter(content);
142
- const id = file.replace(/\.(chatmode|instructions|prompt)\.md$/, '');
143
-
144
- // Boosted content (headers, bold) is repeated to increase term frequency
145
- const boosted = extractBoostedContent(parsed.content);
146
- const fullText = `${id} ${parsed.data.title || ''} ${parsed.data.description || ''} ${boosted} ${boosted} ${parsed.content}`;
147
-
148
- assets.push({
149
- id,
150
- type,
151
- key: `${type}:${id}`,
152
- filename: file,
153
- data: parsed.data,
154
- fullText,
155
- tokens: getTokens(fullText)
156
- });
157
- }
158
- return assets;
159
- }
160
-
161
- async function loadCollections() {
162
- const dir = DIRS.collections;
163
- if (!await fs.pathExists(dir)) return [];
164
-
165
- const files = await fs.readdir(dir);
166
- const collections = [];
167
-
168
- for (const file of files) {
169
- if (!file.endsWith('.json')) continue;
170
-
171
- const filePath = path.join(dir, file);
172
- const content = await fs.readJson(filePath);
173
-
174
- collections.push({
175
- filename: file,
176
- filePath,
177
- data: content,
178
- // Initial tokens from metadata
179
- tokens: getTokens(`${file.replace('.json', '')} ${content.description || ''}`)
180
- });
181
- }
182
- return collections;
183
- }
184
-
185
- function calculateTfIdfVectors(assets) {
186
- const tfidf = new TfIdf();
187
-
188
- assets.forEach(asset => {
189
- tfidf.addDocument(asset.tokens);
190
- });
191
-
192
- // Build vectors for each asset
193
- const assetVectors = new Map();
194
-
195
- assets.forEach((asset, index) => {
196
- const vector = tfidf.getTfIdfVector(index);
197
- assetVectors.set(asset.key, vector);
198
- });
199
-
200
- return { tfidf, assetVectors };
201
- }
202
-
203
- function cosineSimilarity(vecA, vecB) {
204
- const terms = new Set([...Object.keys(vecA), ...Object.keys(vecB)]);
205
- let dotProduct = 0;
206
- let magA = 0;
207
- let magB = 0;
208
-
209
- for (const term of terms) {
210
- const valA = vecA[term] || 0;
211
- const valB = vecB[term] || 0;
212
- dotProduct += valA * valB;
213
- magA += valA * valA;
214
- magB += valB * valB;
215
- }
216
-
217
- if (magA === 0 || magB === 0) return 0;
218
- return dotProduct / (Math.sqrt(magA) * Math.sqrt(magB));
219
- }
220
-
221
- function getCollectionProfileVector(collection, allAssetsMap, assetVectors, tfidf) {
222
- // Start with collection's own metadata tokens
223
- // We use the global TF-IDF model to get the vector for these tokens
224
- const baseVector = tfidf.getVectorForTokens(collection.tokens);
225
-
226
- // Boost metadata importance
227
- for (const key in baseVector) {
228
- baseVector[key] *= 2;
229
- }
230
-
231
- // Aggregate vectors of existing items
232
- const existingItems = collection.data.items || [];
233
- if (existingItems.length === 0) return baseVector;
234
-
235
- const combinedVector = { ...baseVector };
236
-
237
- for (const itemKey of existingItems) {
238
- const assetVector = assetVectors.get(itemKey);
239
- if (assetVector) {
240
- for (const [term, score] of Object.entries(assetVector)) {
241
- combinedVector[term] = (combinedVector[term] || 0) + score;
242
- }
243
- }
244
- }
245
-
246
- return combinedVector;
247
- }
248
-
249
- function subtractVector(vecA, vecB) {
250
- const result = { ...vecA };
251
- for (const [term, valB] of Object.entries(vecB)) {
252
- if (result[term]) {
253
- result[term] -= valB;
254
- if (result[term] <= 0.0001) delete result[term]; // Remove if effectively zero
255
- }
256
- }
257
- return result;
258
- }
259
-
260
- async function main() {
261
- program
262
- .name('analyze-collections')
263
- .description('Analyze collections and suggest missing assets using TF-IDF and Cosine Similarity')
264
- .option('-f, --fix', 'Automatically add high-confidence matches to collections')
265
- .option('-p, --prune', 'Automatically remove low-confidence items from collections')
266
- .option('-t, --threshold <number>', 'Similarity threshold for adding (0.0 to 1.0)', '0.2')
267
- .option('--prune-threshold <number>', 'Similarity threshold for pruning (0.0 to 1.0)', '0.05')
268
- .parse(process.argv);
269
-
270
- const options = program.opts();
271
- const threshold = parseFloat(options.threshold);
272
- const pruneThreshold = parseFloat(options.pruneThreshold);
273
-
274
- console.log(chalk.blue('Loading assets...'));
275
-
276
- const [chatmodes, instructions, prompts] = await Promise.all([
277
- loadAssets('chatmodes'),
278
- loadAssets('instructions'),
279
- loadAssets('prompts')
280
- ]);
281
-
282
- const allAssets = [...chatmodes, ...instructions, ...prompts];
283
- const allAssetsMap = new Map(allAssets.map(a => [a.key, a]));
284
-
285
- console.log(chalk.blue(`Loaded ${allAssets.length} assets.`));
286
-
287
- const collections = await loadCollections();
288
- console.log(chalk.blue(`Loaded ${collections.length} collections.`));
289
-
290
- console.log(chalk.yellow('\nCalculating TF-IDF vectors...'));
291
- const { tfidf, assetVectors } = calculateTfIdfVectors(allAssets);
292
-
293
- console.log(chalk.yellow('Analyzing collections...'));
294
-
295
- for (const collection of collections) {
296
- const profileVector = getCollectionProfileVector(collection, allAssetsMap, assetVectors, tfidf);
297
- let isModified = false;
298
-
299
- console.log(chalk.green(`\nCollection: ${collection.filename}`));
300
- console.log(chalk.dim(collection.data.description || 'No description'));
301
-
302
- // --- PRUNING PHASE ---
303
- const existingItems = collection.data.items || [];
304
- const outliers = [];
305
-
306
- for (const itemKey of existingItems) {
307
- const assetVector = assetVectors.get(itemKey);
308
-
309
- if (!assetVector) {
310
- console.log(chalk.red(` [MISSING] ${itemKey} (File not found)`));
311
- // We don't auto-prune missing files unless explicitly asked, but for now let's just flag them
312
- continue;
313
- }
314
-
315
- // "Leave-One-Out" Validation:
316
- // Check how well this item fits the collection *without* itself included in the profile.
317
- // This prevents an item from validating itself.
318
- const profileMinusItem = subtractVector(profileVector, assetVector);
319
- const score = cosineSimilarity(profileMinusItem, assetVector);
320
-
321
- if (score < pruneThreshold) {
322
- outliers.push({ key: itemKey, score });
323
- }
324
- }
325
-
326
- if (outliers.length > 0) {
327
- outliers.sort((a, b) => a.score - b.score);
328
- console.log(chalk.yellow(` Outliers (Low Similarity < ${pruneThreshold}):`));
329
-
330
- for (const { key, score } of outliers) {
331
- console.log(` [${score.toFixed(3)}] ${chalk.red(key)}`);
332
- }
333
-
334
- if (options.prune) {
335
- const keysToRemove = new Set(outliers.map(o => o.key));
336
- collection.data.items = collection.data.items.filter(k => !keysToRemove.has(k));
337
- console.log(chalk.red(` -> Pruned ${outliers.length} items`));
338
- isModified = true;
339
- }
340
- }
341
-
342
- // --- SUGGESTION PHASE ---
343
- const suggestions = [];
344
-
345
- for (const asset of allAssets) {
346
- // Skip if already in collection
347
- if (collection.data.items && collection.data.items.includes(asset.key)) continue;
348
-
349
- const assetVector = assetVectors.get(asset.key);
350
- const score = cosineSimilarity(profileVector, assetVector);
351
-
352
- if (score >= threshold) {
353
- suggestions.push({ asset, score });
354
- }
355
- }
356
-
357
- if (suggestions.length > 0) {
358
- suggestions.sort((a, b) => b.score - a.score);
359
-
360
- const newItems = [];
361
- const topSuggestions = suggestions.slice(0, 10); // Limit to top 10
362
-
363
- for (const { asset, score } of topSuggestions) {
364
- console.log(` [${score.toFixed(3)}] ${chalk.cyan(asset.key)} - ${chalk.dim(asset.data.title || asset.id)}`);
365
- newItems.push(asset.key);
366
- }
367
-
368
- if (options.fix) {
369
- if (!collection.data.items) collection.data.items = [];
370
- collection.data.items.push(...newItems);
371
- collection.data.items = [...new Set(collection.data.items)]; // Dedupe
372
- console.log(chalk.magenta(` -> Added ${newItems.length} items`));
373
- isModified = true;
374
- }
375
- }
376
-
377
- // --- SAVE ---
378
- if (isModified) {
379
- await fs.writeJson(collection.filePath, collection.data, { spaces: 2 });
380
- console.log(chalk.blue(` -> Saved changes to ${collection.filename}`));
381
- }
382
- }
383
-
384
- console.log(chalk.blue('\nDone.'));
385
- }
386
-
387
- main().catch(console.error);
package/scripts/sync.js DELETED
@@ -1,99 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { fileURLToPath } from 'url';
4
-
5
- const __filename = fileURLToPath(import.meta.url);
6
- const __dirname = path.dirname(__filename);
7
-
8
- // Load .env manually
9
- const envPath = path.join(__dirname, '../.env');
10
- if (fs.existsSync(envPath)) {
11
- const envConfig = fs.readFileSync(envPath, 'utf8');
12
- envConfig.split('\n').forEach(line => {
13
- const [key, value] = line.split('=');
14
- if (key && value) {
15
- process.env[key.trim()] = value.trim();
16
- }
17
- });
18
- }
19
-
20
- const GITHUB_TOKEN = process.env.GITHUB_TOKEN;
21
- const REPO_OWNER = 'github';
22
- const REPO_NAME = 'awesome-copilot';
23
- const BASE_API_URL = `https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents`;
24
-
25
- const MAPPINGS = [
26
- { remote: 'chatmodes', local: 'assets/chatmodes' },
27
- { remote: 'instructions', local: 'assets/instructions' },
28
- { remote: 'prompts', local: 'assets/prompts' }
29
- ];
30
-
31
- const FILES_TO_DELETE = [
32
- 'basic-setup.md',
33
- 'assets/instructions/basic-setup.md'
34
- ];
35
-
36
- async function fetchGitHubContent(path) {
37
- const url = `${BASE_API_URL}/${path}`;
38
- const headers = {
39
- 'User-Agent': 'node.js',
40
- 'Accept': 'application/vnd.github.v3+json'
41
- };
42
-
43
- if (GITHUB_TOKEN) {
44
- headers['Authorization'] = `token ${GITHUB_TOKEN}`;
45
- }
46
-
47
- const response = await fetch(url, { headers });
48
- if (!response.ok) {
49
- throw new Error(`Failed to fetch ${url}: ${response.statusText}`);
50
- }
51
- return response.json();
52
- }
53
-
54
- async function downloadFile(downloadUrl, localPath) {
55
- const response = await fetch(downloadUrl);
56
- if (!response.ok) {
57
- throw new Error(`Failed to download ${downloadUrl}: ${response.statusText}`);
58
- }
59
- const content = await response.text();
60
- const dir = path.dirname(localPath);
61
- if (!fs.existsSync(dir)) {
62
- fs.mkdirSync(dir, { recursive: true });
63
- }
64
- fs.writeFileSync(localPath, content);
65
- console.log(`Downloaded: ${localPath}`);
66
- }
67
-
68
- async function sync() {
69
- console.log('Starting sync...');
70
-
71
- // Delete legacy files
72
- for (const file of FILES_TO_DELETE) {
73
- const filePath = path.join(__dirname, '..', file);
74
- if (fs.existsSync(filePath)) {
75
- fs.unlinkSync(filePath);
76
- console.log(`Deleted: ${file}`);
77
- }
78
- }
79
-
80
- // Sync folders
81
- for (const mapping of MAPPINGS) {
82
- console.log(`Syncing ${mapping.remote} to ${mapping.local}...`);
83
- try {
84
- const items = await fetchGitHubContent(mapping.remote);
85
-
86
- for (const item of items) {
87
- if (item.type === 'file') {
88
- const localFilePath = path.join(__dirname, '..', mapping.local, item.name);
89
- await downloadFile(item.download_url, localFilePath);
90
- }
91
- }
92
- } catch (error) {
93
- console.error(`Error syncing ${mapping.remote}:`, error.message);
94
- }
95
- }
96
- console.log('Sync complete!');
97
- }
98
-
99
- sync();
@@ -1,202 +0,0 @@
1
- #
2
- # This is the default configuration file. It allows all users to do anything,
3
- # please read carefully the documentation and best practices to
4
- # improve security.
5
- #
6
- # Look here for more config file examples:
7
- # https://github.com/verdaccio/verdaccio/tree/5.x/conf
8
- #
9
- # Read about the best practices
10
- # https://verdaccio.org/docs/best
11
-
12
- # path to a directory with all packages
13
- storage: ./storage
14
- # path to a directory with plugins to include
15
- plugins: ./plugins
16
-
17
- # https://verdaccio.org/docs/webui
18
- web:
19
- title: Verdaccio
20
- # comment out to disable gravatar support
21
- # gravatar: false
22
- # by default packages are ordercer ascendant (asc|desc)
23
- # sort_packages: asc
24
- # convert your UI to the dark side
25
- # darkMode: true
26
- # html_cache: true
27
- # by default all features are displayed
28
- # login: true
29
- # showInfo: true
30
- # showSettings: true
31
- # In combination with darkMode you can force specific theme
32
- # showThemeSwitch: true
33
- # showFooter: true
34
- # showSearch: true
35
- # showRaw: true
36
- # showDownloadTarball: true
37
- # HTML tags injected after manifest <scripts/>
38
- # scriptsBodyAfter:
39
- # - '<script type="text/javascript" src="https://my.company.com/customJS.min.js"></script>'
40
- # HTML tags injected before ends </head>
41
- # metaScripts:
42
- # - '<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>'
43
- # - '<script type="text/javascript" src="https://browser.sentry-cdn.com/5.15.5/bundle.min.js"></script>'
44
- # - '<meta name="robots" content="noindex" />'
45
- # HTML tags injected first child at <body/>
46
- # bodyBefore:
47
- # - '<div id="myId">html before webpack scripts</div>'
48
- # Public path for template manifest scripts (only manifest)
49
- # publicPath: http://somedomain.org/
50
-
51
- # https://verdaccio.org/docs/configuration#authentication
52
- auth:
53
- htpasswd:
54
- file: ./htpasswd
55
- # Maximum amount of users allowed to register, defaults to "+inf".
56
- # You can set this to -1 to disable registration.
57
- # max_users: 1000
58
- # Hash algorithm, possible options are: "bcrypt", "md5", "sha1", "crypt".
59
- # algorithm: bcrypt # by default is crypt, but is recommended use bcrypt for new installations
60
- # Rounds number for "bcrypt", will be ignored for other algorithms.
61
- # rounds: 10
62
-
63
- # https://verdaccio.org/docs/configuration#uplinks
64
- # a list of other known repositories we can talk to
65
- uplinks:
66
- npmjs:
67
- url: https://registry.npmjs.org/
68
-
69
- # Learn how to protect your packages
70
- # https://verdaccio.org/docs/protect-your-dependencies/
71
- # https://verdaccio.org/docs/configuration#packages
72
- packages:
73
- '@*/*':
74
- # scoped packages
75
- access: $all
76
- publish: $authenticated
77
- unpublish: $authenticated
78
- proxy: npmjs
79
-
80
- '**':
81
- # allow all users (including non-authenticated users) to read and
82
- # publish all packages
83
- #
84
- # you can specify usernames/groupnames (depending on your auth plugin)
85
- # and three keywords: "$all", "$anonymous", "$authenticated"
86
- access: $all
87
-
88
- # allow all known users to publish/publish packages
89
- # (anyone can register by default, remember?)
90
- publish: $all
91
- unpublish: $all
92
-
93
- # if package is not available locally, proxy requests to 'npmjs' registry
94
- proxy: npmjs
95
-
96
- # To improve your security configuration and avoid dependency confusion
97
- # consider removing the proxy property for private packages
98
- # https://verdaccio.org/docs/best#remove-proxy-to-increase-security-at-private-packages
99
-
100
- # https://verdaccio.org/docs/configuration#server
101
- # You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections.
102
- # A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout.
103
- # WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
104
- server:
105
- keepAliveTimeout: 60
106
- # Allow `req.ip` to resolve properly when Verdaccio is behind a proxy or load-balancer
107
- # See: https://expressjs.com/en/guide/behind-proxies.html
108
- # trustProxy: '127.0.0.1'
109
-
110
- # https://verdaccio.org/docs/configuration#offline-publish
111
- # publish:
112
- # allow_offline: false
113
-
114
- # https://verdaccio.org/docs/configuration#url-prefix
115
- # url_prefix: /verdaccio/
116
- # VERDACCIO_PUBLIC_URL='https://somedomain.org';
117
- # url_prefix: '/my_prefix'
118
- # // url -> https://somedomain.org/my_prefix/
119
- # VERDACCIO_PUBLIC_URL='https://somedomain.org';
120
- # url_prefix: '/'
121
- # // url -> https://somedomain.org/
122
- # VERDACCIO_PUBLIC_URL='https://somedomain.org/first_prefix';
123
- # url_prefix: '/second_prefix'
124
- # // url -> https://somedomain.org/second_prefix/'
125
-
126
- # https://verdaccio.org/docs/configuration#security
127
- # security:
128
- # api:
129
- # legacy: true
130
- # # recomended set to true for older installations
131
- # migrateToSecureLegacySignature: true
132
- # jwt:
133
- # sign:
134
- # expiresIn: 29d
135
- # verify:
136
- # someProp: [value]
137
- # web:
138
- # sign:
139
- # expiresIn: 1h # 1 hour by default
140
- # verify:
141
- # someProp: [value]
142
-
143
- # https://verdaccio.org/docs/configuration#user-rate-limit
144
- # userRateLimit:
145
- # windowMs: 50000
146
- # max: 1000
147
-
148
- # https://verdaccio.org/docs/configuration#max-body-size
149
- # max_body_size: 10mb
150
-
151
- # https://verdaccio.org/docs/configuration#listen-port
152
- listen: 0.0.0.0:4873
153
- # listen:
154
- # - localhost:4873 # default value
155
- # - http://localhost:4873 # same thing
156
- # - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
157
- # - https://example.org:4873 # if you want to use https
158
- # - "[::1]:4873" # ipv6
159
- # - unix:/tmp/verdaccio.sock # unix socket
160
-
161
- # The HTTPS configuration is useful if you do not consider use a HTTP Proxy
162
- # https://verdaccio.org/docs/configuration#https
163
- # https:
164
- # key: ./path/verdaccio-key.pem
165
- # cert: ./path/verdaccio-cert.pem
166
- # ca: ./path/verdaccio-csr.pem
167
-
168
- # https://verdaccio.org/docs/configuration#proxy
169
- # http_proxy: http://something.local/
170
- # https_proxy: https://something.local/
171
-
172
- # https://verdaccio.org/docs/configuration#notifications
173
- # notify:
174
- # method: POST
175
- # headers: [{ "Content-Type": "application/json" }]
176
- # endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
177
- # content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
178
-
179
- middlewares:
180
- audit:
181
- enabled: true
182
-
183
- # https://verdaccio.org/docs/logger
184
- # log settings
185
- log: { type: stdout, format: pretty, level: http }
186
- #experiments:
187
- # # support for npm token command
188
- # token: false
189
- # # disable writing body size to logs, read more on ticket 1912
190
- # bytesin_off: false
191
- # # enable tarball URL redirect for hosting tarball with a different server, the tarball_url_redirect can be a template string
192
- # tarball_url_redirect: 'https://mycdn.com/verdaccio/${packageName}/${filename}'
193
- # # the tarball_url_redirect can be a function, takes packageName and filename and returns the url, when working with a js configuration file
194
- # tarball_url_redirect(packageName, filename) {
195
- # const signedUrl = // generate a signed url
196
- # return signedUrl;
197
- # }
198
-
199
- # translate your registry, api i18n not available yet
200
- # i18n:
201
- # list of the available translations https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md
202
- # web: en-US