@sentropic/llm-mesh 0.28.1 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +41 -2
  2. package/dist/decision/adapter-result.d.ts.map +1 -1
  3. package/dist/decision/adapter-result.js +12 -0
  4. package/dist/decision/adapter-result.js.map +1 -1
  5. package/dist/decision/adapter.d.ts.map +1 -1
  6. package/dist/decision/adapter.js +2 -1
  7. package/dist/decision/adapter.js.map +1 -1
  8. package/dist/decision/admission.d.ts +2 -1
  9. package/dist/decision/admission.d.ts.map +1 -1
  10. package/dist/decision/admission.js +5 -1
  11. package/dist/decision/admission.js.map +1 -1
  12. package/dist/decision/assessment-controls.d.ts +6 -0
  13. package/dist/decision/assessment-controls.d.ts.map +1 -0
  14. package/dist/decision/assessment-controls.js +45 -0
  15. package/dist/decision/assessment-controls.js.map +1 -0
  16. package/dist/decision/assessment-recording.d.ts +23 -0
  17. package/dist/decision/assessment-recording.d.ts.map +1 -0
  18. package/dist/decision/assessment-recording.js +73 -0
  19. package/dist/decision/assessment-recording.js.map +1 -0
  20. package/dist/decision/assessment-statistics.d.ts +14 -0
  21. package/dist/decision/assessment-statistics.d.ts.map +1 -0
  22. package/dist/decision/assessment-statistics.js +88 -0
  23. package/dist/decision/assessment-statistics.js.map +1 -0
  24. package/dist/decision/assessment-types.d.ts +123 -0
  25. package/dist/decision/assessment-types.d.ts.map +1 -0
  26. package/dist/decision/assessment-types.js +2 -0
  27. package/dist/decision/assessment-types.js.map +1 -0
  28. package/dist/decision/assessment-validation.d.ts +7 -0
  29. package/dist/decision/assessment-validation.d.ts.map +1 -0
  30. package/dist/decision/assessment-validation.js +124 -0
  31. package/dist/decision/assessment-validation.js.map +1 -0
  32. package/dist/decision/assessment.d.ts +6 -0
  33. package/dist/decision/assessment.d.ts.map +1 -0
  34. package/dist/decision/assessment.js +157 -0
  35. package/dist/decision/assessment.js.map +1 -0
  36. package/dist/decision/descriptor-validation.d.ts.map +1 -1
  37. package/dist/decision/descriptor-validation.js +4 -2
  38. package/dist/decision/descriptor-validation.js.map +1 -1
  39. package/dist/decision/descriptor.d.ts +3 -1
  40. package/dist/decision/descriptor.d.ts.map +1 -1
  41. package/dist/decision/descriptor.js.map +1 -1
  42. package/dist/decision/dispatch.d.ts.map +1 -1
  43. package/dist/decision/dispatch.js +6 -2
  44. package/dist/decision/dispatch.js.map +1 -1
  45. package/dist/decision/host-options.d.ts +5 -0
  46. package/dist/decision/host-options.d.ts.map +1 -1
  47. package/dist/decision/host.d.ts +10 -0
  48. package/dist/decision/host.d.ts.map +1 -1
  49. package/dist/decision/host.js +6 -0
  50. package/dist/decision/host.js.map +1 -1
  51. package/dist/decision/index.d.ts +2 -0
  52. package/dist/decision/index.d.ts.map +1 -1
  53. package/dist/decision/jev-response.d.ts.map +1 -1
  54. package/dist/decision/jev-response.js +6 -2
  55. package/dist/decision/jev-response.js.map +1 -1
  56. package/dist/decision/jev-verdict.d.ts.map +1 -1
  57. package/dist/decision/jev-verdict.js +6 -1
  58. package/dist/decision/jev-verdict.js.map +1 -1
  59. package/dist/decision/openai-adapter.d.ts +46 -0
  60. package/dist/decision/openai-adapter.d.ts.map +1 -0
  61. package/dist/decision/openai-adapter.js +67 -0
  62. package/dist/decision/openai-adapter.js.map +1 -0
  63. package/dist/decision/openai-codec.d.ts +7 -0
  64. package/dist/decision/openai-codec.d.ts.map +1 -0
  65. package/dist/decision/openai-codec.js +60 -0
  66. package/dist/decision/openai-codec.js.map +1 -0
  67. package/dist/decision/openai-descriptor.d.ts +7 -0
  68. package/dist/decision/openai-descriptor.d.ts.map +1 -0
  69. package/dist/decision/openai-descriptor.js +31 -0
  70. package/dist/decision/openai-descriptor.js.map +1 -0
  71. package/dist/decision/openai-request.d.ts +15 -0
  72. package/dist/decision/openai-request.d.ts.map +1 -0
  73. package/dist/decision/openai-request.js +33 -0
  74. package/dist/decision/openai-request.js.map +1 -0
  75. package/dist/decision/openai-verdict.d.ts +9 -0
  76. package/dist/decision/openai-verdict.d.ts.map +1 -0
  77. package/dist/decision/openai-verdict.js +76 -0
  78. package/dist/decision/openai-verdict.js.map +1 -0
  79. package/dist/decision/policy.d.ts.map +1 -1
  80. package/dist/decision/policy.js +4 -2
  81. package/dist/decision/policy.js.map +1 -1
  82. package/dist/decision/pricing.d.ts +1 -0
  83. package/dist/decision/pricing.d.ts.map +1 -1
  84. package/dist/decision/pricing.js +29 -14
  85. package/dist/decision/pricing.js.map +1 -1
  86. package/dist/decision/qualification-scope.d.ts +22 -0
  87. package/dist/decision/qualification-scope.d.ts.map +1 -0
  88. package/dist/decision/qualification-scope.js +36 -0
  89. package/dist/decision/qualification-scope.js.map +1 -0
  90. package/dist/decision/qualification.d.ts +34 -0
  91. package/dist/decision/qualification.d.ts.map +1 -0
  92. package/dist/decision/qualification.js +74 -0
  93. package/dist/decision/qualification.js.map +1 -0
  94. package/dist/decision/receipt.d.ts +9 -3
  95. package/dist/decision/receipt.d.ts.map +1 -1
  96. package/dist/decision/receipt.js.map +1 -1
  97. package/dist/decision/service.d.ts.map +1 -1
  98. package/dist/decision/service.js +21 -4
  99. package/dist/decision/service.js.map +1 -1
  100. package/dist/transport/openai-decisions.d.ts +23 -0
  101. package/dist/transport/openai-decisions.d.ts.map +1 -0
  102. package/dist/transport/openai-decisions.js +107 -0
  103. package/dist/transport/openai-decisions.js.map +1 -0
  104. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/decision/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQvD,wFAAwF;AACxF,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,EACtH,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,kDAsCnF"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/decision/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQvD,wFAAwF;AACxF,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,EACtH,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,kDAyCnF"}
