postgresai 0.14.0-dev.43 → 0.14.0-dev.45
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/bin/postgres-ai.ts +649 -310
- package/bun.lock +258 -0
- package/dist/bin/postgres-ai.js +29491 -1910
- package/dist/sql/01.role.sql +16 -0
- package/dist/sql/02.permissions.sql +37 -0
- package/dist/sql/03.optional_rds.sql +6 -0
- package/dist/sql/04.optional_self_managed.sql +8 -0
- package/dist/sql/05.helpers.sql +415 -0
- package/lib/auth-server.ts +58 -97
- package/lib/checkup-api.ts +175 -0
- package/lib/checkup.ts +837 -0
- package/lib/config.ts +3 -0
- package/lib/init.ts +106 -74
- package/lib/issues.ts +121 -194
- package/lib/mcp-server.ts +6 -17
- package/lib/metrics-loader.ts +156 -0
- package/package.json +13 -9
- package/sql/02.permissions.sql +9 -5
- package/sql/05.helpers.sql +415 -0
- package/test/checkup.test.ts +953 -0
- package/test/init.integration.test.ts +396 -0
- package/test/init.test.ts +345 -0
- package/test/schema-validation.test.ts +188 -0
- package/tsconfig.json +12 -20
- package/dist/bin/postgres-ai.d.ts +0 -3
- package/dist/bin/postgres-ai.d.ts.map +0 -1
- package/dist/bin/postgres-ai.js.map +0 -1
- package/dist/lib/auth-server.d.ts +0 -31
- package/dist/lib/auth-server.d.ts.map +0 -1
- package/dist/lib/auth-server.js +0 -263
- package/dist/lib/auth-server.js.map +0 -1
- package/dist/lib/config.d.ts +0 -45
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js +0 -181
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/init.d.ts +0 -85
- package/dist/lib/init.d.ts.map +0 -1
- package/dist/lib/init.js +0 -644
- package/dist/lib/init.js.map +0 -1
- package/dist/lib/issues.d.ts +0 -75
- package/dist/lib/issues.d.ts.map +0 -1
- package/dist/lib/issues.js +0 -336
- package/dist/lib/issues.js.map +0 -1
- package/dist/lib/mcp-server.d.ts +0 -9
- package/dist/lib/mcp-server.d.ts.map +0 -1
- package/dist/lib/mcp-server.js +0 -168
- package/dist/lib/mcp-server.js.map +0 -1
- package/dist/lib/pkce.d.ts +0 -32
- package/dist/lib/pkce.d.ts.map +0 -1
- package/dist/lib/pkce.js +0 -101
- package/dist/lib/pkce.js.map +0 -1
- package/dist/lib/util.d.ts +0 -27
- package/dist/lib/util.d.ts.map +0 -1
- package/dist/lib/util.js +0 -46
- package/dist/lib/util.js.map +0 -1
- package/dist/package.json +0 -46
- package/test/init.integration.test.cjs +0 -382
- package/test/init.test.cjs +0 -392
package/dist/lib/issues.d.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
export interface IssueActionItem {
|
|
2
|
-
id: string;
|
|
3
|
-
issue_id: string;
|
|
4
|
-
title: string;
|
|
5
|
-
description: string | null;
|
|
6
|
-
severity: number;
|
|
7
|
-
is_done: boolean;
|
|
8
|
-
done_by: number | null;
|
|
9
|
-
done_at: string | null;
|
|
10
|
-
created_at: string;
|
|
11
|
-
updated_at: string;
|
|
12
|
-
}
|
|
13
|
-
export interface Issue {
|
|
14
|
-
id: string;
|
|
15
|
-
title: string;
|
|
16
|
-
description: string | null;
|
|
17
|
-
created_at: string;
|
|
18
|
-
updated_at: string;
|
|
19
|
-
status: number;
|
|
20
|
-
url_main: string | null;
|
|
21
|
-
urls_extra: string[] | null;
|
|
22
|
-
data: unknown | null;
|
|
23
|
-
author_id: number;
|
|
24
|
-
org_id: number;
|
|
25
|
-
project_id: number | null;
|
|
26
|
-
is_ai_generated: boolean;
|
|
27
|
-
assigned_to: number[] | null;
|
|
28
|
-
labels: string[] | null;
|
|
29
|
-
is_edited: boolean;
|
|
30
|
-
author_display_name: string;
|
|
31
|
-
comment_count: number;
|
|
32
|
-
action_items: IssueActionItem[];
|
|
33
|
-
}
|
|
34
|
-
export interface IssueComment {
|
|
35
|
-
id: string;
|
|
36
|
-
issue_id: string;
|
|
37
|
-
author_id: number;
|
|
38
|
-
parent_comment_id: string | null;
|
|
39
|
-
content: string;
|
|
40
|
-
created_at: string;
|
|
41
|
-
updated_at: string;
|
|
42
|
-
data: unknown | null;
|
|
43
|
-
}
|
|
44
|
-
export type IssueListItem = Pick<Issue, "id" | "title" | "status" | "created_at">;
|
|
45
|
-
export type IssueDetail = Pick<Issue, "id" | "title" | "description" | "status" | "created_at" | "author_display_name">;
|
|
46
|
-
export interface FetchIssuesParams {
|
|
47
|
-
apiKey: string;
|
|
48
|
-
apiBaseUrl: string;
|
|
49
|
-
debug?: boolean;
|
|
50
|
-
}
|
|
51
|
-
export declare function fetchIssues(params: FetchIssuesParams): Promise<IssueListItem[]>;
|
|
52
|
-
export interface FetchIssueCommentsParams {
|
|
53
|
-
apiKey: string;
|
|
54
|
-
apiBaseUrl: string;
|
|
55
|
-
issueId: string;
|
|
56
|
-
debug?: boolean;
|
|
57
|
-
}
|
|
58
|
-
export declare function fetchIssueComments(params: FetchIssueCommentsParams): Promise<IssueComment[]>;
|
|
59
|
-
export interface FetchIssueParams {
|
|
60
|
-
apiKey: string;
|
|
61
|
-
apiBaseUrl: string;
|
|
62
|
-
issueId: string;
|
|
63
|
-
debug?: boolean;
|
|
64
|
-
}
|
|
65
|
-
export declare function fetchIssue(params: FetchIssueParams): Promise<IssueDetail | null>;
|
|
66
|
-
export interface CreateIssueCommentParams {
|
|
67
|
-
apiKey: string;
|
|
68
|
-
apiBaseUrl: string;
|
|
69
|
-
issueId: string;
|
|
70
|
-
content: string;
|
|
71
|
-
parentCommentId?: string;
|
|
72
|
-
debug?: boolean;
|
|
73
|
-
}
|
|
74
|
-
export declare function createIssueComment(params: CreateIssueCommentParams): Promise<IssueComment>;
|
|
75
|
-
//# sourceMappingURL=issues.d.ts.map
|
package/dist/lib/issues.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../lib/issues.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/issues.js
DELETED
|
@@ -1,336 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.fetchIssues = fetchIssues;
|
|
37
|
-
exports.fetchIssueComments = fetchIssueComments;
|
|
38
|
-
exports.fetchIssue = fetchIssue;
|
|
39
|
-
exports.createIssueComment = createIssueComment;
|
|
40
|
-
const https = __importStar(require("https"));
|
|
41
|
-
const url_1 = require("url");
|
|
42
|
-
const util_1 = require("./util");
|
|
43
|
-
async function fetchIssues(params) {
|
|
44
|
-
const { apiKey, apiBaseUrl, debug } = params;
|
|
45
|
-
if (!apiKey) {
|
|
46
|
-
throw new Error("API key is required");
|
|
47
|
-
}
|
|
48
|
-
const base = (0, util_1.normalizeBaseUrl)(apiBaseUrl);
|
|
49
|
-
const url = new url_1.URL(`${base}/issues`);
|
|
50
|
-
url.searchParams.set("select", "id,title,status,created_at");
|
|
51
|
-
const headers = {
|
|
52
|
-
"access-token": apiKey,
|
|
53
|
-
"Prefer": "return=representation",
|
|
54
|
-
"Content-Type": "application/json",
|
|
55
|
-
};
|
|
56
|
-
if (debug) {
|
|
57
|
-
const debugHeaders = { ...headers, "access-token": (0, util_1.maskSecret)(apiKey) };
|
|
58
|
-
// eslint-disable-next-line no-console
|
|
59
|
-
console.log(`Debug: Resolved API base URL: ${base}`);
|
|
60
|
-
// eslint-disable-next-line no-console
|
|
61
|
-
console.log(`Debug: GET URL: ${url.toString()}`);
|
|
62
|
-
// eslint-disable-next-line no-console
|
|
63
|
-
console.log(`Debug: Auth scheme: access-token`);
|
|
64
|
-
// eslint-disable-next-line no-console
|
|
65
|
-
console.log(`Debug: Request headers: ${JSON.stringify(debugHeaders)}`);
|
|
66
|
-
}
|
|
67
|
-
return new Promise((resolve, reject) => {
|
|
68
|
-
const req = https.request(url, {
|
|
69
|
-
method: "GET",
|
|
70
|
-
headers,
|
|
71
|
-
}, (res) => {
|
|
72
|
-
let data = "";
|
|
73
|
-
res.on("data", (chunk) => (data += chunk));
|
|
74
|
-
res.on("end", () => {
|
|
75
|
-
if (debug) {
|
|
76
|
-
// eslint-disable-next-line no-console
|
|
77
|
-
console.log(`Debug: Response status: ${res.statusCode}`);
|
|
78
|
-
// eslint-disable-next-line no-console
|
|
79
|
-
console.log(`Debug: Response headers: ${JSON.stringify(res.headers)}`);
|
|
80
|
-
}
|
|
81
|
-
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
|
|
82
|
-
try {
|
|
83
|
-
const parsed = JSON.parse(data);
|
|
84
|
-
resolve(parsed);
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
reject(new Error(`Failed to parse issues response: ${data}`));
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
let errMsg = `Failed to fetch issues: HTTP ${res.statusCode}`;
|
|
92
|
-
if (data) {
|
|
93
|
-
try {
|
|
94
|
-
const errObj = JSON.parse(data);
|
|
95
|
-
errMsg += `\n${JSON.stringify(errObj, null, 2)}`;
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
errMsg += `\n${data}`;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
reject(new Error(errMsg));
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
req.on("error", (err) => reject(err));
|
|
106
|
-
req.end();
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
async function fetchIssueComments(params) {
|
|
110
|
-
const { apiKey, apiBaseUrl, issueId, debug } = params;
|
|
111
|
-
if (!apiKey) {
|
|
112
|
-
throw new Error("API key is required");
|
|
113
|
-
}
|
|
114
|
-
if (!issueId) {
|
|
115
|
-
throw new Error("issueId is required");
|
|
116
|
-
}
|
|
117
|
-
const base = (0, util_1.normalizeBaseUrl)(apiBaseUrl);
|
|
118
|
-
const url = new url_1.URL(`${base}/issue_comments?issue_id=eq.${encodeURIComponent(issueId)}`);
|
|
119
|
-
const headers = {
|
|
120
|
-
"access-token": apiKey,
|
|
121
|
-
"Prefer": "return=representation",
|
|
122
|
-
"Content-Type": "application/json",
|
|
123
|
-
};
|
|
124
|
-
if (debug) {
|
|
125
|
-
const debugHeaders = { ...headers, "access-token": (0, util_1.maskSecret)(apiKey) };
|
|
126
|
-
// eslint-disable-next-line no-console
|
|
127
|
-
console.log(`Debug: Resolved API base URL: ${base}`);
|
|
128
|
-
// eslint-disable-next-line no-console
|
|
129
|
-
console.log(`Debug: GET URL: ${url.toString()}`);
|
|
130
|
-
// eslint-disable-next-line no-console
|
|
131
|
-
console.log(`Debug: Auth scheme: access-token`);
|
|
132
|
-
// eslint-disable-next-line no-console
|
|
133
|
-
console.log(`Debug: Request headers: ${JSON.stringify(debugHeaders)}`);
|
|
134
|
-
}
|
|
135
|
-
return new Promise((resolve, reject) => {
|
|
136
|
-
const req = https.request(url, {
|
|
137
|
-
method: "GET",
|
|
138
|
-
headers,
|
|
139
|
-
}, (res) => {
|
|
140
|
-
let data = "";
|
|
141
|
-
res.on("data", (chunk) => (data += chunk));
|
|
142
|
-
res.on("end", () => {
|
|
143
|
-
if (debug) {
|
|
144
|
-
// eslint-disable-next-line no-console
|
|
145
|
-
console.log(`Debug: Response status: ${res.statusCode}`);
|
|
146
|
-
// eslint-disable-next-line no-console
|
|
147
|
-
console.log(`Debug: Response headers: ${JSON.stringify(res.headers)}`);
|
|
148
|
-
}
|
|
149
|
-
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
|
|
150
|
-
try {
|
|
151
|
-
const parsed = JSON.parse(data);
|
|
152
|
-
resolve(parsed);
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
reject(new Error(`Failed to parse issue comments response: ${data}`));
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
let errMsg = `Failed to fetch issue comments: HTTP ${res.statusCode}`;
|
|
160
|
-
if (data) {
|
|
161
|
-
try {
|
|
162
|
-
const errObj = JSON.parse(data);
|
|
163
|
-
errMsg += `\n${JSON.stringify(errObj, null, 2)}`;
|
|
164
|
-
}
|
|
165
|
-
catch {
|
|
166
|
-
errMsg += `\n${data}`;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
reject(new Error(errMsg));
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
req.on("error", (err) => reject(err));
|
|
174
|
-
req.end();
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
async function fetchIssue(params) {
|
|
178
|
-
const { apiKey, apiBaseUrl, issueId, debug } = params;
|
|
179
|
-
if (!apiKey) {
|
|
180
|
-
throw new Error("API key is required");
|
|
181
|
-
}
|
|
182
|
-
if (!issueId) {
|
|
183
|
-
throw new Error("issueId is required");
|
|
184
|
-
}
|
|
185
|
-
const base = (0, util_1.normalizeBaseUrl)(apiBaseUrl);
|
|
186
|
-
const url = new url_1.URL(`${base}/issues`);
|
|
187
|
-
url.searchParams.set("select", "id,title,description,status,created_at,author_display_name");
|
|
188
|
-
url.searchParams.set("id", `eq.${issueId}`);
|
|
189
|
-
url.searchParams.set("limit", "1");
|
|
190
|
-
const headers = {
|
|
191
|
-
"access-token": apiKey,
|
|
192
|
-
"Prefer": "return=representation",
|
|
193
|
-
"Content-Type": "application/json",
|
|
194
|
-
};
|
|
195
|
-
if (debug) {
|
|
196
|
-
const debugHeaders = { ...headers, "access-token": (0, util_1.maskSecret)(apiKey) };
|
|
197
|
-
// eslint-disable-next-line no-console
|
|
198
|
-
console.log(`Debug: Resolved API base URL: ${base}`);
|
|
199
|
-
// eslint-disable-next-line no-console
|
|
200
|
-
console.log(`Debug: GET URL: ${url.toString()}`);
|
|
201
|
-
// eslint-disable-next-line no-console
|
|
202
|
-
console.log(`Debug: Auth scheme: access-token`);
|
|
203
|
-
// eslint-disable-next-line no-console
|
|
204
|
-
console.log(`Debug: Request headers: ${JSON.stringify(debugHeaders)}`);
|
|
205
|
-
}
|
|
206
|
-
return new Promise((resolve, reject) => {
|
|
207
|
-
const req = https.request(url, {
|
|
208
|
-
method: "GET",
|
|
209
|
-
headers,
|
|
210
|
-
}, (res) => {
|
|
211
|
-
let data = "";
|
|
212
|
-
res.on("data", (chunk) => (data += chunk));
|
|
213
|
-
res.on("end", () => {
|
|
214
|
-
if (debug) {
|
|
215
|
-
// eslint-disable-next-line no-console
|
|
216
|
-
console.log(`Debug: Response status: ${res.statusCode}`);
|
|
217
|
-
// eslint-disable-next-line no-console
|
|
218
|
-
console.log(`Debug: Response headers: ${JSON.stringify(res.headers)}`);
|
|
219
|
-
}
|
|
220
|
-
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
|
|
221
|
-
try {
|
|
222
|
-
const parsed = JSON.parse(data);
|
|
223
|
-
if (Array.isArray(parsed)) {
|
|
224
|
-
resolve(parsed[0] ?? null);
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
resolve(parsed);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
catch {
|
|
231
|
-
reject(new Error(`Failed to parse issue response: ${data}`));
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
let errMsg = `Failed to fetch issue: HTTP ${res.statusCode}`;
|
|
236
|
-
if (data) {
|
|
237
|
-
try {
|
|
238
|
-
const errObj = JSON.parse(data);
|
|
239
|
-
errMsg += `\n${JSON.stringify(errObj, null, 2)}`;
|
|
240
|
-
}
|
|
241
|
-
catch {
|
|
242
|
-
errMsg += `\n${data}`;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
reject(new Error(errMsg));
|
|
246
|
-
}
|
|
247
|
-
});
|
|
248
|
-
});
|
|
249
|
-
req.on("error", (err) => reject(err));
|
|
250
|
-
req.end();
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
async function createIssueComment(params) {
|
|
254
|
-
const { apiKey, apiBaseUrl, issueId, content, parentCommentId, debug } = params;
|
|
255
|
-
if (!apiKey) {
|
|
256
|
-
throw new Error("API key is required");
|
|
257
|
-
}
|
|
258
|
-
if (!issueId) {
|
|
259
|
-
throw new Error("issueId is required");
|
|
260
|
-
}
|
|
261
|
-
if (!content) {
|
|
262
|
-
throw new Error("content is required");
|
|
263
|
-
}
|
|
264
|
-
const base = (0, util_1.normalizeBaseUrl)(apiBaseUrl);
|
|
265
|
-
const url = new url_1.URL(`${base}/rpc/issue_comment_create`);
|
|
266
|
-
const bodyObj = {
|
|
267
|
-
issue_id: issueId,
|
|
268
|
-
content: content,
|
|
269
|
-
};
|
|
270
|
-
if (parentCommentId) {
|
|
271
|
-
bodyObj.parent_comment_id = parentCommentId;
|
|
272
|
-
}
|
|
273
|
-
const body = JSON.stringify(bodyObj);
|
|
274
|
-
const headers = {
|
|
275
|
-
"access-token": apiKey,
|
|
276
|
-
"Prefer": "return=representation",
|
|
277
|
-
"Content-Type": "application/json",
|
|
278
|
-
"Content-Length": Buffer.byteLength(body).toString(),
|
|
279
|
-
};
|
|
280
|
-
if (debug) {
|
|
281
|
-
const debugHeaders = { ...headers, "access-token": (0, util_1.maskSecret)(apiKey) };
|
|
282
|
-
// eslint-disable-next-line no-console
|
|
283
|
-
console.log(`Debug: Resolved API base URL: ${base}`);
|
|
284
|
-
// eslint-disable-next-line no-console
|
|
285
|
-
console.log(`Debug: POST URL: ${url.toString()}`);
|
|
286
|
-
// eslint-disable-next-line no-console
|
|
287
|
-
console.log(`Debug: Auth scheme: access-token`);
|
|
288
|
-
// eslint-disable-next-line no-console
|
|
289
|
-
console.log(`Debug: Request headers: ${JSON.stringify(debugHeaders)}`);
|
|
290
|
-
// eslint-disable-next-line no-console
|
|
291
|
-
console.log(`Debug: Request body: ${body}`);
|
|
292
|
-
}
|
|
293
|
-
return new Promise((resolve, reject) => {
|
|
294
|
-
const req = https.request(url, {
|
|
295
|
-
method: "POST",
|
|
296
|
-
headers,
|
|
297
|
-
}, (res) => {
|
|
298
|
-
let data = "";
|
|
299
|
-
res.on("data", (chunk) => (data += chunk));
|
|
300
|
-
res.on("end", () => {
|
|
301
|
-
if (debug) {
|
|
302
|
-
// eslint-disable-next-line no-console
|
|
303
|
-
console.log(`Debug: Response status: ${res.statusCode}`);
|
|
304
|
-
// eslint-disable-next-line no-console
|
|
305
|
-
console.log(`Debug: Response headers: ${JSON.stringify(res.headers)}`);
|
|
306
|
-
}
|
|
307
|
-
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
|
|
308
|
-
try {
|
|
309
|
-
const parsed = JSON.parse(data);
|
|
310
|
-
resolve(parsed);
|
|
311
|
-
}
|
|
312
|
-
catch {
|
|
313
|
-
reject(new Error(`Failed to parse create comment response: ${data}`));
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
else {
|
|
317
|
-
let errMsg = `Failed to create issue comment: HTTP ${res.statusCode}`;
|
|
318
|
-
if (data) {
|
|
319
|
-
try {
|
|
320
|
-
const errObj = JSON.parse(data);
|
|
321
|
-
errMsg += `\n${JSON.stringify(errObj, null, 2)}`;
|
|
322
|
-
}
|
|
323
|
-
catch {
|
|
324
|
-
errMsg += `\n${data}`;
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
reject(new Error(errMsg));
|
|
328
|
-
}
|
|
329
|
-
});
|
|
330
|
-
});
|
|
331
|
-
req.on("error", (err) => reject(err));
|
|
332
|
-
req.write(body);
|
|
333
|
-
req.end();
|
|
334
|
-
});
|
|
335
|
-
}
|
|
336
|
-
//# sourceMappingURL=issues.js.map
|
package/dist/lib/issues.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../lib/issues.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/mcp-server.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../lib/mcp-server.ts"],"names":[],"mappings":"AAUA,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,cAAc,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0IxG"}
|
package/dist/lib/mcp-server.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.startMcpServer = startMcpServer;
|
|
37
|
-
const pkg = __importStar(require("../package.json"));
|
|
38
|
-
const config = __importStar(require("./config"));
|
|
39
|
-
const issues_1 = require("./issues");
|
|
40
|
-
const util_1 = require("./util");
|
|
41
|
-
// MCP SDK imports
|
|
42
|
-
const server_1 = require("@modelcontextprotocol/sdk/server");
|
|
43
|
-
const path = __importStar(require("path"));
|
|
44
|
-
async function startMcpServer(rootOpts, extra) {
|
|
45
|
-
// Resolve stdio transport at runtime to avoid subpath export resolution issues
|
|
46
|
-
const serverEntry = require.resolve("@modelcontextprotocol/sdk/server");
|
|
47
|
-
const stdioPath = path.join(path.dirname(serverEntry), "stdio.js");
|
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
49
|
-
const { StdioServerTransport } = require(stdioPath);
|
|
50
|
-
// Load schemas dynamically to avoid subpath export resolution issues
|
|
51
|
-
const typesPath = path.resolve(path.dirname(serverEntry), "../types.js");
|
|
52
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
53
|
-
const { CallToolRequestSchema, ListToolsRequestSchema } = require(typesPath);
|
|
54
|
-
const server = new server_1.Server({ name: "postgresai-mcp", version: pkg.version }, { capabilities: { tools: {} } });
|
|
55
|
-
// Interpret escape sequences (e.g., \n -> newline). Input comes from JSON, but
|
|
56
|
-
// we still normalize common escapes for consistency.
|
|
57
|
-
const interpretEscapes = (str) => (str || "")
|
|
58
|
-
.replace(/\\n/g, "\n")
|
|
59
|
-
.replace(/\\t/g, "\t")
|
|
60
|
-
.replace(/\\r/g, "\r")
|
|
61
|
-
.replace(/\\"/g, '"')
|
|
62
|
-
.replace(/\\'/g, "'");
|
|
63
|
-
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
64
|
-
return {
|
|
65
|
-
tools: [
|
|
66
|
-
{
|
|
67
|
-
name: "list_issues",
|
|
68
|
-
description: "List issues from PostgresAI API (same as CLI 'issues list')",
|
|
69
|
-
inputSchema: {
|
|
70
|
-
type: "object",
|
|
71
|
-
properties: {
|
|
72
|
-
debug: { type: "boolean", description: "Enable verbose debug logs" },
|
|
73
|
-
},
|
|
74
|
-
additionalProperties: false,
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
name: "view_issue",
|
|
79
|
-
description: "View a specific issue with its comments",
|
|
80
|
-
inputSchema: {
|
|
81
|
-
type: "object",
|
|
82
|
-
properties: {
|
|
83
|
-
issue_id: { type: "string", description: "Issue ID (UUID)" },
|
|
84
|
-
debug: { type: "boolean", description: "Enable verbose debug logs" },
|
|
85
|
-
},
|
|
86
|
-
required: ["issue_id"],
|
|
87
|
-
additionalProperties: false,
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
name: "post_issue_comment",
|
|
92
|
-
description: "Post a new comment to an issue (optionally as a reply)",
|
|
93
|
-
inputSchema: {
|
|
94
|
-
type: "object",
|
|
95
|
-
properties: {
|
|
96
|
-
issue_id: { type: "string", description: "Issue ID (UUID)" },
|
|
97
|
-
content: { type: "string", description: "Comment text (supports \\n as newline)" },
|
|
98
|
-
parent_comment_id: { type: "string", description: "Parent comment ID (UUID) for replies" },
|
|
99
|
-
debug: { type: "boolean", description: "Enable verbose debug logs" },
|
|
100
|
-
},
|
|
101
|
-
required: ["issue_id", "content"],
|
|
102
|
-
additionalProperties: false,
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
],
|
|
106
|
-
};
|
|
107
|
-
});
|
|
108
|
-
server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
109
|
-
const toolName = req.params.name;
|
|
110
|
-
const args = req.params.arguments || {};
|
|
111
|
-
const cfg = config.readConfig();
|
|
112
|
-
const apiKey = (rootOpts?.apiKey || process.env.PGAI_API_KEY || cfg.apiKey || "").toString();
|
|
113
|
-
const { apiBaseUrl } = (0, util_1.resolveBaseUrls)(rootOpts, cfg);
|
|
114
|
-
const debug = Boolean(args.debug ?? extra?.debug);
|
|
115
|
-
if (!apiKey) {
|
|
116
|
-
return {
|
|
117
|
-
content: [
|
|
118
|
-
{
|
|
119
|
-
type: "text",
|
|
120
|
-
text: "API key is required. Run 'pgai auth' or set PGAI_API_KEY.",
|
|
121
|
-
},
|
|
122
|
-
],
|
|
123
|
-
isError: true,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
try {
|
|
127
|
-
if (toolName === "list_issues") {
|
|
128
|
-
const issues = await (0, issues_1.fetchIssues)({ apiKey, apiBaseUrl, debug });
|
|
129
|
-
return { content: [{ type: "text", text: JSON.stringify(issues, null, 2) }] };
|
|
130
|
-
}
|
|
131
|
-
if (toolName === "view_issue") {
|
|
132
|
-
const issueId = String(args.issue_id || "").trim();
|
|
133
|
-
if (!issueId) {
|
|
134
|
-
return { content: [{ type: "text", text: "issue_id is required" }], isError: true };
|
|
135
|
-
}
|
|
136
|
-
const issue = await (0, issues_1.fetchIssue)({ apiKey, apiBaseUrl, issueId, debug });
|
|
137
|
-
if (!issue) {
|
|
138
|
-
return { content: [{ type: "text", text: "Issue not found" }], isError: true };
|
|
139
|
-
}
|
|
140
|
-
const comments = await (0, issues_1.fetchIssueComments)({ apiKey, apiBaseUrl, issueId, debug });
|
|
141
|
-
const combined = { issue, comments };
|
|
142
|
-
return { content: [{ type: "text", text: JSON.stringify(combined, null, 2) }] };
|
|
143
|
-
}
|
|
144
|
-
if (toolName === "post_issue_comment") {
|
|
145
|
-
const issueId = String(args.issue_id || "").trim();
|
|
146
|
-
const rawContent = String(args.content || "");
|
|
147
|
-
const parentCommentId = args.parent_comment_id ? String(args.parent_comment_id) : undefined;
|
|
148
|
-
if (!issueId) {
|
|
149
|
-
return { content: [{ type: "text", text: "issue_id is required" }], isError: true };
|
|
150
|
-
}
|
|
151
|
-
if (!rawContent) {
|
|
152
|
-
return { content: [{ type: "text", text: "content is required" }], isError: true };
|
|
153
|
-
}
|
|
154
|
-
const content = interpretEscapes(rawContent);
|
|
155
|
-
const result = await (0, issues_1.createIssueComment)({ apiKey, apiBaseUrl, issueId, content, parentCommentId, debug });
|
|
156
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
157
|
-
}
|
|
158
|
-
throw new Error(`Unknown tool: ${toolName}`);
|
|
159
|
-
}
|
|
160
|
-
catch (err) {
|
|
161
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
162
|
-
return { content: [{ type: "text", text: message }], isError: true };
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
const transport = new StdioServerTransport();
|
|
166
|
-
await server.connect(transport);
|
|
167
|
-
}
|
|
168
|
-
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../lib/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/pkce.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PKCE parameters for OAuth 2.0 Authorization Code Flow with PKCE
|
|
3
|
-
*/
|
|
4
|
-
export interface PKCEParams {
|
|
5
|
-
codeVerifier: string;
|
|
6
|
-
codeChallenge: string;
|
|
7
|
-
codeChallengeMethod: "S256";
|
|
8
|
-
state: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Generate PKCE code verifier
|
|
12
|
-
* @returns Random code verifier (43-128 characters)
|
|
13
|
-
*/
|
|
14
|
-
export declare function generateCodeVerifier(): string;
|
|
15
|
-
/**
|
|
16
|
-
* Generate PKCE code challenge from verifier
|
|
17
|
-
* Uses S256 method (SHA256)
|
|
18
|
-
* @param verifier - Code verifier string
|
|
19
|
-
* @returns Base64URL-encoded SHA256 hash of verifier
|
|
20
|
-
*/
|
|
21
|
-
export declare function generateCodeChallenge(verifier: string): string;
|
|
22
|
-
/**
|
|
23
|
-
* Generate random state for CSRF protection
|
|
24
|
-
* @returns Random state string
|
|
25
|
-
*/
|
|
26
|
-
export declare function generateState(): string;
|
|
27
|
-
/**
|
|
28
|
-
* Generate complete PKCE parameters
|
|
29
|
-
* @returns Object with verifier, challenge, challengeMethod, and state
|
|
30
|
-
*/
|
|
31
|
-
export declare function generatePKCEParams(): PKCEParams;
|
|
32
|
-
//# sourceMappingURL=pkce.d.ts.map
|