Skip to main content

Class: SignedOutputVerifier

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:236

Signed Output Verifier for creating and verifying HMAC-signed outputs.

This is the third layer of defense in the Wunderland security pipeline. It provides:

  • Cryptographic proof that output came from a specific agent
  • Tamper-evident audit trail via intent chain
  • Verification mechanism for downstream systems

Example​

const verifier = new SignedOutputVerifier({
algorithm: 'sha256',
secretKeyEnvVar: 'MY_SECRET_KEY',
});

const tracker = new IntentChainTracker();
tracker.addEntry({
action: 'USER_INPUT',
inputHash: verifier.hash('user message'),
outputHash: '',
modelUsed: 'llama3.2:3b',
securityFlags: [],
});

const signedOutput = verifier.sign(
{ text: 'Hello!' },
tracker.getEntries(),
{ seedId: 'my-agent' }
);

const isValid = verifier.verify(signedOutput);

Constructors​

Constructor​

new SignedOutputVerifier(config?): SignedOutputVerifier

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:240

Parameters​

config?​

Partial<OutputSigningConfig> = {}

Returns​

SignedOutputVerifier

Methods​

extractVerifiedIntentChain()​

extractVerifiedIntentChain(signedOutput): IntentChainEntry[] | null

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:419

Extracts and validates the intent chain from a signed output. Returns null if verification fails.

Parameters​

signedOutput​

SignedAgentOutput

Returns​

IntentChainEntry[] | null


getConfig()​

getConfig(): Omit<OutputSigningConfig, "secretKeyEnvVar"> & object

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:524

Gets the current configuration (without secret).

Returns​

Omit<OutputSigningConfig, "secretKeyEnvVar"> & object


hash()​

hash(data): string

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:273

Creates a hash of the given data.

Parameters​

data​

string | object

Returns​

string


sign()​

sign(content, intentChain, context): SignedAgentOutput

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:319

Signs an output with HMAC.

Parameters​

content​

unknown

intentChain​

readonly IntentChainEntry[]

context​

SigningContext

Returns​

SignedAgentOutput


signPayload()​

signPayload(payload): string

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:285

Signs an arbitrary payload deterministically (detached signature).

This is useful for compact artifacts (e.g. InputManifest) where we want a verifiable signature over the payload itself without embedding intent-chain structures or per-signature randomness (outputId/timestamp).

Parameters​

payload​

unknown

Returns​

string


summarizeIntentChain()​

summarizeIntentChain(chain): object

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:429

Creates a summary of the intent chain for logging.

Parameters​

chain​

readonly IntentChainEntry[]

Returns​

object

duration​

duration: number | null

modelsUsed​

modelsUsed: string[]

securityFlags​

securityFlags: string[]

stepCount​

stepCount: number

uniqueActions​

uniqueActions: string[]


updateConfig()​

updateConfig(updates): void

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:513

Updates the configuration.

Parameters​

updates​

Partial<OutputSigningConfig>

Returns​

void


validateIntentChainLogic()​

validateIntentChainLogic(chain): object

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:468

Checks if an intent chain has any logical inconsistencies. Used for auditing purposes.

Parameters​

chain​

readonly IntentChainEntry[]

Returns​

object

issues​

issues: string[]

valid​

valid: boolean


verify()​

verify(signedOutput): boolean

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:368

Verifies a signed output.

Parameters​

signedOutput​

SignedAgentOutput

Returns​

boolean

true if signature is valid, false otherwise


verifyPayload()​

verifyPayload(payload, signature): boolean

Defined in: .source/wunderland/src/security/SignedOutputVerifier.ts:297

Verifies a detached payload signature.

Parameters​

payload​

unknown

signature​

string

Returns​

boolean

true if signature matches, false otherwise