@research-engineering/agentic-proofkit 0.11.0 → 0.12.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.
@@ -154,6 +154,7 @@ Semantic context routes are `requirement-context-compose`,
154
154
  | Does a TypeScript package public API match a caller-owned manifest? | `agent-route` with `goal: "verify_typescript_public_api"` and explicit `typescript_public_api_manifest` plus `typescript_public_api_repo_root`, then `typescript-public-api-surfaces --repo-root <caller-selected-root>` | The manifest must name each referenced `package.json`, sorted-unique export conditions, and a non-JSX `.ts`, `.mts`, or `.cts` `sourcePath` whose canonical target has the same admitted extension class. The bounded scanner accepts only the fail-closed export grammar in `proofkit/cli-contract.v2.json`; it does not parse unrestricted TypeScript or TSX, infer conventional layouts, or prove compiler output provenance, checkout freshness, package-manager truth, or merge readiness. |
155
155
  | Receipts are available for planned checks. | `selective-gate-evidence --agent-envelope`; then materialize a caller-owned `obligation_decision_input` from the evidence output plus command routes, currentness, and trust facts; then run `selective-gate-obligation-decision-input`; then materialize the resulting `obligation_decision` input and run `obligation-decision --agent-envelope` | Escalate on missing, stale, invalid, untrusted, blocked, unavailable, or unknown-scope evidence. |
156
156
  | Human inspection, semantic comparison, or traceability navigation is needed. | `requirement-source-view`, `requirement-proof-view`, `requirement-coverage-view`, `requirement-spec-tree-view`, `requirement-semantic-diff`, `requirement-traceability-graph`, or `requirement-browser-server` | Semantic diff compares admitted owner fields rather than lines. Traceability keeps specification, proof, code, and native execution evidence planes separate. Browser and rendered outputs remain presentation only unless the consumer admits a tracked artifact freshness gate. |
157
+ | Find a requirement in a large admitted workspace. | `requirement-browser-server --view workspace --serve --input <workspace-input>`; use Browse to select a descendant scope, owner, lifecycle, or literal search, then inspect the bounded result page. | Search covers the whole admitted cohort before paging, not just visible rows. Selection retains original source anchors; handoff adds context closure through its owner. Browse and Inspector become mutually exclusive native panels on smaller viewports. Retry preserves the failed operation, while stale snapshots require explicit reload. The browser does not execute agents or turn a lookup count into proof coverage. |
157
158
  | Temporary external document lifecycle facts, generated views, or rendered views need authority classification. | `document-lifecycle-boundary` | Treat lifecycle records as caller-owned metadata. Temporary design docs and implementation plans are not retained repository authority unless rewritten into deterministic specs, proof bindings, tests, package-public docs, or backlog rows. |
158
159
  | A JavaScript/TypeScript consumer needs less wrapper code. | `json-report-cli-adapter-source --language typescript --format json` | Generated adapter source is caller-owned after materialization. The consumer still owns package pin, binary path, repo paths, local policy, and freshness proof. It is a CLI runner adapter, not a separate SDK authority. |
159
160
  | A Python consumer needs Proofkit from Python tooling. | Install the Python package when available and invoke the same CLI/JSON contract. | The Python package is a runner wrapper over the Go CLI, not a Python SDK or alternate schema owner. |
@@ -207,6 +207,13 @@ execution receipts, and merge policy.
207
207
  change-plan route replacement, and omitted-route policy to one breaking
208
208
  release record without reinterpreting the frozen prior edge.
209
209
 
210
+ - `REQ-PROOFKIT-SPEC-036`: full-cohort requirement lookup intersects literal
211
+ search, owner, lifecycle, and typed descendant scope before byte-bounded
212
+ paging; navigation and handoff preserve their distinct identities and closure.
213
+ - `REQ-PROOFKIT-SPEC-037`: generation-owned requests, exact explicit Retry,
214
+ distinct error actions, and responsive native panels preserve keyboard
215
+ focus, source selection, and drafts without promoting presentation authority.
216
+
210
217
  ## Non-Claims
211
218
 
212
219
  - This spec does not claim consumer repository adoption.
@@ -711,6 +711,32 @@
711
711
  "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
712
712
  "deferral": null,
713
713
  "updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
