@skeletiq/mcp 0.5.0 → 0.6.1

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.
Files changed (2) hide show
  1. package/dist/index.js +19 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import { serveStdio } from "@modelcontextprotocol/server/stdio";
5
5
 
6
6
  // src/config.ts
7
7
  var SERVER_NAME = "skeletiq";
8
- var SERVER_VERSION = "0.5.0";
8
+ var SERVER_VERSION = "0.6.1";
9
9
  var AGENT_SCHEMA_VERSION = 2;
10
10
  function schemaNote(serverVersion) {
11
11
  if (serverVersion === void 0 || serverVersion <= AGENT_SCHEMA_VERSION) return null;
@@ -307,7 +307,13 @@ var ComponentSchema = z.looseObject({
307
307
  /** Ids of the platform obligations this part meets. */
308
308
  satisfies: z.array(z.string()).nullish(),
309
309
  /** Cross-cutting settings realized on the component (encryption, backup, rate limit, …). */
310
- policies: z.record(z.string(), z.unknown()).nullish()
310
+ policies: z.record(z.string(), z.unknown()).nullish(),
311
+ /**
312
+ * `existing` (the user already runs it) | `retiring` (this design replaces it). Absent means
313
+ * `new`: the API never sends `new`, and no design stored before the field existed carries it.
314
+ * Left as a string: a value this package has not seen is still shown.
315
+ */
316
+ lifecycle: z.string().nullish()
311
317
  });
312
318
  var ConnectionSchema = z.looseObject({
313
319
  id: z.string().nullable().optional(),
@@ -335,6 +341,7 @@ var GroundedDecisionSchema = z.looseObject({
335
341
  source_ids: z.array(z.string()).nullable().optional(),
336
342
  requirement_ids: z.array(z.string()).nullable().optional(),
337
343
  assumption: z.boolean().optional(),
344
+ answered: z.boolean().optional(),
338
345
  confidence: z.string().optional()
339
346
  });
340
347
  var ArchitectureJsonSchema = z.looseObject({
@@ -392,6 +399,9 @@ var RequirementLedgerRowSchema = z.looseObject({
392
399
  cited_by_components: z.array(z.string()).nullable().optional(),
393
400
  /** Indices into `architecture_json.grounded_decisions`, the raw array — blanks are not compacted. */
394
401
  cited_by_decisions: z.array(z.number()).nullable().optional(),
402
+ /** Ids of requirements merged into this one as near-duplicates. A component's `requirement_ids`
403
+ * may still name one of them, and it means this row. Absent from older APIs. */
404
+ aliases: z.array(z.string()).nullable().optional(),
395
405
  /** `stated` in the person's own words, `proposed` by the analysis, or `accepted` — a proposal a
396
406
  * person confirmed. Absent from older APIs. Left as a string: a value this package has not seen
397
407
  * must not stop the whole design from parsing. */
@@ -1163,6 +1173,8 @@ var output = z3.object({
1163
1173
  partial: refs,
1164
1174
  elsewhere: refs,
1165
1175
  unknown_ids: z3.array(z3.object({ id: z3.string(), suggestions: refs })),
1176
+ extra_components: z3.array(z3.looseObject({ name: z3.string() })),
1177
+ extra_connections: z3.array(z3.looseObject({ source: z3.string(), target: z3.string() })),
1166
1178
  counts: z3.record(z3.string(), z3.number()),
1167
1179
  evidence_checked: z3.boolean(),
1168
1180
  unverified: refs,
@@ -1226,6 +1238,8 @@ function registerCheckDrift(server, client, resolver) {
1226
1238
  id: entry.id,
1227
1239
  suggestions: entry.suggestions ?? []
1228
1240
  })),
1241
+ extra_components: report.extra_components,
1242
+ extra_connections: report.extra_connections,
1229
1243
  counts: report.counts,
1230
1244
  evidence_checked: report.evidence_checked === true,
1231
1245
  unverified: report.unverified ?? [],
@@ -2698,7 +2712,9 @@ function requirementLine(row) {
2698
2712
  const by = (row.checked_by ?? "").trim();
2699
2713
  const because = reason ? ` \u2014 ${reason}${by ? ` (checked by ${by})` : ""}` : by ? ` \u2014 checked by ${by}` : "";
2700
2714
  const proposed = row.origin === "proposed" ? "[proposed] " : "";
2701
- return `- ${row.id}${label} ${proposed}${text || "(no text recorded for this requirement)"}${because}`;
2715
+ const aliases = (row.aliases ?? []).map((alias) => alias.replace(/\s+/g, " ").trim()).filter(Boolean);
2716
+ const also = aliases.length > 0 ? ` (also ${aliases.join(", ")})` : "";
2717
+ return `- ${row.id}${also}${label} ${proposed}${text || "(no text recorded for this requirement)"}${because}`;
2702
2718
  }
2703
2719
  function settledAnswer(gap) {
2704
2720
  const note = (gap.note ?? "").trim();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skeletiq/mcp",
3
- "version": "0.5.0",
3
+ "version": "0.6.1",
4
4
  "description": "Design in SkeletIQ, build with your coding agent. MCP server for the SkeletIQ architecture platform.",
5
5
  "license": "MIT",
6
6
  "author": "Sabhahith Works Private Limited",