arkgate 4.8.3 → 4.8.4

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 (54) hide show
  1. package/CHANGELOG.md +242 -0
  2. package/README.md +10 -3
  3. package/bin/ark-check-runtime.mjs +340 -5
  4. package/bin/ark-layer-match.mjs +170 -13
  5. package/bin/ark-mcp-runtime.mjs +9 -2
  6. package/bin/lib/analysis-completeness.mjs +86 -0
  7. package/bin/lib/analysis-engine.mjs +5 -5
  8. package/bin/lib/architecture-scan.mjs +2 -0
  9. package/bin/lib/arkrules-contract.mjs +8 -1
  10. package/bin/lib/check-args.mjs +66 -0
  11. package/bin/lib/config-contract.mjs +26 -0
  12. package/bin/lib/design-smells.mjs +85 -0
  13. package/bin/lib/diagnostic-catalog.mjs +6 -1
  14. package/bin/lib/first-run-help.mjs +12 -0
  15. package/bin/lib/invariant-coverage-io.mjs +175 -19
  16. package/bin/lib/invariant-coverage.mjs +110 -7
  17. package/bin/lib/literal-path-drift-io.mjs +569 -0
  18. package/bin/lib/literal-path-drift.mjs +761 -0
  19. package/bin/lib/policy-delta-io.mjs +5 -0
  20. package/bin/lib/remediation.mjs +15 -0
  21. package/bin/lib/rules-under-contract.mjs +5 -0
  22. package/bin/lib/scan-files.mjs +54 -0
  23. package/bin/lib/sensor-promote-cli.mjs +372 -0
  24. package/bin/lib/sensor-promote-io.mjs +246 -0
  25. package/bin/lib/sensor-promotion.mjs +363 -0
  26. package/dist/{configTypes-dNJ2C0yx.d.ts → configTypes-dy5PfTqS.d.ts} +31 -0
  27. package/dist/{diagnosticCatalog-C5GgeyEE.d.ts → diagnosticCatalog-DgTs0abp.d.ts} +75 -7
  28. package/dist/eslint/index.cjs +6 -6
  29. package/dist/eslint/index.d.ts +34 -1
  30. package/dist/eslint/index.js +6 -6
  31. package/dist/index.cjs +32 -32
  32. package/dist/index.d.ts +65 -4
  33. package/dist/index.js +29 -29
  34. package/dist/nestjs/index.cjs +5 -5
  35. package/dist/nestjs/index.d.ts +3 -3
  36. package/dist/nestjs/index.js +5 -5
  37. package/dist/runtime/index.cjs +15 -15
  38. package/dist/runtime/index.d.ts +6 -6
  39. package/dist/runtime/index.js +15 -15
  40. package/dist/{types-dK24fDZa.d.ts → types-BuM8WNqe.d.ts} +1 -1
  41. package/dist/{types-DeK7SYGC.d.ts → types-D95drJ3_.d.ts} +1 -1
  42. package/docs/README.md +1 -1
  43. package/docs/agent-guide.md +182 -0
  44. package/docs/configuration.md +77 -1
  45. package/docs/develop.md +1 -0
  46. package/docs/diagnostics.md +70 -1
  47. package/docs/package-surface.md +32 -2
  48. package/package.json +2 -2
  49. package/schemas/ark.config.schema.json +63 -0
  50. package/server.json +3 -3
  51. package/templates/agent-skills/ark-adopt/SKILL.md +5 -0
  52. package/templates/agent-skills/ark-coverage/SKILL.md +1 -0
  53. package/templates/skills/ark-adopt.md +5 -0
  54. package/templates/skills/ark-coverage.md +1 -0
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { A as ArkRulesFile, E as EffectiveArkRules, R as ResolvedArkRunKernelCallKind, a as ResolvedArkRunDeclarationFact, b as ResolvedArkRunKernelCallFact, c as ResolvedArkRunManagedNewFact, d as ResolvedDependencyFact, e as ResolvedArkRunCompositionRootHitFact, f as ResolvedFactsReason, g as ResolvedArkOrderPlaneCallFact, h as ResolvedArkOrderGenericUpdateFact, i as ResolvedArkOrderRootHitFact, j as ResolvedArkOrderXiFieldWriteFact, k as ResolvedArkOrderIngestWriteFact } from './diagnosticCatalog-C5GgeyEE.js';
2
- export { l as ADAPTER_DIAGNOSTIC_DOCS_RELATIVE_PATH, m as AICodeGate, n as AICodeGateContext, o as AICodeGateOptions, p as AICodeGateResult, q as AICodeGateViolation, r as AIGateExtension, s as ANALYSIS_IR_SCHEMA_VERSION, t as ARK_ANALYSIS_RESULT_SCHEMA, u as ARK_ANALYSIS_RESULT_SCHEMA_VERSION, v as ARK_DESIGN_DELTA_SCHEMA_VERSION, w as ARK_ENFORCEMENT_STATE_SCHEMA_VERSION, x as AdapterCompletenessReason, y as AdapterDiagnostic, z as AdapterResult, B as AdapterSeverity, C as AdapterViolationInput, D as AnalysisCapabilityUse, F as AnalysisCompilerOptions, G as AnalysisCompleteness, H as AnalysisContract, I as AnalysisEvidence, J as AnalysisFile, K as AnalysisFileChange, L as AnalysisFileInput, M as AnalysisImportEdge, N as AnalysisIr, O as AnalysisMode, P as AnalysisResult, Q as AnalysisViolation, S as AnalyzeArchitectureConvergenceInput, T as AnalyzeChangeInput, U as AnalyzePolicyDeltaInput, V as AnalyzeProjectInput, W as AnalyzeResolvedProjectInput, X as ArchitectureActualChange, Y as ArchitectureChangeMap, Z as ArchitectureChangeMapContract, _ as ArchitectureChangeMapDependency, $ as ArchitectureChangeMapFile, a0 as ArchitectureChangeOperation, a1 as ArchitectureConvergenceClassification, a2 as ArchitectureConvergenceFinding, a3 as ArchitectureConvergenceResult, a4 as ArchitectureDependency, a5 as ArchitectureEngineEdge, a6 as ArchitectureEngineResult, a7 as ArchitectureEngineViolation, a8 as ArkDesignDeltaResult, a9 as ArkEnforcementHost, aa as ArkEnforcementState, ab as ArkRuleSensorViolation, ac as ChangePreflightResult, ad as ClassShapeFact, ae as CollectAnalysisConfigWarningsInput, af as DIAGNOSTIC_CATALOG, ag as DIAGNOSTIC_CATALOG_SCHEMA_VERSION, ah as DIAGNOSTIC_DOCS_RELATIVE_PATH, ai as DIAGNOSTIC_RULE_IDS, aj as DesignDeltaChange, ak as DesignDeltaEnforcementScope, al as DesignDeltaIdentity, am as DesignSmellEvidence, an as DesignSmellFinding, ao as DesignSmellId, ap as DiagnosticCatalogEntry, aq as DiagnosticCategory, ar as EnforcementBoundaryState, as as EnforcementEvidence, at as EnforcementEvidenceField, au as EnforcementVerification, av as EvaluateArchitectureGraphInput, aw as ForbiddenCapabilityUse, ax as InvariantCoverageEvidence, ay as POLICY_DELTA_SCHEMA_VERSION, az as PolicyDelta, aA as PolicyDeltaAcknowledgement, aB as PolicyDeltaAnalysis, aC as PolicyDeltaClassification, aD as PolicyDeltaFinding, aE as PreflightResolvedChangeInput, aF as PreparedChangeFile, aG as RESOLVED_CANDIDATE_FACTS_SCHEMA, aH as RESOLVED_CANDIDATE_FACTS_SCHEMA_VERSION, aI as ResolvedAmbientFact, aJ as ResolvedAnalysisFile, aK as ResolvedAnalysisIr, aL as ResolvedAnalysisResult, aM as ResolvedCandidateFacts, aN as ResolvedCandidateFactsInput, aO as ResolvedCapability, aP as ResolvedCapabilityFact, aQ as ResolvedChangePreflightResult, aR as ResolvedDependencyKind, aS as ResolvedDependencyState, aT as ResolvedFactsCompleteness, aU as ResolvedFileFact, aV as ResolvedIntentReferenceFact, aW as ResolvedPublishFact, aX as ResolvedSafetyFact, aY as ResolvedSafetyKind, aZ as ResolvedSafetyReport, a_ as SemanticDependency, a$ as SemanticDependencyKind, b0 as adapterDocsCodePath, b1 as adapterFindingOccurrenceTargetKeys, b2 as adapterFindingRefFromTargetKey, b3 as adapterFindingTargetKey, b4 as analyzeArchitectureConvergence, b5 as analyzeChange, b6 as analyzePolicyDelta, b7 as analyzeProject, b8 as analyzeResolvedProject, b9 as buildArkRuleFileHints, ba as canPromoteInvariant, bb as catalogFixForRuleId, bc as catalogWhyForRuleId, bd as classifyArkPolicyDelta, be as collectAnalysisConfigWarnings, bf as collectEmptyAppliesToFindings, bg as collectForbiddenCapabilityUses, bh as createAICodeGate, bi as createAdapterResult, bj as createArchitectureProfile, bk as createArchitectureProfileFromArkConfig, bl as createElevenLayerArkConfig, bm as createResolvedCandidateFacts, bn as deriveArkRuleFileHints, bo as detectArchitectureCycles, bp as deterministicHash, bq as diagnosticDocsFragment, br as diagnosticDocsPath, bs as elevenLayerProfile, bt as evaluateArchitectureGraph, bu as evaluateArkRuleSensors, bv as evaluateInvariantCoverage, bw as explainViolation, bx as extractClassShapesFromSource, by as extractSemanticDependencies, bz as getDiagnosticCatalogEntry, bA as isCataloguedOrArkRuleFamily, bB as isKnownDiagnosticCode, bC as loadContract, bD as loadResolvedCandidateFacts, bE as policyDeltaAcknowledgementMatches, bF as preflightChange, bG as preflightResolvedChange, bH as resolvedFactsEvidenceRequirementsHash, bI as serializeDiagnosticCatalog, bJ as stableSerialize, bK as toAdapterDiagnostic, bL as version } from './diagnosticCatalog-C5GgeyEE.js';
3
- export { A as ArchitectureLayer, a as ArchitectureLayerConfig, b as ArchitectureProfile, c as ArchitectureRule, d as ArkCheckConfig, C as CreateArchitectureProfileFromArkConfigOptions, e as CreateArchitectureProfileOptions, f as CreateElevenLayerArkConfigOptions } from './types-dK24fDZa.js';
4
- import { a as ArkConfigRule, b as ArkConfigSchemaVersion, c as ArkConfigLoadResult, A as ArkConfig, d as ArkConfigIssue, e as ArkConfigArkRun, f as ArkConfigLayer, g as ArkConfigArkOrder } from './configTypes-dNJ2C0yx.js';
1
+ import { A as ArkRulesFile, E as EffectiveArkRules, R as ResolvedArkRunKernelCallKind, a as ResolvedArkRunDeclarationFact, b as ResolvedArkRunKernelCallFact, c as ResolvedArkRunManagedNewFact, d as ResolvedDependencyFact, e as ResolvedArkRunCompositionRootHitFact, f as ResolvedFactsReason, g as ResolvedArkOrderPlaneCallFact, h as ResolvedArkOrderGenericUpdateFact, i as ResolvedArkOrderRootHitFact, j as ResolvedArkOrderXiFieldWriteFact, k as ResolvedArkOrderIngestWriteFact } from './diagnosticCatalog-DgTs0abp.js';
2
+ export { l as ADAPTER_DIAGNOSTIC_DOCS_RELATIVE_PATH, m as AICodeGate, n as AICodeGateContext, o as AICodeGateOptions, p as AICodeGateResult, q as AICodeGateViolation, r as AIGateExtension, s as ANALYSIS_IR_SCHEMA_VERSION, t as ARK_ANALYSIS_RESULT_SCHEMA, u as ARK_ANALYSIS_RESULT_SCHEMA_VERSION, v as ARK_DESIGN_DELTA_SCHEMA_VERSION, w as ARK_ENFORCEMENT_STATE_SCHEMA_VERSION, x as AdapterCompletenessReason, y as AdapterDiagnostic, z as AdapterResult, B as AdapterSeverity, C as AdapterViolationInput, D as AnalysisCapabilityUse, F as AnalysisCompilerOptions, G as AnalysisCompleteness, H as AnalysisContract, I as AnalysisEvidence, J as AnalysisFile, K as AnalysisFileChange, L as AnalysisFileInput, M as AnalysisImportEdge, N as AnalysisIr, O as AnalysisMode, P as AnalysisResult, Q as AnalysisViolation, S as AnalyzeArchitectureConvergenceInput, T as AnalyzeChangeInput, U as AnalyzePolicyDeltaInput, V as AnalyzeProjectInput, W as AnalyzeResolvedProjectInput, X as ArchitectureActualChange, Y as ArchitectureChangeMap, Z as ArchitectureChangeMapContract, _ as ArchitectureChangeMapDependency, $ as ArchitectureChangeMapFile, a0 as ArchitectureChangeOperation, a1 as ArchitectureConvergenceClassification, a2 as ArchitectureConvergenceFinding, a3 as ArchitectureConvergenceResult, a4 as ArchitectureDependency, a5 as ArchitectureEngineEdge, a6 as ArchitectureEngineResult, a7 as ArchitectureEngineViolation, a8 as ArkDesignDeltaResult, a9 as ArkEnforcementHost, aa as ArkEnforcementState, ab as ArkRuleSensorViolation, ac as ChangePreflightResult, ad as ClassShapeFact, ae as CollectAnalysisConfigWarningsInput, af as DIAGNOSTIC_CATALOG, ag as DIAGNOSTIC_CATALOG_SCHEMA_VERSION, ah as DIAGNOSTIC_DOCS_RELATIVE_PATH, ai as DIAGNOSTIC_RULE_IDS, aj as DesignDeltaChange, ak as DesignDeltaEnforcementScope, al as DesignDeltaIdentity, am as DesignSmellEvidence, an as DesignSmellFinding, ao as DesignSmellId, ap as DiagnosticCatalogEntry, aq as DiagnosticCategory, ar as EnforcementBoundaryState, as as EnforcementEvidence, at as EnforcementEvidenceField, au as EnforcementVerification, av as EvaluateArchitectureGraphInput, aw as ForbiddenCapabilityUse, ax as InvariantCoverageEvidence, ay as POLICY_DELTA_SCHEMA_VERSION, az as PolicyDelta, aA as PolicyDeltaAcknowledgement, aB as PolicyDeltaAnalysis, aC as PolicyDeltaClassification, aD as PolicyDeltaFinding, aE as PreflightResolvedChangeInput, aF as PreparedChangeFile, aG as RESOLVED_CANDIDATE_FACTS_SCHEMA, aH as RESOLVED_CANDIDATE_FACTS_SCHEMA_VERSION, aI as ResolvedAmbientFact, aJ as ResolvedAnalysisFile, aK as ResolvedAnalysisIr, aL as ResolvedAnalysisResult, aM as ResolvedCandidateFacts, aN as ResolvedCandidateFactsInput, aO as ResolvedCapability, aP as ResolvedCapabilityFact, aQ as ResolvedChangePreflightResult, aR as ResolvedDependencyKind, aS as ResolvedDependencyState, aT as ResolvedFactsCompleteness, aU as ResolvedFileFact, aV as ResolvedIntentReferenceFact, aW as ResolvedPublishFact, aX as ResolvedSafetyFact, aY as ResolvedSafetyKind, aZ as ResolvedSafetyReport, a_ as SemanticDependency, a$ as SemanticDependencyKind, b0 as adapterDocsCodePath, b1 as adapterFindingOccurrenceTargetKeys, b2 as adapterFindingRefFromTargetKey, b3 as adapterFindingTargetKey, b4 as analyzeArchitectureConvergence, b5 as analyzeChange, b6 as analyzePolicyDelta, b7 as analyzeProject, b8 as analyzeResolvedProject, b9 as buildArkRuleFileHints, ba as canPromoteInvariant, bb as catalogFixForRuleId, bc as catalogWhyForRuleId, bd as classifyArkPolicyDelta, be as collectAnalysisConfigWarnings, bf as collectEmptyAppliesToFindings, bg as collectForbiddenCapabilityUses, bh as createAICodeGate, bi as createAdapterResult, bj as createArchitectureProfile, bk as createArchitectureProfileFromArkConfig, bl as createElevenLayerArkConfig, bm as createResolvedCandidateFacts, bn as deriveArkRuleFileHints, bo as detectArchitectureCycles, bp as deterministicHash, bq as diagnosticDocsFragment, br as diagnosticDocsPath, bs as elevenLayerProfile, bt as evaluateArchitectureGraph, bu as evaluateArkRuleSensors, bv as evaluateInvariantCoverage, bw as explainViolation, bx as extractClassShapesFromSource, by as extractSemanticDependencies, bz as getDiagnosticCatalogEntry, bA as isCataloguedOrArkRuleFamily, bB as isKnownDiagnosticCode, bC as loadContract, bD as loadResolvedCandidateFacts, bE as policyDeltaAcknowledgementMatches, bF as preflightChange, bG as preflightResolvedChange, bH as resolvedFactsEvidenceRequirementsHash, bI as serializeDiagnosticCatalog, bJ as stableSerialize, bK as toAdapterDiagnostic, bL as version } from './diagnosticCatalog-DgTs0abp.js';
3
+ export { A as ArchitectureLayer, a as ArchitectureLayerConfig, b as ArchitectureProfile, c as ArchitectureRule, d as ArkCheckConfig, C as CreateArchitectureProfileFromArkConfigOptions, e as CreateArchitectureProfileOptions, f as CreateElevenLayerArkConfigOptions } from './types-BuM8WNqe.js';
4
+ import { a as ArkConfigRule, b as ArkConfigSchemaVersion, c as ArkConfigLoadResult, A as ArkConfig, d as ArkConfigIssue, e as ArkConfigArkRun, f as ArkConfigLayer, g as ArkConfigArkOrder } from './configTypes-dy5PfTqS.js';
5
5
 
