@xano/developer-mcp 1.0.26 → 1.0.27

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.
Files changed (75) hide show
  1. package/dist/xanoscript_docs/README.md +78 -64
  2. package/dist/xanoscript_docs/apis.md +81 -27
  3. package/dist/xanoscript_docs/branch.md +13 -13
  4. package/dist/xanoscript_docs/database.md +57 -17
  5. package/dist/xanoscript_docs/functions.md +43 -71
  6. package/dist/xanoscript_docs/performance.md +14 -23
  7. package/dist/xanoscript_docs/tables.md +47 -1
  8. package/dist/xanoscript_docs/tools.md +9 -7
  9. package/dist/xanoscript_docs/types.md +12 -10
  10. package/package.json +1 -1
  11. package/dist/api_docs/format.d.ts +0 -5
  12. package/dist/api_docs/format.js +0 -171
  13. package/dist/api_docs/index.d.ts +0 -52
  14. package/dist/api_docs/index.js +0 -111
  15. package/dist/api_docs/topics/agent.d.ts +0 -2
  16. package/dist/api_docs/topics/agent.js +0 -142
  17. package/dist/api_docs/topics/api.d.ts +0 -2
  18. package/dist/api_docs/topics/api.js +0 -176
  19. package/dist/api_docs/topics/apigroup.d.ts +0 -2
  20. package/dist/api_docs/topics/apigroup.js +0 -124
  21. package/dist/api_docs/topics/authentication.d.ts +0 -2
  22. package/dist/api_docs/topics/authentication.js +0 -61
  23. package/dist/api_docs/topics/branch.d.ts +0 -2
  24. package/dist/api_docs/topics/branch.js +0 -73
  25. package/dist/api_docs/topics/file.d.ts +0 -2
  26. package/dist/api_docs/topics/file.js +0 -70
  27. package/dist/api_docs/topics/function.d.ts +0 -2
  28. package/dist/api_docs/topics/function.js +0 -164
  29. package/dist/api_docs/topics/history.d.ts +0 -2
  30. package/dist/api_docs/topics/history.js +0 -149
  31. package/dist/api_docs/topics/mcp_server.d.ts +0 -2
  32. package/dist/api_docs/topics/mcp_server.js +0 -139
  33. package/dist/api_docs/topics/middleware.d.ts +0 -2
  34. package/dist/api_docs/topics/middleware.js +0 -156
  35. package/dist/api_docs/topics/realtime.d.ts +0 -2
  36. package/dist/api_docs/topics/realtime.js +0 -112
  37. package/dist/api_docs/topics/start.d.ts +0 -2
  38. package/dist/api_docs/topics/start.js +0 -107
  39. package/dist/api_docs/topics/table.d.ts +0 -2
  40. package/dist/api_docs/topics/table.js +0 -195
  41. package/dist/api_docs/topics/task.d.ts +0 -2
  42. package/dist/api_docs/topics/task.js +0 -165
  43. package/dist/api_docs/topics/tool.d.ts +0 -2
  44. package/dist/api_docs/topics/tool.js +0 -150
  45. package/dist/api_docs/topics/workflows.d.ts +0 -2
  46. package/dist/api_docs/topics/workflows.js +0 -131
  47. package/dist/api_docs/topics/workspace.d.ts +0 -2
  48. package/dist/api_docs/topics/workspace.js +0 -153
  49. package/dist/api_docs/types.d.ts +0 -79
  50. package/dist/api_docs/types.js +0 -4
  51. package/dist/templates/init-workspace.d.ts +0 -10
  52. package/dist/templates/init-workspace.js +0 -278
  53. package/dist/templates/xanoscript-index.d.ts +0 -11
  54. package/dist/templates/xanoscript-index.js +0 -72
  55. package/dist/xanoscript_docs/ephemeral.md +0 -330
  56. package/dist/xanoscript_docs_auto/README.md +0 -119
  57. package/dist/xanoscript_docs_auto/agents.md +0 -446
  58. package/dist/xanoscript_docs_auto/apis.md +0 -517
  59. package/dist/xanoscript_docs_auto/control-flow.md +0 -543
  60. package/dist/xanoscript_docs_auto/database.md +0 -551
  61. package/dist/xanoscript_docs_auto/debugging.md +0 -527
  62. package/dist/xanoscript_docs_auto/filters.md +0 -464
  63. package/dist/xanoscript_docs_auto/functions.md +0 -431
  64. package/dist/xanoscript_docs_auto/integrations.md +0 -657
  65. package/dist/xanoscript_docs_auto/mcp-servers.md +0 -408
  66. package/dist/xanoscript_docs_auto/operators.md +0 -368
  67. package/dist/xanoscript_docs_auto/syntax.md +0 -287
  68. package/dist/xanoscript_docs_auto/tables.md +0 -447
  69. package/dist/xanoscript_docs_auto/tasks.md +0 -479
  70. package/dist/xanoscript_docs_auto/testing.md +0 -574
  71. package/dist/xanoscript_docs_auto/tools.md +0 -485
  72. package/dist/xanoscript_docs_auto/triggers.md +0 -595
  73. package/dist/xanoscript_docs_auto/types.md +0 -323
  74. package/dist/xanoscript_docs_auto/variables.md +0 -462
  75. package/dist/xanoscript_docs_auto/version.json +0 -5
