@happyvertical/smrt-dev-mcp 0.40.62 → 0.40.64
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/AGENTS.md +35 -1
- package/README.md +42 -14
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -500
- package/dist/index.js.map +1 -1
- package/dist/knowledge/index.d.ts +36 -3
- package/dist/knowledge/index.d.ts.map +1 -1
- package/dist/knowledge/mcp-docs.d.ts +16 -0
- package/dist/knowledge/mcp-docs.d.ts.map +1 -0
- package/dist/{knowledge-DUUhTM5u.js → knowledge-A7-gIjW4.js} +799 -31
- package/dist/knowledge-A7-gIjW4.js.map +1 -0
- package/dist/knowledge.js +1 -1
- package/dist/tool-catalog.d.ts +4 -0
- package/dist/tool-catalog.d.ts.map +1 -0
- package/package.json +4 -4
- package/dist/knowledge-DUUhTM5u.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as checkKnowledgeFreshnessFromIndex, d as smrtReview, i as checkKnowledgeFreshness, n as buildKnowledgeIndex, r as buildReviewContext, s as packageDocPaths, t as buildArchitectureContext, u as smrtArchitecture } from "./knowledge-
|
|
2
|
+
import { a as checkKnowledgeFreshnessFromIndex, d as smrtReview, f as REVIEW_SKILL_NAME, i as checkKnowledgeFreshness, n as buildKnowledgeIndex, p as TOOLS, r as buildReviewContext, s as packageDocPaths, t as buildArchitectureContext, u as smrtArchitecture } from "./knowledge-A7-gIjW4.js";
|
|
3
3
|
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
4
4
|
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
5
5
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
@@ -1061,7 +1061,6 @@ function pathExistsSyncHint(path) {
|
|
|
1061
1061
|
var SERVER_NAME = "smrt-dev-mcp";
|
|
1062
1062
|
var SERVER_VERSION = readPackageVersion();
|
|
1063
1063
|
var DEBUG = process.env.DEBUG === "true";
|
|
1064
|
-
var REVIEW_SKILL_NAME = "smrt-code-review";
|
|
1065
1064
|
var REVIEW_SKILL_URI = `smrt-dev-mcp://agent-skills/${REVIEW_SKILL_NAME}`;
|
|
1066
1065
|
var DOMAIN_CODE_REVIEW_PROMPT = "domain-code-review";
|
|
1067
1066
|
var DOMAIN_ARCHITECTURE_PROMPT = "domain-architecture";
|
|
@@ -1075,500 +1074,6 @@ var LIVE_KNOWLEDGE_CACHE_HINT = {
|
|
|
1075
1074
|
ttlMs: 0,
|
|
1076
1075
|
cacheScope: "private"
|
|
1077
1076
|
};
|
|
1078
|
-
var JSON_SCHEMA_2020_12 = "https://json-schema.org/draft/2020-12/schema";
|
|
1079
|
-
function compareToolNames(left, right) {
|
|
1080
|
-
return left < right ? -1 : left > right ? 1 : 0;
|
|
1081
|
-
}
|
|
1082
|
-
/**
|
|
1083
|
-
* Stable success/error envelope for development tools. `data` preserves each
|
|
1084
|
-
* tool's existing payload exactly; coverage/diagnostics are promoted only when
|
|
1085
|
-
* the underlying result actually reports them.
|
|
1086
|
-
*/
|
|
1087
|
-
var DEV_MCP_OUTPUT_SCHEMA = {
|
|
1088
|
-
$schema: JSON_SCHEMA_2020_12,
|
|
1089
|
-
type: "object",
|
|
1090
|
-
additionalProperties: false,
|
|
1091
|
-
required: [
|
|
1092
|
-
"ok",
|
|
1093
|
-
"coverage",
|
|
1094
|
-
"diagnostics",
|
|
1095
|
-
"data"
|
|
1096
|
-
],
|
|
1097
|
-
properties: {
|
|
1098
|
-
ok: { type: "boolean" },
|
|
1099
|
-
coverage: {
|
|
1100
|
-
type: ["object", "null"],
|
|
1101
|
-
additionalProperties: true
|
|
1102
|
-
},
|
|
1103
|
-
diagnostics: {
|
|
1104
|
-
type: "array",
|
|
1105
|
-
items: {
|
|
1106
|
-
type: "object",
|
|
1107
|
-
additionalProperties: true
|
|
1108
|
-
}
|
|
1109
|
-
},
|
|
1110
|
-
data: {}
|
|
1111
|
-
}
|
|
1112
|
-
};
|
|
1113
|
-
var TOOLS = [
|
|
1114
|
-
{
|
|
1115
|
-
name: "generate-smrt-class",
|
|
1116
|
-
description: "Generate a complete SMRT class with @smrt() decorator",
|
|
1117
|
-
inputSchema: {
|
|
1118
|
-
type: "object",
|
|
1119
|
-
properties: {
|
|
1120
|
-
className: {
|
|
1121
|
-
type: "string",
|
|
1122
|
-
description: "Name of the class (PascalCase)"
|
|
1123
|
-
},
|
|
1124
|
-
properties: {
|
|
1125
|
-
type: "array",
|
|
1126
|
-
description: "Array of property definitions",
|
|
1127
|
-
items: {
|
|
1128
|
-
type: "object",
|
|
1129
|
-
properties: {
|
|
1130
|
-
name: { type: "string" },
|
|
1131
|
-
type: {
|
|
1132
|
-
type: "string",
|
|
1133
|
-
enum: [
|
|
1134
|
-
"text",
|
|
1135
|
-
"integer",
|
|
1136
|
-
"decimal",
|
|
1137
|
-
"boolean",
|
|
1138
|
-
"datetime",
|
|
1139
|
-
"json"
|
|
1140
|
-
]
|
|
1141
|
-
},
|
|
1142
|
-
required: { type: "boolean" },
|
|
1143
|
-
nullable: { type: "boolean" },
|
|
1144
|
-
description: { type: "string" },
|
|
1145
|
-
defaultValue: { oneOf: [
|
|
1146
|
-
{ type: "string" },
|
|
1147
|
-
{ type: "number" },
|
|
1148
|
-
{ type: "boolean" },
|
|
1149
|
-
{ type: "object" },
|
|
1150
|
-
{ type: "null" }
|
|
1151
|
-
] }
|
|
1152
|
-
},
|
|
1153
|
-
required: ["name", "type"]
|
|
1154
|
-
}
|
|
1155
|
-
},
|
|
1156
|
-
baseClass: {
|
|
1157
|
-
type: "string",
|
|
1158
|
-
enum: ["SmrtObject", "SmrtCollection"],
|
|
1159
|
-
default: "SmrtObject"
|
|
1160
|
-
},
|
|
1161
|
-
template: {
|
|
1162
|
-
type: "string",
|
|
1163
|
-
enum: [
|
|
1164
|
-
"basic",
|
|
1165
|
-
"global-catalog",
|
|
1166
|
-
"optional-catalog",
|
|
1167
|
-
"tenant-project-object",
|
|
1168
|
-
"tenant-event-log-object",
|
|
1169
|
-
"cross-package-reference"
|
|
1170
|
-
],
|
|
1171
|
-
default: "basic"
|
|
1172
|
-
},
|
|
1173
|
-
tableName: { type: "string" },
|
|
1174
|
-
conflictColumns: {
|
|
1175
|
-
type: "array",
|
|
1176
|
-
items: { type: "string" }
|
|
1177
|
-
},
|
|
1178
|
-
tenantScoped: { oneOf: [{ type: "boolean" }, {
|
|
1179
|
-
type: "object",
|
|
1180
|
-
properties: {
|
|
1181
|
-
mode: {
|
|
1182
|
-
type: "string",
|
|
1183
|
-
enum: ["required", "optional"]
|
|
1184
|
-
},
|
|
1185
|
-
field: { type: "string" },
|
|
1186
|
-
autoFilter: { type: "boolean" },
|
|
1187
|
-
autoPopulate: { type: "boolean" },
|
|
1188
|
-
allowSuperAdminBypass: { type: "boolean" }
|
|
1189
|
-
}
|
|
1190
|
-
}] },
|
|
1191
|
-
includeTenantIdField: { type: "boolean" },
|
|
1192
|
-
relationships: {
|
|
1193
|
-
type: "array",
|
|
1194
|
-
items: {
|
|
1195
|
-
type: "object",
|
|
1196
|
-
properties: {
|
|
1197
|
-
name: { type: "string" },
|
|
1198
|
-
type: {
|
|
1199
|
-
type: "string",
|
|
1200
|
-
enum: [
|
|
1201
|
-
"foreignKey",
|
|
1202
|
-
"crossPackageRef",
|
|
1203
|
-
"oneToMany",
|
|
1204
|
-
"manyToMany"
|
|
1205
|
-
]
|
|
1206
|
-
},
|
|
1207
|
-
related: { type: "string" },
|
|
1208
|
-
required: { type: "boolean" },
|
|
1209
|
-
nullable: { type: "boolean" },
|
|
1210
|
-
description: { type: "string" },
|
|
1211
|
-
validate: { type: "boolean" },
|
|
1212
|
-
foreignKey: { type: "string" },
|
|
1213
|
-
through: { type: "string" },
|
|
1214
|
-
sourceKey: { type: "string" },
|
|
1215
|
-
targetKey: { type: "string" }
|
|
1216
|
-
},
|
|
1217
|
-
required: [
|
|
1218
|
-
"name",
|
|
1219
|
-
"type",
|
|
1220
|
-
"related"
|
|
1221
|
-
]
|
|
1222
|
-
}
|
|
1223
|
-
},
|
|
1224
|
-
includeCompanionSnippets: {
|
|
1225
|
-
type: "boolean",
|
|
1226
|
-
default: false
|
|
1227
|
-
},
|
|
1228
|
-
includeApiConfig: {
|
|
1229
|
-
type: "boolean",
|
|
1230
|
-
default: true
|
|
1231
|
-
},
|
|
1232
|
-
includeMcpConfig: {
|
|
1233
|
-
type: "boolean",
|
|
1234
|
-
default: true
|
|
1235
|
-
},
|
|
1236
|
-
includeCliConfig: {
|
|
1237
|
-
type: "boolean",
|
|
1238
|
-
default: true
|
|
1239
|
-
}
|
|
1240
|
-
},
|
|
1241
|
-
required: ["className", "properties"]
|
|
1242
|
-
}
|
|
1243
|
-
},
|
|
1244
|
-
{
|
|
1245
|
-
name: "introspect-project",
|
|
1246
|
-
description: "Scan a directory for SMRT objects. Returns a compact summary by default; pass detail: \"full\" for field, schema, and method details.",
|
|
1247
|
-
inputSchema: {
|
|
1248
|
-
type: "object",
|
|
1249
|
-
properties: {
|
|
1250
|
-
directory: {
|
|
1251
|
-
type: "string",
|
|
1252
|
-
description: "Project directory (default: cwd)"
|
|
1253
|
-
},
|
|
1254
|
-
manifestPath: {
|
|
1255
|
-
type: "string",
|
|
1256
|
-
description: "Optional manifest path. Defaults to .smrt/manifest.json, dist/manifest.json, then source scanning."
|
|
1257
|
-
},
|
|
1258
|
-
detail: {
|
|
1259
|
-
type: "string",
|
|
1260
|
-
enum: ["summary", "full"],
|
|
1261
|
-
default: "summary",
|
|
1262
|
-
description: "summary: one compact record per object. full: complete field/schema/method detail (large)."
|
|
1263
|
-
},
|
|
1264
|
-
maxChars: {
|
|
1265
|
-
type: "number",
|
|
1266
|
-
description: "Character budget for the `objects` payload. Objects past the budget are omitted and reported under `truncated`. Project metadata and diagnostics are always returned in full, so the serialized response is somewhat larger than this budget."
|
|
1267
|
-
},
|
|
1268
|
-
includeFields: {
|
|
1269
|
-
type: "boolean",
|
|
1270
|
-
description: "Include field details (detail: \"full\" only)"
|
|
1271
|
-
},
|
|
1272
|
-
includeRelationships: {
|
|
1273
|
-
type: "boolean",
|
|
1274
|
-
description: "Analyze relationships (detail: \"full\" only)"
|
|
1275
|
-
},
|
|
1276
|
-
includeMethods: {
|
|
1277
|
-
type: "boolean",
|
|
1278
|
-
description: "Include public method details (detail: \"full\" only)"
|
|
1279
|
-
}
|
|
1280
|
-
}
|
|
1281
|
-
}
|
|
1282
|
-
},
|
|
1283
|
-
{
|
|
1284
|
-
name: "review-smrt-project",
|
|
1285
|
-
description: "Advisory ecosystem alignment review for downstream SMRT projects",
|
|
1286
|
-
inputSchema: {
|
|
1287
|
-
type: "object",
|
|
1288
|
-
properties: {
|
|
1289
|
-
directory: {
|
|
1290
|
-
type: "string",
|
|
1291
|
-
description: "Project directory (default: cwd)"
|
|
1292
|
-
},
|
|
1293
|
-
rootDir: {
|
|
1294
|
-
type: "string",
|
|
1295
|
-
description: "Compatibility alias for directory"
|
|
1296
|
-
},
|
|
1297
|
-
includeSourceEvidence: {
|
|
1298
|
-
type: "boolean",
|
|
1299
|
-
description: "Include file and line evidence in findings",
|
|
1300
|
-
default: true
|
|
1301
|
-
},
|
|
1302
|
-
maxFindings: {
|
|
1303
|
-
type: "number",
|
|
1304
|
-
description: "Optional maximum number of findings to return"
|
|
1305
|
-
}
|
|
1306
|
-
}
|
|
1307
|
-
}
|
|
1308
|
-
},
|
|
1309
|
-
{
|
|
1310
|
-
name: "reflect-knowledge",
|
|
1311
|
-
description: "Report deterministic SMRT + HappyVertical SDK knowledge coverage and freshness",
|
|
1312
|
-
inputSchema: {
|
|
1313
|
-
type: "object",
|
|
1314
|
-
properties: { rootDir: {
|
|
1315
|
-
type: "string",
|
|
1316
|
-
description: "Project root directory (default: cwd)"
|
|
1317
|
-
} }
|
|
1318
|
-
}
|
|
1319
|
-
},
|
|
1320
|
-
{
|
|
1321
|
-
name: "reflect-domain-knowledge",
|
|
1322
|
-
description: "Report domain-scoped SMRT knowledge artifacts, SDK packages, and freshness",
|
|
1323
|
-
inputSchema: {
|
|
1324
|
-
type: "object",
|
|
1325
|
-
properties: {
|
|
1326
|
-
rootDir: { type: "string" },
|
|
1327
|
-
scope: {
|
|
1328
|
-
type: "string",
|
|
1329
|
-
enum: [
|
|
1330
|
-
"project",
|
|
1331
|
-
"local",
|
|
1332
|
-
"package",
|
|
1333
|
-
"sdk"
|
|
1334
|
-
],
|
|
1335
|
-
default: "project"
|
|
1336
|
-
},
|
|
1337
|
-
package: { type: "string" }
|
|
1338
|
-
}
|
|
1339
|
-
}
|
|
1340
|
-
},
|
|
1341
|
-
{
|
|
1342
|
-
name: "check-knowledge-freshness",
|
|
1343
|
-
description: "Run deterministic freshness checks for SMRT agent knowledge",
|
|
1344
|
-
inputSchema: {
|
|
1345
|
-
type: "object",
|
|
1346
|
-
properties: {
|
|
1347
|
-
rootDir: { type: "string" },
|
|
1348
|
-
changed: {
|
|
1349
|
-
type: "boolean",
|
|
1350
|
-
description: "Limit stale-pattern checks to changed files"
|
|
1351
|
-
},
|
|
1352
|
-
strict: {
|
|
1353
|
-
type: "boolean",
|
|
1354
|
-
description: "Treat stale-pattern findings as errors"
|
|
1355
|
-
}
|
|
1356
|
-
}
|
|
1357
|
-
}
|
|
1358
|
-
},
|
|
1359
|
-
{
|
|
1360
|
-
name: "check-domain-knowledge",
|
|
1361
|
-
description: "Run deterministic freshness checks for domain knowledge artifacts",
|
|
1362
|
-
inputSchema: {
|
|
1363
|
-
type: "object",
|
|
1364
|
-
properties: {
|
|
1365
|
-
rootDir: { type: "string" },
|
|
1366
|
-
changed: { type: "boolean" },
|
|
1367
|
-
strict: { type: "boolean" },
|
|
1368
|
-
scope: {
|
|
1369
|
-
type: "string",
|
|
1370
|
-
enum: [
|
|
1371
|
-
"project",
|
|
1372
|
-
"local",
|
|
1373
|
-
"package",
|
|
1374
|
-
"sdk"
|
|
1375
|
-
],
|
|
1376
|
-
default: "project"
|
|
1377
|
-
},
|
|
1378
|
-
package: { type: "string" }
|
|
1379
|
-
}
|
|
1380
|
-
}
|
|
1381
|
-
},
|
|
1382
|
-
{
|
|
1383
|
-
name: "build-review-context",
|
|
1384
|
-
description: "Build model-ready SMRT review context from changed files and optional focus text",
|
|
1385
|
-
inputSchema: {
|
|
1386
|
-
type: "object",
|
|
1387
|
-
properties: {
|
|
1388
|
-
rootDir: { type: "string" },
|
|
1389
|
-
changedFiles: {
|
|
1390
|
-
type: "array",
|
|
1391
|
-
items: { type: "string" }
|
|
1392
|
-
},
|
|
1393
|
-
focus: { type: "string" },
|
|
1394
|
-
documentation: { type: "string" },
|
|
1395
|
-
detail: {
|
|
1396
|
-
type: "string",
|
|
1397
|
-
enum: ["summary", "full"],
|
|
1398
|
-
default: "summary",
|
|
1399
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1400
|
-
}
|
|
1401
|
-
}
|
|
1402
|
-
}
|
|
1403
|
-
},
|
|
1404
|
-
{
|
|
1405
|
-
name: "build-domain-review-context",
|
|
1406
|
-
description: "Build domain-scoped model-ready SMRT review context and prompt bundle",
|
|
1407
|
-
inputSchema: {
|
|
1408
|
-
type: "object",
|
|
1409
|
-
properties: {
|
|
1410
|
-
rootDir: { type: "string" },
|
|
1411
|
-
changedFiles: {
|
|
1412
|
-
type: "array",
|
|
1413
|
-
items: { type: "string" }
|
|
1414
|
-
},
|
|
1415
|
-
focus: { type: "string" },
|
|
1416
|
-
documentation: { type: "string" },
|
|
1417
|
-
scope: {
|
|
1418
|
-
type: "string",
|
|
1419
|
-
enum: [
|
|
1420
|
-
"project",
|
|
1421
|
-
"local",
|
|
1422
|
-
"package",
|
|
1423
|
-
"sdk"
|
|
1424
|
-
],
|
|
1425
|
-
default: "project"
|
|
1426
|
-
},
|
|
1427
|
-
package: { type: "string" },
|
|
1428
|
-
detail: {
|
|
1429
|
-
type: "string",
|
|
1430
|
-
enum: ["summary", "full"],
|
|
1431
|
-
default: "summary",
|
|
1432
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1433
|
-
}
|
|
1434
|
-
}
|
|
1435
|
-
}
|
|
1436
|
-
},
|
|
1437
|
-
{
|
|
1438
|
-
name: "smrt-review",
|
|
1439
|
-
description: "Return deterministic review findings and/or a reusable model prompt bundle. For a formal downstream review, first call get-agent-skill with { \"name\": \"smrt-code-review\" } or load the smrt-code-review MCP prompt/resource.",
|
|
1440
|
-
inputSchema: {
|
|
1441
|
-
type: "object",
|
|
1442
|
-
properties: {
|
|
1443
|
-
rootDir: { type: "string" },
|
|
1444
|
-
changedFiles: {
|
|
1445
|
-
type: "array",
|
|
1446
|
-
items: { type: "string" }
|
|
1447
|
-
},
|
|
1448
|
-
focus: { type: "string" },
|
|
1449
|
-
documentation: { type: "string" },
|
|
1450
|
-
mode: {
|
|
1451
|
-
type: "string",
|
|
1452
|
-
enum: [
|
|
1453
|
-
"findings",
|
|
1454
|
-
"prompt-bundle",
|
|
1455
|
-
"both"
|
|
1456
|
-
],
|
|
1457
|
-
default: "both"
|
|
1458
|
-
},
|
|
1459
|
-
detail: {
|
|
1460
|
-
type: "string",
|
|
1461
|
-
enum: ["summary", "full"],
|
|
1462
|
-
default: "summary",
|
|
1463
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1464
|
-
}
|
|
1465
|
-
}
|
|
1466
|
-
}
|
|
1467
|
-
},
|
|
1468
|
-
{
|
|
1469
|
-
name: "build-architecture-context",
|
|
1470
|
-
description: "Build model-ready SMRT architecture context from an idea or documentation",
|
|
1471
|
-
inputSchema: {
|
|
1472
|
-
type: "object",
|
|
1473
|
-
properties: {
|
|
1474
|
-
rootDir: { type: "string" },
|
|
1475
|
-
idea: { type: "string" },
|
|
1476
|
-
documentation: { type: "string" },
|
|
1477
|
-
focus: { type: "string" },
|
|
1478
|
-
detail: {
|
|
1479
|
-
type: "string",
|
|
1480
|
-
enum: ["summary", "full"],
|
|
1481
|
-
default: "summary",
|
|
1482
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1483
|
-
}
|
|
1484
|
-
}
|
|
1485
|
-
}
|
|
1486
|
-
},
|
|
1487
|
-
{
|
|
1488
|
-
name: "build-domain-architecture-context",
|
|
1489
|
-
description: "Build domain-scoped model-ready SMRT architecture context and prompt bundle",
|
|
1490
|
-
inputSchema: {
|
|
1491
|
-
type: "object",
|
|
1492
|
-
properties: {
|
|
1493
|
-
rootDir: { type: "string" },
|
|
1494
|
-
idea: { type: "string" },
|
|
1495
|
-
documentation: { type: "string" },
|
|
1496
|
-
focus: { type: "string" },
|
|
1497
|
-
scope: {
|
|
1498
|
-
type: "string",
|
|
1499
|
-
enum: [
|
|
1500
|
-
"project",
|
|
1501
|
-
"local",
|
|
1502
|
-
"package",
|
|
1503
|
-
"sdk"
|
|
1504
|
-
],
|
|
1505
|
-
default: "project"
|
|
1506
|
-
},
|
|
1507
|
-
package: { type: "string" },
|
|
1508
|
-
detail: {
|
|
1509
|
-
type: "string",
|
|
1510
|
-
enum: ["summary", "full"],
|
|
1511
|
-
default: "summary",
|
|
1512
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1513
|
-
}
|
|
1514
|
-
}
|
|
1515
|
-
}
|
|
1516
|
-
},
|
|
1517
|
-
{
|
|
1518
|
-
name: "smrt-architecture",
|
|
1519
|
-
description: "Suggest SMRT and HappyVertical SDK packages and return an architecture prompt bundle",
|
|
1520
|
-
inputSchema: {
|
|
1521
|
-
type: "object",
|
|
1522
|
-
properties: {
|
|
1523
|
-
rootDir: { type: "string" },
|
|
1524
|
-
idea: { type: "string" },
|
|
1525
|
-
documentation: { type: "string" },
|
|
1526
|
-
focus: { type: "string" },
|
|
1527
|
-
detail: {
|
|
1528
|
-
type: "string",
|
|
1529
|
-
enum: ["summary", "full"],
|
|
1530
|
-
default: "summary",
|
|
1531
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1532
|
-
}
|
|
1533
|
-
}
|
|
1534
|
-
}
|
|
1535
|
-
},
|
|
1536
|
-
{
|
|
1537
|
-
name: "list-agent-skills",
|
|
1538
|
-
description: "List bundled harness-agnostic agent skills shipped with smrt-dev-mcp",
|
|
1539
|
-
inputSchema: {
|
|
1540
|
-
type: "object",
|
|
1541
|
-
properties: {}
|
|
1542
|
-
}
|
|
1543
|
-
},
|
|
1544
|
-
{
|
|
1545
|
-
name: "get-agent-skill",
|
|
1546
|
-
description: "Return a bundled harness-agnostic agent skill as Markdown plus optional references",
|
|
1547
|
-
inputSchema: {
|
|
1548
|
-
type: "object",
|
|
1549
|
-
properties: {
|
|
1550
|
-
name: {
|
|
1551
|
-
type: "string",
|
|
1552
|
-
enum: [REVIEW_SKILL_NAME],
|
|
1553
|
-
description: "Bundled agent skill name"
|
|
1554
|
-
},
|
|
1555
|
-
includeReferences: {
|
|
1556
|
-
type: "boolean",
|
|
1557
|
-
default: true,
|
|
1558
|
-
description: "Include referenced files with the skill bundle"
|
|
1559
|
-
}
|
|
1560
|
-
},
|
|
1561
|
-
required: ["name"]
|
|
1562
|
-
}
|
|
1563
|
-
}
|
|
1564
|
-
].map((tool) => ({
|
|
1565
|
-
...tool,
|
|
1566
|
-
inputSchema: {
|
|
1567
|
-
...tool.inputSchema,
|
|
1568
|
-
$schema: JSON_SCHEMA_2020_12
|
|
1569
|
-
},
|
|
1570
|
-
outputSchema: DEV_MCP_OUTPUT_SCHEMA
|
|
1571
|
-
})).sort((left, right) => compareToolNames(left.name, right.name));
|
|
1572
1077
|
function createServer() {
|
|
1573
1078
|
if (DEBUG) console.error(`[${SERVER_NAME}] Starting server v${SERVER_VERSION}`);
|
|
1574
1079
|
const server = new Server({
|
|
@@ -1625,7 +1130,7 @@ function createServer() {
|
|
|
1625
1130
|
},
|
|
1626
1131
|
{
|
|
1627
1132
|
name: "scope",
|
|
1628
|
-
description: "Knowledge scope: project, local, package, or
|
|
1133
|
+
description: "Knowledge scope: project, local, package, sdk, or installed.",
|
|
1629
1134
|
required: false
|
|
1630
1135
|
},
|
|
1631
1136
|
{
|
|
@@ -1662,7 +1167,7 @@ function createServer() {
|
|
|
1662
1167
|
},
|
|
1663
1168
|
{
|
|
1664
1169
|
name: "scope",
|
|
1665
|
-
description: "Knowledge scope: project, local, package, or
|
|
1170
|
+
description: "Knowledge scope: project, local, package, sdk, or installed.",
|
|
1666
1171
|
required: false
|
|
1667
1172
|
},
|
|
1668
1173
|
{
|
|
@@ -1676,7 +1181,7 @@ function createServer() {
|
|
|
1676
1181
|
});
|
|
1677
1182
|
server.setRequestHandler("prompts/get", async (request) => {
|
|
1678
1183
|
const { name } = request.params;
|
|
1679
|
-
if (name ===
|
|
1184
|
+
if (name === "smrt-code-review") return {
|
|
1680
1185
|
description: "Use this procedure when reviewing downstream SMRT projects.",
|
|
1681
1186
|
messages: [{
|
|
1682
1187
|
role: "user",
|
|
@@ -1947,7 +1452,8 @@ function sanitizeKnowledgeIndex(index) {
|
|
|
1947
1452
|
rootDir: ".",
|
|
1948
1453
|
packages,
|
|
1949
1454
|
smrtPackages: packages.filter((pkg) => pkg.kind === "smrt"),
|
|
1950
|
-
sdkPackages: packages.filter((pkg) => pkg.kind === "sdk")
|
|
1455
|
+
sdkPackages: packages.filter((pkg) => pkg.kind === "sdk"),
|
|
1456
|
+
installedPackages: packages.filter((pkg) => pkg.isInstalledDependency)
|
|
1951
1457
|
};
|
|
1952
1458
|
}
|
|
1953
1459
|
/**
|