@fourier-labs/harbour-contracts 0.19.0 → 0.22.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 (40) hide show
  1. package/contract-release.json +29 -29
  2. package/dist/gen-ts/ai-callsite-inventory.d.ts +1 -1
  3. package/dist/gen-ts/ai-policy-snapshot.d.ts +1 -1
  4. package/dist/gen-ts/ai-pricing-revision.d.ts +1 -1
  5. package/dist/gen-ts/ai-runtime-contract.d.ts +20 -0
  6. package/dist/gen-ts/ai-runtime-contract.js +11 -1
  7. package/dist/gen-ts/ai-trace-event.d.ts +2 -2
  8. package/dist/gen-ts/artifact-contract.d.ts +29 -0
  9. package/dist/gen-ts/binding-classification-subject.d.ts +1 -1
  10. package/dist/gen-ts/contract-release.d.ts +6 -6
  11. package/dist/gen-ts/contract-release.js +6 -6
  12. package/dist/gen-ts/deploy-request.d.ts +6 -2
  13. package/dist/gen-ts/promotion-request.d.ts +2 -2
  14. package/dist/gen-ts/sanitized-binding-evidence.d.ts +1 -1
  15. package/dist/gen-ts/transform-report.d.ts +4 -0
  16. package/dist/resolver/index.d.ts +1 -1
  17. package/dist/resolver/index.js +3 -3
  18. package/gen-ts/ai-callsite-inventory.ts +1 -0
  19. package/gen-ts/ai-policy-snapshot.ts +1 -1
  20. package/gen-ts/ai-pricing-revision.ts +1 -1
  21. package/gen-ts/ai-runtime-contract.ts +26 -0
  22. package/gen-ts/ai-trace-event.ts +2 -2
  23. package/gen-ts/artifact-contract.ts +29 -0
  24. package/gen-ts/binding-classification-subject.ts +1 -1
  25. package/gen-ts/contract-release.ts +6 -6
  26. package/gen-ts/deploy-request.ts +6 -2
  27. package/gen-ts/promotion-request.ts +2 -2
  28. package/gen-ts/sanitized-binding-evidence.ts +2 -1
  29. package/gen-ts/transform-report.ts +4 -0
  30. package/package.json +1 -1
  31. package/schema/ai-callsite-inventory.schema.json +1 -0
  32. package/schema/ai-policy-snapshot.schema.json +1 -1
  33. package/schema/ai-pricing-revision.schema.json +1 -1
  34. package/schema/ai-runtime-contract.schema.json +23 -0
  35. package/schema/ai-trace-event.schema.json +2 -2
  36. package/schema/artifact-contract.schema.json +59 -1
  37. package/schema/binding-classification-subject.schema.json +1 -1
  38. package/schema/deploy-request.schema.json +5 -0
  39. package/schema/sanitized-binding-evidence.schema.json +1 -1
  40. package/schema/transform-report.schema.json +9 -0
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "schema": "harbour.contract-release/1.0",
3
- "repositoryVersion": "0.19.0.0",
4
- "publishVersion": "0.19.0",
5
- "publishTag": "v0.19.0",
6
- "schemasDigest": "sha256:3263c4ee323353316aeecc8741ce8dc7a740652a73e35587123fbf2330926b28",
3
+ "repositoryVersion": "0.22.0.0",
4
+ "publishVersion": "0.22.0",
5
+ "publishTag": "v0.22.0",
6
+ "schemasDigest": "sha256:2b762d34e5f5549a90b78f304a47f98b6165cf938a2ca776b1c055db8f04fce1",
7
7
  "aiFixturesDigest": "sha256:5d68828a1364dc63cafbb3c2d3f5c5f6c232d5333e7668a9c79e7652e5144b42",
8
- "generatedGoDigest": "sha256:ef74356afbc6a36a543f6f6fe572b77dc3691ce2201f0654644d2a7f29a4ced4",
9
- "generatedTypeScriptDigest": "sha256:6bb6b13ea4722e3ec9e9d91c672461ec24b29076aeae0b14b62380cced658e92",
8
+ "generatedGoDigest": "sha256:0541904aad85c418a20de003bef68a42c8876d6cf8fe9f165472a5e77f81e045",
9
+ "generatedTypeScriptDigest": "sha256:bbbba7c14c480030e9a44b94a746a0978efe7f008788817d31e137007bf89c38",
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)"
13
13
  },
