@occam-scaly/mcp-server 0.1.7 → 0.1.8
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addons.d.ts","sourceRoot":"","sources":["../../src/tools/addons.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"addons.d.ts","sourceRoot":"","sources":["../../src/tools/addons.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,YAAY,CAAC;AAsF3D,eAAO,MAAM,UAAU,EAAE,cAAc,EAgHtC,CAAC"}
|
package/dist/tools/addons.js
CHANGED
|
@@ -10,7 +10,7 @@ const ListAddOnsSchema = zod_1.z.object({
|
|
|
10
10
|
.optional()
|
|
11
11
|
.describe('Optional account ID to filter by (if omitted, returns all visible)'),
|
|
12
12
|
type: zod_1.z
|
|
13
|
-
.enum(['database', 'storage', 'cognito', 'cname'])
|
|
13
|
+
.enum(['database', 'storage', 'user_groups', 'auth', 'cognito', 'cname'])
|
|
14
14
|
.optional()
|
|
15
15
|
.describe('Optional add-on type filter'),
|
|
16
16
|
limit: zod_1.z.number().int().min(1).max(200).optional().default(100)
|
|
@@ -26,16 +26,56 @@ function mapTypeFilter(type) {
|
|
|
26
26
|
return 'DATABASE';
|
|
27
27
|
if (t === 'storage')
|
|
28
28
|
return 'STORAGE_S3';
|
|
29
|
-
if (t === 'cognito')
|
|
29
|
+
if (t === 'cognito' || t === 'user_groups' || t === 'auth')
|
|
30
30
|
return 'COGNITO';
|
|
31
31
|
if (t === 'cname')
|
|
32
32
|
return 'CNAME';
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
|
+
function mapAddOnKind(type) {
|
|
36
|
+
const t = String(type || '').toUpperCase();
|
|
37
|
+
if (t === 'DATABASE')
|
|
38
|
+
return 'database';
|
|
39
|
+
if (t === 'STORAGE_S3')
|
|
40
|
+
return 'storage';
|
|
41
|
+
if (t === 'COGNITO')
|
|
42
|
+
return 'user_groups';
|
|
43
|
+
if (t === 'CNAME')
|
|
44
|
+
return 'cname';
|
|
45
|
+
return 'unknown';
|
|
46
|
+
}
|
|
47
|
+
function toPublicAddOn(addon) {
|
|
48
|
+
const kind = mapAddOnKind(addon.type);
|
|
49
|
+
return {
|
|
50
|
+
id: addon.id,
|
|
51
|
+
name: addon.name,
|
|
52
|
+
kind,
|
|
53
|
+
status: addon.status ?? null,
|
|
54
|
+
account_id: addon.accountId,
|
|
55
|
+
database: kind === 'database'
|
|
56
|
+
? {
|
|
57
|
+
engine: addon.addOnDatabase?.type ?? null,
|
|
58
|
+
size: addon.addOnDatabase?.size ?? null
|
|
59
|
+
}
|
|
60
|
+
: undefined,
|
|
61
|
+
storage: kind === 'storage'
|
|
62
|
+
? {
|
|
63
|
+
bucket: addon.addOnStorageS3?.bucket ?? null
|
|
64
|
+
}
|
|
65
|
+
: undefined,
|
|
66
|
+
user_groups: kind === 'user_groups'
|
|
67
|
+
? {
|
|
68
|
+
name: addon.addOnCognito?.userPoolName ?? addon.name
|
|
69
|
+
}
|
|
70
|
+
: undefined,
|
|
71
|
+
created_at: addon.createdAt,
|
|
72
|
+
updated_at: addon.updatedAt
|
|
73
|
+
};
|
|
74
|
+
}
|
|
35
75
|
exports.addOnTools = [
|
|
36
76
|
{
|
|
37
77
|
name: 'scaly_list_addons',
|
|
38
|
-
description: 'List add-ons (databases, storage
|
|
78
|
+
description: 'List add-ons (databases, storage, user groups) visible to the current API key.',
|
|
39
79
|
inputSchema: ListAddOnsSchema,
|
|
40
80
|
handler: async (input) => {
|
|
41
81
|
try {
|
|
@@ -58,7 +98,7 @@ exports.addOnTools = [
|
|
|
58
98
|
accountId
|
|
59
99
|
status
|
|
60
100
|
addOnDatabase { size type }
|
|
61
|
-
addOnCognito { userPoolName
|
|
101
|
+
addOnCognito { userPoolName }
|
|
62
102
|
addOnStorageS3 { bucket }
|
|
63
103
|
createdAt
|
|
64
104
|
updatedAt
|
|
@@ -69,7 +109,7 @@ exports.addOnTools = [
|
|
|
69
109
|
where,
|
|
70
110
|
take: input.limit
|
|
71
111
|
});
|
|
72
|
-
const addons = result.listAddOns || [];
|
|
112
|
+
const addons = (result.listAddOns || []).map(toPublicAddOn);
|
|
73
113
|
return (0, index_js_1.ok)({ addons, count: addons.length });
|
|
74
114
|
}
|
|
75
115
|
catch (err) {
|
|
@@ -103,8 +143,8 @@ exports.addOnTools = [
|
|
|
103
143
|
type
|
|
104
144
|
accountId
|
|
105
145
|
status
|
|
106
|
-
addOnDatabase { size type
|
|
107
|
-
addOnCognito { userPoolName
|
|
146
|
+
addOnDatabase { size type }
|
|
147
|
+
addOnCognito { userPoolName }
|
|
108
148
|
addOnStorageS3 { bucket }
|
|
109
149
|
createdAt
|
|
110
150
|
updatedAt
|
|
@@ -121,7 +161,7 @@ exports.addOnTools = [
|
|
|
121
161
|
retriable: false
|
|
122
162
|
});
|
|
123
163
|
}
|
|
124
|
-
return (0, index_js_1.ok)({ addon: result.getAddOn });
|
|
164
|
+
return (0, index_js_1.ok)({ addon: toPublicAddOn(result.getAddOn) });
|
|
125
165
|
}
|
|
126
166
|
catch (err) {
|
|
127
167
|
const msg = String(err?.message || '');
|
package/dist/tools/addons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addons.js","sourceRoot":"","sources":["../../src/tools/addons.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,4CAAyC;AACzC,yCAA2D;
|
|
1
|
+
{"version":3,"file":"addons.js","sourceRoot":"","sources":["../../src/tools/addons.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/tools/diagnose.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/tools/diagnose.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,YAAY,CAAC;AAwL3D,eAAO,MAAM,aAAa,EAAE,cAAc,EAoHzC,CAAC"}
|
package/dist/tools/diagnose.js
CHANGED
|
@@ -17,7 +17,7 @@ function statusIcon(status) {
|
|
|
17
17
|
return 'fail';
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
function runDiagnostics(app, recentDeployments) {
|
|
20
|
+
function runDiagnostics(app, recentDeployments, envVarCount) {
|
|
21
21
|
const checks = [];
|
|
22
22
|
// App status
|
|
23
23
|
if (app.status === 'Active') {
|
|
@@ -101,13 +101,15 @@ function runDiagnostics(app, recentDeployments) {
|
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
// Env vars (count only – values can contain secrets)
|
|
104
|
-
const
|
|
104
|
+
const count = typeof envVarCount === 'number' ? envVarCount : null;
|
|
105
105
|
checks.push({
|
|
106
106
|
name: 'Environment Variables',
|
|
107
|
-
status:
|
|
108
|
-
message:
|
|
109
|
-
? '
|
|
110
|
-
:
|
|
107
|
+
status: count === null ? 'warn' : count === 0 ? 'warn' : 'pass',
|
|
108
|
+
message: count === null
|
|
109
|
+
? 'Unable to read env var names (check SCALY_OIDC_TOKEN)'
|
|
110
|
+
: count === 0
|
|
111
|
+
? 'No environment variables configured'
|
|
112
|
+
: `${count} environment variable(s) configured`
|
|
111
113
|
});
|
|
112
114
|
// Failure pattern
|
|
113
115
|
const failedCount = recentDeployments.filter((d) => ['failed', 'error'].includes(String(d.status ?? '').toLowerCase())).length;
|
|
@@ -136,10 +138,6 @@ exports.diagnoseTools = [
|
|
|
136
138
|
status
|
|
137
139
|
stackId
|
|
138
140
|
accountId
|
|
139
|
-
envVars {
|
|
140
|
-
id
|
|
141
|
-
name
|
|
142
|
-
}
|
|
143
141
|
stack {
|
|
144
142
|
id
|
|
145
143
|
name
|
|
@@ -161,6 +159,27 @@ exports.diagnoseTools = [
|
|
|
161
159
|
});
|
|
162
160
|
}
|
|
163
161
|
const app = appResult.getApp;
|
|
162
|
+
let envVarCount = null;
|
|
163
|
+
try {
|
|
164
|
+
const envGql = `
|
|
165
|
+
query GetAppEnvVars($where: AppWhereUniqueInput!) {
|
|
166
|
+
getApp(where: $where) {
|
|
167
|
+
id
|
|
168
|
+
envVars {
|
|
169
|
+
name
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
`;
|
|
174
|
+
const envResult = await (0, client_js_1.oidcQuery)(envGql, {
|
|
175
|
+
where: { id: input.app_id }
|
|
176
|
+
});
|
|
177
|
+
envVarCount = envResult.getApp?.envVars?.length ?? 0;
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
// Best-effort: diagnostics still work without env var visibility.
|
|
181
|
+
envVarCount = null;
|
|
182
|
+
}
|
|
164
183
|
const deploymentsGql = `
|
|
165
184
|
query ListDeployments($where: DeploymentWhereInput, $take: Int, $orderBy: [DeploymentOrderByInput!]) {
|
|
166
185
|
listDeployments(where: $where, take: $take, orderBy: $orderBy) {
|
|
@@ -181,7 +200,7 @@ exports.diagnoseTools = [
|
|
|
181
200
|
orderBy: [{ queuedAt: 'DESC' }]
|
|
182
201
|
});
|
|
183
202
|
const deployments = deploymentsResult.listDeployments || [];
|
|
184
|
-
const checks = runDiagnostics(app, deployments);
|
|
203
|
+
const checks = runDiagnostics(app, deployments, envVarCount);
|
|
185
204
|
const summary = {
|
|
186
205
|
pass: checks.filter((c) => c.status === 'pass').length,
|
|
187
206
|
warn: checks.filter((c) => c.status === 'warn').length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/tools/diagnose.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/tools/diagnose.ts"],"names":[],"mappings":"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"}
|