@inharness-ai/claude4spec 1.0.13 → 1.0.15

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 (180) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/bin/c4s/commands/find-references.d.ts +13 -0
  3. package/dist/bin/c4s/commands/find-references.js +81 -0
  4. package/dist/bin/c4s/commands/find-references.js.map +1 -0
  5. package/dist/bin/c4s.js +6 -0
  6. package/dist/bin/c4s.js.map +1 -1
  7. package/dist/client/assets/{arc-E0e7X_zn.js → arc-Bm0IE9-2.js} +1 -1
  8. package/dist/client/assets/{architectureDiagram-3BPJPVTR-BzlqOVZv.js → architectureDiagram-3BPJPVTR-GJ4QxX0Q.js} +1 -1
  9. package/dist/client/assets/{blockDiagram-GPEHLZMM-BIQcApN7.js → blockDiagram-GPEHLZMM-C9rZbfxq.js} +1 -1
  10. package/dist/client/assets/{c4Diagram-AAUBKEIU-CDU0V1yk.js → c4Diagram-AAUBKEIU-DyVuHGeV.js} +1 -1
  11. package/dist/client/assets/channel-BGn39mc8.js +1 -0
  12. package/dist/client/assets/{chunk-2J33WTMH-PtDSwC5f.js → chunk-2J33WTMH-DePzEFC8.js} +1 -1
  13. package/dist/client/assets/{chunk-4BX2VUAB-DTUPWrSO.js → chunk-4BX2VUAB-NZkVFx6P.js} +1 -1
  14. package/dist/client/assets/{chunk-55IACEB6-Cpd59xZT.js → chunk-55IACEB6-DSelTsfa.js} +1 -1
  15. package/dist/client/assets/{chunk-727SXJPM-C4DOvpJT.js → chunk-727SXJPM-Vk_bMeuW.js} +1 -1
  16. package/dist/client/assets/{chunk-AQP2D5EJ-CtjeHPBB.js → chunk-AQP2D5EJ-Bv_5j6lW.js} +1 -1
  17. package/dist/client/assets/{chunk-FMBD7UC4-CZA3OvVr.js → chunk-FMBD7UC4-CIwy6WRQ.js} +1 -1
  18. package/dist/client/assets/{chunk-ND2GUHAM-Cbx6nQHm.js → chunk-ND2GUHAM-C-7ZR2Kw.js} +1 -1
  19. package/dist/client/assets/{chunk-QZHKN3VN-3DunELI_.js → chunk-QZHKN3VN-D2pOGWp9.js} +1 -1
  20. package/dist/client/assets/classDiagram-4FO5ZUOK-DZ5eaGnY.js +1 -0
  21. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DZ5eaGnY.js +1 -0
  22. package/dist/client/assets/{cose-bilkent-S5V4N54A-CKYJnuL7.js → cose-bilkent-S5V4N54A-NgRxSzcd.js} +1 -1
  23. package/dist/client/assets/{dagre-BM42HDAG-BrvRwrr_.js → dagre-BM42HDAG-kwaDBrFq.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-BaVLuzcD.js → diagram-2AECGRRQ-B5OMokEe.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-9Cu7Wa7J.js → diagram-5GNKFQAL-9h9Lsrr_.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-XKiCVdjO.js → diagram-KO2AKTUF-DcNC4jPN.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-DerecU5v.js → diagram-LMA3HP47-D41zybvJ.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-BWcREvZ9.js → diagram-OG6HWLK6-D12dQiCG.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-DU3BBQJY.js → erDiagram-TEJ5UH35-brqTv2OJ.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-DXO_IJeR.js → flowDiagram-I6XJVG4X-D6q2xyWg.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-CXiFZEPx.js → ganttDiagram-6RSMTGT7-DlH9o0CJ.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DHewdln-.js → gitGraphDiagram-PVQCEYII-CgNLFhAT.js} +1 -1
  33. package/dist/client/assets/{index-DT5g2AtL.js → index-C-gTQA-n.js} +1 -1
  34. package/dist/client/assets/{index-DD0GkjkG.js → index-DDRzJojo.js} +1 -1
  35. package/dist/client/assets/{index-BTXWIk4x.css → index-DirDnayu.css} +1 -1
  36. package/dist/client/assets/{index-DcIG_8JB.js → index-qO9stCkx.js} +189 -179
  37. package/dist/client/assets/{infoDiagram-5YYISTIA-CN40PAGW.js → infoDiagram-5YYISTIA-ThuQNCvi.js} +1 -1
  38. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-B8KsyuPk.js → ishikawaDiagram-YF4QCWOH-m-2DHbkK.js} +1 -1
  39. package/dist/client/assets/{journeyDiagram-JHISSGLW-BlEb3E_P.js → journeyDiagram-JHISSGLW-CNCSJPeY.js} +1 -1
  40. package/dist/client/assets/{kanban-definition-UN3LZRKU-B080CGS9.js → kanban-definition-UN3LZRKU-CtzjrW3p.js} +1 -1
  41. package/dist/client/assets/{linear-D6Tg-IET.js → linear-BF1Qhpjc.js} +1 -1
  42. package/dist/client/assets/{mermaid.core-DP18nW3T.js → mermaid.core-fKaK1Sz_.js} +4 -4
  43. package/dist/client/assets/{mindmap-definition-RKZ34NQL-bfo7Qm5I.js → mindmap-definition-RKZ34NQL-CXuVRuzz.js} +1 -1
  44. package/dist/client/assets/{pieDiagram-4H26LBE5-ZsPztPu6.js → pieDiagram-4H26LBE5-DdL9uKdO.js} +1 -1
  45. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DKrTleIL.js → quadrantDiagram-W4KKPZXB-C_0FG9xH.js} +1 -1
  46. package/dist/client/assets/{requirementDiagram-4Y6WPE33-D4YX8ZgG.js → requirementDiagram-4Y6WPE33-Qmg8C7k6.js} +1 -1
  47. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Bo-xm6Mc.js → sankeyDiagram-5OEKKPKP-DuIvgSjA.js} +1 -1
  48. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CozgdKp6.js → sequenceDiagram-3UESZ5HK-B4JsFW9i.js} +1 -1
  49. package/dist/client/assets/{stateDiagram-AJRCARHV-CiK61MwV.js → stateDiagram-AJRCARHV-lTFw6Md4.js} +1 -1
  50. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-D2iiMzxh.js +1 -0
  51. package/dist/client/assets/{timeline-definition-PNZ67QCA-CgHoguI7.js → timeline-definition-PNZ67QCA-C7Hc5KbB.js} +1 -1
  52. package/dist/client/assets/{vennDiagram-CIIHVFJN-TY32dxQb.js → vennDiagram-CIIHVFJN-DMyGzBh7.js} +1 -1
  53. package/dist/client/assets/{wardley-L42UT6IY-C6Q7VFwH.js → wardley-L42UT6IY-BjA5T0YY.js} +1 -1
  54. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-nZLnVsQL.js → wardleyDiagram-YWT4CUSO-BhOipIZG.js} +1 -1
  55. package/dist/client/assets/{xychartDiagram-2RQKCTM6-DHdYRHEr.js → xychartDiagram-2RQKCTM6-Czx4--PM.js} +1 -1
  56. package/dist/client/index.html +2 -2
  57. package/dist/core/references/find-references.d.ts +13 -0
  58. package/dist/core/references/find-references.js +41 -0
  59. package/dist/core/references/find-references.js.map +1 -0
  60. package/dist/core/references/index.d.ts +2 -0
  61. package/dist/core/references/index.js +2 -0
  62. package/dist/core/references/index.js.map +1 -0
  63. package/dist/core/references/types.d.ts +45 -0
  64. package/dist/core/references/types.js +9 -0
  65. package/dist/core/references/types.js.map +1 -0
  66. package/dist/server/config.d.ts +9 -0
  67. package/dist/server/config.js +6 -0
  68. package/dist/server/config.js.map +1 -1
  69. package/dist/server/core/plugin-host/entities-router.d.ts +2 -1
  70. package/dist/server/core/plugin-host/entities-router.js +19 -13
  71. package/dist/server/core/plugin-host/entities-router.js.map +1 -1
  72. package/dist/server/core/plugin-host/host.js +4 -9
  73. package/dist/server/core/plugin-host/host.js.map +1 -1
  74. package/dist/server/core/plugin-host/types.d.ts +9 -14
  75. package/dist/server/db/migrations/035_m29_slug_identity.sql +248 -0
  76. package/dist/server/domain/raw-entity-reader.d.ts +3 -5
  77. package/dist/server/domain/raw-entity-reader.js +28 -39
  78. package/dist/server/domain/raw-entity-reader.js.map +1 -1
  79. package/dist/server/entities/ac/ac-analysis.service.d.ts +54 -0
  80. package/dist/server/entities/ac/ac-analysis.service.js +162 -0
  81. package/dist/server/entities/ac/ac-analysis.service.js.map +1 -0
  82. package/dist/server/entities/ac/mcp-server.d.ts +8 -0
  83. package/dist/server/entities/ac/mcp-server.js +30 -2
  84. package/dist/server/entities/ac/mcp-server.js.map +1 -1
  85. package/dist/server/entities/ac/plugin.js +4 -2
  86. package/dist/server/entities/ac/plugin.js.map +1 -1
  87. package/dist/server/entities/ac/serializer.js +1 -1
  88. package/dist/server/entities/ac/serializer.js.map +1 -1
  89. package/dist/server/entities/ac/services.d.ts +19 -7
  90. package/dist/server/entities/ac/services.js +65 -42
  91. package/dist/server/entities/ac/services.js.map +1 -1
  92. package/dist/server/entities/database-table/plugin.js +1 -2
  93. package/dist/server/entities/database-table/plugin.js.map +1 -1
  94. package/dist/server/entities/database-table/serializer.js +1 -1
  95. package/dist/server/entities/database-table/serializer.js.map +1 -1
  96. package/dist/server/entities/database-table/services.d.ts +19 -7
  97. package/dist/server/entities/database-table/services.js +74 -47
  98. package/dist/server/entities/database-table/services.js.map +1 -1
  99. package/dist/server/entities/dto/plugin.js +1 -2
  100. package/dist/server/entities/dto/plugin.js.map +1 -1
  101. package/dist/server/entities/dto/serializer.js +2 -2
  102. package/dist/server/entities/dto/serializer.js.map +1 -1
  103. package/dist/server/entities/dto/services.d.ts +19 -7
  104. package/dist/server/entities/dto/services.js +70 -47
  105. package/dist/server/entities/dto/services.js.map +1 -1
  106. package/dist/server/entities/endpoint/plugin.js +1 -2
  107. package/dist/server/entities/endpoint/plugin.js.map +1 -1
  108. package/dist/server/entities/endpoint/serializer.js +4 -4
  109. package/dist/server/entities/endpoint/serializer.js.map +1 -1
  110. package/dist/server/entities/endpoint/services.d.ts +21 -9
  111. package/dist/server/entities/endpoint/services.js +91 -63
  112. package/dist/server/entities/endpoint/services.js.map +1 -1
  113. package/dist/server/entities/mutate-opts.d.ts +15 -0
  114. package/dist/server/entities/mutate-opts.js +2 -0
  115. package/dist/server/entities/mutate-opts.js.map +1 -0
  116. package/dist/server/entities/ui-view/plugin.js +1 -2
  117. package/dist/server/entities/ui-view/plugin.js.map +1 -1
  118. package/dist/server/entities/ui-view/serializer.js +1 -1
  119. package/dist/server/entities/ui-view/serializer.js.map +1 -1
  120. package/dist/server/entities/ui-view/services.d.ts +19 -7
  121. package/dist/server/entities/ui-view/services.js +65 -42
  122. package/dist/server/entities/ui-view/services.js.map +1 -1
  123. package/dist/server/fs/entities-watcher.d.ts +31 -0
  124. package/dist/server/fs/entities-watcher.js +68 -0
  125. package/dist/server/fs/entities-watcher.js.map +1 -0
  126. package/dist/server/fs/watcher.js +7 -1
  127. package/dist/server/fs/watcher.js.map +1 -1
  128. package/dist/server/index.js +112 -6
  129. package/dist/server/index.js.map +1 -1
  130. package/dist/server/mcp/reference-tools.d.ts +3 -0
  131. package/dist/server/mcp/reference-tools.js +25 -161
  132. package/dist/server/mcp/reference-tools.js.map +1 -1
  133. package/dist/server/routes/static.d.ts +11 -0
  134. package/dist/server/routes/static.js +44 -0
  135. package/dist/server/routes/static.js.map +1 -0
  136. package/dist/server/services/entity-indexer.d.ts +42 -0
  137. package/dist/server/services/entity-indexer.js +179 -0
  138. package/dist/server/services/entity-indexer.js.map +1 -0
  139. package/dist/server/services/entity-store.d.ts +68 -0
  140. package/dist/server/services/entity-store.js +162 -0
  141. package/dist/server/services/entity-store.js.map +1 -0
  142. package/dist/server/services/entity-writer.d.ts +12 -1
  143. package/dist/server/services/entity-writer.js +22 -11
  144. package/dist/server/services/entity-writer.js.map +1 -1
  145. package/dist/server/services/git.js +6 -1
  146. package/dist/server/services/git.js.map +1 -1
  147. package/dist/server/services/pages.js +5 -1
  148. package/dist/server/services/pages.js.map +1 -1
  149. package/dist/server/services/references.d.ts +25 -0
  150. package/dist/server/services/references.js +102 -21
  151. package/dist/server/services/references.js.map +1 -1
  152. package/dist/server/services/release.d.ts +10 -10
  153. package/dist/server/services/release.js +32 -63
  154. package/dist/server/services/release.js.map +1 -1
  155. package/dist/server/services/section-indexer.d.ts +0 -1
  156. package/dist/server/services/section-indexer.js +5 -7
  157. package/dist/server/services/section-indexer.js.map +1 -1
  158. package/dist/server/services/skill-registry.d.ts +28 -1
  159. package/dist/server/services/skill-registry.js +51 -10
  160. package/dist/server/services/skill-registry.js.map +1 -1
  161. package/dist/server/services/static-html.d.ts +24 -0
  162. package/dist/server/services/static-html.js +49 -0
  163. package/dist/server/services/static-html.js.map +1 -0
  164. package/dist/server/services/tags.d.ts +13 -3
  165. package/dist/server/services/tags.js +65 -26
  166. package/dist/server/services/tags.js.map +1 -1
  167. package/dist/server/services/versions.d.ts +7 -7
  168. package/dist/server/services/versions.js +34 -37
  169. package/dist/server/services/versions.js.map +1 -1
  170. package/dist/shared/entities.d.ts +2 -2
  171. package/dist/shared/types.d.ts +9 -0
  172. package/dist/shared/xml-tags.d.ts +8 -0
  173. package/dist/shared/xml-tags.js +24 -0
  174. package/dist/shared/xml-tags.js.map +1 -1
  175. package/package.json +1 -1
  176. package/dist/client/assets/channel-BqjILLUr.js +0 -1
  177. package/dist/client/assets/classDiagram-4FO5ZUOK-LjT84-kK.js +0 -1
  178. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-LjT84-kK.js +0 -1
  179. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-C6-8M5Sb.js +0 -1
  180. package/dist/server/db/migrations/026_ac_seed.sql +0 -75
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Router } from 'express';
2
2
  import type { TagsService } from '../../services/tags.js';
