@inharness-ai/claude4spec 1.0.16 → 1.0.18

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 (137) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/bin/c4s/commands/tagged-list-mixed.js +2 -0
  3. package/dist/bin/c4s/commands/tagged-list-mixed.js.map +1 -1
  4. package/dist/client/assets/{arc-DrA6qHTw.js → arc-BoIjQ4Rl.js} +1 -1
  5. package/dist/client/assets/{architectureDiagram-3BPJPVTR-TEnwTtVX.js → architectureDiagram-3BPJPVTR-BxBVRaEg.js} +1 -1
  6. package/dist/client/assets/{blockDiagram-GPEHLZMM-txRnQm5w.js → blockDiagram-GPEHLZMM-CUZNbllz.js} +1 -1
  7. package/dist/client/assets/{c4Diagram-AAUBKEIU-ad8X3Q8n.js → c4Diagram-AAUBKEIU-CvuTKwEz.js} +1 -1
  8. package/dist/client/assets/channel-Ba45UACg.js +1 -0
  9. package/dist/client/assets/{chunk-2J33WTMH-Cp08Xa7f.js → chunk-2J33WTMH-CEO4c2pf.js} +1 -1
  10. package/dist/client/assets/{chunk-4BX2VUAB-Dc_0On6j.js → chunk-4BX2VUAB-Bu8DCHu0.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-8d1qQ5z6.js → chunk-55IACEB6-DIN8FXXB.js} +1 -1
  12. package/dist/client/assets/{chunk-727SXJPM-TZenviWx.js → chunk-727SXJPM-DArSpufF.js} +1 -1
  13. package/dist/client/assets/{chunk-AQP2D5EJ-DKRRWy-J.js → chunk-AQP2D5EJ-DvyQ3boK.js} +1 -1
  14. package/dist/client/assets/{chunk-FMBD7UC4-DLEErJWK.js → chunk-FMBD7UC4-DzYhHpnC.js} +1 -1
  15. package/dist/client/assets/{chunk-ND2GUHAM-pKGgwz_0.js → chunk-ND2GUHAM-DocECmh1.js} +1 -1
  16. package/dist/client/assets/{chunk-QZHKN3VN-DVcNz8ng.js → chunk-QZHKN3VN-cUsgOLYm.js} +1 -1
  17. package/dist/client/assets/classDiagram-4FO5ZUOK-DigWu50-.js +1 -0
  18. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DigWu50-.js +1 -0
  19. package/dist/client/assets/{cose-bilkent-S5V4N54A-DZejbxEG.js → cose-bilkent-S5V4N54A-BXlU_dXh.js} +1 -1
  20. package/dist/client/assets/{dagre-BM42HDAG-DrPrkFcW.js → dagre-BM42HDAG-CmrHrBPK.js} +1 -1
  21. package/dist/client/assets/{diagram-2AECGRRQ-Dpn8TJa2.js → diagram-2AECGRRQ-CV4Tc8wQ.js} +1 -1
  22. package/dist/client/assets/{diagram-5GNKFQAL-BxkzEc_t.js → diagram-5GNKFQAL-BiBsPCGc.js} +1 -1
  23. package/dist/client/assets/{diagram-KO2AKTUF-KG0o4LQ7.js → diagram-KO2AKTUF-DA09S_op.js} +1 -1
  24. package/dist/client/assets/{diagram-LMA3HP47-CJ-AjQPt.js → diagram-LMA3HP47-DBaod99I.js} +1 -1
  25. package/dist/client/assets/{diagram-OG6HWLK6-D_FG9cDJ.js → diagram-OG6HWLK6-ClJXH4o0.js} +1 -1
  26. package/dist/client/assets/{erDiagram-TEJ5UH35-DllhUlzY.js → erDiagram-TEJ5UH35-9ic-AAly.js} +1 -1
  27. package/dist/client/assets/{flowDiagram-I6XJVG4X-Bg3OotXu.js → flowDiagram-I6XJVG4X-8UWNEpWY.js} +1 -1
  28. package/dist/client/assets/{ganttDiagram-6RSMTGT7-BUpUL2Cj.js → ganttDiagram-6RSMTGT7-ZMUkzsKr.js} +1 -1
  29. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DMRhyWth.js → gitGraphDiagram-PVQCEYII-5MgsfBQ-.js} +1 -1
  30. package/dist/client/assets/{index-BB2RmhGR.js → index-B3XLrPs9.js} +1 -1
  31. package/dist/client/assets/{index-BXzOTCgN.css → index-BKuHIaMg.css} +1 -1
  32. package/dist/client/assets/index-BSPNo0Xa.js +795 -0
  33. package/dist/client/assets/{index-Daewu-VD.js → index-D7DH-SO5.js} +1 -1
  34. package/dist/client/assets/{infoDiagram-5YYISTIA-Bq9D64Ar.js → infoDiagram-5YYISTIA-DnoyGZzF.js} +1 -1
  35. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DIaKHHF-.js → ishikawaDiagram-YF4QCWOH-DXzuF94t.js} +1 -1
  36. package/dist/client/assets/{journeyDiagram-JHISSGLW-gQWGLTeZ.js → journeyDiagram-JHISSGLW-AEPglDXi.js} +1 -1
  37. package/dist/client/assets/{kanban-definition-UN3LZRKU-vRgZ5RjE.js → kanban-definition-UN3LZRKU-D0-kFv2f.js} +1 -1
  38. package/dist/client/assets/{linear-B4a11szP.js → linear-CZwFXsxu.js} +1 -1
  39. package/dist/client/assets/{mermaid.core-JhUbsJFB.js → mermaid.core-BikmxM36.js} +4 -4
  40. package/dist/client/assets/{mindmap-definition-RKZ34NQL-ZH-Oz_D-.js → mindmap-definition-RKZ34NQL-C95lTdDB.js} +1 -1
  41. package/dist/client/assets/{pieDiagram-4H26LBE5-6rpNrJR6.js → pieDiagram-4H26LBE5-CMeXZFX8.js} +1 -1
  42. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DpTKtxEM.js → quadrantDiagram-W4KKPZXB-D1dG1F2s.js} +1 -1
  43. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DpDvZkrK.js → requirementDiagram-4Y6WPE33-RPNqJRNK.js} +1 -1
  44. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-KKjWCTYP.js → sankeyDiagram-5OEKKPKP-DQ4EB8Xb.js} +1 -1
  45. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BCmXos1U.js → sequenceDiagram-3UESZ5HK-Dn-VJOlP.js} +1 -1
  46. package/dist/client/assets/{stateDiagram-AJRCARHV-Xq7jqpMj.js → stateDiagram-AJRCARHV-CCpprZJO.js} +1 -1
  47. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DZMO7v7d.js +1 -0
  48. package/dist/client/assets/{timeline-definition-PNZ67QCA-CMmq8p5q.js → timeline-definition-PNZ67QCA-h0cUr7kp.js} +1 -1
  49. package/dist/client/assets/{vennDiagram-CIIHVFJN-DgK-w2Jv.js → vennDiagram-CIIHVFJN-BTZzKsPH.js} +1 -1
  50. package/dist/client/assets/{wardley-L42UT6IY-C5CwlFHh.js → wardley-L42UT6IY-D1eOaFAH.js} +1 -1
  51. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-D47CtDSc.js → wardleyDiagram-YWT4CUSO-wsnKkjjR.js} +1 -1
  52. package/dist/client/assets/{xychartDiagram-2RQKCTM6-C1M_xTVv.js → xychartDiagram-2RQKCTM6-BCebuOGO.js} +1 -1
  53. package/dist/client/index.html +2 -2
  54. package/dist/server/config.js.map +1 -1
  55. package/dist/server/db/migrations/036_design_system.sql +16 -0
  56. package/dist/server/db/migrations/037_ui_view_design_system_slug.sql +7 -0
  57. package/dist/server/db/migrations/038_chat_queued_message.sql +18 -0
  58. package/dist/server/db/migrations/039_agent_credential.sql +17 -0
  59. package/dist/server/domain/raw-entity-reader.d.ts +1 -1
  60. package/dist/server/domain/raw-entity-reader.js +19 -3
  61. package/dist/server/domain/raw-entity-reader.js.map +1 -1
  62. package/dist/server/entities/design-system/mcp-server.d.ts +10 -0
  63. package/dist/server/entities/design-system/mcp-server.js +188 -0
  64. package/dist/server/entities/design-system/mcp-server.js.map +1 -0
  65. package/dist/server/entities/design-system/plugin.d.ts +3 -0
  66. package/dist/server/entities/design-system/plugin.js +34 -0
  67. package/dist/server/entities/design-system/plugin.js.map +1 -0
  68. package/dist/server/entities/design-system/routes.d.ts +5 -0
  69. package/dist/server/entities/design-system/routes.js +86 -0
  70. package/dist/server/entities/design-system/routes.js.map +1 -0
  71. package/dist/server/entities/design-system/serializer.d.ts +29 -0
  72. package/dist/server/entities/design-system/serializer.js +0 -0
  73. package/dist/server/entities/design-system/serializer.js.map +1 -0
  74. package/dist/server/entities/design-system/services.d.ts +49 -0
  75. package/dist/server/entities/design-system/services.js +225 -0
  76. package/dist/server/entities/design-system/services.js.map +1 -0
  77. package/dist/server/entities/design-system/system-prompt.d.ts +2 -0
  78. package/dist/server/entities/design-system/system-prompt.js +15 -0
  79. package/dist/server/entities/design-system/system-prompt.js.map +1 -0
  80. package/dist/server/entities/ui-view/mcp-server.js +14 -0
  81. package/dist/server/entities/ui-view/mcp-server.js.map +1 -1
  82. package/dist/server/entities/ui-view/serializer.d.ts +2 -0
  83. package/dist/server/entities/ui-view/serializer.js +25 -3
  84. package/dist/server/entities/ui-view/serializer.js.map +1 -1
  85. package/dist/server/entities/ui-view/services.js +22 -8
  86. package/dist/server/entities/ui-view/services.js.map +1 -1
  87. package/dist/server/mcp/c4s-reader.js +2 -0
  88. package/dist/server/mcp/c4s-reader.js.map +1 -1
  89. package/dist/server/routes/agent-credential.d.ts +9 -0
  90. package/dist/server/routes/agent-credential.js +43 -0
  91. package/dist/server/routes/agent-credential.js.map +1 -0
  92. package/dist/server/routes/agent-turn.d.ts +10 -0
  93. package/dist/server/routes/agent-turn.js +154 -85
  94. package/dist/server/routes/agent-turn.js.map +1 -1
  95. package/dist/server/routes/chat.js +99 -7
  96. package/dist/server/routes/chat.js.map +1 -1
  97. package/dist/server/routes/threads.js +12 -0
  98. package/dist/server/routes/threads.js.map +1 -1
  99. package/dist/server/serialization/registerAll.js +2 -0
  100. package/dist/server/serialization/registerAll.js.map +1 -1
  101. package/dist/server/serialization/writer.d.ts +2 -1
  102. package/dist/server/services/agent-credential-crypto.d.ts +4 -0
  103. package/dist/server/services/agent-credential-crypto.js +59 -0
  104. package/dist/server/services/agent-credential-crypto.js.map +1 -0
  105. package/dist/server/services/agent-credential.d.ts +32 -0
  106. package/dist/server/services/agent-credential.js +67 -0
  107. package/dist/server/services/agent-credential.js.map +1 -0
  108. package/dist/server/services/chat.d.ts +24 -1
  109. package/dist/server/services/chat.js +96 -0
  110. package/dist/server/services/chat.js.map +1 -1
  111. package/dist/server/services/entity-indexer.js +16 -2
  112. package/dist/server/services/entity-indexer.js.map +1 -1
  113. package/dist/server/services/entity-writer.d.ts +2 -0
  114. package/dist/server/services/entity-writer.js +12 -0
  115. package/dist/server/services/entity-writer.js.map +1 -1
  116. package/dist/server/services/references.js +20 -0
  117. package/dist/server/services/references.js.map +1 -1
  118. package/dist/server/services/slug.d.ts +1 -0
  119. package/dist/server/services/slug.js +6 -0
  120. package/dist/server/services/slug.js.map +1 -1
  121. package/dist/server/workspace/project-context.js +6 -0
  122. package/dist/server/workspace/project-context.js.map +1 -1
  123. package/dist/shared/agent-credential.d.ts +19 -0
  124. package/dist/shared/agent-credential.js +6 -0
  125. package/dist/shared/agent-credential.js.map +1 -0
  126. package/dist/shared/design-system.d.ts +20 -0
  127. package/dist/shared/design-system.js +222 -0
  128. package/dist/shared/design-system.js.map +1 -0
  129. package/dist/shared/entities.d.ts +127 -1
  130. package/dist/shared/entities.js +4 -0
  131. package/dist/shared/entities.js.map +1 -1
  132. package/package.json +3 -3
  133. package/dist/client/assets/channel-zmRfuI3H.js +0 -1
  134. package/dist/client/assets/classDiagram-4FO5ZUOK-B9RFgPu-.js +0 -1
  135. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B9RFgPu-.js +0 -1
  136. package/dist/client/assets/index-DRFbyGvK.js +0 -788
  137. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-C3mDHsxD.js +0 -1