14
14
  "schemas": {
15
15
  "schema/ai-budget-ledger-event.schema.json": "sha256:92770bc5358e03a3aae6cd261dad02dfcbbb06a6203566da2c6c7a5e63dd671c",
16
- "schema/ai-callsite-inventory.schema.json": "sha256:b15899a97cf108e4cd1bfd31ec40c57b341590ddb9c118fdaa904215dbe01859",
16
+ "schema/ai-callsite-inventory.schema.json": "sha256:dda9251352a1c28e95927f75e5ed4d78cf863806bdac29238de03f79c7229082",
17
17
  "schema/ai-classification-stamp.schema.json": "sha256:ad7f01dc8bb9a1cd619fce470227914aa3ef2ad57d34bfeaa0c6ef753aa6781d",
18
18
  "schema/ai-composite-policy-digest.schema.json": "sha256:3efccc249327e59f67a37fd954b524ee727a3e28a3c557a46d6ec1f15d69b34e",
19
19
  "schema/ai-deployment-gate-decision.schema.json": "sha256:bae1bdf91777b9a78f8da5a29f06b5de7f1e235789cf16b1bb507e85ad0243ff",
@@ -21,22 +21,22 @@
21
21
  "schema/ai-gateway-key-lookup.schema.json": "sha256:e994d4782c9bc4f14d3a1c35c9ac1e7a5ec84284cde5b3af7e3e6022130ddbb3",
22
22
  "schema/ai-governance-decision.schema.json": "sha256:fab63e1b869b0e821efe9c27ee63f87fc7023a01d99bc810bad12049b968b788",
23
23
  "schema/ai-metering-policy.schema.json": "sha256:044115938d254d914feac162219d20ee48f741cd7ad32df4613b45f9c862fe8c",
24
- "schema/ai-policy-snapshot.schema.json": "sha256:bf0d0c834285ac942f4c0cb09a33549a06045a034be18b5ffbaa9120e961422e",
25
- "schema/ai-pricing-revision.schema.json": "sha256:ff6b2115e98e278fd425164887f41911e3f0345e008ebc988a5f00b93c1c99ee",
24
+ "schema/ai-policy-snapshot.schema.json": "sha256:a866146c953a0577680ff12ec7baff04ddca687783661feaa65f52415b21bce2",
25
+ "schema/ai-pricing-revision.schema.json": "sha256:5ddb40c23712c0cec37b733678e4bb34811f5db44a233773c21a7dfaec188375",
26
26
  "schema/ai-runtime-binding.schema.json": "sha256:e86cac2f70a474997bdef1577ca15f22982ec0ce866921df3f763c4d7f7fa191",
27
- "schema/ai-runtime-contract.schema.json": "sha256:a9c8b1329193c1eac7887e9ad6b442d127968fc9de78dcdc18289d8901f091bd",
27
+ "schema/ai-runtime-contract.schema.json": "sha256:338fbf576d67934592648aff9a9c8ae05a54993e8080c90172b00f346a15db02",
28
28
  "schema/ai-trace-event-v2.schema.json": "sha256:b479199bb6e44ea23a1da53f69943cb8f3886c433914fdb9bf9e9bdbc3dd767d",
29
- "schema/ai-trace-event.schema.json": "sha256:994f8e350e3f2c3f857a198cdc1ee45d68c6b8f9265af74f17e70957b5e12f48",
29
+ "schema/ai-trace-event.schema.json": "sha256:313af995b72dd19d3d33997ba2d270bd163ce3752000fd7d8a6c18bff137af32",
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",
33
33
  "schema/api-error-response.schema.json": "sha256:3d43d5bdf0b59c944e20509d832e6776c3ecdba4d6c245a9118bbe52062a8304",
34
- "schema/artifact-contract.schema.json": "sha256:f4d14d71ed754c9c8c2b03babd4666ace7d94dd4851ee548227bf1235404a814",
35
- "schema/binding-classification-subject.schema.json": "sha256:fd038b42c6d85c50f7fced159690f820f59aee7a1e96efd8abd0250653cabe46",
34
+ "schema/artifact-contract.schema.json": "sha256:4415be59f669bf660f54ab32da68f3b7d95fef567c968501e2eb6afb53bad048",
35
+ "schema/binding-classification-subject.schema.json": "sha256:a8825ce652e7e00a18759c4249bd5bcd0cae552dd58440513f867e87f685133c",
36
36
  "schema/data-dependency.schema.json": "sha256:89ba8481ccabc935e7dab5d13871c985839a751ad1586710d8382a15e1f3340c",
37
37
  "schema/data-grant.schema.json": "sha256:e640553831ecc1c01cc9a37fe388b84d0ffeaa0d0050e63712b48f65fa437c8a",
38
38
  "schema/data-source.schema.json": "sha256:5a809171cc97f5778ca37db300d454098ce1c2d9071d2380550707b049899a75",
39
- "schema/deploy-request.schema.json": "sha256:84274acd7629a20a074a69a32152a53f273d91122e46ec3157a9fd0623cf8068",
39
+ "schema/deploy-request.schema.json": "sha256:2018aa710a46bc694e0ceb628028faea6c31223f9d9b8d2db66809814f63ea8d",
40
40
  "schema/deploy-response.schema.json": "sha256:09064948abdbba7022738285d802ed44648a16ddc2a5b8c2eeb170ae19a66aeb",
41
41
  "schema/deployment-environment.schema.json": "sha256:3f1325d5579b3fc47d02c83b6ac0657108909b1dfb901f68203c9c8b668c2ef4",
42
42
  "schema/deployment-source.schema.json": "sha256:256988b1efbfc90bd0e1ae31a2c5d69b20ef1e4471dc24c9f9aa759278270fbe",
@@ -49,9 +49,9 @@
49
49
  "schema/kvs-routing-entry.schema.json": "sha256:b75f3a5dfa93a428b2764e03222b66b6ef2bed980f8bac8ffac54afdf3526bc5",
50
50
  "schema/promotion-request.schema.json": "sha256:560460b57fc639d248fa657a2a1e3d88d27ab9139faf17ee58633b671f8b5072",
51
51
  "schema/promotion-response.schema.json": "sha256:4129712d2e29d6ef21d93d4bd0bacfd60ada3f2ee0ade852824e64346b817634",
52
- "schema/sanitized-binding-evidence.schema.json": "sha256:e05bb19a3be0463af038501a31c65981f58bc6aa86b93a487cdb119a05ce6ac0",
52
+ "schema/sanitized-binding-evidence.schema.json": "sha256:b03bcc1911c99c69fda50eb656fc3e115f88fe2990c1708fbb5cd3542f4b8bba",
53
53
  "schema/secret-reference.schema.json": "sha256:966f7a6d2575b46a4b54804d06dc05c6229ebbcbd9200fe6a6c8d3b4ffb90f9f",
54
- "schema/transform-report.schema.json": "sha256:10ba5faa915b3a9327909b0444a163f8e31f51b9f1b3d049ea341e8cedc521e1",
54
+ "schema/transform-report.schema.json": "sha256:afbcb940d8e6cb32fd6199c03236bc1717d4ad6adb2e334f3e54d436d5349778",
55
55
  "schema/version-state.schema.json": "sha256:e7c4b2e7b615ebb07f36d0df22ded51b2c9688ef9e9bfe79de1d5cd94de9ae40"
56
56
  },
57
57
  "aiFixtures": {
@@ -90,13 +90,13 @@
90
90
  "gen-go/contracts_test.go": "sha256:105f72ed711a34778d875b5a957bae3d8afbe67ed006e4809b8031b4cc303ec0",
91
91
  "gen-go/doc.go": "sha256:c17bc2d39ed175ce7105c68305f8ae7152f659eb7cd187ecceee7698eb3a65dd",
92
92
  "gen-go/error_category.go": "sha256:e36745796e32f753cf153a76c5f77c4bdf37a6a228e6607abcf95cac6f4a934b",
93
- "gen-go/schema_documents.go": "sha256:c0399930c719b93d850847b257186f08d69a527f3ac1286ed0c49b66327b315a",
94
- "gen-go/types.go": "sha256:548bfbd495c67cfa041efc5554fad6a5b88afa7db7f4636787364fdebe60d321",
93
+ "gen-go/schema_documents.go": "sha256:e4b7d0b819a6b9e4b4c37be14caad4586bab3a7cbfd6b716d072635295295fc2",
94
+ "gen-go/types.go": "sha256:63aa621cecfe32867c6fab014ce68e11d2c98ff76d4c96c04ba72b0e197ef0c0",
95
95
  "gen-go/version_state.go": "sha256:827f8768359998409b86ea02d9ba1a149981928bae7161e4dc95fe0520ce7410"
96
96
  },
