@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
|
@@ -19,52 +19,51 @@ export class VersionService {
|
|
|
19
19
|
* host.snapshot BEFORE the caller deletes the row — pass `previousSnapshot`
|
|
20
20
|
* explicitly to capture a tombstone with last-known data.
|
|
21
21
|
*/
|
|
22
|
-
captureEntitySnapshot(type,
|
|
22
|
+
captureEntitySnapshot(type, entitySlug, op, actor, summary, serializerVersion) {
|
|
23
23
|
if (!this.snapshotDeps) {
|
|
24
24
|
// Fallback: deps not yet wired. Store legacy domain object via createVersion.
|
|
25
|
-
return this.createVersion(type,
|
|
25
|
+
return this.createVersion(type, entitySlug, null, actor, summary, op, serializerVersion);
|
|
26
26
|
}
|
|
27
27
|
// For all ops (including delete), snapshot the entity *as it currently is*
|
|
28
28
|
// (callers must call this BEFORE the row is deleted from its table).
|
|
29
|
-
const rawEntity = this.snapshotDeps.reader.
|
|
29
|
+
const rawEntity = this.snapshotDeps.reader.getEntity(type, entitySlug);
|
|
30
30
|
if (!rawEntity) {
|
|
31
31
|
// Entity not found — fall back to last-known snapshot so tombstone has
|
|
32
32
|
// restorable data. This path is only hit if a caller calls capture
|
|
33
33
|
// post-delete (anti-pattern but defensive).
|
|
34
|
-
const last = this.getLatestVersionForEntity(type,
|
|
35
|
-
return this.createVersion(type,
|
|
34
|
+
const last = this.getLatestVersionForEntity(type, entitySlug);
|
|
35
|
+
return this.createVersion(type, entitySlug, last?.data ?? null, actor, summary, op, serializerVersion);
|
|
36
36
|
}
|
|
37
37
|
const ctx = { reader: this.snapshotDeps.reader, depth: 0, maxDepth: 1 };
|
|
38
38
|
const snapshot = this.snapshotDeps.host.snapshot(type, rawEntity, ctx);
|
|
39
|
-
return this.createVersion(type,
|
|
39
|
+
return this.createVersion(type, entitySlug, snapshot, actor, summary, op, serializerVersion);
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* Capture a new version. M17 augments the row with `op` and
|
|
43
43
|
* `serializer_version`; `release_id` always starts NULL and is assigned by
|
|
44
44
|
* `releaseService.createRelease()`.
|
|
45
45
|
*/
|
|
46
|
-
createVersion(entityType,
|
|
47
|
-
const next = this.nextVersionNumber(entityType,
|
|
46
|
+
createVersion(entityType, entitySlug, data, changedBy, changeSummary, op, serializerVersion) {
|
|
47
|
+
const next = this.nextVersionNumber(entityType, entitySlug);
|
|
48
48
|
const inferredOp = op ?? (data === null ? 'delete' : (next === 1 ? 'create' : 'update'));
|
|
49
|
-
|
|
49
|
+
this.db
|
|
50
50
|
.prepare(`INSERT INTO entity_version
|
|
51
|
-
(entity_type,
|
|
51
|
+
(entity_type, entity_slug, version, data, changed_by, change_summary, op, serializer_version)
|
|
52
52
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
53
|
-
.run(entityType,
|
|
53
|
+
.run(entityType, entitySlug, next, JSON.stringify(data), changedBy, changeSummary ?? null, inferredOp, serializerVersion ?? null);
|
|
54
54
|
const row = this.db
|
|
55
|
-
.prepare(`SELECT * FROM entity_version WHERE
|
|
56
|
-
.get(
|
|
55
|
+
.prepare(`SELECT * FROM entity_version WHERE entity_type = ? AND entity_slug = ? AND version = ?`)
|
|
56
|
+
.get(entityType, entitySlug, next);
|
|
57
57
|
return this.toListItem(row);
|
|
58
58
|
}
|
|
59
|
-
listVersions(entityType,
|
|
59
|
+
listVersions(entityType, entitySlug) {
|
|
60
60
|
const rows = this.db
|
|
61
|
-
.prepare(`SELECT
|
|
61
|
+
.prepare(`SELECT version, changed_by, change_summary, created_at, release_id, op
|
|
62
62
|
FROM entity_version
|
|
63
|
-
WHERE entity_type = ? AND
|
|
63
|
+
WHERE entity_type = ? AND entity_slug = ?
|
|
64
64
|
ORDER BY version DESC`)
|
|
65
|
-
.all(entityType,
|
|
65
|
+
.all(entityType, entitySlug);
|
|
66
66
|
return rows.map((r) => ({
|
|
67
|
-
id: r.id,
|
|
68
67
|
version: r.version,
|
|
69
68
|
changedBy: r.changed_by,
|
|
70
69
|
changeSummary: r.change_summary,
|
|
@@ -73,11 +72,11 @@ export class VersionService {
|
|
|
73
72
|
...(r.op ? { op: r.op } : {}),
|
|
74
73
|
}));
|
|
75
74
|
}
|
|
76
|
-
getVersion(entityType,
|
|
75
|
+
getVersion(entityType, entitySlug, version) {
|
|
77
76
|
const row = this.db
|
|
78
77
|
.prepare(`SELECT * FROM entity_version
|
|
79
|
-
WHERE entity_type = ? AND
|
|
80
|
-
.get(entityType,
|
|
78
|
+
WHERE entity_type = ? AND entity_slug = ? AND version = ?`)
|
|
79
|
+
.get(entityType, entitySlug, version);
|
|
81
80
|
if (!row)
|
|
82
81
|
return null;
|
|
83
82
|
return this.toDetail(row);
|
|
@@ -87,47 +86,46 @@ export class VersionService {
|
|
|
87
86
|
* `releaseId === null` returns the latest unreleased capture (release_id IS NULL).
|
|
88
87
|
* `releaseId === undefined` returns the latest overall (no release filter).
|
|
89
88
|
*/
|
|
90
|
-
getLatestVersionForEntity(entityType,
|
|
89
|
+
getLatestVersionForEntity(entityType, entitySlug, releaseId) {
|
|
91
90
|
let row;
|
|
92
91
|
if (releaseId === undefined) {
|
|
93
92
|
row = this.db
|
|
94
93
|
.prepare(`SELECT * FROM entity_version
|
|
95
|
-
WHERE entity_type = ? AND
|
|
94
|
+
WHERE entity_type = ? AND entity_slug = ?
|
|
96
95
|
ORDER BY version DESC LIMIT 1`)
|
|
97
|
-
.get(entityType,
|
|
96
|
+
.get(entityType, entitySlug);
|
|
98
97
|
}
|
|
99
98
|
else if (releaseId === null) {
|
|
100
99
|
row = this.db
|
|
101
100
|
.prepare(`SELECT * FROM entity_version
|
|
102
|
-
WHERE entity_type = ? AND
|
|
101
|
+
WHERE entity_type = ? AND entity_slug = ? AND release_id IS NULL
|
|
103
102
|
ORDER BY version DESC LIMIT 1`)
|
|
104
|
-
.get(entityType,
|
|
103
|
+
.get(entityType, entitySlug);
|
|
105
104
|
}
|
|
106
105
|
else {
|
|
107
106
|
row = this.db
|
|
108
107
|
.prepare(`SELECT * FROM entity_version
|
|
109
|
-
WHERE entity_type = ? AND
|
|
108
|
+
WHERE entity_type = ? AND entity_slug = ? AND release_id IS NOT NULL AND release_id <= ?
|
|
110
109
|
ORDER BY version DESC LIMIT 1`)
|
|
111
|
-
.get(entityType,
|
|
110
|
+
.get(entityType, entitySlug, releaseId);
|
|
112
111
|
}
|
|
113
112
|
return row ? this.toDetail(row) : null;
|
|
114
113
|
}
|
|
115
|
-
diff(entityType,
|
|
116
|
-
const from = this.getVersion(entityType,
|
|
117
|
-
const to = this.getVersion(entityType,
|
|
114
|
+
diff(entityType, entitySlug, fromVersion, toVersion) {
|
|
115
|
+
const from = this.getVersion(entityType, entitySlug, fromVersion);
|
|
116
|
+
const to = this.getVersion(entityType, entitySlug, toVersion);
|
|
118
117
|
if (!from || !to)
|
|
119
118
|
throw new DomainError('NOT_FOUND', 'version not found');
|
|
120
119
|
return { from, to, changes: computeDiff(from.data, to.data) };
|
|
121
120
|
}
|
|
122
|
-
nextVersionNumber(entityType,
|
|
121
|
+
nextVersionNumber(entityType, entitySlug) {
|
|
123
122
|
const row = this.db
|
|
124
|
-
.prepare(`SELECT MAX(version) AS v FROM entity_version WHERE entity_type = ? AND
|
|
125
|
-
.get(entityType,
|
|
123
|
+
.prepare(`SELECT MAX(version) AS v FROM entity_version WHERE entity_type = ? AND entity_slug = ?`)
|
|
124
|
+
.get(entityType, entitySlug);
|
|
126
125
|
return (row.v ?? 0) + 1;
|
|
127
126
|
}
|
|
128
127
|
toListItem(row) {
|
|
129
128
|
return {
|
|
130
|
-
id: row.id,
|
|
131
129
|
version: row.version,
|
|
132
130
|
changedBy: row.changed_by,
|
|
133
131
|
changeSummary: row.change_summary,
|
|
@@ -138,9 +136,8 @@ export class VersionService {
|
|
|
138
136
|
}
|
|
139
137
|
toDetail(row) {
|
|
140
138
|
return {
|
|
141
|
-
id: row.id,
|
|
142
139
|
entityType: row.entity_type,
|
|
143
|
-
|
|
140
|
+
entitySlug: row.entity_slug,
|
|
144
141
|
version: row.version,
|
|
145
142
|
data: safeParse(row.data),
|
|
146
143
|
changedBy: row.changed_by,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/server/services/versions.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/server/services/versions.ts"],"names":[],"mappings":"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"}
|
|
@@ -246,7 +246,6 @@ export interface TagUpdateInput {
|
|
|
246
246
|
description?: string | null;
|
|
247
247
|
}
|
|
248
248
|
export interface VersionListItem {
|
|
249
|
-
id: number;
|
|
250
249
|
version: number;
|
|
251
250
|
changedBy: ChangedBy;
|
|
252
251
|
changeSummary: string | null;
|
|
@@ -258,7 +257,8 @@ export interface VersionListItem {
|
|
|
258
257
|
}
|
|
259
258
|
export interface VersionDetail extends VersionListItem {
|
|
260
259
|
entityType: EntityType;
|
|
261
|
-
|
|
260
|
+
/** M29: slug is the sole entity identity; versions are keyed by (entityType, entitySlug, version). */
|
|
261
|
+
entitySlug: string;
|
|
262
262
|
data: unknown;
|
|
263
263
|
}
|
|
264
264
|
export interface Release {
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export type PageNodeType = 'file' | 'folder';
|
|
2
|
+
/** M30: discriminator for a `type='file'` node. Missing ⇒ `'markdown'` (backward compatible). */
|
|
3
|
+
export type PageFileType = 'markdown' | 'html';
|
|
2
4
|
export interface PageNode {
|
|
3
5
|
type: PageNodeType;
|
|
4
6
|
name: string;
|
|
5
7
|
path: string;
|
|
6
8
|
children?: PageNode[];
|
|
9
|
+
/** M30: only for `type='file'`. `.html` files are read-only previews, excluded from indexing/versioning. */
|
|
10
|
+
fileType?: PageFileType;
|
|
7
11
|
}
|
|
8
12
|
export interface PageContent {
|
|
9
13
|
path: string;
|
|
@@ -29,6 +33,11 @@ export type WsEvent = {
|
|
|
29
33
|
kind: 'entity:changed';
|
|
30
34
|
entityType: string;
|
|
31
35
|
slug: string;
|
|
36
|
+
} | {
|
|
37
|
+
kind: 'entity:indexed';
|
|
38
|
+
type: string;
|
|
39
|
+
slug: string;
|
|
40
|
+
op?: 'upsert' | 'delete';
|
|
32
41
|
} | {
|
|
33
42
|
kind: 'tag:changed';
|
|
34
43
|
slug: string;
|
|
@@ -27,6 +27,14 @@ export declare function parseXmlTagsExcludingCode(md: string): XmlTag[];
|
|
|
27
27
|
export declare function serializeXmlTag(kind: XmlTagKind | string, attrs: Record<string, string | null | undefined>): string;
|
|
28
28
|
export declare function extractSlugs(tag: XmlTag): string[];
|
|
29
29
|
export declare function extractTags(tag: XmlTag): string[];
|
|
30
|
+
/**
|
|
31
|
+
* True when a static XML tag (inline_mention / single_element / element_list) explicitly
|
|
32
|
+
* references the entity `(entityType, slug)`. tagged_list / tagged_list_mixed never match
|
|
33
|
+
* here — those are dynamic, tag-driven refs resolved via `taggedListVia`.
|
|
34
|
+
* Single source of truth for static reference matching — used by the references core
|
|
35
|
+
* (M19) and ReferencesService.
|
|
36
|
+
*/
|
|
37
|
+
export declare function tagMatchesEntity(tag: XmlTag, entityType: string, slug: string): boolean;
|
|
30
38
|
/**
|
|
31
39
|
* Matched tag slugs ("via") when a tagged_list / tagged_list_mixed node references an
|
|
32
40
|
* entity of `entityType` carrying `entityTags`; [] when it does not match.
|
package/dist/shared/xml-tags.js
CHANGED
|
@@ -118,6 +118,30 @@ export function extractTags(tag) {
|
|
|
118
118
|
}
|
|
119
119
|
return [];
|
|
120
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* True when a static XML tag (inline_mention / single_element / element_list) explicitly
|
|
123
|
+
* references the entity `(entityType, slug)`. tagged_list / tagged_list_mixed never match
|
|
124
|
+
* here — those are dynamic, tag-driven refs resolved via `taggedListVia`.
|
|
125
|
+
* Single source of truth for static reference matching — used by the references core
|
|
126
|
+
* (M19) and ReferencesService.
|
|
127
|
+
*/
|
|
128
|
+
export function tagMatchesEntity(tag, entityType, slug) {
|
|
129
|
+
if (tag.kind === 'tagged_list_mixed')
|
|
130
|
+
return false;
|
|
131
|
+
if (tag.attrs.type !== entityType)
|
|
132
|
+
return false;
|
|
133
|
+
if (tag.kind === 'inline_mention' || tag.kind === 'single_element') {
|
|
134
|
+
return tag.attrs.slug === slug;
|
|
135
|
+
}
|
|
136
|
+
if (tag.kind === 'element_list') {
|
|
137
|
+
return (tag.attrs.slugs ?? '')
|
|
138
|
+
.split(',')
|
|
139
|
+
.map((s) => s.trim())
|
|
140
|
+
.filter(Boolean)
|
|
141
|
+
.includes(slug);
|
|
142
|
+
}
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
121
145
|
/**
|
|
122
146
|
* Matched tag slugs ("via") when a tagged_list / tagged_list_mixed node references an
|
|
123
147
|
* entity of `entityType` carrying `entityTags`; [] when it does not match.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml-tags.js","sourceRoot":"","sources":["../../src/shared/xml-tags.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xml-tags.js","sourceRoot":"","sources":["../../src/shared/xml-tags.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inharness-ai/claude4spec",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.15",
|
|
4
4
|
"description": "Plan the whole system before your agent writes a line of code. Local-first planning layer with structured entities and typed relations.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Mike Tomala <mike@inharness.ai>",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ai as o,aj as n}from"./mermaid.core-DP18nW3T.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-C4DOvpJT.js";import{_ as i}from"./mermaid.core-DP18nW3T.js";import"./chunk-FMBD7UC4-CZA3OvVr.js";import"./chunk-ND2GUHAM-Cbx6nQHm.js";import"./chunk-55IACEB6-Cpd59xZT.js";import"./chunk-2J33WTMH-PtDSwC5f.js";import"./index-DcIG_8JB.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-C4DOvpJT.js";import{_ as i}from"./mermaid.core-DP18nW3T.js";import"./chunk-FMBD7UC4-CZA3OvVr.js";import"./chunk-ND2GUHAM-Cbx6nQHm.js";import"./chunk-55IACEB6-Cpd59xZT.js";import"./chunk-2J33WTMH-PtDSwC5f.js";import"./index-DcIG_8JB.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,b as r,a,S as s}from"./chunk-AQP2D5EJ-CtjeHPBB.js";import{_ as i}from"./mermaid.core-DP18nW3T.js";import"./chunk-55IACEB6-Cpd59xZT.js";import"./chunk-2J33WTMH-PtDSwC5f.js";import"./index-DcIG_8JB.js";var p={parser:a,get db(){return new s(2)},renderer:r,styles:e,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{p as diagram};
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
-- v0.1.15 — 14 startowych Acceptance Criteria pokrywających M06 / M19 / M20.
|
|
2
|
-
-- Każdy AC seedowany pod istniejące moduły: kind='requirement', status='active',
|
|
3
|
-
-- plus tag mNN wiążący z modułem.
|
|
4
|
-
-- Idempotent — INSERT OR IGNORE na (ac.slug UNIQUE) i (entity_tag UNIQUE).
|
|
5
|
-
|
|
6
|
-
INSERT OR IGNORE INTO tag (slug, name) VALUES ('m06', 'm06');
|
|
7
|
-
INSERT OR IGNORE INTO tag (slug, name) VALUES ('m19', 'm19');
|
|
8
|
-
INSERT OR IGNORE INTO tag (slug, name) VALUES ('m20', 'm20');
|
|
9
|
-
|
|
10
|
-
INSERT OR IGNORE INTO ac (slug, text, kind, status, verifies) VALUES
|
|
11
|
-
('m06-anchor-length-contract',
|
|
12
|
-
'Anchory generowane przez section indexer mają dokładnie 8 znaków z alfabetu [a-z0-9]; walidacja/parsing akceptuje 6-12 znaków (manualne semantyczne anchory).',
|
|
13
|
-
'requirement', 'active', '[]'),
|
|
14
|
-
('m06-section-indexer-auto-injection',
|
|
15
|
-
'Section indexer auto-injectuje anchor comments do nagłówków bez anchora; nie modyfikuje nagłówków, które już mają anchor.',
|
|
16
|
-
'requirement', 'active', '[]'),
|
|
17
|
-
('m06-section-ref-chip-rendering',
|
|
18
|
-
'<section_ref anchor="X"/> renderuje się jako klikalny chip z heading text i page path; broken anchor (brak w section_index) renderuje broken chip.',
|
|
19
|
-
'requirement', 'active', '[]'),
|
|
20
|
-
|
|
21
|
-
('m19-find-references-include-tag-matches',
|
|
22
|
-
'find_references(type, slug, { includeTagMatches: true }) zwraca dynamic refs ze stron z <tagged_list/> i <tagged_list_mixed/>, których atrybut tags przecina się z tagami encji; pole via[] obecne tylko dla dynamic rows.',
|
|
23
|
-
'requirement', 'active', '[]'),
|
|
24
|
-
('m19-tagged-list-type-mismatch-skipped',
|
|
25
|
-
'<tagged_list type="X"/> z type różnym od typu szukanej encji jest pomijany w find_references({includeTagMatches:true}) — embed nie pokazałby tej encji.',
|
|
26
|
-
'requirement', 'active', '[]'),
|
|
27
|
-
('m19-untagged-entity-no-op',
|
|
28
|
-
'Encja bez żadnego tagu w find_references({includeTagMatches:true}) → no-op (intersect zawsze pusty, brak dynamic rows w output).',
|
|
29
|
-
'requirement', 'active', '[]'),
|
|
30
|
-
|
|
31
|
-
('m20-three-editor-contexts',
|
|
32
|
-
'EditorFactory wspiera trzy konteksty edytora: page (pełny markdown), description (markdown bez task lists), plan (markdown + XML chips); każdy z osobnym mention sources rejestrem.',
|
|
33
|
-
'requirement', 'active', '[]'),
|
|
34
|
-
('m20-editor-factory-create',
|
|
35
|
-
'EditorFactory.create(contextId, initial) zwraca tiptap Editor zhydratowany dla danego kontekstu z initial content jako markdown string.',
|
|
36
|
-
'requirement', 'active', '[]'),
|
|
37
|
-
('m20-markdown-it-xml-rules',
|
|
38
|
-
'markdown-it ma custom rules xml_inline, xml_block, xml_block_content rozpoznające 6 nazw XML reference tags (inline_mention, single_element, element_list, tagged_list, tagged_list_mixed, section_ref).',
|
|
39
|
-
'requirement', 'active', '[]'),
|
|
40
|
-
('m20-xml-inline-dispatch-six-tags',
|
|
41
|
-
'xml_inline markdown-it rule dispatcher mapuje wszystkie 6 tag names na odpowiednie tiptap node types (5 z M19 + section_ref jako extension reference).',
|
|
42
|
-
'requirement', 'active', '[]'),
|
|
43
|
-
('m20-gfm-task-lists',
|
|
44
|
-
'Edytor wspiera GFM task lists (- [x] checked / - [ ] unchecked) z renderowaniem checkboxów i toggle przy kliknięciu.',
|
|
45
|
-
'requirement', 'active', '[]'),
|
|
46
|
-
('m20-five-generic-m19-nodes',
|
|
47
|
-
'Pięć generycznych tiptap nodów M19 (InlineMentionNode, SingleElementNode, ElementListNode, TaggedListNode, TaggedListMixedNode) deleguje render do clientPluginHost.getEntity(type).renderChip / renderCard.',
|
|
48
|
-
'requirement', 'active', '[]'),
|
|
49
|
-
('m20-outline-gutter',
|
|
50
|
-
'Outline gutter pokazuje listę sekcji strony z anchor + heading text; klik w pozycji scrolluje edytor do anchor i podświetla wiersz.',
|
|
51
|
-
'requirement', 'active', '[]'),
|
|
52
|
-
('m20-ws-query-keys',
|
|
53
|
-
'WebSocket events broadcastują invalidation keys mapujące na konkretne tanstack-query query keys; useChat / useEntityList nasłuchują i invalidują tylko zmienione zapytania.',
|
|
54
|
-
'requirement', 'active', '[]');
|
|
55
|
-
|
|
56
|
-
-- Wiązanie AC z tagami modułów. SELECT-based pattern — działa bez względu na
|
|
57
|
-
-- to, czy INSERT OR IGNORE wyżej wstawił nowy wiersz czy ominął istniejący.
|
|
58
|
-
INSERT OR IGNORE INTO entity_tag (entity_type, entity_id, tag_id)
|
|
59
|
-
SELECT 'ac', a.id, t.id FROM ac a, tag t
|
|
60
|
-
WHERE (a.slug, t.slug) IN (
|
|
61
|
-
('m06-anchor-length-contract', 'm06'),
|
|
62
|
-
('m06-section-indexer-auto-injection', 'm06'),
|
|
63
|
-
('m06-section-ref-chip-rendering', 'm06'),
|
|
64
|
-
('m19-find-references-include-tag-matches', 'm19'),
|
|
65
|
-
('m19-tagged-list-type-mismatch-skipped', 'm19'),
|
|
66
|
-
('m19-untagged-entity-no-op', 'm19'),
|
|
67
|
-
('m20-three-editor-contexts', 'm20'),
|
|
68
|
-
('m20-editor-factory-create', 'm20'),
|
|
69
|
-
('m20-markdown-it-xml-rules', 'm20'),
|
|
70
|
-
('m20-xml-inline-dispatch-six-tags', 'm20'),
|
|
71
|
-
('m20-gfm-task-lists', 'm20'),
|
|
72
|
-
('m20-five-generic-m19-nodes', 'm20'),
|
|
73
|
-
('m20-outline-gutter', 'm20'),
|
|
74
|
-
('m20-ws-query-keys', 'm20')
|
|
75
|
-
);
|