@@ -0,0 +1,225 @@
1
+ import { lintTokens, parseGroups, parseModes, toListItem } from '../../../shared/design-system.js';
2
+ import { designSystemSlug } from '../../services/slug.js';
3
+ import { DomainError } from '../../services/tags.js';
4
+ // Re-export the pure token logic so existing importers (serializer, mcp-server)
5
+ // keep their `./services.js` import paths.
6
+ export { resolve, lintTokens, parseGroups, parseModes, toListItem, aliasTarget } from '../../../shared/design-system.js';
7
+ const SERIALIZER_VERSION = '1.0.0';
8
+ export class DesignSystemService {
9
+ db;
10
+ tags;
11
+ versions;
12
+ store;
13
+ constructor(db, tags, versions, store) {
14
+ this.db = db;
15
+ this.tags = tags;
16
+ this.versions = versions;
17
+ this.store = store;
18
+ }
19
+ // ─── CRUD ──────────────────────────────────────────────────────────────────
20
+ create(input, actor, opts = {}) {
21
+ if (!input.name)
22
+ throw new DomainError('VALIDATION', 'name is required');
23
+ const slug = input.slug?.trim() || designSystemSlug(input.name);
24
+ if (!slug)
25
+ throw new DomainError('VALIDATION', 'slug resolves to empty');
26
+ const groups = input.groups ?? [];
27
+ const modes = input.modes ?? [];
28
+ const tx = this.db.transaction(() => {
29
+ const conflict = this.db.prepare(`SELECT 1 FROM design_system WHERE slug = ?`).get(slug);
30
+ if (conflict)
31
+ throw new DomainError('SLUG_CONFLICT', `design system slug '${slug}' already exists`);
32
+ this.db
33
+ .prepare(`INSERT INTO design_system (slug, name, description, groups, modes)
34
+ VALUES (?, ?, ?, ?, ?)`)
35
+ .run(slug, input.name, input.description ?? null, JSON.stringify(groups), JSON.stringify(modes));
36
+ if (input.tags?.length)
37
+ this.tags.assignTags('design-system', slug, input.tags);
38
+ const created = this.getBySlugInternal(slug);
39
+ if (opts.capture !== false) {
40
+ this.versions.captureEntitySnapshot('design-system', slug, 'create', actor, 'Created', SERIALIZER_VERSION);
41
+ }
42
+ return { designSystem: created, warnings: lintTokens(groups, modes) };
43
+ });
44
+ const created = tx();
45
+ if (opts.writeFile !== false)
46
+ this.store.persist('design-system', created.designSystem.slug);
47
+ return created;
48
+ }
49
+ list(query = {}) {
50
+ const { whereSql, params } = buildWhere(query);
51
+ const limit = Math.min(Math.max(query.limit ?? 200, 1), 500);
52
+ const offset = Math.max(query.offset ?? 0, 0);
53
+ const rows = this.db
54
+ .prepare(`SELECT * FROM design_system ${whereSql} ORDER BY name LIMIT ? OFFSET ?`)
55
+ .all(...params, limit, offset);
56
+ return rows.map((r) => this.hydrate(r));
57
+ }
58
+ /** Trimmed list rows + total (ignoring pagination). Counts computed without exposing the token payload. */
59
+ listItems(query = {}) {
60
+ const { whereSql, params } = buildWhere(query);
61
+ const total = this.db.prepare(`SELECT COUNT(*) AS c FROM design_system ${whereSql}`).get(...params).c;
62
+ const items = this.list(query).map((ds) => toListItem(ds));
63
+ return { items, total };
64
+ }
65
+ getBySlug(slug) {
66
+ const row = this.db.prepare(`SELECT * FROM design_system WHERE slug = ?`).get(slug);
67
+ return row ? this.hydrate(row) : null;
68
+ }
69
+ update(slug, input, actor, opts = {}) {
70
+ const tx = this.db.transaction(() => {
71
+ const current = this.db.prepare(`SELECT * FROM design_system WHERE slug = ?`).get(slug);
72
+ if (!current)
73
+ throw new DomainError('NOT_FOUND', `design system '${slug}' not found`);
74
+ const nextName = input.name ?? current.name;
75
+ // Slug stable: name change never regenerates it. Rename only via explicit newSlug.
76
+ const nextSlug = input.newSlug?.trim() || current.slug;
77
+ if (nextSlug !== slug) {
78
+ const conflict = this.db.prepare(`SELECT 1 FROM design_system WHERE slug = ?`).get(nextSlug);
79
+ if (conflict)
80
+ throw new DomainError('SLUG_CONFLICT', `design system slug '${nextSlug}' already exists`);
81
+ }
82
+ // groups/modes: providing the field = full replace of the array.
83
+ const nextGroups = input.groups !== undefined ? JSON.stringify(input.groups) : current.groups;
84
+ const nextModes = input.modes !== undefined ? JSON.stringify(input.modes) : current.modes;
85
+ this.db
86
+ .prepare(`UPDATE design_system
87
+ SET slug = ?, name = ?, description = ?, groups = ?, modes = ?,
88
+ updated_at = datetime('now')
89
+ WHERE slug = ?`)
90
+ .run(nextSlug, nextName, input.description !== undefined ? input.description : current.description, nextGroups, nextModes, slug);
91
+ // M29: entity_tag is polymorphic (no FK on entity_slug) — follow the rename.
92
+ if (nextSlug !== slug) {
93
+ this.db
94
+ .prepare(`UPDATE entity_tag SET entity_slug = ? WHERE entity_type = 'design-system' AND entity_slug = ?`)
95
+ .run(nextSlug, slug);
96
+ }
97
+ if (input.tags)
98
+ this.tags.assignTags('design-system', nextSlug, input.tags);
99
+ const updated = this.getBySlugInternal(nextSlug);
100
+ const summary = nextSlug !== slug ? `Renamed from '${slug}' to '${nextSlug}'` : 'Updated';
101
+ if (opts.capture !== false) {
102
+ this.versions.captureEntitySnapshot('design-system', nextSlug, 'update', actor, summary, SERIALIZER_VERSION);
103
+ }
104
+ return {
105
+ designSystem: updated,
106
+ previousSlug: slug,
107
+ warnings: lintTokens(updated.groups, updated.modes),
108
+ };
109
+ });
110
+ const result = tx();
111
+ if (opts.writeFile !== false) {
112
+ const nextSlug = result.designSystem.slug;
113
+ if (nextSlug !== slug)
114
+ this.store.remove('design-system', slug);
115
+ this.store.persist('design-system', nextSlug);
116
+ }
117
+ return result;
118
+ }
119
+ /** Idempotent UPSERT for M17 restore. CREATE if missing, UPDATE otherwise; preserves slug. */
120
+ upsert(slug, input, actor, opts = {}) {
121
+ const existing = this.getBySlug(slug);
122
+ if (!existing) {
123
+ const result = this.create({ ...input, slug }, actor, opts);
124
+ return { designSystem: result.designSystem, op: 'created', warnings: result.warnings };
125
+ }
126
+ const result = this.update(slug, {
127
+ name: input.name,
128
+ description: input.description,
129
+ groups: input.groups,
130
+ modes: input.modes,
131
+ tags: input.tags,
132
+ }, actor, opts);
133
+ return { designSystem: result.designSystem, op: 'updated', warnings: result.warnings };
134
+ }
135
+ remove(slug, actor, brokenReferences = [], opts = {}) {
136
+ const tx = this.db.transaction(() => {
137
+ const row = this.db.prepare(`SELECT * FROM design_system WHERE slug = ?`).get(slug);
138
+ if (!row)
139
+ throw new DomainError('NOT_FOUND', `design system '${slug}' not found`);
140
+ // UI views that point at this DS become dangling (the column is kept — warning, not error).
141
+ const danglingUiViews = this.danglingUiViewsFor(slug);
142
+ if (opts.capture !== false) {
143
+ this.versions.captureEntitySnapshot('design-system', slug, 'delete', actor, 'Deleted', SERIALIZER_VERSION);
144
+ }
145
+ this.db
146
+ .prepare(`DELETE FROM entity_tag WHERE entity_type = 'design-system' AND entity_slug = ?`)
147
+ .run(slug);
148
+ this.db.prepare(`DELETE FROM design_system WHERE slug = ?`).run(slug);
149
+ return { deleted: true, brokenReferences, danglingUiViews };
150
+ });
151
+ const result = tx();
152
+ if (opts.writeFile !== false)
153
+ this.store.remove('design-system', slug);
154
+ return result;
155
+ }
156
+ /** UI views whose `design_system_slug` references the given DS (dangling on delete). */
157
+ danglingUiViewsFor(slug) {
158
+ try {
159
+ const rows = this.db
160
+ .prepare(`SELECT slug FROM ui_view WHERE design_system_slug = ? ORDER BY slug`)
161
+ .all(slug);
162
+ return rows.map((r) => ({ slug: r.slug }));
163
+ }
164
+ catch {
165
+ // ui_view table absent (should not happen — migrations always create it).
166
+ return [];
167
+ }
168
+ }
169
+ // ─── hydration ───────────────────────────────────────────────────────────
170
+ getBySlugInternal(slug) {
171
+ const row = this.db.prepare(`SELECT * FROM design_system WHERE slug = ?`).get(slug);
172
+ if (!row)
173
+ throw new Error(`design_system '${slug}' disappeared mid-tx`);
174
+ return this.hydrate(row);
175
+ }
176
+ hydrate(row) {
177
+ return {
178
+ slug: row.slug,
179
+ name: row.name,
180
+ description: row.description,
181
+ groups: parseGroups(row.groups),
182
+ modes: parseModes(row.modes),
183
+ tags: this.tags.getEntityTagSlugs('design-system', row.slug),
184
+ createdAt: row.created_at,
185
+ updatedAt: row.updated_at,
186
+ };
187
+ }
188
+ }
189
+ // ─── list helpers ────────────────────────────────────────────────────────────
190
+ function buildWhere(query) {
191
+ const where = [];
192
+ const params = [];
193
+ if (query.search) {
194
+ where.push(`(name LIKE ? OR description LIKE ? OR slug LIKE ?)`);
195
+ const like = `%${query.search}%`;
196
+ params.push(like, like, like);
197
+ }
198
+ const tagSlugs = query.tags?.filter(Boolean) ?? [];
199
+ if (tagSlugs.length) {
200
+ const placeholders = tagSlugs.map(() => '?').join(',');
201
+ if (query.tagFilter === 'or') {
202
+ where.push(`
203
+ slug IN (
204
+ SELECT et.entity_slug FROM entity_tag et
205
+ WHERE et.entity_type = 'design-system' AND et.tag_slug IN (${placeholders})
206
+ )
207
+ `);
208
+ params.push(...tagSlugs);
209
+ }
210
+ else {
211
+ where.push(`
212
+ slug IN (
213
+ SELECT et.entity_slug
214
+ FROM entity_tag et
215
+ WHERE et.entity_type = 'design-system' AND et.tag_slug IN (${placeholders})
216
+ GROUP BY et.entity_slug
217
+ HAVING COUNT(DISTINCT et.tag_slug) = ?
218
+ )
219
+ `);
220
+ params.push(...tagSlugs, tagSlugs.length);
221
+ }
222
+ }
223
+ return { whereSql: where.length ? `WHERE ${where.join(' AND ')}` : '', params };
224
+ }
225
+ //# sourceMappingURL=services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../../src/server/entities/design-system/services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { SystemPromptContribution } from '../../../shared/plugin-host/types.js';
2
+ export declare const designSystemSystemPrompt: SystemPromptContribution;
@@ -0,0 +1,15 @@
1
+ export const designSystemSystemPrompt = {
2
+ roleNoun: 'Design Systems',
3
+ countStat: {
4
+ placeholder: 'designSystemCount',
5
+ sqlQuery: 'SELECT COUNT(*) AS count FROM design_system',
6
+ label: 'design-systems',
7
+ },
8
+ mcpToolsLine: 'design-system-tools: create_design_system, get_design_system, update_design_system, delete_design_system, list_design_systems',
9
+ narrativeBlock: 'Design systems — named sets of design tokens in a two-tier model (primitive raw scales → semantic roles). ' +
10
+ 'Token values are literals ("#2563eb", "16px"), `{token}` aliases to other tokens, or composite objects ' +
11
+ '(typography/shadow). Optional theme modes override tokens (Base = no overrides). groups/modes are embedded ' +
12
+ 'JSON (no junction tables). A ui-view may reference one design-system via its scalar `designSystemSlug` field ' +
13
+ '(the first structural, non-tag relation).',
14
+ };
15
+ //# sourceMappingURL=system-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../../src/server/entities/design-system/system-prompt.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAA6B;IAChE,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE;QACT,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,6CAA6C;QACvD,KAAK,EAAE,gBAAgB;KACxB;IACD,YAAY,EACV,+HAA+H;IACjI,cAAc,EACZ,4GAA4G;QAC5G,yGAAyG;QACzG,6GAA6G;QAC7G,+GAA+G;QAC/G,2CAA2C;CAC9C,CAAC"}
@@ -30,6 +30,11 @@ export function createUiViewToolsServer(deps) {
30
30
  .describe('Route pattern (e.g. "/users/:id"). Null/omitted = modal/drawer without routing.'),
31
31
  description: z.string().optional(),
32
32
  params: z.array(paramSchema).optional(),
33
+ designSystemSlug: z
34
+ .string()
35
+ .nullable()
36
+ .optional()
37
+ .describe('Slug of a design-system this view uses (no FK; dangling allowed). Null = none.'),
33
38
  slug: z.string().optional(),
34
39
  tags: z.array(z.string()).optional(),
35
40
  }, async (args) => {
@@ -39,6 +44,7 @@ export function createUiViewToolsServer(deps) {
39
44
  url: args.url,
40
45
  description: args.description,
41
46
  params: args.params ?? [],
47
+ designSystemSlug: args.designSystemSlug,
42
48
  slug: args.slug,
43
49
  tags: args.tags,
44
50
  }, 'agent');
