arkgate 4.6.6 → 4.7.0

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 (66) hide show
  1. package/CHANGELOG.md +139 -2
  2. package/README.md +22 -10
  3. package/SECURITY.md +1 -1
  4. package/bin/ark-check-runtime.mjs +21 -341
  5. package/bin/ark-mcp-runtime.mjs +71 -325
  6. package/bin/ark-shared.mjs +24 -158
  7. package/bin/lib/adapter-contract.mjs +17 -36
  8. package/bin/lib/analysis-engine.mjs +6 -6
  9. package/bin/lib/ark-run-doctor.mjs +144 -0
  10. package/bin/lib/ark-run-facts.mjs +472 -0
  11. package/bin/lib/ark-run-report.mjs +57 -0
  12. package/bin/lib/ark-run-sensors.mjs +309 -0
  13. package/bin/lib/check-args.mjs +173 -0
  14. package/bin/lib/check-config-detect.mjs +101 -0
  15. package/bin/lib/check-watch.mjs +80 -0
  16. package/bin/lib/config-contract.mjs +86 -11
  17. package/bin/lib/deep-module-coach.mjs +3 -0
  18. package/bin/lib/diagnostic-catalog.mjs +8 -0
  19. package/bin/lib/doctor-advisories.mjs +45 -8
  20. package/bin/lib/doctor-human.mjs +519 -0
  21. package/bin/lib/doctor-plan.mjs +62 -445
  22. package/bin/lib/extra-merge-teeth.mjs +187 -0
  23. package/bin/lib/github-enforcement.mjs +22 -9
  24. package/bin/lib/html-report-advisories.mjs +2 -0
  25. package/bin/lib/html-report-depth.mjs +22 -2
  26. package/bin/lib/html-report.mjs +40 -7
  27. package/bin/lib/mcp-hook-payload.mjs +328 -0
  28. package/bin/lib/package-manager.mjs +174 -0
  29. package/bin/lib/policy-delta-io.mjs +4 -0
  30. package/bin/lib/remediation.mjs +132 -0
  31. package/bin/lib/resolved-candidate-facts.mjs +67 -2
  32. package/bin/lib/rules-under-contract.mjs +37 -89
  33. package/bin/lib/snippet-analysis.mjs +43 -2
  34. package/bin/lib/status-command.mjs +28 -0
  35. package/bin/lib/status-manifest.mjs +23 -0
  36. package/bin/lib/team-parliament-io.mjs +4 -0
  37. package/dist/{configTypes-l6XiwiC1.d.ts → configTypes-CgJimx9o.d.ts} +17 -3
  38. package/dist/eslint/index.cjs +6 -2
  39. package/dist/eslint/index.d.ts +70 -2
  40. package/dist/eslint/index.js +6 -2
  41. package/dist/index.cjs +35 -35
  42. package/dist/index.d.ts +787 -272
  43. package/dist/index.js +35 -35
  44. package/docs/README.md +4 -3
  45. package/docs/agent-guide.md +21 -15
  46. package/docs/ai-gates.md +13 -0
  47. package/docs/configuration.md +24 -11
  48. package/docs/develop.md +12 -3
  49. package/docs/diagnostics.md +75 -0
  50. package/docs/enthusiast/README.md +4 -3
  51. package/docs/package-surface.md +17 -13
  52. package/docs/product-voice.md +6 -3
  53. package/docs/threat-model.md +1 -1
  54. package/docs/use.md +5 -4
  55. package/package.json +1 -1
  56. package/schemas/ark.config.schema.json +41 -2
  57. package/schemas/ark.resolved-candidate-facts.schema.json +1 -1
  58. package/schemas/ark.status-manifest.schema.json +47 -0
  59. package/server.json +2 -2
  60. package/templates/agent-skills/README.md +1 -1
  61. package/templates/agent-skills/ark-adopt/SKILL.md +23 -2
  62. package/templates/agent-skills/ark-place/SKILL.md +26 -2
  63. package/templates/agent-skills/ark-runtime/SKILL.md +66 -24
  64. package/templates/skills/ark-adopt.md +23 -2
  65. package/templates/skills/ark-place.md +26 -2
  66. package/templates/skills/ark-runtime.md +66 -24
package/dist/index.d.ts CHANGED
@@ -1,266 +1,4 @@
1
- import { a as ArkConfigRule, b as ArkConfigSchemaVersion, c as ArkConfigLoadResult, d as ArkConfigLayer, A as ArkConfig, e as ArkConfigIssue } from './configTypes-l6XiwiC1.js';
2
-
3
- /**
4
- * Canonical, pure contract for ark.config.json.
5
- *
6
- * Tooling adapters own filesystem I/O; this module owns JSON parsing, deterministic
7
- * migration, defaults, validation, diagnostics, and the published JSON Schema.
8
- * The standalone CLI artifact is generated into bin/lib/config-contract.mjs.
9
- */
10
-
11
- /** Current published ark.config.json schema version (ADR 0012: 1.1 adds optional arkRules). */
12
- declare const ARK_CONFIG_SCHEMA_VERSION: ArkConfigSchemaVersion;
13
- declare const ARK_CONFIG_SCHEMA: {
14
- readonly $schema: "https://json-schema.org/draft/2020-12/schema";
15
- readonly $id: "https://unpkg.com/arkgate@2/schemas/ark.config.schema.json";
16
- readonly title: "ArkGate architecture contract";
17
- readonly description: "Versioned contract consumed identically by ArkGate CLI, MCP, and ESLint surfaces.";
18
- readonly type: "object";
19
- readonly additionalProperties: false;
20
- readonly required: readonly ["$schema", "schemaVersion", "include", "layers", "rules"];
21
- readonly properties: {
22
- readonly $schema: {
23
- readonly type: "string";
24
- readonly minLength: 1;
25
- readonly default: "https://unpkg.com/arkgate@2/schemas/ark.config.schema.json";
26
- readonly description: "Editor-facing URL or local path for this JSON Schema.";
27
- };
28
- readonly schemaVersion: {
29
- readonly type: "string";
30
- readonly const: "1.1";
31
- readonly default: "1.1";
32
- };
33
- readonly name: {
34
- readonly type: "string";
35
- readonly minLength: 1;
36
- };
37
- readonly include: {
38
- readonly minItems: 1;
39
- readonly default: readonly ["src"];
40
- readonly type: "array";
41
- readonly items: {
42
- readonly type: "string";
43
- readonly minLength: 1;
44
- };
45
- readonly uniqueItems: true;
46
- };
47
- readonly exclude: {
48
- readonly default: readonly [];
49
- readonly type: "array";
50
- readonly items: {
51
- readonly type: "string";
52
- readonly minLength: 1;
53
- };
54
- readonly uniqueItems: true;
55
- };
56
- readonly excludeGenerated: {
57
- readonly type: "boolean";
58
- readonly default: true;
59
- };
60
- readonly frameworkOverlay: {
61
- readonly type: "string";
62
- readonly minLength: 1;
63
- };
64
- readonly layers: {
65
- readonly type: "array";
66
- readonly default: readonly [];
67
- readonly items: {
68
- readonly $ref: "#/$defs/layer";
69
- };
70
- };
71
- readonly rules: {
72
- readonly type: "array";
73
- readonly default: ArkConfigRule[];
74
- readonly items: {
75
- readonly $ref: "#/$defs/rule";
76
- };
77
- };
78
- readonly cyclePolicy: {
79
- readonly type: "string";
80
- readonly enum: readonly ["strict", "soft", "framework-soft", "off"];
81
- readonly default: "strict";
82
- };
83
- readonly dynamicImportAllowlist: {
84
- readonly default: readonly [];
85
- readonly type: "array";
86
- readonly items: {
87
- readonly type: "string";
88
- readonly minLength: 1;
89
- };
90
- readonly uniqueItems: true;
91
- };
92
- readonly safety: {
93
- readonly $ref: "#/$defs/safety";
94
- readonly default: {
95
- readonly maxTsSuppressions: 0;
96
- readonly maxAnyCasts: 0;
97
- readonly allowInMemory: false;
98
- readonly allowDisabledPeerIsolation: false;
99
- };
100
- };
101
- /** ADR 0012 — layer name → relative path to arkrules/<Layer>.json */
102
- readonly arkRules: {
103
- readonly type: "object";
104
- readonly additionalProperties: {
105
- readonly type: "string";
106
- readonly minLength: 1;
107
- };
108
- readonly default: {};
109
- };
110
- /** Team parliament — GitHub handles or emails who may loosen the law (not part of policy hash). */
111
- readonly stewards: {
112
- readonly default: readonly [];
113
- readonly type: "array";
114
- readonly items: {
115
- readonly type: "string";
116
- readonly minLength: 1;
117
- };
118
- readonly uniqueItems: true;
119
- };
120
- };
121
- readonly $defs: {
122
- readonly layer: {
123
- readonly type: "object";
124
- readonly additionalProperties: false;
125
- readonly required: readonly ["name", "patterns"];
126
- readonly properties: {
127
- readonly name: {
128
- readonly type: "string";
129
- readonly minLength: 1;
130
- };
131
- readonly patterns: {
132
- readonly minItems: 1;
133
- readonly type: "array";
134
- readonly items: {
135
- readonly type: "string";
136
- readonly minLength: 1;
137
- };
138
- readonly uniqueItems: true;
139
- };
140
- readonly exclude: {
141
- readonly type: "array";
142
- readonly items: {
143
- readonly type: "string";
144
- readonly minLength: 1;
145
- };
146
- readonly uniqueItems: true;
147
- };
148
- readonly intentPrefixes: {
149
- readonly type: "array";
150
- readonly items: {
151
- readonly type: "string";
152
- readonly minLength: 1;
153
- };
154
- readonly uniqueItems: true;
155
- };
156
- readonly description: {
157
- readonly type: "string";
158
- readonly minLength: 1;
159
- };
160
- readonly forbiddenGlobals: {
161
- readonly type: "array";
162
- readonly items: {
163
- readonly type: "string";
164
- readonly minLength: 1;
165
- };
166
- readonly uniqueItems: true;
167
- };
168
- readonly capabilities: {
169
- readonly type: "object";
170
- readonly additionalProperties: false;
171
- readonly properties: {
172
- readonly deny: {
173
- readonly type: "array";
174
- readonly uniqueItems: true;
175
- readonly items: {
176
- readonly type: "string";
177
- readonly enum: readonly ["network", "filesystem", "clock", "randomness", "environment", "process", "persistence"];
178
- };
179
- };
180
- };
181
- };
182
- readonly pure: {
183
- readonly type: "boolean";
184
- };
185
- readonly mayImportInfrastructure: {
186
- readonly type: "boolean";
187
- };
188
- readonly optional: {
189
- readonly type: "boolean";
190
- };
191
- readonly reserved: {
192
- readonly type: "boolean";
193
- };
194
- readonly allowEmpty: {
195
- readonly type: "boolean";
196
- };
197
- };
198
- };
199
- readonly rule: {
200
- readonly type: "object";
201
- readonly additionalProperties: false;
202
- readonly required: readonly ["from", "to", "allowed"];
203
- readonly properties: {
204
- readonly from: {
205
- readonly type: "string";
206
- readonly minLength: 1;
207
- };
208
- readonly to: {
209
- readonly type: "string";
210
- readonly minLength: 1;
211
- };
212
- readonly allowed: {
213
- readonly type: "boolean";
214
- };
215
- readonly message: {
216
- readonly type: "string";
217
- readonly minLength: 1;
218
- };
219
- readonly peerIsolation: {
220
- readonly type: "boolean";
221
- };
222
- readonly sliceFolders: {
223
- readonly minItems: 1;
224
- readonly type: "array";
225
- readonly items: {
226
- readonly type: "string";
227
- readonly minLength: 1;
228
- };
229
- readonly uniqueItems: true;
230
- };
231
- };
232
- };
233
- readonly safety: {
234
- readonly type: "object";
235
- readonly additionalProperties: false;
236
- readonly properties: {
237
- readonly maxTsSuppressions: {
238
- readonly type: "integer";
239
- readonly minimum: 0;
240
- readonly default: 0;
241
- };
242
- readonly maxAnyCasts: {
243
- readonly type: "integer";
244
- readonly minimum: 0;
245
- readonly default: 0;
246
- };
247
- readonly allowInMemory: {
248
- readonly type: "boolean";
249
- readonly default: false;
250
- };
251
- readonly allowDisabledPeerIsolation: {
252
- readonly type: "boolean";
253
- readonly default: false;
254
- };
255
- };
256
- };
257
- };
258
- };
259
- declare function loadArkConfigContract(input: unknown, source?: string): ArkConfigLoadResult;
260
- declare function parseArkConfigJson(json: string, source?: string): ArkConfigLoadResult;
261
-
262
- /** ArkGate library version — single source of truth. */
263
- declare const version = "4.6.6";
1
+ import { a as ArkConfigRule, b as ArkConfigSchemaVersion, c as ArkConfigLoadResult, d as ArkConfigLayer, A as ArkConfig, e as ArkConfigIssue, f as ArkConfigArkRun } from './configTypes-CgJimx9o.js';
264
2
 
