@wrongstack/governance 0.313.1 → 0.316.2
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/dist/admin-session.d.ts +1 -1
- package/dist/attachment-broker-controller.d.ts +2 -5
- package/dist/authenticated-project-service.d.ts +0 -1
- package/dist/autonomy-envelope.d.ts +2 -1
- package/dist/capability-grant.d.ts +5 -5
- package/dist/credential-lease-controller.d.ts +5 -8
- package/dist/daemon-control.d.ts +3 -2
- package/dist/daemon-metadata.d.ts +8 -17
- package/dist/daemon-protocol.d.ts +5 -4
- package/dist/event-store.d.ts +3 -5
- package/dist/evidence-candidate.d.ts +2 -1
- package/dist/index.js +0 -34
- package/dist/ipc-endpoint.d.ts +0 -1
- package/dist/ipc-protocol.d.ts +3 -2
- package/dist/legacy-shadow-adapter.d.ts +3 -2
- package/dist/management-receipt-cache.d.ts +4 -4
- package/dist/plan-version.d.ts +13 -13
- package/dist/project-client.d.ts +2 -1
- package/dist/project-daemon.d.ts +2 -1
- package/dist/project-server.d.ts +2 -3
- package/dist/project-service.d.ts +2 -2
- package/dist/protocol-decoder.d.ts +4 -3
- package/dist/service-protocol.d.ts +2 -1
- package/dist/task-aggregate.d.ts +7 -6
- package/dist/task-contract.d.ts +11 -10
- package/dist/transition-engine.d.ts +4 -3
- package/dist/verification-check-binding.d.ts +2 -2
- package/dist/verification-check-registry.d.ts +3 -2
- package/dist/verification-issuance-coordinator.d.ts +6 -6
- package/dist/verification-ledger-store.d.ts +2 -1
- package/dist/verification-planner.d.ts +11 -10
- package/dist/verification-run-contract.d.ts +8 -8
- package/dist/verification-tool-gateway.d.ts +6 -6
- package/package.json +2 -2
package/dist/admin-session.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface ConnectGovernanceAdminSessionOptions extends GovernanceAdminSes
|
|
|
17
17
|
readonly grantId: string;
|
|
18
18
|
readonly credential: GovernanceServiceCredential;
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
type GovernanceAdminSessionConnectionFailureCode = 'not_running' | 'endpoint_invalid' | 'project_mismatch' | 'credential_mismatch' | 'authentication_failed' | 'service_rejected' | 'admin_required' | 'grant_mismatch';
|
|
21
21
|
export type ConnectGovernanceAdminSessionResult = {
|
|
22
22
|
readonly connected: true;
|
|
23
23
|
readonly session: GovernanceAdminSession;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import type { IssuedGovernanceCapabilityGrant, IssueGovernanceCapabilityGrantOptions } from './capability-grant.js';
|
|
2
2
|
import { type GovernanceDaemonAttachmentBrokerRecord, type GovernanceDaemonMetadata } from './daemon-metadata.js';
|
|
3
|
-
|
|
4
|
-
export declare const GOVERNANCE_DAEMON_ATTACHMENT_BROKER_RETRY_MS = 5000;
|
|
5
|
-
export declare const GOVERNANCE_DAEMON_ATTACHMENT_BROKER_DEGRADED_FAILURES = 3;
|
|
6
|
-
export type GovernanceAttachmentBrokerLifecycleEventType = 'published' | 'renewal_failed' | 'degraded' | 'revocation_failed' | 'recovered' | 'stopped';
|
|
3
|
+
type GovernanceAttachmentBrokerLifecycleEventType = 'published' | 'renewal_failed' | 'degraded' | 'revocation_failed' | 'recovered' | 'stopped';
|
|
7
4
|
export interface GovernanceAttachmentBrokerLifecycleEvent {
|
|
8
5
|
readonly schemaVersion: 1;
|
|
9
6
|
readonly sequence: number;
|
|
@@ -39,7 +36,7 @@ interface GovernanceAttachmentBrokerGrantPort {
|
|
|
39
36
|
issueGrant(options: IssueGovernanceCapabilityGrantOptions): IssuedGovernanceCapabilityGrant;
|
|
40
37
|
revokeGrant(grantId: string, reason?: string): boolean;
|
|
41
38
|
}
|
|
42
|
-
|
|
39
|
+
interface GovernanceAttachmentBrokerControllerOptions {
|
|
43
40
|
readonly projectRoot: string;
|
|
44
41
|
readonly metadata: GovernanceDaemonMetadata;
|
|
45
42
|
readonly grants: GovernanceAttachmentBrokerGrantPort;
|
|
@@ -2,7 +2,6 @@ import type { GovernanceCapabilityGrantRegistry, GovernanceServiceCredential } f
|
|
|
2
2
|
import type { GovernanceDaemonControlPort } from './daemon-control.js';
|
|
3
3
|
import { GovernanceManagementReceiptCache } from './management-receipt-cache.js';
|
|
4
4
|
import type { GovernanceProjectService, GovernanceServiceResponse } from './project-service.js';
|
|
5
|
-
export declare const GOVERNANCE_RUNTIME_ATTACHMENT_MAX_TTL_MS: number;
|
|
6
5
|
/** External facade for a future IPC transport. Raw capability sets never cross this boundary. */
|
|
7
6
|
export declare class AuthenticatedGovernanceProjectService {
|
|
8
7
|
#private;
|
|
@@ -2,7 +2,7 @@ export declare const AUTONOMY_TIERS: readonly ['A0', 'A1', 'A2', 'A3', 'A4'];
|
|
|
2
2
|
export type AutonomyTier = (typeof AUTONOMY_TIERS)[number];
|
|
3
3
|
export declare const GOVERNED_OPERATIONS: readonly ['repository_read', 'file_edit', 'focused_check', 'shell_restricted', 'subagent_spawn', 'git_local_write', 'shell_arbitrary', 'package_install', 'public_api_change', 'schema_change', 'network_access', 'secret_access', 'git_push', 'publish', 'deploy', 'destructive_external'];
|
|
4
4
|
export type GovernedOperation = (typeof GOVERNED_OPERATIONS)[number];
|
|
5
|
-
|
|
5
|
+
interface ChangeBudget {
|
|
6
6
|
readonly maxChangedFiles: number;
|
|
7
7
|
readonly maxChangedLines: number;
|
|
8
8
|
readonly maxNewDependencies: number;
|
|
@@ -37,4 +37,5 @@ export type OperationAutonomyDecision = {
|
|
|
37
37
|
export declare const OPERATION_MINIMUM_TIER: Readonly<Record<GovernedOperation, AutonomyTier>>;
|
|
38
38
|
export declare function compareAutonomyTiers(left: AutonomyTier, right: AutonomyTier): number;
|
|
39
39
|
export declare function decideOperationAutonomy(envelope: AutonomyEnvelope, operation: GovernedOperation): OperationAutonomyDecision;
|
|
40
|
+
export {};
|
|
40
41
|
//# sourceMappingURL=autonomy-envelope.d.ts.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type GovernanceServiceCapability, type GovernanceServiceClientContext } from './service-protocol.js';
|
|
2
2
|
export declare const DEFAULT_GOVERNANCE_GRANT_MAX_TTL_MS: number;
|
|
3
|
-
|
|
4
|
-
export type GovernanceCapabilityGrantStatus = 'active' | 'expired' | 'revoked';
|
|
3
|
+
type GovernanceCapabilityGrantStatus = 'active' | 'expired' | 'revoked';
|
|
5
4
|
export interface GovernanceCapabilityGrant {
|
|
6
5
|
readonly grantId: string;
|
|
7
6
|
readonly projectId: string;
|
|
@@ -25,7 +24,7 @@ export interface IssueGovernanceCapabilityGrantOptions {
|
|
|
25
24
|
readonly capabilities: readonly GovernanceServiceCapability[];
|
|
26
25
|
readonly ttlMs: number;
|
|
27
26
|
}
|
|
28
|
-
|
|
27
|
+
interface RotateGovernanceCapabilityGrantOptions {
|
|
29
28
|
readonly rotatedBy?: string | undefined;
|
|
30
29
|
readonly ttlMs: number;
|
|
31
30
|
readonly reason?: string | undefined;
|
|
@@ -35,8 +34,8 @@ export interface GovernanceServiceCredential {
|
|
|
35
34
|
readonly projectId: string;
|
|
36
35
|
readonly clientId: string;
|
|
37
36
|
}
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
type GovernanceCapabilityAuthenticationFailureCode = 'invalid_token' | 'project_mismatch' | 'client_mismatch' | 'grant_expired' | 'grant_revoked';
|
|
38
|
+
type GovernanceCapabilityAuthenticationResult = {
|
|
40
39
|
readonly authenticated: true;
|
|
41
40
|
readonly grant: GovernanceCapabilityGrant;
|
|
42
41
|
readonly client: GovernanceServiceClientContext;
|
|
@@ -127,4 +126,5 @@ export declare class GovernanceCapabilityGrantRegistry {
|
|
|
127
126
|
private appendAudit;
|
|
128
127
|
private pruneInactive;
|
|
129
128
|
}
|
|
129
|
+
export {};
|
|
130
130
|
//# sourceMappingURL=capability-grant.d.ts.map
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import type { GovernanceServiceCredential } from './capability-grant.js';
|
|
2
2
|
import type { GovernanceServiceResponse } from './project-service.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export declare const GOVERNANCE_CREDENTIAL_LEASE_DEFAULT_RETRY_MS = 1000;
|
|
6
|
-
export declare const GOVERNANCE_CREDENTIAL_LEASE_DEFAULT_MAX_ATTEMPTS = 3;
|
|
7
|
-
export type GovernanceCredentialLeaseState = 'idle' | 'scheduled' | 'rotating' | 'retry_wait' | 'stopped' | 'expired';
|
|
8
|
-
export type GovernanceCredentialLeaseStopReason = 'stopped_by_owner' | 'retry_exhausted' | 'credential_expired';
|
|
3
|
+
type GovernanceCredentialLeaseState = 'idle' | 'scheduled' | 'rotating' | 'retry_wait' | 'stopped' | 'expired';
|
|
4
|
+
type GovernanceCredentialLeaseStopReason = 'stopped_by_owner' | 'retry_exhausted' | 'credential_expired';
|
|
9
5
|
export interface GovernanceCredentialLeaseSnapshot {
|
|
10
6
|
readonly state: GovernanceCredentialLeaseState;
|
|
11
7
|
readonly projectId: string;
|
|
@@ -21,10 +17,10 @@ export interface GovernanceCredentialLeaseScheduler {
|
|
|
21
17
|
schedule(callback: () => void, delayMs: number): unknown;
|
|
22
18
|
cancel(handle: unknown): void;
|
|
23
19
|
}
|
|
24
|
-
|
|
20
|
+
interface GovernanceCredentialLeaseClient {
|
|
25
21
|
request(input: unknown): Promise<GovernanceServiceResponse>;
|
|
26
22
|
}
|
|
27
|
-
|
|
23
|
+
interface GovernanceCredentialLeaseControllerOptions {
|
|
28
24
|
readonly projectRoot: string;
|
|
29
25
|
readonly projectId: string;
|
|
30
26
|
readonly grantId: string;
|
|
@@ -82,4 +78,5 @@ export declare class GovernanceCredentialLeaseController implements GovernanceCr
|
|
|
82
78
|
private clearTimer;
|
|
83
79
|
private expire;
|
|
84
80
|
}
|
|
81
|
+
export {};
|
|
85
82
|
//# sourceMappingURL=credential-lease-controller.d.ts.map
|
package/dist/daemon-control.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ export interface GovernanceDaemonControlStatus {
|
|
|
6
6
|
readonly startedAt: string;
|
|
7
7
|
readonly attachmentBroker?: GovernanceAttachmentBrokerControllerSnapshot | undefined;
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
type GovernanceDaemonOperatorSignalLevel = 'healthy' | 'notice' | 'warning';
|
|
10
|
+
interface GovernanceDaemonOperatorAttachmentBrokerStatus {
|
|
11
11
|
readonly state: GovernanceAttachmentBrokerControllerSnapshot['state'];
|
|
12
12
|
readonly health: GovernanceAttachmentBrokerControllerSnapshot['health'];
|
|
13
13
|
readonly expiresAt?: string | undefined;
|
|
@@ -45,4 +45,5 @@ export interface GovernanceDaemonShutdownNotice {
|
|
|
45
45
|
readonly requestedBy: string;
|
|
46
46
|
readonly reason: string;
|
|
47
47
|
}
|
|
48
|
+
export {};
|
|
48
49
|
//# sourceMappingURL=daemon-control.d.ts.map
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import type { GovernanceServiceCredential } from './capability-grant.js';
|
|
2
2
|
import { GOVERNANCE_SERVICE_PROTOCOL_VERSION } from './service-protocol.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export declare const GOVERNANCE_DAEMON_METADATA_MAX_BYTES: number;
|
|
7
|
-
export declare const GOVERNANCE_DAEMON_ENDPOINT_PROBE_TIMEOUT_MS = 750;
|
|
8
|
-
export declare const GOVERNANCE_DAEMON_STARTUP_LEASE_TIMEOUT_MS = 10000;
|
|
9
|
-
export declare const GOVERNANCE_DAEMON_STARTUP_LEASE_RETRY_MS = 50;
|
|
3
|
+
declare const GOVERNANCE_DAEMON_METADATA_SCHEMA_VERSION: 1;
|
|
4
|
+
declare const GOVERNANCE_DAEMON_STARTUP_LEASE_SCHEMA_VERSION: 1;
|
|
5
|
+
declare const GOVERNANCE_DAEMON_ATTACHMENT_BROKER_SCHEMA_VERSION: 1;
|
|
10
6
|
export declare const GOVERNANCE_DAEMON_ATTACHMENT_BROKER_TTL_MS: number;
|
|
11
|
-
export declare const GOVERNANCE_DAEMON_METADATA_RELATIVE_PATH: string;
|
|
12
|
-
export declare const GOVERNANCE_DAEMON_STARTUP_LEASE_RELATIVE_PATH: string;
|
|
13
|
-
export declare const GOVERNANCE_DAEMON_ATTACHMENT_BROKER_RELATIVE_PATH: string;
|
|
14
7
|
export interface GovernanceDaemonMetadata {
|
|
15
8
|
readonly schemaVersion: typeof GOVERNANCE_DAEMON_METADATA_SCHEMA_VERSION;
|
|
16
9
|
readonly protocolVersion: typeof GOVERNANCE_SERVICE_PROTOCOL_VERSION;
|
|
@@ -22,7 +15,7 @@ export interface GovernanceDaemonMetadata {
|
|
|
22
15
|
readonly instanceId: string;
|
|
23
16
|
readonly startedAt: string;
|
|
24
17
|
}
|
|
25
|
-
|
|
18
|
+
interface GovernanceDaemonStartupLeaseRecord {
|
|
26
19
|
readonly schemaVersion: typeof GOVERNANCE_DAEMON_STARTUP_LEASE_SCHEMA_VERSION;
|
|
27
20
|
readonly projectKey: string;
|
|
28
21
|
readonly pid: number;
|
|
@@ -41,7 +34,7 @@ export interface GovernanceDaemonAttachmentBrokerRecord {
|
|
|
41
34
|
readonly expiresAt: string;
|
|
42
35
|
readonly credential: GovernanceServiceCredential;
|
|
43
36
|
}
|
|
44
|
-
|
|
37
|
+
type GovernanceDaemonAttachmentBrokerReadResult = {
|
|
45
38
|
readonly kind: 'missing';
|
|
46
39
|
} | {
|
|
47
40
|
readonly kind: 'invalid';
|
|
@@ -50,7 +43,7 @@ export type GovernanceDaemonAttachmentBrokerReadResult = {
|
|
|
50
43
|
readonly kind: 'valid';
|
|
51
44
|
readonly broker: GovernanceDaemonAttachmentBrokerRecord;
|
|
52
45
|
};
|
|
53
|
-
|
|
46
|
+
type GovernanceDaemonMetadataReadResult = {
|
|
54
47
|
readonly kind: 'missing';
|
|
55
48
|
} | {
|
|
56
49
|
readonly kind: 'invalid';
|
|
@@ -59,7 +52,7 @@ export type GovernanceDaemonMetadataReadResult = {
|
|
|
59
52
|
readonly kind: 'valid';
|
|
60
53
|
readonly metadata: GovernanceDaemonMetadata;
|
|
61
54
|
};
|
|
62
|
-
|
|
55
|
+
type GovernanceDaemonInspection = {
|
|
63
56
|
readonly kind: 'live';
|
|
64
57
|
readonly metadata: GovernanceDaemonMetadata;
|
|
65
58
|
} | {
|
|
@@ -71,7 +64,7 @@ export type GovernanceDaemonInspection = {
|
|
|
71
64
|
readonly metadata: GovernanceDaemonMetadata | null;
|
|
72
65
|
readonly reason: string;
|
|
73
66
|
};
|
|
74
|
-
|
|
67
|
+
type GovernanceDaemonStartupLeaseErrorCode = 'busy' | 'invalid_lease';
|
|
75
68
|
export declare class GovernanceDaemonStartupLeaseError extends Error {
|
|
76
69
|
readonly code: GovernanceDaemonStartupLeaseErrorCode;
|
|
77
70
|
constructor(code: GovernanceDaemonStartupLeaseErrorCode, message: string);
|
|
@@ -108,8 +101,6 @@ export declare function createGovernanceDaemonMetadata(options: {
|
|
|
108
101
|
export declare function writeGovernanceDaemonMetadata(projectRoot: string, metadata: GovernanceDaemonMetadata): Promise<void>;
|
|
109
102
|
export declare function readGovernanceDaemonMetadata(projectRoot: string): Promise<GovernanceDaemonMetadataReadResult>;
|
|
110
103
|
export declare function removeOwnedGovernanceDaemonMetadata(projectRoot: string, owner: Pick<GovernanceDaemonMetadata, 'pid' | 'instanceId'>): Promise<boolean>;
|
|
111
|
-
export declare function isGovernanceProcessAlive(pid: number): boolean;
|
|
112
|
-
export declare function probeGovernanceDaemonEndpoint(projectRoot: string, timeoutMs?: number): Promise<boolean>;
|
|
113
104
|
export declare function inspectGovernanceDaemon(projectRoot: string): Promise<GovernanceDaemonInspection>;
|
|
114
105
|
export declare function shouldRecoverGovernanceEndpoint(platform: NodeJS.Platform, inspection: GovernanceDaemonInspection): boolean;
|
|
115
106
|
export declare class GovernanceDaemonStartupLease {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { GovernanceServiceCredential } from './capability-grant.js';
|
|
2
2
|
import { type GovernanceServiceCapability } from './service-protocol.js';
|
|
3
3
|
export declare const GOVERNANCE_DAEMON_BOOTSTRAP_PROTOCOL_VERSION: 2;
|
|
4
|
-
|
|
4
|
+
interface GovernanceDaemonBootstrapRequest {
|
|
5
5
|
readonly type: 'bootstrap';
|
|
6
6
|
readonly protocolVersion: typeof GOVERNANCE_DAEMON_BOOTSTRAP_PROTOCOL_VERSION;
|
|
7
7
|
readonly nonce: string;
|
|
@@ -36,18 +36,18 @@ export type GovernanceDaemonBootstrapMessage = {
|
|
|
36
36
|
readonly code: GovernanceDaemonBootstrapErrorCode;
|
|
37
37
|
readonly message: string;
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
interface GovernanceDaemonProtocolIssue {
|
|
40
40
|
readonly path: string;
|
|
41
41
|
readonly message: string;
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
type GovernanceDaemonBootstrapRequestDecodeResult = {
|
|
44
44
|
readonly decoded: true;
|
|
45
45
|
readonly request: GovernanceDaemonBootstrapRequest;
|
|
46
46
|
} | {
|
|
47
47
|
readonly decoded: false;
|
|
48
48
|
readonly issues: readonly GovernanceDaemonProtocolIssue[];
|
|
49
49
|
};
|
|
50
|
-
|
|
50
|
+
type GovernanceDaemonBootstrapMessageDecodeResult = {
|
|
51
51
|
readonly decoded: true;
|
|
52
52
|
readonly message: GovernanceDaemonBootstrapMessage;
|
|
53
53
|
} | {
|
|
@@ -56,4 +56,5 @@ export type GovernanceDaemonBootstrapMessageDecodeResult = {
|
|
|
56
56
|
};
|
|
57
57
|
export declare function decodeGovernanceDaemonBootstrapRequest(input: unknown): GovernanceDaemonBootstrapRequestDecodeResult;
|
|
58
58
|
export declare function decodeGovernanceDaemonBootstrapMessage(input: unknown): GovernanceDaemonBootstrapMessageDecodeResult;
|
|
59
|
+
export {};
|
|
59
60
|
//# sourceMappingURL=daemon-protocol.d.ts.map
|
package/dist/event-store.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare const GOVERNANCE_OBSERVATION_CATEGORIES: readonly ['task_created'
|
|
|
6
6
|
export type GovernanceObservationCategory = (typeof GOVERNANCE_OBSERVATION_CATEGORIES)[number];
|
|
7
7
|
export declare const GOVERNANCE_OBSERVATION_DEFAULT_PAGE_SIZE = 50;
|
|
8
8
|
export declare const GOVERNANCE_OBSERVATION_MAX_PAGE_SIZE = 100;
|
|
9
|
-
|
|
9
|
+
interface ReadGovernanceObservationsPageOptions {
|
|
10
10
|
readonly projectId: string;
|
|
11
11
|
readonly taskId?: string | undefined;
|
|
12
12
|
/**
|
|
@@ -78,13 +78,10 @@ export interface GovernanceEventStore {
|
|
|
78
78
|
readVerificationExecutionLeaseStatus(leaseId: string): VerificationExecutionLeaseStatus;
|
|
79
79
|
close(): void;
|
|
80
80
|
}
|
|
81
|
-
|
|
81
|
+
interface SqliteGovernanceEventStoreOptions {
|
|
82
82
|
readonly now?: (() => string) | undefined;
|
|
83
83
|
readonly verificationLeaseSecret?: (() => string) | undefined;
|
|
84
84
|
}
|
|
85
|
-
export declare class GovernanceStoreCorruptionError extends Error {
|
|
86
|
-
constructor(message: string);
|
|
87
|
-
}
|
|
88
85
|
export declare class SqliteGovernanceEventStore implements GovernanceEventStore {
|
|
89
86
|
readonly databasePath: string;
|
|
90
87
|
private readonly db;
|
|
@@ -132,4 +129,5 @@ export declare class SqliteGovernanceEventStore implements GovernanceEventStore
|
|
|
132
129
|
private executionFromReceipt;
|
|
133
130
|
private assertOpen;
|
|
134
131
|
}
|
|
132
|
+
export {};
|
|
135
133
|
//# sourceMappingURL=event-store.d.ts.map
|
|
@@ -57,7 +57,7 @@ export interface GovernanceEvidenceCandidate {
|
|
|
57
57
|
readonly outputLines?: number | undefined;
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
type GovernanceEvidenceCandidateIneligibilityReason = 'payload_invalid' | 'unsupported_schema' | 'binding_incomplete' | 'candidate_identity_missing' | 'candidate_identity_mismatch' | 'task_binding_mismatch' | 'trace_binding_incomplete';
|
|
61
61
|
export interface GovernanceEvidenceCandidateLedgerEntry {
|
|
62
62
|
readonly sequence: number;
|
|
63
63
|
readonly observationId: string;
|
|
@@ -92,4 +92,5 @@ export interface GovernanceEvidenceCandidateObservation {
|
|
|
92
92
|
}
|
|
93
93
|
export declare function createGovernanceEvidenceCandidate(trace: GovernanceEvidenceTraceSnapshot, outcome: GovernanceToolOutcomeMetadata): GovernanceEvidenceCandidate;
|
|
94
94
|
export declare function evaluateGovernanceEvidenceCandidateObservation(observation: GovernanceEvidenceCandidateObservation): GovernanceEvidenceCandidateLedgerEntry;
|
|
95
|
+
export {};
|
|
95
96
|
//# sourceMappingURL=evidence-candidate.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -8425,45 +8425,22 @@ export {
|
|
|
8425
8425
|
CONTRACT_ASSUMPTION_STATUSES,
|
|
8426
8426
|
CONTRACT_SOURCES,
|
|
8427
8427
|
DEFAULT_GOVERNANCE_GRANT_MAX_TTL_MS,
|
|
8428
|
-
DEFAULT_GOVERNANCE_MAX_GRANTS,
|
|
8429
8428
|
EVIDENCE_KINDS,
|
|
8430
8429
|
GOVERNANCE_ACTORS,
|
|
8431
8430
|
GOVERNANCE_COMPATIBILITY_ADMIN_TTL_MS,
|
|
8432
8431
|
GOVERNANCE_COMPATIBILITY_MODEL_TTL_MS,
|
|
8433
|
-
GOVERNANCE_CREDENTIAL_LEASE_DEFAULT_MAX_ATTEMPTS,
|
|
8434
|
-
GOVERNANCE_CREDENTIAL_LEASE_DEFAULT_RENEW_BEFORE_MS,
|
|
8435
|
-
GOVERNANCE_CREDENTIAL_LEASE_DEFAULT_RETRY_MS,
|
|
8436
|
-
GOVERNANCE_CREDENTIAL_LEASE_DEFAULT_TTL_MS,
|
|
8437
|
-
GOVERNANCE_DAEMON_ATTACHMENT_BROKER_DEGRADED_FAILURES,
|
|
8438
|
-
GOVERNANCE_DAEMON_ATTACHMENT_BROKER_RELATIVE_PATH,
|
|
8439
|
-
GOVERNANCE_DAEMON_ATTACHMENT_BROKER_RENEW_BEFORE_MS,
|
|
8440
|
-
GOVERNANCE_DAEMON_ATTACHMENT_BROKER_RETRY_MS,
|
|
8441
|
-
GOVERNANCE_DAEMON_ATTACHMENT_BROKER_SCHEMA_VERSION,
|
|
8442
8432
|
GOVERNANCE_DAEMON_ATTACHMENT_BROKER_TTL_MS,
|
|
8443
8433
|
GOVERNANCE_DAEMON_BOOTSTRAP_PROTOCOL_VERSION,
|
|
8444
|
-
GOVERNANCE_DAEMON_ENDPOINT_PROBE_TIMEOUT_MS,
|
|
8445
|
-
GOVERNANCE_DAEMON_METADATA_MAX_BYTES,
|
|
8446
|
-
GOVERNANCE_DAEMON_METADATA_RELATIVE_PATH,
|
|
8447
|
-
GOVERNANCE_DAEMON_METADATA_SCHEMA_VERSION,
|
|
8448
|
-
GOVERNANCE_DAEMON_STARTUP_LEASE_RELATIVE_PATH,
|
|
8449
|
-
GOVERNANCE_DAEMON_STARTUP_LEASE_RETRY_MS,
|
|
8450
|
-
GOVERNANCE_DAEMON_STARTUP_LEASE_SCHEMA_VERSION,
|
|
8451
|
-
GOVERNANCE_DAEMON_STARTUP_LEASE_TIMEOUT_MS,
|
|
8452
8434
|
GOVERNANCE_DAEMON_STARTUP_TIMEOUT_MS,
|
|
8453
|
-
GOVERNANCE_DATABASE_RELATIVE_PATH,
|
|
8454
8435
|
GOVERNANCE_EVIDENCE_CANDIDATE_DEFAULT_PAGE_SIZE,
|
|
8455
8436
|
GOVERNANCE_EVIDENCE_CANDIDATE_MAX_PAGE_SIZE,
|
|
8456
8437
|
GOVERNANCE_EVIDENCE_CANDIDATE_SCHEMA_VERSION,
|
|
8457
8438
|
GOVERNANCE_IPC_DEFAULT_TIMEOUT_MS,
|
|
8458
|
-
GOVERNANCE_IPC_MAX_CONNECTIONS,
|
|
8459
8439
|
GOVERNANCE_IPC_MAX_FRAME_BYTES,
|
|
8460
|
-
GOVERNANCE_IPC_SOCKET_TIMEOUT_MS,
|
|
8461
|
-
GOVERNANCE_MANAGEMENT_RECEIPT_MAX_ENTRIES,
|
|
8462
8440
|
GOVERNANCE_MANAGEMENT_RECEIPT_TTL_MS,
|
|
8463
8441
|
GOVERNANCE_OBSERVATION_CATEGORIES,
|
|
8464
8442
|
GOVERNANCE_OBSERVATION_DEFAULT_PAGE_SIZE,
|
|
8465
8443
|
GOVERNANCE_OBSERVATION_MAX_PAGE_SIZE,
|
|
8466
|
-
GOVERNANCE_RUNTIME_ATTACHMENT_MAX_TTL_MS,
|
|
8467
8444
|
GOVERNANCE_SERVICE_CAPABILITIES,
|
|
8468
8445
|
GOVERNANCE_SERVICE_PROTOCOL_VERSION,
|
|
8469
8446
|
GOVERNED_OPERATIONS,
|
|
@@ -8480,11 +8457,9 @@ export {
|
|
|
8480
8457
|
GovernanceProjectClient,
|
|
8481
8458
|
GovernanceProjectServer,
|
|
8482
8459
|
GovernanceProjectService,
|
|
8483
|
-
GovernanceStoreCorruptionError,
|
|
8484
8460
|
LegacyGovernanceShadowAdapter,
|
|
8485
8461
|
MAX_VERIFICATION_CANDIDATE_PROPOSALS,
|
|
8486
8462
|
MAX_VERIFICATION_CHECK_REGISTRATIONS,
|
|
8487
|
-
MAX_VERIFICATION_RUN_DURATION_MS,
|
|
8488
8463
|
MAX_VERIFICATION_RUN_TTL_MS,
|
|
8489
8464
|
OPERATION_MINIMUM_TIER,
|
|
8490
8465
|
PLAN_VERSION_SCHEMA_VERSION,
|
|
@@ -8493,14 +8468,9 @@ export {
|
|
|
8493
8468
|
SqliteGovernanceEventStore,
|
|
8494
8469
|
SqliteVerificationLedger,
|
|
8495
8470
|
TASK_CONTRACT_SCHEMA_VERSION,
|
|
8496
|
-
VERIFICATION_CHECK_BINDING_SCHEMA_VERSION,
|
|
8497
8471
|
VERIFICATION_EXECUTION_LEASE_SCHEMA_VERSION,
|
|
8498
8472
|
VERIFICATION_PLANNER_INPUT_SCHEMA_VERSION,
|
|
8499
|
-
VERIFICATION_PLAN_DRAFT_SCHEMA_VERSION,
|
|
8500
|
-
VERIFICATION_RUN_CONTRACT_SCHEMA_VERSION,
|
|
8501
|
-
VERIFICATION_RUN_CONTRACT_V1_SCHEMA_VERSION,
|
|
8502
8473
|
VERIFICATION_RUN_REQUEST_SCHEMA_VERSION,
|
|
8503
|
-
VERIFICATION_TOOL_GATEWAY_REQUEST_SCHEMA_VERSION,
|
|
8504
8474
|
VerificationCheckRegistry,
|
|
8505
8475
|
VerificationCheckRegistryConfigurationError,
|
|
8506
8476
|
VerificationIssuanceCoordinator,
|
|
@@ -8511,12 +8481,10 @@ export {
|
|
|
8511
8481
|
applyGovernanceEvent,
|
|
8512
8482
|
buildVerificationPlanDraft,
|
|
8513
8483
|
calculatePlanVersionFingerprint,
|
|
8514
|
-
calculateVerificationCheckHandlerFingerprint,
|
|
8515
8484
|
calculateVerificationCheckRegistryFingerprint,
|
|
8516
8485
|
calculateVerificationPlanDraftId,
|
|
8517
8486
|
calculateVerificationRunId,
|
|
8518
8487
|
canonicalGovernanceProjectRoot,
|
|
8519
|
-
classifyPlanStepAutonomy,
|
|
8520
8488
|
compareAutonomyTiers,
|
|
8521
8489
|
connectGovernanceAdminSession,
|
|
8522
8490
|
connectGovernanceAdminSessionFromLaunch,
|
|
@@ -8547,7 +8515,6 @@ export {
|
|
|
8547
8515
|
governanceProjectKey,
|
|
8548
8516
|
governanceProjectServerEndpoint,
|
|
8549
8517
|
inspectGovernanceDaemon,
|
|
8550
|
-
isGovernanceProcessAlive,
|
|
8551
8518
|
isSuccessfulWorkflowState,
|
|
8552
8519
|
isTerminalWorkflowState,
|
|
8553
8520
|
isVerificationCheckBindingIntegrityValid,
|
|
@@ -8557,7 +8524,6 @@ export {
|
|
|
8557
8524
|
issueVerificationRunContract,
|
|
8558
8525
|
launchGovernanceProjectDaemon,
|
|
8559
8526
|
prepareGovernanceCompatibilityRuntime,
|
|
8560
|
-
probeGovernanceDaemonEndpoint,
|
|
8561
8527
|
projectGovernanceDaemonOperatorStatus,
|
|
8562
8528
|
readGovernanceDaemonAttachmentBroker,
|
|
8563
8529
|
readGovernanceDaemonMetadata,
|
package/dist/ipc-endpoint.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export declare const GOVERNANCE_DATABASE_RELATIVE_PATH: string;
|
|
2
1
|
export declare function canonicalGovernanceProjectRoot(projectRoot: string): string;
|
|
3
2
|
export declare function governanceProjectKey(projectRoot: string): string;
|
|
4
3
|
export declare function governanceProjectServerEndpoint(projectRoot: string): string;
|
package/dist/ipc-protocol.d.ts
CHANGED
|
@@ -7,11 +7,11 @@ export interface GovernanceIpcRequestEnvelope {
|
|
|
7
7
|
readonly credential: GovernanceServiceCredential;
|
|
8
8
|
readonly request: unknown;
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
interface GovernanceIpcDecodeIssue {
|
|
11
11
|
readonly path: string;
|
|
12
12
|
readonly message: string;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
type GovernanceIpcEnvelopeDecodeResult = {
|
|
15
15
|
readonly decoded: true;
|
|
16
16
|
readonly envelope: GovernanceIpcRequestEnvelope;
|
|
17
17
|
} | {
|
|
@@ -21,4 +21,5 @@ export type GovernanceIpcEnvelopeDecodeResult = {
|
|
|
21
21
|
export declare function decodeGovernanceIpcEnvelope(input: unknown): GovernanceIpcEnvelopeDecodeResult;
|
|
22
22
|
export declare function encodeGovernanceIpcFrame(value: unknown): Buffer;
|
|
23
23
|
export declare function decodeGovernanceIpcResponse(input: unknown): GovernanceServiceResponse;
|
|
24
|
+
export {};
|
|
24
25
|
//# sourceMappingURL=ipc-protocol.d.ts.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { AuthenticatedGovernanceProjectService } from './authenticated-project-service.js';
|
|
2
2
|
import type { GovernanceServiceCredential } from './capability-grant.js';
|
|
3
3
|
import type { GovernanceObservationCategory, StoredGovernanceObservation } from './event-store.js';
|
|
4
|
-
|
|
4
|
+
interface LegacyRuntimeObservation {
|
|
5
5
|
readonly observationId: string;
|
|
6
6
|
readonly taskId?: string | undefined;
|
|
7
7
|
readonly category: GovernanceObservationCategory;
|
|
8
8
|
readonly observedAt: string;
|
|
9
9
|
readonly payload: Readonly<Record<string, unknown>>;
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
type LegacyShadowObservationResult = {
|
|
12
12
|
readonly observed: true;
|
|
13
13
|
readonly idempotentReplay: boolean;
|
|
14
14
|
readonly observation: StoredGovernanceObservation;
|
|
@@ -30,4 +30,5 @@ export declare class LegacyGovernanceShadowAdapter {
|
|
|
30
30
|
observe(observation: LegacyRuntimeObservation): LegacyShadowObservationResult;
|
|
31
31
|
private toResult;
|
|
32
32
|
}
|
|
33
|
+
export {};
|
|
33
34
|
//# sourceMappingURL=legacy-shadow-adapter.d.ts.map
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type { GovernanceServiceCredential } from './capability-grant.js';
|
|
2
2
|
import type { GovernanceServiceResponse } from './project-service.js';
|
|
3
3
|
export declare const GOVERNANCE_MANAGEMENT_RECEIPT_TTL_MS = 30000;
|
|
4
|
-
|
|
5
|
-
export interface GovernanceManagementReceiptCacheOptions {
|
|
4
|
+
interface GovernanceManagementReceiptCacheOptions {
|
|
6
5
|
readonly now?: (() => number) | undefined;
|
|
7
6
|
readonly ttlMs?: number | undefined;
|
|
8
7
|
readonly maxEntries?: number | undefined;
|
|
9
8
|
}
|
|
10
|
-
|
|
9
|
+
type GovernanceManagementReceiptLookup = {
|
|
11
10
|
readonly kind: 'miss';
|
|
12
11
|
} | {
|
|
13
12
|
readonly kind: 'in_progress';
|
|
@@ -19,7 +18,7 @@ export type GovernanceManagementReceiptLookup = {
|
|
|
19
18
|
readonly response: GovernanceServiceResponse;
|
|
20
19
|
readonly allowAfterRotation: boolean;
|
|
21
20
|
};
|
|
22
|
-
|
|
21
|
+
interface GovernanceManagementReceiptReservation {
|
|
23
22
|
readonly key: string;
|
|
24
23
|
readonly fingerprint: string;
|
|
25
24
|
readonly requestId: string;
|
|
@@ -50,4 +49,5 @@ export declare class GovernanceManagementReceiptCache {
|
|
|
50
49
|
clear(): void;
|
|
51
50
|
private pruneExpired;
|
|
52
51
|
}
|
|
52
|
+
export {};
|
|
53
53
|
//# sourceMappingURL=management-receipt-cache.d.ts.map
|
package/dist/plan-version.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type GovernedOperation, type OperationAutonomyDecision } from './autonomy-envelope.js';
|
|
2
2
|
import { type TaskContractV1 } from './task-contract.js';
|
|
3
3
|
export declare const PLAN_VERSION_SCHEMA_VERSION: 1;
|
|
4
|
-
|
|
4
|
+
interface PlanStepV1 {
|
|
5
5
|
readonly id: string;
|
|
6
6
|
readonly title: string;
|
|
7
7
|
readonly description: string;
|
|
@@ -11,7 +11,7 @@ export interface PlanStepV1 {
|
|
|
11
11
|
readonly acceptanceCriteriaIds: readonly string[];
|
|
12
12
|
readonly requiredCheckIds: readonly string[];
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
interface PlanEdgeV1 {
|
|
15
15
|
readonly fromStepId: string;
|
|
16
16
|
readonly toStepId: string;
|
|
17
17
|
}
|
|
@@ -29,45 +29,45 @@ export interface PlanVersionV1 {
|
|
|
29
29
|
readonly edges: readonly PlanEdgeV1[];
|
|
30
30
|
}
|
|
31
31
|
export declare function calculatePlanVersionFingerprint(plan: PlanVersionV1): string;
|
|
32
|
-
|
|
32
|
+
interface PlanStepAutonomy {
|
|
33
33
|
readonly stepId: string;
|
|
34
34
|
readonly automatic: boolean;
|
|
35
35
|
readonly decisions: readonly OperationAutonomyDecision[];
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
interface PlanAutonomySummary {
|
|
38
38
|
readonly fullyAutonomous: boolean;
|
|
39
39
|
readonly automaticStepIds: readonly string[];
|
|
40
40
|
readonly humanApprovalStepIds: readonly string[];
|
|
41
41
|
readonly steps: readonly PlanStepAutonomy[];
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
type PlanValidationIssueCode = 'contract_invalid' | 'invalid_schema_version' | 'invalid_plan_version' | 'invalid_parent_version' | 'required_value_missing' | 'duplicate_step_id' | 'duplicate_edge' | 'unknown_edge_step' | 'self_edge' | 'cycle_detected' | 'task_mismatch' | 'contract_version_mismatch' | 'operation_not_allowed' | 'expected_path_missing' | 'path_outside_scope' | 'unknown_requirement' | 'unknown_acceptance_criterion' | 'unknown_required_check' | 'requirement_unplanned' | 'required_check_unplanned';
|
|
44
|
+
interface PlanValidationIssue {
|
|
45
45
|
readonly code: PlanValidationIssueCode;
|
|
46
46
|
readonly path: string;
|
|
47
47
|
readonly message: string;
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
type PlanValidationResult = {
|
|
50
50
|
readonly valid: true;
|
|
51
51
|
} | {
|
|
52
52
|
readonly valid: false;
|
|
53
53
|
readonly issues: readonly PlanValidationIssue[];
|
|
54
54
|
};
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
type PlanSupersessionIssueCode = 'plan_id_mismatch' | 'task_id_mismatch' | 'version_not_sequential' | 'parent_version_mismatch' | 'contract_version_regressed';
|
|
56
|
+
interface PlanSupersessionIssue {
|
|
57
57
|
readonly code: PlanSupersessionIssueCode;
|
|
58
58
|
readonly message: string;
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
type PlanSupersessionResult = {
|
|
61
61
|
readonly valid: true;
|
|
62
62
|
} | {
|
|
63
63
|
readonly valid: false;
|
|
64
64
|
readonly issues: readonly PlanSupersessionIssue[];
|
|
65
65
|
};
|
|
66
|
-
|
|
66
|
+
type ReplanValidationIssue = PlanValidationIssue | PlanSupersessionIssue | {
|
|
67
67
|
readonly code: 'invalid_completed_auto_replans';
|
|
68
68
|
readonly message: string;
|
|
69
69
|
};
|
|
70
|
-
|
|
70
|
+
type ReplanAuthorizationDecision = {
|
|
71
71
|
readonly valid: true;
|
|
72
72
|
readonly automatic: true;
|
|
73
73
|
readonly requiresHumanApproval: false;
|
|
@@ -82,10 +82,10 @@ export type ReplanAuthorizationDecision = {
|
|
|
82
82
|
readonly valid: false;
|
|
83
83
|
readonly issues: readonly ReplanValidationIssue[];
|
|
84
84
|
};
|
|
85
|
-
export declare function classifyPlanStepAutonomy(contract: TaskContractV1, step: PlanStepV1): PlanStepAutonomy;
|
|
86
85
|
export declare function summarizePlanAutonomy(contract: TaskContractV1, plan: PlanVersionV1): PlanAutonomySummary;
|
|
87
86
|
export declare function validatePlanVersionV1(plan: PlanVersionV1, contract: TaskContractV1): PlanValidationResult;
|
|
88
87
|
export declare function validatePlanSupersession(previous: PlanVersionV1, next: PlanVersionV1): PlanSupersessionResult;
|
|
89
88
|
export declare function decideReplanAuthorization(contract: TaskContractV1, previous: PlanVersionV1, next: PlanVersionV1, completedAutomaticReplans: number): ReplanAuthorizationDecision;
|
|
90
89
|
export declare function freezePlanVersionV1(plan: PlanVersionV1): PlanVersionV1;
|
|
90
|
+
export {};
|
|
91
91
|
//# sourceMappingURL=plan-version.d.ts.map
|
package/dist/project-client.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export declare const GOVERNANCE_IPC_DEFAULT_TIMEOUT_MS = 5000;
|
|
|
5
5
|
export interface GovernanceProjectClientOptions {
|
|
6
6
|
readonly timeoutMs?: number | undefined;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
interface ConnectGovernanceProjectClientOptions extends GovernanceProjectClientOptions {
|
|
9
9
|
readonly projectRoot: string;
|
|
10
10
|
readonly projectId: string;
|
|
11
11
|
readonly credential: GovernanceServiceCredential;
|
|
@@ -28,4 +28,5 @@ export declare class GovernanceProjectClient {
|
|
|
28
28
|
request(request: unknown): Promise<GovernanceServiceResponse>;
|
|
29
29
|
}
|
|
30
30
|
export declare function connectGovernanceProjectClient(options: ConnectGovernanceProjectClientOptions): Promise<ConnectGovernanceProjectClientResult>;
|
|
31
|
+
export {};
|
|
31
32
|
//# sourceMappingURL=project-client.d.ts.map
|
package/dist/project-daemon.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
interface GovernanceDaemonArguments {
|
|
2
2
|
readonly projectRoot: string;
|
|
3
3
|
readonly projectId: string;
|
|
4
4
|
}
|
|
5
5
|
export declare function parseGovernanceDaemonArguments(argv: readonly string[]): GovernanceDaemonArguments;
|
|
6
6
|
export declare function isGovernanceProjectDaemonEntrypoint(entrypoint?: string | undefined, moduleUrl?: string): boolean;
|
|
7
|
+
export {};
|
|
7
8
|
//# sourceMappingURL=project-daemon.d.ts.map
|
package/dist/project-server.d.ts
CHANGED
|
@@ -2,9 +2,7 @@ import type { GovernanceAttachmentBrokerLifecycleEvent } from './attachment-brok
|
|
|
2
2
|
import { type GovernanceCapabilityGrantRegistryOptions, type IssuedGovernanceCapabilityGrant, type IssueGovernanceCapabilityGrantOptions } from './capability-grant.js';
|
|
3
3
|
import type { GovernanceDaemonControlPort, GovernanceDaemonShutdownNotice } from './daemon-control.js';
|
|
4
4
|
import { type GovernanceDecisionContextProvider } from './project-service.js';
|
|
5
|
-
|
|
6
|
-
export declare const GOVERNANCE_IPC_SOCKET_TIMEOUT_MS = 10000;
|
|
7
|
-
export interface GovernanceProjectServerOptions {
|
|
5
|
+
interface GovernanceProjectServerOptions {
|
|
8
6
|
readonly projectRoot: string;
|
|
9
7
|
readonly projectId: string;
|
|
10
8
|
readonly resolveDecisionContext?: GovernanceDecisionContextProvider | undefined;
|
|
@@ -45,4 +43,5 @@ export declare class GovernanceProjectServer {
|
|
|
45
43
|
private persistDaemonShutdownAudit;
|
|
46
44
|
private closeListener;
|
|
47
45
|
}
|
|
46
|
+
export {};
|
|
48
47
|
//# sourceMappingURL=project-server.d.ts.map
|
|
@@ -7,7 +7,7 @@ import type { GovernanceCommand, GovernanceDecisionContext, GovernanceEvent, Tas
|
|
|
7
7
|
import type { RecordWorkspaceSnapshotResult } from './workspace-snapshot-fence.js';
|
|
8
8
|
export type { GovernanceServiceCapability, GovernanceServiceClientContext, GovernanceServiceRequest, } from './service-protocol.js';
|
|
9
9
|
export { GOVERNANCE_SERVICE_CAPABILITIES, GOVERNANCE_SERVICE_PROTOCOL_VERSION, } from './service-protocol.js';
|
|
10
|
-
|
|
10
|
+
type GovernanceServiceResult = {
|
|
11
11
|
readonly type: 'health';
|
|
12
12
|
readonly projectId: string;
|
|
13
13
|
readonly protocolVersion: typeof GOVERNANCE_SERVICE_PROTOCOL_VERSION;
|
|
@@ -86,7 +86,7 @@ export type GovernanceServiceResult = {
|
|
|
86
86
|
readonly grant: GovernanceCapabilityGrant;
|
|
87
87
|
readonly credential: GovernanceServiceCredential;
|
|
88
88
|
};
|
|
89
|
-
|
|
89
|
+
type GovernanceServiceErrorCode = 'unsupported_protocol' | 'invalid_request' | 'authentication_failed' | 'permission_denied' | 'identity_mismatch' | 'project_mismatch' | 'store_failure' | 'request_in_progress';
|
|
90
90
|
export type GovernanceServiceResponse = {
|
|
91
91
|
readonly ok: true;
|
|
92
92
|
readonly requestId: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type GovernanceServiceRequest } from './service-protocol.js';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type GovernanceProtocolDecodeIssueCode = 'expected_object' | 'expected_array' | 'unknown_field' | 'invalid_value' | 'semantic_invalid' | 'resource_limit';
|
|
3
|
+
interface GovernanceProtocolDecodeIssue {
|
|
4
4
|
readonly code: GovernanceProtocolDecodeIssueCode;
|
|
5
5
|
readonly path: string;
|
|
6
6
|
readonly message: string;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
type GovernanceServiceRequestDecodeResult = {
|
|
9
9
|
readonly decoded: true;
|
|
10
10
|
readonly request: GovernanceServiceRequest;
|
|
11
11
|
} | {
|
|
@@ -13,4 +13,5 @@ export type GovernanceServiceRequestDecodeResult = {
|
|
|
13
13
|
readonly issues: readonly GovernanceProtocolDecodeIssue[];
|
|
14
14
|
};
|
|
15
15
|
export declare function decodeGovernanceServiceRequest(input: unknown): GovernanceServiceRequestDecodeResult;
|
|
16
|
+
export {};
|
|
16
17
|
//# sourceMappingURL=protocol-decoder.d.ts.map
|
|
@@ -10,7 +10,7 @@ export interface GovernanceServiceClientContext {
|
|
|
10
10
|
/** Assigned by the transport/policy layer, never accepted from request payloads. */
|
|
11
11
|
readonly capabilities: ReadonlySet<GovernanceServiceCapability>;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
interface GovernanceServiceRequestMetadata {
|
|
14
14
|
readonly protocolVersion: typeof GOVERNANCE_SERVICE_PROTOCOL_VERSION;
|
|
15
15
|
readonly requestId: string;
|
|
16
16
|
}
|
|
@@ -83,4 +83,5 @@ export type GovernanceServiceRequest = GovernanceServiceRequestMetadata & ({
|
|
|
83
83
|
readonly ttlMs: number;
|
|
84
84
|
readonly reason?: string | undefined;
|
|
85
85
|
});
|
|
86
|
+
export {};
|
|
86
87
|
//# sourceMappingURL=service-protocol.d.ts.map
|
package/dist/task-aggregate.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type PlanVersionV1 } from './plan-version.js';
|
|
|
2
2
|
import { type TaskContractV1 } from './task-contract.js';
|
|
3
3
|
import { type GovernanceActor, type TransitionFacts } from './transition-engine.js';
|
|
4
4
|
import type { WorkflowState } from './workflow-state.js';
|
|
5
|
-
|
|
5
|
+
interface GovernanceCommandMetadata {
|
|
6
6
|
readonly commandId: string;
|
|
7
7
|
readonly taskId: string;
|
|
8
8
|
readonly expectedRevision: number;
|
|
@@ -24,7 +24,7 @@ export interface GovernanceDecisionContext {
|
|
|
24
24
|
/** Trusted facts computed by deterministic policy/adapters, never copied from model arguments. */
|
|
25
25
|
readonly transitionFacts?: TransitionFacts | undefined;
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
type GovernanceEventPayload = {
|
|
28
28
|
readonly type: 'task_created';
|
|
29
29
|
readonly projectId: string;
|
|
30
30
|
readonly contract: TaskContractV1;
|
|
@@ -58,7 +58,7 @@ export interface TaskAggregate {
|
|
|
58
58
|
readonly createdAt: string;
|
|
59
59
|
readonly updatedAt: string;
|
|
60
60
|
}
|
|
61
|
-
|
|
61
|
+
type CommandRejectionCode = 'stale_revision' | 'task_already_exists' | 'task_missing' | 'task_identity_mismatch' | 'project_identity_mismatch' | 'initial_contract_version_invalid' | 'contract_invalid' | 'plan_invalid' | 'plan_supersession_invalid' | 'plan_attach_state_invalid' | 'active_plan_missing' | 'replan_version_missing' | 'transition_facts_missing' | 'transition_rejected';
|
|
62
62
|
export type GovernanceCommandDecision = {
|
|
63
63
|
readonly accepted: true;
|
|
64
64
|
readonly event: GovernanceEvent;
|
|
@@ -68,8 +68,8 @@ export type GovernanceCommandDecision = {
|
|
|
68
68
|
readonly message: string;
|
|
69
69
|
readonly details?: readonly unknown[] | undefined;
|
|
70
70
|
};
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
type EventApplyRejectionCode = 'first_event_not_task_created' | 'duplicate_task_created' | 'task_id_mismatch' | 'event_revision_gap' | 'event_state_mismatch' | 'event_requires_existing_task';
|
|
72
|
+
type EventApplyResult = {
|
|
73
73
|
readonly applied: true;
|
|
74
74
|
readonly aggregate: TaskAggregate;
|
|
75
75
|
} | {
|
|
@@ -77,7 +77,7 @@ export type EventApplyResult = {
|
|
|
77
77
|
readonly code: EventApplyRejectionCode;
|
|
78
78
|
readonly message: string;
|
|
79
79
|
};
|
|
80
|
-
|
|
80
|
+
type TaskReplayResult = {
|
|
81
81
|
readonly replayed: true;
|
|
82
82
|
readonly aggregate: TaskAggregate;
|
|
83
83
|
} | {
|
|
@@ -89,4 +89,5 @@ export type TaskReplayResult = {
|
|
|
89
89
|
export declare function decideGovernanceCommand(aggregate: TaskAggregate | null, command: GovernanceCommand, context?: GovernanceDecisionContext): GovernanceCommandDecision;
|
|
90
90
|
export declare function applyGovernanceEvent(aggregate: TaskAggregate | null, event: GovernanceEvent): EventApplyResult;
|
|
91
91
|
export declare function replayTaskEvents(events: readonly GovernanceEvent[]): TaskReplayResult;
|
|
92
|
+
export {};
|
|
92
93
|
//# sourceMappingURL=task-aggregate.d.ts.map
|
package/dist/task-contract.d.ts
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { type AutonomyEnvelope } from './autonomy-envelope.js';
|
|
2
2
|
export declare const TASK_CONTRACT_SCHEMA_VERSION: 1;
|
|
3
3
|
export declare const CONTRACT_SOURCES: readonly ['explicit_user', 'project_policy', 'deterministic_inference', 'model_proposal'];
|
|
4
|
-
|
|
4
|
+
type ContractSource = (typeof CONTRACT_SOURCES)[number];
|
|
5
5
|
export declare const EVIDENCE_KINDS: readonly ['test', 'typecheck', 'lint', 'build', 'static_analysis', 'security', 'api_compatibility', 'schema', 'performance', 'review'];
|
|
6
6
|
export type EvidenceKind = (typeof EVIDENCE_KINDS)[number];
|
|
7
7
|
export declare const REVIEW_DIMENSIONS: readonly ['correctness', 'requirements_traceability', 'security_permissions', 'api_schema_compatibility', 'testing_evidence', 'performance_resources', 'concurrency_recovery', 'maintainability_architecture'];
|
|
8
|
-
|
|
8
|
+
type ReviewDimension = (typeof REVIEW_DIMENSIONS)[number];
|
|
9
9
|
export declare const ROLLBACK_CLASSES: readonly ['isolated_discard', 'git_revert', 'verified_compensation', 'manual_only', 'irreversible'];
|
|
10
|
-
|
|
10
|
+
type RollbackClass = (typeof ROLLBACK_CLASSES)[number];
|
|
11
11
|
export declare const CONTRACT_ASSUMPTION_STATUSES: readonly ['unverified', 'verified', 'rejected', 'expired'];
|
|
12
12
|
export declare const BASELINE_POLICIES: readonly ['required', 'optional', 'read_only'];
|
|
13
|
-
|
|
13
|
+
interface TaskRequirement {
|
|
14
14
|
readonly id: string;
|
|
15
15
|
readonly text: string;
|
|
16
16
|
readonly acceptanceCriteriaIds: readonly string[];
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
interface AcceptanceCriterion {
|
|
19
19
|
readonly id: string;
|
|
20
20
|
readonly statement: string;
|
|
21
21
|
readonly evidenceKinds: readonly EvidenceKind[];
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
interface RequiredCheck {
|
|
24
24
|
readonly id: string;
|
|
25
25
|
readonly kind: EvidenceKind;
|
|
26
26
|
readonly required: boolean;
|
|
27
27
|
readonly requirementIds: readonly string[];
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
interface ContractAssumption {
|
|
30
30
|
readonly id: string;
|
|
31
31
|
readonly statement: string;
|
|
32
32
|
readonly source: ContractSource;
|
|
@@ -57,13 +57,13 @@ export interface TaskContractV1 {
|
|
|
57
57
|
readonly autonomy: ContractSource;
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
type ContractValidationIssueCode = 'invalid_schema_version' | 'invalid_contract_version' | 'required_value_missing' | 'duplicate_id' | 'unknown_acceptance_criterion' | 'unknown_requirement' | 'path_scope_missing' | 'path_scope_conflict' | 'invalid_budget' | 'auto_replan_exceeds_budget' | 'approval_operation_not_allowed' | 'operation_exceeds_tier';
|
|
61
|
+
interface ContractValidationIssue {
|
|
62
62
|
readonly code: ContractValidationIssueCode;
|
|
63
63
|
readonly path: string;
|
|
64
64
|
readonly message: string;
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
type ContractValidationResult = {
|
|
67
67
|
readonly valid: true;
|
|
68
68
|
} | {
|
|
69
69
|
readonly valid: false;
|
|
@@ -71,4 +71,5 @@ export type ContractValidationResult = {
|
|
|
71
71
|
};
|
|
72
72
|
export declare function validateTaskContractV1(contract: TaskContractV1): ContractValidationResult;
|
|
73
73
|
export declare function freezeTaskContractV1(contract: TaskContractV1): TaskContractV1;
|
|
74
|
+
export {};
|
|
74
75
|
//# sourceMappingURL=task-contract.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { WorkflowState } from './workflow-state.js';
|
|
2
2
|
export declare const GOVERNANCE_ACTORS: readonly ['model', 'human', 'policy', 'system'];
|
|
3
3
|
export type GovernanceActor = (typeof GOVERNANCE_ACTORS)[number];
|
|
4
|
-
|
|
4
|
+
type AuthorizationKind = 'none' | 'automatic' | 'human';
|
|
5
5
|
export interface TransitionFacts {
|
|
6
6
|
readonly contractApproved: boolean;
|
|
7
7
|
readonly planApproved: boolean;
|
|
@@ -22,8 +22,8 @@ export interface TransitionProposal {
|
|
|
22
22
|
/** Trusted facts computed by governance adapters/policy, never copied from model arguments. */
|
|
23
23
|
readonly facts: TransitionFacts;
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
type TransitionRejectionCode = 'stale_revision' | 'illegal_transition' | 'authorization_missing' | 'contract_not_approved' | 'plan_not_approved' | 'outside_autonomy_envelope' | 'execution_grant_missing' | 'stale_snapshot' | 'evidence_missing' | 'blocking_findings' | 'model_cannot_self_admit' | 'rollback_unverified';
|
|
26
|
+
type TransitionDecision = {
|
|
27
27
|
readonly allowed: true;
|
|
28
28
|
readonly from: WorkflowState;
|
|
29
29
|
readonly to: WorkflowState;
|
|
@@ -34,4 +34,5 @@ export type TransitionDecision = {
|
|
|
34
34
|
readonly message: string;
|
|
35
35
|
};
|
|
36
36
|
export declare function decideTransition(proposal: TransitionProposal): TransitionDecision;
|
|
37
|
+
export {};
|
|
37
38
|
//# sourceMappingURL=transition-engine.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type EvidenceKind } from './task-contract.js';
|
|
2
|
-
|
|
2
|
+
declare const VERIFICATION_CHECK_BINDING_SCHEMA_VERSION: 1;
|
|
3
3
|
export interface VerificationCheckDescriptor {
|
|
4
4
|
readonly id: string;
|
|
5
5
|
readonly evidenceKind: EvidenceKind;
|
|
@@ -15,9 +15,9 @@ export interface VerificationCheckBindingV1 {
|
|
|
15
15
|
readonly executionClass: 'trusted_deterministic';
|
|
16
16
|
readonly handlerFingerprint: string;
|
|
17
17
|
}
|
|
18
|
-
export declare function calculateVerificationCheckHandlerFingerprint(descriptor: VerificationCheckDescriptor): string;
|
|
19
18
|
export declare function calculateVerificationCheckRegistryFingerprint(descriptors: readonly VerificationCheckDescriptor[]): string;
|
|
20
19
|
export declare function createVerificationCheckBinding(registryFingerprint: string, descriptor: VerificationCheckDescriptor): VerificationCheckBindingV1;
|
|
21
20
|
export declare function isVerificationCheckBindingIntegrityValid(binding: VerificationCheckBindingV1): boolean;
|
|
22
21
|
export declare function verificationCheckBindingMatches(binding: VerificationCheckBindingV1, registryFingerprint: string, descriptor: VerificationCheckDescriptor): boolean;
|
|
22
|
+
export {};
|
|
23
23
|
//# sourceMappingURL=verification-check-binding.d.ts.map
|
|
@@ -3,7 +3,7 @@ import { type VerificationCheckBindingV1, type VerificationCheckDescriptor } fro
|
|
|
3
3
|
import type { VerificationExecutionLeaseConsumption } from './verification-execution-lease.js';
|
|
4
4
|
import { type VerificationRunContract } from './verification-run-contract.js';
|
|
5
5
|
export declare const MAX_VERIFICATION_CHECK_REGISTRATIONS = 256;
|
|
6
|
-
|
|
6
|
+
interface FocusedVerificationExecutionContext {
|
|
7
7
|
readonly run: VerificationRunContract;
|
|
8
8
|
readonly consumption: VerificationExecutionLeaseConsumption;
|
|
9
9
|
readonly workspaceManifestHash: string;
|
|
@@ -20,7 +20,7 @@ export type VerificationCheckBindingResolution = {
|
|
|
20
20
|
readonly code: 'check_not_registered' | 'evidence_kind_mismatch';
|
|
21
21
|
readonly message: string;
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
type VerificationCheckRegistryExecutionResult<Result> = {
|
|
24
24
|
readonly executed: false;
|
|
25
25
|
readonly code: VerificationCheckRegistryDenialCode;
|
|
26
26
|
readonly message: string;
|
|
@@ -40,4 +40,5 @@ export declare class VerificationCheckRegistry<Result> {
|
|
|
40
40
|
bindingFor(checkId: string, evidenceKind: EvidenceKind): VerificationCheckBindingResolution;
|
|
41
41
|
execute(context: FocusedVerificationExecutionContext): Promise<VerificationCheckRegistryExecutionResult<Result>>;
|
|
42
42
|
}
|
|
43
|
+
export {};
|
|
43
44
|
//# sourceMappingURL=verification-check-registry.d.ts.map
|
|
@@ -6,18 +6,18 @@ import type { VerificationCheckBindingResolution } from './verification-check-re
|
|
|
6
6
|
import type { IssueVerificationExecutionLeaseResult } from './verification-execution-lease.js';
|
|
7
7
|
import type { VerificationPlanDraftV1 } from './verification-planner.js';
|
|
8
8
|
import { type VerificationRunIssuanceIssue, type VerificationRunRequestV1 } from './verification-run-contract.js';
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
type VerificationIssuanceCoordinatorMode = 'legacy' | 'enforced';
|
|
10
|
+
interface VerificationCheckBindingResolver {
|
|
11
11
|
bindingFor(checkId: string, evidenceKind: EvidenceKind): VerificationCheckBindingResolution;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
interface VerificationExecutionLeaseIssuer {
|
|
14
14
|
issueVerificationExecutionLeaseIfCurrent: GovernanceEventStore['issueVerificationExecutionLeaseIfCurrent'];
|
|
15
15
|
recordWorkspaceSnapshot?: GovernanceEventStore['recordWorkspaceSnapshot'];
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
interface VerificationWorkspaceSnapshotRecorder {
|
|
18
18
|
recordWorkspaceSnapshot: GovernanceEventStore['recordWorkspaceSnapshot'];
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
interface VerificationIssuanceCoordinatorOptions {
|
|
21
21
|
/** Defaults to legacy; construction alone cannot enable governed issuance. */
|
|
22
22
|
readonly mode?: VerificationIssuanceCoordinatorMode | undefined;
|
|
23
23
|
readonly verifierClientId: string;
|
|
@@ -44,7 +44,7 @@ type VerificationLeaseFailure = Extract<IssueVerificationExecutionLeaseResult, {
|
|
|
44
44
|
type VerificationLeaseSuccess = Extract<IssueVerificationExecutionLeaseResult, {
|
|
45
45
|
issued: true;
|
|
46
46
|
}>;
|
|
47
|
-
|
|
47
|
+
type VerificationIssuanceCoordinatorResult = {
|
|
48
48
|
readonly route: 'legacy';
|
|
49
49
|
readonly handled: false;
|
|
50
50
|
readonly reason: 'coordinator_disabled';
|
|
@@ -2,7 +2,7 @@ import type { DatabaseSync } from 'node:sqlite';
|
|
|
2
2
|
import { type ConsumeVerificationExecutionLeaseResult, type IssueVerificationExecutionLeaseResult, type VerificationExecutionBinding, type VerificationExecutionLeaseCredential, type VerificationExecutionLeaseStatus, type VerificationLeaseIssuancePrecondition } from './verification-execution-lease.js';
|
|
3
3
|
import { type VerificationRunContract } from './verification-run-contract.js';
|
|
4
4
|
import { type RecordWorkspaceSnapshotResult, type WorkspaceSnapshotFenceDescriptor } from './workspace-snapshot-fence.js';
|
|
5
|
-
|
|
5
|
+
interface SqliteVerificationLedgerOptions {
|
|
6
6
|
readonly now: () => string;
|
|
7
7
|
readonly verificationLeaseSecret?: (() => string) | undefined;
|
|
8
8
|
}
|
|
@@ -17,4 +17,5 @@ export declare class SqliteVerificationLedger {
|
|
|
17
17
|
consume(credential: VerificationExecutionLeaseCredential, binding: VerificationExecutionBinding): ConsumeVerificationExecutionLeaseResult;
|
|
18
18
|
readStatus(leaseId: string): VerificationExecutionLeaseStatus;
|
|
19
19
|
}
|
|
20
|
+
export {};
|
|
20
21
|
//# sourceMappingURL=verification-ledger-store.d.ts.map
|
|
@@ -2,31 +2,31 @@ import type { GovernanceEvidenceCandidateLedgerEntry } from './evidence-candidat
|
|
|
2
2
|
import type { TaskAggregate } from './task-aggregate.js';
|
|
3
3
|
import { type EvidenceKind } from './task-contract.js';
|
|
4
4
|
export declare const VERIFICATION_PLANNER_INPUT_SCHEMA_VERSION: 1;
|
|
5
|
-
|
|
5
|
+
declare const VERIFICATION_PLAN_DRAFT_SCHEMA_VERSION: 1;
|
|
6
6
|
export declare const MAX_VERIFICATION_CANDIDATE_PROPOSALS = 512;
|
|
7
|
-
|
|
7
|
+
interface VerificationPlanningScopeV1 {
|
|
8
8
|
readonly taskId: string;
|
|
9
9
|
readonly contractVersion: number;
|
|
10
10
|
readonly planFingerprint: string;
|
|
11
11
|
readonly workspaceManifestHash: string;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
interface VerificationCandidateProposalV1 {
|
|
14
14
|
readonly requiredCheckId: string;
|
|
15
15
|
readonly candidateId: string;
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
interface VerificationPlannerInputV1 {
|
|
18
18
|
readonly schemaVersion: typeof VERIFICATION_PLANNER_INPUT_SCHEMA_VERSION;
|
|
19
19
|
readonly scope: VerificationPlanningScopeV1;
|
|
20
20
|
readonly proposals: readonly VerificationCandidateProposalV1[];
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
type VerificationPlannerIssueCode = 'task_missing' | 'active_contract_missing' | 'contract_invalid' | 'invalid_schema_version' | 'task_mismatch' | 'contract_version_mismatch' | 'scope_identity_invalid' | 'proposal_limit_exceeded';
|
|
23
|
+
interface VerificationPlannerIssue {
|
|
24
24
|
readonly code: VerificationPlannerIssueCode;
|
|
25
25
|
readonly path: string;
|
|
26
26
|
readonly message: string;
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
type VerificationProposalRejectionCode = 'proposal_invalid' | 'duplicate_proposal' | 'unknown_required_check' | 'candidate_missing' | 'candidate_ambiguous' | 'candidate_ineligible' | 'candidate_task_mismatch' | 'candidate_plan_mismatch' | 'candidate_workspace_mismatch';
|
|
29
|
+
type VerificationProposalDisposition = {
|
|
30
30
|
readonly state: 'accepted_as_proposal';
|
|
31
31
|
readonly requiredCheckId: string;
|
|
32
32
|
readonly candidateId: string;
|
|
@@ -37,7 +37,7 @@ export type VerificationProposalDisposition = {
|
|
|
37
37
|
readonly code: VerificationProposalRejectionCode;
|
|
38
38
|
readonly path: string;
|
|
39
39
|
};
|
|
40
|
-
|
|
40
|
+
interface VerificationCheckDraftV1 {
|
|
41
41
|
readonly requiredCheckId: string;
|
|
42
42
|
readonly expectedEvidenceKind: EvidenceKind;
|
|
43
43
|
readonly required: boolean;
|
|
@@ -63,7 +63,7 @@ export interface VerificationPlanDraftV1 {
|
|
|
63
63
|
readonly nextAction: 'repropose_candidates' | 'independent_verification';
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
type VerificationPlanningResult = {
|
|
67
67
|
readonly planned: false;
|
|
68
68
|
readonly issues: readonly VerificationPlannerIssue[];
|
|
69
69
|
} | {
|
|
@@ -73,4 +73,5 @@ export type VerificationPlanningResult = {
|
|
|
73
73
|
};
|
|
74
74
|
export declare function calculateVerificationPlanDraftId(draft: Pick<VerificationPlanDraftV1, 'schemaVersion' | 'status' | 'scope' | 'checks'>): string;
|
|
75
75
|
export declare function buildVerificationPlanDraft(task: TaskAggregate | null, candidates: readonly GovernanceEvidenceCandidateLedgerEntry[], input: VerificationPlannerInputV1): VerificationPlanningResult;
|
|
76
|
+
export {};
|
|
76
77
|
//# sourceMappingURL=verification-planner.d.ts.map
|
|
@@ -5,10 +5,9 @@ import { type EvidenceKind } from './task-contract.js';
|
|
|
5
5
|
import { type VerificationCheckBindingV1 } from './verification-check-binding.js';
|
|
6
6
|
import { type VerificationPlanDraftV1 } from './verification-planner.js';
|
|
7
7
|
export declare const VERIFICATION_RUN_REQUEST_SCHEMA_VERSION: 1;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
declare const VERIFICATION_RUN_CONTRACT_V1_SCHEMA_VERSION: 1;
|
|
9
|
+
declare const VERIFICATION_RUN_CONTRACT_SCHEMA_VERSION: 2;
|
|
10
10
|
export declare const MAX_VERIFICATION_RUN_TTL_MS: number;
|
|
11
|
-
export declare const MAX_VERIFICATION_RUN_DURATION_MS: number;
|
|
12
11
|
export interface VerificationRunRequestV1 {
|
|
13
12
|
readonly schemaVersion: typeof VERIFICATION_RUN_REQUEST_SCHEMA_VERSION;
|
|
14
13
|
readonly draftId: string;
|
|
@@ -16,13 +15,13 @@ export interface VerificationRunRequestV1 {
|
|
|
16
15
|
readonly candidateId: string;
|
|
17
16
|
}
|
|
18
17
|
/** Supplied by the deterministic daemon/transport, never by the model request payload. */
|
|
19
|
-
|
|
18
|
+
interface VerificationRunAuthorityContext {
|
|
20
19
|
readonly verifierClientId: string;
|
|
21
20
|
readonly issuedAt: string;
|
|
22
21
|
readonly ttlMs: number;
|
|
23
22
|
readonly maxDurationMs: number;
|
|
24
23
|
}
|
|
25
|
-
|
|
24
|
+
interface BoundVerificationRunAuthorityContext extends VerificationRunAuthorityContext {
|
|
26
25
|
/** Derived from the trusted immutable registry, never from the model request. */
|
|
27
26
|
readonly checkBinding: VerificationCheckBindingV1;
|
|
28
27
|
}
|
|
@@ -63,14 +62,14 @@ export interface VerificationRunContractV2 extends Omit<VerificationRunContractV
|
|
|
63
62
|
readonly checkBinding: VerificationCheckBindingV1;
|
|
64
63
|
}
|
|
65
64
|
export type VerificationRunContract = VerificationRunContractV1 | VerificationRunContractV2;
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
type VerificationRunContractWithoutId = Omit<VerificationRunContractV1, 'runId'> | Omit<VerificationRunContractV2, 'runId'>;
|
|
66
|
+
type VerificationRunIssuanceIssueCode = 'task_missing' | 'active_contract_missing' | 'workflow_state_invalid' | 'draft_invalid' | 'draft_scope_mismatch' | 'request_invalid' | 'required_check_missing' | 'required_check_drifted' | 'candidate_not_proposed' | 'candidate_missing' | 'candidate_ambiguous' | 'candidate_ineligible' | 'candidate_scope_mismatch' | 'verifier_identity_invalid' | 'verifier_not_independent' | 'operation_not_authorized' | 'check_binding_invalid' | 'check_binding_mismatch' | 'authority_time_invalid' | 'authority_limits_invalid';
|
|
68
67
|
export interface VerificationRunIssuanceIssue {
|
|
69
68
|
readonly code: VerificationRunIssuanceIssueCode;
|
|
70
69
|
readonly path: string;
|
|
71
70
|
readonly message: string;
|
|
72
71
|
}
|
|
73
|
-
|
|
72
|
+
type VerificationRunIssuanceResult = {
|
|
74
73
|
readonly issued: true;
|
|
75
74
|
readonly contract: VerificationRunContract;
|
|
76
75
|
} | {
|
|
@@ -81,4 +80,5 @@ export declare function calculateVerificationRunId(contract: VerificationRunCont
|
|
|
81
80
|
export declare function isVerificationRunContractIntegrityValid(contract: VerificationRunContract): boolean;
|
|
82
81
|
export declare function issueVerificationRunContract(task: TaskAggregate | null, draft: VerificationPlanDraftV1, candidates: readonly GovernanceEvidenceCandidateLedgerEntry[], request: VerificationRunRequestV1, authority: VerificationRunAuthorityContext): VerificationRunIssuanceResult;
|
|
83
82
|
export declare function issueBoundVerificationRunContract(task: TaskAggregate | null, draft: VerificationPlanDraftV1, candidates: readonly GovernanceEvidenceCandidateLedgerEntry[], request: VerificationRunRequestV1, authority: BoundVerificationRunAuthorityContext): VerificationRunIssuanceResult;
|
|
83
|
+
export {};
|
|
84
84
|
//# sourceMappingURL=verification-run-contract.d.ts.map
|
|
@@ -3,8 +3,8 @@ import type { VerificationCheckDescriptor } from './verification-check-binding.j
|
|
|
3
3
|
import type { VerificationCheckRegistry, VerificationCheckRegistryDenialCode } from './verification-check-registry.js';
|
|
4
4
|
import type { ConsumeVerificationExecutionLeaseResult, VerificationExecutionLeaseConsumption, VerificationExecutionLeaseCredential } from './verification-execution-lease.js';
|
|
5
5
|
import type { VerificationRunContract } from './verification-run-contract.js';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
declare const VERIFICATION_TOOL_GATEWAY_REQUEST_SCHEMA_VERSION: 1;
|
|
7
|
+
type VerificationToolGatewayMode = 'legacy' | 'enforced';
|
|
8
8
|
/**
|
|
9
9
|
* Contains only canonical identities and a one-time credential. Tool names,
|
|
10
10
|
* commands, paths, and arguments are deliberately not accepted at this boundary.
|
|
@@ -18,13 +18,13 @@ export interface VerificationToolGatewayRequestV1 {
|
|
|
18
18
|
readonly planFingerprint: string;
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
interface VerificationWorkspaceIdentity {
|
|
22
22
|
readonly manifestHash: string;
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
interface VerificationExecutionLeaseConsumer {
|
|
25
25
|
consumeVerificationExecutionLease: GovernanceEventStore['consumeVerificationExecutionLease'];
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
interface VerificationToolGatewayOptions<Result> {
|
|
28
28
|
/** Defaults to legacy so construction alone can never enable enforcement. */
|
|
29
29
|
readonly mode?: VerificationToolGatewayMode | undefined;
|
|
30
30
|
readonly verifierClientId: string;
|
|
@@ -36,7 +36,7 @@ type VerificationLeaseDenialCode = Extract<ConsumeVerificationExecutionLeaseResu
|
|
|
36
36
|
readonly authorized: false;
|
|
37
37
|
}>['code'];
|
|
38
38
|
type VerificationToolGatewayDenialCode = VerificationLeaseDenialCode | 'request_invalid' | 'workspace_identity_unavailable';
|
|
39
|
-
|
|
39
|
+
type VerificationToolGatewayResult<Result> = {
|
|
40
40
|
readonly route: 'legacy';
|
|
41
41
|
readonly handled: false;
|
|
42
42
|
readonly reason: 'gateway_disabled';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrongstack/governance",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.316.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Deterministic workflow contracts and transition policy for WrongStack orchestration.",
|
|
6
6
|
"repository": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"README.md"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@wrongstack/persistence": "0.
|
|
30
|
+
"@wrongstack/persistence": "0.316.2"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "^26.2.0",
|