agents-inc 0.157.0 → 0.159.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 (131) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/{chunk-3E52LCYC.js → chunk-2Q65K6E3.js} +70 -25
  3. package/dist/chunk-2Q65K6E3.js.map +1 -0
  4. package/dist/{chunk-YG5YPVTJ.js → chunk-42PQKBVU.js} +6 -6
  5. package/dist/{chunk-P6OKOH62.js → chunk-4APXK7ZY.js} +2 -2
  6. package/dist/{chunk-4CIAZOTD.js → chunk-4RYWFQK7.js} +3 -3
  7. package/dist/{chunk-O4K42CJB.js → chunk-4VMLCWLD.js} +3 -3
  8. package/dist/{chunk-QNAMXQKF.js → chunk-4VVKVOOP.js} +2 -2
  9. package/dist/{chunk-G6G2FT2G.js → chunk-5KB4I5J7.js} +2 -5
  10. package/dist/chunk-5KB4I5J7.js.map +1 -0
  11. package/dist/{chunk-LDBVIPTP.js → chunk-5YOSLSQJ.js} +4 -4
  12. package/dist/{chunk-QXPMQBEI.js → chunk-62XKTOUI.js} +3 -3
  13. package/dist/{chunk-IGOFZG3S.js → chunk-7Z4N4JWQ.js} +1 -241
  14. package/dist/{chunk-IGOFZG3S.js.map → chunk-7Z4N4JWQ.js.map} +1 -1
  15. package/dist/{chunk-KUZBMEWR.js → chunk-AU5FS3QK.js} +3 -3
  16. package/dist/{chunk-CEGHC7L5.js → chunk-BNHD2GIB.js} +5 -5
  17. package/dist/{chunk-PXGDA2SY.js → chunk-BQJVHD6Y.js} +4 -4
  18. package/dist/{chunk-XOZAKFTS.js → chunk-F35G42TF.js} +12 -12
  19. package/dist/{chunk-QO4XD5V5.js → chunk-FBRLHNUT.js} +3 -3
  20. package/dist/{chunk-4KHUHPX4.js → chunk-G7TYOPON.js} +3 -3
  21. package/dist/{chunk-WENBESZO.js → chunk-GPZQCLZJ.js} +6 -6
  22. package/dist/{chunk-MU2TQ5KK.js → chunk-IO2DPRDS.js} +2 -2
  23. package/dist/{chunk-TZRXWFF5.js → chunk-ITEJARWI.js} +3 -3
  24. package/dist/{chunk-4EPJWN7C.js → chunk-JV4P7BL4.js} +5 -5
  25. package/dist/{chunk-YKFCUVHG.js → chunk-LSSGS2QS.js} +3 -3
  26. package/dist/{chunk-RLU2IXD3.js → chunk-LVA6XJGR.js} +4 -4
  27. package/dist/{chunk-PVPNVK3W.js → chunk-MPLWPWL4.js} +2 -2
  28. package/dist/{chunk-24IGOJ7E.js → chunk-NS5COBTT.js} +4 -4
  29. package/dist/{chunk-VTIDLRNA.js → chunk-OJIQOVWB.js} +2 -2
  30. package/dist/{chunk-WCZNQECQ.js → chunk-PEHYVSJG.js} +2 -2
  31. package/dist/{chunk-DZD25NHW.js → chunk-SITF5EZM.js} +2 -2
  32. package/dist/{chunk-ZBYVDXZG.js → chunk-SKDTGHCD.js} +5 -5
  33. package/dist/{chunk-PGZSNNDA.js → chunk-THLQS2AW.js} +4 -4
  34. package/dist/{chunk-RVXI5VQU.js → chunk-V625APR6.js} +76 -267
  35. package/dist/chunk-V625APR6.js.map +1 -0
  36. package/dist/{chunk-ZAQ6WMJV.js → chunk-VCUXNKOY.js} +6 -6
  37. package/dist/{chunk-VI6U2PJG.js → chunk-WVBJRFFM.js} +4 -4
  38. package/dist/{chunk-KTXVQ7OM.js → chunk-WVKGO3Y5.js} +5 -5
  39. package/dist/{chunk-YXI3BTQQ.js → chunk-X5PLVOJS.js} +2 -2
  40. package/dist/{chunk-Z3H2K5PK.js → chunk-YAHTF4NO.js} +9 -9
  41. package/dist/{chunk-4DMFK67G.js → chunk-YKRPWZ3G.js} +2 -2
  42. package/dist/{chunk-DCIC35R7.js → chunk-YVQSDBTK.js} +34 -6
  43. package/dist/chunk-YVQSDBTK.js.map +1 -0
  44. package/dist/{chunk-V7PMQDDU.js → chunk-Z6G24ROK.js} +8 -8
  45. package/dist/{chunk-K2VTGT45.js → chunk-Z6KROWH4.js} +7 -7
  46. package/dist/commands/build/marketplace.js +7 -7
  47. package/dist/commands/build/plugins.js +7 -7
  48. package/dist/commands/compile.js +10 -10
  49. package/dist/commands/doctor.js +13 -13
  50. package/dist/commands/doctor.js.map +1 -1
  51. package/dist/commands/edit.js +58 -67
  52. package/dist/commands/edit.js.map +1 -1
  53. package/dist/commands/eject.js +10 -10
  54. package/dist/commands/init.js +40 -36
  55. package/dist/commands/list.js +8 -8
  56. package/dist/commands/new/marketplace.js +7 -7
  57. package/dist/commands/search.js +10 -10
  58. package/dist/commands/share.js +99 -15
  59. package/dist/commands/share.js.map +1 -1
  60. package/dist/commands/uninstall.js +11 -11
  61. package/dist/commands/update.js +6 -6
  62. package/dist/components/common/removal-plan-confirm.js +2 -2
  63. package/dist/components/common/select-list.js +2 -2
  64. package/dist/components/wizard/category-grid.js +4 -4
  65. package/dist/components/wizard/checkbox-grid.js +4 -4
  66. package/dist/components/wizard/domain-selection.js +9 -9
  67. package/dist/components/wizard/run-wizard-session.js +26 -26
  68. package/dist/components/wizard/scroll-affordance.js +2 -2
  69. package/dist/components/wizard/skill-agent-summary.js +5 -5
  70. package/dist/components/wizard/source-grid.js +5 -5
  71. package/dist/components/wizard/stack-selection.js +7 -7
  72. package/dist/components/wizard/step-agents.js +8 -8
  73. package/dist/components/wizard/step-build.js +7 -7
  74. package/dist/components/wizard/step-confirm.js +9 -9
  75. package/dist/components/wizard/step-sources.js +8 -8
  76. package/dist/components/wizard/step-stack.js +8 -8
  77. package/dist/components/wizard/summary-panel.js +8 -8
  78. package/dist/components/wizard/toast.js +2 -2
  79. package/dist/components/wizard/wizard-layout.js +12 -12
  80. package/dist/components/wizard/wizard-tabs.js +2 -2
  81. package/dist/components/wizard/wizard.js +25 -25
  82. package/dist/hooks/init.js +36 -36
  83. package/dist/load-agent-defs-2H42B2OO.js +13 -0
  84. package/dist/recompile-project-agents-QIAMBCM4.js +17 -0
  85. package/dist/{source-loader-BIAEDR5R.js → source-loader-CC6ZWKTI.js} +4 -4
  86. package/dist/stores/wizard-store.js +4 -4
  87. package/package.json +2 -4
  88. package/src/schemas/project-source-config.schema.json +0 -3
  89. package/dist/chunk-3E52LCYC.js.map +0 -1
  90. package/dist/chunk-DCIC35R7.js.map +0 -1
  91. package/dist/chunk-G6G2FT2G.js.map +0 -1
  92. package/dist/chunk-RVXI5VQU.js.map +0 -1
  93. package/dist/load-agent-defs-M6LRVISN.js +0 -13
  94. package/dist/recompile-project-agents-G7ZM25PC.js +0 -17
  95. /package/dist/{chunk-YG5YPVTJ.js.map → chunk-42PQKBVU.js.map} +0 -0
  96. /package/dist/{chunk-P6OKOH62.js.map → chunk-4APXK7ZY.js.map} +0 -0
  97. /package/dist/{chunk-4CIAZOTD.js.map → chunk-4RYWFQK7.js.map} +0 -0
  98. /package/dist/{chunk-O4K42CJB.js.map → chunk-4VMLCWLD.js.map} +0 -0
  99. /package/dist/{chunk-QNAMXQKF.js.map → chunk-4VVKVOOP.js.map} +0 -0
  100. /package/dist/{chunk-LDBVIPTP.js.map → chunk-5YOSLSQJ.js.map} +0 -0
  101. /package/dist/{chunk-QXPMQBEI.js.map → chunk-62XKTOUI.js.map} +0 -0
  102. /package/dist/{chunk-KUZBMEWR.js.map → chunk-AU5FS3QK.js.map} +0 -0
  103. /package/dist/{chunk-CEGHC7L5.js.map → chunk-BNHD2GIB.js.map} +0 -0
  104. /package/dist/{chunk-PXGDA2SY.js.map → chunk-BQJVHD6Y.js.map} +0 -0
  105. /package/dist/{chunk-XOZAKFTS.js.map → chunk-F35G42TF.js.map} +0 -0
  106. /package/dist/{chunk-QO4XD5V5.js.map → chunk-FBRLHNUT.js.map} +0 -0
  107. /package/dist/{chunk-4KHUHPX4.js.map → chunk-G7TYOPON.js.map} +0 -0
  108. /package/dist/{chunk-WENBESZO.js.map → chunk-GPZQCLZJ.js.map} +0 -0
  109. /package/dist/{chunk-MU2TQ5KK.js.map → chunk-IO2DPRDS.js.map} +0 -0
  110. /package/dist/{chunk-TZRXWFF5.js.map → chunk-ITEJARWI.js.map} +0 -0
  111. /package/dist/{chunk-4EPJWN7C.js.map → chunk-JV4P7BL4.js.map} +0 -0
  112. /package/dist/{chunk-YKFCUVHG.js.map → chunk-LSSGS2QS.js.map} +0 -0
  113. /package/dist/{chunk-RLU2IXD3.js.map → chunk-LVA6XJGR.js.map} +0 -0
  114. /package/dist/{chunk-PVPNVK3W.js.map → chunk-MPLWPWL4.js.map} +0 -0
  115. /package/dist/{chunk-24IGOJ7E.js.map → chunk-NS5COBTT.js.map} +0 -0
  116. /package/dist/{chunk-VTIDLRNA.js.map → chunk-OJIQOVWB.js.map} +0 -0
  117. /package/dist/{chunk-WCZNQECQ.js.map → chunk-PEHYVSJG.js.map} +0 -0
  118. /package/dist/{chunk-DZD25NHW.js.map → chunk-SITF5EZM.js.map} +0 -0
  119. /package/dist/{chunk-ZBYVDXZG.js.map → chunk-SKDTGHCD.js.map} +0 -0
  120. /package/dist/{chunk-PGZSNNDA.js.map → chunk-THLQS2AW.js.map} +0 -0
  121. /package/dist/{chunk-ZAQ6WMJV.js.map → chunk-VCUXNKOY.js.map} +0 -0
  122. /package/dist/{chunk-VI6U2PJG.js.map → chunk-WVBJRFFM.js.map} +0 -0
  123. /package/dist/{chunk-KTXVQ7OM.js.map → chunk-WVKGO3Y5.js.map} +0 -0
  124. /package/dist/{chunk-YXI3BTQQ.js.map → chunk-X5PLVOJS.js.map} +0 -0
  125. /package/dist/{chunk-Z3H2K5PK.js.map → chunk-YAHTF4NO.js.map} +0 -0
  126. /package/dist/{chunk-4DMFK67G.js.map → chunk-YKRPWZ3G.js.map} +0 -0
  127. /package/dist/{chunk-V7PMQDDU.js.map → chunk-Z6G24ROK.js.map} +0 -0
  128. /package/dist/{chunk-K2VTGT45.js.map → chunk-Z6KROWH4.js.map} +0 -0
  129. /package/dist/{load-agent-defs-M6LRVISN.js.map → load-agent-defs-2H42B2OO.js.map} +0 -0
  130. /package/dist/{recompile-project-agents-G7ZM25PC.js.map → recompile-project-agents-QIAMBCM4.js.map} +0 -0
  131. /package/dist/{source-loader-BIAEDR5R.js.map → source-loader-CC6ZWKTI.js.map} +0 -0
