@walkeros/mcp 0.4.0-next-1771334965900 → 0.4.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/dist/index.js CHANGED
@@ -172,7 +172,8 @@ function registerBundleTool(server2) {
172
172
  if (!content)
173
173
  throw new Error("content is required when remote: true");
174
174
  const result2 = await bundleRemote({
175
- content
175
+ content,
176
+ flowName: flow
176
177
  });
177
178
  return apiResult({ success: true, ...result2 });
178
179
  }
@@ -730,6 +731,9 @@ function registerDeployTools(server2) {
730
731
  projectId: z5.string().optional().describe("Project ID (defaults to WALKEROS_PROJECT_ID)"),
731
732
  wait: z5.boolean().optional().default(true).describe(
732
733
  "Wait for deployment to complete (default: true). Set to false to return immediately after triggering."
734
+ ),
735
+ flowName: z5.string().optional().describe(
736
+ "Flow name for multi-config flows. Required when a flow has multiple configs."
733
737
  )
734
738
  },
735
739
  annotations: {
@@ -739,9 +743,9 @@ function registerDeployTools(server2) {
739
743
  openWorldHint: true
740
744
  }
741
745
  },
742
- async ({ flowId: flowId2, projectId: projectId2, wait }) => {
746
+ async ({ flowId: flowId2, projectId: projectId2, wait, flowName }) => {
743
747
  try {
744
- return apiResult(await deploy({ flowId: flowId2, projectId: projectId2, wait }));
748
+ return apiResult(await deploy({ flowId: flowId2, projectId: projectId2, wait, flowName }));
745
749
  } catch (error) {
746
750
  return apiError(error);
747
751
  }
@@ -754,7 +758,10 @@ function registerDeployTools(server2) {
754
758
  description: "Get the latest deployment status for a flow. Returns deployment type, status, URLs, and error details.",
755
759
  inputSchema: {
756
760
  flowId: z5.string().describe("Flow ID to check"),
757
- projectId: z5.string().optional().describe("Project ID (defaults to WALKEROS_PROJECT_ID)")
761
+ projectId: z5.string().optional().describe("Project ID (defaults to WALKEROS_PROJECT_ID)"),
762
+ flowName: z5.string().optional().describe(
763
+ "Flow name for multi-config flows. Required when a flow has multiple configs."
764
+ )
758
765
  },
759
766
  annotations: {
760
767
  readOnlyHint: true,
@@ -763,9 +770,9 @@ function registerDeployTools(server2) {
763
770
  openWorldHint: true
764
771
  }
765
772
  },
766
- async ({ flowId: flowId2, projectId: projectId2 }) => {
773
+ async ({ flowId: flowId2, projectId: projectId2, flowName }) => {
767
774
  try {
768
- return apiResult(await getDeployment({ flowId: flowId2, projectId: projectId2 }));
775
+ return apiResult(await getDeployment({ flowId: flowId2, projectId: projectId2, flowName }));
769
776
  } catch (error) {
770
777
  return apiError(error);
771
778
  }
@@ -926,7 +933,7 @@ function registerFlowResources(server2) {
926
933
  // src/index.ts
927
934
  var server = new McpServer({
928
935
  name: "walkeros",
929
- version: "0.4.0-next-1771334965900"
936
+ version: "0.4.0"
930
937
  });
931
938
  registerBundleTool(server);
932
939
  registerSimulateTool(server);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/tools/bundle.ts","../src/schemas/output.ts","../src/tools/helpers.ts","../src/tools/simulate.ts","../src/tools/push.ts","../src/tools/validate.ts","../src/tools/auth.ts","../src/tools/projects.ts","../src/tools/flows.ts","../src/tools/deploy.ts","../src/tools/get-package-schema.ts","../src/resources/package-schemas.ts","../src/resources/flows.ts"],"sourcesContent":["import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\n// Local CLI tools\nimport { registerBundleTool } from './tools/bundle.js';\nimport { registerSimulateTool } from './tools/simulate.js';\nimport { registerPushTool } from './tools/push.js';\nimport { registerValidateTool } from './tools/validate.js';\n// API tools\nimport { registerAuthTools } from './tools/auth.js';\nimport { registerProjectTools } from './tools/projects.js';\nimport { registerFlowTools } from './tools/flows.js';\nimport { registerDeployTools } from './tools/deploy.js';\n// CDN tools\nimport { registerGetPackageSchemaTool } from './tools/get-package-schema.js';\n// Resources\nimport { registerPackageSchemaResources } from './resources/package-schemas.js';\nimport { registerFlowResources } from './resources/flows.js';\n\ndeclare const __VERSION__: string;\n\nconst server = new McpServer({\n name: 'walkeros',\n version: __VERSION__,\n});\n\n// Local CLI tools\nregisterBundleTool(server);\nregisterSimulateTool(server);\nregisterPushTool(server);\nregisterValidateTool(server);\n\n// API tools\nregisterAuthTools(server);\nregisterProjectTools(server);\nregisterFlowTools(server);\nregisterDeployTools(server);\n\n// CDN tools\nregisterGetPackageSchemaTool(server);\n\n// Resources\nregisterPackageSchemaResources(server);\nregisterFlowResources(server);\n\nasync function main() {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error('walkerOS MCP server running on stdio');\n}\n\nmain().catch((error) => {\n console.error('Failed to start MCP server:', error);\n process.exit(1);\n});\n","import { z } from 'zod';\nimport { bundle, bundleRemote } from '@walkeros/cli';\nimport { schemas } from '@walkeros/cli/dev';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { BundleOutputShape } from '../schemas/output.js';\nimport { apiResult } from './helpers.js';\n\nexport function registerBundleTool(server: McpServer) {\n server.registerTool(\n 'bundle',\n {\n title: 'Bundle',\n description:\n 'Bundle a walkerOS flow configuration into deployable JavaScript. ' +\n 'Resolves all destinations, sources, and transformers, then outputs ' +\n 'a tree-shaken production bundle. Returns bundle statistics. ' +\n 'Set remote: true to use the walkerOS cloud service instead of local build tools.',\n inputSchema: {\n ...schemas.BundleInputShape,\n remote: z\n .boolean()\n .optional()\n .describe(\n 'Use remote cloud bundling (requires WALKEROS_TOKEN). Default: false (local)',\n ),\n content: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Flow.Setup JSON content (required when remote: true)'),\n },\n outputSchema: BundleOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n },\n async ({ configPath, flow, stats, output, remote, content }) => {\n try {\n if (remote) {\n if (!content)\n throw new Error('content is required when remote: true');\n const result = await bundleRemote({\n content: content as Record<string, unknown>,\n });\n return apiResult({ success: true, ...result });\n }\n\n // Local bundle path\n const result = await bundle(configPath, {\n flowName: flow,\n stats: stats ?? true,\n buildOverrides: output ? { output } : undefined,\n });\n\n const output_ = (result as unknown as Record<string, unknown>) ?? {\n success: true,\n message: 'Bundle created',\n };\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(output_, null, 2),\n },\n ],\n structuredContent: output_,\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n}\n","import { z } from 'zod';\n\n// Shared primitives\nconst timestamp = z.string().describe('ISO 8601 timestamp');\nconst projectId = z.string().describe('Project ID (proj_...)');\nconst flowId = z.string().describe('Flow ID (cfg_...)');\n\n// Error shape (for reference)\nexport const ErrorOutputShape = {\n error: z.string().describe('Error message'),\n};\n\n// CLI tool output shapes\nexport const ValidateOutputShape = {\n valid: z.boolean().describe('Whether validation passed'),\n type: z\n .union([\n z.enum(['event', 'flow', 'mapping']),\n z.string().regex(/^(destinations|sources|transformers)\\.\\w+$/),\n ])\n .describe('What was validated'),\n errors: z\n .array(\n z.object({\n path: z.string(),\n message: z.string(),\n value: z.unknown().optional(),\n code: z.string().optional(),\n }),\n )\n .describe('Validation errors'),\n warnings: z\n .array(\n z.object({\n path: z.string(),\n message: z.string(),\n suggestion: z.string().optional(),\n }),\n )\n .describe('Validation warnings'),\n details: z\n .record(z.string(), z.unknown())\n .describe('Additional validation details'),\n};\n\nexport const BundleOutputShape = {\n success: z.boolean().describe('Whether bundling succeeded'),\n totalSize: z.number().optional().describe('Total bundle size in bytes'),\n buildTime: z.number().optional().describe('Build time in milliseconds'),\n packages: z\n .array(\n z.object({\n name: z.string(),\n size: z.number(),\n }),\n )\n .optional()\n .describe('Per-package size breakdown'),\n treeshakingEffective: z\n .boolean()\n .optional()\n .describe('Whether tree-shaking was effective'),\n message: z.string().optional().describe('Status message'),\n};\n\nexport const SimulateOutputShape = {\n success: z.boolean().describe('Whether simulation succeeded'),\n error: z.string().optional().describe('Error message if simulation failed'),\n collector: z\n .unknown()\n .optional()\n .describe('Collector state after simulation'),\n elbResult: z.unknown().optional().describe('Push result from the collector'),\n logs: z.array(z.unknown()).optional().describe('Log entries from simulation'),\n usage: z\n .record(z.string(), z.array(z.unknown()))\n .optional()\n .describe('API call usage per destination'),\n duration: z\n .number()\n .optional()\n .describe('Simulation duration in milliseconds'),\n};\n\nexport const PushOutputShape = {\n success: z.boolean().describe('Whether push succeeded'),\n elbResult: z.unknown().optional().describe('Push result from the collector'),\n duration: z.number().describe('Push duration in milliseconds'),\n error: z.string().optional().describe('Error message if push failed'),\n};\n\n// Auth output shapes\nexport const WhoamiOutputShape = {\n userId: z.string().describe('User ID'),\n email: z.string().describe('User email address'),\n projectId: z\n .string()\n .nullable()\n .describe('Project ID if token is project-scoped'),\n};\n\n// Project output shapes\nconst projectFields = {\n id: projectId,\n name: z.string().describe('Project name'),\n role: z.enum(['owner', 'member']).describe('Your role in this project'),\n createdAt: timestamp,\n updatedAt: timestamp,\n};\n\nexport const ProjectOutputShape = { ...projectFields };\n\nexport const ListProjectsOutputShape = {\n projects: z.array(z.object(projectFields)).describe('List of projects'),\n total: z.number().describe('Total number of projects'),\n};\n\n// Flow output shapes\nconst flowFields = {\n id: flowId,\n name: z.string().describe('Flow name'),\n content: z\n .record(z.string(), z.unknown())\n .describe('Flow.Setup JSON content'),\n createdAt: timestamp,\n updatedAt: timestamp,\n deletedAt: z\n .string()\n .nullable()\n .optional()\n .describe('Deletion timestamp if soft-deleted'),\n};\n\nexport const FlowOutputShape = { ...flowFields };\n\nconst flowSummaryFields = {\n id: flowId,\n name: z.string().describe('Flow name'),\n createdAt: timestamp,\n updatedAt: timestamp,\n deletedAt: z\n .string()\n .nullable()\n .describe('Deletion timestamp if soft-deleted'),\n};\n\nexport const ListFlowsOutputShape = {\n flows: z\n .array(z.object(flowSummaryFields))\n .describe('List of flow summaries'),\n total: z.number().describe('Total number of flows'),\n};\n\n// Delete output shape (shared)\nexport const DeleteOutputShape = {\n success: z.literal(true).describe('Deletion succeeded'),\n};\n\n// Package Schema output shape\nexport const PackageSchemaOutputShape = {\n package: z.string().describe('Package name'),\n version: z.string().describe('Package version'),\n type: z.string().describe('Package type (destination, source, transformer)'),\n platform: z.string().describe('Target platform (web, server)'),\n schemas: z\n .record(z.string(), z.unknown())\n .describe('JSON Schemas for settings and mapping'),\n examples: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Configuration examples'),\n};\n\n// Bundle Remote output shape\nexport const BundleRemoteOutputShape = {\n success: z.boolean().describe('Whether bundling succeeded'),\n bundle: z.string().describe('Compiled JavaScript bundle'),\n size: z.number().describe('Bundle size in bytes'),\n stats: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Bundle statistics from server'),\n};\n","export function apiResult(result: unknown) {\n return {\n content: [{ type: 'text' as const, text: JSON.stringify(result, null, 2) }],\n structuredContent: result as Record<string, unknown>,\n };\n}\n\nexport function apiError(error: unknown) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true as const,\n };\n}\n","import { simulate } from '@walkeros/cli';\nimport { schemas } from '@walkeros/cli/dev';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { SimulateOutputShape } from '../schemas/output.js';\n\nexport function registerSimulateTool(server: McpServer) {\n server.registerTool(\n 'simulate',\n {\n title: 'Simulate',\n description:\n 'Simulate events through a walkerOS flow without making real API calls. ' +\n 'Processes events through the full pipeline including transformers and destinations, ' +\n 'returning detailed results with logs and usage statistics.',\n inputSchema: schemas.SimulateInputShape,\n outputSchema: SimulateOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n },\n async ({ configPath, event, flow, platform }) => {\n try {\n // Parse event if JSON string\n let parsedEvent: unknown = event;\n if (event.startsWith('{') || event.startsWith('[')) {\n try {\n parsedEvent = JSON.parse(event);\n } catch {\n // Keep as string (file path or URL)\n }\n }\n\n const result = await simulate(configPath, parsedEvent, {\n json: true,\n flow,\n platform,\n });\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n structuredContent: result as unknown as Record<string, unknown>,\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n}\n","import { push } from '@walkeros/cli';\nimport { schemas } from '@walkeros/cli/dev';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { PushOutputShape } from '../schemas/output.js';\n\nexport function registerPushTool(server: McpServer) {\n server.registerTool(\n 'push',\n {\n title: 'Push',\n description:\n 'Push a real event through a walkerOS flow to actual destinations. ' +\n 'WARNING: This makes real API calls to real endpoints. ' +\n 'Events will be sent to configured destinations (analytics, CRM, etc.).',\n inputSchema: schemas.PushInputShape,\n outputSchema: PushOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ configPath, event, flow, platform }) => {\n try {\n // Parse event if JSON string\n let parsedEvent: unknown = event;\n if (event.startsWith('{') || event.startsWith('[')) {\n try {\n parsedEvent = JSON.parse(event);\n } catch {\n // Keep as string (file path or URL)\n }\n }\n\n const result = await push(configPath, parsedEvent, {\n json: true,\n flow,\n platform,\n });\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n structuredContent: result as unknown as Record<string, unknown>,\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n}\n","import { validate } from '@walkeros/cli';\nimport { schemas } from '@walkeros/cli/dev';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { ValidateOutputShape } from '../schemas/output.js';\n\nexport function registerValidateTool(server: McpServer) {\n server.registerTool(\n 'validate',\n {\n title: 'Validate',\n description:\n 'Validate walkerOS events, flow configurations, or mapping rules. ' +\n 'Accepts JSON strings, file paths, or URLs as input. ' +\n 'Returns validation results with errors, warnings, and details.',\n inputSchema: schemas.ValidateInputShape,\n outputSchema: ValidateOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n },\n async ({ type, input, flow }) => {\n try {\n // Parse input if it looks like JSON\n let parsedInput: unknown = input;\n if (input.startsWith('{') || input.startsWith('[')) {\n try {\n parsedInput = JSON.parse(input);\n } catch {\n // Keep as string (file path or URL)\n }\n }\n\n const result = await validate(type, parsedInput, { flow });\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n structuredContent: result as unknown as Record<string, unknown>,\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n valid: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n}\n","import { whoami } from '@walkeros/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { apiResult, apiError } from './helpers.js';\nimport { WhoamiOutputShape } from '../schemas/output.js';\n\nexport function registerAuthTools(server: McpServer) {\n server.registerTool(\n 'whoami',\n {\n title: 'Who Am I',\n description:\n 'Verify your API token and see your identity. ' +\n 'Returns user ID, email, and project ID (if token is project-scoped). ' +\n 'Use this to confirm your token works and discover your project ID.',\n inputSchema: {},\n outputSchema: WhoamiOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async () => {\n try {\n return apiResult(await whoami());\n } catch (error) {\n return apiError(error);\n }\n },\n );\n}\n","import { z } from 'zod';\nimport {\n listProjects,\n getProject,\n createProject,\n updateProject,\n deleteProject,\n} from '@walkeros/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { apiResult, apiError } from './helpers.js';\nimport {\n ListProjectsOutputShape,\n ProjectOutputShape,\n DeleteOutputShape,\n} from '../schemas/output.js';\n\nexport function registerProjectTools(server: McpServer) {\n server.registerTool(\n 'list-projects',\n {\n title: 'List Projects',\n description:\n 'List all projects you have access to. Returns project IDs, names, and your role.',\n inputSchema: {},\n outputSchema: ListProjectsOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async () => {\n try {\n return apiResult(await listProjects());\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'get-project',\n {\n title: 'Get Project',\n description:\n 'Get details for a project. Uses WALKEROS_PROJECT_ID if projectId is omitted.',\n inputSchema: {\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: ProjectOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async ({ projectId }) => {\n try {\n return apiResult(await getProject({ projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'create-project',\n {\n title: 'Create Project',\n description: 'Create a new project.',\n inputSchema: {\n name: z.string().min(1).max(255).describe('Project name'),\n },\n outputSchema: ProjectOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ name }) => {\n try {\n return apiResult(await createProject({ name }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'update-project',\n {\n title: 'Update Project',\n description:\n 'Update a project name. Uses WALKEROS_PROJECT_ID if projectId is omitted.',\n inputSchema: {\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n name: z.string().min(1).max(255).describe('New project name'),\n },\n outputSchema: ProjectOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ projectId, name }) => {\n try {\n return apiResult(await updateProject({ projectId, name }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'delete-project',\n {\n title: 'Delete Project',\n description:\n 'Soft-delete a project and all its flows. ' +\n 'WARNING: This deletes the project and ALL associated flows and data. ' +\n 'Uses WALKEROS_PROJECT_ID if projectId is omitted.',\n inputSchema: {\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: DeleteOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ projectId }) => {\n try {\n return apiResult(await deleteProject({ projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n}\n","import { z } from 'zod';\nimport {\n listFlows,\n getFlow,\n createFlow,\n updateFlow,\n deleteFlow,\n duplicateFlow,\n} from '@walkeros/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { apiResult, apiError } from './helpers.js';\nimport {\n ListFlowsOutputShape,\n FlowOutputShape,\n DeleteOutputShape,\n} from '../schemas/output.js';\n\nexport function registerFlowTools(server: McpServer) {\n server.registerTool(\n 'list-flows',\n {\n title: 'List Flows',\n description: 'List all flow configurations in a project.',\n inputSchema: {\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n sort: z\n .enum(['name', 'updated_at', 'created_at'])\n .optional()\n .describe('Sort field (default: updated_at)'),\n order: z\n .enum(['asc', 'desc'])\n .optional()\n .describe('Sort order (default: desc)'),\n includeDeleted: z\n .boolean()\n .optional()\n .describe('Include soft-deleted flows (default: false)'),\n },\n outputSchema: ListFlowsOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async ({ projectId, sort, order, includeDeleted }) => {\n try {\n return apiResult(\n await listFlows({ projectId, sort, order, includeDeleted }),\n );\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'get-flow',\n {\n title: 'Get Flow',\n description:\n 'Get a flow configuration with its full content (Flow.Setup JSON).',\n inputSchema: {\n flowId: z.string().describe('Flow ID (cfg_...)'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: FlowOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async ({ flowId, projectId }) => {\n try {\n return apiResult(await getFlow({ flowId, projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'create-flow',\n {\n title: 'Create Flow',\n description: 'Create a new flow configuration in a project.',\n inputSchema: {\n name: z.string().min(1).max(255).describe('Flow name'),\n content: z\n .record(z.string(), z.unknown())\n .describe('Flow.Setup JSON content (must have version: 1)'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: FlowOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ name, content, projectId }) => {\n try {\n return apiResult(await createFlow({ name, content, projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'update-flow',\n {\n title: 'Update Flow',\n description: 'Update a flow configuration name and/or content.',\n inputSchema: {\n flowId: z.string().describe('Flow ID (cfg_...)'),\n name: z.string().min(1).max(255).optional().describe('New flow name'),\n content: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('New Flow.Setup JSON content'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: FlowOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ flowId, name, content, projectId }) => {\n try {\n return apiResult(\n await updateFlow({ flowId, name, content, projectId }),\n );\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'delete-flow',\n {\n title: 'Delete Flow',\n description:\n 'Soft-delete a flow configuration. ' +\n 'WARNING: This removes the flow configuration. Can be restored later. ' +\n 'Requires flowId.',\n inputSchema: {\n flowId: z.string().describe('Flow ID (cfg_...)'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: DeleteOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ flowId, projectId }) => {\n try {\n return apiResult(await deleteFlow({ flowId, projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'duplicate-flow',\n {\n title: 'Duplicate Flow',\n description: 'Create a copy of an existing flow configuration.',\n inputSchema: {\n flowId: z.string().describe('Flow ID to duplicate (cfg_...)'),\n name: z\n .string()\n .optional()\n .describe('Name for the copy (defaults to \"Copy of ...\")'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: FlowOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ flowId, name, projectId }) => {\n try {\n return apiResult(await duplicateFlow({ flowId, name, projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n}\n","import { z } from 'zod';\nimport { deploy, getDeployment } from '@walkeros/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { apiResult, apiError } from './helpers.js';\n\nexport function registerDeployTools(server: McpServer) {\n server.registerTool(\n 'deploy-flow',\n {\n title: 'Deploy Flow',\n description:\n 'Deploy a flow to walkerOS cloud. Auto-detects web (script hosting) or server (container) from the flow content. Returns deployment status, and for web deploys the public URL and script tag.',\n inputSchema: {\n flowId: z.string().describe('Flow ID to deploy'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n wait: z\n .boolean()\n .optional()\n .default(true)\n .describe(\n 'Wait for deployment to complete (default: true). Set to false to return immediately after triggering.',\n ),\n },\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ flowId, projectId, wait }) => {\n try {\n return apiResult(await deploy({ flowId, projectId, wait }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'get-deployment',\n {\n title: 'Get Deployment',\n description:\n 'Get the latest deployment status for a flow. Returns deployment type, status, URLs, and error details.',\n inputSchema: {\n flowId: z.string().describe('Flow ID to check'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async ({ flowId, projectId }) => {\n try {\n return apiResult(await getDeployment({ flowId, projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n}\n","import { z } from 'zod';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { fetchPackageSchema } from '@walkeros/core';\nimport { PackageSchemaOutputShape } from '../schemas/output.js';\n\nexport function registerGetPackageSchemaTool(server: McpServer) {\n server.registerTool(\n 'get-package-schema',\n {\n title: 'Get Package Schema',\n description:\n 'Fetch walkerOS package schemas and examples from npm via jsdelivr CDN. ' +\n 'Returns JSON Schemas for settings and mapping configuration, plus examples. ' +\n 'Use this to understand how to configure a destination, source, or transformer ' +\n 'when building a flow.json.',\n inputSchema: {\n package: z\n .string()\n .min(1)\n .describe(\n 'Exact npm package name (e.g., @walkeros/web-destination-snowplow)',\n ),\n version: z\n .string()\n .optional()\n .describe('Package version (default: latest)'),\n },\n outputSchema: PackageSchemaOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async ({ package: packageName, version }) => {\n try {\n const info = await fetchPackageSchema(packageName, { version });\n\n const result = {\n package: info.packageName,\n version: info.version,\n type: info.type,\n platform: info.platform,\n schemas: info.schemas,\n examples: info.examples,\n };\n\n return {\n content: [\n { type: 'text' as const, text: JSON.stringify(result, null, 2) },\n ],\n structuredContent: result as unknown as Record<string, unknown>,\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n}\n","import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { fetchPackageSchema } from '@walkeros/core';\n\nconst KNOWN_PACKAGES = [\n '@walkeros/web-destination-google-ga4',\n '@walkeros/web-destination-meta-pixel',\n '@walkeros/web-destination-plausible',\n '@walkeros/web-destination-snowplow',\n '@walkeros/web-destination-piwikpro',\n '@walkeros/web-destination-etag',\n '@walkeros/web-destination-bigquery',\n '@walkeros/web-source-walker',\n '@walkeros/web-source-datalayer',\n];\n\nexport function registerPackageSchemaResources(server: McpServer) {\n const template = new ResourceTemplate('walkeros://schema/{packageName}', {\n list: async () => ({\n resources: KNOWN_PACKAGES.map((pkg) => ({\n uri: `walkeros://schema/${encodeURIComponent(pkg)}`,\n name: pkg,\n description: `Schema and examples for ${pkg}`,\n mimeType: 'application/json' as const,\n })),\n }),\n });\n\n server.registerResource(\n 'package-schema',\n template,\n {\n title: 'walkerOS Package Schema',\n description:\n 'JSON Schema and configuration examples for walkerOS packages',\n mimeType: 'application/json',\n },\n async (uri, { packageName }) => {\n const info = await fetchPackageSchema(\n decodeURIComponent(packageName as string),\n );\n return {\n contents: [\n {\n uri: uri.toString(),\n mimeType: 'application/json' as const,\n text: JSON.stringify(info, null, 2),\n },\n ],\n };\n },\n );\n}\n","import { listFlows, getFlow } from '@walkeros/cli';\nimport { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\n\nexport function registerFlowResources(server: McpServer) {\n const template = new ResourceTemplate('walkeros://flow/{flowId}', {\n list: async () => {\n try {\n const { flows } = await listFlows({});\n return {\n resources: flows.map((f: { id: string; name: string }) => ({\n uri: `walkeros://flow/${f.id}`,\n name: f.name,\n mimeType: 'application/json' as const,\n })),\n };\n } catch {\n return { resources: [] };\n }\n },\n });\n\n server.registerResource(\n 'flow-config',\n template,\n {\n title: 'walkerOS Flow Configuration',\n description: 'Flow configurations from your walkerOS project',\n mimeType: 'application/json',\n },\n async (uri, { flowId }) => {\n const flow = await getFlow({ flowId: flowId as string });\n return {\n contents: [\n {\n uri: uri.toString(),\n mimeType: 'application/json' as const,\n text: JSON.stringify(flow, null, 2),\n },\n ],\n };\n },\n );\n}\n"],"mappings":"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","names":["z","server","z","result","schemas","server","schemas","schemas","server","schemas","schemas","server","schemas","server","z","server","z","projectId","z","server","z","projectId","flowId","z","server","z","flowId","projectId","z","server","z","fetchPackageSchema","server","listFlows","getFlow","ResourceTemplate","server","flowId"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/tools/bundle.ts","../src/schemas/output.ts","../src/tools/helpers.ts","../src/tools/simulate.ts","../src/tools/push.ts","../src/tools/validate.ts","../src/tools/auth.ts","../src/tools/projects.ts","../src/tools/flows.ts","../src/tools/deploy.ts","../src/tools/get-package-schema.ts","../src/resources/package-schemas.ts","../src/resources/flows.ts"],"sourcesContent":["import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\n// Local CLI tools\nimport { registerBundleTool } from './tools/bundle.js';\nimport { registerSimulateTool } from './tools/simulate.js';\nimport { registerPushTool } from './tools/push.js';\nimport { registerValidateTool } from './tools/validate.js';\n// API tools\nimport { registerAuthTools } from './tools/auth.js';\nimport { registerProjectTools } from './tools/projects.js';\nimport { registerFlowTools } from './tools/flows.js';\nimport { registerDeployTools } from './tools/deploy.js';\n// CDN tools\nimport { registerGetPackageSchemaTool } from './tools/get-package-schema.js';\n// Resources\nimport { registerPackageSchemaResources } from './resources/package-schemas.js';\nimport { registerFlowResources } from './resources/flows.js';\n\ndeclare const __VERSION__: string;\n\nconst server = new McpServer({\n name: 'walkeros',\n version: __VERSION__,\n});\n\n// Local CLI tools\nregisterBundleTool(server);\nregisterSimulateTool(server);\nregisterPushTool(server);\nregisterValidateTool(server);\n\n// API tools\nregisterAuthTools(server);\nregisterProjectTools(server);\nregisterFlowTools(server);\nregisterDeployTools(server);\n\n// CDN tools\nregisterGetPackageSchemaTool(server);\n\n// Resources\nregisterPackageSchemaResources(server);\nregisterFlowResources(server);\n\nasync function main() {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error('walkerOS MCP server running on stdio');\n}\n\nmain().catch((error) => {\n console.error('Failed to start MCP server:', error);\n process.exit(1);\n});\n","import { z } from 'zod';\nimport { bundle, bundleRemote } from '@walkeros/cli';\nimport { schemas } from '@walkeros/cli/dev';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { BundleOutputShape } from '../schemas/output.js';\nimport { apiResult } from './helpers.js';\n\nexport function registerBundleTool(server: McpServer) {\n server.registerTool(\n 'bundle',\n {\n title: 'Bundle',\n description:\n 'Bundle a walkerOS flow configuration into deployable JavaScript. ' +\n 'Resolves all destinations, sources, and transformers, then outputs ' +\n 'a tree-shaken production bundle. Returns bundle statistics. ' +\n 'Set remote: true to use the walkerOS cloud service instead of local build tools.',\n inputSchema: {\n ...schemas.BundleInputShape,\n remote: z\n .boolean()\n .optional()\n .describe(\n 'Use remote cloud bundling (requires WALKEROS_TOKEN). Default: false (local)',\n ),\n content: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Flow.Setup JSON content (required when remote: true)'),\n },\n outputSchema: BundleOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n },\n async ({ configPath, flow, stats, output, remote, content }) => {\n try {\n if (remote) {\n if (!content)\n throw new Error('content is required when remote: true');\n const result = await bundleRemote({\n content: content as Record<string, unknown>,\n flowName: flow,\n });\n return apiResult({ success: true, ...result });\n }\n\n // Local bundle path\n const result = await bundle(configPath, {\n flowName: flow,\n stats: stats ?? true,\n buildOverrides: output ? { output } : undefined,\n });\n\n const output_ = (result as unknown as Record<string, unknown>) ?? {\n success: true,\n message: 'Bundle created',\n };\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(output_, null, 2),\n },\n ],\n structuredContent: output_,\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n}\n","import { z } from 'zod';\n\n// Shared primitives\nconst timestamp = z.string().describe('ISO 8601 timestamp');\nconst projectId = z.string().describe('Project ID (proj_...)');\nconst flowId = z.string().describe('Flow ID (cfg_...)');\n\n// Error shape (for reference)\nexport const ErrorOutputShape = {\n error: z.string().describe('Error message'),\n};\n\n// CLI tool output shapes\nexport const ValidateOutputShape = {\n valid: z.boolean().describe('Whether validation passed'),\n type: z\n .union([\n z.enum(['event', 'flow', 'mapping']),\n z.string().regex(/^(destinations|sources|transformers)\\.\\w+$/),\n ])\n .describe('What was validated'),\n errors: z\n .array(\n z.object({\n path: z.string(),\n message: z.string(),\n value: z.unknown().optional(),\n code: z.string().optional(),\n }),\n )\n .describe('Validation errors'),\n warnings: z\n .array(\n z.object({\n path: z.string(),\n message: z.string(),\n suggestion: z.string().optional(),\n }),\n )\n .describe('Validation warnings'),\n details: z\n .record(z.string(), z.unknown())\n .describe('Additional validation details'),\n};\n\nexport const BundleOutputShape = {\n success: z.boolean().describe('Whether bundling succeeded'),\n totalSize: z.number().optional().describe('Total bundle size in bytes'),\n buildTime: z.number().optional().describe('Build time in milliseconds'),\n packages: z\n .array(\n z.object({\n name: z.string(),\n size: z.number(),\n }),\n )\n .optional()\n .describe('Per-package size breakdown'),\n treeshakingEffective: z\n .boolean()\n .optional()\n .describe('Whether tree-shaking was effective'),\n message: z.string().optional().describe('Status message'),\n};\n\nexport const SimulateOutputShape = {\n success: z.boolean().describe('Whether simulation succeeded'),\n error: z.string().optional().describe('Error message if simulation failed'),\n collector: z\n .unknown()\n .optional()\n .describe('Collector state after simulation'),\n elbResult: z.unknown().optional().describe('Push result from the collector'),\n logs: z.array(z.unknown()).optional().describe('Log entries from simulation'),\n usage: z\n .record(z.string(), z.array(z.unknown()))\n .optional()\n .describe('API call usage per destination'),\n duration: z\n .number()\n .optional()\n .describe('Simulation duration in milliseconds'),\n};\n\nexport const PushOutputShape = {\n success: z.boolean().describe('Whether push succeeded'),\n elbResult: z.unknown().optional().describe('Push result from the collector'),\n duration: z.number().describe('Push duration in milliseconds'),\n error: z.string().optional().describe('Error message if push failed'),\n};\n\n// Auth output shapes\nexport const WhoamiOutputShape = {\n userId: z.string().describe('User ID'),\n email: z.string().describe('User email address'),\n projectId: z\n .string()\n .nullable()\n .describe('Project ID if token is project-scoped'),\n};\n\n// Project output shapes\nconst projectFields = {\n id: projectId,\n name: z.string().describe('Project name'),\n role: z.enum(['owner', 'member']).describe('Your role in this project'),\n createdAt: timestamp,\n updatedAt: timestamp,\n};\n\nexport const ProjectOutputShape = { ...projectFields };\n\nexport const ListProjectsOutputShape = {\n projects: z.array(z.object(projectFields)).describe('List of projects'),\n total: z.number().describe('Total number of projects'),\n};\n\n// Flow output shapes\nconst flowFields = {\n id: flowId,\n name: z.string().describe('Flow name'),\n content: z\n .record(z.string(), z.unknown())\n .describe('Flow.Setup JSON content'),\n createdAt: timestamp,\n updatedAt: timestamp,\n deletedAt: z\n .string()\n .nullable()\n .optional()\n .describe('Deletion timestamp if soft-deleted'),\n};\n\nexport const FlowOutputShape = { ...flowFields };\n\nconst flowSummaryFields = {\n id: flowId,\n name: z.string().describe('Flow name'),\n createdAt: timestamp,\n updatedAt: timestamp,\n deletedAt: z\n .string()\n .nullable()\n .describe('Deletion timestamp if soft-deleted'),\n};\n\nexport const ListFlowsOutputShape = {\n flows: z\n .array(z.object(flowSummaryFields))\n .describe('List of flow summaries'),\n total: z.number().describe('Total number of flows'),\n};\n\n// Delete output shape (shared)\nexport const DeleteOutputShape = {\n success: z.literal(true).describe('Deletion succeeded'),\n};\n\n// Package Schema output shape\nexport const PackageSchemaOutputShape = {\n package: z.string().describe('Package name'),\n version: z.string().describe('Package version'),\n type: z.string().describe('Package type (destination, source, transformer)'),\n platform: z.string().describe('Target platform (web, server)'),\n schemas: z\n .record(z.string(), z.unknown())\n .describe('JSON Schemas for settings and mapping'),\n examples: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Configuration examples'),\n};\n\n// Bundle Remote output shape\nexport const BundleRemoteOutputShape = {\n success: z.boolean().describe('Whether bundling succeeded'),\n bundle: z.string().describe('Compiled JavaScript bundle'),\n size: z.number().describe('Bundle size in bytes'),\n stats: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Bundle statistics from server'),\n};\n","export function apiResult(result: unknown) {\n return {\n content: [{ type: 'text' as const, text: JSON.stringify(result, null, 2) }],\n structuredContent: result as Record<string, unknown>,\n };\n}\n\nexport function apiError(error: unknown) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true as const,\n };\n}\n","import { simulate } from '@walkeros/cli';\nimport { schemas } from '@walkeros/cli/dev';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { SimulateOutputShape } from '../schemas/output.js';\n\nexport function registerSimulateTool(server: McpServer) {\n server.registerTool(\n 'simulate',\n {\n title: 'Simulate',\n description:\n 'Simulate events through a walkerOS flow without making real API calls. ' +\n 'Processes events through the full pipeline including transformers and destinations, ' +\n 'returning detailed results with logs and usage statistics.',\n inputSchema: schemas.SimulateInputShape,\n outputSchema: SimulateOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n },\n async ({ configPath, event, flow, platform }) => {\n try {\n // Parse event if JSON string\n let parsedEvent: unknown = event;\n if (event.startsWith('{') || event.startsWith('[')) {\n try {\n parsedEvent = JSON.parse(event);\n } catch {\n // Keep as string (file path or URL)\n }\n }\n\n const result = await simulate(configPath, parsedEvent, {\n json: true,\n flow,\n platform,\n });\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n structuredContent: result as unknown as Record<string, unknown>,\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n}\n","import { push } from '@walkeros/cli';\nimport { schemas } from '@walkeros/cli/dev';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { PushOutputShape } from '../schemas/output.js';\n\nexport function registerPushTool(server: McpServer) {\n server.registerTool(\n 'push',\n {\n title: 'Push',\n description:\n 'Push a real event through a walkerOS flow to actual destinations. ' +\n 'WARNING: This makes real API calls to real endpoints. ' +\n 'Events will be sent to configured destinations (analytics, CRM, etc.).',\n inputSchema: schemas.PushInputShape,\n outputSchema: PushOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ configPath, event, flow, platform }) => {\n try {\n // Parse event if JSON string\n let parsedEvent: unknown = event;\n if (event.startsWith('{') || event.startsWith('[')) {\n try {\n parsedEvent = JSON.parse(event);\n } catch {\n // Keep as string (file path or URL)\n }\n }\n\n const result = await push(configPath, parsedEvent, {\n json: true,\n flow,\n platform,\n });\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n structuredContent: result as unknown as Record<string, unknown>,\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n}\n","import { validate } from '@walkeros/cli';\nimport { schemas } from '@walkeros/cli/dev';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { ValidateOutputShape } from '../schemas/output.js';\n\nexport function registerValidateTool(server: McpServer) {\n server.registerTool(\n 'validate',\n {\n title: 'Validate',\n description:\n 'Validate walkerOS events, flow configurations, or mapping rules. ' +\n 'Accepts JSON strings, file paths, or URLs as input. ' +\n 'Returns validation results with errors, warnings, and details.',\n inputSchema: schemas.ValidateInputShape,\n outputSchema: ValidateOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n },\n async ({ type, input, flow }) => {\n try {\n // Parse input if it looks like JSON\n let parsedInput: unknown = input;\n if (input.startsWith('{') || input.startsWith('[')) {\n try {\n parsedInput = JSON.parse(input);\n } catch {\n // Keep as string (file path or URL)\n }\n }\n\n const result = await validate(type, parsedInput, { flow });\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n structuredContent: result as unknown as Record<string, unknown>,\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n valid: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n}\n","import { whoami } from '@walkeros/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { apiResult, apiError } from './helpers.js';\nimport { WhoamiOutputShape } from '../schemas/output.js';\n\nexport function registerAuthTools(server: McpServer) {\n server.registerTool(\n 'whoami',\n {\n title: 'Who Am I',\n description:\n 'Verify your API token and see your identity. ' +\n 'Returns user ID, email, and project ID (if token is project-scoped). ' +\n 'Use this to confirm your token works and discover your project ID.',\n inputSchema: {},\n outputSchema: WhoamiOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async () => {\n try {\n return apiResult(await whoami());\n } catch (error) {\n return apiError(error);\n }\n },\n );\n}\n","import { z } from 'zod';\nimport {\n listProjects,\n getProject,\n createProject,\n updateProject,\n deleteProject,\n} from '@walkeros/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { apiResult, apiError } from './helpers.js';\nimport {\n ListProjectsOutputShape,\n ProjectOutputShape,\n DeleteOutputShape,\n} from '../schemas/output.js';\n\nexport function registerProjectTools(server: McpServer) {\n server.registerTool(\n 'list-projects',\n {\n title: 'List Projects',\n description:\n 'List all projects you have access to. Returns project IDs, names, and your role.',\n inputSchema: {},\n outputSchema: ListProjectsOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async () => {\n try {\n return apiResult(await listProjects());\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'get-project',\n {\n title: 'Get Project',\n description:\n 'Get details for a project. Uses WALKEROS_PROJECT_ID if projectId is omitted.',\n inputSchema: {\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: ProjectOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async ({ projectId }) => {\n try {\n return apiResult(await getProject({ projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'create-project',\n {\n title: 'Create Project',\n description: 'Create a new project.',\n inputSchema: {\n name: z.string().min(1).max(255).describe('Project name'),\n },\n outputSchema: ProjectOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ name }) => {\n try {\n return apiResult(await createProject({ name }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'update-project',\n {\n title: 'Update Project',\n description:\n 'Update a project name. Uses WALKEROS_PROJECT_ID if projectId is omitted.',\n inputSchema: {\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n name: z.string().min(1).max(255).describe('New project name'),\n },\n outputSchema: ProjectOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ projectId, name }) => {\n try {\n return apiResult(await updateProject({ projectId, name }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'delete-project',\n {\n title: 'Delete Project',\n description:\n 'Soft-delete a project and all its flows. ' +\n 'WARNING: This deletes the project and ALL associated flows and data. ' +\n 'Uses WALKEROS_PROJECT_ID if projectId is omitted.',\n inputSchema: {\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: DeleteOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ projectId }) => {\n try {\n return apiResult(await deleteProject({ projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n}\n","import { z } from 'zod';\nimport {\n listFlows,\n getFlow,\n createFlow,\n updateFlow,\n deleteFlow,\n duplicateFlow,\n} from '@walkeros/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { apiResult, apiError } from './helpers.js';\nimport {\n ListFlowsOutputShape,\n FlowOutputShape,\n DeleteOutputShape,\n} from '../schemas/output.js';\n\nexport function registerFlowTools(server: McpServer) {\n server.registerTool(\n 'list-flows',\n {\n title: 'List Flows',\n description: 'List all flow configurations in a project.',\n inputSchema: {\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n sort: z\n .enum(['name', 'updated_at', 'created_at'])\n .optional()\n .describe('Sort field (default: updated_at)'),\n order: z\n .enum(['asc', 'desc'])\n .optional()\n .describe('Sort order (default: desc)'),\n includeDeleted: z\n .boolean()\n .optional()\n .describe('Include soft-deleted flows (default: false)'),\n },\n outputSchema: ListFlowsOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async ({ projectId, sort, order, includeDeleted }) => {\n try {\n return apiResult(\n await listFlows({ projectId, sort, order, includeDeleted }),\n );\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'get-flow',\n {\n title: 'Get Flow',\n description:\n 'Get a flow configuration with its full content (Flow.Setup JSON).',\n inputSchema: {\n flowId: z.string().describe('Flow ID (cfg_...)'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: FlowOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async ({ flowId, projectId }) => {\n try {\n return apiResult(await getFlow({ flowId, projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'create-flow',\n {\n title: 'Create Flow',\n description: 'Create a new flow configuration in a project.',\n inputSchema: {\n name: z.string().min(1).max(255).describe('Flow name'),\n content: z\n .record(z.string(), z.unknown())\n .describe('Flow.Setup JSON content (must have version: 1)'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: FlowOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ name, content, projectId }) => {\n try {\n return apiResult(await createFlow({ name, content, projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'update-flow',\n {\n title: 'Update Flow',\n description: 'Update a flow configuration name and/or content.',\n inputSchema: {\n flowId: z.string().describe('Flow ID (cfg_...)'),\n name: z.string().min(1).max(255).optional().describe('New flow name'),\n content: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('New Flow.Setup JSON content'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: FlowOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ flowId, name, content, projectId }) => {\n try {\n return apiResult(\n await updateFlow({ flowId, name, content, projectId }),\n );\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'delete-flow',\n {\n title: 'Delete Flow',\n description:\n 'Soft-delete a flow configuration. ' +\n 'WARNING: This removes the flow configuration. Can be restored later. ' +\n 'Requires flowId.',\n inputSchema: {\n flowId: z.string().describe('Flow ID (cfg_...)'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: DeleteOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ flowId, projectId }) => {\n try {\n return apiResult(await deleteFlow({ flowId, projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'duplicate-flow',\n {\n title: 'Duplicate Flow',\n description: 'Create a copy of an existing flow configuration.',\n inputSchema: {\n flowId: z.string().describe('Flow ID to duplicate (cfg_...)'),\n name: z\n .string()\n .optional()\n .describe('Name for the copy (defaults to \"Copy of ...\")'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n },\n outputSchema: FlowOutputShape,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ flowId, name, projectId }) => {\n try {\n return apiResult(await duplicateFlow({ flowId, name, projectId }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n}\n","import { z } from 'zod';\nimport { deploy, getDeployment } from '@walkeros/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { apiResult, apiError } from './helpers.js';\n\nexport function registerDeployTools(server: McpServer) {\n server.registerTool(\n 'deploy-flow',\n {\n title: 'Deploy Flow',\n description:\n 'Deploy a flow to walkerOS cloud. Auto-detects web (script hosting) or server (container) from the flow content. Returns deployment status, and for web deploys the public URL and script tag.',\n inputSchema: {\n flowId: z.string().describe('Flow ID to deploy'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n wait: z\n .boolean()\n .optional()\n .default(true)\n .describe(\n 'Wait for deployment to complete (default: true). Set to false to return immediately after triggering.',\n ),\n flowName: z\n .string()\n .optional()\n .describe(\n 'Flow name for multi-config flows. Required when a flow has multiple configs.',\n ),\n },\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n async ({ flowId, projectId, wait, flowName }) => {\n try {\n return apiResult(await deploy({ flowId, projectId, wait, flowName }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n\n server.registerTool(\n 'get-deployment',\n {\n title: 'Get Deployment',\n description:\n 'Get the latest deployment status for a flow. Returns deployment type, status, URLs, and error details.',\n inputSchema: {\n flowId: z.string().describe('Flow ID to check'),\n projectId: z\n .string()\n .optional()\n .describe('Project ID (defaults to WALKEROS_PROJECT_ID)'),\n flowName: z\n .string()\n .optional()\n .describe(\n 'Flow name for multi-config flows. Required when a flow has multiple configs.',\n ),\n },\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async ({ flowId, projectId, flowName }) => {\n try {\n return apiResult(await getDeployment({ flowId, projectId, flowName }));\n } catch (error) {\n return apiError(error);\n }\n },\n );\n}\n","import { z } from 'zod';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { fetchPackageSchema } from '@walkeros/core';\nimport { PackageSchemaOutputShape } from '../schemas/output.js';\n\nexport function registerGetPackageSchemaTool(server: McpServer) {\n server.registerTool(\n 'get-package-schema',\n {\n title: 'Get Package Schema',\n description:\n 'Fetch walkerOS package schemas and examples from npm via jsdelivr CDN. ' +\n 'Returns JSON Schemas for settings and mapping configuration, plus examples. ' +\n 'Use this to understand how to configure a destination, source, or transformer ' +\n 'when building a flow.json.',\n inputSchema: {\n package: z\n .string()\n .min(1)\n .describe(\n 'Exact npm package name (e.g., @walkeros/web-destination-snowplow)',\n ),\n version: z\n .string()\n .optional()\n .describe('Package version (default: latest)'),\n },\n outputSchema: PackageSchemaOutputShape,\n annotations: {\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: true,\n },\n },\n async ({ package: packageName, version }) => {\n try {\n const info = await fetchPackageSchema(packageName, { version });\n\n const result = {\n package: info.packageName,\n version: info.version,\n type: info.type,\n platform: info.platform,\n schemas: info.schemas,\n examples: info.examples,\n };\n\n return {\n content: [\n { type: 'text' as const, text: JSON.stringify(result, null, 2) },\n ],\n structuredContent: result as unknown as Record<string, unknown>,\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : 'Unknown error',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n}\n","import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { fetchPackageSchema } from '@walkeros/core';\n\nconst KNOWN_PACKAGES = [\n '@walkeros/web-destination-google-ga4',\n '@walkeros/web-destination-meta-pixel',\n '@walkeros/web-destination-plausible',\n '@walkeros/web-destination-snowplow',\n '@walkeros/web-destination-piwikpro',\n '@walkeros/web-destination-etag',\n '@walkeros/web-destination-bigquery',\n '@walkeros/web-source-walker',\n '@walkeros/web-source-datalayer',\n];\n\nexport function registerPackageSchemaResources(server: McpServer) {\n const template = new ResourceTemplate('walkeros://schema/{packageName}', {\n list: async () => ({\n resources: KNOWN_PACKAGES.map((pkg) => ({\n uri: `walkeros://schema/${encodeURIComponent(pkg)}`,\n name: pkg,\n description: `Schema and examples for ${pkg}`,\n mimeType: 'application/json' as const,\n })),\n }),\n });\n\n server.registerResource(\n 'package-schema',\n template,\n {\n title: 'walkerOS Package Schema',\n description:\n 'JSON Schema and configuration examples for walkerOS packages',\n mimeType: 'application/json',\n },\n async (uri, { packageName }) => {\n const info = await fetchPackageSchema(\n decodeURIComponent(packageName as string),\n );\n return {\n contents: [\n {\n uri: uri.toString(),\n mimeType: 'application/json' as const,\n text: JSON.stringify(info, null, 2),\n },\n ],\n };\n },\n );\n}\n","import { listFlows, getFlow } from '@walkeros/cli';\nimport { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\n\nexport function registerFlowResources(server: McpServer) {\n const template = new ResourceTemplate('walkeros://flow/{flowId}', {\n list: async () => {\n try {\n const { flows } = await listFlows({});\n return {\n resources: flows.map((f: { id: string; name: string }) => ({\n uri: `walkeros://flow/${f.id}`,\n name: f.name,\n mimeType: 'application/json' as const,\n })),\n };\n } catch {\n return { resources: [] };\n }\n },\n });\n\n server.registerResource(\n 'flow-config',\n template,\n {\n title: 'walkerOS Flow Configuration',\n description: 'Flow configurations from your walkerOS project',\n mimeType: 'application/json',\n },\n async (uri, { flowId }) => {\n const flow = await getFlow({ flowId: flowId as string });\n return {\n contents: [\n {\n uri: uri.toString(),\n mimeType: 'application/json' as const,\n text: JSON.stringify(flow, null, 2),\n },\n ],\n };\n },\n );\n}\n"],"mappings":";;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,4BAA4B;;;ACDrC,SAAS,KAAAA,UAAS;AAClB,SAAS,QAAQ,oBAAoB;AACrC,SAAS,eAAe;;;ACFxB,SAAS,SAAS;AAGlB,IAAM,YAAY,EAAE,OAAO,EAAE,SAAS,oBAAoB;AAC1D,IAAM,YAAY,EAAE,OAAO,EAAE,SAAS,uBAAuB;AAC7D,IAAM,SAAS,EAAE,OAAO,EAAE,SAAS,mBAAmB;AAG/C,IAAM,mBAAmB;AAAA,EAC9B,OAAO,EAAE,OAAO,EAAE,SAAS,eAAe;AAC5C;AAGO,IAAM,sBAAsB;AAAA,EACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,2BAA2B;AAAA,EACvD,MAAM,EACH,MAAM;AAAA,IACL,EAAE,KAAK,CAAC,SAAS,QAAQ,SAAS,CAAC;AAAA,IACnC,EAAE,OAAO,EAAE,MAAM,4CAA4C;AAAA,EAC/D,CAAC,EACA,SAAS,oBAAoB;AAAA,EAChC,QAAQ,EACL;AAAA,IACC,EAAE,OAAO;AAAA,MACP,MAAM,EAAE,OAAO;AAAA,MACf,SAAS,EAAE,OAAO;AAAA,MAClB,OAAO,EAAE,QAAQ,EAAE,SAAS;AAAA,MAC5B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,CAAC;AAAA,EACH,EACC,SAAS,mBAAmB;AAAA,EAC/B,UAAU,EACP;AAAA,IACC,EAAE,OAAO;AAAA,MACP,MAAM,EAAE,OAAO;AAAA,MACf,SAAS,EAAE,OAAO;AAAA,MAClB,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,IAClC,CAAC;AAAA,EACH,EACC,SAAS,qBAAqB;AAAA,EACjC,SAAS,EACN,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,EAC9B,SAAS,+BAA+B;AAC7C;AAEO,IAAM,oBAAoB;AAAA,EAC/B,SAAS,EAAE,QAAQ,EAAE,SAAS,4BAA4B;AAAA,EAC1D,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EACtE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EACtE,UAAU,EACP;AAAA,IACC,EAAE,OAAO;AAAA,MACP,MAAM,EAAE,OAAO;AAAA,MACf,MAAM,EAAE,OAAO;AAAA,IACjB,CAAC;AAAA,EACH,EACC,SAAS,EACT,SAAS,4BAA4B;AAAA,EACxC,sBAAsB,EACnB,QAAQ,EACR,SAAS,EACT,SAAS,oCAAoC;AAAA,EAChD,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAC1D;AAEO,IAAM,sBAAsB;AAAA,EACjC,SAAS,EAAE,QAAQ,EAAE,SAAS,8BAA8B;AAAA,EAC5D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oCAAoC;AAAA,EAC1E,WAAW,EACR,QAAQ,EACR,SAAS,EACT,SAAS,kCAAkC;AAAA,EAC9C,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,EAC3E,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,6BAA6B;AAAA,EAC5E,OAAO,EACJ,OAAO,EAAE,OAAO,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,EACvC,SAAS,EACT,SAAS,gCAAgC;AAAA,EAC5C,UAAU,EACP,OAAO,EACP,SAAS,EACT,SAAS,qCAAqC;AACnD;AAEO,IAAM,kBAAkB;AAAA,EAC7B,SAAS,EAAE,QAAQ,EAAE,SAAS,wBAAwB;AAAA,EACtD,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,EAC3E,UAAU,EAAE,OAAO,EAAE,SAAS,+BAA+B;AAAA,EAC7D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,8BAA8B;AACtE;AAGO,IAAM,oBAAoB;AAAA,EAC/B,QAAQ,EAAE,OAAO,EAAE,SAAS,SAAS;AAAA,EACrC,OAAO,EAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA,EAC/C,WAAW,EACR,OAAO,EACP,SAAS,EACT,SAAS,uCAAuC;AACrD;AAGA,IAAM,gBAAgB;AAAA,EACpB,IAAI;AAAA,EACJ,MAAM,EAAE,OAAO,EAAE,SAAS,cAAc;AAAA,EACxC,MAAM,EAAE,KAAK,CAAC,SAAS,QAAQ,CAAC,EAAE,SAAS,2BAA2B;AAAA,EACtE,WAAW;AAAA,EACX,WAAW;AACb;AAEO,IAAM,qBAAqB,EAAE,GAAG,cAAc;AAE9C,IAAM,0BAA0B;AAAA,EACrC,UAAU,EAAE,MAAM,EAAE,OAAO,aAAa,CAAC,EAAE,SAAS,kBAAkB;AAAA,EACtE,OAAO,EAAE,OAAO,EAAE,SAAS,0BAA0B;AACvD;AAGA,IAAM,aAAa;AAAA,EACjB,IAAI;AAAA,EACJ,MAAM,EAAE,OAAO,EAAE,SAAS,WAAW;AAAA,EACrC,SAAS,EACN,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,EAC9B,SAAS,yBAAyB;AAAA,EACrC,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,oCAAoC;AAClD;AAEO,IAAM,kBAAkB,EAAE,GAAG,WAAW;AAE/C,IAAM,oBAAoB;AAAA,EACxB,IAAI;AAAA,EACJ,MAAM,EAAE,OAAO,EAAE,SAAS,WAAW;AAAA,EACrC,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW,EACR,OAAO,EACP,SAAS,EACT,SAAS,oCAAoC;AAClD;AAEO,IAAM,uBAAuB;AAAA,EAClC,OAAO,EACJ,MAAM,EAAE,OAAO,iBAAiB,CAAC,EACjC,SAAS,wBAAwB;AAAA,EACpC,OAAO,EAAE,OAAO,EAAE,SAAS,uBAAuB;AACpD;AAGO,IAAM,oBAAoB;AAAA,EAC/B,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,oBAAoB;AACxD;AAGO,IAAM,2BAA2B;AAAA,EACtC,SAAS,EAAE,OAAO,EAAE,SAAS,cAAc;AAAA,EAC3C,SAAS,EAAE,OAAO,EAAE,SAAS,iBAAiB;AAAA,EAC9C,MAAM,EAAE,OAAO,EAAE,SAAS,iDAAiD;AAAA,EAC3E,UAAU,EAAE,OAAO,EAAE,SAAS,+BAA+B;AAAA,EAC7D,SAAS,EACN,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,EAC9B,SAAS,uCAAuC;AAAA,EACnD,UAAU,EACP,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,EAC9B,SAAS,EACT,SAAS,wBAAwB;AACtC;AAGO,IAAM,0BAA0B;AAAA,EACrC,SAAS,EAAE,QAAQ,EAAE,SAAS,4BAA4B;AAAA,EAC1D,QAAQ,EAAE,OAAO,EAAE,SAAS,4BAA4B;AAAA,EACxD,MAAM,EAAE,OAAO,EAAE,SAAS,sBAAsB;AAAA,EAChD,OAAO,EACJ,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,EAC9B,SAAS,EACT,SAAS,+BAA+B;AAC7C;;;ACtLO,SAAS,UAAU,QAAiB;AACzC,SAAO;AAAA,IACL,SAAS,CAAC,EAAE,MAAM,QAAiB,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAC1E,mBAAmB;AAAA,EACrB;AACF;AAEO,SAAS,SAAS,OAAgB;AACvC,SAAO;AAAA,IACL,SAAS;AAAA,MACP;AAAA,QACE,MAAM;AAAA,QACN,MAAM,KAAK,UAAU;AAAA,UACnB,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,QAClD,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,SAAS;AAAA,EACX;AACF;;;AFZO,SAAS,mBAAmBC,SAAmB;AACpD,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAIF,aAAa;AAAA,QACX,GAAG,QAAQ;AAAA,QACX,QAAQC,GACL,QAAQ,EACR,SAAS,EACT;AAAA,UACC;AAAA,QACF;AAAA,QACF,SAASA,GACN,OAAOA,GAAE,OAAO,GAAGA,GAAE,QAAQ,CAAC,EAC9B,SAAS,EACT,SAAS,sDAAsD;AAAA,MACpE;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,YAAY,MAAM,OAAO,QAAQ,QAAQ,QAAQ,MAAM;AAC9D,UAAI;AACF,YAAI,QAAQ;AACV,cAAI,CAAC;AACH,kBAAM,IAAI,MAAM,uCAAuC;AACzD,gBAAMC,UAAS,MAAM,aAAa;AAAA,YAChC;AAAA,YACA,UAAU;AAAA,UACZ,CAAC;AACD,iBAAO,UAAU,EAAE,SAAS,MAAM,GAAGA,QAAO,CAAC;AAAA,QAC/C;AAGA,cAAM,SAAS,MAAM,OAAO,YAAY;AAAA,UACtC,UAAU;AAAA,UACV,OAAO,SAAS;AAAA,UAChB,gBAAgB,SAAS,EAAE,OAAO,IAAI;AAAA,QACxC,CAAC;AAED,cAAM,UAAW,UAAiD;AAAA,UAChE,SAAS;AAAA,UACT,SAAS;AAAA,QACX;AAEA,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM,KAAK,UAAU,SAAS,MAAM,CAAC;AAAA,YACvC;AAAA,UACF;AAAA,UACA,mBAAmB;AAAA,QACrB;AAAA,MACF,SAAS,OAAO;AACd,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM,KAAK,UAAU;AAAA,gBACnB,SAAS;AAAA,gBACT,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,cAClD,CAAC;AAAA,YACH;AAAA,UACF;AAAA,UACA,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AGvFA,SAAS,gBAAgB;AACzB,SAAS,WAAAC,gBAAe;AAIjB,SAAS,qBAAqBC,SAAmB;AACtD,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAGF,aAAaC,SAAQ;AAAA,MACrB,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,YAAY,OAAO,MAAM,SAAS,MAAM;AAC/C,UAAI;AAEF,YAAI,cAAuB;AAC3B,YAAI,MAAM,WAAW,GAAG,KAAK,MAAM,WAAW,GAAG,GAAG;AAClD,cAAI;AACF,0BAAc,KAAK,MAAM,KAAK;AAAA,UAChC,QAAQ;AAAA,UAER;AAAA,QACF;AAEA,cAAM,SAAS,MAAM,SAAS,YAAY,aAAa;AAAA,UACrD,MAAM;AAAA,UACN;AAAA,UACA;AAAA,QACF,CAAC;AAED,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC;AAAA,YACtC;AAAA,UACF;AAAA,UACA,mBAAmB;AAAA,QACrB;AAAA,MACF,SAAS,OAAO;AACd,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM,KAAK,UAAU;AAAA,gBACnB,SAAS;AAAA,gBACT,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,cAClD,CAAC;AAAA,YACH;AAAA,UACF;AAAA,UACA,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AClEA,SAAS,YAAY;AACrB,SAAS,WAAAC,gBAAe;AAIjB,SAAS,iBAAiBC,SAAmB;AAClD,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAGF,aAAaC,SAAQ;AAAA,MACrB,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,YAAY,OAAO,MAAM,SAAS,MAAM;AAC/C,UAAI;AAEF,YAAI,cAAuB;AAC3B,YAAI,MAAM,WAAW,GAAG,KAAK,MAAM,WAAW,GAAG,GAAG;AAClD,cAAI;AACF,0BAAc,KAAK,MAAM,KAAK;AAAA,UAChC,QAAQ;AAAA,UAER;AAAA,QACF;AAEA,cAAM,SAAS,MAAM,KAAK,YAAY,aAAa;AAAA,UACjD,MAAM;AAAA,UACN;AAAA,UACA;AAAA,QACF,CAAC;AAED,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC;AAAA,YACtC;AAAA,UACF;AAAA,UACA,mBAAmB;AAAA,QACrB;AAAA,MACF,SAAS,OAAO;AACd,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM,KAAK,UAAU;AAAA,gBACnB,SAAS;AAAA,gBACT,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,cAClD,CAAC;AAAA,YACH;AAAA,UACF;AAAA,UACA,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AClEA,SAAS,gBAAgB;AACzB,SAAS,WAAAC,gBAAe;AAIjB,SAAS,qBAAqBC,SAAmB;AACtD,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAGF,aAAaC,SAAQ;AAAA,MACrB,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,MAAM,OAAO,KAAK,MAAM;AAC/B,UAAI;AAEF,YAAI,cAAuB;AAC3B,YAAI,MAAM,WAAW,GAAG,KAAK,MAAM,WAAW,GAAG,GAAG;AAClD,cAAI;AACF,0BAAc,KAAK,MAAM,KAAK;AAAA,UAChC,QAAQ;AAAA,UAER;AAAA,QACF;AAEA,cAAM,SAAS,MAAM,SAAS,MAAM,aAAa,EAAE,KAAK,CAAC;AAEzD,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC;AAAA,YACtC;AAAA,UACF;AAAA,UACA,mBAAmB;AAAA,QACrB;AAAA,MACF,SAAS,OAAO;AACd,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM,KAAK,UAAU;AAAA,gBACnB,OAAO;AAAA,gBACP,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,cAClD,CAAC;AAAA,YACH;AAAA,UACF;AAAA,UACA,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AC9DA,SAAS,cAAc;AAKhB,SAAS,kBAAkBC,SAAmB;AACnD,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAGF,aAAa,CAAC;AAAA,MACd,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,YAAY;AACV,UAAI;AACF,eAAO,UAAU,MAAM,OAAO,CAAC;AAAA,MACjC,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AACF;;;AC/BA,SAAS,KAAAC,UAAS;AAClB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASA,SAAS,qBAAqBC,SAAmB;AACtD,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MACF,aAAa,CAAC;AAAA,MACd,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,YAAY;AACV,UAAI;AACF,eAAO,UAAU,MAAM,aAAa,CAAC;AAAA,MACvC,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MACF,aAAa;AAAA,QACX,WAAWC,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,MAC5D;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,WAAAC,WAAU,MAAM;AACvB,UAAI;AACF,eAAO,UAAU,MAAM,WAAW,EAAE,WAAAA,WAAU,CAAC,CAAC;AAAA,MAClD,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,EAAAF,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,aAAa;AAAA,QACX,MAAMC,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,cAAc;AAAA,MAC1D;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,KAAK,MAAM;AAClB,UAAI;AACF,eAAO,UAAU,MAAM,cAAc,EAAE,KAAK,CAAC,CAAC;AAAA,MAChD,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,EAAAD,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MACF,aAAa;AAAA,QACX,WAAWC,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,QAC1D,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,kBAAkB;AAAA,MAC9D;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,WAAAC,YAAW,KAAK,MAAM;AAC7B,UAAI;AACF,eAAO,UAAU,MAAM,cAAc,EAAE,WAAAA,YAAW,KAAK,CAAC,CAAC;AAAA,MAC3D,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,EAAAF,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAGF,aAAa;AAAA,QACX,WAAWC,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,MAC5D;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,WAAAC,WAAU,MAAM;AACvB,UAAI;AACF,eAAO,UAAU,MAAM,cAAc,EAAE,WAAAA,WAAU,CAAC,CAAC;AAAA,MACrD,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AACF;;;AC3JA,SAAS,KAAAC,UAAS;AAClB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASA,SAAS,kBAAkBC,SAAmB;AACnD,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,aAAa;AAAA,QACX,WAAWC,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,QAC1D,MAAMA,GACH,KAAK,CAAC,QAAQ,cAAc,YAAY,CAAC,EACzC,SAAS,EACT,SAAS,kCAAkC;AAAA,QAC9C,OAAOA,GACJ,KAAK,CAAC,OAAO,MAAM,CAAC,EACpB,SAAS,EACT,SAAS,4BAA4B;AAAA,QACxC,gBAAgBA,GACb,QAAQ,EACR,SAAS,EACT,SAAS,6CAA6C;AAAA,MAC3D;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,WAAAC,YAAW,MAAM,OAAO,eAAe,MAAM;AACpD,UAAI;AACF,eAAO;AAAA,UACL,MAAM,UAAU,EAAE,WAAAA,YAAW,MAAM,OAAO,eAAe,CAAC;AAAA,QAC5D;AAAA,MACF,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,EAAAF,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MACF,aAAa;AAAA,QACX,QAAQC,GAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA,QAC/C,WAAWA,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,MAC5D;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,QAAAE,SAAQ,WAAAD,WAAU,MAAM;AAC/B,UAAI;AACF,eAAO,UAAU,MAAM,QAAQ,EAAE,QAAAC,SAAQ,WAAAD,WAAU,CAAC,CAAC;AAAA,MACvD,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,EAAAF,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,aAAa;AAAA,QACX,MAAMC,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,WAAW;AAAA,QACrD,SAASA,GACN,OAAOA,GAAE,OAAO,GAAGA,GAAE,QAAQ,CAAC,EAC9B,SAAS,gDAAgD;AAAA,QAC5D,WAAWA,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,MAC5D;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,MAAM,SAAS,WAAAC,WAAU,MAAM;AACtC,UAAI;AACF,eAAO,UAAU,MAAM,WAAW,EAAE,MAAM,SAAS,WAAAA,WAAU,CAAC,CAAC;AAAA,MACjE,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,EAAAF,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,aAAa;AAAA,QACX,QAAQC,GAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA,QAC/C,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA,QACpE,SAASA,GACN,OAAOA,GAAE,OAAO,GAAGA,GAAE,QAAQ,CAAC,EAC9B,SAAS,EACT,SAAS,6BAA6B;AAAA,QACzC,WAAWA,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,MAC5D;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,QAAAE,SAAQ,MAAM,SAAS,WAAAD,WAAU,MAAM;AAC9C,UAAI;AACF,eAAO;AAAA,UACL,MAAM,WAAW,EAAE,QAAAC,SAAQ,MAAM,SAAS,WAAAD,WAAU,CAAC;AAAA,QACvD;AAAA,MACF,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,EAAAF,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAGF,aAAa;AAAA,QACX,QAAQC,GAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA,QAC/C,WAAWA,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,MAC5D;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,QAAAE,SAAQ,WAAAD,WAAU,MAAM;AAC/B,UAAI;AACF,eAAO,UAAU,MAAM,WAAW,EAAE,QAAAC,SAAQ,WAAAD,WAAU,CAAC,CAAC;AAAA,MAC1D,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,EAAAF,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,aAAa;AAAA,QACX,QAAQC,GAAE,OAAO,EAAE,SAAS,gCAAgC;AAAA,QAC5D,MAAMA,GACH,OAAO,EACP,SAAS,EACT,SAAS,+CAA+C;AAAA,QAC3D,WAAWA,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,MAC5D;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,QAAAE,SAAQ,MAAM,WAAAD,WAAU,MAAM;AACrC,UAAI;AACF,eAAO,UAAU,MAAM,cAAc,EAAE,QAAAC,SAAQ,MAAM,WAAAD,WAAU,CAAC,CAAC;AAAA,MACnE,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AACF;;;AC9NA,SAAS,KAAAE,UAAS;AAClB,SAAS,QAAQ,qBAAqB;AAI/B,SAAS,oBAAoBC,SAAmB;AACrD,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MACF,aAAa;AAAA,QACX,QAAQC,GAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA,QAC/C,WAAWA,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,QAC1D,MAAMA,GACH,QAAQ,EACR,SAAS,EACT,QAAQ,IAAI,EACZ;AAAA,UACC;AAAA,QACF;AAAA,QACF,UAAUA,GACP,OAAO,EACP,SAAS,EACT;AAAA,UACC;AAAA,QACF;AAAA,MACJ;AAAA,MACA,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,QAAAC,SAAQ,WAAAC,YAAW,MAAM,SAAS,MAAM;AAC/C,UAAI;AACF,eAAO,UAAU,MAAM,OAAO,EAAE,QAAAD,SAAQ,WAAAC,YAAW,MAAM,SAAS,CAAC,CAAC;AAAA,MACtE,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,EAAAH,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MACF,aAAa;AAAA,QACX,QAAQC,GAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA,QAC9C,WAAWA,GACR,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,QAC1D,UAAUA,GACP,OAAO,EACP,SAAS,EACT;AAAA,UACC;AAAA,QACF;AAAA,MACJ;AAAA,MACA,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,QAAAC,SAAQ,WAAAC,YAAW,SAAS,MAAM;AACzC,UAAI;AACF,eAAO,UAAU,MAAM,cAAc,EAAE,QAAAD,SAAQ,WAAAC,YAAW,SAAS,CAAC,CAAC;AAAA,MACvE,SAAS,OAAO;AACd,eAAO,SAAS,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AACF;;;AClFA,SAAS,KAAAC,UAAS;AAElB,SAAS,0BAA0B;AAG5B,SAAS,6BAA6BC,SAAmB;AAC9D,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAIF,aAAa;AAAA,QACX,SAASC,GACN,OAAO,EACP,IAAI,CAAC,EACL;AAAA,UACC;AAAA,QACF;AAAA,QACF,SAASA,GACN,OAAO,EACP,SAAS,EACT,SAAS,mCAAmC;AAAA,MACjD;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACX,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IACA,OAAO,EAAE,SAAS,aAAa,QAAQ,MAAM;AAC3C,UAAI;AACF,cAAM,OAAO,MAAM,mBAAmB,aAAa,EAAE,QAAQ,CAAC;AAE9D,cAAM,SAAS;AAAA,UACb,SAAS,KAAK;AAAA,UACd,SAAS,KAAK;AAAA,UACd,MAAM,KAAK;AAAA,UACX,UAAU,KAAK;AAAA,UACf,SAAS,KAAK;AAAA,UACd,UAAU,KAAK;AAAA,QACjB;AAEA,eAAO;AAAA,UACL,SAAS;AAAA,YACP,EAAE,MAAM,QAAiB,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE;AAAA,UACjE;AAAA,UACA,mBAAmB;AAAA,QACrB;AAAA,MACF,SAAS,OAAO;AACd,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM,KAAK,UAAU;AAAA,gBACnB,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,cAClD,CAAC;AAAA,YACH;AAAA,UACF;AAAA,UACA,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACrEA,SAAS,wBAAwB;AAEjC,SAAS,sBAAAC,2BAA0B;AAEnC,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,+BAA+BC,SAAmB;AAChE,QAAM,WAAW,IAAI,iBAAiB,mCAAmC;AAAA,IACvE,MAAM,aAAa;AAAA,MACjB,WAAW,eAAe,IAAI,CAAC,SAAS;AAAA,QACtC,KAAK,qBAAqB,mBAAmB,GAAG,CAAC;AAAA,QACjD,MAAM;AAAA,QACN,aAAa,2BAA2B,GAAG;AAAA,QAC3C,UAAU;AAAA,MACZ,EAAE;AAAA,IACJ;AAAA,EACF,CAAC;AAED,EAAAA,QAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,OAAO,KAAK,EAAE,YAAY,MAAM;AAC9B,YAAM,OAAO,MAAMD;AAAA,QACjB,mBAAmB,WAAqB;AAAA,MAC1C;AACA,aAAO;AAAA,QACL,UAAU;AAAA,UACR;AAAA,YACE,KAAK,IAAI,SAAS;AAAA,YAClB,UAAU;AAAA,YACV,MAAM,KAAK,UAAU,MAAM,MAAM,CAAC;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACpDA,SAAS,aAAAE,YAAW,WAAAC,gBAAe;AACnC,SAAS,oBAAAC,yBAAwB;AAG1B,SAAS,sBAAsBC,SAAmB;AACvD,QAAM,WAAW,IAAID,kBAAiB,4BAA4B;AAAA,IAChE,MAAM,YAAY;AAChB,UAAI;AACF,cAAM,EAAE,MAAM,IAAI,MAAMF,WAAU,CAAC,CAAC;AACpC,eAAO;AAAA,UACL,WAAW,MAAM,IAAI,CAAC,OAAqC;AAAA,YACzD,KAAK,mBAAmB,EAAE,EAAE;AAAA,YAC5B,MAAM,EAAE;AAAA,YACR,UAAU;AAAA,UACZ,EAAE;AAAA,QACJ;AAAA,MACF,QAAQ;AACN,eAAO,EAAE,WAAW,CAAC,EAAE;AAAA,MACzB;AAAA,IACF;AAAA,EACF,CAAC;AAED,EAAAG,QAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,OAAO,KAAK,EAAE,QAAAC,QAAO,MAAM;AACzB,YAAM,OAAO,MAAMH,SAAQ,EAAE,QAAQG,QAAiB,CAAC;AACvD,aAAO;AAAA,QACL,UAAU;AAAA,UACR;AAAA,YACE,KAAK,IAAI,SAAS;AAAA,YAClB,UAAU;AAAA,YACV,MAAM,KAAK,UAAU,MAAM,MAAM,CAAC;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AbvBA,IAAM,SAAS,IAAI,UAAU;AAAA,EAC3B,MAAM;AAAA,EACN,SAAS;AACX,CAAC;AAGD,mBAAmB,MAAM;AACzB,qBAAqB,MAAM;AAC3B,iBAAiB,MAAM;AACvB,qBAAqB,MAAM;AAG3B,kBAAkB,MAAM;AACxB,qBAAqB,MAAM;AAC3B,kBAAkB,MAAM;AACxB,oBAAoB,MAAM;AAG1B,6BAA6B,MAAM;AAGnC,+BAA+B,MAAM;AACrC,sBAAsB,MAAM;AAE5B,eAAe,OAAO;AACpB,QAAM,YAAY,IAAI,qBAAqB;AAC3C,QAAM,OAAO,QAAQ,SAAS;AAC9B,UAAQ,MAAM,sCAAsC;AACtD;AAEA,KAAK,EAAE,MAAM,CAAC,UAAU;AACtB,UAAQ,MAAM,+BAA+B,KAAK;AAClD,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":["z","server","z","result","schemas","server","schemas","schemas","server","schemas","schemas","server","schemas","server","z","server","z","projectId","z","server","z","projectId","flowId","z","server","z","flowId","projectId","z","server","z","fetchPackageSchema","server","listFlows","getFlow","ResourceTemplate","server","flowId"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walkeros/mcp",
3
- "version": "0.4.0-next-1771334965900",
3
+ "version": "0.4.0",
4
4
  "description": "MCP server for walkerOS - validate, bundle, and simulate analytics events locally, plus manage projects and flows via the walkerOS API",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -32,15 +32,15 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@modelcontextprotocol/sdk": "^1.26.0",
35
- "@walkeros/cli": "1.4.0-next-1771334965900",
36
- "@walkeros/core": "1.4.0-next-1771334965900"
35
+ "@walkeros/cli": "^2.0.0",
36
+ "@walkeros/core": "^1.4.0"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "zod": "^4.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^20.0.0",
43
- "@walkeros/config": "1.1.0-next-1771334965900"
43
+ "@walkeros/config": "*"
44
44
  },
45
45
  "repository": {
46
46
  "url": "git+https://github.com/elbwalker/walkerOS.git",