@miragon/mcp-toolkit-core 2.7.0 → 2.8.1
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 -2
- package/dist/framework/catalogue.d.ts +29 -5
- package/dist/framework/catalogue.d.ts.map +1 -1
- package/dist/framework/catalogue.js +32 -0
- package/dist/framework/catalogue.js.map +1 -1
- package/dist/framework/manifest.d.ts +11 -0
- package/dist/framework/manifest.d.ts.map +1 -1
- package/dist/framework/manifest.js +30 -1
- package/dist/framework/manifest.js.map +1 -1
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +1 -0
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/localized-text.d.ts +28 -0
- package/dist/i18n/localized-text.d.ts.map +1 -0
- package/dist/i18n/localized-text.js +57 -0
- package/dist/i18n/localized-text.js.map +1 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/create-framework-app.d.ts +5 -0
- package/dist/tools/create-framework-app.d.ts.map +1 -1
- package/dist/tools/create-framework-app.js.map +1 -1
- package/dist/tools/install-toolkit.js +4 -1
- package/dist/tools/install-toolkit.js.map +1 -1
- package/dist/tools/register-catalogue-tool.d.ts +3 -0
- package/dist/tools/register-catalogue-tool.d.ts.map +1 -1
- package/dist/tools/register-catalogue-tool.js +3 -2
- package/dist/tools/register-catalogue-tool.js.map +1 -1
- package/dist/tools/register-dashboard-tools.js +4 -4
- package/dist/tools/register-framework-tools.d.ts.map +1 -1
- package/dist/tools/register-framework-tools.js +5 -4
- package/dist/tools/register-framework-tools.js.map +1 -1
- package/dist/types/app.d.ts +11 -1
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/display.d.ts +34 -0
- package/dist/types/display.d.ts.map +1 -0
- package/dist/types/display.js +9 -0
- package/dist/types/display.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/meta.d.ts +1 -1
- package/dist/types/meta.js +1 -1
- package/dist/types/meta.js.map +1 -1
- package/dist/types/step.d.ts +8 -2
- package/dist/types/step.d.ts.map +1 -1
- package/dist/types/widget.d.ts +20 -8
- package/dist/types/widget.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -9,10 +9,11 @@ Published to the public npm registry under the `@miragon` scope — no `.npmrc`
|
|
|
9
9
|
or token needed.
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
pnpm add @miragon/mcp-toolkit-core mcp-use@2.7.3 zod
|
|
12
|
+
pnpm add @miragon/mcp-toolkit-core mcp-use@2.7.3 zod@^4.4.0
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
`mcp-use` is pinned exactly: a second copy in the graph breaks the widgets'
|
|
16
|
+
host context. `zod` is a range, so your own version dedupes against it.
|
|
16
17
|
|
|
17
18
|
## Import paths
|
|
18
19
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type PipelineExecutionContext } from "../engine/pipeline-executor.js";
|
|
2
2
|
import type { StepRegistry } from "../registry/step-registry.js";
|
|
3
3
|
import type { WidgetRegistry } from "../registry/widget-registry.js";
|
|
4
|
+
import type { AppDefinition } from "../types/app.js";
|
|
5
|
+
import type { DisplayText } from "../types/display.js";
|
|
4
6
|
import type { PipelineStepRef } from "../types/pipeline.js";
|
|
5
7
|
export interface CatalogueInput {
|
|
6
8
|
keys?: Record<string, unknown>;
|
|
@@ -8,9 +10,11 @@ export interface CatalogueInput {
|
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* A widget whose `requires` are satisfied by the keys the pipeline
|
|
11
|
-
* exposes. The builder UI renders this as the palette
|
|
13
|
+
* exposes. The builder UI renders this as the palette, named by the
|
|
14
|
+
* widget's {@link DisplayText} (each field present only when the definition
|
|
15
|
+
* sets it, so the wire shape of an untitled widget is unchanged).
|
|
12
16
|
*/
|
|
13
|
-
export interface ReachableWidget {
|
|
17
|
+
export interface ReachableWidget extends DisplayText {
|
|
14
18
|
id: string;
|
|
15
19
|
app: string;
|
|
16
20
|
requires: string[];
|
|
@@ -28,7 +32,7 @@ export interface ReachableWidget {
|
|
|
28
32
|
* the builder as "unreachable" with a hint about which keys are still
|
|
29
33
|
* missing so users know what to seed or which step to add.
|
|
30
34
|
*/
|
|
31
|
-
export interface UnreachableWidget {
|
|
35
|
+
export interface UnreachableWidget extends DisplayText {
|
|
32
36
|
id: string;
|
|
33
37
|
app: string;
|
|
34
38
|
requires: string[];
|
|
@@ -38,9 +42,9 @@ export interface UnreachableWidget {
|
|
|
38
42
|
}
|
|
39
43
|
/**
|
|
40
44
|
* Manifest entry for a registered pipeline step. The builder uses this
|
|
41
|
-
* for its step-picker dropdown.
|
|
45
|
+
* for its step-picker dropdown, named by the step's {@link DisplayText}.
|
|
42
46
|
*/
|
|
43
|
-
export interface AvailableStep {
|
|
47
|
+
export interface AvailableStep extends DisplayText {
|
|
44
48
|
id: string;
|
|
45
49
|
app: string;
|
|
46
50
|
dataType: string;
|
|
@@ -59,6 +63,13 @@ export interface KeyCatalogEntry {
|
|
|
59
63
|
consumedByWidgets: string[];
|
|
60
64
|
inContext: boolean;
|
|
61
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* How the builder heads one app's group in its palette: the app's `name` (the
|
|
68
|
+
* namespace of its ids) and the title fields its definition sets.
|
|
69
|
+
*/
|
|
70
|
+
export interface CatalogueApp extends Pick<DisplayText, "title" | "titleKey"> {
|
|
71
|
+
name: string;
|
|
72
|
+
}
|
|
62
73
|
export interface CataloguePayload {
|
|
63
74
|
context: {
|
|
64
75
|
keys: Record<string, unknown>;
|
|
@@ -87,12 +98,24 @@ export interface CataloguePayload {
|
|
|
87
98
|
* builder warns the user the render path wouldn't run as configured.
|
|
88
99
|
*/
|
|
89
100
|
validationIssues: string[];
|
|
101
|
+
/**
|
|
102
|
+
* The apps that name themselves for people (`title` or `titleKey` on the
|
|
103
|
+
* {@link AppDefinition}); the builder heads their palette groups with it.
|
|
104
|
+
* Absent when no app given in {@link CatalogueOptions.apps} has a title, so
|
|
105
|
+
* the payload of an untitled server keeps its shape.
|
|
106
|
+
*/
|
|
107
|
+
apps?: CatalogueApp[];
|
|
90
108
|
}
|
|
91
109
|
export interface CatalogueOptions {
|
|
92
110
|
input: CatalogueInput;
|
|
93
111
|
stepRegistry: StepRegistry;
|
|
94
112
|
widgetRegistry: WidgetRegistry;
|
|
95
113
|
appConfigs?: Record<string, unknown>;
|
|
114
|
+
/**
|
|
115
|
+
* The loaded app definitions (or just their names and titles), for the
|
|
116
|
+
* palette's group headings. `installToolkit` passes its apps and modules.
|
|
117
|
+
*/
|
|
118
|
+
apps?: readonly Pick<AppDefinition, "name" | "title" | "titleKey">[];
|
|
96
119
|
/**
|
|
97
120
|
* Per-request context — who is calling; build it with
|
|
98
121
|
* `resolvePipelineContext(ctx)`. Mirrors {@link RenderViewOptions.ctx}.
|
|
@@ -122,6 +145,7 @@ export declare function getBuilderCatalogue(options: CatalogueOptions): Promise<
|
|
|
122
145
|
text: string;
|
|
123
146
|
}[];
|
|
124
147
|
structuredContent: {
|
|
148
|
+
apps?: CatalogueApp[] | undefined;
|
|
125
149
|
context: {
|
|
126
150
|
keys: Record<string, unknown>;
|
|
127
151
|
stepIds: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../src/framework/catalogue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;CAC1B;AAED
|
|
1
|
+
{"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../src/framework/catalogue.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ import { validatePipeline } from "../engine/context-builder.js";
|
|
|
19
19
|
*/
|
|
20
20
|
export async function getBuilderCatalogue(options) {
|
|
21
21
|
const { input, stepRegistry, widgetRegistry, appConfigs, ctx } = options;
|
|
22
|
+
const apps = titledApps(options.apps ?? []);
|
|
22
23
|
const initialKeys = input.keys ?? {};
|
|
23
24
|
const pipelineConfig = { steps: input.steps };
|
|
24
25
|
const validation = input.steps?.length
|
|
@@ -41,6 +42,7 @@ export async function getBuilderCatalogue(options) {
|
|
|
41
42
|
requires: w.requires,
|
|
42
43
|
size: w.size,
|
|
43
44
|
...(w.propsSchema ? { propsSchema: w.propsSchema } : {}),
|
|
45
|
+
...displayTextOf(w),
|
|
44
46
|
}));
|
|
45
47
|
const unreachableWidgets = allWidgets
|
|
46
48
|
.filter((w) => !reachableIds.has(w.id))
|
|
@@ -51,6 +53,7 @@ export async function getBuilderCatalogue(options) {
|
|
|
51
53
|
size: w.size,
|
|
52
54
|
missingKeys: w.requires.filter((k) => !availableKeys.has(k)),
|
|
53
55
|
...(w.propsSchema ? { propsSchema: w.propsSchema } : {}),
|
|
56
|
+
...displayTextOf(w),
|
|
54
57
|
}));
|
|
55
58
|
const availableSteps = stepRegistry.getAll().map((s) => ({
|
|
56
59
|
id: s.id,
|
|
@@ -58,6 +61,7 @@ export async function getBuilderCatalogue(options) {
|
|
|
58
61
|
dataType: s.dataType,
|
|
59
62
|
requires: s.requires,
|
|
60
63
|
produces: s.produces,
|
|
64
|
+
...displayTextOf(s),
|
|
61
65
|
}));
|
|
62
66
|
const stepContracts = stepRegistry.getKeyContracts();
|
|
63
67
|
const keys = new Set(availableKeys);
|
|
@@ -118,9 +122,37 @@ export async function getBuilderCatalogue(options) {
|
|
|
118
122
|
availableSteps,
|
|
119
123
|
keyCatalog,
|
|
120
124
|
validationIssues: validation.issues,
|
|
125
|
+
...(apps.length > 0 ? { apps } : {}),
|
|
121
126
|
},
|
|
122
127
|
};
|
|
123
128
|
}
|
|
129
|
+
/** The apps that set a title or a title key, each with only the fields it sets. */
|
|
130
|
+
function titledApps(apps) {
|
|
131
|
+
return apps.flatMap((app) => {
|
|
132
|
+
const out = { name: app.name };
|
|
133
|
+
if (app.title !== undefined)
|
|
134
|
+
out.title = app.title;
|
|
135
|
+
if (app.titleKey !== undefined)
|
|
136
|
+
out.titleKey = app.titleKey;
|
|
137
|
+
return out.title === undefined && out.titleKey === undefined ? [] : [out];
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* The {@link DisplayText} fields a definition sets, and only those: an
|
|
142
|
+
* untitled widget or step keeps its wire shape (no `title: undefined` keys).
|
|
143
|
+
*/
|
|
144
|
+
function displayTextOf(source) {
|
|
145
|
+
const out = {};
|
|
146
|
+
if (source.title !== undefined)
|
|
147
|
+
out.title = source.title;
|
|
148
|
+
if (source.titleKey !== undefined)
|
|
149
|
+
out.titleKey = source.titleKey;
|
|
150
|
+
if (source.summary !== undefined)
|
|
151
|
+
out.summary = source.summary;
|
|
152
|
+
if (source.summaryKey !== undefined)
|
|
153
|
+
out.summaryKey = source.summaryKey;
|
|
154
|
+
return out;
|
|
155
|
+
}
|
|
124
156
|
/**
|
|
125
157
|
* Splits a namespaced id like `"lexoffice:load-invoice"` into the
|
|
126
158
|
* leading namespace. Falls back to the full id when no colon is present.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../src/framework/catalogue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAiC,MAAM,gCAAgC,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../src/framework/catalogue.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,8 @@ export interface FrameworkManifest {
|
|
|
36
36
|
* per-instance props. Same JSON-Schema contract the LLM already
|
|
37
37
|
* understands from MCP tool input schemas, so it can construct scoped
|
|
38
38
|
* views (e.g. one tab per `processDefinitionKey`) without guessing.
|
|
39
|
+
* The properties' `x-display` texts (the builder's labels for people)
|
|
40
|
+
* are left out, see {@link propsSchemaForModel}.
|
|
39
41
|
*/
|
|
40
42
|
propsSchema?: Record<string, unknown>;
|
|
41
43
|
}[];
|
|
@@ -62,4 +64,13 @@ export interface FrameworkManifest {
|
|
|
62
64
|
* composable via `render-view`.
|
|
63
65
|
*/
|
|
64
66
|
export declare function getFrameworkManifest(stepRegistry: StepRegistry, widgetRegistry: WidgetRegistry, config: AppConfig): FrameworkManifest;
|
|
67
|
+
/**
|
|
68
|
+
* A widget's `propsSchema` as the LLM reads it: each property without its
|
|
69
|
+
* {@link PROPS_SCHEMA_DISPLAY_KEYWORD} (`x-display`) text. Those titles and
|
|
70
|
+
* summaries label the builder's props sheet for people, in every locale; the
|
|
71
|
+
* LLM reads the properties' `description`s. Every other keyword stays as the
|
|
72
|
+
* widget declared it, and a schema without display text comes back unchanged
|
|
73
|
+
* (the same object). Exported for its tests.
|
|
74
|
+
*/
|
|
75
|
+
export declare function propsSchemaForModel(schema: Record<string, unknown>): Record<string, unknown>;
|
|
65
76
|
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/framework/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/framework/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAGnD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAA;QACV,GAAG,EAAE,MAAM,CAAA;QACX,kDAAkD;QAClD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB;;;WAGG;QACH,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAA;QACvC,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,EAAE,CAAA;IACH,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAA;QACV,GAAG,EAAE,MAAM,CAAA;QACX,qDAAqD;QACrD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,IAAI,EAAE,MAAM,CAAA;QACZ;;;;;;;;WAQG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACtC,EAAE,CAAA;IACH,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,EAAE,CAAA;KAC1D,EAAE,CAAA;IACH,YAAY,EAAE;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,UAAU,EAAE,MAAM,EAAE,CAAA;QACpB,UAAU,EAAE,MAAM,EAAE,CAAA;QACpB,oBAAoB,EAAE,MAAM,EAAE,CAAA;KAC/B,EAAE,CAAA;CACJ;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,SAAS,GAChB,iBAAiB,CAiCnB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgB5F"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PROPS_SCHEMA_DISPLAY_KEYWORD } from "../types/display.js";
|
|
1
2
|
/**
|
|
2
3
|
* Produces a JSON-serializable manifest of everything the framework currently
|
|
3
4
|
* knows about: active apps, registered pipeline steps, available widgets, and
|
|
@@ -26,7 +27,7 @@ export function getFrameworkManifest(stepRegistry, widgetRegistry, config) {
|
|
|
26
27
|
requires: widget.requires,
|
|
27
28
|
...(widget.consumes && widget.consumes.length > 0 ? { consumes: widget.consumes } : {}),
|
|
28
29
|
size: widget.size,
|
|
29
|
-
...(widget.propsSchema ? { propsSchema: widget.propsSchema } : {}),
|
|
30
|
+
...(widget.propsSchema ? { propsSchema: propsSchemaForModel(widget.propsSchema) } : {}),
|
|
30
31
|
})),
|
|
31
32
|
pipelines: Object.entries(config.pipelines).map(([id, pipeline]) => ({
|
|
32
33
|
id,
|
|
@@ -35,6 +36,34 @@ export function getFrameworkManifest(stepRegistry, widgetRegistry, config) {
|
|
|
35
36
|
keyContracts: stepRegistry.getKeyContracts(),
|
|
36
37
|
};
|
|
37
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* A widget's `propsSchema` as the LLM reads it: each property without its
|
|
41
|
+
* {@link PROPS_SCHEMA_DISPLAY_KEYWORD} (`x-display`) text. Those titles and
|
|
42
|
+
* summaries label the builder's props sheet for people, in every locale; the
|
|
43
|
+
* LLM reads the properties' `description`s. Every other keyword stays as the
|
|
44
|
+
* widget declared it, and a schema without display text comes back unchanged
|
|
45
|
+
* (the same object). Exported for its tests.
|
|
46
|
+
*/
|
|
47
|
+
export function propsSchemaForModel(schema) {
|
|
48
|
+
const properties = schema.properties;
|
|
49
|
+
if (!isRecord(properties))
|
|
50
|
+
return schema;
|
|
51
|
+
let stripped = false;
|
|
52
|
+
const forModel = {};
|
|
53
|
+
for (const [name, property] of Object.entries(properties)) {
|
|
54
|
+
if (isRecord(property) && PROPS_SCHEMA_DISPLAY_KEYWORD in property) {
|
|
55
|
+
forModel[name] = Object.fromEntries(Object.entries(property).filter(([keyword]) => keyword !== PROPS_SCHEMA_DISPLAY_KEYWORD));
|
|
56
|
+
stripped = true;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
forModel[name] = property;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return stripped ? { ...schema, properties: forModel } : schema;
|
|
63
|
+
}
|
|
64
|
+
function isRecord(value) {
|
|
65
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
66
|
+
}
|
|
38
67
|
/**
|
|
39
68
|
* Splits a namespaced id like `"lexoffice:load-invoice"` into the
|
|
40
69
|
* leading namespace. Falls back to the full id if no colon is present
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/framework/manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/framework/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { createTranslator } from "./translator.js";
|
|
2
|
+
export { resolveLocalizedText } from "./localized-text.js";
|
|
3
|
+
export type { LocalizedText } from "./localized-text.js";
|
|
2
4
|
export type { Message, MessageCatalog, Catalogs, Translate, CreateTranslatorOptions, } from "./translator.js";
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/i18n/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,YAAY,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,SAAS,EACT,uBAAuB,GACxB,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,YAAY,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,SAAS,EACT,uBAAuB,GACxB,MAAM,iBAAiB,CAAA"}
|
package/dist/i18n/index.js
CHANGED
|
@@ -3,4 +3,5 @@
|
|
|
3
3
|
// server (tool summaries) and the UI (widget strings). Ships no catalogs — the
|
|
4
4
|
// consuming app provides its own and decides where the active locale comes from.
|
|
5
5
|
export { createTranslator } from "./translator.js";
|
|
6
|
+
export { resolveLocalizedText } from "./localized-text.js";
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/dist/i18n/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,iFAAiF;AACjF,+EAA+E;AAC/E,iFAAiF;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,iFAAiF;AACjF,+EAA+E;AAC/E,iFAAiF;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-facing text that travels with a definition (a widget's or a step's
|
|
3
|
+
* title, a props field's label) instead of living in a widget bundle's
|
|
4
|
+
* catalog. Browser-bundle-safe: pure data + functions, so the server attaches
|
|
5
|
+
* it to its definitions and the builder in the iframe resolves it.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Text in one language (a plain string) or per locale, keyed by a BCP 47 tag
|
|
9
|
+
* (`{ en: "Process list", de: "Prozessliste" }`). Resolve it with
|
|
10
|
+
* {@link resolveLocalizedText}.
|
|
11
|
+
*/
|
|
12
|
+
export type LocalizedText = string | Readonly<Record<string, string>>;
|
|
13
|
+
/**
|
|
14
|
+
* The text of `text` for `locale`, trimmed; `undefined` when there is none.
|
|
15
|
+
*
|
|
16
|
+
* A plain string is returned as is (whatever the locale). From a per-locale
|
|
17
|
+
* map it takes the first non-blank entry of: the exact tag (case and `_`/`-`
|
|
18
|
+
* insensitive), the same language (`de` for `de-AT`, `de-DE` for `de`), English,
|
|
19
|
+
* then the first entry, so a partial translation degrades to another language
|
|
20
|
+
* rather than to nothing.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* resolveLocalizedText({ en: "Orders", de: "Bestellungen" }, "de-AT") // "Bestellungen"
|
|
24
|
+
* resolveLocalizedText({ en: "Orders", de: "Bestellungen" }, "fr") // "Orders"
|
|
25
|
+
* resolveLocalizedText("Orders", "de") // "Orders"
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveLocalizedText(text: LocalizedText | undefined, locale: string | undefined): string | undefined;
|
|
28
|
+
//# sourceMappingURL=localized-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localized-text.d.ts","sourceRoot":"","sources":["../../src/i18n/localized-text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AA2BrE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,SAAS,CAepB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-facing text that travels with a definition (a widget's or a step's
|
|
3
|
+
* title, a props field's label) instead of living in a widget bundle's
|
|
4
|
+
* catalog. Browser-bundle-safe: pure data + functions, so the server attaches
|
|
5
|
+
* it to its definitions and the builder in the iframe resolves it.
|
|
6
|
+
*/
|
|
7
|
+
/** Lower-case a BCP 47 tag and accept `_` as the subtag separator (`de_AT` → `de-at`). */
|
|
8
|
+
function normalizeTag(tag) {
|
|
9
|
+
return tag.trim().toLowerCase().replace(/_/g, "-");
|
|
10
|
+
}
|
|
11
|
+
function primaryOf(tag) {
|
|
12
|
+
return tag.split("-")[0] ?? "";
|
|
13
|
+
}
|
|
14
|
+
function nonBlank(value) {
|
|
15
|
+
if (typeof value !== "string")
|
|
16
|
+
return undefined;
|
|
17
|
+
const trimmed = value.trim();
|
|
18
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
19
|
+
}
|
|
20
|
+
/** The best entry of `entries` for one language: its bare tag first, then any regional tag. */
|
|
21
|
+
function pickLanguage(entries, language) {
|
|
22
|
+
const bare = entries.find(([tag]) => tag === language);
|
|
23
|
+
if (bare)
|
|
24
|
+
return bare[1];
|
|
25
|
+
return entries.find(([tag]) => primaryOf(tag) === language)?.[1];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The text of `text` for `locale`, trimmed; `undefined` when there is none.
|
|
29
|
+
*
|
|
30
|
+
* A plain string is returned as is (whatever the locale). From a per-locale
|
|
31
|
+
* map it takes the first non-blank entry of: the exact tag (case and `_`/`-`
|
|
32
|
+
* insensitive), the same language (`de` for `de-AT`, `de-DE` for `de`), English,
|
|
33
|
+
* then the first entry, so a partial translation degrades to another language
|
|
34
|
+
* rather than to nothing.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* resolveLocalizedText({ en: "Orders", de: "Bestellungen" }, "de-AT") // "Bestellungen"
|
|
38
|
+
* resolveLocalizedText({ en: "Orders", de: "Bestellungen" }, "fr") // "Orders"
|
|
39
|
+
* resolveLocalizedText("Orders", "de") // "Orders"
|
|
40
|
+
*/
|
|
41
|
+
export function resolveLocalizedText(text, locale) {
|
|
42
|
+
if (typeof text === "string")
|
|
43
|
+
return nonBlank(text);
|
|
44
|
+
// Display text crosses the wire: anything but a string or a plain map is no text.
|
|
45
|
+
if (typeof text !== "object" || text === null || Array.isArray(text))
|
|
46
|
+
return undefined;
|
|
47
|
+
const entries = Object.entries(text).flatMap(([tag, value]) => {
|
|
48
|
+
const resolved = nonBlank(value);
|
|
49
|
+
return resolved === undefined ? [] : [[normalizeTag(tag), resolved]];
|
|
50
|
+
});
|
|
51
|
+
const wanted = normalizeTag(locale ?? "");
|
|
52
|
+
return (entries.find(([tag]) => tag === wanted)?.[1] ??
|
|
53
|
+
pickLanguage(entries, primaryOf(wanted)) ??
|
|
54
|
+
pickLanguage(entries, "en") ??
|
|
55
|
+
entries[0]?.[1]);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=localized-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localized-text.js","sourceRoot":"","sources":["../../src/i18n/localized-text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,0FAA0F;AAC1F,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AAChC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC;AAED,+FAA+F;AAC/F,SAAS,YAAY,CACnB,OAA+C,EAC/C,QAAgB;IAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;IACtD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAClE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAA+B,EAC/B,MAA0B;IAE1B,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;IACnD,kFAAkF;IAClF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IACtF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAChC,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAU,CAAC,CAAA;IAC/E,CAAC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IACzC,OAAO,CACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACxC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAChB,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export type { StepOutput, StepResult, PipelineContext, PipelineStepDefinition, OptionalKeyDeclaration, WidgetProps, WidgetSize, WidgetDefinition, AppDefinition, AppPlugin, PipelineConfig, PipelineStepRef, AppConfig, AppConfigEntry, ValidationResult, ViewStructuredContent, StepDataEntry, RefreshParams, } from "./types/index.js";
|
|
2
|
-
export { appsSdkMeta, viewResourceUri, VIEW_RESOURCE_URI_PREFIX } from "./types/index.js";
|
|
1
|
+
export type { StepOutput, StepResult, PipelineContext, PipelineStepDefinition, OptionalKeyDeclaration, WidgetProps, WidgetSize, WidgetDefinition, DisplayText, AppDefinition, AppPlugin, PipelineConfig, PipelineStepRef, AppConfig, AppConfigEntry, ValidationResult, ViewStructuredContent, StepDataEntry, RefreshParams, } from "./types/index.js";
|
|
2
|
+
export { appsSdkMeta, viewResourceUri, VIEW_RESOURCE_URI_PREFIX, PROPS_SCHEMA_DISPLAY_KEYWORD, } from "./types/index.js";
|
|
3
3
|
export type { AppsSdkMetaOptions, AppResourceCsp } from "./types/index.js";
|
|
4
|
-
export { createTranslator } from "./i18n/index.js";
|
|
5
|
-
export type { Message, MessageCatalog, Catalogs, Translate, CreateTranslatorOptions, } from "./i18n/index.js";
|
|
4
|
+
export { createTranslator, resolveLocalizedText } from "./i18n/index.js";
|
|
5
|
+
export type { LocalizedText, Message, MessageCatalog, Catalogs, Translate, CreateTranslatorOptions, } from "./i18n/index.js";
|
|
6
6
|
export { executePipeline, resolvePipelineContext } from "./engine/pipeline-executor.js";
|
|
7
7
|
export type { PipelineExecutionContext, ExecutePipelineOptions, } from "./engine/pipeline-executor.js";
|
|
8
8
|
export { validatePipeline } from "./engine/context-builder.js";
|
|
@@ -15,7 +15,7 @@ export type { RenderViewInput, RenderViewOptions } from "./framework/render-view
|
|
|
15
15
|
export { buildSingleWidgetView, buildComposedView, deriveItemCount, defaultSummary, collectLayoutWidgets, } from "./framework/view-builders.js";
|
|
16
16
|
export type { SingleWidgetViewInput, ComposedViewInput, ComposedViewEntry, ViewToolResult, } from "./framework/view-builders.js";
|
|
17
17
|
export { getBuilderCatalogue } from "./framework/catalogue.js";
|
|
18
|
-
export type { CatalogueInput, CatalogueOptions, CataloguePayload, ReachableWidget, UnreachableWidget, AvailableStep, KeyCatalogEntry, } from "./framework/catalogue.js";
|
|
18
|
+
export type { CatalogueApp, CatalogueInput, CatalogueOptions, CataloguePayload, ReachableWidget, UnreachableWidget, AvailableStep, KeyCatalogEntry, } from "./framework/catalogue.js";
|
|
19
19
|
export type { DashboardStore, DashboardRecord, DashboardSaveInput, DashboardSummary, DashboardListFilter, FileSystemDashboardStoreOptions, } from "./tools/dashboard-store.js";
|
|
20
20
|
export { getFrameworkManifest } from "./framework/manifest.js";
|
|
21
21
|
export type { FrameworkManifest } from "./framework/manifest.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,cAAc,EACd,eAAe,EACf,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { appsSdkMeta, viewResourceUri, VIEW_RESOURCE_URI_PREFIX } from "./types/index.js";
|
|
1
|
+
export { appsSdkMeta, viewResourceUri, VIEW_RESOURCE_URI_PREFIX, PROPS_SCHEMA_DISPLAY_KEYWORD, } from "./types/index.js";
|
|
2
2
|
// Localization engine — a dependency-free translator shared by the server (tool
|
|
3
3
|
// summaries) and the UI (widget strings). Browser-safe, so it belongs in the
|
|
4
4
|
// root barrel; ships no catalogs (the consuming app provides its own). The UI
|
|
5
5
|
// `LocaleProvider`/`useLocale` (in `@miragon/mcp-toolkit-ui`) consume a
|
|
6
6
|
// `Translate` from here.
|
|
7
|
-
export { createTranslator } from "./i18n/index.js";
|
|
7
|
+
export { createTranslator, resolveLocalizedText } from "./i18n/index.js";
|
|
8
8
|
export { executePipeline, resolvePipelineContext } from "./engine/pipeline-executor.js";
|
|
9
9
|
export { validatePipeline } from "./engine/context-builder.js";
|
|
10
10
|
export { StepRegistry } from "./registry/step-registry.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAA;AAGzB,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,wEAAwE;AACxE,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAUxE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAKvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,8BAA8B,CAAA;AAOrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AA0B9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE1F,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAGxF,uEAAuE;AACvE,2EAA2E;AAC3E,2EAA2E;AAC3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AASxE,6EAA6E;AAC7E,gEAAgE;AAChE,qEAAqE;AACrE,4EAA4E;AAC5E,4EAA4E"}
|
|
@@ -6,6 +6,11 @@ import type { AppResourceCsp } from "../types/meta.js";
|
|
|
6
6
|
import type { DuplicateToolNamePolicy } from "./tool-name-guard.js";
|
|
7
7
|
export interface CreateFrameworkAppOptionsBase {
|
|
8
8
|
name: string;
|
|
9
|
+
/**
|
|
10
|
+
* The server's version, reported as `serverInfo.version` and printed on
|
|
11
|
+
* mcp-use's landing page. Pass your own (e.g. from `package.json`); the
|
|
12
|
+
* default `"0.1.0"` only stays for compatibility.
|
|
13
|
+
*/
|
|
9
14
|
version?: string;
|
|
10
15
|
/**
|
|
11
16
|
* Human-readable description of what the server does. Shown on mcp-use's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-framework-app.d.ts","sourceRoot":"","sources":["../../src/tools/create-framework-app.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAET,KAAK,YAAY,EAGlB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;IACzF,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,UAAU,CAAC,EAAE;QACX;;;;WAIG;QACH,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,wEAAwE;QACxE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACrC;;;;;;;WAOG;QACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAC/B,CAAA;IACD,GAAG,EAAE;QACH;;;;;;WAMG;QACH,MAAM,EAAE;YACN,wEAAwE;YACxE,MAAM,EAAE,MAAM,CAAA;YACd,0EAA0E;YAC1E,OAAO,CAAC,EAAE,MAAM,CAAA;SACjB,CAAA;QACD,gEAAgE;QAChE,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB;;;;;;WAMG;QACH,GAAG,CAAC,EAAE,cAAc,CAAA;QACpB;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB;;;;;WAKG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B;;;;;;;WAOG;QACH,cAAc,CAAC,EAAE,cAAc,CAAA;QAC/B;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,uBAAuB,CAAA;KAC7C,CAAA;IACD,iEAAiE;IACjE,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,kCAAkC,CACjD,KAAK,GAAG,OAAO,CACf,SAAQ,6BAA6B;IACrC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,qCAAsC,SAAQ,6BAA6B;IAC1F,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,MAAM,yBAAyB,CAAC,KAAK,GAAG,OAAO,IACnD,kCAAkC,CAAC,KAAK,CAAC,GAAG,qCAAqC,CAAA;AAoBnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,OAAO,EAAE,kCAAkC,CAAC,KAAK,CAAC,GACjD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AAC5B,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,qCAAqC,GAC7C,OAAO,CAAC,SAAS,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"create-framework-app.d.ts","sourceRoot":"","sources":["../../src/tools/create-framework-app.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAET,KAAK,YAAY,EAGlB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;IACzF,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,UAAU,CAAC,EAAE;QACX;;;;WAIG;QACH,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,wEAAwE;QACxE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACrC;;;;;;;WAOG;QACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAC/B,CAAA;IACD,GAAG,EAAE;QACH;;;;;;WAMG;QACH,MAAM,EAAE;YACN,wEAAwE;YACxE,MAAM,EAAE,MAAM,CAAA;YACd,0EAA0E;YAC1E,OAAO,CAAC,EAAE,MAAM,CAAA;SACjB,CAAA;QACD,gEAAgE;QAChE,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB;;;;;;WAMG;QACH,GAAG,CAAC,EAAE,cAAc,CAAA;QACpB;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB;;;;;WAKG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B;;;;;;;WAOG;QACH,cAAc,CAAC,EAAE,cAAc,CAAA;QAC/B;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,uBAAuB,CAAA;KAC7C,CAAA;IACD,iEAAiE;IACjE,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,kCAAkC,CACjD,KAAK,GAAG,OAAO,CACf,SAAQ,6BAA6B;IACrC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,qCAAsC,SAAQ,6BAA6B;IAC1F,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,MAAM,yBAAyB,CAAC,KAAK,GAAG,OAAO,IACnD,kCAAkC,CAAC,KAAK,CAAC,GAAG,qCAAqC,CAAA;AAoBnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,OAAO,EAAE,kCAAkC,CAAC,KAAK,CAAC,GACjD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AAC5B,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,qCAAqC,GAC7C,OAAO,CAAC,SAAS,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-framework-app.js","sourceRoot":"","sources":["../../src/tools/create-framework-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,EACL,SAAS,EACT,aAAa,GAId,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAIzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"create-framework-app.js","sourceRoot":"","sources":["../../src/tools/create-framework-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,9 +43,10 @@ function install(server, options) {
|
|
|
43
43
|
const widgetRegistry = new WidgetRegistry();
|
|
44
44
|
const apps = options.apps ?? [];
|
|
45
45
|
const modules = options.modules ?? [];
|
|
46
|
+
const definitions = [...apps, ...modules.map((m) => m.definition)];
|
|
46
47
|
// Step/widget ids are author-controlled, so a collision is a real bug and
|
|
47
48
|
// must fail loud (hard throw).
|
|
48
|
-
loadApps(
|
|
49
|
+
loadApps(definitions, stepRegistry, widgetRegistry);
|
|
49
50
|
for (const module of modules) {
|
|
50
51
|
withToolOwner(server, moduleToolOwner(module.definition.name), () => module.registerTools?.(server));
|
|
51
52
|
}
|
|
@@ -83,6 +84,8 @@ function install(server, options) {
|
|
|
83
84
|
stepRegistry,
|
|
84
85
|
widgetRegistry,
|
|
85
86
|
appConfigs,
|
|
87
|
+
// The palette heads each app's group with the app's title.
|
|
88
|
+
apps: definitions,
|
|
86
89
|
toolName: options.catalogueToolName,
|
|
87
90
|
});
|
|
88
91
|
const dashboardStore = options.dashboardStore ?? createInMemoryDashboardStore();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-toolkit.js","sourceRoot":"","sources":["../../src/tools/install-toolkit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,4BAA4B,EAAuB,MAAM,sBAAsB,CAAA;AAGxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,aAAa,GAEd,MAAM,sBAAsB,CAAA;AAmE7B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAiB,EACjB,UAAiC,EAAE;IAEnC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,IAAI,MAAM,CAAC,CAAA;IAClE,2EAA2E;IAC3E,+EAA+E;IAC/E,OAAO,aAAa,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AACpF,CAAC;AAED,SAAS,OAAO,CAAC,MAAiB,EAAE,OAA8B;IAChE,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;IACvC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAA;IAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"install-toolkit.js","sourceRoot":"","sources":["../../src/tools/install-toolkit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { type MCPServer } from "mcp-use";
|
|
2
|
+
import { type CatalogueOptions } from "../framework/catalogue.js";
|
|
2
3
|
import type { StepRegistry } from "../registry/step-registry.js";
|
|
3
4
|
import type { WidgetRegistry } from "../registry/widget-registry.js";
|
|
4
5
|
export interface RegisterCatalogueToolOptions {
|
|
5
6
|
stepRegistry: StepRegistry;
|
|
6
7
|
widgetRegistry: WidgetRegistry;
|
|
7
8
|
appConfigs: Record<string, Record<string, unknown>>;
|
|
9
|
+
/** The loaded app definitions: the builder heads its palette groups with their titles. */
|
|
10
|
+
apps?: CatalogueOptions["apps"];
|
|
8
11
|
/** Override the tool name (default: `get-builder-catalogue`). */
|
|
9
12
|
toolName?: string;
|
|
10
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-catalogue-tool.d.ts","sourceRoot":"","sources":["../../src/tools/register-catalogue-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"register-catalogue-tool.d.ts","sourceRoot":"","sources":["../../src/tools/register-catalogue-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAGxC,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAEpE,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,0FAA0F;IAC1F,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAsBD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,4BAA4B,GACpC,IAAI,CA6BN"}
|
|
@@ -30,10 +30,10 @@ const catalogueSchema = z.object({
|
|
|
30
30
|
* is off this tool is absent and the `McpAppView` hides its Build affordance.
|
|
31
31
|
*/
|
|
32
32
|
export function registerCatalogueTool(server, options) {
|
|
33
|
-
const { stepRegistry, widgetRegistry, appConfigs, toolName = "get-builder-catalogue" } = options;
|
|
33
|
+
const { stepRegistry, widgetRegistry, appConfigs, apps, toolName = "get-builder-catalogue", } = options;
|
|
34
34
|
server.tool({
|
|
35
35
|
name: toolName,
|
|
36
|
-
title: "Get
|
|
36
|
+
title: "Get builder catalogue",
|
|
37
37
|
description: "App-only. Returns the live pipeline context plus the reachable / unreachable widgets, available steps and key catalogue for the current keys + steps. Used by the in-iframe LayoutBuilder.",
|
|
38
38
|
inputSchema: catalogueSchema,
|
|
39
39
|
visibility: "app",
|
|
@@ -43,6 +43,7 @@ export function registerCatalogueTool(server, options) {
|
|
|
43
43
|
stepRegistry,
|
|
44
44
|
widgetRegistry,
|
|
45
45
|
appConfigs,
|
|
46
|
+
apps,
|
|
46
47
|
ctx: resolvePipelineContext(ctx),
|
|
47
48
|
});
|
|
48
49
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-catalogue-tool.js","sourceRoot":"","sources":["../../src/tools/register-catalogue-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"register-catalogue-tool.js","sourceRoot":"","sources":["../../src/tools/register-catalogue-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAyB,MAAM,2BAA2B,CAAA;AActF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;IAC/F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC/E,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;CAC3F,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,aAAa,CAAC;SACpB,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;CAC9F,CAAC,CAAA;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,OAAqC;IAErC,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,UAAU,EACV,IAAI,EACJ,QAAQ,GAAG,uBAAuB,GACnC,GAAG,OAAO,CAAA;IAEX,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,4LAA4L;QAC9L,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,KAAK;KAClB,EACD,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QACpB,OAAO,mBAAmB,CAAC;YACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;YACjD,YAAY;YACZ,cAAc;YACd,UAAU;YACV,IAAI;YACJ,GAAG,EAAE,sBAAsB,CAAC,GAAG,CAAC;SACjC,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;AACH,CAAC"}
|
|
@@ -114,7 +114,7 @@ export function registerDashboardTools(server, options) {
|
|
|
114
114
|
const requireCallerIdentity = options.requireCallerIdentity ?? false;
|
|
115
115
|
server.tool({
|
|
116
116
|
name: "save-dashboard",
|
|
117
|
-
title: "Save
|
|
117
|
+
title: "Save dashboard",
|
|
118
118
|
description: "Persists a dashboard (render-view input bundle + name). Pass an existing `id` to update, omit to create. The builder UI's Save button invokes this tool.",
|
|
119
119
|
inputSchema: saveSchema,
|
|
120
120
|
}, async (params, ctx) => {
|
|
@@ -169,7 +169,7 @@ export function registerDashboardTools(server, options) {
|
|
|
169
169
|
});
|
|
170
170
|
server.tool({
|
|
171
171
|
name: "list-dashboards",
|
|
172
|
-
title: "List
|
|
172
|
+
title: "List dashboards",
|
|
173
173
|
description: "Returns the dashboards visible to the caller (scoped by userId when auth is enabled). Metadata only — fetch a full record via `load-dashboard`.",
|
|
174
174
|
annotations: { readOnlyHint: true },
|
|
175
175
|
}, async (_params, ctx) => {
|
|
@@ -183,7 +183,7 @@ export function registerDashboardTools(server, options) {
|
|
|
183
183
|
});
|
|
184
184
|
server.tool({
|
|
185
185
|
name: "load-dashboard",
|
|
186
|
-
title: "Load
|
|
186
|
+
title: "Load dashboard",
|
|
187
187
|
description: "Returns the full dashboard bundle. The returned `{ keys, steps, layout, title }` fields can be handed straight to `render-view`.",
|
|
188
188
|
inputSchema: idSchema,
|
|
189
189
|
annotations: { readOnlyHint: true },
|
|
@@ -226,7 +226,7 @@ export function registerDashboardTools(server, options) {
|
|
|
226
226
|
});
|
|
227
227
|
server.tool({
|
|
228
228
|
name: "delete-dashboard",
|
|
229
|
-
title: "Delete
|
|
229
|
+
title: "Delete dashboard",
|
|
230
230
|
description: "Permanently removes a dashboard by id.",
|
|
231
231
|
inputSchema: idSchema,
|
|
232
232
|
}, async ({ id }, ctx) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-framework-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-framework-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAQxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAGL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAA;AAEzB,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,gBAAgB,CAAA;AAE7C,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,EAAE,SAAS,CAAA;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB;AAyCD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,6BAA6B,GACrC,IAAI,
|
|
1
|
+
{"version":3,"file":"register-framework-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-framework-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAQxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAGL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAA;AAEzB,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,gBAAgB,CAAA;AAE7C,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,EAAE,SAAS,CAAA;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB;AAyCD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,6BAA6B,GACrC,IAAI,CA2FN"}
|
|
@@ -61,6 +61,7 @@ export function registerFrameworkTools(server, options) {
|
|
|
61
61
|
const widgetCSP = csp ? toWidgetCspMeta(csp) : undefined;
|
|
62
62
|
server.tool({
|
|
63
63
|
name: "get-framework-manifest",
|
|
64
|
+
title: "Get framework manifest",
|
|
64
65
|
description: "Returns all active apps, available pipeline steps, widgets, and their key contracts. Call this first to discover which step-ids and widget-ids exist — and which `props` each widget accepts (see each widget's `propsSchema`) — before building a view.",
|
|
65
66
|
annotations: { readOnlyHint: true },
|
|
66
67
|
},
|
|
@@ -85,7 +86,7 @@ export function registerFrameworkTools(server, options) {
|
|
|
85
86
|
};
|
|
86
87
|
server.tool({
|
|
87
88
|
name: "render-view",
|
|
88
|
-
title: "Render
|
|
89
|
+
title: "Render view",
|
|
89
90
|
description: "Builds a UI from pipeline steps and widgets. IMPORTANT: call get-framework-manifest first to learn which step-ids and widget-ids are available — only use ids listed there. Each widget entry's optional `propsSchema` (JSON Schema) describes the per-instance `props` you can set on a layout cell to scope or configure that widget (e.g. one tab per `processDefinitionKey`).",
|
|
90
91
|
inputSchema: renderViewSchema,
|
|
91
92
|
view: {
|
|
@@ -99,8 +100,8 @@ export function registerFrameworkTools(server, options) {
|
|
|
99
100
|
outputSchema: z.object({}).passthrough(),
|
|
100
101
|
_meta: appsSdkMeta({
|
|
101
102
|
resourceUri: viewResourceUri(RENDER_VIEW_NAME),
|
|
102
|
-
title: "Render
|
|
103
|
-
invoking: "Rendering view
|
|
103
|
+
title: "Render view",
|
|
104
|
+
invoking: "Rendering view…",
|
|
104
105
|
invoked: "View rendered",
|
|
105
106
|
widgetDescription: "Interactive view composed of pipeline-driven widgets",
|
|
106
107
|
widgetCSP,
|
|
@@ -111,7 +112,7 @@ export function registerFrameworkTools(server, options) {
|
|
|
111
112
|
}
|
|
112
113
|
server.tool({
|
|
113
114
|
name: refreshToolName,
|
|
114
|
-
title: "Refresh
|
|
115
|
+
title: "Refresh view",
|
|
115
116
|
description: "Re-runs the pipeline with the stored parameters.",
|
|
116
117
|
inputSchema: renderViewSchema,
|
|
117
118
|
// App-only: called by the already-rendered view, never by the model —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-framework-tools.js","sourceRoot":"","sources":["../../src/tools/register-framework-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAIrE,OAAO,EACL,WAAW,EACX,eAAe,GAGhB,MAAM,kBAAkB,CAAA;AAIzB,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAA;AAgC7C,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;IAC/F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC/E,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;CAC3F,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;IAClF,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,aAAa,CAAC;SACpB,QAAQ,EAAE;SACV,QAAQ,CACP,2GAA2G,CAC5G;IACH,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,EAAE,iBAAiB;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CAC9D,CAAC,CAAA;AAIF,yFAAyF;AACzF,SAAS,eAAe,CAAC,GAAmB;IAC1C,MAAM,IAAI,GAAkB,EAAE,CAAA;IAC9B,IAAI,GAAG,CAAC,cAAc;QAAE,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,cAAc,CAAA;IACjE,IAAI,GAAG,CAAC,eAAe;QAAE,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,eAAe,CAAA;IACpE,IAAI,GAAG,CAAC,YAAY;QAAE,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,YAAY,CAAA;IAC3D,IAAI,GAAG,CAAC,cAAc;QAAE,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,cAAc,CAAA;IAClE,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,OAAsC;IAEtC,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,MAAM,EACN,UAAU,EACV,OAAO,EACP,eAAe,GAAG,cAAc,EAChC,gBAAgB,GAAG,KAAK,EACxB,GAAG,GACJ,GAAG,OAAO,CAAA;IAEX,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAExD,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,0PAA0P;QAC5P,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC;IACD,4DAA4D;IAC5D,KAAK,IAAI,EAAE;QACT,MAAM,QAAQ,GAAG,oBAAoB,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;QAC3E,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACtD,CAAC,CACF,CAAA;IAED,MAAM,aAAa,GAAG,KAAK,EAAE,MAAwB,EAAE,GAAY,EAAE,EAAE;QACrE,OAAO,UAAU,CAAC;YAChB,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB;YACD,YAAY;YACZ,UAAU;YACV,GAAG,EAAE,sBAAsB,CAAC,GAAG,CAAC;YAChC,gBAAgB;SACjB,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,mXAAmX;QACrX,WAAW,EAAE,gBAAgB;QAC7B,IAAI,EAAE;YACJ,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,sDAAsD;YACnE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxB;QACD,uEAAuE;QACvE,sEAAsE;QACtE,0DAA0D;QAC1D,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;QACxC,KAAK,EAAE,WAAW,CAAC;YACjB,WAAW,EAAE,eAAe,CAAC,gBAAgB,CAAC;YAC9C,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"register-framework-tools.js","sourceRoot":"","sources":["../../src/tools/register-framework-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAIrE,OAAO,EACL,WAAW,EACX,eAAe,GAGhB,MAAM,kBAAkB,CAAA;AAIzB,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAA;AAgC7C,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;IAC/F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC/E,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;CAC3F,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;IAClF,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,aAAa,CAAC;SACpB,QAAQ,EAAE;SACV,QAAQ,CACP,2GAA2G,CAC5G;IACH,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,EAAE,iBAAiB;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CAC9D,CAAC,CAAA;AAIF,yFAAyF;AACzF,SAAS,eAAe,CAAC,GAAmB;IAC1C,MAAM,IAAI,GAAkB,EAAE,CAAA;IAC9B,IAAI,GAAG,CAAC,cAAc;QAAE,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,cAAc,CAAA;IACjE,IAAI,GAAG,CAAC,eAAe;QAAE,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,eAAe,CAAA;IACpE,IAAI,GAAG,CAAC,YAAY;QAAE,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,YAAY,CAAA;IAC3D,IAAI,GAAG,CAAC,cAAc;QAAE,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,cAAc,CAAA;IAClE,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,OAAsC;IAEtC,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,MAAM,EACN,UAAU,EACV,OAAO,EACP,eAAe,GAAG,cAAc,EAChC,gBAAgB,GAAG,KAAK,EACxB,GAAG,GACJ,GAAG,OAAO,CAAA;IAEX,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAExD,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,0PAA0P;QAC5P,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC;IACD,4DAA4D;IAC5D,KAAK,IAAI,EAAE;QACT,MAAM,QAAQ,GAAG,oBAAoB,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;QAC3E,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACtD,CAAC,CACF,CAAA;IAED,MAAM,aAAa,GAAG,KAAK,EAAE,MAAwB,EAAE,GAAY,EAAE,EAAE;QACrE,OAAO,UAAU,CAAC;YAChB,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB;YACD,YAAY;YACZ,UAAU;YACV,GAAG,EAAE,sBAAsB,CAAC,GAAG,CAAC;YAChC,gBAAgB;SACjB,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,mXAAmX;QACrX,WAAW,EAAE,gBAAgB;QAC7B,IAAI,EAAE;YACJ,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,sDAAsD;YACnE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxB;QACD,uEAAuE;QACvE,sEAAsE;QACtE,0DAA0D;QAC1D,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;QACxC,KAAK,EAAE,WAAW,CAAC;YACjB,WAAW,EAAE,eAAe,CAAC,gBAAgB,CAAC;YAC9C,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,iBAAiB;YAC3B,OAAO,EAAE,eAAe;YACxB,iBAAiB,EAAE,sDAAsD;YACzE,SAAS;SACV,CAAC;KACH,EACD,aAAa,CACd,CAAA;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAClE,MAAM,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAClE,CAAA;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,kDAAkD;QAC/D,WAAW,EAAE,gBAAgB;QAC7B,sEAAsE;QACtE,kEAAkE;QAClE,mDAAmD;QACnD,UAAU,EAAE,KAAK;KAClB,EACD,aAAa,CACd,CAAA;AACH,CAAC"}
|
package/dist/types/app.d.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
|
+
import type { DisplayText } from "./display.js";
|
|
1
2
|
import type { WidgetToolMetaDefaults } from "./meta.js";
|
|
2
3
|
import type { PipelineStepDefinition } from "./step.js";
|
|
3
4
|
import type { WidgetDefinition } from "./widget.js";
|
|
4
|
-
|
|
5
|
+
/**
|
|
6
|
+
* An app (a module): its pipeline steps and widgets under one `name`, the
|
|
7
|
+
* namespace of their ids.
|
|
8
|
+
*
|
|
9
|
+
* The optional `title` (one string or one per locale) or `titleKey` names the
|
|
10
|
+
* app for the people using the view builder: it heads the app's group of
|
|
11
|
+
* widgets in the palette. Without one the group has no heading; the `name` is
|
|
12
|
+
* technical and shows only in the builder's advanced mode.
|
|
13
|
+
*/
|
|
14
|
+
export interface AppDefinition extends Pick<DisplayText, "title" | "titleKey"> {
|
|
5
15
|
name: string;
|
|
6
16
|
steps: PipelineStepDefinition<any>[];
|
|
7
17
|
widgets: WidgetDefinition[];
|
package/dist/types/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/types/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/types/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5E,IAAI,EAAE,MAAM,CAAA;IAMZ,KAAK,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAA;IACpC,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,SAAS,CAAC,OAAO,GAAG,OAAO;IAC1C,UAAU,EAAE,aAAa,CAAA;IACzB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAA;CACvF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { LocalizedText } from "../i18n/localized-text.js";
|
|
2
|
+
/**
|
|
3
|
+
* How a widget or a pipeline step introduces itself to the PEOPLE using the
|
|
4
|
+
* view builder: a name and a one-line summary in their language. The LLM keeps
|
|
5
|
+
* reading `description` (it stays out of the builder's main UI) and the id stays
|
|
6
|
+
* the technical handle, shown only as a quiet secondary line.
|
|
7
|
+
*
|
|
8
|
+
* Each text comes either inline (`title`: one string or one per locale) or as
|
|
9
|
+
* an i18n key (`titleKey`) that the widget bundle resolves through the
|
|
10
|
+
* translator of its `LocaleProvider`; a key the translator knows wins over the
|
|
11
|
+
* inline text. Without either, the builder shows the id.
|
|
12
|
+
*/
|
|
13
|
+
export interface DisplayText {
|
|
14
|
+
/**
|
|
15
|
+
* The name the builder shows (palette, canvas cell, props sheet, data
|
|
16
|
+
* sources): one string, or one per locale (`{ en: "Orders", de: "Bestellungen" }`).
|
|
17
|
+
*/
|
|
18
|
+
title?: LocalizedText;
|
|
19
|
+
/** i18n key of {@link DisplayText.title}, resolved in the widget bundle; wins when the translator knows it. */
|
|
20
|
+
titleKey?: string;
|
|
21
|
+
/** One line under the title in the builder palette: what it shows, in user words. */
|
|
22
|
+
summary?: LocalizedText;
|
|
23
|
+
/** i18n key of {@link DisplayText.summary}, resolved like {@link DisplayText.titleKey}. */
|
|
24
|
+
summaryKey?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The JSON Schema keyword under which a `propsSchema` property carries its
|
|
28
|
+
* {@link DisplayText} (`"x-display": { title: { en: "Data key", de: "Datenschlüssel" } }`).
|
|
29
|
+
* The standard `title` keyword (a plain string, e.g. from zod's
|
|
30
|
+
* `.meta({ title })`) is the fallback label, the property name the last one.
|
|
31
|
+
* As a JSON Schema extension (`x-` prefix) it is ignored by validators.
|
|
32
|
+
*/
|
|
33
|
+
export declare const PROPS_SCHEMA_DISPLAY_KEYWORD = "x-display";
|
|
34
|
+
//# sourceMappingURL=display.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/types/display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qFAAqF;IACrF,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,cAAc,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The JSON Schema keyword under which a `propsSchema` property carries its
|
|
3
|
+
* {@link DisplayText} (`"x-display": { title: { en: "Data key", de: "Datenschlüssel" } }`).
|
|
4
|
+
* The standard `title` keyword (a plain string, e.g. from zod's
|
|
5
|
+
* `.meta({ title })`) is the fallback label, the property name the last one.
|
|
6
|
+
* As a JSON Schema extension (`x-` prefix) it is ignored by validators.
|
|
7
|
+
*/
|
|
8
|
+
export const PROPS_SCHEMA_DISPLAY_KEYWORD = "x-display";
|
|
9
|
+
//# sourceMappingURL=display.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/types/display.ts"],"names":[],"mappings":"AA2BA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export type { StepOutput, StepResult, PipelineContext } from "./context.js";
|
|
2
2
|
export type { PipelineStepDefinition, OptionalKeyDeclaration } from "./step.js";
|
|
3
3
|
export type { WidgetProps, WidgetSize, WidgetDefinition } from "./widget.js";
|
|
4
|
+
export type { DisplayText } from "./display.js";
|
|
5
|
+
export { PROPS_SCHEMA_DISPLAY_KEYWORD } from "./display.js";
|
|
4
6
|
export type { AppDefinition, AppPlugin } from "./app.js";
|
|
5
7
|
export type { PipelineConfig, PipelineStepRef } from "./pipeline.js";
|
|
6
8
|
export type { AppConfig, AppConfigEntry, ValidationResult } from "./config.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC3E,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAC/E,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC5E,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACxD,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9E,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAClF,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,sBAAsB,GACvB,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC3E,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAC/E,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC5E,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAA;AAC3D,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACxD,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9E,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAClF,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,sBAAsB,GACvB,MAAM,WAAW,CAAA"}
|
package/dist/types/index.js
CHANGED
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAA;AAK3D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA"}
|
package/dist/types/meta.d.ts
CHANGED
|
@@ -87,7 +87,7 @@ export interface AppsSdkMetaOptions {
|
|
|
87
87
|
resourceUri: string;
|
|
88
88
|
/**
|
|
89
89
|
* Display name used to derive the default `invoking`/`invoked` status
|
|
90
|
-
* strings (`Loading <name
|
|
90
|
+
* strings (`Loading <name>…` / `<name> ready`). Typically the tool title.
|
|
91
91
|
*/
|
|
92
92
|
title?: string;
|
|
93
93
|
/** Host status line while the tool call runs (`openai/toolInvocation/invoking`). */
|
package/dist/types/meta.js
CHANGED
|
@@ -47,7 +47,7 @@ export function viewResourceUri(viewName) {
|
|
|
47
47
|
export function appsSdkMeta(opts) {
|
|
48
48
|
const meta = {
|
|
49
49
|
"openai/outputTemplate": opts.resourceUri,
|
|
50
|
-
"openai/toolInvocation/invoking": opts.invoking ?? (opts.title ? `Loading ${opts.title}
|
|
50
|
+
"openai/toolInvocation/invoking": opts.invoking ?? (opts.title ? `Loading ${opts.title}…` : "Loading view…"),
|
|
51
51
|
"openai/toolInvocation/invoked": opts.invoked ?? (opts.title ? `${opts.title} ready` : "View ready"),
|
|
52
52
|
"openai/widgetAccessible": true,
|
|
53
53
|
"openai/resultCanProduceWidget": true,
|
package/dist/types/meta.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/types/meta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,aAAa,CAAA;AAErD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,GAAG,wBAAwB,GAAG,QAAQ,OAAO,CAAA;AACtD,CAAC;AA4ED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,IAAwB;IAClD,MAAM,IAAI,GAA4B;QACpC,uBAAuB,EAAE,IAAI,CAAC,WAAW;QACzC,gCAAgC,EAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/types/meta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,aAAa,CAAA;AAErD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,GAAG,wBAAwB,GAAG,QAAQ,OAAO,CAAA;AACtD,CAAC;AA4ED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,IAAwB;IAClD,MAAM,IAAI,GAA4B;QACpC,uBAAuB,EAAE,IAAI,CAAC,WAAW;QACzC,gCAAgC,EAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;QAC5E,+BAA+B,EAC7B,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;QACrE,yBAAyB,EAAE,IAAI;QAC/B,+BAA+B,EAAE,IAAI;KACtC,CAAA;IACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAA;IAC3D,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;IAC3E,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/types/step.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PipelineContext, StepOutput } from "./context.js";
|
|
2
|
+
import type { DisplayText } from "./display.js";
|
|
2
3
|
/**
|
|
3
4
|
* Soft input declaration — a key the step reads from `context.keys` if present
|
|
4
5
|
* but does not strictly need to run. Surfaced in `getFrameworkManifest` so an
|
|
@@ -16,10 +17,15 @@ export interface OptionalKeyDeclaration {
|
|
|
16
17
|
*/
|
|
17
18
|
enum?: readonly (string | number)[];
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
+
/**
|
|
21
|
+
* A pipeline step an app contributes. The {@link DisplayText} fields (`title`,
|
|
22
|
+
* `summary`, or their i18n keys) name the step in the view builder's data
|
|
23
|
+
* sources; `description` stays the LLM's text.
|
|
24
|
+
*/
|
|
25
|
+
export interface PipelineStepDefinition<TConfig = unknown> extends DisplayText {
|
|
20
26
|
id: string;
|
|
21
27
|
/**
|
|
22
|
-
* One-line
|
|
28
|
+
* One-line description of what the step does, for the LLM. Surfaced in
|
|
23
29
|
* `getFrameworkManifest` so an LLM picks the right step for a widget without
|
|
24
30
|
* having to guess from the id.
|
|
25
31
|
*/
|
package/dist/types/step.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/types/step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE/
|
|
1
|
+
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/types/step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAA;IACX,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB,CAAC,OAAO,GAAG,OAAO,CAAE,SAAQ,WAAW;IAC5E,EAAE,EAAE,MAAM,CAAA;IAEV;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAA;IAElB;;;;OAIG;IACH,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAEvC;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAA;IAElB,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CAC/E"}
|
package/dist/types/widget.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PipelineContext } from "./context.js";
|
|
2
|
+
import type { DisplayText } from "./display.js";
|
|
2
3
|
export interface WidgetProps {
|
|
3
4
|
keys: Record<string, unknown>;
|
|
4
5
|
context: PipelineContext;
|
|
@@ -17,13 +18,18 @@ export type WidgetSize = "quarter" | "third" | "half" | "full" | "header";
|
|
|
17
18
|
* is baked into the host's app-bundle at build time: the framework looks it up
|
|
18
19
|
* in the `widgets` map passed to `McpAppView` — no resource read at render
|
|
19
20
|
* time.
|
|
21
|
+
*
|
|
22
|
+
* The {@link DisplayText} fields (`title`, `summary`, or their i18n keys) name
|
|
23
|
+
* the widget for the people using the view builder; `description` stays the
|
|
24
|
+
* LLM's text. Without a title the builder falls back to the id.
|
|
20
25
|
*/
|
|
21
|
-
export interface WidgetDefinition {
|
|
26
|
+
export interface WidgetDefinition extends DisplayText {
|
|
22
27
|
id: string;
|
|
23
28
|
/**
|
|
24
|
-
* One-line
|
|
25
|
-
* `getFrameworkManifest` so an LLM constructing a `render-view`
|
|
26
|
-
* to put in which slot without inferring intent from the widget
|
|
29
|
+
* One-line description of what the widget shows, for the LLM. Surfaced
|
|
30
|
+
* verbatim in `getFrameworkManifest` so an LLM constructing a `render-view`
|
|
31
|
+
* knows what to put in which slot without inferring intent from the widget
|
|
32
|
+
* id. The builder does not show it; its palette reads `title` and `summary`.
|
|
27
33
|
*/
|
|
28
34
|
description?: string;
|
|
29
35
|
/**
|
|
@@ -44,13 +50,19 @@ export interface WidgetDefinition {
|
|
|
44
50
|
size: WidgetSize;
|
|
45
51
|
/**
|
|
46
52
|
* Optional JSON Schema describing the per-instance props the widget accepts
|
|
47
|
-
* via the layout cell's `props` field. Surfaced
|
|
48
|
-
* `
|
|
49
|
-
* discover valid props per widget
|
|
50
|
-
* contract the LLM already understands
|
|
53
|
+
* via the layout cell's `props` field. Surfaced in `getFrameworkManifest`
|
|
54
|
+
* (without the properties' `x-display` texts, which are for people) so an
|
|
55
|
+
* LLM constructing a `render-view` call can discover valid props per widget
|
|
56
|
+
* without guessing — same JSON-Schema contract the LLM already understands
|
|
57
|
+
* from MCP tool input schemas.
|
|
51
58
|
*
|
|
52
59
|
* Generate it from a Zod object with `z.toJSONSchema(schema)` so the
|
|
53
60
|
* documentation lives next to the widget code.
|
|
61
|
+
*
|
|
62
|
+
* The builder's props sheet labels each property with its
|
|
63
|
+
* `PROPS_SCHEMA_DISPLAY_KEYWORD` (`"x-display"`) title, else the standard
|
|
64
|
+
* JSON Schema `title`, else the property name; the help line under it is the
|
|
65
|
+
* `x-display` summary, else the property's `description`.
|
|
54
66
|
*/
|
|
55
67
|
propsSchema?: Record<string, unknown>;
|
|
56
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/types/widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/types/widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,EAAE,eAAe,CAAA;IACxB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACtC;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEzE;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,EAAE,EAAE,MAAM,CAAA;IACV;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,IAAI,EAAE,UAAU,CAAA;IAChB;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACtC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miragon/mcp-toolkit-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.1",
|
|
4
4
|
"description": "Framework runtime for MCP servers: plugin contract, step/widget registries, pipeline executor, render-view helpers.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"zod": "^4.4.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@modelcontextprotocol/server": "2.
|
|
40
|
+
"@modelcontextprotocol/server": "2.0.0",
|
|
41
41
|
"@stryker-mutator/core": "10.0.0",
|
|
42
42
|
"@stryker-mutator/vitest-runner": "10.0.0",
|
|
43
43
|
"@types/node": "26.6.4",
|