@@ -12,7 +12,7 @@ import {
12
12
  typedFromEntries,
13
13
  typedKeys,
14
14
  typedValues
15
- } from "./chunk-IGOFZG3S.js";
15
+ } from "./chunk-7Z4N4JWQ.js";
16
16
  import {
17
17
  AUTHOR_HANDLE_PATTERN,
18
18
  CACHE_HASH_LENGTH,
@@ -57,7 +57,7 @@ import {
57
57
  editorConfigUrl,
58
58
  globalInstallRoot,
59
59
  marketplaceManifestPath
60
- } from "./chunk-G6G2FT2G.js";
60
+ } from "./chunk-5KB4I5J7.js";
61
61
  import {
62
62
  defaultCategories,
63
63
  defaultRules,
@@ -208,6 +208,15 @@ async function removeDirIfEmpty(dir) {
208
208
  }
209
209
  async function copy(src, dest) {
210
210
  await fs2.copy(src, dest);
211
+ await grantOwnerWrite(dest);
212
+ }
213
+ var OWNER_WRITE = 128;
214
+ async function grantOwnerWrite(target) {
215
+ const entry = await fs2.stat(target);
216
+ await fs2.chmod(target, entry.mode | OWNER_WRITE);
217
+ if (!entry.isDirectory()) return;
218
+ const children = await fs2.readdir(target);
219
+ await Promise.all(children.map((child) => grantOwnerWrite(path.join(target, child))));
211
220
  }
212
221
 
213
222
  // src/cli/utils/logger.ts
@@ -1145,7 +1154,6 @@ function sharedConfigNeedsTerminal(id) {
1145
1154
  `Run '${CLI_INVOKE_COMMAND} edit --from ${id}' from a terminal, or '${CLI_INVOKE_COMMAND} init --from ${id}' in a clean directory, which installs without removing anything.`
1146
1155
  ].join("\n");
1147
1156
  }
