@deftai/directive-types 0.104.0 → 0.106.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.
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { ACCEPTED_VBRIEF_VERSIONS, EXTENSION_KEY_PATTERN, LEGACY_VBRIEF_CORE_SCH
2
2
  export { type EngineInfo, PLAN_ITEM_EFFORTS, type Plan, type PlanArchitecture, type PlanItem, type PlanItemEffort, type VBriefDocument, type VBriefInfo, } from "./document.js";
3
3
  export { collectExtensionProperties, type ExtensionKey, isExtensionKey, } from "./extension.js";
4
4
  export { GATE_EXIT_CONFIG_ERROR, GATE_EXIT_OK, GATE_EXIT_VIOLATION, type GateExitCode, type GateResult, } from "./gate.js";
5
- export { type HotfixCriteria, type PlanPolicy, type ProjectionProviderExpectation, type ProjectionProviderPolicy, REGISTERED_POLICY_FIELD_NAMES, type TriageScopeRule, } from "./policy.js";
5
+ export { type HotfixCriteria, type PlanPolicy, type ProjectInvariant, type ProjectInvariantContractSurface, type ProjectionProviderExpectation, type ProjectionProviderPolicy, REGISTERED_POLICY_FIELD_NAMES, type TriageScopeRule, } from "./policy.js";
6
6
  export { isVBriefReferenceType, KNOWN_REFERENCE_TYPES, type KnownReferenceType, referenceTypeMatches, type TrustLevel, type VBriefReference, } from "./reference.js";
7
7
  export { RESOLUTION_ENCODINGS, RESOLUTION_MODES, RESOLUTION_PLAN_SCHEMA_VERSION, type ResolutionEncoding, type ResolutionFacts, type ResolutionFile, type ResolutionMode, type ResolutionNextAction, type ResolutionPlan, } from "./resolution.js";
8
8
  export { FOLDER_ALLOWED_STATUSES, type Status, VALID_STATUSES, } from "./status.js";
package/dist/policy.d.ts CHANGED
@@ -22,6 +22,16 @@ export interface PlanPolicy {
22
22
  readonly allowDirectCommitsToMaster?: boolean;
23
23
  readonly wipCap?: number;
24
24
  readonly sessionRitualStalenessHours?: number | null;
25
+ /**
26
+ * Forge-outage re-probe interval in minutes (#3422).
27
+ * Integer, minimum 5, default 30. USER.md Personal wins over this field.
28
+ */
29
+ readonly forgeOutageRetryMinutes?: number | null;
30
+ /**
31
+ * Authored project-level must-not-break contracts (#3425).
32
+ * Empty or omitted is a no-op.
33
+ */
34
+ readonly projectInvariants?: readonly ProjectInvariant[];
25
35
  /**
26
36
  * Engine-vs-pin skew tolerance for the three-band skew policy (#2264).
27
37
  *
@@ -87,8 +97,29 @@ export interface PlanPolicy {
87
97
  */
88
98
  readonly override?: "minimal" | "rapid" | "standard" | "elevated" | null;
89
99
  };
100
+ /**
101
+ * Max files for an integration-to-delivery sync warn (#3390). Unset is 400.
102
+ * A maxFiles argument overrides one evaluation without writing policy.
103
+ */
104
+ readonly syncMaxFiles?: number;
90
105
  readonly [key: `x-${string}`]: unknown;
91
106
  }