3
3
  import type { VersionService } from '../../services/versions.js';
4
+ import type { EntityStore } from '../../services/entity-store.js';
4
5
  /**
5
6
  * Cross-cutting host-owned router for /api/entities/:type/:slug/...:
6
7
  * - GET versions, GET version detail
@@ -8,4 +9,4 @@ import type { VersionService } from '../../services/versions.js';
8
9
  * Lives under core/plugin-host/ because the URL spans all plugins; per-plugin
9
10
  * routes (CRUD) stay inside their own vertical slice.
10
11
  */
11
- export declare function entitiesRouter(tags: TagsService, versions: VersionService): Router;
12
+ export declare function entitiesRouter(tags: TagsService, versions: VersionService, store: EntityStore): Router;
@@ -1,16 +1,16 @@
1
1
  import { Router } from 'express';
2
+ import { isRawEntityType } from '../../domain/raw-entity-reader.js';
2
3
  import { DomainError } from '../../services/tags.js';
3
4
  import { errorHandler } from '../../routes/errors.js';
4
5
  import { pluginHost } from './host.js';
5
6
  /**
6
- * Resolve `(type, slug) id` via the plugin host's runtime resolver registry.
7
- * Throws DomainError('NOT_FOUND') if the entity does not exist.
7
+ * M29: assert `(type, slug)` names an existing entity (slug is the sole
8
+ * identity). Throws DomainError('NOT_FOUND') otherwise.
8
9
  */
