@forumone/throughline-components 0.2.1 → 0.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @forumone/throughline-components
2
2
 
3
+ ## 0.2.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [a4b5108]
8
+ - @forumone/throughline-core@0.2.1
9
+
10
+ ## 0.2.2
11
+
12
+ ### Patch Changes
13
+
14
+ - [`123d2ea`](https://github.com/forumone/throughline/commit/123d2ea0172d9495b9e2c8e8c6039e623f5fba66) Thanks [@briangraves](https://github.com/briangraves)! - The plugin now attaches an in-process composition validator to the Payload instance under `Symbol.for('@forumone/throughline/components-validator')`. The publishing server's pipeline reads that symbol to validate compositions during the publish flow without round-tripping through the MCP transport. Adds the `'composition-validation'` capability to the plugin's registry entry.
15
+
3
16
  ## 0.2.1
4
17
 
5
18
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAA;AAQvE,OAAO,EAAE,KAAK,uBAAuB,EAAmB,MAAM,cAAc,CAAA;AAmB5E,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC,uBAAuB,CAmF9D,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAA;AAQvE,OAAO,EAAE,KAAK,uBAAuB,EAAmB,MAAM,cAAc,CAAA;AA+B5E,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC,uBAAuB,CAyF9D,CAAA"}
package/dist/plugin.js CHANGED
@@ -4,9 +4,17 @@ import { validateOptions } from './options.js';
4
4
  import { createManifestLoader } from './manifest-source.js';
5
5
  import { createTfidfMatcher } from './matching/index.js';
6
6
  import { createFindAntiPatternTool, createGetContractTool, createGetTokensTool, createGetVariantsTool, createListComponentsTool, createSuggestForIntentTool, createValidateCompositionTool, } from './tools/index.js';
7
+ import { validateComposition, } from './validation/composition.js';
7
8
  const PLUGIN_ID = '@forumone/throughline-components';
8
9
  const PLUGIN_VERSION = '0.1.0';
9
10
  const MCP_HANDLER_SYMBOL = Symbol.for('@forumone/throughline/components-mcp-handler');
11
+ /**
12
+ * Internal IPC point: peer plugins (publishing, etc.) read this symbol from
13
+ * the Payload instance to call composition validation directly without
14
+ * going through MCP. Keep this string in lockstep with the matching constant
15
+ * in the publishing package.
16
+ */
17
+ const VALIDATOR_SYMBOL = Symbol.for('@forumone/throughline/components-validator');
10
18
  export const componentsPlugin = (rawOptions) => (incomingConfig) => {
11
19
  if (rawOptions.enabled === false)
12
20
  return incomingConfig;
@@ -68,10 +76,16 @@ export const componentsPlugin = (rawOptions) => (incomingConfig) => {
68
76
  logger,
69
77
  });
70
78
  attachMcpHandler(payload, handler);
79
+ attachValidator(payload, loader);
71
80
  registry.register({
72
81
  id: PLUGIN_ID,
73
82
  version: PLUGIN_VERSION,
74
- capabilities: ['component-server', 'manifest-loading', 'intent-matching'],
83
+ capabilities: [
84
+ 'component-server',
85
+ 'manifest-loading',
86
+ 'intent-matching',
87
+ 'composition-validation',
88
+ ],
75
89
  });
76
90
  },
77
91
  };
@@ -84,4 +98,21 @@ function attachMcpHandler(payload, handler) {
84
98
  configurable: false,
85
99
  });
86
100
  }
101
+ /**
102
+ * Attaches a composition-validation function to the Payload instance under
103
+ * VALIDATOR_SYMBOL so peer plugins (the publishing server) can validate
104
+ * compositions in-process without going through the MCP transport.
105
+ */
106
+ function attachValidator(payload, loader) {
107
+ const validator = async (input) => {
108
+ const manifest = await loader.get();
109
+ return validateComposition(input, manifest);
110
+ };
111
+ Object.defineProperty(payload, VALIDATOR_SYMBOL, {
112
+ value: validator,
113
+ enumerable: false,
114
+ writable: false,
115
+ configurable: false,
116
+ });
117
+ }
87
118
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forumone/throughline-components",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "MCP server that exposes a design system manifest as conversational primitives for Throughline.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "zod": "^3.23.0",
43
- "@forumone/throughline-core": "0.2.0",
43
+ "@forumone/throughline-core": "0.2.1",
44
44
  "@forumone/throughline-design-contract": "0.2.0",
45
45
  "@forumone/throughline-plugin-contract": "0.0.0"
46
46
  },