@weftlet/toolkit 0.3.0 → 0.4.0

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 (59) hide show
  1. package/README.md +15 -0
  2. package/dist/application/application.js +7 -4
  3. package/dist/application/cache-adoption.d.ts +43 -0
  4. package/dist/application/cache-adoption.js +129 -0
  5. package/dist/application/extraction-identity.d.ts +6 -0
  6. package/dist/application/extraction-identity.js +15 -0
  7. package/dist/application/hydration-failure.d.ts +41 -0
  8. package/dist/application/hydration-failure.js +43 -0
  9. package/dist/application/hydration-plan.d.ts +4 -7
  10. package/dist/application/hydration-plan.js +7 -15
  11. package/dist/application/hydrator.d.ts +3 -5
  12. package/dist/application/hydrator.js +23 -48
  13. package/dist/application/overlay.js +10 -3
  14. package/dist/application/saved-evidence.d.ts +6 -3
  15. package/dist/application/saved-evidence.js +7 -1
  16. package/dist/application/semantic-artifact-store.d.ts +4 -0
  17. package/dist/application/semantic-artifact-store.js +7 -0
  18. package/dist/application/semantic-run.d.ts +29 -0
  19. package/dist/application/semantic-run.js +111 -0
  20. package/dist/application/semantic-scope.d.ts +13 -0
  21. package/dist/application/semantic-scope.js +12 -0
  22. package/dist/application/snapshot-checks.d.ts +2 -1
  23. package/dist/application/snapshot-checks.js +8 -1
  24. package/dist/configuration/cache.d.ts +6 -0
  25. package/dist/configuration/cache.js +18 -0
  26. package/dist/extraction/document.js +1 -1
  27. package/dist/extraction/providers.js +10 -3
  28. package/dist/extraction/repository-nodes.d.ts +2 -3
  29. package/dist/extraction/repository-nodes.js +5 -11
  30. package/dist/extraction/routing.d.ts +1 -1
  31. package/dist/extraction/routing.js +3 -6
  32. package/dist/extraction/semantic-cache.d.ts +1 -0
  33. package/dist/extraction/semantic-cache.js +9 -2
  34. package/dist/extraction/semantic-diagnostics.d.ts +9 -0
  35. package/dist/extraction/semantic-diagnostics.js +15 -0
  36. package/dist/extraction/semantic.d.ts +5 -1
  37. package/dist/extraction/semantic.js +39 -6
  38. package/dist/extraction/static.d.ts +13 -5
  39. package/dist/extraction/static.js +8 -15
  40. package/dist/governance/governance.js +11 -7
  41. package/dist/graph/query.js +2 -0
  42. package/dist/index.d.ts +3 -0
  43. package/dist/index.js +3 -0
  44. package/dist/interfaces/cli.js +44 -21
  45. package/dist/storage/storage.d.ts +7 -1
  46. package/dist/storage/storage.js +15 -3
  47. package/dist/visualization/visualization.js +1 -0
  48. package/docs/ADR-016-hydration-preview.md +1 -1
  49. package/docs/ADR-017-shacl-validation-union.md +1 -1
  50. package/docs/ADR-018-operational-semantic-cache.md +100 -0
  51. package/docs/ADR-019-semantic-failure-diagnostics.md +82 -0
  52. package/docs/ADR-020-canonical-physical-file-producers.md +97 -0
  53. package/docs/PROVIDERS.md +51 -1
  54. package/docs/RELEASE-1.0-PLAN.md +70 -21
  55. package/docs/RELEASING.md +4 -2
  56. package/docs/ROADMAP.md +31 -12
  57. package/docs/VALIDATION.md +212 -4
  58. package/docs/extraction-manifest.json +42 -21
  59. package/package.json +2 -2
@@ -8,10 +8,218 @@ The milestone entries below record the original cloud checks. Subsequent
8
8
  establishes live Codex success on Windows and the full deterministic checks on WSL,
9
9
  while identifying remaining native Windows issues.
10
10
 
