@agentyx/core 0.8.0 → 0.9.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/README.md +5 -1
- package/dist/index.d.mts +159 -147
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +62 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/skills/cargo-project-verification/SKILL.md +48 -0
- package/skills/rust-filesystem-safety/SKILL.md +46 -0
- package/skills/rust-idiomatic-development/SKILL.md +46 -0
- package/skills/rust-testing-portability/SKILL.md +41 -0
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/errors.ts","../src/issues.ts","../src/config/errors.ts","../src/config/json-schema.ts","../src/config/schema.ts","../src/config/loader.ts","../src/project-graph.ts","../src/pack/schema.ts","../src/pack/registry.ts","../src/skill/schema.ts","../src/skill/registry.ts","../src/config/project.ts","../src/hook/schema.ts","../src/hook/registry.ts","../src/mcp/schema.ts","../src/mcp/registry.ts","../src/tool/schema.ts","../src/tool/registry.ts","../src/config/resolver.ts","../src/hook/built-in.ts","../src/hook/errors.ts","../src/hook/resolver.ts","../src/manifest/errors.ts","../src/manifest/schema.ts","../src/manifest/io.ts","../src/mcp/built-in.ts","../src/mcp/errors.ts","../src/mcp/resolver.ts","../src/meta.ts","../src/pack/errors.ts","../src/pack/resolver.ts","../src/project/signals.ts","../src/project/detector.ts","../src/project/executable.ts","../src/project/recommend.ts","../src/skill/built-in.ts","../src/skill/errors.ts","../src/skill/markdown.ts","../src/skill/resolver.ts","../src/source/errors.ts","../src/source/schema.ts","../src/source/inspection.ts","../src/source/registry.ts","../src/tool/built-in.ts","../src/tool/errors.ts","../src/tool/resolver.ts"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":["_$___project_graph_js0.ProjectGraph","_$__registry_js0.HookRegistry","_$__registry_js0.McpServerRegistry","_$__registry_js0.ToolRegistry"],"sources":["../src/errors.ts","../src/issues.ts","../src/config/errors.ts","../src/config/json-schema.ts","../src/config/schema.ts","../src/config/loader.ts","../src/project-graph.ts","../src/pack/schema.ts","../src/pack/registry.ts","../src/skill/schema.ts","../src/skill/registry.ts","../src/config/project.ts","../src/hook/schema.ts","../src/hook/registry.ts","../src/mcp/schema.ts","../src/mcp/registry.ts","../src/tool/schema.ts","../src/tool/registry.ts","../src/config/resolver.ts","../src/hook/built-in.ts","../src/hook/errors.ts","../src/hook/resolver.ts","../src/manifest/errors.ts","../src/manifest/schema.ts","../src/manifest/io.ts","../src/mcp/built-in.ts","../src/mcp/errors.ts","../src/mcp/resolver.ts","../src/meta.ts","../src/pack/errors.ts","../src/pack/resolver.ts","../src/project/signals.ts","../src/project/detector.ts","../src/project/executable.ts","../src/project/recommend.ts","../src/skill/built-in.ts","../src/skill/errors.ts","../src/skill/markdown.ts","../src/skill/resolver.ts","../src/source/errors.ts","../src/source/schema.ts","../src/source/inspection.ts","../src/source/registry.ts","../src/tool/built-in.ts","../src/tool/errors.ts","../src/tool/resolver.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -543,6 +543,17 @@ const builtInPacks = [
|
|
|
543
543
|
"typescript-modern"
|
|
544
544
|
]
|
|
545
545
|
},
|
|
546
|
+
{
|
|
547
|
+
name: "rust",
|
|
548
|
+
category: "language",
|
|
549
|
+
description: "Modern, idiomatic Rust development with safe ownership, Cargo verification, portability, and filesystem-aware engineering.",
|
|
550
|
+
skills: [
|
|
551
|
+
"rust-idiomatic-development",
|
|
552
|
+
"rust-filesystem-safety",
|
|
553
|
+
"rust-testing-portability",
|
|
554
|
+
"cargo-project-verification"
|
|
555
|
+
]
|
|
556
|
+
},
|
|
546
557
|
{
|
|
547
558
|
name: "angular",
|
|
548
559
|
category: "framework",
|
|
@@ -923,6 +934,10 @@ const builtInSkillNames = [
|
|
|
923
934
|
"typescript-strict",
|
|
924
935
|
"typescript-modeling",
|
|
925
936
|
"typescript-modern",
|
|
937
|
+
"rust-idiomatic-development",
|
|
938
|
+
"rust-filesystem-safety",
|
|
939
|
+
"rust-testing-portability",
|
|
940
|
+
"cargo-project-verification",
|
|
926
941
|
"angular-modern",
|
|
927
942
|
"angular-signals",
|
|
928
943
|
"angular-architecture",
|
|
@@ -2002,14 +2017,15 @@ async function collectProjectSignals(projectDir) {
|
|
|
2002
2017
|
const packageJsonPath = join(projectDir, "package.json");
|
|
2003
2018
|
const packageJsonResult = await readPackageJson(packageJsonPath);
|
|
2004
2019
|
const packageJson = packageJsonResult.data;
|
|
2005
|
-
const [packageManager, containers, ci, monorepo, repositorySize, tsconfig, rtkAvailable] = await Promise.all([
|
|
2020
|
+
const [packageManager, containers, ci, monorepo, repositorySize, tsconfig, rtkAvailable, rust] = await Promise.all([
|
|
2006
2021
|
detectPackageManager(projectDir, packageJson),
|
|
2007
2022
|
detectContainerFiles(projectDir),
|
|
2008
2023
|
detectCiFiles(projectDir),
|
|
2009
2024
|
detectMonorepo(projectDir, packageJson),
|
|
2010
2025
|
scanRepositorySize(projectDir),
|
|
2011
2026
|
exists(join(projectDir, "tsconfig.json")),
|
|
2012
|
-
isExecutableOnPath(builtInToolRegistry.get("rtk").command)
|
|
2027
|
+
isExecutableOnPath(builtInToolRegistry.get("rtk").command),
|
|
2028
|
+
detectRust(projectDir)
|
|
2013
2029
|
]);
|
|
2014
2030
|
return {
|
|
2015
2031
|
projectDir,
|
|
@@ -2028,6 +2044,7 @@ async function collectProjectSignals(projectDir) {
|
|
|
2028
2044
|
tsconfig
|
|
2029
2045
|
},
|
|
2030
2046
|
angular: findDependency(packageJson, "@angular/core"),
|
|
2047
|
+
rust,
|
|
2031
2048
|
testFrameworks: findAnyDependency(packageJson, TEST_FRAMEWORK_PATTERNS),
|
|
2032
2049
|
browserTesting: findAnyDependency(packageJson, BROWSER_TESTING_PATTERNS),
|
|
2033
2050
|
observability: findAnyDependency(packageJson, OBSERVABILITY_PATTERNS),
|
|
@@ -2108,6 +2125,37 @@ function findAnyDependency(packageJson, patterns) {
|
|
|
2108
2125
|
}
|
|
2109
2126
|
return matches;
|
|
2110
2127
|
}
|
|
2128
|
+
async function detectRust(projectDir) {
|
|
2129
|
+
let manifest;
|
|
2130
|
+
try {
|
|
2131
|
+
manifest = await readFile(join(projectDir, "Cargo.toml"), "utf8");
|
|
2132
|
+
} catch (cause) {
|
|
2133
|
+
if (isNotFound(cause) || isNotReadableAsFile(cause)) return {
|
|
2134
|
+
detected: false,
|
|
2135
|
+
workspace: false,
|
|
2136
|
+
cargoLock: false,
|
|
2137
|
+
toolchainFile: void 0
|
|
2138
|
+
};
|
|
2139
|
+
throw cause;
|
|
2140
|
+
}
|
|
2141
|
+
const workspace = /^\s*\[workspace\]/m.test(manifest);
|
|
2142
|
+
const detected = workspace || /^\s*\[package\]/m.test(manifest);
|
|
2143
|
+
const [cargoLock, toolchainToml, toolchain] = await Promise.all([
|
|
2144
|
+
exists(join(projectDir, "Cargo.lock")),
|
|
2145
|
+
exists(join(projectDir, "rust-toolchain.toml")),
|
|
2146
|
+
exists(join(projectDir, "rust-toolchain"))
|
|
2147
|
+
]);
|
|
2148
|
+
return {
|
|
2149
|
+
detected,
|
|
2150
|
+
workspace,
|
|
2151
|
+
cargoLock,
|
|
2152
|
+
toolchainFile: toolchainToml ? "rust-toolchain.toml" : toolchain ? "rust-toolchain" : void 0
|
|
2153
|
+
};
|
|
2154
|
+
}
|
|
2155
|
+
function isNotReadableAsFile(cause) {
|
|
2156
|
+
const code = cause instanceof Error ? cause.code : void 0;
|
|
2157
|
+
return code === "EISDIR" || code === "ENOTDIR";
|
|
2158
|
+
}
|
|
2111
2159
|
async function detectContainerFiles(projectDir) {
|
|
2112
2160
|
const [dockerfile, dockerCompose, compose] = await Promise.all([
|
|
2113
2161
|
exists(join(projectDir, "Dockerfile")),
|
|
@@ -2275,9 +2323,11 @@ function recommendCapabilities(signals, options = {}) {
|
|
|
2275
2323
|
}
|
|
2276
2324
|
function recommendPacks(signals) {
|
|
2277
2325
|
const packs = [];
|
|
2278
|
-
|
|
2326
|
+
const softwareReasons = [...signals.packageJson.present ? ["package.json"] : [], ...signals.rust.detected ? ["Cargo.toml"] : []];
|
|
2327
|
+
if (softwareReasons.length > 0) packs.push(packRecommendation("technical", "high", [`${softwareReasons.join(" and ")} detected — baseline engineering practices apply to any software project.`]));
|
|
2279
2328
|
const typescriptReasons = [...signals.typescript.dependency !== void 0 ? [dependencyReason("TypeScript", signals.typescript.dependency)] : [], ...signals.typescript.tsconfig ? ["tsconfig.json detected."] : []];
|
|
2280
2329
|
if (typescriptReasons.length > 0) packs.push(packRecommendation("typescript", "high", typescriptReasons));
|
|
2330
|
+
if (signals.rust.detected) packs.push(packRecommendation("rust", "high", rustReasons(signals)));
|
|
2281
2331
|
if (signals.angular !== void 0) packs.push(packRecommendation("angular", "high", [dependencyReason("@angular/core", signals.angular)]));
|
|
2282
2332
|
const testingMatches = dedupeMatches([...signals.testFrameworks, ...signals.browserTesting]);
|
|
2283
2333
|
if (testingMatches.length > 0) packs.push(packRecommendation("testing", "high", testingMatches.map((match) => dependencyReason(match.dependency, match))));
|
|
@@ -2292,6 +2342,15 @@ function recommendPacks(signals) {
|
|
|
2292
2342
|
if (signals.accessibilityTooling.length > 0) packs.push(packRecommendation("accessibility", "high", signals.accessibilityTooling.map((match) => dependencyReason(match.dependency, match))));
|
|
2293
2343
|
return packs;
|
|
2294
2344
|
}
|
|
2345
|
+
function rustReasons(signals) {
|
|
2346
|
+
const { workspace, cargoLock, toolchainFile } = signals.rust;
|
|
2347
|
+
return [
|
|
2348
|
+
"Cargo.toml detected.",
|
|
2349
|
+
...workspace ? ["Cargo workspace (workspace Cargo.toml)."] : [],
|
|
2350
|
+
...cargoLock ? ["Cargo.lock detected."] : [],
|
|
2351
|
+
...toolchainFile !== void 0 ? [`${toolchainFile} detected.`] : []
|
|
2352
|
+
];
|
|
2353
|
+
}
|
|
2295
2354
|
function recommendOptionalCapabilities(signals, activePacks, configuredPacks) {
|
|
2296
2355
|
const capabilities = [];
|
|
2297
2356
|
const playwrightMatch = signals.browserTesting.find((match) => match.dependency === "@playwright/test");
|