@json-layout/core 2.5.1 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/src/compile/serialize.js +4 -0
- package/src/state/index.js +25 -1
- package/src/state/state-node.js +122 -73
- package/src/state/types.ts +5 -1
- package/src/state/utils/modified.js +32 -0
- package/src/webmcp/index.js +141 -22
- package/src/webmcp/project.js +210 -35
- package/src/webmcp/tools/describe-state.js +28 -3
- package/src/webmcp/tools/edit-array.js +97 -0
- package/src/webmcp/tools/fill-form-skill.js +2 -2
- package/src/webmcp/tools/set-data.js +8 -6
- package/src/webmcp/tools/set-field-value.js +19 -7
- package/types/compile/serialize.d.ts.map +1 -1
- package/types/state/index.d.ts +14 -1
- package/types/state/index.d.ts.map +1 -1
- package/types/state/state-node.d.ts.map +1 -1
- package/types/state/types.d.ts +5 -1
- package/types/state/types.d.ts.map +1 -1
- package/types/state/utils/modified.d.ts +17 -0
- package/types/state/utils/modified.d.ts.map +1 -0
- package/types/webmcp/index.d.ts +21 -9
- package/types/webmcp/index.d.ts.map +1 -1
- package/types/webmcp/project.d.ts +80 -28
- package/types/webmcp/project.d.ts.map +1 -1
- package/types/webmcp/tools/describe-state.d.ts +10 -1
- package/types/webmcp/tools/describe-state.d.ts.map +1 -1
- package/types/webmcp/tools/edit-array.d.ts +88 -0
- package/types/webmcp/tools/edit-array.d.ts.map +1 -0
- package/types/webmcp/tools/set-data.d.ts +11 -16
- package/types/webmcp/tools/set-data.d.ts.map +1 -1
- package/types/webmcp/tools/set-field-value.d.ts +35 -17
- package/types/webmcp/tools/set-field-value.d.ts.map +1 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file editArray tool
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { collectErrors } from '../project.js'
|
|
6
|
+
import { resolveNode } from '../resolve.js'
|
|
7
|
+
|
|
8
|
+
export const inputSchema = {
|
|
9
|
+
type: 'object',
|
|
10
|
+
properties: {
|
|
11
|
+
path: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
description: 'Path to the array field (e.g. "/items", "/tags")'
|
|
14
|
+
},
|
|
15
|
+
action: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
enum: ['add', 'remove'],
|
|
18
|
+
description: '"add" to insert an item, "remove" to delete one'
|
|
19
|
+
},
|
|
20
|
+
index: {
|
|
21
|
+
type: 'number',
|
|
22
|
+
description: 'Index to insert at (for add, defaults to end) or remove from (for remove, defaults to last)'
|
|
23
|
+
},
|
|
24
|
+
value: {
|
|
25
|
+
description: 'Value for the new item (for add action)'
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
required: ['path', 'action']
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const outputSchema = {
|
|
32
|
+
type: 'object',
|
|
33
|
+
properties: {
|
|
34
|
+
valid: { type: 'boolean' },
|
|
35
|
+
itemCount: { type: 'number' },
|
|
36
|
+
errors: {
|
|
37
|
+
type: 'array',
|
|
38
|
+
items: {
|
|
39
|
+
type: 'object',
|
|
40
|
+
properties: {
|
|
41
|
+
path: { type: 'string' },
|
|
42
|
+
message: { type: 'string' }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @param {string} dataTitle
|
|
51
|
+
* @returns {string}
|
|
52
|
+
*/
|
|
53
|
+
export function getDescription (dataTitle) {
|
|
54
|
+
return `Add or remove items in an array field of "${dataTitle}". Use describeState to see current array contents.`
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @param {import('../../state/index.js').StatefulLayout} statefulLayout
|
|
59
|
+
* @param {{ path: string, action: 'add'|'remove', index?: number, value?: unknown }} args
|
|
60
|
+
* @returns {{ valid: boolean, itemCount: number, errors: Array<{path: string, message: string}> }}
|
|
61
|
+
*/
|
|
62
|
+
export function execute (statefulLayout, args) {
|
|
63
|
+
const node = resolveNode(statefulLayout.stateTree.root, args.path)
|
|
64
|
+
if (!node) {
|
|
65
|
+
throw new Error(`node not found at path: ${args.path}`)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (node.layout.comp !== 'list') {
|
|
69
|
+
throw new Error(`node at path "${args.path}" is not an array (type: ${node.layout.comp})`)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const currentData = Array.isArray(node.data) ? [...node.data] : []
|
|
73
|
+
|
|
74
|
+
if (args.action === 'add') {
|
|
75
|
+
const index = args.index !== undefined ? args.index : currentData.length
|
|
76
|
+
currentData.splice(index, 0, args.value !== undefined ? args.value : undefined)
|
|
77
|
+
} else if (args.action === 'remove') {
|
|
78
|
+
if (currentData.length === 0) {
|
|
79
|
+
throw new Error('cannot remove from an empty array')
|
|
80
|
+
}
|
|
81
|
+
const index = args.index !== undefined ? args.index : currentData.length - 1
|
|
82
|
+
if (index < 0 || index >= currentData.length) {
|
|
83
|
+
throw new Error(`index ${index} out of bounds (array length: ${currentData.length})`)
|
|
84
|
+
}
|
|
85
|
+
currentData.splice(index, 1)
|
|
86
|
+
} else {
|
|
87
|
+
throw new Error(`unknown action: ${args.action}. Use "add" or "remove".`)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
statefulLayout.input(node, currentData)
|
|
91
|
+
|
|
92
|
+
return {
|
|
93
|
+
valid: statefulLayout.valid,
|
|
94
|
+
itemCount: currentData.length,
|
|
95
|
+
errors: collectErrors(statefulLayout.stateTree.root)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -45,7 +45,7 @@ Only use ${prefixName}describeState and iterate with ${prefixName}setFieldValue
|
|
|
45
45
|
`
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
if (complexity === '
|
|
48
|
+
if (complexity === 'medium') {
|
|
49
49
|
skill += `
|
|
50
50
|
Given the medium complexity of this form you should start by reading the full schema definition using ${prefixName}${hasSchema ? 'getSchema' : 'describeState'}, if you have a satisfying understanding of the schema you can attempt updating the whole data using ${prefixName}setData at least once.
|
|
51
51
|
Then use ${prefixName}describeState and iterate with ${prefixName}setFieldValue.
|
|
@@ -60,7 +60,7 @@ Prefer using ${prefixName}describeState and iterating with ${prefixName}setField
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
skill += `
|
|
63
|
-
If you encounter getItems definitions in the schema or
|
|
63
|
+
If you encounter getItems definitions in the schema or "suggestions" flags in the state, you must use ${prefixName}getFieldSuggestions to fetch the accepted values, then pass the chosen value directly to ${prefixName}setFieldValue or include it in ${prefixName}setData.
|
|
64
64
|
`
|
|
65
65
|
|
|
66
66
|
return skill
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @file setData tool
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { collectErrors } from '../project.js'
|
|
6
6
|
|
|
7
7
|
export const inputSchema = {
|
|
8
8
|
type: 'object',
|
|
@@ -17,7 +17,6 @@ export const inputSchema = {
|
|
|
17
17
|
export const outputSchema = {
|
|
18
18
|
type: 'object',
|
|
19
19
|
properties: {
|
|
20
|
-
state: { type: 'object' },
|
|
21
20
|
valid: { type: 'boolean' },
|
|
22
21
|
errors: {
|
|
23
22
|
type: 'array',
|
|
@@ -34,22 +33,25 @@ export const outputSchema = {
|
|
|
34
33
|
|
|
35
34
|
/**
|
|
36
35
|
* @param {string} dataTitle
|
|
36
|
+
* @param {"small"|"medium"|"large"} [complexity]
|
|
37
37
|
* @returns {string}
|
|
38
38
|
*/
|
|
39
|
-
export function getDescription (dataTitle) {
|
|
40
|
-
|
|
39
|
+
export function getDescription (dataTitle, complexity) {
|
|
40
|
+
if (complexity === 'large') {
|
|
41
|
+
return `Set all "${dataTitle}" data at once. For complex forms, prefer setFieldValue for incremental changes.`
|
|
42
|
+
}
|
|
43
|
+
return `Set all "${dataTitle}" data at once. Best for simple forms. Check errors in the response, use describeState if you need the full form structure.`
|
|
41
44
|
}
|
|
42
45
|
|
|
43
46
|
/**
|
|
44
47
|
* @param {import('../../state/index.js').StatefulLayout} statefulLayout
|
|
45
48
|
* @param {{ data: unknown }} args
|
|
46
|
-
* @returns {{
|
|
49
|
+
* @returns {{ valid: boolean, errors: Array<{path: string, message: string}> }}
|
|
47
50
|
*/
|
|
48
51
|
export function execute (statefulLayout, args) {
|
|
49
52
|
statefulLayout.data = args.data
|
|
50
53
|
|
|
51
54
|
return {
|
|
52
|
-
state: projectStateTree(statefulLayout.stateTree, statefulLayout),
|
|
53
55
|
valid: statefulLayout.valid,
|
|
54
56
|
errors: collectErrors(statefulLayout.stateTree.root)
|
|
55
57
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @file setFieldValue tool
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { projectFieldResult, collectErrors } from '../project.js'
|
|
6
6
|
import { resolveNode } from '../resolve.js'
|
|
7
7
|
|
|
8
8
|
export const inputSchema = {
|
|
@@ -13,7 +13,7 @@ export const inputSchema = {
|
|
|
13
13
|
description: 'Path to the field (e.g. "/name", "/items/0/quantity")'
|
|
14
14
|
},
|
|
15
15
|
value: {
|
|
16
|
-
description: 'The value to set'
|
|
16
|
+
description: 'The value to set. For variant-selector fields, pass the variant index to switch variants.'
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
required: ['path', 'value']
|
|
@@ -22,8 +22,16 @@ export const inputSchema = {
|
|
|
22
22
|
export const outputSchema = {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
25
|
-
state: { type: 'object' },
|
|
26
25
|
valid: { type: 'boolean' },
|
|
26
|
+
field: {
|
|
27
|
+
type: 'object',
|
|
28
|
+
properties: {
|
|
29
|
+
path: { type: 'string' },
|
|
30
|
+
type: { type: 'string' },
|
|
31
|
+
data: {},
|
|
32
|
+
error: { type: 'string' }
|
|
33
|
+
}
|
|
34
|
+
},
|
|
27
35
|
errors: {
|
|
28
36
|
type: 'array',
|
|
29
37
|
items: {
|
|
@@ -42,13 +50,13 @@ export const outputSchema = {
|
|
|
42
50
|
* @returns {string}
|
|
43
51
|
*/
|
|
44
52
|
export function getDescription (dataTitle) {
|
|
45
|
-
return `Set the value of a specific field of "${dataTitle}" by path. For
|
|
53
|
+
return `Set the value of a specific field of "${dataTitle}" by path. For fields with suggestions, use the value returned by getFieldSuggestions. To switch a variant selector, set value to the desired variant index (shown in describeState).`
|
|
46
54
|
}
|
|
47
55
|
|
|
48
56
|
/**
|
|
49
57
|
* @param {import('../../state/index.js').StatefulLayout} statefulLayout
|
|
50
58
|
* @param {{ path: string, value: unknown }} args
|
|
51
|
-
* @returns {{
|
|
59
|
+
* @returns {{ valid: boolean, field: ReturnType<typeof projectFieldResult>, errors: Array<{path: string, message: string}> }}
|
|
52
60
|
*/
|
|
53
61
|
export function execute (statefulLayout, args) {
|
|
54
62
|
const node = resolveNode(statefulLayout.stateTree.root, args.path)
|
|
@@ -63,9 +71,13 @@ export function execute (statefulLayout, args) {
|
|
|
63
71
|
statefulLayout.blur(node)
|
|
64
72
|
}
|
|
65
73
|
|
|
74
|
+
// Re-resolve node from updated state tree
|
|
75
|
+
const updatedNode = resolveNode(statefulLayout.stateTree.root, args.path)
|
|
76
|
+
const errors = collectErrors(statefulLayout.stateTree.root)
|
|
77
|
+
|
|
66
78
|
return {
|
|
67
|
-
state: projectStateTree(statefulLayout.stateTree, statefulLayout),
|
|
68
79
|
valid: statefulLayout.valid,
|
|
69
|
-
|
|
80
|
+
field: projectFieldResult(updatedNode || node, statefulLayout),
|
|
81
|
+
errors
|
|
70
82
|
}
|
|
71
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/compile/serialize.js"],"names":[],"mappings":"AAYA;;;GAGG;AACH,0CAHW,OAAO,YAAY,EAAE,cAAc,GACjC,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/compile/serialize.js"],"names":[],"mappings":"AAYA;;;GAGG;AACH,0CAHW,OAAO,YAAY,EAAE,cAAc,GACjC,OAAO,CAAC,MAAM,CAAC,CAyG3B"}
|
package/types/state/index.d.ts
CHANGED
|
@@ -42,8 +42,9 @@ export class StatefulLayout {
|
|
|
42
42
|
* @param {import("../index.js").SkeletonTree} skeletonTree
|
|
43
43
|
* @param {Partial<StatefulLayoutOptions>} options
|
|
44
44
|
* @param {unknown} [data]
|
|
45
|
+
* @param {unknown} [savedData]
|
|
45
46
|
*/
|
|
46
|
-
constructor(compiledLayout: import("../index.js").CompiledLayout, skeletonTree: import("../index.js").SkeletonTree, options: Partial<StatefulLayoutOptions>, data?: unknown);
|
|
47
|
+
constructor(compiledLayout: import("../index.js").CompiledLayout, skeletonTree: import("../index.js").SkeletonTree, options: Partial<StatefulLayoutOptions>, data?: unknown, savedData?: unknown);
|
|
47
48
|
/**
|
|
48
49
|
* @private
|
|
49
50
|
* @readonly
|
|
@@ -136,6 +137,11 @@ export class StatefulLayout {
|
|
|
136
137
|
* @type {FileRef[]}
|
|
137
138
|
*/
|
|
138
139
|
files: FileRef[];
|
|
140
|
+
/**
|
|
141
|
+
* @private
|
|
142
|
+
* @type {unknown}
|
|
143
|
+
*/
|
|
144
|
+
private _savedData;
|
|
139
145
|
/**
|
|
140
146
|
* @type {Record<string, number | string>}
|
|
141
147
|
*/
|
|
@@ -176,6 +182,13 @@ export class StatefulLayout {
|
|
|
176
182
|
* @returns {boolean}
|
|
177
183
|
*/
|
|
178
184
|
get hasHiddenError(): boolean;
|
|
185
|
+
/**
|
|
186
|
+
* @returns {boolean}
|
|
187
|
+
*/
|
|
188
|
+
get modified(): boolean;
|
|
189
|
+
/** @param {unknown} savedData */
|
|
190
|
+
set savedData(savedData: unknown);
|
|
191
|
+
get savedData(): unknown;
|
|
179
192
|
/**
|
|
180
193
|
* @private
|
|
181
194
|
* @param {StateNode} node
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.js"],"names":[],"mappings":";;AAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,mEAAmE;AACnE,wBADW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,IAAI,WAAW,CACY;AAE3E,iLAAiL;AACjL,0BADW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,yBAAyB,EAAE,aAAa,CAAC,KAAK,IAAI,IAAI,UAAU,GAAG,YAAY,GAAG,gBAAgB,CAC5E;AAOjG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"AAkRA;;;;;;;;;;;GAWG;AACH,4CAXW,OAAO,aAAa,EAAE,kBAAkB,EAAE,cAC1C,OAAO,yBAAyB,EAAE,UAAU,QAC5C,GAAG,WACH,OAAO,YAAY,EAAE,gBAAgB,WACrC,OAAO,oBAAoB,EAAE,OAAO,UACpC,OAAO,yBAAyB,EAAE,cAAc,aAChD,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,gBAAgB,CAAC,YAC9C,OAAO,iBACP,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,GAC1D,GAAG,CAsBf;AAiCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,yCAlBW,OAAO,YAAY,EAAE,sBAAsB,iBAC3C,OAAO,YAAY,EAAE,gBAAgB,kBACrC,OAAO,aAAa,EAAE,cAAc,OACpC,MAAM,GAAG,MAAM,WACf,MAAM,iBACN,MAAM,GAAG,IAAI,YACb,MAAM,kBACN,MAAM,GAAG,IAAI,YACb,OAAO,aAAa,EAAE,YAAY,mBAClC,OAAO,yBAAyB,EAAE,KAAK,GAAG,IAAI,iBAC9C,OAAO,oBAAoB,EAAE,OAAO,QACpC,GAAG,iBACH,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,mBAC5D,OAAO,YAAY,EAAE,eAAe,cACpC,MAAM,eACN,OAAO,YAAY,EAAE,SAAS,GAC5B,OAAO,YAAY,EAAE,SAAS,CA2mB1C;AAl7BM,qCALI,OAAO,UACP,OAAO,yBAAyB,EAAE,cAAc,WAChD,OAAO,YAAY,EAAE,gBAAgB,GACnC,OAAO,CAMnB;AAg7BD,uFAAuF;AACvF,iCADW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,KAAK,GAAG,CAgBjF;AAEF,kKAAkK;AAClK,8BADW,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,OAAO,yBAAyB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,yBAAyB,EAAE,WAAW,KAAK,GAAG,CAY7J"}
|
package/types/state/types.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export interface StateNode {
|
|
|
14
14
|
data: unknown;
|
|
15
15
|
error: string | undefined;
|
|
16
16
|
childError: boolean | undefined;
|
|
17
|
+
modified: boolean | undefined;
|
|
18
|
+
childModified: boolean | undefined;
|
|
17
19
|
validated: boolean;
|
|
18
20
|
width: number;
|
|
19
21
|
options: StateNodeOptions;
|
|
@@ -45,6 +47,7 @@ export interface CreateStateTreeContext {
|
|
|
45
47
|
rehydrate: boolean;
|
|
46
48
|
cacheKeys: Record<string, StateNodeCacheKey>;
|
|
47
49
|
rootData: unknown;
|
|
50
|
+
savedData: unknown;
|
|
48
51
|
nodes: StateNode[];
|
|
49
52
|
nodesMap: Map<string, StateNode>;
|
|
50
53
|
getItemsDataRequests: StateNode[];
|
|
@@ -67,7 +70,8 @@ export type StateNodeCacheKey = [
|
|
|
67
70
|
boolean,
|
|
68
71
|
number,
|
|
69
72
|
unknown,
|
|
70
|
-
number
|
|
73
|
+
number,
|
|
74
|
+
unknown
|
|
71
75
|
];
|
|
72
76
|
export interface ValidationState {
|
|
73
77
|
initialized: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a JSON pointer data path against a data object.
|
|
3
|
+
* @param {unknown} data
|
|
4
|
+
* @param {string} dataPath - JSON pointer (e.g. '', '/a/b', '/arr/0')
|
|
5
|
+
* @returns {unknown}
|
|
6
|
+
*/
|
|
7
|
+
export function resolveDataPath(data: unknown, dataPath: string): unknown;
|
|
8
|
+
/**
|
|
9
|
+
* Compare a saved value against a current value.
|
|
10
|
+
* The caller is responsible for checking if the feature is active (context.savedData !== undefined)
|
|
11
|
+
* before calling this function.
|
|
12
|
+
* @param {unknown} savedValue
|
|
13
|
+
* @param {unknown} currentValue
|
|
14
|
+
* @returns {boolean}
|
|
15
|
+
*/
|
|
16
|
+
export function isNodeModified(savedValue: unknown, currentValue: unknown): boolean;
|
|
17
|
+
//# sourceMappingURL=modified.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modified.d.ts","sourceRoot":"","sources":["../../../src/state/utils/modified.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,sCAJW,OAAO,YACP,MAAM,GACJ,OAAO,CAYnB;AAED;;;;;;;GAOG;AACH,2CAJW,OAAO,gBACP,OAAO,GACL,OAAO,CAKnB"}
|
package/types/webmcp/index.d.ts
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {object} WebMCPOptions
|
|
3
|
-
* @property {string} [prefixName] - Prefix for all tool names
|
|
4
|
-
* @property {string} [dataTitle] - Title used in descriptions (default: 'form')
|
|
5
|
-
* @property {object} [schema] - The original JSON schema
|
|
6
|
-
*/
|
|
7
1
|
/**
|
|
8
2
|
* WebMCP class that provides MCP tool descriptors for a StatefulLayout instance
|
|
9
3
|
*/
|
|
@@ -30,14 +24,24 @@ export class WebMCP {
|
|
|
30
24
|
readonly _dataTitle: string;
|
|
31
25
|
/**
|
|
32
26
|
* @readonly
|
|
33
|
-
* @type {
|
|
27
|
+
* @type {"small"|"medium"|"large"}
|
|
34
28
|
*/
|
|
35
|
-
readonly
|
|
29
|
+
readonly _complexity: "small" | "medium" | "large";
|
|
36
30
|
/**
|
|
37
31
|
* @readonly
|
|
38
32
|
* @type {object | null}
|
|
39
33
|
*/
|
|
40
34
|
readonly _schema: object | null;
|
|
35
|
+
/**
|
|
36
|
+
* @readonly
|
|
37
|
+
* @type {boolean}
|
|
38
|
+
*/
|
|
39
|
+
readonly _includeFillFormSkill: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* @readonly
|
|
42
|
+
* @type {boolean}
|
|
43
|
+
*/
|
|
44
|
+
readonly _includeSubAgent: boolean;
|
|
41
45
|
/**
|
|
42
46
|
* @type {string[]}
|
|
43
47
|
*/
|
|
@@ -60,7 +64,6 @@ export class WebMCP {
|
|
|
60
64
|
*/
|
|
61
65
|
unregisterTools(): Promise<void>;
|
|
62
66
|
}
|
|
63
|
-
export type ToolDescriptor = import("@mcp-b/webmcp-types").ToolDescriptor;
|
|
64
67
|
export type WebMCPOptions = {
|
|
65
68
|
/**
|
|
66
69
|
* - Prefix for all tool names
|
|
@@ -74,5 +77,14 @@ export type WebMCPOptions = {
|
|
|
74
77
|
* - The original JSON schema
|
|
75
78
|
*/
|
|
76
79
|
schema?: object | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* - Include the fillFormSkill tool (default: false)
|
|
82
|
+
*/
|
|
83
|
+
includeFillFormSkill?: boolean | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* - Include a subagent_ tool wrapping all form tools (default: false)
|
|
86
|
+
*/
|
|
87
|
+
includeSubAgent?: boolean | undefined;
|
|
77
88
|
};
|
|
89
|
+
export type ToolDescriptor = import("@mcp-b/webmcp-types").ToolDescriptor;
|
|
78
90
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/webmcp/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/webmcp/index.js"],"names":[],"mappings":"AA4DA;;GAEG;AACH;IAgDE;;;OAGG;IACH,4BAHW,OAAO,mBAAmB,EAAE,cAAc,YAC1C,aAAa,EAUvB;IA3DD;;;OAGG;IACH,0BAFU,OAAO,mBAAmB,EAAE,cAAc,CAErC;IAEf;;;OAGG;IACH,sBAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,qBAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,sBAFU,OAAO,GAAC,QAAQ,GAAC,OAAO,CAEvB;IAEX;;;OAGG;IACH,kBAFU,MAAM,GAAG,IAAI,CAET;IAEd;;;OAGG;IACH,gCAFU,OAAO,CAEY;IAE7B;;;OAGG;IACH,2BAFU,OAAO,CAEO;IAExB;;OAEG;IACH,kBAFU,MAAM,EAAE,CAEG;IAgBrB;;;OAGG;IACH,gBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;OAEG;IACH,YAFa,cAAc,EAAE,CA0O5B;IAED;;OAEG;IACH,iBAFa,OAAO,CAAC,IAAI,CAAC,CAczB;IAED;;OAEG;IACH,mBAFa,OAAO,CAAC,IAAI,CAAC,CAYzB;CACF;;;;;;;;;;;;;;;;;;;;;;;6BAjYa,OAAO,qBAAqB,EAAE,cAAc"}
|
|
@@ -1,53 +1,85 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
* @param {import('../state/index.js').StatefulLayout} statefulLayout
|
|
4
|
-
* @returns {{
|
|
5
|
-
* key: string|number,
|
|
2
|
+
* @typedef {{
|
|
6
3
|
* path: string,
|
|
7
|
-
*
|
|
4
|
+
* type: string,
|
|
8
5
|
* data: unknown,
|
|
9
6
|
* title?: string,
|
|
10
7
|
* label?: string,
|
|
11
8
|
* help?: string,
|
|
12
9
|
* error?: string,
|
|
13
|
-
* childError?: boolean,
|
|
14
10
|
* required?: boolean,
|
|
15
11
|
* readOnly?: boolean,
|
|
12
|
+
* modified?: boolean,
|
|
16
13
|
* constraints?: Record<string, unknown>,
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
14
|
+
* variants?: Array<{index: number, title: string}>,
|
|
15
|
+
* selectedVariant?: number,
|
|
16
|
+
* children?: Array<ProjectedNode>,
|
|
17
|
+
* getSuggestions?: boolean
|
|
18
|
+
* }} ProjectedNode
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* @param {import('../state/types.js').StateNode} node
|
|
22
|
+
* @param {import('../state/index.js').StatefulLayout} statefulLayout
|
|
23
|
+
* @returns {ProjectedNode}
|
|
21
24
|
*/
|
|
22
|
-
export function projectNode(node: import("../state/types.js").StateNode, statefulLayout: import("../state/index.js").StatefulLayout):
|
|
23
|
-
|
|
25
|
+
export function projectNode(node: import("../state/types.js").StateNode, statefulLayout: import("../state/index.js").StatefulLayout): ProjectedNode;
|
|
26
|
+
/**
|
|
27
|
+
* Project a single field result for slim mutation responses
|
|
28
|
+
* @param {import('../state/types.js').StateNode} node
|
|
29
|
+
* @param {import('../state/index.js').StatefulLayout} statefulLayout
|
|
30
|
+
* @returns {{ path: string, type: string, data: unknown, error?: string }}
|
|
31
|
+
*/
|
|
32
|
+
export function projectFieldResult(node: import("../state/types.js").StateNode, statefulLayout: import("../state/index.js").StatefulLayout): {
|
|
24
33
|
path: string;
|
|
25
|
-
|
|
34
|
+
type: string;
|
|
26
35
|
data: unknown;
|
|
27
|
-
title?: string;
|
|
28
|
-
label?: string;
|
|
29
|
-
help?: string;
|
|
30
36
|
error?: string;
|
|
31
|
-
childError?: boolean;
|
|
32
|
-
required?: boolean;
|
|
33
|
-
readOnly?: boolean;
|
|
34
|
-
constraints?: Record<string, unknown>;
|
|
35
|
-
oneOfItems?: Array<{
|
|
36
|
-
key: number;
|
|
37
|
-
title: string;
|
|
38
|
-
}>;
|
|
39
|
-
children?: Array<any>;
|
|
40
|
-
getSuffections?: boolean;
|
|
41
37
|
};
|
|
42
38
|
/**
|
|
43
39
|
* @param {import('../state/types.js').StateTree} stateTree
|
|
44
40
|
* @param {import('../state/index.js').StatefulLayout} statefulLayout
|
|
45
|
-
* @returns {{ root:
|
|
41
|
+
* @returns {{ root: ProjectedNode, valid: boolean }}
|
|
46
42
|
*/
|
|
47
43
|
export function projectStateTree(stateTree: import("../state/types.js").StateTree, statefulLayout: import("../state/index.js").StatefulLayout): {
|
|
48
|
-
root:
|
|
44
|
+
root: ProjectedNode;
|
|
49
45
|
valid: boolean;
|
|
50
46
|
};
|
|
47
|
+
/**
|
|
48
|
+
* Format a projected node as a markdown line for LLM-readable output.
|
|
49
|
+
* @param {import('../state/types.js').StateNode} node
|
|
50
|
+
* @param {import('../state/index.js').StatefulLayout} statefulLayout
|
|
51
|
+
* @param {number} [depth]
|
|
52
|
+
* @returns {string}
|
|
53
|
+
*/
|
|
54
|
+
export function projectNodeToMarkdown(node: import("../state/types.js").StateNode, statefulLayout: import("../state/index.js").StatefulLayout, depth?: number): string;
|
|
55
|
+
/**
|
|
56
|
+
* Format a state tree as markdown for LLM-readable output.
|
|
57
|
+
* @param {import('../state/types.js').StateTree} stateTree
|
|
58
|
+
* @param {import('../state/index.js').StatefulLayout} statefulLayout
|
|
59
|
+
* @returns {string}
|
|
60
|
+
*/
|
|
61
|
+
export function projectStateTreeToMarkdown(stateTree: import("../state/types.js").StateTree, statefulLayout: import("../state/index.js").StatefulLayout): string;
|
|
62
|
+
/**
|
|
63
|
+
* Format a mutation result as concise text for LLM-readable output.
|
|
64
|
+
* @param {boolean} valid
|
|
65
|
+
* @param {Array<{path: string, message: string}>} errors
|
|
66
|
+
* @param {string} [prefix] - optional prefix line (e.g. field info)
|
|
67
|
+
* @returns {string}
|
|
68
|
+
*/
|
|
69
|
+
export function formatMutationResult(valid: boolean, errors: Array<{
|
|
70
|
+
path: string;
|
|
71
|
+
message: string;
|
|
72
|
+
}>, prefix?: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Format field suggestions as markdown for LLM-readable output.
|
|
75
|
+
* @param {Array<{value: unknown, title: string, key?: string}>} items
|
|
76
|
+
* @returns {string}
|
|
77
|
+
*/
|
|
78
|
+
export function formatSuggestions(items: Array<{
|
|
79
|
+
value: unknown;
|
|
80
|
+
title: string;
|
|
81
|
+
key?: string;
|
|
82
|
+
}>): string;
|
|
51
83
|
/**
|
|
52
84
|
* @param {import('../state/types.js').StateNode} node
|
|
53
85
|
* @returns {Array<{path: string, message: string}>}
|
|
@@ -56,4 +88,24 @@ export function collectErrors(node: import("../state/types.js").StateNode): Arra
|
|
|
56
88
|
path: string;
|
|
57
89
|
message: string;
|
|
58
90
|
}>;
|
|
91
|
+
export type ProjectedNode = {
|
|
92
|
+
path: string;
|
|
93
|
+
type: string;
|
|
94
|
+
data: unknown;
|
|
95
|
+
title?: string;
|
|
96
|
+
label?: string;
|
|
97
|
+
help?: string;
|
|
98
|
+
error?: string;
|
|
99
|
+
required?: boolean;
|
|
100
|
+
readOnly?: boolean;
|
|
101
|
+
modified?: boolean;
|
|
102
|
+
constraints?: Record<string, unknown>;
|
|
103
|
+
variants?: Array<{
|
|
104
|
+
index: number;
|
|
105
|
+
title: string;
|
|
106
|
+
}>;
|
|
107
|
+
selectedVariant?: number;
|
|
108
|
+
children?: Array<ProjectedNode>;
|
|
109
|
+
getSuggestions?: boolean;
|
|
110
|
+
};
|
|
59
111
|
//# sourceMappingURL=project.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/webmcp/project.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/webmcp/project.js"],"names":[],"mappings":"AA+CA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;GAIG;AACH,kCAJW,OAAO,mBAAmB,EAAE,SAAS,kBACrC,OAAO,mBAAmB,EAAE,cAAc,GACxC,aAAa,CAiDzB;AAED;;;;;GAKG;AACH,yCAJW,OAAO,mBAAmB,EAAE,SAAS,kBACrC,OAAO,mBAAmB,EAAE,cAAc,GACxC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAWzE;AAED;;;;GAIG;AACH,4CAJW,OAAO,mBAAmB,EAAE,SAAS,kBACrC,OAAO,mBAAmB,EAAE,cAAc,GACxC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAOnD;AAED;;;;;;GAMG;AACH,4CALW,OAAO,mBAAmB,EAAE,SAAS,kBACrC,OAAO,mBAAmB,EAAE,cAAc,UAC1C,MAAM,GACJ,MAAM,CAoElB;AAED;;;;;GAKG;AACH,sDAJW,OAAO,mBAAmB,EAAE,SAAS,kBACrC,OAAO,mBAAmB,EAAE,cAAc,GACxC,MAAM,CAsBlB;AAED;;;;;;GAMG;AACH,4CALW,OAAO,UACP,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,WACtC,MAAM,GACJ,MAAM,CAmBlB;AAED;;;;GAIG;AACH,yCAHW,KAAK,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,GAClD,MAAM,CAclB;AAED;;;GAGG;AACH,oCAHW,OAAO,mBAAmB,EAAE,SAAS,GACnC,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAOlD;4BAnQY;IACR,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @param {string} dataTitle
|
|
3
|
+
* @param {"small"|"medium"|"large"} [complexity]
|
|
3
4
|
* @returns {string}
|
|
4
5
|
*/
|
|
5
|
-
export function getDescription(dataTitle: string): string;
|
|
6
|
+
export function getDescription(dataTitle: string, complexity?: "small" | "medium" | "large"): string;
|
|
6
7
|
/**
|
|
7
8
|
* @param {import('../../state/index.js').StatefulLayout} statefulLayout
|
|
8
9
|
* @param {{ path?: string }} args
|
|
@@ -18,6 +19,14 @@ export function execute(statefulLayout: import("../../state/index.js").StatefulL
|
|
|
18
19
|
message: string;
|
|
19
20
|
}>;
|
|
20
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* @param {import('../../state/index.js').StatefulLayout} statefulLayout
|
|
24
|
+
* @param {{ path?: string }} args
|
|
25
|
+
* @returns {string}
|
|
26
|
+
*/
|
|
27
|
+
export function toMarkdown(statefulLayout: import("../../state/index.js").StatefulLayout, args: {
|
|
28
|
+
path?: string;
|
|
29
|
+
}): string;
|
|
21
30
|
export namespace inputSchema {
|
|
22
31
|
let type: string;
|
|
23
32
|
namespace properties {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe-state.d.ts","sourceRoot":"","sources":["../../../src/webmcp/tools/describe-state.js"],"names":[],"mappings":"AAwCA
|
|
1
|
+
{"version":3,"file":"describe-state.d.ts","sourceRoot":"","sources":["../../../src/webmcp/tools/describe-state.js"],"names":[],"mappings":"AAwCA;;;;GAIG;AACH,0CAJW,MAAM,eACN,OAAO,GAAC,QAAQ,GAAC,OAAO,GACtB,MAAM,CAQlB;AAED;;;;GAIG;AACH,wCAJW,OAAO,sBAAsB,EAAE,cAAc,QAC7C;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACf;IAAC,KAAK,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;CAAC,CAsBvJ;AAED;;;;GAIG;AACH,2CAJW,OAAO,sBAAsB,EAAE,cAAc,QAC7C;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACf,MAAM,CAelB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA9FqI,eAAe;4BAAf,eAAe"}
|