@fourier-labs/harbour-contracts 0.6.0 → 0.10.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/README.md +49 -4
- package/contract-release.json +146 -0
- package/dist/gen-ts/ai-budget-ledger-event.d.ts +21 -0
- package/dist/gen-ts/ai-budget-ledger-event.js +3 -0
- package/dist/gen-ts/ai-classification-stamp.d.ts +25 -0
- package/dist/gen-ts/ai-classification-stamp.js +3 -0
- package/dist/gen-ts/ai-composite-policy-digest-helper.d.ts +5 -0
- package/dist/gen-ts/ai-composite-policy-digest-helper.js +13 -0
- package/dist/gen-ts/ai-composite-policy-digest.d.ts +12 -0
- package/dist/gen-ts/ai-composite-policy-digest.js +3 -0
- package/dist/gen-ts/ai-deployment-gate-decision.d.ts +27 -0
- package/dist/gen-ts/ai-deployment-gate-decision.js +3 -0
- package/dist/gen-ts/ai-gateway-key-lifecycle-event.d.ts +49 -0
- package/dist/gen-ts/ai-gateway-key-lifecycle-event.js +16 -0
- package/dist/gen-ts/ai-governance-decision.d.ts +12 -0
- package/dist/gen-ts/ai-metering-policy.d.ts +16 -0
- package/dist/gen-ts/ai-metering-policy.js +3 -0
- package/dist/gen-ts/ai-pricing-revision.d.ts +29 -0
- package/dist/gen-ts/ai-pricing-revision.js +3 -0
- package/dist/gen-ts/ai-runtime-binding.d.ts +14 -0
- package/dist/gen-ts/ai-runtime-binding.js +3 -0
- package/dist/gen-ts/ai-runtime-contract.d.ts +15 -0
- package/dist/gen-ts/ai-trace-event-v2.d.ts +31 -0
- package/dist/gen-ts/ai-trace-event-v2.js +3 -0
- package/dist/gen-ts/ai-verification-evidence.d.ts +1 -0
- package/dist/gen-ts/binding-classification-digest-helper.d.ts +11 -0
- package/dist/gen-ts/binding-classification-digest-helper.js +47 -0
- package/dist/gen-ts/binding-classification-subject.d.ts +56 -0
- package/dist/gen-ts/binding-classification-subject.js +3 -0
- package/dist/gen-ts/contract-release.d.ts +7 -0
- package/dist/gen-ts/contract-release.js +9 -0
- package/dist/gen-ts/deploy-request.d.ts +52 -0
- package/dist/gen-ts/deploy-response.d.ts +8 -0
- package/dist/gen-ts/index.d.ts +15 -0
- package/dist/gen-ts/index.js +15 -0
- package/dist/gen-ts/promotion-request.d.ts +52 -0
- package/dist/gen-ts/promotion-response.d.ts +8 -0
- package/dist/gen-ts/sanitized-binding-digest-helper.d.ts +7 -0
- package/dist/gen-ts/sanitized-binding-digest-helper.js +58 -0
- package/dist/gen-ts/sanitized-binding-evidence.d.ts +47 -0
- package/dist/gen-ts/sanitized-binding-evidence.js +3 -0
- package/fixtures/ai/adversarial-binding-classification-value.json +28 -0
- package/fixtures/ai/adversarial-sanitized-binding-relabel.json +32 -0
- package/fixtures/ai/valid-binding-classification-subject.json +46 -0
- package/fixtures/ai/valid-blocked-trace-event.json +31 -0
- package/fixtures/ai/valid-budget-ledger-event.json +15 -0
- package/fixtures/ai/valid-classification-stamp.json +19 -0
- package/fixtures/ai/valid-composite-policy-digest.json +11 -0
- package/fixtures/ai/valid-deployment-gate-decision.json +18 -0
- package/fixtures/ai/valid-failed-trace-event.json +50 -0
- package/fixtures/ai/valid-gateway-key-lifecycle-event.json +16 -0
- package/fixtures/ai/valid-gateway-key-lookup.json +14 -0
- package/fixtures/ai/valid-governance-decision.json +53 -0
- package/fixtures/ai/valid-inventory.json +30 -0
- package/fixtures/ai/valid-metering-policy.json +8 -0
- package/fixtures/ai/valid-policy-snapshot.json +117 -0
- package/fixtures/ai/valid-pricing-revision.json +14 -0
- package/fixtures/ai/valid-runtime-binding.json +7 -0
- package/fixtures/ai/valid-runtime-contract.json +24 -0
- package/fixtures/ai/valid-sanitized-binding-evidence.json +32 -0
- package/fixtures/ai/valid-source-revision-digest.json +6 -0
- package/fixtures/ai/valid-trace-event-v2.json +24 -0
- package/fixtures/ai/valid-trace-event.json +41 -0
- package/fixtures/ai/valid-transform-event.json +32 -0
- package/fixtures/ai/valid-transform-result.json +23 -0
- package/fixtures/ai/valid-verification-evidence.json +33 -0
- package/gen-ts/ai-budget-ledger-event.ts +25 -0
- package/gen-ts/ai-callsite-inventory.ts +64 -0
- package/gen-ts/ai-classification-stamp.ts +28 -0
- package/gen-ts/ai-composite-policy-digest-helper.ts +18 -0
- package/gen-ts/ai-composite-policy-digest.ts +16 -0
- package/gen-ts/ai-deployment-gate-decision.ts +30 -0
- package/gen-ts/ai-gateway-key-lifecycle-event.ts +81 -0
- package/gen-ts/ai-gateway-key-lookup.ts +23 -0
- package/gen-ts/ai-gateway-key-token.ts +7 -0
- package/gen-ts/ai-governance-decision.ts +90 -0
- package/gen-ts/ai-metering-policy.ts +20 -0
- package/gen-ts/ai-policy-snapshot.ts +169 -0
- package/gen-ts/ai-pricing-revision.ts +33 -0
- package/gen-ts/ai-runtime-binding.ts +18 -0
- package/gen-ts/ai-runtime-contract.ts +46 -0
- package/gen-ts/ai-trace-event-v2.ts +35 -0
- package/gen-ts/ai-trace-event.ts +72 -0
- package/gen-ts/ai-transform-event.ts +51 -0
- package/gen-ts/ai-transform-result.ts +36 -0
- package/gen-ts/ai-verification-evidence.ts +54 -0
- package/gen-ts/api-error-response.ts +16 -0
- package/gen-ts/artifact-contract.ts +81 -0
- package/gen-ts/binding-classification-digest-helper.ts +44 -0
- package/gen-ts/binding-classification-subject.ts +60 -0
- package/gen-ts/contract-release.ts +10 -0
- package/gen-ts/data-dependency.ts +46 -0
- package/gen-ts/data-grant.ts +71 -0
- package/gen-ts/data-source.ts +78 -0
- package/gen-ts/deploy-request.ts +117 -0
- package/gen-ts/deploy-response.ts +33 -0
- package/gen-ts/deployment-environment.ts +7 -0
- package/gen-ts/deployment-source.ts +16 -0
- package/gen-ts/deployment-status-failure.ts +12 -0
- package/gen-ts/deployment-status-request.ts +11 -0
- package/gen-ts/deployment-status-response.ts +39 -0
- package/gen-ts/env-bindings.ts +64 -0
- package/gen-ts/error-category-registry.ts +108 -0
- package/gen-ts/error-category.ts +7 -0
- package/gen-ts/error-envelope.ts +49 -0
- package/gen-ts/index.ts +51 -0
- package/gen-ts/kvs-routing-entry.ts +30 -0
- package/gen-ts/promotion-request.ts +95 -0
- package/gen-ts/promotion-response.ts +28 -0
- package/gen-ts/sanitized-binding-digest-helper.ts +33 -0
- package/gen-ts/sanitized-binding-evidence.ts +51 -0
- package/gen-ts/secret-reference.ts +40 -0
- package/gen-ts/transform-report.ts +105 -0
- package/gen-ts/version-state-machine.ts +52 -0
- package/gen-ts/version-state.ts +19 -0
- package/package.json +8 -4
- package/schema/ai-budget-ledger-event.schema.json +29 -0
- package/schema/ai-classification-stamp.schema.json +40 -0
- package/schema/ai-composite-policy-digest.schema.json +27 -0
- package/schema/ai-deployment-gate-decision.schema.json +38 -0
- package/schema/ai-gateway-key-lifecycle-event.schema.json +61 -0
- package/schema/ai-governance-decision.schema.json +23 -2
- package/schema/ai-metering-policy.schema.json +18 -0
- package/schema/ai-pricing-revision.schema.json +38 -0
- package/schema/ai-runtime-binding.schema.json +26 -0
- package/schema/ai-runtime-contract.schema.json +24 -2
- package/schema/ai-trace-event-v2.schema.json +41 -0
- package/schema/ai-verification-evidence.schema.json +1 -0
- package/schema/binding-classification-subject.schema.json +119 -0
- package/schema/deploy-request.schema.json +37 -2
- package/schema/deploy-response.schema.json +11 -1
- package/schema/promotion-request.schema.json +5 -1
- package/schema/promotion-response.schema.json +11 -1
- package/schema/sanitized-binding-evidence.schema.json +102 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-trace-event/1.0",
|
|
3
|
+
"traceId": "trc_blocked123",
|
|
4
|
+
"requestId": "req_blocked123",
|
|
5
|
+
"tenantId": "fourier",
|
|
6
|
+
"appId": "support-assistant",
|
|
7
|
+
"environment": "production",
|
|
8
|
+
"versionId": "fourier#support-assistant#production#000124",
|
|
9
|
+
"policyDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
10
|
+
"requestedModel": "gpt-4.1-mini",
|
|
11
|
+
"governedModelAlias": "harbour/standard",
|
|
12
|
+
"outcome": "blocked",
|
|
13
|
+
"costMicroUsd": 0,
|
|
14
|
+
"latencyMs": 4,
|
|
15
|
+
"retryCount": 0,
|
|
16
|
+
"fallbackUsed": false,
|
|
17
|
+
"reservationId": "req_blocked123#budget",
|
|
18
|
+
"attempts": [],
|
|
19
|
+
"guardrailResults": [
|
|
20
|
+
{
|
|
21
|
+
"ruleId": "input-secret-pattern",
|
|
22
|
+
"detectorId": "input.secret_pattern",
|
|
23
|
+
"detectorVersion": "1.0.0",
|
|
24
|
+
"phase": "input",
|
|
25
|
+
"action": "BLOCK",
|
|
26
|
+
"result": "blocked"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"contentCaptureStatus": "off",
|
|
30
|
+
"occurredAt": "2026-08-02T10:00:00Z"
|
|
31
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-budget-ledger-event/2.0",
|
|
3
|
+
"eventId": "ledger_000124_1",
|
|
4
|
+
"idempotencyKey": "reserve_000124",
|
|
5
|
+
"budgetScope": "fourier/support-assistant/production",
|
|
6
|
+
"period": "2026-08",
|
|
7
|
+
"eventType": "RESERVED",
|
|
8
|
+
"reservationId": "req_example123#budget",
|
|
9
|
+
"requestId": "req_example123",
|
|
10
|
+
"amountMicroUsd": 500,
|
|
11
|
+
"committedMicroUsdAfter": 10500,
|
|
12
|
+
"pricingRevisionDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
13
|
+
"eventDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
14
|
+
"occurredAt": "2026-08-10T10:00:00Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-classification-stamp/1.0",
|
|
3
|
+
"stampId": "cls_000124",
|
|
4
|
+
"tenantId": "fourier",
|
|
5
|
+
"appId": "support-assistant",
|
|
6
|
+
"environment": "preview",
|
|
7
|
+
"versionId": "fourier#support-assistant#preview#000124",
|
|
8
|
+
"sourceRevision": "0123456789abcdef",
|
|
9
|
+
"status": "AVAILABLE",
|
|
10
|
+
"classification": "Yellow",
|
|
11
|
+
"classifierId": "harbour-source-classifier",
|
|
12
|
+
"classifierVersion": "1.0.0",
|
|
13
|
+
"sourceDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
14
|
+
"inventoryDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
15
|
+
"securityEvidenceDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
16
|
+
"evidenceDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
17
|
+
"stampDigest": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
18
|
+
"stampedAt": "2026-08-10T10:00:00Z"
|
|
19
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"schema": "harbour.ai-composite-policy-digest/1.0",
|
|
4
|
+
"baselineDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
5
|
+
"classificationStampDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
6
|
+
"tenantPolicyDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
7
|
+
"applicationPolicyDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
|
|
8
|
+
},
|
|
9
|
+
"preimage": "harbour.ai-composite-policy-digest/1\nsha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nsha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\nsha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\nsha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\n-",
|
|
10
|
+
"digest": "sha256:b6cf8539c27e06d64213c564c40455d56303cbf30fd346253ea1842c7377d2a0"
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-deployment-gate-decision/1.0",
|
|
3
|
+
"decisionId": "gate_000124_1",
|
|
4
|
+
"sequence": 1,
|
|
5
|
+
"tenantId": "fourier",
|
|
6
|
+
"appId": "support-assistant",
|
|
7
|
+
"environment": "preview",
|
|
8
|
+
"versionId": "fourier#support-assistant#preview#000124",
|
|
9
|
+
"sourceRevision": "0123456789abcdef",
|
|
10
|
+
"decision": "PASS",
|
|
11
|
+
"reasonCodes": [],
|
|
12
|
+
"classificationStampDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
13
|
+
"planDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
14
|
+
"policyDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
15
|
+
"evidenceDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
16
|
+
"decisionDigest": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
17
|
+
"decidedAt": "2026-08-10T10:05:00Z"
|
|
18
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-trace-event/1.0",
|
|
3
|
+
"traceId": "trc_failed123",
|
|
4
|
+
"requestId": "req_failed123",
|
|
5
|
+
"tenantId": "fourier",
|
|
6
|
+
"appId": "support-assistant",
|
|
7
|
+
"environment": "production",
|
|
8
|
+
"versionId": "fourier#support-assistant#production#000124",
|
|
9
|
+
"callsiteFingerprint": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
10
|
+
"policyDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
11
|
+
"routeRevision": "harbour/standard#3",
|
|
12
|
+
"requestedModel": "gpt-4.1-mini",
|
|
13
|
+
"governedModelAlias": "harbour/standard",
|
|
14
|
+
"provider": "openai",
|
|
15
|
+
"providerModel": "gpt-4.1-mini",
|
|
16
|
+
"outcome": "failed",
|
|
17
|
+
"priceRevision": "openai-gpt-4.1-mini-2026-08-01",
|
|
18
|
+
"costMicroUsd": 48,
|
|
19
|
+
"latencyMs": 31204,
|
|
20
|
+
"retryCount": 1,
|
|
21
|
+
"fallbackUsed": false,
|
|
22
|
+
"reservationId": "req_failed123#budget",
|
|
23
|
+
"attempts": [
|
|
24
|
+
{
|
|
25
|
+
"attempt": 1,
|
|
26
|
+
"provider": "openai",
|
|
27
|
+
"providerModel": "gpt-4.1-mini",
|
|
28
|
+
"priceRevision": "openai-gpt-4.1-mini-2026-08-01",
|
|
29
|
+
"outcome": "failed",
|
|
30
|
+
"usage": null,
|
|
31
|
+
"costMicroUsd": 0,
|
|
32
|
+
"latencyMs": 30001,
|
|
33
|
+
"errorCode": "provider_unavailable"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"attempt": 2,
|
|
37
|
+
"provider": "openai",
|
|
38
|
+
"providerModel": "gpt-4.1-mini",
|
|
39
|
+
"priceRevision": "openai-gpt-4.1-mini-2026-08-01",
|
|
40
|
+
"outcome": "failed",
|
|
41
|
+
"usage": { "inputTokens": 120, "outputTokens": 0 },
|
|
42
|
+
"costMicroUsd": 48,
|
|
43
|
+
"latencyMs": 1203,
|
|
44
|
+
"errorCode": "provider_server_error"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"guardrailResults": [],
|
|
48
|
+
"contentCaptureStatus": "off",
|
|
49
|
+
"occurredAt": "2026-08-02T10:00:00Z"
|
|
50
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-gateway-key-lifecycle-event/1.0",
|
|
3
|
+
"eventId": "keyevt_000124_2",
|
|
4
|
+
"sequence": 2,
|
|
5
|
+
"keyId": "0123456789abcdef0123456789abcdef",
|
|
6
|
+
"tenantId": "fourier",
|
|
7
|
+
"appId": "support-assistant",
|
|
8
|
+
"environment": "preview",
|
|
9
|
+
"versionId": "fourier#support-assistant#preview#000124",
|
|
10
|
+
"fromStatus": "PENDING",
|
|
11
|
+
"toStatus": "ACTIVE",
|
|
12
|
+
"cause": "ACTIVATION",
|
|
13
|
+
"secretRef": "aws-sm://harbour/ai/fourier/support-assistant/preview/versions/000124/gateway-key",
|
|
14
|
+
"eventDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
15
|
+
"occurredAt": "2026-08-10T10:03:00Z"
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-gateway-key-lookup/1.0",
|
|
3
|
+
"keyId": "0123456789abcdef0123456789abcdef",
|
|
4
|
+
"tenantId": "fourier",
|
|
5
|
+
"appId": "support-assistant",
|
|
6
|
+
"environment": "preview",
|
|
7
|
+
"versionId": "fourier#support-assistant#preview#000124",
|
|
8
|
+
"tokenPrefix": "hbr_test_",
|
|
9
|
+
"status": "ACTIVE",
|
|
10
|
+
"keyMac": "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
|
|
11
|
+
"createdAt": "2026-08-02T09:59:00Z",
|
|
12
|
+
"activatedAt": "2026-08-02T10:00:00Z",
|
|
13
|
+
"expiresAt": "2026-09-01T10:00:00Z"
|
|
14
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-governance-decision/1.0",
|
|
3
|
+
"phase": "PLAN",
|
|
4
|
+
"tenantId": "fourier",
|
|
5
|
+
"appId": "support-assistant",
|
|
6
|
+
"environment": "preview",
|
|
7
|
+
"versionId": "fourier#support-assistant#preview#000124",
|
|
8
|
+
"sourceRevision": "0123456789abcdef",
|
|
9
|
+
"decision": "PASS",
|
|
10
|
+
"interceptionPath": "DETERMINISTIC_ADAPTER",
|
|
11
|
+
"reasonCodes": [],
|
|
12
|
+
"uncoveredCallsiteFingerprints": [],
|
|
13
|
+
"inventoryDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
14
|
+
"policyDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
15
|
+
"runtimeContractDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
16
|
+
"interceptionPlan": [
|
|
17
|
+
{
|
|
18
|
+
"callSiteFingerprint": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
19
|
+
"sourcePath": "src/ai-client.ts",
|
|
20
|
+
"expectedSourceFileSha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
21
|
+
"strategy": "deterministic_adapter",
|
|
22
|
+
"allowedSyntaxKinds": ["ImportDeclaration", "NewExpression"],
|
|
23
|
+
"transformId": "google-genai-client-boundary",
|
|
24
|
+
"transformVersion": "1.0.0",
|
|
25
|
+
"runtimeShimName": "@harbour/gemini-compat",
|
|
26
|
+
"runtimeShimVersion": "1.0.0",
|
|
27
|
+
"runtimeShimDigest": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"interceptionPlanDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
31
|
+
"runtimeContract": {
|
|
32
|
+
"schema": "harbour.ai-runtime-contract/1.0",
|
|
33
|
+
"tenantId": "fourier",
|
|
34
|
+
"appId": "support-assistant",
|
|
35
|
+
"environment": "preview",
|
|
36
|
+
"versionId": "fourier#support-assistant#preview#000124",
|
|
37
|
+
"sourceRevision": "0123456789abcdef",
|
|
38
|
+
"mode": "enforce",
|
|
39
|
+
"gatewayBaseUrl": "https://ai.harbour.example/v1",
|
|
40
|
+
"gatewayKeySecretRef": "aws-sm://harbour/ai/fourier/support-assistant/preview/versions/000124/gateway-key",
|
|
41
|
+
"modelAliases": { "generation": "harbour/standard" },
|
|
42
|
+
"policyDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
43
|
+
"runtimeBinding": {
|
|
44
|
+
"schema": "harbour.ai-runtime-binding/1.0",
|
|
45
|
+
"platform": "aws_lambda",
|
|
46
|
+
"workloadIdentityRef": "iam-role://harbour/preview/support-assistant/000124",
|
|
47
|
+
"secretRef": "aws-sm://harbour/ai/fourier/support-assistant/preview/versions/000124/gateway-key",
|
|
48
|
+
"runtimeBindingDigest": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
|
|
49
|
+
},
|
|
50
|
+
"requiredStrategies": ["deterministic_adapter"]
|
|
51
|
+
},
|
|
52
|
+
"decidedAt": "2026-08-02T10:00:00Z"
|
|
53
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-callsite-inventory/1.0",
|
|
3
|
+
"tenantId": "fourier",
|
|
4
|
+
"appId": "support-assistant",
|
|
5
|
+
"environment": "preview",
|
|
6
|
+
"versionId": "fourier#support-assistant#preview#000124",
|
|
7
|
+
"sourceRevision": "0123456789abcdef",
|
|
8
|
+
"analyzerVersion": "ai-callsites/1.0",
|
|
9
|
+
"coverage": "complete_for_supported_sdks",
|
|
10
|
+
"scanStatus": "cybersecurity_scan_unavailable",
|
|
11
|
+
"callsites": [
|
|
12
|
+
{
|
|
13
|
+
"fingerprint": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
14
|
+
"path": "src/ai-client.ts",
|
|
15
|
+
"sourceFileSha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
16
|
+
"line": 18,
|
|
17
|
+
"language": "typescript",
|
|
18
|
+
"sdk": "openai",
|
|
19
|
+
"method": "responses.create",
|
|
20
|
+
"requestedModel": "gpt-4.1-mini",
|
|
21
|
+
"strategy": "deployment_injection",
|
|
22
|
+
"status": "detected",
|
|
23
|
+
"securityFindingIds": [],
|
|
24
|
+
"evidence": {
|
|
25
|
+
"fingerprint": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
26
|
+
"excerpt": "openai call via responses.create"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-metering-policy/2.0",
|
|
3
|
+
"policyDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
4
|
+
"pricingRevisionDigests": ["sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"],
|
|
5
|
+
"reservationMode": "committed_exposure",
|
|
6
|
+
"policyDigestV2": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
7
|
+
"publishedAt": "2026-08-10T09:00:00Z"
|
|
8
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-policy-snapshot/1.0",
|
|
3
|
+
"scope": {
|
|
4
|
+
"level": "application_environment",
|
|
5
|
+
"tenantId": "fourier",
|
|
6
|
+
"appId": "support-assistant",
|
|
7
|
+
"environment": "preview"
|
|
8
|
+
},
|
|
9
|
+
"revision": 3,
|
|
10
|
+
"publishedAt": "2026-08-02T10:00:00Z",
|
|
11
|
+
"contentDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
12
|
+
"baselineDigest": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
13
|
+
"classificationMinimum": {
|
|
14
|
+
"classification": "Yellow",
|
|
15
|
+
"mappingDigest": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
16
|
+
},
|
|
17
|
+
"providers": [
|
|
18
|
+
{
|
|
19
|
+
"id": "openai-primary",
|
|
20
|
+
"provider": "openai",
|
|
21
|
+
"baseUrl": "https://api.openai.com/v1",
|
|
22
|
+
"credentialSecretRef": "aws-sm://harbour/nonprod/ai/providers/openai/primary",
|
|
23
|
+
"enabled": true
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"models": [
|
|
27
|
+
{
|
|
28
|
+
"id": "openai-gpt-4.1-mini",
|
|
29
|
+
"providerId": "openai-primary",
|
|
30
|
+
"providerModel": "gpt-4.1-mini",
|
|
31
|
+
"capabilities": ["generation"],
|
|
32
|
+
"approved": true,
|
|
33
|
+
"pricing": {
|
|
34
|
+
"revision": "openai-gpt-4.1-mini-2026-08-01",
|
|
35
|
+
"inputMicroUsdPerMillion": 400000,
|
|
36
|
+
"outputMicroUsdPerMillion": 1600000
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"routes": [
|
|
41
|
+
{
|
|
42
|
+
"alias": "harbour/standard",
|
|
43
|
+
"version": 3,
|
|
44
|
+
"capability": "generation",
|
|
45
|
+
"targets": [
|
|
46
|
+
{ "modelId": "openai-gpt-4.1-mini", "priority": 0, "weight": 10000 }
|
|
47
|
+
],
|
|
48
|
+
"retryCount": 1,
|
|
49
|
+
"timeoutMs": 30000
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"policies": [
|
|
53
|
+
{
|
|
54
|
+
"name": "default-generation",
|
|
55
|
+
"version": 2,
|
|
56
|
+
"maxRequestBytes": 2097152,
|
|
57
|
+
"maxInputTokens": 32000,
|
|
58
|
+
"maxOutputTokens": 4096,
|
|
59
|
+
"bufferedDelivery": false,
|
|
60
|
+
"permittedRequestFields": {
|
|
61
|
+
"temperature": true,
|
|
62
|
+
"maxOutputTokens": true,
|
|
63
|
+
"responseFormat": false,
|
|
64
|
+
"tools": true
|
|
65
|
+
},
|
|
66
|
+
"guardrails": [
|
|
67
|
+
{
|
|
68
|
+
"ruleId": "input-tool-name-allowlist",
|
|
69
|
+
"detectorId": "tool.name_allowlist",
|
|
70
|
+
"detectorVersion": "1.0.0",
|
|
71
|
+
"phase": "input",
|
|
72
|
+
"action": "BLOCK",
|
|
73
|
+
"parameters": {
|
|
74
|
+
"allowedTools": ["search_documents"]
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"ruleId": "output-json-shape",
|
|
79
|
+
"detectorId": "output.json_schema",
|
|
80
|
+
"detectorVersion": "1.0.0",
|
|
81
|
+
"phase": "output",
|
|
82
|
+
"action": "BLOCK",
|
|
83
|
+
"parameters": {
|
|
84
|
+
"jsonSchema": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"additionalProperties": false,
|
|
87
|
+
"properties": {
|
|
88
|
+
"answer": { "type": "string", "maxLength": 4000 },
|
|
89
|
+
"citations": {
|
|
90
|
+
"type": "array",
|
|
91
|
+
"maxItems": 16,
|
|
92
|
+
"items": { "type": "string", "maxLength": 256 }
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"required": ["answer"]
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"limits": [
|
|
103
|
+
{
|
|
104
|
+
"name": "application-default",
|
|
105
|
+
"enabled": true,
|
|
106
|
+
"scope": "application",
|
|
107
|
+
"requestsPerMinute": 60,
|
|
108
|
+
"tokensPerMinute": 100000,
|
|
109
|
+
"monthlyBudgetMicroUsd": 100000000
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"retention": {
|
|
113
|
+
"captureMode": "BEST_EFFORT",
|
|
114
|
+
"retentionDays": 30,
|
|
115
|
+
"revealRoles": ["tenant-admin"]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-pricing-revision/2.0",
|
|
3
|
+
"revisionId": "openai-gpt-test-2026-08-10",
|
|
4
|
+
"provider": "openai",
|
|
5
|
+
"providerModel": "gpt-test",
|
|
6
|
+
"currency": "USD",
|
|
7
|
+
"dimensions": [
|
|
8
|
+
{ "dimension": "tokens", "direction": "input", "unit": "token", "scale": 1000000, "microUsdPerScale": 100000 },
|
|
9
|
+
{ "dimension": "tokens", "direction": "output", "unit": "token", "scale": 1000000, "microUsdPerScale": 200000 }
|
|
10
|
+
],
|
|
11
|
+
"revisionDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
12
|
+
"effectiveAt": "2026-08-10T00:00:00Z",
|
|
13
|
+
"publishedAt": "2026-08-10T09:00:00Z"
|
|
14
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-runtime-binding/1.0",
|
|
3
|
+
"platform": "aws_lambda",
|
|
4
|
+
"workloadIdentityRef": "iam-role://harbour/preview/support-assistant/000124",
|
|
5
|
+
"secretRef": "aws-sm://harbour/ai/fourier/support-assistant/preview/versions/000124/gateway-key",
|
|
6
|
+
"runtimeBindingDigest": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-runtime-contract/1.0",
|
|
3
|
+
"tenantId": "fourier",
|
|
4
|
+
"appId": "support-assistant",
|
|
5
|
+
"environment": "preview",
|
|
6
|
+
"versionId": "fourier#support-assistant#preview#000124",
|
|
7
|
+
"sourceRevision": "0123456789abcdef",
|
|
8
|
+
"mode": "observe",
|
|
9
|
+
"gatewayBaseUrl": "https://ai.harbour.example/v1",
|
|
10
|
+
"gatewayKeySecretRef": "aws-sm://harbour/ai/fourier/support-assistant/preview/versions/000124/gateway-key",
|
|
11
|
+
"modelAliases": {
|
|
12
|
+
"generation": "harbour/standard",
|
|
13
|
+
"embeddings": "harbour/embeddings"
|
|
14
|
+
},
|
|
15
|
+
"policyDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
16
|
+
"runtimeBinding": {
|
|
17
|
+
"schema": "harbour.ai-runtime-binding/1.0",
|
|
18
|
+
"platform": "aws_lambda",
|
|
19
|
+
"workloadIdentityRef": "iam-role://harbour/preview/support-assistant/000124",
|
|
20
|
+
"secretRef": "aws-sm://harbour/ai/fourier/support-assistant/preview/versions/000124/gateway-key",
|
|
21
|
+
"runtimeBindingDigest": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
|
|
22
|
+
},
|
|
23
|
+
"requiredStrategies": ["deployment_injection"]
|
|
24
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.sanitized-binding-evidence/1.0",
|
|
3
|
+
"tenantId": "fourier",
|
|
4
|
+
"appId": "support-copilot",
|
|
5
|
+
"environment": "preview",
|
|
6
|
+
"versionId": "fourier#support-copilot#preview#123456",
|
|
7
|
+
"sourceRef": "https://github.com/Fourier-Labs-AI/support-copilot",
|
|
8
|
+
"sourceRevision": "git-sha1:0123456789abcdef0123456789abcdef01234567",
|
|
9
|
+
"sourceRevisionDigest": "sha256:79520355eb30e88bb0c6656008dd301d8f3d7cef6c14a96882557f13f7c512d9",
|
|
10
|
+
"classificationDigest": "sha256:43622df1d8bc3660a160a120f9af896cfc9c98009547869895b47d4c61a29688",
|
|
11
|
+
"bindings": {
|
|
12
|
+
"LOG_LEVEL": {
|
|
13
|
+
"kind": "configuration",
|
|
14
|
+
"value": "debug"
|
|
15
|
+
},
|
|
16
|
+
"STRIPE_API_KEY": {
|
|
17
|
+
"kind": "secret",
|
|
18
|
+
"secretRef": "secretref://tenant/fourier/app/support-copilot/secret/STRIPE_API_KEY"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"requiredAiMappings": {
|
|
22
|
+
"anthropic-messages-v1": {
|
|
23
|
+
"mappingVersion": "1.0.0",
|
|
24
|
+
"providerId": "anthropic"
|
|
25
|
+
},
|
|
26
|
+
"openai-responses-v1": {
|
|
27
|
+
"mappingVersion": "1.0.0",
|
|
28
|
+
"providerId": "openai"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"sanitizedBindingDigest": "sha256:2cc57565f45a645f96060c046d27e313531f34ff7d8dc24732b5f85572ca12a8"
|
|
32
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sourceRef": "https://github.com/Fourier-Labs-AI/support-copilot",
|
|
3
|
+
"sourceRevision": "git-sha1:0123456789abcdef0123456789abcdef01234567",
|
|
4
|
+
"preimage": "D27:harbour.source-revision/1.0\nS50:https://github.com/Fourier-Labs-AI/support-copilot49:git-sha1:0123456789abcdef0123456789abcdef01234567",
|
|
5
|
+
"digest": "sha256:79520355eb30e88bb0c6656008dd301d8f3d7cef6c14a96882557f13f7c512d9"
|
|
6
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-trace-event/2.0",
|
|
3
|
+
"traceId": "trc_example123",
|
|
4
|
+
"requestId": "req_example123",
|
|
5
|
+
"policyDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
6
|
+
"outcome": "succeeded",
|
|
7
|
+
"usageLineItems": [
|
|
8
|
+
{
|
|
9
|
+
"attempt": 1,
|
|
10
|
+
"dimension": "tokens",
|
|
11
|
+
"direction": "input",
|
|
12
|
+
"quantity": 120,
|
|
13
|
+
"unit": "token",
|
|
14
|
+
"priceRevisionDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
15
|
+
"scale": 1000000,
|
|
16
|
+
"costMicroUsd": 12,
|
|
17
|
+
"provenance": "reported"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"totalCostMicroUsd": 12,
|
|
21
|
+
"reservationId": "req_example123#budget",
|
|
22
|
+
"meteringStatus": "settled",
|
|
23
|
+
"occurredAt": "2026-08-10T10:00:00Z"
|
|
24
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-trace-event/1.0",
|
|
3
|
+
"traceId": "trc_example123",
|
|
4
|
+
"requestId": "req_example123",
|
|
5
|
+
"tenantId": "fourier",
|
|
6
|
+
"appId": "support-assistant",
|
|
7
|
+
"environment": "production",
|
|
8
|
+
"versionId": "fourier#support-assistant#production#000124",
|
|
9
|
+
"callsiteFingerprint": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
10
|
+
"policyDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
11
|
+
"routeRevision": "harbour/standard#3",
|
|
12
|
+
"requestedModel": "gpt-4.1-mini",
|
|
13
|
+
"governedModelAlias": "harbour/standard",
|
|
14
|
+
"provider": "openai",
|
|
15
|
+
"providerModel": "gpt-4.1-mini",
|
|
16
|
+
"outcome": "succeeded",
|
|
17
|
+
"usage": { "inputTokens": 120, "outputTokens": 45 },
|
|
18
|
+
"priceRevision": "openai-gpt-4.1-mini-2026-08-01",
|
|
19
|
+
"costMicroUsd": 210,
|
|
20
|
+
"latencyMs": 842,
|
|
21
|
+
"retryCount": 0,
|
|
22
|
+
"fallbackUsed": false,
|
|
23
|
+
"reservationId": "req_example123#budget",
|
|
24
|
+
"attempts": [
|
|
25
|
+
{
|
|
26
|
+
"attempt": 1,
|
|
27
|
+
"provider": "openai",
|
|
28
|
+
"providerModel": "gpt-4.1-mini",
|
|
29
|
+
"priceRevision": "openai-gpt-4.1-mini-2026-08-01",
|
|
30
|
+
"outcome": "succeeded",
|
|
31
|
+
"usage": { "inputTokens": 120, "outputTokens": 45 },
|
|
32
|
+
"costMicroUsd": 210,
|
|
33
|
+
"latencyMs": 842
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"guardrailResults": [],
|
|
37
|
+
"contentCaptureStatus": "captured",
|
|
38
|
+
"contentRef": "s3://harbour-ai-evidence/fourier/support-assistant/trc_example123.enc",
|
|
39
|
+
"retentionExpiresAt": "2026-09-01T10:00:00Z",
|
|
40
|
+
"occurredAt": "2026-08-02T10:00:00Z"
|
|
41
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-transform-event/1.0",
|
|
3
|
+
"tenantId": "fourier",
|
|
4
|
+
"appId": "support-assistant",
|
|
5
|
+
"environment": "preview",
|
|
6
|
+
"versionId": "fourier#support-assistant#preview#000124",
|
|
7
|
+
"sourceRevision": "0123456789abcdef",
|
|
8
|
+
"workspace": {
|
|
9
|
+
"bucket": "harbour-deployment-workspaces",
|
|
10
|
+
"key": "fourier/support-assistant/000124/source.tgz",
|
|
11
|
+
"sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
|
|
12
|
+
"size": 1024
|
|
13
|
+
},
|
|
14
|
+
"inventoryDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
15
|
+
"policyDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
16
|
+
"runtimeContractDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
17
|
+
"interceptionPlanDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
18
|
+
"entries": [
|
|
19
|
+
{
|
|
20
|
+
"callSiteFingerprint": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
21
|
+
"sourcePath": "src/ai-client.ts",
|
|
22
|
+
"expectedSourceFileSha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
23
|
+
"strategy": "deterministic_adapter",
|
|
24
|
+
"transformId": "google-genai-client-boundary",
|
|
25
|
+
"transformVersion": "1.0.0",
|
|
26
|
+
"allowedSyntaxKinds": ["CallExpression", "ImportDeclaration", "NewExpression"],
|
|
27
|
+
"runtimeShimName": "@harbour/gemini-compat",
|
|
28
|
+
"runtimeShimVersion": "1.0.0",
|
|
29
|
+
"runtimeShimDigest": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-transform-result/1.0",
|
|
3
|
+
"workspace": {
|
|
4
|
+
"bucket": "harbour-deployment-workspaces",
|
|
5
|
+
"key": "fourier/support-assistant/000124/ai-derived.tgz",
|
|
6
|
+
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
|
7
|
+
"size": 1030
|
|
8
|
+
},
|
|
9
|
+
"interceptionPlanDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
10
|
+
"transformerVersion": "ai-interception/1.0.0",
|
|
11
|
+
"applied": [
|
|
12
|
+
{
|
|
13
|
+
"callSiteFingerprint": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
14
|
+
"transformId": "google-genai-client-boundary",
|
|
15
|
+
"transformVersion": "1.0.0",
|
|
16
|
+
"sourcePath": "src/ai-client.ts",
|
|
17
|
+
"beforeSha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
18
|
+
"afterSha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
|
19
|
+
"governedBoundaryFingerprint": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
|
20
|
+
"runtimeShimDigest": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "harbour.ai-verification-evidence/1.0",
|
|
3
|
+
"tenantId": "fourier",
|
|
4
|
+
"appId": "support-assistant",
|
|
5
|
+
"environment": "preview",
|
|
6
|
+
"versionId": "fourier#support-assistant#preview#000124",
|
|
7
|
+
"sourceRevision": "0123456789abcdef",
|
|
8
|
+
"inventoryDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
9
|
+
"interceptionPlanDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
10
|
+
"runtimeContractDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
11
|
+
"policyDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
12
|
+
"runtimeBindingDigest": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
|
|
13
|
+
"finalWorkspaceDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
|
14
|
+
"verifiedCallsiteFingerprints": ["sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"],
|
|
15
|
+
"appliedTransforms": [
|
|
16
|
+
{
|
|
17
|
+
"callSiteFingerprint": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
18
|
+
"governedBoundaryFingerprint": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
|
19
|
+
"transformId": "google-genai-client-boundary",
|
|
20
|
+
"transformVersion": "1.0.0",
|
|
21
|
+
"beforeSha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
22
|
+
"afterSha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
|
23
|
+
"runtimeShimDigest": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"endpointChecks": [
|
|
27
|
+
{ "name": "gateway-smoke", "passed": true, "configurationMappingVersion": "openai-compatible/1.0.0" }
|
|
28
|
+
],
|
|
29
|
+
"providerCredentialsAbsent": true,
|
|
30
|
+
"smokeTraceId": "trc_smoke123",
|
|
31
|
+
"evidenceDigest": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
|
|
32
|
+
"verifiedAt": "2026-08-02T10:05:00Z"
|
|
33
|
+
}
|