6
6
  /**
7
7
  * Canonical, pure contract for ark.config.json.
@@ -101,6 +101,10 @@ declare const ARK_CONFIG_SCHEMA: {
101
101
  readonly allowDisabledPeerIsolation: false;
102
102
  };
103
103
  };
104
+ /** Invariant-coverage scan controls (test globs + file budget). Absence keeps defaults. */
105
+ readonly coverage: {
106
+ readonly $ref: "#/$defs/coverage";
107
+ };
104
108
  /** ADR 0012 — layer name → relative path to arkrules/<Layer>.json */
105
109
  readonly arkRules: {
106
110
  readonly type: "object";
@@ -239,6 +243,34 @@ declare const ARK_CONFIG_SCHEMA: {
239
243
  };
240
244
  readonly uniqueItems: true;
241
245
  };
246
+ readonly sharedRoots: {
247
+ readonly minItems: 1;
248
+ readonly type: "array";
249
+ readonly items: {
250
+ readonly type: "string";
251
+ readonly minLength: 1;
252
+ };
253
+ readonly uniqueItems: true;
254
+ };
255
+ readonly allowedCrossSlice: {
256
+ readonly type: "array";
257
+ readonly minItems: 1;
258
+ readonly items: {
259
+ readonly type: "object";
260
+ readonly additionalProperties: false;
261
+ readonly required: readonly ["from", "to"];
262
+ readonly properties: {
263
+ readonly from: {
264
+ readonly type: "string";
265
+ readonly minLength: 1;
266
+ };
267
+ readonly to: {
268
+ readonly type: "string";
269
+ readonly minLength: 1;
270
+ };
271
+ };
272
+ };
273
+ };
242
274
  };