265
3
  /** Versioned public result contract shared by every ArkGate enforcement adapter. */
266
4
  /**
@@ -658,16 +396,315 @@ declare const ARK_ANALYSIS_RESULT_SCHEMA: {
658
396
  readonly type: "string";
659
397
  readonly minLength: 1;
660
398
  };
661
- /** ACS06 — package-relative diagnostics anchor path. */
662
- readonly docsCodePath: {
399
+ /** ACS06 — package-relative diagnostics anchor path. */
400
+ readonly docsCodePath: {
401
+ readonly type: "string";
402
+ readonly minLength: 1;
403
+ };
404
+ };
405
+ };
406
+ };
407
+ };
408
+ };
409
+
410
+ /**
411
+ * Canonical, pure contract for ark.config.json.
412
+ *
413
+ * Tooling adapters own filesystem I/O; this module owns JSON parsing, deterministic
414
+ * migration, defaults, validation, diagnostics, and the published JSON Schema.
415
+ * The standalone CLI artifact is generated into bin/lib/config-contract.mjs.
416
+ */
417
+
418
+ /** Current published ark.config.json schema version (ADR 0020: 1.2 adds optional arkRun). */
419
+ declare const ARK_CONFIG_SCHEMA_VERSION: ArkConfigSchemaVersion;
420
+ declare const ARK_CONFIG_SCHEMA: {
421
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
422
+ readonly $id: "https://unpkg.com/arkgate@2/schemas/ark.config.schema.json";
423
+ readonly title: "ArkGate architecture contract";
424
+ readonly description: "Versioned contract consumed identically by ArkGate CLI, MCP, and ESLint surfaces.";
425
+ readonly type: "object";
426
+ readonly additionalProperties: false;
427
+ readonly required: readonly ["$schema", "schemaVersion", "include", "layers", "rules"];
428
+ readonly properties: {
429
+ readonly $schema: {
430
+ readonly type: "string";
431
+ readonly minLength: 1;
432
+ readonly default: "https://unpkg.com/arkgate@2/schemas/ark.config.schema.json";
433
+ readonly description: "Editor-facing URL or local path for this JSON Schema.";
434
+ };
435
+ readonly schemaVersion: {
436
+ readonly type: "string";
437
+ readonly const: "1.2";
438
+ readonly default: "1.2";
439
+ };
440
+ readonly name: {
441
+ readonly type: "string";
442
+ readonly minLength: 1;
443
+ };
444
+ readonly include: {
445
+ readonly minItems: 1;
446
+ readonly default: readonly ["src"];
447
+ readonly type: "array";
448
+ readonly items: {
449
+ readonly type: "string";
450
+ readonly minLength: 1;
451
+ };
452
+ readonly uniqueItems: true;
453
+ };
454
+ readonly exclude: {
455
+ readonly default: readonly [];
456
+ readonly type: "array";
457
+ readonly items: {
458
+ readonly type: "string";
459
+ readonly minLength: 1;
460
+ };
461
+ readonly uniqueItems: true;
462
+ };
463
+ readonly excludeGenerated: {
464
+ readonly type: "boolean";
465
+ readonly default: true;
466
+ };
467
+ readonly frameworkOverlay: {
468
+ readonly type: "string";
469
+ readonly minLength: 1;
470
+ };
471
+ readonly layers: {
472
+ readonly type: "array";
473
+ readonly default: readonly [];
474
+ readonly items: {
475
+ readonly $ref: "#/$defs/layer";
476
+ };
477
+ };
478
+ readonly rules: {
479
+ readonly type: "array";
480
+ readonly default: ArkConfigRule[];
481
+ readonly items: {
482
+ readonly $ref: "#/$defs/rule";
483
+ };
484
+ };
485
+ readonly cyclePolicy: {
486
+ readonly type: "string";
487
+ readonly enum: readonly ["strict", "soft", "framework-soft", "off"];
488
+ readonly default: "strict";
489
+ };
490
+ readonly dynamicImportAllowlist: {
491
+ readonly default: readonly [];
492
+ readonly type: "array";
493
+ readonly items: {
494
+ readonly type: "string";
495
+ readonly minLength: 1;
496
+ };
497
+ readonly uniqueItems: true;
498
+ };
499
+ readonly safety: {
500
+ readonly $ref: "#/$defs/safety";
501
+ readonly default: {
502
+ readonly maxTsSuppressions: 0;
503
+ readonly maxAnyCasts: 0;
504
+ readonly allowInMemory: false;
505
+ readonly allowDisabledPeerIsolation: false;
506
+ };
507
+ };
508
+ /** ADR 0012 — layer name → relative path to arkrules/<Layer>.json */
509
+ readonly arkRules: {
510
+ readonly type: "object";
511
+ readonly additionalProperties: {
512
+ readonly type: "string";
513
+ readonly minLength: 1;
514
+ };
515
+ readonly default: {};
516
+ };
517
+ /** ADR 0020 — optional ArkRun extra. Absence is silent; unknown keys fail closed. */
518
+ readonly arkRun: {
519
+ readonly $ref: "#/$defs/arkRun";
520
+ };
521
+ /** Team parliament — GitHub handles or emails who may loosen the law (not part of policy hash). */
522
+ readonly stewards: {
523
+ readonly default: readonly [];
524
+ readonly type: "array";
525
+ readonly items: {
526
+ readonly type: "string";
527
+ readonly minLength: 1;
528
+ };
529
+ readonly uniqueItems: true;
530
+ };
531
+ };
532
+ readonly $defs: {
533
+ readonly layer: {
534
+ readonly type: "object";
535
+ readonly additionalProperties: false;
536
+ readonly required: readonly ["name", "patterns"];
537
+ readonly properties: {
538
+ readonly name: {
539
+ readonly type: "string";
540
+ readonly minLength: 1;
541
+ };
542
+ readonly patterns: {
543
+ readonly minItems: 1;
544
+ readonly type: "array";
545
+ readonly items: {
546
+ readonly type: "string";
547
+ readonly minLength: 1;
548
+ };
549
+ readonly uniqueItems: true;
550
+ };
551
+ readonly exclude: {
552
+ readonly type: "array";
553
+ readonly items: {
554
+ readonly type: "string";
555
+ readonly minLength: 1;
556
+ };
557
+ readonly uniqueItems: true;
558
+ };
559
+ readonly intentPrefixes: {
560
+ readonly type: "array";
561
+ readonly items: {
562
+ readonly type: "string";
563
+ readonly minLength: 1;
564
+ };
565
+ readonly uniqueItems: true;
566
+ };
567
+ readonly description: {
568
+ readonly type: "string";
569
+ readonly minLength: 1;
570
+ };
571
+ readonly forbiddenGlobals: {
572
+ readonly type: "array";
573
+ readonly items: {
574
+ readonly type: "string";
575
+ readonly minLength: 1;
576
+ };
577
+ readonly uniqueItems: true;
578
+ };
579
+ readonly capabilities: {
580
+ readonly type: "object";
581
+ readonly additionalProperties: false;
582
+ readonly properties: {
583
+ readonly deny: {
584
+ readonly type: "array";
585
+ readonly uniqueItems: true;
586
+ readonly items: {
587
+ readonly type: "string";
588
+ readonly enum: readonly ["network", "filesystem", "clock", "randomness", "environment", "process", "persistence"];
589
+ };
590
+ };
591
+ };
592
+ };
593
+ readonly pure: {
594
+ readonly type: "boolean";
595
+ };
596
+ readonly mayImportInfrastructure: {
597
+ readonly type: "boolean";
598
+ };
599
+ readonly optional: {
600
+ readonly type: "boolean";
601
+ };
602
+ readonly reserved: {
603
+ readonly type: "boolean";
604
+ };
605
+ readonly allowEmpty: {
606
+ readonly type: "boolean";
607
+ };
608
+ };
609
+ };
610
+ readonly rule: {
611
+ readonly type: "object";
612
+ readonly additionalProperties: false;
613
+ readonly required: readonly ["from", "to", "allowed"];
614
+ readonly properties: {
615
+ readonly from: {
616
+ readonly type: "string";
617
+ readonly minLength: 1;
618
+ };
619
+ readonly to: {
620
+ readonly type: "string";
621
+ readonly minLength: 1;
622
+ };
623
+ readonly allowed: {
624
+ readonly type: "boolean";
625
+ };
626
+ readonly message: {
627
+ readonly type: "string";
628
+ readonly minLength: 1;
629
+ };
630
+ readonly peerIsolation: {
631
+ readonly type: "boolean";
632
+ };
633
+ readonly sliceFolders: {
634
+ readonly minItems: 1;
635
+ readonly type: "array";
636
+ readonly items: {
637
+ readonly type: "string";
638
+ readonly minLength: 1;
639
+ };
640
+ readonly uniqueItems: true;
641
+ };
642
+ };
643
+ };
644
+ readonly safety: {
645
+ readonly type: "object";
646
+ readonly additionalProperties: false;
647
+ readonly properties: {
648
+ readonly maxTsSuppressions: {
649
+ readonly type: "integer";
650
+ readonly minimum: 0;
651
+ readonly default: 0;
652
+ };
653
+ readonly maxAnyCasts: {
654
+ readonly type: "integer";
655
+ readonly minimum: 0;
656
+ readonly default: 0;
657
+ };
658
+ readonly allowInMemory: {
659
+ readonly type: "boolean";
660
+ readonly default: false;
661
+ };
662
+ readonly allowDisabledPeerIsolation: {
663
+ readonly type: "boolean";
664
+ readonly default: false;
665
+ };
666
+ };
667
+ };
668
+ readonly arkRun: {
669
+ readonly type: "object";
670
+ readonly additionalProperties: false;
671
+ readonly properties: {
672
+ readonly mode: {
673
+ readonly type: "string";
674
+ readonly enum: readonly ["advisory", "enforced"];
675
+ readonly default: "advisory";
676
+ };
677
+ readonly compositionRoots: {
678
+ readonly default: readonly [];
679
+ readonly type: "array";
680
+ readonly items: {
681
+ readonly type: "string";
682
+ readonly minLength: 1;
683
+ };
684
+ readonly uniqueItems: true;
685
+ };
686
+ readonly managedLayers: {
687
+ readonly default: readonly [];
688
+ readonly type: "array";
689
+ readonly items: {
663
690
  readonly type: "string";
664
691
  readonly minLength: 1;
665
692
  };
693
+ readonly uniqueItems: true;
694
+ };
695
+ readonly requireDeclarations: {
696
+ readonly type: "boolean";
697
+ readonly default: true;
666
698
  };
667
699
  };
668
700
  };
669
701
  };
670
702
  };