@@ -60,23 +60,25 @@ input {
60
60
  }
61
61
  ```
62
62
 
63
- ### Empty Input Blocks
63
+ ### Empty and Single-Input Blocks
64
64
 
65
- **SYNTAX REQUIREMENT:** When an input block has no parameters, the braces MUST be on separate lines.
65
+ Empty input blocks and single-input blocks can be written as one-liners. When there are two or more inputs, each must be on its own line.
66
66
 
67
- **Why:** The XanoScript parser requires whitespace between braces to distinguish empty input blocks from inline objects.
67
+ ```xs
68
+ // OK - empty input as one-liner
69
+ input {}
68
70
 
69
- **Impact:** Using `input {}` on a single line will cause:
70
- - Syntax error during compilation
71
- - Function/API/tool will fail to deploy
71
+ // OK - single input as one-liner
72
+ input { email email_input? filters=trim|lower }
72
73
 
73
- ```xs
74
- // CORRECT - braces on separate lines
74
+ // OK - multiple inputs on separate lines
75
75
  input {
76
+ email email_input? filters=trim|lower
77
+ text name
76
78
  }
77
79
 
78
- // WRONG - causes parsing errors
79
- input {}
80
+ // WRONG - multiple inputs on one line will cause parsing errors
81
+ input { email email_input? filters=trim|lower text name }
80
82
  ```
81
83
 
82
84
  Access inputs in stack: `$input.username`, `$input.age`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xano/developer-mcp",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "description": "MCP server for Xano Headless API documentation and XanoScript code validation",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,5 +0,0 @@
