@neurcode-ai/governance-runtime 0.1.3 → 0.1.5

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.
Files changed (49) hide show
  1. package/dist/admission-provenance.d.ts +111 -0
  2. package/dist/admission-provenance.d.ts.map +1 -0
  3. package/dist/admission-provenance.js +735 -0
  4. package/dist/admission-provenance.js.map +1 -0
  5. package/dist/agent-guard-posture.d.ts +40 -0
  6. package/dist/agent-guard-posture.d.ts.map +1 -0
  7. package/dist/agent-guard-posture.js +117 -0
  8. package/dist/agent-guard-posture.js.map +1 -0
  9. package/dist/agent-invocation-observability.d.ts +47 -0
  10. package/dist/agent-invocation-observability.d.ts.map +1 -0
  11. package/dist/agent-invocation-observability.js +229 -0
  12. package/dist/agent-invocation-observability.js.map +1 -0
  13. package/dist/agent-plan.d.ts +119 -0
  14. package/dist/agent-plan.d.ts.map +1 -0
  15. package/dist/agent-plan.js +590 -0
  16. package/dist/agent-plan.js.map +1 -0
  17. package/dist/agent-runtime-adapter.d.ts +69 -0
  18. package/dist/agent-runtime-adapter.d.ts.map +1 -0
  19. package/dist/agent-runtime-adapter.js +274 -0
  20. package/dist/agent-runtime-adapter.js.map +1 -0
  21. package/dist/ai-change-record.d.ts +185 -0
  22. package/dist/ai-change-record.d.ts.map +1 -0
  23. package/dist/ai-change-record.js +580 -0
  24. package/dist/ai-change-record.js.map +1 -0
  25. package/dist/architecture-graph.d.ts +153 -0
  26. package/dist/architecture-graph.d.ts.map +1 -0
  27. package/dist/architecture-graph.js +646 -0
  28. package/dist/architecture-graph.js.map +1 -0
  29. package/dist/architecture-obligations.d.ts +161 -0
  30. package/dist/architecture-obligations.d.ts.map +1 -0
  31. package/dist/architecture-obligations.js +553 -0
  32. package/dist/architecture-obligations.js.map +1 -0
  33. package/dist/index.d.ts +10 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +104 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/profile.d.ts +159 -0
  38. package/dist/profile.d.ts.map +1 -0
  39. package/dist/profile.js +611 -0
  40. package/dist/profile.js.map +1 -0
  41. package/dist/session.d.ts +428 -0
  42. package/dist/session.d.ts.map +1 -0
  43. package/dist/session.js +2206 -0
  44. package/dist/session.js.map +1 -0
  45. package/package.json +13 -2
  46. package/src/constraints.ts +0 -828
  47. package/src/index.test.ts +0 -502
  48. package/src/index.ts +0 -463
  49. package/tsconfig.json +0 -19
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Agent Runtime Adapter Contract V1
3
+ *
4
+ * Stable, source-free local ingress shared by hooks, MCP clients, IDE
5
+ * companions, and future agent integrations. The adapter contract describes
6
+ * agent lifecycle events; the CLI remains the local enforcement engine.
7
+ */
8
+ export declare const AGENT_RUNTIME_ADAPTER_SCHEMA_VERSION: "neurcode.agent-runtime-event.v1";
9
+ export declare const AGENT_RUNTIME_DECISION_SCHEMA_VERSION: "neurcode.agent-runtime-decision.v1";
10
+ export type AgentRuntimeAdapterId = 'claude-code-hooks' | 'copilot-hooks' | 'generic-mcp' | 'codex-mcp' | 'cursor-mcp' | 'vscode-extension' | 'github-action';
11
+ export type AgentRuntimeEnforcementLevel = 'hard_deny' | 'cooperative' | 'observe_only' | 'post_change_backstop';
12
+ export type AgentRuntimeControlLevel = 'hard_block_capable' | 'supervised_advisory_capable' | 'evidence_only_capable' | 'unsupported_unknown';
13
+ export type AgentRuntimeCompatibilityMode = 'hard_pre_write_enforcement' | 'cooperative_check' | 'supervisor_diff_watch' | 'evidence_only';
14
+ export type AgentRuntimeEventType = 'session.handshake' | 'session.start' | 'plan.capture' | 'plan.amend' | 'edit.before' | 'edit.after' | 'session.finish' | 'approval.apply' | 'obligation.waive';
15
+ export type AgentRuntimeDecision = 'recorded' | 'allow' | 'warn' | 'deny' | 'observe';
16
+ export interface AgentRuntimeEventPayload {
17
+ goal?: string;
18
+ filePath?: string;
19
+ toolName?: string;
20
+ plan?: string | {
21
+ summary?: string;
22
+ steps?: string[];
23
+ };
24
+ summary?: string;
25
+ scope?: string[];
26
+ reason?: string;
27
+ path?: string;
28
+ obligationId?: string;
29
+ sessionId?: string;
30
+ expiresAt?: string;
31
+ ttlMinutes?: number;
32
+ actor?: string;
33
+ }
34
+ export interface AgentRuntimeEvent {
35
+ schemaVersion: typeof AGENT_RUNTIME_ADAPTER_SCHEMA_VERSION;
36
+ adapter: AgentRuntimeAdapterId;
37
+ eventType: AgentRuntimeEventType;
38
+ cwd?: string;
39
+ eventId?: string;
40
+ timestamp?: string;
41
+ payload: AgentRuntimeEventPayload;
42
+ }
43
+ export interface AgentRuntimeAdapterCapability {
44
+ adapter: AgentRuntimeAdapterId;
45
+ enforcementLevel: AgentRuntimeEnforcementLevel;
46
+ controlLevel: AgentRuntimeControlLevel;
47
+ compatibilityMode: AgentRuntimeCompatibilityMode;
48
+ automatic: boolean;
49
+ events: AgentRuntimeEventType[];
50
+ enforceable: string[];
51
+ advisoryOnly: string[];
52
+ supervisorSupported: boolean;
53
+ description: string;
54
+ }
55
+ export interface AgentRuntimeDecisionEnvelope {
56
+ schemaVersion: typeof AGENT_RUNTIME_DECISION_SCHEMA_VERSION;
57
+ ok: boolean;
58
+ adapter: AgentRuntimeAdapterId;
59
+ enforcementLevel: AgentRuntimeEnforcementLevel;
60
+ eventType: AgentRuntimeEventType;
61
+ decision: AgentRuntimeDecision;
62
+ message: string;
63
+ wouldBlock?: boolean;
64
+ payload?: Record<string, unknown>;
65
+ }
66
+ export declare function listAgentRuntimeAdapterCapabilities(): AgentRuntimeAdapterCapability[];
67
+ export declare function getAgentRuntimeAdapterCapability(adapter: AgentRuntimeAdapterId): AgentRuntimeAdapterCapability;
68
+ export declare function normalizeAgentRuntimeEvent(value: unknown): AgentRuntimeEvent;
69
+ //# sourceMappingURL=agent-runtime-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtime-adapter.d.ts","sourceRoot":"","sources":["../src/agent-runtime-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Runtime Adapter Contract V1
4
+ *
5
+ * Stable, source-free local ingress shared by hooks, MCP clients, IDE
6
+ * companions, and future agent integrations. The adapter contract describes
7
+ * agent lifecycle events; the CLI remains the local enforcement engine.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AGENT_RUNTIME_DECISION_SCHEMA_VERSION = exports.AGENT_RUNTIME_ADAPTER_SCHEMA_VERSION = void 0;
11
+ exports.listAgentRuntimeAdapterCapabilities = listAgentRuntimeAdapterCapabilities;
12
+ exports.getAgentRuntimeAdapterCapability = getAgentRuntimeAdapterCapability;
13
+ exports.normalizeAgentRuntimeEvent = normalizeAgentRuntimeEvent;
14
+ exports.AGENT_RUNTIME_ADAPTER_SCHEMA_VERSION = 'neurcode.agent-runtime-event.v1';
15
+ exports.AGENT_RUNTIME_DECISION_SCHEMA_VERSION = 'neurcode.agent-runtime-decision.v1';
16
+ const ALL_RUNTIME_EVENTS = [
17
+ 'session.handshake',
18
+ 'session.start',
19
+ 'plan.capture',
20
+ 'plan.amend',
21
+ 'edit.before',
22
+ 'edit.after',
23
+ 'session.finish',
24
+ 'approval.apply',
25
+ 'obligation.waive',
26
+ ];
27
+ const CAPABILITIES = [
28
+ {
29
+ adapter: 'claude-code-hooks',
30
+ enforcementLevel: 'hard_deny',
31
+ controlLevel: 'hard_block_capable',
32
+ compatibilityMode: 'hard_pre_write_enforcement',
33
+ automatic: true,
34
+ events: ['session.start', 'plan.capture', 'edit.before', 'session.finish'],
35
+ enforceable: ['pre-write boundary deny', 'pre-write intent and plan checks', 'exact-path approvals'],
36
+ advisoryOnly: ['post-session structural consequence interpretation'],
37
+ supervisorSupported: false,
38
+ description: 'Claude Code lifecycle hooks automatically run the local runtime before writes land.',
39
+ },
40
+ {
41
+ adapter: 'copilot-hooks',
42
+ enforcementLevel: 'hard_deny',
43
+ controlLevel: 'hard_block_capable',
44
+ compatibilityMode: 'hard_pre_write_enforcement',
45
+ automatic: true,
46
+ events: ['session.start', 'plan.capture', 'edit.before', 'session.finish'],
47
+ enforceable: ['pre-tool boundary deny when Copilot hook discovery is active', 'exact-path approvals'],
48
+ advisoryOnly: ['hosts without Copilot hook discovery fall back to supervision/evidence'],
49
+ supervisorSupported: true,
50
+ description: 'GitHub Copilot hooks run the local runtime around agent tool use when Copilot hook discovery is active for the repo.',
51
+ },
52
+ {
53
+ adapter: 'generic-mcp',
54
+ enforcementLevel: 'cooperative',
55
+ controlLevel: 'supervised_advisory_capable',
56
+ compatibilityMode: 'cooperative_check',
57
+ automatic: false,
58
+ events: [...ALL_RUNTIME_EVENTS],
59
+ enforceable: ['runtime decision returned to cooperating agent', 'exact-path approvals when the agent calls the runtime'],
60
+ advisoryOnly: ['host-level write denial', 'edits made without runtime calls'],
61
+ supervisorSupported: true,
62
+ description: 'Portable MCP ingress for agents that voluntarily call the runtime before edits.',
63
+ },
64
+ {
65
+ adapter: 'codex-mcp',
66
+ enforcementLevel: 'cooperative',
67
+ controlLevel: 'supervised_advisory_capable',
68
+ compatibilityMode: 'supervisor_diff_watch',
69
+ automatic: false,
70
+ events: [...ALL_RUNTIME_EVENTS],
71
+ enforceable: ['cooperative edit.before checks when Codex calls the runtime', 'pre-commit supervisor/diff-watch warnings'],
72
+ advisoryOnly: ['host-level hard pre-write denial inside Codex', 'edits made outside the runtime adapter'],
73
+ supervisorSupported: true,
74
+ description: 'Codex MCP integration. Governance is enforced when the agent calls the local runtime ingress.',
75
+ },
76
+ {
77
+ adapter: 'cursor-mcp',
78
+ enforcementLevel: 'cooperative',
79
+ controlLevel: 'supervised_advisory_capable',
80
+ compatibilityMode: 'supervisor_diff_watch',
81
+ automatic: false,
82
+ events: [...ALL_RUNTIME_EVENTS],
83
+ enforceable: ['cooperative edit.before checks when Cursor calls the runtime', 'pre-commit supervisor/diff-watch warnings'],
84
+ advisoryOnly: ['host-level hard pre-write denial inside Cursor', 'edits made outside the runtime adapter'],
85
+ supervisorSupported: true,
86
+ description: 'Cursor MCP integration. Governance is enforced when the agent calls the local runtime ingress.',
87
+ },
88
+ {
89
+ adapter: 'vscode-extension',
90
+ enforcementLevel: 'observe_only',
91
+ controlLevel: 'evidence_only_capable',
92
+ compatibilityMode: 'evidence_only',
93
+ automatic: false,
94
+ events: [...ALL_RUNTIME_EVENTS],
95
+ enforceable: ['live visibility', 'source-free evidence capture'],
96
+ advisoryOnly: ['pre-write denial', 'agent tool-use enforcement'],
97
+ supervisorSupported: true,
98
+ description: 'IDE companion ingress for live visibility and post-write containment where pre-write interception is unavailable.',
99
+ },
100
+ {
101
+ adapter: 'github-action',
102
+ enforcementLevel: 'post_change_backstop',
103
+ controlLevel: 'evidence_only_capable',
104
+ compatibilityMode: 'evidence_only',
105
+ automatic: true,
106
+ events: ['edit.after', 'session.finish'],
107
+ enforceable: ['post-change admission/backstop checks'],
108
+ advisoryOnly: ['in-flow write denial'],
109
+ supervisorSupported: false,
110
+ description: 'Optional repository backstop after changes exist; never represented as in-flow hard enforcement.',
111
+ },
112
+ ];
113
+ const SOURCE_LIKE_KEYS = new Set([
114
+ 'content',
115
+ 'filecontent',
116
+ 'source',
117
+ 'sourcetext',
118
+ 'sourcecode',
119
+ 'diff',
120
+ 'difftext',
121
+ 'patch',
122
+ 'before',
123
+ 'after',
124
+ ]);
125
+ function asRecord(value) {
126
+ return value && typeof value === 'object' && !Array.isArray(value)
127
+ ? value
128
+ : null;
129
+ }
130
+ function cleanString(value, max = 4000) {
131
+ if (typeof value !== 'string')
132
+ return undefined;
133
+ const cleaned = value.trim();
134
+ if (!cleaned)
135
+ return undefined;
136
+ return cleaned.slice(0, max);
137
+ }
138
+ function cleanStrings(value) {
139
+ if (!Array.isArray(value))
140
+ return undefined;
141
+ const values = Array.from(new Set(value
142
+ .map((item) => cleanString(item, 400))
143
+ .filter((item) => Boolean(item))));
144
+ return values.length > 0 ? values : undefined;
145
+ }
146
+ function assertSourceFree(value, path = 'payload') {
147
+ if (Array.isArray(value)) {
148
+ value.forEach((item, index) => assertSourceFree(item, `${path}[${index}]`));
149
+ return;
150
+ }
151
+ const record = asRecord(value);
152
+ if (!record)
153
+ return;
154
+ for (const [key, child] of Object.entries(record)) {
155
+ const normalizedKey = key.toLowerCase().replace(/[^a-z0-9]/g, '');
156
+ if (SOURCE_LIKE_KEYS.has(normalizedKey)) {
157
+ throw new Error(`source-like adapter payload key is not allowed: ${path}.${key}`);
158
+ }
159
+ assertSourceFree(child, `${path}.${key}`);
160
+ }
161
+ }
162
+ function isAdapterId(value) {
163
+ return CAPABILITIES.some((capability) => capability.adapter === value);
164
+ }
165
+ function isEventType(value) {
166
+ return ALL_RUNTIME_EVENTS.includes(value);
167
+ }
168
+ function cleanPlan(value) {
169
+ const text = cleanString(value, 12000);
170
+ if (text)
171
+ return text;
172
+ const record = asRecord(value);
173
+ if (!record)
174
+ return undefined;
175
+ const summary = cleanString(record.summary, 1000);
176
+ const steps = cleanStrings(record.steps);
177
+ return summary || steps ? { summary, steps } : undefined;
178
+ }
179
+ function requireField(value, label) {
180
+ if (value === undefined || value === null || value === '') {
181
+ throw new Error(`${label} is required for this runtime adapter event`);
182
+ }
183
+ }
184
+ function listAgentRuntimeAdapterCapabilities() {
185
+ return CAPABILITIES.map((capability) => ({
186
+ ...capability,
187
+ events: [...capability.events],
188
+ enforceable: [...capability.enforceable],
189
+ advisoryOnly: [...capability.advisoryOnly],
190
+ }));
191
+ }
192
+ function getAgentRuntimeAdapterCapability(adapter) {
193
+ const capability = CAPABILITIES.find((item) => item.adapter === adapter);
194
+ if (!capability)
195
+ throw new Error(`unknown runtime adapter: ${adapter}`);
196
+ return {
197
+ ...capability,
198
+ events: [...capability.events],
199
+ enforceable: [...capability.enforceable],
200
+ advisoryOnly: [...capability.advisoryOnly],
201
+ };
202
+ }
203
+ function normalizeAgentRuntimeEvent(value) {
204
+ const record = asRecord(value);
205
+ if (!record)
206
+ throw new Error('runtime adapter event must be an object');
207
+ const schemaVersion = record.schemaVersion ?? exports.AGENT_RUNTIME_ADAPTER_SCHEMA_VERSION;
208
+ if (schemaVersion !== exports.AGENT_RUNTIME_ADAPTER_SCHEMA_VERSION) {
209
+ throw new Error(`unsupported runtime adapter schemaVersion: ${String(schemaVersion)}`);
210
+ }
211
+ if (!isAdapterId(record.adapter)) {
212
+ throw new Error(`unsupported runtime adapter: ${String(record.adapter)}`);
213
+ }
214
+ if (!isEventType(record.eventType)) {
215
+ throw new Error(`unsupported runtime adapter eventType: ${String(record.eventType)}`);
216
+ }
217
+ const rawPayload = asRecord(record.payload) ?? {};
218
+ assertSourceFree(rawPayload);
219
+ const payload = {
220
+ goal: cleanString(rawPayload.goal),
221
+ filePath: cleanString(rawPayload.filePath, 1000),
222
+ toolName: cleanString(rawPayload.toolName, 120),
223
+ plan: cleanPlan(rawPayload.plan),
224
+ summary: cleanString(rawPayload.summary, 1000),
225
+ scope: cleanStrings(rawPayload.scope),
226
+ reason: cleanString(rawPayload.reason, 1000),
227
+ path: cleanString(rawPayload.path, 1000),
228
+ obligationId: cleanString(rawPayload.obligationId, 1000),
229
+ sessionId: cleanString(rawPayload.sessionId, 200),
230
+ expiresAt: cleanString(rawPayload.expiresAt, 200),
231
+ ttlMinutes: typeof rawPayload.ttlMinutes === 'number' && Number.isFinite(rawPayload.ttlMinutes)
232
+ ? Math.max(0, Math.min(24 * 60, rawPayload.ttlMinutes))
233
+ : undefined,
234
+ actor: cleanString(rawPayload.actor, 300),
235
+ };
236
+ switch (record.eventType) {
237
+ case 'session.handshake':
238
+ break;
239
+ case 'session.start':
240
+ requireField(payload.goal, 'payload.goal');
241
+ break;
242
+ case 'plan.capture':
243
+ requireField(payload.plan, 'payload.plan');
244
+ break;
245
+ case 'plan.amend':
246
+ if (!payload.plan && !payload.summary && !payload.scope?.length) {
247
+ throw new Error('plan.amend requires payload.plan, payload.summary, or payload.scope');
248
+ }
249
+ break;
250
+ case 'edit.before':
251
+ case 'edit.after':
252
+ requireField(payload.filePath, 'payload.filePath');
253
+ break;
254
+ case 'approval.apply':
255
+ requireField(payload.path, 'payload.path');
256
+ break;
257
+ case 'obligation.waive':
258
+ requireField(payload.obligationId, 'payload.obligationId');
259
+ requireField(payload.reason, 'payload.reason');
260
+ break;
261
+ case 'session.finish':
262
+ break;
263
+ }
264
+ return {
265
+ schemaVersion: exports.AGENT_RUNTIME_ADAPTER_SCHEMA_VERSION,
266
+ adapter: record.adapter,
267
+ eventType: record.eventType,
268
+ cwd: cleanString(record.cwd, 2000),
269
+ eventId: cleanString(record.eventId, 300),
270
+ timestamp: cleanString(record.timestamp, 200),
271
+ payload,
272
+ };
273
+ }
274
+ //# sourceMappingURL=agent-runtime-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtime-adapter.js","sourceRoot":"","sources":["../src/agent-runtime-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ import { type ArchitectureObligationSummary } from './architecture-obligations';
2
+ import type { AgentPlanAmendmentProposal, ApprovalGrant, GovernanceSession, IntentContract } from './session';
3
+ export declare const AI_CHANGE_RECORD_SCHEMA_VERSION: "neurcode.governed-session-record.v1";
4
+ export declare const AI_CHANGE_RECORD_TYPE: "ai-change-accountability-record";
5
+ export interface AIChangeRecordPathTrajectory {
6
+ filePath: string;
7
+ verdicts: string[];
8
+ checks: number;
9
+ firstSeenAt: string | null;
10
+ lastSeenAt: string | null;
11
+ owners: string[];
12
+ suggestedApprovalPath: string | null;
13
+ }
14
+ export interface AIChangeRecordPlanTimelineEntry {
15
+ revision: number | null;
16
+ kind: string;
17
+ summary: string | null;
18
+ capturedAt: string | null;
19
+ reason: string | null;
20
+ expectedFiles: string[];
21
+ expectedGlobs: string[];
22
+ constraints: string[];
23
+ risks: string[];
24
+ }
25
+ export interface AIChangeRecordApprovalEntry {
26
+ path: string;
27
+ status: 'active' | 'expired' | 'revoked';
28
+ source: ApprovalGrant['source'];
29
+ approvedAt: string;
30
+ expiresAt: string | null;
31
+ revokedAt: string | null;
32
+ approvedBy: string | null;
33
+ reason: string;
34
+ requestId: string | null;
35
+ }
36
+ export interface AIChangeRecordStructuralUnderstanding {
37
+ schemaVersion: string;
38
+ artifactHash: string | null;
39
+ artifactPath: string | null;
40
+ analyzed: boolean;
41
+ reason: string | null;
42
+ changedFileCount: number;
43
+ changedSymbolCount: number;
44
+ referenceCount: number;
45
+ testReferenceCount: number;
46
+ changedSymbols: Array<{
47
+ file: string;
48
+ name: string;
49
+ kind: string;
50
+ action: string;
51
+ }>;
52
+ topReferences: Array<{
53
+ targetFile: string;
54
+ targetSymbol: string;
55
+ referencingFile: string;
56
+ referencingSymbol: string | null;
57
+ line: number;
58
+ isTestFile: boolean;
59
+ }>;
60
+ suppressedArtifacts: Array<{
61
+ path: string;
62
+ reasonCode: string;
63
+ }>;
64
+ consequenceUnderstanding: unknown | null;
65
+ digest: {
66
+ summary: unknown;
67
+ hidden: unknown;
68
+ topSymbols: unknown[];
69
+ topConsequences: unknown[];
70
+ topReferences: unknown[];
71
+ limitations: string[];
72
+ } | null;
73
+ planAlignment: unknown;
74
+ boundaryImpact: unknown[];
75
+ }
76
+ export type AIChangeRecordReviewVerdict = 'ready_to_review' | 'needs_human_inspection' | 'blocked_unresolved' | 'evidence_incomplete';
77
+ export interface AIChangeRecordReviewBriefSection {
78
+ id: 'change_thesis' | 'what_changed' | 'what_could_break' | 'governance_events' | 'final_verdict';
79
+ title: string;
80
+ status: 'pass' | 'warn' | 'block' | 'pending';
81
+ summary: string;
82
+ facts: string[];
83
+ reviewFocus: string[];
84
+ provenance: 'deterministic' | 'advisory';
85
+ }
86
+ export interface AIChangeRecordReviewBrief {
87
+ schemaVersion: 'neurcode.review-brief.v1';
88
+ verdict: AIChangeRecordReviewVerdict;
89
+ headline: string;
90
+ summary: string;
91
+ riskLabels: string[];
92
+ reviewFocus: string[];
93
+ sections: AIChangeRecordReviewBriefSection[];
94
+ generatedFrom: string[];
95
+ limitations: string[];
96
+ }
97
+ export interface AIChangeRecord {
98
+ schemaVersion: typeof AI_CHANGE_RECORD_SCHEMA_VERSION;
99
+ recordType: typeof AI_CHANGE_RECORD_TYPE;
100
+ displayName: 'AI Change Record';
101
+ generatedAt: string;
102
+ privacy: {
103
+ sourceUploaded: false;
104
+ sourceFree: true;
105
+ omittedFields: string[];
106
+ };
107
+ session: {
108
+ sessionId: string;
109
+ repoName: string;
110
+ status: GovernanceSession['status'];
111
+ goal: string;
112
+ scopeMode: GovernanceSession['contract']['scopeMode'];
113
+ profileHash: string;
114
+ startedAt: string | null;
115
+ finishedAt: string | null;
116
+ counts: {
117
+ ok: number;
118
+ warn: number;
119
+ block: number;
120
+ approval: number;
121
+ planEvents: number;
122
+ events: number;
123
+ };
124
+ };
125
+ intent: {
126
+ contract: IntentContract | null;
127
+ expectedPathGlobs: string[];
128
+ riskNotes: string[];
129
+ };
130
+ plan: {
131
+ activeRevision: number | null;
132
+ activeSummary: string | null;
133
+ timeline: AIChangeRecordPlanTimelineEntry[];
134
+ pendingAmendments: Array<{
135
+ proposalId: string;
136
+ previousRevision: number;
137
+ riskLevel: AgentPlanAmendmentProposal['risk']['level'];
138
+ requiresHumanApproval: boolean;
139
+ addedFiles: string[];
140
+ addedGlobs: string[];
141
+ reasons: string[];
142
+ createdAt: string;
143
+ }>;
144
+ };
145
+ scope: {
146
+ allowedGlobs: string[];
147
+ approvalRequiredGlobs: string[];
148
+ approvedPaths: string[];
149
+ };
150
+ trajectory: AIChangeRecordPathTrajectory[];
151
+ architecture: {
152
+ summary: ArchitectureObligationSummary;
153
+ obligations: Array<{
154
+ id: string;
155
+ title: string;
156
+ severity: string;
157
+ status: string;
158
+ effectiveMode: string;
159
+ relatedPaths: string[];
160
+ }>;
161
+ };
162
+ approvals: AIChangeRecordApprovalEntry[];
163
+ understanding: {
164
+ latest: AIChangeRecordStructuralUnderstanding | null;
165
+ };
166
+ reviewBrief: AIChangeRecordReviewBrief;
167
+ integrity: {
168
+ recordHash: string;
169
+ replayHash: string | null;
170
+ replayHashStatus: 'present' | 'pending-session-finish';
171
+ deterministicFacts: string[];
172
+ advisoryFacts: string[];
173
+ };
174
+ }
175
+ export declare function aiChangeRecordPath(projectRoot: string, sessionId: string): string;
176
+ export declare function buildAIChangeRecord(session: GovernanceSession, options?: {
177
+ generatedAt?: string;
178
+ }): AIChangeRecord;
179
+ export declare function writeAIChangeRecord(projectRoot: string, session: GovernanceSession, options?: {
180
+ generatedAt?: string;
181
+ }): {
182
+ record: AIChangeRecord;
183
+ path: string;
184
+ };
185
+ //# sourceMappingURL=ai-change-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-change-record.d.ts","sourceRoot":"","sources":["../src/ai-change-record.ts"],"names":[],"mappings":"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"}