@@ -28,7 +28,8 @@ export async function dispatchDecision(execution, selection, admitted, options)
28
28
  const result = parseDecisionAdapterResult(candidate, request, selection.descriptor, secret);
29
29
  receipt.dispatch = result.ok || result.error.phase === 'parse' ? 'completed' : 'unknown';
30
30
  receipt.usage = result.usage;
31
- receipt.servedEvaluator = result.servedEvaluator;
31
+ receipt.servedEvaluator = result.servedEvaluator === null ? null : { ...result.servedEvaluator,
32
+ ...(receipt.experimental ? { provisional: true } : {}) };
32
33
  receipt.servedModelId = result.servedModelId;
33
34
  if (result.providerRequestId)
34
35
  receipt.providerRequestId = result.providerRequestId;
@@ -43,8 +44,11 @@ export async function dispatchDecision(execution, selection, admitted, options)
43
44
  error = createDecisionError('TIMEOUT', result.error.phase);
44
45
  }
45
46
  closeDecisionReceipt(execution, error);
47
+ // Invalid native usage cannot release the admitted hold through settlement.
48
+ const retainHold = selection.descriptor.protocol === 'openai-decisions' && !result.ok && result.error.code === 'USAGE_INVALID';
46
49
  try {
47
- await options.budget.settle({ holdId: admitted.holdId, receipt: copyDecisionReceipt(receipt), boundViolated: priced.overrun });
50
+ if (!retainHold)
51
+ await options.budget.settle({ holdId: admitted.holdId, receipt: copyDecisionReceipt(receipt), boundViolated: priced.overrun });
48
52
  }
