@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.
- package/CHANGELOG.md +18 -0
- package/dist/bin/c4s/commands/find-references.d.ts +13 -0
- package/dist/bin/c4s/commands/find-references.js +81 -0
- package/dist/bin/c4s/commands/find-references.js.map +1 -0
- package/dist/bin/c4s.js +6 -0
- package/dist/bin/c4s.js.map +1 -1
- package/dist/client/assets/{arc-E0e7X_zn.js → arc-Bm0IE9-2.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BzlqOVZv.js → architectureDiagram-3BPJPVTR-GJ4QxX0Q.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-BIQcApN7.js → blockDiagram-GPEHLZMM-C9rZbfxq.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-CDU0V1yk.js → c4Diagram-AAUBKEIU-DyVuHGeV.js} +1 -1
- package/dist/client/assets/channel-BGn39mc8.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-PtDSwC5f.js → chunk-2J33WTMH-DePzEFC8.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-DTUPWrSO.js → chunk-4BX2VUAB-NZkVFx6P.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-Cpd59xZT.js → chunk-55IACEB6-DSelTsfa.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-C4DOvpJT.js → chunk-727SXJPM-Vk_bMeuW.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-CtjeHPBB.js → chunk-AQP2D5EJ-Bv_5j6lW.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-CZA3OvVr.js → chunk-FMBD7UC4-CIwy6WRQ.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-Cbx6nQHm.js → chunk-ND2GUHAM-C-7ZR2Kw.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-3DunELI_.js → chunk-QZHKN3VN-D2pOGWp9.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DZ5eaGnY.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DZ5eaGnY.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-CKYJnuL7.js → cose-bilkent-S5V4N54A-NgRxSzcd.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-BrvRwrr_.js → dagre-BM42HDAG-kwaDBrFq.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-BaVLuzcD.js → diagram-2AECGRRQ-B5OMokEe.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-9Cu7Wa7J.js → diagram-5GNKFQAL-9h9Lsrr_.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-XKiCVdjO.js → diagram-KO2AKTUF-DcNC4jPN.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-DerecU5v.js → diagram-LMA3HP47-D41zybvJ.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-BWcREvZ9.js → diagram-OG6HWLK6-D12dQiCG.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-DU3BBQJY.js → erDiagram-TEJ5UH35-brqTv2OJ.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-DXO_IJeR.js → flowDiagram-I6XJVG4X-D6q2xyWg.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-CXiFZEPx.js → ganttDiagram-6RSMTGT7-DlH9o0CJ.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DHewdln-.js → gitGraphDiagram-PVQCEYII-CgNLFhAT.js} +1 -1
- package/dist/client/assets/{index-DT5g2AtL.js → index-C-gTQA-n.js} +1 -1
- package/dist/client/assets/{index-DD0GkjkG.js → index-DDRzJojo.js} +1 -1
- package/dist/client/assets/{index-BTXWIk4x.css → index-DirDnayu.css} +1 -1
- package/dist/client/assets/{index-DcIG_8JB.js → index-qO9stCkx.js} +189 -179
- package/dist/client/assets/{infoDiagram-5YYISTIA-CN40PAGW.js → infoDiagram-5YYISTIA-ThuQNCvi.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-B8KsyuPk.js → ishikawaDiagram-YF4QCWOH-m-2DHbkK.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-BlEb3E_P.js → journeyDiagram-JHISSGLW-CNCSJPeY.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-B080CGS9.js → kanban-definition-UN3LZRKU-CtzjrW3p.js} +1 -1
- package/dist/client/assets/{linear-D6Tg-IET.js → linear-BF1Qhpjc.js} +1 -1
- package/dist/client/assets/{mermaid.core-DP18nW3T.js → mermaid.core-fKaK1Sz_.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-bfo7Qm5I.js → mindmap-definition-RKZ34NQL-CXuVRuzz.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-ZsPztPu6.js → pieDiagram-4H26LBE5-DdL9uKdO.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DKrTleIL.js → quadrantDiagram-W4KKPZXB-C_0FG9xH.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-D4YX8ZgG.js → requirementDiagram-4Y6WPE33-Qmg8C7k6.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Bo-xm6Mc.js → sankeyDiagram-5OEKKPKP-DuIvgSjA.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CozgdKp6.js → sequenceDiagram-3UESZ5HK-B4JsFW9i.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-CiK61MwV.js → stateDiagram-AJRCARHV-lTFw6Md4.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-D2iiMzxh.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-CgHoguI7.js → timeline-definition-PNZ67QCA-C7Hc5KbB.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-TY32dxQb.js → vennDiagram-CIIHVFJN-DMyGzBh7.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-C6Q7VFwH.js → wardley-L42UT6IY-BjA5T0YY.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-nZLnVsQL.js → wardleyDiagram-YWT4CUSO-BhOipIZG.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-DHdYRHEr.js → xychartDiagram-2RQKCTM6-Czx4--PM.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/core/references/find-references.d.ts +13 -0
- package/dist/core/references/find-references.js +41 -0
- package/dist/core/references/find-references.js.map +1 -0
- package/dist/core/references/index.d.ts +2 -0
- package/dist/core/references/index.js +2 -0
- package/dist/core/references/index.js.map +1 -0
- package/dist/core/references/types.d.ts +45 -0
- package/dist/core/references/types.js +9 -0
- package/dist/core/references/types.js.map +1 -0
- package/dist/server/config.d.ts +9 -0
- package/dist/server/config.js +6 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/core/plugin-host/entities-router.d.ts +2 -1
- package/dist/server/core/plugin-host/entities-router.js +19 -13
- package/dist/server/core/plugin-host/entities-router.js.map +1 -1
- package/dist/server/core/plugin-host/host.js +4 -9
- package/dist/server/core/plugin-host/host.js.map +1 -1
- package/dist/server/core/plugin-host/types.d.ts +9 -14
- package/dist/server/db/migrations/035_m29_slug_identity.sql +248 -0
- package/dist/server/domain/raw-entity-reader.d.ts +3 -5
- package/dist/server/domain/raw-entity-reader.js +28 -39
- package/dist/server/domain/raw-entity-reader.js.map +1 -1
- package/dist/server/entities/ac/ac-analysis.service.d.ts +54 -0
- package/dist/server/entities/ac/ac-analysis.service.js +162 -0
- package/dist/server/entities/ac/ac-analysis.service.js.map +1 -0
- package/dist/server/entities/ac/mcp-server.d.ts +8 -0
- package/dist/server/entities/ac/mcp-server.js +30 -2
- package/dist/server/entities/ac/mcp-server.js.map +1 -1
- package/dist/server/entities/ac/plugin.js +4 -2
- package/dist/server/entities/ac/plugin.js.map +1 -1
- package/dist/server/entities/ac/serializer.js +1 -1
- package/dist/server/entities/ac/serializer.js.map +1 -1
- package/dist/server/entities/ac/services.d.ts +19 -7
- package/dist/server/entities/ac/services.js +65 -42
- package/dist/server/entities/ac/services.js.map +1 -1
- package/dist/server/entities/database-table/plugin.js +1 -2
- package/dist/server/entities/database-table/plugin.js.map +1 -1
- package/dist/server/entities/database-table/serializer.js +1 -1
- package/dist/server/entities/database-table/serializer.js.map +1 -1
- package/dist/server/entities/database-table/services.d.ts +19 -7
- package/dist/server/entities/database-table/services.js +74 -47
- package/dist/server/entities/database-table/services.js.map +1 -1
- package/dist/server/entities/dto/plugin.js +1 -2
- package/dist/server/entities/dto/plugin.js.map +1 -1
- package/dist/server/entities/dto/serializer.js +2 -2
- package/dist/server/entities/dto/serializer.js.map +1 -1
- package/dist/server/entities/dto/services.d.ts +19 -7
- package/dist/server/entities/dto/services.js +70 -47
- package/dist/server/entities/dto/services.js.map +1 -1
- package/dist/server/entities/endpoint/plugin.js +1 -2
- package/dist/server/entities/endpoint/plugin.js.map +1 -1
- package/dist/server/entities/endpoint/serializer.js +4 -4
- package/dist/server/entities/endpoint/serializer.js.map +1 -1
- package/dist/server/entities/endpoint/services.d.ts +21 -9
- package/dist/server/entities/endpoint/services.js +91 -63
- package/dist/server/entities/endpoint/services.js.map +1 -1
- package/dist/server/entities/mutate-opts.d.ts +15 -0
- package/dist/server/entities/mutate-opts.js +2 -0
- package/dist/server/entities/mutate-opts.js.map +1 -0
- package/dist/server/entities/ui-view/plugin.js +1 -2
- package/dist/server/entities/ui-view/plugin.js.map +1 -1
- package/dist/server/entities/ui-view/serializer.js +1 -1
- package/dist/server/entities/ui-view/serializer.js.map +1 -1
- package/dist/server/entities/ui-view/services.d.ts +19 -7
- package/dist/server/entities/ui-view/services.js +65 -42
- package/dist/server/entities/ui-view/services.js.map +1 -1
- package/dist/server/fs/entities-watcher.d.ts +31 -0
- package/dist/server/fs/entities-watcher.js +68 -0
- package/dist/server/fs/entities-watcher.js.map +1 -0
- package/dist/server/fs/watcher.js +7 -1
- package/dist/server/fs/watcher.js.map +1 -1
- package/dist/server/index.js +112 -6
- package/dist/server/index.js.map +1 -1
- package/dist/server/mcp/reference-tools.d.ts +3 -0
- package/dist/server/mcp/reference-tools.js +25 -161
- package/dist/server/mcp/reference-tools.js.map +1 -1
- package/dist/server/routes/static.d.ts +11 -0
- package/dist/server/routes/static.js +44 -0
- package/dist/server/routes/static.js.map +1 -0
- package/dist/server/services/entity-indexer.d.ts +42 -0
- package/dist/server/services/entity-indexer.js +179 -0
- package/dist/server/services/entity-indexer.js.map +1 -0
- package/dist/server/services/entity-store.d.ts +68 -0
- package/dist/server/services/entity-store.js +162 -0
- package/dist/server/services/entity-store.js.map +1 -0
- package/dist/server/services/entity-writer.d.ts +12 -1
- package/dist/server/services/entity-writer.js +22 -11
- package/dist/server/services/entity-writer.js.map +1 -1
- package/dist/server/services/git.js +6 -1
- package/dist/server/services/git.js.map +1 -1
- package/dist/server/services/pages.js +5 -1
- package/dist/server/services/pages.js.map +1 -1
- package/dist/server/services/references.d.ts +25 -0
- package/dist/server/services/references.js +102 -21
- package/dist/server/services/references.js.map +1 -1
- package/dist/server/services/release.d.ts +10 -10
- package/dist/server/services/release.js +32 -63
- package/dist/server/services/release.js.map +1 -1
- package/dist/server/services/section-indexer.d.ts +0 -1
- package/dist/server/services/section-indexer.js +5 -7
- package/dist/server/services/section-indexer.js.map +1 -1
- package/dist/server/services/skill-registry.d.ts +28 -1
- package/dist/server/services/skill-registry.js +51 -10
- package/dist/server/services/skill-registry.js.map +1 -1
- package/dist/server/services/static-html.d.ts +24 -0
- package/dist/server/services/static-html.js +49 -0
- package/dist/server/services/static-html.js.map +1 -0
- package/dist/server/services/tags.d.ts +13 -3
- package/dist/server/services/tags.js +65 -26
- package/dist/server/services/tags.js.map +1 -1
- package/dist/server/services/versions.d.ts +7 -7
- package/dist/server/services/versions.js +34 -37
- package/dist/server/services/versions.js.map +1 -1
- package/dist/shared/entities.d.ts +2 -2
- package/dist/shared/types.d.ts +9 -0
- package/dist/shared/xml-tags.d.ts +8 -0
- package/dist/shared/xml-tags.js +24 -0
- package/dist/shared/xml-tags.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/channel-BqjILLUr.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-LjT84-kK.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-LjT84-kK.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-C6-8M5Sb.js +0 -1
- package/dist/server/db/migrations/026_ac_seed.sql +0 -75
|
@@ -25,13 +25,6 @@ export class RawEntityReader {
|
|
|
25
25
|
return null;
|
|
26
26
|
return this.hydrate(type, row);
|
|
27
27
|
}
|
|
28
|
-
getEntityById(type, id) {
|
|
29
|
-
const table = ENTITY_TABLES[type];
|
|
30
|
-
const row = this.db.prepare(`SELECT * FROM ${table} WHERE id = ?`).get(id);
|
|
31
|
-
if (!row)
|
|
32
|
-
return null;
|
|
33
|
-
return this.hydrate(type, row);
|
|
34
|
-
}
|
|
35
28
|
getEntities(type, slugs) {
|
|
36
29
|
const items = [];
|
|
37
30
|
const missing = [];
|
|
@@ -63,13 +56,12 @@ export class RawEntityReader {
|
|
|
63
56
|
if (filter === 'and') {
|
|
64
57
|
sql = `
|
|
65
58
|
SELECT e.* FROM ${table} e
|
|
66
|
-
WHERE e.
|
|
67
|
-
SELECT et.
|
|
59
|
+
WHERE e.slug IN (
|
|
60
|
+
SELECT et.entity_slug
|
|
68
61
|
FROM entity_tag et
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
HAVING COUNT(DISTINCT t.slug) = ?
|
|
62
|
+
WHERE et.entity_type = ? AND et.tag_slug IN (${placeholders})
|
|
63
|
+
GROUP BY et.entity_slug
|
|
64
|
+
HAVING COUNT(DISTINCT et.tag_slug) = ?
|
|
73
65
|
)
|
|
74
66
|
ORDER BY e.slug
|
|
75
67
|
`;
|
|
@@ -78,10 +70,9 @@ export class RawEntityReader {
|
|
|
78
70
|
else {
|
|
79
71
|
sql = `
|
|
80
72
|
SELECT e.* FROM ${table} e
|
|
81
|
-
WHERE e.
|
|
82
|
-
SELECT et.
|
|
83
|
-
|
|
84
|
-
WHERE et.entity_type = ? AND t.slug IN (${placeholders})
|
|
73
|
+
WHERE e.slug IN (
|
|
74
|
+
SELECT et.entity_slug FROM entity_tag et
|
|
75
|
+
WHERE et.entity_type = ? AND et.tag_slug IN (${placeholders})
|
|
85
76
|
)
|
|
86
77
|
ORDER BY e.slug
|
|
87
78
|
`;
|
|
@@ -111,10 +102,9 @@ export class RawEntityReader {
|
|
|
111
102
|
listTags() {
|
|
112
103
|
const rows = this.db.prepare(`SELECT * FROM tag ORDER BY name`).all();
|
|
113
104
|
const countRows = this.db
|
|
114
|
-
.prepare(`SELECT
|
|
105
|
+
.prepare(`SELECT et.tag_slug AS slug, et.entity_type AS entity_type, COUNT(*) AS c
|
|
115
106
|
FROM entity_tag et
|
|
116
|
-
|
|
117
|
-
GROUP BY t.slug, et.entity_type`)
|
|
107
|
+
GROUP BY et.tag_slug, et.entity_type`)
|
|
118
108
|
.all();
|
|
119
109
|
const countMap = new Map();
|
|
120
110
|
for (const row of countRows) {
|
|
@@ -131,15 +121,15 @@ export class RawEntityReader {
|
|
|
131
121
|
}));
|
|
132
122
|
}
|
|
133
123
|
/** Returns sections that referenced the given entity (populated by section-indexer). */
|
|
134
|
-
findSectionReferences(type,
|
|
124
|
+
findSectionReferences(type, slug) {
|
|
135
125
|
const rows = this.db
|
|
136
126
|
.prepare(`SELECT sel.anchor AS anchor, sel.relation AS relation,
|
|
137
127
|
si.page_path AS page_path, si.heading_text AS heading_text
|
|
138
128
|
FROM section_entity_link sel
|
|
139
129
|
JOIN section_index si ON si.anchor = sel.anchor
|
|
140
|
-
WHERE sel.entity_type = ? AND sel.
|
|
130
|
+
WHERE sel.entity_type = ? AND sel.entity_slug = ?
|
|
141
131
|
ORDER BY si.page_path, si.line_start`)
|
|
142
|
-
.all(type,
|
|
132
|
+
.all(type, slug);
|
|
143
133
|
return rows.map((r) => ({
|
|
144
134
|
anchor: r.anchor,
|
|
145
135
|
pagePath: r.page_path,
|
|
@@ -148,15 +138,15 @@ export class RawEntityReader {
|
|
|
148
138
|
}));
|
|
149
139
|
}
|
|
150
140
|
/** Endpoint-DTO links (denormalised). */
|
|
151
|
-
findEndpointDtos(
|
|
141
|
+
findEndpointDtos(endpointSlug) {
|
|
152
142
|
const rows = this.db
|
|
153
143
|
.prepare(`SELECT d.slug AS dto_slug, d.name AS dto_name,
|
|
154
144
|
ed.relation AS relation, ed.status_code AS status_code
|
|
155
145
|
FROM endpoint_dto ed
|
|
156
|
-
JOIN dto d ON d.
|
|
157
|
-
WHERE ed.
|
|
146
|
+
JOIN dto d ON d.slug = ed.dto_slug
|
|
147
|
+
WHERE ed.endpoint_slug = ?
|
|
158
148
|
ORDER BY ed.relation, ed.status_code, d.name`)
|
|
159
|
-
.all(
|
|
149
|
+
.all(endpointSlug);
|
|
160
150
|
return rows.map((r) => ({
|
|
161
151
|
dtoSlug: r.dto_slug,
|
|
162
152
|
dtoName: r.dto_name,
|
|
@@ -165,15 +155,15 @@ export class RawEntityReader {
|
|
|
165
155
|
}));
|
|
166
156
|
}
|
|
167
157
|
/** Reverse: endpoints linked to a DTO. */
|
|
168
|
-
findDtoEndpoints(
|
|
158
|
+
findDtoEndpoints(dtoSlug) {
|
|
169
159
|
const rows = this.db
|
|
170
160
|
.prepare(`SELECT e.slug AS slug, e.method AS method, e.path AS path,
|
|
171
161
|
ed.relation AS relation, ed.status_code AS status_code
|
|
172
162
|
FROM endpoint_dto ed
|
|
173
|
-
JOIN endpoint e ON e.
|
|
174
|
-
WHERE ed.
|
|
163
|
+
JOIN endpoint e ON e.slug = ed.endpoint_slug
|
|
164
|
+
WHERE ed.dto_slug = ?
|
|
175
165
|
ORDER BY ed.relation, ed.status_code, e.path`)
|
|
176
|
-
.all(
|
|
166
|
+
.all(dtoSlug);
|
|
177
167
|
return rows.map((r) => ({
|
|
178
168
|
endpointSlug: r.slug,
|
|
179
169
|
method: r.method,
|
|
@@ -183,12 +173,11 @@ export class RawEntityReader {
|
|
|
183
173
|
}));
|
|
184
174
|
}
|
|
185
175
|
hydrate(type, row) {
|
|
186
|
-
const id = row.id;
|
|
187
176
|
const slug = row.slug;
|
|
188
|
-
const tags = this.getEntityTagSlugs(type,
|
|
177
|
+
const tags = this.getEntityTagSlugs(type, slug);
|
|
189
178
|
const data = {};
|
|
190
179
|
for (const [key, value] of Object.entries(row)) {
|
|
191
|
-
if (key === '
|
|
180
|
+
if (key === 'created_at' || key === 'updated_at')
|
|
192
181
|
continue;
|
|
193
182
|
data[key] = value;
|
|
194
183
|
}
|
|
@@ -203,7 +192,7 @@ export class RawEntityReader {
|
|
|
203
192
|
continue;
|
|
204
193
|
data[key] = safeJsonArray(value);
|
|
205
194
|
}
|
|
206
|
-
return { type,
|
|
195
|
+
return { type, slug, data, tags };
|
|
207
196
|
}
|
|
208
197
|
hydrateSection(row) {
|
|
209
198
|
return {
|
|
@@ -217,14 +206,14 @@ export class RawEntityReader {
|
|
|
217
206
|
lineEnd: row.line_end,
|
|
218
207
|
};
|
|
219
208
|
}
|
|
220
|
-
getEntityTagSlugs(type,
|
|
209
|
+
getEntityTagSlugs(type, slug) {
|
|
221
210
|
const rows = this.db
|
|
222
211
|
.prepare(`SELECT t.slug AS slug
|
|
223
212
|
FROM entity_tag et
|
|
224
|
-
JOIN tag t ON t.
|
|
225
|
-
WHERE et.entity_type = ? AND et.
|
|
213
|
+
JOIN tag t ON t.slug = et.tag_slug
|
|
214
|
+
WHERE et.entity_type = ? AND et.entity_slug = ?
|
|
226
215
|
ORDER BY t.name`)
|
|
227
|
-
.all(type,
|
|
216
|
+
.all(type, slug);
|
|
228
217
|
return rows.map((r) => r.slug);
|
|
229
218
|
}
|
|
230
219
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-entity-reader.js","sourceRoot":"","sources":["../../../src/server/domain/raw-entity-reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"raw-entity-reader.js","sourceRoot":"","sources":["../../../src/server/domain/raw-entity-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Database } from 'better-sqlite3';
|
|
2
|
+
import type { AcService } from './services.js';
|
|
3
|
+
import type { PluginHost } from '../../core/plugin-host/types.js';
|
|
4
|
+
export interface AcAnalysisOptions {
|
|
5
|
+
/** Limit to ACs carrying this tag slug. Omit for no tag filter. */
|
|
6
|
+
scope_tag?: string;
|
|
7
|
+
/** Limit to a single AC by slug. Omit to analyse all active ACs. */
|
|
8
|
+
ac_slug?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface AcAnalysisIssue {
|
|
11
|
+
ac_slug: string;
|
|
12
|
+
issue_type: string;
|
|
13
|
+
details: string;
|
|
14
|
+
affected_entity?: {
|
|
15
|
+
type: string;
|
|
16
|
+
slug: string;
|
|
17
|
+
};
|
|
18
|
+
confidence: number;
|
|
19
|
+
suggested_correction?: string;
|
|
20
|
+
}
|
|
21
|
+
export type AcSkippedReason = 'no_verifies' | 'all_verifies_broken' | 'ac_plugin_inactive';
|
|
22
|
+
export interface AcSkippedEntry {
|
|
23
|
+
ac_slug?: string;
|
|
24
|
+
reason: AcSkippedReason;
|
|
25
|
+
}
|
|
26
|
+
export interface AcAnalysisResult {
|
|
27
|
+
issues: AcAnalysisIssue[];
|
|
28
|
+
analyzed_count: number;
|
|
29
|
+
skipped_count: number;
|
|
30
|
+
skipped_reasons: AcSkippedEntry[];
|
|
31
|
+
}
|
|
32
|
+
export interface AcAnalysisDeps {
|
|
33
|
+
acService: AcService;
|
|
34
|
+
db: Database;
|
|
35
|
+
cwd: string;
|
|
36
|
+
host: PluginHost;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* L2 service for the LLM-based AC semantic audit (brief 0.1.45 §1). Owns the
|
|
40
|
+
* logic that used to live inline in the `ac-tools` MCP server: for each active
|
|
41
|
+
* AC it loads `text` + `verifies[]` + the linked entity snapshots, builds a
|
|
42
|
+
* single prompt, and calls the `claude-code` adapter. Read-only, on-demand,
|
|
43
|
+
* non-deterministic.
|
|
44
|
+
*
|
|
45
|
+
* Distinct from the deterministic referential-integrity check (M19
|
|
46
|
+
* `check_consistency` rule 9), which only asks whether a `verifies[]` ref
|
|
47
|
+
* exists — never whether the AC text matches the entity shape.
|
|
48
|
+
*/
|
|
49
|
+
export declare class AcAnalysisService {
|
|
50
|
+
private readonly deps;
|
|
51
|
+
constructor(deps: AcAnalysisDeps);
|
|
52
|
+
analyze(opts?: AcAnalysisOptions): Promise<AcAnalysisResult>;
|
|
53
|
+
}
|
|
54
|
+
export declare function parseIssuesJson(text: string): AcAnalysisIssue[];
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { createAdapter, extractText } from '@inharness-ai/agent-adapters';
|
|
2
|
+
import { RawEntityReader, isRawEntityType, } from '../../domain/raw-entity-reader.js';
|
|
3
|
+
/**
|
|
4
|
+
* L2 service for the LLM-based AC semantic audit (brief 0.1.45 §1). Owns the
|
|
5
|
+
* logic that used to live inline in the `ac-tools` MCP server: for each active
|
|
6
|
+
* AC it loads `text` + `verifies[]` + the linked entity snapshots, builds a
|
|
7
|
+
* single prompt, and calls the `claude-code` adapter. Read-only, on-demand,
|
|
8
|
+
* non-deterministic.
|
|
9
|
+
*
|
|
10
|
+
* Distinct from the deterministic referential-integrity check (M19
|
|
11
|
+
* `check_consistency` rule 9), which only asks whether a `verifies[]` ref
|
|
12
|
+
* exists — never whether the AC text matches the entity shape.
|
|
13
|
+
*/
|
|
14
|
+
export class AcAnalysisService {
|
|
15
|
+
deps;
|
|
16
|
+
constructor(deps) {
|
|
17
|
+
this.deps = deps;
|
|
18
|
+
}
|
|
19
|
+
async analyze(opts = {}) {
|
|
20
|
+
// Inactive guard: if the AC plugin is not active there is nothing to audit.
|
|
21
|
+
// (Structurally unreachable while this service is only reachable through the
|
|
22
|
+
// ac-tools MCP server, which mounts only when AC is active — kept for spec
|
|
23
|
+
// fidelity and future direct callers.)
|
|
24
|
+
if (this.deps.host.getEntity('ac') === null) {
|
|
25
|
+
return {
|
|
26
|
+
issues: [],
|
|
27
|
+
analyzed_count: 0,
|
|
28
|
+
skipped_count: 0,
|
|
29
|
+
skipped_reasons: [{ reason: 'ac_plugin_inactive' }],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const allActive = this.deps.acService.list({ status: 'active' });
|
|
33
|
+
let targets = allActive;
|
|
34
|
+
if (opts.ac_slug) {
|
|
35
|
+
targets = targets.filter((a) => a.slug === opts.ac_slug);
|
|
36
|
+
}
|
|
37
|
+
if (opts.scope_tag) {
|
|
38
|
+
targets = targets.filter((a) => a.tags.includes(opts.scope_tag));
|
|
39
|
+
}
|
|
40
|
+
if (targets.length === 0) {
|
|
41
|
+
return { issues: [], analyzed_count: 0, skipped_count: 0, skipped_reasons: [] };
|
|
42
|
+
}
|
|
43
|
+
const reader = new RawEntityReader(this.deps.db);
|
|
44
|
+
const skipped_reasons = [];
|
|
45
|
+
const dossier = [];
|
|
46
|
+
for (const ac of targets) {
|
|
47
|
+
if (ac.verifies.length === 0) {
|
|
48
|
+
skipped_reasons.push({ ac_slug: ac.slug, reason: 'no_verifies' });
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const linked = ac.verifies.map((v) => {
|
|
52
|
+
if (!isRawEntityType(v.type)) {
|
|
53
|
+
return { type: v.type, slug: v.slug, status: 'unknown-type' };
|
|
54
|
+
}
|
|
55
|
+
const entity = reader.getEntity(v.type, v.slug);
|
|
56
|
+
if (!entity) {
|
|
57
|
+
return { type: v.type, slug: v.slug, status: 'missing' };
|
|
58
|
+
}
|
|
59
|
+
return { type: v.type, slug: v.slug, status: 'active', data: entity.data };
|
|
60
|
+
});
|
|
61
|
+
// An AC whose every verify is missing/unknown-type has nothing to compare
|
|
62
|
+
// the text against — the broken refs are M19's concern (rule 9), not ours.
|
|
63
|
+
const hasResolvable = linked.some((l) => l.status === 'active');
|
|
64
|
+
if (!hasResolvable) {
|
|
65
|
+
skipped_reasons.push({ ac_slug: ac.slug, reason: 'all_verifies_broken' });
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
dossier.push({ slug: ac.slug, text: ac.text, kind: ac.kind, linked });
|
|
69
|
+
}
|
|
70
|
+
if (dossier.length === 0) {
|
|
71
|
+
return {
|
|
72
|
+
issues: [],
|
|
73
|
+
analyzed_count: 0,
|
|
74
|
+
skipped_count: skipped_reasons.length,
|
|
75
|
+
skipped_reasons,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const prompt = buildPrompt(dossier);
|
|
79
|
+
const adapter = createAdapter('claude-code');
|
|
80
|
+
const stream = adapter.execute({
|
|
81
|
+
prompt,
|
|
82
|
+
systemPrompt: 'You output only a single JSON object on one line. No commentary, no code fences.',
|
|
83
|
+
model: 'sonnet-4.6',
|
|
84
|
+
cwd: this.deps.cwd,
|
|
85
|
+
maxTurns: 1,
|
|
86
|
+
});
|
|
87
|
+
const text = await extractText(stream);
|
|
88
|
+
const issues = parseIssuesJson(text);
|
|
89
|
+
return {
|
|
90
|
+
issues,
|
|
91
|
+
analyzed_count: dossier.length,
|
|
92
|
+
skipped_count: skipped_reasons.length,
|
|
93
|
+
skipped_reasons,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function buildPrompt(dossier) {
|
|
98
|
+
return [
|
|
99
|
+
'You are a specification consistency auditor.',
|
|
100
|
+
'',
|
|
101
|
+
'For each Acceptance Criterion (AC) below, decide whether its `text` is semantically consistent with the linked entities (their fields, params, shape).',
|
|
102
|
+
'',
|
|
103
|
+
'Return ONLY a JSON object on a single line, no prose, matching:',
|
|
104
|
+
'{"issues":[{"ac_slug":string,"issue_type":string,"details":string,"affected_entity"?:{"type":string,"slug":string},"confidence":number,"suggested_correction"?:string}]}',
|
|
105
|
+
'',
|
|
106
|
+
'Rules:',
|
|
107
|
+
'- If an AC has no issues, do not emit a row for it.',
|
|
108
|
+
'- `confidence` is between 0 and 1.',
|
|
109
|
+
'- `issue_type` is a short kebab-case label (e.g. "field-mismatch", "verb-mismatch", "missing-coverage", "stale-shape").',
|
|
110
|
+
'- Skip ACs whose linked entities are missing or unknown-type (those are caught by check_consistency rule 9).',
|
|
111
|
+
'',
|
|
112
|
+
'Dossier:',
|
|
113
|
+
JSON.stringify(dossier),
|
|
114
|
+
].join('\n');
|
|
115
|
+
}
|
|
116
|
+
export function parseIssuesJson(text) {
|
|
117
|
+
const start = text.indexOf('{');
|
|
118
|
+
const end = text.lastIndexOf('}');
|
|
119
|
+
if (start < 0 || end <= start)
|
|
120
|
+
return [];
|
|
121
|
+
const slice = text.slice(start, end + 1);
|
|
122
|
+
let parsed;
|
|
123
|
+
try {
|
|
124
|
+
parsed = JSON.parse(slice);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return [];
|
|
128
|
+
}
|
|
129
|
+
if (!parsed || typeof parsed !== 'object')
|
|
130
|
+
return [];
|
|
131
|
+
const rawIssues = parsed.issues;
|
|
132
|
+
if (!Array.isArray(rawIssues))
|
|
133
|
+
return [];
|
|
134
|
+
const out = [];
|
|
135
|
+
for (const raw of rawIssues) {
|
|
136
|
+
if (!raw || typeof raw !== 'object')
|
|
137
|
+
continue;
|
|
138
|
+
const r = raw;
|
|
139
|
+
if (typeof r.ac_slug !== 'string' || typeof r.issue_type !== 'string')
|
|
140
|
+
continue;
|
|
141
|
+
const details = typeof r.details === 'string' ? r.details : '';
|
|
142
|
+
const confidence = typeof r.confidence === 'number' ? r.confidence : 0;
|
|
143
|
+
const issue = {
|
|
144
|
+
ac_slug: r.ac_slug,
|
|
145
|
+
issue_type: r.issue_type,
|
|
146
|
+
details,
|
|
147
|
+
confidence,
|
|
148
|
+
};
|
|
149
|
+
if (r.affected_entity && typeof r.affected_entity === 'object') {
|
|
150
|
+
const ae = r.affected_entity;
|
|
151
|
+
if (typeof ae.type === 'string' && typeof ae.slug === 'string') {
|
|
152
|
+
issue.affected_entity = { type: ae.type, slug: ae.slug };
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (typeof r.suggested_correction === 'string') {
|
|
156
|
+
issue.suggested_correction = r.suggested_correction;
|
|
157
|
+
}
|
|
158
|
+
out.push(issue);
|
|
159
|
+
}
|
|
160
|
+
return out;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=ac-analysis.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ac-analysis.service.js","sourceRoot":"","sources":["../../../../src/server/entities/ac/ac-analysis.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { type McpServerInstance } from '@inharness-ai/agent-adapters';
|
|
2
|
+
import type { Database } from 'better-sqlite3';
|
|
2
3
|
import type { AcService } from './services.js';
|
|
3
4
|
import type { ReferencesService } from '../../services/references.js';
|
|
4
5
|
import type { WsGateway } from '../../ws/gateway.js';
|
|
6
|
+
import type { PluginHost } from '../../core/plugin-host/types.js';
|
|
5
7
|
export interface AcToolsDeps {
|
|
6
8
|
acService: AcService;
|
|
7
9
|
referencesService: ReferencesService;
|
|
8
10
|
ws: WsGateway;
|
|
11
|
+
/** M19→AC: needed to hydrate verified-entity snapshots for the LLM audit. */
|
|
12
|
+
db: Database;
|
|
13
|
+
/** M19→AC: project root for the LLM adapter. */
|
|
14
|
+
cwd: string;
|
|
15
|
+
/** Brief 0.1.45 §1: inactive guard for the semantic audit. */
|
|
16
|
+
host: PluginHost;
|
|
9
17
|
}
|
|
10
18
|
export declare function createAcToolsServer(deps: AcToolsDeps): McpServerInstance;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { createMcpServer, mcpTool } from '@inharness-ai/agent-adapters';
|
|
1
|
+
import { createMcpServer, mcpTool, } from '@inharness-ai/agent-adapters';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
+
import { AcAnalysisService } from './ac-analysis.service.js';
|
|
3
4
|
import { DomainError } from '../../services/tags.js';
|
|
4
5
|
export function createAcToolsServer(deps) {
|
|
5
6
|
const ok = (payload) => ({
|
|
@@ -146,9 +147,36 @@ export function createAcToolsServer(deps) {
|
|
|
146
147
|
return fail(err);
|
|
147
148
|
}
|
|
148
149
|
});
|
|
150
|
+
const analysisService = new AcAnalysisService({
|
|
151
|
+
acService: deps.acService,
|
|
152
|
+
db: deps.db,
|
|
153
|
+
cwd: deps.cwd,
|
|
154
|
+
host: deps.host,
|
|
155
|
+
});
|
|
156
|
+
const analyzeAcAgainstEntities = mcpTool('analyze_ac_against_entities', 'LLM-based on-demand semantic check: for each active AC, load its `text` + `verifies[]` + the linked entity snapshots and ask the model whether the AC text matches the shape of those entities. Non-deterministic and expensive — call deliberately, not in a loop. Distinct from `check_consistency` (which is deterministic and structural). Output: { issues: [{ ac_slug, issue_type, details, affected_entity?, confidence, suggested_correction? }], analyzed_count, skipped_count, skipped_reasons }.', {
|
|
157
|
+
scope_tag: z
|
|
158
|
+
.string()
|
|
159
|
+
.optional()
|
|
160
|
+
.describe('Limit analysis to active ACs carrying this tag slug. Omit for all active ACs.'),
|
|
161
|
+
ac_slug: z
|
|
162
|
+
.string()
|
|
163
|
+
.optional()
|
|
164
|
+
.describe('Limit analysis to a single AC by slug. Omit to analyse all active ACs.'),
|
|
165
|
+
}, async (args) => {
|
|
166
|
+
try {
|
|
167
|
+
const result = await analysisService.analyze({
|
|
168
|
+
scope_tag: args.scope_tag,
|
|
169
|
+
ac_slug: args.ac_slug,
|
|
170
|
+
});
|
|
171
|
+
return ok(result);
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
return fail(err);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
149
177
|
return createMcpServer({
|
|
150
178
|
name: 'ac-tools',
|
|
151
|
-
tools: [createAc, getAc, updateAc, deleteAc, listAcs],
|
|
179
|
+
tools: [createAc, getAc, updateAc, deleteAc, listAcs, analyzeAcAgainstEntities],
|
|
152
180
|
});
|
|
153
181
|
}
|
|
154
182
|
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../../../src/server/entities/ac/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../../../src/server/entities/ac/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,14 +17,16 @@ export const acBackendModule = {
|
|
|
17
17
|
systemPrompt: acSystemPrompt,
|
|
18
18
|
backend: {
|
|
19
19
|
mount(ctx) {
|
|
20
|
-
const service = new AcService(ctx.db, ctx.tagsService, ctx.versionService, pluginHost);
|
|
20
|
+
const service = new AcService(ctx.db, ctx.tagsService, ctx.versionService, pluginHost, ctx.entityStore);
|
|
21
21
|
ctx.app.use(`/api${acBackendModule.pathPrefix}`, acsRouter(service, ctx.referencesService));
|
|
22
22
|
ctx.registerMcpServer(`${acBackendModule.type}-tools`, () => createAcToolsServer({
|
|
23
23
|
acService: service,
|
|
24
24
|
referencesService: ctx.referencesService,
|
|
25
25
|
ws: ctx.ws,
|
|
26
|
+
db: ctx.db,
|
|
27
|
+
cwd: ctx.cwd,
|
|
28
|
+
host: pluginHost,
|
|
26
29
|
}));
|
|
27
|
-
ctx.setIdResolver(acBackendModule.type, (slug) => service.getIdBySlug(slug));
|
|
28
30
|
ctx.registerEntityService(acBackendModule.type, service);
|
|
29
31
|
},
|
|
30
32
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/server/entities/ac/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,qBAAqB;IAClC,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAE,IAA0B,CAAC,IAAI,IAAI,EAAE,CAAC;IAClE,UAAU,EAAE,YAAyC;IACrD,YAAY,EAAE,cAAc;IAC5B,OAAO,EAAE;QACP,KAAK,CAAC,GAAG;YACP,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/server/entities/ac/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,qBAAqB;IAClC,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAE,IAA0B,CAAC,IAAI,IAAI,EAAE,CAAC;IAClE,UAAU,EAAE,YAAyC;IACrD,YAAY,EAAE,cAAc;IAC5B,OAAO,EAAE;QACP,KAAK,CAAC,GAAG;YACP,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,cAAc,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YACxG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,eAAe,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC5F,GAAG,CAAC,iBAAiB,CACnB,GAAG,eAAe,CAAC,IAAI,QAAQ,EAC/B,GAAG,EAAE,CAAC,mBAAmB,CAAC;gBACxB,SAAS,EAAE,OAAO;gBAClB,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;gBACxC,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,IAAI,EAAE,UAAU;aACjB,CAAC,CACH,CAAC;YACF,GAAG,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;KACF;CACF,CAAC;AAEF,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -105,7 +105,7 @@ export const acSerializer = {
|
|
|
105
105
|
taggedListItem: (entity) => baseSingle(entity),
|
|
106
106
|
detail: (entity, ctx) => {
|
|
107
107
|
const base = baseSingle(entity);
|
|
108
|
-
const references = ctx.reader.findSectionReferences('ac', entity.
|
|
108
|
+
const references = ctx.reader.findSectionReferences('ac', entity.slug).map((r) => ({
|
|
109
109
|
anchor: r.anchor,
|
|
110
110
|
pagePath: r.pagePath,
|
|
111
111
|
headingText: r.headingText,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../../src/server/entities/ac/serializer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../../src/server/entities/ac/serializer.ts"],"names":[],"mappings":"AAUA,SAAS,UAAU,CAAC,MAAiB;IACnC,OAAO;QACL,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAG,MAAM,CAAC,IAAI,CAAC,IAAe,IAAI,EAAE;QACxC,IAAI,EAAE,CAAE,MAAM,CAAC,IAAI,CAAC,IAAe,IAAI,aAAa,CAAW;QAC/D,MAAM,EAAE,CAAE,MAAM,CAAC,IAAI,CAAC,MAAmB,IAAI,QAAQ,CAAa;QAClE,QAAQ,EAAE,CAAE,MAAM,CAAC,IAAI,CAAC,QAAsC,IAAI,EAAE,CAAC;QACrE,WAAW,EAAG,MAAM,CAAC,IAAI,CAAC,WAA6B,IAAI,IAAI;QAC/D,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC;AAcD,SAAS,aAAa,CAAC,MAAiB;IACtC,MAAM,QAAQ,GAAG,CAAE,MAAM,CAAC,IAAI,CAAC,QAAsC,IAAI,EAAE,CAAC;SACzE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9E,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAG,MAAM,CAAC,IAAI,CAAC,IAAe,IAAI,EAAE;QACxC,IAAI,EAAE,CAAE,MAAM,CAAC,IAAI,CAAC,IAAe,IAAI,aAAa,CAAW;QAC/D,MAAM,EAAE,CAAE,MAAM,CAAC,IAAI,CAAC,MAAmB,IAAI,QAAQ,CAAa;QAClE,QAAQ;QACR,WAAW,EAAG,MAAM,CAAC,IAAI,CAAC,WAA6B,IAAI,IAAI;QAC/D,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAY;IAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAA4B,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxC,CAAC,CAAE,CAAC,CAAC,QAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC5G,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,EAAE,CAAE,CAAC,CAAC,IAAe,IAAI,aAAa,CAAW;QACrD,MAAM,EAAE,CAAE,CAAC,CAAC,MAAmB,IAAI,QAAQ,CAAa;QACxD,QAAQ;QACR,WAAW,EAAG,CAAC,CAAC,WAA6B,IAAI,IAAI;QACrD,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,IAAiB,CAAC,CAAC,CAAC,EAAE;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,CAAU,EAAE,CAAU,EAAE,IAAY;IAClD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IACpE,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAC1D,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAC1D,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,OAAO,GAA4B,EAAE,CAAC;IAE5C,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI;QAAE,OAAO,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/E,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI;QAAE,OAAO,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/E,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;QAAE,OAAO,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;IACzF,IAAI,EAAE,CAAC,WAAW,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,CAAC,mBAAmB,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7E,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,WAAW,CAAC,MAAM;QAAE,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC;IAC3D,IAAI,aAAa,CAAC,MAAM;QAAE,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC;IAEjE,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,QAAQ,CAAC,MAAM;QAAE,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;IAClD,IAAI,UAAU,CAAC,MAAM;QAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;IAExD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAC/E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,IAAa,EAAE,GAAmB;IACnD,MAAM,IAAI,GAAG,IAAkB,CAAC;IAChC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAChC,IAAI,CAAC,IAAI,EACT;QACE,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,EACD,GAAG,CAAC,KAAK,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAgC;IACvD,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,OAAO;IAEhB,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAG,MAAM,CAAC,IAAI,CAAC,IAAe,IAAI,MAAM,CAAC,IAAI;QAClD,IAAI,EAAE,QAAQ,MAAM,CAAC,IAAI,EAAE;KAC5B,CAAC;IAEF,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IAE7C,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IAE/C,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IAE9C,MAAM,EAAE,CAAC,MAAM,EAAE,GAAqB,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjF,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,GAAG,IAAI;YACP,WAAW,EAAE,UAAU;SACxB,CAAC;IACJ,CAAC;IAED,cAAc;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;CACb,CAAC"}
|