@happyvertical/smrt-dev-mcp 0.40.63 → 0.40.65
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 +4 -0
- package/README.md +34 -13
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -501
- package/dist/index.js.map +1 -1
- 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-CCX7oQzQ.js → knowledge-A7-gIjW4.js} +678 -2
- 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-CCX7oQzQ.js.map +0 -1
package/AGENTS.md
CHANGED
|
@@ -23,6 +23,10 @@ deterministic SMRT ecosystem knowledge, and portable agent workflows.
|
|
|
23
23
|
| `list-agent-skills` | Lists bundled harness-agnostic agent skills |
|
|
24
24
|
| `get-agent-skill` | Returns a bundled agent skill as Markdown plus optional references |
|
|
25
25
|
|
|
26
|
+
`pnpm knowledge:check --strict --format markdown` compares this catalog and the
|
|
27
|
+
README parameter tables to the exported `TOOLS` definitions. Add or change a
|
|
28
|
+
tool schema and its authored documentation in the same commit.
|
|
29
|
+
|
|
26
30
|
## Knowledge Discovery (#2143)
|
|
27
31
|
|
|
28
32
|
Discovery reads the workspace globs instead of assuming `<root>/packages`:
|
package/README.md
CHANGED
|
@@ -242,14 +242,14 @@ Generate a complete s-m-r-t class with `@smrt()` decorator, fields, and imports.
|
|
|
242
242
|
| Parameter | Type | Required | Description |
|
|
243
243
|
|-----------|------|----------|-------------|
|
|
244
244
|
| `className` | `string` | Yes | Class name (PascalCase) |
|
|
245
|
-
| `properties` | `
|
|
246
|
-
| `baseClass` | `
|
|
247
|
-
| `template` | `
|
|
245
|
+
| `properties` | `object[]` | Yes | Property definitions (`name`, `type`, `required?`, `nullable?`, `description?`, `defaultValue?`) |
|
|
246
|
+
| `baseClass` | `'SmrtObject' \| 'SmrtCollection'` | No | `'SmrtObject'` (default) or `'SmrtCollection'` |
|
|
247
|
+
| `template` | `'basic' \| 'global-catalog' \| 'optional-catalog' \| 'tenant-project-object' \| 'tenant-event-log-object' \| 'cross-package-reference'` | No | Generation template (default: `basic`) |
|
|
248
248
|
| `tableName` | `string` | No | Explicit `@smrt({ tableName })` value |
|
|
249
249
|
| `conflictColumns` | `string[]` | No | Explicit upsert natural key columns |
|
|
250
|
-
| `tenantScoped` | `boolean
|
|
250
|
+
| `tenantScoped` | `boolean \| object` | No | Add `@TenantScoped(...)`; object supports `mode`, `field`, and bypass/filter options |
|
|
251
251
|
| `includeTenantIdField` | `boolean` | No | Emit a matching `@tenantId()` field |
|
|
252
|
-
| `relationships` | `
|
|
252
|
+
| `relationships` | `object[]` | No | Relationship definitions for `foreignKey`, `crossPackageRef`, `oneToMany`, or `manyToMany` |
|
|
253
253
|
| `includeCompanionSnippets` | `boolean` | No | Append package wiring notes |
|
|
254
254
|
| `includeApiConfig` | `boolean` | No | Include REST API config (default: true) |
|
|
255
255
|
| `includeMcpConfig` | `boolean` | No | Include MCP config (default: true) |
|
|
@@ -307,7 +307,7 @@ coverage, relationship-v2 counts, and freshness status.
|
|
|
307
307
|
| Parameter | Type | Required | Description |
|
|
308
308
|
|-----------|------|----------|-------------|
|
|
309
309
|
| `rootDir` | `string` | No | Project root directory (default: cwd) |
|
|
310
|
-
| `scope` | `
|
|
310
|
+
| `scope` | `'project' \| 'local' \| 'package' \| 'sdk' \| 'installed'` | No | Knowledge source scope (default: `project`) |
|
|
311
311
|
| `package` | `string` | No | Package name or short name to focus |
|
|
312
312
|
|
|
313
313
|
### `check-knowledge-freshness`
|
|
@@ -330,7 +330,7 @@ Alias over the deterministic checker that emphasizes downstream
|
|
|
330
330
|
| `rootDir` | `string` | No | Project root directory (default: cwd) |
|
|
331
331
|
| `changed` | `boolean` | No | Limit stale-pattern checks to changed files |
|
|
332
332
|
| `strict` | `boolean` | No | Treat stale-pattern findings as errors |
|
|
333
|
-
| `scope` | `
|
|
333
|
+
| `scope` | `'project' \| 'local' \| 'package' \| 'sdk' \| 'installed'` | No | Knowledge source scope (default: `project`) |
|
|
334
334
|
| `package` | `string` | No | Package name or short name to focus |
|
|
335
335
|
|
|
336
336
|
### `build-review-context`
|
|
@@ -344,11 +344,21 @@ then return a model-ready prompt bundle.
|
|
|
344
344
|
| `changedFiles` | `string[]` | No | Files to route to package experts |
|
|
345
345
|
| `focus` | `string` | No | Review focus or concern |
|
|
346
346
|
| `documentation` | `string` | No | Additional docs or notes to include |
|
|
347
|
+
| `detail` | `'summary' \| 'full'` | No | Default `summary`; `full` embeds authored docs and full package records |
|
|
347
348
|
|
|
348
349
|
### `build-domain-review-context`
|
|
349
350
|
|
|
350
|
-
Domain-scoped alias for `build-review-context`.
|
|
351
|
-
|
|
351
|
+
Domain-scoped alias for `build-review-context`.
|
|
352
|
+
|
|
353
|
+
| Parameter | Type | Required | Description |
|
|
354
|
+
|-----------|------|----------|-------------|
|
|
355
|
+
| `rootDir` | `string` | No | Project root directory (default: cwd) |
|
|
356
|
+
| `changedFiles` | `string[]` | No | Files to route to package experts |
|
|
357
|
+
| `focus` | `string` | No | Review focus or concern |
|
|
358
|
+
| `documentation` | `string` | No | Additional docs or notes to include |
|
|
359
|
+
| `scope` | `'project' \| 'local' \| 'package' \| 'sdk' \| 'installed'` | No | Knowledge source scope (default: `project`) |
|
|
360
|
+
| `package` | `string` | No | Package name or short name to focus |
|
|
361
|
+
| `detail` | `'summary' \| 'full'` | No | Default `summary`; `full` embeds authored docs and full package records |
|
|
352
362
|
|
|
353
363
|
### `smrt-review`
|
|
354
364
|
|
|
@@ -360,7 +370,8 @@ Return deterministic review findings, a prompt bundle, or both.
|
|
|
360
370
|
| `changedFiles` | `string[]` | No | Files to route to package experts |
|
|
361
371
|
| `focus` | `string` | No | Review focus or concern |
|
|
362
372
|
| `documentation` | `string` | No | Additional docs or notes to include |
|
|
363
|
-
| `mode` | `
|
|
373
|
+
| `mode` | `'findings' \| 'prompt-bundle' \| 'both'` | No | Response mode (default: `both`) |
|
|
374
|
+
| `detail` | `'summary' \| 'full'` | No | Default `summary`; `full` embeds authored docs and full package records |
|
|
364
375
|
|
|
365
376
|
### `build-architecture-context`
|
|
366
377
|
|
|
@@ -373,11 +384,21 @@ then return a model-ready architecture prompt bundle.
|
|
|
373
384
|
| `idea` | `string` | No | Product or implementation idea |
|
|
374
385
|
| `documentation` | `string` | No | Existing docs or requirements |
|
|
375
386
|
| `focus` | `string` | No | Architecture concern to prioritize |
|
|
387
|
+
| `detail` | `'summary' \| 'full'` | No | Default `summary`; `full` embeds authored docs and full package records |
|
|
376
388
|
|
|
377
389
|
### `build-domain-architecture-context`
|
|
378
390
|
|
|
379
|
-
Domain-scoped alias for `build-architecture-context`.
|
|
380
|
-
|
|
391
|
+
Domain-scoped alias for `build-architecture-context`.
|
|
392
|
+
|
|
393
|
+
| Parameter | Type | Required | Description |
|
|
394
|
+
|-----------|------|----------|-------------|
|
|
395
|
+
| `rootDir` | `string` | No | Project root directory (default: cwd) |
|
|
396
|
+
| `idea` | `string` | No | Product or implementation idea |
|
|
397
|
+
| `documentation` | `string` | No | Existing docs or requirements |
|
|
398
|
+
| `focus` | `string` | No | Architecture concern to prioritize |
|
|
399
|
+
| `scope` | `'project' \| 'local' \| 'package' \| 'sdk' \| 'installed'` | No | Knowledge source scope (default: `project`) |
|
|
400
|
+
| `package` | `string` | No | Package name or short name to focus |
|
|
401
|
+
| `detail` | `'summary' \| 'full'` | No | Default `summary`; `full` embeds authored docs and full package records |
|
|
381
402
|
|
|
382
403
|
### `smrt-architecture`
|
|
383
404
|
|
|
@@ -403,7 +424,7 @@ Return a bundled agent skill as Markdown, with optional referenced files.
|
|
|
403
424
|
|
|
404
425
|
| Parameter | Type | Required | Description |
|
|
405
426
|
|-----------|------|----------|-------------|
|
|
406
|
-
| `name` | `
|
|
427
|
+
| `name` | `'smrt-code-review'` | Yes | Skill name |
|
|
407
428
|
| `includeReferences` | `boolean` | No | Include referenced files (default: true) |
|
|
408
429
|
|
|
409
430
|
## MCP Resources And Prompts
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Server
|
|
1
|
+
import { Server } from '@modelcontextprotocol/server';
|
|
2
|
+
export { TOOLS } from './tool-catalog.js';
|
|
2
3
|
export declare const SERVER_VERSION: string;
|
|
3
|
-
export declare const TOOLS: Tool[];
|
|
4
4
|
export declare function createServer(): Server;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAGL,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAGL,MAAM,EACP,MAAM,8BAA8B,CAAC;AAqBtC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,eAAO,MAAM,cAAc,QAAuB,CAAC;AAuBnD,wBAAgB,YAAY,IAAI,MAAM,CAkfrC"}
|
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,504 +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
|
-
"installed"
|
|
1335
|
-
],
|
|
1336
|
-
default: "project"
|
|
1337
|
-
},
|
|
1338
|
-
package: { type: "string" }
|
|
1339
|
-
}
|
|
1340
|
-
}
|
|
1341
|
-
},
|
|
1342
|
-
{
|
|
1343
|
-
name: "check-knowledge-freshness",
|
|
1344
|
-
description: "Run deterministic freshness checks for SMRT agent knowledge",
|
|
1345
|
-
inputSchema: {
|
|
1346
|
-
type: "object",
|
|
1347
|
-
properties: {
|
|
1348
|
-
rootDir: { type: "string" },
|
|
1349
|
-
changed: {
|
|
1350
|
-
type: "boolean",
|
|
1351
|
-
description: "Limit stale-pattern checks to changed files"
|
|
1352
|
-
},
|
|
1353
|
-
strict: {
|
|
1354
|
-
type: "boolean",
|
|
1355
|
-
description: "Treat stale-pattern findings as errors"
|
|
1356
|
-
}
|
|
1357
|
-
}
|
|
1358
|
-
}
|
|
1359
|
-
},
|
|
1360
|
-
{
|
|
1361
|
-
name: "check-domain-knowledge",
|
|
1362
|
-
description: "Run deterministic freshness checks for domain knowledge artifacts",
|
|
1363
|
-
inputSchema: {
|
|
1364
|
-
type: "object",
|
|
1365
|
-
properties: {
|
|
1366
|
-
rootDir: { type: "string" },
|
|
1367
|
-
changed: { type: "boolean" },
|
|
1368
|
-
strict: { type: "boolean" },
|
|
1369
|
-
scope: {
|
|
1370
|
-
type: "string",
|
|
1371
|
-
enum: [
|
|
1372
|
-
"project",
|
|
1373
|
-
"local",
|
|
1374
|
-
"package",
|
|
1375
|
-
"sdk",
|
|
1376
|
-
"installed"
|
|
1377
|
-
],
|
|
1378
|
-
default: "project"
|
|
1379
|
-
},
|
|
1380
|
-
package: { type: "string" }
|
|
1381
|
-
}
|
|
1382
|
-
}
|
|
1383
|
-
},
|
|
1384
|
-
{
|
|
1385
|
-
name: "build-review-context",
|
|
1386
|
-
description: "Build model-ready SMRT review context from changed files and optional focus text",
|
|
1387
|
-
inputSchema: {
|
|
1388
|
-
type: "object",
|
|
1389
|
-
properties: {
|
|
1390
|
-
rootDir: { type: "string" },
|
|
1391
|
-
changedFiles: {
|
|
1392
|
-
type: "array",
|
|
1393
|
-
items: { type: "string" }
|
|
1394
|
-
},
|
|
1395
|
-
focus: { type: "string" },
|
|
1396
|
-
documentation: { type: "string" },
|
|
1397
|
-
detail: {
|
|
1398
|
-
type: "string",
|
|
1399
|
-
enum: ["summary", "full"],
|
|
1400
|
-
default: "summary",
|
|
1401
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1402
|
-
}
|
|
1403
|
-
}
|
|
1404
|
-
}
|
|
1405
|
-
},
|
|
1406
|
-
{
|
|
1407
|
-
name: "build-domain-review-context",
|
|
1408
|
-
description: "Build domain-scoped model-ready SMRT review context and prompt bundle",
|
|
1409
|
-
inputSchema: {
|
|
1410
|
-
type: "object",
|
|
1411
|
-
properties: {
|
|
1412
|
-
rootDir: { type: "string" },
|
|
1413
|
-
changedFiles: {
|
|
1414
|
-
type: "array",
|
|
1415
|
-
items: { type: "string" }
|
|
1416
|
-
},
|
|
1417
|
-
focus: { type: "string" },
|
|
1418
|
-
documentation: { type: "string" },
|
|
1419
|
-
scope: {
|
|
1420
|
-
type: "string",
|
|
1421
|
-
enum: [
|
|
1422
|
-
"project",
|
|
1423
|
-
"local",
|
|
1424
|
-
"package",
|
|
1425
|
-
"sdk",
|
|
1426
|
-
"installed"
|
|
1427
|
-
],
|
|
1428
|
-
default: "project"
|
|
1429
|
-
},
|
|
1430
|
-
package: { type: "string" },
|
|
1431
|
-
detail: {
|
|
1432
|
-
type: "string",
|
|
1433
|
-
enum: ["summary", "full"],
|
|
1434
|
-
default: "summary",
|
|
1435
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1436
|
-
}
|
|
1437
|
-
}
|
|
1438
|
-
}
|
|
1439
|
-
},
|
|
1440
|
-
{
|
|
1441
|
-
name: "smrt-review",
|
|
1442
|
-
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.",
|
|
1443
|
-
inputSchema: {
|
|
1444
|
-
type: "object",
|
|
1445
|
-
properties: {
|
|
1446
|
-
rootDir: { type: "string" },
|
|
1447
|
-
changedFiles: {
|
|
1448
|
-
type: "array",
|
|
1449
|
-
items: { type: "string" }
|
|
1450
|
-
},
|
|
1451
|
-
focus: { type: "string" },
|
|
1452
|
-
documentation: { type: "string" },
|
|
1453
|
-
mode: {
|
|
1454
|
-
type: "string",
|
|
1455
|
-
enum: [
|
|
1456
|
-
"findings",
|
|
1457
|
-
"prompt-bundle",
|
|
1458
|
-
"both"
|
|
1459
|
-
],
|
|
1460
|
-
default: "both"
|
|
1461
|
-
},
|
|
1462
|
-
detail: {
|
|
1463
|
-
type: "string",
|
|
1464
|
-
enum: ["summary", "full"],
|
|
1465
|
-
default: "summary",
|
|
1466
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1467
|
-
}
|
|
1468
|
-
}
|
|
1469
|
-
}
|
|
1470
|
-
},
|
|
1471
|
-
{
|
|
1472
|
-
name: "build-architecture-context",
|
|
1473
|
-
description: "Build model-ready SMRT architecture context from an idea or documentation",
|
|
1474
|
-
inputSchema: {
|
|
1475
|
-
type: "object",
|
|
1476
|
-
properties: {
|
|
1477
|
-
rootDir: { type: "string" },
|
|
1478
|
-
idea: { type: "string" },
|
|
1479
|
-
documentation: { type: "string" },
|
|
1480
|
-
focus: { type: "string" },
|
|
1481
|
-
detail: {
|
|
1482
|
-
type: "string",
|
|
1483
|
-
enum: ["summary", "full"],
|
|
1484
|
-
default: "summary",
|
|
1485
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1486
|
-
}
|
|
1487
|
-
}
|
|
1488
|
-
}
|
|
1489
|
-
},
|
|
1490
|
-
{
|
|
1491
|
-
name: "build-domain-architecture-context",
|
|
1492
|
-
description: "Build domain-scoped model-ready SMRT architecture context and prompt bundle",
|
|
1493
|
-
inputSchema: {
|
|
1494
|
-
type: "object",
|
|
1495
|
-
properties: {
|
|
1496
|
-
rootDir: { type: "string" },
|
|
1497
|
-
idea: { type: "string" },
|
|
1498
|
-
documentation: { type: "string" },
|
|
1499
|
-
focus: { type: "string" },
|
|
1500
|
-
scope: {
|
|
1501
|
-
type: "string",
|
|
1502
|
-
enum: [
|
|
1503
|
-
"project",
|
|
1504
|
-
"local",
|
|
1505
|
-
"package",
|
|
1506
|
-
"sdk",
|
|
1507
|
-
"installed"
|
|
1508
|
-
],
|
|
1509
|
-
default: "project"
|
|
1510
|
-
},
|
|
1511
|
-
package: { type: "string" },
|
|
1512
|
-
detail: {
|
|
1513
|
-
type: "string",
|
|
1514
|
-
enum: ["summary", "full"],
|
|
1515
|
-
default: "summary",
|
|
1516
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1517
|
-
}
|
|
1518
|
-
}
|
|
1519
|
-
}
|
|
1520
|
-
},
|
|
1521
|
-
{
|
|
1522
|
-
name: "smrt-architecture",
|
|
1523
|
-
description: "Suggest SMRT and HappyVertical SDK packages and return an architecture prompt bundle",
|
|
1524
|
-
inputSchema: {
|
|
1525
|
-
type: "object",
|
|
1526
|
-
properties: {
|
|
1527
|
-
rootDir: { type: "string" },
|
|
1528
|
-
idea: { type: "string" },
|
|
1529
|
-
documentation: { type: "string" },
|
|
1530
|
-
focus: { type: "string" },
|
|
1531
|
-
detail: {
|
|
1532
|
-
type: "string",
|
|
1533
|
-
enum: ["summary", "full"],
|
|
1534
|
-
default: "summary",
|
|
1535
|
-
description: "summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed them."
|
|
1536
|
-
}
|
|
1537
|
-
}
|
|
1538
|
-
}
|
|
1539
|
-
},
|
|
1540
|
-
{
|
|
1541
|
-
name: "list-agent-skills",
|
|
1542
|
-
description: "List bundled harness-agnostic agent skills shipped with smrt-dev-mcp",
|
|
1543
|
-
inputSchema: {
|
|
1544
|
-
type: "object",
|
|
1545
|
-
properties: {}
|
|
1546
|
-
}
|
|
1547
|
-
},
|
|
1548
|
-
{
|
|
1549
|
-
name: "get-agent-skill",
|
|
1550
|
-
description: "Return a bundled harness-agnostic agent skill as Markdown plus optional references",
|
|
1551
|
-
inputSchema: {
|
|
1552
|
-
type: "object",
|
|
1553
|
-
properties: {
|
|
1554
|
-
name: {
|
|
1555
|
-
type: "string",
|
|
1556
|
-
enum: [REVIEW_SKILL_NAME],
|
|
1557
|
-
description: "Bundled agent skill name"
|
|
1558
|
-
},
|
|
1559
|
-
includeReferences: {
|
|
1560
|
-
type: "boolean",
|
|
1561
|
-
default: true,
|
|
1562
|
-
description: "Include referenced files with the skill bundle"
|
|
1563
|
-
}
|
|
1564
|
-
},
|
|
1565
|
-
required: ["name"]
|
|
1566
|
-
}
|
|
1567
|
-
}
|
|
1568
|
-
].map((tool) => ({
|
|
1569
|
-
...tool,
|
|
1570
|
-
inputSchema: {
|
|
1571
|
-
...tool.inputSchema,
|
|
1572
|
-
$schema: JSON_SCHEMA_2020_12
|
|
1573
|
-
},
|
|
1574
|
-
outputSchema: DEV_MCP_OUTPUT_SCHEMA
|
|
1575
|
-
})).sort((left, right) => compareToolNames(left.name, right.name));
|
|
1576
1077
|
function createServer() {
|
|
1577
1078
|
if (DEBUG) console.error(`[${SERVER_NAME}] Starting server v${SERVER_VERSION}`);
|
|
1578
1079
|
const server = new Server({
|
|
@@ -1680,7 +1181,7 @@ function createServer() {
|
|
|
1680
1181
|
});
|
|
1681
1182
|
server.setRequestHandler("prompts/get", async (request) => {
|
|
1682
1183
|
const { name } = request.params;
|
|
1683
|
-
if (name ===
|
|
1184
|
+
if (name === "smrt-code-review") return {
|
|
1684
1185
|
description: "Use this procedure when reviewing downstream SMRT projects.",
|
|
1685
1186
|
messages: [{
|
|
1686
1187
|
role: "user",
|