97
97
  "generatedTypeScript": {
98
98
  "gen-ts/ai-budget-ledger-event.ts": "sha256:64448d98a394e6eb103927cd35ce8a33e30176c0d5ee5afcdd8444f8aa051809",
99
- "gen-ts/ai-callsite-inventory.ts": "sha256:2665ffe965056b85a7f03db22071d56ce6d21d306a82a876908d0727ef2315dc",
99
+ "gen-ts/ai-callsite-inventory.ts": "sha256:350a1aca0e60f678a780d02c21d5a8dad13e1442662bb9f66aceb6b76a24f87e",
100
100
  "gen-ts/ai-classification-stamp.ts": "sha256:dce78efba03df86a0986a16fd54c52066d322ff515d2463dbc45cafad82ecb44",
101
101
  "gen-ts/ai-composite-policy-digest-helper.ts": "sha256:d6c51d0c35599ee4f81d605b71773f4fff41a0bb46499ff0c6185072fedf53ce",
102
102
  "gen-ts/ai-composite-policy-digest.ts": "sha256:26b72227ca511d744c0f27fa0c85eb1ba6451ee380e38371e58a810898cfae96",
@@ -106,23 +106,23 @@
106
106
  "gen-ts/ai-gateway-key-token.ts": "sha256:ff6551ad3332cc665878d7ec93f42ce185c375e637531b2fbc82c697b877e784",
107
107
  "gen-ts/ai-governance-decision.ts": "sha256:cd9f24d6381cffe73f08532cf556eaa9ecb815b23218f7ac504f3bc26e686b2b",
108
108
  "gen-ts/ai-metering-policy.ts": "sha256:dd261d57646a509cd46efaefac4aad58d018c7f7da98326dd8859e4ce951c56a",
109
- "gen-ts/ai-policy-snapshot.ts": "sha256:8e9dcc01ba3121f0c834d7d953b4115503f312d21bd1fdde6685322a1e7e9c8e",
110
- "gen-ts/ai-pricing-revision.ts": "sha256:5a6743db7a782cc87e2087aaa245e8083bc54f5a6275d280b65214328aaa8ac6",
109
+ "gen-ts/ai-policy-snapshot.ts": "sha256:20e7a5d01d0ff0c00229357db1f15443f3ee876c9d8a6e570b83889846e6cdd9",
110
+ "gen-ts/ai-pricing-revision.ts": "sha256:48afdea7fb09b9a392147a0a62bcee013157a9d536c07e0782ef28781a3000de",
111
111
  "gen-ts/ai-runtime-binding.ts": "sha256:176c830d400ce44c508f8d249bb3c9724b2d595b78262615487cdafc4790263e",
112
- "gen-ts/ai-runtime-contract.ts": "sha256:8c4b9c071dfe33df30d9861953d9ee88ea509a7fc6eadc1c804f3cdcc5614d18",
112
+ "gen-ts/ai-runtime-contract.ts": "sha256:f34533728dfcf7ce8d2e959b55379650f317a06e29e316caf86e131667891ddc",
113
113
  "gen-ts/ai-trace-event-v2.ts": "sha256:8c994355f290864da1cf42850c3eceb0e4a1567b45ed989de865213430d3ce0e",
114
- "gen-ts/ai-trace-event.ts": "sha256:0711e3eb45510013e9a947209c3e1a2ca969124ad4df65a86b93853e1b9cbae2",
114
+ "gen-ts/ai-trace-event.ts": "sha256:657b144e6bc258c465850130a299c0f6d13fd2d0c2920c6667fc4eea39df77c4",
115
115
  "gen-ts/ai-transform-event.ts": "sha256:c8b520e01ce12b0e3a5ebe03a3ca63cc83368f26e1eef933de732c4fc1c504f9",
116
116
  "gen-ts/ai-transform-result.ts": "sha256:208c66b2aeb425c0cbcc18b7191f6e8989443f2b2c1690648e0e06cc1448ce25",
117
117
  "gen-ts/ai-verification-evidence.ts": "sha256:979439d77f8b47631d1eb3b6c3c54ea6fec41089d2a51dc815fd370b1c4917fc",
118
118
  "gen-ts/api-error-response.ts": "sha256:0fd73be282e7a5d72d6c343a4e64d09c232556b16161167f0cffd6278ed7e3d3",
119
- "gen-ts/artifact-contract.ts": "sha256:2c1b3986e3561553c53db1a6f406924e7bb22205dce969d8aecaa238707a2072",
119
+ "gen-ts/artifact-contract.ts": "sha256:b9c91d0582993cf1208448f6502cc63a813b17d0aab3d2d4f4ec8bda1d607d37",
120
120
  "gen-ts/binding-classification-digest-helper.ts": "sha256:40fc7d85b4c3f3ffc5caf7d7950c62d013c83ee42058c7453b2100d95817f167",
121
- "gen-ts/binding-classification-subject.ts": "sha256:4c734cc3152384800178fa29cb7f0f538dcfdb51d9d00238df773ab7ac216811",
121
+ "gen-ts/binding-classification-subject.ts": "sha256:c409a3fd7b942b50419632c51d9a79474fb30d6374bdc79c0e25c73618e800c3",
122
122
  "gen-ts/data-dependency.ts": "sha256:0572c31d7ae9088eccc104eee1a205bf176d1d6dacfaf0f290d666024e284966",
123
123
  "gen-ts/data-grant.ts": "sha256:2358579d8aa1e57b01a6f2b0eacce5531e7f21ef226404c9809925365e0d6155",
124
124
  "gen-ts/data-source.ts": "sha256:71be83b050468c2ea8c5830d28f1837c2b5929d23b4fdf6661bc5bfe8999904c",
125
- "gen-ts/deploy-request.ts": "sha256:fce5ee4c71687d785723c3b7bb09ffb9b44f7139a639214f70af911fb77e1926",
125
+ "gen-ts/deploy-request.ts": "sha256:4d4c28a97249089712449b9632dcfef9217cd35200fec59c10afcaa17e178a9b",
126
126
  "gen-ts/deploy-response.ts": "sha256:364d9f1acf32e491498237cdd3f402d5f8e102f208db7748034f4ec68c6a6137",
127
127
  "gen-ts/deployment-environment.ts": "sha256:bbd6eec3a1631b13a8de6e6b95081696f7be01d0bd2bf1b7a9e3a1db809a727c",
128
128
  "gen-ts/deployment-source.ts": "sha256:8ccb55aaa7260eb6d19a00987d6a20a4b514e343564da13f27cd7fee8013500a",
@@ -135,12 +135,12 @@
135
135
  "gen-ts/error-envelope.ts": "sha256:4457309be794f9d4fc0cf62530cc2d442c007bac9ae84aff66df099cc9e40310",
136
136
  "gen-ts/index.ts": "sha256:cf2c63faf3af73a0b4fb7bac7f51f18b4c72d854a78aef8e4c7625dfc96a27f7",
137
137
  "gen-ts/kvs-routing-entry.ts": "sha256:d92e85ee9f257d77850d1d3aac9438e2055f38084ff84a48fcedae239d47d4ca",
138
- "gen-ts/promotion-request.ts": "sha256:344081ff99add085787be73449eafa3c99e2740a985d8c0dd2cf69b38a35d501",
138
+ "gen-ts/promotion-request.ts": "sha256:6ef4612172202bca918a6260d40f2a1a8739845c6c0f747dd1ce5e520e081011",
139
139
  "gen-ts/promotion-response.ts": "sha256:f1c9cafac96faeb02a443a31786f67714e818f38d90108e7af41958396524d6f",
140
140
  "gen-ts/sanitized-binding-digest-helper.ts": "sha256:c47d7fdc20500e2e72c23fe39ecdd610fc397c47fcba51335ebec3c380fe6872",
141
- "gen-ts/sanitized-binding-evidence.ts": "sha256:8e796ee8be8a52470e7d4fc0276838edb6bff3a1ded41ad24859e68dd5c0e6f1",
141
+ "gen-ts/sanitized-binding-evidence.ts": "sha256:4db7e9ed83f563a46e337815a55bbd6433864c41d9ec8e8a80810a16e3095ebb",
142
142
  "gen-ts/secret-reference.ts": "sha256:a8b65de72705b6f51f57cd8ca58881483108005b1fa4d19106c3e9cf1fa877e7",
143
- "gen-ts/transform-report.ts": "sha256:154617c0bc4b8e36d7edd07640454c89fad8ec34b02aa85c904c9acd9855a6c3",
143
+ "gen-ts/transform-report.ts": "sha256:407d7cf1ddf78868c14d91cad10d8df17d61d973a923c613d2bb094af20dbfeb",
144
144
  "gen-ts/version-state-machine.ts": "sha256:4371bc7e2bde86b0447f5242104c576cc160dfd7dae1885acbfb63540f230bdd",
145
145
  "gen-ts/version-state.ts": "sha256:a835112930299e7b593a1b8810b7414f6c9e809da2092306c743128170a3b702"
146
146
  }