9
- function resolveEntityId(type, slug) {
10
- const id = pluginHost.resolveEntityId(type, slug);
11
- if (id == null)
10
+ function assertExists(type, slug) {
11
+ if (!pluginHost.entityExists(type, slug)) {
12
12
  throw new DomainError('NOT_FOUND', `${type} '${slug}' not found`);
13
- return id;
13
+ }
14
14
  }
15
15
  /**
16
16
  * Validate that the `type` URL parameter names a known plugin (or the special
@@ -30,13 +30,14 @@ function assertType(type) {
30
30
  * Lives under core/plugin-host/ because the URL spans all plugins; per-plugin
31
31
  * routes (CRUD) stay inside their own vertical slice.
32
32
  */
33
- export function entitiesRouter(tags, versions) {
33
+ export function entitiesRouter(tags, versions, store) {
34
34
  const router = Router();
35
35
  router.get('/:type/:slug/versions', (req, res, next) => {
36
36
  try {
37
37
  const type = assertType(req.params.type);
38
- const id = resolveEntityId(type, req.params.slug);
39
- res.json({ versions: versions.listVersions(type, id) });
38
+ const slug = req.params.slug;
39
+ assertExists(type, slug);
40
+ res.json({ versions: versions.listVersions(type, slug) });
40
41
  }
41
42
  catch (err) {
42
43
  next(err);
@@ -45,9 +46,10 @@ export function entitiesRouter(tags, versions) {
45
46
  router.get('/:type/:slug/versions/:version', (req, res, next) => {
46
47
  try {
47
48
  const type = assertType(req.params.type);
48
- const id = resolveEntityId(type, req.params.slug);
49
+ const slug = req.params.slug;
50
+ assertExists(type, slug);
49
51
  const version = Number(req.params.version);
50
- const detail = versions.getVersion(type, id, version);
52
+ const detail = versions.getVersion(type, slug, version);
51
53
  if (!detail)
52
54
  return res.status(404).json({ error: { code: 'NOT_FOUND', message: 'version not found' } });
53
55
  res.json(detail);
@@ -59,12 +61,16 @@ export function entitiesRouter(tags, versions) {
59
61
  router.post('/:type/:slug/tags', (req, res, next) => {
60
62
  try {
61
63
  const type = assertType(req.params.type);
62
- const id = resolveEntityId(type, req.params.slug);
64
+ const slug = req.params.slug;
65
+ assertExists(type, slug);
63
66
  const body = req.body;
64
67
  if (!Array.isArray(body.tags)) {
65
68
  return res.status(400).json({ error: { code: 'VALIDATION', message: 'tags[] required' } });
66
69
  }
67
- const assigned = tags.assignTags(type, id, body.tags);
70
+ const assigned = tags.assignTags(type, slug, body.tags);
71
+ // M29: tag set changed → re-persist the entity file (its tags[]).
72
+ if (isRawEntityType(type))
73
+ store.persist(type, slug);
68
74
  res.json({ tags: assigned });
69
75
  }
70
76
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"entities-router.js","sourceRoot":"","sources":["../../../../src/server/core/plugin-host/entities-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entities-router.js","sourceRoot":"","sources":["../../../../src/server/core/plugin-host/entities-router.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,6 @@ class PluginHostImpl {
12
12
  modules = new Map();
13
13
  activeTypes = null; // null = all active
14
14
  unknownTypes = [];
15
- idResolvers = new Map();
16
15
  mcpServerFactories = new Map();
17
16
  entityServices = new Map();
18
17
  registerBackendModule(module) {
@@ -80,15 +79,11 @@ class PluginHostImpl {
80
79
  server: factory(),
81
80
  }));
82
81
  }
83
- setIdResolver(type, fn) {
84
- this.idResolvers.set(type, fn);
85
- }
86
- resolveEntityId(type, slug) {
87
- const fn = this.idResolvers.get(type);
88
- return fn ? fn(slug) : null;
89
- }
90
82
  entityExists(type, slug) {
91
- return this.resolveEntityId(type, slug) !== null;
83
+ // M29: slug is the sole identity. Existence is a slug lookup via the
84
+ // registered entity service (every active type exposes getBySlug).
85
+ const service = this.entityServices.get(type);
86
+ return service?.getBySlug ? service.getBySlug(slug) != null : false;
92
87
  }
93
88
  registerEntityService(type, service) {
94
89
  this.entityServices.set(type, service);
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../src/server/core/plugin-host/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../src/server/core/plugin-host/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAE5F,MAAM,cAAc;IACV,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC3C,WAAW,GAAuB,IAAI,CAAC,CAAC,oBAAoB;IAC5D,YAAY,GAAa,EAAE,CAAC;IAC5B,kBAAkB,GAAG,IAAI,GAAG,EAAmC,CAAC;IAChE,cAAc,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEpD,qBAAqB,CAAC,MAAqB;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,WAAW,CAAC,eAA4C;QACtD,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;gBACxC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAC1C,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED,YAAY,CAAC,GAAiB;QAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,IAAY,EAAE,OAAgC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7E,IAAI;YACJ,MAAM,EAAE,OAAO,EAAE;SAClB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,IAAY;QACrC,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAE/B,CAAC;QACd,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACtE,CAAC;IAED,qBAAqB,CAAC,IAAY,EAAE,OAAgB;QAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED,4EAA4E;IAE5E,QAAQ,CAAC,IAAY,EAAE,MAAe,EAAE,GAAqB;QAC3D,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAkB,EAAE,GAAmB;QAC3D,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,CAAe,EAAE,CAAe,EAAE,IAAY;QAC/D,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,mBAAmB,CAAC,EAAY;QAC9B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC9C,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAoC,CAAC;gBACpE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CACV,sEAAsE,CAAC,CAAC,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAC1G,CAAC;gBACF,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAe,IAAI,cAAc,EAAE,CAAC"}
@@ -15,6 +15,7 @@ import type { TagsService } from '../../services/tags.js';
15
15
  import type { VersionService } from '../../services/versions.js';
16
16
  import type { ReferencesService } from '../../services/references.js';
17
17
  import type { WsGateway } from '../../ws/gateway.js';
18
+ import type { EntityStore } from '../../services/entity-store.js';
18
19
  export type SqlMigration = {
19
20
  /** Per-plugin sequential version. Starts at 1 (post-baseline). */
20
21
  version: number;
@@ -37,10 +38,14 @@ export interface RouteRegistration {
37
38
  export interface MountContext {
38
39
  app: Application;
39
40
  db: Database;
41
+ /** Project root — needed by plugins that run an LLM adapter (e.g. ac-tools analyze). */
42
+ cwd: string;
40
43
  ws: WsGateway;
41
44
  tagsService: TagsService;
42
45
  versionService: VersionService;
43
46
  referencesService: ReferencesService;
47
+ /** M29: file store — entity services persist their JSON file after each mutation. */
48
+ entityStore: EntityStore;
44
49
  /**
45
50
  * Register a *factory* that builds a fresh MCP server instance. The host
46
51
  * invokes it once per agent turn (see `buildMcpServers`) so each
@@ -49,7 +54,6 @@ export interface MountContext {
49
54
  * instance already holds a transport.
50
55
  */
51
56
  registerMcpServer(name: string, factory: () => McpServerInstance): void;
52
- setIdResolver(type: string, fn: (slug: string) => number | null): void;
53
57
  /**
54
58
  * M17: register the entity's L2 service with the host so cross-cutting
55
59
  * consumers (release restore) can drive idempotent UPSERT through normal
@@ -60,7 +64,7 @@ export interface MountContext {
60
64
  /**
61
65
  * Per-plugin mount hook. Constructs the entity service from cross-cutting
62
66
  * deps + db, mounts its Express subrouter under `/api${pathPrefix}`, registers
63
- * the MCP server as `${type}-tools`, and wires the id resolver.
67
+ * the MCP server as `${type}-tools`, and registers the entity service.
64
68
  */
65
69
  export type PluginMountFn = (ctx: MountContext) => void;
66
70
  export interface BackendModule extends EntityModuleManifest {
@@ -68,12 +72,6 @@ export interface BackendModule extends EntityModuleManifest {
68
72
  serializer: EntitySerializer<unknown>;
69
73
  /** M05 — system prompt contribution composed by buildSystemPrompt. */
70
74
  systemPrompt: SystemPromptContribution;
71
- /**
72
- * Resolve an entity row id from its slug. Used by section-indexer and
73
- * reference-tools to translate page-level mentions into FK-eligible ids
74
- * without knowing the entity table directly.
75
- */
76
- getIdBySlug?: (slug: string) => number | null;
77
75
  /**
78
76
  * L1–L4 backend slots. The `mount` hook is the single entry point used by
79
77
  * `pluginHost.mountBackend(ctx)` — it owns service construction, route
@@ -134,13 +132,10 @@ export interface PluginHost {
134
132
  */
135
133
  computeEntityCounts(db: Database): Record<string, number>;
136
134
  /**
137
- * Runtime id resolver registry. Populated by index.ts after services are
138
- * instantiated; consumed by section-indexer and reference-tools to map
139
- * `(type, slug) entity_id` without per-type switches.
135
+ * M29: existence check by slug (the sole entity identity). Delegates to the
136
+ * registered entity service's `getBySlug`. Consumed by section-indexer and
137
+ * reference-tools to validate page-level mentions without per-type switches.
140
138
  */
141
- setIdResolver(type: string, fn: (slug: string) => number | null): void;
142
- resolveEntityId(type: string, slug: string): number | null;
143
- /** Convenience: true if `(type, slug)` resolves to a row id via setIdResolver. */
144
139
  entityExists(type: string, slug: string): boolean;
145
140
  /**
146
141
  * M17 entity service registry. Plugins register their L2 service during
@@ -0,0 +1,248 @@
1
+ -- M29 Entity Store — slug becomes the sole identity of entities (decyzja #13).
2
+ -- Drop the integer surrogate `id` from all entity tables + `tag`, and convert
3
+ -- every polymorphic/junction table that references entities from entity_id
4
+ -- (INTEGER) to entity_slug/tag_slug/endpoint_slug/dto_slug (TEXT).
5
+ --
6
+ -- This migration runs inside migrate.ts's FK-disabled batch (PRAGMA
7
+ -- foreign_keys = OFF around the whole run; each file is its own transaction).
8
+ -- Because FK enforcement is OFF, dropping an old parent table does NOT
9
+ -- cascade-delete children — the standard SQLite create-new/copy/drop/rename
10
+ -- table-rebuild is safe here.
11
+ --
12
+ -- ORDERING IS LOAD-BEARING: the entity_id -> slug backfills (steps 1-4) read
13
+ -- the soon-to-be-dropped `id` columns, so they MUST run before the entity
14
+ -- tables are rebuilt (step 5). Junctions/version are rebuilt last (step 6),
15
+ -- once the slug-PK parents exist for the FK declarations.
16
+ --
17
+ -- Orphan policy (brief slugpk001 / forimpl01 §2): rows whose entity was deleted
18
+ -- before this migration backfill to NULL and are dropped. Persistent history of
19
+ -- deleted/renamed entities lives in git (the entity JSON files), not here.
20
+
21
+ ------------------------------------------------------------------------
22
+ -- STEP 1 — entity_version: entity_id -> entity_slug (reads old id columns)
23
+ ------------------------------------------------------------------------
24
+ ALTER TABLE entity_version ADD COLUMN entity_slug TEXT;
25
+
26
+ UPDATE entity_version SET entity_slug =
27
+ (SELECT slug FROM endpoint WHERE endpoint.id = entity_version.entity_id) WHERE entity_type = 'endpoint';
28
+ UPDATE entity_version SET entity_slug =
29
+ (SELECT slug FROM dto WHERE dto.id = entity_version.entity_id) WHERE entity_type = 'dto';
30
+ UPDATE entity_version SET entity_slug =
31
+ (SELECT slug FROM database_table WHERE database_table.id = entity_version.entity_id) WHERE entity_type = 'database-table';
32
+ UPDATE entity_version SET entity_slug =
33
+ (SELECT slug FROM ui_view WHERE ui_view.id = entity_version.entity_id) WHERE entity_type = 'ui-view';
34
+ UPDATE entity_version SET entity_slug =
35
+ (SELECT slug FROM ac WHERE ac.id = entity_version.entity_id) WHERE entity_type = 'ac';
36
+
37
+ DELETE FROM entity_version WHERE entity_slug IS NULL; -- orphans (entity deleted pre-migration)
38
+
39
+ ------------------------------------------------------------------------
40
+ -- STEP 2 — section_entity_link: entity_id -> entity_slug [brief gap; spec #13]
41
+ ------------------------------------------------------------------------
42
+ ALTER TABLE section_entity_link ADD COLUMN entity_slug TEXT;
43
+
44
+ UPDATE section_entity_link SET entity_slug =
45
+ (SELECT slug FROM endpoint WHERE endpoint.id = section_entity_link.entity_id) WHERE entity_type = 'endpoint';
46
+ UPDATE section_entity_link SET entity_slug =
47
+ (SELECT slug FROM dto WHERE dto.id = section_entity_link.entity_id) WHERE entity_type = 'dto';
48
+ UPDATE section_entity_link SET entity_slug =
49
+ (SELECT slug FROM database_table WHERE database_table.id = section_entity_link.entity_id) WHERE entity_type = 'database-table';
50
+ UPDATE section_entity_link SET entity_slug =
51
+ (SELECT slug FROM ui_view WHERE ui_view.id = section_entity_link.entity_id) WHERE entity_type = 'ui-view';
52
+ UPDATE section_entity_link SET entity_slug =
53
+ (SELECT slug FROM ac WHERE ac.id = section_entity_link.entity_id) WHERE entity_type = 'ac';
54
+
55
+ DELETE FROM section_entity_link WHERE entity_slug IS NULL;
56
+
57
+ ------------------------------------------------------------------------
58
+ -- STEP 3 — entity_tag: entity_id -> entity_slug, tag_id -> tag_slug
59
+ ------------------------------------------------------------------------
60
+ ALTER TABLE entity_tag ADD COLUMN entity_slug TEXT;
61
+ ALTER TABLE entity_tag ADD COLUMN tag_slug TEXT;
62
+
63
+ UPDATE entity_tag SET tag_slug = (SELECT slug FROM tag WHERE tag.id = entity_tag.tag_id);
64
+
65
+ UPDATE entity_tag SET entity_slug =
66
+ (SELECT slug FROM endpoint WHERE endpoint.id = entity_tag.entity_id) WHERE entity_type = 'endpoint';
67
+ UPDATE entity_tag SET entity_slug =
68
+ (SELECT slug FROM dto WHERE dto.id = entity_tag.entity_id) WHERE entity_type = 'dto';
69
+ UPDATE entity_tag SET entity_slug =
70
+ (SELECT slug FROM database_table WHERE database_table.id = entity_tag.entity_id) WHERE entity_type = 'database-table';
71
+ UPDATE entity_tag SET entity_slug =
72
+ (SELECT slug FROM ui_view WHERE ui_view.id = entity_tag.entity_id) WHERE entity_type = 'ui-view';
73
+ UPDATE entity_tag SET entity_slug =
74
+ (SELECT slug FROM ac WHERE ac.id = entity_tag.entity_id) WHERE entity_type = 'ac';
75
+
76
+ DELETE FROM entity_tag WHERE entity_slug IS NULL OR tag_slug IS NULL;
77
+
78
+ ------------------------------------------------------------------------
79
+ -- STEP 4 — endpoint_dto: endpoint_id/dto_id -> endpoint_slug/dto_slug
80
+ ------------------------------------------------------------------------
81
+ ALTER TABLE endpoint_dto ADD COLUMN endpoint_slug TEXT;
82
+ ALTER TABLE endpoint_dto ADD COLUMN dto_slug TEXT;
83
+
84
+ UPDATE endpoint_dto SET endpoint_slug = (SELECT slug FROM endpoint WHERE endpoint.id = endpoint_dto.endpoint_id);
85
+ UPDATE endpoint_dto SET dto_slug = (SELECT slug FROM dto WHERE dto.id = endpoint_dto.dto_id);
86
+
87
+ DELETE FROM endpoint_dto WHERE endpoint_slug IS NULL OR dto_slug IS NULL;
88
+
89
+ ------------------------------------------------------------------------
90
+ -- STEP 5 — rebuild the 5 entity tables + tag with slug as PRIMARY KEY
91
+ -- (column lists verified against the live schema).
92
+ ------------------------------------------------------------------------
93
+ CREATE TABLE endpoint_new (
94
+ slug TEXT PRIMARY KEY,
95
+ method TEXT NOT NULL,
96
+ path TEXT NOT NULL,
97
+ summary TEXT NOT NULL DEFAULT '',
98
+ description TEXT,
99
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
100
+ updated_at TEXT NOT NULL DEFAULT (datetime('now'))
101
+ );
102
+ INSERT INTO endpoint_new (slug, method, path, summary, description, created_at, updated_at)
103
+ SELECT slug, method, path, summary, description, created_at, updated_at FROM endpoint;
104
+ DROP TABLE endpoint;
105
+ ALTER TABLE endpoint_new RENAME TO endpoint;
106
+
107
+ CREATE TABLE dto_new (
108
+ slug TEXT PRIMARY KEY,
109
+ name TEXT NOT NULL,
110
+ description TEXT,
111
+ fields TEXT NOT NULL DEFAULT '[]',
112
+ examples TEXT NOT NULL DEFAULT '[]',
113
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
114
+ updated_at TEXT NOT NULL DEFAULT (datetime('now'))
115
+ );
116
+ INSERT INTO dto_new (slug, name, description, fields, examples, created_at, updated_at)
117
+ SELECT slug, name, description, fields, examples, created_at, updated_at FROM dto;
118
+ DROP TABLE dto;
119
+ ALTER TABLE dto_new RENAME TO dto;
120
+
121
+ CREATE TABLE database_table_new (
122
+ slug TEXT PRIMARY KEY,
123
+ name TEXT NOT NULL,
124
+ description TEXT,
125
+ columns TEXT NOT NULL DEFAULT '[]',
126
+ indexes TEXT NOT NULL DEFAULT '[]',
127
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
128
+ updated_at TEXT NOT NULL DEFAULT (datetime('now'))
129
+ );
130
+ INSERT INTO database_table_new (slug, name, description, columns, indexes, created_at, updated_at)
131
+ SELECT slug, name, description, columns, indexes, created_at, updated_at FROM database_table;
132
+ DROP TABLE database_table;
133
+ ALTER TABLE database_table_new RENAME TO database_table;
134
+
135
+ CREATE TABLE ui_view_new (
136
+ slug TEXT PRIMARY KEY,
137
+ name TEXT NOT NULL,
138
+ url TEXT,
139
+ description TEXT,
140
+ params TEXT NOT NULL DEFAULT '[]',
141
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
142
+ updated_at TEXT NOT NULL DEFAULT (datetime('now'))
143
+ );
144
+ INSERT INTO ui_view_new (slug, name, url, description, params, created_at, updated_at)
145
+ SELECT slug, name, url, description, params, created_at, updated_at FROM ui_view;
146
+ DROP TABLE ui_view;
147
+ ALTER TABLE ui_view_new RENAME TO ui_view;
148
+
149
+ CREATE TABLE ac_new (
150
+ slug TEXT PRIMARY KEY,
151
+ text TEXT NOT NULL,
152
+ kind TEXT NOT NULL DEFAULT 'requirement',
153
+ status TEXT NOT NULL DEFAULT 'active',
154
+ verifies TEXT NOT NULL DEFAULT '[]',
155
+ description TEXT,
156
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
157
+ updated_at TEXT NOT NULL DEFAULT (datetime('now'))
158
+ );
159
+ INSERT INTO ac_new (slug, text, kind, status, verifies, description, created_at, updated_at)
160
+ SELECT slug, text, kind, status, verifies, description, created_at, updated_at FROM ac;
161
+ DROP TABLE ac;
162
+ ALTER TABLE ac_new RENAME TO ac;
163
+ CREATE INDEX idx_ac_status ON ac(status);
164
+ CREATE INDEX idx_ac_kind ON ac(kind);
165
+
166
+ CREATE TABLE tag_new (
167
+ slug TEXT PRIMARY KEY,
168
+ name TEXT NOT NULL,
169
+ color TEXT,
170
+ description TEXT,
171
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
172
+ updated_at TEXT NOT NULL DEFAULT (datetime('now'))
173
+ );
174
+ INSERT INTO tag_new (slug, name, color, description, created_at, updated_at)
175
+ SELECT slug, name, color, description, created_at, updated_at FROM tag;
176
+ DROP TABLE tag;
177
+ ALTER TABLE tag_new RENAME TO tag;
178
+
179
+ ------------------------------------------------------------------------
180
+ -- STEP 6 — rebuild junctions + version with slug columns + FKs
181
+ -- (parents now have slug PK, so the FK declarations resolve).
182
+ ------------------------------------------------------------------------
183
+ -- ON UPDATE CASCADE: a slug rename of the parent (endpoint/dto) is an UPDATE of
184
+ -- the PK; cascade keeps the junction's FK columns in sync so renames don't trip
185
+ -- the FK constraint (FK enforcement is ON at runtime). ON DELETE CASCADE still
186
+ -- removes the link when the parent entity is deleted.
187
+ CREATE TABLE endpoint_dto_new (
188
+ endpoint_slug TEXT NOT NULL REFERENCES endpoint(slug) ON DELETE CASCADE ON UPDATE CASCADE,
189
+ dto_slug TEXT NOT NULL REFERENCES dto(slug) ON DELETE CASCADE ON UPDATE CASCADE,
190
+ relation TEXT NOT NULL,
191
+ status_code INTEGER,
192
+ UNIQUE(endpoint_slug, dto_slug, relation, status_code)
193
+ );
194
+ INSERT INTO endpoint_dto_new (endpoint_slug, dto_slug, relation, status_code)
195
+ SELECT endpoint_slug, dto_slug, relation, status_code FROM endpoint_dto;
196
+ DROP TABLE endpoint_dto;
197
+ ALTER TABLE endpoint_dto_new RENAME TO endpoint_dto;
198
+ CREATE INDEX idx_endpoint_dto_endpoint ON endpoint_dto(endpoint_slug);
199
+ CREATE INDEX idx_endpoint_dto_dto ON endpoint_dto(dto_slug);
200
+
201
+ CREATE TABLE entity_tag_new (
202
+ entity_type TEXT NOT NULL,
203
+ entity_slug TEXT NOT NULL, -- polymorphic, NOT a FK (entity rename followed explicitly in services)
204
+ tag_slug TEXT NOT NULL REFERENCES tag(slug) ON DELETE CASCADE ON UPDATE CASCADE,
205
+ UNIQUE(entity_type, entity_slug, tag_slug)
206
+ );
207
+ INSERT INTO entity_tag_new (entity_type, entity_slug, tag_slug)
208
+ SELECT entity_type, entity_slug, tag_slug FROM entity_tag;
209
+ DROP TABLE entity_tag;
210
+ ALTER TABLE entity_tag_new RENAME TO entity_tag;
211
+ CREATE INDEX idx_entity_tag_tag_slug ON entity_tag(tag_slug);
212
+ CREATE INDEX idx_entity_tag_entity ON entity_tag(entity_type, entity_slug);
213
+
214
+ CREATE TABLE section_entity_link_new (
215
+ anchor TEXT NOT NULL REFERENCES section_index(anchor) ON DELETE CASCADE,
216
+ entity_type TEXT NOT NULL,
217
+ entity_slug TEXT NOT NULL, -- polymorphic, NOT a FK
218
+ relation TEXT NOT NULL DEFAULT 'describes',
219
+ UNIQUE(anchor, entity_type, entity_slug)
220
+ );
221
+ INSERT INTO section_entity_link_new (anchor, entity_type, entity_slug, relation)
222
+ SELECT anchor, entity_type, entity_slug, relation FROM section_entity_link;
223
+ DROP TABLE section_entity_link;
224
+ ALTER TABLE section_entity_link_new RENAME TO section_entity_link;
225
+ CREATE INDEX idx_sel_anchor ON section_entity_link(anchor);
226
+ CREATE INDEX idx_sel_entity ON section_entity_link(entity_type, entity_slug);
227
+
228
+ CREATE TABLE entity_version_new (
229
+ entity_type TEXT NOT NULL,
230
+ entity_slug TEXT NOT NULL,
231
+ version INTEGER NOT NULL,
232
+ data TEXT NOT NULL,
233
+ changed_by TEXT NOT NULL,
234
+ change_summary TEXT,
235
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
236
+ release_id INTEGER NULL,
237
+ serializer_version TEXT NULL,
238
+ op TEXT NULL,
239
+ PRIMARY KEY (entity_type, entity_slug, version)
240
+ );
241
+ INSERT INTO entity_version_new
242
+ (entity_type, entity_slug, version, data, changed_by, change_summary, created_at, release_id, serializer_version, op)
243
+ SELECT entity_type, entity_slug, version, data, changed_by, change_summary, created_at, release_id, serializer_version, op
244
+ FROM entity_version;
245
+ DROP TABLE entity_version;
246
+ ALTER TABLE entity_version_new RENAME TO entity_version;
247
+ CREATE INDEX idx_ev_entity ON entity_version(entity_type, entity_slug);
248
+ CREATE INDEX idx_entity_version_release ON entity_version(release_id);
@@ -2,7 +2,6 @@ import type Database from 'better-sqlite3';
2
2
  export type RawEntityType = 'endpoint' | 'dto' | 'database-table' | 'ui-view' | 'ac';
3
3
  export interface RawEntity {
4
4
  type: RawEntityType;
5
- id: number;
6
5
  slug: string;
7
6
  data: Record<string, unknown>;
8
7
  tags: string[];
@@ -42,7 +41,6 @@ export declare class RawEntityReader {
42
41
  private db;
43
42
  constructor(db: Database.Database);
44
43
  getEntity(type: RawEntityType, slug: string): RawEntity | null;
45
- getEntityById(type: RawEntityType, id: number): RawEntity | null;
46
44
  getEntities(type: RawEntityType, slugs: string[]): {
47
45
  items: RawEntity[];
48
46
  missing: string[];
@@ -54,16 +52,16 @@ export declare class RawEntityReader {
54
52
  listSlugs(type: RawEntityType): string[];
55
53
  listTags(): RawTag[];
56
54
  /** Returns sections that referenced the given entity (populated by section-indexer). */
57
- findSectionReferences(type: RawEntityType, entityId: number): SectionEntityRef[];
55
+ findSectionReferences(type: RawEntityType, slug: string): SectionEntityRef[];
58
56
  /** Endpoint-DTO links (denormalised). */
59
- findEndpointDtos(endpointId: number): Array<{
57
+ findEndpointDtos(endpointSlug: string): Array<{
60
58
  dtoSlug: string;
61
59
  dtoName: string;
62
60
  relation: string;
63
61
  statusCode: number | null;
64
62
  }>;
65
63
  /** Reverse: endpoints linked to a DTO. */
66
- findDtoEndpoints(dtoId: number): Array<{
64
+ findDtoEndpoints(dtoSlug: string): Array<{
67
65
  endpointSlug: string;
68
66
  method: string;
69
67
  path: string;