@apicircle/mcp-server 1.0.8 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -9
- package/dist/bin/mcp-server.cjs +2253 -253
- package/dist/bin/mcp-server.cjs.map +1 -1
- package/dist/chunk-N7LZVN3U.js +165 -0
- package/dist/chunk-N7LZVN3U.js.map +1 -0
- package/dist/index.cjs +2177 -247
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +65 -1
- package/dist/index.d.ts +65 -1
- package/dist/index.js +2005 -233
- package/dist/index.js.map +1 -1
- package/dist/prompts/mcpPrompts.cjs +190 -0
- package/dist/prompts/mcpPrompts.cjs.map +1 -0
- package/dist/prompts/mcpPrompts.d.cts +19 -0
- package/dist/prompts/mcpPrompts.d.ts +19 -0
- package/dist/prompts/mcpPrompts.js +9 -0
- package/dist/prompts/mcpPrompts.js.map +1 -0
- package/package.json +17 -5
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/prompts/mcpPrompts.ts
|
|
21
|
+
var mcpPrompts_exports = {};
|
|
22
|
+
__export(mcpPrompts_exports, {
|
|
23
|
+
MCP_PROMPTS: () => MCP_PROMPTS,
|
|
24
|
+
MCP_PROMPT_CATEGORIES: () => MCP_PROMPT_CATEGORIES
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(mcpPrompts_exports);
|
|
27
|
+
var MCP_PROMPT_CATEGORIES = [
|
|
28
|
+
{ id: "workspaces", label: "Workspaces" },
|
|
29
|
+
{ id: "collections", label: "Collections" },
|
|
30
|
+
{ id: "environments", label: "Environments" },
|
|
31
|
+
{ id: "execution", label: "Execution" },
|
|
32
|
+
{ id: "mocks", label: "Mocks" },
|
|
33
|
+
{ id: "auth", label: "Auth" },
|
|
34
|
+
{ id: "imports", label: "Imports" }
|
|
35
|
+
];
|
|
36
|
+
var MCP_PROMPTS = [
|
|
37
|
+
// ── Workspaces (multi-workspace discovery) ───────────────────────
|
|
38
|
+
{
|
|
39
|
+
id: "list-workspaces",
|
|
40
|
+
text: "List every API Circle workspace I have and tell me which is active.",
|
|
41
|
+
description: "Multi-workspace discovery \u2014 call this first when you are not sure which workspace to drive.",
|
|
42
|
+
category: "workspaces",
|
|
43
|
+
tools: ["workspace.list"]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: "scope-to-workspace",
|
|
47
|
+
text: 'Read the requests in the "Petstore" workspace.',
|
|
48
|
+
description: "Drill into a specific workspace by name; the AI passes `workspaceId` to scope reads.",
|
|
49
|
+
category: "workspaces",
|
|
50
|
+
tools: ["workspace.list", "workspace.read"]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: "multi-workspace-summary",
|
|
54
|
+
text: "Across every workspace, count requests, folders, environments, and mocks. Give me one row per workspace.",
|
|
55
|
+
description: "High-level summary across every registered workspace \u2014 pairs well with the multi-workspace envelope.",
|
|
56
|
+
category: "workspaces",
|
|
57
|
+
tools: ["workspace.list"]
|
|
58
|
+
},
|
|
59
|
+
// ── Collections (requests + folders in the active workspace) ─────
|
|
60
|
+
{
|
|
61
|
+
id: "list-requests",
|
|
62
|
+
text: "List every request in my API Circle workspace grouped by folder.",
|
|
63
|
+
description: "Quick overview of the request catalog so you know what is already wired up.",
|
|
64
|
+
category: "collections",
|
|
65
|
+
tools: ["workspace.read", "request.read", "folder.read"]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: "create-request",
|
|
69
|
+
text: 'Add a new GET request named "Health check" pointing at https://example.com/healthz with an Accept: application/json header.',
|
|
70
|
+
description: "Have the AI author a request and persist it to the workspace.",
|
|
71
|
+
category: "collections",
|
|
72
|
+
tools: ["request.create"]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "update-request",
|
|
76
|
+
text: 'Find the "Create user" request and change its method to POST and body to {"name": "Ada"}.',
|
|
77
|
+
description: "Targeted edit by name \u2014 the AI looks it up, then updates.",
|
|
78
|
+
category: "collections",
|
|
79
|
+
tools: ["request.read", "request.update"]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: "organize-folders",
|
|
83
|
+
text: 'Move every request whose URL contains /users into a folder named "User API".',
|
|
84
|
+
description: "Bulk reorganisation via natural language.",
|
|
85
|
+
category: "collections",
|
|
86
|
+
tools: ["workspace.read", "folder.create", "request.update"]
|
|
87
|
+
},
|
|
88
|
+
// ── Environments ──────────────────────────────────────────────────
|
|
89
|
+
{
|
|
90
|
+
id: "env-list",
|
|
91
|
+
text: "Show me all environments and which one is active.",
|
|
92
|
+
description: "Inventory of envs + which is layered onto requests right now.",
|
|
93
|
+
category: "environments",
|
|
94
|
+
tools: ["environment.read"]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
id: "env-create",
|
|
98
|
+
text: 'Create a "staging" environment with BASE_URL=https://staging.example.com and API_KEY={{SECRET:staging-key}}.',
|
|
99
|
+
description: "Spin up a new env with both a plain variable and a secret reference.",
|
|
100
|
+
category: "environments",
|
|
101
|
+
tools: ["environment.create"]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: "env-switch",
|
|
105
|
+
text: 'Switch the active environment to "production" and confirm by previewing the effective URL of the "Get user" request.',
|
|
106
|
+
description: "Activate an env then verify variable interpolation.",
|
|
107
|
+
category: "environments",
|
|
108
|
+
tools: ["environment.update", "request.read"]
|
|
109
|
+
},
|
|
110
|
+
// ── Execution ─────────────────────────────────────────────────────
|
|
111
|
+
{
|
|
112
|
+
id: "run-request",
|
|
113
|
+
text: 'Run the "Get user" request with userId=42 and show me the JSON response.',
|
|
114
|
+
description: "One-shot execution with overridden context vars.",
|
|
115
|
+
category: "execution",
|
|
116
|
+
tools: ["request.execute"]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: "run-plan",
|
|
120
|
+
text: 'Execute the "Regression smoke" plan and summarise which assertions failed.',
|
|
121
|
+
description: "Drive a saved execution plan end-to-end.",
|
|
122
|
+
category: "execution",
|
|
123
|
+
tools: ["plan.read", "plan.execute"]
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
id: "inspect-history",
|
|
127
|
+
text: "Show me the last 5 requests I ran and their status codes.",
|
|
128
|
+
description: "Quick triage when something just broke.",
|
|
129
|
+
category: "execution",
|
|
130
|
+
tools: ["history.read"]
|
|
131
|
+
},
|
|
132
|
+
// ── Mocks ─────────────────────────────────────────────────────────
|
|
133
|
+
{
|
|
134
|
+
id: "mock-start",
|
|
135
|
+
text: 'Start the "Petstore" mock on port 4010 and tell me its base URL.',
|
|
136
|
+
description: "Spin up a local mock so requests can hit it.",
|
|
137
|
+
category: "mocks",
|
|
138
|
+
tools: ["mock.list", "mock.start"]
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
id: "mock-list",
|
|
142
|
+
text: "List every running mock with its port, served spec, and request count.",
|
|
143
|
+
description: "Status snapshot of every active mock runtime.",
|
|
144
|
+
category: "mocks",
|
|
145
|
+
tools: ["mock.list"]
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
id: "mock-stop",
|
|
149
|
+
text: "Stop every running mock.",
|
|
150
|
+
description: "Clean shutdown of all mock servers in one go.",
|
|
151
|
+
category: "mocks",
|
|
152
|
+
tools: ["mock.stopAll"]
|
|
153
|
+
},
|
|
154
|
+
// ── Auth ──────────────────────────────────────────────────────────
|
|
155
|
+
{
|
|
156
|
+
id: "auth-set-bearer",
|
|
157
|
+
text: 'Set the "Get user" request to use bearer auth with token={{ACCESS_TOKEN}}.',
|
|
158
|
+
description: "Wire bearer auth onto a single request via env-var reference.",
|
|
159
|
+
category: "auth",
|
|
160
|
+
tools: ["request.update"]
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
id: "auth-oauth2",
|
|
164
|
+
text: 'Configure the "Create order" request to use OAuth2 client-credentials against https://auth.example.com/token with the "orders.write" scope.',
|
|
165
|
+
description: "Full OAuth2 client-credentials wiring without leaving the chat.",
|
|
166
|
+
category: "auth",
|
|
167
|
+
tools: ["request.update"]
|
|
168
|
+
},
|
|
169
|
+
// ── Imports ───────────────────────────────────────────────────────
|
|
170
|
+
{
|
|
171
|
+
id: "import-openapi",
|
|
172
|
+
text: "Import the OpenAPI spec at ./openapi.yaml and create one request per operation.",
|
|
173
|
+
description: "Bulk import of a spec file from the workspace.",
|
|
174
|
+
category: "imports",
|
|
175
|
+
tools: ["import.openapi"]
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
id: "import-curl",
|
|
179
|
+
text: 'I am going to paste a cURL command \u2014 turn it into a saved request named "Webhook test".',
|
|
180
|
+
description: "cURL \u2192 saved request with a name you control.",
|
|
181
|
+
category: "imports",
|
|
182
|
+
tools: ["import.curl"]
|
|
183
|
+
}
|
|
184
|
+
];
|
|
185
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
186
|
+
0 && (module.exports = {
|
|
187
|
+
MCP_PROMPTS,
|
|
188
|
+
MCP_PROMPT_CATEGORIES
|
|
189
|
+
});
|
|
190
|
+
//# sourceMappingURL=mcpPrompts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/prompts/mcpPrompts.ts"],"sourcesContent":["// Curated starter prompts the user can paste into any MCP-connected AI\n// client to drive their workspace. Each prompt names the MCP tool family\n// it exercises so users can match it back to the tool catalog.\n//\n// Hand-curated, not auto-derived: the goal is to teach the user what's\n// possible, not to enumerate every tool. ~3-4 per category covers the\n// common cases without overwhelming the page.\n//\n// Shared between Desktop/Web (ui-components) and VS Code extension.\n\nexport interface McpPrompt {\n id: string;\n /** Natural-language prompt the user copies. */\n text: string;\n /** Short description rendered under the prompt. */\n description: string;\n /** Which MCP tool family this prompt exercises — used as a filter chip. */\n category: McpPromptCategory;\n /** The MCP tool names this prompt is likely to drive. Informational only. */\n tools: ReadonlyArray<string>;\n}\n\nexport type McpPromptCategory =\n | 'workspaces'\n | 'collections'\n | 'environments'\n | 'execution'\n | 'mocks'\n | 'auth'\n | 'imports';\n\nexport const MCP_PROMPT_CATEGORIES: ReadonlyArray<{\n id: McpPromptCategory;\n label: string;\n}> = [\n { id: 'workspaces', label: 'Workspaces' },\n { id: 'collections', label: 'Collections' },\n { id: 'environments', label: 'Environments' },\n { id: 'execution', label: 'Execution' },\n { id: 'mocks', label: 'Mocks' },\n { id: 'auth', label: 'Auth' },\n { id: 'imports', label: 'Imports' },\n];\n\nexport const MCP_PROMPTS: ReadonlyArray<McpPrompt> = [\n // ── Workspaces (multi-workspace discovery) ───────────────────────\n {\n id: 'list-workspaces',\n text: 'List every API Circle workspace I have and tell me which is active.',\n description:\n 'Multi-workspace discovery — call this first when you are not sure which workspace to drive.',\n category: 'workspaces',\n tools: ['workspace.list'],\n },\n {\n id: 'scope-to-workspace',\n text: 'Read the requests in the \"Petstore\" workspace.',\n description:\n 'Drill into a specific workspace by name; the AI passes `workspaceId` to scope reads.',\n category: 'workspaces',\n tools: ['workspace.list', 'workspace.read'],\n },\n {\n id: 'multi-workspace-summary',\n text: 'Across every workspace, count requests, folders, environments, and mocks. Give me one row per workspace.',\n description:\n 'High-level summary across every registered workspace — pairs well with the multi-workspace envelope.',\n category: 'workspaces',\n tools: ['workspace.list'],\n },\n\n // ── Collections (requests + folders in the active workspace) ─────\n {\n id: 'list-requests',\n text: 'List every request in my API Circle workspace grouped by folder.',\n description: 'Quick overview of the request catalog so you know what is already wired up.',\n category: 'collections',\n tools: ['workspace.read', 'request.read', 'folder.read'],\n },\n {\n id: 'create-request',\n text: 'Add a new GET request named \"Health check\" pointing at https://example.com/healthz with an Accept: application/json header.',\n description: 'Have the AI author a request and persist it to the workspace.',\n category: 'collections',\n tools: ['request.create'],\n },\n {\n id: 'update-request',\n text: 'Find the \"Create user\" request and change its method to POST and body to {\"name\": \"Ada\"}.',\n description: 'Targeted edit by name — the AI looks it up, then updates.',\n category: 'collections',\n tools: ['request.read', 'request.update'],\n },\n {\n id: 'organize-folders',\n text: 'Move every request whose URL contains /users into a folder named \"User API\".',\n description: 'Bulk reorganisation via natural language.',\n category: 'collections',\n tools: ['workspace.read', 'folder.create', 'request.update'],\n },\n\n // ── Environments ──────────────────────────────────────────────────\n {\n id: 'env-list',\n text: 'Show me all environments and which one is active.',\n description: 'Inventory of envs + which is layered onto requests right now.',\n category: 'environments',\n tools: ['environment.read'],\n },\n {\n id: 'env-create',\n text: 'Create a \"staging\" environment with BASE_URL=https://staging.example.com and API_KEY={{SECRET:staging-key}}.',\n description: 'Spin up a new env with both a plain variable and a secret reference.',\n category: 'environments',\n tools: ['environment.create'],\n },\n {\n id: 'env-switch',\n text: 'Switch the active environment to \"production\" and confirm by previewing the effective URL of the \"Get user\" request.',\n description: 'Activate an env then verify variable interpolation.',\n category: 'environments',\n tools: ['environment.update', 'request.read'],\n },\n\n // ── Execution ─────────────────────────────────────────────────────\n {\n id: 'run-request',\n text: 'Run the \"Get user\" request with userId=42 and show me the JSON response.',\n description: 'One-shot execution with overridden context vars.',\n category: 'execution',\n tools: ['request.execute'],\n },\n {\n id: 'run-plan',\n text: 'Execute the \"Regression smoke\" plan and summarise which assertions failed.',\n description: 'Drive a saved execution plan end-to-end.',\n category: 'execution',\n tools: ['plan.read', 'plan.execute'],\n },\n {\n id: 'inspect-history',\n text: 'Show me the last 5 requests I ran and their status codes.',\n description: 'Quick triage when something just broke.',\n category: 'execution',\n tools: ['history.read'],\n },\n\n // ── Mocks ─────────────────────────────────────────────────────────\n {\n id: 'mock-start',\n text: 'Start the \"Petstore\" mock on port 4010 and tell me its base URL.',\n description: 'Spin up a local mock so requests can hit it.',\n category: 'mocks',\n tools: ['mock.list', 'mock.start'],\n },\n {\n id: 'mock-list',\n text: 'List every running mock with its port, served spec, and request count.',\n description: 'Status snapshot of every active mock runtime.',\n category: 'mocks',\n tools: ['mock.list'],\n },\n {\n id: 'mock-stop',\n text: 'Stop every running mock.',\n description: 'Clean shutdown of all mock servers in one go.',\n category: 'mocks',\n tools: ['mock.stopAll'],\n },\n\n // ── Auth ──────────────────────────────────────────────────────────\n {\n id: 'auth-set-bearer',\n text: 'Set the \"Get user\" request to use bearer auth with token={{ACCESS_TOKEN}}.',\n description: 'Wire bearer auth onto a single request via env-var reference.',\n category: 'auth',\n tools: ['request.update'],\n },\n {\n id: 'auth-oauth2',\n text: 'Configure the \"Create order\" request to use OAuth2 client-credentials against https://auth.example.com/token with the \"orders.write\" scope.',\n description: 'Full OAuth2 client-credentials wiring without leaving the chat.',\n category: 'auth',\n tools: ['request.update'],\n },\n\n // ── Imports ───────────────────────────────────────────────────────\n {\n id: 'import-openapi',\n text: 'Import the OpenAPI spec at ./openapi.yaml and create one request per operation.',\n description: 'Bulk import of a spec file from the workspace.',\n category: 'imports',\n tools: ['import.openapi'],\n },\n {\n id: 'import-curl',\n text: 'I am going to paste a cURL command — turn it into a saved request named \"Webhook test\".',\n description: 'cURL → saved request with a name you control.',\n category: 'imports',\n tools: ['import.curl'],\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface McpPrompt {
|
|
2
|
+
id: string;
|
|
3
|
+
/** Natural-language prompt the user copies. */
|
|
4
|
+
text: string;
|
|
5
|
+
/** Short description rendered under the prompt. */
|
|
6
|
+
description: string;
|
|
7
|
+
/** Which MCP tool family this prompt exercises — used as a filter chip. */
|
|
8
|
+
category: McpPromptCategory;
|
|
9
|
+
/** The MCP tool names this prompt is likely to drive. Informational only. */
|
|
10
|
+
tools: ReadonlyArray<string>;
|
|
11
|
+
}
|
|
12
|
+
type McpPromptCategory = 'workspaces' | 'collections' | 'environments' | 'execution' | 'mocks' | 'auth' | 'imports';
|
|
13
|
+
declare const MCP_PROMPT_CATEGORIES: ReadonlyArray<{
|
|
14
|
+
id: McpPromptCategory;
|
|
15
|
+
label: string;
|
|
16
|
+
}>;
|
|
17
|
+
declare const MCP_PROMPTS: ReadonlyArray<McpPrompt>;
|
|
18
|
+
|
|
19
|
+
export { MCP_PROMPTS, MCP_PROMPT_CATEGORIES, type McpPrompt, type McpPromptCategory };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface McpPrompt {
|
|
2
|
+
id: string;
|
|
3
|
+
/** Natural-language prompt the user copies. */
|
|
4
|
+
text: string;
|
|
5
|
+
/** Short description rendered under the prompt. */
|
|
6
|
+
description: string;
|
|
7
|
+
/** Which MCP tool family this prompt exercises — used as a filter chip. */
|
|
8
|
+
category: McpPromptCategory;
|
|
9
|
+
/** The MCP tool names this prompt is likely to drive. Informational only. */
|
|
10
|
+
tools: ReadonlyArray<string>;
|
|
11
|
+
}
|
|
12
|
+
type McpPromptCategory = 'workspaces' | 'collections' | 'environments' | 'execution' | 'mocks' | 'auth' | 'imports';
|
|
13
|
+
declare const MCP_PROMPT_CATEGORIES: ReadonlyArray<{
|
|
14
|
+
id: McpPromptCategory;
|
|
15
|
+
label: string;
|
|
16
|
+
}>;
|
|
17
|
+
declare const MCP_PROMPTS: ReadonlyArray<McpPrompt>;
|
|
18
|
+
|
|
19
|
+
export { MCP_PROMPTS, MCP_PROMPT_CATEGORIES, type McpPrompt, type McpPromptCategory };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apicircle/mcp-server",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
|
+
"sideEffects": false,
|
|
6
7
|
"description": "Model Context Protocol server exposing API Circle Studio's workspace as a tool catalog. Used by Claude Desktop, ChatGPT, Cursor, GitHub Copilot, and any other MCP-compatible AI client.",
|
|
7
8
|
"keywords": [
|
|
8
9
|
"apicircle",
|
|
@@ -54,6 +55,16 @@
|
|
|
54
55
|
"types": "./dist/index.d.cts",
|
|
55
56
|
"default": "./dist/index.cjs"
|
|
56
57
|
}
|
|
58
|
+
},
|
|
59
|
+
"./prompts": {
|
|
60
|
+
"import": {
|
|
61
|
+
"types": "./dist/prompts/mcpPrompts.d.ts",
|
|
62
|
+
"default": "./dist/prompts/mcpPrompts.js"
|
|
63
|
+
},
|
|
64
|
+
"require": {
|
|
65
|
+
"types": "./dist/prompts/mcpPrompts.d.cts",
|
|
66
|
+
"default": "./dist/prompts/mcpPrompts.cjs"
|
|
67
|
+
}
|
|
57
68
|
}
|
|
58
69
|
},
|
|
59
70
|
"files": [
|
|
@@ -62,15 +73,16 @@
|
|
|
62
73
|
"dependencies": {
|
|
63
74
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
64
75
|
"zod": "^3.23.0",
|
|
65
|
-
"@apicircle/core": "1.0
|
|
66
|
-
"@apicircle/mock-server-core": "1.0
|
|
67
|
-
"@apicircle/shared": "1.0
|
|
76
|
+
"@apicircle/core": "1.1.0",
|
|
77
|
+
"@apicircle/mock-server-core": "1.1.0",
|
|
78
|
+
"@apicircle/shared": "1.1.0"
|
|
68
79
|
},
|
|
69
80
|
"devDependencies": {
|
|
70
81
|
"@types/node": "^20.0.0",
|
|
71
82
|
"tsup": "^8.3.0",
|
|
72
83
|
"typescript": "^5.4.0",
|
|
73
|
-
"vitest": "^2.0.0"
|
|
84
|
+
"vitest": "^2.0.0",
|
|
85
|
+
"@apicircle/git": "1.1.0"
|
|
74
86
|
},
|
|
75
87
|
"scripts": {
|
|
76
88
|
"build": "tsup",
|