@forumone/throughline 1.7.0 → 1.8.0-next-5b5ee85
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 +13 -0
- package/dist/components/options.d.ts +12 -0
- package/dist/components/options.d.ts.map +1 -1
- package/dist/components/options.js.map +1 -1
- package/dist/components/plugin.d.ts +2 -0
- package/dist/components/plugin.d.ts.map +1 -1
- package/dist/components/plugin.js +34 -2
- package/dist/components/plugin.js.map +1 -1
- package/dist/components/tools/recipes.d.ts +33 -0
- package/dist/components/tools/recipes.d.ts.map +1 -0
- package/dist/components/tools/recipes.js +167 -0
- package/dist/components/tools/recipes.js.map +1 -0
- package/dist/components/tools/validate-composition.d.ts +2 -0
- package/dist/components/tools/validate-composition.d.ts.map +1 -1
- package/dist/components/tools/validate-composition.js +2 -1
- package/dist/components/tools/validate-composition.js.map +1 -1
- package/dist/components/validation/composition.d.ts +6 -0
- package/dist/components/validation/composition.d.ts.map +1 -1
- package/dist/components/validation/composition.js +15 -1
- package/dist/components/validation/composition.js.map +1 -1
- package/dist/content/blocks.js +1 -1
- package/dist/content/blocks.js.map +1 -1
- package/dist/content/guards.d.ts +3 -1
- package/dist/content/guards.d.ts.map +1 -1
- package/dist/content/guards.js +5 -1
- package/dist/content/guards.js.map +1 -1
- package/dist/content/options.d.ts +7 -0
- package/dist/content/options.d.ts.map +1 -1
- package/dist/content/plugin.d.ts.map +1 -1
- package/dist/content/plugin.js +1 -0
- package/dist/content/plugin.js.map +1 -1
- package/dist/content/tools.d.ts +2 -0
- package/dist/content/tools.d.ts.map +1 -1
- package/dist/content/tools.js.map +1 -1
- package/dist/content/write.js +1 -1
- package/dist/content/write.js.map +1 -1
- package/dist/publishing/options.d.ts +21 -0
- package/dist/publishing/options.d.ts.map +1 -1
- package/dist/publishing/options.js.map +1 -1
- package/dist/publishing/pipeline/steps/composition.d.ts +5 -0
- package/dist/publishing/pipeline/steps/composition.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/composition.js +89 -13
- package/dist/publishing/pipeline/steps/composition.js.map +1 -1
- package/dist/throughline.d.ts +11 -1
- package/dist/throughline.d.ts.map +1 -1
- package/dist/throughline.js +8 -1
- package/dist/throughline.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @forumone/throughline
|
|
2
2
|
|
|
3
|
+
## 1.8.0-next-5b5ee85
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 204009a: The publish gate for composed sections. The new `publishing.recipes` option names the block that holds a recipe and the collection recipes live in. With it, the composition step checks that each such block's recipe exists, is approved, still passes `lintRecipe` against the current manifest, and has its required content filled, instead of calling the block an unknown component. The components plugin now also attaches its loaded manifest for this. The composition validator also checks placement: a component placed only `inline` can't be a block on a page by itself.
|
|
8
|
+
- 5b5ee85: Adds the recipe MCP tools to the components plugin (`get_recipe_vocabulary`, `validate_recipe`, and `save_recipe`, which writes drafts only), turned on with the new `throughline({ recipes: { blockType, collection } })`. The same setting configures the publish gate and lets `validate_composition` and the content write tools treat that block as a composed section instead of an unknown component.
|
|
9
|
+
|
|
10
|
+
**Upgrading: a migration.** The key collection gains three checkbox columns. Run `migrate:create` and apply it before deploying.
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- @forumone/throughline-design-system@1.8.0-next-5b5ee85
|
|
15
|
+
|
|
3
16
|
## 1.7.0
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -29,6 +29,18 @@ export interface ComponentsPluginOptions extends Omit<BaseCorePluginOptions, 'ro
|
|
|
29
29
|
manifest: ManifestSource;
|
|
30
30
|
/** Optional: how the plugin matches intents to components. Defaults to TF-IDF. */
|
|
31
31
|
matching?: MatchingConfig;
|
|
32
|
+
/**
|
|
33
|
+
* Optional: composed sections (forumone-2026#801). With it, the plugin adds
|
|
34
|
+
* `get_recipe_vocabulary`, `validate_recipe` and `save_recipe`, and
|
|
35
|
+
* `validate_composition` treats `blockType` as a composed section rather than
|
|
36
|
+
* an unknown component.
|
|
37
|
+
*/
|
|
38
|
+
recipes?: {
|
|
39
|
+
/** The block a composed section is stored as. */
|
|
40
|
+
blockType: string;
|
|
41
|
+
/** The collection `save_recipe` writes drafts to. */
|
|
42
|
+
collection: string;
|
|
43
|
+
};
|
|
32
44
|
/**
|
|
33
45
|
* Where to put this server's MCP tools so Payload's own MCP plugin can serve
|
|
34
46
|
* them.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/components/options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAA;AAE5E,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAErE,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAOD,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC;IACzF,6DAA6D;IAC7D,QAAQ,EAAE,cAAc,CAAA;IACxB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/components/options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAA;AAE5E,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAErE,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAOD,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC;IACzF,6DAA6D;IAC7D,QAAQ,EAAE,cAAc,CAAA;IACxB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QACR,iDAAiD;QACjD,SAAS,EAAE,MAAM,CAAA;QACjB,qDAAqD;QACrD,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IAED;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAC5B;AAgBD,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASxC,CAAA;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,uBAAuB,GAAG,uBAAuB,CAOzF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/components/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/components/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA0DvB,MAAM,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACxD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IAC9D,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACtB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QACrB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KACxD,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,oBAAoB;IAC9B,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC3D,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgC;IAC9D,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { CorePlugin } from '../plugin-contract/index.js';
|
|
2
2
|
import { type ComponentsPluginOptions } from './options.js';
|
|
3
|
+
/** Where the loaded manifest is attached, for peers that need the manifest itself. */
|
|
4
|
+
export declare const MANIFEST_SYMBOL: unique symbol;
|
|
3
5
|
export declare const componentsPlugin: CorePlugin<ComponentsPluginOptions>;
|
|
4
6
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/components/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAI7D,OAAO,EAAE,KAAK,uBAAuB,EAAmB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/components/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAI7D,OAAO,EAAE,KAAK,uBAAuB,EAAmB,MAAM,cAAc,CAAA;AAmC5E,sFAAsF;AACtF,eAAO,MAAM,eAAe,eAA0D,CAAA;AAEtF,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC,uBAAuB,CA2F9D,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { getAuditWriter } from '../audit/plugin.js';
|
|
|
4
4
|
import { validateOptions } from './options.js';
|
|
5
5
|
import { createManifestLoader } from './manifest-source.js';
|
|
6
6
|
import { createTfidfMatcher } from './matching/index.js';
|
|
7
|
+
import { RECIPE_TOOL_DESCRIPTORS, createGetRecipeVocabularyTool, createSaveRecipeTool, createValidateRecipeTool, } from './tools/recipes.js';
|
|
7
8
|
import { COMPONENTS_TOOL_DESCRIPTORS, createFindAntiPatternTool, createGetContractTool, createGetTokensTool, createGetVariantsTool, createListComponentsTool, createSuggestForIntentTool, createValidateCompositionTool, } from './tools/index.js';
|
|
8
9
|
import { validateComposition, } from './validation/composition.js';
|
|
9
10
|
const PLUGIN_ID = '@forumone/throughline/components';
|
|
@@ -15,6 +16,8 @@ const PLUGIN_VERSION = '0.1.0';
|
|
|
15
16
|
* in the publishing package.
|
|
16
17
|
*/
|
|
17
18
|
const VALIDATOR_SYMBOL = Symbol.for('@forumone/throughline/components-validator');
|
|
19
|
+
/** Where the loaded manifest is attached, for peers that need the manifest itself. */
|
|
20
|
+
export const MANIFEST_SYMBOL = Symbol.for('@forumone/throughline/components-manifest');
|
|
18
21
|
export const componentsPlugin = (rawOptions) => (incomingConfig) => {
|
|
19
22
|
if (rawOptions.enabled === false)
|
|
20
23
|
return incomingConfig;
|
|
@@ -27,7 +30,9 @@ export const componentsPlugin = (rawOptions) => (incomingConfig) => {
|
|
|
27
30
|
denies any tool it has no checkbox for. This plugin must therefore come
|
|
28
31
|
before `mcpPlugin` in the host's array.
|
|
29
32
|
*/
|
|
30
|
-
options.mcpTools?.declare(
|
|
33
|
+
options.mcpTools?.declare(options.recipes
|
|
34
|
+
? [...COMPONENTS_TOOL_DESCRIPTORS, ...RECIPE_TOOL_DESCRIPTORS]
|
|
35
|
+
: COMPONENTS_TOOL_DESCRIPTORS, { serverName: 'components' });
|
|
31
36
|
return {
|
|
32
37
|
...incomingConfig,
|
|
33
38
|
onInit: async (payload) => {
|
|
@@ -54,8 +59,24 @@ export const componentsPlugin = (rawOptions) => (incomingConfig) => {
|
|
|
54
59
|
createGetVariantsTool(loader),
|
|
55
60
|
createGetTokensTool(loader),
|
|
56
61
|
createSuggestForIntentTool({ loader, matcher, auditWriter, maxRecommendations }),
|
|
57
|
-
createValidateCompositionTool({
|
|
62
|
+
createValidateCompositionTool({
|
|
63
|
+
loader,
|
|
64
|
+
auditWriter,
|
|
65
|
+
...(options.recipes ? { composedBlockType: options.recipes.blockType } : {}),
|
|
66
|
+
}),
|
|
58
67
|
createFindAntiPatternTool({ loader, auditWriter }),
|
|
68
|
+
...(options.recipes
|
|
69
|
+
? [
|
|
70
|
+
createGetRecipeVocabularyTool({ loader }),
|
|
71
|
+
createValidateRecipeTool({ loader, auditWriter }),
|
|
72
|
+
createSaveRecipeTool({
|
|
73
|
+
payload,
|
|
74
|
+
loader,
|
|
75
|
+
auditWriter,
|
|
76
|
+
collection: options.recipes.collection,
|
|
77
|
+
}),
|
|
78
|
+
]
|
|
79
|
+
: []),
|
|
59
80
|
];
|
|
60
81
|
// Payload's own MCP plugin, and the only transport these tools have.
|
|
61
82
|
// `onInit` is both the earliest they can exist and still early enough
|
|
@@ -91,5 +112,16 @@ function attachValidator(payload, loader) {
|
|
|
91
112
|
writable: false,
|
|
92
113
|
configurable: false,
|
|
93
114
|
});
|
|
115
|
+
/*
|
|
116
|
+
The manifest itself, for the publish step's recipe check (forumone-2026#801):
|
|
117
|
+
a composed section is linted against the design system as it is at publish,
|
|
118
|
+
which is this loader's answer, not a copy taken when the recipe was saved.
|
|
119
|
+
*/
|
|
120
|
+
Object.defineProperty(payload, MANIFEST_SYMBOL, {
|
|
121
|
+
value: async () => (await loader.get()).raw,
|
|
122
|
+
enumerable: false,
|
|
123
|
+
writable: false,
|
|
124
|
+
configurable: false,
|
|
125
|
+
});
|
|
94
126
|
}
|
|
95
127
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/components/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAgC,eAAe,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAGL,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AAEpC,MAAM,SAAS,GAAG,kCAAkC,CAAA;AACpD,MAAM,cAAc,GAAG,OAAO,CAAA;AAC9B;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAA;AAEjF,MAAM,CAAC,MAAM,gBAAgB,GAC3B,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,cAAc,EAAE,EAAE;IACjC,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK;QAAE,OAAO,cAAc,CAAA;IAEvD,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;IAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,CAAA;IAC/E,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,EAAE,kBAAkB,IAAI,CAAC,CAAA;IAEpE;;;;;MAKE;IACF,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,2BAA2B,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/components/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Payload } from 'payload';
|
|
2
|
+
import type { AuditWriter } from '../../audit/writer.js';
|
|
3
|
+
import type { McpToolDescriptor } from '../../mcp/collector.js';
|
|
4
|
+
import type { McpToolContext, McpToolDefinition } from '../../plugin-contract/mcp.js';
|
|
5
|
+
import type { ManifestLoader } from '../manifest-source.js';
|
|
6
|
+
export declare const RECIPE_TOOLS: {
|
|
7
|
+
readonly getRecipeVocabulary: {
|
|
8
|
+
readonly name: "get_recipe_vocabulary";
|
|
9
|
+
readonly description: "What a composed section (a recipe) may be made of: every primitive — layouts with their slots, content pieces with the kind of field they show — with the exact values each prop allows; the components that may be placed inside a section, with their fields and variants; and the rules a recipe is held to. Read this before writing one.";
|
|
10
|
+
};
|
|
11
|
+
readonly validateRecipe: {
|
|
12
|
+
readonly name: "validate_recipe";
|
|
13
|
+
readonly description: "Checks a recipe — { contract, tree } — against the design system as it is now, without saving it. Returns every problem with its path in the tree and what to do instead. Run it until it returns none, then save_recipe.";
|
|
14
|
+
};
|
|
15
|
+
readonly saveRecipe: {
|
|
16
|
+
readonly name: "save_recipe";
|
|
17
|
+
readonly description: "Saves a recipe as a draft, or updates a draft one by id. Refused if it does not pass validate_recipe, or if the recipe is approved (an approved recipe does not change: save a new one). A person approves it in the admin; until then no page using it can be published.";
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export declare const RECIPE_TOOL_DESCRIPTORS: readonly McpToolDescriptor[];
|
|
21
|
+
export interface RecipeToolDeps {
|
|
22
|
+
payload: Payload;
|
|
23
|
+
loader: ManifestLoader;
|
|
24
|
+
auditWriter: AuditWriter;
|
|
25
|
+
/** The collection recipes are saved in. */
|
|
26
|
+
collection: string;
|
|
27
|
+
/** Who may save. Default: a user with the `admin` or `editor` role. */
|
|
28
|
+
canUse?: (ctx: McpToolContext) => boolean;
|
|
29
|
+
}
|
|
30
|
+
export declare function createGetRecipeVocabularyTool(deps: Pick<RecipeToolDeps, 'loader'>): McpToolDefinition;
|
|
31
|
+
export declare function createValidateRecipeTool(deps: Pick<RecipeToolDeps, 'loader' | 'auditWriter'>): McpToolDefinition;
|
|
32
|
+
export declare function createSaveRecipeTool(deps: RecipeToolDeps): McpToolDefinition;
|
|
33
|
+
//# sourceMappingURL=recipes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../../src/components/tools/recipes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,KAAK,OAAO,EAAuB,MAAM,SAAS,CAAA;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAc3D,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAgB6B,CAAA;AAEtD,eAAO,MAAM,uBAAuB,EAAE,SAAS,iBAAiB,EAAgC,CAAA;AAEhG,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;IACxB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAA;CAC1C;AAgBD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,iBAAiB,CA6BrG;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,aAAa,CAAC,GACnD,iBAAiB,CAmBnB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,iBAAiB,CA+E5E"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MAX_DEPTH, MAX_NODES, lintRecipe } from '@forumone/throughline-design-system/recipes';
|
|
3
|
+
import { ValidationError } from 'payload';
|
|
4
|
+
import { auditContext } from '../../mcp/audit-context.js';
|
|
5
|
+
import { deniedEnvelope } from '../../mcp/envelope.js';
|
|
6
|
+
import { withMeta } from '../../mcp/meta.js';
|
|
7
|
+
/*
|
|
8
|
+
The tools for composing a section the design system does not have
|
|
9
|
+
(forumone-2026#801): what a recipe may be made of, whether one passes, and
|
|
10
|
+
saving one as a draft.
|
|
11
|
+
|
|
12
|
+
A recipe is linted against the manifest as it is now on every one of these,
|
|
13
|
+
so `validate_recipe` is the loop an agent runs until the errors are gone, and
|
|
14
|
+
`save_recipe` refuses what it would refuse. Saving never approves: a person
|
|
15
|
+
does that in the admin, once, and only then can a page using the recipe go
|
|
16
|
+
live.
|
|
17
|
+
*/
|
|
18
|
+
export const RECIPE_TOOLS = {
|
|
19
|
+
getRecipeVocabulary: {
|
|
20
|
+
name: 'get_recipe_vocabulary',
|
|
21
|
+
description: 'What a composed section (a recipe) may be made of: every primitive — layouts with their slots, content pieces with the kind of field they show — with the exact values each prop allows; the components that may be placed inside a section, with their fields and variants; and the rules a recipe is held to. Read this before writing one.',
|
|
22
|
+
},
|
|
23
|
+
validateRecipe: {
|
|
24
|
+
name: 'validate_recipe',
|
|
25
|
+
description: 'Checks a recipe — { contract, tree } — against the design system as it is now, without saving it. Returns every problem with its path in the tree and what to do instead. Run it until it returns none, then save_recipe.',
|
|
26
|
+
},
|
|
27
|
+
saveRecipe: {
|
|
28
|
+
name: 'save_recipe',
|
|
29
|
+
description: 'Saves a recipe as a draft, or updates a draft one by id. Refused if it does not pass validate_recipe, or if the recipe is approved (an approved recipe does not change: save a new one). A person approves it in the admin; until then no page using it can be published.',
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
export const RECIPE_TOOL_DESCRIPTORS = Object.values(RECIPE_TOOLS);
|
|
33
|
+
const recipeShape = {
|
|
34
|
+
contract: z
|
|
35
|
+
.record(z.string(), z.unknown())
|
|
36
|
+
.describe('The provisional component contract: name, intent, content.fields, antiExamples…'),
|
|
37
|
+
tree: z
|
|
38
|
+
.record(z.string(), z.unknown())
|
|
39
|
+
.describe('The root node, usually { primitive: "Section", slots: { children: [...] } }.'),
|
|
40
|
+
};
|
|
41
|
+
function editorOrAdmin(ctx) {
|
|
42
|
+
const roles = ctx.user?.roles ?? [];
|
|
43
|
+
return roles.includes('admin') || roles.includes('editor');
|
|
44
|
+
}
|
|
45
|
+
export function createGetRecipeVocabularyTool(deps) {
|
|
46
|
+
return {
|
|
47
|
+
...RECIPE_TOOLS.getRecipeVocabulary,
|
|
48
|
+
inputSchema: z.object({}),
|
|
49
|
+
handler: async () => {
|
|
50
|
+
const manifest = (await deps.loader.get()).raw;
|
|
51
|
+
const components = Object.values(manifest.components)
|
|
52
|
+
.filter((c) => c.composition.placement.includes('inline'))
|
|
53
|
+
.map((c) => ({
|
|
54
|
+
name: c.name,
|
|
55
|
+
description: c.description,
|
|
56
|
+
fields: c.content.fields.map((f) => ({ name: f.name, type: f.type, required: f.required })),
|
|
57
|
+
...(c.content.variants?.length ? { variants: c.content.variants.map((v) => v.name) } : {}),
|
|
58
|
+
}));
|
|
59
|
+
return {
|
|
60
|
+
primitives: Object.values(manifest.primitives ?? {}),
|
|
61
|
+
components,
|
|
62
|
+
rules: [
|
|
63
|
+
'The root is a layout primitive, usually Section.',
|
|
64
|
+
'A primitive node is { primitive, props?, slots?, content? }; a component node is { component, fields }.',
|
|
65
|
+
'Every word comes from one of the contract’s content fields: bind it with { field: "<name>" }. Every declared field must be shown.',
|
|
66
|
+
'A prop takes only a value its primitive lists. A component field may be a literal only if it is a boolean, or a select whose value is one of the component’s variants.',
|
|
67
|
+
'Headings start at level 2 and do not skip a level. An image field is required.',
|
|
68
|
+
`At most ${MAX_DEPTH} levels deep and ${MAX_NODES} nodes.`,
|
|
69
|
+
'The contract’s placement is ["section"], its intent at least 50 characters, and it has at least one anti-example.',
|
|
70
|
+
],
|
|
71
|
+
};
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export function createValidateRecipeTool(deps) {
|
|
76
|
+
const inputSchema = withMeta(recipeShape);
|
|
77
|
+
return {
|
|
78
|
+
...RECIPE_TOOLS.validateRecipe,
|
|
79
|
+
inputSchema,
|
|
80
|
+
handler: async (input, ctx) => {
|
|
81
|
+
const issues = lintRecipe({ contract: input.contract, tree: input.tree }, (await deps.loader.get()).raw);
|
|
82
|
+
await deps.auditWriter({
|
|
83
|
+
...auditContext(ctx, input._meta),
|
|
84
|
+
action: 'design.validate',
|
|
85
|
+
mcpServer: 'component',
|
|
86
|
+
mcpTool: RECIPE_TOOLS.validateRecipe.name,
|
|
87
|
+
});
|
|
88
|
+
return { valid: !issues.some((i) => i.severity === 'error'), issues };
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
export function createSaveRecipeTool(deps) {
|
|
93
|
+
const inputSchema = withMeta({
|
|
94
|
+
...recipeShape,
|
|
95
|
+
id: z
|
|
96
|
+
.union([z.string(), z.number()])
|
|
97
|
+
.optional()
|
|
98
|
+
.describe('A draft recipe to update. Omit to save a new one.'),
|
|
99
|
+
});
|
|
100
|
+
const canUse = deps.canUse ?? editorOrAdmin;
|
|
101
|
+
return {
|
|
102
|
+
...RECIPE_TOOLS.saveRecipe,
|
|
103
|
+
inputSchema,
|
|
104
|
+
requiredScope: 'content.write',
|
|
105
|
+
handler: async (input, ctx) => {
|
|
106
|
+
if (!ctx.user) {
|
|
107
|
+
return deniedEnvelope('This key is not tied to a person, and a recipe is saved as a person.');
|
|
108
|
+
}
|
|
109
|
+
if (!canUse(ctx))
|
|
110
|
+
return deniedEnvelope('Only admins and editors can save recipes.');
|
|
111
|
+
const issues = lintRecipe({ contract: input.contract, tree: input.tree }, (await deps.loader.get()).raw).filter((i) => i.severity === 'error');
|
|
112
|
+
if (issues.length > 0) {
|
|
113
|
+
return { error: `The recipe has ${issues.length} problem(s). Nothing was saved.`, issues };
|
|
114
|
+
}
|
|
115
|
+
const user = ctx.user;
|
|
116
|
+
const data = { contract: input.contract, tree: input.tree };
|
|
117
|
+
let doc;
|
|
118
|
+
try {
|
|
119
|
+
doc = (input.id === undefined
|
|
120
|
+
? await deps.payload.create({
|
|
121
|
+
collection: deps.collection,
|
|
122
|
+
data: data,
|
|
123
|
+
overrideAccess: false,
|
|
124
|
+
user,
|
|
125
|
+
})
|
|
126
|
+
: await deps.payload.update({
|
|
127
|
+
collection: deps.collection,
|
|
128
|
+
id: input.id,
|
|
129
|
+
data: data,
|
|
130
|
+
overrideAccess: false,
|
|
131
|
+
overrideLock: false,
|
|
132
|
+
user,
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
if (error instanceof ValidationError) {
|
|
137
|
+
return {
|
|
138
|
+
error: error.message,
|
|
139
|
+
fields: (error.data?.errors ?? []).map((e) => ({ field: e.path, message: e.message })),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
const status = error?.status;
|
|
143
|
+
if (status === 403 || status === 404 || status === 423)
|
|
144
|
+
return { error: error.message };
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
const id = doc['id'];
|
|
148
|
+
await deps.auditWriter({
|
|
149
|
+
...auditContext(ctx, input._meta),
|
|
150
|
+
action: input.id === undefined ? 'content.create' : 'content.update',
|
|
151
|
+
mcpServer: 'component',
|
|
152
|
+
mcpTool: RECIPE_TOOLS.saveRecipe.name,
|
|
153
|
+
targetCollection: deps.collection,
|
|
154
|
+
targetId: String(id),
|
|
155
|
+
targetTitle: typeof doc['name'] === 'string' ? doc['name'] : undefined,
|
|
156
|
+
});
|
|
157
|
+
return {
|
|
158
|
+
id,
|
|
159
|
+
name: doc['name'],
|
|
160
|
+
status: doc['status'] ?? 'draft',
|
|
161
|
+
adminUrl: `${deps.payload.config.routes.admin}/collections/${deps.collection}/${encodeURIComponent(String(id))}`,
|
|
162
|
+
next: 'A person approves the recipe in the admin. Until then a page can use it in a draft, but not publish.',
|
|
163
|
+
};
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=recipes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../../src/components/tools/recipes.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ import type { ManifestLoader } from '../manifest-source.js';
|
|
|
4
4
|
export interface ValidateCompositionDeps {
|
|
5
5
|
loader: ManifestLoader;
|
|
6
6
|
auditWriter: AuditWriter;
|
|
7
|
+
/** A block type that is a composed section (forumone-2026#801), not a component. */
|
|
8
|
+
composedBlockType?: string;
|
|
7
9
|
}
|
|
8
10
|
export declare function createValidateCompositionTool(deps: ValidateCompositionDeps): McpToolDefinition;
|
|
9
11
|
//# sourceMappingURL=validate-composition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-composition.d.ts","sourceRoot":"","sources":["../../../src/components/tools/validate-composition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI3D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"validate-composition.d.ts","sourceRoot":"","sources":["../../../src/components/tools/validate-composition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI3D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;IACxB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,uBAAuB,GAAG,iBAAiB,CAgC9F"}
|
|
@@ -17,7 +17,8 @@ export function createValidateCompositionTool(deps) {
|
|
|
17
17
|
inputSchema,
|
|
18
18
|
handler: async (input, ctx) => {
|
|
19
19
|
const manifest = await deps.loader.get();
|
|
20
|
-
const
|
|
20
|
+
const blocks = input.blocks.map((block) => block.type === deps.composedBlockType ? { type: block.type, composed: true } : block);
|
|
21
|
+
const result = validateComposition({ blocks }, manifest);
|
|
21
22
|
await deps.auditWriter({
|
|
22
23
|
...auditContext(ctx, input._meta),
|
|
23
24
|
action: 'design.validate',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-composition.js","sourceRoot":"","sources":["../../../src/components/tools/validate-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"validate-composition.js","sourceRoot":"","sources":["../../../src/components/tools/validate-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AASnD,MAAM,UAAU,6BAA6B,CAAC,IAA6B;IACzE,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,MAAM,EAAE,CAAC;aACN,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC,CACH;aACA,GAAG,CAAC,CAAC,CAAC;KACV,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,gBAAgB,CAAC,mBAAmB;QACvC,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;YACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAqD,EAAE,EAAE,CACxF,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CACrF,CAAA;YACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;YAExD,MAAM,IAAI,CAAC,WAAW,CAAC;gBACrB,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;gBACjC,MAAM,EAAE,iBAAiB;gBACzB,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE,sBAAsB;aAChC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -2,6 +2,12 @@ import type { LoadedManifest } from '@forumone/throughline-design-system/contrac
|
|
|
2
2
|
export interface CompositionBlock {
|
|
3
3
|
type: string;
|
|
4
4
|
variant?: string;
|
|
5
|
+
/**
|
|
6
|
+
* A composed section (forumone-2026#801): a recipe, not a component, so it
|
|
7
|
+
* has no contract here. The publish step checks the recipe itself; this only
|
|
8
|
+
* keeps its place in the order, so every block's index stays right.
|
|
9
|
+
*/
|
|
10
|
+
composed?: boolean;
|
|
5
11
|
}
|
|
6
12
|
export interface CompositionInput {
|
|
7
13
|
blocks: CompositionBlock[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../../src/components/validation/composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAElF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../../src/components/validation/composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAElF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,cAAc,GACvB,iBAAiB,CA8FnB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,cAAc,GACvB,gBAAgB,EAAE,CAmDpB"}
|
|
@@ -8,7 +8,7 @@ export function validateComposition(input, manifest) {
|
|
|
8
8
|
const counts = new Map();
|
|
9
9
|
for (let i = 0; i < input.blocks.length; i++) {
|
|
10
10
|
const block = input.blocks[i];
|
|
11
|
-
if (!block)
|
|
11
|
+
if (!block || block.composed)
|
|
12
12
|
continue;
|
|
13
13
|
counts.set(block.type, (counts.get(block.type) ?? 0) + 1);
|
|
14
14
|
const contract = manifest.getComponent(block.type);
|
|
@@ -21,6 +21,20 @@ export function validateComposition(input, manifest) {
|
|
|
21
21
|
});
|
|
22
22
|
continue;
|
|
23
23
|
}
|
|
24
|
+
/*
|
|
25
|
+
A component placed only `inline` lives inside another one — a Button in a
|
|
26
|
+
hero, a Card in a grid — and on a page by itself it is a fragment of a
|
|
27
|
+
layout with nothing around it. Nothing checked this before.
|
|
28
|
+
*/
|
|
29
|
+
const placement = contract.composition.placement;
|
|
30
|
+
if (!placement.includes('page') && !placement.includes('section')) {
|
|
31
|
+
issues.push({
|
|
32
|
+
severity: 'error',
|
|
33
|
+
rule: 'placement',
|
|
34
|
+
message: `"${block.type}" is placed inside other components, not on a page by itself`,
|
|
35
|
+
blockIndex: i,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
24
38
|
if (block.variant && contract.content.variants) {
|
|
25
39
|
const has = contract.content.variants.some((v) => v.name === block.variant);
|
|
26
40
|
if (!has) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../../../src/components/validation/composition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../../../src/components/validation/composition.ts"],"names":[],"mappings":"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"}
|
package/dist/content/blocks.js
CHANGED
|
@@ -163,7 +163,7 @@ async function operate(deps, ctx, input, tool, change) {
|
|
|
163
163
|
};
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
|
-
const issues = await compositionErrors(deps.payload, changed.rows);
|
|
166
|
+
const issues = await compositionErrors(deps.payload, changed.rows, deps.composedBlockType);
|
|
167
167
|
if (issues && issues.length > 0) {
|
|
168
168
|
return {
|
|
169
169
|
error: `${input.field} would break ${issues.length} composition rule${issues.length === 1 ? '' : 's'}. Nothing was saved.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/content/blocks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/content/blocks.ts"],"names":[],"mappings":"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"}
|
package/dist/content/guards.d.ts
CHANGED
|
@@ -41,5 +41,7 @@ export interface CompositionIssue {
|
|
|
41
41
|
* stop a publish and do not stop a draft. `undefined` when there is no
|
|
42
42
|
* validator, which is a site without the components plugin.
|
|
43
43
|
*/
|
|
44
|
-
export declare function compositionErrors(payload: Payload, rows: readonly unknown[]
|
|
44
|
+
export declare function compositionErrors(payload: Payload, rows: readonly unknown[],
|
|
45
|
+
/** A composed section's block type: kept in the order, not checked as a component. */
|
|
46
|
+
composedBlockType?: string): Promise<CompositionIssue[] | undefined>;
|
|
45
47
|
//# sourceMappingURL=guards.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/content/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAkB,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AA8BpF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,YAAY,EAAE,CAUhB;AAQD,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,SAAS,KAAK,EAAE,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUzB;AAoBD,MAAM,WAAW,UAAU;IACzB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,IAAI,EAAE,OAAO,CAAA;IACb,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAA;CACd;AAWD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAqCjC;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU;;;;EAQpF;AAID;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,EACzC,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,WAAW,EAAE,SAAS,OAAO,EAAE,EAC/B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,EACpC,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAQD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/content/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAkB,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AA8BpF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,YAAY,EAAE,CAUhB;AAQD,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,SAAS,KAAK,EAAE,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUzB;AAoBD,MAAM,WAAW,UAAU;IACzB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,IAAI,EAAE,OAAO,CAAA;IACb,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAA;CACd;AAWD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAqCjC;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU;;;;EAQpF;AAID;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,EACzC,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,WAAW,EAAE,SAAS,OAAO,EAAE,EAC/B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,EACpC,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAQD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,OAAO,EAAE;AACxB,sFAAsF;AACtF,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,CAoBzC"}
|
package/dist/content/guards.js
CHANGED
|
@@ -152,7 +152,9 @@ export async function disallowedBlocks(field, rows, currentRows, registry, req)
|
|
|
152
152
|
* stop a publish and do not stop a draft. `undefined` when there is no
|
|
153
153
|
* validator, which is a site without the components plugin.
|
|
154
154
|
*/
|
|
155
|
-
export async function compositionErrors(payload, rows
|
|
155
|
+
export async function compositionErrors(payload, rows,
|
|
156
|
+
/** A composed section's block type: kept in the order, not checked as a component. */
|
|
157
|
+
composedBlockType) {
|
|
156
158
|
const validator = payload[COMPONENTS_VALIDATOR_SYMBOL];
|
|
157
159
|
if (!validator)
|
|
158
160
|
return undefined;
|
|
@@ -160,6 +162,8 @@ export async function compositionErrors(payload, rows) {
|
|
|
160
162
|
const r = row;
|
|
161
163
|
if (typeof r?.blockType !== 'string')
|
|
162
164
|
return [];
|
|
165
|
+
if (r.blockType === composedBlockType)
|
|
166
|
+
return [{ type: r.blockType, composed: true }];
|
|
163
167
|
return [typeof r.variant === 'string' ? { type: r.blockType, variant: r.variant } : { type: r.blockType }];
|
|
164
168
|
});
|
|
165
169
|
if (blocks.length === 0)
|