@weftlet/toolkit 0.2.1 → 0.3.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.
package/docs/RELEASING.md CHANGED
@@ -1,6 +1,17 @@
1
1
  # Weftlet npm releases
2
2
 
3
- `@weftlet/core@0.2.0` and `@weftlet/toolkit@0.2.0` are published through GitHub OIDC.
3
+ `@weftlet/core@0.2.1` and `@weftlet/toolkit@0.2.1` are published through GitHub OIDC.
4
+ [Run 40382864083](https://github.com/jchewitt/weftlet/actions/runs/40382864083) completed
5
+ preparation, publication and release records on its first attempt at commit
6
+ `5d1db91bf19ed493a20849b2d0f92d3aeac35dfe`. Registry archives match the reviewed archives;
7
+ provenance and package tags identify that commit. A fresh public-registry installation passes
8
+ the identity regression, real SCIP/RDF/SHACL, querying and repeat artifact reuse without live
9
+ model calls. [Fix PR #15](https://github.com/jchewitt/weftlet/pull/15) and
10
+ [release PR #16](https://github.com/jchewitt/weftlet/pull/16) record the change. Genuine consumer
11
+ acceptance remains pending in the [1.0 plan](RELEASE-1.0-PLAN.md); detailed upstream evidence
12
+ is in [validation](VALIDATION.md).
13
+
14
+ The earlier 0.2.0 release also used GitHub OIDC.
4
15
  [Run 40344526047](https://github.com/jchewitt/weftlet/actions/runs/40344526047) completed at
5
16
  commit `ffe7f1d81f0421b35220bd7ba5b1555246c7a0e1`, including registry integrity checks,
6
17
  package tags and GitHub Releases. The first attempt published core, then toolkit publication
@@ -34,8 +45,8 @@ preparation route; native Windows has focused CI coverage. See [validation](VALI
34
45
  **before** npm publication. Do not manually bump manifests or edit the generated plan.
35
46
  4. The plan change triggers **Weftlet release**. It validates and prepares both archives, publishes
36
47
  core followed by toolkit using npm trusted publishing, then verifies registry integrity.
37
- 5. After both versions are verified, a separate job creates tags such as `@weftlet/core@0.2.0`
38
- and `@weftlet/toolkit@0.2.0`, plus corresponding GitHub Releases, at that exact source commit.
48
+ 5. After both versions are verified, a separate job creates tags such as `@weftlet/core@0.2.1`
49
+ and `@weftlet/toolkit@0.2.1`, plus corresponding GitHub Releases, at that exact source commit.
39
50
  Existing tags are never moved. The publication job does not commit back to main.
40
51
 
41
52
  The bot uses GitHub's built-in token, not a personal access token. GitHub may require Settings →
@@ -148,7 +159,7 @@ Package-specific tags identify the exact published source, for example:
148
159
 
149
160
  ```sh
150
161
  git fetch --tags
151
- git switch --detach '@weftlet/toolkit@0.2.0'
162
+ git switch --detach '@weftlet/toolkit@0.2.1'
152
163
  ```
153
164
 
154
165
  Tags support inspection and reproduction, not mutation of npm history. To roll a consumer back,
@@ -158,8 +169,8 @@ Verify a new public release in a fresh disposable project, substituting its vers
158
169
 
159
170
  ```sh
160
171
  npm init -y
161
- npx --yes @weftlet/toolkit@0.2.0 init --yes
162
- npx --yes @weftlet/toolkit@0.2.0 config validate
172
+ npx --yes @weftlet/toolkit@0.2.1 init --yes
173
+ npx --yes @weftlet/toolkit@0.2.1 config validate
163
174
  ```
164
175
 
165
176
  Check registry hashes, transitive core resolution and provenance. Deprecating the previous
package/docs/ROADMAP.md CHANGED
@@ -1,15 +1,37 @@
1
1
  # Delivery roadmap
2
2
 
3
+ Source checkpoint: 2026-10-26, before the planned 0.3.0 release. Publication evidence is
4
+ recorded separately in [validation](VALIDATION.md); this roadmap is not a live registry status.
5
+
3
6
  Project: `jchewitt/weftlet`. Extraction provenance is recorded in the
4
7
  [source inventory](SOURCE-INVENTORY.md).
5
8
 
6
9
  Forward direction is captured in the [Weftlet 2.0 product plan](WEFTLET-2.0-PLAN.md):
7
10
  consumer hardening, cited code-derived drafts, scoped approvals and reconciliation, an optional
8
11
  review website, source publication, managed AI and guided setup. “2.0” is a planning label;
9
- the published packages remain 0.2.0. The received consumer findings are tracked in the
10
- [consumer hardening and 1.0 task list](RELEASE-1.0-PLAN.md): first release the blocking
11
- document-identity patch, then address setup, reuse, diagnostics and document coverage before
12
- official 1.0 acceptance. The 2.0 plan distinguishes proposed work from delivered capability.
12
+ the published packages are 0.2.1. The received consumer findings are tracked in the
13
+ [consumer hardening and 1.0 task list](RELEASE-1.0-PLAN.md): the document-identity patch is
14
+ published and passes upstream checks; genuine consumer acceptance remains pending. T02's
15
+ no-model preview is implemented in development source but is not in published 0.2.1. Cache reuse,
16
+ diagnostics and document coverage remain open before official 1.0 acceptance.
17
+ The 2.0 plan distinguishes proposed work from delivered capability.
18
+
19
+ T05 now blocks adoption: the maintainer reports SHACL pushing generation past a 30-minute
20
+ timeout before graph publication. T02 merged in [PR #18](https://github.com/jchewitt/weftlet/pull/18)
21
+ after local and hosted Ubuntu/Windows checks. The focused T05 cold-validation optimization is
22
+ implemented in development source, awaiting validation/release; the other 1.0 features must not
23
+ delay it. Neither increment is in the published 0.2.1 packages.
24
+
25
+ [Hydration planning](ADR-016-hydration-preview.md) shares committed selection and semantic cache
26
+ identity with execution, reports human/JSON scope and work estimates, and preserves source versus
27
+ assertion authority. It performs no model work or graph writes. The current JavaScript validator
28
+ still checks the complete in-memory N3 graph on each hydration; saved queries do not repeat
29
+ validation. [The T05 union optimization](ADR-017-shacl-validation-union.md) indexes all SPO triples
30
+ in one temporary validation graph, preserving the same shapes and canonical named evidence.
31
+ Bounded public experiments measured substantial cold-path improvement, alongside about 1.3 GiB
32
+ RSS at 10,000 unique-node facts. They do not reproduce the private consumer's overall timeout.
33
+ Early checks, in-phase progress, result reuse and incremental validation remain open; no Rust
34
+ engine, graph database or validation-result cache is introduced by this focused release.
13
35
 
14
36
  | Milestone | Delivered and checked | Remaining limits |
15
37
  | --- | --- | --- |
@@ -97,7 +119,7 @@ preparation/publication under `@launch-echo`; the maintainer completed the 0.1.0
97
119
  source-application reintegration remain outside the authorized scope. See [release instructions](RELEASING.md).
98
120
 
99
121
  The maintainer authorized the Weftlet migration on 2026-10-21. Both `@weftlet/core` and
100
- `@weftlet/toolkit` are published at 0.2.0 through GitHub OIDC; the publication and verification
122
+ `@weftlet/toolkit` are published at 0.2.1 through GitHub OIDC; the publication and verification
101
123
  record is in [validation](VALIDATION.md). Changesets prepares reviewed version PRs for the fixed package group;
102
124
  merging a release plan triggers publication and package-specific tags/GitHub Releases.
103
125
  See [ADR 009](ADR-009-release-automation.md) and [release instructions](RELEASING.md).
@@ -8,7 +8,101 @@ 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
- ## Repository document identity patch, 2026-10-26
11
+ ## T05 cold SHACL validation improvement, 2026-10-26
12
+
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)
15
+ records the measured graph-wildcard lookup cost and the temporary all-triples union used by the
16
+ unchanged JavaScript SHACL validator. The canonical named dataset and every assertion remain intact.
17
+
18
+ Public synthetic production measurements use Linux/Node 24.19.0, N3 2.7.2 and
19
+ rdf-validate-shacl 0.6.5. Each case ran once in a fresh child process with a 45-second hard deadline:
20
+
21
+ | Facts / topology | Nodes / original quads | Canonical construction | Production validation, including union | Whole-process maximum RSS |
22
+ | --- | --- | ---: | ---: | ---: |
23
+ | 2,000 unique | 4,000 / 56,003 | 0.194 s | 0.779 s | 490 MiB |
24
+ | 10,000 unique | 20,000 / 280,003 | 1.091 s | 2.920 s | 1,638 MiB |
25
+
26
+ Both production cases conform and retain the exact before/after serialized dataset digest.
27
+ The original-path public experiment measured 31.502 seconds of SHACL for the 2,000-fact unique
28
+ case; its 5,000-fact shared case produced no verdict before the 45-second process deadline.
29
+ The ADR records those separate prototype measurements and their boundaries. These are single-run
30
+ measurements, not latency guarantees or a reproduction of the consumer's complete 30-minute run.
31
+ Memory includes libraries, fixture generation and before/after serialization; the production
32
+ harness peaked near 1.6 GiB at 10,000 unique facts. Its legacy comparison also reparses a second
33
+ named store, so its RSS must not be treated as an old-versus-new production memory comparison.
34
+
35
+ Reproduce from a built source checkout with
36
+ `pnpm benchmark:shacl --counts 2000,10000 --topologies unique --modes optimized`.
37
+ The bounded harness records runtime, build hashes, sizes, phase timings, conformance and
38
+ serialization preservation. It exercises the public production validator; no private-store mutation,
39
+ provider call or private consumer data is used. A small paired legacy/optimized smoke agreed;
40
+ a 1 ms deadline probe killed the children and correctly reported no verdict.
41
+
42
+ Local `pnpm context-graph:publication-check` passes: 264 deterministic tests (1 core,
43
+ 263 toolkit), one optional OML skip, 12 existing advisory architecture findings, source inventory,
44
+ licenses and fresh packed-consumer CLI/npx/MCP, preview, real SCIP, RDF/SPARQL/SHACL and viewer
45
+ checks. All 79 original source path/hash pairs remain unchanged. No architecture baseline or
46
+ exception was added. The new internal shape module is required in the packed runtime inventory.
47
+
48
+ The 25 new regressions compare complete normalized diagnostics with direct validation of the
49
+ original named dataset. Cases cover empty/duplicate input, kinds, authorities, confidence and
50
+ citation bounds/types/order, empty provenance fields and colliding fact IDs. Separate assertions
51
+ preserve exact serialization, named-graph attributes/citations/review state and `facts()` through
52
+ repeated validation. A 2,200-fact case detects the invalid final assertion without timing gates.
53
+ The existing full hydration integration still verifies that failed SHACL preserves the last head.
54
+ The shape Turtle is byte-for-byte unchanged from the T02 merge; no shape or assertion was dropped.
55
+
56
+ Hosted checks and release status remain pending at this source checkpoint.
57
+ Early identity preflight, in-phase progress, validation-result reuse and incremental validation
58
+ remain separate work. Each hydration still performs full SHACL before publishing; saved queries
59
+ do not repeat validation. Private consumer full hydration/repeat acceptance remains pending.
60
+
61
+ ## T02 no-model hydration preview, 2026-10-26
62
+
63
+ Implemented in development source; published npm packages remain 0.2.1. See
64
+ [ADR-016](ADR-016-hydration-preview.md) for source, cache and readiness semantics.
65
+
66
+ [PR 18](https://github.com/jchewitt/weftlet/pull/18) merged at
67
+ `63c70f85b26a6cc60f8bc0615a86f6042a61ecd0`. Its final head
68
+ `6711362f9ff234d65ac3101dcf3ec0b0033519ec` passed hosted Ubuntu and Windows checks in
69
+ [run 40400487168](https://github.com/jchewitt/weftlet/actions/runs/40400487168) and
70
+ [run 40400478490](https://github.com/jchewitt/weftlet/actions/runs/40400478490).
71
+ An earlier Ubuntu run exposed a temporary-fixture cleanup race; disabling automatic Git
72
+ maintenance in that fixture and bounded cleanup retries resolved it before merge.
73
+
74
+ - Local `pnpm context-graph:publication-check` passed: 239 deterministic tests (1 core,
75
+ 238 toolkit), one optional OML skip, 12 advisory architecture findings, inventory, licenses
76
+ and fresh packed-consumer checks. No additional architecture baseline or exception was added.
77
+ - Ten independent-repository planner cases cover exact committed bytes despite dirty/untracked
78
+ files, unchanged Git index and filesystem hashes, approved sources versus unreviewed assertions,
79
+ explicit evidence-root classification, empty selection, cold/warm/forced cache, malformed or
80
+ unreadable artifacts, output-digest corruption, budgets, duplicate IDs, missing selectors and
81
+ historical agent selection with explicit omissions. The warm test independently checks the
82
+ literal released 0.2.1 key formula, then verifies actual SemanticHydrator reuse.
83
+ - Two real-process CLI cases cover human/JSON output, blocked and warning-only exit codes,
84
+ historical refs and force preview. Side-effecting provider/adapter modules are never imported;
85
+ unavailable Codex/SCIP/OML configuration does not prevent planning. Source bodies/raw provider
86
+ output are excluded from the plan. No snapshot or artifact directory is created by preview.
87
+ - Existing hydration rename/delete tests still pass, including removal of the last document.
88
+ Explicit empty semantic scope now performs zero semantic extraction even with committed docs
89
+ present. New graph-v6 snapshots remain distinct from old assemblies; valid semantic cache keys
90
+ and output digests retain the 0.2.1 contract.
91
+ - A fresh packed consumer exercises installed `hydrate --plan --json` with absent provider and
92
+ repository adapter modules, selects its committed document, reports one expected extraction,
93
+ and creates no graph storage. The public planner export and every runtime helper are present.
94
+ The remaining installed smoke covers real SCIP, RDF/SPARQL/SHACL, visualization and MCP.
95
+ - Independent review found and resolved an initial selector-gating regression: unmatched selectors
96
+ are warnings, preserving deletion behavior. Incomplete preview scope needs review and exits 1;
97
+ it does not establish a new execution policy. No blocking review finding remains.
98
+
99
+ No paid/live model call, npm publication or private source-application change was made for T02.
100
+ Recursive document coverage and operational-config cache reuse remain separate. This increment
101
+ does not optimize SHACL. The maintainer's report that validation pushes generation past a
102
+ 30-minute timeout makes [T05](RELEASE-1.0-PLAN.md#t05--detect-inexpensive-conflicts-early-and-explain-validation-work)
103
+ the next focused release priority; no consumer timing diagnosis is claimed here.
104
+
105
+ ## Weftlet 0.2.1 document identity patch, 2026-10-26
12
106
 
13
107
  The public reproduction confirms the reported 0.2.0 defect: two unchanged semantic
14
108
  assertions give one repository document ID different kinds and fail single-kind SHACL.
@@ -16,6 +110,23 @@ assertions give one repository document ID different kinds and fail single-kind
16
110
  cache contract and immutable snapshot migration. The consumer follow-ups are tracked in
17
111
  the [1.0 plan](RELEASE-1.0-PLAN.md).
18
112
 
113
+ [Fix PR 15](https://github.com/jchewitt/weftlet/pull/15) was validated at
114
+ `42ba9b79dc0562a412cd5a048e42b77234530d94` by both hosted Ubuntu/Windows runs
115
+ [40381728487](https://github.com/jchewitt/weftlet/actions/runs/40381728487) and
116
+ [40381772577](https://github.com/jchewitt/weftlet/actions/runs/40381772577).
117
+ [Release PR 16](https://github.com/jchewitt/weftlet/pull/16) advanced both package versions
118
+ to 0.2.1. Its exact head `da07772110d4c762e3178a7345b426263e14a22f` passed local
119
+ `pnpm release:prepare` and the explicitly dispatched
120
+ [Ubuntu/Windows checks](https://github.com/jchewitt/weftlet/actions/runs/40382270147).
121
+ The bot PR's separate automatic run required GitHub approval; the dispatched run tested
122
+ that same commit and completed successfully.
123
+
124
+ [Trusted-publishing run 40382864083](https://github.com/jchewitt/weftlet/actions/runs/40382864083)
125
+ completed on attempt 1 at merged commit `5d1db91bf19ed493a20849b2d0f92d3aeac35dfe`.
126
+ Both public npm `latest` tags resolve to 0.2.1. Package tags `@weftlet/core@0.2.1`
127
+ and `@weftlet/toolkit@0.2.1`, plus their GitHub Releases, identify that exact commit.
128
+ Main's package versions match the publication.
129
+
19
130
  - Local `pnpm context-graph:publication-check` passed: 227 deterministic tests (1 core,
20
131
  226 toolkit), one optional OML skip, 12 advisory architecture findings, inventory,
21
132
  licenses and a fresh packed-consumer CLI/npx/MCP, real SCIP and RDF/SHACL smoke.
@@ -31,12 +142,31 @@ the [1.0 plan](RELEASE-1.0-PLAN.md).
31
142
  mentioned in plain prose retains a cited implementation-gap diagnostic.
32
143
  - Independent review found and resolved that missing-path diagnostic regression. No blocking
33
144
  findings remained. All 79 original imported source paths and source hashes are preserved.
145
+ - Independent release review inspected the actual core/toolkit archives (11/184 file entries),
146
+ generated versions, changelogs and plan. Runtime assets, public examples and licenses/notices
147
+ are present; no Git history, credentials, caches or private consumer report data were included.
148
+ The packed toolkit dependency is `@weftlet/core: ^0.2.1`.
149
+ - Public npm archives match the hosted prepared archives and locally reviewed archives byte
150
+ for byte. Public SLSA provenance subjects match the SHA-512 archive hashes and identify this
151
+ source commit, repository, `publish.yml` and workflow attempt. This checks provenance content
152
+ and source identity, not a separate cryptographic signature audit.
153
+ - A fresh Linux/Node 24.19.0 public-registry consumer installed only toolkit 0.2.1 directly
154
+ (`npm install --ignore-scripts`); core resolved transitively to 0.2.1. Both package-lock
155
+ registry URLs and integrity hashes matched the reviewed archives. The installed CLI
156
+ initialized and validated an independent public fixture with two source documents. A
157
+ deterministic provider reproduced the legacy conflicting classifications: hydration retained
158
+ 2 semantic facts within 17 total facts, including 4 real SCIP facts, and SHACL conformed.
159
+ Cold hydration extracted 2/reused 0; the repeat extracted 0/reused 2 with unchanged snapshot
160
+ identity, content digest and bytes. Impact returned 17 facts and SPARQL returned the four
161
+ canonical document references. Saved queries still worked after the provider was disabled.
162
+ No live model call was made.
34
163
 
35
164
  These are deterministic upstream checks, not live semantic-quality or private consumer
36
165
  acceptance results. The consumer's full hydration was stopped after its isolated reproduction;
37
166
  no complete consumer SHACL verdict or published snapshot is claimed. Full-graph validation
38
- latency remains a separate investigation. Release and hosted-check evidence will be recorded
39
- after the patch completes the normal publishing workflow.
167
+ latency remains a separate investigation. The first refresh requires new semantic extraction;
168
+ historical cache/snapshot files should be retained. T01's upstream patch is published, while
169
+ genuine consumer acceptance and the remaining T02–T07 work are still pending.
40
170
 
41
171
  ## Weftlet 0.2.0 publication, 2026-10-26
42
172
 
@@ -1,7 +1,8 @@
1
1
  # Weftlet 2.0 product plan
2
2
 
3
3
  Status: proposed direction captured at the maintainer's request on 2026-10-26.
4
- Baseline: published `@weftlet/core` and `@weftlet/toolkit` **0.2.0**, with release evidence in
4
+ Planning baseline: published `@weftlet/core` and `@weftlet/toolkit` **0.2.0**. The consumer
5
+ identity fix has since shipped in **0.2.1**, with release evidence in
5
6
  [VALIDATION.md](VALIDATION.md). **“2.0” names this product plan; it does not announce npm
6
7
  version 2.0.0, a delivery date, or a single large release.** Changes should ship through small,
7
8
  reviewed milestones using the existing Changesets workflow.
@@ -48,15 +49,15 @@ Existing gap reports do not establish completeness of a project's business requi
48
49
 
49
50
  The maintainer supplied a consumer integration report on 2026-10-26. The
50
51
  [consumer hardening and 1.0 task list](RELEASE-1.0-PLAN.md) records its seven items and acceptance
51
- criteria. First ship the blocking repository-document identity/kind fix as an isolated patch;
52
- then work through the other improvements toward an official 1.0. Ordinary reliability fixes
53
- ship independently of the companion platform described here.
52
+ criteria. The repository-document identity/kind patch shipped in 0.2.1 and passes upstream
53
+ regressions; genuine consumer acceptance remains pending. Work through the other improvements
54
+ toward an official 1.0 independently of the companion platform described here.
54
55
 
55
56
  | Intake item | Status | Next action |
56
57
  | --- | --- | --- |
57
58
  | Consumer integration report | Received; task list recorded | Preserve private evidence with the consumer and use public-safe upstream reproductions |
58
- | Reproduction and severity | Identity/kind defect is the reported adoption blocker | Reproduce two-document conflict upstream; keep validation latency a separate investigation |
59
- | Fix/release mapping | Blocker patch in progress; remaining tasks planned | Release T01 first, then T02–T07 and genuine consumer acceptance before official 1.0 |
59
+ | Reproduction and severity | Reported identity/kind blocker has a passing upstream regression | Obtain the genuine consumer re-run; keep validation latency a separate investigation |
60
+ | Fix/release mapping | T01 upstream patch published in 0.2.1; T02–T07 remain open | Complete bounded follow-ups and genuine consumer acceptance before official 1.0 |
60
61
 
61
62
  For each finding, retain toolkit/version, repository SHA, relevant configuration and scope,
62
63
  exact command or MCP request, expected/actual behavior, logs/exit status, snapshot identity,
@@ -127,7 +128,7 @@ explicit migration ADR.
127
128
 
128
129
  | Milestone | Depends on | Deliverable and completion evidence |
129
130
  | --- | --- | --- |
130
- | **M0 — Consumer hardening** | Received report; [1.0 task list](RELEASE-1.0-PLAN.md) | Ship the identity/kind blocker patch first, then bounded setup/reuse/diagnostics/coverage improvements and genuine consumer acceptance. Release independently of the companion platform. |
131
+ | **M0 — Consumer hardening** | Identity patch 0.2.1 shipped; [1.0 task list](RELEASE-1.0-PLAN.md) | Complete bounded setup/reuse/diagnostics/coverage improvements and genuine consumer acceptance. Release independently of the companion platform. |
131
132
  | **M1 — Claims, lineage and approvals** | M0 triage | Versioned records, durable derivation, revision-scoped approvals, actor trust and explicit legacy handling. Prove generated documents cannot acquire approval through paths or repeated extraction. Verify persistence/RDF/projection/query equivalence and old-snapshot readability. |
132
133
  | **M2 — Code-derived drafts** | M1 | Opt-in generation for selected TypeScript modules using existing local Codex first; structured candidate claims and Markdown rendered from those claims. Demonstrate no-doc and partial-doc fixtures with citations, unknown rationale, bounded cost, cache reuse and rename/delete invalidation. |
133
134
  | **M3 — Decisions and reconciliation** | M1–M2 | Capture explicit accepted requirements/decisions, compare changes from code and documents, distinguish scope differences from conflicts, and propose focused amendments. Demonstrate a resolved documentation disagreement with a remaining implementation gap. |
@@ -273,7 +274,7 @@ Resolve these decisions in small ADRs as their milestones approach:
273
274
 
274
275
  ## Next handoff
275
276
 
276
- 1. Resolve and publish the identity/kind blocker patch under M0, then obtain a genuine consumer re-run.
277
+ 1. Obtain a genuine consumer re-run of the published 0.2.1 identity/kind patch under M0.
277
278
  2. Complete the remaining [1.0 tasks](RELEASE-1.0-PLAN.md) and review acceptance without waiting for the website or managed AI.
278
279
  3. Design M1's minimal records and compatibility rules, then implement M2 on bounded public fixtures.
279
280
  4. Review real extraction/review results before committing to hosted scope, paid operation or more adapters.
@@ -108,7 +108,7 @@
108
108
  "destinationPath": "package.json",
109
109
  "sourceSha256": "a575dbb2fed8c554b95e8e9b3e03a0c21cab1be7249860bbebc18e046b2ff78d",
110
110
  "modified": true,
111
- "destinationSha256": "897f14e438ff7e639f8a906c21fa8e436285180ef05dc6f3c5f73bb94c586ed6"
111
+ "destinationSha256": "95326a545b7d77607bfd841ff009ef58231b8f9c5ae3f2605e1dac95c9995c4d"
112
112
  },
113
113
  {
114
114
  "sourcePath": "tools/context-graph/packages/core/LICENSE",
@@ -143,7 +143,7 @@
143
143
  "destinationPath": "packages/core/package.json",
144
144
  "sourceSha256": "2a29066eb8452f22fafcb06bb035a84dda93c5705dba32aba600a1b7e5aaf19c",
145
145
  "modified": true,
146
- "destinationSha256": "96b88f6a7de48d24b24697fb8824bf46f340eec8723aed19b06684d21784c1fb"
146
+ "destinationSha256": "4fe851d728bc96fc25bb31295b4705560691f384d887e7ed714e943fae4e69b3"
147
147
  },
148
148
  {
149
149
  "sourcePath": "tools/context-graph/packages/core/src/core.ts",
@@ -192,7 +192,7 @@
192
192
  "destinationPath": "scripts/check-publication.mjs",
193
193
  "sourceSha256": "88692c21d34cef2d2e5b20c92ab3ec26cbe6336889dbb7b534c681ded7f466b2",
194
194
  "modified": true,
195
- "destinationSha256": "7db15ce23e217d8bc14772ff1287dfff0f81e9f402b3d8a5053d386736e8c078"
195
+ "destinationSha256": "5d68e9efc168600f8daaef5e1f34911990257972acc100e91875dcb194ef7cc2"
196
196
  },
197
197
  {
198
198
  "sourcePath": "tools/context-graph/scripts/generate-third-party-notices.mjs",
@@ -213,7 +213,7 @@
213
213
  "destinationPath": "src/application/agent-context.ts",
214
214
  "sourceSha256": "0a45ce6d878f3c2c19a1707b799e8c1d6e9e99ab5cb068aa73088b32f420aa23",
215
215
  "modified": true,
216
- "destinationSha256": "97f16a8388bb7fbff228e83896bae4cd708d978ffb95135988a016e3ae6b0a5c"
216
+ "destinationSha256": "9c5778d66ed674c87a25ce132379e14805c00cd98ff76bc31f4e06151bec7430"
217
217
  },
218
218
  {
219
219
  "sourcePath": "tools/context-graph/src/application.test.ts",
@@ -241,7 +241,7 @@
241
241
  "destinationPath": "src/interfaces/cli.ts",
242
242
  "sourceSha256": "c68f5f35a5325cc03811b0d4ffb6d58c31a9b4e6115fcb2c5e4fda9560a34714",
243
243
  "modified": true,
244
- "destinationSha256": "2dbb28c9ae609e6e988578fd3eb82e9ca51735b77d16e23ab0dd910030eac008"
244
+ "destinationSha256": "fef7af32de49f73c4ade5f48a84c3a5db1e52171949cfdcd84720bf5e194b901"
245
245
  },
246
246
  {
247
247
  "sourcePath": "tools/context-graph/src/config.test.ts",
@@ -297,7 +297,7 @@
297
297
  "destinationPath": "src/repository/git.ts",
298
298
  "sourceSha256": "484d3986633bb32ccc3b665f2144007a213c303df51b375c1d653729921d6d2c",
299
299
  "modified": true,
300
- "destinationSha256": "66c9230d73e972ed1696880dbd31339a8e618b8cabcb2bfebbeeccc112d65768"
300
+ "destinationSha256": "2557d47d1c54a6bbefc61d16eac4a4d16f995adadb480130ea39f558ce3522f1"
301
301
  },
302
302
  {
303
303
  "sourcePath": "tools/context-graph/src/glob.ts",
@@ -311,21 +311,21 @@
311
311
  "destinationPath": "src/application/hydrator.test.ts",
312
312
  "sourceSha256": "95f20a526fe69ce3a506ef01da1c20827e09d631a34126e781a07979cc43de07",
313
313
  "modified": true,
314
- "destinationSha256": "9baaacb29c863abdb48c96b054a7f430ce18784badfe585ec5ee88a17f21c0bd"
314
+ "destinationSha256": "d3c3e4e18adb571d7b9ef5232f10173344c1f6ae126ba76e50c2e32584782709"
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": "356dcec76c68e76492a56fd17017e1809f8cc30f237bfe540c827ade8337ad88"
321
+ "destinationSha256": "1bb8c8481706590f1d994baf6d48818dc76dec014d9e583ee3ae5b5c9aaa265f"
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": "6d2e5a298c96013f45f102f44a87fd7390cbe2a3174410560bb6fc8cc24012ea"
328
+ "destinationSha256": "9f986584ecba26d9b78b52aff19b07f4c572686d35f4363e06fa70b17756e704"
329
329
  },
330
330
  {
331
331
  "sourcePath": "tools/context-graph/src/mcp-facade.ts",
@@ -451,7 +451,7 @@
451
451
  "destinationPath": "src/extraction/semantic.ts",
452
452
  "sourceSha256": "1a41fb3fc5a9508c76be59d1c50b74d70ec96411fcbb7f63b0e098c1813d8473",
453
453
  "modified": true,
454
- "destinationSha256": "eb31d432f0cbb7bd6799562a7e514aa04bbbd2df221f4ef916989eeeea3997f0"
454
+ "destinationSha256": "214d0378b75af7d4960b06981b165da19a37c2ebccb34f8ffa485ca86776f94f"
455
455
  },
456
456
  {
457
457
  "sourcePath": "tools/context-graph/src/snapshot-checks.test.ts",
@@ -608,6 +608,8 @@
608
608
  "docs/ADR-013-relative-module-requests.md",
609
609
  "docs/ADR-014-routing-declarations.md",
610
610
  "docs/ADR-015-repository-document-identity.md",
611
+ "docs/ADR-016-hydration-preview.md",
612
+ "docs/ADR-017-shacl-validation-union.md",
611
613
  "docs/CLOUD-ENVIRONMENT.md",
612
614
  "docs/CONSUMER-TRIAL.md",
613
615
  "docs/ENVIRONMENT-VALIDATION.md",
@@ -700,6 +702,7 @@
700
702
  "reviewed-licenses.json",
701
703
  "runtime-check.d.mts",
702
704
  "runtime-check.mjs",
705
+ "scripts/benchmark-shacl.mjs",
703
706
  "scripts/check-release-plan.mjs",
704
707
  "scripts/check-restoration.mjs",
705
708
  "scripts/clean-build.mjs",
@@ -731,6 +734,7 @@
731
734
  "scripts/update-inventory.mjs",
732
735
  "scripts/version-packages.mjs",
733
736
  "scripts/version-packages.test.ts",
737
+ "src/application/hydration-plan.ts",
734
738
  "src/application/overlay.test.ts",
735
739
  "src/application/overlay.ts",
736
740
  "src/application/saved-evidence.ts",
@@ -752,16 +756,21 @@
752
756
  "src/extraction/routing.ts",
753
757
  "src/extraction/scip-project.test.ts",
754
758
  "src/extraction/scip-project.ts",
759
+ "src/extraction/semantic-cache.ts",
760
+ "src/extraction/semantic-identity.ts",
755
761
  "src/extraction/semantic-process.test.ts",
756
762
  "src/extraction/semantic-process.ts",
763
+ "src/extraction/semantic-sources.ts",
757
764
  "src/governance/governance.test.ts",
758
765
  "src/governance/governance.ts",
759
766
  "src/graph/authority.ts",
760
767
  "src/graph/ranking.test.ts",
761
768
  "src/graph/ranking.ts",
762
769
  "src/graph/rdf.ts",
770
+ "src/graph/shacl-shapes.ts",
763
771
  "src/infrastructure/module-resolution.ts",
764
772
  "src/interfaces/doctor.ts",
773
+ "src/interfaces/hydration-plan.test.ts",
765
774
  "src/interfaces/init.test.ts",
766
775
  "src/interfaces/init.ts",
767
776
  "src/mcp.ts",
@@ -773,12 +782,14 @@
773
782
  "src/telemetry.ts",
774
783
  "src/visualization/viewer-interaction.ts",
775
784
  "tests/architecture.test.ts",
785
+ "tests/hydration-plan.test.ts",
776
786
  "tests/module-boundaries.test.ts",
777
787
  "tests/rdf-ontology.test.ts",
778
788
  "tests/rdf.test.ts",
779
789
  "tests/routing.test.ts",
780
790
  "tests/runtime.test.ts",
781
791
  "tests/semantic-identity.test.ts",
792
+ "tests/shacl-validation.test.ts",
782
793
  "tests/snapshot-lifecycle.test.ts"
783
794
  ],
784
795
  "publicationAuthorization": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weftlet/toolkit",
3
- "version": "0.2.1",
3
+ "version": "0.3.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.2.1"
66
+ "@weftlet/core": "^0.3.0"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@changesets/cli": "3.0.3",
@@ -118,6 +118,7 @@
118
118
  "release:publish": "node scripts/release.mjs --publish",
119
119
  "govern": "tsx src/cli.ts govern --policy architecture.policy.json --output .context-graph/architecture-report.json",
120
120
  "evaluate:impact": "tsx scripts/evaluation/run.ts",
121
+ "benchmark:shacl": "node scripts/benchmark-shacl.mjs",
121
122
  "weftlet": "tsx src/cli.ts",
122
123
  "changeset": "changeset",
123
124
  "release:version": "node scripts/version-packages.mjs"