@sajou/mcp-server 0.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/README.md +78 -0
- package/dist/app.d.ts +32 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +76 -0
- package/dist/app.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/transport.d.ts +18 -0
- package/dist/mcp/transport.d.ts.map +1 -0
- package/dist/mcp/transport.js +56 -0
- package/dist/mcp/transport.js.map +1 -0
- package/dist/middleware.d.ts +14 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +14 -0
- package/dist/middleware.js.map +1 -0
- package/dist/routes/discovery.d.ts +8 -0
- package/dist/routes/discovery.d.ts.map +1 -0
- package/dist/routes/discovery.js +155 -0
- package/dist/routes/discovery.js.map +1 -0
- package/dist/routes/proxy.d.ts +10 -0
- package/dist/routes/proxy.d.ts.map +1 -0
- package/dist/routes/proxy.js +84 -0
- package/dist/routes/proxy.js.map +1 -0
- package/dist/routes/scene.d.ts +10 -0
- package/dist/routes/scene.d.ts.map +1 -0
- package/dist/routes/scene.js +298 -0
- package/dist/routes/scene.js.map +1 -0
- package/dist/routes/signals.d.ts +12 -0
- package/dist/routes/signals.d.ts.map +1 -0
- package/dist/routes/signals.js +61 -0
- package/dist/routes/signals.js.map +1 -0
- package/dist/routes/tap.d.ts +10 -0
- package/dist/routes/tap.d.ts.map +1 -0
- package/dist/routes/tap.js +115 -0
- package/dist/routes/tap.js.map +1 -0
- package/dist/server.d.ts +12 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +103 -0
- package/dist/server.js.map +1 -0
- package/dist/state/mutations.d.ts +53 -0
- package/dist/state/mutations.d.ts.map +1 -0
- package/dist/state/mutations.js +409 -0
- package/dist/state/mutations.js.map +1 -0
- package/dist/state/store.d.ts +51 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +149 -0
- package/dist/state/store.js.map +1 -0
- package/dist/tools/create-binding.d.ts +45 -0
- package/dist/tools/create-binding.d.ts.map +1 -0
- package/dist/tools/create-binding.js +82 -0
- package/dist/tools/create-binding.js.map +1 -0
- package/dist/tools/create-choreography.d.ts +76 -0
- package/dist/tools/create-choreography.d.ts.map +1 -0
- package/dist/tools/create-choreography.js +118 -0
- package/dist/tools/create-choreography.js.map +1 -0
- package/dist/tools/create-shader.d.ts +117 -0
- package/dist/tools/create-shader.d.ts.map +1 -0
- package/dist/tools/create-shader.js +150 -0
- package/dist/tools/create-shader.js.map +1 -0
- package/dist/tools/create-sketch.d.ts +96 -0
- package/dist/tools/create-sketch.d.ts.map +1 -0
- package/dist/tools/create-sketch.js +130 -0
- package/dist/tools/create-sketch.js.map +1 -0
- package/dist/tools/create-wire.d.ts +32 -0
- package/dist/tools/create-wire.d.ts.map +1 -0
- package/dist/tools/create-wire.js +84 -0
- package/dist/tools/create-wire.js.map +1 -0
- package/dist/tools/describe-scene.d.ts +22 -0
- package/dist/tools/describe-scene.d.ts.map +1 -0
- package/dist/tools/describe-scene.js +194 -0
- package/dist/tools/describe-scene.js.map +1 -0
- package/dist/tools/emit-signal.d.ts +36 -0
- package/dist/tools/emit-signal.d.ts.map +1 -0
- package/dist/tools/emit-signal.js +60 -0
- package/dist/tools/emit-signal.js.map +1 -0
- package/dist/tools/get-catalog.d.ts +27 -0
- package/dist/tools/get-catalog.d.ts.map +1 -0
- package/dist/tools/get-catalog.js +37 -0
- package/dist/tools/get-catalog.js.map +1 -0
- package/dist/tools/get-choreographies.d.ts +21 -0
- package/dist/tools/get-choreographies.d.ts.map +1 -0
- package/dist/tools/get-choreographies.js +70 -0
- package/dist/tools/get-choreographies.js.map +1 -0
- package/dist/tools/get-scene-state.d.ts +21 -0
- package/dist/tools/get-scene-state.d.ts.map +1 -0
- package/dist/tools/get-scene-state.js +48 -0
- package/dist/tools/get-scene-state.js.map +1 -0
- package/dist/tools/get-shaders.d.ts +16 -0
- package/dist/tools/get-shaders.d.ts.map +1 -0
- package/dist/tools/get-shaders.js +38 -0
- package/dist/tools/get-shaders.js.map +1 -0
- package/dist/tools/get-sketches.d.ts +16 -0
- package/dist/tools/get-sketches.d.ts.map +1 -0
- package/dist/tools/get-sketches.js +37 -0
- package/dist/tools/get-sketches.js.map +1 -0
- package/dist/tools/list-themes.d.ts +21 -0
- package/dist/tools/list-themes.d.ts.map +1 -0
- package/dist/tools/list-themes.js +32 -0
- package/dist/tools/list-themes.js.map +1 -0
- package/dist/tools/map-signals.d.ts +30 -0
- package/dist/tools/map-signals.d.ts.map +1 -0
- package/dist/tools/map-signals.js +44 -0
- package/dist/tools/map-signals.js.map +1 -0
- package/dist/tools/place-entity.d.ts +47 -0
- package/dist/tools/place-entity.d.ts.map +1 -0
- package/dist/tools/place-entity.js +85 -0
- package/dist/tools/place-entity.js.map +1 -0
- package/dist/tools/remove-item.d.ts +25 -0
- package/dist/tools/remove-item.d.ts.map +1 -0
- package/dist/tools/remove-item.js +55 -0
- package/dist/tools/remove-item.js.map +1 -0
- package/dist/tools/set-sketch-param.d.ts +29 -0
- package/dist/tools/set-sketch-param.d.ts.map +1 -0
- package/dist/tools/set-sketch-param.js +49 -0
- package/dist/tools/set-sketch-param.js.map +1 -0
- package/dist/tools/set-uniform.d.ts +29 -0
- package/dist/tools/set-uniform.d.ts.map +1 -0
- package/dist/tools/set-uniform.js +49 -0
- package/dist/tools/set-uniform.js.map +1 -0
- package/dist/tools/update-shader.d.ts +119 -0
- package/dist/tools/update-shader.d.ts.map +1 -0
- package/dist/tools/update-shader.js +81 -0
- package/dist/tools/update-shader.js.map +1 -0
- package/dist/tools/update-sketch.d.ts +99 -0
- package/dist/tools/update-sketch.d.ts.map +1 -0
- package/dist/tools/update-sketch.js +75 -0
- package/dist/tools/update-sketch.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: get_shaders
|
|
3
|
+
*
|
|
4
|
+
* Lists all shader definitions with full details (code, uniforms, objects).
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { getShaders } from "../state/store.js";
|
|
8
|
+
export const name = "get_shaders";
|
|
9
|
+
export const description = "List all GLSL shaders in the current scene with full details: source code, " +
|
|
10
|
+
"uniforms (names, types, values, ranges, bindings), virtual objects, and pass count. " +
|
|
11
|
+
"Use this to inspect existing shaders before modifying them or setting uniforms.";
|
|
12
|
+
export const inputSchema = z.object({});
|
|
13
|
+
export async function handler() {
|
|
14
|
+
const shadersState = getShaders();
|
|
15
|
+
const shaders = (shadersState["shaders"] ?? []);
|
|
16
|
+
return {
|
|
17
|
+
content: [
|
|
18
|
+
{
|
|
19
|
+
type: "text",
|
|
20
|
+
text: JSON.stringify({
|
|
21
|
+
ok: true,
|
|
22
|
+
shaderCount: shaders.length,
|
|
23
|
+
shaders: shaders.map((s) => ({
|
|
24
|
+
id: s["id"],
|
|
25
|
+
name: s["name"],
|
|
26
|
+
mode: s["mode"],
|
|
27
|
+
passes: s["passes"],
|
|
28
|
+
fragmentSource: s["fragmentSource"],
|
|
29
|
+
vertexSource: s["vertexSource"],
|
|
30
|
+
uniforms: s["uniforms"],
|
|
31
|
+
objects: s["objects"],
|
|
32
|
+
})),
|
|
33
|
+
}),
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=get-shaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-shaders.js","sourceRoot":"","sources":["../../src/tools/get-shaders.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC;AAElC,MAAM,CAAC,MAAM,WAAW,GACtB,6EAA6E;IAC7E,sFAAsF;IACtF,iFAAiF,CAAC;AAEpF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,OAAO;IAG3B,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAmC,CAAC;IAElF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,EAAE,EAAE,IAAI;oBACR,WAAW,EAAE,OAAO,CAAC,MAAM;oBAC3B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC3B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;wBACf,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;wBACf,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;wBACnB,cAAc,EAAE,CAAC,CAAC,gBAAgB,CAAC;wBACnC,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC;wBAC/B,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC;wBACvB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;qBACtB,CAAC,CAAC;iBACJ,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: get_sketches
|
|
3
|
+
*
|
|
4
|
+
* Lists all sketch definitions with full details (code, params, mode).
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
export declare const name = "get_sketches";
|
|
8
|
+
export declare const description: string;
|
|
9
|
+
export declare const inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
10
|
+
export declare function handler(): Promise<{
|
|
11
|
+
content: Array<{
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
}>;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=get-sketches.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-sketches.d.ts","sourceRoot":"","sources":["../../src/tools/get-sketches.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,IAAI,iBAAiB,CAAC;AAEnC,eAAO,MAAM,WAAW,QAG8D,CAAC;AAEvF,eAAO,MAAM,WAAW,gDAAe,CAAC;AAExC,wBAAsB,OAAO,IAAI,OAAO,CAAC;IACvC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD,CAAC,CAwBD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: get_sketches
|
|
3
|
+
*
|
|
4
|
+
* Lists all sketch definitions with full details (code, params, mode).
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { getP5 } from "../state/store.js";
|
|
8
|
+
export const name = "get_sketches";
|
|
9
|
+
export const description = "List all sketches in the current scene with full details: source code, parameters " +
|
|
10
|
+
"(names, types, values, ranges, bindings), runtime mode (p5 or threejs), and dimensions. " +
|
|
11
|
+
"Use this to inspect existing sketches before modifying them or setting parameters.";
|
|
12
|
+
export const inputSchema = z.object({});
|
|
13
|
+
export async function handler() {
|
|
14
|
+
const p5State = getP5();
|
|
15
|
+
const sketches = (p5State["sketches"] ?? []);
|
|
16
|
+
return {
|
|
17
|
+
content: [
|
|
18
|
+
{
|
|
19
|
+
type: "text",
|
|
20
|
+
text: JSON.stringify({
|
|
21
|
+
ok: true,
|
|
22
|
+
sketchCount: sketches.length,
|
|
23
|
+
sketches: sketches.map((s) => ({
|
|
24
|
+
id: s["id"],
|
|
25
|
+
name: s["name"],
|
|
26
|
+
mode: s["mode"],
|
|
27
|
+
source: s["source"],
|
|
28
|
+
params: s["params"],
|
|
29
|
+
width: s["width"],
|
|
30
|
+
height: s["height"],
|
|
31
|
+
})),
|
|
32
|
+
}),
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=get-sketches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-sketches.js","sourceRoot":"","sources":["../../src/tools/get-sketches.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,CAAC,MAAM,IAAI,GAAG,cAAc,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GACtB,oFAAoF;IACpF,0FAA0F;IAC1F,oFAAoF,CAAC;AAEvF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,OAAO;IAG3B,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAmC,CAAC;IAE/E,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,EAAE,EAAE,IAAI;oBACR,WAAW,EAAE,QAAQ,CAAC,MAAM;oBAC5B,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC7B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;wBACf,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;wBACf,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;wBACnB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;wBACnB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;wBACjB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;qBACpB,CAAC,CAAC;iBACJ,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* list_themes tool — returns available sajou themes.
|
|
3
|
+
*
|
|
4
|
+
* Theme catalog system is not yet implemented. Returns a stub response
|
|
5
|
+
* directing agents to use scene-level tools instead.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
/** Tool name. */
|
|
9
|
+
export declare const name = "list_themes";
|
|
10
|
+
/** Tool description shown to the AI agent. */
|
|
11
|
+
export declare const description: string;
|
|
12
|
+
/** Input schema — no parameters needed. */
|
|
13
|
+
export declare const inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
14
|
+
/** Tool handler — returns stub until theme catalog is implemented. */
|
|
15
|
+
export declare function handler(): Promise<{
|
|
16
|
+
content: Array<{
|
|
17
|
+
type: "text";
|
|
18
|
+
text: string;
|
|
19
|
+
}>;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=list-themes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-themes.d.ts","sourceRoot":"","sources":["../../src/tools/list-themes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iBAAiB;AACjB,eAAO,MAAM,IAAI,gBAAgB,CAAC;AAElC,8CAA8C;AAC9C,eAAO,MAAM,WAAW,QAGmD,CAAC;AAE5E,2CAA2C;AAC3C,eAAO,MAAM,WAAW,gDAAe,CAAC;AAExC,sEAAsE;AACtE,wBAAsB,OAAO,IAAI,OAAO,CAAC;IACvC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD,CAAC,CAeD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* list_themes tool — returns available sajou themes.
|
|
3
|
+
*
|
|
4
|
+
* Theme catalog system is not yet implemented. Returns a stub response
|
|
5
|
+
* directing agents to use scene-level tools instead.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
/** Tool name. */
|
|
9
|
+
export const name = "list_themes";
|
|
10
|
+
/** Tool description shown to the AI agent. */
|
|
11
|
+
export const description = "List available sajou themes. " +
|
|
12
|
+
"NOTE: Theme catalog is under development. Use get_scene_state and " +
|
|
13
|
+
"get_choreographies to interact with the currently loaded scene instead.";
|
|
14
|
+
/** Input schema — no parameters needed. */
|
|
15
|
+
export const inputSchema = z.object({});
|
|
16
|
+
/** Tool handler — returns stub until theme catalog is implemented. */
|
|
17
|
+
export async function handler() {
|
|
18
|
+
return {
|
|
19
|
+
content: [
|
|
20
|
+
{
|
|
21
|
+
type: "text",
|
|
22
|
+
text: JSON.stringify({
|
|
23
|
+
status: "not_yet_available",
|
|
24
|
+
message: "Theme catalog is under development. Use get_scene_state and " +
|
|
25
|
+
"get_choreographies to interact with the currently loaded scene.",
|
|
26
|
+
themes: [],
|
|
27
|
+
}),
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=list-themes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-themes.js","sourceRoot":"","sources":["../../src/tools/list-themes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iBAAiB;AACjB,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC;AAElC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,WAAW,GACtB,+BAA+B;IAC/B,oEAAoE;IACpE,yEAAyE,CAAC;AAE5E,2CAA2C;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAExC,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,OAAO;IAG3B,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,MAAM,EAAE,mBAAmB;oBAC3B,OAAO,EACL,8DAA8D;wBAC9D,iEAAiE;oBACnE,MAAM,EAAE,EAAE;iBACX,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* map_signals tool — convenience wrapper around create_wire for signal→choreography mapping.
|
|
3
|
+
*
|
|
4
|
+
* This is a simpler interface than create_wire for the common case:
|
|
5
|
+
* "when signal X arrives, trigger choreography Y".
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
/** Tool name. */
|
|
9
|
+
export declare const name = "map_signals";
|
|
10
|
+
/** Tool description shown to the AI agent. */
|
|
11
|
+
export declare const description: string;
|
|
12
|
+
/** Input schema. */
|
|
13
|
+
export declare const inputSchema: z.ZodObject<{
|
|
14
|
+
signal_type: z.ZodString;
|
|
15
|
+
choreography_id: z.ZodString;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
signal_type: string;
|
|
18
|
+
choreography_id: string;
|
|
19
|
+
}, {
|
|
20
|
+
signal_type: string;
|
|
21
|
+
choreography_id: string;
|
|
22
|
+
}>;
|
|
23
|
+
/** Tool handler — creates the wire. */
|
|
24
|
+
export declare function handler(params: z.infer<typeof inputSchema>): Promise<{
|
|
25
|
+
content: Array<{
|
|
26
|
+
type: "text";
|
|
27
|
+
text: string;
|
|
28
|
+
}>;
|
|
29
|
+
}>;
|
|
30
|
+
//# sourceMappingURL=map-signals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-signals.d.ts","sourceRoot":"","sources":["../../src/tools/map-signals.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,iBAAiB;AACjB,eAAO,MAAM,IAAI,gBAAgB,CAAC;AAElC,8CAA8C;AAC9C,eAAO,MAAM,WAAW,QAG8E,CAAC;AAEvG,oBAAoB;AACpB,eAAO,MAAM,WAAW;;;;;;;;;EAOtB,CAAC;AAEH,uCAAuC;AACvC,wBAAsB,OAAO,CAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAClC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAmB7D"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* map_signals tool — convenience wrapper around create_wire for signal→choreography mapping.
|
|
3
|
+
*
|
|
4
|
+
* This is a simpler interface than create_wire for the common case:
|
|
5
|
+
* "when signal X arrives, trigger choreography Y".
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { addWire } from "../state/mutations.js";
|
|
9
|
+
/** Tool name. */
|
|
10
|
+
export const name = "map_signals";
|
|
11
|
+
/** Tool description shown to the AI agent. */
|
|
12
|
+
export const description = "Map a signal type to a choreography — when this signal arrives, that choreography plays. " +
|
|
13
|
+
"This is a convenience shortcut. Under the hood it creates a wire from signal-type → choreographer zone. " +
|
|
14
|
+
"For more complex wiring (e.g. connecting a specific signal source first), use create_wire instead.";
|
|
15
|
+
/** Input schema. */
|
|
16
|
+
export const inputSchema = z.object({
|
|
17
|
+
signal_type: z
|
|
18
|
+
.string()
|
|
19
|
+
.describe("The signal type to listen for (e.g. 'task_dispatch', 'tool_call', 'error')."),
|
|
20
|
+
choreography_id: z
|
|
21
|
+
.string()
|
|
22
|
+
.describe("The choreography ID to trigger when the signal arrives."),
|
|
23
|
+
});
|
|
24
|
+
/** Tool handler — creates the wire. */
|
|
25
|
+
export async function handler(params) {
|
|
26
|
+
addWire({
|
|
27
|
+
fromZone: "signal-type",
|
|
28
|
+
fromId: params.signal_type,
|
|
29
|
+
toZone: "choreographer",
|
|
30
|
+
toId: params.choreography_id,
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
content: [
|
|
34
|
+
{
|
|
35
|
+
type: "text",
|
|
36
|
+
text: JSON.stringify({
|
|
37
|
+
ok: true,
|
|
38
|
+
message: `Mapped signal "${params.signal_type}" → choreography "${params.choreography_id}"`,
|
|
39
|
+
}),
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=map-signals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-signals.js","sourceRoot":"","sources":["../../src/tools/map-signals.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,iBAAiB;AACjB,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC;AAElC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,WAAW,GACtB,2FAA2F;IAC3F,0GAA0G;IAC1G,oGAAoG,CAAC;AAEvG,oBAAoB;AACpB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,CAAC,6EAA6E,CAAC;IAC1F,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,CAAC,yDAAyD,CAAC;CACvE,CAAC,CAAC;AAEH,uCAAuC;AACvC,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAmC;IAEnC,OAAO,CAAC;QACN,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,MAAM,CAAC,WAAW;QAC1B,MAAM,EAAE,eAAe;QACvB,IAAI,EAAE,MAAM,CAAC,eAAe;KAC7B,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,EAAE,EAAE,IAAI;oBACR,OAAO,EAAE,kBAAkB,MAAM,CAAC,WAAW,qBAAqB,MAAM,CAAC,eAAe,GAAG;iBAC5F,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: place_entity
|
|
3
|
+
*
|
|
4
|
+
* Places an entity instance on the scene at a given position.
|
|
5
|
+
* Entities are visual objects from the theme's catalog (e.g. 'peon', 'tree', 'building').
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
export declare const name = "place_entity";
|
|
9
|
+
export declare const description: string;
|
|
10
|
+
export declare const inputSchema: z.ZodObject<{
|
|
11
|
+
entityId: z.ZodString;
|
|
12
|
+
x: z.ZodNumber;
|
|
13
|
+
y: z.ZodNumber;
|
|
14
|
+
semanticId: z.ZodOptional<z.ZodString>;
|
|
15
|
+
layerId: z.ZodOptional<z.ZodString>;
|
|
16
|
+
scale: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
rotation: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
zIndex: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
activeState: z.ZodOptional<z.ZodString>;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
entityId: string;
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
semanticId?: string | undefined;
|
|
25
|
+
scale?: number | undefined;
|
|
26
|
+
rotation?: number | undefined;
|
|
27
|
+
layerId?: string | undefined;
|
|
28
|
+
zIndex?: number | undefined;
|
|
29
|
+
activeState?: string | undefined;
|
|
30
|
+
}, {
|
|
31
|
+
entityId: string;
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
semanticId?: string | undefined;
|
|
35
|
+
scale?: number | undefined;
|
|
36
|
+
rotation?: number | undefined;
|
|
37
|
+
layerId?: string | undefined;
|
|
38
|
+
zIndex?: number | undefined;
|
|
39
|
+
activeState?: string | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
export declare function handler(params: z.infer<typeof inputSchema>): Promise<{
|
|
42
|
+
content: Array<{
|
|
43
|
+
type: "text";
|
|
44
|
+
text: string;
|
|
45
|
+
}>;
|
|
46
|
+
}>;
|
|
47
|
+
//# sourceMappingURL=place-entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"place-entity.d.ts","sourceRoot":"","sources":["../../src/tools/place-entity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,IAAI,iBAAiB,CAAC;AAEnC,eAAO,MAAM,WAAW,QAMiD,CAAC;AAE1E,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CtB,CAAC;AAEH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAClC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA8B7D"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: place_entity
|
|
3
|
+
*
|
|
4
|
+
* Places an entity instance on the scene at a given position.
|
|
5
|
+
* Entities are visual objects from the theme's catalog (e.g. 'peon', 'tree', 'building').
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { addEntity } from "../state/mutations.js";
|
|
9
|
+
export const name = "place_entity";
|
|
10
|
+
export const description = "Place an entity on the scene. Entities are visual objects defined in the theme's catalog. " +
|
|
11
|
+
"Use get_catalog to see available entity types for the current theme. " +
|
|
12
|
+
"Each placed entity gets a unique instance ID and can optionally have a semanticId " +
|
|
13
|
+
"to make it an 'actor' that choreographies can target. " +
|
|
14
|
+
"Example: place a 'peon' entity at (200, 300) with semanticId 'agent-1' — " +
|
|
15
|
+
"then choreographies can animate 'agent-1' to move, change state, etc.";
|
|
16
|
+
export const inputSchema = z.object({
|
|
17
|
+
entityId: z
|
|
18
|
+
.string()
|
|
19
|
+
.describe("The entity type ID from the theme catalog (e.g. 'peon', 'tree', 'building-townhall'). " +
|
|
20
|
+
"Use get_catalog to list available entity types."),
|
|
21
|
+
x: z
|
|
22
|
+
.number()
|
|
23
|
+
.describe("X position on the scene (pixels from left). Scene is typically 960px wide."),
|
|
24
|
+
y: z
|
|
25
|
+
.number()
|
|
26
|
+
.describe("Y position on the scene (pixels from top). Scene is typically 640px tall."),
|
|
27
|
+
semanticId: z
|
|
28
|
+
.string()
|
|
29
|
+
.optional()
|
|
30
|
+
.describe("Optional actor name for this entity (e.g. 'agent-1', 'door-kitchen', 'indicator-status'). " +
|
|
31
|
+
"When set, choreographies can target this entity by name. " +
|
|
32
|
+
"Must be unique across all placed entities. " +
|
|
33
|
+
"Omit for passive decoration entities."),
|
|
34
|
+
layerId: z
|
|
35
|
+
.string()
|
|
36
|
+
.optional()
|
|
37
|
+
.describe("Scene layer: 'background' (behind), 'midground' (default), 'foreground' (in front). " +
|
|
38
|
+
"Defaults to 'midground'."),
|
|
39
|
+
scale: z
|
|
40
|
+
.number()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe("Uniform scale factor. 1 = normal size, 0.5 = half, 2 = double. Defaults to 1."),
|
|
43
|
+
rotation: z
|
|
44
|
+
.number()
|
|
45
|
+
.optional()
|
|
46
|
+
.describe("Rotation in degrees. Defaults to 0."),
|
|
47
|
+
zIndex: z
|
|
48
|
+
.number()
|
|
49
|
+
.optional()
|
|
50
|
+
.describe("Z-order within the layer. Higher values render on top. Defaults to 0."),
|
|
51
|
+
activeState: z
|
|
52
|
+
.string()
|
|
53
|
+
.optional()
|
|
54
|
+
.describe("Initial animation state (e.g. 'idle', 'walk', 'attack'). Defaults to 'idle'."),
|
|
55
|
+
});
|
|
56
|
+
export async function handler(params) {
|
|
57
|
+
const instanceId = crypto.randomUUID();
|
|
58
|
+
addEntity({
|
|
59
|
+
id: instanceId,
|
|
60
|
+
entityId: params.entityId,
|
|
61
|
+
x: params.x,
|
|
62
|
+
y: params.y,
|
|
63
|
+
semanticId: params.semanticId,
|
|
64
|
+
layerId: params.layerId,
|
|
65
|
+
scale: params.scale,
|
|
66
|
+
rotation: params.rotation,
|
|
67
|
+
zIndex: params.zIndex,
|
|
68
|
+
activeState: params.activeState,
|
|
69
|
+
});
|
|
70
|
+
return {
|
|
71
|
+
content: [
|
|
72
|
+
{
|
|
73
|
+
type: "text",
|
|
74
|
+
text: JSON.stringify({
|
|
75
|
+
ok: true,
|
|
76
|
+
instanceId,
|
|
77
|
+
hint: params.semanticId
|
|
78
|
+
? `Entity placed with semanticId '${params.semanticId}'. Use this name in choreography steps and bindings.`
|
|
79
|
+
: undefined,
|
|
80
|
+
}),
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=place-entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"place-entity.js","sourceRoot":"","sources":["../../src/tools/place-entity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,MAAM,IAAI,GAAG,cAAc,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GACtB,4FAA4F;IAC5F,uEAAuE;IACvE,oFAAoF;IACpF,wDAAwD;IACxD,2EAA2E;IAC3E,uEAAuE,CAAC;AAE1E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CACP,wFAAwF;QACxF,iDAAiD,CAClD;IACH,CAAC,EAAE,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,CAAC,4EAA4E,CAAC;IACzF,CAAC,EAAE,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,CAAC,2EAA2E,CAAC;IACxF,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4FAA4F;QAC5F,2DAA2D;QAC3D,6CAA6C;QAC7C,uCAAuC,CACxC;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sFAAsF;QACtF,0BAA0B,CAC3B;IACH,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qCAAqC,CAAC;IAClD,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uEAAuE,CAAC;IACpF,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;CAC5F,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAmC;IAEnC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEvC,SAAS,CAAC;QACR,EAAE,EAAE,UAAU;QACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,EAAE,EAAE,IAAI;oBACR,UAAU;oBACV,IAAI,EAAE,MAAM,CAAC,UAAU;wBACrB,CAAC,CAAC,kCAAkC,MAAM,CAAC,UAAU,sDAAsD;wBAC3G,CAAC,CAAC,SAAS;iBACd,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: remove_item
|
|
3
|
+
*
|
|
4
|
+
* Generic removal tool — removes an entity, choreography, binding, or wire from the scene.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
export declare const name = "remove_item";
|
|
8
|
+
export declare const description: string;
|
|
9
|
+
export declare const inputSchema: z.ZodObject<{
|
|
10
|
+
type: z.ZodEnum<["entity", "choreography", "binding", "wire", "source"]>;
|
|
11
|
+
id: z.ZodString;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
type: "entity" | "choreography" | "binding" | "wire" | "source";
|
|
14
|
+
id: string;
|
|
15
|
+
}, {
|
|
16
|
+
type: "entity" | "choreography" | "binding" | "wire" | "source";
|
|
17
|
+
id: string;
|
|
18
|
+
}>;
|
|
19
|
+
export declare function handler(params: z.infer<typeof inputSchema>): Promise<{
|
|
20
|
+
content: Array<{
|
|
21
|
+
type: "text";
|
|
22
|
+
text: string;
|
|
23
|
+
}>;
|
|
24
|
+
}>;
|
|
25
|
+
//# sourceMappingURL=remove-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-item.d.ts","sourceRoot":"","sources":["../../src/tools/remove-item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,IAAI,gBAAgB,CAAC;AAElC,eAAO,MAAM,WAAW,QAI8B,CAAC;AAEvD,eAAO,MAAM,WAAW;;;;;;;;;EActB,CAAC;AAEH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAClC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA6B7D"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: remove_item
|
|
3
|
+
*
|
|
4
|
+
* Generic removal tool — removes an entity, choreography, binding, or wire from the scene.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { removeEntity, removeChoreography, removeBinding, removeWire, removeSignalSource, } from "../state/mutations.js";
|
|
8
|
+
export const name = "remove_item";
|
|
9
|
+
export const description = "Remove an item from the scene. Supports removing entities, choreographies, bindings, wires, and signal sources. " +
|
|
10
|
+
"Use get_scene_state, get_choreographies, or describe_scene to find item IDs. " +
|
|
11
|
+
"Removing a choreography also cleans up its connected wires. " +
|
|
12
|
+
"Removing a signal source also cleans up its wires.";
|
|
13
|
+
export const inputSchema = z.object({
|
|
14
|
+
type: z
|
|
15
|
+
.enum(["entity", "choreography", "binding", "wire", "source"])
|
|
16
|
+
.describe("What type of item to remove. " +
|
|
17
|
+
"'entity' — a placed entity instance (use the instance ID, not the entity type). " +
|
|
18
|
+
"'choreography' — a choreography definition (also removes connected wires). " +
|
|
19
|
+
"'binding' — an entity binding. " +
|
|
20
|
+
"'wire' — a wire connection. " +
|
|
21
|
+
"'source' — a signal source (local sources cannot be removed)."),
|
|
22
|
+
id: z
|
|
23
|
+
.string()
|
|
24
|
+
.describe("The ID of the item to remove."),
|
|
25
|
+
});
|
|
26
|
+
export async function handler(params) {
|
|
27
|
+
switch (params.type) {
|
|
28
|
+
case "entity":
|
|
29
|
+
removeEntity(params.id);
|
|
30
|
+
break;
|
|
31
|
+
case "choreography":
|
|
32
|
+
removeChoreography(params.id);
|
|
33
|
+
break;
|
|
34
|
+
case "binding":
|
|
35
|
+
removeBinding(params.id);
|
|
36
|
+
break;
|
|
37
|
+
case "wire":
|
|
38
|
+
removeWire(params.id);
|
|
39
|
+
break;
|
|
40
|
+
case "source":
|
|
41
|
+
removeSignalSource(params.id);
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
content: [
|
|
46
|
+
{
|
|
47
|
+
type: "text",
|
|
48
|
+
text: JSON.stringify({
|
|
49
|
+
ok: true,
|
|
50
|
+
}),
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=remove-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-item.js","sourceRoot":"","sources":["../../src/tools/remove-item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC;AAElC,MAAM,CAAC,MAAM,WAAW,GACtB,kHAAkH;IAClH,+EAA+E;IAC/E,8DAA8D;IAC9D,oDAAoD,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;SAC7D,QAAQ,CACP,+BAA+B;QAC/B,kFAAkF;QAClF,6EAA6E;QAC7E,iCAAiC;QACjC,8BAA8B;QAC9B,+DAA+D,CAChE;IACH,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,CAAC,+BAA+B,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAmC;IAEnC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,cAAc;YACjB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM;QACR,KAAK,SAAS;YACZ,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzB,MAAM;QACR,KAAK,MAAM;YACT,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtB,MAAM;QACR,KAAK,QAAQ;YACX,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM;IACV,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,EAAE,EAAE,IAAI;iBACT,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: set_sketch_param
|
|
3
|
+
*
|
|
4
|
+
* Sets a parameter value on a sketch in real-time. This is the key runtime
|
|
5
|
+
* tool — an AI agent tweaks sketch parameters as events flow through.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
export declare const name = "set_sketch_param";
|
|
9
|
+
export declare const description: string;
|
|
10
|
+
export declare const inputSchema: z.ZodObject<{
|
|
11
|
+
sketchId: z.ZodString;
|
|
12
|
+
paramName: z.ZodString;
|
|
13
|
+
value: z.ZodUnion<[z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodNumber, "many">]>;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
value: number | boolean | number[];
|
|
16
|
+
paramName: string;
|
|
17
|
+
sketchId: string;
|
|
18
|
+
}, {
|
|
19
|
+
value: number | boolean | number[];
|
|
20
|
+
paramName: string;
|
|
21
|
+
sketchId: string;
|
|
22
|
+
}>;
|
|
23
|
+
export declare function handler(params: z.infer<typeof inputSchema>): Promise<{
|
|
24
|
+
content: Array<{
|
|
25
|
+
type: "text";
|
|
26
|
+
text: string;
|
|
27
|
+
}>;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=set-sketch-param.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-sketch-param.d.ts","sourceRoot":"","sources":["../../src/tools/set-sketch-param.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,IAAI,qBAAqB,CAAC;AAEvC,eAAO,MAAM,WAAW,QAW2D,CAAC;AAEpF,eAAO,MAAM,WAAW;;;;;;;;;;;;EAatB,CAAC;AAEH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAClC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAgB7D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: set_sketch_param
|
|
3
|
+
*
|
|
4
|
+
* Sets a parameter value on a sketch in real-time. This is the key runtime
|
|
5
|
+
* tool — an AI agent tweaks sketch parameters as events flow through.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { setP5Param } from "../state/mutations.js";
|
|
9
|
+
export const name = "set_sketch_param";
|
|
10
|
+
export const description = "Set a parameter value on a sketch in real-time. This is the primary way an AI agent " +
|
|
11
|
+
"controls sketch visuals — tweak a float slider, change a color, toggle an effect, or move " +
|
|
12
|
+
"a 2D position.\n\n" +
|
|
13
|
+
"The value type must match the parameter's type:\n" +
|
|
14
|
+
"- float/int → number (e.g. 0.5)\n" +
|
|
15
|
+
"- bool → boolean (true/false)\n" +
|
|
16
|
+
"- vec2 → [x, y]\n" +
|
|
17
|
+
"- vec3 → [r, g, b] or [x, y, z]\n" +
|
|
18
|
+
"- vec4 → [r, g, b, a]\n\n" +
|
|
19
|
+
"Example: to speed up a particle effect, set_sketch_param({ sketchId: '...', paramName: 'speed', value: 3.0 }).\n\n" +
|
|
20
|
+
"Use get_sketches first to discover available parameters and their value ranges.";
|
|
21
|
+
export const inputSchema = z.object({
|
|
22
|
+
sketchId: z
|
|
23
|
+
.string()
|
|
24
|
+
.describe("ID of the sketch containing the parameter."),
|
|
25
|
+
paramName: z
|
|
26
|
+
.string()
|
|
27
|
+
.describe("Name of the parameter to set (e.g. 'speed', 'radius', 'color')."),
|
|
28
|
+
value: z
|
|
29
|
+
.union([z.number(), z.boolean(), z.array(z.number())])
|
|
30
|
+
.describe("New value for the parameter. Must match the declared type: " +
|
|
31
|
+
"number for float/int, boolean for bool, number[] for vec2/vec3/vec4."),
|
|
32
|
+
});
|
|
33
|
+
export async function handler(params) {
|
|
34
|
+
setP5Param(params.sketchId, params.paramName, params.value);
|
|
35
|
+
return {
|
|
36
|
+
content: [
|
|
37
|
+
{
|
|
38
|
+
type: "text",
|
|
39
|
+
text: JSON.stringify({
|
|
40
|
+
ok: true,
|
|
41
|
+
sketchId: params.sketchId,
|
|
42
|
+
paramName: params.paramName,
|
|
43
|
+
value: params.value,
|
|
44
|
+
}),
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=set-sketch-param.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-sketch-param.js","sourceRoot":"","sources":["../../src/tools/set-sketch-param.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAEvC,MAAM,CAAC,MAAM,WAAW,GACtB,sFAAsF;IACtF,4FAA4F;IAC5F,oBAAoB;IACpB,mDAAmD;IACnD,mCAAmC;IACnC,iCAAiC;IACjC,mBAAmB;IACnB,mCAAmC;IACnC,2BAA2B;IAC3B,oHAAoH;IACpH,iFAAiF,CAAC;AAEpF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,4CAA4C,CAAC;IACzD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACrD,QAAQ,CACP,6DAA6D;QAC7D,sEAAsE,CACvE;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAmC;IAEnC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: set_uniform
|
|
3
|
+
*
|
|
4
|
+
* Sets a uniform value on a shader in real-time. This is the key runtime
|
|
5
|
+
* tool — an AI agent tweaks shader parameters as events flow through.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
export declare const name = "set_uniform";
|
|
9
|
+
export declare const description: string;
|
|
10
|
+
export declare const inputSchema: z.ZodObject<{
|
|
11
|
+
shaderId: z.ZodString;
|
|
12
|
+
uniformName: z.ZodString;
|
|
13
|
+
value: z.ZodUnion<[z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodNumber, "many">]>;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
value: number | boolean | number[];
|
|
16
|
+
uniformName: string;
|
|
17
|
+
shaderId: string;
|
|
18
|
+
}, {
|
|
19
|
+
value: number | boolean | number[];
|
|
20
|
+
uniformName: string;
|
|
21
|
+
shaderId: string;
|
|
22
|
+
}>;
|
|
23
|
+
export declare function handler(params: z.infer<typeof inputSchema>): Promise<{
|
|
24
|
+
content: Array<{
|
|
25
|
+
type: "text";
|
|
26
|
+
text: string;
|
|
27
|
+
}>;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=set-uniform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-uniform.d.ts","sourceRoot":"","sources":["../../src/tools/set-uniform.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,IAAI,gBAAgB,CAAC;AAElC,eAAO,MAAM,WAAW,QAWwD,CAAC;AAEjF,eAAO,MAAM,WAAW;;;;;;;;;;;;EAatB,CAAC;AAEH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAClC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAgB7D"}
|