107
+ /** One authored project invariant (#3425). */
108
+ export interface ProjectInvariantContractSurface {
109
+ readonly paths?: readonly string[];
110
+ readonly pathGlobs?: readonly string[];
111
+ readonly moduleIds?: readonly string[];
112
+ readonly module_ids?: readonly string[];
113
+ }
114
+ export interface ProjectInvariant {
115
+ readonly id: string;
116
+ readonly statement: string;
117
+ readonly contractSurface?: ProjectInvariantContractSurface | readonly string[];
118
+ readonly contract_surface?: ProjectInvariantContractSurface | readonly string[];
119
+ readonly paths?: readonly string[];
120
+ readonly moduleIds?: readonly string[];
121
+ readonly module_ids?: readonly string[];
122
+ }
92
123
  export interface ProjectionProviderExpectation {
93
124
  readonly provider?: string | Record<string, unknown>;
94
125
  readonly name?: string;
@@ -102,5 +133,5 @@ export interface ProjectionProviderPolicy {
102
133
  readonly [key: `x-${string}`]: unknown;
103
134
  }
104
135
  /** Canonical dotted policy field names registered by the directive engine. */
105
- export declare const REGISTERED_POLICY_FIELD_NAMES: readonly ["plan.policy.allowDirectCommitsToMaster", "plan.policy.wipCap", "plan.policy.sessionRitualStalenessHours", "plan.policy.triageScope", "plan.policy.triageScopeIgnores", "plan.policy.triageRankingLabels", "plan.policy.triageAutoClassify", "plan.policy.triageHoldMarkers", "plan.policy.triageLabelMirror", "plan.policy.swarmSubagentBackend", "plan.policy.engineSkewWindow", "plan.policy.requireHumanMerge", "plan.policy.hotfixCriteria", "plan.policy.autoDeployOnMerge", "plan.policy.ceremonyDial"];
136
+ export declare const REGISTERED_POLICY_FIELD_NAMES: readonly ["plan.policy.allowDirectCommitsToMaster", "plan.policy.wipCap", "plan.policy.sessionRitualStalenessHours", "plan.policy.forgeOutageRetryMinutes", "plan.policy.projectInvariants", "plan.policy.triageScope", "plan.policy.triageScopeIgnores", "plan.policy.triageRankingLabels", "plan.policy.triageAutoClassify", "plan.policy.triageHoldMarkers", "plan.policy.triageLabelMirror", "plan.policy.swarmSubagentBackend", "plan.policy.engineSkewWindow", "plan.policy.requireHumanMerge", "plan.policy.hotfixCriteria", "plan.policy.autoDeployOnMerge", "plan.policy.ceremonyDial", "plan.policy.syncMaxFiles"];
106
137
  //# sourceMappingURL=policy.d.ts.map
package/dist/policy.js CHANGED
@@ -3,6 +3,8 @@ export const REGISTERED_POLICY_FIELD_NAMES = [
3
3
  "plan.policy.allowDirectCommitsToMaster",
4
4
  "plan.policy.wipCap",
5
5
  "plan.policy.sessionRitualStalenessHours",
6
+ "plan.policy.forgeOutageRetryMinutes",
7
+ "plan.policy.projectInvariants",
6
8
  "plan.policy.triageScope",
7
9
  "plan.policy.triageScopeIgnores",
8
10
  "plan.policy.triageRankingLabels",
@@ -15,5 +17,6 @@ export const REGISTERED_POLICY_FIELD_NAMES = [
15
17
  "plan.policy.hotfixCriteria",
16
18
  "plan.policy.autoDeployOnMerge",
17
19
  "plan.policy.ceremonyDial",
20
+ "plan.policy.syncMaxFiles",
18
21
  ];
19
22
  //# sourceMappingURL=policy.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deftai/directive-types",
3
- "version": "0.104.0",
3
+ "version": "0.106.0",
4
4
  "description": "Shared TypeScript types for the Directive framework engine.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -614,6 +614,18 @@
614
614
  "minimum": 1,
615
615
  "description": "Maximum age, in hours, for .deft/ritual-state.json before the fail-closed session ritual verifier requires task session:start to run again. Default: 4."
616
616
  },
617
+ "forgeOutageRetryMinutes": {
618
+ "type": ["integer", "null"],
619
+ "minimum": 5,
620
+ "description": "Minutes to wait between GitHub I/O re-probes after a forge outage drop-back (#3422). Default: 30. USER.md Personal wins over this project field. null is unset (same as omit)."
621
+ },
622
+ "projectInvariants": {
623
+ "type": "array",
624
+ "description": "Authored project-level must-not-break contracts (#3425). Empty or omitted is a no-op. Each entry names an id, statement, and contract surface (paths and/or module ids).",
625
+ "items": {
626
+ "$ref": "#/$defs/ProjectInvariant"
627
+ }
628
+ },
617
629
  "requireHumanMerge": {
618
630
  "type": "boolean",
619
631
  "description": "When true, agents may open PRs but must not merge (#1193). Defaults true when autoDeployOnMerge is also true. Override: policy:allow-bot-merge --confirm or DEFT_ALLOW_BOT_MERGE=1."
@@ -631,6 +643,66 @@
631
643
  },
632
644
  "additionalProperties": true
633
645
  },
646
+ "ProjectInvariant": {
647
+ "type": "object",
648
+ "description": "One authored project invariant (#3425). Contract surface is paths and/or module ids that must not be broken.",
649
+ "required": ["id", "statement"],
650
+ "properties": {
651
+ "id": {
652
+ "type": "string",
653
+ "minLength": 1
654
+ },
655
+ "statement": {
656
+ "type": "string",
657
+ "minLength": 1
658
+ },
659
+ "contractSurface": {
660
+ "$ref": "#/$defs/ProjectInvariantContractSurface"
661
+ },
662
+ "contract_surface": {
663
+ "oneOf": [
664
+ { "$ref": "#/$defs/ProjectInvariantContractSurface" },
665
+ { "type": "array", "items": { "type": "string" } }
666
+ ]
667
+ },
668
+ "paths": {
669
+ "type": "array",
670
+ "items": { "type": "string" }
671
+ },
672
+ "moduleIds": {
673
+ "type": "array",
674
+ "items": { "type": "string" }
675
+ },
676
+ "module_ids": {
677
+ "type": "array",
678
+ "items": { "type": "string" }
679
+ }
680
+ },
681
+ "additionalProperties": true
682
+ },
683
+ "ProjectInvariantContractSurface": {
684
+ "type": "object",
685
+ "description": "Must-not-break module/contract surface: repository paths and/or codeStructure module ids.",
686
+ "properties": {
687
+ "paths": {
688
+ "type": "array",
689
+ "items": { "type": "string" }
690
+ },
691
+ "pathGlobs": {
692
+ "type": "array",
693
+ "items": { "type": "string" }
694
+ },
695
+ "moduleIds": {
696
+ "type": "array",
697
+ "items": { "type": "string" }
698
+ },
699
+ "module_ids": {
700
+ "type": "array",
701
+ "items": { "type": "string" }
702
+ }
703
+ },
704
+ "additionalProperties": true
705
+ },
634
706
  "HotfixCriteria": {
635
707
  "type": "object",
636
708
  "description": "Structural hotfix eligibility thresholds (#1193). Agent may label hotfix-candidate only; human promotes hotfix.",