1148
- var SHARED_CONFIG_ONE_DIRECTION = "--ui and --from are the two directions of the same round trip: --ui hands this installation to the editor, and --from applies one back. Run one, then the other.";
1149
1157
  function globallyInstalledRemoved(otherProjects) {
1150
1158
  return [
1151
1159
  "These are installed globally, and a global install is shared by every project on this machine.",
@@ -1548,9 +1556,7 @@ var settingsFileSchema = z2.object({
1548
1556
  }).passthrough();
1549
1557
  var brandingConfigSchema = z2.object({
1550
1558
  /** Custom CLI name (e.g., "Acme Dev Tools") */
1551
- name: z2.string().exactOptional(),
1552
- /** Custom tagline shown in wizard header */
1553
- tagline: z2.string().exactOptional()
1559
+ name: z2.string().exactOptional()
1554
1560
  });
1555
1561
  var projectSourceConfigFields = z2.object({
1556
1562
  /** The marketplace this install reads skills from, as a path or URL */
@@ -1983,10 +1989,12 @@ ${getErrorMessage(error)}`
1983
1989
  return trimmed;
1984
1990
  }
1985
1991
  async function resolveBranding(projectDir) {
1986
- const effective = await loadEffectiveSourceConfig(projectDir);
1992
+ const [own, global] = await Promise.all([
1993
+ loadOwnProjectSourceConfig(projectDir),
1994
+ loadGlobalSourceConfig()
1995
+ ]);
1987
1996
  return {
1988
- name: effective?.config.branding?.name ?? DEFAULT_BRANDING.NAME,
1989
- tagline: effective?.config.branding?.tagline ?? DEFAULT_BRANDING.TAGLINE
1997
+ name: own?.branding?.name ?? global?.branding?.name ?? DEFAULT_BRANDING.NAME
1990
1998
  };
1991
1999
  }
1992
2000
  async function resolvePrimarySourceEntry(projectDir) {
@@ -11970,246 +11978,6 @@ var BUILT_IN_MATRIX2 = {
11970
11978
  "native-js": "web-utilities-native-js",
11971
11979
  rxjs: "web-utilities-rxjs",
11972
11980
  vueuse: "web-utilities-vueuse"
11973
- },
11974
- idToSlug: {
11975
- "ai-infrastructure-huggingface-inference": "huggingface-inference",
11976
- "ai-infrastructure-litellm": "litellm",
11977
- "ai-infrastructure-modal": "modal",
11978
- "ai-infrastructure-ollama": "ollama",
11979
- "ai-infrastructure-replicate": "replicate",
11980
- "ai-infrastructure-together-ai": "together-ai",
11981
- "ai-observability-langfuse": "langfuse",
11982
- "ai-observability-promptfoo": "promptfoo",
11983
- "ai-orchestration-langchain": "langchain",
11984
- "ai-orchestration-llamaindex": "llamaindex",
11985
- "ai-orchestration-vercel-ai-sdk": "vercel-ai-sdk",
11986
- "ai-patterns-tool-use-patterns": "tool-use-patterns",
11987
- "ai-provider-anthropic-sdk": "anthropic-sdk",
11988
- "ai-provider-claude-vision": "claude-vision",
11989
- "ai-provider-cohere-sdk": "cohere-sdk",
11990
- "ai-provider-elevenlabs": "elevenlabs",
11991
- "ai-provider-google-gemini-sdk": "google-gemini-sdk",
11992
- "ai-provider-mistral-sdk": "mistral-sdk",
11993
- "ai-provider-openai-sdk": "openai-sdk",
11994
- "ai-provider-openai-whisper": "openai-whisper",
11995
- "api-analytics-posthog-analytics": "posthog-analytics",
11996
- "api-analytics-setup-posthog": "setup-posthog",
11997
- "api-auth-better-auth-drizzle-hono": "better-auth-drizzle-hono",
11998
- "api-auth-clerk": "clerk",
11999
- "api-auth-nextauth": "nextauth",
12000
- "api-baas-appwrite": "appwrite",
12001
- "api-baas-firebase": "firebase",
12002
- "api-baas-neon": "neon",
12003
- "api-baas-planetscale": "planetscale",
12004
- "api-baas-supabase": "supabase",
12005
- "api-baas-turso": "turso",
12006
- "api-caching-strategies": "strategies",
12007
- "api-cms-payload": "payload",
12008
- "api-cms-sanity": "sanity",
12009
- "api-cms-strapi": "strapi",
12010
- "api-commerce-stripe": "stripe",
12011
- "api-database-cockroachdb": "cockroachdb",
12012
- "api-database-drizzle": "drizzle",
12013
- "api-database-edgedb": "edgedb",
12014
- "api-database-knex": "knex",
12015
- "api-database-mongodb": "mongodb",
12016
- "api-database-mongoose": "mongoose",
12017
- "api-database-mysql": "mysql",
12018
- "api-database-postgresql": "postgresql",
12019
- "api-database-prisma": "prisma",
12020
- "api-database-redis": "redis",
12021
- "api-database-sequelize": "sequelize",
12022
- "api-database-surrealdb": "surrealdb",
12023
- "api-database-typeorm": "typeorm",
12024
- "api-database-upstash": "upstash",
12025
- "api-database-vercel-kv": "vercel-kv",
12026
- "api-database-vercel-postgres": "vercel-postgres",
12027
- "api-email-resend-react-email": "resend-react-email",
12028
- "api-email-setup-resend": "setup-resend",
12029
- "api-flags-posthog-flags": "posthog-flags",
12030
- "api-framework-elysia": "elysia",
12031
- "api-framework-express": "express",
12032
- "api-framework-fastify": "fastify",
12033
- "api-framework-hono": "hono",
12034
- "api-framework-nestjs": "nestjs",
12035
- "api-graphql-apollo-server": "apollo-server",
12036
- "api-graphql-mercurius": "mercurius",
12037
- "api-graphql-yoga": "yoga",
12038
- "api-messaging-webhooks": "webhooks",
12039
- "api-observability-axiom-pino-sentry": "axiom-pino-sentry",
12040
- "api-observability-setup-axiom-pino-sentry": "setup-axiom-pino-sentry",
12041
- "api-performance-api-performance": "api-performance",
12042
- "api-queue-bullmq": "bullmq",
12043
- "api-search-elasticsearch": "elasticsearch",
12044
- "api-search-meilisearch": "meilisearch",
12045
- "api-search-xquik": "xquik",
12046
- "api-specs-openapi": "openapi",
12047
- "api-vector-db-chroma": "chroma",
12048
- "api-vector-db-pinecone": "pinecone",
12049
- "api-vector-db-qdrant": "qdrant",
12050
- "api-vector-db-weaviate": "weaviate",
12051
- "cli-framework-cli-commander": "cli-commander",
12052
- "cli-framework-oclif-ink": "oclif-ink",
12053
- "cli-prompts-clack": "clack",
12054
- "desktop-backend-tauri": "tauri-backend",
12055
- "desktop-framework-electron": "electron",
12056
- "desktop-framework-tauri": "tauri",
12057
- "desktop-ipc-electron": "electron-ipc",
12058
- "desktop-mobile-tauri": "tauri-mobile",
12059
- "desktop-multiwindow-electron": "electron-multiwindow",
12060
- "desktop-multiwindow-tauri": "tauri-multiwindow",
12061
- "desktop-packaging-electron-forge": "electron-forge",
12062
- "desktop-packaging-tauri": "tauri-bundling",
12063
- "desktop-plugins-tauri": "tauri-plugins",
12064
- "desktop-security-electron": "electron-security",
12065
- "desktop-security-tauri": "tauri-security",
12066
- "desktop-storage-electron": "electron-storage",
12067
- "desktop-testing-electron": "electron-testing",
12068
- "desktop-ui-electron": "electron-ui",
12069
- "desktop-updates-electron-updater": "electron-updater",
12070
- "infra-ci-cd-docker": "docker",
12071
- "infra-ci-cd-github-actions": "github-actions",
12072
- "infra-ci-cd-turborepo-ci": "turborepo-ci",
12073
- "infra-config-setup-env": "setup-env",
12074
- "infra-containers-kubernetes": "kubernetes",
12075
- "infra-iac-pulumi": "pulumi",
12076
- "infra-iac-sst": "sst",
12077
- "infra-iac-terraform": "terraform",
12078
- "infra-platform-aws-sdk": "aws-sdk",
12079
- "infra-platform-cloudflare-workers": "cloudflare-workers",
12080
- "infra-platform-netlify": "netlify",
12081
- "infra-platform-vercel": "vercel",
12082
- "meta-config-stack-detect": "stack-detect",
12083
- "meta-design-composable-components": "composable-components",
12084
- "meta-design-expressive-typescript": "expressive-typescript",
12085
- "meta-methodology-research-methodology": "research-methodology",
12086
- "meta-planning-ai-planning": "ai-planning",
12087
- "meta-planning-api-planning": "api-planning",
12088
- "meta-planning-cli-planning": "cli-planning",
12089
- "meta-planning-web-planning": "web-planning",
12090
- "meta-reviewing-ai-reviewing": "ai-reviewing",
12091
- "meta-reviewing-api-reviewing": "api-reviewing",
12092
- "meta-reviewing-cli-reviewing": "cli-reviewing",
12093
- "meta-reviewing-infra-reviewing": "infra-reviewing",
12094
- "meta-reviewing-reviewing": "reviewing",
12095
- "meta-reviewing-web-reviewing": "web-reviewing",
12096
- "mobile-animation-gesture-handler": "gesture-handler",
12097
- "mobile-animation-reanimated": "reanimated",
12098
- "mobile-animation-skia": "skia",
12099
- "mobile-background-tasks": "tasks",
12100
- "mobile-camera-vision-camera": "vision-camera",
12101
- "mobile-deep-linking-app-links": "app-links",
12102
- "mobile-deployment-eas": "eas",
12103
- "mobile-framework-expo": "expo",
12104
- "mobile-framework-react-native": "react-native",
12105
- "mobile-hardware-ble-nfc": "ble-nfc",
12106
- "mobile-navigation-expo-router": "expo-router",
12107
- "mobile-navigation-react-navigation": "react-navigation",
12108
- "mobile-notifications-push": "push",
12109
- "mobile-performance-react-native": "react-native-performance",
12110
- "mobile-security-react-native": "react-native-security",
12111
- "mobile-storage-mmkv": "mmkv",
12112
- "mobile-storage-sqlite-powersync": "sqlite-powersync",
12113
- "mobile-storage-watermelondb": "watermelondb",
12114
- "mobile-styling-nativewind": "nativewind",
12115
- "mobile-styling-unistyles": "unistyles",
12116
- "mobile-testing-detox": "detox",
12117
- "mobile-testing-maestro": "maestro",
12118
- "mobile-ui-components-react-native-paper": "react-native-paper",
12119
- "mobile-ui-components-tamagui": "tamagui",
12120
- "shared-monorepo-nx": "nx",
12121
- "shared-monorepo-pnpm-workspaces": "pnpm-workspaces",
12122
- "shared-monorepo-turborepo": "turborepo",
12123
- "shared-security-auth-security": "auth-security",
12124
- "shared-tooling-biome": "biome",
12125
- "shared-tooling-changesets": "changesets",
12126
- "shared-tooling-eslint-prettier": "eslint-prettier",
12127
- "shared-tooling-git-hooks": "git-hooks",
12128
- "shared-tooling-typescript-config": "typescript-config",
12129
- "web-3d-react-three-fiber": "react-three-fiber",
12130
- "web-accessibility-web-accessibility": "web-accessibility",
12131
- "web-animation-css-animations": "css-animations",
12132
- "web-animation-framer-motion": "framer-motion",
12133
- "web-animation-view-transitions": "view-transitions",
12134
- "web-data-fetching-graphql-apollo": "graphql-apollo",
12135
- "web-data-fetching-graphql-urql": "graphql-urql",
12136
- "web-data-fetching-swr": "swr",
12137
- "web-data-fetching-trpc": "trpc",
12138
- "web-dataviz-d3": "d3",
12139
- "web-dataviz-recharts": "recharts",
12140
- "web-dnd-dnd-kit": "dnd-kit",
12141
- "web-editor-lexical": "lexical",
12142
- "web-editor-tiptap": "tiptap",
12143
- "web-error-handling-error-boundaries": "error-boundaries",
12144
- "web-error-handling-result-types": "result-types",
12145
- "web-files-file-upload-patterns": "file-upload-patterns",
12146
- "web-files-image-handling": "image-handling",
12147
- "web-forms-react-hook-form": "react-hook-form",
12148
- "web-forms-tanstack-form": "tanstack-form",
12149
- "web-forms-vee-validate": "vee-validate",
12150
- "web-forms-zod-validation": "zod-validation",
12151
- "web-framework-angular-standalone": "angular-standalone",
12152
- "web-framework-react": "react",
12153
- "web-framework-solidjs": "solidjs",
12154
- "web-framework-svelte": "svelte",
12155
- "web-framework-vue-composition-api": "vue-composition-api",
12156
- "web-i18n-next-intl": "next-intl",
12157
- "web-i18n-react-intl": "react-intl",
12158
- "web-i18n-vue-i18n": "vue-i18n",
12159
- "web-maps-leaflet": "leaflet",
12160
- "web-maps-mapbox": "mapbox",
12161
- "web-meta-framework-astro": "astro",
12162
- "web-meta-framework-docusaurus": "docusaurus",
12163
- "web-meta-framework-nextjs": "nextjs",
12164
- "web-meta-framework-nuxt": "nuxt",
12165
- "web-meta-framework-qwik": "qwik",
12166
- "web-meta-framework-remix": "remix",
12167
- "web-meta-framework-sveltekit": "sveltekit",
12168
- "web-meta-framework-vitepress": "vitepress",
12169
- "web-mocks-msw": "msw",
12170
- "web-performance-web-performance": "web-performance",
12171
- "web-pwa-offline-first": "offline-first",
12172
- "web-pwa-service-workers": "service-workers",
12173
- "web-realtime-socket-io": "socket-io",
12174
- "web-realtime-sse": "sse",
12175
- "web-realtime-websockets": "websockets",
12176
- "web-routing-react-router": "react-router",
12177
- "web-routing-tanstack-router": "tanstack-router",
12178
- "web-server-state-react-query": "react-query",
12179
- "web-state-jotai": "jotai",
12180
- "web-state-mobx": "mobx",
12181
- "web-state-ngrx-signalstore": "ngrx-signalstore",
12182
- "web-state-pinia": "pinia",
12183
- "web-state-redux-toolkit": "redux-toolkit",
12184
- "web-state-zustand": "zustand",
12185
- "web-styling-cva": "cva",
12186
- "web-styling-design-tokens": "design-tokens",
12187
- "web-styling-scss-modules": "scss-modules",
12188
- "web-styling-tailwind": "tailwind",
12189
- "web-styling-theming": "theming",
12190
- "web-testing-cypress-e2e": "cypress-e2e",
12191
- "web-testing-playwright-e2e": "playwright-e2e",
12192
- "web-testing-react-testing-library": "react-testing-library",
12193
- "web-testing-visual-regression": "visual-regression",
12194
- "web-testing-vitest": "vitest",
12195
- "web-testing-vue-test-utils": "vue-test-utils",
12196
- "web-tooling-component-library": "component-library",
12197
- "web-tooling-storybook": "storybook",
12198
- "web-tooling-vite": "vite",
12199
- "web-ui-ant-design": "ant-design",
12200
- "web-ui-base-ui": "base-ui",
12201
- "web-ui-chakra-ui": "chakra-ui",
12202
- "web-ui-headless-ui": "headless-ui",
12203
- "web-ui-mantine": "mantine",
12204
- "web-ui-mui": "mui",
12205
- "web-ui-radix-ui": "radix-ui",
12206
- "web-ui-shadcn-ui": "shadcn-ui",
12207
- "web-ui-tanstack-table": "tanstack-table",
12208
- "web-ui-vuetify": "vuetify",
12209
- "web-utilities-date-fns": "date-fns",
12210
- "web-utilities-native-js": "native-js",
12211
- "web-utilities-rxjs": "rxjs",
12212
- "web-utilities-vueuse": "vueuse"
12213
11981
  }
12214
11982
  },
12215
11983
  generatedAt: "build"
@@ -14430,7 +14198,12 @@ async function readLocalSkillMetadata(skillDir) {
14430
14198
  return null;
14431
14199
  }
14432
14200
  const content = await readFile(metadataPath);
14433
- const result = localSkillMetadataSchema.safeParse(parseYaml(content));
14201
+ const read = readYaml(content);
14202
+ if (!read.parsed) {
14203
+ warn(`Invalid metadata.yaml at ${metadataPath}: ${read.reason}`);
14204
+ return null;
14205
+ }
14206
+ const result = localSkillMetadataSchema.safeParse(read.value);
14434
14207
  if (!result.success) {
14435
14208
  warn(`Invalid metadata.yaml at ${metadataPath}: ${formatZodIssues(result.error.issues)}`);
14436
14209
  return null;
@@ -14441,12 +14214,8 @@ async function injectForkedFromMetadata(destPath, skillId, contentHash, origin =
14441
14214
  const metadataPath = path9.join(destPath, STANDARD_FILES.METADATA_YAML);
14442
14215
  const rawContent = await readFile(metadataPath);
14443
14216
  const { yamlContent } = stripYamlSchemaComment(rawContent);
14444
- const parseResult = localSkillMetadataSchema.safeParse(parseYaml(yamlContent));
14445
- if (!parseResult.success) {
14446
- warn(`Malformed metadata.yaml at '${metadataPath}' \u2014 existing fields may be lost`);
14447
- }
14448
14217
  const metadata = {
14449
- ...parseResult.success ? parseResult.data : {},
14218
+ ...existingMetadataFields(yamlContent, metadataPath),
14450
14219
  forkedFrom: {
14451
14220
  skillId,
14452
14221
  contentHash,
@@ -14462,6 +14231,22 @@ async function writeMetadataYaml(filePath, metadata, schemaComment = "") {
14462
14231
  const yamlContent = stringifyYaml(metadata, { lineWidth: YAML_FORMATTING.LINE_WIDTH_NONE });
14463
14232
  await writeFile(filePath, schemaComment + yamlContent);
14464
14233
  }
14234
+ function readYaml(content) {
14235
+ try {
14236
+ return { parsed: true, value: parseYaml(content) };
14237
+ } catch (error) {
14238
+ return { parsed: false, reason: getErrorMessage(error) };
14239
+ }
14240
+ }
14241
+ function existingMetadataFields(yamlContent, metadataPath) {
14242
+ const read = readYaml(yamlContent);
14243
+ if (read.parsed) {
14244
+ const result = localSkillMetadataSchema.safeParse(read.value);
14245
+ if (result.success) return result.data;
14246
+ }
14247
+ warn(`Malformed metadata.yaml at '${metadataPath}' \u2014 existing fields may be lost`);
14248
+ return {};
14249
+ }
14465
14250
 
14466
14251
  // src/cli/lib/skills/skill-copier.ts
14467
14252
  import path10 from "path";
@@ -16800,6 +16585,12 @@ async function extractAllSkills(skillsDir) {
16800
16585
  // src/cli/lib/matrix/skill-resolution.ts
16801
16586
  import { unique as unique5, uniqueBy as uniqueBy3 } from "remeda";
16802
16587
  var AUTO_SYNTH_ORDER = 999;
16588
+ function warnOnDomainDisagreement(skill, decidedBy) {
16589
+ if (skill.domain === decidedBy.domain) return;
16590
+ warn(
16591
+ `Category '${skill.category}' has no definition, so its domain was taken from the first skill naming it \u2014 '${decidedBy.id}' (${decidedBy.domain}). '${skill.id}' declares '${skill.domain}' and will be filed under '${decidedBy.domain}'. Declare the category in the marketplace's own config, or make the two skills agree.`
16592
+ );
16593
+ }
16803
16594
  function synthesizeCategory(category, domain) {
16804
16595
  verbose(
16805
16596
  `Category '${category}' has no definition in skill-categories.ts \u2014 using auto-generated placeholder`
@@ -16823,10 +16614,9 @@ function claimSlug(slugMap, slug, id) {
16823
16614
  return;
16824
16615
  }
16825
16616
  slugMap.slugToId[slug] = id;
16826
- slugMap.idToSlug[id] = slug;
16827
16617
  }
16828
16618
  function buildSlugMap(skills) {
16829
- const slugMap = { slugToId: {}, idToSlug: {} };
16619
+ const slugMap = { slugToId: {} };
16830
16620
  for (const skill of skills) {
16831
16621
  claimSlug(slugMap, skill.slug, skill.id);
16832
16622
  }
@@ -16898,13 +16688,18 @@ function mergeMatrixWithSkills(categories, relationships, skills) {
16898
16688
  const slugMap = buildSlugMap(skills);
16899
16689
  const resolvedSkills = buildResolvedSkillMap(skills, categories, relationships, slugMap);
16900
16690
  const synthesizedCategories = { ...categories };
16691
+ const synthesizedFrom = /* @__PURE__ */ new Map();
16901
16692
  for (const skill of skills) {
16902
16693
  if (skill.category === LOCAL_PSEUDO_CATEGORY) continue;
16903
- if (!synthesizedCategories[skill.category]) {
16904
- const synthesized = synthesizeCategory(skill.category, skill.domain);
16905
- synthesizedCategories[skill.category] = synthesized;
16694
+ if (categories[skill.category]) continue;
16695
+ const already = synthesizedFrom.get(skill.category);
16696
+ if (already === void 0) {
16697
+ synthesizedCategories[skill.category] = synthesizeCategory(skill.category, skill.domain);
16698
+ synthesizedFrom.set(skill.category, skill);
16906
16699
  verbose(`Auto-synthesized category '${skill.category}' for skill '${skill.id}'`);
16700
+ continue;
16907
16701
  }
16702
+ warnOnDomainDisagreement(skill, already);
16908
16703
  }
16909
16704
  const unresolvedSlugs = collectUnresolvedSlugs(relationships, slugMap.slugToId);
16910
16705
  const merged = {
@@ -17097,10 +16892,19 @@ function getUnmetRequirementsReason(skillId, currentSelections) {
17097
16892
  const s = matrix.skills[id];
17098
16893
  return s ? getLabel(s) : id;
17099
16894
  });
17100
- return requirement.needsAny ? `requires ${joinWithConjunction(names, "or")}` : `requires ${joinWithConjunction(names, "and")}`;
16895
+ return withAuthorsReason(namesTheMissing(names, requirement.needsAny), requirement.reason);
17101
16896
  }
17102
16897
  return void 0;
17103
16898
  }
16899
+ function namesTheMissing(names, needsAny) {
16900
+ return `requires ${joinWithConjunction(names, needsAny ? "or" : "and")}`;
16901
+ }
16902
+ var REASON_BUDGET = 60;
16903
+ function withAuthorsReason(synthesised, reason) {
16904
+ const stated = reason.trim();
16905
+ if (stated === "") return synthesised;
16906
+ return `${synthesised} \u2014 ${truncateText(stated, REASON_BUDGET)}`;
16907
+ }
17104
16908
  function unmetRequirementsReasonFor(isSelected, skillId, currentSelections) {
17105
16909
  if (!isSelected) return {};
17106
16910
  const reason = getUnmetRequirementsReason(skillId, currentSelections);
@@ -18083,7 +17887,7 @@ var skillAudit = {
18083
17887
  classification: { class: "C", frameworks: ["nextjs"] },
18084
17888
  sources: [
18085
17889
  "skill body (next-axiom, @sentry/nextjs, next.config.ts wrapped withAxiom(withSentryConfig(...)), instrumentation.ts, sentry.{client,server,edge}.config.ts)",
18086
- 'SKILLS-09 (todo/skills.md) \u2014 "Next-only in all but name"'
17890
+ 'todo/skills.md \u2014 "Next-only in all but name"'
18087
17891
  ]
18088
17892
  },
18089
17893
  "api-observability-axiom-pino-sentry": {
@@ -18919,8 +18723,7 @@ function copyOfBuiltInMatrix() {
18919
18723
  categories: { ...BUILT_IN_MATRIX.categories },
18920
18724
  suggestedStacks: [...BUILT_IN_MATRIX.suggestedStacks],
18921
18725
  slugMap: {
18922
- slugToId: { ...BUILT_IN_MATRIX.slugMap.slugToId },
18923
- idToSlug: { ...BUILT_IN_MATRIX.slugMap.idToSlug }
18726
+ slugToId: { ...BUILT_IN_MATRIX.slugMap.slugToId }
18924
18727
  }
18925
18728
  };
18926
18729
  }
@@ -19115,6 +18918,10 @@ function undeclaredAgentsWarning(stack, undeclared) {
19115
18918
  const named = undeclared.map((name) => `'${name}'`).join(", ");
19116
18919
  return `Stack '${stack.id}' names ${undeclared.length} sub-agent(s) this CLI does not define: ${named}. Left out of the stack \u2014 a sub-agent must be one the CLI ships.`;
19117
18920
  }
18921
+ function withdrawnSkillsWarning(stack, withdrawn) {
18922
+ const named = withdrawn.map((id) => `'${id}'`).join(", ");
18923
+ return `Stack '${stack.id}' names ${withdrawn.length} skill(s) this marketplace's catalogue does not carry: ${named}. Left out of the stack \u2014 selecting it would install nothing.`;
18924
+ }
19118
18925
  function convertStackToResolvedStack(stack) {
19119
18926
  const { declared, undeclared } = declaredAgentsIn(stack);
19120
18927
  if (undeclared.length > 0) warn(undeclaredAgentsWarning(stack, undeclared));
@@ -19127,11 +18934,14 @@ function convertStackToResolvedStack(stack) {
19127
18934
  ({ agentId, agentConfig }) => [agentId, resolveStackAgentSkills(agentConfig)]
19128
18935
  )
19129
18936
  );
19130
- const allSkillIds = unique6(
18937
+ const named = unique6(
19131
18938
  agentConfigs.flatMap(
19132
18939
  ({ agentConfig }) => resolveAgentConfigToSkills(agentConfig).map((ref) => ref.id)
19133
18940
  )
19134
18941
  );
18942
+ const allSkillIds = named.filter((id) => id in matrix.skills);
18943
+ const withdrawn = named.filter((id) => !(id in matrix.skills));
18944
+ if (withdrawn.length > 0) warn(withdrawnSkillsWarning(stack, withdrawn));
19135
18945
  verbose(
19136
18946
  `Stack '${stack.id}' has ${allSkillIds.length} skills from ${agentConfigs.length} agents`
19137
18947
  );
@@ -19254,7 +19064,6 @@ export {
19254
19064
  carriedSkillsWritten,
19255
19065
  SHARED_CONFIG_APPLY,
19256
19066
  sharedConfigNeedsTerminal,
19257
- SHARED_CONFIG_ONE_DIRECTION,
19258
19067
  globallyInstalledRemoved,
19259
19068
  authoredHereKept,
19260
19069
  unplaceableKept,
@@ -19429,4 +19238,4 @@ export {
19429
19238
  detectMigrations,
19430
19239
  executeMigration
19431
19240
  };
19432
- //# sourceMappingURL=chunk-RVXI5VQU.js.map
19241
+ //# sourceMappingURL=chunk-V625APR6.js.map