49
53
  catch {
50
54
  receipt.budget.state = 'pending-reconciliation';
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/decision/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/decision/dispatch.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { DecisionSelectionOptions } from './service.js';
3
3
  import type { DecisionBudgetPort, DecisionReceiptSink } from './budget.js';
4
4
  import type { DecisionClock } from './execution.js';
5
5
  import type { EvaluatorRef } from './request.js';
6
+ import type { DecisionReadinessEvidence } from './qualification.js';
6
7
  export interface DecisionPriceLookupKey {
7
8
  providerId: string;
8
9
  modelId: string;
@@ -14,6 +15,10 @@ export interface DecisionPriceLookupKey {
14
15
  priceRevision: string;
15
16
  }
16
17
  export interface DecisionServiceOptions extends DecisionSelectionOptions {
18
+ /** Isolated host composition; production is the default and refuses qualification descriptors. */
19
+ executionProfile?: 'production' | 'qualification';
20
+ /** Host-owned evidence; caller JSON cannot select an experimental profile or a policy. */
21
+ readiness?: Omit<DecisionReadinessEvidence, 'price'>;
17
22
  resolveAuth: AuthResolver;
18
23
  resolvePrice(key: DecisionPriceLookupKey): unknown | Promise<unknown>;
19
24
  /** Closed over verified caller identity; request JSON never selects financial ownership. */
@@ -1 +1 @@
1
- {"version":3,"file":"host-options.d.ts","sourceRoot":"","sources":["../../src/decision/host-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IACpC;;uCAEmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;CAC5D;AAED,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;IACtE,WAAW,EAAE,YAAY,CAAC;IAC1B,YAAY,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,4FAA4F;IAC5F,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"host-options.d.ts","sourceRoot":"","sources":["../../src/decision/host-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IACpC;;uCAEmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;CAC5D;AAED,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;IACtE,kGAAkG;IAClG,gBAAgB,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC;IAClD,0FAA0F;IAC1F,SAAS,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;IACrD,WAAW,EAAE,YAAY,CAAC;IAC1B,YAAY,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,4FAA4F;IAC5F,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B"}
@@ -3,6 +3,11 @@ export { createDecisionService } from './service.js';
3
3
  export { createJevAdapter } from './adapter.js';
4
4
  export { createStructuredDecisionAdapter, STRUCTURED_CONTRACT_REVISION, STRUCTURED_SCORE_MEANING } from './structured.js';
5
5
  export { jevDescriptor } from './descriptor.js';
6
+ export { createOpenAiDecisionsAdapter } from './openai-adapter.js';
7
+ export type { OpenAiDecisionsAdapterOptions } from './openai-adapter.js';
8
+ export { openAiDecisionsDescriptor, openAiDecisionsPrice } from './openai-descriptor.js';
9
+ export { createOpenAiDecisionsTransport } from '../transport/openai-decisions.js';
10
+ export type { OpenAiDecisionsTransport, OpenAiDecisionsTransportOptions } from '../transport/openai-decisions.js';
6
11
  export type { JevAdapterOptions } from './adapter.js';
7
12
  export type { StructuredDecisionTransport, StructuredProviderEnvelope, StructuredDecisionPayload, StructuredDecisionAdapterOptions, DecisionBackend } from './structured.js';
8
13
  export type { DecisionServiceOptions, DecisionPriceLookupKey } from './host-options.js';
@@ -11,4 +16,9 @@ export type { DecisionEvaluatorDescriptor, ResolvedDecisionCriterion } from './d
11
16
  export type { DecisionBudgetPort, DecisionReceiptSink, DecisionAdmission, DecisionAdmissionResult, DecisionDispatchResult, DecisionSettlement } from './budget.js';
12
17
  export type { DecisionPrice, DecisionQuote } from './pricing.js';
13
18
  export type { DecisionClock } from './execution.js';
19
+ export { discoverDecisionEvaluator, decisionExecutionDigest, decisionQualificationScope } from './qualification.js';
20
+ export { assessDecisionCalibration } from './assessment.js';
21
+ export { recordDecisionAssessmentRow, decisionAssessmentCapacity } from './assessment-recording.js';
22
+ export type { DecisionReadinessEvidence, DecisionEvaluatorDiscovery, DecisionOperatingPolicy, DecisionQualificationScope } from './qualification.js';
23
+ export type { DecisionAssessment, DecisionAssessmentReport, DecisionAssessmentRow, DecisionAssessmentSample, DecisionAssessmentPopulation } from './assessment-types.js';
14
24
  //# sourceMappingURL=host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/decision/host.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7K,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAC/F,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/decision/host.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,YAAY,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAClH,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7K,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAC/F,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACpG,YAAY,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,uBAAuB,EAC1F,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,wBAAwB,EACzG,4BAA4B,EAAE,MAAM,uBAAuB,CAAC"}
@@ -3,4 +3,10 @@ export { createDecisionService } from './service.js';
3
3
  export { createJevAdapter } from './adapter.js';
4
4
  export { createStructuredDecisionAdapter, STRUCTURED_CONTRACT_REVISION, STRUCTURED_SCORE_MEANING } from './structured.js';
5
5
  export { jevDescriptor } from './descriptor.js';
6
+ export { createOpenAiDecisionsAdapter } from './openai-adapter.js';
7
+ export { openAiDecisionsDescriptor, openAiDecisionsPrice } from './openai-descriptor.js';
8
+ export { createOpenAiDecisionsTransport } from '../transport/openai-decisions.js';
9
+ export { discoverDecisionEvaluator, decisionExecutionDigest, decisionQualificationScope } from './qualification.js';
10
+ export { assessDecisionCalibration } from './assessment.js';
11
+ export { recordDecisionAssessmentRow, decisionAssessmentCapacity } from './assessment-recording.js';
6
12
  //# sourceMappingURL=host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/decision/host.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/decision/host.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAWlF,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
@@ -8,5 +8,7 @@ export { createRemoteDecisionClient } from './client.js';
8
8
  export { validateDecisionResult } from './validate-result.js';
9
9
  export type { RemoteDecisionClientOptions } from './client.js';
10
10
  export type { ResolvedDecisionCriterion } from './descriptor.js';
11
+ export type { DecisionEvaluatorDiscovery, DecisionOperatingPolicy, DecisionQualificationScope } from './qualification.js';
12
+ export type { DecisionAssessmentReport } from './assessment-types.js';
11
13
  export type { DecisionValidationContext, DecisionValidationProfile, DecisionValidationSemantics, DecisionValidationScoreSemantics, DecisionValidationConfidenceSemantics, DecisionRegisteredResolution, DirectDecisionCriterion, DecisionValidationContextResolver } from './validation-context.js';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decision/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnI,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/E,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAC1G,YAAY,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,2BAA2B,EAC7F,gCAAgC,EAAE,qCAAqC,EAAE,4BAA4B,EACrG,uBAAuB,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decision/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnI,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/E,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAC1G,YAAY,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC1H,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,2BAA2B,EAC7F,gCAAgC,EAAE,qCAAqC,EAAE,4BAA4B,EACrG,uBAAuB,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"jev-response.d.ts","sourceRoot":"","sources":["../../src/decision/jev-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAMpD,eAAO,MAAM,aAAa,UAAW,OAAO,KAAG,MAAM,GAAG,IACc,CAAC;AAGvE,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,2BAA2B,EACrH,SAAS,CAAC,EAAE,OAAO,GAAG,qBAAqB,CA6B5C"}
1
+ {"version":3,"file":"jev-response.d.ts","sourceRoot":"","sources":["../../src/decision/jev-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAMpD,eAAO,MAAM,aAAa,UAAW,OAAO,KAAG,MAAM,GAAG,IACc,CAAC;AAGvE,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,2BAA2B,EACrH,SAAS,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAiC5C"}
@@ -22,7 +22,7 @@ export function decodeJevResponse(candidate, request, descriptor, requestId) {
22
22
  const usage = parseDecisionUsage({ tokens: { input: token(input), output: token(output),
23
23
  total: total === null ? token(null) : { value: total, source: 'derived-sum' } },
24
24
  evaluatorCalls: answered ? 1 : null, explanations: answered ? 0 : null }) ?? unreportedDecisionUsage('unknown');
25
- const identityMatches = servedModelId !== null && descriptor.qualification.servedIdentity === 'qualified'
25
+ const identityMatches = servedModelId !== null
26
26
  && descriptor.acceptedServedModelIds.includes(servedModelId);
27
27
  const evidence = { usage, servedModelId, servedEvaluator: identityMatches ? { ...descriptor.evaluator } : null,
28
28
  ...(providerRequestId === null ? {} : { providerRequestId }) };
@@ -35,7 +35,11 @@ export function decodeJevResponse(candidate, request, descriptor, requestId) {
35
35
  }
36
36
  if (!answered)
37
37
  return { ok: false, error: createDecisionError('VERDICT_INVALID', 'parse'), ...evidence };
38
- const verdict = decodeJevVerdict(body.answers.verdict, request, descriptor);
38
+ const answer = body.answers.verdict;
39
+ if (!isRecord(answer) || !has(answer, 'type')) {
40
+ return { ok: false, error: createDecisionError('VERDICT_INVALID', 'parse'), ...evidence };
41
+ }
42
+ const verdict = decodeJevVerdict(answer, request, descriptor);
39
43
  return verdict.ok ? { ok: true, verdict: verdict.verdict, ...evidence }
40
44
  : { ok: false, error: createDecisionError(verdict.code, 'parse'), ...evidence };
41
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"jev-response.js","sourceRoot":"","sources":["../../src/decision/jev-response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jev-response.js","sourceRoot":"","sources":["../../src/decision/jev-response.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"jev-verdict.d.ts","sourceRoot":"","sources":["../../src/decision/jev-verdict.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC/G,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,2BAA2B,GAAG,gBAAgB,CAiDxI"}
1
+ {"version":3,"file":"jev-verdict.d.ts","sourceRoot":"","sources":["../../src/decision/jev-verdict.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC/G,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,2BAA2B,GAAG,gBAAgB,CAqDxI"}
@@ -10,8 +10,13 @@ export function decodeJevVerdict(candidate, request, descriptor) {
10
10
  const invalid = { ok: false, code: 'VERDICT_INVALID' };
11
11
  if (!snapshot.ok || !isRecord(snapshot.value))
12
12
  return invalid;
13
- const answer = snapshot.value;
13
+ const { type, ...answer } = snapshot.value;
14
14
  const { criterion } = encoded;
15
+ // The pinned System One wire includes a discriminator. Primitive projections
16
+ // used by host reconstruction omit it; a supplied discriminator is binding.
17
+ const expectedType = criterion.kind === 'binary' ? 'noul' : criterion.kind === 'graded' ? 'score' : 'choice';
18
+ if (Object.hasOwn(snapshot.value, 'type') && type !== expectedType)
19
+ return invalid;
15
20
  let score = null;
16
21
  let label = null;
17
22
  let confidence = null;
@@ -1 +1 @@
1
- {"version":3,"file":"jev-verdict.js","sourceRoot":"","sources":["../../src/decision/jev-verdict.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jev-verdict.js","sourceRoot":"","sources":["../../src/decision/jev-verdict.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { ProviderAdapter, ProviderRuntimeContext } from '../registry.js';
2
+ import type { GenerateRequest, GenerateResponse, StreamRequest, StreamResult } from '../generation.js';
3
+ import type { AuthInput } from '../auth.js';
4
+ import type { DecisionRequest } from './request.js';
5
+ import type { DecisionAdapterResult } from './adapter.js';
6
+ import type { DecisionEvaluatorDescriptor } from './descriptor.js';
7
+ import type { OpenAiDecisionsTransport } from '../transport/openai-decisions.js';
8
+ export interface OpenAiDecisionsAdapterOptions {
9
+ transport: OpenAiDecisionsTransport;
10
+ descriptor?: DecisionEvaluatorDescriptor;
11
+ }
12
+ /** Explicit native registration; ordinary OpenAI chat composition never acquires it. */
13
+ export declare class OpenAiDecisionsAdapter implements ProviderAdapter {
14
+ private readonly options;
15
+ readonly provider: {
16
+ providerId: "openai";
17
+ family: "openai";
18
+ label: string;
19
+ decisionOnly: true;
20
+ status: import("../providers.js").ProviderStatus;
21
+ capabilities: import("../capabilities.js").ProviderCapabilities;
22
+ };
23
+ readonly descriptor: DecisionEvaluatorDescriptor;
24
+ constructor(options: OpenAiDecisionsAdapterOptions);
25
+ listModels(): never[];
26
+ listEvaluators(): {
27
+ providerId: "openai" | "gemini" | "anthropic" | "mistral" | "cohere" | "gcp" | "local" | "muse" | "typesafe";
28
+ evaluatorId: string;
29
+ revision: string;
30
+ }[];
31
+ validateAuth(source?: AuthInput): {
32
+ ok: boolean;
33
+ };
34
+ generate(_request: GenerateRequest): Promise<GenerateResponse>;
35
+ stream(_request: StreamRequest): Promise<StreamResult>;
36
+ normalizeError(_error: unknown): {
37
+ providerId: "openai";
38
+ message: string;
39
+ retryable: boolean;
40
+ };
41
+ decision(request: DecisionRequest, context?: ProviderRuntimeContext & {
42
+ signal?: AbortSignal;
43
+ }): Promise<DecisionAdapterResult>;
44
+ }
45
+ export declare const createOpenAiDecisionsAdapter: (options: OpenAiDecisionsAdapterOptions) => OpenAiDecisionsAdapter;
46
+ //# sourceMappingURL=openai-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-adapter.d.ts","sourceRoot":"","sources":["../../src/decision/openai-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AASjF,MAAM,WAAW,6BAA6B;IAAG,SAAS,EAAE,wBAAwB,CAAC;IAAC,UAAU,CAAC,EAAE,2BAA2B,CAAA;CAAE;AAChI,wFAAwF;AACxF,qBAAa,sBAAuB,YAAW,eAAe;IAIhD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,QAAQ,CAAC,QAAQ;;;;;;;MACqE;IACtF,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;gBACpB,OAAO,EAAE,6BAA6B;IAWnE,UAAU;IACV,cAAc;;;;;IACd,YAAY,CAAC,MAAM,CAAC,EAAE,SAAS;;;IAKzB,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAC5D,cAAc,CAAC,MAAM,EAAE,OAAO;;;;;IACxB,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAqBtI;AACD,eAAO,MAAM,4BAA4B,YAAa,6BAA6B,KAAG,sBAA6D,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { getSecretAuthMaterial } from '../auth.js';
2
+ import { getProviderProfile } from '../catalog.js';
3
+ import { openAiDecisionsDescriptor } from './openai-descriptor.js';
4
+ import { parseDecisionEvaluatorDescriptor } from './descriptor-validation.js';
5
+ import { encodeOpenAiDecisionsRequest, decodeOpenAiDecisionsResponse } from './openai-codec.js';
6
+ import { createDecisionError } from './errors.js';
7
+ import { unreportedDecisionUsage } from './receipt.js';
8
+ import { isRecord, snapshotBoundedJson } from './validation.js';
9
+ import { canExecuteDecisionCandidate } from './qualification.js';
10
+ /** Explicit native registration; ordinary OpenAI chat composition never acquires it. */
11
+ export class OpenAiDecisionsAdapter {
12
+ options;
13
+ provider = { ...getProviderProfile('typesafe'), providerId: 'openai',
14
+ family: 'openai', label: 'OpenAI Decisions', decisionOnly: true };
15
+ descriptor;
16
+ constructor(options) {
17
+ this.options = options;
18
+ const descriptor = parseDecisionEvaluatorDescriptor(options.descriptor ?? openAiDecisionsDescriptor);
19
+ if (!descriptor || descriptor.protocol !== 'openai-decisions' || descriptor.evaluator.providerId !== 'openai'
20
+ || descriptor.wireModel !== 'gpt-6-luna' || descriptor.nativeDecision || descriptor.maxBillableOutputTokens !== 0
21
+ || descriptor.compilation.readout !== 'openai-decisions-v1'
22
+ || descriptor.compilation.templateDigest !== openAiDecisionsDescriptor.compilation.templateDigest
23
+ || descriptor.compilation.schemaDigest !== openAiDecisionsDescriptor.compilation.schemaDigest
24
+ || descriptor.definition.validationProfile.profile !== 'native-distribution-v1'
25
+ || descriptor.definition.validationProfile.version !== 'v1')
26
+ throw new Error('Invalid OpenAI Decisions descriptor.');
27
+ this.descriptor = descriptor;
28
+ }
29
+ listModels() { return []; }
30
+ listEvaluators() { return [{ ...this.descriptor.evaluator }]; }
31
+ validateAuth(source) {
32
+ const auth = getSecretAuthMaterial(source);
33
+ return { ok: auth?.type === 'environment-token' && auth.envVar === 'OPENAI_API_KEY' && typeof auth.token === 'string'
34
+ && auth.token.trim().length > 0 && auth.token === auth.token.trim() && !/[\r\n]/.test(auth.token) };
35
+ }
36
+ async generate(_request) { throw new Error('Decisions does not support chat.'); }
37
+ async stream(_request) { throw new Error('Decisions does not support chat.'); }
38
+ normalizeError(_error) { return { providerId: 'openai', message: 'Decisions operation failed.', retryable: false }; }
39
+ async decision(request, context) {
40
+ const empty = { usage: unreportedDecisionUsage('not-dispatched'), servedEvaluator: null, servedModelId: null };
41
+ const failed = (code, phase = 'preflight') => ({ ok: false, error: createDecisionError(code, phase), ...empty,
42
+ ...(phase === 'dispatch' ? { usage: unreportedDecisionUsage('unknown') } : {}) });
43
+ const encoded = encodeOpenAiDecisionsRequest(request, this.descriptor);
44
+ if (!encoded.ok)
45
+ return failed(encoded.code);
46
+ if (!canExecuteDecisionCandidate(this.descriptor))
47
+ return failed('PROVIDER_UNAVAILABLE');
48
+ const auth = getSecretAuthMaterial(context?.auth);
49
+ if (!this.validateAuth(context?.auth).ok || auth?.type !== 'environment-token' || !auth.token)
50
+ return failed('CREDENTIAL_MISSING');
51
+ try {
52
+ const result = await this.options.transport.send(encoded.bodyJson, auth.token, { signal: context?.signal, timeoutMs: encoded.request.policy?.timeoutMs });
53
+ if (!result.ok)
54
+ return { ...failed(result.error.code, 'dispatch'), error: result.error };
55
+ const snapshot = snapshotBoundedJson(result.body);
56
+ const body = snapshot.ok ? snapshot.value : null;
57
+ if (isRecord(body) && typeof body.model === 'string' && body.model.includes(auth.token))
58
+ body.model = null;
59
+ return decodeOpenAiDecisionsResponse(body, encoded.request, this.descriptor, result.providerRequestId?.includes(auth.token) ? undefined : result.providerRequestId);
60
+ }
61
+ catch {
62
+ return failed('TRANSPORT_FAILED', 'dispatch');
63
+ }
64
+ }
65
+ }
66
+ export const createOpenAiDecisionsAdapter = (options) => new OpenAiDecisionsAdapter(options);
67
+ //# sourceMappingURL=openai-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-adapter.js","sourceRoot":"","sources":["../../src/decision/openai-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { DecisionRequest } from './request.js';
2
+ import type { DecisionEvaluatorDescriptor } from './descriptor.js';
3
+ import type { DecisionAdapterResult } from './adapter.js';
4
+ export { encodeOpenAiDecisionsRequest } from './openai-request.js';
5
+ /** Independently validate usage and identity even when the named answer is refused. */
6
+ export declare function decodeOpenAiDecisionsResponse(candidate: unknown, request: DecisionRequest, descriptor: DecisionEvaluatorDescriptor, requestId?: unknown): DecisionAdapterResult;
7
+ //# sourceMappingURL=openai-codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-codec.d.ts","sourceRoot":"","sources":["../../src/decision/openai-codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAO1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAInE,uFAAuF;AACvF,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EACxF,UAAU,EAAE,2BAA2B,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,qBAAqB,CA0CrF"}
@@ -0,0 +1,60 @@
1
+ import { createDecisionError } from './errors.js';
2
+ import { unreportedDecisionUsage } from './receipt.js';
3
+ import { sanitizeJevId } from './jev-response.js';
4
+ import { hasOnlyKeys, isRecord, snapshotBoundedJson } from './validation.js';
5
+ import { encodeOpenAiDecisionsRequest } from './openai-request.js';
6
+ import { decodeOpenAiDecisionsVerdict } from './openai-verdict.js';
7
+ export { encodeOpenAiDecisionsRequest } from './openai-request.js';
8
+ const count = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
9
+ /** Independently validate usage and identity even when the named answer is refused. */
10
+ export function decodeOpenAiDecisionsResponse(candidate, request, descriptor, requestId) {
11
+ const snapshot = snapshotBoundedJson(candidate);
12
+ const body = snapshot.ok && isRecord(snapshot.value) ? snapshot.value : null;
13
+ const native = isRecord(body?.usage) ? body.usage : {};
14
+ const input = count(native.input_tokens) ? native.input_tokens : null;
15
+ const output = count(native.output_tokens) ? native.output_tokens : null;
16
+ const sum = input !== null && output !== null && count(input + output) ? input + output : null;
17
+ const token = (value) => value === null ? { value: null, source: 'not-reported' }
18
+ : { value, source: 'provider' };
19
+ const usage = unreportedDecisionUsage('unknown');
20
+ usage.tokens = { input: token(input), output: token(output), total: token(count(native.total_tokens) && native.total_tokens === sum ? sum : null) };
21
+ const answered = Array.isArray(body?.answers) && body.answers.length === 1 && isRecord(body.answers[0]) && body.answers[0].name === 'verdict';
22
+ usage.evaluatorCalls = answered ? 1 : null;
23
+ usage.explanations = answered ? 0 : null;
24
+ const servedModelId = sanitizeJevId(body?.model);
25
+ const matched = servedModelId !== null
26
+ && descriptor.acceptedServedModelIds.includes(servedModelId);
27
+ const providerRequestId = sanitizeJevId(requestId);
28
+ const evidence = { usage, servedModelId, servedEvaluator: matched ? { ...descriptor.evaluator } : null,
29
+ ...(providerRequestId ? { providerRequestId } : {}) };
30
+ const failed = (code) => {
31
+ // Contradictory or unpriced details invalidate the counters as billing evidence.
32
+ if (code === 'USAGE_INVALID')
33
+ usage.tokens = unreportedDecisionUsage('unknown').tokens;
34
+ return { ok: false, error: createDecisionError(code, 'parse'), ...evidence };
35
+ };
36
+ if (!body || !hasOnlyKeys(body, ['model', 'answers', 'usage']))
37
+ return failed('VERDICT_INVALID');
38
+ if (!matched)
39
+ return failed('SERVED_IDENTITY_MISMATCH');
40
+ const cache = native.input_tokens_details;
41
+ const reasoning = native.output_tokens_details;
42
+ if (input === null || output === null || sum === null || native.total_tokens !== sum
43
+ || !hasOnlyKeys(native, ['input_tokens', 'output_tokens', 'total_tokens', 'input_tokens_details', 'output_tokens_details'])
44
+ || !isRecord(cache) || !hasOnlyKeys(cache, ['cached_tokens', 'cache_write_tokens'])
45
+ || cache.cached_tokens !== 0 || cache.cache_write_tokens !== 0
46
+ || !isRecord(reasoning) || !hasOnlyKeys(reasoning, ['reasoning_tokens'])
47
+ || !count(reasoning.reasoning_tokens) || reasoning.reasoning_tokens > output)
48
+ return failed('USAGE_INVALID');
49
+ if (!answered)
50
+ return failed('VERDICT_INVALID');
51
+ const answer = body.answers[0];
52
+ if (answer.type === 'refusal')
53
+ return failed(hasOnlyKeys(answer, ['name', 'type']) ? 'PROVIDER_REJECTED' : 'VERDICT_INVALID');
54
+ const encoded = encodeOpenAiDecisionsRequest(request, descriptor);
55
+ if (!encoded.ok)
56
+ return failed(encoded.code);
57
+ const verdict = decodeOpenAiDecisionsVerdict(answer, encoded.request, encoded.criterion, descriptor);
58
+ return verdict ? { ok: true, verdict, ...evidence } : failed('VERDICT_INVALID');
59
+ }
60
+ //# sourceMappingURL=openai-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-codec.js","sourceRoot":"","sources":["../../src/decision/openai-codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { DecisionEvaluatorDescriptor } from './descriptor.js';
2
+ import type { DecisionPrice } from './pricing.js';
3
+ /** Documented candidate only. Account entitlement and stable selection are unverified. */
4
+ export declare const openAiDecisionsDescriptor: DecisionEvaluatorDescriptor;
5
+ /** Published standard/no-cache rate projection; the host must supply its authoritative row. */
6
+ export declare const openAiDecisionsPrice: DecisionPrice;
7
+ //# sourceMappingURL=openai-descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-descriptor.d.ts","sourceRoot":"","sources":["../../src/decision/openai-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAKlD,0FAA0F;AAC1F,eAAO,MAAM,yBAAyB,EAAE,2BAmBvC,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,oBAAoB,EAAE,aAIlC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { digestStructuredArtifact } from './validation.js';
2
+ const contract = 'openai-decisions-v1';
3
+ const digest = (value) => digestStructuredArtifact(value);
4
+ /** Documented candidate only. Account entitlement and stable selection are unverified. */
5
+ export const openAiDecisionsDescriptor = {
6
+ evaluator: { providerId: 'openai', evaluatorId: 'gpt-6-luna-decisions', revision: 'gpt-6-luna-decisions-v1-unqualified' },
7
+ protocol: 'openai-decisions', wireModel: 'gpt-6-luna', acceptedServedModelIds: [],
8
+ qualification: { servedIdentity: 'unqualified', billingBound: 'unqualified', evidenceRefs: [] },
9
+ maxBillableInputTokens: 2048, maxBillableOutputTokens: 0,
10
+ maxRequestBytes: 256 * 1024, maxStateQuestionBytes: 32 * 1024,
11
+ probabilityTolerance: 1e-4, scoreNativeKeys: 'index-string', nativeDecision: false,
12
+ confidence: { meaning: 'provider-confidence',
13
+ meaningRef: 'https://developers.openai.com/api/docs/guides/decisions#interpret-the-answers', min: 0, max: 1 },
14
+ compilation: { templateDigest: digest({ contract, input: 'json-data', question: 'verdict', cache: 'disabled' }),
15
+ schemaDigest: digest({ contract, answers: ['predicate', 'choice', 'score', 'refusal'] }), readout: contract },
16
+ definition: { validationProfile: { profile: 'native-distribution-v1', version: 'v1' },
17
+ kinds: ['binary', 'choice', 'graded'].map((kind) => ({ kind, schemaDigest: digest({ contract, kind }) })),
18
+ evidenceRequirements: ['served-identity', 'reported-usage', 'one-named-answer'],
19
+ executionDigest: digest({ contract, attempts: 1, cache: 'disabled', maxBillableInputTokens: 2048, maxBillableOutputTokens: 0 }),
20
+ bundleDigest: digest({ contract, qualification: 'unqualified', sourceDate: '2026-10-26' }) },
21
+ priceProtocol: { authority: 'control.model_pricing', revision: 'openai-decisions-standard-no-cache-2026-10-26' },
22
+ registeredCriteria: [], retention: { status: 'unknown', basis: 'published-policy', retentionDays: null,
23
+ gap: 'unknown (source-gap)', evidenceRefs: ['https://developers.openai.com/api/docs/guides/your-data'] },
24
+ };
25
+ /** Published standard/no-cache rate projection; the host must supply its authoritative row. */
26
+ export const openAiDecisionsPrice = {
27
+ providerId: 'openai', modelId: 'gpt-6-luna', ...{ priceRevision: openAiDecisionsDescriptor.priceProtocol.revision },
28
+ authority: 'control.model_pricing', protocol: 'openai-decisions', inputMicroUsdPerMtok: '100000',
29
+ outputMicroUsdPerMtok: '0', minimumMicroUsd: '0', identityMismatchPricing: 'requires-reconciliation',
30
+ };
31
+ //# sourceMappingURL=openai-descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-descriptor.js","sourceRoot":"","sources":["../../src/decision/openai-descriptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { DecisionRequest } from './request.js';
2
+ import type { DecisionEvaluatorDescriptor, ResolvedDecisionCriterion } from './descriptor.js';
3
+ import type { DecisionErrorCode } from './errors.js';
4
+ export type OpenAiDecisionsEncoding = {
5
+ ok: true;
6
+ request: DecisionRequest;
7
+ criterion: ResolvedDecisionCriterion;
8
+ bodyJson: string;
9
+ } | {
10
+ ok: false;
11
+ code: DecisionErrorCode;
12
+ };
13
+ /** Dedicated one-question protocol; evidence stays in input data, never in instructions. */
14
+ export declare function encodeOpenAiDecisionsRequest(candidate: unknown, descriptor: DecisionEvaluatorDescriptor): OpenAiDecisionsEncoding;
15
+ //# sourceMappingURL=openai-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-request.d.ts","sourceRoot":"","sources":["../../src/decision/openai-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,uBAAuB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,yBAAyB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAChI;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAE3C,4FAA4F;AAC5F,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,2BAA2B,GAAG,uBAAuB,CA0BjI"}
@@ -0,0 +1,33 @@
1
+ import { parseDecisionRequest } from './request.js';
2
+ /** Dedicated one-question protocol; evidence stays in input data, never in instructions. */
3
+ export function encodeOpenAiDecisionsRequest(candidate, descriptor) {
4
+ const parsed = parseDecisionRequest(candidate);
5
+ if (!parsed.ok)
6
+ return parsed;
7
+ const request = parsed.request;
8
+ if (descriptor.protocol !== 'openai-decisions' || request.evaluator.providerId !== descriptor.evaluator.providerId
9
+ || request.evaluator.evaluatorId !== descriptor.evaluator.evaluatorId)
10
+ return { ok: false, code: 'EVALUATOR_UNKNOWN' };
11
+ if (request.evaluator.revision !== descriptor.evaluator.revision)
12
+ return { ok: false, code: 'REVISION_MISMATCH' };
13
+ const ref = request.criterion;
14
+ const criterion = ref.kind === 'registered' ? descriptor.registeredCriteria.find((entry) => entry.criteriaId === ref.criteriaId && entry.revision === ref.revision)?.criterion : ref;
15
+ if (!criterion || (criterion.kind === 'choice' && (criterion.options.length < 2 || criterion.options.length > 255))
16
+ || (criterion.kind === 'graded' && (criterion.levels.length < 2 || criterion.levels.length > 10))
17
+ || request.policy?.explanation === 'required' || request.decision?.kind === 'provider')
18
+ return { ok: false, code: 'CAPABILITY_UNSUPPORTED' };
19
+ const question = { name: 'verdict', instructions: criterion.kind === 'binary' && criterion.criteria
20
+ ? JSON.stringify({ instructions: criterion.instructions, criteria: criterion.criteria }) : criterion.instructions,
21
+ type: criterion.kind === 'binary' ? 'predicate' : criterion.kind === 'graded' ? 'score' : 'choice',
22
+ ...(criterion.kind === 'choice' ? { choices: criterion.options.map((option) => ({ value: option.id, description: option.description })) } : {}),
23
+ ...(criterion.kind === 'graded' ? { levels: criterion.levels.map((level) => ({ label: level.label, description: level.description })) } : {}) };
24
+ const input = JSON.stringify(request.inputs);
25
+ // Explicit mode without breakpoints disables the currently documented implicit cache.
26
+ const bodyJson = JSON.stringify({ model: descriptor.wireModel, input, questions: [question], prompt_cache_options: { mode: 'explicit' } });
27
+ const bytes = (value) => new TextEncoder().encode(value).byteLength;
28
+ if (bytes(bodyJson) > descriptor.maxRequestBytes || bytes(input) + bytes(JSON.stringify(question)) > descriptor.maxStateQuestionBytes) {
29
+ return { ok: false, code: 'REQUEST_INVALID' };
30
+ }
31
+ return { ok: true, request, criterion, bodyJson };
32
+ }
33
+ //# sourceMappingURL=openai-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-request.js","sourceRoot":"","sources":["../../src/decision/openai-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAOpD,4FAA4F;AAC5F,MAAM,UAAU,4BAA4B,CAAC,SAAkB,EAAE,UAAuC;IACtG,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,UAAU,CAAC,QAAQ,KAAK,kBAAkB,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,CAAC,SAAS,CAAC,UAAU;WAC7G,OAAO,CAAC,SAAS,CAAC,WAAW,KAAK,UAAU,CAAC,SAAS,CAAC,WAAW;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;IACzH,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC,SAAS,CAAC,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAClH,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACzF,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3F,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;WAC9G,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;WAC9F,OAAO,CAAC,MAAM,EAAE,WAAW,KAAK,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IAC/I,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ;YACjG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY;QACjH,IAAI,EAAE,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;QAClG,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/I,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAClJ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,sFAAsF;IACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3I,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;IAC5E,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,eAAe,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACtI,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DecisionRequest } from './request.js';
2
+ import type { DecisionEvaluatorDescriptor, ResolvedDecisionCriterion } from './descriptor.js';
3
+ import type { DecisionValidationContext } from './validation-context.js';
4
+ import type { DecisionVerdict } from './verdict.js';
5
+ /** Trusted native semantics projection, shared by decode and host reconstruction. */
6
+ export declare function openAiDecisionsContext(request: DecisionRequest, criterion: ResolvedDecisionCriterion, descriptor: DecisionEvaluatorDescriptor): DecisionValidationContext;
7
+ /** Closed vendor codec. Typed choice values are never coerced into string IDs. */
8
+ export declare function decodeOpenAiDecisionsVerdict(answer: unknown, request: DecisionRequest, criterion: ResolvedDecisionCriterion, descriptor: DecisionEvaluatorDescriptor): DecisionVerdict | null;
9
+ //# sourceMappingURL=openai-verdict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-verdict.d.ts","sourceRoot":"","sources":["../../src/decision/openai-verdict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKpD,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,yBAAyB,EACnG,UAAU,EAAE,2BAA2B,GAAG,yBAAyB,CAUpE;AAED,kFAAkF;AAClF,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EACpF,SAAS,EAAE,yBAAyB,EAAE,UAAU,EAAE,2BAA2B,GAAG,eAAe,GAAG,IAAI,CA4CvG"}