714
+ },
715
+ {
716
+ "requirementId": "REQ-PROOFKIT-SPEC-036",
717
+ "ownerId": "proofkit.spec-proof-core",
718
+ "invariant": "Workspace lookup indexes immutable admitted requirement sources once, preserves each original source digest and snapshot JSON pointer, and intersects search, owner, lifecycle, and selected-node descendant scope before stable requirement-ID paging. Scope uses only requirement-role source-ID references, never overview or path-digest aliases or inferred ancestor membership. Search applies Unicode trimming and simple lowercase independently to ID, owner, and invariant, without normalization or cross-field concatenation, after 1024-byte and 256-code-point admission bounds. Available A, matching M, and selected S counts yield filtered A-M, page-omitted M-S, and total-omitted A-S counts. Lookup does not expand lifecycle closure; handoff delegates closure to the existing context owner. Navigation projects only the root or one admitted parent's ordered child window; both lookup routes cap compact response bytes at 16 MiB without truncating invariant text and reject an unfit first row before output. Browser navigation retains at most 256 rows with explicit recovery of discarded sibling pages, while requirement paging returns to actual visited offsets rather than assuming fixed response length.",
719
+ "claimLevel": "blocking",
720
+ "riskClass": "high",
721
+ "proofBindingRefs": ["proofkit/requirement-bindings.json"],
722
+ "nonClaimRefs": ["NC-PROOFKIT-SPEC-036"],
723
+ "nonClaims": ["Lookup fragments do not establish source completeness outside the admitted snapshot, lifecycle-closed context, proof coverage, native execution, provider freshness, merge approval, or production readiness. Private browser HTTP routes are not a separately supported public SDK."],
724
+ "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
725
+ "deferral": null,
726
+ "updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
727
+ },
728
+ {
729
+ "requirementId": "REQ-PROOFKIT-SPEC-037",
730
+ "ownerId": "proofkit.spec-proof-core",
731
+ "invariant": "The workspace has one content-generation owner and independent identity-bound navigation requests. Superseded, aborted, or collapsed-branch replies cannot replace current content, selection, focus, or request authority. Retry requires explicit activation and repeats the immutable failed method, route, snapshot, and complete query with a new request ID; unsent form edits do not alter it. Sanitized errors distinguish correction (400), denied and locked without Retry (403), stale and locked with explicit reload (409), explicit Retry for transport/429/5xx, and optional versus required unavailability (404). Responsive panels use one native modal at a time at or below 64rem, restore visible opener focus on close, and release modality on desktop resize while preserving the question draft. Inspector entry commits source selection before moving focus; content transitions clear targets and displayed packets. Navigation render commits preserve a focused node/action identity and derive protected-control state from current authority. Native page focus stays inside the open modal without trapping browser chrome. Invariants precede lazily expanded owner/non-claim details and remain source-bound through Unicode selection and handoff.",
732
+ "claimLevel": "blocking",
733
+ "riskClass": "high",
734
+ "proofBindingRefs": ["proofkit/requirement-bindings.json"],
735
+ "nonClaimRefs": ["NC-PROOFKIT-SPEC-037"],
736
+ "nonClaims": ["Browser runtime witnesses cover the admitted Playwright Chromium, Firefox, and WebKit scenarios, not all browser preferences, assistive technologies, operating-system themes, branded Safari behavior, complete WCAG conformance, annotation persistence, agent execution, or provider delivery."],
737
+ "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
738
+ "deferral": null,
739
+ "updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
714
740
  }
715
741
  ],
