@loomweaver/mcp 0.14.2 → 0.14.3
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 +3 -1
- package/dist/main.mjs +67 -49
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,7 +9,9 @@ is not inside this repo (a chat assistant, a remote client) can scaffold and val
|
|
|
9
9
|
- `list_generators` — the available generators.
|
|
10
10
|
- `scaffold_weaver` · `scaffold_frame_plugin` · `scaffold_distribution` · `scaffold_auth_source` ·
|
|
11
11
|
`scaffold_settings_store` · `scaffold_theme` · `scaffold_layout` — return a **file map**
|
|
12
|
-
(`path -> content`); the client writes the files into its project.
|
|
12
|
+
(`path -> content`); the client writes the files into its project. The server cannot read that
|
|
13
|
+
project, so pass `scaffold_weaver` the selector prefix your application declares as `prefix`;
|
|
14
|
+
without it the components are named `app-…`.
|
|
13
15
|
- `validate_manifest` · `validate_i18n` · `validate_catalog` · `validate_commands` — return structured `Finding[]`.
|
|
14
16
|
|
|
15
17
|
## Consume from npm (product repos)
|
package/dist/main.mjs
CHANGED
|
@@ -31645,6 +31645,45 @@ function i18nFile(weaver) {
|
|
|
31645
31645
|
return JSON.stringify(i18nBundle(weaver), null, 2) + "\n";
|
|
31646
31646
|
}
|
|
31647
31647
|
|
|
31648
|
+
// ../devkit/src/lib/scaffolds/scaffold-values.ts
|
|
31649
|
+
var NEUTRAL_PREFIX = "app";
|
|
31650
|
+
function stringValue(values, name) {
|
|
31651
|
+
const value = values[name];
|
|
31652
|
+
return typeof value === "string" ? value : void 0;
|
|
31653
|
+
}
|
|
31654
|
+
function booleanValue(values, name) {
|
|
31655
|
+
const value = values[name];
|
|
31656
|
+
return typeof value === "boolean" ? value : void 0;
|
|
31657
|
+
}
|
|
31658
|
+
var PLACEMENT_OPTIONS = [
|
|
31659
|
+
{
|
|
31660
|
+
name: "directory",
|
|
31661
|
+
type: "string",
|
|
31662
|
+
description: "Project root, relative to the workspace root.",
|
|
31663
|
+
workspaceOnly: true
|
|
31664
|
+
},
|
|
31665
|
+
{
|
|
31666
|
+
name: "tags",
|
|
31667
|
+
type: "string",
|
|
31668
|
+
description: "Comma-separated Nx tags for the project.",
|
|
31669
|
+
workspaceOnly: true
|
|
31670
|
+
},
|
|
31671
|
+
{
|
|
31672
|
+
name: "unitTestRunner",
|
|
31673
|
+
type: "string",
|
|
31674
|
+
description: "Test wiring to emit. 'vitest' uses @nx/angular:unit-test; 'none' emits no test target.",
|
|
31675
|
+
choices: ["vitest", "none"],
|
|
31676
|
+
default: "vitest",
|
|
31677
|
+
workspaceOnly: true
|
|
31678
|
+
}
|
|
31679
|
+
];
|
|
31680
|
+
var APP_OPTION = {
|
|
31681
|
+
name: "app",
|
|
31682
|
+
type: "string",
|
|
31683
|
+
description: "Application to drop into. Inferred when the workspace has exactly one.",
|
|
31684
|
+
workspaceOnly: true
|
|
31685
|
+
};
|
|
31686
|
+
|
|
31648
31687
|
// ../devkit/src/lib/validate/manifest.ts
|
|
31649
31688
|
var KNOWN_CAPABILITIES = [
|
|
31650
31689
|
"contributions",
|
|
@@ -31804,6 +31843,18 @@ function deriveCapabilities(features) {
|
|
|
31804
31843
|
}
|
|
31805
31844
|
return KNOWN_CAPABILITIES.filter((capability) => set2.has(capability));
|
|
31806
31845
|
}
|
|
31846
|
+
function resolvePrefix(prefix) {
|
|
31847
|
+
const trimmed = prefix?.trim();
|
|
31848
|
+
if (!trimmed) {
|
|
31849
|
+
return NEUTRAL_PREFIX;
|
|
31850
|
+
}
|
|
31851
|
+
if (!isKebabId(trimmed)) {
|
|
31852
|
+
throw new Error(
|
|
31853
|
+
`Selector prefix must be kebab-case (e.g. "acme"); got "${trimmed}".`
|
|
31854
|
+
);
|
|
31855
|
+
}
|
|
31856
|
+
return trimmed;
|
|
31857
|
+
}
|
|
31807
31858
|
function resolveWeaverInput(input) {
|
|
31808
31859
|
if (!isKebabId(input.id)) {
|
|
31809
31860
|
throw new Error(
|
|
@@ -31819,7 +31870,7 @@ function resolveWeaverInput(input) {
|
|
|
31819
31870
|
propertyName: toCamelCase(input.id),
|
|
31820
31871
|
capabilities,
|
|
31821
31872
|
features,
|
|
31822
|
-
prefix: input.prefix
|
|
31873
|
+
prefix: resolvePrefix(input.prefix),
|
|
31823
31874
|
importPath: input.importPath?.trim() || `@loomweaver/${input.id}-weaver`
|
|
31824
31875
|
};
|
|
31825
31876
|
}
|
|
@@ -32081,7 +32132,7 @@ function accessLine(weaver) {
|
|
|
32081
32132
|
}
|
|
32082
32133
|
|
|
32083
32134
|
// ../devkit/src/recipes/platform-version.ts
|
|
32084
|
-
var PLATFORM_VERSION = "0.14.
|
|
32135
|
+
var PLATFORM_VERSION = "0.14.3";
|
|
32085
32136
|
|
|
32086
32137
|
// ../devkit/src/recipes/readme-notes.ts
|
|
32087
32138
|
var UNTAGGED_NOTE = [
|
|
@@ -33524,52 +33575,6 @@ var layout = {
|
|
|
33524
33575
|
}
|
|
33525
33576
|
};
|
|
33526
33577
|
|
|
33527
|
-
// ../devkit/src/lib/scaffolds/scaffold-values.ts
|
|
33528
|
-
function stringValue(values, name) {
|
|
33529
|
-
const value = values[name];
|
|
33530
|
-
return typeof value === "string" ? value : void 0;
|
|
33531
|
-
}
|
|
33532
|
-
function booleanValue(values, name) {
|
|
33533
|
-
const value = values[name];
|
|
33534
|
-
return typeof value === "boolean" ? value : void 0;
|
|
33535
|
-
}
|
|
33536
|
-
var PLACEMENT_OPTIONS = [
|
|
33537
|
-
{
|
|
33538
|
-
name: "directory",
|
|
33539
|
-
type: "string",
|
|
33540
|
-
description: "Project root, relative to the workspace root.",
|
|
33541
|
-
workspaceOnly: true
|
|
33542
|
-
},
|
|
33543
|
-
{
|
|
33544
|
-
name: "tags",
|
|
33545
|
-
type: "string",
|
|
33546
|
-
description: "Comma-separated Nx tags for the project.",
|
|
33547
|
-
workspaceOnly: true
|
|
33548
|
-
},
|
|
33549
|
-
{
|
|
33550
|
-
name: "prefix",
|
|
33551
|
-
type: "string",
|
|
33552
|
-
description: "Selector prefix for generated components and directives.",
|
|
33553
|
-
default: "lw",
|
|
33554
|
-
pattern: KEBAB_ID_PATTERN,
|
|
33555
|
-
workspaceOnly: true
|
|
33556
|
-
},
|
|
33557
|
-
{
|
|
33558
|
-
name: "unitTestRunner",
|
|
33559
|
-
type: "string",
|
|
33560
|
-
description: "Test wiring to emit. 'vitest' uses @nx/angular:unit-test; 'none' emits no test target.",
|
|
33561
|
-
choices: ["vitest", "none"],
|
|
33562
|
-
default: "vitest",
|
|
33563
|
-
workspaceOnly: true
|
|
33564
|
-
}
|
|
33565
|
-
];
|
|
33566
|
-
var APP_OPTION = {
|
|
33567
|
-
name: "app",
|
|
33568
|
-
type: "string",
|
|
33569
|
-
description: "Application to drop into. Inferred when the workspace has exactly one.",
|
|
33570
|
-
workspaceOnly: true
|
|
33571
|
-
};
|
|
33572
|
-
|
|
33573
33578
|
// ../devkit/src/recipes/angular-distribution/scaffold.ts
|
|
33574
33579
|
function distributionInput(values) {
|
|
33575
33580
|
return {
|
|
@@ -33608,6 +33613,13 @@ var distributionScaffold = {
|
|
|
33608
33613
|
description: "Compose into the application already at that path, replacing the bootstrap files this scaffold owns and merging its build targets. Without it an existing project is an error.",
|
|
33609
33614
|
workspaceOnly: true
|
|
33610
33615
|
},
|
|
33616
|
+
{
|
|
33617
|
+
name: "prefix",
|
|
33618
|
+
type: "string",
|
|
33619
|
+
description: "Selector prefix the application declares for its components, which a weaver generated into it takes. Defaults to 'app'.",
|
|
33620
|
+
pattern: KEBAB_ID_PATTERN,
|
|
33621
|
+
workspaceOnly: true
|
|
33622
|
+
},
|
|
33611
33623
|
...PLACEMENT_OPTIONS
|
|
33612
33624
|
],
|
|
33613
33625
|
build: (values) => generate(angularDistribution, distributionInput(values)),
|
|
@@ -33771,6 +33783,12 @@ var weaverScaffold = {
|
|
|
33771
33783
|
description: "Import path for the workspace alias. Defaults to the workspace scope plus the project name.",
|
|
33772
33784
|
workspaceOnly: true
|
|
33773
33785
|
},
|
|
33786
|
+
{
|
|
33787
|
+
name: "prefix",
|
|
33788
|
+
type: "string",
|
|
33789
|
+
description: "Selector prefix for the generated components: the one the application declares, as the prefix of its project in angular.json or project.json. Read from the workspace where it can be, else 'app'.",
|
|
33790
|
+
pattern: KEBAB_ID_PATTERN
|
|
33791
|
+
},
|
|
33774
33792
|
APP_OPTION,
|
|
33775
33793
|
...PLACEMENT_OPTIONS
|
|
33776
33794
|
],
|
|
@@ -34570,7 +34588,7 @@ function inputSchema(descriptor) {
|
|
|
34570
34588
|
function createMcpServer() {
|
|
34571
34589
|
const server = new McpServer({
|
|
34572
34590
|
name: "loomweaver-devkit",
|
|
34573
|
-
version: "0.14.
|
|
34591
|
+
version: "0.14.3"
|
|
34574
34592
|
});
|
|
34575
34593
|
server.registerTool(
|
|
34576
34594
|
"list_generators",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loomweaver/mcp",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.3",
|
|
4
4
|
"description": "LoomWeaver: open-source plugin platform for Angular workbenches. The MCP server: scaffolding and validation as tools, so an AI assistant in any product repo can build weavers without a checkout.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"loomweaver",
|