703
+ declare function loadArkConfigContract(input: unknown, source?: string): ArkConfigLoadResult;
704
+ declare function parseArkConfigJson(json: string, source?: string): ArkConfigLoadResult;
705
+
706
+ /** ArkGate library version — single source of truth. */
707
+ declare const version = "4.7.0";
671
708
 
672
709
  /**
673
710
  * Canonical, pure contract for ArkGate MCP project identity.
@@ -1163,8 +1200,8 @@ declare function stableSerialize(value: unknown): string;
1163
1200
  * Pure declarations + schema version identity. Create/load live in
1164
1201
  * resolvedCandidateFacts.ts; JSON Schema lives in resolvedCandidateFactsSchema.ts.
1165
1202
  */
1166
- /** 1.1 adds optional classShapes[] (ADR 0013). 1.0 payloads remain loadable. */
1167
- declare const RESOLVED_CANDIDATE_FACTS_SCHEMA_VERSION: "1.1";
1203
+ /** 1.1 adds optional classShapes[] (ADR 0013). 1.2 adds optional ArkRun facts (ADR 0022). 1.0/1.1 remain loadable. */
1204
+ declare const RESOLVED_CANDIDATE_FACTS_SCHEMA_VERSION: "1.2";
1168
1205
  type ResolvedFactsCompleteness = 'complete' | 'partial' | 'unavailable';
1169
1206
  type ResolvedDependencyKind = 'import' | 'export' | 'dynamic-import' | 'require';
1170
1207
  type ResolvedDependencyState = 'resolved-project' | 'resolved-external' | 'unresolved' | 'dynamic';
@@ -1183,6 +1220,39 @@ type ResolvedFileFact = {
1183
1220
  typeOnlyExportNames: string[];
1184
1221
  hasTopLevelSideEffects: boolean;
1185
1222
  };
1223
+ /** ADR 0022 kernel API call-site evidence. Sensors consume this in RN04. */
1224
+ type ResolvedArkRunKernelCallKind = 'factory' | 'publisher' | 'publish' | 'raise' | 'send' | 'subscribe' | 'register-handler' | 'resolve' | 'resolve-singleton';
1225
+ type ResolvedArkRunKernelCallFact = {
1226
+ file: string;
1227
+ line: number;
1228
+ kind: ResolvedArkRunKernelCallKind;
1229
+ callee: string;
1230
+ viaImport: boolean;
1231
+ receiver?: string;
1232
+ nameLiteral?: string;
1233
+ };
1234
+ /** `new` of a class admitted for kernel creation (classShapes name or kernel import). */
1235
+ type ResolvedArkRunManagedNewFact = {
1236
+ file: string;
1237
+ line: number;
1238
+ typeName: string;
1239
+ importedFrom?: string;
1240
+ };
1241
+ /** Governed file that matched an `arkRun.compositionRoots` glob. */
1242
+ type ResolvedArkRunCompositionRootHitFact = {
1243
+ file: string;
1244
+ matchedRoot: string;
1245
+ hasKernelFactory: boolean;
1246
+ };
1247
+ /** File-scoped interaction declaration lists (ADR 0023). Sensors consume this in RN04. */
1248
+ type ResolvedArkRunDeclarationFact = {
1249
+ file: string;
1250
+ line: number;
1251
+ uses: string[];
1252
+ reactsTo: string[];
1253
+ raises: string[];
1254
+ sends: string[];
1255
+ };
1186
1256
  /** ADR 0013 class-shape evidence for ArkRules structure sensors. */
