@kya-os/checkpoint-wasm-runtime 1.1.3 → 1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,92 @@
1
1
  # @kya-os/checkpoint-wasm-runtime
2
2
 
3
+ ## 1.3.0 — 2026-05-18
4
+
5
+ **Engine-Tier3-Ruleset-Wiring-1.** Replaces the
6
+ `phase-1-d-impl-placeholder` ruleset hash with a real Tier 3 UA
7
+ pattern table, wired into the engine's Stage 1b default policy. The
8
+ engine now Blocks known agent UAs even with an empty tenant policy.
9
+
10
+ Conforms to `dylan-todos/Engine-Tier-Ordering-1.md` contract:
11
+ `Tier 1 (signed) > Tier 2 (IP+UA) > Tier 3 (UA only) > Tier 4 (IP only)`.
12
+ This release ships Tier 3.
13
+
14
+ ### Added
15
+
16
+ - `BlockReason::Tier3UAMatch { pattern_id, pattern_kind, confidence }`
17
+ — additive variant, priority 8 (lowest). Fires only on the PlainHttp
18
+ path when Stage 1 classifies the request as a known agent.
19
+ - Stage 1b default policy in `verify_plain_http`: if Stage 1 classifies
20
+ the request as `KnownAiAgent`, `AiCrawler`, or `HeadlessBrowser`,
21
+ the engine short-circuits with `Decision::Block { Tier3UAMatch }`
22
+ BEFORE handing off to tenant policy. Calibrated defaults that don't
23
+ expose customers to the threshold-knob footgun.
24
+ - `SearchBot` is **exempted** from Tier 3 default per architect
25
+ precedent (`tests/cross_runtime_baselines.rs` line 175-178: "search-
26
+ engine indexing is generally permitted by tenant policy"). Googlebot
27
+ / Bingbot / Applebot / DuckDuckBot still flow through to tenant
28
+ policy.
29
+
30
+ ### Changed
31
+
32
+ - `EngineInfo.ruleset_hash` is now `sha256:<t2>:<t3_sha256>` where
33
+ `<t3_sha256>` is the SHA-256 of `patterns_generated.rs` (real
34
+ identity, not placeholder). `<t2>` is `t2-unset` until Engineer A's
35
+ reputation/IP-feed schema commits its own identity hash.
36
+ - Drift gate: unit test `tier3_pattern_sha_matches_file` recomputes
37
+ the SHA at test time and fails with a copy-paste-ready new SHA if
38
+ `patterns_generated.rs` drifts.
39
+
40
+ ### Breaking change in default behavior
41
+
42
+ Consumers who deployed the engine with an **empty tenant policy** and
43
+ expected permit-by-default for unsigned traffic now get Block on any
44
+ known agent UA. This is the architectural intent — calibrated defaults
45
+ that don't require every customer to write their own bot-blocking
46
+ policy. Mitigation: deploy a tenant policy that explicitly permits the
47
+ agent classes you want to allow.
48
+
49
+ ### Test coverage added
50
+
51
+ - 5 new tests in `stage1_classification.rs` covering each blocking
52
+ class + SearchBot allowlist + real-human permit.
53
+ - Existing baseline tests in `cross_runtime_baselines.rs` updated to
54
+ assert `Tier3UAMatch` instead of the supplanted `PolicyDenied` path.
55
+ - 173/173 TS tests (including cross-runtime parity) still green.
56
+
57
+ ### Followups
58
+
59
+ - **Engine-Pattern-Codegen-Retirement-1** (filed): replace
60
+ `patterns_generated.rs` (legacy YAML codegen) with a build-time JSON
61
+ export of `KNOWN_AGENT_PATTERNS` from `@kya-os/checkpoint-shared`,
62
+ with the same drift-prevention pattern as #2599. Current PR uses
63
+ the existing `patterns_generated.rs` data as the Tier 3 source; the
64
+ followup makes the TS-side `KNOWN_AGENT_PATTERNS` the engine's SSOT.
65
+ - **Tier 2 data version coordination** (Engineer A): substitute
66
+ `t2-unset` once the reputation/IP-feed schema commits its identity.
67
+
68
+ ---
69
+
70
+ ## 1.2.0 — 2026-05-18
71
+
72
+ Phase-D.8b engine-surface expansion.
73
+
74
+ ### Added
75
+
76
+ - `VerifyResult.detectionDetail`, emitted by `kya-os-engine` in the same
77
+ pass as `decision`. This preserves the rich detection shape (`isAgent`,
78
+ `detectedAgent`, `agentType`, `verificationMethod`, `riskLevel`,
79
+ `reasons`) without forcing consumers to reconstruct it from
80
+ `decision.signals`.
81
+ - Cross-runtime parity now compares `detectionDetail` across Rust,
82
+ Node-WASM, and Edge-WASM fixtures.
83
+
84
+ ### Changed
85
+
86
+ - `verifyRequest()` and `verifyRequestEdge()` now return the richer
87
+ `VerifyResult` shape consistently for normal results and parse-error
88
+ fallbacks.
89
+
3
90
  ## 1.1.3 — 2026-05-17
4
91
 
5
92
  **Critical runtime fix for Express on Vercel.** 1.1.2 still failed at
@@ -1,4 +1,4 @@
1
- import { d as DidDocument, D as Decision } from './types-D0j85fF0.mjs';
1
+ import { d as DidDocument, D as Decision } from './types-ByrdPLL2.mjs';
2
2
  import '@kya-os/checkpoint-shared';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { d as DidDocument, D as Decision } from './types-D0j85fF0.js';
1
+ import { d as DidDocument, D as Decision } from './types-ByrdPLL2.js';
2
2
  import '@kya-os/checkpoint-shared';
3
3
 
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { A as AgentRequest, C as ContextSpec, V as VerifyResult } from './types-D0j85fF0.mjs';
2
- export { a as A2ARequest, b as A2PRequest, B as BlockReason, c as ChallengeParams, D as Decision, d as DidDocument, E as EnforcementMode, e as EngineInfo, H as HttpSignedRequest, I as InstructPayload, K as KeyType, M as McpIRequest, P as PlainHttpRequest, R as RedirectTarget, S as SuggestedAction, f as VerificationMethod } from './types-D0j85fF0.mjs';
3
- export { McpIPayload } from '@kya-os/checkpoint-shared';
1
+ import { A as AgentRequest, C as ContextSpec, V as VerifyResult } from './types-ByrdPLL2.mjs';
2
+ export { a as A2ARequest, b as A2PRequest, B as BlockReason, c as ChallengeParams, D as Decision, d as DidDocument, E as EnforcementMode, e as EngineInfo, H as HttpSignedRequest, I as InstructPayload, K as KeyType, M as McpIRequest, P as PlainHttpRequest, R as RedirectTarget, S as SuggestedAction, f as VerificationMethod } from './types-ByrdPLL2.mjs';
3
+ export { DetectionDetail, McpIPayload } from '@kya-os/checkpoint-shared';
4
4
 
5
5
  /**
6
6
  * `kya-os-engine` WASM bridge for edge runtimes — Edge-WASM-1.
@@ -1,6 +1,6 @@
1
- import { A as AgentRequest, C as ContextSpec, V as VerifyResult } from './types-D0j85fF0.js';
2
- export { a as A2ARequest, b as A2PRequest, B as BlockReason, c as ChallengeParams, D as Decision, d as DidDocument, E as EnforcementMode, e as EngineInfo, H as HttpSignedRequest, I as InstructPayload, K as KeyType, M as McpIRequest, P as PlainHttpRequest, R as RedirectTarget, S as SuggestedAction, f as VerificationMethod } from './types-D0j85fF0.js';
3
- export { McpIPayload } from '@kya-os/checkpoint-shared';
1
+ import { A as AgentRequest, C as ContextSpec, V as VerifyResult } from './types-ByrdPLL2.js';
2
+ export { a as A2ARequest, b as A2PRequest, B as BlockReason, c as ChallengeParams, D as Decision, d as DidDocument, E as EnforcementMode, e as EngineInfo, H as HttpSignedRequest, I as InstructPayload, K as KeyType, M as McpIRequest, P as PlainHttpRequest, R as RedirectTarget, S as SuggestedAction, f as VerificationMethod } from './types-ByrdPLL2.js';
3
+ export { DetectionDetail, McpIPayload } from '@kya-os/checkpoint-shared';
4
4
 
5
5
  /**
6
6
  * `kya-os-engine` WASM bridge for edge runtimes — Edge-WASM-1.
package/dist/engine.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { A as AgentRequest, C as ContextSpec, V as VerifyResult } from './types-D0j85fF0.mjs';
2
- export { a as A2ARequest, b as A2PRequest, B as BlockReason, c as ChallengeParams, D as Decision, d as DidDocument, E as EnforcementMode, e as EngineInfo, H as HttpSignedRequest, I as InstructPayload, K as KeyType, M as McpIRequest, P as PlainHttpRequest, R as RedirectTarget, S as SuggestedAction, f as VerificationMethod } from './types-D0j85fF0.mjs';
3
- export { McpIPayload } from '@kya-os/checkpoint-shared';
1
+ import { A as AgentRequest, C as ContextSpec, V as VerifyResult } from './types-ByrdPLL2.mjs';
2
+ export { a as A2ARequest, b as A2PRequest, B as BlockReason, c as ChallengeParams, D as Decision, d as DidDocument, E as EnforcementMode, e as EngineInfo, H as HttpSignedRequest, I as InstructPayload, K as KeyType, M as McpIRequest, P as PlainHttpRequest, R as RedirectTarget, S as SuggestedAction, f as VerificationMethod } from './types-ByrdPLL2.mjs';
3
+ export { DetectionDetail, McpIPayload } from '@kya-os/checkpoint-shared';
4
4
 
5
5
  /**
6
6
  * `kya-os-engine` WASM bridge — E-1 (#2486 follow-up).
package/dist/engine.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { A as AgentRequest, C as ContextSpec, V as VerifyResult } from './types-D0j85fF0.js';
2
- export { a as A2ARequest, b as A2PRequest, B as BlockReason, c as ChallengeParams, D as Decision, d as DidDocument, E as EnforcementMode, e as EngineInfo, H as HttpSignedRequest, I as InstructPayload, K as KeyType, M as McpIRequest, P as PlainHttpRequest, R as RedirectTarget, S as SuggestedAction, f as VerificationMethod } from './types-D0j85fF0.js';
3
- export { McpIPayload } from '@kya-os/checkpoint-shared';
1
+ import { A as AgentRequest, C as ContextSpec, V as VerifyResult } from './types-ByrdPLL2.js';
2
+ export { a as A2ARequest, b as A2PRequest, B as BlockReason, c as ChallengeParams, D as Decision, d as DidDocument, E as EnforcementMode, e as EngineInfo, H as HttpSignedRequest, I as InstructPayload, K as KeyType, M as McpIRequest, P as PlainHttpRequest, R as RedirectTarget, S as SuggestedAction, f as VerificationMethod } from './types-ByrdPLL2.js';
3
+ export { DetectionDetail, McpIPayload } from '@kya-os/checkpoint-shared';
4
4
 
5
5
  /**
6
6
  * `kya-os-engine` WASM bridge — E-1 (#2486 follow-up).
@@ -1,5 +1,5 @@
1
1
  export { initEngineEdge } from './engine-edge.mjs';
2
- import { E as EnforcementMode, A as AgentRequest, V as VerifyResult } from './types-D0j85fF0.mjs';
2
+ import { E as EnforcementMode, A as AgentRequest, V as VerifyResult } from './types-ByrdPLL2.mjs';
3
3
  import { DidResolverAdapter, StatusListCacheAdapter, ReputationOracleAdapter, PolicyEvaluatorAdapter, ClockAdapter } from './adapters.mjs';
4
4
  import '@kya-os/checkpoint-shared';
5
5
 
@@ -1,5 +1,5 @@
1
1
  export { initEngineEdge } from './engine-edge.js';
2
- import { E as EnforcementMode, A as AgentRequest, V as VerifyResult } from './types-D0j85fF0.js';
2
+ import { E as EnforcementMode, A as AgentRequest, V as VerifyResult } from './types-ByrdPLL2.js';
3
3
  import { DidResolverAdapter, StatusListCacheAdapter, ReputationOracleAdapter, PolicyEvaluatorAdapter, ClockAdapter } from './adapters.js';
4
4
  import '@kya-os/checkpoint-shared';
5
5
 
@@ -799,6 +799,32 @@ function bodyAsBytes(body) {
799
799
  return [];
800
800
  }
801
801
 
802
+ // src/engine/orchestrator/synthetic-results.ts
803
+ function hostSynthesizedEngineInfo() {
804
+ return {
805
+ name: "checkpoint-engine-wasm",
806
+ version: "0.0.0-host-synth",
807
+ rulesetHash: "sha256:host-synthesized",
808
+ rulesetVersion: "0.0.0-host-synth",
809
+ extras: { synthesized: true }
810
+ };
811
+ }
812
+ function parseErrorDetectionDetail(detail) {
813
+ return {
814
+ isAgent: false,
815
+ confidence: 0,
816
+ detectionClass: { type: "IncompleteData" },
817
+ confidenceLevel: "low",
818
+ reasons: [detail],
819
+ signals: [],
820
+ verificationMethod: "error",
821
+ riskLevel: "high",
822
+ forgeabilityRisk: "high",
823
+ timestamp: 0,
824
+ engine: hostSynthesizedEngineInfo()
825
+ };
826
+ }
827
+
802
828
  // src/engine/orchestrator/render-decision.ts
803
829
  function renderDecisionAsResponse(result) {
804
830
  const baseHeaders = buildBaseHeaders(result);
@@ -1049,14 +1075,9 @@ function blockWithParseError(detail, enforcementMode) {
1049
1075
  detail
1050
1076
  }
1051
1077
  },
1078
+ detectionDetail: parseErrorDetectionDetail(detail),
1052
1079
  enforcementMode,
1053
- engineInfo: {
1054
- name: "checkpoint-engine-wasm",
1055
- version: "0.0.0-host-synth",
1056
- rulesetHash: "sha256:host-synthesized",
1057
- rulesetVersion: "0.0.0-host-synth",
1058
- extras: { synthesized: true }
1059
- }
1080
+ engineInfo: hostSynthesizedEngineInfo()
1060
1081
  };
1061
1082
  }
1062
1083
  function defaultLogger(msg) {
@@ -796,6 +796,32 @@ function bodyAsBytes(body) {
796
796
  return [];
797
797
  }
798
798
 
799
+ // src/engine/orchestrator/synthetic-results.ts
800
+ function hostSynthesizedEngineInfo() {
801
+ return {
802
+ name: "checkpoint-engine-wasm",
803
+ version: "0.0.0-host-synth",
804
+ rulesetHash: "sha256:host-synthesized",
805
+ rulesetVersion: "0.0.0-host-synth",
806
+ extras: { synthesized: true }
807
+ };
808
+ }
809
+ function parseErrorDetectionDetail(detail) {
810
+ return {
811
+ isAgent: false,
812
+ confidence: 0,
813
+ detectionClass: { type: "IncompleteData" },
814
+ confidenceLevel: "low",
815
+ reasons: [detail],
816
+ signals: [],
817
+ verificationMethod: "error",
818
+ riskLevel: "high",
819
+ forgeabilityRisk: "high",
820
+ timestamp: 0,
821
+ engine: hostSynthesizedEngineInfo()
822
+ };
823
+ }
824
+
799
825
  // src/engine/orchestrator/render-decision.ts
800
826
  function renderDecisionAsResponse(result) {
801
827
  const baseHeaders = buildBaseHeaders(result);
@@ -1046,14 +1072,9 @@ function blockWithParseError(detail, enforcementMode) {
1046
1072
  detail
1047
1073
  }
1048
1074
  },
1075
+ detectionDetail: parseErrorDetectionDetail(detail),
1049
1076
  enforcementMode,
1050
- engineInfo: {
1051
- name: "checkpoint-engine-wasm",
1052
- version: "0.0.0-host-synth",
1053
- rulesetHash: "sha256:host-synthesized",
1054
- rulesetVersion: "0.0.0-host-synth",
1055
- extras: { synthesized: true }
1056
- }
1077
+ engineInfo: hostSynthesizedEngineInfo()
1057
1078
  };
1058
1079
  }
1059
1080
  function defaultLogger(msg) {
@@ -1,4 +1,4 @@
1
- import { d as DidDocument, D as Decision, E as EnforcementMode, V as VerifyResult, A as AgentRequest } from './types-D0j85fF0.mjs';
1
+ import { d as DidDocument, D as Decision, E as EnforcementMode, V as VerifyResult, A as AgentRequest } from './types-ByrdPLL2.mjs';
2
2
  import '@kya-os/checkpoint-shared';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { d as DidDocument, D as Decision, E as EnforcementMode, V as VerifyResult, A as AgentRequest } from './types-D0j85fF0.js';
1
+ import { d as DidDocument, D as Decision, E as EnforcementMode, V as VerifyResult, A as AgentRequest } from './types-ByrdPLL2.js';
2
2
  import '@kya-os/checkpoint-shared';
3
3
 
4
4
  /**
@@ -741,6 +741,33 @@ function bodyAsBytes(body) {
741
741
  return [];
742
742
  }
743
743
 
744
+ // src/engine/orchestrator/synthetic-results.ts
745
+ init_cjs_shims();
746
+ function hostSynthesizedEngineInfo() {
747
+ return {
748
+ name: "checkpoint-engine-wasm",
749
+ version: "0.0.0-host-synth",
750
+ rulesetHash: "sha256:host-synthesized",
751
+ rulesetVersion: "0.0.0-host-synth",
752
+ extras: { synthesized: true }
753
+ };
754
+ }
755
+ function parseErrorDetectionDetail(detail) {
756
+ return {
757
+ isAgent: false,
758
+ confidence: 0,
759
+ detectionClass: { type: "IncompleteData" },
760
+ confidenceLevel: "low",
761
+ reasons: [detail],
762
+ signals: [],
763
+ verificationMethod: "error",
764
+ riskLevel: "high",
765
+ forgeabilityRisk: "high",
766
+ timestamp: 0,
767
+ engine: hostSynthesizedEngineInfo()
768
+ };
769
+ }
770
+
744
771
  // src/engine/orchestrator/verify-request.ts
745
772
  var DEFAULT_REPUTATION_BASELINE = 1;
746
773
  function makeVerifyRequest(opts) {
@@ -828,14 +855,9 @@ function blockWithParseError(detail, enforcementMode) {
828
855
  detail
829
856
  }
830
857
  },
858
+ detectionDetail: parseErrorDetectionDetail(detail),
831
859
  enforcementMode,
832
- engineInfo: {
833
- name: "checkpoint-engine-wasm",
834
- version: "0.0.0-host-synth",
835
- rulesetHash: "sha256:host-synthesized",
836
- rulesetVersion: "0.0.0-host-synth",
837
- extras: { synthesized: true }
838
- }
860
+ engineInfo: hostSynthesizedEngineInfo()
839
861
  };
840
862
  }
841
863
  function defaultLogger(msg) {
@@ -746,6 +746,33 @@ function bodyAsBytes(body) {
746
746
  return [];
747
747
  }
748
748
 
749
+ // src/engine/orchestrator/synthetic-results.ts
750
+ init_esm_shims();
751
+ function hostSynthesizedEngineInfo() {
752
+ return {
753
+ name: "checkpoint-engine-wasm",
754
+ version: "0.0.0-host-synth",
755
+ rulesetHash: "sha256:host-synthesized",
756
+ rulesetVersion: "0.0.0-host-synth",
757
+ extras: { synthesized: true }
758
+ };
759
+ }
760
+ function parseErrorDetectionDetail(detail) {
761
+ return {
762
+ isAgent: false,
763
+ confidence: 0,
764
+ detectionClass: { type: "IncompleteData" },
765
+ confidenceLevel: "low",
766
+ reasons: [detail],
767
+ signals: [],
768
+ verificationMethod: "error",
769
+ riskLevel: "high",
770
+ forgeabilityRisk: "high",
771
+ timestamp: 0,
772
+ engine: hostSynthesizedEngineInfo()
773
+ };
774
+ }
775
+
749
776
  // src/engine/orchestrator/verify-request.ts
750
777
  var DEFAULT_REPUTATION_BASELINE = 1;
751
778
  function makeVerifyRequest(opts) {
@@ -833,14 +860,9 @@ function blockWithParseError(detail, enforcementMode) {
833
860
  detail
834
861
  }
835
862
  },
863
+ detectionDetail: parseErrorDetectionDetail(detail),
836
864
  enforcementMode,
837
- engineInfo: {
838
- name: "checkpoint-engine-wasm",
839
- version: "0.0.0-host-synth",
840
- rulesetHash: "sha256:host-synthesized",
841
- rulesetVersion: "0.0.0-host-synth",
842
- extras: { synthesized: true }
843
- }
865
+ engineInfo: hostSynthesizedEngineInfo()
844
866
  };
845
867
  }
846
868
  function defaultLogger(msg) {
@@ -1,6 +1,6 @@
1
1
  import { VerifyRequestOpts, IncomingHttpLike } from './orchestrator-node.mjs';
2
2
  export { BuildAgentRequestOpts, RenderedResponse, buildAgentRequest, extractAgentDid, extractCredentialStatusUrl, extractIssuer, hasMalformedJwsBody, makeVerifyRequest, renderDecisionAsResponse, verifyRequest } from './orchestrator-node.mjs';
3
- import { V as VerifyResult } from './types-D0j85fF0.mjs';
3
+ import { V as VerifyResult } from './types-ByrdPLL2.mjs';
4
4
  import '@kya-os/checkpoint-shared';
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  import { VerifyRequestOpts, IncomingHttpLike } from './orchestrator-node.js';
2
2
  export { BuildAgentRequestOpts, RenderedResponse, buildAgentRequest, extractAgentDid, extractCredentialStatusUrl, extractIssuer, hasMalformedJwsBody, makeVerifyRequest, renderDecisionAsResponse, verifyRequest } from './orchestrator-node.js';
3
- import { V as VerifyResult } from './types-D0j85fF0.js';
3
+ import { V as VerifyResult } from './types-ByrdPLL2.js';
4
4
  import '@kya-os/checkpoint-shared';
5
5
 
6
6
  /**
@@ -1244,6 +1244,33 @@ function bodyAsBytes(body) {
1244
1244
  return [];
1245
1245
  }
1246
1246
 
1247
+ // src/engine/orchestrator/synthetic-results.ts
1248
+ init_cjs_shims();
1249
+ function hostSynthesizedEngineInfo() {
1250
+ return {
1251
+ name: "checkpoint-engine-wasm",
1252
+ version: "0.0.0-host-synth",
1253
+ rulesetHash: "sha256:host-synthesized",
1254
+ rulesetVersion: "0.0.0-host-synth",
1255
+ extras: { synthesized: true }
1256
+ };
1257
+ }
1258
+ function parseErrorDetectionDetail(detail) {
1259
+ return {
1260
+ isAgent: false,
1261
+ confidence: 0,
1262
+ detectionClass: { type: "IncompleteData" },
1263
+ confidenceLevel: "low",
1264
+ reasons: [detail],
1265
+ signals: [],
1266
+ verificationMethod: "error",
1267
+ riskLevel: "high",
1268
+ forgeabilityRisk: "high",
1269
+ timestamp: 0,
1270
+ engine: hostSynthesizedEngineInfo()
1271
+ };
1272
+ }
1273
+
1247
1274
  // src/engine/orchestrator/verify-request.ts
1248
1275
  var DEFAULT_REPUTATION_BASELINE = 1;
1249
1276
  function makeVerifyRequest(opts) {
@@ -1331,14 +1358,9 @@ function blockWithParseError(detail, enforcementMode) {
1331
1358
  detail
1332
1359
  }
1333
1360
  },
1361
+ detectionDetail: parseErrorDetectionDetail(detail),
1334
1362
  enforcementMode,
1335
- engineInfo: {
1336
- name: "checkpoint-engine-wasm",
1337
- version: "0.0.0-host-synth",
1338
- rulesetHash: "sha256:host-synthesized",
1339
- rulesetVersion: "0.0.0-host-synth",
1340
- extras: { synthesized: true }
1341
- }
1363
+ engineInfo: hostSynthesizedEngineInfo()
1342
1364
  };
1343
1365
  }
1344
1366
  function defaultLogger(msg) {
@@ -1625,14 +1647,9 @@ function blockWithParseError2(detail, enforcementMode) {
1625
1647
  detail
1626
1648
  }
1627
1649
  },
1650
+ detectionDetail: parseErrorDetectionDetail(detail),
1628
1651
  enforcementMode,
1629
- engineInfo: {
1630
- name: "checkpoint-engine-wasm",
1631
- version: "0.0.0-host-synth",
1632
- rulesetHash: "sha256:host-synthesized",
1633
- rulesetVersion: "0.0.0-host-synth",
1634
- extras: { synthesized: true }
1635
- }
1652
+ engineInfo: hostSynthesizedEngineInfo()
1636
1653
  };
1637
1654
  }
1638
1655
  function defaultLogger2(msg) {
@@ -1246,6 +1246,33 @@ function bodyAsBytes(body) {
1246
1246
  return [];
1247
1247
  }
1248
1248
 
1249
+ // src/engine/orchestrator/synthetic-results.ts
1250
+ init_esm_shims();
1251
+ function hostSynthesizedEngineInfo() {
1252
+ return {
1253
+ name: "checkpoint-engine-wasm",
1254
+ version: "0.0.0-host-synth",
1255
+ rulesetHash: "sha256:host-synthesized",
1256
+ rulesetVersion: "0.0.0-host-synth",
1257
+ extras: { synthesized: true }
1258
+ };
1259
+ }
1260
+ function parseErrorDetectionDetail(detail) {
1261
+ return {
1262
+ isAgent: false,
1263
+ confidence: 0,
1264
+ detectionClass: { type: "IncompleteData" },
1265
+ confidenceLevel: "low",
1266
+ reasons: [detail],
1267
+ signals: [],
1268
+ verificationMethod: "error",
1269
+ riskLevel: "high",
1270
+ forgeabilityRisk: "high",
1271
+ timestamp: 0,
1272
+ engine: hostSynthesizedEngineInfo()
1273
+ };
1274
+ }
1275
+
1249
1276
  // src/engine/orchestrator/verify-request.ts
1250
1277
  var DEFAULT_REPUTATION_BASELINE = 1;
1251
1278
  function makeVerifyRequest(opts) {
@@ -1333,14 +1360,9 @@ function blockWithParseError(detail, enforcementMode) {
1333
1360
  detail
1334
1361
  }
1335
1362
  },
1363
+ detectionDetail: parseErrorDetectionDetail(detail),
1336
1364
  enforcementMode,
1337
- engineInfo: {
1338
- name: "checkpoint-engine-wasm",
1339
- version: "0.0.0-host-synth",
1340
- rulesetHash: "sha256:host-synthesized",
1341
- rulesetVersion: "0.0.0-host-synth",
1342
- extras: { synthesized: true }
1343
- }
1365
+ engineInfo: hostSynthesizedEngineInfo()
1344
1366
  };
1345
1367
  }
1346
1368
  function defaultLogger(msg) {
@@ -1627,14 +1649,9 @@ function blockWithParseError2(detail, enforcementMode) {
1627
1649
  detail
1628
1650
  }
1629
1651
  },
1652
+ detectionDetail: parseErrorDetectionDetail(detail),
1630
1653
  enforcementMode,
1631
- engineInfo: {
1632
- name: "checkpoint-engine-wasm",
1633
- version: "0.0.0-host-synth",
1634
- rulesetHash: "sha256:host-synthesized",
1635
- rulesetVersion: "0.0.0-host-synth",
1636
- extras: { synthesized: true }
1637
- }
1654
+ engineInfo: hostSynthesizedEngineInfo()
1638
1655
  };
1639
1656
  }
1640
1657
  function defaultLogger2(msg) {
@@ -1,4 +1,4 @@
1
- import { McpIPayload } from '@kya-os/checkpoint-shared';
1
+ import { McpIPayload, DetectionDetail } from '@kya-os/checkpoint-shared';
2
2
 
3
3
  /**
4
4
  * TypeScript shapes for the `kya-os-engine` WASM `verify` ABI (E-1).
@@ -138,6 +138,7 @@ interface EngineInfo {
138
138
  }
139
139
  interface VerifyResult {
140
140
  decision: Decision;
141
+ detectionDetail: DetectionDetail;
141
142
  enforcementMode: EnforcementMode;
142
143
  engineInfo: EngineInfo;
143
144
  }
@@ -1,4 +1,4 @@
1
- import { McpIPayload } from '@kya-os/checkpoint-shared';
1
+ import { McpIPayload, DetectionDetail } from '@kya-os/checkpoint-shared';
2
2
 
3
3
  /**
4
4
  * TypeScript shapes for the `kya-os-engine` WASM `verify` ABI (E-1).
@@ -138,6 +138,7 @@ interface EngineInfo {
138
138
  }
139
139
  interface VerifyResult {
140
140
  decision: Decision;
141
+ detectionDetail: DetectionDetail;
141
142
  enforcementMode: EnforcementMode;
142
143
  engineInfo: EngineInfo;
143
144
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kya-os/checkpoint-wasm-runtime",
3
- "version": "1.1.3",
3
+ "version": "1.3.0",
4
4
  "description": "Checkpoint WASM runtime for AI agent detection across all environments (formerly @kya-os/agentshield-wasm-runtime)",
5
5
  "keywords": [
6
6
  "ai",
@@ -117,7 +117,7 @@
117
117
  },
118
118
  "dependencies": {
119
119
  "multiformats": "^13",
120
- "@kya-os/checkpoint-shared": "1.0.0"
120
+ "@kya-os/checkpoint-shared": "1.1.0"
121
121
  },
122
122
  "devDependencies": {
123
123
  "@types/node": "^20.11.24",