@fourier-labs/harbour-contracts 0.97.0 → 0.98.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contract-release.json +23 -23
- package/dist/gen-ts/ai-governance-decision.d.ts +1 -0
- package/dist/gen-ts/ai-policy-snapshot.d.ts +7 -3
- package/dist/gen-ts/ai-pricing-revision.d.ts +1 -1
- package/dist/gen-ts/ai-runtime-contract.d.ts +1 -0
- package/dist/gen-ts/ai-trace-event.d.ts +2 -2
- package/dist/gen-ts/binding-classification-subject.d.ts +1 -1
- package/dist/gen-ts/contract-release.d.ts +6 -6
- package/dist/gen-ts/contract-release.js +6 -6
- package/dist/gen-ts/deploy-request.d.ts +2 -2
- package/dist/gen-ts/promotion-request.d.ts +2 -2
- package/dist/gen-ts/sanitized-binding-evidence.d.ts +1 -1
- package/dist/resolver/index.d.ts +2 -1
- package/dist/resolver/index.js +6 -6
- package/gen-ts/ai-governance-decision.ts +1 -0
- package/gen-ts/ai-policy-snapshot.ts +34 -3
- package/gen-ts/ai-pricing-revision.ts +11 -1
- package/gen-ts/ai-runtime-contract.ts +1 -0
- package/gen-ts/ai-trace-event.ts +22 -2
- package/gen-ts/binding-classification-subject.ts +1 -1
- package/gen-ts/contract-release.ts +6 -6
- package/gen-ts/deploy-request.ts +4 -2
- package/gen-ts/promotion-request.ts +4 -2
- package/gen-ts/sanitized-binding-evidence.ts +1 -1
- package/package.json +1 -1
- package/schema/ai-governance-decision.schema.json +2 -1
- package/schema/ai-policy-snapshot.schema.json +5 -4
- package/schema/ai-pricing-revision.schema.json +1 -1
- package/schema/ai-runtime-contract.schema.json +2 -1
- package/schema/ai-trace-event.schema.json +2 -2
- package/schema/binding-classification-subject.schema.json +1 -1
- package/schema/sanitized-binding-evidence.schema.json +1 -1
package/contract-release.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "harbour.contract-release/1.0",
|
|
3
|
-
"repositoryVersion": "0.
|
|
4
|
-
"publishVersion": "0.
|
|
5
|
-
"publishTag": "v0.
|
|
6
|
-
"schemasDigest": "sha256:
|
|
3
|
+
"repositoryVersion": "0.98.0.0",
|
|
4
|
+
"publishVersion": "0.98.0",
|
|
5
|
+
"publishTag": "v0.98.0",
|
|
6
|
+
"schemasDigest": "sha256:c5ae6c789021697c7e00bf65bb1f072b4d8a61f151a9b31e1a74486992c6c196",
|
|
7
7
|
"aiFixturesDigest": "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6",
|
|
8
|
-
"generatedGoDigest": "sha256:
|
|
9
|
-
"generatedTypeScriptDigest": "sha256:
|
|
8
|
+
"generatedGoDigest": "sha256:d8ea139537eae467b12402fac22e1a44f4e6dc50cad71e02a0083dfa6b63ee3d",
|
|
9
|
+
"generatedTypeScriptDigest": "sha256:95a22d7dd80f7a020e556f42a1b269a13bad0168f2872a96500deb4a184720d1",
|
|
10
10
|
"generatedExclusions": {
|
|
11
11
|
"gen-go/contract_release.go": "contains the generated aggregate digests (self-reference)",
|
|
12
12
|
"gen-ts/contract-release.ts": "contains the generated aggregate digests (self-reference)"
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
"schema/ai-deployment-gate-decision.schema.json": "sha256:bae1bdf91777b9a78f8da5a29f06b5de7f1e235789cf16b1bb507e85ad0243ff",
|
|
20
20
|
"schema/ai-gateway-key-lifecycle-event.schema.json": "sha256:ba5cb862abe73227bee714b25247b4cacb34f11fdd1476bb5f920923fd75e2a9",
|
|
21
21
|
"schema/ai-gateway-key-lookup.schema.json": "sha256:7d362ded73c0da6b433f3c73afeabea4c38c5d6fc92c391c7ded727324deddf2",
|
|
22
|
-
"schema/ai-governance-decision.schema.json": "sha256:
|
|
22
|
+
"schema/ai-governance-decision.schema.json": "sha256:0b7bffb67306087eea0f80a0a15c748e206a6e0df7184d77bf13eae8cf2a7047",
|
|
23
23
|
"schema/ai-metering-policy.schema.json": "sha256:044115938d254d914feac162219d20ee48f741cd7ad32df4613b45f9c862fe8c",
|
|
24
|
-
"schema/ai-policy-snapshot.schema.json": "sha256:
|
|
25
|
-
"schema/ai-pricing-revision.schema.json": "sha256:
|
|
24
|
+
"schema/ai-policy-snapshot.schema.json": "sha256:e1b1c5f3006b2ff19e3f374e77a6bd107fd93b7c09e6cdecf87ecd45300ca88f",
|
|
25
|
+
"schema/ai-pricing-revision.schema.json": "sha256:a507c5b3d186e2dcf197715a88ee0365807e9952f402ad5f98b88ee40ae10892",
|
|
26
26
|
"schema/ai-runtime-binding.schema.json": "sha256:e99f983e78478b50114e0b2c940bb5bb30a4645cfd7fbddb7e0cf161d6d28502",
|
|
27
|
-
"schema/ai-runtime-contract.schema.json": "sha256:
|
|
27
|
+
"schema/ai-runtime-contract.schema.json": "sha256:02e0d919de3bdc1823cd51b9c0cb51ee6ecb5f4bd5c242d3ecb962e8055c90c7",
|
|
28
28
|
"schema/ai-trace-event-v2.schema.json": "sha256:b479199bb6e44ea23a1da53f69943cb8f3886c433914fdb9bf9e9bdbc3dd767d",
|
|
29
|
-
"schema/ai-trace-event.schema.json": "sha256:
|
|
29
|
+
"schema/ai-trace-event.schema.json": "sha256:d3834d8066880a7021f0d63e0042e874a8399c290b41b2c9873ff81f318a2308",
|
|
30
30
|
"schema/ai-transform-event.schema.json": "sha256:b845762e653b19afdaf959f7bd1624db490cd10c760daa9aaa61fb83f2a86b6e",
|
|
31
31
|
"schema/ai-transform-result.schema.json": "sha256:244e380a36957ab2dcb526ea22aaecb56b53664ce1fda6934d0021c084c99133",
|
|
32
32
|
"schema/ai-verification-evidence.schema.json": "sha256:bdbc762df256d2a8dd0bdda60d4d13915ce40034cd756af9515871d145f10ad9",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"schema/app-integrations-declaration.schema.json": "sha256:ae22b89a3ff17b6720e7eaa2b9062d09bfb9bde479b97c74e290984e94a4270b",
|
|
35
35
|
"schema/app-sign-in.schema.json": "sha256:2093740131b84a69757c2e474d16e32ff5d0bf0edd6f6f8de62ede7f82988f29",
|
|
36
36
|
"schema/artifact-contract.schema.json": "sha256:8047b461a1c6d07bbe867a259c57bdf5cc0fdf282cf842ec7b683a9e93713b10",
|
|
37
|
-
"schema/binding-classification-subject.schema.json": "sha256:
|
|
37
|
+
"schema/binding-classification-subject.schema.json": "sha256:94028f6914ee7b657824accba27330cf7f5e4e94fd8ed1c2b95521037f49f377",
|
|
38
38
|
"schema/builder-input-proposal.schema.json": "sha256:fe85cffa6d76b1e1effe1f5d75525f8fe0e1eaa3be4a304e491aa23ad72c0e72",
|
|
39
39
|
"schema/data-dependency.schema.json": "sha256:b4cc2b2484e982cfed64c0f56b8f1e9d1363c71854cd71f845b24fbe7d85c971",
|
|
40
40
|
"schema/data-grant-v2.schema.json": "sha256:3e3c6ef3d3b68b40479b6c15b79c5b0960b8270b84c9b5d17f59365c47512534",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"schema/promotion-response.schema.json": "sha256:4129712d2e29d6ef21d93d4bd0bacfd60ada3f2ee0ade852824e64346b817634",
|
|
70
70
|
"schema/resolved-app-serving.schema.json": "sha256:3b49268e189429310c2a5dcfd45e9d2187c80b6dbb9d329a0177e96e065c31c0",
|
|
71
71
|
"schema/saas-connection.schema.json": "sha256:2f3fa1cc2ab40105a46ad5f446dd30c7c8b723c776bd6e5886d8285b55af32b1",
|
|
72
|
-
"schema/sanitized-binding-evidence.schema.json": "sha256:
|
|
72
|
+
"schema/sanitized-binding-evidence.schema.json": "sha256:8aca62c4955771aa379574d3e7f78267c9c4f8018f637ed3f1feb2e47d1bf31b",
|
|
73
73
|
"schema/secret-reference.schema.json": "sha256:db4e3c2c6a2dbd72d7ea0f9c91cb3b2343a7e67b601996c6818b2ef08e440895",
|
|
74
74
|
"schema/security-scan-input-v2.schema.json": "sha256:0d418342078c9b5046ea6f4bef3c2c57539285dfee99cc0850d4f0d03739ee13",
|
|
75
75
|
"schema/security-verdict.schema.json": "sha256:f4a1c109ed27779374c52daccb0a96589613db4f3cf030a8b0e4713bf1b3dbff",
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
"gen-go/integration_execute_input_rules_test.go": "sha256:bc107e6c638512d9a3ffbc98800c181f642d8310bad96f2a528f493cc243b249",
|
|
119
119
|
"gen-go/integration_operations.go": "sha256:b53b3cd092908db26db28e17fb035dfaeb476d922b6a3930eb9614267cb806f0",
|
|
120
120
|
"gen-go/schema_documents.go": "sha256:c19c0d540f602ee997a84b90e20702d9bc63ed7d27aec267e76c04655fc182e0",
|
|
121
|
-
"gen-go/types.go": "sha256:
|
|
121
|
+
"gen-go/types.go": "sha256:3eff8027970500245559d3cfd3aea2b4ee763e8c0e116d1c730138cbe844205a",
|
|
122
122
|
"gen-go/version_state.go": "sha256:4ef8abb126414c0025cf2c59bc9c79a74ef4a2ff89e8f316cbf05acc872371c1"
|
|
123
123
|
},
|
|
124
124
|
"generatedTypeScript": {
|
|
@@ -131,14 +131,14 @@
|
|
|
131
131
|
"gen-ts/ai-gateway-key-lifecycle-event.ts": "sha256:8f1ab4774be1959e82c97da20ec8b293f3f10262f95393d2ae57e4c7817353cb",
|
|
132
132
|
"gen-ts/ai-gateway-key-lookup.ts": "sha256:21e1d9020b015272119af8419485aca40f5e075701aec23525906017c7b5eb66",
|
|
133
133
|
"gen-ts/ai-gateway-key-token.ts": "sha256:ff6551ad3332cc665878d7ec93f42ce185c375e637531b2fbc82c697b877e784",
|
|
134
|
-
"gen-ts/ai-governance-decision.ts": "sha256:
|
|
134
|
+
"gen-ts/ai-governance-decision.ts": "sha256:607806483ae210012cea76625b7b32f70a3d374d17e6187a27d719c7811b8b72",
|
|
135
135
|
"gen-ts/ai-metering-policy.ts": "sha256:dd261d57646a509cd46efaefac4aad58d018c7f7da98326dd8859e4ce951c56a",
|
|
136
|
-
"gen-ts/ai-policy-snapshot.ts": "sha256:
|
|
137
|
-
"gen-ts/ai-pricing-revision.ts": "sha256:
|
|
136
|
+
"gen-ts/ai-policy-snapshot.ts": "sha256:977299257cfd6d7cb64526adbe9c01d470874e533697a8a6bc3efd8933a557e4",
|
|
137
|
+
"gen-ts/ai-pricing-revision.ts": "sha256:48413adcf74e60390296f04bdc536f8c5469ca07f8aaa4449de2a1203e37ed66",
|
|
138
138
|
"gen-ts/ai-runtime-binding.ts": "sha256:3930989c01e2b90041b5a8f9eaf9d8612854c9088090ca82e5687b85f26e106f",
|
|
139
|
-
"gen-ts/ai-runtime-contract.ts": "sha256:
|
|
139
|
+
"gen-ts/ai-runtime-contract.ts": "sha256:9c252777abc88d154d1a8479dd22f268c6abda28669a0940aa0454868661bb46",
|
|
140
140
|
"gen-ts/ai-trace-event-v2.ts": "sha256:8c994355f290864da1cf42850c3eceb0e4a1567b45ed989de865213430d3ce0e",
|
|
141
|
-
"gen-ts/ai-trace-event.ts": "sha256:
|
|
141
|
+
"gen-ts/ai-trace-event.ts": "sha256:6d03ba7848c513a54bb230c138d213cdac7064ad439742e24c0640438335447d",
|
|
142
142
|
"gen-ts/ai-transform-event.ts": "sha256:c8b520e01ce12b0e3a5ebe03a3ca63cc83368f26e1eef933de732c4fc1c504f9",
|
|
143
143
|
"gen-ts/ai-transform-result.ts": "sha256:208c66b2aeb425c0cbcc18b7191f6e8989443f2b2c1690648e0e06cc1448ce25",
|
|
144
144
|
"gen-ts/ai-verification-evidence.ts": "sha256:979439d77f8b47631d1eb3b6c3c54ea6fec41089d2a51dc815fd370b1c4917fc",
|
|
@@ -147,13 +147,13 @@
|
|
|
147
147
|
"gen-ts/app-sign-in.ts": "sha256:bf88671c00e9d9badb5ffc961a7e803cf92cee5a98c2f6c9e3172bbf5aaf0424",
|
|
148
148
|
"gen-ts/artifact-contract.ts": "sha256:4a6dc6d2caaeed4bb2066cc8a333e6e09e5a0d4745e0b1038293d54ab9403aeb",
|
|
149
149
|
"gen-ts/binding-classification-digest-helper.ts": "sha256:40fc7d85b4c3f3ffc5caf7d7950c62d013c83ee42058c7453b2100d95817f167",
|
|
150
|
-
"gen-ts/binding-classification-subject.ts": "sha256:
|
|
150
|
+
"gen-ts/binding-classification-subject.ts": "sha256:69a6a9770f667948f7ac258c61a7c8267b774893a32de38eb00daeb3cc6220af",
|
|
151
151
|
"gen-ts/builder-input-proposal.ts": "sha256:b0108c3787873d3cf1a39f00967379418a6766275d3474cfa55f5a9d93ead174",
|
|
152
152
|
"gen-ts/data-dependency.ts": "sha256:259f19e2759395d72ead90b8ed74a6dcef0c2641124f4f182823138cfd19bedf",
|
|
153
153
|
"gen-ts/data-grant-v2.ts": "sha256:87a67c80fc191575ec516c4fa787b9a3f38c8933915a9f1a3edc268929229f0b",
|
|
154
154
|
"gen-ts/data-grant.ts": "sha256:2358579d8aa1e57b01a6f2b0eacce5531e7f21ef226404c9809925365e0d6155",
|
|
155
155
|
"gen-ts/data-source.ts": "sha256:2566f0d5c72e44278869f55211cf3d433aeb3552e57ae0ace0ff0b85e769dde6",
|
|
156
|
-
"gen-ts/deploy-request.ts": "sha256:
|
|
156
|
+
"gen-ts/deploy-request.ts": "sha256:9581295f0955caf443bb94bdbdd79f168856ad1fd61009002a729bc3483b113f",
|
|
157
157
|
"gen-ts/deploy-response.ts": "sha256:364d9f1acf32e491498237cdd3f402d5f8e102f208db7748034f4ec68c6a6137",
|
|
158
158
|
"gen-ts/deployment-app-registration.ts": "sha256:553583145f210d8ea20e5381054e428f61683a8bde3210f92c75ff16a0cddfb4",
|
|
159
159
|
"gen-ts/deployment-continuation.ts": "sha256:cc9f63af4d0da5086a79103789e4f043783b75b4ed11c6512f044439a551a79c",
|
|
@@ -182,12 +182,12 @@
|
|
|
182
182
|
"gen-ts/kit-lock.ts": "sha256:06bddeaf1e2c449c9cc0dbbc696210355a9005349c604d4050eb22385fb4c22e",
|
|
183
183
|
"gen-ts/kvs-routing-entry.ts": "sha256:d92e85ee9f257d77850d1d3aac9438e2055f38084ff84a48fcedae239d47d4ca",
|
|
184
184
|
"gen-ts/mail-arrival-event.ts": "sha256:deb342c7f930a2c7bf66a46e4c0973e3b9047cd9725e714ccaeab8c64a89d25f",
|
|
185
|
-
"gen-ts/promotion-request.ts": "sha256:
|
|
185
|
+
"gen-ts/promotion-request.ts": "sha256:ac87da1d4b43cc4418215fd26e154830a78b58dfa9a83ae0e7e073e50ccc871e",
|
|
186
186
|
"gen-ts/promotion-response.ts": "sha256:f1c9cafac96faeb02a443a31786f67714e818f38d90108e7af41958396524d6f",
|
|
187
187
|
"gen-ts/resolved-app-serving.ts": "sha256:3264e85827be47bf391781cb13a1e58318d356f7bee8c2ff3e5b00a062253b23",
|
|
188
188
|
"gen-ts/saas-connection.ts": "sha256:25480a015e27d8e49d68fabcb12e479118ab4a89aeac4e420acb54da3d807a0c",
|
|
189
189
|
"gen-ts/sanitized-binding-digest-helper.ts": "sha256:c47d7fdc20500e2e72c23fe39ecdd610fc397c47fcba51335ebec3c380fe6872",
|
|
190
|
-
"gen-ts/sanitized-binding-evidence.ts": "sha256:
|
|
190
|
+
"gen-ts/sanitized-binding-evidence.ts": "sha256:fb3c753ebba1caf71bc85afee13db27172c17208b89258880e46edc7169b2744",
|
|
191
191
|
"gen-ts/secret-reference.ts": "sha256:731fbcde7315cb4128d5b01bdbe6e6f248f13c7ad8dea04a3a4e927ac4890198",
|
|
192
192
|
"gen-ts/security-scan-input-v2.ts": "sha256:cccbfc5dae0ea5a328e6b15525ac190a0aae522e3220dffe7e6c80c445d54610",
|
|
193
193
|
"gen-ts/security-verdict.ts": "sha256:beef7e4e23b385f3b18579f43bb4eb92b19aeef9e5089f3e9a149bf0067be4e8",
|
|
@@ -90,7 +90,7 @@ export interface AiPolicyClassificationMinimum {
|
|
|
90
90
|
}
|
|
91
91
|
export interface AiPolicyProvider {
|
|
92
92
|
id: AiPolicyIdentifier;
|
|
93
|
-
provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
|
|
93
|
+
provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
94
94
|
baseUrl?: string;
|
|
95
95
|
credentialSecretRef: string;
|
|
96
96
|
enabled: boolean;
|
|
@@ -103,7 +103,7 @@ export interface AiPolicyModel {
|
|
|
103
103
|
* @minItems 1
|
|
104
104
|
* @maxItems 2
|
|
105
105
|
*/
|
|
106
|
-
capabilities: ('generation' | 'embeddings' | 'transcription' | 'translation' | 'speech' | 'image' | 'video' | 'realtime')[];
|
|
106
|
+
capabilities: ('generation' | 'embeddings' | 'transcription' | 'translation' | 'speech' | 'image' | 'video' | 'realtime' | 'document')[];
|
|
107
107
|
approved: boolean;
|
|
108
108
|
pricing: AiPolicyPricing;
|
|
109
109
|
/**
|
|
@@ -138,12 +138,16 @@ export interface AiPolicyPricing {
|
|
|
138
138
|
audio_characters?: number;
|
|
139
139
|
image_count?: number;
|
|
140
140
|
video_seconds?: number;
|
|
141
|
+
/**
|
|
142
|
+
* Price per page read by document OCR (ADR 0043).
|
|
143
|
+
*/
|
|
144
|
+
document_pages?: number;
|
|
141
145
|
};
|
|
142
146
|
}
|
|
143
147
|
export interface AiPolicyRoute {
|
|
144
148
|
alias: AiPolicyIdentifier;
|
|
145
149
|
version: number;
|
|
146
|
-
capability: 'generation' | 'embeddings' | 'transcription' | 'translation' | 'speech' | 'image' | 'video' | 'realtime';
|
|
150
|
+
capability: 'generation' | 'embeddings' | 'transcription' | 'translation' | 'speech' | 'image' | 'video' | 'realtime' | 'document';
|
|
147
151
|
/**
|
|
148
152
|
* @minItems 1
|
|
149
153
|
* @maxItems 16
|
|
@@ -6,7 +6,7 @@ export type AiPricingDigest = string;
|
|
|
6
6
|
export interface AiPricingRevision {
|
|
7
7
|
schema: 'harbour.ai-pricing-revision/2.0';
|
|
8
8
|
revisionId: AiPricingIdentifier;
|
|
9
|
-
provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
|
|
9
|
+
provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
10
10
|
providerModel: string;
|
|
11
11
|
region?: AiPricingIdentifier;
|
|
12
12
|
currency: 'USD';
|
|
@@ -14,7 +14,7 @@ export type AiTraceEvent = {
|
|
|
14
14
|
routeRevision?: string;
|
|
15
15
|
requestedModel?: string;
|
|
16
16
|
governedModelAlias?: string;
|
|
17
|
-
provider?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
|
|
17
|
+
provider?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
18
18
|
providerModel?: string;
|
|
19
19
|
outcome: 'succeeded' | 'blocked' | 'failed' | 'cancelled';
|
|
20
20
|
/**
|
|
@@ -45,7 +45,7 @@ export type AiTraceIdentifier = string;
|
|
|
45
45
|
export type AiTraceDigest = string;
|
|
46
46
|
export type AiTraceAttempt = {
|
|
47
47
|
attempt: number;
|
|
48
|
-
provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
|
|
48
|
+
provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
49
49
|
providerModel: string;
|
|
50
50
|
priceRevision: AiTraceIdentifier;
|
|
51
51
|
outcome: 'succeeded' | 'failed' | 'timed_out' | 'cancelled';
|
|
@@ -15,7 +15,7 @@ export type BindingClassificationEntry = {
|
|
|
15
15
|
category?: BindingClassificationCredentialCategory;
|
|
16
16
|
requestedAiMappingId?: BindingClassificationIdentifier;
|
|
17
17
|
};
|
|
18
|
-
export type BindingClassificationProviderId = 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
18
|
+
export type BindingClassificationProviderId = 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
19
19
|
/**
|
|
20
20
|
* Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
|
|
21
21
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare const ContractRepositoryVersion: "0.
|
|
2
|
-
export declare const ContractPublishVersion: "0.
|
|
3
|
-
export declare const ContractPublishTag: "v0.
|
|
4
|
-
export declare const ContractSchemasDigest: "sha256:
|
|
1
|
+
export declare const ContractRepositoryVersion: "0.98.0.0";
|
|
2
|
+
export declare const ContractPublishVersion: "0.98.0";
|
|
3
|
+
export declare const ContractPublishTag: "v0.98.0";
|
|
4
|
+
export declare const ContractSchemasDigest: "sha256:c5ae6c789021697c7e00bf65bb1f072b4d8a61f151a9b31e1a74486992c6c196";
|
|
5
5
|
export declare const ContractAiFixturesDigest: "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
|
|
6
|
-
export declare const ContractGeneratedGoDigest: "sha256:
|
|
7
|
-
export declare const ContractGeneratedTypeScriptDigest: "sha256:
|
|
6
|
+
export declare const ContractGeneratedGoDigest: "sha256:d8ea139537eae467b12402fac22e1a44f4e6dc50cad71e02a0083dfa6b63ee3d";
|
|
7
|
+
export declare const ContractGeneratedTypeScriptDigest: "sha256:95a22d7dd80f7a020e556f42a1b269a13bad0168f2872a96500deb4a184720d1";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
|
-
export const ContractRepositoryVersion = "0.
|
|
4
|
-
export const ContractPublishVersion = "0.
|
|
5
|
-
export const ContractPublishTag = "v0.
|
|
6
|
-
export const ContractSchemasDigest = "sha256:
|
|
3
|
+
export const ContractRepositoryVersion = "0.98.0.0";
|
|
4
|
+
export const ContractPublishVersion = "0.98.0";
|
|
5
|
+
export const ContractPublishTag = "v0.98.0";
|
|
6
|
+
export const ContractSchemasDigest = "sha256:c5ae6c789021697c7e00bf65bb1f072b4d8a61f151a9b31e1a74486992c6c196";
|
|
7
7
|
export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
|
|
8
|
-
export const ContractGeneratedGoDigest = "sha256:
|
|
9
|
-
export const ContractGeneratedTypeScriptDigest = "sha256:
|
|
8
|
+
export const ContractGeneratedGoDigest = "sha256:d8ea139537eae467b12402fac22e1a44f4e6dc50cad71e02a0083dfa6b63ee3d";
|
|
9
|
+
export const ContractGeneratedTypeScriptDigest = "sha256:95a22d7dd80f7a020e556f42a1b269a13bad0168f2872a96500deb4a184720d1";
|
|
@@ -21,7 +21,7 @@ export type DeployRequestEnvironmentBinding1 = {
|
|
|
21
21
|
type BindingClassificationEntry = {
|
|
22
22
|
kind: 'configuration' | 'secret' | 'provider_credential';
|
|
23
23
|
confidence: 'high' | 'low';
|
|
24
|
-
providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
24
|
+
providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
25
25
|
/**
|
|
26
26
|
* Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
|
|
27
27
|
*/
|
|
@@ -144,6 +144,6 @@ interface BindingClassificationSubject {
|
|
|
144
144
|
}
|
|
145
145
|
interface BindingClassificationAiMapping {
|
|
146
146
|
mappingVersion: string;
|
|
147
|
-
providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
147
|
+
providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
148
148
|
}
|
|
149
149
|
export {};
|
|
@@ -21,7 +21,7 @@ export type PromotionRequestSecretBinding1 = {
|
|
|
21
21
|
type BindingClassificationEntry = {
|
|
22
22
|
kind: 'configuration' | 'secret' | 'provider_credential';
|
|
23
23
|
confidence: 'high' | 'low';
|
|
24
|
-
providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
24
|
+
providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
25
25
|
/**
|
|
26
26
|
* Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
|
|
27
27
|
*/
|
|
@@ -94,6 +94,6 @@ interface BindingClassificationSubject {
|
|
|
94
94
|
}
|
|
95
95
|
interface BindingClassificationAiMapping {
|
|
96
96
|
mappingVersion: string;
|
|
97
|
-
providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
97
|
+
providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
98
98
|
}
|
|
99
99
|
export {};
|
|
@@ -13,7 +13,7 @@ export type SanitizedRuntimeBinding = {
|
|
|
13
13
|
*/
|
|
14
14
|
secretRef?: string;
|
|
15
15
|
};
|
|
16
|
-
export type SanitizedBindingProviderId = 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
16
|
+
export type SanitizedBindingProviderId = 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
17
17
|
/**
|
|
18
18
|
* Immutable DCP allocation receipt and sanitized runtime-binding set for one exact allocated version and normalized source revision. DCP persists this evidence atomically with version admission before publish or provisioning. classificationDigest chains to the caller's pre-allocation BindingClassificationSubject; bindings contain only approved configuration, app secrets or approved data-source credential references and never an AI-mapping-owned provider credential.
|
|
19
19
|
*/
|
package/dist/resolver/index.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export type { AiPolicySnapshot, AiPolicyGuardrailRule, AiPolicyGuardrailParamete
|
|
|
42
42
|
* revision rather than guessed at. Bump on ANY change to the merge rules, the
|
|
43
43
|
* platform baseline, or the classification minimums. */
|
|
44
44
|
export declare const RESOLVER_VERSION = "1.0.0";
|
|
45
|
-
export type AiProviderType = "openai" | "anthropic" | "gemini" | "openrouter" | "deepseek" | "elevenlabs" | "deepgram" | "higgsfield";
|
|
45
|
+
export type AiProviderType = "openai" | "anthropic" | "gemini" | "openrouter" | "deepseek" | "elevenlabs" | "deepgram" | "higgsfield" | "mistral" | "datalab";
|
|
46
46
|
export type AiCaptureMode = "OFF" | "BEST_EFFORT" | "REQUIRED";
|
|
47
47
|
export type AiDataClassification = "Green" | "Yellow" | "Orange" | "Red";
|
|
48
48
|
export type AiGuardrailAction = "ALLOW" | "OBSERVE" | "REDACT" | "BLOCK";
|
|
@@ -160,6 +160,7 @@ export type AiModelAliasAssignment = {
|
|
|
160
160
|
image?: string;
|
|
161
161
|
video?: string;
|
|
162
162
|
realtime?: string;
|
|
163
|
+
document?: string;
|
|
163
164
|
};
|
|
164
165
|
declare const narrowedBrand: unique symbol;
|
|
165
166
|
/** Granted only by the narrowing combinators (`mergeKeyedFamily`,
|
package/dist/resolver/index.js
CHANGED
|
@@ -49,9 +49,9 @@ const SECRET_OUTPUT_GUARDRAIL = { ruleId: "platform.secret.output", detectorId:
|
|
|
49
49
|
const MAX_REQUEST_BYTES = 20 * 1024 * 1024;
|
|
50
50
|
export const AI_PLATFORM_BASELINE = {
|
|
51
51
|
schema: "harbour.ai-platform-baseline/1.0",
|
|
52
|
-
artifactVersion: "1.
|
|
52
|
+
artifactVersion: "1.2.0",
|
|
53
53
|
controls: {
|
|
54
|
-
permittedProviderTypes: ["anthropic", "gemini", "higgsfield", "openai", "openrouter"],
|
|
54
|
+
permittedProviderTypes: ["anthropic", "datalab", "gemini", "higgsfield", "mistral", "openai", "openrouter"],
|
|
55
55
|
requireApprovedModels: false,
|
|
56
56
|
maxCaptureMode: "BEST_EFFORT",
|
|
57
57
|
maxRetentionDays: 90,
|
|
@@ -70,11 +70,11 @@ export const AI_PLATFORM_BASELINE = {
|
|
|
70
70
|
* and are versioned by `artifactVersion` plus `RESOLVER_VERSION`. */
|
|
71
71
|
export const AI_CLASSIFICATION_MINIMUMS = {
|
|
72
72
|
schema: "harbour.ai-classification-minimums/1.0",
|
|
73
|
-
artifactVersion: "1.
|
|
73
|
+
artifactVersion: "1.2.0",
|
|
74
74
|
defaultClassification: "Yellow",
|
|
75
75
|
classes: {
|
|
76
76
|
Green: {
|
|
77
|
-
permittedProviderTypes: ["anthropic", "gemini", "higgsfield", "openai", "openrouter"],
|
|
77
|
+
permittedProviderTypes: ["anthropic", "datalab", "gemini", "higgsfield", "mistral", "openai", "openrouter"],
|
|
78
78
|
requireApprovedModels: false,
|
|
79
79
|
maxCaptureMode: "BEST_EFFORT",
|
|
80
80
|
maxRetentionDays: 90,
|
|
@@ -88,7 +88,7 @@ export const AI_CLASSIFICATION_MINIMUMS = {
|
|
|
88
88
|
requiredGuardrails: [],
|
|
89
89
|
},
|
|
90
90
|
Yellow: {
|
|
91
|
-
permittedProviderTypes: ["anthropic", "gemini", "higgsfield", "openai", "openrouter"],
|
|
91
|
+
permittedProviderTypes: ["anthropic", "datalab", "gemini", "higgsfield", "mistral", "openai", "openrouter"],
|
|
92
92
|
requireApprovedModels: true,
|
|
93
93
|
maxCaptureMode: "BEST_EFFORT",
|
|
94
94
|
maxRetentionDays: 60,
|
|
@@ -276,7 +276,7 @@ export function mergeKeyedFamily(tenant, application, rules) {
|
|
|
276
276
|
* another route. `{ ...tenant, ...application }` made the application the
|
|
277
277
|
* authority for both. */
|
|
278
278
|
export function mergeModelAliases(tenant, application) {
|
|
279
|
-
const merged = ["generation", "embeddings", "transcription", "translation", "speech", "image", "video", "realtime"].map(capability => {
|
|
279
|
+
const merged = ["generation", "embeddings", "transcription", "translation", "speech", "image", "video", "realtime", "document"].map(capability => {
|
|
280
280
|
const assigned = application[capability];
|
|
281
281
|
if (assigned === undefined)
|
|
282
282
|
return {};
|
|
@@ -94,7 +94,17 @@ export interface AiPolicyClassificationMinimum {
|
|
|
94
94
|
}
|
|
95
95
|
export interface AiPolicyProvider {
|
|
96
96
|
id: AiPolicyIdentifier;
|
|
97
|
-
provider:
|
|
97
|
+
provider:
|
|
98
|
+
| 'openai'
|
|
99
|
+
| 'anthropic'
|
|
100
|
+
| 'gemini'
|
|
101
|
+
| 'openrouter'
|
|
102
|
+
| 'deepseek'
|
|
103
|
+
| 'elevenlabs'
|
|
104
|
+
| 'deepgram'
|
|
105
|
+
| 'higgsfield'
|
|
106
|
+
| 'mistral'
|
|
107
|
+
| 'datalab';
|
|
98
108
|
baseUrl?: string;
|
|
99
109
|
credentialSecretRef: string;
|
|
100
110
|
enabled: boolean;
|
|
@@ -108,7 +118,15 @@ export interface AiPolicyModel {
|
|
|
108
118
|
* @maxItems 2
|
|
109
119
|
*/
|
|
110
120
|
capabilities: (
|
|
111
|
-
|
|
121
|
+
| 'generation'
|
|
122
|
+
| 'embeddings'
|
|
123
|
+
| 'transcription'
|
|
124
|
+
| 'translation'
|
|
125
|
+
| 'speech'
|
|
126
|
+
| 'image'
|
|
127
|
+
| 'video'
|
|
128
|
+
| 'realtime'
|
|
129
|
+
| 'document'
|
|
112
130
|
)[];
|
|
113
131
|
approved: boolean;
|
|
114
132
|
pricing: AiPolicyPricing;
|
|
@@ -144,12 +162,25 @@ export interface AiPolicyPricing {
|
|
|
144
162
|
audio_characters?: number;
|
|
145
163
|
image_count?: number;
|
|
146
164
|
video_seconds?: number;
|
|
165
|
+
/**
|
|
166
|
+
* Price per page read by document OCR (ADR 0043).
|
|
167
|
+
*/
|
|
168
|
+
document_pages?: number;
|
|
147
169
|
};
|
|
148
170
|
}
|
|
149
171
|
export interface AiPolicyRoute {
|
|
150
172
|
alias: AiPolicyIdentifier;
|
|
151
173
|
version: number;
|
|
152
|
-
capability:
|
|
174
|
+
capability:
|
|
175
|
+
| 'generation'
|
|
176
|
+
| 'embeddings'
|
|
177
|
+
| 'transcription'
|
|
178
|
+
| 'translation'
|
|
179
|
+
| 'speech'
|
|
180
|
+
| 'image'
|
|
181
|
+
| 'video'
|
|
182
|
+
| 'realtime'
|
|
183
|
+
| 'document';
|
|
153
184
|
/**
|
|
154
185
|
* @minItems 1
|
|
155
186
|
* @maxItems 16
|
|
@@ -10,7 +10,17 @@ export type AiPricingDigest = string;
|
|
|
10
10
|
export interface AiPricingRevision {
|
|
11
11
|
schema: 'harbour.ai-pricing-revision/2.0';
|
|
12
12
|
revisionId: AiPricingIdentifier;
|
|
13
|
-
provider:
|
|
13
|
+
provider:
|
|
14
|
+
| 'openai'
|
|
15
|
+
| 'anthropic'
|
|
16
|
+
| 'gemini'
|
|
17
|
+
| 'openrouter'
|
|
18
|
+
| 'deepseek'
|
|
19
|
+
| 'elevenlabs'
|
|
20
|
+
| 'deepgram'
|
|
21
|
+
| 'higgsfield'
|
|
22
|
+
| 'mistral'
|
|
23
|
+
| 'datalab';
|
|
14
24
|
providerModel: string;
|
|
15
25
|
region?: AiPricingIdentifier;
|
|
16
26
|
currency: 'USD';
|
package/gen-ts/ai-trace-event.ts
CHANGED
|
@@ -17,7 +17,17 @@ export type AiTraceEvent = {
|
|
|
17
17
|
routeRevision?: string;
|
|
18
18
|
requestedModel?: string;
|
|
19
19
|
governedModelAlias?: string;
|
|
20
|
-
provider?:
|
|
20
|
+
provider?:
|
|
21
|
+
| 'openai'
|
|
22
|
+
| 'anthropic'
|
|
23
|
+
| 'gemini'
|
|
24
|
+
| 'openrouter'
|
|
25
|
+
| 'deepseek'
|
|
26
|
+
| 'elevenlabs'
|
|
27
|
+
| 'deepgram'
|
|
28
|
+
| 'higgsfield'
|
|
29
|
+
| 'mistral'
|
|
30
|
+
| 'datalab';
|
|
21
31
|
providerModel?: string;
|
|
22
32
|
outcome: 'succeeded' | 'blocked' | 'failed' | 'cancelled';
|
|
23
33
|
/**
|
|
@@ -48,7 +58,17 @@ export type AiTraceIdentifier = string;
|
|
|
48
58
|
export type AiTraceDigest = string;
|
|
49
59
|
export type AiTraceAttempt = {
|
|
50
60
|
attempt: number;
|
|
51
|
-
provider:
|
|
61
|
+
provider:
|
|
62
|
+
| 'openai'
|
|
63
|
+
| 'anthropic'
|
|
64
|
+
| 'gemini'
|
|
65
|
+
| 'openrouter'
|
|
66
|
+
| 'deepseek'
|
|
67
|
+
| 'elevenlabs'
|
|
68
|
+
| 'deepgram'
|
|
69
|
+
| 'higgsfield'
|
|
70
|
+
| 'mistral'
|
|
71
|
+
| 'datalab';
|
|
52
72
|
providerModel: string;
|
|
53
73
|
priceRevision: AiTraceIdentifier;
|
|
54
74
|
outcome: 'succeeded' | 'failed' | 'timed_out' | 'cancelled';
|
|
@@ -19,7 +19,7 @@ export type BindingClassificationEntry = {
|
|
|
19
19
|
requestedAiMappingId?: BindingClassificationIdentifier;
|
|
20
20
|
};
|
|
21
21
|
export type BindingClassificationProviderId =
|
|
22
|
-
'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
22
|
+
'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
23
23
|
/**
|
|
24
24
|
* Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
|
|
25
25
|
*/
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
3
|
|
|
4
|
-
export const ContractRepositoryVersion = "0.
|
|
5
|
-
export const ContractPublishVersion = "0.
|
|
6
|
-
export const ContractPublishTag = "v0.
|
|
7
|
-
export const ContractSchemasDigest = "sha256:
|
|
4
|
+
export const ContractRepositoryVersion = "0.98.0.0" as const;
|
|
5
|
+
export const ContractPublishVersion = "0.98.0" as const;
|
|
6
|
+
export const ContractPublishTag = "v0.98.0" as const;
|
|
7
|
+
export const ContractSchemasDigest = "sha256:c5ae6c789021697c7e00bf65bb1f072b4d8a61f151a9b31e1a74486992c6c196" as const;
|
|
8
8
|
export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6" as const;
|
|
9
|
-
export const ContractGeneratedGoDigest = "sha256:
|
|
10
|
-
export const ContractGeneratedTypeScriptDigest = "sha256:
|
|
9
|
+
export const ContractGeneratedGoDigest = "sha256:d8ea139537eae467b12402fac22e1a44f4e6dc50cad71e02a0083dfa6b63ee3d" as const;
|
|
10
|
+
export const ContractGeneratedTypeScriptDigest = "sha256:95a22d7dd80f7a020e556f42a1b269a13bad0168f2872a96500deb4a184720d1" as const;
|
package/gen-ts/deploy-request.ts
CHANGED
|
@@ -24,7 +24,8 @@ export type DeployRequestEnvironmentBinding1 = {
|
|
|
24
24
|
type BindingClassificationEntry = {
|
|
25
25
|
kind: 'configuration' | 'secret' | 'provider_credential';
|
|
26
26
|
confidence: 'high' | 'low';
|
|
27
|
-
providerId?:
|
|
27
|
+
providerId?:
|
|
28
|
+
'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
28
29
|
/**
|
|
29
30
|
* Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
|
|
30
31
|
*/
|
|
@@ -148,5 +149,6 @@ interface BindingClassificationSubject {
|
|
|
148
149
|
}
|
|
149
150
|
interface BindingClassificationAiMapping {
|
|
150
151
|
mappingVersion: string;
|
|
151
|
-
providerId:
|
|
152
|
+
providerId:
|
|
153
|
+
'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
152
154
|
}
|
|
@@ -24,7 +24,8 @@ export type PromotionRequestSecretBinding1 = {
|
|
|
24
24
|
type BindingClassificationEntry = {
|
|
25
25
|
kind: 'configuration' | 'secret' | 'provider_credential';
|
|
26
26
|
confidence: 'high' | 'low';
|
|
27
|
-
providerId?:
|
|
27
|
+
providerId?:
|
|
28
|
+
'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
28
29
|
/**
|
|
29
30
|
* Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
|
|
30
31
|
*/
|
|
@@ -98,5 +99,6 @@ interface BindingClassificationSubject {
|
|
|
98
99
|
}
|
|
99
100
|
interface BindingClassificationAiMapping {
|
|
100
101
|
mappingVersion: string;
|
|
101
|
-
providerId:
|
|
102
|
+
providerId:
|
|
103
|
+
'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
102
104
|
}
|
|
@@ -17,7 +17,7 @@ export type SanitizedRuntimeBinding = {
|
|
|
17
17
|
secretRef?: string;
|
|
18
18
|
};
|
|
19
19
|
export type SanitizedBindingProviderId =
|
|
20
|
-
'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
20
|
+
'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Immutable DCP allocation receipt and sanitized runtime-binding set for one exact allocated version and normalized source revision. DCP persists this evidence atomically with version admission before publish or provisioning. classificationDigest chains to the caller's pre-allocation BindingClassificationSubject; bindings contain only approved configuration, app secrets or approved data-source credential references and never an AI-mapping-owned provider credential.
|
package/package.json
CHANGED
|
@@ -71,7 +71,8 @@
|
|
|
71
71
|
"speech": { "type": "string", "minLength": 3, "maxLength": 160 },
|
|
72
72
|
"image": { "type": "string", "minLength": 3, "maxLength": 160 },
|
|
73
73
|
"video": { "type": "string", "minLength": 3, "maxLength": 160 },
|
|
74
|
-
"realtime": { "type": "string", "minLength": 3, "maxLength": 160 }
|
|
74
|
+
"realtime": { "type": "string", "minLength": 3, "maxLength": 160 },
|
|
75
|
+
"document": { "type": "string", "minLength": 3, "maxLength": 160 }
|
|
75
76
|
}
|
|
76
77
|
},
|
|
77
78
|
"policyDigest": { "$ref": "#/definitions/AiDecisionDigest" },
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
"required": ["id", "provider", "credentialSecretRef", "enabled"],
|
|
110
110
|
"properties": {
|
|
111
111
|
"id": { "$ref": "#/definitions/AiPolicyIdentifier" },
|
|
112
|
-
"provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield"] },
|
|
112
|
+
"provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield", "mistral", "datalab"] },
|
|
113
113
|
"baseUrl": { "type": "string", "format": "uri", "maxLength": 512 },
|
|
114
114
|
"credentialSecretRef": {
|
|
115
115
|
"type": "string",
|
|
@@ -138,7 +138,8 @@
|
|
|
138
138
|
"audio_seconds": { "type": "integer", "minimum": 0 },
|
|
139
139
|
"audio_characters": { "type": "integer", "minimum": 0 },
|
|
140
140
|
"image_count": { "type": "integer", "minimum": 0 },
|
|
141
|
-
"video_seconds": { "type": "integer", "minimum": 0 }
|
|
141
|
+
"video_seconds": { "type": "integer", "minimum": 0 },
|
|
142
|
+
"document_pages": { "type": "integer", "minimum": 0, "description": "Price per page read by document OCR (ADR 0043)." }
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
145
|
}
|
|
@@ -156,7 +157,7 @@
|
|
|
156
157
|
"minItems": 1,
|
|
157
158
|
"maxItems": 2,
|
|
158
159
|
"uniqueItems": true,
|
|
159
|
-
"items": { "type": "string", "enum": ["generation", "embeddings", "transcription", "translation", "speech", "image", "video", "realtime"] }
|
|
160
|
+
"items": { "type": "string", "enum": ["generation", "embeddings", "transcription", "translation", "speech", "image", "video", "realtime", "document"] }
|
|
160
161
|
},
|
|
161
162
|
"approved": { "type": "boolean" },
|
|
162
163
|
"pricing": { "$ref": "#/definitions/AiPolicyPricing" },
|
|
@@ -186,7 +187,7 @@
|
|
|
186
187
|
"properties": {
|
|
187
188
|
"alias": { "$ref": "#/definitions/AiPolicyIdentifier" },
|
|
188
189
|
"version": { "type": "integer", "minimum": 1 },
|
|
189
|
-
"capability": { "type": "string", "enum": ["generation", "embeddings", "transcription", "translation", "speech", "image", "video", "realtime"] },
|
|
190
|
+
"capability": { "type": "string", "enum": ["generation", "embeddings", "transcription", "translation", "speech", "image", "video", "realtime", "document"] },
|
|
190
191
|
"targets": {
|
|
191
192
|
"type": "array",
|
|
192
193
|
"minItems": 1,
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"properties": {
|
|
10
10
|
"schema": { "type": "string", "const": "harbour.ai-pricing-revision/2.0" },
|
|
11
11
|
"revisionId": { "$ref": "#/definitions/AiPricingIdentifier" },
|
|
12
|
-
"provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield"] },
|
|
12
|
+
"provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield", "mistral", "datalab"] },
|
|
13
13
|
"providerModel": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
14
14
|
"region": { "$ref": "#/definitions/AiPricingIdentifier" },
|
|
15
15
|
"currency": { "type": "string", "const": "USD" },
|
|
@@ -55,7 +55,8 @@
|
|
|
55
55
|
"speech": { "$ref": "#/definitions/AiRuntimeModelAlias" },
|
|
56
56
|
"image": { "$ref": "#/definitions/AiRuntimeModelAlias" },
|
|
57
57
|
"video": { "$ref": "#/definitions/AiRuntimeModelAlias" },
|
|
58
|
-
"realtime": { "$ref": "#/definitions/AiRuntimeModelAlias" }
|
|
58
|
+
"realtime": { "$ref": "#/definitions/AiRuntimeModelAlias" },
|
|
59
|
+
"document": { "$ref": "#/definitions/AiRuntimeModelAlias" }
|
|
59
60
|
}
|
|
60
61
|
},
|
|
61
62
|
"policyDigest": { "$ref": "#/definitions/AiRuntimeDigest" },
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"routeRevision": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
43
43
|
"requestedModel": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
44
44
|
"governedModelAlias": { "type": "string", "minLength": 1, "maxLength": 160 },
|
|
45
|
-
"provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield"] },
|
|
45
|
+
"provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield", "mistral", "datalab"] },
|
|
46
46
|
"providerModel": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
47
47
|
"outcome": { "type": "string", "enum": ["succeeded", "blocked", "failed", "cancelled"] },
|
|
48
48
|
"usage": {
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"required": ["attempt", "provider", "providerModel", "priceRevision", "outcome", "usage", "costMicroUsd", "latencyMs"],
|
|
141
141
|
"properties": {
|
|
142
142
|
"attempt": { "type": "integer", "minimum": 1, "maximum": 32 },
|
|
143
|
-
"provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield"] },
|
|
143
|
+
"provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield", "mistral", "datalab"] },
|
|
144
144
|
"providerModel": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
145
145
|
"priceRevision": { "$ref": "#/definitions/AiTraceIdentifier" },
|
|
146
146
|
"outcome": { "type": "string", "enum": ["succeeded", "failed", "timed_out", "cancelled"] },
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
},
|
|
65
65
|
"BindingClassificationProviderId": {
|
|
66
66
|
"type": "string",
|
|
67
|
-
"enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "deepgram", "higgsfield"]
|
|
67
|
+
"enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "deepgram", "higgsfield", "mistral", "datalab"]
|
|
68
68
|
},
|
|
69
69
|
"BindingClassificationCredentialCategory": {
|
|
70
70
|
"description": "Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
},
|
|
63
63
|
"SanitizedBindingProviderId": {
|
|
64
64
|
"type": "string",
|
|
65
|
-
"enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "deepgram", "higgsfield"]
|
|
65
|
+
"enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "deepgram", "higgsfield", "mistral", "datalab"]
|
|
66
66
|
},
|
|
67
67
|
"SanitizedBindingAiMapping": {
|
|
68
68
|
"type": "object",
|