@@ -72,6 +78,11 @@ export function createUiViewToolsServer(deps) {
72
78
  url: z.string().nullable().optional(),
73
79
  description: z.string().nullable().optional(),
74
80
  params: z.array(paramSchema).optional(),
81
+ designSystemSlug: z
82
+ .string()
83
+ .nullable()
84
+ .optional()
85
+ .describe('Set/clear the design-system reference. Null = detach. Omit = unchanged.'),
75
86
  })
76
87
  .describe('Partial fields to update'),
77
88
  newSlug: z
@@ -86,6 +97,9 @@ export function createUiViewToolsServer(deps) {
86
97
  url: data.url,
87
98
  description: data.description,
88
99
  params: data.params,
100
+ designSystemSlug: 'designSystemSlug' in data
101
+ ? data.designSystemSlug
102
+ : undefined,
89
103
  newSlug: args.newSlug,
90
104
  }, 'agent');
91
105
  if (uiView.slug !== previousSlug) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../../../src/server/entities/ui-view/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../../../src/server/entities/ui-view/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export interface UiViewSnapshot {
7
7
  url: string | null;
8
8
  description: string | null;
9
9
  params: UiViewParam[];
10
+ /** v0.1.59 (serializer 1.1.0, additive): referenced design-system slug, or null. */
11
+ designSystemSlug: string | null;
10
12
  tags: string[];
11
13
  }
