@tenova/swt3-ai 0.5.5 → 0.5.6
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 +16 -13
- package/dist/adapters/a2a.d.ts +26 -0
- package/dist/adapters/a2a.d.ts.map +1 -0
- package/dist/adapters/a2a.js +86 -0
- package/dist/adapters/a2a.js.map +1 -0
- package/dist/adapters/crewai.d.ts +26 -0
- package/dist/adapters/crewai.d.ts.map +1 -0
- package/dist/adapters/crewai.js +78 -0
- package/dist/adapters/crewai.js.map +1 -0
- package/dist/adapters/foundry.d.ts +26 -0
- package/dist/adapters/foundry.d.ts.map +1 -0
- package/dist/adapters/foundry.js +118 -0
- package/dist/adapters/foundry.js.map +1 -0
- package/dist/adapters/google-adk.d.ts +25 -0
- package/dist/adapters/google-adk.d.ts.map +1 -0
- package/dist/adapters/google-adk.js +81 -0
- package/dist/adapters/google-adk.js.map +1 -0
- package/dist/chain.d.ts +33 -0
- package/dist/chain.d.ts.map +1 -0
- package/dist/chain.js +94 -0
- package/dist/chain.js.map +1 -0
- package/dist/clearing.d.ts +7 -2
- package/dist/clearing.d.ts.map +1 -1
- package/dist/clearing.js +16 -5
- package/dist/clearing.js.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +123 -6
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -0
- package/dist/config.js.map +1 -1
- package/dist/demo.d.ts.map +1 -1
- package/dist/demo.js +173 -10
- package/dist/demo.js.map +1 -1
- package/dist/doctor.d.ts +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +39 -16
- package/dist/doctor.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/procedures.d.ts +20 -0
- package/dist/procedures.d.ts.map +1 -0
- package/dist/procedures.js +162 -0
- package/dist/procedures.js.map +1 -0
- package/dist/profile.d.ts +50 -0
- package/dist/profile.d.ts.map +1 -0
- package/dist/profile.js +109 -0
- package/dist/profile.js.map +1 -0
- package/dist/trust.d.ts +96 -2
- package/dist/trust.d.ts.map +1 -1
- package/dist/trust.js +200 -9
- package/dist/trust.js.map +1 -1
- package/dist/types.d.ts +120 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +173 -1
- package/dist/types.js.map +1 -1
- package/dist/witness.d.ts +547 -0
- package/dist/witness.d.ts.map +1 -1
- package/dist/witness.js +1557 -202
- package/dist/witness.js.map +1 -1
- package/package.json +2 -2
- package/templates/healthcare-clinical.yaml +4 -0
package/dist/index.d.ts
CHANGED
|
@@ -19,8 +19,8 @@ export type { ChainMonitorOptions, AuditReport, TimelineEntry } from "./exporter
|
|
|
19
19
|
export { EvidenceExporter } from "./exporters/evidence.js";
|
|
20
20
|
export type { EvidenceBundleOptions, EvidenceBundleMetadata, EvidenceBundle } from "./exporters/evidence.js";
|
|
21
21
|
export type { WitnessOptions } from "./witness.js";
|
|
22
|
-
export type { WitnessConfig, WitnessPayload, WitnessReceipt, InferenceRecord, BatchResponse, RagChunk, RagContextOptions, ModelWeightInfo, AdapterInfo, SkillInfo, MemorySource, } from "./types.js";
|
|
23
|
-
export { QUANTIZATION_CODES, POLICY_CATEGORIES, BINDING_METHODS, APPROVAL_STATUS, PII_EVENT_TYPES, CONTENT_TYPE_CODES, MARKING_METHODS, BASELINE_MODE_CODES } from "./types.js";
|
|
22
|
+
export type { WitnessConfig, WitnessPayload, WitnessReceipt, InferenceRecord, BatchResponse, RagChunk, RagContextOptions, ModelWeightInfo, AdapterInfo, SkillInfo, MemorySource, AnchorReference, ProcedureAttestation, ModelTrustProfile, CoverageResult, ChainLink, ChainSummary, } from "./types.js";
|
|
23
|
+
export { QUANTIZATION_CODES, POLICY_CATEGORIES, BINDING_METHODS, APPROVAL_STATUS, PII_EVENT_TYPES, CONTENT_TYPE_CODES, MARKING_METHODS, BASELINE_MODE_CODES, LICENSE_TYPE_CODES, SBOM_FORMAT_CODES, REDTEAM_CATEGORY_CODES, CONSENT_BASIS_CODES, DRIFT_TYPE_CODES, LOG_FORMAT_CODES, INCIDENT_SEVERITY_CODES, INCIDENT_TYPE_CODES, BENCHMARK_TYPE_CODES, PERTURBATION_TYPE_CODES, CYBER_FRAMEWORK_CODES, DISCLOSURE_TYPE_CODES, RECIPIENT_TYPE_CODES, DETECTION_METHOD_CODES, PROCESSING_TYPE_CODES, DECISION_TYPE_CODES, CLASSIFICATION_CODES, REPORTING_STATUS_CODES, SUPPLY_RISK_CODES, PMM_TYPE_CODES, LIFECYCLE_STAGE_CODES, DESIGN_DOMAIN_CODES, SIMULATION_TYPE_CODES, APPROVAL_TYPE_CODES, MATERIAL_STANDARD_CODES, CHAIN_STATUS_CODES, RELEASE_TYPE_CODES } from "./types.js";
|
|
24
24
|
export { mintFingerprint, sha256Truncated, sha256Hex, timestampMs } from "./fingerprint.js";
|
|
25
25
|
export { extractPayloads, extractGatekeeperPayload, extractRevocationPayload, extractChainTrustDegradationPayload, REVOCATION_REASONS } from "./clearing.js";
|
|
26
26
|
export { signPayload, generateMldsaKeypair, verifyMldsa, SIGNING_ALGORITHM_HMAC, SIGNING_ALGORITHM_MLDSA, VALID_SIGNING_ALGORITHMS, DEFAULT_SIGNING_ALGORITHM } from "./signing.js";
|
|
@@ -33,6 +33,10 @@ export { WriteAheadLog } from "./wal.js";
|
|
|
33
33
|
export type { WalOptions } from "./wal.js";
|
|
34
34
|
export { wrapOllama, isOllamaClient } from "./adapters/ollama.js";
|
|
35
35
|
export { wrapVllm } from "./adapters/vllm.js";
|
|
36
|
+
export { wrapGoogleADK } from "./adapters/google-adk.js";
|
|
37
|
+
export { wrapCrewAI } from "./adapters/crewai.js";
|
|
38
|
+
export { wrapA2A } from "./adapters/a2a.js";
|
|
39
|
+
export { wrapFoundry } from "./adapters/foundry.js";
|
|
36
40
|
export { queryHardware, detectTopology, topologyCode, TOPOLOGY_CODES, queryTPM, parseTPMPcrOutput, ZERO_PCR_HASH } from "./hardware.js";
|
|
37
41
|
export type { GpuInfo, HardwareSnapshot, TPMSnapshot, PcrRegister } from "./hardware.js";
|
|
38
42
|
export { hashLeaf, hashNode, getMerkleRoot, getMerkleProof, verifyMerkleProof, MerkleAccumulator, } from "./merkle.js";
|
|
@@ -43,4 +47,7 @@ export { TrustRegistry, verifyCredential, evaluateTrustLevel, signCredential, ve
|
|
|
43
47
|
export type { TrustCredential, TrustResult } from "./trust.js";
|
|
44
48
|
export { SentinelClient } from "./sentinel-client.js";
|
|
45
49
|
export type { SentinelClientOptions, SentinelCheckResult, SentinelStatusResult } from "./sentinel-client.js";
|
|
50
|
+
export { generateProfile, signProfile, verifyProfileSignature, isProfileValid, coverageScore, buildProfileMessage, RECOMMENDED_PROCEDURES } from "./profile.js";
|
|
51
|
+
export type { GenerateProfileOptions } from "./profile.js";
|
|
52
|
+
export { buildLookup, walkChain, verifyChainIntegrity } from "./chain.js";
|
|
46
53
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC7G,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,SAAS,EACT,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
export { Witness, GatekeeperError, ChainTrustError, ChainEnforcer, PolicyViolationError } from "./witness.js";
|
|
17
17
|
export { ChainMonitorExporter } from "./exporters/chain-monitor.js";
|
|
18
18
|
export { EvidenceExporter } from "./exporters/evidence.js";
|
|
19
|
-
export { QUANTIZATION_CODES, POLICY_CATEGORIES, BINDING_METHODS, APPROVAL_STATUS, PII_EVENT_TYPES, CONTENT_TYPE_CODES, MARKING_METHODS, BASELINE_MODE_CODES } from "./types.js";
|
|
19
|
+
export { QUANTIZATION_CODES, POLICY_CATEGORIES, BINDING_METHODS, APPROVAL_STATUS, PII_EVENT_TYPES, CONTENT_TYPE_CODES, MARKING_METHODS, BASELINE_MODE_CODES, LICENSE_TYPE_CODES, SBOM_FORMAT_CODES, REDTEAM_CATEGORY_CODES, CONSENT_BASIS_CODES, DRIFT_TYPE_CODES, LOG_FORMAT_CODES, INCIDENT_SEVERITY_CODES, INCIDENT_TYPE_CODES, BENCHMARK_TYPE_CODES, PERTURBATION_TYPE_CODES, CYBER_FRAMEWORK_CODES, DISCLOSURE_TYPE_CODES, RECIPIENT_TYPE_CODES, DETECTION_METHOD_CODES, PROCESSING_TYPE_CODES, DECISION_TYPE_CODES, CLASSIFICATION_CODES, REPORTING_STATUS_CODES, SUPPLY_RISK_CODES, PMM_TYPE_CODES, LIFECYCLE_STAGE_CODES, DESIGN_DOMAIN_CODES, SIMULATION_TYPE_CODES, APPROVAL_TYPE_CODES, MATERIAL_STANDARD_CODES, CHAIN_STATUS_CODES, RELEASE_TYPE_CODES } from "./types.js";
|
|
20
20
|
export { mintFingerprint, sha256Truncated, sha256Hex, timestampMs } from "./fingerprint.js";
|
|
21
21
|
export { extractPayloads, extractGatekeeperPayload, extractRevocationPayload, extractChainTrustDegradationPayload, REVOCATION_REASONS } from "./clearing.js";
|
|
22
22
|
export { signPayload, generateMldsaKeypair, verifyMldsa, SIGNING_ALGORITHM_HMAC, SIGNING_ALGORITHM_MLDSA, VALID_SIGNING_ALGORITHMS, DEFAULT_SIGNING_ALGORITHM } from "./signing.js";
|
|
@@ -25,9 +25,15 @@ export { validateSchema } from "./schema.js";
|
|
|
25
25
|
export { WriteAheadLog } from "./wal.js";
|
|
26
26
|
export { wrapOllama, isOllamaClient } from "./adapters/ollama.js";
|
|
27
27
|
export { wrapVllm } from "./adapters/vllm.js";
|
|
28
|
+
export { wrapGoogleADK } from "./adapters/google-adk.js";
|
|
29
|
+
export { wrapCrewAI } from "./adapters/crewai.js";
|
|
30
|
+
export { wrapA2A } from "./adapters/a2a.js";
|
|
31
|
+
export { wrapFoundry } from "./adapters/foundry.js";
|
|
28
32
|
export { queryHardware, detectTopology, topologyCode, TOPOLOGY_CODES, queryTPM, parseTPMPcrOutput, ZERO_PCR_HASH } from "./hardware.js";
|
|
29
33
|
export { hashLeaf, hashNode, getMerkleRoot, getMerkleProof, verifyMerkleProof, MerkleAccumulator, } from "./merkle.js";
|
|
30
34
|
export { queryEnvironment, NODE_TYPE_CODES } from "./environment.js";
|
|
31
35
|
export { TrustRegistry, verifyCredential, evaluateTrustLevel, signCredential, verifyCredentialSignature, buildCredentialMessage, TRUST_DENIED, TRUST_BASIC, TRUST_VERIFIED, TRUST_ATTESTED, TRUST_SOVEREIGN, TRUST_LEVEL_NAMES, } from "./trust.js";
|
|
32
36
|
export { SentinelClient } from "./sentinel-client.js";
|
|
37
|
+
export { generateProfile, signProfile, verifyProfileSignature, isProfileValid, coverageScore, buildProfileMessage, RECOMMENDED_PROCEDURES } from "./profile.js";
|
|
38
|
+
export { buildLookup, walkChain, verifyChainIntegrity } from "./chain.js";
|
|
33
39
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAsB3D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACvvB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,mCAAmC,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7J,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEpL,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAExI,OAAO,EACL,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EACpE,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EACL,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EACnD,cAAc,EAAE,yBAAyB,EAAE,sBAAsB,EACjE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAC1E,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,sBAAsB,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEhK,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UCT procedure catalog for the SWT3 AI Witness Protocol.
|
|
3
|
+
*
|
|
4
|
+
* Provides a static, offline-accessible catalog of all AI procedures.
|
|
5
|
+
* No network calls required. Data sourced from the UCT Registry.
|
|
6
|
+
*/
|
|
7
|
+
interface ProcedureEntry {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
namespace: string;
|
|
11
|
+
}
|
|
12
|
+
/** 94 AI procedures across 48 namespaces. */
|
|
13
|
+
export declare const PROCEDURE_CATALOG: ProcedureEntry[];
|
|
14
|
+
export declare function handleProcedures(opts: {
|
|
15
|
+
namespace?: string;
|
|
16
|
+
json?: boolean;
|
|
17
|
+
}): void;
|
|
18
|
+
export declare function handleQuickstart(): void;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=procedures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procedures.d.ts","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6CAA6C;AAC7C,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAyF7C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA4BnF;AA+BD,wBAAgB,gBAAgB,IAAI,IAAI,CASvC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UCT procedure catalog for the SWT3 AI Witness Protocol.
|
|
3
|
+
*
|
|
4
|
+
* Provides a static, offline-accessible catalog of all AI procedures.
|
|
5
|
+
* No network calls required. Data sourced from the UCT Registry.
|
|
6
|
+
*/
|
|
7
|
+
import { writeFileSync, existsSync } from "node:fs";
|
|
8
|
+
/** 94 AI procedures across 48 namespaces. */
|
|
9
|
+
export const PROCEDURE_CATALOG = [
|
|
10
|
+
{ id: "AI-INF.1", name: "Inference Provenance", namespace: "INF" },
|
|
11
|
+
{ id: "AI-INF.2", name: "Inference Latency", namespace: "INF" },
|
|
12
|
+
{ id: "AI-INF.3", name: "Inference Volume", namespace: "INF" },
|
|
13
|
+
{ id: "AI-MDL.1", name: "Model Weight Integrity", namespace: "MDL" },
|
|
14
|
+
{ id: "AI-MDL.2", name: "Model Version Tracking", namespace: "MDL" },
|
|
15
|
+
{ id: "AI-MDL.3", name: "Model Provenance", namespace: "MDL" },
|
|
16
|
+
{ id: "AI-MDL.5", name: "Weight File Integrity", namespace: "MDL" },
|
|
17
|
+
{ id: "AI-MDL.6", name: "Adapter Stack Attestation", namespace: "MDL" },
|
|
18
|
+
{ id: "AI-MDL.7", name: "Quantization Attestation", namespace: "MDL" },
|
|
19
|
+
{ id: "AI-GRD.1", name: "Guardrail Enforcement", namespace: "GRD" },
|
|
20
|
+
{ id: "AI-GRD.2", name: "Content Safety Filter", namespace: "GRD" },
|
|
21
|
+
{ id: "AI-GRD.3", name: "Gatekeeper Gate", namespace: "GRD" },
|
|
22
|
+
{ id: "AI-SEC.1", name: "Adversarial Detection", namespace: "SEC" },
|
|
23
|
+
{ id: "AI-SEC.2", name: "Input Validation", namespace: "SEC" },
|
|
24
|
+
{ id: "AI-RAG.1", name: "Context Retrieval Provenance", namespace: "RAG" },
|
|
25
|
+
{ id: "AI-RAG.2", name: "Context Relevance", namespace: "RAG" },
|
|
26
|
+
{ id: "AI-SKILL.1", name: "Skill Manifest Attestation", namespace: "SKILL" },
|
|
27
|
+
{ id: "AI-SKILL.2", name: "Memory Context Binding", namespace: "SKILL" },
|
|
28
|
+
{ id: "AI-SKILL.3", name: "Reward Model Binding", namespace: "SKILL" },
|
|
29
|
+
{ id: "AI-TOOL.1", name: "Tool Call Witnessing", namespace: "TOOL" },
|
|
30
|
+
{ id: "AI-ID.1", name: "Agent Identity", namespace: "ID" },
|
|
31
|
+
{ id: "AI-ACC.1", name: "Resource Access Witnessing", namespace: "ACC" },
|
|
32
|
+
{ id: "AI-REV.1", name: "Anchor Revocation", namespace: "REV" },
|
|
33
|
+
{ id: "AI-FAIR.1", name: "Bias Detection", namespace: "FAIR" },
|
|
34
|
+
{ id: "AI-FAIR.2", name: "Fairness Metrics", namespace: "FAIR" },
|
|
35
|
+
{ id: "AI-FAIR.3", name: "Demographic Parity", namespace: "FAIR" },
|
|
36
|
+
{ id: "AI-DATA.1", name: "Training Data Provenance", namespace: "DATA" },
|
|
37
|
+
{ id: "AI-DATA.2", name: "Data Quality Attestation", namespace: "DATA" },
|
|
38
|
+
{ id: "AI-DATA.3", name: "Data Lineage Tracking", namespace: "DATA" },
|
|
39
|
+
{ id: "AI-DATA.4", name: "Data Retention Compliance", namespace: "DATA" },
|
|
40
|
+
{ id: "AI-HITL.1", name: "Human Override Capability", namespace: "HITL" },
|
|
41
|
+
{ id: "AI-HITL.2", name: "Human Review Trigger", namespace: "HITL" },
|
|
42
|
+
{ id: "AI-EXPL.1", name: "Explainability Report", namespace: "EXPL" },
|
|
43
|
+
{ id: "AI-EXPL.2", name: "Confidence Scoring", namespace: "EXPL" },
|
|
44
|
+
{ id: "AI-CHAIN.1", name: "Multi-Agent Chain Witnessing", namespace: "CHAIN" },
|
|
45
|
+
{ id: "AI-CHAIN.2", name: "Chain Trust Degradation", namespace: "CHAIN" },
|
|
46
|
+
{ id: "AI-VIO.1", name: "Policy Violation Recording", namespace: "VIO" },
|
|
47
|
+
{ id: "AI-CHR.1", name: "Agent Charter Attestation", namespace: "CHR" },
|
|
48
|
+
{ id: "AI-SAFE.1", name: "Safety Boundary Attestation", namespace: "SAFE" },
|
|
49
|
+
{ id: "AI-HW.1", name: "Hardware Attestation", namespace: "HW" },
|
|
50
|
+
{ id: "AI-HW.3", name: "Key Attestation", namespace: "HW" },
|
|
51
|
+
{ id: "AI-TRUST.1", name: "Trust Credential Verification", namespace: "TRUST" },
|
|
52
|
+
{ id: "AI-TRUST.2", name: "Trust Credential Presentation", namespace: "TRUST" },
|
|
53
|
+
{ id: "AI-ENV.1", name: "Environment Attestation", namespace: "ENV" },
|
|
54
|
+
{ id: "AI-ENV.2", name: "Runtime Isolation", namespace: "ENV" },
|
|
55
|
+
{ id: "AI-MARK.1", name: "Content Provenance Marking", namespace: "MARK" },
|
|
56
|
+
{ id: "AI-BASE.1", name: "Agent Behavioral Baseline", namespace: "BASE" },
|
|
57
|
+
{ id: "AI-LIC.1", name: "License Provenance", namespace: "LIC" },
|
|
58
|
+
{ id: "AI-SBOM.1", name: "AI Bill of Materials", namespace: "SBOM" },
|
|
59
|
+
{ id: "AI-REDTEAM.1", name: "Adversarial Test Campaign", namespace: "REDTEAM" },
|
|
60
|
+
{ id: "AI-CONSENT.1", name: "Data Subject Consent", namespace: "CONSENT" },
|
|
61
|
+
{ id: "AI-MULTI.1", name: "Multi-Agent Delegation", namespace: "MULTI" },
|
|
62
|
+
{ id: "AI-DRIFT.1", name: "Model Drift Detection", namespace: "DRIFT" },
|
|
63
|
+
{ id: "AI-AUDIT.1", name: "Audit Log Integrity", namespace: "AUDIT" },
|
|
64
|
+
{ id: "AI-AUDIT.2", name: "External Timestamp Attestation", namespace: "AUDIT" },
|
|
65
|
+
{ id: "AI-INCIDENT.1", name: "Incident Reporting", namespace: "INCIDENT" },
|
|
66
|
+
{ id: "AI-PERF.1", name: "Performance Metrics", namespace: "PERF" },
|
|
67
|
+
{ id: "AI-ROBUST.1", name: "Robustness Testing", namespace: "ROBUST" },
|
|
68
|
+
{ id: "AI-CYBER.1", name: "Cybersecurity Attestation", namespace: "CYBER" },
|
|
69
|
+
{ id: "AI-TRANS.1", name: "Transparency Disclosure", namespace: "TRANS" },
|
|
70
|
+
{ id: "AI-WATERMARK.1", name: "Watermark Verification", namespace: "WATERMARK" },
|
|
71
|
+
{ id: "AI-DPIA.1", name: "Data Protection Impact Assessment", namespace: "DPIA" },
|
|
72
|
+
{ id: "AI-AUTO.1", name: "Automated Decision Notification", namespace: "AUTO" },
|
|
73
|
+
{ id: "AI-AUTO.2", name: "Autonomous Generation Depth", namespace: "AUTO" },
|
|
74
|
+
{ id: "AI-DUALUSE.1", name: "Dual-Use Model Classification", namespace: "DUALUSE" },
|
|
75
|
+
{ id: "AI-SUPPLY.1", name: "Supply Chain Risk", namespace: "SUPPLY" },
|
|
76
|
+
{ id: "AI-PMM.1", name: "Post-Market Monitoring", namespace: "PMM" },
|
|
77
|
+
{ id: "AI-GOV.6", name: "AI Risk Management Scope Definition", namespace: "GOV" },
|
|
78
|
+
{ id: "AI-RISK.1", name: "AI Risk Identification and Categorization", namespace: "RISK" },
|
|
79
|
+
{ id: "AI-IR.1", name: "AI Incident Response Capability", namespace: "IR" },
|
|
80
|
+
{ id: "AI-METAGOV.1", name: "Governance Infrastructure Attestation", namespace: "METAGOV" },
|
|
81
|
+
{ id: "AI-METAGOV.2", name: "Governance Layer Registration", namespace: "METAGOV" },
|
|
82
|
+
{ id: "AI-METAGOV.3", name: "Policy Downgrade Detection", namespace: "METAGOV" },
|
|
83
|
+
{ id: "AI-METAGOV.4", name: "Circular Dependency Check", namespace: "METAGOV" },
|
|
84
|
+
{ id: "AI-METAGOV.5", name: "Governance Authorization", namespace: "METAGOV" },
|
|
85
|
+
{ id: "AI-METAGOV.6", name: "Emergency Override Attestation", namespace: "METAGOV" },
|
|
86
|
+
{ id: "AI-METAGOV.7", name: "Governance Sync Verification", namespace: "METAGOV" },
|
|
87
|
+
{ id: "AI-METAGOV.8", name: "Attestation Purity Verification", namespace: "METAGOV" },
|
|
88
|
+
{ id: "AI-ENG.1", name: "Design Generation Provenance", namespace: "ENG" },
|
|
89
|
+
{ id: "AI-ENG.2", name: "Simulation Validation", namespace: "ENG" },
|
|
90
|
+
{ id: "AI-ENG.3", name: "Safety-Critical Review Gate", namespace: "ENG" },
|
|
91
|
+
{ id: "AI-ENG.4", name: "Material Specification Compliance", namespace: "ENG" },
|
|
92
|
+
{ id: "AI-ENG.5", name: "Design Revision Chain", namespace: "ENG" },
|
|
93
|
+
{ id: "AI-ENG.6", name: "Fabrication Release Attestation", namespace: "ENG" },
|
|
94
|
+
// Healthcare / Clinical AI (HCF)
|
|
95
|
+
{ id: "HCF-DX.1", name: "Diagnostic Accountability", namespace: "HCF" },
|
|
96
|
+
{ id: "HCF-RX.1", name: "Prescription Safety", namespace: "HCF" },
|
|
97
|
+
{ id: "HCF-PRIV.1", name: "PHI Access Audit", namespace: "HCF" },
|
|
98
|
+
];
|
|
99
|
+
export function handleProcedures(opts) {
|
|
100
|
+
let filtered = PROCEDURE_CATALOG;
|
|
101
|
+
if (opts.namespace) {
|
|
102
|
+
const ns = opts.namespace.toUpperCase();
|
|
103
|
+
filtered = filtered.filter((p) => p.namespace === ns);
|
|
104
|
+
}
|
|
105
|
+
if (filtered.length === 0) {
|
|
106
|
+
console.error(`No procedures found for namespace '${opts.namespace}'.`);
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
if (opts.json) {
|
|
110
|
+
console.log(JSON.stringify(filtered, null, 2));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const namespaces = new Set(filtered.map((p) => p.namespace));
|
|
114
|
+
const header = opts.namespace
|
|
115
|
+
? `UCT Procedures (${opts.namespace.toUpperCase()}): ${filtered.length} found`
|
|
116
|
+
: `UCT Procedures: ${filtered.length} total, ${namespaces.size} namespaces`;
|
|
117
|
+
console.log(`\n${header}`);
|
|
118
|
+
console.log("-".repeat(50));
|
|
119
|
+
for (const p of filtered) {
|
|
120
|
+
console.log(` ${p.id.padEnd(20)} ${p.name}`);
|
|
121
|
+
}
|
|
122
|
+
console.log();
|
|
123
|
+
}
|
|
124
|
+
const QUICKSTART_TS = `/**
|
|
125
|
+
* SWT3 AI Witness quickstart -- generated by \`swt3 quickstart\`.
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
import { Witness } from "@tenova/swt3-ai";
|
|
129
|
+
|
|
130
|
+
const witness = new Witness({
|
|
131
|
+
tenantId: "QUICKSTART_TENANT",
|
|
132
|
+
clearingLevel: 1,
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
const response = witness.wrap({
|
|
136
|
+
prompt: "What are the three laws of robotics?",
|
|
137
|
+
response: "1. A robot may not injure a human being...",
|
|
138
|
+
modelId: "quickstart-model",
|
|
139
|
+
provider: "local",
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
console.log(\`Response: \${response.response.slice(0, 60)}...\`);
|
|
143
|
+
console.log(\`Anchors minted: \${witness.pending.length}\`);
|
|
144
|
+
|
|
145
|
+
const results = witness.flush();
|
|
146
|
+
for (const r of results) {
|
|
147
|
+
console.log(\` \${r.procedure_id}: \${r.anchor_fingerprint}\`);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
console.log("\\nDone. See https://sovereign.tenova.io/docs/ for full documentation.");
|
|
151
|
+
`;
|
|
152
|
+
export function handleQuickstart() {
|
|
153
|
+
const out = "swt3_quickstart.ts";
|
|
154
|
+
if (existsSync(out)) {
|
|
155
|
+
console.error(` ${out} already exists. Remove it first.`);
|
|
156
|
+
process.exit(1);
|
|
157
|
+
}
|
|
158
|
+
writeFileSync(out, QUICKSTART_TS, "utf-8");
|
|
159
|
+
console.log(`\n Created: ${out}`);
|
|
160
|
+
console.log(` Run it: npx tsx ${out}\n`);
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=procedures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procedures.js","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SWT3 AI Witness SDK -- Model Trust Profiles.
|
|
3
|
+
*
|
|
4
|
+
* Portable, cryptographically signed summaries of a model's compliance posture.
|
|
5
|
+
* Profiles bind a model artifact hash to its attestation coverage and can be
|
|
6
|
+
* verified offline without network calls.
|
|
7
|
+
*/
|
|
8
|
+
import type { AnchorReference, ProcedureAttestation, ModelTrustProfile, CoverageResult } from "./types.js";
|
|
9
|
+
/** Recommended procedure sets by compliance profile. */
|
|
10
|
+
export declare const RECOMMENDED_PROCEDURES: Record<string, string[]>;
|
|
11
|
+
export interface GenerateProfileOptions {
|
|
12
|
+
modelId: string;
|
|
13
|
+
modelHash: string;
|
|
14
|
+
attestations: ProcedureAttestation[];
|
|
15
|
+
upstreamReferences?: AnchorReference[];
|
|
16
|
+
ttlMs?: number;
|
|
17
|
+
signingKey?: string;
|
|
18
|
+
signingKeyId?: string;
|
|
19
|
+
nowMs?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Build a canonical message string for profile signing.
|
|
23
|
+
* Format: PROFILE:{model_id}:{model_hash}:{generated_at}:{valid_until}:{sorted_procedures}:{score_3dp}
|
|
24
|
+
*/
|
|
25
|
+
export declare function buildProfileMessage(profile: ModelTrustProfile): string;
|
|
26
|
+
/**
|
|
27
|
+
* Sign a ModelTrustProfile with HMAC-SHA256.
|
|
28
|
+
*/
|
|
29
|
+
export declare function signProfile(profile: ModelTrustProfile, signingKey: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Verify a profile signature against a known signing key.
|
|
32
|
+
* Constant-time comparison to prevent timing attacks.
|
|
33
|
+
*/
|
|
34
|
+
export declare function verifyProfileSignature(profile: ModelTrustProfile, signingKey: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Check whether a profile is still within its validity window.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isProfileValid(profile: ModelTrustProfile, nowMs?: number): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Generate a ModelTrustProfile from attestation data.
|
|
41
|
+
*/
|
|
42
|
+
export declare function generateProfile(opts: GenerateProfileOptions): ModelTrustProfile;
|
|
43
|
+
/**
|
|
44
|
+
* Calculate coverage against a target procedure set.
|
|
45
|
+
*
|
|
46
|
+
* @param attestedProcedures - Procedure IDs the model has passing attestations for.
|
|
47
|
+
* @param target - Profile name (key into RECOMMENDED_PROCEDURES) or custom array. Default: "standard".
|
|
48
|
+
*/
|
|
49
|
+
export declare function coverageScore(attestedProcedures: string[], target?: string | string[]): CoverageResult;
|
|
50
|
+
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3G,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAQ3D,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,eAAe,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAItE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAS9F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAElF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,iBAAiB,CAsB/E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,kBAAkB,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,CAsBtG"}
|
package/dist/profile.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SWT3 AI Witness SDK -- Model Trust Profiles.
|
|
3
|
+
*
|
|
4
|
+
* Portable, cryptographically signed summaries of a model's compliance posture.
|
|
5
|
+
* Profiles bind a model artifact hash to its attestation coverage and can be
|
|
6
|
+
* verified offline without network calls.
|
|
7
|
+
*/
|
|
8
|
+
import { createHmac } from "node:crypto";
|
|
9
|
+
/** Recommended procedure sets by compliance profile. */
|
|
10
|
+
export const RECOMMENDED_PROCEDURES = {
|
|
11
|
+
minimal: ["AI-INF.1"],
|
|
12
|
+
standard: ["AI-INF.1", "AI-INF.2", "AI-MDL.1", "AI-MDL.2", "AI-GRD.1", "AI-GRD.2"],
|
|
13
|
+
"eu-ai-act-high-risk": ["AI-INF.1", "AI-GRD.1", "AI-FAIR.1", "AI-EXPL.1", "AI-DATA.1", "AI-HITL.1"],
|
|
14
|
+
"nist-ai-rmf": ["AI-INF.1", "AI-GRD.1", "AI-MDL.1"],
|
|
15
|
+
"defense-govcon": ["AI-INF.1", "AI-GRD.1", "AI-MDL.1", "AI-ID.1", "AI-SEC.1"],
|
|
16
|
+
"healthcare-clinical": ["AI-INF.1", "AI-GRD.1", "AI-FAIR.1", "AI-DATA.1", "AI-HITL.1", "AI-EXPL.1"],
|
|
17
|
+
"fintech-model-risk": ["AI-INF.1", "AI-GRD.1", "AI-MDL.1", "AI-FAIR.1", "AI-EXPL.1"],
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Build a canonical message string for profile signing.
|
|
21
|
+
* Format: PROFILE:{model_id}:{model_hash}:{generated_at}:{valid_until}:{sorted_procedures}:{score_3dp}
|
|
22
|
+
*/
|
|
23
|
+
export function buildProfileMessage(profile) {
|
|
24
|
+
const procs = [...profile.coverage.map((a) => a.procedure)].sort().join(",");
|
|
25
|
+
const score3dp = profile.coverage_score.toFixed(3);
|
|
26
|
+
return `PROFILE:${profile.model_id}:${profile.model_hash}:${profile.generated_at}:${profile.valid_until}:${procs}:${score3dp}`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Sign a ModelTrustProfile with HMAC-SHA256.
|
|
30
|
+
*/
|
|
31
|
+
export function signProfile(profile, signingKey) {
|
|
32
|
+
const message = buildProfileMessage(profile);
|
|
33
|
+
return createHmac("sha256", signingKey).update(message, "utf-8").digest("hex");
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Verify a profile signature against a known signing key.
|
|
37
|
+
* Constant-time comparison to prevent timing attacks.
|
|
38
|
+
*/
|
|
39
|
+
export function verifyProfileSignature(profile, signingKey) {
|
|
40
|
+
if (!profile.signature)
|
|
41
|
+
return false;
|
|
42
|
+
const expected = signProfile(profile, signingKey);
|
|
43
|
+
if (expected.length !== profile.signature.length)
|
|
44
|
+
return false;
|
|
45
|
+
let diff = 0;
|
|
46
|
+
for (let i = 0; i < expected.length; i++) {
|
|
47
|
+
diff |= expected.charCodeAt(i) ^ profile.signature.charCodeAt(i);
|
|
48
|
+
}
|
|
49
|
+
return diff === 0;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Check whether a profile is still within its validity window.
|
|
53
|
+
*/
|
|
54
|
+
export function isProfileValid(profile, nowMs) {
|
|
55
|
+
return (nowMs ?? Date.now()) <= profile.valid_until;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Generate a ModelTrustProfile from attestation data.
|
|
59
|
+
*/
|
|
60
|
+
export function generateProfile(opts) {
|
|
61
|
+
const now = opts.nowMs ?? Date.now();
|
|
62
|
+
const ttl = opts.ttlMs ?? 86_400_000; // 24h default
|
|
63
|
+
const passing = opts.attestations.filter((a) => a.status === "pass").length;
|
|
64
|
+
const score = opts.attestations.length > 0 ? passing / opts.attestations.length : 0;
|
|
65
|
+
const profile = {
|
|
66
|
+
model_id: opts.modelId,
|
|
67
|
+
model_hash: opts.modelHash,
|
|
68
|
+
coverage: opts.attestations,
|
|
69
|
+
coverage_score: score,
|
|
70
|
+
upstream_references: opts.upstreamReferences ?? [],
|
|
71
|
+
generated_at: now,
|
|
72
|
+
valid_until: now + ttl,
|
|
73
|
+
signing_key_id: opts.signingKeyId,
|
|
74
|
+
};
|
|
75
|
+
if (opts.signingKey) {
|
|
76
|
+
profile.signature = signProfile(profile, opts.signingKey);
|
|
77
|
+
}
|
|
78
|
+
return profile;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Calculate coverage against a target procedure set.
|
|
82
|
+
*
|
|
83
|
+
* @param attestedProcedures - Procedure IDs the model has passing attestations for.
|
|
84
|
+
* @param target - Profile name (key into RECOMMENDED_PROCEDURES) or custom array. Default: "standard".
|
|
85
|
+
*/
|
|
86
|
+
export function coverageScore(attestedProcedures, target) {
|
|
87
|
+
let targetSet;
|
|
88
|
+
if (target === undefined) {
|
|
89
|
+
targetSet = RECOMMENDED_PROCEDURES["standard"];
|
|
90
|
+
}
|
|
91
|
+
else if (typeof target === "string") {
|
|
92
|
+
const resolved = RECOMMENDED_PROCEDURES[target];
|
|
93
|
+
if (!resolved) {
|
|
94
|
+
throw new Error(`Unknown profile: "${target}". Available: ${Object.keys(RECOMMENDED_PROCEDURES).join(", ")}`);
|
|
95
|
+
}
|
|
96
|
+
targetSet = resolved;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
targetSet = target;
|
|
100
|
+
}
|
|
101
|
+
const targetLookup = new Set(targetSet);
|
|
102
|
+
const attestedLookup = new Set(attestedProcedures);
|
|
103
|
+
const covered = targetSet.filter((p) => attestedLookup.has(p));
|
|
104
|
+
const missing = targetSet.filter((p) => !attestedLookup.has(p));
|
|
105
|
+
const extra = attestedProcedures.filter((p) => !targetLookup.has(p));
|
|
106
|
+
const score = targetSet.length > 0 ? covered.length / targetSet.length : 0;
|
|
107
|
+
return { score, covered, missing, extra, target: targetSet };
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
|
package/dist/trust.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ export declare const DENIAL_SIGNATURE_INVALID = "signature_invalid";
|
|
|
27
27
|
export declare const DENIAL_SIGNATURE_UNVERIFIABLE = "signature_unverifiable";
|
|
28
28
|
export declare const DENIAL_INSUFFICIENT_TRUST_LEVEL = "insufficient_trust_level";
|
|
29
29
|
export declare const DENIAL_TIMESTAMP_FUTURE = "timestamp_future";
|
|
30
|
+
export declare const DENIAL_RATE_LIMITED = "rate_limited";
|
|
30
31
|
export interface TrustCredential {
|
|
31
32
|
agentId: string;
|
|
32
33
|
tenantId: string;
|
|
@@ -38,6 +39,8 @@ export interface TrustCredential {
|
|
|
38
39
|
hasHardwareAttestation?: boolean;
|
|
39
40
|
hasGuardrails?: boolean;
|
|
40
41
|
credentialSignature?: string;
|
|
42
|
+
governancePolicyHash?: string;
|
|
43
|
+
governanceVersion?: number;
|
|
41
44
|
}
|
|
42
45
|
export interface TrustResult {
|
|
43
46
|
granted: boolean;
|
|
@@ -48,6 +51,21 @@ export interface TrustResult {
|
|
|
48
51
|
counterpartAgentId: string;
|
|
49
52
|
counterpartTenantId: string;
|
|
50
53
|
}
|
|
54
|
+
export interface DenyEvent {
|
|
55
|
+
type: "agent" | "tenant";
|
|
56
|
+
target: string;
|
|
57
|
+
reason: string;
|
|
58
|
+
timestamp: number;
|
|
59
|
+
}
|
|
60
|
+
/** Sliding-window rate limiter for verification attempts. */
|
|
61
|
+
declare class RateLimiter {
|
|
62
|
+
private attempts;
|
|
63
|
+
private maxFailures;
|
|
64
|
+
private windowMs;
|
|
65
|
+
constructor(maxFailures: number, windowMs: number);
|
|
66
|
+
isExceeded(source: string): boolean;
|
|
67
|
+
recordFailure(source: string): void;
|
|
68
|
+
}
|
|
51
69
|
export declare class TrustRegistry {
|
|
52
70
|
private trustedTenants;
|
|
53
71
|
private trustedAgents;
|
|
@@ -58,15 +76,30 @@ export declare class TrustRegistry {
|
|
|
58
76
|
private freshnessWindowMs;
|
|
59
77
|
private requireSignature;
|
|
60
78
|
private minTrustLevel;
|
|
79
|
+
private requireIntraTenantSigning;
|
|
80
|
+
private rateLimiter;
|
|
81
|
+
private perLevelFreshnessMs;
|
|
82
|
+
private verifyBooleanClaims;
|
|
83
|
+
private denyEventListeners;
|
|
61
84
|
trustTenant(tenantId: string): void;
|
|
62
85
|
trustAgent(tenantId: string, agentId: string): void;
|
|
63
|
-
denyAgent(agentId: string): void;
|
|
64
|
-
denyTenant(tenantId: string): void;
|
|
86
|
+
denyAgent(agentId: string, reason?: string): void;
|
|
87
|
+
denyTenant(tenantId: string, reason?: string): void;
|
|
65
88
|
registerSigningKey(agentId: string, key: string): void;
|
|
66
89
|
setRequiredProcedures(procedures: string[]): void;
|
|
67
90
|
setFreshnessWindow(seconds: number): void;
|
|
68
91
|
setRequireSignature(require: boolean): void;
|
|
69
92
|
setMinTrustLevel(level: number): void;
|
|
93
|
+
setRequireIntraTenantSigning(require: boolean): void;
|
|
94
|
+
setRateLimit(maxFailures: number, windowSeconds: number): void;
|
|
95
|
+
setPerLevelFreshness(windows: Record<number, number>): void;
|
|
96
|
+
setVerifyBooleanClaims(verify: boolean): void;
|
|
97
|
+
onDenyEvent(listener: (event: DenyEvent) => void): void;
|
|
98
|
+
applyRevocationEvent(event: {
|
|
99
|
+
agentId?: string;
|
|
100
|
+
tenantId?: string;
|
|
101
|
+
reason: string;
|
|
102
|
+
}): void;
|
|
70
103
|
isAgentDenied(agentId: string): boolean;
|
|
71
104
|
isTenantDenied(tenantId: string): boolean;
|
|
72
105
|
isTenantTrusted(tenantId: string, ownTenantId: string): boolean;
|
|
@@ -80,7 +113,14 @@ export declare class TrustRegistry {
|
|
|
80
113
|
/** @internal */
|
|
81
114
|
get _minTrustLevel(): number;
|
|
82
115
|
/** @internal */
|
|
116
|
+
get _rateLimiter(): RateLimiter | null;
|
|
117
|
+
/** @internal */
|
|
118
|
+
get _perLevelFreshnessMs(): Map<number, number> | null;
|
|
119
|
+
/** @internal */
|
|
120
|
+
get _verifyBooleanClaims(): boolean;
|
|
121
|
+
/** @internal */
|
|
83
122
|
getSigningKey(agentId: string): string | undefined;
|
|
123
|
+
private _emitDenyEvent;
|
|
84
124
|
}
|
|
85
125
|
/**
|
|
86
126
|
* Build the deterministic message used for credential signing/verification.
|
|
@@ -97,4 +137,58 @@ export declare function signCredential(credential: TrustCredential, signingKey:
|
|
|
97
137
|
export declare function verifyCredentialSignature(credential: TrustCredential, signingKey: string): boolean;
|
|
98
138
|
export declare function evaluateTrustLevel(credential: TrustCredential): number;
|
|
99
139
|
export declare function verifyCredential(credential: TrustCredential, registry: TrustRegistry, ownTenantId: string): TrustResult;
|
|
140
|
+
export interface KeyAttestation {
|
|
141
|
+
agentId: string;
|
|
142
|
+
publicKey: string;
|
|
143
|
+
anchorFingerprint: string;
|
|
144
|
+
anchorTimestampMs: number;
|
|
145
|
+
keyPurpose: "signing" | "encryption" | "delegation";
|
|
146
|
+
attestationProof: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Generate a key attestation binding a public key to an anchor fingerprint.
|
|
150
|
+
* The attestation proof is HMAC(agentId:publicKey:fingerprint:timestamp:purpose, signingKey).
|
|
151
|
+
*/
|
|
152
|
+
export declare function generateKeyAttestation(agentId: string, publicKey: string, anchorFingerprint: string, anchorTimestampMs: number, signingKey: string, keyPurpose?: "signing" | "encryption" | "delegation"): KeyAttestation;
|
|
153
|
+
/**
|
|
154
|
+
* Verify a key attestation against a known signing key.
|
|
155
|
+
* Returns true if the attestation proof is valid.
|
|
156
|
+
*/
|
|
157
|
+
export declare function verifyKeyAttestation(attestation: KeyAttestation, signingKey: string): boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Check if a key attestation is fresh (bound anchor not expired).
|
|
160
|
+
*/
|
|
161
|
+
export declare function isKeyAttestationFresh(attestation: KeyAttestation, freshnessWindowMs: number): boolean;
|
|
162
|
+
export interface LivenessChallenge {
|
|
163
|
+
nonce: string;
|
|
164
|
+
challengeTimestampMs: number;
|
|
165
|
+
targetAgentId: string;
|
|
166
|
+
}
|
|
167
|
+
export interface LivenessResponse {
|
|
168
|
+
nonce: string;
|
|
169
|
+
challengeTimestampMs: number;
|
|
170
|
+
agentId: string;
|
|
171
|
+
anchorFingerprint: string;
|
|
172
|
+
responseSignature: string;
|
|
173
|
+
}
|
|
174
|
+
export interface LivenessResult {
|
|
175
|
+
valid: boolean;
|
|
176
|
+
reason?: string;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Generate a liveness challenge for a target agent.
|
|
180
|
+
* The nonce is 32 random bytes encoded as hex.
|
|
181
|
+
*/
|
|
182
|
+
export declare function generateChallenge(targetAgentId: string): LivenessChallenge;
|
|
183
|
+
/**
|
|
184
|
+
* Respond to a liveness challenge by signing the challenge data with the agent's key.
|
|
185
|
+
* Signed message: agentId:anchorFingerprint:nonce:challengeTimestamp
|
|
186
|
+
*/
|
|
187
|
+
export declare function respondToChallenge(challenge: LivenessChallenge, agentId: string, anchorFingerprint: string, signingKey: string): LivenessResponse;
|
|
188
|
+
/**
|
|
189
|
+
* Verify a liveness response against the original challenge.
|
|
190
|
+
* Checks: nonce match, timestamp match, signature validity, timeout.
|
|
191
|
+
*/
|
|
192
|
+
export declare function verifyLivenessResponse(response: LivenessResponse, challenge: LivenessChallenge, signingKey: string, timeoutMs?: number): LivenessResult;
|
|
193
|
+
export {};
|
|
100
194
|
//# sourceMappingURL=trust.d.ts.map
|
package/dist/trust.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../src/trust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMpD,CAAC;AAEF,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAC5D,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAC9D,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAC5D,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;AACtE,eAAO,MAAM,+BAA+B,6BAA6B,CAAC;AAC1E,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../src/trust.ts"],"names":[],"mappings":"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"}
|