1187
1257
  type ResolvedClassShapeFact = {
1188
1258
  file: string;
@@ -1247,7 +1317,7 @@ type ResolvedSafetyFact = {
1247
1317
  symbol?: string;
1248
1318
  };
1249
1319
  type ResolvedCandidateFactsInput = {
1250
- schemaVersion: '1.0' | typeof RESOLVED_CANDIDATE_FACTS_SCHEMA_VERSION;
1320
+ schemaVersion: '1.0' | '1.1' | typeof RESOLVED_CANDIDATE_FACTS_SCHEMA_VERSION;
1251
1321
  completeness: ResolvedFactsCompleteness;
1252
1322
  completenessReasons: readonly ResolvedFactsReason[];
1253
1323
  resolverIdentity: string;
@@ -1265,8 +1335,13 @@ type ResolvedCandidateFactsInput = {
1265
1335
  safetyUses: readonly ResolvedSafetyFact[];
1266
1336
  /** ADR 0013 — optional on 1.0; default [] on load. */
1267
1337
  classShapes?: readonly ResolvedClassShapeFact[];
1338
+ /** ADR 0022 / RN03 — optional on 1.0/1.1; default [] on load. */
1339
+ arkRunKernelCalls?: readonly ResolvedArkRunKernelCallFact[];
1340
+ arkRunManagedNews?: readonly ResolvedArkRunManagedNewFact[];
1341
+ arkRunCompositionRootHits?: readonly ResolvedArkRunCompositionRootHitFact[];
1342
+ arkRunDeclarations?: readonly ResolvedArkRunDeclarationFact[];
1268
1343
  };
1269
- type ResolvedCandidateFacts = Omit<ResolvedCandidateFactsInput, 'candidateTreeHash' | 'classShapes'> & {
1344
+ type ResolvedCandidateFacts = Omit<ResolvedCandidateFactsInput, 'candidateTreeHash' | 'classShapes' | 'arkRunKernelCalls' | 'arkRunManagedNews' | 'arkRunCompositionRootHits' | 'arkRunDeclarations'> & {
1270
1345
  schemaVersion: typeof RESOLVED_CANDIDATE_FACTS_SCHEMA_VERSION;
1271
1346
  completenessReasons: ResolvedFactsReason[];
1272
1347
  candidateTreeHash: string;
@@ -1278,6 +1353,10 @@ type ResolvedCandidateFacts = Omit<ResolvedCandidateFactsInput, 'candidateTreeHa
1278
1353
  intentReferences: ResolvedIntentReferenceFact[];
1279
1354
  safetyUses: ResolvedSafetyFact[];
1280
1355
  classShapes: ResolvedClassShapeFact[];
1356
+ arkRunKernelCalls: ResolvedArkRunKernelCallFact[];
1357
+ arkRunManagedNews: ResolvedArkRunManagedNewFact[];
1358
+ arkRunCompositionRootHits: ResolvedArkRunCompositionRootHitFact[];
1359
+ arkRunDeclarations: ResolvedArkRunDeclarationFact[];
1281
1360
  factsHash: string;
1282
1361
  };
1283
1362
 
@@ -1302,7 +1381,7 @@ declare const RESOLVED_CANDIDATE_FACTS_SCHEMA: {
1302
1381
  readonly required: readonly ["schemaVersion", "completeness", "completenessReasons", "resolverIdentity", "compilerIdentity", "compilerOptionsHash", "tsconfigHash", "candidateTreeHash", "evidenceRequirementsHash", "files", "dependencies", "capabilityUses", "ambientUses", "publishCalls", "intentReferences", "safetyUses", "factsHash"];
1303
1382
  readonly properties: {
1304
1383
  readonly schemaVersion: {
1305
- readonly enum: readonly ["1.0", "1.1"];
1384
+ readonly enum: readonly ["1.0", "1.1", "1.2"];
1306
1385
  };
1307
1386
  readonly completeness: {
1308
1387
  readonly enum: readonly ["complete", "partial", "unavailable"];
@@ -1721,6 +1800,139 @@ declare const RESOLVED_CANDIDATE_FACTS_SCHEMA: {
1721
1800
  };
1722
1801
  };
1723
1802
  };
1803
+ readonly arkRunKernelCalls: {
1804
+ readonly type: "array";
1805
+ readonly items: {
1806
+ readonly type: "object";
1807
+ readonly additionalProperties: false;
1808
+ readonly required: readonly ["file", "line", "kind", "callee", "viaImport"];
1809
+ readonly properties: {
1810
+ readonly file: {
1811
+ readonly type: "string";
1812
+ readonly minLength: 1;
1813
+ readonly pattern: "^(?!/)(?![A-Za-z]:/)(?!.*\\\\)(?!.*//)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?!.*[\\u0000-\\u001f\\u007f])(?!.*\\/$).+$";
1814
+ };
1815
+ readonly line: {
1816
+ readonly type: "integer";
1817
+ readonly minimum: 1;
1818
+ };
1819
+ readonly kind: {
1820
+ readonly enum: readonly ["factory", "publisher", "publish", "raise", "send", "subscribe", "register-handler", "resolve", "resolve-singleton"];
1821
+ };
1822
+ readonly callee: {
1823
+ readonly type: "string";
1824
+ readonly minLength: 1;
1825
+ };
1826
+ readonly viaImport: {
1827
+ readonly type: "boolean";
1828
+ };
1829
+ readonly receiver: {
1830
+ readonly type: "string";
1831
+ readonly minLength: 1;
1832
+ };
1833
+ readonly nameLiteral: {
1834
+ readonly type: "string";
1835
+ readonly minLength: 1;
1836
+ };
1837
+ };
1838
+ };
1839
+ };
1840
+ readonly arkRunManagedNews: {
1841
+ readonly type: "array";
1842
+ readonly items: {
1843
+ readonly type: "object";
1844
+ readonly additionalProperties: false;
1845
+ readonly required: readonly ["file", "line", "typeName"];
1846
+ readonly properties: {
1847
+ readonly file: {
1848
+ readonly type: "string";
1849
+ readonly minLength: 1;
1850
+ readonly pattern: "^(?!/)(?![A-Za-z]:/)(?!.*\\\\)(?!.*//)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?!.*[\\u0000-\\u001f\\u007f])(?!.*\\/$).+$";
1851
+ };
1852
+ readonly line: {
1853
+ readonly type: "integer";
1854
+ readonly minimum: 1;
1855
+ };
1856
+ readonly typeName: {
1857
+ readonly type: "string";
1858
+ readonly minLength: 1;
1859
+ };
1860
+ readonly importedFrom: {
1861
+ readonly type: "string";
1862
+ readonly minLength: 1;
1863
+ };
1864
+ };
1865
+ };
1866
+ };
1867
+ readonly arkRunCompositionRootHits: {
1868
+ readonly type: "array";
1869
+ readonly items: {
1870
+ readonly type: "object";
1871
+ readonly additionalProperties: false;
1872
+ readonly required: readonly ["file", "matchedRoot", "hasKernelFactory"];
1873
+ readonly properties: {
1874
+ readonly file: {
1875
+ readonly type: "string";
1876
+ readonly minLength: 1;
1877
+ readonly pattern: "^(?!/)(?![A-Za-z]:/)(?!.*\\\\)(?!.*//)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?!.*[\\u0000-\\u001f\\u007f])(?!.*\\/$).+$";
1878
+ };
1879
+ readonly matchedRoot: {
1880
+ readonly type: "string";
1881
+ readonly minLength: 1;
1882
+ };
1883
+ readonly hasKernelFactory: {
1884
+ readonly type: "boolean";
1885
+ };
1886
+ };
1887
+ };
1888
+ };
1889
+ readonly arkRunDeclarations: {
1890
+ readonly type: "array";
1891
+ readonly items: {
1892
+ readonly type: "object";
1893
+ readonly additionalProperties: false;
1894
+ readonly required: readonly ["file", "line", "uses", "reactsTo", "raises", "sends"];
1895
+ readonly properties: {
1896
+ readonly file: {
1897
+ readonly type: "string";
1898
+ readonly minLength: 1;
1899
+ readonly pattern: "^(?!/)(?![A-Za-z]:/)(?!.*\\\\)(?!.*//)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?!.*[\\u0000-\\u001f\\u007f])(?!.*\\/$).+$";
1900
+ };
1901
+ readonly line: {
1902
+ readonly type: "integer";
1903
+ readonly minimum: 1;
1904
+ };
1905
+ readonly uses: {
1906
+ readonly type: "array";
1907
+ readonly items: {
1908
+ readonly type: "string";
1909
+ readonly minLength: 1;
1910
+ };
1911
+ };
1912
+ readonly reactsTo: {
1913
+ readonly type: "array";
1914
+ readonly items: {
1915
+ readonly type: "string";
1916
+ readonly minLength: 1;
1917
+ };
1918
+ };
1919
+ readonly raises: {
1920
+ readonly type: "array";
1921
+ readonly items: {
1922
+ readonly type: "string";
1923
+ readonly minLength: 1;
1924
+ };
1925
+ };
1926
+ readonly sends: {
1927
+ readonly type: "array";
1928
+ readonly items: {
1929
+ readonly type: "string";
1930
+ readonly minLength: 1;
1931
+ };
1932
+ };
1933
+ };
1934
+ };
1935
+ };
1724
1936
  readonly factsHash: {
1725
1937
  readonly type: "string";
1726
1938
  readonly minLength: 1;
@@ -2659,6 +2871,270 @@ declare function resolveEffectiveContract(input: ResolveEffectiveContractInput,
2659
2871
  */
2660
2872
  declare function effectiveContractPolicyPayload(contract: EffectiveContract): unknown;
2661
2873
 
2874
+ /**
2875
+ * ArkRun resolver-fact extraction (ADR 0022 / RN03).
2876
+ *
2877
+ * Syntax evidence only — no verdicts, scores, or sensors. Tooling may replace
2878
+ * this lexical pass with TypeScript-API facts of the same shape.
2879
+ */
2880
+
2881
+ /** Closed factory names from ADR 0022 `arkrun-missing-root`. */
2882
+ declare const ARKRUN_KERNEL_FACTORY_CALLEES: readonly ["createArkKernel", "createStrictArkKernel", "createArkKernelFromConfig", "createStrictArkKernelFromConfig"];
2883
+ /** Closed interaction callees from ADR 0022 undeclared-emit/handle/depend. */
2884
+ declare const ARKRUN_KERNEL_INTERACTION_CALLEES: readonly ["publisher", "publish", "raise", "raiseAsync", "send", "sendTo", "subscribe", "registerHandler", "resolve", "resolveSingleton"];
2885
+ declare function isArkRunKernelModuleSpecifier(specifier: string): boolean;
2886
+ /**
2887
+ * Closed broker / queue / emitter specifiers for `arkrun-transport-bypass`
2888
+ * (ADR 0022 D4). Exact entry or package-root subpath only — never substring.
2889
+ */
2890
+ declare const ARKRUN_TRANSPORT_BYPASS_SPECIFIERS: readonly ["events", "node:events", "eventemitter2", "eventemitter3", "emittery", "kafkajs", "kafka-node", "amqplib", "amqp", "bull", "bullmq", "mqtt", "nats", "@aws-sdk/client-sqs", "@aws-sdk/client-sns", "@aws-sdk/client-eventbridge", "@google-cloud/pubsub", "@azure/service-bus"];
2891
+ declare function isArkRunTransportBypassSpecifier(specifier: string): boolean;
2892
+ declare function arkRunKernelCallKind(callee: string): ResolvedArkRunKernelCallKind | undefined;
2893
+ /**
2894
+ * Lexical import/export-from and require/import() specifier edges for the
2895
+ * editor / snippet envelope. Resolution stays unresolved-external — sensors
2896
+ * only need the specifier and from-file.
2897
+ */
2898
+ declare function extractArkRunValueImportDependenciesFromSource(file: string, content: string): ResolvedDependencyFact[];
2899
+ /** PascalCase named bindings from value import clauses (snippet admitted constructors). */
2900
+ declare function extractArkRunImportedConstructorNamesFromSource(content: string): string[];
2901
+ declare function extractArkRunKernelCallsFromSource(file: string, content: string): ResolvedArkRunKernelCallFact[];
2902
+ declare function extractArkRunManagedNewsFromSource(file: string, content: string, admittedTypeNames: ReadonlySet<string>): ResolvedArkRunManagedNewFact[];
2903
+ /** File-scoped `uses` / `reactsTo` / `raises` / `sends` string-literal lists (ADR 0023). */
2904
+ declare function extractArkRunDeclarationsFromSource(file: string, content: string): ResolvedArkRunDeclarationFact[];
2905
+
2906
+ /**
2907
+ * Extra-plane merge teeth (ArkRules + ArkRun). Same classification floor.
2908
+ *
2909
+ * Unknown classification (contract-only callers) allows teeth. Known empty or
2910
+ * under-floor trees demote extra-plane findings so they never merge-block.
2911
+ */
2912
+ declare const EXTRA_MERGE_TEETH_GOVERNED_FLOOR = 50;
2913
+ type ExtraMergeTeethClassification = {
2914
+ governedPercent?: number | null;
2915
+ populatedLayerCount?: number | null;
2916
+ };
2917
+ type ExtraMergeTeethClassificationInput = ExtraMergeTeethClassification & {
2918
+ classifiedFiles?: number | null;
2919
+ };
2920
+ declare function normalizeExtraMergeTeethClassification(classification?: ExtraMergeTeethClassificationInput | null): ExtraMergeTeethClassification;
2921
+ declare function extraMergeTeethAllowed(classification?: ExtraMergeTeethClassificationInput | null): boolean;
2922
+ declare function classifyResolvedLayerCoverage(files: readonly {
2923
+ layer?: string | null | undefined;
2924
+ }[]): ExtraMergeTeethClassification;
2925
+ declare function isArkRunRuleId(ruleId: unknown): boolean;
2926
+ declare function isExtraPlaneFinding(violation: {
2927
+ ruleId?: unknown;
2928
+ arkruleId?: unknown;
2929
+ }): boolean;
2930
+ /**
2931
+ * Under the classification floor, demote enforced extra-plane findings in place
2932
+ * so merge/write/CI match (layer graph only). Unknown classification is a no-op.
2933
+ */
2934
+ declare function demoteExtraPlaneTeethUnderClassificationFloor<T extends {
2935
+ ruleId?: unknown;
2936
+ arkruleId?: unknown;
2937
+ failsStrict?: boolean;
2938
+ severity?: string;
2939
+ }>(violations: T[], classification?: ExtraMergeTeethClassification): T[];
2940
+ /** Stamp for extra-plane honesty: never one architecture score. */
2941
+ declare const MERGE_PLANES_DUAL_STAMP = "Structure = heuristics; invariants = catalog+coverage evidence (not business runtime); ArkRun = kernel usage + declarations (not a score). Extra planes never merge into one architecture score. Advisory ArkRules \u2260 merge teeth. Advisory ArkRun \u2260 merge teeth.";
2942
+ type MergePlanesArkRulesInput = {
2943
+ active: boolean;
2944
+ structureEnforced?: number;
2945
+ structureTotal?: number;
2946
+ structureAdvisory?: number;
2947
+ invariantEnforced?: number;
2948
+ invariantTotal?: number;
2949
+ invariantAdvisory?: number;
2950
+ covered?: number;
2951
+ uncovered?: number;
2952
+ };
2953
+ type MergePlanesArkRunInput = {
2954
+ present: boolean;
2955
+ mode?: 'advisory' | 'enforced' | null;
2956
+ residualCount?: number;
2957
+ };
2958
+ type MergePlanesHonesty = {
2959
+ layers: {
2960
+ role: 'inter-layer-edges';
2961
+ alwaysOnGate: true;
2962
+ note: string;
2963
+ };
2964
+ structureSensors: {
2965
+ role: 'intra-layer-heuristics';
2966
+ total: number;
2967
+ enforced: number;
2968
+ advisory: number;
2969
+ note: string;
2970
+ };
2971
+ invariants: {
2972
+ role: 'catalog-plus-coverage';
2973
+ total: number;
2974
+ enforced: number;
2975
+ advisory: number;
2976
+ covered: number;
2977
+ uncovered: number;
2978
+ note: string;
2979
+ };
2980
+ arkRun: {
2981
+ role: 'kernel-usage-and-declarations';
2982
+ present: boolean;
2983
+ mode: 'advisory' | 'enforced' | null;
2984
+ residualCount: number;
2985
+ extraMergeTeeth: boolean;
2986
+ note: string;
2987
+ };
2988
+ extraMergeTeeth: boolean;
2989
+ dualPlaneStamp: string;
2990
+ failMergeWhen: string;
2991
+ classificationGate?: {
2992
+ governedPercent: number | null;
2993
+ populatedLayerCount: number | null;
2994
+ floorPercent: number;
2995
+ allowsTeeth: boolean;
2996
+ };
2997
+ };
2998
+ /**
2999
+ * Which extra planes can fail merge. Counts and stamps only — never a score.
3000
+ */
3001
+ declare function composeMergePlanesHonesty(input?: {
3002
+ classification?: ExtraMergeTeethClassificationInput | null;
3003
+ arkRules?: MergePlanesArkRulesInput | null;
3004
+ arkRun?: MergePlanesArkRunInput | null;
3005
+ }): MergePlanesHonesty;
3006
+
3007
+ /**
3008
+ * Doctor / status / report ArkRun section (RN08). Always notAScore.
3009
+ * Residual is a unique ARKRUN finding-id count — never a score or LLM verdict.
3010
+ */
3011
+
3012
+ declare const ARK_RUN_DOCTOR_SCHEMA_VERSION: "1.0";
3013
+ type ArkRunDoctorMode = 'advisory' | 'enforced';
3014
+ type ArkRunDoctorResidual = {
3015
+ count: number;
3016
+ ruleIds: string[];
3017
+ };
3018
+ type ArkRunDoctorSection = {
3019
+ schemaVersion: typeof ARK_RUN_DOCTOR_SCHEMA_VERSION;
3020
+ notAScore: true;
3021
+ active: boolean;
3022
+ mode: ArkRunDoctorMode | null;
3023
+ compositionRoots: number;
3024
+ managedLayers: number;
3025
+ requireDeclarations: boolean | null;
3026
+ residual: ArkRunDoctorResidual;
3027
+ extraMergeTeeth: boolean;
3028
+ failMergeWhen: string;
3029
+ note: string;
3030
+ mergePlanes: MergePlanesHonesty;
3031
+ };
3032
+ type ArkRunStatusSlice = {
3033
+ notAScore: true;
3034
+ present: boolean;
3035
+ mode: ArkRunDoctorMode | null;
3036
+ extraMergeTeeth: boolean;
3037
+ residual: number | null;
3038
+ };
3039
+ type ArkRunDoctorConfig = {
3040
+ mode?: string;
3041
+ compositionRoots?: readonly string[];
3042
+ managedLayers?: readonly string[];
3043
+ requireDeclarations?: boolean;
3044
+ };
3045
+ /**
3046
+ * Doctor / HTML ArkRun advisory. Always emitted; absence is an honest silent row.
3047
+ */
3048
+ declare function summarizeArkRunSection(input?: {
3049
+ arkRun?: ArkRunDoctorConfig | null;
3050
+ findings?: readonly {
3051
+ ruleId?: unknown;
3052
+ }[] | null;
3053
+ classification?: ExtraMergeTeethClassificationInput | null;
3054
+ arkRules?: {
3055
+ active?: boolean;
3056
+ structureEnforced?: number;
3057
+ structureTotal?: number;
3058
+ structureAdvisory?: number;
3059
+ invariantEnforced?: number;
3060
+ invariantTotal?: number;
3061
+ invariantAdvisory?: number;
3062
+ covered?: number;
3063
+ uncovered?: number;
3064
+ } | null;
3065
+ }): ArkRunDoctorSection;
3066
+ /** Thin status slice — counts only; residual null means unknown, not green. */
3067
+ declare function projectStatusArkRun(input?: {
3068
+ present?: boolean;
3069
+ mode?: string | null;
3070
+ extraMergeTeeth?: boolean;
3071
+ residual?: number | null;
3072
+ }): ArkRunStatusSlice;
3073
+ declare function formatArkRunDoctorLines(section: ArkRunDoctorSection): string[];
3074
+
3075
+ declare const ARKRUN_TIER1_SENSOR_IDS: readonly ["arkrun-missing-root", "arkrun-kernel-in-domain", "arkrun-direct-new", "arkrun-undeclared-emit", "arkrun-undeclared-handle", "arkrun-undeclared-depend", "arkrun-transport-bypass"];
3076
+ type ArkRunTier1SensorId = (typeof ARKRUN_TIER1_SENSOR_IDS)[number];
3077
+ declare const ARKRUN_RULE_IDS: {
3078
+ readonly 'arkrun-missing-root': "ARKRUN_MISSING_ROOT";
3079
+ readonly 'arkrun-kernel-in-domain': "ARKRUN_KERNEL_IN_DOMAIN";
3080
+ readonly 'arkrun-direct-new': "ARKRUN_DIRECT_NEW";
3081
+ readonly 'arkrun-undeclared-emit': "ARKRUN_UNDECLARED_EMIT";
3082
+ readonly 'arkrun-undeclared-handle': "ARKRUN_UNDECLARED_HANDLE";
3083
+ readonly 'arkrun-undeclared-depend': "ARKRUN_UNDECLARED_DEPEND";
3084
+ readonly 'arkrun-transport-bypass': "ARKRUN_TRANSPORT_BYPASS";
3085
+ };
3086
+ type ArkRunRuleId = (typeof ARKRUN_RULE_IDS)[ArkRunTier1SensorId];
3087
+ declare const ARKRUN_INTERACTION_NAME_INCOMPLETE = "ARKRUN_INTERACTION_NAME_INCOMPLETE";
3088
+ type ArkRunSensorFinding = {
3089
+ ruleId: ArkRunRuleId;
3090
+ sensor: ArkRunTier1SensorId;
3091
+ message: string;
3092
+ file: string;
3093
+ line: number;
3094
+ fromLayer?: string;
3095
+ target?: string;
3096
+ severity: 'error' | 'warning';
3097
+ failsStrict: boolean;
3098
+ nextAction: string;
3099
+ };
3100
+ type EvaluateArkRunSensorsInput = {
3101
+ arkRun: ArkConfigArkRun | undefined;
3102
+ layers: readonly ArkConfigLayer[];
3103
+ kernelCalls: readonly ResolvedArkRunKernelCallFact[];
3104
+ managedNews: readonly ResolvedArkRunManagedNewFact[];
3105
+ compositionRootHits: readonly ResolvedArkRunCompositionRootHitFact[];
3106
+ declarations: readonly ResolvedArkRunDeclarationFact[];
3107
+ dependencies: readonly ResolvedDependencyFact[];
3108
+ layerForFile: (path: string) => string | null | undefined;
3109
+ /** Omit for contract-only callers (teeth allowed). Kernel/CLI pass tree coverage. */
3110
+ classification?: ExtraMergeTeethClassification;
3111
+ };
3112
+ type EvaluateArkRunSensorsResult = {
3113
+ findings: ArkRunSensorFinding[];
3114
+ completenessReasons: ResolvedFactsReason[];
3115
+ };
3116
+ /**
3117
+ * Evaluate closed tier-1 ArkRun sensors. Empty extra → no findings (silent).
3118
+ */
3119
+ declare function evaluateArkRunSensors(input: EvaluateArkRunSensorsInput): EvaluateArkRunSensorsResult;
3120
+ /**
3121
+ * Same sensors as `evaluateArkRunSensors`, filtered to the ESLint import/`new` envelope.
3122
+ * Does not emit missing-root or undeclared-* (those need project-wide / declaration facts).
3123
+ */
3124
+ declare function evaluateArkRunEditorSensors(input: EvaluateArkRunSensorsInput): EvaluateArkRunSensorsResult;
3125
+ /**
3126
+ * Import / `new` envelope from one proposed source (hook Write/Edit, snippet MCP).
3127
+ * Missing-root and undeclared-* stay project-wide CLI/MCP/preflight.
3128
+ */
3129
+ declare function evaluateArkRunEditorSensorsFromSource(input: {
3130
+ arkRun: ArkConfigArkRun | undefined;
3131
+ layers: readonly ArkConfigLayer[];
3132
+ file: string;
3133
+ source: string;
3134
+ layerForFile: EvaluateArkRunSensorsInput['layerForFile'];
3135
+ classification?: ExtraMergeTeethClassification;
3136
+ }): EvaluateArkRunSensorsResult;
3137
+
2662
3138
  /**
2663
3139
  * Deterministic brownfield rules inventory (AR13).
2664
3140
  *
@@ -2838,7 +3314,7 @@ type ArkDesignDeltaResult = {
2838
3314
  declare const DIAGNOSTIC_DOCS_RELATIVE_PATH: "docs/diagnostics.md";
2839
3315
  /** Schema id for serializing the catalog snapshot (agents / install projection). */
2840
3316
  declare const DIAGNOSTIC_CATALOG_SCHEMA_VERSION: "1.0";
2841
- type DiagnosticCategory = 'layer' | 'capability' | 'publish' | 'safety' | 'arkrules' | 'preflight' | 'analysis' | 'snippet-policy' | 'config' | 'adapter' | 'meta';
3317
+ type DiagnosticCategory = 'layer' | 'capability' | 'publish' | 'safety' | 'arkrules' | 'arkrun' | 'preflight' | 'analysis' | 'snippet-policy' | 'config' | 'adapter' | 'meta';
2842
3318
  type DiagnosticCatalogEntry = {
2843
3319
  /** Stable public violation / diagnostic id. */
2844
3320
  ruleId: string;
@@ -3010,6 +3486,11 @@ type StatusManifest = {
3010
3486
  improvementCompass?: StatusImprovementCompassSlice;
3011
3487
  /** Optional checkout-vs-base honesty (TW). Never a gate input. */
3012
3488
  vsBase?: StatusVsBaseSlice;
3489
+ /**
3490
+ * ArkRun extra residual (RN08). Always notAScore; never a gate input.
3491
+ * residual is a finding-id count (null = unknown, not green).
3492
+ */
3493
+ arkRun?: ArkRunStatusSlice;
3013
3494
  };
3014
3495
  type StatusVsBaseSlice = {
3015
3496
  baseRef: string;
@@ -3077,6 +3558,8 @@ type StatusManifestFacts = {
3077
3558
  */
3078
3559
  improvementCompass?: StatusImprovementCompassSlice | null;
3079
3560
  vsBase?: StatusVsBaseSlice | null;
3561
+ /** Thin ArkRun extra facts (notAScore). residual null = unknown, not green. */
3562
+ arkRun?: ArkRunStatusSlice | null;
3080
3563
  };
3081
3564
  /**
3082
3565
  * Evaluate project binding for status without filesystem.
@@ -3387,6 +3870,38 @@ declare const ARK_STATUS_MANIFEST_SCHEMA: {
3387
3870
  };
3388
3871
  };
3389
3872
  };
3873
+ readonly arkRun: {
3874
+ readonly type: "object";
3875
+ readonly description: "ArkRun extra residual (notAScore). present/mode from config; residual is a finding-id count (null = unknown, not green). extraMergeTeeth is honesty, never a score.";
3876
+ readonly additionalProperties: false;
3877
+ readonly required: readonly ["notAScore", "present", "mode", "extraMergeTeeth", "residual"];
3878
+ readonly properties: {
3879
+ readonly notAScore: {
3880
+ readonly const: true;
3881
+ };
3882
+ readonly present: {
3883
+ readonly type: "boolean";
3884
+ };
3885
+ readonly mode: {
3886
+ readonly anyOf: readonly [{
3887
+ readonly enum: readonly ["advisory", "enforced"];
3888
+ }, {
3889
+ readonly type: "null";
3890
+ }];
3891
+ };
3892
+ readonly extraMergeTeeth: {
3893
+ readonly type: "boolean";
3894
+ };
3895
+ readonly residual: {
3896
+ readonly anyOf: readonly [{
3897
+ readonly type: "integer";
3898
+ readonly minimum: 0;
3899
+ }, {
3900
+ readonly type: "null";
3901
+ }];
3902
+ };
3903
+ };
3904
+ };
3390
3905
  };
3391
3906
  };
3392
3907
 
@@ -3798,4 +4313,4 @@ declare function agentSkillPackageFileRelativePath(skillName: string): string;
3798
4313
  */
3799
4314
  declare function flatSkillTemplateFileRelativePath(skillName: string): string;
3800
4315
 
3801
- export { ADAPTER_DIAGNOSTIC_DOCS_RELATIVE_PATH, AGENT_PROJECTION_BEGIN_MARKER, AGENT_PROJECTION_END_MARKER, AGENT_PROJECTION_ENFORCEMENT_SURFACES, AGENT_PROJECTION_NON_ENFORCEMENT_LABEL, AGENT_SKILLS_PACKAGE_RELATIVE_ROOT, AGENT_SKILL_ENTRY_FILENAME, type AICodeGate, type AICodeGateContext, type AICodeGateOptions, type AICodeGateResult, type AICodeGateViolation, type AIGateExtension, ANALYSIS_IR_SCHEMA_VERSION, ARK_AGENT_PROJECTION_SCHEMA_VERSION, ARK_AGENT_SKILLS_PACKAGE_SCHEMA_VERSION, ARK_ANALYSIS_RESULT_SCHEMA, ARK_ANALYSIS_RESULT_SCHEMA_VERSION, ARK_CONFIG_SCHEMA, ARK_CONFIG_SCHEMA_VERSION, ARK_DESIGN_DELTA_SCHEMA_VERSION, ARK_ENFORCEMENT_STATE_SCHEMA_VERSION, ARK_IMPROVEMENT_COMPASS_SCHEMA_VERSION, ARK_PROJECT_IDENTITY_SCHEMA, ARK_PROJECT_IDENTITY_SCHEMA_URL, ARK_PROJECT_IDENTITY_SCHEMA_VERSION, ARK_RULES_SCHEMA, ARK_RULES_SCHEMA_VERSION, ARK_RULE_SENSORS, ARK_SKILL_NAMES, ARK_SKILL_NAME_COUNT, ARK_STATUS_MANIFEST_SCHEMA, ARK_STATUS_MANIFEST_SCHEMA_URL, ARK_STATUS_MANIFEST_SCHEMA_VERSION, type AdapterCompletenessReason, type AdapterDiagnostic, type AdapterResult, type AdapterSeverity, type AdapterViolationInput, type AgentProjectionCatalogEntry, type AgentProjectionFacts, type AgentProjectionLayerSummary, type AgentProjectionMergeAction, type AgentProjectionMergeResult, type AgentProjectionMeta, type AgentProjectionProfile, type AgentSkillPackageEntry, type AgentSkillValidationIssue, type AnalysisCapabilityUse, type AnalysisCompilerOptions, type AnalysisCompleteness, type AnalysisContract, type AnalysisEvidence, type AnalysisFile, type AnalysisFileChange, type AnalysisFileInput, type AnalysisImportEdge, type AnalysisIr, type AnalysisMode, type AnalysisResult, type AnalysisViolation, type AnalyzeArchitectureConvergenceInput, type AnalyzeChangeInput, type AnalyzePolicyDeltaInput, type AnalyzeProjectInput, type AnalyzeResolvedProjectInput, type ArchitectureActualChange, type ArchitectureChangeMap, type ArchitectureChangeMapContract, type ArchitectureChangeMapDependency, type ArchitectureChangeMapFile, type ArchitectureChangeOperation, type ArchitectureConvergenceClassification, type ArchitectureConvergenceFinding, type ArchitectureConvergenceResult, type ArchitectureDependency, type ArchitectureEngineEdge, type ArchitectureEngineResult, type ArchitectureEngineViolation, type ArchitectureLayer, type ArchitectureLayerConfig, type ArchitectureProfile, type ArchitectureRule, type ArkCheckConfig, ArkConfig, ArkConfigLoadResult, type ArkDesignDeltaResult, type ArkEnforcementHost, type ArkEnforcementState, type ArkRuleSensorViolation, type ArkRulesFile, type ArkSkillName, type ChangePreflightResult, type ClassShapeFact, type CollectAnalysisConfigWarningsInput, type CreateArchitectureProfileFromArkConfigOptions, type CreateArchitectureProfileOptions, type CreateElevenLayerArkConfigOptions, DEFAULT_AGENT_PROJECTION_RULE_IDS, DIAGNOSTIC_CATALOG, DIAGNOSTIC_CATALOG_SCHEMA_VERSION, DIAGNOSTIC_DOCS_RELATIVE_PATH, DIAGNOSTIC_RULE_IDS, type DesignDeltaChange, type DesignDeltaEnforcementScope, type DesignDeltaIdentity, type DesignSmellEvidence, type DesignSmellFinding, type DesignSmellId, type DiagnosticCatalogEntry, type DiagnosticCategory, type EffectiveArkRules, type EffectiveContract, EffectiveContractError, type EffectiveContractWarning, type EnforcementBoundaryState, type EnforcementEvidence, type EnforcementEvidenceField, type EnforcementVerification, type EvaluateArchitectureGraphInput, FLAT_SKILL_TEMPLATES_RELATIVE_ROOT, type ForbiddenCapabilityUse, IMPROVEMENT_COMPASS_OUT_OF_SCOPE_LENSES, IMPROVEMENT_COMPASS_TOP_RESIDUAL_CAP, IMPROVEMENT_LENS_IDS, type ImprovementCompass, type ImprovementCompassEvidence, type ImprovementCompassFacts, type ImprovementCompassNextAction, type ImprovementCompassSmellFact, type ImprovementCompassViolationFact, type ImprovementLens, type ImprovementLensId, type ImprovementLensStatus, type InvariantCoverageEvidence, POLICY_DELTA_SCHEMA_VERSION, PROJECT_BINDING_SCHEMA, PROJECT_EXPECTATION_SCHEMA, type ParseSkillDocumentResult, type ParsedSkillFrontmatter, type PolicyDelta, type PolicyDeltaAcknowledgement, type PolicyDeltaAnalysis, type PolicyDeltaClassification, type PolicyDeltaFinding, type PreflightResolvedChangeInput, type PreparedChangeFile, type ProjectBinding, type ProjectExpectation, type ProjectIdentity, RESOLVED_CANDIDATE_FACTS_SCHEMA, RESOLVED_CANDIDATE_FACTS_SCHEMA_VERSION, type ResolvedAmbientFact, type ResolvedAnalysisFile, type ResolvedAnalysisIr, type ResolvedAnalysisResult, type ResolvedCandidateFacts, type ResolvedCandidateFactsInput, type ResolvedCapability, type ResolvedCapabilityFact, type ResolvedChangePreflightResult, type ResolvedDependencyFact, type ResolvedDependencyKind, type ResolvedDependencyState, type ResolvedFactsCompleteness, type ResolvedFactsReason, type ResolvedFileFact, type ResolvedIntentReferenceFact, type ResolvedPublishFact, type ResolvedSafetyFact, type ResolvedSafetyKind, type ResolvedSafetyReport, type RulesInventoryCandidate, type RulesInventoryResult, STATUS_COMPASS_FACTS_SOURCES, STATUS_COMPASS_MODES, STATUS_COMPASS_REASON_CODES, type SemanticDependency, type SemanticDependencyKind, type StatusActivationSlice, type StatusCheckVerdict, type StatusCompassFactsSource, type StatusCompassMode, type StatusCompassReasonCode, type StatusImprovementCompassSlice, type StatusLastCheckSlice, type StatusManifest, type StatusManifestFacts, type StatusNextAction, type StatusProjectIdentitySlice, type StatusRulesSlice, type StatusWritePathClass, type ValidateAgentSkillDocumentInput, type ValidateAgentSkillsPackageResult, adapterDocsCodePath, adapterFindingOccurrenceTargetKeys, adapterFindingRefFromTargetKey, adapterFindingTargetKey, agentProjectionContentIdentity, agentSkillEntryRelativePath, agentSkillPackageFileRelativePath, analyzeArchitectureConvergence, analyzeChange, analyzePolicyDelta, analyzeProject, analyzeResolvedProject, buildAgentProjectionBeginMarker, buildAgentProjectionBlock, buildAgentProjectionBody, buildAgentProjectionMeta, buildArkRuleFileHints, buildEffectiveArkRules, buildImprovementCompass, buildRulesInventory, buildStatusManifest, canPromoteInvariant, catalogFixForRuleId, catalogWhyForRuleId, classifyArkPolicyDelta, classifyStatusWritePath, collectAnalysisConfigWarnings, collectEmptyAppliesToFindings, collectForbiddenCapabilityUses, createAICodeGate, createAdapterResult, createArchitectureProfile, createArchitectureProfileFromArkConfig, createElevenLayerArkConfig, createProjectId, createProjectIdentity, createResolvedCandidateFacts, defaultHonestLabel, deriveArkRuleFileHints, detectArchitectureCycles, deterministicHash, diagnosticDocsFragment, diagnosticDocsPath, effectiveContractPolicyPayload, elevenLayerProfile, emptyEffectiveArkRules, evaluateArchitectureGraph, evaluateArkRuleSensors, evaluateInvariantCoverage, evaluateStatusBinding, explainViolation, extractAgentProjectionBlock, extractClassShapesFromSource, extractSemanticDependencies, flatSkillTemplateFileRelativePath, formatAgentProjectionCatalogShortList, formatAgentProjectionLayers, formatImprovementCompassDoctorLines, formatImprovementCompassResidualLabels, getDiagnosticCatalogEntry, inventoryToExtractionCard, isArkSkillName, isCataloguedOrArkRuleFamily, isKnownDiagnosticCode, isValidAgentSkillName, loadArkConfigContract, loadArkRulesContract, loadContract, loadResolvedCandidateFacts, mergeAgentProjectionDocument, normalizeSkillContent, normalizeStatusImprovementCompass, parseAgentProjectionStamp, parseArkConfigJson, parseArkRulesJson, parseSkillDocument, policyDeltaAcknowledgementMatches, preflightChange, preflightResolvedChange, primaryImprovementCompassNextAction, projectStatusImprovementCompass, projectionHasNonEnforcementLabel, projectionMatchesPackageVersion, resolveEffectiveContract, resolveStatusNextAction, resolvedFactsEvidenceRequirementsHash, serializeDiagnosticCatalog, stableSerialize, statusCompassResidualIsSubsetOfDoctor, toAdapterDiagnostic, unavailableStatusImprovementCompass, validateAgentSkillDocument, validateAgentSkillsPackage, version };
4316
+ export { ADAPTER_DIAGNOSTIC_DOCS_RELATIVE_PATH, AGENT_PROJECTION_BEGIN_MARKER, AGENT_PROJECTION_END_MARKER, AGENT_PROJECTION_ENFORCEMENT_SURFACES, AGENT_PROJECTION_NON_ENFORCEMENT_LABEL, AGENT_SKILLS_PACKAGE_RELATIVE_ROOT, AGENT_SKILL_ENTRY_FILENAME, type AICodeGate, type AICodeGateContext, type AICodeGateOptions, type AICodeGateResult, type AICodeGateViolation, type AIGateExtension, ANALYSIS_IR_SCHEMA_VERSION, ARKRUN_INTERACTION_NAME_INCOMPLETE, ARKRUN_KERNEL_FACTORY_CALLEES, ARKRUN_KERNEL_INTERACTION_CALLEES, ARKRUN_RULE_IDS, ARKRUN_TIER1_SENSOR_IDS, ARKRUN_TRANSPORT_BYPASS_SPECIFIERS, ARK_AGENT_PROJECTION_SCHEMA_VERSION, ARK_AGENT_SKILLS_PACKAGE_SCHEMA_VERSION, ARK_ANALYSIS_RESULT_SCHEMA, ARK_ANALYSIS_RESULT_SCHEMA_VERSION, ARK_CONFIG_SCHEMA, ARK_CONFIG_SCHEMA_VERSION, ARK_DESIGN_DELTA_SCHEMA_VERSION, ARK_ENFORCEMENT_STATE_SCHEMA_VERSION, ARK_IMPROVEMENT_COMPASS_SCHEMA_VERSION, ARK_PROJECT_IDENTITY_SCHEMA, ARK_PROJECT_IDENTITY_SCHEMA_URL, ARK_PROJECT_IDENTITY_SCHEMA_VERSION, ARK_RULES_SCHEMA, ARK_RULES_SCHEMA_VERSION, ARK_RULE_SENSORS, ARK_RUN_DOCTOR_SCHEMA_VERSION, ARK_SKILL_NAMES, ARK_SKILL_NAME_COUNT, ARK_STATUS_MANIFEST_SCHEMA, ARK_STATUS_MANIFEST_SCHEMA_URL, ARK_STATUS_MANIFEST_SCHEMA_VERSION, type AdapterCompletenessReason, type AdapterDiagnostic, type AdapterResult, type AdapterSeverity, type AdapterViolationInput, type AgentProjectionCatalogEntry, type AgentProjectionFacts, type AgentProjectionLayerSummary, type AgentProjectionMergeAction, type AgentProjectionMergeResult, type AgentProjectionMeta, type AgentProjectionProfile, type AgentSkillPackageEntry, type AgentSkillValidationIssue, type AnalysisCapabilityUse, type AnalysisCompilerOptions, type AnalysisCompleteness, type AnalysisContract, type AnalysisEvidence, type AnalysisFile, type AnalysisFileChange, type AnalysisFileInput, type AnalysisImportEdge, type AnalysisIr, type AnalysisMode, type AnalysisResult, type AnalysisViolation, type AnalyzeArchitectureConvergenceInput, type AnalyzeChangeInput, type AnalyzePolicyDeltaInput, type AnalyzeProjectInput, type AnalyzeResolvedProjectInput, type ArchitectureActualChange, type ArchitectureChangeMap, type ArchitectureChangeMapContract, type ArchitectureChangeMapDependency, type ArchitectureChangeMapFile, type ArchitectureChangeOperation, type ArchitectureConvergenceClassification, type ArchitectureConvergenceFinding, type ArchitectureConvergenceResult, type ArchitectureDependency, type ArchitectureEngineEdge, type ArchitectureEngineResult, type ArchitectureEngineViolation, type ArchitectureLayer, type ArchitectureLayerConfig, type ArchitectureProfile, type ArchitectureRule, type ArkCheckConfig, ArkConfig, ArkConfigLoadResult, type ArkDesignDeltaResult, type ArkEnforcementHost, type ArkEnforcementState, type ArkRuleSensorViolation, type ArkRulesFile, type ArkRunDoctorSection, type ArkRunRuleId, type ArkRunSensorFinding, type ArkRunStatusSlice, type ArkRunTier1SensorId, type ArkSkillName, type ChangePreflightResult, type ClassShapeFact, type CollectAnalysisConfigWarningsInput, type CreateArchitectureProfileFromArkConfigOptions, type CreateArchitectureProfileOptions, type CreateElevenLayerArkConfigOptions, DEFAULT_AGENT_PROJECTION_RULE_IDS, DIAGNOSTIC_CATALOG, DIAGNOSTIC_CATALOG_SCHEMA_VERSION, DIAGNOSTIC_DOCS_RELATIVE_PATH, DIAGNOSTIC_RULE_IDS, type DesignDeltaChange, type DesignDeltaEnforcementScope, type DesignDeltaIdentity, type DesignSmellEvidence, type DesignSmellFinding, type DesignSmellId, type DiagnosticCatalogEntry, type DiagnosticCategory, EXTRA_MERGE_TEETH_GOVERNED_FLOOR, type EffectiveArkRules, type EffectiveContract, EffectiveContractError, type EffectiveContractWarning, type EnforcementBoundaryState, type EnforcementEvidence, type EnforcementEvidenceField, type EnforcementVerification, type EvaluateArchitectureGraphInput, type EvaluateArkRunSensorsInput, type EvaluateArkRunSensorsResult, type ExtraMergeTeethClassification, FLAT_SKILL_TEMPLATES_RELATIVE_ROOT, type ForbiddenCapabilityUse, IMPROVEMENT_COMPASS_OUT_OF_SCOPE_LENSES, IMPROVEMENT_COMPASS_TOP_RESIDUAL_CAP, IMPROVEMENT_LENS_IDS, type ImprovementCompass, type ImprovementCompassEvidence, type ImprovementCompassFacts, type ImprovementCompassNextAction, type ImprovementCompassSmellFact, type ImprovementCompassViolationFact, type ImprovementLens, type ImprovementLensId, type ImprovementLensStatus, type InvariantCoverageEvidence, MERGE_PLANES_DUAL_STAMP, type MergePlanesHonesty, POLICY_DELTA_SCHEMA_VERSION, PROJECT_BINDING_SCHEMA, PROJECT_EXPECTATION_SCHEMA, type ParseSkillDocumentResult, type ParsedSkillFrontmatter, type PolicyDelta, type PolicyDeltaAcknowledgement, type PolicyDeltaAnalysis, type PolicyDeltaClassification, type PolicyDeltaFinding, type PreflightResolvedChangeInput, type PreparedChangeFile, type ProjectBinding, type ProjectExpectation, type ProjectIdentity, RESOLVED_CANDIDATE_FACTS_SCHEMA, RESOLVED_CANDIDATE_FACTS_SCHEMA_VERSION, type ResolvedAmbientFact, type ResolvedAnalysisFile, type ResolvedAnalysisIr, type ResolvedAnalysisResult, type ResolvedArkRunCompositionRootHitFact, type ResolvedArkRunDeclarationFact, type ResolvedArkRunKernelCallFact, type ResolvedArkRunKernelCallKind, type ResolvedArkRunManagedNewFact, type ResolvedCandidateFacts, type ResolvedCandidateFactsInput, type ResolvedCapability, type ResolvedCapabilityFact, type ResolvedChangePreflightResult, type ResolvedDependencyFact, type ResolvedDependencyKind, type ResolvedDependencyState, type ResolvedFactsCompleteness, type ResolvedFactsReason, type ResolvedFileFact, type ResolvedIntentReferenceFact, type ResolvedPublishFact, type ResolvedSafetyFact, type ResolvedSafetyKind, type ResolvedSafetyReport, type RulesInventoryCandidate, type RulesInventoryResult, STATUS_COMPASS_FACTS_SOURCES, STATUS_COMPASS_MODES, STATUS_COMPASS_REASON_CODES, type SemanticDependency, type SemanticDependencyKind, type StatusActivationSlice, type StatusCheckVerdict, type StatusCompassFactsSource, type StatusCompassMode, type StatusCompassReasonCode, type StatusImprovementCompassSlice, type StatusLastCheckSlice, type StatusManifest, type StatusManifestFacts, type StatusNextAction, type StatusProjectIdentitySlice, type StatusRulesSlice, type StatusWritePathClass, type ValidateAgentSkillDocumentInput, type ValidateAgentSkillsPackageResult, adapterDocsCodePath, adapterFindingOccurrenceTargetKeys, adapterFindingRefFromTargetKey, adapterFindingTargetKey, agentProjectionContentIdentity, agentSkillEntryRelativePath, agentSkillPackageFileRelativePath, analyzeArchitectureConvergence, analyzeChange, analyzePolicyDelta, analyzeProject, analyzeResolvedProject, arkRunKernelCallKind, buildAgentProjectionBeginMarker, buildAgentProjectionBlock, buildAgentProjectionBody, buildAgentProjectionMeta, buildArkRuleFileHints, buildEffectiveArkRules, buildImprovementCompass, buildRulesInventory, buildStatusManifest, canPromoteInvariant, catalogFixForRuleId, catalogWhyForRuleId, classifyArkPolicyDelta, classifyResolvedLayerCoverage, classifyStatusWritePath, collectAnalysisConfigWarnings, collectEmptyAppliesToFindings, collectForbiddenCapabilityUses, composeMergePlanesHonesty, createAICodeGate, createAdapterResult, createArchitectureProfile, createArchitectureProfileFromArkConfig, createElevenLayerArkConfig, createProjectId, createProjectIdentity, createResolvedCandidateFacts, defaultHonestLabel, demoteExtraPlaneTeethUnderClassificationFloor, deriveArkRuleFileHints, detectArchitectureCycles, deterministicHash, diagnosticDocsFragment, diagnosticDocsPath, effectiveContractPolicyPayload, elevenLayerProfile, emptyEffectiveArkRules, evaluateArchitectureGraph, evaluateArkRuleSensors, evaluateArkRunEditorSensors, evaluateArkRunEditorSensorsFromSource, evaluateArkRunSensors, evaluateInvariantCoverage, evaluateStatusBinding, explainViolation, extraMergeTeethAllowed, extractAgentProjectionBlock, extractArkRunDeclarationsFromSource, extractArkRunImportedConstructorNamesFromSource, extractArkRunKernelCallsFromSource, extractArkRunManagedNewsFromSource, extractArkRunValueImportDependenciesFromSource, extractClassShapesFromSource, extractSemanticDependencies, flatSkillTemplateFileRelativePath, formatAgentProjectionCatalogShortList, formatAgentProjectionLayers, formatArkRunDoctorLines, formatImprovementCompassDoctorLines, formatImprovementCompassResidualLabels, getDiagnosticCatalogEntry, inventoryToExtractionCard, isArkRunKernelModuleSpecifier, isArkRunRuleId, isArkRunTransportBypassSpecifier, isArkSkillName, isCataloguedOrArkRuleFamily, isExtraPlaneFinding, isKnownDiagnosticCode, isValidAgentSkillName, loadArkConfigContract, loadArkRulesContract, loadContract, loadResolvedCandidateFacts, mergeAgentProjectionDocument, normalizeExtraMergeTeethClassification, normalizeSkillContent, normalizeStatusImprovementCompass, parseAgentProjectionStamp, parseArkConfigJson, parseArkRulesJson, parseSkillDocument, policyDeltaAcknowledgementMatches, preflightChange, preflightResolvedChange, primaryImprovementCompassNextAction, projectStatusArkRun, projectStatusImprovementCompass, projectionHasNonEnforcementLabel, projectionMatchesPackageVersion, resolveEffectiveContract, resolveStatusNextAction, resolvedFactsEvidenceRequirementsHash, serializeDiagnosticCatalog, stableSerialize, statusCompassResidualIsSubsetOfDoctor, summarizeArkRunSection, toAdapterDiagnostic, unavailableStatusImprovementCompass, validateAgentSkillDocument, validateAgentSkillsPackage, version };