243
275
  };
244
276
  readonly safety: {
@@ -265,6 +297,35 @@ declare const ARK_CONFIG_SCHEMA: {
265
297
  };
266
298
  };
267
299
  };
300
+ readonly coverage: {
301
+ readonly type: "object";
302
+ readonly additionalProperties: false;
303
+ readonly description: "Invariant coverage scan controls. testGlobs replaces the built-in test-name heuristic; maxFiles raises or lowers the evidence file budget; coverageRoots declares where the project runs its tests, so a covering test found outside them is reported instead of silently certifying an invariant.";
304
+ readonly properties: {
305
+ readonly testGlobs: {
306
+ readonly minItems: 1;
307
+ readonly type: "array";
308
+ readonly items: {
309
+ readonly type: "string";
310
+ readonly minLength: 1;
311
+ };
312
+ readonly uniqueItems: true;
313
+ };
314
+ readonly maxFiles: {
315
+ readonly type: "integer";
316
+ readonly minimum: 1;
317
+ };
318
+ readonly coverageRoots: {
319
+ readonly minItems: 1;
320
+ readonly type: "array";
321
+ readonly items: {
322
+ readonly type: "string";
323
+ readonly minLength: 1;
324
+ };
325
+ readonly uniqueItems: true;
326
+ };
327
+ };
328
+ };
268
329
  readonly arkRun: {
269
330
  readonly type: "object";
270
331
  readonly additionalProperties: false;