@sentropic/llm-mesh 0.28.0 → 0.28.1

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 (140) hide show
  1. package/README.md +92 -0
  2. package/dist/capabilities.d.ts +3 -0
  3. package/dist/capabilities.d.ts.map +1 -1
  4. package/dist/capabilities.js.map +1 -1
  5. package/dist/catalog.d.ts +134 -1
  6. package/dist/catalog.d.ts.map +1 -1
  7. package/dist/catalog.js +15 -0
  8. package/dist/catalog.js.map +1 -1
  9. package/dist/decision/adapter-result.d.ts +6 -0
  10. package/dist/decision/adapter-result.d.ts.map +1 -0
  11. package/dist/decision/adapter-result.js +148 -0
  12. package/dist/decision/adapter-result.js.map +1 -0
  13. package/dist/decision/adapter.d.ts +58 -0
  14. package/dist/decision/adapter.d.ts.map +1 -0
  15. package/dist/decision/adapter.js +70 -0
  16. package/dist/decision/adapter.js.map +1 -0
  17. package/dist/decision/admission.d.ts +23 -0
  18. package/dist/decision/admission.d.ts.map +1 -0
  19. package/dist/decision/admission.js +115 -0
  20. package/dist/decision/admission.js.map +1 -0
  21. package/dist/decision/budget.d.ts +60 -0
  22. package/dist/decision/budget.d.ts.map +1 -0
  23. package/dist/decision/budget.js +2 -0
  24. package/dist/decision/budget.js.map +1 -0
  25. package/dist/decision/client.d.ts +23 -0
  26. package/dist/decision/client.d.ts.map +1 -0
  27. package/dist/decision/client.js +836 -0
  28. package/dist/decision/client.js.map +1 -0
  29. package/dist/decision/criterion.d.ts +5 -0
  30. package/dist/decision/criterion.d.ts.map +1 -0
  31. package/dist/decision/criterion.js +54 -0
  32. package/dist/decision/criterion.js.map +1 -0
  33. package/dist/decision/deadline.d.ts +8 -0
  34. package/dist/decision/deadline.d.ts.map +1 -0
  35. package/dist/decision/deadline.js +56 -0
  36. package/dist/decision/deadline.js.map +1 -0
  37. package/dist/decision/descriptor-validation.d.ts +5 -0
  38. package/dist/decision/descriptor-validation.d.ts.map +1 -0
  39. package/dist/decision/descriptor-validation.js +99 -0
  40. package/dist/decision/descriptor-validation.js.map +1 -0
  41. package/dist/decision/descriptor.d.ts +81 -0
  42. package/dist/decision/descriptor.d.ts.map +1 -0
  43. package/dist/decision/descriptor.js +36 -0
  44. package/dist/decision/descriptor.js.map +1 -0
  45. package/dist/decision/dispatch.d.ts +11 -0
  46. package/dist/decision/dispatch.d.ts.map +1 -0
  47. package/dist/decision/dispatch.js +56 -0
  48. package/dist/decision/dispatch.js.map +1 -0
  49. package/dist/decision/errors.d.ts +43 -0
  50. package/dist/decision/errors.d.ts.map +1 -0
  51. package/dist/decision/errors.js +47 -0
  52. package/dist/decision/errors.js.map +1 -0
  53. package/dist/decision/execution.d.ts +31 -0
  54. package/dist/decision/execution.d.ts.map +1 -0
  55. package/dist/decision/execution.js +79 -0
  56. package/dist/decision/execution.js.map +1 -0
  57. package/dist/decision/host-options.d.ts +26 -0
  58. package/dist/decision/host-options.d.ts.map +1 -0
  59. package/dist/decision/host-options.js +2 -0
  60. package/dist/decision/host-options.js.map +1 -0
  61. package/dist/decision/host.d.ts +14 -0
  62. package/dist/decision/host.d.ts.map +1 -0
  63. package/dist/decision/host.js +6 -0
  64. package/dist/decision/host.js.map +1 -0
  65. package/dist/decision/index.d.ts +12 -0
  66. package/dist/decision/index.d.ts.map +1 -0
  67. package/dist/decision/index.js +3 -0
  68. package/dist/decision/index.js.map +1 -0
  69. package/dist/decision/jev-codec.d.ts +30 -0
  70. package/dist/decision/jev-codec.d.ts.map +1 -0
  71. package/dist/decision/jev-codec.js +51 -0
  72. package/dist/decision/jev-codec.js.map +1 -0
  73. package/dist/decision/jev-response.d.ts +7 -0
  74. package/dist/decision/jev-response.d.ts.map +1 -0
  75. package/dist/decision/jev-response.js +42 -0
  76. package/dist/decision/jev-response.js.map +1 -0
  77. package/dist/decision/jev-verdict.d.ts +14 -0
  78. package/dist/decision/jev-verdict.d.ts.map +1 -0
  79. package/dist/decision/jev-verdict.js +71 -0
  80. package/dist/decision/jev-verdict.js.map +1 -0
  81. package/dist/decision/policy.d.ts +11 -0
  82. package/dist/decision/policy.d.ts.map +1 -0
  83. package/dist/decision/policy.js +33 -0
  84. package/dist/decision/policy.js.map +1 -0
  85. package/dist/decision/pricing.d.ts +40 -0
  86. package/dist/decision/pricing.d.ts.map +1 -0
  87. package/dist/decision/pricing.js +65 -0
  88. package/dist/decision/pricing.js.map +1 -0
  89. package/dist/decision/raw.d.ts +7 -0
  90. package/dist/decision/raw.d.ts.map +1 -0
  91. package/dist/decision/raw.js +53 -0
  92. package/dist/decision/raw.js.map +1 -0
  93. package/dist/decision/receipt.d.ts +120 -0
  94. package/dist/decision/receipt.d.ts.map +1 -0
  95. package/dist/decision/receipt.js +58 -0
  96. package/dist/decision/receipt.js.map +1 -0
  97. package/dist/decision/request-policy.d.ts +3 -0
  98. package/dist/decision/request-policy.d.ts.map +1 -0
  99. package/dist/decision/request-policy.js +19 -0
  100. package/dist/decision/request-policy.js.map +1 -0
  101. package/dist/decision/request.d.ts +85 -0
  102. package/dist/decision/request.d.ts.map +1 -0
  103. package/dist/decision/request.js +49 -0
  104. package/dist/decision/request.js.map +1 -0
  105. package/dist/decision/service.d.ts +39 -0
  106. package/dist/decision/service.d.ts.map +1 -0
  107. package/dist/decision/service.js +138 -0
  108. package/dist/decision/service.js.map +1 -0
  109. package/dist/decision/structured.d.ts +125 -0
  110. package/dist/decision/structured.d.ts.map +1 -0
  111. package/dist/decision/structured.js +250 -0
  112. package/dist/decision/structured.js.map +1 -0
  113. package/dist/decision/validate-result.d.ts +8 -0
  114. package/dist/decision/validate-result.d.ts.map +1 -0
  115. package/dist/decision/validate-result.js +91 -0
  116. package/dist/decision/validate-result.js.map +1 -0
  117. package/dist/decision/validation-context.d.ts +55 -0
  118. package/dist/decision/validation-context.d.ts.map +1 -0
  119. package/dist/decision/validation-context.js +134 -0
  120. package/dist/decision/validation-context.js.map +1 -0
  121. package/dist/decision/validation.d.ts +19 -0
  122. package/dist/decision/validation.d.ts.map +1 -0
  123. package/dist/decision/validation.js +86 -0
  124. package/dist/decision/validation.js.map +1 -0
  125. package/dist/decision/verdict.d.ts +81 -0
  126. package/dist/decision/verdict.d.ts.map +1 -0
  127. package/dist/decision/verdict.js +140 -0
  128. package/dist/decision/verdict.js.map +1 -0
  129. package/dist/providers.d.ts +4 -3
  130. package/dist/providers.d.ts.map +1 -1
  131. package/dist/providers.js +2 -1
  132. package/dist/providers.js.map +1 -1
  133. package/dist/registry.d.ts +6 -0
  134. package/dist/registry.d.ts.map +1 -1
  135. package/dist/registry.js.map +1 -1
  136. package/dist/transport/jev.d.ts +23 -0
  137. package/dist/transport/jev.d.ts.map +1 -0
  138. package/dist/transport/jev.js +107 -0
  139. package/dist/transport/jev.js.map +1 -0
  140. package/package.json +13 -1