1
- /**
2
- * Formatting utilities for API documentation output
3
- */
4
- import type { TopicDoc, DetailLevel } from "./types.js";
5
- export declare function formatDocumentation(doc: TopicDoc, detailLevel?: DetailLevel, includeSchemas?: boolean): string;
@@ -1,171 +0,0 @@
1
- /**
2
- * Formatting utilities for API documentation output
3
- */
4
- /**
5
- * Base URL information included with any topic that has endpoints
6
- */
7
- const BASE_URL_INFO = `## Base URL
8
- \`\`\`
9
- https://<your-instance-subdomain>.xano.io/api:meta/<endpoint>
10
- \`\`\`
11
- Authorization: \`Bearer <your-access-token>\`
12
- `;
13
- function formatParameter(param) {
14
- const required = param.required ? " (required)" : "";
15
- const defaultVal = param.default !== undefined ? ` [default: ${param.default}]` : "";
16
- const enumVals = param.enum ? ` [options: ${param.enum.join(", ")}]` : "";
17
- return ` - \`${param.name}\`: ${param.type}${required}${defaultVal}${enumVals} - ${param.description}`;
18
- }
19
- function formatEndpoint(ep, detailLevel) {
20
- const lines = [];
21
- // Method and path
22
- lines.push(`### ${ep.method} ${ep.path}`);
23
- if (ep.tool_name) {
24
- lines.push(`**Tool:** \`${ep.tool_name}\``);
25
- }
26
- lines.push("");
27
- lines.push(ep.description);
28
- if (detailLevel === "overview") {
29
- return lines.join("\n");
30
- }
31
- // Parameters
32
- if (ep.parameters?.length) {
33
- lines.push("");
34
- lines.push("**Parameters:**");
35
- for (const param of ep.parameters) {
36
- lines.push(formatParameter(param));
37
- }
38
- }
39
- // Request body
40
- if (ep.request_body) {
41
- lines.push("");
42
- lines.push(`**Request Body:** \`${ep.request_body.type}\``);
43
- if (ep.request_body.properties) {
44
- for (const [key, val] of Object.entries(ep.request_body.properties)) {
45
- const req = val.required ? " (required)" : "";
46
- lines.push(` - \`${key}\`: ${val.type}${req} - ${val.description || ""}`);
47
- }
48
- }
49
- }
50
- // Example (only in detailed/examples mode)
51
- if (detailLevel === "examples" && ep.example) {
52
- lines.push("");
53
- lines.push("**Example:**");
54
- lines.push("```");
55
- lines.push(`${ep.example.method} ${ep.example.path}`);
56
- if (ep.example.body) {
57
- lines.push(JSON.stringify(ep.example.body, null, 2));
58
- }
59
- lines.push("```");
60
- }
61
- return lines.join("\n");
62
- }
63
- function formatExample(ex) {
64
- const lines = [];
65
- lines.push(`### ${ex.title}`);
66
- lines.push("");
67
- lines.push(ex.description);
68
- lines.push("");
69
- lines.push("**Request:**");
70
- lines.push("```");
71
- lines.push(`${ex.request.method} ${ex.request.path}`);
72
- if (ex.request.headers) {
73
- for (const [key, val] of Object.entries(ex.request.headers)) {
74
- lines.push(`${key}: ${val}`);
75
- }
76
- }
77
- if (ex.request.body) {
78
- lines.push("");
79
- lines.push(JSON.stringify(ex.request.body, null, 2));
80
- }
81
- lines.push("```");
82
- if (ex.response !== undefined) {
83
- lines.push("");
84
- lines.push("**Response:**");
85
- lines.push("```json");
86
- lines.push(JSON.stringify(ex.response, null, 2));
87
- lines.push("```");
88
- }
89
- return lines.join("\n");
90
- }
91
- function formatPattern(pattern) {
92
- const lines = [];
93
- lines.push(`### ${pattern.name}`);
94
- if (pattern.description) {
95
- lines.push("");
96
- lines.push(pattern.description);
97
- }
98
- lines.push("");
99
- lines.push("**Steps:**");
100
- for (const step of pattern.steps) {
101
- lines.push(step);
102
- }
103
- if (pattern.example) {
104
- lines.push("");
105
- lines.push("**Example:**");
106
- lines.push("```");
107
- lines.push(pattern.example);
108
- lines.push("```");
109
- }
110
- return lines.join("\n");
111
- }
112
- export function formatDocumentation(doc, detailLevel = "detailed", includeSchemas = true) {
113
- const sections = [];
114
- // Header
115
- sections.push(`# ${doc.title}`);
116
- sections.push("");
117
- sections.push(doc.description);
118
- // AI Hints (always include for AI optimization)
119
- if (doc.ai_hints) {
120
- sections.push("");
121
- sections.push("## AI Usage Hints");
122
- sections.push(doc.ai_hints);
123
- }
124
- // Include base URL info if topic has endpoints or patterns (workflows)
125
- if (doc.endpoints?.length || doc.patterns?.length) {
126
- sections.push("");
127
- sections.push(BASE_URL_INFO);
128
- }
129
- // Endpoints
130
- if (doc.endpoints?.length) {
131
- sections.push("## Endpoints");
132
- for (const ep of doc.endpoints) {
133
- sections.push("");
134
- sections.push(formatEndpoint(ep, detailLevel));
135
- }
136
- }
137
- // Patterns/Workflows
138
- if (doc.patterns?.length) {
139
- sections.push("");
140
- sections.push("## Workflows");
141
- for (const pattern of doc.patterns) {
142
- sections.push("");
143
- sections.push(formatPattern(pattern));
144
- }
145
- }
146
- // Examples
147
- if ((detailLevel === "detailed" || detailLevel === "examples") && doc.examples?.length) {
148
- sections.push("");
149
- sections.push("## Examples");
150
- for (const ex of doc.examples) {
151
- sections.push("");
152
- sections.push(formatExample(ex));
153
- }
154
- }
155
- // Schemas
156
- if (includeSchemas && doc.schemas && Object.keys(doc.schemas).length > 0) {
157
- sections.push("");
158
- sections.push("## Schemas");
159
- sections.push("");
160
- sections.push("```json");
161
- sections.push(JSON.stringify(doc.schemas, null, 2));
162
- sections.push("```");
163
- }
164
- // Related topics
165
- if (doc.related_topics?.length) {
166
- sections.push("");
167
- sections.push("## Related Topics");
168
- sections.push(`Use \`api_docs\` with topic: ${doc.related_topics.join(", ")}`);
169
- }
170
- return sections.join("\n");
171
- }
@@ -1,52 +0,0 @@
1
- /**
2
- * Xano Meta API Documentation Index
3
- *
4
- * This module exports all documentation topics and provides
5
- * the api_docs tool handler for the MCP server.
6
- */
7
- import type { TopicDoc, ApiDocsArgs } from "./types.js";
8
- /**
9
- * All available documentation topics
10
- */
11
- export declare const topics: Record<string, TopicDoc>;
12
- /**
13
- * Get list of all available topic names
14
- */
15
- export declare function getTopicNames(): string[];
16
- /**
17
- * Get topic descriptions for tool documentation
18
- */
19
- export declare function getTopicDescriptions(): string;
20
- /**
21
- * Handler for the api_docs tool
22
- */
23
- export declare function handleApiDocs(args: ApiDocsArgs): string;
24
- /**
25
- * Tool definition for MCP server
26
- */
27
- export declare const apiDocsToolDefinition: {
28
- name: string;
29
- description: string;
30
- inputSchema: {
31
- type: string;
32
- properties: {
33
- topic: {
34
- type: string;
35
- enum: string[];
36
- description: string;
37
- };
38
- detail_level: {
39
- type: string;
40
- enum: string[];
41
- default: string;
42
- description: string;
43
- };
44
- include_schemas: {
45
- type: string;
46
- default: boolean;
47
- description: string;
48
- };
49
- };
50
- required: string[];
51
- };
52
- };
@@ -1,111 +0,0 @@
1
- /**
2
- * Xano Meta API Documentation Index
3
- *
4
- * This module exports all documentation topics and provides
5
- * the api_docs tool handler for the MCP server.
6
- */
7
- import { formatDocumentation } from "./format.js";
8
- // Import all topic documentation
9
- import { startDoc } from "./topics/start.js";
10
- import { authenticationDoc } from "./topics/authentication.js";
11
- import { workspaceDoc } from "./topics/workspace.js";
12
- import { apigroupDoc } from "./topics/apigroup.js";
13
- import { apiDoc } from "./topics/api.js";
14
- import { tableDoc } from "./topics/table.js";
15
- import { functionDoc } from "./topics/function.js";
16
- import { taskDoc } from "./topics/task.js";
17
- import { agentDoc } from "./topics/agent.js";
18
- import { toolDoc } from "./topics/tool.js";
19
- import { mcpServerDoc } from "./topics/mcp_server.js";
20
- import { middlewareDoc } from "./topics/middleware.js";
21
- import { branchDoc } from "./topics/branch.js";
22
- import { realtimeDoc } from "./topics/realtime.js";
23
- import { fileDoc } from "./topics/file.js";
24
- import { historyDoc } from "./topics/history.js";
25
- import { workflowsDoc } from "./topics/workflows.js";
26
- /**
27
- * All available documentation topics
28
- */
29
- export const topics = {
30
- start: startDoc,
31
- authentication: authenticationDoc,
32
- workspace: workspaceDoc,
33
- apigroup: apigroupDoc,
34
- api: apiDoc,
35
- table: tableDoc,
36
- function: functionDoc,
37
- task: taskDoc,
38
- agent: agentDoc,
39
- tool: toolDoc,
40
- mcp_server: mcpServerDoc,
41
- middleware: middlewareDoc,
42
- branch: branchDoc,
43
- realtime: realtimeDoc,
44
- file: fileDoc,
45
- history: historyDoc,
46
- workflows: workflowsDoc,
47
- };
48
- /**
49
- * Get list of all available topic names
50
- */
51
- export function getTopicNames() {
52
- return Object.keys(topics);
53
- }
54
- /**
55
- * Get topic descriptions for tool documentation
56
- */
57
- export function getTopicDescriptions() {
58
- return Object.entries(topics)
59
- .map(([key, doc]) => `- ${key}: ${doc.title}`)
60
- .join("\n");
61
- }
62
- /**
63
- * Handler for the api_docs tool
64
- */
65
- export function handleApiDocs(args) {
66
- const { topic, detail_level = "detailed", include_schemas = true } = args;
67
- // Validate topic
68
- if (!topics[topic]) {
69
- const available = getTopicNames().join(", ");
70
- return `Error: Unknown topic "${topic}".\n\nAvailable topics: ${available}`;
71
- }
72
- const doc = topics[topic];
73
- return formatDocumentation(doc, detail_level, include_schemas);
74
- }
75
- /**
76
- * Tool definition for MCP server
77
- */
78
- export const apiDocsToolDefinition = {
79
- name: "api_docs",
80
- description: `Get documentation for Xano's Meta API. Use this to understand how to programmatically manage Xano workspaces, databases, APIs, functions, agents, and more.
81
-
82
- ## Topics
83
- ${getTopicDescriptions()}
84
-
85
- ## Usage
86
- - Start with "start" topic for overview and getting started
87
- - Use "workflows" for step-by-step guides
88
- - Use specific topics (workspace, table, api, etc.) for detailed endpoint docs`,
89
- inputSchema: {
90
- type: "object",
91
- properties: {
92
- topic: {
93
- type: "string",
94
- enum: getTopicNames(),
95
- description: "Documentation topic to retrieve",
96
- },
97
- detail_level: {
98
- type: "string",
99
- enum: ["overview", "detailed", "examples"],
100
- default: "detailed",
101
- description: "Level of detail: overview (brief), detailed (full docs), examples (with code examples)",
102
- },
103
- include_schemas: {
104
- type: "boolean",
105
- default: true,
106
- description: "Include JSON schemas for requests/responses",
107
- },
108
- },
109
- required: ["topic"],
110
- },
111
- };
@@ -1,2 +0,0 @@
1
- import type { TopicDoc } from "../types.js";
2
- export declare const agentDoc: TopicDoc;
@@ -1,142 +0,0 @@
1
- export const agentDoc = {
2
- topic: "agent",
3
- title: "AI Agent Management",
4
- description: `Agents are AI-powered automation units that use LLMs (like Claude) to make decisions and execute multi-step workflows.
5
-
6
- ## Key Concepts
7
- - Agents use LLMs for reasoning and decision-making
8
- - Can call tools to perform actions
9
- - Support multiple LLM providers (Anthropic, OpenAI, etc.)
10
- - Configurable system prompts, temperature, max steps
11
- - Can have triggers that invoke them automatically
12
-
13
- ## LLM Configuration
14
- - Type: Provider (e.g., "anthropic")
15
- - Model: Specific model (e.g., "claude-4-sonnet-20250514")
16
- - System prompt: Instructions for the agent
17
- - Temperature: Creativity level (0-1)
18
- - Max steps: Maximum reasoning iterations
19
- - Reasoning: Enable/disable chain-of-thought`,
20
- ai_hints: `- Create tools first, then create agent and associate tools
21
- - System prompt is critical for agent behavior
22
- - Lower temperature = more deterministic responses
23
- - Max steps limits runaway agent loops
24
- - Use triggers to invoke agents on events (table changes, etc.)`,
25
- endpoints: [
26
- {
27
- method: "GET",
28
- path: "/workspace/{workspace_id}/agent",
29
- tool_name: "listAgents",
30
- description: "List all AI agents in a workspace.",
31
- parameters: [
32
- { name: "workspace_id", type: "integer", required: true, in: "path", description: "Workspace ID" },
33
- { name: "page", type: "integer", default: 1, description: "Page number" },
34
- { name: "per_page", type: "integer", default: 50, description: "Items per page" },
35
- { name: "search", type: "string", description: "Search by agent name" },
36
- { name: "include_xanoscript", type: "boolean", default: false, description: "Include XanoScript definition" },
37
- { name: "include_draft", type: "boolean", default: false, description: "Include draft versions" }
38
- ]
39
- },
40
- {
41
- method: "GET",
42
- path: "/workspace/{workspace_id}/agent/{agent_id}",
43
- tool_name: "getAgent",
44
- description: "Get details of a specific AI agent.",
45
- parameters: [
46
- { name: "workspace_id", type: "integer", required: true, in: "path", description: "Workspace ID" },
47
- { name: "agent_id", type: "integer", required: true, in: "path", description: "Agent ID" },
48
- { name: "include_xanoscript", type: "boolean", default: false, description: "Include XanoScript definition" },
49
- { name: "include_draft", type: "boolean", default: false, description: "Include draft version" }
50
- ]
51
- },
52
- {
53
- method: "POST",
54
- path: "/workspace/{workspace_id}/agent",
55
- tool_name: "createAgent",
56
- description: "Create a new AI agent with LLM configuration.",
57
- parameters: [
58
- { name: "workspace_id", type: "integer", required: true, in: "path", description: "Workspace ID" }
59
- ],
60
- request_body: {
61
- type: "application/json",
62
- properties: {
63
- name: { type: "string", description: "Agent name", required: true },
64
- description: { type: "string", description: "Agent description" },
65
- xanoscript: { type: "string", description: "XanoScript agent definition", required: true }
66
- }
67
- },
68
- example: {
69
- method: "POST",
70
- path: "/workspace/1/agent",
71
- body: {
72
- name: "support_agent",
73
- description: "Customer support AI agent",
74
- xanoscript: `agent support_agent {
75
- llm {
76
- type = "anthropic"
77
- model = "claude-4-sonnet-20250514"
78
- system_prompt = "You are a helpful customer support agent."
79
- max_steps = 10
80
- temperature = 0.3
81
- }
82
- tools = [lookup_order, update_ticket]
83
- }`
84
- }
85
- }
86
- },
87
- {
88
- method: "PUT",
89
- path: "/workspace/{workspace_id}/agent/{agent_id}",
90
- tool_name: "updateAgent",
91
- description: "Update an existing AI agent.",
92
- parameters: [
93
- { name: "workspace_id", type: "integer", required: true, in: "path", description: "Workspace ID" },
94
- { name: "agent_id", type: "integer", required: true, in: "path", description: "Agent ID" },
95
- { name: "publish", type: "boolean", default: true, description: "Publish changes immediately" }
96
- ],
97
- request_body: {
98
- type: "application/json",
99
- properties: {
100
- name: { type: "string", description: "Agent name" },
101
- description: { type: "string", description: "Agent description" },
102
- xanoscript: { type: "string", description: "XanoScript agent definition" }
103
- }
104
- }
105
- },
106
- {
107
- method: "DELETE",
108
- path: "/workspace/{workspace_id}/agent/{agent_id}",
109
- tool_name: "deleteAgent",
110
- description: "Delete an AI agent.",
111
- parameters: [
112
- { name: "workspace_id", type: "integer", required: true, in: "path", description: "Workspace ID" },
113
- { name: "agent_id", type: "integer", required: true, in: "path", description: "Agent ID" }
114
- ]
115
- }
116
- ],
117
- schemas: {
118
- Agent: {
119
- type: "object",
120
- properties: {
121
- id: { type: "integer" },
122
- name: { type: "string" },
123
- description: { type: "string" },
124
- llm: {
125
- type: "object",
126
- properties: {
127
- type: { type: "string", description: "LLM provider (anthropic, openai, etc.)" },
128
- model: { type: "string", description: "Model identifier" },
129
- system_prompt: { type: "string" },
130
- max_steps: { type: "integer" },
131
- temperature: { type: "number" },
132
- reasoning: { type: "boolean" }
133
- }
134
- },
135
- tools: { type: "array", items: { type: "string" } },
136
- created_at: { type: "string", format: "date-time" },
137
- updated_at: { type: "string", format: "date-time" }
138
- }
139
- }
140
- },
141
- related_topics: ["tool", "mcp_server", "function"]
142
- };
@@ -1,2 +0,0 @@
1
- import type { TopicDoc } from "../types.js";
2
- export declare const apiDoc: TopicDoc;