@unclick/mcp-server 0.2.4 → 0.2.5
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/algolia-tool.d.ts +5 -0
- package/dist/algolia-tool.d.ts.map +1 -0
- package/dist/algolia-tool.js +121 -0
- package/dist/algolia-tool.js.map +1 -0
- package/dist/assemblyai-tool.d.ts +7 -0
- package/dist/assemblyai-tool.d.ts.map +1 -0
- package/dist/assemblyai-tool.js +127 -0
- package/dist/assemblyai-tool.js.map +1 -0
- package/dist/circleci-tool.d.ts +7 -0
- package/dist/circleci-tool.d.ts.map +1 -0
- package/dist/circleci-tool.js +133 -0
- package/dist/circleci-tool.js.map +1 -0
- package/dist/cohere-tool.d.ts +7 -0
- package/dist/cohere-tool.d.ts.map +1 -0
- package/dist/cohere-tool.js +225 -0
- package/dist/cohere-tool.js.map +1 -0
- package/dist/convertkit-tool.d.ts +7 -0
- package/dist/convertkit-tool.d.ts.map +1 -0
- package/dist/convertkit-tool.js +213 -0
- package/dist/convertkit-tool.js.map +1 -0
- package/dist/datadog-tool.d.ts +7 -0
- package/dist/datadog-tool.d.ts.map +1 -0
- package/dist/datadog-tool.js +121 -0
- package/dist/datadog-tool.js.map +1 -0
- package/dist/deepl-tool.d.ts +5 -0
- package/dist/deepl-tool.d.ts.map +1 -0
- package/dist/deepl-tool.js +137 -0
- package/dist/deepl-tool.js.map +1 -0
- package/dist/flyio-tool.d.ts +6 -0
- package/dist/flyio-tool.d.ts.map +1 -0
- package/dist/flyio-tool.js +158 -0
- package/dist/flyio-tool.js.map +1 -0
- package/dist/groq-tool.d.ts +3 -0
- package/dist/groq-tool.d.ts.map +1 -0
- package/dist/groq-tool.js +109 -0
- package/dist/groq-tool.js.map +1 -0
- package/dist/gumroad-tool.d.ts +6 -0
- package/dist/gumroad-tool.d.ts.map +1 -0
- package/dist/gumroad-tool.js +90 -0
- package/dist/gumroad-tool.js.map +1 -0
- package/dist/heygen-tool.d.ts +5 -0
- package/dist/heygen-tool.d.ts.map +1 -0
- package/dist/heygen-tool.js +134 -0
- package/dist/heygen-tool.js.map +1 -0
- package/dist/higgsfield-tool.d.ts +5 -0
- package/dist/higgsfield-tool.d.ts.map +1 -0
- package/dist/higgsfield-tool.js +120 -0
- package/dist/higgsfield-tool.js.map +1 -0
- package/dist/keychain-crypto.d.ts +24 -0
- package/dist/keychain-crypto.d.ts.map +1 -0
- package/dist/keychain-crypto.js +60 -0
- package/dist/keychain-crypto.js.map +1 -0
- package/dist/keychain-secure-input.d.ts +17 -0
- package/dist/keychain-secure-input.d.ts.map +1 -0
- package/dist/keychain-secure-input.js +229 -0
- package/dist/keychain-secure-input.js.map +1 -0
- package/dist/keychain-tool.d.ts +3 -0
- package/dist/keychain-tool.d.ts.map +1 -0
- package/dist/keychain-tool.js +516 -0
- package/dist/keychain-tool.js.map +1 -0
- package/dist/kling-tool.d.ts +3 -0
- package/dist/kling-tool.d.ts.map +1 -0
- package/dist/kling-tool.js +102 -0
- package/dist/kling-tool.js.map +1 -0
- package/dist/lemonsqueezy-tool.d.ts +7 -0
- package/dist/lemonsqueezy-tool.d.ts.map +1 -0
- package/dist/lemonsqueezy-tool.js +220 -0
- package/dist/lemonsqueezy-tool.js.map +1 -0
- package/dist/local-catalog-handlers.d.ts +3 -0
- package/dist/local-catalog-handlers.d.ts.map +1 -0
- package/dist/local-catalog-handlers.js +1254 -0
- package/dist/local-catalog-handlers.js.map +1 -0
- package/dist/mailchimp-tool.d.ts +8 -0
- package/dist/mailchimp-tool.d.ts.map +1 -0
- package/dist/mailchimp-tool.js +138 -0
- package/dist/mailchimp-tool.js.map +1 -0
- package/dist/mapbox-tool.d.ts +6 -0
- package/dist/mapbox-tool.d.ts.map +1 -0
- package/dist/mapbox-tool.js +106 -0
- package/dist/mapbox-tool.js.map +1 -0
- package/dist/mistral-tool.d.ts +4 -0
- package/dist/mistral-tool.d.ts.map +1 -0
- package/dist/mistral-tool.js +145 -0
- package/dist/mistral-tool.js.map +1 -0
- package/dist/mixpanel-tool.d.ts +6 -0
- package/dist/mixpanel-tool.d.ts.map +1 -0
- package/dist/mixpanel-tool.js +162 -0
- package/dist/mixpanel-tool.js.map +1 -0
- package/dist/neon-tool.d.ts +7 -0
- package/dist/neon-tool.d.ts.map +1 -0
- package/dist/neon-tool.js +156 -0
- package/dist/neon-tool.js.map +1 -0
- package/dist/pagerduty-tool.d.ts +8 -0
- package/dist/pagerduty-tool.d.ts.map +1 -0
- package/dist/pagerduty-tool.js +185 -0
- package/dist/pagerduty-tool.js.map +1 -0
- package/dist/perplexity-tool.d.ts +2 -0
- package/dist/perplexity-tool.d.ts.map +1 -0
- package/dist/perplexity-tool.js +93 -0
- package/dist/perplexity-tool.js.map +1 -0
- package/dist/pika-tool.d.ts +4 -0
- package/dist/pika-tool.d.ts.map +1 -0
- package/dist/pika-tool.js +102 -0
- package/dist/pika-tool.js.map +1 -0
- package/dist/pinecone-tool.d.ts +6 -0
- package/dist/pinecone-tool.d.ts.map +1 -0
- package/dist/pinecone-tool.js +148 -0
- package/dist/pinecone-tool.js.map +1 -0
- package/dist/postmark-tool.d.ts +7 -0
- package/dist/postmark-tool.d.ts.map +1 -0
- package/dist/postmark-tool.js +148 -0
- package/dist/postmark-tool.js.map +1 -0
- package/dist/qc-tool.d.ts +4 -0
- package/dist/qc-tool.d.ts.map +1 -0
- package/dist/qc-tool.js +415 -0
- package/dist/qc-tool.js.map +1 -0
- package/dist/render-tool.d.ts +7 -0
- package/dist/render-tool.d.ts.map +1 -0
- package/dist/render-tool.js +158 -0
- package/dist/render-tool.js.map +1 -0
- package/dist/runway-tool.d.ts +4 -0
- package/dist/runway-tool.d.ts.map +1 -0
- package/dist/runway-tool.js +110 -0
- package/dist/runway-tool.js.map +1 -0
- package/dist/segment-tool.d.ts +6 -0
- package/dist/segment-tool.d.ts.map +1 -0
- package/dist/segment-tool.js +129 -0
- package/dist/segment-tool.js.map +1 -0
- package/dist/sendgrid-tool.d.ts +7 -0
- package/dist/sendgrid-tool.d.ts.map +1 -0
- package/dist/sendgrid-tool.js +124 -0
- package/dist/sendgrid-tool.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +10 -0
- package/dist/server.js.map +1 -1
- package/dist/togetherai-tool.d.ts +5 -0
- package/dist/togetherai-tool.d.ts.map +1 -0
- package/dist/togetherai-tool.js +129 -0
- package/dist/togetherai-tool.js.map +1 -0
- package/dist/tool-wiring.d.ts +4608 -692
- package/dist/tool-wiring.d.ts.map +1 -1
- package/dist/tool-wiring.js +2946 -463
- package/dist/tool-wiring.js.map +1 -1
- package/dist/turso-tool.d.ts +6 -0
- package/dist/turso-tool.d.ts.map +1 -0
- package/dist/turso-tool.js +158 -0
- package/dist/turso-tool.js.map +1 -0
- package/dist/upstash-tool.d.ts +8 -0
- package/dist/upstash-tool.d.ts.map +1 -0
- package/dist/upstash-tool.js +191 -0
- package/dist/upstash-tool.js.map +1 -0
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mistral-tool.js","sourceRoot":"","sources":["../src/mistral-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function mixpanelTrackEvent(args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function mixpanelGetEvents(args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function mixpanelGetFunnels(args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function mixpanelGetRetention(args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
export declare function mixpanelExportData(args: Record<string, unknown>): Promise<unknown>;
|
|
6
|
+
//# sourceMappingURL=mixpanel-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixpanel-tool.d.ts","sourceRoot":"","sources":["../src/mixpanel-tool.ts"],"names":[],"mappings":"AA6DA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAexF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAevF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAcxF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgB1F;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBxF"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// Mixpanel API integration for the UnClick MCP server.
|
|
2
|
+
// Uses the Mixpanel REST API via fetch - no external dependencies.
|
|
3
|
+
// Users must supply a Service Account username and secret from mixpanel.com/settings/service-accounts.
|
|
4
|
+
const MP_INGEST = "https://api.mixpanel.com";
|
|
5
|
+
const MP_QUERY = "https://data.mixpanel.com/api/2.0";
|
|
6
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
7
|
+
function requireCreds(args) {
|
|
8
|
+
const username = String(args.service_account_username ?? "").trim();
|
|
9
|
+
const secret = String(args.service_account_secret ?? "").trim();
|
|
10
|
+
const projectId = String(args.project_id ?? "").trim();
|
|
11
|
+
if (!username)
|
|
12
|
+
throw new Error("service_account_username is required (from mixpanel.com/settings/service-accounts).");
|
|
13
|
+
if (!secret)
|
|
14
|
+
throw new Error("service_account_secret is required.");
|
|
15
|
+
if (!projectId)
|
|
16
|
+
throw new Error("project_id is required (numeric Mixpanel project ID).");
|
|
17
|
+
return { username, secret, projectId };
|
|
18
|
+
}
|
|
19
|
+
function basicAuth(username, secret) {
|
|
20
|
+
return `Basic ${Buffer.from(`${username}:${secret}`).toString("base64")}`;
|
|
21
|
+
}
|
|
22
|
+
async function mpGet(username, secret, baseUrl, path, params) {
|
|
23
|
+
const url = new URL(`${baseUrl}${path}`);
|
|
24
|
+
Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v));
|
|
25
|
+
const res = await fetch(url.toString(), {
|
|
26
|
+
headers: { Authorization: basicAuth(username, secret) },
|
|
27
|
+
});
|
|
28
|
+
const text = await res.text();
|
|
29
|
+
let data;
|
|
30
|
+
try {
|
|
31
|
+
data = JSON.parse(text);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
data = text;
|
|
35
|
+
}
|
|
36
|
+
if (!res.ok) {
|
|
37
|
+
const msg = typeof data === "object" && data !== null ? (data.error ?? JSON.stringify(data)) : String(data);
|
|
38
|
+
throw new Error(`Mixpanel error (${res.status}): ${msg}`);
|
|
39
|
+
}
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
async function mpPost(username, secret, baseUrl, path, body) {
|
|
43
|
+
const form = new URLSearchParams(body);
|
|
44
|
+
const res = await fetch(`${baseUrl}${path}`, {
|
|
45
|
+
method: "POST",
|
|
46
|
+
headers: {
|
|
47
|
+
Authorization: basicAuth(username, secret),
|
|
48
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
49
|
+
},
|
|
50
|
+
body: form.toString(),
|
|
51
|
+
});
|
|
52
|
+
const text = await res.text();
|
|
53
|
+
let data;
|
|
54
|
+
try {
|
|
55
|
+
data = JSON.parse(text);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
data = text;
|
|
59
|
+
}
|
|
60
|
+
if (!res.ok) {
|
|
61
|
+
const msg = typeof data === "object" && data !== null ? (data.error ?? JSON.stringify(data)) : String(data);
|
|
62
|
+
throw new Error(`Mixpanel error (${res.status}): ${msg}`);
|
|
63
|
+
}
|
|
64
|
+
return data;
|
|
65
|
+
}
|
|
66
|
+
// ─── Operations ───────────────────────────────────────────────────────────────
|
|
67
|
+
export async function mixpanelTrackEvent(args) {
|
|
68
|
+
const { username, secret } = requireCreds(args);
|
|
69
|
+
const event = String(args.event ?? "").trim();
|
|
70
|
+
if (!event)
|
|
71
|
+
throw new Error("event is required (event name to track).");
|
|
72
|
+
const properties = {
|
|
73
|
+
token: String(args.token ?? ""),
|
|
74
|
+
distinct_id: String(args.distinct_id ?? "anonymous"),
|
|
75
|
+
time: Math.floor(Date.now() / 1000),
|
|
76
|
+
...(args.properties ?? {}),
|
|
77
|
+
};
|
|
78
|
+
const data = JSON.stringify([{ event, properties }]);
|
|
79
|
+
const encoded = Buffer.from(data).toString("base64");
|
|
80
|
+
return mpPost(username, secret, MP_INGEST, "/track", { data: encoded });
|
|
81
|
+
}
|
|
82
|
+
export async function mixpanelGetEvents(args) {
|
|
83
|
+
const { username, secret, projectId } = requireCreds(args);
|
|
84
|
+
const fromDate = String(args.from_date ?? new Date(Date.now() - 7 * 86400000).toISOString().split("T")[0]);
|
|
85
|
+
const toDate = String(args.to_date ?? new Date().toISOString().split("T")[0]);
|
|
86
|
+
const params = {
|
|
87
|
+
project_id: projectId,
|
|
88
|
+
from_date: fromDate,
|
|
89
|
+
to_date: toDate,
|
|
90
|
+
unit: String(args.unit ?? "day"),
|
|
91
|
+
type: String(args.type ?? "general"),
|
|
92
|
+
};
|
|
93
|
+
if (args.event)
|
|
94
|
+
params.event = JSON.stringify(Array.isArray(args.event) ? args.event : [String(args.event)]);
|
|
95
|
+
return mpGet(username, secret, MP_QUERY, "/events", params);
|
|
96
|
+
}
|
|
97
|
+
export async function mixpanelGetFunnels(args) {
|
|
98
|
+
const { username, secret, projectId } = requireCreds(args);
|
|
99
|
+
const funnelId = String(args.funnel_id ?? "").trim();
|
|
100
|
+
if (!funnelId)
|
|
101
|
+
throw new Error("funnel_id is required.");
|
|
102
|
+
const fromDate = String(args.from_date ?? new Date(Date.now() - 30 * 86400000).toISOString().split("T")[0]);
|
|
103
|
+
const toDate = String(args.to_date ?? new Date().toISOString().split("T")[0]);
|
|
104
|
+
return mpGet(username, secret, MP_QUERY, "/funnels", {
|
|
105
|
+
project_id: projectId,
|
|
106
|
+
funnel_id: funnelId,
|
|
107
|
+
from_date: fromDate,
|
|
108
|
+
to_date: toDate,
|
|
109
|
+
unit: String(args.unit ?? "day"),
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
export async function mixpanelGetRetention(args) {
|
|
113
|
+
const { username, secret, projectId } = requireCreds(args);
|
|
114
|
+
const fromDate = String(args.from_date ?? new Date(Date.now() - 30 * 86400000).toISOString().split("T")[0]);
|
|
115
|
+
const toDate = String(args.to_date ?? new Date().toISOString().split("T")[0]);
|
|
116
|
+
const params = {
|
|
117
|
+
project_id: projectId,
|
|
118
|
+
from_date: fromDate,
|
|
119
|
+
to_date: toDate,
|
|
120
|
+
retention_type: String(args.retention_type ?? "birth"),
|
|
121
|
+
unit: String(args.unit ?? "day"),
|
|
122
|
+
};
|
|
123
|
+
if (args.born_event)
|
|
124
|
+
params.born_event = String(args.born_event);
|
|
125
|
+
if (args.event)
|
|
126
|
+
params.event = String(args.event);
|
|
127
|
+
return mpGet(username, secret, MP_QUERY, "/retention", params);
|
|
128
|
+
}
|
|
129
|
+
export async function mixpanelExportData(args) {
|
|
130
|
+
const { username, secret, projectId } = requireCreds(args);
|
|
131
|
+
const fromDate = String(args.from_date ?? new Date(Date.now() - 1 * 86400000).toISOString().split("T")[0]);
|
|
132
|
+
const toDate = String(args.to_date ?? new Date().toISOString().split("T")[0]);
|
|
133
|
+
const params = {
|
|
134
|
+
project_id: projectId,
|
|
135
|
+
from_date: fromDate,
|
|
136
|
+
to_date: toDate,
|
|
137
|
+
};
|
|
138
|
+
if (args.event)
|
|
139
|
+
params.event = JSON.stringify(Array.isArray(args.event) ? args.event : [String(args.event)]);
|
|
140
|
+
if (args.where)
|
|
141
|
+
params.where = String(args.where);
|
|
142
|
+
if (args.limit)
|
|
143
|
+
params.limit = String(args.limit);
|
|
144
|
+
// Export returns NDJSON - return as raw text
|
|
145
|
+
const url = new URL(`${MP_QUERY}/export`);
|
|
146
|
+
Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v));
|
|
147
|
+
const res = await fetch(url.toString(), {
|
|
148
|
+
headers: { Authorization: basicAuth(username, secret) },
|
|
149
|
+
});
|
|
150
|
+
if (!res.ok)
|
|
151
|
+
throw new Error(`Mixpanel export error (${res.status})`);
|
|
152
|
+
const text = await res.text();
|
|
153
|
+
const lines = text.trim().split("\n").filter(Boolean);
|
|
154
|
+
const events = lines.map((l) => { try {
|
|
155
|
+
return JSON.parse(l);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
return l;
|
|
159
|
+
} });
|
|
160
|
+
return { count: events.length, from_date: fromDate, to_date: toDate, events };
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=mixpanel-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixpanel-tool.js","sourceRoot":"","sources":["../src/mixpanel-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function neonListProjects(args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function neonGetProject(args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function neonListBranches(args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function neonCreateBranch(args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
export declare function neonListDatabases(args: Record<string, unknown>): Promise<unknown>;
|
|
6
|
+
export declare function neonExecuteSql(args: Record<string, unknown>): Promise<unknown>;
|
|
7
|
+
//# sourceMappingURL=neon-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neon-tool.d.ts","sourceRoot":"","sources":["../src/neon-tool.ts"],"names":[],"mappings":"AAqFA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAYtF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAWpF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAWtF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAetF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBvF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBpF"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
// Neon Serverless Postgres API integration for the UnClick MCP server.
|
|
2
|
+
// Uses the Neon REST API via fetch - no external dependencies.
|
|
3
|
+
// Users must supply an API key from console.neon.tech.
|
|
4
|
+
const NEON_API_BASE = "https://console.neon.tech/api/v2";
|
|
5
|
+
// ── Fetch helper ──────────────────────────────────────────────────────────────
|
|
6
|
+
async function neonFetch(apiKey, method, path, body, query) {
|
|
7
|
+
const url = new URL(`${NEON_API_BASE}${path}`);
|
|
8
|
+
if (query) {
|
|
9
|
+
for (const [k, v] of Object.entries(query)) {
|
|
10
|
+
if (v !== undefined && v !== "")
|
|
11
|
+
url.searchParams.set(k, String(v));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const headers = {
|
|
15
|
+
Authorization: `Bearer ${apiKey}`,
|
|
16
|
+
Accept: "application/json",
|
|
17
|
+
};
|
|
18
|
+
if (body !== undefined)
|
|
19
|
+
headers["Content-Type"] = "application/json";
|
|
20
|
+
let response;
|
|
21
|
+
try {
|
|
22
|
+
response = await fetch(url.toString(), {
|
|
23
|
+
method,
|
|
24
|
+
headers,
|
|
25
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
return { error: `Network error reaching Neon API: ${err instanceof Error ? err.message : String(err)}` };
|
|
30
|
+
}
|
|
31
|
+
const text = await response.text();
|
|
32
|
+
let data;
|
|
33
|
+
try {
|
|
34
|
+
data = JSON.parse(text);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
data = { raw: text };
|
|
38
|
+
}
|
|
39
|
+
if (response.status === 401)
|
|
40
|
+
return { error: "Neon API key is invalid or expired. Check your api_key.", status: 401 };
|
|
41
|
+
if (response.status === 403)
|
|
42
|
+
return { error: "Neon API: insufficient permissions.", status: 403 };
|
|
43
|
+
if (response.status === 404)
|
|
44
|
+
return { error: "Resource not found. Check the project_id, branch_id, or endpoint_id.", status: 404 };
|
|
45
|
+
if (!response.ok) {
|
|
46
|
+
const detail = data?.message ?? text;
|
|
47
|
+
return { error: `Neon API error ${response.status}: ${detail}`, status: response.status };
|
|
48
|
+
}
|
|
49
|
+
return data;
|
|
50
|
+
}
|
|
51
|
+
// ── Operations ────────────────────────────────────────────────────────────────
|
|
52
|
+
export async function neonListProjects(args) {
|
|
53
|
+
const apiKey = String(args.api_key ?? process.env.NEON_API_KEY ?? "").trim();
|
|
54
|
+
if (!apiKey)
|
|
55
|
+
return { error: "api_key is required. Get one at console.neon.tech." };
|
|
56
|
+
try {
|
|
57
|
+
return neonFetch(apiKey, "GET", "/projects", undefined, {
|
|
58
|
+
limit: args.limit ? Number(args.limit) : undefined,
|
|
59
|
+
cursor: args.cursor ? String(args.cursor) : undefined,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export async function neonGetProject(args) {
|
|
67
|
+
const apiKey = String(args.api_key ?? process.env.NEON_API_KEY ?? "").trim();
|
|
68
|
+
if (!apiKey)
|
|
69
|
+
return { error: "api_key is required. Get one at console.neon.tech." };
|
|
70
|
+
const projectId = String(args.project_id ?? "").trim();
|
|
71
|
+
if (!projectId)
|
|
72
|
+
return { error: "project_id is required." };
|
|
73
|
+
try {
|
|
74
|
+
return neonFetch(apiKey, "GET", `/projects/${encodeURIComponent(projectId)}`);
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export async function neonListBranches(args) {
|
|
81
|
+
const apiKey = String(args.api_key ?? process.env.NEON_API_KEY ?? "").trim();
|
|
82
|
+
if (!apiKey)
|
|
83
|
+
return { error: "api_key is required. Get one at console.neon.tech." };
|
|
84
|
+
const projectId = String(args.project_id ?? "").trim();
|
|
85
|
+
if (!projectId)
|
|
86
|
+
return { error: "project_id is required." };
|
|
87
|
+
try {
|
|
88
|
+
return neonFetch(apiKey, "GET", `/projects/${encodeURIComponent(projectId)}/branches`);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export async function neonCreateBranch(args) {
|
|
95
|
+
const apiKey = String(args.api_key ?? process.env.NEON_API_KEY ?? "").trim();
|
|
96
|
+
if (!apiKey)
|
|
97
|
+
return { error: "api_key is required. Get one at console.neon.tech." };
|
|
98
|
+
const projectId = String(args.project_id ?? "").trim();
|
|
99
|
+
if (!projectId)
|
|
100
|
+
return { error: "project_id is required." };
|
|
101
|
+
try {
|
|
102
|
+
const branchBody = {
|
|
103
|
+
branch: args.branch_name ? { name: String(args.branch_name) } : {},
|
|
104
|
+
endpoints: [{ type: "read_write" }],
|
|
105
|
+
};
|
|
106
|
+
return neonFetch(apiKey, "POST", `/projects/${encodeURIComponent(projectId)}/branches`, branchBody);
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
export async function neonListDatabases(args) {
|
|
113
|
+
const apiKey = String(args.api_key ?? process.env.NEON_API_KEY ?? "").trim();
|
|
114
|
+
if (!apiKey)
|
|
115
|
+
return { error: "api_key is required. Get one at console.neon.tech." };
|
|
116
|
+
const projectId = String(args.project_id ?? "").trim();
|
|
117
|
+
if (!projectId)
|
|
118
|
+
return { error: "project_id is required." };
|
|
119
|
+
const branchId = String(args.branch_id ?? "").trim();
|
|
120
|
+
if (!branchId)
|
|
121
|
+
return { error: "branch_id is required." };
|
|
122
|
+
try {
|
|
123
|
+
return neonFetch(apiKey, "GET", `/projects/${encodeURIComponent(projectId)}/branches/${encodeURIComponent(branchId)}/databases`);
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export async function neonExecuteSql(args) {
|
|
130
|
+
const apiKey = String(args.api_key ?? process.env.NEON_API_KEY ?? "").trim();
|
|
131
|
+
if (!apiKey)
|
|
132
|
+
return { error: "api_key is required. Get one at console.neon.tech." };
|
|
133
|
+
const projectId = String(args.project_id ?? "").trim();
|
|
134
|
+
if (!projectId)
|
|
135
|
+
return { error: "project_id is required." };
|
|
136
|
+
const branchId = String(args.branch_id ?? "").trim();
|
|
137
|
+
if (!branchId)
|
|
138
|
+
return { error: "branch_id is required." };
|
|
139
|
+
const endpointId = String(args.endpoint_id ?? "").trim();
|
|
140
|
+
if (!endpointId)
|
|
141
|
+
return { error: "endpoint_id is required." };
|
|
142
|
+
const query = String(args.query ?? "").trim();
|
|
143
|
+
if (!query)
|
|
144
|
+
return { error: "query is required." };
|
|
145
|
+
const databaseName = String(args.database_name ?? "").trim();
|
|
146
|
+
if (!databaseName)
|
|
147
|
+
return { error: "database_name is required." };
|
|
148
|
+
try {
|
|
149
|
+
const path = `/projects/${encodeURIComponent(projectId)}/branches/${encodeURIComponent(branchId)}/endpoints/${encodeURIComponent(endpointId)}/query`;
|
|
150
|
+
return neonFetch(apiKey, "POST", path, { query, database_name: databaseName });
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=neon-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neon-tool.js","sourceRoot":"","sources":["../src/neon-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function pagerduty_list_incidents(args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function pagerduty_get_incident(args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function pagerduty_create_incident(args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function pagerduty_acknowledge_incident(args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
export declare function pagerduty_resolve_incident(args: Record<string, unknown>): Promise<unknown>;
|
|
6
|
+
export declare function pagerduty_list_services(args: Record<string, unknown>): Promise<unknown>;
|
|
7
|
+
export declare function pagerduty_list_oncalls(args: Record<string, unknown>): Promise<unknown>;
|
|
8
|
+
//# sourceMappingURL=pagerduty-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagerduty-tool.d.ts","sourceRoot":"","sources":["../src/pagerduty-tool.ts"],"names":[],"mappings":"AAyEA,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAc9F;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAM5F;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA2C/F;AAED,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQpG;AAED,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQhG;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAY7F;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAW5F"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
// PagerDuty Incident Management API.
|
|
2
|
+
// Docs: https://developer.pagerduty.com/api-reference
|
|
3
|
+
// Auth: Token token=API_KEY (Authorization header)
|
|
4
|
+
// Base: https://api.pagerduty.com
|
|
5
|
+
const PD_API_BASE = "https://api.pagerduty.com";
|
|
6
|
+
function requireKey(args) {
|
|
7
|
+
const key = String(args.api_key ?? "").trim();
|
|
8
|
+
if (!key)
|
|
9
|
+
throw new Error("api_key is required. Get one at app.pagerduty.com/api_keys.");
|
|
10
|
+
return key;
|
|
11
|
+
}
|
|
12
|
+
async function pdGet(apiKey, path, query) {
|
|
13
|
+
const url = new URL(`${PD_API_BASE}${path}`);
|
|
14
|
+
if (query) {
|
|
15
|
+
for (const [k, v] of Object.entries(query)) {
|
|
16
|
+
if (v !== undefined && v !== "")
|
|
17
|
+
url.searchParams.set(k, v);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const res = await fetch(url.toString(), {
|
|
21
|
+
headers: {
|
|
22
|
+
Authorization: `Token token=${apiKey}`,
|
|
23
|
+
Accept: "application/vnd.pagerduty+json;version=2",
|
|
24
|
+
"Content-Type": "application/json",
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
const data = await res.json();
|
|
28
|
+
if (!res.ok) {
|
|
29
|
+
const msg = data.error?.message ?? `HTTP ${res.status}`;
|
|
30
|
+
throw new Error(`PagerDuty error (${res.status}): ${msg}`);
|
|
31
|
+
}
|
|
32
|
+
return data;
|
|
33
|
+
}
|
|
34
|
+
async function pdPost(apiKey, path, body) {
|
|
35
|
+
const res = await fetch(`${PD_API_BASE}${path}`, {
|
|
36
|
+
method: "POST",
|
|
37
|
+
headers: {
|
|
38
|
+
Authorization: `Token token=${apiKey}`,
|
|
39
|
+
Accept: "application/vnd.pagerduty+json;version=2",
|
|
40
|
+
"Content-Type": "application/json",
|
|
41
|
+
},
|
|
42
|
+
body: JSON.stringify(body),
|
|
43
|
+
});
|
|
44
|
+
const data = await res.json();
|
|
45
|
+
if (!res.ok) {
|
|
46
|
+
const msg = data.error?.message ?? `HTTP ${res.status}`;
|
|
47
|
+
throw new Error(`PagerDuty error (${res.status}): ${msg}`);
|
|
48
|
+
}
|
|
49
|
+
return data;
|
|
50
|
+
}
|
|
51
|
+
async function pdPut(apiKey, path, body) {
|
|
52
|
+
const res = await fetch(`${PD_API_BASE}${path}`, {
|
|
53
|
+
method: "PUT",
|
|
54
|
+
headers: {
|
|
55
|
+
Authorization: `Token token=${apiKey}`,
|
|
56
|
+
Accept: "application/vnd.pagerduty+json;version=2",
|
|
57
|
+
"Content-Type": "application/json",
|
|
58
|
+
},
|
|
59
|
+
body: JSON.stringify(body),
|
|
60
|
+
});
|
|
61
|
+
const data = await res.json();
|
|
62
|
+
if (!res.ok) {
|
|
63
|
+
const msg = data.error?.message ?? `HTTP ${res.status}`;
|
|
64
|
+
throw new Error(`PagerDuty error (${res.status}): ${msg}`);
|
|
65
|
+
}
|
|
66
|
+
return data;
|
|
67
|
+
}
|
|
68
|
+
// ─── Operations ───────────────────────────────────────────────────────────────
|
|
69
|
+
export async function pagerduty_list_incidents(args) {
|
|
70
|
+
const apiKey = requireKey(args);
|
|
71
|
+
const query = {};
|
|
72
|
+
if (args.status)
|
|
73
|
+
query["statuses[]"] = String(args.status);
|
|
74
|
+
if (args.limit)
|
|
75
|
+
query.limit = String(args.limit);
|
|
76
|
+
if (args.offset)
|
|
77
|
+
query.offset = String(args.offset);
|
|
78
|
+
if (args.service_ids)
|
|
79
|
+
query["service_ids[]"] = String(args.service_ids);
|
|
80
|
+
const data = await pdGet(apiKey, "/incidents", query);
|
|
81
|
+
return {
|
|
82
|
+
total: data.total,
|
|
83
|
+
count: data.incidents.length,
|
|
84
|
+
incidents: data.incidents,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export async function pagerduty_get_incident(args) {
|
|
88
|
+
const apiKey = requireKey(args);
|
|
89
|
+
const id = String(args.incident_id ?? "").trim();
|
|
90
|
+
if (!id)
|
|
91
|
+
throw new Error("incident_id is required.");
|
|
92
|
+
const data = await pdGet(apiKey, `/incidents/${id}`);
|
|
93
|
+
return data.incident;
|
|
94
|
+
}
|
|
95
|
+
export async function pagerduty_create_incident(args) {
|
|
96
|
+
const apiKey = requireKey(args);
|
|
97
|
+
const title = String(args.title ?? "").trim();
|
|
98
|
+
const serviceId = String(args.service_id ?? "").trim();
|
|
99
|
+
if (!title)
|
|
100
|
+
throw new Error("title is required.");
|
|
101
|
+
if (!serviceId)
|
|
102
|
+
throw new Error("service_id is required.");
|
|
103
|
+
const body = {
|
|
104
|
+
incident: {
|
|
105
|
+
type: "incident",
|
|
106
|
+
title,
|
|
107
|
+
service: { id: serviceId, type: "service_reference" },
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
if (args.urgency)
|
|
111
|
+
body.incident.urgency = String(args.urgency);
|
|
112
|
+
if (args.body_details) {
|
|
113
|
+
body.incident.body = {
|
|
114
|
+
type: "incident_body",
|
|
115
|
+
details: String(args.body_details),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
if (args.from) {
|
|
119
|
+
// PagerDuty requires From header for incident creation
|
|
120
|
+
const res = await fetch(`${PD_API_BASE}/incidents`, {
|
|
121
|
+
method: "POST",
|
|
122
|
+
headers: {
|
|
123
|
+
Authorization: `Token token=${apiKey}`,
|
|
124
|
+
Accept: "application/vnd.pagerduty+json;version=2",
|
|
125
|
+
"Content-Type": "application/json",
|
|
126
|
+
From: String(args.from),
|
|
127
|
+
},
|
|
128
|
+
body: JSON.stringify(body),
|
|
129
|
+
});
|
|
130
|
+
const data = await res.json();
|
|
131
|
+
if (!res.ok) {
|
|
132
|
+
const msg = data.error?.message ?? `HTTP ${res.status}`;
|
|
133
|
+
throw new Error(`PagerDuty error (${res.status}): ${msg}`);
|
|
134
|
+
}
|
|
135
|
+
return data.incident;
|
|
136
|
+
}
|
|
137
|
+
const data = await pdPost(apiKey, "/incidents", body);
|
|
138
|
+
return data.incident;
|
|
139
|
+
}
|
|
140
|
+
export async function pagerduty_acknowledge_incident(args) {
|
|
141
|
+
const apiKey = requireKey(args);
|
|
142
|
+
const id = String(args.incident_id ?? "").trim();
|
|
143
|
+
if (!id)
|
|
144
|
+
throw new Error("incident_id is required.");
|
|
145
|
+
const body = { incident: { type: "incident", status: "acknowledged" } };
|
|
146
|
+
const data = await pdPut(apiKey, `/incidents/${id}`, body);
|
|
147
|
+
return { incident_id: id, status: "acknowledged", raw: data.incident };
|
|
148
|
+
}
|
|
149
|
+
export async function pagerduty_resolve_incident(args) {
|
|
150
|
+
const apiKey = requireKey(args);
|
|
151
|
+
const id = String(args.incident_id ?? "").trim();
|
|
152
|
+
if (!id)
|
|
153
|
+
throw new Error("incident_id is required.");
|
|
154
|
+
const body = { incident: { type: "incident", status: "resolved" } };
|
|
155
|
+
const data = await pdPut(apiKey, `/incidents/${id}`, body);
|
|
156
|
+
return { incident_id: id, status: "resolved", raw: data.incident };
|
|
157
|
+
}
|
|
158
|
+
export async function pagerduty_list_services(args) {
|
|
159
|
+
const apiKey = requireKey(args);
|
|
160
|
+
const query = {};
|
|
161
|
+
if (args.query)
|
|
162
|
+
query.query = String(args.query);
|
|
163
|
+
if (args.limit)
|
|
164
|
+
query.limit = String(args.limit);
|
|
165
|
+
const data = await pdGet(apiKey, "/services", query);
|
|
166
|
+
return {
|
|
167
|
+
total: data.total,
|
|
168
|
+
count: data.services.length,
|
|
169
|
+
services: data.services,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
export async function pagerduty_list_oncalls(args) {
|
|
173
|
+
const apiKey = requireKey(args);
|
|
174
|
+
const query = {};
|
|
175
|
+
if (args.schedule_ids)
|
|
176
|
+
query["schedule_ids[]"] = String(args.schedule_ids);
|
|
177
|
+
if (args.user_ids)
|
|
178
|
+
query["user_ids[]"] = String(args.user_ids);
|
|
179
|
+
const data = await pdGet(apiKey, "/oncalls", query);
|
|
180
|
+
return {
|
|
181
|
+
count: data.oncalls.length,
|
|
182
|
+
oncalls: data.oncalls,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=pagerduty-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagerduty-tool.js","sourceRoot":"","sources":["../src/pagerduty-tool.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,sDAAsD;AACtD,mDAAmD;AACnD,kCAAkC;AAElC,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAEhD,SAAS,UAAU,CAAC,IAA6B;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACzF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,KAAK,CAAI,MAAc,EAAE,IAAY,EAAE,KAA8B;IAClF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,WAAW,GAAG,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;QACtC,OAAO,EAAE;YACP,aAAa,EAAE,eAAe,MAAM,EAAE;YACtC,MAAM,EAAE,0CAA0C;YAClD,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA6B,CAAC;IACzD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,GAAG,GAAI,IAAI,CAAC,KAAiC,EAAE,OAAiB,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,MAAM,CAAI,MAAc,EAAE,IAAY,EAAE,IAAa;IAClE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,GAAG,IAAI,EAAE,EAAE;QAC/C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,eAAe,MAAM,EAAE;YACtC,MAAM,EAAE,0CAA0C;YAClD,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA6B,CAAC;IACzD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,GAAG,GAAI,IAAI,CAAC,KAAiC,EAAE,OAAiB,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,KAAK,CAAI,MAAc,EAAE,IAAY,EAAE,IAAa;IACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,GAAG,IAAI,EAAE,EAAE;QAC/C,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,eAAe,MAAM,EAAE;YACtC,MAAM,EAAE,0CAA0C;YAClD,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA6B,CAAC;IACzD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,GAAG,GAAI,IAAI,CAAC,KAAiC,EAAE,OAAiB,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAA6B;IAC1E,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM;QAAE,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,MAAM;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,WAAW;QAAE,KAAK,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExE,MAAM,IAAI,GAAG,MAAM,KAAK,CAA0C,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAC/F,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;QAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAA6B;IACxE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAwB,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAA6B;IAC3E,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE3D,MAAM,IAAI,GAA4B;QACpC,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU;YAChB,KAAK;YACL,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACtD;KACF,CAAC;IACF,IAAI,IAAI,CAAC,OAAO;QAAG,IAAI,CAAC,QAAoC,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5F,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,IAAI,CAAC,QAAoC,CAAC,IAAI,GAAG;YAChD,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;SACnC,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,uDAAuD;QACvD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,YAAY,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,eAAe,MAAM,EAAE;gBACtC,MAAM,EAAE,0CAA0C;gBAClD,cAAc,EAAE,kBAAkB;gBAClC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aACxB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA6B,CAAC;QACzD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAI,IAAI,CAAC,KAAiC,EAAE,OAAiB,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/F,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAQ,IAA8B,CAAC,QAAQ,CAAC;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAwB,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,IAA6B;IAChF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC;IACxE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAwB,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAClF,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAA6B;IAC5E,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;IACpE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAwB,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAClF,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAA6B;IACzE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAyC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC7F,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAA6B;IACxE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,YAAY;QAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAyB,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC5E,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perplexity-tool.d.ts","sourceRoot":"","sources":["../src/perplexity-tool.ts"],"names":[],"mappings":"AAiEA,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAmD9F"}
|