@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,553 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DEFAULT_ARCHITECTURE_OBLIGATION_POLICY = exports.ARCHITECTURE_OBLIGATION_SCHEMA_VERSION = void 0;
7
+ exports.planDeclaredApprovalRequiredPaths = planDeclaredApprovalRequiredPaths;
8
+ exports.normalizeArchitectureObligationPolicy = normalizeArchitectureObligationPolicy;
9
+ exports.effectiveArchitectureObligationMode = effectiveArchitectureObligationMode;
10
+ exports.isArchitectureObligationWaiverActive = isArchitectureObligationWaiverActive;
11
+ exports.activeArchitectureObligationWaivers = activeArchitectureObligationWaivers;
12
+ exports.deriveArchitectureObligations = deriveArchitectureObligations;
13
+ exports.summarizeArchitectureObligations = summarizeArchitectureObligations;
14
+ exports.evaluateArchitectureObligationFeedback = evaluateArchitectureObligationFeedback;
15
+ exports.evaluateArchitectureEdit = evaluateArchitectureEdit;
16
+ const micromatch_1 = __importDefault(require("micromatch"));
17
+ const architecture_graph_1 = require("./architecture-graph");
18
+ exports.ARCHITECTURE_OBLIGATION_SCHEMA_VERSION = 1;
19
+ exports.DEFAULT_ARCHITECTURE_OBLIGATION_POLICY = Object.freeze({
20
+ mode: 'warn',
21
+ ruleModes: {},
22
+ });
23
+ function unique(values) {
24
+ return Array.from(new Set(Array.from(values, (value) => String(value ?? '').trim()).filter(Boolean)));
25
+ }
26
+ function planText(plan) {
27
+ if (!plan)
28
+ return '';
29
+ return [
30
+ plan.summary,
31
+ ...plan.steps,
32
+ ...plan.constraints,
33
+ ...plan.risks,
34
+ ...plan.expectedFiles,
35
+ ...plan.expectedGlobs,
36
+ ].join('\n');
37
+ }
38
+ function isDemoRehearsalMarkerIntent(text) {
39
+ return (/\bfixtures\/demo-svc\b/i.test(text) &&
40
+ /\b(marker|rehearsal|demo)\b/i.test(text));
41
+ }
42
+ function isTestPath(filePath) {
43
+ return (/(^|\/)(tests?|specs?)(\/|$)/i.test(filePath) ||
44
+ /(?:^|[._-])(test|spec)\.[a-z0-9]+$/i.test(filePath) ||
45
+ /(?:^|\/)test_[^/]+\.[a-z0-9]+$/i.test(filePath));
46
+ }
47
+ function matchesPath(filePath, pathOrGlob) {
48
+ const prefix = pathOrGlob.replace('/**', '').replace('/*', '');
49
+ return (filePath === pathOrGlob ||
50
+ filePath === prefix ||
51
+ filePath.startsWith(prefix + '/') ||
52
+ micromatch_1.default.isMatch(filePath, pathOrGlob, { dot: true, matchBase: true }));
53
+ }
54
+ function allowedTrajectoryPaths(events) {
55
+ return unique(events
56
+ .filter((event) => event.type === 'check_ok' || event.type === 'check_warn')
57
+ .map((event) => event.filePath));
58
+ }
59
+ function approvalRequiredPaths(events) {
60
+ const paths = [];
61
+ for (const event of events) {
62
+ if (event.type !== 'check_block')
63
+ continue;
64
+ const raw = event.detail?.approvalContext;
65
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
66
+ continue;
67
+ const context = raw;
68
+ const candidate = context.suggestedApprovalPath || context.blockedPath || event.filePath;
69
+ if (typeof candidate === 'string' && candidate.trim())
70
+ paths.push(candidate.trim());
71
+ }
72
+ return unique(paths);
73
+ }
74
+ function pathMatchesApprovalRequiredGlob(filePath, approvalRequiredGlobs) {
75
+ return approvalRequiredGlobs.some((glob) => matchesPath(filePath, glob.replace(/^\//, '')));
76
+ }
77
+ /**
78
+ * Paths the accepted agent plan declares that sit inside approval-required /
79
+ * CODEOWNERS boundaries. These become live obligations at plan capture — before
80
+ * the first guarded write attempt — so agents and humans can approve upfront.
81
+ */
82
+ function planDeclaredApprovalRequiredPaths(input) {
83
+ const approvalGlobs = input.approvalRequiredGlobs ?? [];
84
+ if (approvalGlobs.length === 0 || !input.agentPlan)
85
+ return [];
86
+ const required = new Set();
87
+ for (const raw of input.agentPlan.expectedFiles) {
88
+ const filePath = String(raw ?? '').trim().replace(/^\.\//, '').replace(/^\//, '');
89
+ if (!filePath || !pathMatchesApprovalRequiredGlob(filePath, approvalGlobs))
90
+ continue;
91
+ required.add(filePath);
92
+ }
93
+ for (const raw of input.agentPlan.expectedGlobs) {
94
+ const glob = String(raw ?? '').trim().replace(/^\.\//, '').replace(/^\//, '');
95
+ if (!glob || !pathMatchesApprovalRequiredGlob(glob, approvalGlobs))
96
+ continue;
97
+ // Prefer exact file obligations when the glob names a concrete file.
98
+ if (!glob.includes('*') && !glob.includes('?')) {
99
+ required.add(glob);
100
+ }
101
+ }
102
+ return Array.from(required).sort();
103
+ }
104
+ function ownershipApprovalDraft(requiredPath, approvedPaths, triggers) {
105
+ const approved = approvedPaths.find((approvedPath) => matchesPath(requiredPath, approvedPath));
106
+ const planDeclared = triggers.some((trigger) => trigger.startsWith('plan declares'));
107
+ return {
108
+ id: `ownership:exact-approval:${requiredPath}`,
109
+ category: 'ownership',
110
+ title: planDeclared
111
+ ? `Approve plan-declared path ${requiredPath}`
112
+ : `Approve sensitive path ${requiredPath}`,
113
+ description: planDeclared
114
+ ? 'This path is in the active agent plan and sits in a CODEOWNERS / approval-required boundary. Approve the exact path before the first edit.'
115
+ : 'A guarded sensitive or team-owned path must have an explicit session-scoped approval before the write lands.',
116
+ severity: 'critical',
117
+ triggeredBy: triggers,
118
+ requiredEvidence: [`Approve exactly ${requiredPath} or an explicitly chosen broader glob.`],
119
+ observedEvidence: approved
120
+ ? [evidence('exact-approval', `Active session approval recorded: ${approved}`, approved)]
121
+ : [],
122
+ requiredPath,
123
+ };
124
+ }
125
+ function evidence(kind, summary, path) {
126
+ return { kind, summary, ...(path ? { path } : {}) };
127
+ }
128
+ /** True when an active approval path covers (or is inside) the module glob. */
129
+ function approvalCoversPath(approvedPaths, moduleGlob) {
130
+ const prefix = moduleGlob.replace('/**', '').replace('/*', '');
131
+ for (const approved of approvedPaths) {
132
+ const approvedPrefix = approved.replace('/**', '').replace('/*', '');
133
+ if (matchesPath(prefix || moduleGlob, approved) ||
134
+ approvedPrefix === prefix ||
135
+ approvedPrefix.startsWith(prefix + '/') ||
136
+ prefix.startsWith(approvedPrefix + '/')) {
137
+ return approved;
138
+ }
139
+ }
140
+ return null;
141
+ }
142
+ /** Find a guarded test-path edit that lands inside (or names) the module. */
143
+ function moduleTestEdit(trajectoryPaths, moduleId, moduleGlob) {
144
+ const lastSegment = moduleId.split('/').filter(Boolean).at(-1) ?? moduleId;
145
+ for (const filePath of trajectoryPaths) {
146
+ if (!isTestPath(filePath))
147
+ continue;
148
+ if (matchesPath(filePath, moduleGlob))
149
+ return filePath;
150
+ if (lastSegment && filePath.toLowerCase().includes(lastSegment.toLowerCase()))
151
+ return filePath;
152
+ }
153
+ return null;
154
+ }
155
+ /**
156
+ * Collect the source-free paths/globs currently "in play" for graph obligation
157
+ * derivation: declared intent scope, the accepted plan's expected targets, and
158
+ * the guarded change trajectory (including attempted approval-required writes).
159
+ */
160
+ function graphCandidatePaths(input, events) {
161
+ const candidates = new Set();
162
+ const add = (value) => {
163
+ const trimmed = String(value ?? '').trim();
164
+ if (trimmed)
165
+ candidates.add(trimmed);
166
+ };
167
+ const target = input.intentContract?.target;
168
+ (target?.expectedPathGlobs ?? []).forEach(add);
169
+ (target?.pathTokens ?? []).forEach(add);
170
+ if (input.agentPlan) {
171
+ input.agentPlan.expectedFiles.forEach(add);
172
+ input.agentPlan.expectedGlobs.forEach(add);
173
+ }
174
+ for (const event of events) {
175
+ if (event.type === 'check_ok' || event.type === 'check_warn' || event.type === 'check_block') {
176
+ add(event.filePath);
177
+ }
178
+ }
179
+ for (const requiredPath of approvalRequiredPaths(events))
180
+ add(requiredPath);
181
+ return Array.from(candidates);
182
+ }
183
+ /** Build obligation drafts from the architecture graph for the modules in play. */
184
+ function deriveGraphDrafts(input, events, approvedPaths, acceptedPlanText) {
185
+ if (!input.graph)
186
+ return [];
187
+ const candidatePaths = graphCandidatePaths(input, events);
188
+ const seeds = (0, architecture_graph_1.deriveGraphObligationSeeds)({ graph: input.graph, candidatePaths });
189
+ const trajectoryPaths = allowedTrajectoryPaths(events);
190
+ return seeds.map((seed) => {
191
+ const observedEvidence = [];
192
+ if (seed.satisfy.approval) {
193
+ const approved = approvalCoversPath(approvedPaths, seed.requiredPath);
194
+ if (approved) {
195
+ observedEvidence.push(evidence('exact-approval', `Active approval covers ${seed.module}: ${approved}`, approved));
196
+ }
197
+ }
198
+ if (seed.satisfy.planPattern) {
199
+ const pattern = new RegExp(seed.satisfy.planPattern, 'i');
200
+ if (pattern.test(acceptedPlanText)) {
201
+ observedEvidence.push(evidence('accepted-plan', `Accepted plan addresses ${seed.surface} obligation for ${seed.module}.`));
202
+ }
203
+ }
204
+ if (seed.satisfy.moduleTest) {
205
+ const testPath = moduleTestEdit(trajectoryPaths, seed.module, seed.requiredPath);
206
+ if (testPath) {
207
+ observedEvidence.push(evidence('change-trajectory', `Guarded test edit covers ${seed.module}: ${testPath}`, testPath));
208
+ }
209
+ }
210
+ return {
211
+ id: seed.id,
212
+ category: seed.category,
213
+ title: seed.title,
214
+ description: seed.description,
215
+ severity: seed.severity,
216
+ triggeredBy: seed.triggeredBy,
217
+ requiredEvidence: seed.requiredEvidence,
218
+ observedEvidence,
219
+ requiredPath: seed.requiredPath,
220
+ };
221
+ });
222
+ }
223
+ function normalizePolicyMode(value) {
224
+ return value === 'off' || value === 'warn' || value === 'block' ? value : null;
225
+ }
226
+ function normalizeArchitectureObligationPolicy(value) {
227
+ const mode = normalizePolicyMode(value?.mode) || exports.DEFAULT_ARCHITECTURE_OBLIGATION_POLICY.mode;
228
+ const ruleModes = {};
229
+ const rawRuleModes = value?.ruleModes;
230
+ if (rawRuleModes && typeof rawRuleModes === 'object' && !Array.isArray(rawRuleModes)) {
231
+ for (const [rawId, rawMode] of Object.entries(rawRuleModes)) {
232
+ const id = rawId.trim();
233
+ const ruleMode = normalizePolicyMode(rawMode);
234
+ if (id && ruleMode)
235
+ ruleModes[id] = ruleMode;
236
+ }
237
+ }
238
+ return { mode, ruleModes };
239
+ }
240
+ function effectiveArchitectureObligationMode(obligation, policy) {
241
+ const normalized = normalizeArchitectureObligationPolicy(policy);
242
+ return normalized.ruleModes[obligation.id] || normalized.mode;
243
+ }
244
+ function isArchitectureObligationWaiverActive(waiver, checkedAt = new Date().toISOString()) {
245
+ if (!waiver.obligationId || waiver.revokedAt)
246
+ return false;
247
+ if (!waiver.expiresAt)
248
+ return true;
249
+ const expiresAtMs = Date.parse(waiver.expiresAt);
250
+ const checkedAtMs = Date.parse(checkedAt);
251
+ if (!Number.isFinite(expiresAtMs) || !Number.isFinite(checkedAtMs))
252
+ return false;
253
+ return expiresAtMs > checkedAtMs;
254
+ }
255
+ function activeArchitectureObligationWaivers(waivers = [], checkedAt = new Date().toISOString()) {
256
+ return waivers.filter((waiver) => isArchitectureObligationWaiverActive(waiver, checkedAt));
257
+ }
258
+ function finalize(drafts, previous, now, policy, waivers) {
259
+ const previousById = new Map(previous.map((item) => [item.id, item]));
260
+ const activeWaivers = activeArchitectureObligationWaivers(waivers, now);
261
+ const obligations = [];
262
+ for (const draft of drafts) {
263
+ const prior = previousById.get(draft.id);
264
+ const observedEvidence = unique(draft.observedEvidence.map((item) => JSON.stringify(item)))
265
+ .map((item) => JSON.parse(item));
266
+ const effectiveMode = effectiveArchitectureObligationMode(draft, policy);
267
+ if (effectiveMode === 'off')
268
+ continue;
269
+ const activeWaiver = activeWaivers.find((waiver) => waiver.obligationId === draft.id);
270
+ const baseStatus = observedEvidence.length > 0 ? 'satisfied' : 'pending';
271
+ const status = baseStatus === 'pending' && activeWaiver ? 'waived' : baseStatus;
272
+ const waiverEvidence = activeWaiver
273
+ ? {
274
+ eventId: activeWaiver.eventId,
275
+ reason: activeWaiver.reason,
276
+ waivedAt: activeWaiver.waivedAt,
277
+ expiresAt: activeWaiver.expiresAt,
278
+ waivedBy: activeWaiver.waivedBy ?? null,
279
+ source: activeWaiver.source,
280
+ }
281
+ : undefined;
282
+ const finalEvidence = waiverEvidence && baseStatus === 'pending'
283
+ ? [
284
+ ...observedEvidence,
285
+ evidence('waiver', `Waived by ${waiverEvidence.waivedBy || waiverEvidence.source}: ${waiverEvidence.reason}`),
286
+ ]
287
+ : observedEvidence;
288
+ const materiallyChanged = !prior ||
289
+ prior.status !== status ||
290
+ prior.effectiveMode !== effectiveMode ||
291
+ JSON.stringify(prior.observedEvidence) !== JSON.stringify(finalEvidence) ||
292
+ JSON.stringify(prior.waiver ?? null) !== JSON.stringify(waiverEvidence ?? null);
293
+ obligations.push({
294
+ schemaVersion: exports.ARCHITECTURE_OBLIGATION_SCHEMA_VERSION,
295
+ ...draft,
296
+ status,
297
+ observedEvidence: finalEvidence,
298
+ firstSeenAt: prior?.firstSeenAt || now,
299
+ updatedAt: materiallyChanged ? now : prior.updatedAt,
300
+ effectiveMode,
301
+ ...(waiverEvidence && status === 'waived' ? { waiver: waiverEvidence } : {}),
302
+ });
303
+ }
304
+ return obligations;
305
+ }
306
+ /**
307
+ * Derive the live architecture-obligation ledger from source-free metadata.
308
+ *
309
+ * The first rule set is intentionally conservative. Every obligation is
310
+ * explainable from user intent, the accepted agent plan, guarded path attempts,
311
+ * or exact approval state. Source, diffs, and file contents are never inputs.
312
+ */
313
+ function deriveArchitectureObligations(input) {
314
+ const now = input.now || new Date().toISOString();
315
+ const policy = normalizeArchitectureObligationPolicy(input.policy);
316
+ const events = input.events ?? [];
317
+ const trajectoryPaths = allowedTrajectoryPaths(events);
318
+ const acceptedPlanText = planText(input.agentPlan);
319
+ const combinedText = `${input.goal}\n${acceptedPlanText}`.toLowerCase();
320
+ const intentIds = new Set((input.intentContract?.obligations ?? []).map((item) => item.id).filter(Boolean));
321
+ const domains = new Set(input.intentContract?.target?.domainKeywords ?? []);
322
+ const drafts = [];
323
+ const reliabilityTriggered = !isDemoRehearsalMarkerIntent(combinedText) && (/\b(retry|retries|backoff|timeout|idempoten|duplicate side effect)\b/i.test(combinedText) ||
324
+ domains.has('reliability') ||
325
+ intentIds.has('preserve-idempotency') ||
326
+ intentIds.has('cover-retry-path'));
327
+ if (reliabilityTriggered) {
328
+ const retryTest = trajectoryPaths.find(isTestPath);
329
+ drafts.push({
330
+ id: 'reliability:retry-path-coverage',
331
+ category: 'reliability',
332
+ title: 'Exercise the retry path',
333
+ description: 'Retry, backoff, and timeout work should include a guarded test-path change before the session finishes.',
334
+ severity: 'warn',
335
+ triggeredBy: ['intent or accepted plan references retry, backoff, timeout, or reliability'],
336
+ requiredEvidence: ['Edit a test or spec path during this governed session.'],
337
+ observedEvidence: retryTest
338
+ ? [evidence('change-trajectory', `Guarded test-path edit observed: ${retryTest}`, retryTest)]
339
+ : [],
340
+ });
341
+ const idempotencyCommitment = /\b(idempoten\w*|duplicate side effects?|at[- ]most[- ]once)\b/i.test(acceptedPlanText);
342
+ drafts.push({
343
+ id: 'reliability:idempotency-reasoning',
344
+ category: 'reliability',
345
+ title: 'State the idempotency strategy',
346
+ description: 'Retry work needs an accepted-plan commitment explaining how duplicate side effects are avoided.',
347
+ severity: 'critical',
348
+ triggeredBy: ['intent or accepted plan references retry, backoff, timeout, or reliability'],
349
+ requiredEvidence: ['Add an idempotency or duplicate-side-effect commitment to the accepted agent plan.'],
350
+ observedEvidence: idempotencyCommitment
351
+ ? [evidence('accepted-plan', 'Accepted plan states an idempotency or duplicate-side-effect strategy.')]
352
+ : [],
353
+ });
354
+ }
355
+ const migrationTriggered = /\b(migration|migrate|schema change|database migration|backfill)\b/i.test(combinedText) ||
356
+ input.agentPlan?.expectedFiles.some((filePath) => /(^|\/)(migrations?|schema)(\/|$)/i.test(filePath));
357
+ if (migrationTriggered) {
358
+ const rollbackCommitment = /\b(rollback|reversible|down migration|backfill safety|restore strategy)\b/i.test(acceptedPlanText);
359
+ drafts.push({
360
+ id: 'data-model:migration-rollback-plan',
361
+ category: 'data-model',
362
+ title: 'State the migration rollback strategy',
363
+ description: 'Schema and migration work needs an accepted-plan commitment for rollback or reversibility.',
364
+ severity: 'critical',
365
+ triggeredBy: ['intent or accepted plan references migration, schema change, or backfill'],
366
+ requiredEvidence: ['Add a rollback, reversible migration, or restore-strategy commitment to the accepted agent plan.'],
367
+ observedEvidence: rollbackCommitment
368
+ ? [evidence('accepted-plan', 'Accepted plan states a rollback or reversibility strategy.')]
369
+ : [],
370
+ });
371
+ }
372
+ const refactorTriggered = input.intentContract?.primaryAction === 'refactor' ||
373
+ /\b(refactor|restructure|cleanup)\b/i.test(input.goal);
374
+ if (refactorTriggered) {
375
+ const behaviorCommitment = /\b(preserve (?:existing )?behavio[u]?r|backward compat|no behavio[u]?r change|regression tests?)\b/i.test(acceptedPlanText);
376
+ drafts.push({
377
+ id: 'behavior:refactor-preservation-plan',
378
+ category: 'behavior',
379
+ title: 'State the behavior-preservation strategy',
380
+ description: 'Refactors should name how existing behavior remains stable before implementation expands.',
381
+ severity: 'warn',
382
+ triggeredBy: ['user intent declares a refactor or restructure'],
383
+ requiredEvidence: ['Add a behavior-preservation, compatibility, or regression-test commitment to the accepted agent plan.'],
384
+ observedEvidence: behaviorCommitment
385
+ ? [evidence('accepted-plan', 'Accepted plan states a behavior-preservation or regression strategy.')]
386
+ : [],
387
+ });
388
+ }
389
+ const approvedPaths = input.approvedPaths ?? [];
390
+ const ownershipTriggers = new Map();
391
+ for (const requiredPath of planDeclaredApprovalRequiredPaths(input)) {
392
+ ownershipTriggers.set(requiredPath, [`plan declares owned target: ${requiredPath}`]);
393
+ }
394
+ for (const requiredPath of approvalRequiredPaths(events)) {
395
+ const existing = ownershipTriggers.get(requiredPath) ?? [];
396
+ existing.push(`guarded write attempted: ${requiredPath}`);
397
+ ownershipTriggers.set(requiredPath, existing);
398
+ }
399
+ for (const [requiredPath, triggers] of ownershipTriggers) {
400
+ drafts.push(ownershipApprovalDraft(requiredPath, approvedPaths, triggers));
401
+ }
402
+ // V2: architecture-graph-derived structural obligations (auth/payments/
403
+ // public-api/migration/downstream-impact) for the modules currently in play.
404
+ if (!isDemoRehearsalMarkerIntent(combinedText)) {
405
+ drafts.push(...deriveGraphDrafts(input, events, approvedPaths, acceptedPlanText));
406
+ }
407
+ return finalize(drafts, input.previous ?? [], now, policy, input.waivers ?? []);
408
+ }
409
+ function summarizeArchitectureObligations(obligations = []) {
410
+ return {
411
+ total: obligations.length,
412
+ pending: obligations.filter((item) => item.status === 'pending').length,
413
+ satisfied: obligations.filter((item) => item.status === 'satisfied').length,
414
+ waived: obligations.filter((item) => item.status === 'waived').length,
415
+ criticalPending: obligations.filter((item) => item.status === 'pending' && item.severity === 'critical').length,
416
+ blockingPending: obligations.filter((item) => item.status === 'pending' && (item.effectiveMode ?? 'warn') === 'block').length,
417
+ };
418
+ }
419
+ /**
420
+ * Whether an obligation applies to a given edit path, independent of its status.
421
+ * - `ownership` + path-scoped graph obligations apply only when the edit lands
422
+ * in (or names) their module.
423
+ * - test-satisfiable graph obligations and retry-coverage do not nag the
424
+ * satisfying test edit itself.
425
+ * - global intent/plan obligations apply to every guarded edit.
426
+ */
427
+ function obligationScopeMatches(item, filePath) {
428
+ if (item.id === 'reliability:retry-path-coverage' && isTestPath(filePath))
429
+ return false;
430
+ if (item.category === 'ownership')
431
+ return item.requiredPath ? matchesPath(filePath, item.requiredPath) : false;
432
+ if (item.requiredPath) {
433
+ if ((0, architecture_graph_1.isModuleTestSatisfiable)(item.id) && isTestPath(filePath))
434
+ return false;
435
+ return matchesPath(filePath, item.requiredPath);
436
+ }
437
+ return true;
438
+ }
439
+ function evaluateArchitectureObligationFeedback(obligations = [], filePath) {
440
+ const pending = obligations.filter((item) => {
441
+ if (item.status !== 'pending')
442
+ return false;
443
+ if ((item.effectiveMode ?? 'warn') === 'off')
444
+ return false;
445
+ return obligationScopeMatches(item, filePath);
446
+ });
447
+ const blocking = pending.filter((item) => (item.effectiveMode ?? 'warn') === 'block');
448
+ return {
449
+ action: blocking.length > 0 ? 'block' : pending.length > 0 ? 'warn' : 'none',
450
+ filePath,
451
+ pending,
452
+ blocking,
453
+ reasons: pending.map((item) => `${item.title}: ${item.requiredEvidence[0]}`),
454
+ };
455
+ }
456
+ const SEVERITY_RANK = { critical: 0, warn: 1 };
457
+ function pickPrimary(obligations) {
458
+ if (obligations.length === 0)
459
+ return null;
460
+ return [...obligations].sort((a, b) => SEVERITY_RANK[a.severity] - SEVERITY_RANK[b.severity])[0];
461
+ }
462
+ /**
463
+ * Evaluate one edit against the architecture graph + live obligation ledger and
464
+ * return a single structured verdict:
465
+ * pass · warn · block · obligation_pending · obligation_waived
466
+ *
467
+ * Boundary blocks always win. Block-mode pending obligations also block. Open
468
+ * warn-mode obligations surface as `obligation_pending` (the edit is allowed but
469
+ * carries an open obligation). When the only applicable obligations are waived,
470
+ * the status is `obligation_waived`.
471
+ */
472
+ function evaluateArchitectureEdit(input) {
473
+ const filePath = input.filePath;
474
+ const boundaryVerdict = input.boundaryVerdict ?? 'ok';
475
+ const obligations = input.obligations ?? [];
476
+ const graph = input.graph ?? null;
477
+ const module = graph ? (0, architecture_graph_1.findModuleForPath)(graph, filePath) : null;
478
+ const surfaces = module?.surfaces ?? [];
479
+ const dependents = graph && module ? (0, architecture_graph_1.dependentsOf)(graph, module.id) : [];
480
+ const applicable = obligations.filter((item) => (item.effectiveMode ?? 'warn') !== 'off' && obligationScopeMatches(item, filePath));
481
+ const pending = applicable.filter((item) => item.status === 'pending');
482
+ const blocking = pending.filter((item) => (item.effectiveMode ?? 'warn') === 'block');
483
+ const waived = applicable.filter((item) => item.status === 'waived');
484
+ const satisfied = applicable.filter((item) => item.status === 'satisfied');
485
+ let status;
486
+ if (boundaryVerdict === 'block' || blocking.length > 0)
487
+ status = 'block';
488
+ else if (pending.length > 0)
489
+ status = 'obligation_pending';
490
+ else if (waived.length > 0)
491
+ status = 'obligation_waived';
492
+ else if (boundaryVerdict === 'warn')
493
+ status = 'warn';
494
+ else
495
+ status = 'pass';
496
+ const reasons = [];
497
+ const primary = pickPrimary(blocking.length > 0 ? blocking : pending.length > 0 ? pending : waived);
498
+ let message = '';
499
+ if (status === 'block') {
500
+ if (blocking.length > 0 && primary) {
501
+ message = `${primary.description} (architecture obligation enforced as block).`;
502
+ reasons.push(...blocking.map((item) => item.description));
503
+ }
504
+ else {
505
+ message = module
506
+ ? `Edit to ${filePath} is blocked by a governance boundary in module ${module.id}.`
507
+ : `Edit to ${filePath} is blocked by a governance boundary.`;
508
+ reasons.push('boundary policy block');
509
+ }
510
+ }
511
+ else if (status === 'obligation_pending' && primary) {
512
+ message = primary.description;
513
+ reasons.push(...pending.map((item) => `${item.title}: ${item.requiredEvidence[0] ?? ''}`.trim()));
514
+ }
515
+ else if (status === 'obligation_waived' && primary) {
516
+ const who = primary.waiver?.waivedBy || primary.waiver?.source || 'a human';
517
+ message = `${primary.description} A waiver is active (${who}); proceeding under accepted risk.`;
518
+ reasons.push(...waived.map((item) => `${item.title} waived`));
519
+ }
520
+ else if (status === 'warn') {
521
+ message = module
522
+ ? `Edit to ${filePath} in module ${module.id} is allowed with an advisory warning.`
523
+ : `Edit to ${filePath} is allowed with an advisory warning.`;
524
+ }
525
+ else {
526
+ message = '';
527
+ }
528
+ let options;
529
+ if (status === 'block') {
530
+ const ownershipDriven = blocking.some((item) => item.category === 'ownership' || item.category === 'payments' || item.category === 'security') ||
531
+ Boolean(module?.approvalRequired);
532
+ options = ownershipDriven ? ['approve', 'waive', 'narrow', 'replan'] : ['waive', 'narrow', 'replan'];
533
+ }
534
+ else if (status === 'obligation_pending') {
535
+ options = ['continue', 'approve', 'waive', 'replan'];
536
+ }
537
+ else {
538
+ options = ['continue'];
539
+ }
540
+ return {
541
+ status,
542
+ filePath,
543
+ module: module?.id ?? null,
544
+ surfaces,
545
+ dependents,
546
+ boundaryVerdict,
547
+ obligations: { blocking, pending, waived, satisfied },
548
+ reasons: reasons.filter(Boolean),
549
+ message,
550
+ options,
551
+ };
552
+ }
553
+ //# sourceMappingURL=architecture-obligations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture-obligations.js","sourceRoot":"","sources":["../src/architecture-obligations.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,15 @@
1
1
  export type PlanVerdict = 'PASS' | 'FAIL' | 'WARN';
2
+ export { buildRepoGovernanceProfile, checkFileBoundary, DEFAULT_PLAN_COHERENCE_MODE, ownersForPath, type RepoGovernanceProfile, type ProfileInput, type RuntimeGovernanceConfig, type PlanCoherenceMode, type SensitiveBoundary, type OwnershipBoundary, type BoundaryCheckInput, type BoundaryCheckResult, type BoundaryVerdict, type ReadinessStatus, } from './profile';
3
+ export { createSession, loadActiveSession, loadSession, appendEvent, approveSession, revokeSessionApproval, activeApprovalPaths, expireSessionApprovals, expireArchitectureObligationWaivers, waiveArchitectureObligation, refreshArchitectureObligations, evaluateIntentCoherence, evaluatePlanCoherencePolicy, attachAgentPlan, captureAgentPlan, amendAgentPlan, decideAgentPlanAmendment, classifyAgentPlanAmendment, evaluateSessionPlanCoherence, activeAgentPlanRevision, buildPlanTimeline, finishSession, replaySession, sessionsDir, sessionPath, type GovernanceSession, type SessionContract, type SessionEvent, type EventType, type ApprovalResult, type ApprovalGrant, type ApprovalOptions, type ApprovalRevocationOptions, type ApprovalRevocationResult, type ApprovalSource, type FinishSessionOptions, type UnresolvedApprovalBlock, type ArchitectureObligationWaiverOptions, type ArchitectureObligationWaiverResult, type AgentPlanAmendmentAction, type AgentPlanAmendmentActor, type AgentPlanAmendmentDecision, type AgentPlanAmendmentDecisionInput, type AgentPlanAmendmentDecisionResult, type AgentPlanAmendmentInput, type AgentPlanAmendmentProposal, type AgentPlanAmendmentProposalStatus, type AgentPlanAmendmentResult, type AgentPlanAmendmentRisk, type AgentPlanAmendmentRiskLevel, type AgentPlanCaptureResult, type AgentPlanRevision, type AgentPlanRevisionKind, type IntentCoherenceResult, type IntentCoherenceVerdict, type IntentConfidence, type IntentContract, type IntentObligation, type IntentPrimaryAction, type PlanCoherencePolicyAction, type PlanCoherencePolicyDecision, type PlanTimeline, type PlanTimelineEntry, type PlanTimelineEntryKind, } from './session';
4
+ export { AI_CHANGE_RECORD_SCHEMA_VERSION, AI_CHANGE_RECORD_TYPE, aiChangeRecordPath, buildAIChangeRecord, writeAIChangeRecord, type AIChangeRecord, type AIChangeRecordApprovalEntry, type AIChangeRecordPathTrajectory, type AIChangeRecordPlanTimelineEntry, type AIChangeRecordStructuralUnderstanding, } from './ai-change-record';
5
+ export { AGENT_INVOCATION_OBSERVABILITY_SCHEMA_VERSION, buildAgentInvocationSummary, type AgentInvocationCheckStatus, type AgentInvocationProtocolCheck, type AgentInvocationStatus, type AgentInvocationSummary, } from './agent-invocation-observability';
6
+ export { AGENT_GUARD_POSTURE_SCHEMA_VERSION, buildAgentGuardPostureSummary, type AgentGuardFileClassification, type AgentGuardPostureFile, type AgentGuardPostureStatus, type AgentGuardPostureSummary, } from './agent-guard-posture';
7
+ export { ARCHITECTURE_OBLIGATION_SCHEMA_VERSION, DEFAULT_ARCHITECTURE_OBLIGATION_POLICY, activeArchitectureObligationWaivers, deriveArchitectureObligations, effectiveArchitectureObligationMode, evaluateArchitectureObligationFeedback, planDeclaredApprovalRequiredPaths, evaluateArchitectureEdit, isArchitectureObligationWaiverActive, normalizeArchitectureObligationPolicy, summarizeArchitectureObligations, type ArchitectureObligation, type ArchitectureObligationCategory, type ArchitectureObligationEvidence, type ArchitectureObligationEvidenceKind, type ArchitectureObligationFeedback, type ArchitectureObligationIntent, type ArchitectureObligationPolicy, type ArchitectureObligationPolicyMode, type ArchitectureObligationSeverity, type ArchitectureObligationStatus, type ArchitectureObligationSummary, type ArchitectureObligationWaiver, type ArchitectureObligationWaiverEvidence, type ArchitectureObligationWaiverSource, type DeriveArchitectureObligationsInput, type RuntimeEditEvaluation, type RuntimeEditOption, type RuntimeEditStatus, } from './architecture-obligations';
8
+ export { ARCHITECTURE_GRAPH_SCHEMA_VERSION, buildArchitectureGraph, dependenciesOf, dependentsOf, deriveGraphObligationSeeds, extractImportSpecifiers, findModuleForPath, isModuleTestSatisfiable, moduleIdForPath, modulesInPlay, resolveImportSpecifier, type ArchitectureDependencyEdge, type ArchitectureGraphStats, type ArchitectureModule, type ArchitectureSurfaceKind, type BuildArchitectureGraphInput, type GraphObligationSeed, type ModuleImportRecord, type RepoArchitectureGraph, } from './architecture-graph';
2
9
  export { compileDeterministicConstraints, type DeterministicConstraintCompilation, type DeterministicConstraintCompilationInput, type DeterministicConstraintRule, type DeterministicConstraintSource, } from './constraints';
10
+ export { buildCoverageManifest, computeCoverageSetHash, computeDeltaHash, deriveCoverageEntries, normalizeDeltaEntries, readSelfAttestedAdmissionRecord, readSelfAttestedAdmissionRecordFromText, sortCoverageEntries, sortDeltaEntries, unionCoverageEntries, unionCoverageManifests, validateSelfAttestedRecordConsistency, type BuildCoverageManifestInput, type GovernanceClassificationInput, type GovernanceClassificationMap, type RawDeltaInput, } from './admission-provenance';
11
+ export { AGENT_PLAN_SCHEMA_VERSION, extractAgentPlan, extractExpectedTargetsFromText, parsePlanSteps, evaluatePlanCoherence, planImpliesSupportWork, isTestOrUtilityPath, sanitizeAgentPlan, sanitizePlanCoherence, type AgentPlan, type AgentPlanSource, type AgentPlanConfidence, type PlanCoherenceResult, type PlanCoherenceVerdict, type PlanCoherenceInput, type ExtractAgentPlanOptions, } from './agent-plan';
12
+ export { AGENT_RUNTIME_ADAPTER_SCHEMA_VERSION, AGENT_RUNTIME_DECISION_SCHEMA_VERSION, getAgentRuntimeAdapterCapability, listAgentRuntimeAdapterCapabilities, normalizeAgentRuntimeEvent, type AgentRuntimeAdapterCapability, type AgentRuntimeAdapterId, type AgentRuntimeDecision, type AgentRuntimeDecisionEnvelope, type AgentRuntimeEnforcementLevel, type AgentRuntimeEvent, type AgentRuntimeEventPayload, type AgentRuntimeEventType, } from './agent-runtime-adapter';
3
13
  import { type DeterministicConstraintRule } from './constraints';
4
14
  export interface PlanFileScopeItem {
5
15
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}