arkgate 4.8.2 → 4.8.3

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 (51) hide show
  1. package/CHANGELOG.md +15 -3
  2. package/README.md +39 -8
  3. package/bin/lib/analysis-engine.mjs +6 -6
  4. package/bin/lib/ark-order-facts.mjs +59 -0
  5. package/bin/lib/ark-order-sensors.mjs +31 -2
  6. package/bin/lib/arkrule-file-hints.mjs +6 -2
  7. package/bin/lib/arkrules-contract.mjs +1 -0
  8. package/bin/lib/arkrules-sensors.mjs +22 -2
  9. package/bin/lib/config-extras.mjs +2 -0
  10. package/bin/lib/diagnostic-catalog.mjs +2 -1
  11. package/bin/lib/remediation.mjs +9 -1
  12. package/bin/lib/resolved-candidate-facts.mjs +31 -0
  13. package/dist/{configTypes-BdCe_gvv.d.ts → configTypes-dNJ2C0yx.d.ts} +5 -0
  14. package/dist/{diagnosticCatalog-CPzH-MLN.d.ts → diagnosticCatalog-C5GgeyEE.d.ts} +97 -7
  15. package/dist/eslint/index.cjs +6 -6
  16. package/dist/eslint/index.d.ts +1 -1
  17. package/dist/eslint/index.js +6 -6
  18. package/dist/index.cjs +34 -34
  19. package/dist/index.d.ts +24 -7
  20. package/dist/index.js +34 -34
  21. package/dist/nestjs/index.cjs +5 -5
  22. package/dist/nestjs/index.d.ts +3 -3
  23. package/dist/nestjs/index.js +5 -5
  24. package/dist/runtime/index.cjs +15 -15
  25. package/dist/runtime/index.d.ts +6 -6
  26. package/dist/runtime/index.js +15 -15
  27. package/dist/{types-C9KApBzX.d.ts → types-DeK7SYGC.d.ts} +1 -1
  28. package/dist/{types-DCSlrRnV.d.ts → types-dK24fDZa.d.ts} +1 -1
  29. package/docs/README.md +4 -4
  30. package/docs/configuration.md +12 -8
  31. package/docs/develop.md +23 -2
  32. package/docs/diagnostics.md +9 -0
  33. package/docs/enthusiast/README.md +6 -4
  34. package/docs/package-surface.md +4 -2
  35. package/docs/product-voice.md +15 -5
  36. package/docs/use.md +8 -5
  37. package/package.json +1 -1
  38. package/schemas/ark.arkrules.schema.json +1 -0
  39. package/schemas/ark.config.schema.json +9 -0
  40. package/schemas/ark.resolved-candidate-facts.schema.json +1 -1
  41. package/server.json +2 -2
  42. package/templates/agent-skills/README.md +1 -1
  43. package/templates/agent-skills/ark-adopt/SKILL.md +8 -3
  44. package/templates/agent-skills/ark-autopilot/SKILL.md +1 -1
  45. package/templates/agent-skills/ark-contract/SKILL.md +4 -0
  46. package/templates/agent-skills/ark-place/SKILL.md +6 -2
  47. package/templates/arkrules/ApplicationOrchestration.json +6 -0
  48. package/templates/skills/ark-adopt.md +8 -3
  49. package/templates/skills/ark-autopilot.md +1 -1
  50. package/templates/skills/ark-contract.md +4 -0
  51. package/templates/skills/ark-place.md +6 -2
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 } from './diagnosticCatalog-CPzH-MLN.js';
2
- export { j as ADAPTER_DIAGNOSTIC_DOCS_RELATIVE_PATH, k as AICodeGate, l as AICodeGateContext, m as AICodeGateOptions, n as AICodeGateResult, o as AICodeGateViolation, p as AIGateExtension, q as ANALYSIS_IR_SCHEMA_VERSION, r as ARK_ANALYSIS_RESULT_SCHEMA, s as ARK_ANALYSIS_RESULT_SCHEMA_VERSION, t as ARK_DESIGN_DELTA_SCHEMA_VERSION, u as ARK_ENFORCEMENT_STATE_SCHEMA_VERSION, v as AdapterCompletenessReason, w as AdapterDiagnostic, x as AdapterResult, y as AdapterSeverity, z as AdapterViolationInput, B as AnalysisCapabilityUse, C as AnalysisCompilerOptions, D as AnalysisCompleteness, F as AnalysisContract, G as AnalysisEvidence, H as AnalysisFile, I as AnalysisFileChange, J as AnalysisFileInput, K as AnalysisImportEdge, L as AnalysisIr, M as AnalysisMode, N as AnalysisResult, O as AnalysisViolation, P as AnalyzeArchitectureConvergenceInput, Q as AnalyzeChangeInput, S as AnalyzePolicyDeltaInput, T as AnalyzeProjectInput, U as AnalyzeResolvedProjectInput, V as ArchitectureActualChange, W as ArchitectureChangeMap, X as ArchitectureChangeMapContract, Y as ArchitectureChangeMapDependency, Z as ArchitectureChangeMapFile, _ as ArchitectureChangeOperation, $ as ArchitectureConvergenceClassification, a0 as ArchitectureConvergenceFinding, a1 as ArchitectureConvergenceResult, a2 as ArchitectureDependency, a3 as ArchitectureEngineEdge, a4 as ArchitectureEngineResult, a5 as ArchitectureEngineViolation, a6 as ArkDesignDeltaResult, a7 as ArkEnforcementHost, a8 as ArkEnforcementState, a9 as ArkRuleSensorViolation, aa as ChangePreflightResult, ab as ClassShapeFact, ac as CollectAnalysisConfigWarningsInput, ad as DIAGNOSTIC_CATALOG, ae as DIAGNOSTIC_CATALOG_SCHEMA_VERSION, af as DIAGNOSTIC_DOCS_RELATIVE_PATH, ag as DIAGNOSTIC_RULE_IDS, ah as DesignDeltaChange, ai as DesignDeltaEnforcementScope, aj as DesignDeltaIdentity, ak as DesignSmellEvidence, al as DesignSmellFinding, am as DesignSmellId, an as DiagnosticCatalogEntry, ao as DiagnosticCategory, ap as EnforcementBoundaryState, aq as EnforcementEvidence, ar as EnforcementEvidenceField, as as EnforcementVerification, at as EvaluateArchitectureGraphInput, au as ForbiddenCapabilityUse, av as InvariantCoverageEvidence, aw as POLICY_DELTA_SCHEMA_VERSION, ax as PolicyDelta, ay as PolicyDeltaAcknowledgement, az as PolicyDeltaAnalysis, aA as PolicyDeltaClassification, aB as PolicyDeltaFinding, aC as PreflightResolvedChangeInput, aD as PreparedChangeFile, aE as RESOLVED_CANDIDATE_FACTS_SCHEMA, aF as RESOLVED_CANDIDATE_FACTS_SCHEMA_VERSION, aG as ResolvedAmbientFact, aH as ResolvedAnalysisFile, aI as ResolvedAnalysisIr, aJ as ResolvedAnalysisResult, aK as ResolvedCandidateFacts, aL as ResolvedCandidateFactsInput, aM as ResolvedCapability, aN as ResolvedCapabilityFact, aO as ResolvedChangePreflightResult, aP as ResolvedDependencyKind, aQ as ResolvedDependencyState, aR as ResolvedFactsCompleteness, aS as ResolvedFileFact, aT as ResolvedIntentReferenceFact, aU as ResolvedPublishFact, aV as ResolvedSafetyFact, aW as ResolvedSafetyKind, aX as ResolvedSafetyReport, aY as SemanticDependency, aZ as SemanticDependencyKind, a_ as adapterDocsCodePath, a$ as adapterFindingOccurrenceTargetKeys, b0 as adapterFindingRefFromTargetKey, b1 as adapterFindingTargetKey, b2 as analyzeArchitectureConvergence, b3 as analyzeChange, b4 as analyzePolicyDelta, b5 as analyzeProject, b6 as analyzeResolvedProject, b7 as buildArkRuleFileHints, b8 as canPromoteInvariant, b9 as catalogFixForRuleId, ba as catalogWhyForRuleId, bb as classifyArkPolicyDelta, bc as collectAnalysisConfigWarnings, bd as collectEmptyAppliesToFindings, be as collectForbiddenCapabilityUses, bf as createAICodeGate, bg as createAdapterResult, bh as createArchitectureProfile, bi as createArchitectureProfileFromArkConfig, bj as createElevenLayerArkConfig, bk as createResolvedCandidateFacts, bl as deriveArkRuleFileHints, bm as detectArchitectureCycles, bn as deterministicHash, bo as diagnosticDocsFragment, bp as diagnosticDocsPath, bq as elevenLayerProfile, br as evaluateArchitectureGraph, bs as evaluateArkRuleSensors, bt as evaluateInvariantCoverage, bu as explainViolation, bv as extractClassShapesFromSource, bw as extractSemanticDependencies, bx as getDiagnosticCatalogEntry, by as isCataloguedOrArkRuleFamily, bz as isKnownDiagnosticCode, bA as loadContract, bB as loadResolvedCandidateFacts, bC as policyDeltaAcknowledgementMatches, bD as preflightChange, bE as preflightResolvedChange, bF as resolvedFactsEvidenceRequirementsHash, bG as serializeDiagnosticCatalog, bH as stableSerialize, bI as toAdapterDiagnostic, bJ as version } from './diagnosticCatalog-CPzH-MLN.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-DCSlrRnV.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-BdCe_gvv.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-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';
5
5
 
