Variable SessionStateConst
SessionState: ZodObject<
{
id: ZodString;
schemaVersion: ZodLiteral<"v1">;
phase: ZodEnum<
{
READY: "READY";
TICKET: "TICKET";
PLAN: "PLAN";
PLAN_REVIEW: "PLAN_REVIEW";
VALIDATION: "VALIDATION";
IMPLEMENTATION: "IMPLEMENTATION";
IMPL_REVIEW: "IMPL_REVIEW";
EVIDENCE_REVIEW: "EVIDENCE_REVIEW";
COMPLETE: "COMPLETE";
ARCHITECTURE: "ARCHITECTURE";
ARCH_REVIEW: "ARCH_REVIEW";
ARCH_COMPLETE: "ARCH_COMPLETE";
REVIEW: "REVIEW";
REVIEW_COMPLETE: "REVIEW_COMPLETE";
},
>;
binding: ZodReadonly<
ZodObject<
{
sessionId: ZodString;
worktree: ZodString;
fingerprint: ZodString;
resolvedAt: ZodString;
},
$strip,
>,
>;
ticket: ZodNullable<
ZodReadonly<
ZodObject<
{
text: ZodString;
digest: ZodString;
source: ZodEnum<{ user: "user"; external: "external" }>;
createdAt: ZodString;
inputOrigin: ZodOptional<
ZodEnum<
{
manual_text: "manual_text";
external_reference: "external_reference";
mixed: "mixed";
workspace: "workspace";
branch: "branch";
pr: "pr";
unknown: "unknown";
},
>,
>;
references: ZodOptional<
ZodArray<
ZodReadonly<
ZodObject<
{
ref: ...;
type: ...;
title: ...;
source: ...;
extractedAt: ...;
},
$strip,
>,
>,
>,
>;
},
$strip,
>,
>,
>;
architecture: ZodNullable<
ZodReadonly<
ZodObject<
{
id: ZodString;
title: ZodString;
adrText: ZodString;
status: ZodEnum<
{
proposed: "proposed";
accepted: "accepted";
deprecated: "deprecated";
},
>;
createdAt: ZodString;
digest: ZodString;
reviewFindings: ZodOptional<
ZodArray<
ZodReadonly<
ZodObject<
{
iteration: ...;
planVersion: ...;
reviewMode: ...;
overallVerdict: ...;
blockingIssues: ...;
majorRisks: ...;
missingVerification: ...;
scopeCreep: ...;
unknowns: ...;
reviewedBy: ...;
reviewedAt: ...;
attestation: ...;
},
$strip,
>,
>,
>,
>;
},
$strip,
>,
>,
>;
plan: ZodNullable<
ZodReadonly<
ZodObject<
{
current: ZodObject<
{
body: ZodString;
digest: ZodString;
sections: ZodArray<ZodString>;
createdAt: ZodString;
},
$strip,
>;
history: ZodArray<
ZodObject<
{
body: ZodString;
digest: ZodString;
sections: ZodArray<ZodString>;
createdAt: ZodString;
},
$strip,
>,
>;
reviewFindings: ZodOptional<
ZodArray<
ZodReadonly<
ZodObject<
{
iteration: ...;
planVersion: ...;
reviewMode: ...;
overallVerdict: ...;
blockingIssues: ...;
majorRisks: ...;
missingVerification: ...;
scopeCreep: ...;
unknowns: ...;
reviewedBy: ...;
reviewedAt: ...;
attestation: ...;
},
$strip,
>,
>,
>,
>;
},
$strip,
>,
>,
>;
selfReview: ZodNullable<
ZodObject<
{
iteration: ZodNumber;
maxIterations: ZodNumber;
prevDigest: ZodNullable<ZodString>;
currDigest: ZodString;
revisionDelta: ZodEnum<
{ none: "none"; minor: "minor"; major: "major" },
>;
verdict: ZodEnum<
{
approve: "approve";
changes_requested: "changes_requested";
unable_to_review: "unable_to_review";
},
>;
},
$strip,
>,
>;
validation: ZodArray<
ZodReadonly<
ZodObject<
{
checkId: ZodString;
passed: ZodBoolean;
detail: ZodString;
executedAt: ZodString;
evidenceType: ZodOptional<
ZodEnum<
{
external_reference: "external_reference";
command_output: "command_output";
ci_run: "ci_run";
manual_review: "manual_review";
},
>,
>;
command: ZodOptional<ZodString>;
evidenceSummary: ZodOptional<ZodString>;
},
$strip,
>,
>,
>;
implementation: ZodNullable<
ZodReadonly<
ZodObject<
{
changedFiles: ZodArray<ZodString>;
domainFiles: ZodArray<ZodString>;
digest: ZodString;
executedAt: ZodString;
},
$strip,
>,
>,
>;
implReview: ZodNullable<
ZodReadonly<
ZodObject<
{
iteration: ZodNumber;
maxIterations: ZodNumber;
prevDigest: ZodNullable<ZodString>;
currDigest: ZodString;
revisionDelta: ZodEnum<
{ none: "none"; minor: "minor"; major: "major" },
>;
verdict: ZodEnum<
{
approve: "approve";
changes_requested: "changes_requested";
unable_to_review: "unable_to_review";
},
>;
executedAt: ZodString;
},
$strip,
>,
>,
>;
implReviewFindings: ZodOptional<
ZodArray<
ZodReadonly<
ZodObject<
{
iteration: ZodNumber;
planVersion: ZodNumber;
reviewMode: ZodEnum<{ subagent: "subagent"; self: "self" }>;
overallVerdict: ZodEnum<
{
approve: "approve";
changes_requested: "changes_requested";
unable_to_review: "unable_to_review";
},
>;
blockingIssues: ZodArray<
ZodReadonly<
ZodObject<
{ severity: ...; category: ...; message: ...; location: ... },
$strip,
>,
>,
>;
majorRisks: ZodArray<
ZodReadonly<
ZodObject<
{ severity: ...; category: ...; message: ...; location: ... },
$strip,
>,
>,
>;
missingVerification: ZodArray<ZodString>;
scopeCreep: ZodArray<ZodString>;
unknowns: ZodArray<ZodString>;
reviewedBy: ZodReadonly<
ZodObject<
{
sessionId: ZodString;
actorId: ZodOptional<(...)>;
actorSource: ZodOptional<(...)>;
actorAssurance: ZodOptional<(...)>;
},
$strip,
>,
>;
reviewedAt: ZodString;
attestation: ZodOptional<
ZodReadonly<
ZodObject<
{
mandateDigest: ...;
criteriaVersion: ...;
toolObligationId: ...;
iteration: ...;
planVersion: ...;
reviewedBy: ...;
},
$strip,
>,
>,
>;
},
$strip,
>,
>,
>,
>;
reviewAssurance: ZodOptional<
ZodReadonly<
ZodObject<
{
obligations: ZodArray<
ZodObject<
{
obligationId: ZodString;
obligationType: ZodEnum<
{ plan: ...; implement: ...; architecture: ...; review: ... },
>;
iteration: ZodNumber;
planVersion: ZodNumber;
criteriaVersion: ZodString;
mandateDigest: ZodString;
createdAt: ZodString;
pluginHandshakeAt: ZodNullable<ZodString>;
status: ZodEnum<
{ pending: ...; fulfilled: ...; consumed: ...; blocked: ... },
>;
invocationId: ZodNullable<ZodString>;
blockedCode: ZodNullable<ZodString>;
fulfilledAt: ZodNullable<ZodString>;
consumedAt: ZodNullable<ZodString>;
metadata: ZodOptional<ZodRecord<(...), (...)>>;
},
$strip,
>,
>;
invocations: ZodArray<
ZodReadonly<
ZodObject<
{
invocationId: ZodString;
obligationId: ZodString;
obligationType: ZodEnum<(...)>;
parentSessionId: ZodString;
childSessionId: ZodString;
agentType: ZodLiteral<(...)>;
invocationMode: ZodEnum<(...)>;
hostVisible: ZodBoolean;
promptHash: ZodString;
mandateDigest: ZodString;
criteriaVersion: ZodString;
findingsHash: ZodString;
invokedAt: ZodString;
fulfilledAt: ZodNullable<(...)>;
consumedByObligationId: ZodNullable<(...)>;
capturedVerdict: ZodOptional<(...)>;
capturedRawFindings: ZodOptional<(...)>;
source: ZodOptional<(...)>;
reviewOutputMode: ZodDefault<(...)>;
structuredOutputUsed: ZodDefault<(...)>;
reviewAssuranceLevel: ZodDefault<(...)>;
extractionMethod: ZodOptional<(...)>;
modelCapabilityError: ZodOptional<(...)>;
},
$strip,
>,
>,
>;
},
$strip,
>,
>,
>;
reviewDecision: ZodNullable<
ZodReadonly<
ZodObject<
{
verdict: ZodEnum<
{
approve: "approve";
changes_requested: "changes_requested";
reject: "reject";
},
>;
rationale: ZodString;
decidedAt: ZodString;
decidedBy: ZodString;
decisionIdentity: ZodOptional<
ZodReadonly<
ZodObject<
{
actorId: ZodString;
actorEmail: ZodNullable<(...)>;
actorDisplayName: ZodOptional<(...)>;
actorSource: ZodEnum<(...)>;
actorAssurance: ZodDefault<(...)>;
},
$strip,
>,
>,
>;
},
$strip,
>,
>,
>;
reviewReportPath: ZodDefault<ZodNullable<ZodString>>;
nextAdrNumber: ZodNumber;
activeProfile: ZodNullable<
ZodObject<
{
id: ZodString;
name: ZodString;
ruleContent: ZodString;
phaseRuleContent: ZodOptional<ZodRecord<ZodString, ZodString>>;
},
$strip,
>,
>;
activeChecks: ZodArray<ZodString>;
policySnapshot: ZodReadonly<
ZodObject<
{
mode: ZodString;
hash: ZodString;
resolvedAt: ZodString;
requestedMode: ZodString;
source: ZodOptional<
ZodEnum<
{
default: "default";
explicit: "explicit";
central: "central";
repo: "repo";
},
>,
>;
effectiveGateBehavior: ZodEnum<
{ auto_approve: "auto_approve"; human_gated: "human_gated" },
>;
degradedReason: ZodOptional<ZodString>;
resolutionReason: ZodOptional<ZodString>;
centralMinimumMode: ZodOptional<
ZodEnum<{ solo: "solo"; team: "team"; regulated: "regulated" }>,
>;
policyDigest: ZodOptional<ZodString>;
policyVersion: ZodOptional<ZodString>;
policyPathHint: ZodOptional<ZodString>;
requireHumanGates: ZodBoolean;
maxSelfReviewIterations: ZodNumber;
maxImplReviewIterations: ZodNumber;
allowSelfApproval: ZodBoolean;
minimumActorAssuranceForApproval: ZodDefault<
ZodEnum<
{
best_effort: "best_effort";
claim_validated: "claim_validated";
idp_verified: "idp_verified";
},
>,
>;
requireVerifiedActorsForApproval: ZodDefault<ZodBoolean>;
identityProvider: ZodOptional<
ZodPreprocess<
ZodDiscriminatedUnion<
[
ZodObject<
{
issuer: ...;
audience: ...;
claimMapping: ...;
mode: ...;
signingKeys: ...;
},
$strict,
>,
ZodObject<
{
issuer: ...;
audience: ...;
claimMapping: ...;
mode: ...;
jwksPath: ...;
jwksUri: ...;
cacheTtlSeconds: ...;
},
$strict,
>,
],
"mode",
>,
>,
>;
identityProviderMode: ZodDefault<
ZodEnum<{ optional: "optional"; required: "required" }>,
>;
selfReview: ZodOptional<
ZodObject<
{
subagentEnabled: ZodBoolean;
fallbackToSelf: ZodBoolean;
strictEnforcement: ZodDefault<ZodBoolean>;
},
$strip,
>,
>;
reviewOutputPolicy: ZodOptional<
ZodEnum<
{
structured_required: "structured_required";
text_compat_allowed: "text_compat_allowed";
},
>,
>;
reviewInvocationPolicy: ZodOptional<
ZodEnum<
{
host_task_required: "host_task_required";
host_task_preferred: "host_task_preferred";
sdk_allowed: "sdk_allowed";
},
>,
>;
audit: ZodObject<
{
emitTransitions: ZodBoolean;
emitToolCalls: ZodBoolean;
enableChainHash: ZodBoolean;
},
$strip,
>;
actorClassification: ZodRecord<ZodString, ZodString>;
},
$strip,
>,
>;
initiatedBy: ZodString;
initiatedByIdentity: ZodOptional<
ZodReadonly<
ZodObject<
{
actorId: ZodString;
actorEmail: ZodNullable<ZodString>;
actorDisplayName: ZodOptional<ZodNullable<ZodString>>;
actorSource: ZodEnum<
{
unknown: "unknown";
env: "env";
git: "git";
claim: "claim";
oidc: "oidc";
},
>;
actorAssurance: ZodDefault<
ZodPipe<
ZodUnion<
readonly [
ZodLiteral<(...)>,
ZodLiteral<(...)>,
ZodLiteral<(...)>,
ZodLiteral<(...)>,
],
>,
ZodTransform<
"best_effort"
| "claim_validated"
| "idp_verified",
"best_effort" | "claim_validated" | "idp_verified" | "verified",
>,
>,
>;
},
$strip,
>,
>,
>;
actorInfo: ZodOptional<
ZodReadonly<
ZodObject<
{
id: ZodString;
email: ZodNullable<ZodString>;
displayName: ZodOptional<ZodNullable<ZodString>>;
source: ZodEnum<
{
unknown: "unknown";
env: "env";
git: "git";
claim: "claim";
oidc: "oidc";
},
>;
assurance: ZodDefault<
ZodPipe<
ZodUnion<
readonly [
ZodLiteral<(...)>,
ZodLiteral<(...)>,
ZodLiteral<(...)>,
ZodLiteral<(...)>,
],
>,
ZodTransform<
"best_effort"
| "claim_validated"
| "idp_verified",
"best_effort" | "claim_validated" | "idp_verified" | "verified",
>,
>,
>;
verificationMeta: ZodOptional<
ZodReadonly<
ZodObject<
{
issuer: ZodString;
audience: ZodArray<(...)>;
keyId: ZodString;
algorithm: ZodString;
verifiedAt: ZodString;
},
$strip,
>,
>,
>;
},
$strip,
>,
>,
>;
discoveryDigest: ZodOptional<ZodNullable<ZodString>>;
discoverySummary: ZodOptional<
ZodNullable<
ZodObject<
{
primaryLanguages: ZodArray<ZodString>;
frameworks: ZodArray<ZodString>;
topologyKind: ZodEnum<
{
unknown: "unknown";
monorepo: "monorepo";
"single-project": "single-project";
},
>;
moduleCount: ZodNumber;
hasApiSurface: ZodBoolean;
hasPersistenceSurface: ZodBoolean;
hasCiCd: ZodBoolean;
hasSecuritySurface: ZodBoolean;
codeSurfaceStatus: ZodOptional<
ZodEnum<{ failed: "failed"; ok: "ok"; partial: "partial" }>,
>;
apiEndpointCount: ZodOptional<ZodNumber>;
hasAuthBoundary: ZodOptional<ZodBoolean>;
},
$strip,
>,
>,
>;
detectedStack: ZodOptional<
ZodNullable<
ZodObject<
{
summary: ZodString;
items: ZodArray<
ZodObject<
{
kind: ZodEnum<
{
language: ...;
framework: ...;
runtime: ...;
buildTool: ...;
tool: ...;
testFramework: ...;
qualityTool: ...;
database: ...;
},
>;
id: ZodString;
version: ZodOptional<ZodString>;
evidence: ZodOptional<ZodString>;
},
$strip,
>,
>;
versions: ZodArray<
ZodObject<
{
id: ZodString;
version: ZodString;
target: ZodEnum<
{
language: ...;
framework: ...;
runtime: ...;
buildTool: ...;
tool: ...;
testFramework: ...;
qualityTool: ...;
database: ...;
},
>;
evidence: ZodOptional<ZodString>;
},
$strip,
>,
>;
targets: ZodOptional<
ZodArray<
ZodObject<
{
kind: ZodLiteral<(...)>;
id: ZodString;
value: ZodString;
evidence: ZodOptional<(...)>;
},
$strip,
>,
>,
>;
scopes: ZodOptional<
ZodArray<
ZodObject<
{
path: ZodString;
summary: ZodOptional<(...)>;
items: ZodArray<(...)>;
versions: ZodDefault<(...)>;
},
$strip,
>,
>,
>;
},
$strip,
>,
>,
>;
verificationCandidates: ZodOptional<
ZodArray<
ZodObject<
{
kind: ZodEnum<
{
format: "format";
build: "build";
test: "test";
lint: "lint";
typecheck: "typecheck";
security: "security";
coverage: "coverage";
},
>;
command: ZodString;
source: ZodString;
confidence: ZodEnum<{ high: "high"; medium: "medium"; low: "low" }>;
reason: ZodString;
},
$strip,
>,
>,
>;
transition: ZodNullable<
ZodObject<
{
from: ZodEnum<
{
READY: "READY";
TICKET: "TICKET";
PLAN: "PLAN";
PLAN_REVIEW: "PLAN_REVIEW";
VALIDATION: "VALIDATION";
IMPLEMENTATION: "IMPLEMENTATION";
IMPL_REVIEW: "IMPL_REVIEW";
EVIDENCE_REVIEW: "EVIDENCE_REVIEW";
COMPLETE: "COMPLETE";
ARCHITECTURE: "ARCHITECTURE";
ARCH_REVIEW: "ARCH_REVIEW";
ARCH_COMPLETE: "ARCH_COMPLETE";
REVIEW: "REVIEW";
REVIEW_COMPLETE: "REVIEW_COMPLETE";
},
>;
to: ZodEnum<
{
READY: "READY";
TICKET: "TICKET";
PLAN: "PLAN";
PLAN_REVIEW: "PLAN_REVIEW";
VALIDATION: "VALIDATION";
IMPLEMENTATION: "IMPLEMENTATION";
IMPL_REVIEW: "IMPL_REVIEW";
EVIDENCE_REVIEW: "EVIDENCE_REVIEW";
COMPLETE: "COMPLETE";
ARCHITECTURE: "ARCHITECTURE";
ARCH_REVIEW: "ARCH_REVIEW";
ARCH_COMPLETE: "ARCH_COMPLETE";
REVIEW: "REVIEW";
REVIEW_COMPLETE: "REVIEW_COMPLETE";
},
>;
event: ZodEnum<
{
TICKET_SELECTED: "TICKET_SELECTED";
ARCHITECTURE_SELECTED: "ARCHITECTURE_SELECTED";
REVIEW_SELECTED: "REVIEW_SELECTED";
PLAN_READY: "PLAN_READY";
SELF_REVIEW_MET: "SELF_REVIEW_MET";
SELF_REVIEW_PENDING: "SELF_REVIEW_PENDING";
APPROVE: "APPROVE";
CHANGES_REQUESTED: "CHANGES_REQUESTED";
REJECT: "REJECT";
ALL_PASSED: "ALL_PASSED";
CHECK_FAILED: "CHECK_FAILED";
IMPL_COMPLETE: "IMPL_COMPLETE";
REVIEW_MET: "REVIEW_MET";
REVIEW_PENDING: "REVIEW_PENDING";
REVIEW_DONE: "REVIEW_DONE";
ERROR: "ERROR";
ABORT: "ABORT";
},
>;
at: ZodString;
},
$strip,
>,
>;
error: ZodNullable<
ZodReadonly<
ZodObject<
{
code: ZodString;
message: ZodString;
recoveryHint: ZodString;
occurredAt: ZodString;
},
$strip,
>,
>,
>;
createdAt: ZodString;
archiveStatus: ZodOptional<
ZodNullable<
ZodEnum<
{
pending: "pending";
verified: "verified";
failed: "failed";
created: "created";
},
>,
>,
>;
},
$strip,
> = ...
The complete FlowGuard session state. Single JSON document, atomically persisted, Zod-validated on every write.
Slot pattern: each evidence field is nullable.
The evaluator reads these slots to determine which guards pass.