12
14
  export declare const uiViewSerializer: EntitySerializer<RawEntity>;
@@ -13,6 +13,10 @@ function readParams(entity) {
13
13
  ...(typeof p.description === 'string' ? { description: p.description } : {}),
14
14
  }));
15
15
  }
16
+ function readDesignSystemSlug(entity) {
17
+ const raw = entity.data.design_system_slug ?? entity.data.designSystemSlug;
18
+ return typeof raw === 'string' && raw ? raw : null;
19
+ }
16
20
  function baseSingle(entity) {
17
21
  return {
18
22
  type: 'ui-view',
@@ -21,6 +25,7 @@ function baseSingle(entity) {
21
25
  url: entity.data.url ?? null,
22
26
  description: entity.data.description ?? null,
23
27
  params: readParams(entity),
28
+ designSystemSlug: readDesignSystemSlug(entity),
24
29
  tags: entity.tags,
25
30
  };
26
31
  }
@@ -59,6 +64,7 @@ const SINGLE_ELEMENT_SCHEMA = {
59
64
  url: { type: ['string', 'null'] },
60
65
  description: { type: ['string', 'null'] },
61
66
  params: { type: 'array', items: PARAM_OBJECT_SCHEMA },
67
+ designSystemSlug: { type: ['string', 'null'] },
62
68
  tags: { type: 'array', items: { type: 'string' } },
63
69
  },
64
70
  };