6
6
  /**
7
7
  * Canonical, pure contract for ark.config.json.
@@ -342,6 +342,15 @@ declare const ARK_CONFIG_SCHEMA: {
342
342
  readonly minimum: 1;
343
343
  readonly default: 7;
344
344
  };
345
+ readonly xiKeys: {
346
+ readonly default: readonly [];
347
+ readonly type: "array";
348
+ readonly items: {
349
+ readonly type: "string";
350
+ readonly minLength: 1;
351
+ };
352
+ readonly uniqueItems: true;
353
+ };
345
354
  };
346
355
  };
347
356
  };
@@ -533,7 +542,7 @@ declare function createProjectIdentity(input: Omit<ProjectIdentity, 'schemaVersi
533
542
 
534
543
  declare const ARK_RULES_SCHEMA_VERSION: "1.0";
535
544
  /** Closed sensor vocabulary — keep in lockstep with arkRulesTypes.ARK_RULE_SENSOR_IDS. */
536
- declare const ARK_RULE_SENSORS: readonly ["aggregate-private-state", "always-valid-factory", "domain-event-on-mutation", "orchestration-only", "thin-adapter", "no-anemic-model", "invariant-coverage"];
545
+ declare const ARK_RULE_SENSORS: readonly ["aggregate-private-state", "always-valid-factory", "domain-event-on-mutation", "orchestration-only", "thin-adapter", "writes-via-aggregate", "no-anemic-model", "invariant-coverage"];
537
546
  declare const ARK_RULES_SCHEMA: {
538
547
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
539
548
  readonly $id: "https://unpkg.com/arkgate/schemas/ark.arkrules.schema.json";
@@ -584,7 +593,7 @@ declare const ARK_RULES_SCHEMA: {
584
593
  };
585
594
  readonly sensor: {
586
595
  readonly type: "string";
587
- readonly enum: readonly ["aggregate-private-state", "always-valid-factory", "domain-event-on-mutation", "orchestration-only", "thin-adapter", "no-anemic-model", "invariant-coverage"];
596
+ readonly enum: readonly ["aggregate-private-state", "always-valid-factory", "domain-event-on-mutation", "orchestration-only", "thin-adapter", "writes-via-aggregate", "no-anemic-model", "invariant-coverage"];
588
597
  };
589
598
  readonly mode: {
590
599
  readonly type: "string";
@@ -987,7 +996,7 @@ declare function evaluateArkRunEditorSensorsFromSource(input: {
987
996
  * Pure ArkOrder tier-1 sensors (ADR 0027 / 0029). Absence of arkOrder emits nothing.
988
997
  */
989
998
 
990
- declare const ARKORDER_TIER1_SENSOR_IDS: readonly ["arkorder-missing-plane", "arkorder-kernel-in-domain", "arkorder-generic-update", "arkorder-too-many-params", "arkorder-ingest-writes-xi"];
999
+ declare const ARKORDER_TIER1_SENSOR_IDS: readonly ["arkorder-missing-plane", "arkorder-kernel-in-domain", "arkorder-generic-update", "arkorder-too-many-params", "arkorder-ingest-writes-xi", "arkorder-xi-field-write"];
991
1000
  type ArkOrderTier1SensorId = (typeof ARKORDER_TIER1_SENSOR_IDS)[number];
992
1001
  declare const ARKORDER_RULE_IDS: {
993
1002
  readonly 'arkorder-missing-plane': "ARKORDER_MISSING_PLANE";
@@ -995,6 +1004,7 @@ declare const ARKORDER_RULE_IDS: {
995
1004
  readonly 'arkorder-generic-update': "ARKORDER_GENERIC_UPDATE";
996
1005
  readonly 'arkorder-too-many-params': "ARKORDER_TOO_MANY_PARAMS";
997
1006
  readonly 'arkorder-ingest-writes-xi': "ARKORDER_INGEST_WRITES_XI";
1007
+ readonly 'arkorder-xi-field-write': "ARKORDER_XI_FIELD_WRITE";
998
1008
  };
999
1009
  type ArkOrderRuleId = (typeof ARKORDER_RULE_IDS)[ArkOrderTier1SensorId];
1000
1010
  type ArkOrderSensorFinding = {
@@ -1015,6 +1025,13 @@ type EvaluateArkOrderSensorsInput = {
1015
1025
  planeCalls: readonly ResolvedArkOrderPlaneCallFact[];
1016
1026
  genericUpdates: readonly ResolvedArkOrderGenericUpdateFact[];
1017
1027
  planeRootHits: readonly ResolvedArkOrderRootHitFact[];
1028
+ xiFieldWrites?: readonly ResolvedArkOrderXiFieldWriteFact[];
1029
+ ingestWritesXi?: readonly ResolvedArkOrderIngestWriteFact[];
1030
+ releaseKeyCounts?: readonly {
1031
+ file: string;
1032
+ line: number;
1033
+ keyCount: number;
1034
+ }[];
1018
1035
  dependencies: readonly ResolvedDependencyFact[];
1019
1036
  layerForFile: (path: string) => string | null | undefined;
1020
1037
  classification?: ExtraMergeTeethClassification;