package/README.md CHANGED
@@ -400,3 +400,95 @@ authority escalation and lineage conflicts. Package enrollment keeps existing id
400
400
  `cloudcode-pa` target and `productAccountSource: antigravity`, and refuses the
401
401
  `gemini` route. Native profile variants stay unverified until observed; see
402
402
  `spec/SPEC_EVOL_CI_SEATS.md` and `tests/enrollment/seat-bundle.test.ts`.
403
+
404
+ ## Generic Decision Capability
405
+
406
+ `@sentropic/llm-mesh` provides strict decision evaluation contracts, portable client execution, and a deterministic JEV host service via three distinct export subpaths:
407
+
408
+ - `@sentropic/llm-mesh/decision`: Consumer contracts (`EvaluatorRef`, `DecisionRequest`, `DecisionResult`, `DecisionVerdict`, `DecisionReceipt`) and portable remote client (`createRemoteDecisionClient`).
409
+ - `@sentropic/llm-mesh/decision/host`: Trusted host factory (`createDecisionService`) and JEV adapter (`createJevAdapter`).
410
+ - `@sentropic/llm-mesh/transport/jev`: Deterministic JEV transport (`createJevTransport`).
411
+
412
+ ### Consumer usage
413
+
414
+ ```ts
415
+ import { createRemoteDecisionClient } from '@sentropic/llm-mesh/decision';
416
+
417
+ const client = createRemoteDecisionClient({
418
+ baseUrl: 'https://llm.sent-tech.ca',
419
+ authToken: 'secret-bearer-token',
420
+ validationContext: (snapshot) => ({
421
+ evaluator: { ...snapshot.evaluator },
422
+ validationProfile: { profile: 'native-distribution-v1', version: 'v1' },
423
+ acceptedServedModelIds: ['synthetic-served-model'],
424
+ semantics: { nativeDecision: false,
425
+ score: { meaning: 'probability-true', min: 0, max: 1 },
426
+ confidence: null, rationale: 'forbidden' },
427
+ definitionDigest: 'a'.repeat(64),
428
+ }),
429
+ // Client timeout defaults to server deadline + 1 000 ms margin (11 000 ms default).
430
+ // Optional: timeoutMs can be provided to bound client wait below server deadline + margin.
431
+ });
432
+
433
+ const result = await client.decide({
434
+ schemaVersion: 1,
435
+ evaluator: { providerId: 'typesafe', evaluatorId: 'jev-1.13.0', revision: 'syn-v1' },
436
+ inputs: { output: 'Candidate completion', state: null },
437
+ criterion: { kind: 'binary', instructions: 'Verify output correctness' },
438
+ decision: { kind: 'threshold', field: 'score', op: 'gte', value: 0.5 },
439
+ correlationId: 'corr-decision-100',
440
+ policy: { timeoutMs: 10_000 }, // Server deadline: 10 000 ms (client waits 11 000 ms with margin)
441
+ });
442
+ ```
443
+
444
+ ### Host usage
445
+
446
+ ```ts
447
+ import { createDecisionService, createJevAdapter, jevDescriptor } from '@sentropic/llm-mesh/decision/host';
448
+ import { createJevTransport } from '@sentropic/llm-mesh/transport/jev';
449
+ import { createProviderRegistry } from '@sentropic/llm-mesh';
450
+
451
+ const adapter = createJevAdapter({
452
+ descriptor: jevDescriptor,
453
+ transport: createJevTransport({ fetch: globalThis.fetch }),
454
+ });
455
+ const service = createDecisionService({
456
+ registry: createProviderRegistry([adapter]),
457
+ resolveEvaluator,
458
+ evaluatorAllowlist: [{ providerId: 'typesafe', evaluatorId: 'jev-1.13.0', revision: 'syn-v1' }],
459
+ resolvePrice,
460
+ authorize,
461
+ budget,
462
+ receipts,
463
+ resolveAuth,
464
+ clock,
465
+ });
466
+ ```
467
+
468
+ ### Deadline & Failure Semantics
469
+
470
+ - **Deadline margin**: The client waits server deadline + 1 000 ms grace margin (11 000 ms default, 61 000 ms cap) whenever client `options.timeoutMs` is omitted or ≥ server timeout + 1 000 ms, so that the server's own timeout receipt reaches the client before client-side abort. Providing `options.timeoutMs` bounds the client timeout via `Math.min(options.timeoutMs, serverTimeout + 1 000)`.
471
+ - **Phase-aware errors**: `preflight`, `admission`, `dispatch`, `settlement`. Settlement and post-result timeouts have `retryable: false`.
472
+ - **Advisory retry hints**: Bounded strictly to a 60-second ceiling.
473
+ - **Normalization & security**: Unsafe JSON keys (`__proto__`, `constructor`, `prototype`) are rejected. MicroUsd prices use integer strings. Null candidate output/state is accepted; absent/undefined is refused.
474
+
475
+ ### Migration from judge names
476
+
477
+ V4-L2 renames the capability to Sentropic Decision with no legacy alias. Update imports and call sites together; the wire contract (`schemaVersion: 1`) is unchanged.
478
+
479
+ | Before | After |
480
+ |---|---|
481
+ | `@sentropic/llm-mesh/judge` | `@sentropic/llm-mesh/decision` |
482
+ | `@sentropic/llm-mesh/judge/host` | `@sentropic/llm-mesh/decision/host` |
483
+ | `createRemoteJudgeClient` | `createRemoteDecisionClient` |
484
+ | `client.judge(request)` | `client.decide(request)` |
485
+ | `adapter.judge(request, context)` | `adapter.decision(request, context)` |
486
+ | `judgeRequest`, `JudgeResult`, `JudgeClient` | `decisionRequest`, `DecisionResult`, `DecisionClient` |
487
+ | `isJudgeOnlyProvider` (api) | `isDecisionOnlyProvider` |
488
+
489
+ ```ts
490
+ import { createRemoteDecisionClient } from '@sentropic/llm-mesh/decision';
491
+ import type { DecisionRequest, DecisionResult } from '@sentropic/llm-mesh/decision';
492
+ ```
493
+
494
+ Callers must pass the explicit trusted context: `validationContext` is required on `createRemoteDecisionClient` so revision-specific validation facts bind the transmitted snapshot; omitted resolvers refuse client-local with zero header/credential resolution. Registered criteria require a trusted resolution; without one they fail closed. The host requires an explicit `evaluatorAllowlist`; absent or unlisted evaluators refuse before credentials or dispatch.
@@ -45,6 +45,9 @@ export interface AuthCapabilities {
45
45
  accountTransports: readonly AccountTransportProviderId[];
46
46
  }