11
+ ## T08 deterministic physical-file kinds, 2026-10-26
12
+
13
+ Implemented after 0.3.0; this checkpoint does not claim npm publication or private consumer
14
+ acceptance. [ADR 020](ADR-020-canonical-physical-file-producers.md) separates the neutral fix from
15
+ the consumer-owned framework adapter migration. The reported 120-ID partition is consumer
16
+ evidence; the upstream tests below are independent public reproductions, not that private replay.
17
+
18
+ - Local `pnpm context-graph:publication-check` passed: 384 deterministic tests (17 core,
19
+ 367 toolkit), one optional OML skip, 13 advisory architecture findings, inventory, licenses and
20
+ fresh packed-consumer checks. No rule, baseline, exception or SHACL shape was relaxed.
21
+ - Sixteen new core cases verify the exported pure physical-file mapping, exact path spelling,
22
+ document/test/production distinctions and absence of inferred existence or intent. The package
23
+ retains no runtime package dependencies. Its public JS/declaration assets are required in the archive.
24
+ - Three public composition cases use actual file and contract extraction from committed Prisma
25
+ schema/production/spec/test/Markdown consumers, actual bundled SCIP indexing and document links.
26
+ They assert exact retained citations/digests, confidence, authority and conceptual contract IDs.
27
+ A kind-only historical control restores the old Component label on an actual test-consumer fact
28
+ and fails strict SHACL; unchanged current producer output conforms. This control is not claimed
29
+ as execution of the installed 0.3.0 package. A public adapter-shaped fixture imports only core's
30
+ factory for its physical nodes; it is not the private framework implementation.
31
+ - The overlay case reindexes real source changes without routing configured, retains canonical
32
+ kinds/draft authority, and proves its new identity differs from the frozen 0.3.0 formula.
33
+ A separately labeled retained-inference fixture still fails strict SHACL when incompatible;
34
+ previous heads, snapshots and assertion bytes remain intact. It is neither rewritten nor suppressed.
35
+ - Routing and governance regressions compose real producer facts with neutral extraction and
36
+ strict SHACL. They retain routing binding IDs, provenance/authority and architectural attributes;
37
+ document endpoints join canonical Document identities, test files remain Evidence, and business
38
+ module/contract identities stay separate. Governance analyzer 3 differs from the frozen prior ID.
39
+ - Twelve compatibility cases reject old/missing assembly, contract, SCIP-fact and configured
40
+ routing metadata for current validation. Production application tests still query historical
41
+ facts unchanged at the same commit/configuration, label extraction incompatibility separately
42
+ from checkout staleness, and invoke no provider, indexer, hydration or graph refresh.
43
+ - Existing hydration/reuse/rename/delete tests pass with graph-v7 and preserve older snapshot
44
+ records. Semantic artifact/provider/prompt identity stays unchanged; no model call or private
45
+ cache rewrite is required by this deterministic fix. Non-document model kinds remain unreviewed
46
+ assertions and can still fail strict SHACL; this increment does not silently reinterpret them.
47
+ - Fresh packed installation checks a public `@weftlet/core` adapter import against actual neutral
48
+ contract test-consumer facts, strict SHACL, real SCIP, RDF/SPARQL projection, CLI/npx and MCP.
49
+ Independent review found no remaining blocker. All 79 original source path/hash pairs are intact.
50
+
51
+ [PR 27](https://github.com/jchewitt/weftlet/pull/27) merged at
52
+ `7b3b0a4af260a6fa70f1107b3c5c315826c22c0e`. Exact feature head
53
+ `493c68faada31f35e4c7dd5d047e70ac5c96b2ad` passed hosted Ubuntu and native Windows checks
54
+ in [push run 40420049204](https://github.com/jchewitt/weftlet/actions/runs/40420049204) and
55
+ [PR run 40420084937](https://github.com/jchewitt/weftlet/actions/runs/40420084937).
56
+ Publication is pending the separately reviewed 0.4.0 release. No private application files
57
+ or installed consumer packages were modified. The consumer must upgrade both released packages,
58
+ migrate/version its framework extractor, run composed adapter tests, then complete full hydration
59
+ and repeat acceptance before its adoption blocker can be declared resolved.
60
+
61
+ ## T04 semantic failure diagnostics, 2026-10-26
62
+
63
+ Implemented in development source after 0.3.0; no new npm publication is claimed.
64
+ [ADR 019](ADR-019-semantic-failure-diagnostics.md) records the safe failure envelope, opaque
65
+ source correlation, settled progress and recovery boundaries. T04 does not change prompts,
66
+ artifact keys, source/assertion authority, timeout defaults or graph validation.
67
+
68
+ - Local `pnpm context-graph:publication-check` passed: 351 deterministic tests (1 core,
69
+ 350 toolkit), one optional OML skip, inventory, licenses and fresh packed-consumer checks.
70
+ - 20 new application cases use committed public fixtures and real artifact/snapshot storage.
71
+ They cover retained completed work, resumed reuse, cache hits, timeout/root-cause ordering,
72
+ synchronous sibling cancellation, late provider results, in-flight writes, late storage failure,
73
+ cancellation between sources and final completed/remaining counts. The previous snapshot/head
74
+ remains intact after failure. An injected Codex runner verifies elapsed time across retries
75
+ is separate from the configured per-attempt limit; no real model is called.
76
+ - Unknown provider messages, private abort reasons and unrecognized error codes are excluded
77
+ from public reports. Missing infrastructure, invalid output, unresolved mappings, low confidence
78
+ and cache problems retain distinct safe diagnoses. The existing RDF regression now checks the
79
+ typed unresolved-policy error and unchanged prior head; its positive, missing-link, contradiction
80
+ and full SHACL checks remain in place.
81
+ - Four CLI subprocess cases cover actual module timeouts, unknown module errors, missing provider
82
+ infrastructure, source-ID mapping through local preview, progress/error privacy, empty failure
83
+ stdout, JSON-only stderr with `--quiet`, and preserved previous snapshot bytes. The installed
84
+ consumer verifies public error/helper exports, required runtime assets, matching preview IDs and
85
+ safe structured failure from an unavailable provider. Existing installed CLI/npx, real SCIP,
86
+ RDF/SPARQL/SHACL, viewer and MCP initialization/missing-snapshot checks pass.
87
+ - Governance reports 13 advisory findings: the 12 prior findings plus a new `semantic.ts` size
88
+ signal (510 nonblank/noncomment lines against the 500-line threshold). Independent review
89
+ considered the addition; scheduling/reporting is separated into its own module. The warning
90
+ remains visible. No rule, baseline or exception was changed; line count is not proof of
91
+ modularity or a product violation.
92
+ - Independent review found no remaining blocker. All 79 original source path/hash pairs are
93
+ unchanged. [PR 25](https://github.com/jchewitt/weftlet/pull/25) merged at
94
+ `a919b82eab35808985d5c497bbe59ccfcba8bfcb`. Exact feature head
95
+ `a755dcdd2c0f97a7507f02f64b907a231162bf78` passed hosted Ubuntu and native Windows checks
96
+ in [push run 40417172248](https://github.com/jchewitt/weftlet/actions/runs/40417172248)
97
+ and [PR run 40417209468](https://github.com/jchewitt/weftlet/actions/runs/40417209468).
98
+ Both runs completed successfully; the Windows suite includes the new application/CLI failure
99
+ tests and existing provider/process tests, plus inventory and license checks.
100
+
101
+ These checks use public deterministic fixtures and local child processes, not live models or
102
+ private consumer data. Genuine consumer acceptance remains separate. Native Windows is covered
103
+ by the hosted runs above; the local run is Linux/Node 24.19.0/pnpm 10.18.2.
104
+ Published packages remain at 0.3.0 at this checkpoint. Broader T05, T06 and T07 remain separate
105
+ 1.0 increments.
106
+
107
+ ## T03 operational semantic-cache reuse, 2026-10-26
108
+
109
+ Implemented in development source after 0.3.0; no new npm publication is claimed here.
110
+ [ADR 018](ADR-018-operational-semantic-cache.md) records the built-in Codex user-cache partition,
111
+ the five operational settings that may share artifacts, and conservative custom-provider behavior.
112
+ Snapshot profiles, full configuration digests, workspace paths and the 0.2.1/0.3.0 artifact-key
113
+ contract remain unchanged. No credential environment values are read to construct cache identity.
114
+
115
+ - [PR 22](https://github.com/jchewitt/weftlet/pull/22) merged at
116
+ `5b889854e8a4b3a84653770e3244dee39d4b7d37`. Exact feature head
117
+ `c92689699fb09c80246edd61b692fca086ff6e83` passed hosted Ubuntu and focused native Windows
118
+ checks in [push run 40411921483](https://github.com/jchewitt/weftlet/actions/runs/40411921483)
119
+ and [PR run 40411954882](https://github.com/jchewitt/weftlet/actions/runs/40411954882).
120
+ Both runs completed successfully; Windows includes all four new cache test suites plus
121
+ inventory and license checks. Independent review found no remaining blocker. All 79 original
122
+ source path/hash pairs remain unchanged.
123
+ - Local `pnpm context-graph:publication-check` passed: 327 deterministic tests (1 core,
124
+ 326 toolkit), one optional OML skip, 12 existing advisory architecture findings, inventory,
125
+ licenses and fresh packed-consumer checks. No new architecture baseline or exception was added.
126
+ - 28 configuration cases distinguish supported operational/default settings from model/policy/
127
+ authentication descriptors, unknown fields, repository/checkout and custom-provider changes.
128
+ The full snapshot storage profile still changes when its configuration changes.
129
+ - 11 integration/storage cases cover an interrupted run followed by a longer timeout: the
130
+ completed source is reused, the unfinished source is extracted, and the new snapshot records
131
+ the complete current configuration. Old-configuration evidence fails current snapshot checks;
132
+ a saved query can still label it as historical. An actual application hydration uses real
133
+ bundled SCIP and cached semantic artifacts with a tripwire against unexpected Codex calls.
134
+ - Legacy fixtures independently reproduce the frozen 0.3.0 profile/key formulas. Planning
135
+ neither copies artifacts nor creates directories; hydration promotes only validated entries
136
+ from the exact compatible legacy profile. Unrelated profiles and incomplete temporary files
137
+ are ignored. Old artifact bytes, raw output and provenance remain intact.
138
+ - 21 adoption cases exercise explicit previous-config recovery, dry-run/index/filesystem
139
+ preservation, current and historical agent scope, budgets, source changes and omitted coverage.
140
+ Incompatible policies, authentication descriptors, unknown fields, providers and checkouts are
141
+ refused. Corrupt, unreadable and conflicting entries are reported without overwriting them.
142
+ - Concurrent-writer tests cover matching/different outputs and malformed identity metadata with
143
+ a deceptively matching output-digest field. Both adoption and hydration promotion fully inspect
144
+ the retained entry before claiming success. Forced extraction preserves the old artifact.
145
+ - Three CLI subprocess cases verify that adoption runs before provider/adapter initialization,
146
+ preserves the active checkout, supports historical refs, rejects malformed invocation, and
147
+ returns structured nonzero results for cache or budget problems. The fresh packed consumer
148
+ checks the public API/runtime helpers and installed adoption command with unavailable provider
149
+ and adapter modules; its dry run selects the committed source without storage writes.
150
+
151
+ These are public deterministic fixtures, including an injected Codex runner, not live model
152
+ extractions or private consumer acceptance. Existing full SHACL and fresh snapshot publication
153
+ remain required after cache reuse. Published packages remain at 0.3.0 at this checkpoint;
154
+ the minor changeset is pending a separate release. T04 timeout diagnostics and the remaining
155
+ 1.0 work are separate increments.
156
+
157
+ ## Weftlet 0.3.0 preview and SHACL performance release, 2026-10-26
158
+
159
+ T02 and the focused cold-validation portion of T05 shipped ahead of the remaining 1.0 work.
160
+ Both `@weftlet/core@0.3.0` and `@weftlet/toolkit@0.3.0` are public npm `latest` at this
161
+ checkpoint. Core advances with the fixed release group and has no code change in this release.
162
+
163
+ - [Preview PR 18](https://github.com/jchewitt/weftlet/pull/18) merged at
164
+ `63c70f85b26a6cc60f8bc0615a86f6042a61ecd0`.
165
+ [SHACL PR 20](https://github.com/jchewitt/weftlet/pull/20) merged at
166
+ `e45fda59037293a6ded20da70b812bbd385500a5`. Its final head
167
+ `ec7bb87ea3287a6322eeb09fa72ba53b3f1eec4e` passed hosted Ubuntu and focused Windows
168
+ checks in [run 40402839679](https://github.com/jchewitt/weftlet/actions/runs/40402839679)
169
+ and [run 40402826889](https://github.com/jchewitt/weftlet/actions/runs/40402826889).
170
+ - [Release PR 19](https://github.com/jchewitt/weftlet/pull/19) advanced both versions to 0.3.0.
171
+ Exact head `897e731222180cc58ccf8acfe9cc2cd6252245b5` passed local `pnpm release:prepare`
172
+ and [dispatched Ubuntu/Windows checks](https://github.com/jchewitt/weftlet/actions/runs/40403315203).
173
+ The bot's automatic PR run required GitHub approval and ran no jobs; the explicit dispatch
174
+ validated that same head. The version PR contains only generated release metadata/changelogs
175
+ and consumed changesets, with no implementation changes.
176
+ - [Trusted-publishing run 40403950446](https://github.com/jchewitt/weftlet/actions/runs/40403950446)
177
+ completed preparation, publication and release records on attempt 1 at merged commit
178
+ `ffc332adb84b8f9e854370ff4799aab32e189356`. Both package-specific tags and GitHub Releases
179
+ identify that commit, and main's package versions agree with npm.
180
+ - Local publication checks passed 264 deterministic tests (1 core, 263 toolkit), one optional
181
+ OML skip, 12 existing advisory architecture findings, inventory, licenses and fresh packed-consumer
182
+ CLI/npx/MCP, preview, real SCIP, RDF/SPARQL/SHACL and viewer checks. Independent code review
183
+ found no remaining blocker. No shape, assertion, baseline or exception was removed or added to
184
+ conceal a failure. The 79 original source path/hash pairs remain unchanged.
185
+ - Independent archive review covered core's 11 entries and toolkit's 196 entries. Runtime assets,
186
+ declarations, examples, README, Apache license and attribution/notices are present. No Git state,
187
+ credentials, caches, private consumer payloads or compiled tests were included. Toolkit's packed
188
+ core dependency is `^0.3.0`. Public archives match both the hosted prepared archives and locally
189
+ reviewed archives byte for byte. Public SLSA provenance subjects match their SHA-512 hashes and
190
+ identify the expected source, repository, `publish.yml` and workflow attempt. This is a provenance
191
+ content/source check, not a separate cryptographic signature audit.
192
+ - A fresh Linux/Node 24.19.0 consumer installed only toolkit 0.3.0 directly from npm with
193
+ `--ignore-scripts`; core resolved transitively to 0.3.0. Both package-lock registry URLs and
194
+ integrity hashes matched the reviewed archives. The public two-document fixture retained
195
+ 2 semantic facts within 17 total facts, including 4 real SCIP facts. Impact returned 17 facts;
196
+ SPARQL returned four canonical document references. Cold hydration extracted 2/reused 0;
197
+ the repeat extracted 0/reused 2 with identical snapshot identity, content digest and bytes.
198
+ - Installed cold/warm `hydrate --plan --json` worked with the provider module unavailable,
199
+ reported 2 expected extractions then 2 reusable artifacts, preserved source authority and
200
+ performed no preview storage writes or provider calls. Saved queries still worked with the
201
+ provider disabled. Hydration used a deterministic fixture provider; no external model calls
202
+ were made during these checks.
203
+
204
+ The installed public `RdfEvidenceGraph.validate()` also passed bounded, fresh-process public
205
+ synthetic checks, preserving exact canonical serialization:
206
+
207
+ | Facts / topology | Original quads | Validation including union | Whole-process maximum RSS |
208
+ | --- | ---: | ---: | ---: |
209
+ | 2,000 unique | 56,003 | 0.632 s | 492 MiB |
210
+ | 10,000 unique | 280,003 | 2.903 s | 1,640 MiB |
211
+
212
+ These are single-run synthetic measurements. Memory includes imports, fixtures and serialization;
213
+ the extra union has a material memory cost. This installed-package probe ran on Linux; hosted
214
+ Windows covers the new parity tests separately. Neither establishes the private consumer's total
215
+ generation time. Full consumer hydration/repeat acceptance, live semantic quality, broader T05
216
+ progress/reuse work and the remaining [1.0 tasks](RELEASE-1.0-PLAN.md) remain open. The SHACL
217
+ change preserves compatible 0.2.1 semantic artifacts and does not require forced re-extraction.
218
+
11
219
  ## T05 cold SHACL validation improvement, 2026-10-26
12
220
 
13
- Implemented in development source following the T02 preview merge. Published npm packages
14
- remain 0.2.1 until a separately recorded release succeeds. [ADR 017](ADR-017-shacl-validation-union.md)
221
+ Pre-release source checkpoint following the T02 preview merge; npm was still at 0.2.1.
222
+ The subsequent 0.3.0 publication is recorded above. [ADR 017](ADR-017-shacl-validation-union.md)
15
223
  records the measured graph-wildcard lookup cost and the temporary all-triples union used by the
16
224
  unchanged JavaScript SHACL validator. The canonical named dataset and every assertion remain intact.
17
225
 
@@ -53,14 +261,14 @@ repeated validation. A 2,200-fact case detects the invalid final assertion witho
53
261
  The existing full hydration integration still verifies that failed SHACL preserves the last head.
54
262
  The shape Turtle is byte-for-byte unchanged from the T02 merge; no shape or assertion was dropped.
55
263
 
56
- Hosted checks and release status remain pending at this source checkpoint.
264
+ Hosted checks and release status were pending at this source checkpoint; their results are above.
57
265
  Early identity preflight, in-phase progress, validation-result reuse and incremental validation
58
266
  remain separate work. Each hydration still performs full SHACL before publishing; saved queries
59
267
  do not repeat validation. Private consumer full hydration/repeat acceptance remains pending.
60
268
 
61
269
  ## T02 no-model hydration preview, 2026-10-26
62
270
 
63
- Implemented in development source; published npm packages remain 0.2.1. See
271
+ Pre-release source checkpoint, while npm was still at 0.2.1. Subsequent 0.3.0 publication is above. See
64
272
  [ADR-016](ADR-016-hydration-preview.md) for source, cache and readiness semantics.
65
273
 
66
274
  [PR 18](https://github.com/jchewitt/weftlet/pull/18) merged at
@@ -108,7 +108,7 @@
108
108
  "destinationPath": "package.json",
109
109
  "sourceSha256": "a575dbb2fed8c554b95e8e9b3e03a0c21cab1be7249860bbebc18e046b2ff78d",
110
110
  "modified": true,
111
- "destinationSha256": "95326a545b7d77607bfd841ff009ef58231b8f9c5ae3f2605e1dac95c9995c4d"
111
+ "destinationSha256": "1e5ae982ffbb2cb02071bbf6c4f8040836dcc451c5e478f10b07cc5646f0e1eb"
112
112
  },
113
113
  {
114
114
  "sourcePath": "tools/context-graph/packages/core/LICENSE",
@@ -129,7 +129,7 @@
129
129
  "destinationPath": "packages/core/README.md",
130
130
  "sourceSha256": "6044bf7b9a3dc793f41e2ff048546ed11938957d10a5b143eb1739ac4cd7477c",
131
131
  "modified": true,
132
- "destinationSha256": "1cb03b2eb415ac35ef7a4405d3cbb415c59717fe6d088968533e3ac51658f7fb"
132
+ "destinationSha256": "c929bd90f5d2bae73554df2dcd0af0ad1bfd45d0843cd7940bde90c42b1266b9"
133
133
  },
134
134
  {
135
135
  "sourcePath": "tools/context-graph/packages/core/THIRD_PARTY_NOTICES.md",
@@ -143,21 +143,21 @@
143
143
  "destinationPath": "packages/core/package.json",
144
144
  "sourceSha256": "2a29066eb8452f22fafcb06bb035a84dda93c5705dba32aba600a1b7e5aaf19c",
145
145
  "modified": true,
146
- "destinationSha256": "4fe851d728bc96fc25bb31295b4705560691f384d887e7ed714e943fae4e69b3"
146
+ "destinationSha256": "090d8d90cbf775e6edf1656215d75200f9961009ef75f2ab4de55fe5603814ea"
147
147
  },
148
148
  {
149
149
  "sourcePath": "tools/context-graph/packages/core/src/core.ts",
150
150
  "destinationPath": "packages/core/src/core.ts",
151
151
  "sourceSha256": "cb3f4eb7bfe9f458494607406664445a276aad37235930a043d400ea9211ed16",
152
152
  "modified": true,
153
- "destinationSha256": "0287d0640f2ff078da19be1439d02fcab22998262562d4af7b5f26ddca0839f4"
153
+ "destinationSha256": "00550f6cc7a8caa4120337ebc73e443b988bfdb72d05a2f828c88db502606fe3"
154
154
  },
155
155
  {
156
156
  "sourcePath": "tools/context-graph/packages/core/src/index.ts",
157
157
  "destinationPath": "packages/core/src/index.ts",
158
158
  "sourceSha256": "6cbf51e60ac8c7b21b04870b50b92f6da0a1a3b2fa9dd21331e7e83e7beced05",
159
- "modified": false,
160
- "destinationSha256": "6cbf51e60ac8c7b21b04870b50b92f6da0a1a3b2fa9dd21331e7e83e7beced05"
159
+ "modified": true,
160
+ "destinationSha256": "d4edc3853d65cf55cd9b12ab17e3af2607f87f6d654556a25ac5253f975292ac"
161
161
  },
162
162
  {
163
163
  "sourcePath": "tools/context-graph/packages/core/src/util.test.ts",
@@ -192,7 +192,7 @@
192
192
  "destinationPath": "scripts/check-publication.mjs",
193
193
  "sourceSha256": "88692c21d34cef2d2e5b20c92ab3ec26cbe6336889dbb7b534c681ded7f466b2",
194
194
  "modified": true,
195
- "destinationSha256": "5d68e9efc168600f8daaef5e1f34911990257972acc100e91875dcb194ef7cc2"
195
+ "destinationSha256": "2b92ad80a6a193b4628d4caec2bd29b6fbf3c6c97066bda2fe91ceb173d06158"
196
196
  },
197
197
  {
198
198
  "sourcePath": "tools/context-graph/scripts/generate-third-party-notices.mjs",
@@ -227,21 +227,21 @@
227
227
  "destinationPath": "src/application/application.ts",
228
228
  "sourceSha256": "22e0fa1312c652f3e5ab2078d8c7e03d3b0235231e220df3349eb60622f78469",
229
229
  "modified": true,
230
- "destinationSha256": "7b23a94ad1a0f3acb5c6b9b01f1f8255af9398d5ba4b79f692249a04eaac3b74"
230
+ "destinationSha256": "e163e5ec862dcceea43d8351c3c0a4d0626e870b718fc1107627ebad10874628"
231
231
  },
232
232
  {
233
233
  "sourcePath": "tools/context-graph/src/cache.ts",
234
234
  "destinationPath": "src/configuration/cache.ts",
235
235
  "sourceSha256": "c65c9803657762dbcfd482c58820950d938694a8432f38d65cc35a86eeca216d",
236
236
  "modified": true,
237
- "destinationSha256": "bf4cd31b7469313d9483a15217be3c6041c1f3532bec144cf654a13aef1bb42b"
237
+ "destinationSha256": "676467260f107d5120c19c11a6a32d785acbf6a0f69c03f96074ccd2c5e05b32"
238
238
  },
239
239
  {
240
240
  "sourcePath": "tools/context-graph/src/cli.ts",
241
241
  "destinationPath": "src/interfaces/cli.ts",
242
242
  "sourceSha256": "c68f5f35a5325cc03811b0d4ffb6d58c31a9b4e6115fcb2c5e4fda9560a34714",
243
243
  "modified": true,
244
- "destinationSha256": "fef7af32de49f73c4ade5f48a84c3a5db1e52171949cfdcd84720bf5e194b901"
244
+ "destinationSha256": "c333051df80a274410351b0ba1eef1a1e004f790fa457fd3ebb7909197c4ca29"
245
245
  },
246
246
  {
247
247
  "sourcePath": "tools/context-graph/src/config.test.ts",
@@ -283,7 +283,7 @@
283
283
  "destinationPath": "src/extraction/document.ts",
284
284
  "sourceSha256": "62a2da37d8cc0637b192b7e70ae7a0dce72244d335da9df0e0ad9b0eb7c4e1f1",
285
285
  "modified": true,
286
- "destinationSha256": "0235abe0e2a7a0cb06495027c5dc240cf5b0658faabbdc01d0006fa3b456432c"
286
+ "destinationSha256": "1e9a5db4bf04455fa202d48fb20ac1de268d74179034cfcfa24d845cb4736bb3"
287
287
  },
288
288
  {
289
289
  "sourcePath": "tools/context-graph/src/git.test.ts",
@@ -311,21 +311,21 @@
311
311
  "destinationPath": "src/application/hydrator.test.ts",
312
312
  "sourceSha256": "95f20a526fe69ce3a506ef01da1c20827e09d631a34126e781a07979cc43de07",
313
313
  "modified": true,
314
- "destinationSha256": "d3c3e4e18adb571d7b9ef5232f10173344c1f6ae126ba76e50c2e32584782709"
314
+ "destinationSha256": "e32e0af9596cbf036570e08033503c053a25ed401c3c999c48dab7b106274710"
315
315
  },
316
316
  {
317
317
  "sourcePath": "tools/context-graph/src/hydrator.ts",
318
318
  "destinationPath": "src/application/hydrator.ts",
319
319
  "sourceSha256": "bb41c5b53b26da10274d8b967b99c78ff12b485df16bfc66445252e35c94fb9d",
320
320
  "modified": true,
321
- "destinationSha256": "1bb8c8481706590f1d994baf6d48818dc76dec014d9e583ee3ae5b5c9aaa265f"
321
+ "destinationSha256": "1833e788ca0c162947c626ff611f724d53f349b8d1dc019f204bd433726f9be9"
322
322
  },
323
323
  {
324
324
  "sourcePath": "tools/context-graph/src/index.ts",
325
325
  "destinationPath": "src/index.ts",
326
326
  "sourceSha256": "a3545649f67fc0bf0496298e3f1dca1e91aa7cb68ec112c34b99a5785fa83f3c",
327
327
  "modified": true,
328
- "destinationSha256": "9f986584ecba26d9b78b52aff19b07f4c572686d35f4363e06fa70b17756e704"
328
+ "destinationSha256": "2dff4c9bca049dc1607cce7cf709494aae24a7f27b05fcb9353dd19de4546fac"
329
329
  },
330
330
  {
331
331
  "sourcePath": "tools/context-graph/src/mcp-facade.ts",
@@ -395,7 +395,7 @@
395
395
  "destinationPath": "src/graph/query.ts",
396
396
  "sourceSha256": "4d67f87ca660cefe9686fb5b775f86a997a25d539819ea81d321c8bd1e0aaa39",
397
397
  "modified": true,
398
- "destinationSha256": "ead61dfde748cd1a02c8b1a14dc729173a6b85ec3b8213af2bd5169c60b70253"
398
+ "destinationSha256": "0cf5bf085aa71180447e7d5b35a19eba6b3e8d87cef550b8bcb996022a7618d8"
399
399
  },
400
400
  {
401
401
  "sourcePath": "tools/context-graph/src/request.test.ts",
@@ -451,21 +451,21 @@
451
451
  "destinationPath": "src/extraction/semantic.ts",
452
452
  "sourceSha256": "1a41fb3fc5a9508c76be59d1c50b74d70ec96411fcbb7f63b0e098c1813d8473",
453
453
  "modified": true,
454
- "destinationSha256": "214d0378b75af7d4960b06981b165da19a37c2ebccb34f8ffa485ca86776f94f"
454
+ "destinationSha256": "aaac083e8eea8e9b6a7303b73f8beea3014c10711eb4afc0b0dd9d81424d5437"
455
455
  },
456
456
  {
457
457
  "sourcePath": "tools/context-graph/src/snapshot-checks.test.ts",
458
458
  "destinationPath": "src/application/snapshot-checks.test.ts",
459
459
  "sourceSha256": "a16c1676f3168fcc87c1fe095c4cb164c0a8738cc3610f1a92bb54ea75267400",
460
460
  "modified": true,
461
- "destinationSha256": "68853d4560c45eb34c866fb520f12e0ad15a7179df09aeb972a310c9c73f897d"
461
+ "destinationSha256": "c6921040f8adcea8b9c8456a8be626cdaaaa5b45fa74cde1bfc3c312f1b9e05c"
462
462
  },
463
463
  {
464
464
  "sourcePath": "tools/context-graph/src/snapshot-checks.ts",
465
465
  "destinationPath": "src/application/snapshot-checks.ts",
466
466
  "sourceSha256": "3c8e01b886d49ce8323b6275019fd503ec3bbbb21671808e228880cc0f853d07",
467
467
  "modified": true,
468
- "destinationSha256": "a12370053d346ec3d4afb2afb70192d14765922b9efb1e76d9daff65291f2409"
468
+ "destinationSha256": "db0d088932820a3e34af3b71e3722e0b6e4bd1e0b7d04534bd806ff79cd0811f"
469
469
  },
470
470
  {
471
471
  "sourcePath": "tools/context-graph/src/static.test.ts",
@@ -479,14 +479,14 @@
479
479
  "destinationPath": "src/extraction/static.ts",
480
480
  "sourceSha256": "f8dcff3e10361314c06911dc7cec1e2cb0f8d9af68a6c61a30b2a741c5c3a385",
481
481
  "modified": true,
482
- "destinationSha256": "94190f11651b21372b2c3a834e30cde5d333893bfad0b66755e5f698608d2fdb"
482
+ "destinationSha256": "99147784d567ff9ccf2619a5452824fb13dc7b8061fc269c1fc90b36cdd96851"
483
483
  },
484
484
  {
485
485
  "sourcePath": "tools/context-graph/src/storage.ts",
486
486
  "destinationPath": "src/storage/storage.ts",
487
487
  "sourceSha256": "9e38af8e34dc84ccaed5322b37b485e60706c68542271926228fb6d4af3d1f71",
488
488
  "modified": true,
489
- "destinationSha256": "1104a909c280209862b9615129487d4aeb647377b726819fcd1b8846ca19a3b7"
489
+ "destinationSha256": "48a4eabe1954f612b1d27f2ac56cb63ae064b0b957570c25c349154adfc2d34d"
490
490
  },
491
491
  {
492
492
  "sourcePath": "tools/context-graph/src/telemetry.test.ts",
@@ -521,7 +521,7 @@
521
521
  "destinationPath": "src/visualization/visualization.ts",
522
522
  "sourceSha256": "4839a5cfbd0a97bf3d338e59eca752a9b96812b464c0369da93a55d209120ab7",
523
523
  "modified": true,
524
- "destinationSha256": "4ab2aecae28174b79fd8a0069540da0b091dc078be1075ebde51985089d36753"
524
+ "destinationSha256": "e55328ba9957201c2152fcf036c8cd3eb9ce96fcbbdb93408ded2f5becd2f268"
525
525
  },
526
526
  {
527
527
  "sourcePath": "tools/context-graph/templates/context-graph-development/SKILL.md",
@@ -610,6 +610,9 @@
610
610
  "docs/ADR-015-repository-document-identity.md",
611
611
  "docs/ADR-016-hydration-preview.md",
612
612
  "docs/ADR-017-shacl-validation-union.md",
613
+ "docs/ADR-018-operational-semantic-cache.md",
614
+ "docs/ADR-019-semantic-failure-diagnostics.md",
615
+ "docs/ADR-020-canonical-physical-file-producers.md",
613
616
  "docs/CLOUD-ENVIRONMENT.md",
614
617
  "docs/CONSUMER-TRIAL.md",
615
618
  "docs/ENVIRONMENT-VALIDATION.md",
@@ -697,6 +700,8 @@
697
700
  "examples/pipeline/tsconfig.json",
698
701
  "mcp-launcher.mjs",
699
702
  "packages/core/CHANGELOG.md",
703
+ "packages/core/src/repository-nodes.test.ts",
704
+ "packages/core/src/repository-nodes.ts",
700
705
  "pnpm-lock.yaml",
701
706
  "pnpm-workspace.yaml",
702
707
  "reviewed-licenses.json",
@@ -734,11 +739,18 @@
734
739
  "scripts/update-inventory.mjs",
735
740
  "scripts/version-packages.mjs",
736
741
  "scripts/version-packages.test.ts",
742
+ "src/application/cache-adoption.ts",
743
+ "src/application/extraction-identity.ts",
744
+ "src/application/hydration-failure.ts",
737
745
  "src/application/hydration-plan.ts",
738
746
  "src/application/overlay.test.ts",
739
747
  "src/application/overlay.ts",
740
748
  "src/application/saved-evidence.ts",
749
+ "src/application/semantic-artifact-store.ts",
750
+ "src/application/semantic-run.ts",
751
+ "src/application/semantic-scope.ts",
741
752
  "src/cli.ts",
753
+ "src/configuration/cache.test.ts",
742
754
  "src/configuration/scip-project.ts",
743
755
  "src/extraction/codex-auth.test.ts",
744
756
  "src/extraction/codex-auth.ts",
@@ -757,19 +769,23 @@
757
769
  "src/extraction/scip-project.test.ts",
758
770
  "src/extraction/scip-project.ts",
759
771
  "src/extraction/semantic-cache.ts",
772
+ "src/extraction/semantic-diagnostics.ts",
760
773
  "src/extraction/semantic-identity.ts",
761
774
  "src/extraction/semantic-process.test.ts",
762
775
  "src/extraction/semantic-process.ts",
763
776
  "src/extraction/semantic-sources.ts",
764
777
  "src/governance/governance.test.ts",
765
778
  "src/governance/governance.ts",
779
+ "src/governance/physical-file-kinds.test.ts",
766
780
  "src/graph/authority.ts",
767
781
  "src/graph/ranking.test.ts",
768
782
  "src/graph/ranking.ts",
769
783
  "src/graph/rdf.ts",
770
784
  "src/graph/shacl-shapes.ts",
771
785
  "src/infrastructure/module-resolution.ts",
786
+ "src/interfaces/cache-adoption.test.ts",
772
787
  "src/interfaces/doctor.ts",
788
+ "src/interfaces/hydration-failure.test.ts",
773
789
  "src/interfaces/hydration-plan.test.ts",
774
790
  "src/interfaces/init.test.ts",
775
791
  "src/interfaces/init.ts",
@@ -782,12 +798,17 @@
782
798
  "src/telemetry.ts",
783
799
  "src/visualization/viewer-interaction.ts",
784
800
  "tests/architecture.test.ts",
801
+ "tests/cache-adoption.test.ts",
802
+ "tests/extractor-compatibility.test.ts",
803
+ "tests/hydration-failure.test.ts",
785
804
  "tests/hydration-plan.test.ts",
786
805
  "tests/module-boundaries.test.ts",
806
+ "tests/physical-file-kinds.test.ts",
787
807
  "tests/rdf-ontology.test.ts",
788
808
  "tests/rdf.test.ts",
789
809
  "tests/routing.test.ts",
790
810
  "tests/runtime.test.ts",
811
+ "tests/semantic-cache-reuse.test.ts",
791
812
  "tests/semantic-identity.test.ts",
792
813
  "tests/shacl-validation.test.ts",
793
814
  "tests/snapshot-lifecycle.test.ts"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weftlet/toolkit",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Evidence-backed context graphs for AI development agents: product intent, contracts, code, tests and runtime behavior",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -63,7 +63,7 @@
63
63
  "n3": "2.7.2",
64
64
  "rdf-validate-shacl": "0.6.5",
65
65
  "sparqljs": "3.7.4",
66
- "@weftlet/core": "^0.3.0"
66
+ "@weftlet/core": "^0.4.0"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@changesets/cli": "3.0.3",