@@ -29,7 +29,7 @@ export interface AiInventoryCallsite {
29
29
  sourceFileSha256: AiInventoryDigest;
30
30
  line: number;
31
31
  language: 'javascript' | 'typescript' | 'python' | 'go' | 'unknown';
32
- sdk: 'openai' | 'openai-compatible' | 'anthropic' | 'google-genai' | 'mistral' | 'bedrock' | 'cohere' | 'ollama' | 'legacy-gemini' | 'direct-provider-rest' | 'unknown';
32
+ sdk: 'openai' | 'openai-compatible' | 'anthropic' | 'google-genai' | 'mistral' | 'bedrock' | 'cohere' | 'ollama' | 'legacy-gemini' | 'direct-provider-rest' | 'deepgram' | 'unknown';
33
33
  method: string;
34
34
  requestedModel?: string;
35
35
  strategy: 'deployment_injection' | 'deterministic_adapter' | 'unsupported';
@@ -89,7 +89,7 @@ export interface AiPolicyClassificationMinimum {
89
89
  }
90
90
  export interface AiPolicyProvider {
91
91
  id: AiPolicyIdentifier;
92
- provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram';
92
+ provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
93
93
  baseUrl?: string;
94
94
  credentialSecretRef: string;
95
95
  enabled: boolean;
@@ -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';
9
+ provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
10
10
  providerModel: string;
11
11
  region?: AiPricingIdentifier;
12
12
  currency: 'USD';
@@ -29,6 +29,13 @@ export interface AiRuntimeContract {
29
29
  realtime?: AiRuntimeModelAlias;
30
30
  };
31
31
  policyDigest: AiRuntimeDigest;
32
+ /**
33
+ * Optional value-free descriptors for reviewed non-standard client environment boundaries. Mapping IDs are unique within a contract.
34
+ *
35
+ * @minItems 1
36
+ * @maxItems 16
37
+ */
38
+ configurationMappings?: AiConfigurationMappingDescriptor[];
32
39
  runtimeBinding?: AiRuntimeContractBinding;
33
40
  /**
34
41
  * @minItems 1
@@ -36,6 +43,17 @@ export interface AiRuntimeContract {
36
43
  */
37
44
  requiredStrategies: ('deployment_injection' | 'deterministic_adapter')[];
38
45
  }
46
+ /**
47
+ * Value-free descriptor for one registered OpenAI-compatible client environment boundary. Secret values are never part of this descriptor.
48
+ */
49
+ export interface AiConfigurationMappingDescriptor {
50
+ mappingId: string;
51
+ version: string;
52
+ protocol: 'openai-chat';
53
+ providerId: string;
54
+ apiKeyEnvironmentName: string;
55
+ baseUrlEnvironmentName: string;
56
+ }
39
57
  /**
40
58
  * Optional additive platform-neutral binding. Existing 1.0 records without it remain valid.
41
59
  */
@@ -46,3 +64,5 @@ export interface AiRuntimeContractBinding {
46
64
  secretRef: AiRuntimeContractSafeReference;
47
65
  runtimeBindingDigest: AiRuntimeDigest;
48
66
  }
67
+ /** True iff configurationMappings contains no repeated mappingId values. */
68
+ export declare function hasUniqueAiRuntimeContractConfigurationMappings(input: AiRuntimeContract): boolean;
@@ -1,3 +1,13 @@
1
1
  /* eslint-disable */
2
2
  // Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
3
- export {};
3
+ /** True iff configurationMappings contains no repeated mappingId values. */
4
+ export function hasUniqueAiRuntimeContractConfigurationMappings(input) {
5
+ const seen = new Set();
6
+ for (const item of input.configurationMappings ?? []) {
7
+ const value = item.mappingId;
8
+ if (seen.has(value))
9
+ return false;
10
+ seen.add(value);
11
+ }
12
+ return true;
13
+ }
@@ -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';
17
+ provider?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
18
18
  providerModel?: string;
19
19
  outcome: 'succeeded' | 'blocked' | 'failed' | 'cancelled';
20
20
  usage?: AiTraceUsage;
@@ -42,7 +42,7 @@ export type AiTraceIdentifier = string;
42
42
  export type AiTraceDigest = string;
43
43
  export type AiTraceAttempt = {
44
44
  attempt: number;
45
- provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram';
45
+ provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
46
46
  providerModel: string;
47
47
  priceRevision: AiTraceIdentifier;
48
48
  outcome: 'succeeded' | 'failed' | 'timed_out' | 'cancelled';
@@ -17,6 +17,10 @@ export interface ArtifactContract {
17
17
  ref: string;
18
18
  entrypoint: string;
19
19
  runtime: string;
20
+ /**
21
+ * Optional reviewed runtime features selected for the standard application image. Unknown and duplicate features are rejected.
22
+ */
23
+ runtime_features?: 'chromium'[];
20
24
  };
21
25
  static: {
22
26
  /**
@@ -68,6 +72,31 @@ export interface ArtifactContract {
68
72
  * MVP emits an empty array.
69
73
  */
70
74
  scheduled_tasks: {}[];
75
+ /**
76
+ * Optional bounded runtime profile and background-job mode for the application workload. Omitted resource_profile uses the standard profile and omitted background_jobs uses none.
77
+ */
78
+ workload?: {
79
+ /**
80
+ * Reviewed CPU/memory profile selected for the application container.
81
+ */
82
+ resource_profile?: 'standard' | 'memory-1g';
83
+ /**
84
+ * Background-job execution mode. The sqs mode enables the governed application job queue and queue-aware scale-to-zero.
85
+ */
86
+ background_jobs?: 'none' | 'sqs';
87
+ };
88
+ /**
89
+ * Optional method/path authentication policy compiled by the transformation. The default is SSO; listed routes preserve the application's own token, signature, or callback authorization.
90
+ */
91
+ route_auth?: {
92
+ version: 1;
93
+ default: 'sso_required';
94
+ rules: {
95
+ path: string;
96
+ methods: ('GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS')[];
97
+ mode: 'application_authorized';
98
+ }[];
99
+ };
71
100
  transform_report: {
72
101
  /**
73
102
  * Transformed surfaces, e.g. ["secrets","storage.sql"].
@@ -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';
18
+ export type BindingClassificationProviderId = 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
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.19.0.0";
2
- export declare const ContractPublishVersion: "0.19.0";
3
- export declare const ContractPublishTag: "v0.19.0";
4
- export declare const ContractSchemasDigest: "sha256:3263c4ee323353316aeecc8741ce8dc7a740652a73e35587123fbf2330926b28";
1
+ export declare const ContractRepositoryVersion: "0.22.0.0";
2
+ export declare const ContractPublishVersion: "0.22.0";
3
+ export declare const ContractPublishTag: "v0.22.0";
4
+ export declare const ContractSchemasDigest: "sha256:2b762d34e5f5549a90b78f304a47f98b6165cf938a2ca776b1c055db8f04fce1";
5
5
  export declare const ContractAiFixturesDigest: "sha256:5d68828a1364dc63cafbb3c2d3f5c5f6c232d5333e7668a9c79e7652e5144b42";
6
- export declare const ContractGeneratedGoDigest: "sha256:ef74356afbc6a36a543f6f6fe572b77dc3691ce2201f0654644d2a7f29a4ced4";
7
- export declare const ContractGeneratedTypeScriptDigest: "sha256:6bb6b13ea4722e3ec9e9d91c672461ec24b29076aeae0b14b62380cced658e92";
6
+ export declare const ContractGeneratedGoDigest: "sha256:0541904aad85c418a20de003bef68a42c8876d6cf8fe9f165472a5e77f81e045";
7
+ export declare const ContractGeneratedTypeScriptDigest: "sha256:bbbba7c14c480030e9a44b94a746a0978efe7f008788817d31e137007bf89c38";
@@ -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.19.0.0";
4
- export const ContractPublishVersion = "0.19.0";
5
- export const ContractPublishTag = "v0.19.0";
6
- export const ContractSchemasDigest = "sha256:3263c4ee323353316aeecc8741ce8dc7a740652a73e35587123fbf2330926b28";
3
+ export const ContractRepositoryVersion = "0.22.0.0";
4
+ export const ContractPublishVersion = "0.22.0";
5
+ export const ContractPublishTag = "v0.22.0";
6
+ export const ContractSchemasDigest = "sha256:2b762d34e5f5549a90b78f304a47f98b6165cf938a2ca776b1c055db8f04fce1";
7
7
  export const ContractAiFixturesDigest = "sha256:5d68828a1364dc63cafbb3c2d3f5c5f6c232d5333e7668a9c79e7652e5144b42";
8
- export const ContractGeneratedGoDigest = "sha256:ef74356afbc6a36a543f6f6fe572b77dc3691ce2201f0654644d2a7f29a4ced4";
9
- export const ContractGeneratedTypeScriptDigest = "sha256:6bb6b13ea4722e3ec9e9d91c672461ec24b29076aeae0b14b62380cced658e92";
8
+ export const ContractGeneratedGoDigest = "sha256:0541904aad85c418a20de003bef68a42c8876d6cf8fe9f165472a5e77f81e045";
9
+ export const ContractGeneratedTypeScriptDigest = "sha256:bbbba7c14c480030e9a44b94a746a0978efe7f008788817d31e137007bf89c38";
@@ -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';
24
+ providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
25
25
  /**
26
26
  * Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
27
27
  */
@@ -50,6 +50,10 @@ export interface DeployRequest {
50
50
  */
51
51
  idempotencyKey?: string;
52
52
  environmentBindings?: DeployRequestEnvironmentBindings;
53
+ /**
54
+ * Preview-only. When true, the transformed code is NOT committed back to the source branch (benchmark deploys). Ignored outside preview.
55
+ */
56
+ benchRun?: boolean;
53
57
  bindingClassification: BindingClassificationSubject;
54
58
  }
55
59
  export interface DeployRequestSource {
@@ -109,6 +113,6 @@ interface BindingClassificationSubject {
109
113
  }
110
114
  interface BindingClassificationAiMapping {
111
115
  mappingVersion: string;
112
- providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram';
116
+ providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
113
117
  }
114
118
  export {};
@@ -1,7 +1,7 @@
1
1
  type BindingClassificationEntry = {
2
2
  kind: 'configuration' | 'secret' | 'provider_credential';
3
3
  confidence: 'high' | 'low';
4
- providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram';
4
+ providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
5
5
  /**
6
6
  * Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
7
7
  */
@@ -87,6 +87,6 @@ interface BindingClassificationSubject {
87
87
  }
88
88
  interface BindingClassificationAiMapping {
89
89
  mappingVersion: string;
90
- providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram';
90
+ providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
91
91
  }
92
92
  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';
16
+ export type SanitizedBindingProviderId = 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
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
  */
@@ -57,6 +57,10 @@ export interface TransformReport {
57
57
  };
58
58
  application: {
59
59
  runtime: string;
60
+ /**
61
+ * Optional reviewed runtime features selected for the standard application image. The first release supports Chromium for Node runtimes only.
62
+ */
63
+ runtimeFeatures?: 'chromium'[];
60
64
  buildKind: 'container' | 'static';
61
65
  topology: 'static' | 'backend' | 'frontend_and_backend';
62
66
  entrypoint: string;
@@ -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";
45
+ export type AiProviderType = "openai" | "anthropic" | "gemini" | "openrouter" | "deepseek" | "elevenlabs" | "deepgram" | "higgsfield";
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";
@@ -47,7 +47,7 @@ export const AI_PLATFORM_BASELINE = {
47
47
  schema: "harbour.ai-platform-baseline/1.0",
48
48
  artifactVersion: "1.0.0",
49
49
  controls: {
50
- permittedProviderTypes: ["anthropic", "gemini", "openai", "openrouter"],
50
+ permittedProviderTypes: ["anthropic", "gemini", "higgsfield", "openai", "openrouter"],
51
51
  requireApprovedModels: false,
52
52
  maxCaptureMode: "BEST_EFFORT",
53
53
  maxRetentionDays: 90,
@@ -70,7 +70,7 @@ export const AI_CLASSIFICATION_MINIMUMS = {
70
70
  defaultClassification: "Yellow",
71
71
  classes: {
72
72
  Green: {
73
- permittedProviderTypes: ["anthropic", "gemini", "openai", "openrouter"],
73
+ permittedProviderTypes: ["anthropic", "gemini", "higgsfield", "openai", "openrouter"],
74
74
  requireApprovedModels: false,
75
75
  maxCaptureMode: "BEST_EFFORT",
76
76
  maxRetentionDays: 90,
@@ -84,7 +84,7 @@ export const AI_CLASSIFICATION_MINIMUMS = {
84
84
  requiredGuardrails: [],
85
85
  },
86
86
  Yellow: {
87
- permittedProviderTypes: ["anthropic", "gemini", "openai", "openrouter"],
87
+ permittedProviderTypes: ["anthropic", "gemini", "higgsfield", "openai", "openrouter"],
88
88
  requireApprovedModels: true,
89
89
  maxCaptureMode: "BEST_EFFORT",
90
90
  maxRetentionDays: 60,
@@ -44,6 +44,7 @@ export interface AiInventoryCallsite {
44
44
  | 'ollama'
45
45
  | 'legacy-gemini'
46
46
  | 'direct-provider-rest'
47
+ | 'deepgram'
47
48
  | 'unknown';
48
49
  method: string;
49
50
  requestedModel?: string;
@@ -93,7 +93,7 @@ export interface AiPolicyClassificationMinimum {
93
93
  }
94
94
  export interface AiPolicyProvider {
95
95
  id: AiPolicyIdentifier;
96
- provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram';
96
+ provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
97
97
  baseUrl?: string;
98
98
  credentialSecretRef: string;
99
99
  enabled: boolean;
@@ -10,7 +10,7 @@ export type AiPricingDigest = string;
10
10
  export interface AiPricingRevision {
11
11
  schema: 'harbour.ai-pricing-revision/2.0';
12
12
  revisionId: AiPricingIdentifier;
13
- provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram';
13
+ provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
14
14
  providerModel: string;
15
15
  region?: AiPricingIdentifier;
16
16
  currency: 'USD';
@@ -33,6 +33,13 @@ export interface AiRuntimeContract {
33
33
  realtime?: AiRuntimeModelAlias;
34
34
  };
35
35
  policyDigest: AiRuntimeDigest;
36
+ /**
37
+ * Optional value-free descriptors for reviewed non-standard client environment boundaries. Mapping IDs are unique within a contract.
38
+ *
39
+ * @minItems 1
40
+ * @maxItems 16
41
+ */
42
+ configurationMappings?: AiConfigurationMappingDescriptor[];
36
43
  runtimeBinding?: AiRuntimeContractBinding;
37
44
  /**
38
45
  * @minItems 1
@@ -40,6 +47,17 @@ export interface AiRuntimeContract {
40
47
  */
41
48
  requiredStrategies: ('deployment_injection' | 'deterministic_adapter')[];
42
49
  }
50
+ /**
51
+ * Value-free descriptor for one registered OpenAI-compatible client environment boundary. Secret values are never part of this descriptor.
52
+ */
53
+ export interface AiConfigurationMappingDescriptor {
54
+ mappingId: string;
55
+ version: string;
56
+ protocol: 'openai-chat';
57
+ providerId: string;
58
+ apiKeyEnvironmentName: string;
59
+ baseUrlEnvironmentName: string;
60
+ }
43
61
  /**
44
62
  * Optional additive platform-neutral binding. Existing 1.0 records without it remain valid.
45
63
  */
@@ -50,3 +68,11 @@ export interface AiRuntimeContractBinding {
50
68
  secretRef: AiRuntimeContractSafeReference;
51
69
  runtimeBindingDigest: AiRuntimeDigest;
52
70
  }
71
+
72
+
73
+ /** True iff configurationMappings contains no repeated mappingId values. */
74
+ export function hasUniqueAiRuntimeContractConfigurationMappings(input: AiRuntimeContract): boolean {
75
+ const seen = new Set<string>();
76
+ for (const item of input.configurationMappings ?? []) { const value = item.mappingId; if (seen.has(value)) return false; seen.add(value); }
77
+ return true;
78
+ }
@@ -17,7 +17,7 @@ export type AiTraceEvent = {
17
17
  routeRevision?: string;
18
18
  requestedModel?: string;
19
19
  governedModelAlias?: string;
20
- provider?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram';
20
+ provider?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
21
21
  providerModel?: string;
22
22
  outcome: 'succeeded' | 'blocked' | 'failed' | 'cancelled';
23
23
  usage?: AiTraceUsage;
@@ -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';
48
+ provider: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'elevenlabs' | 'deepgram' | 'higgsfield';
49
49
  providerModel: string;
50
50
  priceRevision: AiTraceIdentifier;
51
51
  outcome: 'succeeded' | 'failed' | 'timed_out' | 'cancelled';
@@ -20,6 +20,10 @@ export interface ArtifactContract {
20
20
  ref: string;
21
21
  entrypoint: string;
22
22
  runtime: string;
23
+ /**
24
+ * Optional reviewed runtime features selected for the standard application image. Unknown and duplicate features are rejected.
25
+ */
26
+ runtime_features?: 'chromium'[];
23
27
  };
24
28
  static: {
25
29
  /**
@@ -71,6 +75,31 @@ export interface ArtifactContract {
71
75
  * MVP emits an empty array.
72
76
  */
73
77
  scheduled_tasks: {}[];
78
+ /**
79
+ * Optional bounded runtime profile and background-job mode for the application workload. Omitted resource_profile uses the standard profile and omitted background_jobs uses none.
80
+ */
81
+ workload?: {
82
+ /**
83
+ * Reviewed CPU/memory profile selected for the application container.
84
+ */
85
+ resource_profile?: 'standard' | 'memory-1g';
86
+ /**
87
+ * Background-job execution mode. The sqs mode enables the governed application job queue and queue-aware scale-to-zero.
88
+ */
89
+ background_jobs?: 'none' | 'sqs';
90
+ };
91
+ /**
92
+ * Optional method/path authentication policy compiled by the transformation. The default is SSO; listed routes preserve the application's own token, signature, or callback authorization.
93
+ */
94
+ route_auth?: {
95
+ version: 1;
96
+ default: 'sso_required';
97
+ rules: {
98
+ path: string;
99
+ methods: ('GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS')[];
100
+ mode: 'application_authorized';
101
+ }[];
102
+ };
74
103
  transform_report: {
75
104
  /**
76
105
  * Transformed surfaces, e.g. ["secrets","storage.sql"].
@@ -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';
22
+ 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
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.19.0.0" as const;
5
- export const ContractPublishVersion = "0.19.0" as const;
6
- export const ContractPublishTag = "v0.19.0" as const;
7
- export const ContractSchemasDigest = "sha256:3263c4ee323353316aeecc8741ce8dc7a740652a73e35587123fbf2330926b28" as const;
4
+ export const ContractRepositoryVersion = "0.22.0.0" as const;
5
+ export const ContractPublishVersion = "0.22.0" as const;
6
+ export const ContractPublishTag = "v0.22.0" as const;
7
+ export const ContractSchemasDigest = "sha256:2b762d34e5f5549a90b78f304a47f98b6165cf938a2ca776b1c055db8f04fce1" as const;
8
8
  export const ContractAiFixturesDigest = "sha256:5d68828a1364dc63cafbb3c2d3f5c5f6c232d5333e7668a9c79e7652e5144b42" as const;
9
- export const ContractGeneratedGoDigest = "sha256:ef74356afbc6a36a543f6f6fe572b77dc3691ce2201f0654644d2a7f29a4ced4" as const;
10
- export const ContractGeneratedTypeScriptDigest = "sha256:6bb6b13ea4722e3ec9e9d91c672461ec24b29076aeae0b14b62380cced658e92" as const;
9
+ export const ContractGeneratedGoDigest = "sha256:0541904aad85c418a20de003bef68a42c8876d6cf8fe9f165472a5e77f81e045" as const;
10
+ export const ContractGeneratedTypeScriptDigest = "sha256:bbbba7c14c480030e9a44b94a746a0978efe7f008788817d31e137007bf89c38" as const;
@@ -24,7 +24,7 @@ export type DeployRequestEnvironmentBinding1 = {
24
24
  type BindingClassificationEntry = {
25
25
  kind: 'configuration' | 'secret' | 'provider_credential';
26
26
  confidence: 'high' | 'low';
27
- providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram';
27
+ providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
28
28
  /**
29
29
  * Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
30
30
  */
@@ -54,6 +54,10 @@ export interface DeployRequest {
54
54
  */
55
55
  idempotencyKey?: string;
56
56
  environmentBindings?: DeployRequestEnvironmentBindings;
57
+ /**
58
+ * Preview-only. When true, the transformed code is NOT committed back to the source branch (benchmark deploys). Ignored outside preview.
59
+ */
60
+ benchRun?: boolean;
57
61
  bindingClassification: BindingClassificationSubject;
58
62
  }
59
63
  export interface DeployRequestSource {
@@ -113,5 +117,5 @@ interface BindingClassificationSubject {
113
117
  }
114
118
  interface BindingClassificationAiMapping {
115
119
  mappingVersion: string;
116
- providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram';
120
+ providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
117
121
  }
@@ -4,7 +4,7 @@
4
4
  type BindingClassificationEntry = {
5
5
  kind: 'configuration' | 'secret' | 'provider_credential';
6
6
  confidence: 'high' | 'low';
7
- providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram';
7
+ providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
8
8
  /**
9
9
  * Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
10
10
  */
@@ -91,5 +91,5 @@ interface BindingClassificationSubject {
91
91
  }
92
92
  interface BindingClassificationAiMapping {
93
93
  mappingVersion: string;
94
- providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram';
94
+ providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
95
95
  }
@@ -16,7 +16,8 @@ export type SanitizedRuntimeBinding = {
16
16
  */
17
17
  secretRef?: string;
18
18
  };
19
- export type SanitizedBindingProviderId = 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram';
19
+ export type SanitizedBindingProviderId =
20
+ 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
20
21
 
21
22
  /**
22
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.
@@ -60,6 +60,10 @@ export interface TransformReport {
60
60
  };
61
61
  application: {
62
62
  runtime: string;
63
+ /**
64
+ * Optional reviewed runtime features selected for the standard application image. The first release supports Chromium for Node runtimes only.
65
+ */
66
+ runtimeFeatures?: 'chromium'[];
63
67
  buildKind: 'container' | 'static';
64
68
  topology: 'static' | 'backend' | 'frontend_and_backend';
65
69
  entrypoint: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fourier-labs/harbour-contracts",
3
- "version": "0.19.0",
3
+ "version": "0.22.0",
4
4
  "description": "Single source of truth for every data shape that crosses a boundary between Harbour components.",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,
@@ -115,6 +115,7 @@
115
115
  "ollama",
116
116
  "legacy-gemini",
117
117
  "direct-provider-rest",
118
+ "deepgram",
118
119
  "unknown"
119
120
  ]
120
121
  },
@@ -108,7 +108,7 @@
108
108
  "required": ["id", "provider", "credentialSecretRef", "enabled"],
109
109
  "properties": {
110
110
  "id": { "$ref": "#/definitions/AiPolicyIdentifier" },
111
- "provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram"] },
111
+ "provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield"] },
112
112
  "baseUrl": { "type": "string", "format": "uri", "maxLength": 512 },
113
113
  "credentialSecretRef": {
114
114
  "type": "string",
@@ -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"] },
12
+ "provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield"] },
13
13
  "providerModel": { "type": "string", "minLength": 1, "maxLength": 256 },
14
14
  "region": { "$ref": "#/definitions/AiPricingIdentifier" },
15
15
  "currency": { "type": "string", "const": "USD" },
@@ -59,6 +59,14 @@
59
59
  }
60
60
  },
61
61
  "policyDigest": { "$ref": "#/definitions/AiRuntimeDigest" },
62
+ "configurationMappings": {
63
+ "description": "Optional value-free descriptors for reviewed non-standard client environment boundaries. Mapping IDs are unique within a contract.",
64
+ "type": "array",
65
+ "minItems": 1,
66
+ "maxItems": 16,
67
+ "uniqueItems": true,
68
+ "items": { "$ref": "#/definitions/AiConfigurationMappingDescriptor" }
69
+ },
62
70
  "runtimeBinding": { "$ref": "#/definitions/AiRuntimeContractBinding" },
63
71
  "requiredStrategies": {
64
72
  "type": "array",
@@ -88,6 +96,20 @@
88
96
  "maxLength": 160,
89
97
  "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]*/[A-Za-z0-9][A-Za-z0-9_./-]*$"
90
98
  },
99
+ "AiConfigurationMappingDescriptor": {
100
+ "description": "Value-free descriptor for one registered OpenAI-compatible client environment boundary. Secret values are never part of this descriptor.",
101
+ "type": "object",
102
+ "additionalProperties": false,
103
+ "required": ["mappingId", "version", "protocol", "providerId", "apiKeyEnvironmentName", "baseUrlEnvironmentName"],
104
+ "properties": {
105
+ "mappingId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$" },
106
+ "version": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$" },
107
+ "protocol": { "type": "string", "const": "openai-chat" },
108
+ "providerId": { "type": "string", "minLength": 1, "maxLength": 64, "pattern": "^[a-z][a-z0-9_.-]{0,63}$" },
109
+ "apiKeyEnvironmentName": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[A-Z][A-Z0-9_]{0,127}$" },
110
+ "baseUrlEnvironmentName": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[A-Z][A-Z0-9_]{0,127}$" }
111
+ }
112
+ },
91
113
  "AiRuntimeContractBinding": {
92
114
  "description": "Optional additive platform-neutral binding. Existing 1.0 records without it remain valid.",
93
115
  "type": "object",
@@ -108,6 +130,7 @@
108
130
  "pattern": "^(?:aws-sm|iam-role|k8s-sa|secretref|spiffe|vault|vault-v2)://[A-Za-z0-9][A-Za-z0-9._-]{0,127}(?:/[A-Za-z0-9][A-Za-z0-9._~+=-]{0,255})*$"
109
131
  }
110
132
  },
133
+ "x-unique-array-by": [{ "field": "configurationMappings", "key": "mappingId" }],
111
134
  "x-safe-reference-pattern": "^(?:aws-sm|iam-role|k8s-sa|secretref|spiffe|vault|vault-v2)://[A-Za-z0-9][A-Za-z0-9._-]{0,127}(?:/[A-Za-z0-9][A-Za-z0-9._~+=-]{0,255})*$",
112
135
  "x-approved-reference-schemes": ["aws-sm", "iam-role", "k8s-sa", "secretref", "spiffe", "vault", "vault-v2"]
113
136
  }
@@ -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"] },
45
+ "provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield"] },
46
46
  "providerModel": { "type": "string", "minLength": 1, "maxLength": 256 },
47
47
  "outcome": { "type": "string", "enum": ["succeeded", "blocked", "failed", "cancelled"] },
48
48
  "usage": { "$ref": "#/definitions/AiTraceUsage" },
@@ -134,7 +134,7 @@
134
134
  "required": ["attempt", "provider", "providerModel", "priceRevision", "outcome", "usage", "costMicroUsd", "latencyMs"],
135
135
  "properties": {
136
136
  "attempt": { "type": "integer", "minimum": 1, "maximum": 32 },
137
- "provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram"] },
137
+ "provider": { "type": "string", "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "elevenlabs", "deepgram", "higgsfield"] },
138
138
  "providerModel": { "type": "string", "minLength": 1, "maxLength": 256 },
139
139
  "priceRevision": { "$ref": "#/definitions/AiTraceIdentifier" },
140
140
  "outcome": { "type": "string", "enum": ["succeeded", "failed", "timed_out", "cancelled"] },
@@ -36,7 +36,16 @@
36
36
  "type": { "type": "string", "enum": ["oci-image", "zip"] },
37
37
  "ref": { "type": "string", "minLength": 1, "description": "ECR uri@digest (oci-image) or S3 key (zip)." },
38
38
  "entrypoint": { "type": "string", "minLength": 1 },
39
- "runtime": { "type": "string", "minLength": 1 }
39
+ "runtime": { "type": "string", "minLength": 1 },
40
+ "runtime_features": {
41
+ "type": "array",
42
+ "uniqueItems": true,
43
+ "items": {
44
+ "type": "string",
45
+ "enum": ["chromium"]
46
+ },
47
+ "description": "Optional reviewed runtime features selected for the standard application image. Unknown and duplicate features are rejected."
48
+ }
40
49
  }
41
50
  },
42
51
  "static": {
@@ -109,6 +118,55 @@
109
118
  "description": "MVP emits an empty array.",
110
119
  "items": { "type": "object" }
111
120
  },
121
+ "workload": {
122
+ "type": "object",
123
+ "additionalProperties": false,
124
+ "description": "Optional bounded runtime profile and background-job mode for the application workload. Omitted resource_profile uses the standard profile and omitted background_jobs uses none.",
125
+ "properties": {
126
+ "resource_profile": {
127
+ "type": "string",
128
+ "enum": ["standard", "memory-1g"],
129
+ "description": "Reviewed CPU/memory profile selected for the application container."
130
+ },
131
+ "background_jobs": {
132
+ "type": "string",
133
+ "enum": ["none", "sqs"],
134
+ "description": "Background-job execution mode. The sqs mode enables the governed application job queue and queue-aware scale-to-zero."
135
+ }
136
+ }
137
+ },
138
+ "route_auth": {
139
+ "description": "Optional method/path authentication policy compiled by the transformation. The default is SSO; listed routes preserve the application's own token, signature, or callback authorization.",
140
+ "type": "object",
141
+ "additionalProperties": false,
142
+ "required": ["version", "default", "rules"],
143
+ "properties": {
144
+ "version": { "type": "integer", "const": 1 },
145
+ "default": { "type": "string", "const": "sso_required" },
146
+ "rules": {
147
+ "type": "array",
148
+ "items": {
149
+ "type": "object",
150
+ "additionalProperties": false,
151
+ "required": ["path", "methods", "mode"],
152
+ "properties": {
153
+ "path": {
154
+ "type": "string",
155
+ "pattern": "^/(?:[A-Za-z0-9._~-]+/)*(?:[A-Za-z0-9._~-]+|\\*)$"
156
+ },
157
+ "methods": {
158
+ "type": "array",
159
+ "items": {
160
+ "type": "string",
161
+ "enum": ["GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]
162
+ }
163
+ },
164
+ "mode": { "type": "string", "const": "application_authorized" }
165
+ }
166
+ }
167
+ }
168
+ }
169
+ },
112
170
  "transform_report": {
113
171
  "type": "object",
114
172
  "additionalProperties": false,
@@ -64,7 +64,7 @@
64
64
  },
65
65
  "BindingClassificationProviderId": {
66
66
  "type": "string",
67
- "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "deepgram"]
67
+ "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "deepgram", "higgsfield"]
68
68
  },
69
69
  "BindingClassificationCredentialCategory": {
70
70
  "description": "Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.",
@@ -34,6 +34,11 @@
34
34
  "environmentBindings": {
35
35
  "$ref": "#/definitions/DeployRequestEnvironmentBindings"
36
36
  },
37
+ "benchRun": {
38
+ "type": "boolean",
39
+ "default": false,
40
+ "description": "Preview-only. When true, the transformed code is NOT committed back to the source branch (benchmark deploys). Ignored outside preview."
41
+ },
37
42
  "bindingClassification": {
38
43
  "$ref": "binding-classification-subject.schema.json",
39
44
  "description": "Complete pre-allocation, value-free binding-name classification. DCP verifies its tenant/app/environment/source identity and exact name coverage before minting the versionId."
@@ -62,7 +62,7 @@
62
62
  },
63
63
  "SanitizedBindingProviderId": {
64
64
  "type": "string",
65
- "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "deepgram"]
65
+ "enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "deepgram", "higgsfield"]
66
66
  },
67
67
  "SanitizedBindingAiMapping": {
68
68
  "type": "object",
@@ -126,6 +126,15 @@
126
126
  "type": "string",
127
127
  "pattern": "^(?:nodejs|python)[0-9]+(?:\\.[0-9]+)?$"
128
128
  },
129
+ "runtimeFeatures": {
130
+ "type": "array",
131
+ "uniqueItems": true,
132
+ "items": {
133
+ "type": "string",
134
+ "enum": ["chromium"]
135
+ },
136
+ "description": "Optional reviewed runtime features selected for the standard application image. The first release supports Chromium for Node runtimes only."
137
+ },
129
138
  "buildKind": { "type": "string", "enum": ["container", "static"] },
130
139
  "topology": {
131
140
  "type": "string",