716
742
  "nonClaims": [
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@research-engineering/agentic-proofkit",
3
3
  "description": "Reusable proof profile, report, graph, and witness-planning primitives.",
4
- "version": "0.11.0",
4
+ "version": "0.12.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "sideEffects": false,
@@ -36,7 +36,7 @@
36
36
  "build": "go run ./internal/tools/packagebuild",
37
37
  "check": "npm run npm:version && npm run source-hygiene && npm run command-contract:check && npm run command-family:check && npm run text-policy && npm run mermaid:check && npm run go:check && npm run browser:check && npm run package:artifact && npm run self:receipt && npm run self:coverage && npm run release:closeout",
38
38
  "browser:check": "npm run browser:static-check && npm run browser:test",
39
- "browser:static-check": "tsc -p tsconfig.browser.json && node --test scripts/browser-proof-execution.test.mjs scripts/browser-proof-inputs.test.mjs scripts/browser-selection-authority.test.mjs scripts/diagnostic-entrypoints.test.mjs scripts/stable-json.test.mjs",
39
+ "browser:static-check": "tsc -p tsconfig.browser.json && node --test scripts/browser-proof-execution.test.mjs scripts/browser-proof-inputs.test.mjs scripts/browser-selection-authority.test.mjs scripts/browser-workspace-requests.test.mjs scripts/diagnostic-entrypoints.test.mjs scripts/stable-json.test.mjs",
40
40
  "browser:test": "go run ./internal/tools/browserproofverify --run",
41
41
  "command-family:check": "go run ./internal/tools/commandfamilygen --check",
42
42
  "go:actionlint": "go tool actionlint",
@@ -4939,7 +4939,7 @@
4939
4939
  "rootDefinitionDigest": "sha256:e6af5b9edb1284ab2ff2f1a276a6b924127b99810cd9446bffbc971f638a0997",
4940
4940
  "nativeSource": {
4941
4941
  "path": "internal/command/requirementbrowser",
4942
- "canonicalDigest": "sha256:df4d6ca7f6f08342e48e44dad7cfbbcb25869c039814efd875e6435b4aeefa33",
4942
+ "canonicalDigest": "sha256:2f6113b67ba6bbddac190b232ff5788aa48cd9dbec2a73f057a6152a2020b49e",
4943
4943
  "evidenceClass": "source_checkout"
4944
4944
  },
4945
4945
  "nativeAdmissionWitnessSelector": {
@@ -4976,7 +4976,7 @@
4976
4976
  "rootDefinitionDigest": "sha256:c2e7d851c7928560d4267fe85ebc0ae61e33c4c0ef15f7f7b01deb73bb80eda7",
4977
4977
  "nativeSource": {
4978
4978
  "path": "internal/command/requirementbrowser",
4979
- "canonicalDigest": "sha256:df4d6ca7f6f08342e48e44dad7cfbbcb25869c039814efd875e6435b4aeefa33",
4979
+ "canonicalDigest": "sha256:2f6113b67ba6bbddac190b232ff5788aa48cd9dbec2a73f057a6152a2020b49e",
4980
4980
  "evidenceClass": "source_checkout"
4981
4981
  },
4982
4982
  "nativeOutputWitnessSelector": {
@@ -784,6 +784,22 @@
784
784
  "proofState": "witness_backed",
785
785
  "nonClaims": ["A source-bound version edge does not authenticate registry publication, provider ingestion, consumer migration, native witness truth, rollout, or production readiness."]
786
786
  },
787
+ {
788
+ "requirementId": "REQ-PROOFKIT-SPEC-036",
789
+ "ownerId": "proofkit.spec-proof-core",
790
+ "specPath": "docs/specs/proofkit-spec-proof-core/requirements.v1.json",
791
+ "claimLevel": "blocking",
792
+ "proofState": "witness_backed",
793
+ "nonClaims": ["Lookup fragments do not establish source completeness outside the admitted snapshot, lifecycle-closed context, proof coverage, native execution, provider freshness, merge approval, or production readiness. Private browser HTTP routes are not a separately supported public SDK."]
794
+ },
795
+ {
796
+ "requirementId": "REQ-PROOFKIT-SPEC-037",
797
+ "ownerId": "proofkit.spec-proof-core",
798
+ "specPath": "docs/specs/proofkit-spec-proof-core/requirements.v1.json",
799
+ "claimLevel": "blocking",
800
+ "proofState": "witness_backed",
801
+ "nonClaims": ["Browser runtime witnesses cover the admitted Playwright Chromium, Firefox, and WebKit scenarios, not all browser preferences, assistive technologies, operating-system themes, branded Safari behavior, complete WCAG conformance, annotation persistence, agent execution, or provider delivery."]
802
+ },
787
803
  {
788
804
  "requirementId": "REQ-PROOFKIT-WORKFLOW-001",
789
805
  "ownerId": "proofkit.agent-workflow",
@@ -5467,6 +5483,78 @@
5467
5483
  "commandIds": ["proofkit.browser-check"],
5468
5484
  "environmentClasses": ["local-node-browser"]
5469
5485
  },
5486
+ {
5487
+ "requirementId": "REQ-PROOFKIT-SPEC-036",
5488
+ "scenarioId": "proofkit.spec-proof-core.workspace-lookup-cohort-and-anchor",
5489
+ "witnessId": "proofkit.workspace-lookup.cohort-anchor-falsifier",
5490
+ "witnessKind": "contract",
5491
+ "witnessPath": "internal/command/requirementbrowser/workspace_lookup_test.go",
5492
+ "commandIds": ["proofkit.go-test"],
5493
+ "environmentClasses": ["local-go"]
5494
+ },
5495
+ {
5496
+ "requirementId": "REQ-PROOFKIT-SPEC-036",
5497
+ "scenarioId": "proofkit.spec-proof-core.workspace-lookup-admission",
5498
+ "witnessId": "proofkit.workspace-lookup.admission-falsifier",
5499
+ "witnessKind": "contract",
5500
+ "witnessPath": "internal/command/requirementbrowser/workspace_lookup_admission_test.go",
5501
+ "commandIds": ["proofkit.go-test"],
5502
+ "environmentClasses": ["local-go"]
5503
+ },
5504
+ {
5505
+ "requirementId": "REQ-PROOFKIT-SPEC-036",
5506
+ "scenarioId": "proofkit.spec-proof-core.workspace-lookup-byte-bound",
5507
+ "witnessId": "proofkit.workspace-lookup.byte-bound-falsifier",
5508
+ "witnessKind": "contract",
5509
+ "witnessPath": "internal/command/requirementbrowser/workspace_page_test.go",
5510
+ "commandIds": ["proofkit.go-test"],
5511
+ "environmentClasses": ["local-go"]
5512
+ },
5513
+ {
5514
+ "requirementId": "REQ-PROOFKIT-SPEC-036",
5515
+ "scenarioId": "proofkit.spec-proof-core.workspace-lookup-browser",
5516
+ "witnessId": "proofkit.workspace-lookup.browser-falsifier",
5517
+ "witnessKind": "technical",
5518
+ "witnessPath": "tests/browser/lookup.spec.mjs",
5519
+ "commandIds": ["proofkit.browser-check"],
5520
+ "environmentClasses": ["local-node-browser"]
5521
+ },
5522
+ {
5523
+ "requirementId": "REQ-PROOFKIT-SPEC-037",
5524
+ "scenarioId": "proofkit.spec-proof-core.workspace-responsive-panels",
5525
+ "witnessId": "proofkit.workspace-panels.browser-falsifier",
5526
+ "witnessKind": "technical",
5527
+ "witnessPath": "tests/browser/workspace-panels.spec.mjs",
5528
+ "commandIds": ["proofkit.browser-check"],
5529
+ "environmentClasses": ["local-node-browser"]
5530
+ },
5531
+ {
5532
+ "requirementId": "REQ-PROOFKIT-SPEC-037",
5533
+ "scenarioId": "proofkit.spec-proof-core.workspace-error-authority",
5534
+ "witnessId": "proofkit.workspace-errors.browser-falsifier",
5535
+ "witnessKind": "technical",
5536
+ "witnessPath": "tests/browser/workspace-errors.spec.mjs",
5537
+ "commandIds": ["proofkit.browser-check"],
5538
+ "environmentClasses": ["local-node-browser"]
5539
+ },
5540
+ {
5541
+ "requirementId": "REQ-PROOFKIT-SPEC-037",
5542
+ "scenarioId": "proofkit.spec-proof-core.workspace-request-lifecycle",
5543
+ "witnessId": "proofkit.workspace-requests.browser-falsifier",
5544
+ "witnessKind": "technical",
5545
+ "witnessPath": "tests/browser/workspace-request-lifecycle.spec.mjs",
5546
+ "commandIds": ["proofkit.browser-check"],
5547
+ "environmentClasses": ["local-node-browser"]
5548
+ },
5549
+ {
5550
+ "requirementId": "REQ-PROOFKIT-SPEC-037",
5551
+ "scenarioId": "proofkit.spec-proof-core.workspace-exact-page-retry",
5552
+ "witnessId": "proofkit.workspace-paging.browser-falsifier",
5553
+ "witnessKind": "technical",
5554
+ "witnessPath": "tests/browser/workspace-paging.spec.mjs",
5555
+ "commandIds": ["proofkit.browser-check"],
5556
+ "environmentClasses": ["local-node-browser"]
5557
+ },
5470
5558
  {
5471
5559
  "requirementId": "REQ-PROOFKIT-QUALITY-022",
5472
5560
  "scenarioId": "proofkit.supply-chain-quality.browser-static-and-runtime-proof",
@@ -796,6 +796,7 @@
796
796
  "scripts/browser-proof-inputs.test.mjs",
797
797
  "scripts/browser-runtime-proof-inputs.v1.json",
798
798
  "scripts/browser-selection-authority.test.mjs",
799
+ "scripts/browser-workspace-requests.test.mjs",
799
800
  "scripts/diagnostic.mjs",
800
801
  "scripts/stable-json.mjs",
801
802
  "scripts/stable-json.test.mjs",