@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.
- package/CHANGELOG.md +16 -0
- package/dist/bin/c4s/commands/tagged-list-mixed.js +2 -0
- package/dist/bin/c4s/commands/tagged-list-mixed.js.map +1 -1
- package/dist/client/assets/{arc-DrA6qHTw.js → arc-BoIjQ4Rl.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-TEnwTtVX.js → architectureDiagram-3BPJPVTR-BxBVRaEg.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-txRnQm5w.js → blockDiagram-GPEHLZMM-CUZNbllz.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-ad8X3Q8n.js → c4Diagram-AAUBKEIU-CvuTKwEz.js} +1 -1
- package/dist/client/assets/channel-Ba45UACg.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-Cp08Xa7f.js → chunk-2J33WTMH-CEO4c2pf.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-Dc_0On6j.js → chunk-4BX2VUAB-Bu8DCHu0.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-8d1qQ5z6.js → chunk-55IACEB6-DIN8FXXB.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-TZenviWx.js → chunk-727SXJPM-DArSpufF.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DKRRWy-J.js → chunk-AQP2D5EJ-DvyQ3boK.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-DLEErJWK.js → chunk-FMBD7UC4-DzYhHpnC.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-pKGgwz_0.js → chunk-ND2GUHAM-DocECmh1.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-DVcNz8ng.js → chunk-QZHKN3VN-cUsgOLYm.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DigWu50-.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DigWu50-.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-DZejbxEG.js → cose-bilkent-S5V4N54A-BXlU_dXh.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-DrPrkFcW.js → dagre-BM42HDAG-CmrHrBPK.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-Dpn8TJa2.js → diagram-2AECGRRQ-CV4Tc8wQ.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-BxkzEc_t.js → diagram-5GNKFQAL-BiBsPCGc.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-KG0o4LQ7.js → diagram-KO2AKTUF-DA09S_op.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CJ-AjQPt.js → diagram-LMA3HP47-DBaod99I.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-D_FG9cDJ.js → diagram-OG6HWLK6-ClJXH4o0.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-DllhUlzY.js → erDiagram-TEJ5UH35-9ic-AAly.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-Bg3OotXu.js → flowDiagram-I6XJVG4X-8UWNEpWY.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-BUpUL2Cj.js → ganttDiagram-6RSMTGT7-ZMUkzsKr.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DMRhyWth.js → gitGraphDiagram-PVQCEYII-5MgsfBQ-.js} +1 -1
- package/dist/client/assets/{index-BB2RmhGR.js → index-B3XLrPs9.js} +1 -1
- package/dist/client/assets/{index-BXzOTCgN.css → index-BKuHIaMg.css} +1 -1
- package/dist/client/assets/index-BSPNo0Xa.js +795 -0
- package/dist/client/assets/{index-Daewu-VD.js → index-D7DH-SO5.js} +1 -1
- package/dist/client/assets/{infoDiagram-5YYISTIA-Bq9D64Ar.js → infoDiagram-5YYISTIA-DnoyGZzF.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DIaKHHF-.js → ishikawaDiagram-YF4QCWOH-DXzuF94t.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-gQWGLTeZ.js → journeyDiagram-JHISSGLW-AEPglDXi.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-vRgZ5RjE.js → kanban-definition-UN3LZRKU-D0-kFv2f.js} +1 -1
- package/dist/client/assets/{linear-B4a11szP.js → linear-CZwFXsxu.js} +1 -1
- package/dist/client/assets/{mermaid.core-JhUbsJFB.js → mermaid.core-BikmxM36.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-ZH-Oz_D-.js → mindmap-definition-RKZ34NQL-C95lTdDB.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-6rpNrJR6.js → pieDiagram-4H26LBE5-CMeXZFX8.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DpTKtxEM.js → quadrantDiagram-W4KKPZXB-D1dG1F2s.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-DpDvZkrK.js → requirementDiagram-4Y6WPE33-RPNqJRNK.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-KKjWCTYP.js → sankeyDiagram-5OEKKPKP-DQ4EB8Xb.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BCmXos1U.js → sequenceDiagram-3UESZ5HK-Dn-VJOlP.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-Xq7jqpMj.js → stateDiagram-AJRCARHV-CCpprZJO.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DZMO7v7d.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-CMmq8p5q.js → timeline-definition-PNZ67QCA-h0cUr7kp.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-DgK-w2Jv.js → vennDiagram-CIIHVFJN-BTZzKsPH.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-C5CwlFHh.js → wardley-L42UT6IY-D1eOaFAH.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-D47CtDSc.js → wardleyDiagram-YWT4CUSO-wsnKkjjR.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-C1M_xTVv.js → xychartDiagram-2RQKCTM6-BCebuOGO.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/config.js.map +1 -1
- package/dist/server/db/migrations/036_design_system.sql +16 -0
- package/dist/server/db/migrations/037_ui_view_design_system_slug.sql +7 -0
- package/dist/server/db/migrations/038_chat_queued_message.sql +18 -0
- package/dist/server/db/migrations/039_agent_credential.sql +17 -0
- package/dist/server/domain/raw-entity-reader.d.ts +1 -1
- package/dist/server/domain/raw-entity-reader.js +19 -3
- package/dist/server/domain/raw-entity-reader.js.map +1 -1
- package/dist/server/entities/design-system/mcp-server.d.ts +10 -0
- package/dist/server/entities/design-system/mcp-server.js +188 -0
- package/dist/server/entities/design-system/mcp-server.js.map +1 -0
- package/dist/server/entities/design-system/plugin.d.ts +3 -0
- package/dist/server/entities/design-system/plugin.js +34 -0
- package/dist/server/entities/design-system/plugin.js.map +1 -0
- package/dist/server/entities/design-system/routes.d.ts +5 -0
- package/dist/server/entities/design-system/routes.js +86 -0
- package/dist/server/entities/design-system/routes.js.map +1 -0
- package/dist/server/entities/design-system/serializer.d.ts +29 -0
- package/dist/server/entities/design-system/serializer.js +0 -0
- package/dist/server/entities/design-system/serializer.js.map +1 -0
- package/dist/server/entities/design-system/services.d.ts +49 -0
- package/dist/server/entities/design-system/services.js +225 -0
- package/dist/server/entities/design-system/services.js.map +1 -0
- package/dist/server/entities/design-system/system-prompt.d.ts +2 -0
- package/dist/server/entities/design-system/system-prompt.js +15 -0
- package/dist/server/entities/design-system/system-prompt.js.map +1 -0
- package/dist/server/entities/ui-view/mcp-server.js +14 -0
- package/dist/server/entities/ui-view/mcp-server.js.map +1 -1
- package/dist/server/entities/ui-view/serializer.d.ts +2 -0
- package/dist/server/entities/ui-view/serializer.js +25 -3
- package/dist/server/entities/ui-view/serializer.js.map +1 -1
- package/dist/server/entities/ui-view/services.js +22 -8
- package/dist/server/entities/ui-view/services.js.map +1 -1
- package/dist/server/mcp/c4s-reader.js +2 -0
- package/dist/server/mcp/c4s-reader.js.map +1 -1
- package/dist/server/routes/agent-credential.d.ts +9 -0
- package/dist/server/routes/agent-credential.js +43 -0
- package/dist/server/routes/agent-credential.js.map +1 -0
- package/dist/server/routes/agent-turn.d.ts +10 -0
- package/dist/server/routes/agent-turn.js +154 -85
- package/dist/server/routes/agent-turn.js.map +1 -1
- package/dist/server/routes/chat.js +99 -7
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/threads.js +12 -0
- package/dist/server/routes/threads.js.map +1 -1
- package/dist/server/serialization/registerAll.js +2 -0
- package/dist/server/serialization/registerAll.js.map +1 -1
- package/dist/server/serialization/writer.d.ts +2 -1
- package/dist/server/services/agent-credential-crypto.d.ts +4 -0
- package/dist/server/services/agent-credential-crypto.js +59 -0
- package/dist/server/services/agent-credential-crypto.js.map +1 -0
- package/dist/server/services/agent-credential.d.ts +32 -0
- package/dist/server/services/agent-credential.js +67 -0
- package/dist/server/services/agent-credential.js.map +1 -0
- package/dist/server/services/chat.d.ts +24 -1
- package/dist/server/services/chat.js +96 -0
- package/dist/server/services/chat.js.map +1 -1
- package/dist/server/services/entity-indexer.js +16 -2
- package/dist/server/services/entity-indexer.js.map +1 -1
- package/dist/server/services/entity-writer.d.ts +2 -0
- package/dist/server/services/entity-writer.js +12 -0
- package/dist/server/services/entity-writer.js.map +1 -1
- package/dist/server/services/references.js +20 -0
- package/dist/server/services/references.js.map +1 -1
- package/dist/server/services/slug.d.ts +1 -0
- package/dist/server/services/slug.js +6 -0
- package/dist/server/services/slug.js.map +1 -1
- package/dist/server/workspace/project-context.js +6 -0
- package/dist/server/workspace/project-context.js.map +1 -1
- package/dist/shared/agent-credential.d.ts +19 -0
- package/dist/shared/agent-credential.js +6 -0
- package/dist/shared/agent-credential.js.map +1 -0
- package/dist/shared/design-system.d.ts +20 -0
- package/dist/shared/design-system.js +222 -0
- package/dist/shared/design-system.js.map +1 -0
- package/dist/shared/entities.d.ts +127 -1
- package/dist/shared/entities.js +4 -0
- package/dist/shared/entities.js.map +1 -1
- package/package.json +3 -3
- package/dist/client/assets/channel-zmRfuI3H.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-B9RFgPu-.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B9RFgPu-.js +0 -1
- package/dist/client/assets/index-DRFbyGvK.js +0 -788
- 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,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":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAA0B,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AASrD,MAAM,UAAU,uBAAuB,CAAC,IAAqB;IAC3D,MAAM,EAAE,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;KACpE,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,CAAC,GAAY,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;QAChE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACpF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC3D,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACvE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QACvF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,OAAO,CAC1B,gBAAgB,EAChB,mKAAmK,EACnK;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACtE,GAAG,EAAE,CAAC;aACH,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,iFAAiF,CAAC;QAC9F,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;QACvC,gBAAgB,EAAE,CAAC;aAChB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,gFAAgF,CAAC;QAC7F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACrC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CACpD;gBACE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAgC;gBAC1C,WAAW,EAAE,IAAI,CAAC,WAAiC;gBACnD,MAAM,EAAG,IAAI,CAAC,MAAoC,IAAI,EAAE;gBACxD,gBAAgB,EAAE,IAAI,CAAC,gBAA6C;gBACpE,IAAI,EAAE,IAAI,CAAC,IAA0B;gBACrC,IAAI,EAAE,IAAI,CAAC,IAA4B;aACxC,EACD,OAAO,CACR,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;gBAChB,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;gBACR,EAAE,EAAE,MAAM,CAAC,IAAI;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,SAAS;gBACf,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,SAAS,GAAG,OAAO,CACvB,aAAa,EACb,yHAAyH,EACzH,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EACpB,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,YAAY,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;QAChF,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,CACF,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAC1B,gBAAgB,EAChB,wMAAwM,EACxM;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,CAAC;aACJ,MAAM,CAAC;YACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC7C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;YACvC,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,EAAE;iBACV,QAAQ,CAAC,yEAAyE,CAAC;SACvF,CAAC;aACD,QAAQ,CAAC,0BAA0B,CAAC;QACvC,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,qFAAqF,CACtF;KACJ,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAA+B,CAAC;YAClD,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAClE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjB;gBACE,IAAI,EAAE,IAAI,CAAC,IAA0B;gBACrC,GAAG,EAAE,IAAI,CAAC,GAAgC;gBAC1C,WAAW,EAAE,IAAI,CAAC,WAAwC;gBAC1D,MAAM,EAAE,IAAI,CAAC,MAAmC;gBAChD,gBAAgB,EACd,kBAAkB,IAAI,IAAI;oBACxB,CAAC,CAAE,IAAI,CAAC,gBAA8C;oBACtD,CAAC,CAAC,SAAS;gBACf,OAAO,EAAE,IAAI,CAAC,OAA6B;aAC5C,EACD,OAAO,CACR,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAC9C,SAAS,EACT,YAAY,EACZ,MAAM,CAAC,IAAI,CACZ,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;gBAChB,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,IAAI;gBACb,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAC1B,gBAAgB,EAChB,mFAAmF,EACnF,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EACpB,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC1E,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;gBAChB,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,SAAS;gBACrB,IAAI;aACL,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;gBACR,OAAO,EAAE,IAAI;gBACb,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aACxE,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CACzB,eAAe,EACf,qGAAqG,EACrG;QACE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACpC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACnC,IAAI,EAAE,IAAI,CAAC,IAA4B;gBACvC,SAAS,EAAE,IAAI,CAAC,SAAqC;gBACrD,MAAM,EAAE,IAAI,CAAC,MAA4B;gBACzC,KAAK,EAAE,IAAI,CAAC,KAA2B;gBACvC,MAAM,EAAE,IAAI,CAAC,MAA4B;aAC1C,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;gBACR,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;oBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;gBACH,KAAK,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,eAAe,CAAC;QACrB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC;KAC1E,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -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
|
-
...(
|
|
218
|
+
...(warnings.length ? { warnings } : {}),
|
|
199
219
|
};
|
|
200
220
|
}
|
|
201
221
|
export const uiViewSerializer = {
|
|
202
222
|
type: 'ui-view',
|
|
203
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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);
|