agents-inc 0.157.0 → 0.158.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.
- package/CHANGELOG.md +20 -0
- package/dist/{chunk-PXGDA2SY.js → chunk-2PN4QXON.js} +2 -2
- package/dist/{chunk-WENBESZO.js → chunk-3NBXQSW2.js} +5 -5
- package/dist/{chunk-RVXI5VQU.js → chunk-3PJLLBUS.js} +61 -257
- package/dist/{chunk-RVXI5VQU.js.map → chunk-3PJLLBUS.js.map} +1 -1
- package/dist/{chunk-YG5YPVTJ.js → chunk-3Q2N7CSY.js} +4 -4
- package/dist/{chunk-PVPNVK3W.js → chunk-4ABNXKAR.js} +2 -2
- package/dist/{chunk-DCIC35R7.js → chunk-54QLV3OH.js} +4 -4
- package/dist/{chunk-QXPMQBEI.js → chunk-6DBE562W.js} +3 -3
- package/dist/{chunk-IGOFZG3S.js → chunk-7Z4N4JWQ.js} +1 -241
- package/dist/{chunk-IGOFZG3S.js.map → chunk-7Z4N4JWQ.js.map} +1 -1
- package/dist/{chunk-3E52LCYC.js → chunk-DAUY2SB3.js} +10 -10
- package/dist/{chunk-CEGHC7L5.js → chunk-DP6YQFVO.js} +4 -4
- package/dist/{chunk-MU2TQ5KK.js → chunk-EEAX7E2X.js} +2 -2
- package/dist/{chunk-ZAQ6WMJV.js → chunk-H25VRR2T.js} +5 -5
- package/dist/{chunk-Z3H2K5PK.js → chunk-H2DHTJKW.js} +8 -8
- package/dist/{chunk-4KHUHPX4.js → chunk-H4CL23HG.js} +3 -3
- package/dist/{chunk-RLU2IXD3.js → chunk-IK6YOXZH.js} +3 -3
- package/dist/{chunk-V7PMQDDU.js → chunk-JG3B47P3.js} +4 -4
- package/dist/{chunk-QO4XD5V5.js → chunk-KVVXINCJ.js} +3 -3
- package/dist/{chunk-4EPJWN7C.js → chunk-L4FHSOL5.js} +3 -3
- package/dist/{chunk-24IGOJ7E.js → chunk-LKI3ENGQ.js} +3 -3
- package/dist/{chunk-K2VTGT45.js → chunk-OQB2CKBT.js} +5 -5
- package/dist/{chunk-XOZAKFTS.js → chunk-PNRLBPGS.js} +11 -11
- package/dist/{chunk-VI6U2PJG.js → chunk-PZNXBORZ.js} +3 -3
- package/dist/{chunk-YKFCUVHG.js → chunk-Q7CAE5NN.js} +3 -3
- package/dist/{chunk-ZBYVDXZG.js → chunk-SJ4T5YLG.js} +2 -2
- package/dist/{chunk-4CIAZOTD.js → chunk-TPQ5M3BW.js} +2 -2
- package/dist/{chunk-O4K42CJB.js → chunk-TUXXBEBB.js} +2 -2
- package/dist/{chunk-LDBVIPTP.js → chunk-WMVOJY6V.js} +3 -3
- package/dist/{chunk-KTXVQ7OM.js → chunk-X52QUV4U.js} +3 -3
- package/dist/{chunk-PGZSNNDA.js → chunk-XNYHMRVJ.js} +4 -4
- package/dist/commands/build/marketplace.js +5 -5
- package/dist/commands/build/plugins.js +5 -5
- package/dist/commands/compile.js +8 -8
- package/dist/commands/doctor.js +9 -9
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +27 -27
- package/dist/commands/eject.js +8 -8
- package/dist/commands/init.js +27 -27
- package/dist/commands/list.js +6 -6
- package/dist/commands/new/marketplace.js +5 -5
- package/dist/commands/search.js +8 -8
- package/dist/commands/share.js +6 -6
- package/dist/commands/uninstall.js +8 -8
- package/dist/commands/update.js +4 -4
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/domain-selection.js +5 -5
- package/dist/components/wizard/run-wizard-session.js +18 -18
- package/dist/components/wizard/skill-agent-summary.js +4 -4
- package/dist/components/wizard/source-grid.js +2 -2
- package/dist/components/wizard/stack-selection.js +4 -4
- package/dist/components/wizard/step-agents.js +5 -5
- package/dist/components/wizard/step-build.js +5 -5
- package/dist/components/wizard/step-confirm.js +7 -7
- package/dist/components/wizard/step-sources.js +5 -5
- package/dist/components/wizard/step-stack.js +5 -5
- package/dist/components/wizard/summary-panel.js +6 -6
- package/dist/components/wizard/wizard-layout.js +7 -7
- package/dist/components/wizard/wizard.js +17 -17
- package/dist/hooks/init.js +27 -27
- package/dist/load-agent-defs-2VYAV5GL.js +13 -0
- package/dist/{recompile-project-agents-G7ZM25PC.js → recompile-project-agents-NG5DCPHJ.js} +7 -7
- package/dist/{source-loader-BIAEDR5R.js → source-loader-CO2FZ3OO.js} +3 -3
- package/dist/stores/wizard-store.js +3 -3
- package/package.json +2 -4
- package/dist/load-agent-defs-M6LRVISN.js +0 -13
- /package/dist/{chunk-PXGDA2SY.js.map → chunk-2PN4QXON.js.map} +0 -0
- /package/dist/{chunk-WENBESZO.js.map → chunk-3NBXQSW2.js.map} +0 -0
- /package/dist/{chunk-YG5YPVTJ.js.map → chunk-3Q2N7CSY.js.map} +0 -0
- /package/dist/{chunk-PVPNVK3W.js.map → chunk-4ABNXKAR.js.map} +0 -0
- /package/dist/{chunk-DCIC35R7.js.map → chunk-54QLV3OH.js.map} +0 -0
- /package/dist/{chunk-QXPMQBEI.js.map → chunk-6DBE562W.js.map} +0 -0
- /package/dist/{chunk-3E52LCYC.js.map → chunk-DAUY2SB3.js.map} +0 -0
- /package/dist/{chunk-CEGHC7L5.js.map → chunk-DP6YQFVO.js.map} +0 -0
- /package/dist/{chunk-MU2TQ5KK.js.map → chunk-EEAX7E2X.js.map} +0 -0
- /package/dist/{chunk-ZAQ6WMJV.js.map → chunk-H25VRR2T.js.map} +0 -0
- /package/dist/{chunk-Z3H2K5PK.js.map → chunk-H2DHTJKW.js.map} +0 -0
- /package/dist/{chunk-4KHUHPX4.js.map → chunk-H4CL23HG.js.map} +0 -0
- /package/dist/{chunk-RLU2IXD3.js.map → chunk-IK6YOXZH.js.map} +0 -0
- /package/dist/{chunk-V7PMQDDU.js.map → chunk-JG3B47P3.js.map} +0 -0
- /package/dist/{chunk-QO4XD5V5.js.map → chunk-KVVXINCJ.js.map} +0 -0
- /package/dist/{chunk-4EPJWN7C.js.map → chunk-L4FHSOL5.js.map} +0 -0
- /package/dist/{chunk-24IGOJ7E.js.map → chunk-LKI3ENGQ.js.map} +0 -0
- /package/dist/{chunk-K2VTGT45.js.map → chunk-OQB2CKBT.js.map} +0 -0
- /package/dist/{chunk-XOZAKFTS.js.map → chunk-PNRLBPGS.js.map} +0 -0
- /package/dist/{chunk-VI6U2PJG.js.map → chunk-PZNXBORZ.js.map} +0 -0
- /package/dist/{chunk-YKFCUVHG.js.map → chunk-Q7CAE5NN.js.map} +0 -0
- /package/dist/{chunk-ZBYVDXZG.js.map → chunk-SJ4T5YLG.js.map} +0 -0
- /package/dist/{chunk-4CIAZOTD.js.map → chunk-TPQ5M3BW.js.map} +0 -0
- /package/dist/{chunk-O4K42CJB.js.map → chunk-TUXXBEBB.js.map} +0 -0
- /package/dist/{chunk-LDBVIPTP.js.map → chunk-WMVOJY6V.js.map} +0 -0
- /package/dist/{chunk-KTXVQ7OM.js.map → chunk-X52QUV4U.js.map} +0 -0
- /package/dist/{chunk-PGZSNNDA.js.map → chunk-XNYHMRVJ.js.map} +0 -0
- /package/dist/{load-agent-defs-M6LRVISN.js.map → load-agent-defs-2VYAV5GL.js.map} +0 -0
- /package/dist/{recompile-project-agents-G7ZM25PC.js.map → recompile-project-agents-NG5DCPHJ.js.map} +0 -0
- /package/dist/{source-loader-BIAEDR5R.js.map → source-loader-CO2FZ3OO.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,26 @@ Each release has detailed notes in its own file under [`changelogs/`](./changelo
|
|
|
7
7
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
8
8
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
9
9
|
|
|
10
|
+
## [0.158.0] - 2026-08-24
|
|
11
|
+
|
|
12
|
+
**A rule author's reason reaches the grid, three defects leave the shipped surface, and the E2E suite stops describing states the CLI cannot produce**
|
|
13
|
+
|
|
14
|
+
- The grid now says WHY a requirement is needed, in the rule author's own words. `requires[].reason` has been required by the schema all along and nothing rendered it; it is clipped at 60 characters because the cell wraps rather than elides and the catalogue's longest reason is 242 (CLI-757)
|
|
15
|
+
- `uninstall` survives a `metadata.yaml` it cannot parse instead of dying before it deletes anything, a skill you eject is one you can edit, and `doctor` counts one skill as one skill (CLI-790, CLI-814)
|
|
16
|
+
- Two compiler-API checkers land — boundary-union casts and `symbol | file` doc tables — and the five the row argued against stay unbuilt with its reasons intact (CLI-652, CLI-679)
|
|
17
|
+
- The E2E suite shares two frozen fixtures instead of building one per file: 87 files lose the `beforeAll`/`afterAll` ceremony, and a plain source measures at 10ms, so the per-file sharing had bought nothing (CLI-736)
|
|
18
|
+
- A fixture's `config.ts` is now rendered by the product's own writer. The two disagreed on field order, entry spacing, the hoisted variables and the stack compaction — so every assertion over a fixture config was pinned to the fixture rather than to the product (CLI-730)
|
|
19
|
+
- `flattenCliOutput` and `globalHomeFor` were each written twice; both are now single, tested helpers (CLI-770, CLI-689)
|
|
20
|
+
- The slug map has one direction, because nothing read the other, and a synthesised category keeps the domain the source declared (CLI-650)
|
|
21
|
+
- One build per task: three `pretest*` hooks were a second build racing turbo's first, and two `tsup` runs with `clean: true` on one `dist/` aborted a push with no legible error (CLI-771, CLI-793, CLI-795, CLI-813)
|
|
22
|
+
- Six assertions that could not have failed, each repaired and mutation-proved — a `?? []` that cannot tell absence from emptiness, a `toBeGreaterThan(0)` no swap can redden, a `toContain(``)` true of every string (CLI-647, CLI-803, CLI-804, CLI-807, CLI-810, CLI-788)
|
|
23
|
+
- Removed: `expectCompiledAgents`, with zero call sites, and an options bag on `expectValidAgentMarkdown` that no caller could reach (CLI-778)
|
|
24
|
+
- The task-ID backlog closes to its irreducible core, an eighth of the size the row claimed (CLI-547, CLI-742)
|
|
25
|
+
- Web: the editor offers a loaded marketplace's own categories as placements, and the site header reads at the type system's scale (CLI-815, WWW-08)
|
|
26
|
+
- Retired by measurement rather than by work, each with its evidence in `todo/archive.md` (CLI-557, CLI-596, CLI-613, CLI-648, CLI-692, CLI-746, CLI-761, CLI-789, CLI-796, CLI-797, CLI-801, CLI-802, CLI-805, CLI-806, CLI-808, CLI-809, CLI-812, CLI-817)
|
|
27
|
+
|
|
28
|
+
See [changelogs/0.158.0.md](./changelogs/0.158.0.md) for full details.
|
|
29
|
+
|
|
10
30
|
## [0.157.0] - 2026-08-23
|
|
11
31
|
|
|
12
32
|
**The accuracy programme lands: scope travels end to end, every command prints the name the installation configured, and a run that cannot finish says so**
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-WCZNQECQ.js";
|
|
13
13
|
import {
|
|
14
14
|
getSkillById
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-7Z4N4JWQ.js";
|
|
16
16
|
import {
|
|
17
17
|
CLI_COLORS
|
|
18
18
|
} from "./chunk-G6G2FT2G.js";
|
|
@@ -265,4 +265,4 @@ var CategoryGrid = ({
|
|
|
265
265
|
export {
|
|
266
266
|
CategoryGrid
|
|
267
267
|
};
|
|
268
|
-
//# sourceMappingURL=chunk-
|
|
268
|
+
//# sourceMappingURL=chunk-2PN4QXON.js.map
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getDomainDisplayName
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-KVVXINCJ.js";
|
|
5
5
|
import {
|
|
6
6
|
CheckboxGrid
|
|
7
7
|
} from "./chunk-KUZBMEWR.js";
|
|
8
8
|
import {
|
|
9
9
|
orderDomains,
|
|
10
10
|
useWizardStore
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IK6YOXZH.js";
|
|
12
12
|
import {
|
|
13
13
|
DOMAIN_DESCRIPTIONS
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-3PJLLBUS.js";
|
|
15
15
|
import {
|
|
16
16
|
matrix,
|
|
17
17
|
typedEntries
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-7Z4N4JWQ.js";
|
|
19
19
|
|
|
20
20
|
// src/cli/components/wizard/domain-selection.tsx
|
|
21
21
|
import { useMemo } from "react";
|
|
@@ -56,4 +56,4 @@ var DomainSelection = () => {
|
|
|
56
56
|
export {
|
|
57
57
|
DomainSelection
|
|
58
58
|
};
|
|
59
|
-
//# sourceMappingURL=chunk-
|
|
59
|
+
//# sourceMappingURL=chunk-3NBXQSW2.js.map
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
typedFromEntries,
|
|
13
13
|
typedKeys,
|
|
14
14
|
typedValues
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-7Z4N4JWQ.js";
|
|
16
16
|
import {
|
|
17
17
|
AUTHOR_HANDLE_PATTERN,
|
|
18
18
|
CACHE_HASH_LENGTH,
|
|
@@ -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
|
|
@@ -11970,246 +11979,6 @@ var BUILT_IN_MATRIX2 = {
|
|
|
11970
11979
|
"native-js": "web-utilities-native-js",
|
|
11971
11980
|
rxjs: "web-utilities-rxjs",
|
|
11972
11981
|
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
11982
|
}
|
|
12214
11983
|
},
|
|
12215
11984
|
generatedAt: "build"
|
|
@@ -14430,7 +14199,12 @@ async function readLocalSkillMetadata(skillDir) {
|
|
|
14430
14199
|
return null;
|
|
14431
14200
|
}
|
|
14432
14201
|
const content = await readFile(metadataPath);
|
|
14433
|
-
const
|
|
14202
|
+
const read = readYaml(content);
|
|
14203
|
+
if (!read.parsed) {
|
|
14204
|
+
warn(`Invalid metadata.yaml at ${metadataPath}: ${read.reason}`);
|
|
14205
|
+
return null;
|
|
14206
|
+
}
|
|
14207
|
+
const result = localSkillMetadataSchema.safeParse(read.value);
|
|
14434
14208
|
if (!result.success) {
|
|
14435
14209
|
warn(`Invalid metadata.yaml at ${metadataPath}: ${formatZodIssues(result.error.issues)}`);
|
|
14436
14210
|
return null;
|
|
@@ -14441,12 +14215,8 @@ async function injectForkedFromMetadata(destPath, skillId, contentHash, origin =
|
|
|
14441
14215
|
const metadataPath = path9.join(destPath, STANDARD_FILES.METADATA_YAML);
|
|
14442
14216
|
const rawContent = await readFile(metadataPath);
|
|
14443
14217
|
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
14218
|
const metadata = {
|
|
14449
|
-
...
|
|
14219
|
+
...existingMetadataFields(yamlContent, metadataPath),
|
|
14450
14220
|
forkedFrom: {
|
|
14451
14221
|
skillId,
|
|
14452
14222
|
contentHash,
|
|
@@ -14462,6 +14232,22 @@ async function writeMetadataYaml(filePath, metadata, schemaComment = "") {
|
|
|
14462
14232
|
const yamlContent = stringifyYaml(metadata, { lineWidth: YAML_FORMATTING.LINE_WIDTH_NONE });
|
|
14463
14233
|
await writeFile(filePath, schemaComment + yamlContent);
|
|
14464
14234
|
}
|
|
14235
|
+
function readYaml(content) {
|
|
14236
|
+
try {
|
|
14237
|
+
return { parsed: true, value: parseYaml(content) };
|
|
14238
|
+
} catch (error) {
|
|
14239
|
+
return { parsed: false, reason: getErrorMessage(error) };
|
|
14240
|
+
}
|
|
14241
|
+
}
|
|
14242
|
+
function existingMetadataFields(yamlContent, metadataPath) {
|
|
14243
|
+
const read = readYaml(yamlContent);
|
|
14244
|
+
if (read.parsed) {
|
|
14245
|
+
const result = localSkillMetadataSchema.safeParse(read.value);
|
|
14246
|
+
if (result.success) return result.data;
|
|
14247
|
+
}
|
|
14248
|
+
warn(`Malformed metadata.yaml at '${metadataPath}' \u2014 existing fields may be lost`);
|
|
14249
|
+
return {};
|
|
14250
|
+
}
|
|
14465
14251
|
|
|
14466
14252
|
// src/cli/lib/skills/skill-copier.ts
|
|
14467
14253
|
import path10 from "path";
|
|
@@ -16800,6 +16586,12 @@ async function extractAllSkills(skillsDir) {
|
|
|
16800
16586
|
// src/cli/lib/matrix/skill-resolution.ts
|
|
16801
16587
|
import { unique as unique5, uniqueBy as uniqueBy3 } from "remeda";
|
|
16802
16588
|
var AUTO_SYNTH_ORDER = 999;
|
|
16589
|
+
function warnOnDomainDisagreement(skill, decidedBy) {
|
|
16590
|
+
if (skill.domain === decidedBy.domain) return;
|
|
16591
|
+
warn(
|
|
16592
|
+
`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.`
|
|
16593
|
+
);
|
|
16594
|
+
}
|
|
16803
16595
|
function synthesizeCategory(category, domain) {
|
|
16804
16596
|
verbose(
|
|
16805
16597
|
`Category '${category}' has no definition in skill-categories.ts \u2014 using auto-generated placeholder`
|
|
@@ -16823,10 +16615,9 @@ function claimSlug(slugMap, slug, id) {
|
|
|
16823
16615
|
return;
|
|
16824
16616
|
}
|
|
16825
16617
|
slugMap.slugToId[slug] = id;
|
|
16826
|
-
slugMap.idToSlug[id] = slug;
|
|
16827
16618
|
}
|
|
16828
16619
|
function buildSlugMap(skills) {
|
|
16829
|
-
const slugMap = { slugToId: {}
|
|
16620
|
+
const slugMap = { slugToId: {} };
|
|
16830
16621
|
for (const skill of skills) {
|
|
16831
16622
|
claimSlug(slugMap, skill.slug, skill.id);
|
|
16832
16623
|
}
|
|
@@ -16898,13 +16689,18 @@ function mergeMatrixWithSkills(categories, relationships, skills) {
|
|
|
16898
16689
|
const slugMap = buildSlugMap(skills);
|
|
16899
16690
|
const resolvedSkills = buildResolvedSkillMap(skills, categories, relationships, slugMap);
|
|
16900
16691
|
const synthesizedCategories = { ...categories };
|
|
16692
|
+
const synthesizedFrom = /* @__PURE__ */ new Map();
|
|
16901
16693
|
for (const skill of skills) {
|
|
16902
16694
|
if (skill.category === LOCAL_PSEUDO_CATEGORY) continue;
|
|
16903
|
-
if (
|
|
16904
|
-
|
|
16905
|
-
|
|
16695
|
+
if (categories[skill.category]) continue;
|
|
16696
|
+
const already = synthesizedFrom.get(skill.category);
|
|
16697
|
+
if (already === void 0) {
|
|
16698
|
+
synthesizedCategories[skill.category] = synthesizeCategory(skill.category, skill.domain);
|
|
16699
|
+
synthesizedFrom.set(skill.category, skill);
|
|
16906
16700
|
verbose(`Auto-synthesized category '${skill.category}' for skill '${skill.id}'`);
|
|
16701
|
+
continue;
|
|
16907
16702
|
}
|
|
16703
|
+
warnOnDomainDisagreement(skill, already);
|
|
16908
16704
|
}
|
|
16909
16705
|
const unresolvedSlugs = collectUnresolvedSlugs(relationships, slugMap.slugToId);
|
|
16910
16706
|
const merged = {
|
|
@@ -17097,10 +16893,19 @@ function getUnmetRequirementsReason(skillId, currentSelections) {
|
|
|
17097
16893
|
const s = matrix.skills[id];
|
|
17098
16894
|
return s ? getLabel(s) : id;
|
|
17099
16895
|
});
|
|
17100
|
-
return
|
|
16896
|
+
return withAuthorsReason(namesTheMissing(names, requirement.needsAny), requirement.reason);
|
|
17101
16897
|
}
|
|
17102
16898
|
return void 0;
|
|
17103
16899
|
}
|
|
16900
|
+
function namesTheMissing(names, needsAny) {
|
|
16901
|
+
return `requires ${joinWithConjunction(names, needsAny ? "or" : "and")}`;
|
|
16902
|
+
}
|
|
16903
|
+
var REASON_BUDGET = 60;
|
|
16904
|
+
function withAuthorsReason(synthesised, reason) {
|
|
16905
|
+
const stated = reason.trim();
|
|
16906
|
+
if (stated === "") return synthesised;
|
|
16907
|
+
return `${synthesised} \u2014 ${truncateText(stated, REASON_BUDGET)}`;
|
|
16908
|
+
}
|
|
17104
16909
|
function unmetRequirementsReasonFor(isSelected, skillId, currentSelections) {
|
|
17105
16910
|
if (!isSelected) return {};
|
|
17106
16911
|
const reason = getUnmetRequirementsReason(skillId, currentSelections);
|
|
@@ -18083,7 +17888,7 @@ var skillAudit = {
|
|
|
18083
17888
|
classification: { class: "C", frameworks: ["nextjs"] },
|
|
18084
17889
|
sources: [
|
|
18085
17890
|
"skill body (next-axiom, @sentry/nextjs, next.config.ts wrapped withAxiom(withSentryConfig(...)), instrumentation.ts, sentry.{client,server,edge}.config.ts)",
|
|
18086
|
-
'
|
|
17891
|
+
'todo/skills.md \u2014 "Next-only in all but name"'
|
|
18087
17892
|
]
|
|
18088
17893
|
},
|
|
18089
17894
|
"api-observability-axiom-pino-sentry": {
|
|
@@ -18919,8 +18724,7 @@ function copyOfBuiltInMatrix() {
|
|
|
18919
18724
|
categories: { ...BUILT_IN_MATRIX.categories },
|
|
18920
18725
|
suggestedStacks: [...BUILT_IN_MATRIX.suggestedStacks],
|
|
18921
18726
|
slugMap: {
|
|
18922
|
-
slugToId: { ...BUILT_IN_MATRIX.slugMap.slugToId }
|
|
18923
|
-
idToSlug: { ...BUILT_IN_MATRIX.slugMap.idToSlug }
|
|
18727
|
+
slugToId: { ...BUILT_IN_MATRIX.slugMap.slugToId }
|
|
18924
18728
|
}
|
|
18925
18729
|
};
|
|
18926
18730
|
}
|
|
@@ -19429,4 +19233,4 @@ export {
|
|
|
19429
19233
|
detectMigrations,
|
|
19430
19234
|
executeMigration
|
|
19431
19235
|
};
|
|
19432
|
-
//# sourceMappingURL=chunk-
|
|
19236
|
+
//# sourceMappingURL=chunk-3PJLLBUS.js.map
|