47
47
  export interface ProviderCapabilities {
48
+ decision?: {
49
+ support: CapabilitySupport;
50
+ };
48
51
  tools: ToolUseCapabilities;
49
52
  streaming: StreamingCapabilities;
50
53
  structuredOutput: StructuredOutputCapabilities;
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1D,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;AAEnF,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,aAAa,GACb,oBAAoB,GACpB,mBAAmB,CAAC;AAExB,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;IACjC,sBAAsB,EAAE,iBAAiB,CAAC;IAC1C,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,oBAAoB,EAAE,iBAAiB,CAAC;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAChD,UAAU,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,oBAAoB,EAAE,iBAAiB,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;IAClE,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC;CAC9D;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,iBAAiB,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,EAAE,qBAAqB,CAAC;IACjC,gBAAgB,EAAE,4BAA4B,CAAC;IAC/C,SAAS,EAAE,qBAAqB,CAAC;IACjC,UAAU,EAAE,oBAAoB,CAAC;IACjC,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,mCAAmC,gNAatC,CAAC"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1D,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;AAEnF,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,aAAa,GACb,oBAAoB,GACpB,mBAAmB,CAAC;AAExB,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;IACjC,sBAAsB,EAAE,iBAAiB,CAAC;IAC1C,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,oBAAoB,EAAE,iBAAiB,CAAC;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAChD,UAAU,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,oBAAoB,EAAE,iBAAiB,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;IAClE,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC;CAC9D;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,iBAAiB,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,EAAE,qBAAqB,CAAC;IACjC,gBAAgB,EAAE,4BAA4B,CAAC;IAC/C,SAAS,EAAE,qBAAqB,CAAC;IACjC,UAAU,EAAE,oBAAoB,CAAC;IACjC,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,mCAAmC,gNAatC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AA+EA,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,sBAAsB;IACtB,uBAAuB;IACvB,mBAAmB;IACnB,eAAe;IACf,UAAU;IACV,cAAc;IACd,mBAAmB;IACnB,kBAAkB;IAClB,SAAS;IACT,KAAK;IACL,SAAS;IACT,UAAU;CACF,CAAC"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAgFA,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,sBAAsB;IACtB,uBAAuB;IACvB,mBAAmB;IACnB,eAAe;IACf,UAAU;IACV,cAAc;IACd,mBAAmB;IACnB,kBAAkB;IAClB,SAAS;IACT,KAAK;IACL,SAAS;IACT,UAAU;CACF,CAAC"}
package/dist/catalog.d.ts CHANGED
@@ -1,10 +1,11 @@
1
- import { type ModelCapabilities, type ProviderCapabilities } from './capabilities.js';
1
+ import { type CapabilitySupport, type ModelCapabilities, type ProviderCapabilities } from './capabilities.js';
2
2
  import { type KnownModelId, type ModelId, type ModelTaskHint, type ProviderFamily, type ProviderId, type ProviderStatus, type ReasoningTier } from './providers.js';
3
3
  export interface ProviderDescriptor {
4
4
  providerId: ProviderId;
5
5
  family: ProviderFamily;
6
6
  label: string;
7
7
  status: ProviderStatus;
8
+ decisionOnly?: true;
8
9
  capabilities: ProviderCapabilities;
9
10
  }
10
11
  export interface ModelProfile {
@@ -72,6 +73,54 @@ export declare const providerProfiles: {
72
73
  readonly status: "planned";
73
74
  readonly capabilities: ProviderCapabilities;
74
75
  };
76
+ readonly typesafe: {
77
+ readonly providerId: "typesafe";
78
+ readonly family: "typesafe";
79
+ readonly label: "TypeSafe";
80
+ readonly status: "planned";
81
+ readonly decisionOnly: true;
82
+ readonly capabilities: {
83
+ readonly decision: {
84
+ readonly support: "supported";
85
+ };
86
+ readonly tools: {
87
+ readonly support: "unsupported";
88
+ readonly parallelCalls: "unsupported";
89
+ readonly streamedArgumentDeltas: "unsupported";
90
+ readonly resultContinuation: "unsupported";
91
+ readonly toolChoice: readonly [];
92
+ };
93
+ readonly streaming: {
94
+ readonly support: "unsupported";
95
+ readonly nativeProviderChunks: "unsupported";
96
+ };
97
+ readonly structuredOutput: {
98
+ readonly support: "unsupported";
99
+ readonly strategies: readonly [];
100
+ readonly jsonSchema: {
101
+ readonly support: "unsupported";
102
+ readonly level: "none";
103
+ readonly strict: false;
104
+ };
105
+ };
106
+ readonly reasoning: {
107
+ readonly support: "unsupported";
108
+ readonly tier: "none";
109
+ readonly controls: "unsupported";
110
+ readonly visibleSummaries: "unsupported";
111
+ readonly hiddenSignatures: "unsupported";
112
+ readonly tokenUsageAccounting: "unsupported";
113
+ };
114
+ readonly modalities: {
115
+ readonly input: readonly [];
116
+ readonly output: readonly [];
117
+ };
118
+ readonly auth: {
119
+ readonly tokenSources: readonly ["environment-token"];
120
+ readonly accountTransports: readonly [];
121
+ };
122
+ };
123
+ };
75
124
  };
76
125
  export declare const modelProfiles: readonly [{
77
126
  readonly providerId: "openai";
@@ -152,6 +201,9 @@ export declare const modelProfiles: readonly [{
152
201
  readonly capabilities: {
153
202
  readonly contextWindowTokens: 1000000;
154
203
  readonly maxOutputTokens: 65536;
204
+ readonly decision?: {
205
+ support: CapabilitySupport;
206
+ } | undefined;
155
207
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
156
208
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
157
209
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -168,6 +220,9 @@ export declare const modelProfiles: readonly [{
168
220
  readonly capabilities: {
169
221
  readonly contextWindowTokens: 1000000;
170
222
  readonly maxOutputTokens: 65536;
223
+ readonly decision?: {
224
+ support: CapabilitySupport;
225
+ } | undefined;
171
226
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
172
227
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
173
228
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -184,6 +239,9 @@ export declare const modelProfiles: readonly [{
184
239
  readonly capabilities: {
185
240
  readonly contextWindowTokens: 1000000;
186
241
  readonly maxOutputTokens: 65536;
242
+ readonly decision?: {
243
+ support: CapabilitySupport;
244
+ } | undefined;
187
245
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
188
246
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
189
247
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -263,6 +321,9 @@ export declare const modelProfiles: readonly [{
263
321
  readonly capabilities: {
264
322
  readonly contextWindowTokens: 1000000;
265
323
  readonly maxOutputTokens?: number | undefined;
324
+ readonly decision?: {
325
+ support: CapabilitySupport;
326
+ } | undefined;
266
327
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
267
328
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
268
329
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -279,6 +340,9 @@ export declare const modelProfiles: readonly [{
279
340
  readonly capabilities: {
280
341
  readonly contextWindowTokens: 262144;
281
342
  readonly maxOutputTokens?: number | undefined;
343
+ readonly decision?: {
344
+ support: CapabilitySupport;
345
+ } | undefined;
282
346
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
283
347
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
284
348
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -295,6 +359,9 @@ export declare const modelProfiles: readonly [{
295
359
  readonly capabilities: {
296
360
  readonly contextWindowTokens: 1000000;
297
361
  readonly maxOutputTokens: 131072;
362
+ readonly decision?: {
363
+ support: CapabilitySupport;
364
+ } | undefined;
298
365
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
299
366
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
300
367
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -430,6 +497,54 @@ export declare const providerCapabilityMatrix: {
430
497
  readonly status: "planned";
431
498
  readonly capabilities: ProviderCapabilities;
432
499
  };
500
+ readonly typesafe: {
501
+ readonly providerId: "typesafe";
502
+ readonly family: "typesafe";
503
+ readonly label: "TypeSafe";
504
+ readonly status: "planned";
505
+ readonly decisionOnly: true;
506
+ readonly capabilities: {
507
+ readonly decision: {
508
+ readonly support: "supported";
509
+ };
510
+ readonly tools: {
511
+ readonly support: "unsupported";
512
+ readonly parallelCalls: "unsupported";
513
+ readonly streamedArgumentDeltas: "unsupported";
514
+ readonly resultContinuation: "unsupported";
515
+ readonly toolChoice: readonly [];
516
+ };
517
+ readonly streaming: {
518
+ readonly support: "unsupported";
519
+ readonly nativeProviderChunks: "unsupported";
520
+ };
521
+ readonly structuredOutput: {
522
+ readonly support: "unsupported";
523
+ readonly strategies: readonly [];
524
+ readonly jsonSchema: {
525
+ readonly support: "unsupported";
526
+ readonly level: "none";
527
+ readonly strict: false;
528
+ };
529
+ };
530
+ readonly reasoning: {
531
+ readonly support: "unsupported";
532
+ readonly tier: "none";
533
+ readonly controls: "unsupported";
534
+ readonly visibleSummaries: "unsupported";
535
+ readonly hiddenSignatures: "unsupported";
536
+ readonly tokenUsageAccounting: "unsupported";
537
+ };
538
+ readonly modalities: {
539
+ readonly input: readonly [];
540
+ readonly output: readonly [];
541
+ };
542
+ readonly auth: {
543
+ readonly tokenSources: readonly ["environment-token"];
544
+ readonly accountTransports: readonly [];
545
+ };
546
+ };
547
+ };
433
548
  };
434
549
  export declare const modelCapabilityMatrix: readonly [{
435
550
  readonly providerId: "openai";
@@ -510,6 +625,9 @@ export declare const modelCapabilityMatrix: readonly [{
510
625
  readonly capabilities: {
511
626
  readonly contextWindowTokens: 1000000;
512
627
  readonly maxOutputTokens: 65536;
628
+ readonly decision?: {
629
+ support: CapabilitySupport;
630
+ } | undefined;
513
631
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
514
632
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
515
633
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -526,6 +644,9 @@ export declare const modelCapabilityMatrix: readonly [{
526
644
  readonly capabilities: {
527
645
  readonly contextWindowTokens: 1000000;
528
646
  readonly maxOutputTokens: 65536;
647
+ readonly decision?: {
648
+ support: CapabilitySupport;
649
+ } | undefined;
529
650
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
530
651
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
531
652
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -542,6 +663,9 @@ export declare const modelCapabilityMatrix: readonly [{
542
663
  readonly capabilities: {
543
664
  readonly contextWindowTokens: 1000000;
544
665
  readonly maxOutputTokens: 65536;
666
+ readonly decision?: {
667
+ support: CapabilitySupport;
668
+ } | undefined;
545
669
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
546
670
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
547
671
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -621,6 +745,9 @@ export declare const modelCapabilityMatrix: readonly [{
621
745
  readonly capabilities: {
622
746
  readonly contextWindowTokens: 1000000;
623
747
  readonly maxOutputTokens?: number | undefined;
748
+ readonly decision?: {
749
+ support: CapabilitySupport;
750
+ } | undefined;
624
751
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
625
752
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
626
753
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -637,6 +764,9 @@ export declare const modelCapabilityMatrix: readonly [{
637
764
  readonly capabilities: {
638
765
  readonly contextWindowTokens: 262144;
639
766
  readonly maxOutputTokens?: number | undefined;
767
+ readonly decision?: {
768
+ support: CapabilitySupport;
769
+ } | undefined;
640
770
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
641
771
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
642
772
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -653,6 +783,9 @@ export declare const modelCapabilityMatrix: readonly [{
653
783
  readonly capabilities: {
654
784
  readonly contextWindowTokens: 1000000;
655
785
  readonly maxOutputTokens: 131072;
786
+ readonly decision?: {
787
+ support: CapabilitySupport;
788
+ } | undefined;
656
789
  readonly tools: import("./capabilities.js").ToolUseCapabilities;
657
790
  readonly streaming: import("./capabilities.js").StreamingCapabilities;
658
791
  readonly structuredOutput: import("./capabilities.js").StructuredOutputCapabilities;
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,oBAAoB,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAuGD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyG8B,CAAC;AAyC5D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4VkB,CAAC;AAE7C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAmB,CAAC;AAEzD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgB,CAAC;AAEnD,eAAO,MAAM,oBAAoB,QAAO,SAAS,kBAAkB,EAElE,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,SAAS,YAAY,EAEzD,CAAC;AAEF,eAAO,MAAM,2BAA2B,eAC1B,UAAU,KACrB,SAAS,YAAY,EAEvB,CAAC;AAEF,eAAO,MAAM,kBAAkB,eACjB,UAAU,KACrB,kBAEF,CAAC;AAEF,eAAO,MAAM,eAAe,eACd,UAAU,WACb,OAAO,KACf,YAAY,GAAG,IAMjB,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,YAAY,EAAE,oBAAoB,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAuGD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwH8B,CAAC;AAyC5D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4VkB,CAAC;AAE7C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAmB,CAAC;AAEzD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgB,CAAC;AAEnD,eAAO,MAAM,oBAAoB,QAAO,SAAS,kBAAkB,EAElE,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,SAAS,YAAY,EAEzD,CAAC;AAEF,eAAO,MAAM,2BAA2B,eAC1B,UAAU,KACrB,SAAS,YAAY,EAEvB,CAAC;AAEF,eAAO,MAAM,kBAAkB,eACjB,UAAU,KACrB,kBAEF,CAAC;AAEF,eAAO,MAAM,eAAe,eACd,UAAU,WACb,OAAO,KACf,YAAY,GAAG,IAMjB,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/catalog.js CHANGED
@@ -182,6 +182,21 @@ export const providerProfiles = {
182
182
  accountTransports: ['muse'],
183
183
  }),
184
184
  },
185
+ typesafe: {
186
+ providerId: 'typesafe', family: 'typesafe', label: 'TypeSafe', status: 'planned', decisionOnly: true,
187
+ capabilities: {
188
+ decision: { support: 'supported' },
189
+ tools: { support: 'unsupported', parallelCalls: 'unsupported', streamedArgumentDeltas: 'unsupported',
190
+ resultContinuation: 'unsupported', toolChoice: [] },
191
+ streaming: { support: 'unsupported', nativeProviderChunks: 'unsupported' },
192
+ structuredOutput: { support: 'unsupported', strategies: [],
193
+ jsonSchema: { support: 'unsupported', level: 'none', strict: false } },
194
+ reasoning: { support: 'unsupported', tier: 'none', controls: 'unsupported', visibleSummaries: 'unsupported',
195
+ hiddenSignatures: 'unsupported', tokenUsageAccounting: 'unsupported' },
196
+ modalities: { input: [], output: [] },
197
+ auth: { tokenSources: ['environment-token'], accountTransports: [] },
198
+ },
199
+ },
185
200
  };
186
201
  const modelCapabilities = (providerId, reasoningTier, options = {}) => ({
187
202
  ...providerProfiles[providerId].capabilities,
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { DecisionAdapterResult } from './adapter.js';
2
+ import type { DecisionRequest } from './request.js';
3
+ import type { DecisionEvaluatorDescriptor } from './descriptor.js';
4
+ /** Rebuild the JEV verdict from native evidence, never return a live plugin envelope. */
5
+ export declare function parseDecisionAdapterResult(candidate: unknown, request: DecisionRequest, descriptor: DecisionEvaluatorDescriptor, secret: string): DecisionAdapterResult;
6
+ //# sourceMappingURL=adapter-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-result.d.ts","sourceRoot":"","sources":["../../src/decision/adapter-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AA2DnE,yFAAyF;AACzF,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EACrF,UAAU,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAwDhF"}
@@ -0,0 +1,148 @@
1
+ import { createDecisionError, isDecisionErrorCode } from './errors.js';
2
+ import { parseDecisionUsage, unreportedDecisionUsage } from './receipt.js';
3
+ import { encodeJevRequest } from './jev-codec.js';
4
+ import { decodeJevVerdict } from './jev-verdict.js';
5
+ import { sanitizeJevId } from './jev-response.js';
6
+ import { hasOnlyKeys, isRecord, isText, snapshotBoundedJson } from './validation.js';
7
+ import { parseJevProviderRaw } from './raw.js';
8
+ import { deriveDecision } from './verdict.js';
9
+ import { STRUCTURED_SCORE_MEANING } from './structured.js';
10
+ /** Closed structured envelope at the host boundary (V-K1/V-K2). Undeclared
11
+ * carriers, substituted score meaning/scale/direction and provider raw data
12
+ * are rejected; the surviving verdict is rebuilt field by field from
13
+ * validated values bound to the descriptor and request criterion. */
14
+ const STRUCTURED_HOST_VERDICT_KEYS = ['criterionKind', 'resolvedCriterionKind', 'score', 'decision', 'label',
15
+ 'rationale', 'confidence', 'distribution'];
16
+ function parseStructuredHostVerdict(candidate, request, descriptor) {
17
+ if (!isRecord(candidate) || request.criterion.kind === 'registered')
18
+ return null;
19
+ if (!hasOnlyKeys(candidate, [...STRUCTURED_HOST_VERDICT_KEYS]))
20
+ return null;
21
+ if (candidate.criterionKind !== request.criterion.kind || candidate.resolvedCriterionKind !== request.criterion.kind)
22
+ return null;
23
+ if (candidate.distribution !== null || candidate.rationale !== null || candidate.confidence !== null)
24
+ return null;
25
+ if (Object.hasOwn(candidate, 'providerRaw'))
26
+ return null;
27
+ const expectedMeaning = descriptor.scoreSemantics?.meaning
28
+ ?? ((descriptor.protocol ?? 'structured-llm') === 'structured-llm' ? STRUCTURED_SCORE_MEANING : null);
29
+ if (expectedMeaning === null)
30
+ return null;
31
+ if (request.criterion.kind === 'choice') {
32
+ if (!isRecord(candidate.label) || !hasOnlyKeys(candidate.label, ['value', 'origin'])
33
+ || candidate.label.origin !== 'provider' || !isText(candidate.label.value) || candidate.score !== null)
34
+ return null;
35
+ const labelValue = candidate.label.value;
36
+ if (!request.criterion.options.some((option) => option.id === labelValue))
37
+ return null;
38
+ const derived = deriveDecision({ rule: request.decision, score: null, label: labelValue,
39
+ providerDecision: null, declaredLabels: request.criterion.options.map((option) => option.id) });
40
+ if (!derived.ok || JSON.stringify(derived.decision) !== JSON.stringify(candidate.decision))
41
+ return null;
42
+ return { verdict: { criterionKind: 'choice', resolvedCriterionKind: 'choice', score: null,
43
+ decision: derived.decision, label: { value: labelValue, origin: 'provider' },
44
+ rationale: null, confidence: null, distribution: null } };
45
+ }
46
+ if (request.criterion.kind !== 'binary' && request.criterion.kind !== 'graded')
47
+ return null;
48
+ if (candidate.label !== null || !isRecord(candidate.score))
49
+ return null;
50
+ const score = candidate.score;
51
+ if (!hasOnlyKeys(score, ['value', 'meaning', 'scale']) || score.meaning !== expectedMeaning)
52
+ return null;
53
+ if (!isRecord(score.scale) || !hasOnlyKeys(score.scale, ['kind', 'min', 'max', 'direction']))
54
+ return null;
55
+ const scale = score.scale;
56
+ const max = request.criterion.kind === 'graded' ? request.criterion.levels.length - 1 : 1;
57
+ const direction = request.criterion.kind === 'graded' ? request.criterion.direction : 'unordered';
58
+ if (scale.kind !== 'bounded' || scale.min !== 0 || scale.max !== max || scale.direction !== direction)
59
+ return null;
60
+ if (typeof score.value !== 'number' || !Number.isFinite(score.value) || score.value < 0 || score.value > max)
61
+ return null;
62
+ const rebuiltScore = { value: score.value, meaning: expectedMeaning,
63
+ scale: { kind: 'bounded', min: 0, max, direction } };
64
+ const derived = deriveDecision({ rule: request.decision, score: rebuiltScore, label: null, providerDecision: null });
65
+ if (!derived.ok || JSON.stringify(derived.decision) !== JSON.stringify(candidate.decision))
66
+ return null;
67
+ return { verdict: { criterionKind: request.criterion.kind, resolvedCriterionKind: request.criterion.kind,
68
+ score: rebuiltScore, decision: derived.decision, label: null,
69
+ rationale: null, confidence: null, distribution: null } };
70
+ }
71
+ /** Rebuild the JEV verdict from native evidence, never return a live plugin envelope. */
72
+ export function parseDecisionAdapterResult(candidate, request, descriptor, secret) {
73
+ const snapshot = snapshotBoundedJson(candidate);
74
+ const value = snapshot.ok && isRecord(snapshot.value) ? snapshot.value : {};
75
+ const usage = parseDecisionUsage(value.usage) ?? unreportedDecisionUsage('unknown');
76
+ const safeId = (id) => typeof id === 'string' && id.includes(secret) ? undefined : sanitizeJevId(id);
77
+ const servedModelId = safeId(value.servedModelId) ?? null;
78
+ const providerRequestId = safeId(value.providerRequestId);
79
+ const matched = servedModelId !== null && descriptor.acceptedServedModelIds.includes(servedModelId);
80
+ const evidence = { usage, servedModelId, servedEvaluator: matched ? { ...descriptor.evaluator } : null,
81
+ ...(providerRequestId ? { providerRequestId } : {}),
82
+ ...(typeof value.providerLatencyMs === 'number' && Number.isFinite(value.providerLatencyMs) && value.providerLatencyMs >= 0
83
+ ? { providerLatencyMs: value.providerLatencyMs } : {}) };
84
+ const failed = (code, phase = 'parse') => ({ ok: false, error: createDecisionError(code, phase), ...evidence });
85
+ if (value.ok === false) {
86
+ const error = isRecord(value.error) ? value.error : {};
87
+ return failed(isDecisionErrorCode(error.code) ? error.code : 'VERDICT_INVALID', error.phase === 'parse' ? 'parse' : 'dispatch');
88
+ }
89
+ if (value.ok !== true)
90
+ return failed('VERDICT_INVALID');
91
+ if (!matched)
92
+ return failed('SERVED_IDENTITY_MISMATCH');
93
+ if (usage.tokens.input.source !== 'provider' || usage.tokens.output.source !== 'provider'
94
+ || usage.evaluatorCalls !== 1 || usage.explanations !== 0)
95
+ return failed('USAGE_INVALID');
96
+ if ((descriptor.protocol ?? 'jev-native') !== 'jev-native') {
97
+ const closed = parseStructuredHostVerdict(value.verdict, request, descriptor);
98
+ if (!closed)
99
+ return failed('VERDICT_INVALID');
100
+ return { ok: true, verdict: closed.verdict, ...evidence };
101
+ }
102
+ const encoded = encodeJevRequest(request, descriptor);
103
+ const verdict = value.verdict;
104
+ if (!encoded.ok || !isRecord(verdict))
105
+ return failed('VERDICT_INVALID');
106
+ let native;
107
+ if (encoded.criterion.kind === 'binary') {
108
+ native = isRecord(verdict.score) ? { noul: verdict.score.value } : null;
109
+ }
110
+ else {
111
+ if (!Array.isArray(verdict.distribution))
112
+ return failed('VERDICT_INVALID');
113
+ const probabilities = Object.create(null);
114
+ for (const item of verdict.distribution) {
115
+ if (!isRecord(item) || typeof item.nativeOutcome !== 'string')
116
+ return failed('VERDICT_INVALID');
117
+ probabilities[item.nativeOutcome] = item.probability;
118
+ }
119
+ const confidence = isRecord(verdict.confidence) ? verdict.confidence.value : null;
120
+ native = encoded.criterion.kind === 'choice'
121
+ ? { choice: isRecord(verdict.label) ? verdict.label.value : null, probabilities, confidence }
122
+ : { score: isRecord(verdict.score) ? verdict.score.value : null, probabilities, confidence,
123
+ legend: Object.fromEntries(encoded.criterion.levels.map((level, index) => [String(index), level.description])) };
124
+ }
125
+ const decoded = decodeJevVerdict(native, request, descriptor);
126
+ // Compare detached data structurally, so property insertion order has no authority.
127
+ const { providerRaw, ...typed } = verdict;
128
+ if (!decoded.ok || !sameJson(typed, decoded.verdict))
129
+ return failed('VERDICT_INVALID');
130
+ if (Object.hasOwn(verdict, 'providerRaw')) {
131
+ const raw = parseJevProviderRaw(providerRaw, native, request);
132
+ if (!raw)
133
+ return failed('VERDICT_INVALID');
134
+ decoded.verdict.providerRaw = raw;
135
+ }
136
+ return { ok: true, verdict: decoded.verdict, ...evidence };
137
+ }
138
+ function sameJson(left, right) {
139
+ if (left === right)
140
+ return true;
141
+ if (Array.isArray(left) && Array.isArray(right))
142
+ return left.length === right.length && left.every((v, i) => sameJson(v, right[i]));
143
+ if (!isRecord(left) || !isRecord(right))
144
+ return false;
145
+ const keys = Object.keys(left);
146
+ return keys.length === Object.keys(right).length && keys.every((key) => Object.hasOwn(right, key) && sameJson(left[key], right[key]));
147
+ }
148
+ //# sourceMappingURL=adapter-result.js.map