@@ -76,6 +82,7 @@ function buildSnapshot(entity) {
76
82
  ...(p.default !== undefined ? { default: p.default } : {}),
77
83
  ...(p.description !== undefined ? { description: p.description } : {}),
78
84
  })),
85
+ designSystemSlug: readDesignSystemSlug(entity),
79
86
  tags: [...entity.tags].sort(),
80
87
  };
81
88
  }
@@ -87,6 +94,7 @@ function coerceUiView(raw) {
87
94
  url: r.url ?? null,
88
95
  description: r.description ?? null,
89
96
  params: Array.isArray(r.params) ? r.params : [],
97
+ designSystemSlug: typeof r.designSystemSlug === 'string' && r.designSystemSlug ? r.designSystemSlug : null,
90
98
  tags: Array.isArray(r.tags) ? r.tags : [],
91
99
  };
92
100
  }
@@ -107,6 +115,9 @@ function uiViewDiff(a, b, slug) {
107
115
  metaChanges.push({ field: 'url', from: sa.url, to: sb.url });
108
116
  if (sa.description !== sb.description)
109
117
  metaChanges.push({ field: 'description', from: sa.description, to: sb.description });
118
+ // v0.1.59: null ↔ slug = assigning / detaching a design system (atomic field change).
119
+ if (sa.designSystemSlug !== sb.designSystemSlug)
120
+ metaChanges.push({ field: 'designSystemSlug', from: sa.designSystemSlug, to: sb.designSystemSlug });
110
121
  if (metaChanges.length)
111
122
  changes.meta_changes = metaChanges;
112
123
  // Params keyed by name (collect all `in` variants per name to detect in_changed)
@@ -183,24 +194,35 @@ function uiViewDiff(a, b, slug) {
183
194
  return { type: 'ui-view', slug, op: 'modified', changes };
184
195
  }
185
196
  function uiViewRestore(data, ctx) {
186
- const snap = data;
197
+ const snap = coerceUiView(data);
187
198
  const result = ctx.writer.upsertUiView(snap.slug, {
188
199
  name: snap.name,
189
200
  url: snap.url,
190
201
  description: snap.description ?? undefined,
191
202
  params: snap.params,
203
+ // v0.1.59: the value is kept verbatim even if the DS is gone (dangling → warn, never null).
204
+ designSystemSlug: snap.designSystemSlug,
192
205
  slug: snap.slug,
193
206
  }, ctx.actor);
194
207
  ctx.writer.syncTags('ui-view', snap.slug, snap.tags);
208
+ const warnings = [...(result.warnings ?? [])];
209
+ // Dangling design-system reference: warn but keep the field (consistent with
210
+ // "warnings, not errors"). design-system is indexed before ui-view, so a
211
+ // present DS resolves here; absence means the file is gone / type inactive.
212
+ if (snap.designSystemSlug && !ctx.reader.getEntity('design-system', snap.designSystemSlug)) {
213
+ warnings.push(`ui-view '${snap.slug}': designSystemSlug '${snap.designSystemSlug}' does not resolve (dangling)`);
214
+ }
195
215
  return {
196
216
  op: result.op,
197
217
  entity: result.entity,
198
- ...(result.warnings && result.warnings.length ? { warnings: result.warnings } : {}),
218
+ ...(warnings.length ? { warnings } : {}),
199
219
  };
200
220
  }
201
221
  export const uiViewSerializer = {
202
222
  type: 'ui-view',
203
- version: '1.0.0',
223
+ // v0.1.59: bumped 1.0.0 → 1.1.0 (additive — designSystemSlug). Forward-compat:
224
+ // future linked_components[] (ui-component entity) will be 1.2.0 (1.1.0 taken).
225
+ version: '1.1.0',
204
226
  inlineMention: (entity) => ({
205
227
  type: 'ui-view',
206
228
  slug: entity.slug,
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../../src/server/entities/ui-view/serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../../src/server/entities/ui-view/serializer.ts"],"names":[],"mappings":"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"}
@@ -20,19 +20,20 @@ export class UiViewService {
20
20
  throw new DomainError('VALIDATION', 'slug resolves to empty');
21
21
  const params = input.params ?? [];
22
22
  const url = normaliseUrl(input.url);
23
+ const designSystemSlug = normaliseSlugRef(input.designSystemSlug);
23
24
  const tx = this.db.transaction(() => {
24
25
  const conflict = this.db.prepare(`SELECT 1 FROM ui_view WHERE slug = ?`).get(slug);
25
26
  if (conflict)
26
27
  throw new DomainError('SLUG_CONFLICT', `ui view slug '${slug}' already exists`);
27
28
  this.db
28
- .prepare(`INSERT INTO ui_view (slug, name, url, description, params)
29
- VALUES (?, ?, ?, ?, ?)`)
30
- .run(slug, input.name, url, input.description ?? null, JSON.stringify(params));
29
+ .prepare(`INSERT INTO ui_view (slug, name, url, description, params, design_system_slug)
30
+ VALUES (?, ?, ?, ?, ?, ?)`)
31
+ .run(slug, input.name, url, input.description ?? null, JSON.stringify(params), designSystemSlug);
31
32
  if (input.tags?.length)
32
33
  this.tags.assignTags('ui-view', slug, input.tags);
33
34
  const created = this.getBySlugInternal(slug);
34
35
  if (opts.capture !== false) {
35
- this.versions.captureEntitySnapshot('ui-view', slug, 'create', actor, 'Created', '1.0.0');
36
+ this.versions.captureEntitySnapshot('ui-view', slug, 'create', actor, 'Created', '1.1.0');
36
37
  }
37
38
  const warnings = computeWarnings(url, params);
38
39
  return { uiView: created, warnings };
@@ -107,12 +108,16 @@ export class UiViewService {
107
108
  }
108
109
  const nextParams = input.params !== undefined ? JSON.stringify(input.params) : current.params;
109
110
  const nextUrl = input.url !== undefined ? normaliseUrl(input.url) : current.url;
111
+ // undefined = unchanged; null = clear; string = set (dangling allowed, no FK).
112
+ const nextDesignSystemSlug = input.designSystemSlug !== undefined
113
+ ? normaliseSlugRef(input.designSystemSlug)
114
+ : current.design_system_slug;
110
115
  this.db
111
116
  .prepare(`UPDATE ui_view
112
117
  SET slug = ?, name = ?, url = ?, description = ?, params = ?,
113
- updated_at = datetime('now')
118
+ design_system_slug = ?, updated_at = datetime('now')
114
119
  WHERE slug = ?`)
115
- .run(nextSlug, nextName, nextUrl, input.description !== undefined ? input.description : current.description, nextParams, slug);
120
+ .run(nextSlug, nextName, nextUrl, input.description !== undefined ? input.description : current.description, nextParams, nextDesignSystemSlug, slug);
116
121
  // M29: a rename moves entity_tag rows to the new slug (entity_tag is
117
122
  // polymorphic, no FK on entity_slug — must follow the rename explicitly).
118
123
  if (nextSlug !== slug) {
@@ -125,7 +130,7 @@ export class UiViewService {
125
130
  const updated = this.getBySlugInternal(nextSlug);
126
131
  const summary = nextSlug !== slug ? `Renamed from '${slug}' to '${nextSlug}'` : 'Updated';
127
132
  if (opts.capture !== false) {
128
- this.versions.captureEntitySnapshot('ui-view', nextSlug, 'update', actor, summary, '1.0.0');
133
+ this.versions.captureEntitySnapshot('ui-view', nextSlug, 'update', actor, summary, '1.1.0');
129
134
  }
130
135
  const warnings = computeWarnings(updated.url, updated.params);
131
136
  return { uiView: updated, previousSlug: slug, warnings };
@@ -154,6 +159,8 @@ export class UiViewService {
154
159
  url: input.url,
155
160
  description: input.description,
156
161
  params: input.params,
162
+ // Restore writes the snapshot value verbatim (dangling kept — not nulled).
163
+ designSystemSlug: input.designSystemSlug ?? null,
157
164
  tags: input.tags,
158
165
  }, actor, opts);
159
166
  return { uiView: result.uiView, op: 'updated', warnings: result.warnings };
@@ -165,7 +172,7 @@ export class UiViewService {
165
172
  throw new DomainError('NOT_FOUND', `ui view '${slug}' not found`);
166
173
  // M17: capture snapshot BEFORE delete.
167
174
  if (opts.capture !== false) {
168
- this.versions.captureEntitySnapshot('ui-view', slug, 'delete', actor, 'Deleted', '1.0.0');
175
+ this.versions.captureEntitySnapshot('ui-view', slug, 'delete', actor, 'Deleted', '1.1.0');
169
176
  }
170
177
  this.db
171
178
  .prepare(`DELETE FROM entity_tag WHERE entity_type = 'ui-view' AND entity_slug = ?`)
@@ -191,6 +198,7 @@ export class UiViewService {
191
198
  url: row.url,
192
199
  description: row.description,
193
200
  params: parseParams(row.params),
201
+ designSystemSlug: row.design_system_slug ?? null,
194
202
  tags: this.tags.getEntityTagSlugs('ui-view', row.slug),
195
203
  createdAt: row.created_at,
196
204
  updatedAt: row.updated_at,
@@ -203,6 +211,12 @@ function normaliseUrl(value) {
203
211
  const trimmed = value.trim();
204
212
  return trimmed === '' ? null : trimmed;
205
213
  }
214
+ function normaliseSlugRef(value) {
215
+ if (value === undefined || value === null)
216
+ return null;
217
+ const trimmed = value.trim();
218
+ return trimmed === '' ? null : trimmed;
219
+ }
206
220
  function parseParams(raw) {
207
221
  try {
208
222
  const parsed = JSON.parse(raw);