@gitgov/core 1.7.0 → 1.8.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.
@@ -751,39 +751,39 @@ declare class GitGovError extends Error {
751
751
  constructor(message: string, code: string);
752
752
  }
753
753
 
754
- type index$k_ActorPayload = ActorPayload;
755
- type index$k_ActorRecord = ActorRecord;
756
- type index$k_AgentPayload = AgentPayload;
757
- type index$k_AgentRecord = AgentRecord;
758
- type index$k_ChangelogPayload = ChangelogPayload;
759
- type index$k_ChangelogRecord = ChangelogRecord;
760
- type index$k_CustomRecord = CustomRecord;
761
- type index$k_CyclePayload = CyclePayload;
762
- type index$k_CycleRecord = CycleRecord;
763
- type index$k_EmbeddedMetadataHeader = EmbeddedMetadataHeader;
764
- type index$k_EmbeddedMetadataRecord<T extends GitGovRecordPayload> = EmbeddedMetadataRecord<T>;
765
- type index$k_ExecutionPayload = ExecutionPayload;
766
- type index$k_ExecutionRecord = ExecutionRecord;
767
- type index$k_FeedbackPayload = FeedbackPayload;
768
- type index$k_FeedbackRecord = FeedbackRecord;
769
- type index$k_GitGovActorRecord = GitGovActorRecord;
770
- type index$k_GitGovAgentRecord = GitGovAgentRecord;
771
- type index$k_GitGovChangelogRecord = GitGovChangelogRecord;
772
- type index$k_GitGovCycleRecord = GitGovCycleRecord;
773
- type index$k_GitGovError = GitGovError;
774
- declare const index$k_GitGovError: typeof GitGovError;
775
- type index$k_GitGovExecutionRecord = GitGovExecutionRecord;
776
- type index$k_GitGovFeedbackRecord = GitGovFeedbackRecord;
777
- type index$k_GitGovRecord = GitGovRecord;
778
- type index$k_GitGovRecordPayload = GitGovRecordPayload;
779
- type index$k_GitGovRecordType = GitGovRecordType;
780
- type index$k_GitGovTaskRecord = GitGovTaskRecord;
781
- type index$k_Signature = Signature;
782
- type index$k_TaskPayload = TaskPayload;
783
- type index$k_TaskRecord = TaskRecord;
784
- type index$k_WorkflowMethodologyRecord = WorkflowMethodologyRecord;
785
- declare namespace index$k {
786
- export { type index$k_ActorPayload as ActorPayload, type index$k_ActorRecord as ActorRecord, type index$k_AgentPayload as AgentPayload, type index$k_AgentRecord as AgentRecord, type index$k_ChangelogPayload as ChangelogPayload, type index$k_ChangelogRecord as ChangelogRecord, type index$k_CustomRecord as CustomRecord, type index$k_CyclePayload as CyclePayload, type index$k_CycleRecord as CycleRecord, type index$k_EmbeddedMetadataHeader as EmbeddedMetadataHeader, type index$k_EmbeddedMetadataRecord as EmbeddedMetadataRecord, type index$k_ExecutionPayload as ExecutionPayload, type index$k_ExecutionRecord as ExecutionRecord, type index$k_FeedbackPayload as FeedbackPayload, type index$k_FeedbackRecord as FeedbackRecord, type index$k_GitGovActorRecord as GitGovActorRecord, type index$k_GitGovAgentRecord as GitGovAgentRecord, type index$k_GitGovChangelogRecord as GitGovChangelogRecord, type index$k_GitGovCycleRecord as GitGovCycleRecord, index$k_GitGovError as GitGovError, type index$k_GitGovExecutionRecord as GitGovExecutionRecord, type index$k_GitGovFeedbackRecord as GitGovFeedbackRecord, type index$k_GitGovRecord as GitGovRecord, type index$k_GitGovRecordPayload as GitGovRecordPayload, type index$k_GitGovRecordType as GitGovRecordType, type index$k_GitGovTaskRecord as GitGovTaskRecord, type index$k_Signature as Signature, type index$k_TaskPayload as TaskPayload, type index$k_TaskRecord as TaskRecord, type index$k_WorkflowMethodologyRecord as WorkflowMethodologyRecord };
754
+ type index$m_ActorPayload = ActorPayload;
755
+ type index$m_ActorRecord = ActorRecord;
756
+ type index$m_AgentPayload = AgentPayload;
757
+ type index$m_AgentRecord = AgentRecord;
758
+ type index$m_ChangelogPayload = ChangelogPayload;
759
+ type index$m_ChangelogRecord = ChangelogRecord;
760
+ type index$m_CustomRecord = CustomRecord;
761
+ type index$m_CyclePayload = CyclePayload;
762
+ type index$m_CycleRecord = CycleRecord;
763
+ type index$m_EmbeddedMetadataHeader = EmbeddedMetadataHeader;
764
+ type index$m_EmbeddedMetadataRecord<T extends GitGovRecordPayload> = EmbeddedMetadataRecord<T>;
765
+ type index$m_ExecutionPayload = ExecutionPayload;
766
+ type index$m_ExecutionRecord = ExecutionRecord;
767
+ type index$m_FeedbackPayload = FeedbackPayload;
768
+ type index$m_FeedbackRecord = FeedbackRecord;
769
+ type index$m_GitGovActorRecord = GitGovActorRecord;
770
+ type index$m_GitGovAgentRecord = GitGovAgentRecord;
771
+ type index$m_GitGovChangelogRecord = GitGovChangelogRecord;
772
+ type index$m_GitGovCycleRecord = GitGovCycleRecord;
773
+ type index$m_GitGovError = GitGovError;
774
+ declare const index$m_GitGovError: typeof GitGovError;
775
+ type index$m_GitGovExecutionRecord = GitGovExecutionRecord;
776
+ type index$m_GitGovFeedbackRecord = GitGovFeedbackRecord;
777
+ type index$m_GitGovRecord = GitGovRecord;
778
+ type index$m_GitGovRecordPayload = GitGovRecordPayload;
779
+ type index$m_GitGovRecordType = GitGovRecordType;
780
+ type index$m_GitGovTaskRecord = GitGovTaskRecord;
781
+ type index$m_Signature = Signature;
782
+ type index$m_TaskPayload = TaskPayload;
783
+ type index$m_TaskRecord = TaskRecord;
784
+ type index$m_WorkflowMethodologyRecord = WorkflowMethodologyRecord;
785
+ declare namespace index$m {
786
+ export { type index$m_ActorPayload as ActorPayload, type index$m_ActorRecord as ActorRecord, type index$m_AgentPayload as AgentPayload, type index$m_AgentRecord as AgentRecord, type index$m_ChangelogPayload as ChangelogPayload, type index$m_ChangelogRecord as ChangelogRecord, type index$m_CustomRecord as CustomRecord, type index$m_CyclePayload as CyclePayload, type index$m_CycleRecord as CycleRecord, type index$m_EmbeddedMetadataHeader as EmbeddedMetadataHeader, type index$m_EmbeddedMetadataRecord as EmbeddedMetadataRecord, type index$m_ExecutionPayload as ExecutionPayload, type index$m_ExecutionRecord as ExecutionRecord, type index$m_FeedbackPayload as FeedbackPayload, type index$m_FeedbackRecord as FeedbackRecord, type index$m_GitGovActorRecord as GitGovActorRecord, type index$m_GitGovAgentRecord as GitGovAgentRecord, type index$m_GitGovChangelogRecord as GitGovChangelogRecord, type index$m_GitGovCycleRecord as GitGovCycleRecord, index$m_GitGovError as GitGovError, type index$m_GitGovExecutionRecord as GitGovExecutionRecord, type index$m_GitGovFeedbackRecord as GitGovFeedbackRecord, type index$m_GitGovRecord as GitGovRecord, type index$m_GitGovRecordPayload as GitGovRecordPayload, type index$m_GitGovRecordType as GitGovRecordType, type index$m_GitGovTaskRecord as GitGovTaskRecord, type index$m_Signature as Signature, type index$m_TaskPayload as TaskPayload, type index$m_TaskRecord as TaskRecord, type index$m_WorkflowMethodologyRecord as WorkflowMethodologyRecord };
787
787
  }
788
788
 
789
789
  type StorablePayload$1 = Exclude<GitGovRecordPayload, CustomRecord>;
@@ -816,11 +816,11 @@ declare class RecordStore<T extends StorablePayload$1> {
816
816
  exists(recordId: string): Promise<boolean>;
817
817
  }
818
818
 
819
- type index$j_FsDependencies = FsDependencies;
820
- type index$j_RecordStore<T extends StorablePayload$1> = RecordStore<T>;
821
- declare const index$j_RecordStore: typeof RecordStore;
822
- declare namespace index$j {
823
- export { type index$j_FsDependencies as FsDependencies, index$j_RecordStore as RecordStore };
819
+ type index$l_FsDependencies = FsDependencies;
820
+ type index$l_RecordStore<T extends StorablePayload$1> = RecordStore<T>;
821
+ declare const index$l_RecordStore: typeof RecordStore;
822
+ declare namespace index$l {
823
+ export { type index$l_FsDependencies as FsDependencies, index$l_RecordStore as RecordStore };
824
824
  }
825
825
 
826
826
  /**
@@ -1180,31 +1180,31 @@ declare function publishEvent(event: GitGovEvent): void;
1180
1180
  */
1181
1181
  declare function subscribeToEvent<T extends GitGovEvent>(eventType: T['type'], handler: EventHandler<T>): EventSubscription;
1182
1182
 
1183
- type index$i_ActivityEvent = ActivityEvent;
1184
- type index$i_ActorCreatedEvent = ActorCreatedEvent;
1185
- type index$i_ActorRevokedEvent = ActorRevokedEvent;
1186
- type index$i_AgentRegisteredEvent = AgentRegisteredEvent;
1187
- type index$i_BaseEvent = BaseEvent;
1188
- type index$i_ChangelogCreatedEvent = ChangelogCreatedEvent;
1189
- type index$i_CycleCreatedEvent = CycleCreatedEvent;
1190
- type index$i_CycleStatusChangedEvent = CycleStatusChangedEvent;
1191
- type index$i_EventBus = EventBus;
1192
- declare const index$i_EventBus: typeof EventBus;
1193
- type index$i_EventHandler<T extends BaseEvent = BaseEvent> = EventHandler<T>;
1194
- type index$i_EventMetadata = EventMetadata;
1195
- type index$i_EventSubscription = EventSubscription;
1196
- type index$i_ExecutionCreatedEvent = ExecutionCreatedEvent;
1197
- type index$i_FeedbackCreatedEvent = FeedbackCreatedEvent;
1198
- type index$i_GitGovEvent = GitGovEvent;
1199
- type index$i_IEventStream = IEventStream;
1200
- type index$i_SystemDailyTickEvent = SystemDailyTickEvent;
1201
- type index$i_TaskCreatedEvent = TaskCreatedEvent;
1202
- type index$i_TaskStatusChangedEvent = TaskStatusChangedEvent;
1203
- declare const index$i_eventBus: typeof eventBus;
1204
- declare const index$i_publishEvent: typeof publishEvent;
1205
- declare const index$i_subscribeToEvent: typeof subscribeToEvent;
1206
- declare namespace index$i {
1207
- export { type index$i_ActivityEvent as ActivityEvent, type index$i_ActorCreatedEvent as ActorCreatedEvent, type index$i_ActorRevokedEvent as ActorRevokedEvent, type index$i_AgentRegisteredEvent as AgentRegisteredEvent, type index$i_BaseEvent as BaseEvent, type index$i_ChangelogCreatedEvent as ChangelogCreatedEvent, type index$i_CycleCreatedEvent as CycleCreatedEvent, type index$i_CycleStatusChangedEvent as CycleStatusChangedEvent, index$i_EventBus as EventBus, type index$i_EventHandler as EventHandler, type index$i_EventMetadata as EventMetadata, type index$i_EventSubscription as EventSubscription, type index$i_ExecutionCreatedEvent as ExecutionCreatedEvent, type index$i_FeedbackCreatedEvent as FeedbackCreatedEvent, type index$i_GitGovEvent as GitGovEvent, type index$i_IEventStream as IEventStream, type index$i_SystemDailyTickEvent as SystemDailyTickEvent, type index$i_TaskCreatedEvent as TaskCreatedEvent, type index$i_TaskStatusChangedEvent as TaskStatusChangedEvent, index$i_eventBus as eventBus, index$i_publishEvent as publishEvent, index$i_subscribeToEvent as subscribeToEvent };
1183
+ type index$k_ActivityEvent = ActivityEvent;
1184
+ type index$k_ActorCreatedEvent = ActorCreatedEvent;
1185
+ type index$k_ActorRevokedEvent = ActorRevokedEvent;
1186
+ type index$k_AgentRegisteredEvent = AgentRegisteredEvent;
1187
+ type index$k_BaseEvent = BaseEvent;
1188
+ type index$k_ChangelogCreatedEvent = ChangelogCreatedEvent;
1189
+ type index$k_CycleCreatedEvent = CycleCreatedEvent;
1190
+ type index$k_CycleStatusChangedEvent = CycleStatusChangedEvent;
1191
+ type index$k_EventBus = EventBus;
1192
+ declare const index$k_EventBus: typeof EventBus;
1193
+ type index$k_EventHandler<T extends BaseEvent = BaseEvent> = EventHandler<T>;
1194
+ type index$k_EventMetadata = EventMetadata;
1195
+ type index$k_EventSubscription = EventSubscription;
1196
+ type index$k_ExecutionCreatedEvent = ExecutionCreatedEvent;
1197
+ type index$k_FeedbackCreatedEvent = FeedbackCreatedEvent;
1198
+ type index$k_GitGovEvent = GitGovEvent;
1199
+ type index$k_IEventStream = IEventStream;
1200
+ type index$k_SystemDailyTickEvent = SystemDailyTickEvent;
1201
+ type index$k_TaskCreatedEvent = TaskCreatedEvent;
1202
+ type index$k_TaskStatusChangedEvent = TaskStatusChangedEvent;
1203
+ declare const index$k_eventBus: typeof eventBus;
1204
+ declare const index$k_publishEvent: typeof publishEvent;
1205
+ declare const index$k_subscribeToEvent: typeof subscribeToEvent;
1206
+ declare namespace index$k {
1207
+ export { type index$k_ActivityEvent as ActivityEvent, type index$k_ActorCreatedEvent as ActorCreatedEvent, type index$k_ActorRevokedEvent as ActorRevokedEvent, type index$k_AgentRegisteredEvent as AgentRegisteredEvent, type index$k_BaseEvent as BaseEvent, type index$k_ChangelogCreatedEvent as ChangelogCreatedEvent, type index$k_CycleCreatedEvent as CycleCreatedEvent, type index$k_CycleStatusChangedEvent as CycleStatusChangedEvent, index$k_EventBus as EventBus, type index$k_EventHandler as EventHandler, type index$k_EventMetadata as EventMetadata, type index$k_EventSubscription as EventSubscription, type index$k_ExecutionCreatedEvent as ExecutionCreatedEvent, type index$k_FeedbackCreatedEvent as FeedbackCreatedEvent, type index$k_GitGovEvent as GitGovEvent, type index$k_IEventStream as IEventStream, type index$k_SystemDailyTickEvent as SystemDailyTickEvent, type index$k_TaskCreatedEvent as TaskCreatedEvent, type index$k_TaskStatusChangedEvent as TaskStatusChangedEvent, index$k_eventBus as eventBus, index$k_publishEvent as publishEvent, index$k_subscribeToEvent as subscribeToEvent };
1208
1208
  }
1209
1209
 
1210
1210
  /**
@@ -1284,12 +1284,12 @@ declare class IdentityAdapter implements IIdentityAdapter {
1284
1284
  listAgentRecords(): Promise<AgentRecord[]>;
1285
1285
  }
1286
1286
 
1287
- type index$h_IIdentityAdapter = IIdentityAdapter;
1288
- type index$h_IdentityAdapter = IdentityAdapter;
1289
- declare const index$h_IdentityAdapter: typeof IdentityAdapter;
1290
- type index$h_IdentityAdapterDependencies = IdentityAdapterDependencies;
1291
- declare namespace index$h {
1292
- export { type index$h_IIdentityAdapter as IIdentityAdapter, index$h_IdentityAdapter as IdentityAdapter, type index$h_IdentityAdapterDependencies as IdentityAdapterDependencies };
1287
+ type index$j_IIdentityAdapter = IIdentityAdapter;
1288
+ type index$j_IdentityAdapter = IdentityAdapter;
1289
+ declare const index$j_IdentityAdapter: typeof IdentityAdapter;
1290
+ type index$j_IdentityAdapterDependencies = IdentityAdapterDependencies;
1291
+ declare namespace index$j {
1292
+ export { type index$j_IIdentityAdapter as IIdentityAdapter, index$j_IdentityAdapter as IdentityAdapter, type index$j_IdentityAdapterDependencies as IdentityAdapterDependencies };
1293
1293
  }
1294
1294
 
1295
1295
  /**
@@ -1407,13 +1407,13 @@ declare class FeedbackAdapter implements IFeedbackAdapter {
1407
1407
  private buildThread;
1408
1408
  }
1409
1409
 
1410
- type index$g_FeedbackAdapter = FeedbackAdapter;
1411
- declare const index$g_FeedbackAdapter: typeof FeedbackAdapter;
1412
- type index$g_FeedbackAdapterDependencies = FeedbackAdapterDependencies;
1413
- type index$g_FeedbackThread = FeedbackThread;
1414
- type index$g_IFeedbackAdapter = IFeedbackAdapter;
1415
- declare namespace index$g {
1416
- export { index$g_FeedbackAdapter as FeedbackAdapter, type index$g_FeedbackAdapterDependencies as FeedbackAdapterDependencies, type index$g_FeedbackThread as FeedbackThread, type index$g_IFeedbackAdapter as IFeedbackAdapter };
1410
+ type index$i_FeedbackAdapter = FeedbackAdapter;
1411
+ declare const index$i_FeedbackAdapter: typeof FeedbackAdapter;
1412
+ type index$i_FeedbackAdapterDependencies = FeedbackAdapterDependencies;
1413
+ type index$i_FeedbackThread = FeedbackThread;
1414
+ type index$i_IFeedbackAdapter = IFeedbackAdapter;
1415
+ declare namespace index$i {
1416
+ export { index$i_FeedbackAdapter as FeedbackAdapter, type index$i_FeedbackAdapterDependencies as FeedbackAdapterDependencies, type index$i_FeedbackThread as FeedbackThread, type index$i_IFeedbackAdapter as IFeedbackAdapter };
1417
1417
  }
1418
1418
 
1419
1419
  /**
@@ -1501,12 +1501,12 @@ declare class ExecutionAdapter implements IExecutionAdapter {
1501
1501
  private isFirstExecutionForTask;
1502
1502
  }
1503
1503
 
1504
- type index$f_ExecutionAdapter = ExecutionAdapter;
1505
- declare const index$f_ExecutionAdapter: typeof ExecutionAdapter;
1506
- type index$f_ExecutionAdapterDependencies = ExecutionAdapterDependencies;
1507
- type index$f_IExecutionAdapter = IExecutionAdapter;
1508
- declare namespace index$f {
1509
- export { index$f_ExecutionAdapter as ExecutionAdapter, type index$f_ExecutionAdapterDependencies as ExecutionAdapterDependencies, type index$f_IExecutionAdapter as IExecutionAdapter };
1504
+ type index$h_ExecutionAdapter = ExecutionAdapter;
1505
+ declare const index$h_ExecutionAdapter: typeof ExecutionAdapter;
1506
+ type index$h_ExecutionAdapterDependencies = ExecutionAdapterDependencies;
1507
+ type index$h_IExecutionAdapter = IExecutionAdapter;
1508
+ declare namespace index$h {
1509
+ export { index$h_ExecutionAdapter as ExecutionAdapter, type index$h_ExecutionAdapterDependencies as ExecutionAdapterDependencies, type index$h_IExecutionAdapter as IExecutionAdapter };
1510
1510
  }
1511
1511
 
1512
1512
  /**
@@ -1599,13 +1599,13 @@ declare class ChangelogAdapter implements IChangelogAdapter {
1599
1599
  getChangelogsByEntity(entityId: string, _entityType?: string): Promise<ChangelogRecord[]>;
1600
1600
  }
1601
1601
 
1602
- type index$e_ChangelogAdapter = ChangelogAdapter;
1603
- declare const index$e_ChangelogAdapter: typeof ChangelogAdapter;
1604
- type index$e_ChangelogAdapterDependencies = ChangelogAdapterDependencies;
1605
- type index$e_ChangelogListOptions = ChangelogListOptions;
1606
- type index$e_IChangelogAdapter = IChangelogAdapter;
1607
- declare namespace index$e {
1608
- export { index$e_ChangelogAdapter as ChangelogAdapter, type index$e_ChangelogAdapterDependencies as ChangelogAdapterDependencies, type index$e_ChangelogListOptions as ChangelogListOptions, type index$e_IChangelogAdapter as IChangelogAdapter };
1602
+ type index$g_ChangelogAdapter = ChangelogAdapter;
1603
+ declare const index$g_ChangelogAdapter: typeof ChangelogAdapter;
1604
+ type index$g_ChangelogAdapterDependencies = ChangelogAdapterDependencies;
1605
+ type index$g_ChangelogListOptions = ChangelogListOptions;
1606
+ type index$g_IChangelogAdapter = IChangelogAdapter;
1607
+ declare namespace index$g {
1608
+ export { index$g_ChangelogAdapter as ChangelogAdapter, type index$g_ChangelogAdapterDependencies as ChangelogAdapterDependencies, type index$g_ChangelogListOptions as ChangelogListOptions, type index$g_IChangelogAdapter as IChangelogAdapter };
1609
1609
  }
1610
1610
 
1611
1611
  /**
@@ -1617,9 +1617,9 @@ type MetricsAdapterDependencies = {
1617
1617
  feedbackStore?: RecordStore<FeedbackRecord>;
1618
1618
  executionStore?: RecordStore<ExecutionRecord>;
1619
1619
  actorStore?: RecordStore<ActorRecord>;
1620
- platformApi?: IPlatformApi$1;
1620
+ platformApi?: IPlatformApi;
1621
1621
  };
1622
- interface IPlatformApi$1 {
1622
+ interface IPlatformApi {
1623
1623
  getTokenConsumption(timeframe: string): Promise<TokenConsumption[]>;
1624
1624
  }
1625
1625
  type TokenConsumption = {
@@ -1790,16 +1790,247 @@ declare class MetricsAdapter implements IMetricsAdapter {
1790
1790
  calculateAgentExecutionTime(_executions: ExecutionRecord[]): number;
1791
1791
  }
1792
1792
 
1793
- type index$d_CollaborationMetrics = CollaborationMetrics;
1794
- type index$d_IMetricsAdapter = IMetricsAdapter;
1795
- type index$d_MetricsAdapter = MetricsAdapter;
1796
- declare const index$d_MetricsAdapter: typeof MetricsAdapter;
1797
- type index$d_MetricsAdapterDependencies = MetricsAdapterDependencies;
1798
- type index$d_ProductivityMetrics = ProductivityMetrics;
1799
- type index$d_SystemStatus = SystemStatus;
1800
- type index$d_TaskHealthReport = TaskHealthReport;
1801
- declare namespace index$d {
1802
- export { type index$d_CollaborationMetrics as CollaborationMetrics, type index$d_IMetricsAdapter as IMetricsAdapter, index$d_MetricsAdapter as MetricsAdapter, type index$d_MetricsAdapterDependencies as MetricsAdapterDependencies, type index$d_ProductivityMetrics as ProductivityMetrics, type index$d_SystemStatus as SystemStatus, type index$d_TaskHealthReport as TaskHealthReport };
1793
+ type index$f_CollaborationMetrics = CollaborationMetrics;
1794
+ type index$f_IMetricsAdapter = IMetricsAdapter;
1795
+ type index$f_MetricsAdapter = MetricsAdapter;
1796
+ declare const index$f_MetricsAdapter: typeof MetricsAdapter;
1797
+ type index$f_MetricsAdapterDependencies = MetricsAdapterDependencies;
1798
+ type index$f_ProductivityMetrics = ProductivityMetrics;
1799
+ type index$f_SystemStatus = SystemStatus;
1800
+ type index$f_TaskHealthReport = TaskHealthReport;
1801
+ declare namespace index$f {
1802
+ export { type index$f_CollaborationMetrics as CollaborationMetrics, type index$f_IMetricsAdapter as IMetricsAdapter, index$f_MetricsAdapter as MetricsAdapter, type index$f_MetricsAdapterDependencies as MetricsAdapterDependencies, type index$f_ProductivityMetrics as ProductivityMetrics, type index$f_SystemStatus as SystemStatus, type index$f_TaskHealthReport as TaskHealthReport };
1803
+ }
1804
+
1805
+ /**
1806
+ * GitGovernance Configuration Types
1807
+ * Based on config_file.md blueprint
1808
+ */
1809
+ interface GitGovConfig {
1810
+ protocolVersion: string;
1811
+ projectId: string;
1812
+ projectName: string;
1813
+ rootCycle: string;
1814
+ state?: {
1815
+ branch?: string;
1816
+ sync?: {
1817
+ strategy?: "manual" | "immediate" | "batched";
1818
+ maxRetries?: number;
1819
+ pushIntervalSeconds?: number;
1820
+ batchIntervalSeconds?: number;
1821
+ };
1822
+ defaults?: {
1823
+ pullScheduler?: {
1824
+ defaultIntervalSeconds?: number;
1825
+ defaultEnabled?: boolean;
1826
+ defaultContinueOnNetworkError?: boolean;
1827
+ defaultStopOnConflict?: boolean;
1828
+ };
1829
+ fileWatcher?: {
1830
+ defaultDebounceMs?: number;
1831
+ defaultIgnoredPatterns?: string[];
1832
+ };
1833
+ };
1834
+ };
1835
+ }
1836
+ /**
1837
+ * GitGovernance Session State Types
1838
+ * Based on session_state.md blueprint
1839
+ */
1840
+ interface SyncStatus {
1841
+ lastSyncPush?: string;
1842
+ lastSyncPull?: string;
1843
+ status?: 'synced' | 'pending' | 'pulling' | 'pushing' | 'conflict';
1844
+ lastError?: string;
1845
+ }
1846
+ interface ActorState {
1847
+ activeTaskId?: string | undefined;
1848
+ activeCycleId?: string | undefined;
1849
+ lastSync?: string;
1850
+ syncStatus?: SyncStatus;
1851
+ [key: string]: any;
1852
+ }
1853
+ interface GitGovSession {
1854
+ cloud?: {
1855
+ sessionToken?: string;
1856
+ };
1857
+ lastSession?: {
1858
+ actorId: string;
1859
+ timestamp: string;
1860
+ };
1861
+ actorState?: Record<string, ActorState>;
1862
+ syncPreferences?: {
1863
+ pullScheduler?: {
1864
+ enabled?: boolean;
1865
+ pullIntervalSeconds?: number;
1866
+ continueOnNetworkError?: boolean;
1867
+ stopOnConflict?: boolean;
1868
+ };
1869
+ fileWatcher?: {
1870
+ enabled?: boolean;
1871
+ debounceMs?: number;
1872
+ ignoredPatterns?: string[];
1873
+ };
1874
+ };
1875
+ }
1876
+ /**
1877
+ * Configuration Manager Class
1878
+ * Provides typed access to GitGovernance configuration and session state
1879
+ */
1880
+ declare class ConfigManager {
1881
+ private configPath;
1882
+ private sessionPath;
1883
+ constructor(projectRootPath?: string);
1884
+ /**
1885
+ * Load GitGovernance configuration
1886
+ */
1887
+ loadConfig(): Promise<GitGovConfig | null>;
1888
+ /**
1889
+ * Load GitGovernance session state
1890
+ */
1891
+ loadSession(): Promise<GitGovSession | null>;
1892
+ /**
1893
+ * Get root cycle from configuration
1894
+ */
1895
+ getRootCycle(): Promise<string | null>;
1896
+ /**
1897
+ * Get project information from configuration
1898
+ */
1899
+ getProjectInfo(): Promise<{
1900
+ id: string;
1901
+ name: string;
1902
+ } | null>;
1903
+ /**
1904
+ * Get actor state for a specific actor
1905
+ */
1906
+ getActorState(actorId: string): Promise<ActorState | null>;
1907
+ /**
1908
+ * Update actor state for a specific actor
1909
+ */
1910
+ updateActorState(actorId: string, state: Partial<ActorState>): Promise<void>;
1911
+ /**
1912
+ * Get cloud session token
1913
+ */
1914
+ getCloudSessionToken(): Promise<string | null>;
1915
+ /**
1916
+ * Get complete context information for an actor
1917
+ * Useful for agents to understand current working context
1918
+ * Returns information from both config.json (project-level) and .session.json (actor-level)
1919
+ */
1920
+ getActorContext(actorId: string): Promise<{
1921
+ actorId: string;
1922
+ activeCycleId: string | null;
1923
+ activeTaskId: string | null;
1924
+ rootCycle: string | null;
1925
+ projectInfo: {
1926
+ id: string;
1927
+ name: string;
1928
+ } | null;
1929
+ syncStatus: SyncStatus | null;
1930
+ }>;
1931
+ /**
1932
+ * Get sync configuration from config.json
1933
+ * Returns sync strategy and related settings with defaults
1934
+ */
1935
+ getSyncConfig(): Promise<{
1936
+ strategy: "manual" | "immediate" | "batched";
1937
+ maxRetries: number;
1938
+ pushIntervalSeconds: number;
1939
+ batchIntervalSeconds: number;
1940
+ } | null>;
1941
+ /**
1942
+ * Get sync defaults from config.json
1943
+ * Returns recommended defaults for pullScheduler and fileWatcher
1944
+ */
1945
+ getSyncDefaults(): Promise<{
1946
+ pullScheduler: {
1947
+ defaultIntervalSeconds: number;
1948
+ defaultEnabled: boolean;
1949
+ defaultContinueOnNetworkError: boolean;
1950
+ defaultStopOnConflict: boolean;
1951
+ };
1952
+ fileWatcher: {
1953
+ defaultDebounceMs: number;
1954
+ defaultIgnoredPatterns: string[];
1955
+ };
1956
+ }>;
1957
+ /**
1958
+ * Resolve PullScheduler configuration with priority logic:
1959
+ * 1. Local preferences (.session.json syncPreferences)
1960
+ * 2. Project defaults (config.json state.defaults)
1961
+ * 3. Hardcoded fallbacks
1962
+ */
1963
+ resolvePullSchedulerConfig(): Promise<{
1964
+ enabled: boolean;
1965
+ pullIntervalSeconds: number;
1966
+ continueOnNetworkError: boolean;
1967
+ stopOnConflict: boolean;
1968
+ }>;
1969
+ /**
1970
+ * Resolve FileWatcher configuration with priority logic:
1971
+ * 1. Local preferences (.session.json syncPreferences)
1972
+ * 2. Project defaults (config.json state.defaults)
1973
+ * 3. Hardcoded fallbacks
1974
+ */
1975
+ resolveFileWatcherConfig(): Promise<{
1976
+ enabled: boolean;
1977
+ debounceMs: number;
1978
+ ignoredPatterns: string[];
1979
+ }>;
1980
+ /**
1981
+ * Update sync preferences in .session.json
1982
+ * These are local machine preferences that override project defaults
1983
+ */
1984
+ updateSyncPreferences(preferences: {
1985
+ pullScheduler?: Partial<{
1986
+ enabled: boolean;
1987
+ pullIntervalSeconds: number;
1988
+ continueOnNetworkError: boolean;
1989
+ stopOnConflict: boolean;
1990
+ }>;
1991
+ fileWatcher?: Partial<{
1992
+ enabled: boolean;
1993
+ debounceMs: number;
1994
+ ignoredPatterns: string[];
1995
+ }>;
1996
+ }): Promise<void>;
1997
+ /**
1998
+ * Finds the project root by searching upwards for a .git directory.
1999
+ * Caches the result for subsequent calls.
2000
+ * @param startPath The path to start searching from. Defaults to the current working directory.
2001
+ * @returns The absolute path to the project root, or null if not found.
2002
+ */
2003
+ static findProjectRoot(startPath?: string): string | null;
2004
+ /**
2005
+ * Finds the appropriate project root by searching upwards.
2006
+ * First looks for .gitgov (initialized project), then .git (for init).
2007
+ * @param startPath The path to start searching from. Defaults to the current working directory.
2008
+ * @returns The absolute path to the project root, or null if not found.
2009
+ */
2010
+ static findGitgovRoot(startPath?: string): string | null;
2011
+ /**
2012
+ * Gets the .gitgov directory path from project root
2013
+ */
2014
+ static getGitgovPath(): string;
2015
+ /**
2016
+ * Checks if current directory is a GitGovernance project
2017
+ */
2018
+ static isGitgovProject(): boolean;
2019
+ }
2020
+ /**
2021
+ * Create a ConfigManager instance for the current project
2022
+ */
2023
+ declare function createConfigManager(projectRoot?: string): ConfigManager;
2024
+
2025
+ type index$e_ActorState = ActorState;
2026
+ type index$e_ConfigManager = ConfigManager;
2027
+ declare const index$e_ConfigManager: typeof ConfigManager;
2028
+ type index$e_GitGovConfig = GitGovConfig;
2029
+ type index$e_GitGovSession = GitGovSession;
2030
+ type index$e_SyncStatus = SyncStatus;
2031
+ declare const index$e_createConfigManager: typeof createConfigManager;
2032
+ declare namespace index$e {
2033
+ export { type index$e_ActorState as ActorState, index$e_ConfigManager as ConfigManager, type index$e_GitGovConfig as GitGovConfig, type index$e_GitGovSession as GitGovSession, type index$e_SyncStatus as SyncStatus, index$e_createConfigManager as createConfigManager };
1803
2034
  }
1804
2035
 
1805
2036
  type TaskStatus = TaskRecord['status'];
@@ -1871,12 +2102,12 @@ declare class WorkflowMethodologyAdapter implements IWorkflowMethodology {
1871
2102
  getAvailableTransitions(from: TaskStatus): Promise<TransitionRule[]>;
1872
2103
  }
1873
2104
 
1874
- type index$c_IWorkflowMethodology = IWorkflowMethodology;
1875
- type index$c_WorkflowMethodologyAdapter = WorkflowMethodologyAdapter;
1876
- declare const index$c_WorkflowMethodologyAdapter: typeof WorkflowMethodologyAdapter;
1877
- type index$c_WorkflowMethodologyAdapterDependencies = WorkflowMethodologyAdapterDependencies;
1878
- declare namespace index$c {
1879
- export { type index$c_IWorkflowMethodology as IWorkflowMethodology, type ValidationContext$1 as ValidationContext, index$c_WorkflowMethodologyAdapter as WorkflowMethodologyAdapter, type index$c_WorkflowMethodologyAdapterDependencies as WorkflowMethodologyAdapterDependencies };
2105
+ type index$d_IWorkflowMethodology = IWorkflowMethodology;
2106
+ type index$d_WorkflowMethodologyAdapter = WorkflowMethodologyAdapter;
2107
+ declare const index$d_WorkflowMethodologyAdapter: typeof WorkflowMethodologyAdapter;
2108
+ type index$d_WorkflowMethodologyAdapterDependencies = WorkflowMethodologyAdapterDependencies;
2109
+ declare namespace index$d {
2110
+ export { type index$d_IWorkflowMethodology as IWorkflowMethodology, type ValidationContext$1 as ValidationContext, index$d_WorkflowMethodologyAdapter as WorkflowMethodologyAdapter, type index$d_WorkflowMethodologyAdapterDependencies as WorkflowMethodologyAdapterDependencies };
1880
2111
  }
1881
2112
 
1882
2113
  /**
@@ -1896,6 +2127,7 @@ type BacklogAdapterDependencies = {
1896
2127
  planningMethodologyAdapter?: IWorkflowMethodology;
1897
2128
  identity: IdentityAdapter;
1898
2129
  eventBus: IEventStream;
2130
+ configManager: ConfigManager;
1899
2131
  config?: BacklogAdapterConfig;
1900
2132
  };
1901
2133
  /**
@@ -1965,6 +2197,7 @@ declare class BacklogAdapter implements IBacklogAdapter {
1965
2197
  private workflowMethodologyAdapter;
1966
2198
  private identity;
1967
2199
  private eventBus;
2200
+ private configManager;
1968
2201
  private config;
1969
2202
  constructor(dependencies: BacklogAdapterDependencies);
1970
2203
  /**
@@ -2085,7 +2318,7 @@ declare class BacklogAdapter implements IBacklogAdapter {
2085
2318
  /**
2086
2319
  * Updates a cycle with new payload
2087
2320
  */
2088
- updateCycle(cycleId: string, payload: Partial<CycleRecord>): Promise<CycleRecord>;
2321
+ updateCycle(cycleId: string, payload: Partial<CycleRecord>, actorId?: string): Promise<CycleRecord>;
2089
2322
  /**
2090
2323
  * Creates bidirectional link between task and cycle
2091
2324
  */
@@ -2106,13 +2339,13 @@ declare class BacklogAdapter implements IBacklogAdapter {
2106
2339
  processChanges(_changes: unknown[]): Promise<ExecutionRecord[]>;
2107
2340
  }
2108
2341
 
2109
- type index$b_BacklogAdapter = BacklogAdapter;
2110
- declare const index$b_BacklogAdapter: typeof BacklogAdapter;
2111
- type index$b_BacklogAdapterConfig = BacklogAdapterConfig;
2112
- type index$b_BacklogAdapterDependencies = BacklogAdapterDependencies;
2113
- type index$b_IBacklogAdapter = IBacklogAdapter;
2114
- declare namespace index$b {
2115
- export { index$b_BacklogAdapter as BacklogAdapter, type index$b_BacklogAdapterConfig as BacklogAdapterConfig, type index$b_BacklogAdapterDependencies as BacklogAdapterDependencies, type index$b_IBacklogAdapter as IBacklogAdapter };
2342
+ type index$c_BacklogAdapter = BacklogAdapter;
2343
+ declare const index$c_BacklogAdapter: typeof BacklogAdapter;
2344
+ type index$c_BacklogAdapterConfig = BacklogAdapterConfig;
2345
+ type index$c_BacklogAdapterDependencies = BacklogAdapterDependencies;
2346
+ type index$c_IBacklogAdapter = IBacklogAdapter;
2347
+ declare namespace index$c {
2348
+ export { index$c_BacklogAdapter as BacklogAdapter, type index$c_BacklogAdapterConfig as BacklogAdapterConfig, type index$c_BacklogAdapterDependencies as BacklogAdapterDependencies, type index$c_IBacklogAdapter as IBacklogAdapter };
2116
2349
  }
2117
2350
 
2118
2351
  /**
@@ -2471,138 +2704,723 @@ declare class FileIndexerAdapter implements IIndexerAdapter {
2471
2704
  private getTimestampFromId;
2472
2705
  }
2473
2706
 
2474
- type index$a_AllRecords = AllRecords;
2475
- type index$a_DerivedStateSets = DerivedStateSets;
2476
- type index$a_DerivedStates = DerivedStates;
2477
- type index$a_EnrichedTaskRecord = EnrichedTaskRecord;
2478
- type index$a_FileIndexerAdapter = FileIndexerAdapter;
2479
- declare const index$a_FileIndexerAdapter: typeof FileIndexerAdapter;
2480
- type index$a_IIndexerAdapter = IIndexerAdapter;
2481
- type index$a_IndexData = IndexData;
2482
- type index$a_IndexGenerationReport = IndexGenerationReport;
2483
- type index$a_IndexerAdapterDependencies = IndexerAdapterDependencies;
2484
- type index$a_IntegrityError = IntegrityError;
2485
- type index$a_IntegrityReport = IntegrityReport;
2486
- type index$a_IntegrityWarning = IntegrityWarning;
2487
- declare namespace index$a {
2488
- export { type index$a_AllRecords as AllRecords, type index$a_DerivedStateSets as DerivedStateSets, type index$a_DerivedStates as DerivedStates, type index$a_EnrichedTaskRecord as EnrichedTaskRecord, index$a_FileIndexerAdapter as FileIndexerAdapter, type index$a_IIndexerAdapter as IIndexerAdapter, type index$a_IndexData as IndexData, type index$a_IndexGenerationReport as IndexGenerationReport, type index$a_IndexerAdapterDependencies as IndexerAdapterDependencies, type index$a_IntegrityError as IntegrityError, type index$a_IntegrityReport as IntegrityReport, type index$a_IntegrityWarning as IntegrityWarning };
2707
+ type index$b_AllRecords = AllRecords;
2708
+ type index$b_DerivedStateSets = DerivedStateSets;
2709
+ type index$b_DerivedStates = DerivedStates;
2710
+ type index$b_EnrichedTaskRecord = EnrichedTaskRecord;
2711
+ type index$b_FileIndexerAdapter = FileIndexerAdapter;
2712
+ declare const index$b_FileIndexerAdapter: typeof FileIndexerAdapter;
2713
+ type index$b_IIndexerAdapter = IIndexerAdapter;
2714
+ type index$b_IndexData = IndexData;
2715
+ type index$b_IndexGenerationReport = IndexGenerationReport;
2716
+ type index$b_IndexerAdapterDependencies = IndexerAdapterDependencies;
2717
+ type index$b_IntegrityError = IntegrityError;
2718
+ type index$b_IntegrityReport = IntegrityReport;
2719
+ type index$b_IntegrityWarning = IntegrityWarning;
2720
+ declare namespace index$b {
2721
+ export { type index$b_AllRecords as AllRecords, type index$b_DerivedStateSets as DerivedStateSets, type index$b_DerivedStates as DerivedStates, type index$b_EnrichedTaskRecord as EnrichedTaskRecord, index$b_FileIndexerAdapter as FileIndexerAdapter, type index$b_IIndexerAdapter as IIndexerAdapter, type index$b_IndexData as IndexData, type index$b_IndexGenerationReport as IndexGenerationReport, type index$b_IndexerAdapterDependencies as IndexerAdapterDependencies, type index$b_IntegrityError as IntegrityError, type index$b_IntegrityReport as IntegrityReport, type index$b_IntegrityWarning as IntegrityWarning };
2489
2722
  }
2490
2723
 
2491
2724
  /**
2492
- * GitGovernance Configuration Types
2493
- * Based on config_file.md blueprint
2725
+ * Type Definitions for GitModule
2726
+ *
2727
+ * These interfaces define the contracts for Git operations,
2728
+ * dependencies, and data structures used throughout the module.
2494
2729
  */
2495
- interface GitGovConfig {
2496
- protocolVersion: string;
2497
- projectId: string;
2498
- projectName: string;
2499
- rootCycle: string;
2500
- blueprints?: {
2501
- root?: string;
2502
- };
2503
- state?: {
2504
- branch?: string;
2505
- };
2506
- cloud?: {
2507
- projectId?: string;
2508
- providerMappings?: Record<string, string>;
2509
- };
2730
+ /**
2731
+ * Options for executing shell commands
2732
+ */
2733
+ interface ExecOptions {
2734
+ /** Working directory for the command */
2735
+ cwd?: string;
2736
+ /** Additional environment variables */
2737
+ env?: Record<string, string>;
2738
+ /** Timeout in milliseconds */
2739
+ timeout?: number;
2510
2740
  }
2511
2741
  /**
2512
- * GitGovernance Session State Types
2513
- * Based on session_state.md blueprint
2742
+ * Result of executing a shell command
2514
2743
  */
2515
- interface ActorState {
2516
- activeTaskId?: string;
2517
- activeCycleId?: string;
2518
- lastSync?: string;
2519
- [key: string]: any;
2744
+ interface ExecResult {
2745
+ /** Exit code (0 = success) */
2746
+ exitCode: number;
2747
+ /** Standard output */
2748
+ stdout: string;
2749
+ /** Standard error output */
2750
+ stderr: string;
2520
2751
  }
2521
- interface GitGovSession {
2522
- cloud?: {
2523
- sessionToken?: string;
2524
- };
2525
- lastSession?: {
2526
- actorId: string;
2527
- timestamp: string;
2528
- };
2529
- actorState?: Record<string, ActorState>;
2752
+ /**
2753
+ * Dependencies required by GitModule
2754
+ *
2755
+ * This module uses dependency injection to allow testing with mocks
2756
+ * and support different execution environments.
2757
+ */
2758
+ interface GitModuleDependencies {
2759
+ /** Path to the Git repository root (optional, auto-detected if not provided) */
2760
+ repoRoot?: string;
2761
+ /** Function to execute shell commands (required) */
2762
+ execCommand: (command: string, args: string[], options?: ExecOptions) => Promise<ExecResult>;
2530
2763
  }
2531
2764
  /**
2532
- * Configuration Manager Class
2533
- * Provides typed access to GitGovernance configuration and session state
2765
+ * Options for retrieving commit history
2534
2766
  */
2535
- declare class ConfigManager {
2536
- private configPath;
2537
- private sessionPath;
2538
- constructor(projectRootPath?: string);
2767
+ interface GetCommitHistoryOptions {
2768
+ /** Maximum number of commits to return */
2769
+ maxCount?: number;
2770
+ /** Path filter (e.g., ".gitgov/") */
2771
+ pathFilter?: string;
2772
+ /** Output format (default: "json") */
2773
+ format?: 'json' | 'text';
2774
+ }
2775
+ /**
2776
+ * Information about a commit in the history
2777
+ */
2778
+ interface CommitInfo {
2779
+ /** Commit hash */
2780
+ hash: string;
2781
+ /** Commit message */
2782
+ message: string;
2783
+ /** Commit author (name <email>) */
2784
+ author: string;
2785
+ /** Commit date (ISO 8601) */
2786
+ date: string;
2787
+ /** List of modified files (optional) */
2788
+ files?: string[];
2789
+ }
2790
+ /**
2791
+ * Information about a changed file
2792
+ */
2793
+ interface ChangedFile {
2794
+ /** Change status: A (Added), M (Modified), D (Deleted) */
2795
+ status: 'A' | 'M' | 'D';
2796
+ /** File path relative to repository root */
2797
+ file: string;
2798
+ }
2799
+ /**
2800
+ * Author information for commits
2801
+ */
2802
+ interface CommitAuthor {
2803
+ /** Author name */
2804
+ name: string;
2805
+ /** Author email */
2806
+ email: string;
2807
+ }
2808
+
2809
+ /**
2810
+ * GitModule - Low-level Git Operations
2811
+ *
2812
+ * This module provides a business-agnostic abstraction layer for interacting
2813
+ * with the local Git repository. It exposes semantic methods instead of raw
2814
+ * Git commands, with comprehensive error handling and type safety.
2815
+ *
2816
+ * @module git_module
2817
+ */
2818
+
2819
+ /**
2820
+ * GitModule class providing low-level Git operations
2821
+ *
2822
+ * All operations are async and use dependency injection for testability.
2823
+ * Errors are transformed into typed exceptions for better handling.
2824
+ */
2825
+ declare class GitModule {
2826
+ private repoRoot;
2827
+ private execCommand;
2539
2828
  /**
2540
- * Load GitGovernance configuration
2829
+ * Creates a new GitModule instance
2830
+ *
2831
+ * @param dependencies - Required dependencies (execCommand) and optional config (repoRoot)
2832
+ * @throws Error if execCommand is not provided
2541
2833
  */
2542
- loadConfig(): Promise<GitGovConfig | null>;
2834
+ constructor(dependencies: GitModuleDependencies);
2543
2835
  /**
2544
- * Load GitGovernance session state
2836
+ * Ensures that repoRoot is set, auto-detecting it if necessary
2837
+ *
2838
+ * @returns Path to repository root
2839
+ * @throws GitCommandError if not in a Git repository
2545
2840
  */
2546
- loadSession(): Promise<GitGovSession | null>;
2841
+ private ensureRepoRoot;
2547
2842
  /**
2548
- * Get root cycle from configuration
2843
+ * Executes a Git command with standardized error handling
2844
+ *
2845
+ * @param args - Git command arguments
2846
+ * @param options - Execution options
2847
+ * @returns Command result
2848
+ * @throws GitCommandError if command fails
2549
2849
  */
2550
- getRootCycle(): Promise<string | null>;
2850
+ private execGit;
2551
2851
  /**
2552
- * Get project information from configuration
2852
+ * Initializes a new Git repository in the current directory
2853
+ *
2854
+ * Creates the `.git/` directory structure and sets up initial configuration.
2855
+ * Useful for testing and for commands that require a fresh repository.
2856
+ *
2857
+ * @throws GitCommandError if directory is already a Git repository
2858
+ *
2859
+ * @example
2860
+ * await gitModule.init();
2861
+ * // Repository initialized with default branch (main or master)
2553
2862
  */
2554
- getProjectInfo(): Promise<{
2555
- id: string;
2556
- name: string;
2557
- } | null>;
2863
+ init(): Promise<void>;
2558
2864
  /**
2559
- * Get actor state for a specific actor
2865
+ * Returns the absolute path to the current Git repository root
2866
+ *
2867
+ * @returns Repository root path
2868
+ * @throws GitCommandError if not in a Git repository
2869
+ *
2870
+ * @example
2871
+ * const repoRoot = await gitModule.getRepoRoot();
2872
+ * // => "/home/user/my-project"
2560
2873
  */
2561
- getActorState(actorId: string): Promise<ActorState | null>;
2874
+ getRepoRoot(): Promise<string>;
2562
2875
  /**
2563
- * Update actor state for a specific actor
2876
+ * Returns the name of the current branch (HEAD)
2877
+ *
2878
+ * @returns Current branch name
2879
+ * @throws GitCommandError if in detached HEAD state or other error
2880
+ *
2881
+ * @example
2882
+ * const branch = await gitModule.getCurrentBranch();
2883
+ * // => "main"
2564
2884
  */
2565
- updateActorState(actorId: string, state: Partial<ActorState>): Promise<void>;
2885
+ getCurrentBranch(): Promise<string>;
2566
2886
  /**
2567
- * Get cloud session token
2887
+ * Get commit hash for a given reference (branch, tag, HEAD, etc.)
2888
+ *
2889
+ * Used by test helpers and sync operations to get commit SHAs.
2890
+ * Returns the full 40-character SHA-1 hash of the commit.
2891
+ *
2892
+ * @param ref Git reference (default: "HEAD"). Can be:
2893
+ * - "HEAD" for current commit
2894
+ * - Branch name (e.g., "main", "gitgov-state")
2895
+ * - Tag name (e.g., "v1.0.0")
2896
+ * - Commit hash (returns the same hash)
2897
+ * - Relative refs (e.g., "HEAD~1", "main^")
2898
+ * @returns Commit SHA hash (full 40-character hash)
2899
+ * @throws GitCommandError if ref does not exist
2900
+ *
2901
+ * @example
2902
+ * const headHash = await git.getCommitHash("HEAD");
2903
+ * // => "a1b2c3d4e5f6..."
2904
+ *
2905
+ * const mainHash = await git.getCommitHash("main");
2906
+ * // => "f6e5d4c3b2a1..."
2907
+ *
2908
+ * const parentHash = await git.getCommitHash("HEAD~1");
2909
+ * // => "9876543210ab..."
2568
2910
  */
2569
- getCloudSessionToken(): Promise<string | null>;
2911
+ getCommitHash(ref?: string): Promise<string>;
2570
2912
  /**
2571
- * Finds the project root by searching upwards for a .git directory.
2572
- * Caches the result for subsequent calls.
2573
- * @param startPath The path to start searching from. Defaults to the current working directory.
2574
- * @returns The absolute path to the project root, or null if not found.
2913
+ * Set a Git configuration value.
2914
+ * Used for configuring repository settings like user.name, core.editor, etc.
2915
+ *
2916
+ * [EARS-51, EARS-52]
2917
+ *
2918
+ * @param key - Configuration key (e.g., "user.name", "core.editor")
2919
+ * @param value - Configuration value
2920
+ * @param scope - Configuration scope: "local" (default), "global", or "system"
2921
+ * @throws GitCommandError if configuration fails
2922
+ *
2923
+ * @example
2924
+ * ```typescript
2925
+ * // Set local config (repository-specific)
2926
+ * await git.setConfig('core.editor', 'vim');
2927
+ *
2928
+ * // Set global config (user-wide)
2929
+ * await git.setConfig('user.name', 'John Doe', 'global');
2930
+ *
2931
+ * // Set system config (machine-wide, requires permissions)
2932
+ * await git.setConfig('credential.helper', 'cache', 'system');
2933
+ * ```
2575
2934
  */
2576
- static findProjectRoot(startPath?: string): string | null;
2935
+ setConfig(key: string, value: string, scope?: 'local' | 'global' | 'system'): Promise<void>;
2577
2936
  /**
2578
- * Finds the appropriate project root by searching upwards.
2579
- * First looks for .gitgov (initialized project), then .git (for init).
2580
- * @param startPath The path to start searching from. Defaults to the current working directory.
2581
- * @returns The absolute path to the project root, or null if not found.
2937
+ * Finds the most recent common ancestor between two branches
2938
+ *
2939
+ * @param branchA - First branch name
2940
+ * @param branchB - Second branch name
2941
+ * @returns Commit hash of the merge base
2942
+ * @throws BranchNotFoundError if either branch does not exist
2943
+ * @throws GitCommandError if operation fails
2944
+ *
2945
+ * @example
2946
+ * const mergeBase = await gitModule.getMergeBase("main", "feature");
2947
+ * // => "a1b2c3d4e5f6..."
2582
2948
  */
2583
- static findGitgovRoot(startPath?: string): string | null;
2949
+ getMergeBase(branchA: string, branchB: string): Promise<string>;
2584
2950
  /**
2585
- * Gets the .gitgov directory path from project root
2951
+ * Returns a list of files changed between two commits
2952
+ *
2953
+ * @param fromCommit - Source commit or reference
2954
+ * @param toCommit - Target commit or reference
2955
+ * @param pathFilter - Optional path filter (e.g., ".gitgov/")
2956
+ * @returns Array of changed files with their status
2957
+ * @throws GitCommandError if operation fails
2958
+ *
2959
+ * @example
2960
+ * const changes = await gitModule.getChangedFiles("HEAD~1", "HEAD", ".gitgov/");
2961
+ * // => [{ status: "M", file: ".gitgov/tasks/123.json" }]
2586
2962
  */
2587
- static getGitgovPath(): string;
2963
+ getChangedFiles(fromCommit: string, toCommit: string, pathFilter: string): Promise<ChangedFile[]>;
2588
2964
  /**
2589
- * Checks if current directory is a GitGovernance project
2965
+ * Get list of staged files (in staging area / index)
2966
+ *
2967
+ * Used during conflict resolution to identify which files the user resolved and staged.
2968
+ *
2969
+ * @returns Array of file paths that are currently staged
2970
+ * @throws GitCommandError if operation fails
2971
+ *
2972
+ * @example
2973
+ * // After user resolves conflict and does: git add .gitgov/tasks/123.json
2974
+ * const staged = await gitModule.getStagedFiles();
2975
+ * // => [".gitgov/tasks/123.json"]
2590
2976
  */
2591
- static isGitgovProject(): boolean;
2977
+ getStagedFiles(): Promise<string[]>;
2978
+ /**
2979
+ * Retrieves the content of a file at a specific point in history
2980
+ *
2981
+ * @param commitHash - Commit hash
2982
+ * @param filePath - File path relative to repository root
2983
+ * @returns File content as string
2984
+ * @throws FileNotFoundError if file doesn't exist in that commit
2985
+ * @throws GitCommandError if operation fails
2986
+ *
2987
+ * @example
2988
+ * const content = await gitModule.getFileContent("abc123", ".gitgov/config.json");
2989
+ * // => '{"version": "1.0.0"}'
2990
+ */
2991
+ getFileContent(commitHash: string, filePath: string): Promise<string>;
2992
+ /**
2993
+ * Retrieves the commit history for a branch
2994
+ *
2995
+ * @param branch - Branch name
2996
+ * @param options - Filtering and formatting options
2997
+ * @returns Array of commits ordered from newest to oldest
2998
+ * @throws GitCommandError if operation fails
2999
+ *
3000
+ * @example
3001
+ * const history = await gitModule.getCommitHistory("main", { maxCount: 10 });
3002
+ * // => [{ hash: "abc123", message: "Initial commit", author: "User <email>", date: "2025-01-01T00:00:00Z" }]
3003
+ */
3004
+ getCommitHistory(branch: string, options?: GetCommitHistoryOptions): Promise<CommitInfo[]>;
3005
+ /**
3006
+ * Retrieves commit history in a specific range
3007
+ *
3008
+ * @param fromHash - Starting commit hash (exclusive)
3009
+ * @param toHash - Ending commit hash (inclusive)
3010
+ * @param options - Filtering and formatting options
3011
+ * @returns Array of commits in the specified range
3012
+ * @throws GitCommandError if either commit doesn't exist
3013
+ *
3014
+ * @example
3015
+ * const commits = await gitModule.getCommitHistoryRange("abc123", "def456");
3016
+ * // => [{ hash: "def456", ... }, { hash: "cba321", ... }]
3017
+ */
3018
+ getCommitHistoryRange(fromHash: string, toHash: string, options?: GetCommitHistoryOptions): Promise<CommitInfo[]>;
3019
+ /**
3020
+ * Retrieves the full commit message for a specific commit
3021
+ *
3022
+ * @param commitHash - Commit hash
3023
+ * @returns Full commit message as string
3024
+ * @throws GitCommandError if commit doesn't exist
3025
+ *
3026
+ * @example
3027
+ * const message = await gitModule.getCommitMessage("abc123");
3028
+ * // => "feat: add new feature\n\nDetailed description..."
3029
+ */
3030
+ getCommitMessage(commitHash: string): Promise<string>;
3031
+ /**
3032
+ * Checks if there are uncommitted changes in the working directory
3033
+ *
3034
+ * @param pathFilter - Optional path filter (e.g., ".gitgov/")
3035
+ * @returns true if there are uncommitted changes, false otherwise
3036
+ * @throws GitCommandError if operation fails
3037
+ *
3038
+ * @example
3039
+ * const hasChanges = await gitModule.hasUncommittedChanges(".gitgov/");
3040
+ * // => true
3041
+ */
3042
+ hasUncommittedChanges(pathFilter?: string): Promise<boolean>;
3043
+ /**
3044
+ * Checks if a rebase operation is currently in progress
3045
+ *
3046
+ * @returns true if rebase is in progress, false otherwise
3047
+ *
3048
+ * @example
3049
+ * const inRebase = await gitModule.isRebaseInProgress();
3050
+ * // => false
3051
+ */
3052
+ isRebaseInProgress(): Promise<boolean>;
3053
+ /**
3054
+ * Checks if a branch exists locally
3055
+ *
3056
+ * @param branchName - Branch name to check
3057
+ * @returns true if branch exists, false otherwise
3058
+ *
3059
+ * @example
3060
+ * const exists = await gitModule.branchExists("feature-branch");
3061
+ * // => true
3062
+ */
3063
+ branchExists(branchName: string): Promise<boolean>;
3064
+ /**
3065
+ * Lists all remote branches for a given remote
3066
+ *
3067
+ * @param remoteName - Name of the remote (e.g., "origin")
3068
+ * @returns Array of remote branch names without the remote prefix
3069
+ * @throws GitCommandError if operation fails
3070
+ *
3071
+ * @example
3072
+ * const branches = await gitModule.listRemoteBranches("origin");
3073
+ * // => ["main", "develop", "gitgov-state"]
3074
+ *
3075
+ * @note This method only returns the branch names, not the full "origin/branch" format
3076
+ */
3077
+ listRemoteBranches(remoteName: string): Promise<string[]>;
3078
+ /**
3079
+ * Checks if a remote is configured in the git repository.
3080
+ *
3081
+ * @param remoteName - Name of the remote to check (e.g., "origin")
3082
+ * @returns true if the remote is configured, false otherwise
3083
+ *
3084
+ * @example
3085
+ * const hasOrigin = await gitModule.isRemoteConfigured("origin");
3086
+ * // => true
3087
+ */
3088
+ isRemoteConfigured(remoteName: string): Promise<boolean>;
3089
+ /**
3090
+ * Retrieves the tracking remote for a branch
3091
+ *
3092
+ * @param branchName - Branch name
3093
+ * @returns Remote name or null if not configured
3094
+ * @throws BranchNotFoundError if branch doesn't exist
3095
+ *
3096
+ * @example
3097
+ * const remote = await gitModule.getBranchRemote("main");
3098
+ * // => "origin"
3099
+ */
3100
+ getBranchRemote(branchName: string): Promise<string | null>;
3101
+ /**
3102
+ * Retrieves the list of conflicted files during a rebase or merge
3103
+ *
3104
+ * @returns Array of file paths in conflict
3105
+ * @throws GitCommandError if no rebase/merge in progress
3106
+ *
3107
+ * @example
3108
+ * const conflicts = await gitModule.getConflictedFiles();
3109
+ * // => [".gitgov/tasks/123.json", ".gitgov/tasks/456.json"]
3110
+ */
3111
+ getConflictedFiles(): Promise<string[]>;
3112
+ /**
3113
+ * Switches to the specified branch
3114
+ *
3115
+ * @param branchName - Branch name to checkout
3116
+ * @throws BranchNotFoundError if branch doesn't exist
3117
+ * @throws GitCommandError if operation fails
3118
+ *
3119
+ * @example
3120
+ * await gitModule.checkoutBranch("feature-branch");
3121
+ */
3122
+ checkoutBranch(branchName: string): Promise<void>;
3123
+ /**
3124
+ * Stash uncommitted changes
3125
+ *
3126
+ * @param message - Optional message for the stash
3127
+ * @returns Stash hash if changes were stashed, null if nothing to stash
3128
+ */
3129
+ stash(message?: string): Promise<string | null>;
3130
+ /**
3131
+ * Pop the most recent stash
3132
+ *
3133
+ * @returns true if stash was popped successfully, false if no stash exists
3134
+ */
3135
+ stashPop(): Promise<boolean>;
3136
+ /**
3137
+ * Drop a specific stash or the most recent one
3138
+ *
3139
+ * @param stashHash - Optional stash hash to drop, defaults to most recent
3140
+ */
3141
+ stashDrop(stashHash?: string): Promise<void>;
3142
+ /**
3143
+ * Creates an orphan branch (no history) and switches to it
3144
+ *
3145
+ * @param branchName - Orphan branch name to create
3146
+ * @throws GitCommandError if branch already exists or operation fails
3147
+ *
3148
+ * @example
3149
+ * await gitModule.checkoutOrphanBranch("gitgov-state");
3150
+ */
3151
+ checkoutOrphanBranch(branchName: string): Promise<void>;
3152
+ /**
3153
+ * Fetches the latest changes from a remote repository
3154
+ *
3155
+ * @param remote - Remote name (e.g., "origin")
3156
+ * @throws GitCommandError if operation fails
3157
+ *
3158
+ * @example
3159
+ * await gitModule.fetch("origin");
3160
+ */
3161
+ fetch(remote: string): Promise<void>;
3162
+ /**
3163
+ * Pulls and merges a remote branch
3164
+ *
3165
+ * @param remote - Remote name
3166
+ * @param branchName - Branch name
3167
+ * @throws MergeConflictError if merge conflicts occur
3168
+ * @throws GitCommandError if operation fails
3169
+ *
3170
+ * @example
3171
+ * await gitModule.pull("origin", "main");
3172
+ */
3173
+ pull(remote: string, branchName: string): Promise<void>;
3174
+ /**
3175
+ * Pulls and rebases a remote branch
3176
+ *
3177
+ * @param remote - Remote name
3178
+ * @param branchName - Branch name
3179
+ * @throws RebaseConflictError if rebase conflicts occur
3180
+ * @throws GitCommandError if operation fails
3181
+ *
3182
+ * @example
3183
+ * await gitModule.pullRebase("origin", "main");
3184
+ */
3185
+ pullRebase(remote: string, branchName: string): Promise<void>;
3186
+ /**
3187
+ * Resets the current branch to a specific commit, discarding all local changes
3188
+ *
3189
+ * @param target - Commit hash or branch name
3190
+ * @throws GitCommandError if operation fails
3191
+ *
3192
+ * @example
3193
+ * await gitModule.resetHard("HEAD~1");
3194
+ */
3195
+ resetHard(target: string): Promise<void>;
3196
+ /**
3197
+ * Checks out specific files from another branch into the current staging area
3198
+ *
3199
+ * @param sourceBranch - Source branch name
3200
+ * @param filePaths - Array of file paths to checkout
3201
+ * @throws BranchNotFoundError if source branch doesn't exist
3202
+ * @throws GitCommandError if operation fails
3203
+ *
3204
+ * @example
3205
+ * await gitModule.checkoutFilesFromBranch("main", [".gitgov/tasks/123.json"]);
3206
+ */
3207
+ checkoutFilesFromBranch(sourceBranch: string, filePaths: string[]): Promise<void>;
3208
+ /**
3209
+ * Adds files to the staging area
3210
+ *
3211
+ * @param filePaths - Array of file paths to add
3212
+ * @param options - Optional settings (force: add ignored files)
3213
+ * @throws GitCommandError if operation fails
3214
+ *
3215
+ * @example
3216
+ * await gitModule.add([".gitgov/tasks/123.json"]);
3217
+ * await gitModule.add([".gitgov"], { force: true }); // Add ignored files
3218
+ */
3219
+ add(filePaths: string[], options?: {
3220
+ force?: boolean;
3221
+ }): Promise<void>;
3222
+ /**
3223
+ * Removes files from both working directory and staging area
3224
+ *
3225
+ * @param filePaths - Array of file paths to remove
3226
+ * @throws GitCommandError if operation fails
3227
+ *
3228
+ * @example
3229
+ * await gitModule.rm([".gitgov/tasks/123.json"]);
3230
+ */
3231
+ rm(filePaths: string[]): Promise<void>;
3232
+ /**
3233
+ * Creates a new commit with staged files
3234
+ *
3235
+ * @param message - Commit message
3236
+ * @param author - Optional commit author
3237
+ * @returns Commit hash of the created commit
3238
+ * @throws GitCommandError if operation fails
3239
+ *
3240
+ * @example
3241
+ * const hash = await gitModule.commit("feat: add new task");
3242
+ * // => "abc123def456..."
3243
+ */
3244
+ commit(message: string, author?: CommitAuthor): Promise<string>;
3245
+ /**
3246
+ * Creates an empty commit (no changes required)
3247
+ *
3248
+ * @param message - Commit message
3249
+ * @param author - Optional commit author
3250
+ * @returns Commit hash of the created commit
3251
+ * @throws GitCommandError if operation fails
3252
+ *
3253
+ * @example
3254
+ * const hash = await gitModule.commitAllowEmpty("chore: initialize state branch");
3255
+ * // => "abc123def456..."
3256
+ */
3257
+ commitAllowEmpty(message: string, author?: CommitAuthor): Promise<string>;
3258
+ /**
3259
+ * Pushes a local branch to a remote repository
3260
+ *
3261
+ * @param remote - Remote name
3262
+ * @param branchName - Branch name
3263
+ * @throws GitCommandError if operation fails
3264
+ *
3265
+ * @example
3266
+ * await gitModule.push("origin", "main");
3267
+ */
3268
+ push(remote: string, branchName: string): Promise<void>;
3269
+ /**
3270
+ * Pushes a local branch to a remote repository and sets up tracking
3271
+ *
3272
+ * @param remote - Remote name
3273
+ * @param branchName - Branch name
3274
+ * @throws GitCommandError if operation fails
3275
+ *
3276
+ * @example
3277
+ * await gitModule.pushWithUpstream("origin", "feature-branch");
3278
+ */
3279
+ pushWithUpstream(remote: string, branchName: string): Promise<void>;
3280
+ /**
3281
+ * Configures tracking for a local branch with a remote branch
3282
+ *
3283
+ * @param branchName - Local branch name
3284
+ * @param remote - Remote name
3285
+ * @param remoteBranch - Remote branch name
3286
+ * @throws BranchNotFoundError if local branch doesn't exist
3287
+ * @throws GitCommandError if operation fails
3288
+ *
3289
+ * @example
3290
+ * await gitModule.setUpstream("feature-branch", "origin", "feature-branch");
3291
+ */
3292
+ setUpstream(branchName: string, remote: string, remoteBranch: string): Promise<void>;
3293
+ /**
3294
+ * Continues a rebase after resolving conflicts
3295
+ *
3296
+ * @returns Commit hash of the rebased commit
3297
+ * @throws RebaseNotInProgressError if no rebase is in progress
3298
+ * @throws GitCommandError if operation fails
3299
+ *
3300
+ * @example
3301
+ * const hash = await gitModule.rebaseContinue();
3302
+ * // => "abc123def456..."
3303
+ */
3304
+ rebaseContinue(): Promise<string>;
3305
+ /**
3306
+ * Aborts an ongoing rebase
3307
+ *
3308
+ * @throws RebaseNotInProgressError if no rebase is in progress
3309
+ * @throws GitCommandError if operation fails
3310
+ *
3311
+ * @example
3312
+ * await gitModule.rebaseAbort();
3313
+ */
3314
+ rebaseAbort(): Promise<void>;
3315
+ /**
3316
+ * Creates a new branch and switches to it (git checkout -b)
3317
+ *
3318
+ * @param branchName - Name of the branch to create
3319
+ * @param startPoint - Optional starting point (commit hash or branch name)
3320
+ * @throws GitCommandError if branch already exists or operation fails
3321
+ * @throws BranchAlreadyExistsError if the branch already exists locally
3322
+ */
3323
+ createBranch(branchName: string, startPoint?: string): Promise<void>;
3324
+ /**
3325
+ * Rebases current branch onto target branch (git rebase)
3326
+ *
3327
+ * @param targetBranch - Branch to rebase onto
3328
+ * @throws GitCommandError if rebase fails
3329
+ * @throws RebaseConflictError if conflicts are detected during rebase
3330
+ */
3331
+ rebase(targetBranch: string): Promise<void>;
3332
+ }
3333
+
3334
+ /**
3335
+ * Custom Error Classes for GitModule
3336
+ *
3337
+ * These errors provide typed exceptions for better error handling
3338
+ * and diagnostics in the Git module operations.
3339
+ */
3340
+ /**
3341
+ * Base error class for all Git-related errors
3342
+ */
3343
+ declare class GitError extends Error {
3344
+ constructor(message: string);
3345
+ }
3346
+ /**
3347
+ * Error thrown when a Git command fails
3348
+ */
3349
+ declare class GitCommandError extends GitError {
3350
+ readonly stderr: string;
3351
+ readonly stdout?: string | undefined;
3352
+ readonly command?: string | undefined;
3353
+ constructor(message: string, stderr?: string, command?: string | undefined, stdout?: string);
3354
+ }
3355
+ /**
3356
+ * Error thrown when a branch does not exist
3357
+ */
3358
+ declare class BranchNotFoundError extends GitError {
3359
+ readonly branchName: string;
3360
+ constructor(branchName: string);
3361
+ }
3362
+ /**
3363
+ * Error thrown when a file does not exist in a commit
3364
+ */
3365
+ declare class FileNotFoundError extends GitError {
3366
+ readonly filePath: string;
3367
+ readonly commitHash: string;
3368
+ constructor(filePath: string, commitHash: string);
3369
+ }
3370
+ /**
3371
+ * Error thrown when a merge conflict occurs
3372
+ */
3373
+ declare class MergeConflictError extends GitError {
3374
+ readonly conflictedFiles: string[];
3375
+ constructor(conflictedFiles: string[]);
2592
3376
  }
2593
3377
  /**
2594
- * Create a ConfigManager instance for the current project
3378
+ * Error thrown when a rebase conflict occurs
2595
3379
  */
2596
- declare function createConfigManager(projectRoot?: string): ConfigManager;
3380
+ declare class RebaseConflictError extends GitError {
3381
+ readonly conflictedFiles: string[];
3382
+ constructor(conflictedFiles: string[]);
3383
+ }
3384
+ /**
3385
+ * Error thrown when trying to continue/abort a rebase that is not in progress
3386
+ */
3387
+ declare class RebaseNotInProgressError extends GitError {
3388
+ constructor();
3389
+ }
2597
3390
 
2598
- type index$9_ActorState = ActorState;
2599
- type index$9_ConfigManager = ConfigManager;
2600
- declare const index$9_ConfigManager: typeof ConfigManager;
2601
- type index$9_GitGovConfig = GitGovConfig;
2602
- type index$9_GitGovSession = GitGovSession;
2603
- declare const index$9_createConfigManager: typeof createConfigManager;
2604
- declare namespace index$9 {
2605
- export { type index$9_ActorState as ActorState, index$9_ConfigManager as ConfigManager, type index$9_GitGovConfig as GitGovConfig, type index$9_GitGovSession as GitGovSession, index$9_createConfigManager as createConfigManager };
3391
+ /**
3392
+ * GitModule - Low-level Git Operations
3393
+ *
3394
+ * This module provides a business-agnostic abstraction layer for Git operations.
3395
+ *
3396
+ * @module git
3397
+ */
3398
+
3399
+ type index$a_BranchNotFoundError = BranchNotFoundError;
3400
+ declare const index$a_BranchNotFoundError: typeof BranchNotFoundError;
3401
+ type index$a_ChangedFile = ChangedFile;
3402
+ type index$a_CommitAuthor = CommitAuthor;
3403
+ type index$a_CommitInfo = CommitInfo;
3404
+ type index$a_ExecOptions = ExecOptions;
3405
+ type index$a_ExecResult = ExecResult;
3406
+ type index$a_FileNotFoundError = FileNotFoundError;
3407
+ declare const index$a_FileNotFoundError: typeof FileNotFoundError;
3408
+ type index$a_GetCommitHistoryOptions = GetCommitHistoryOptions;
3409
+ type index$a_GitCommandError = GitCommandError;
3410
+ declare const index$a_GitCommandError: typeof GitCommandError;
3411
+ type index$a_GitError = GitError;
3412
+ declare const index$a_GitError: typeof GitError;
3413
+ type index$a_GitModule = GitModule;
3414
+ declare const index$a_GitModule: typeof GitModule;
3415
+ type index$a_GitModuleDependencies = GitModuleDependencies;
3416
+ type index$a_MergeConflictError = MergeConflictError;
3417
+ declare const index$a_MergeConflictError: typeof MergeConflictError;
3418
+ type index$a_RebaseConflictError = RebaseConflictError;
3419
+ declare const index$a_RebaseConflictError: typeof RebaseConflictError;
3420
+ type index$a_RebaseNotInProgressError = RebaseNotInProgressError;
3421
+ declare const index$a_RebaseNotInProgressError: typeof RebaseNotInProgressError;
3422
+ declare namespace index$a {
3423
+ export { index$a_BranchNotFoundError as BranchNotFoundError, type index$a_ChangedFile as ChangedFile, type index$a_CommitAuthor as CommitAuthor, type index$a_CommitInfo as CommitInfo, type index$a_ExecOptions as ExecOptions, type index$a_ExecResult as ExecResult, index$a_FileNotFoundError as FileNotFoundError, type index$a_GetCommitHistoryOptions as GetCommitHistoryOptions, index$a_GitCommandError as GitCommandError, index$a_GitError as GitError, index$a_GitModule as GitModule, type index$a_GitModuleDependencies as GitModuleDependencies, index$a_MergeConflictError as MergeConflictError, index$a_RebaseConflictError as RebaseConflictError, index$a_RebaseNotInProgressError as RebaseNotInProgressError };
2606
3424
  }
2607
3425
 
2608
3426
  /**
@@ -2611,19 +3429,8 @@ declare namespace index$9 {
2611
3429
  interface ProjectAdapterDependencies {
2612
3430
  identityAdapter: IdentityAdapter;
2613
3431
  backlogAdapter: BacklogAdapter;
2614
- workflowMethodologyAdapter: WorkflowMethodologyAdapter;
3432
+ gitModule: GitModule;
2615
3433
  configManager: ConfigManager;
2616
- taskStore: RecordStore<TaskRecord>;
2617
- cycleStore: RecordStore<CycleRecord>;
2618
- eventBus?: IEventStream;
2619
- platformApi?: IPlatformApi;
2620
- userManagement?: IUserManagement;
2621
- }
2622
- interface IPlatformApi {
2623
- getProjectInfo(projectId: string): Promise<ProjectInfo>;
2624
- }
2625
- interface IUserManagement {
2626
- addUserToProject(projectId: string, userId: string, role: string): Promise<void>;
2627
3434
  }
2628
3435
  type ProjectInitOptions = {
2629
3436
  name: string;
@@ -2718,10 +3525,11 @@ interface IProjectAdapter {
2718
3525
  declare class ProjectAdapter implements IProjectAdapter {
2719
3526
  private identityAdapter;
2720
3527
  private backlogAdapter;
3528
+ private gitModule;
2721
3529
  private configManager;
2722
3530
  constructor(dependencies: ProjectAdapterDependencies);
2723
3531
  /**
2724
- * [EARS-1] Initializes complete GitGovernance project with 3-adapter orchestration and trust root Ed25519
3532
+ * [EARS-1] Initializes complete GitGovernance project with 4-module orchestration (Identity, Backlog, WorkflowMethodology, SyncModule) and trust root Ed25519
2725
3533
  */
2726
3534
  initializeProject(options: ProjectInitOptions): Promise<ProjectInitResult>;
2727
3535
  /**
@@ -2756,8 +3564,66 @@ declare class ProjectAdapter implements IProjectAdapter {
2756
3564
  private setupGitIntegration;
2757
3565
  }
2758
3566
 
3567
+ type index$9_EnvironmentValidation = EnvironmentValidation;
3568
+ type index$9_IProjectAdapter = IProjectAdapter;
3569
+ type index$9_ProjectAdapter = ProjectAdapter;
3570
+ declare const index$9_ProjectAdapter: typeof ProjectAdapter;
3571
+ type index$9_ProjectAdapterDependencies = ProjectAdapterDependencies;
3572
+ type index$9_ProjectContext = ProjectContext;
3573
+ type index$9_ProjectInfo = ProjectInfo;
3574
+ type index$9_ProjectInitOptions = ProjectInitOptions;
3575
+ type index$9_ProjectInitResult = ProjectInitResult;
3576
+ type index$9_ProjectReport = ProjectReport;
3577
+ type index$9_TemplateProcessingResult = TemplateProcessingResult;
3578
+ declare namespace index$9 {
3579
+ export { type index$9_EnvironmentValidation as EnvironmentValidation, type index$9_IProjectAdapter as IProjectAdapter, index$9_ProjectAdapter as ProjectAdapter, type index$9_ProjectAdapterDependencies as ProjectAdapterDependencies, type index$9_ProjectContext as ProjectContext, type index$9_ProjectInfo as ProjectInfo, type index$9_ProjectInitOptions as ProjectInitOptions, type index$9_ProjectInitResult as ProjectInitResult, type index$9_ProjectReport as ProjectReport, type index$9_TemplateProcessingResult as TemplateProcessingResult };
3580
+ }
3581
+
3582
+ type index$8_AllRecords = AllRecords;
3583
+ type index$8_BacklogAdapter = BacklogAdapter;
3584
+ declare const index$8_BacklogAdapter: typeof BacklogAdapter;
3585
+ type index$8_BacklogAdapterConfig = BacklogAdapterConfig;
3586
+ type index$8_BacklogAdapterDependencies = BacklogAdapterDependencies;
3587
+ type index$8_ChangelogAdapter = ChangelogAdapter;
3588
+ declare const index$8_ChangelogAdapter: typeof ChangelogAdapter;
3589
+ type index$8_ChangelogAdapterDependencies = ChangelogAdapterDependencies;
3590
+ type index$8_ChangelogListOptions = ChangelogListOptions;
3591
+ type index$8_CollaborationMetrics = CollaborationMetrics;
3592
+ type index$8_DerivedStateSets = DerivedStateSets;
3593
+ type index$8_DerivedStates = DerivedStates;
3594
+ type index$8_EnrichedTaskRecord = EnrichedTaskRecord;
2759
3595
  type index$8_EnvironmentValidation = EnvironmentValidation;
3596
+ type index$8_ExecutionAdapter = ExecutionAdapter;
3597
+ declare const index$8_ExecutionAdapter: typeof ExecutionAdapter;
3598
+ type index$8_ExecutionAdapterDependencies = ExecutionAdapterDependencies;
3599
+ type index$8_FeedbackAdapter = FeedbackAdapter;
3600
+ declare const index$8_FeedbackAdapter: typeof FeedbackAdapter;
3601
+ type index$8_FeedbackAdapterDependencies = FeedbackAdapterDependencies;
3602
+ type index$8_FeedbackThread = FeedbackThread;
3603
+ type index$8_FileIndexerAdapter = FileIndexerAdapter;
3604
+ declare const index$8_FileIndexerAdapter: typeof FileIndexerAdapter;
3605
+ type index$8_IBacklogAdapter = IBacklogAdapter;
3606
+ type index$8_IChangelogAdapter = IChangelogAdapter;
3607
+ type index$8_IExecutionAdapter = IExecutionAdapter;
3608
+ type index$8_IFeedbackAdapter = IFeedbackAdapter;
3609
+ type index$8_IIdentityAdapter = IIdentityAdapter;
3610
+ type index$8_IIndexerAdapter = IIndexerAdapter;
3611
+ type index$8_IMetricsAdapter = IMetricsAdapter;
2760
3612
  type index$8_IProjectAdapter = IProjectAdapter;
3613
+ type index$8_IWorkflowMethodology = IWorkflowMethodology;
3614
+ type index$8_IdentityAdapter = IdentityAdapter;
3615
+ declare const index$8_IdentityAdapter: typeof IdentityAdapter;
3616
+ type index$8_IdentityAdapterDependencies = IdentityAdapterDependencies;
3617
+ type index$8_IndexData = IndexData;
3618
+ type index$8_IndexGenerationReport = IndexGenerationReport;
3619
+ type index$8_IndexerAdapterDependencies = IndexerAdapterDependencies;
3620
+ type index$8_IntegrityError = IntegrityError;
3621
+ type index$8_IntegrityReport = IntegrityReport;
3622
+ type index$8_IntegrityWarning = IntegrityWarning;
3623
+ type index$8_MetricsAdapter = MetricsAdapter;
3624
+ declare const index$8_MetricsAdapter: typeof MetricsAdapter;
3625
+ type index$8_MetricsAdapterDependencies = MetricsAdapterDependencies;
3626
+ type index$8_ProductivityMetrics = ProductivityMetrics;
2761
3627
  type index$8_ProjectAdapter = ProjectAdapter;
2762
3628
  declare const index$8_ProjectAdapter: typeof ProjectAdapter;
2763
3629
  type index$8_ProjectAdapterDependencies = ProjectAdapterDependencies;
@@ -2766,72 +3632,14 @@ type index$8_ProjectInfo = ProjectInfo;
2766
3632
  type index$8_ProjectInitOptions = ProjectInitOptions;
2767
3633
  type index$8_ProjectInitResult = ProjectInitResult;
2768
3634
  type index$8_ProjectReport = ProjectReport;
3635
+ type index$8_SystemStatus = SystemStatus;
3636
+ type index$8_TaskHealthReport = TaskHealthReport;
2769
3637
  type index$8_TemplateProcessingResult = TemplateProcessingResult;
3638
+ type index$8_WorkflowMethodologyAdapter = WorkflowMethodologyAdapter;
3639
+ declare const index$8_WorkflowMethodologyAdapter: typeof WorkflowMethodologyAdapter;
3640
+ type index$8_WorkflowMethodologyAdapterDependencies = WorkflowMethodologyAdapterDependencies;
2770
3641
  declare namespace index$8 {
2771
- export { type index$8_EnvironmentValidation as EnvironmentValidation, type index$8_IProjectAdapter as IProjectAdapter, index$8_ProjectAdapter as ProjectAdapter, type index$8_ProjectAdapterDependencies as ProjectAdapterDependencies, type index$8_ProjectContext as ProjectContext, type index$8_ProjectInfo as ProjectInfo, type index$8_ProjectInitOptions as ProjectInitOptions, type index$8_ProjectInitResult as ProjectInitResult, type index$8_ProjectReport as ProjectReport, type index$8_TemplateProcessingResult as TemplateProcessingResult };
2772
- }
2773
-
2774
- type index$7_AllRecords = AllRecords;
2775
- type index$7_BacklogAdapter = BacklogAdapter;
2776
- declare const index$7_BacklogAdapter: typeof BacklogAdapter;
2777
- type index$7_BacklogAdapterConfig = BacklogAdapterConfig;
2778
- type index$7_BacklogAdapterDependencies = BacklogAdapterDependencies;
2779
- type index$7_ChangelogAdapter = ChangelogAdapter;
2780
- declare const index$7_ChangelogAdapter: typeof ChangelogAdapter;
2781
- type index$7_ChangelogAdapterDependencies = ChangelogAdapterDependencies;
2782
- type index$7_ChangelogListOptions = ChangelogListOptions;
2783
- type index$7_CollaborationMetrics = CollaborationMetrics;
2784
- type index$7_DerivedStateSets = DerivedStateSets;
2785
- type index$7_DerivedStates = DerivedStates;
2786
- type index$7_EnrichedTaskRecord = EnrichedTaskRecord;
2787
- type index$7_EnvironmentValidation = EnvironmentValidation;
2788
- type index$7_ExecutionAdapter = ExecutionAdapter;
2789
- declare const index$7_ExecutionAdapter: typeof ExecutionAdapter;
2790
- type index$7_ExecutionAdapterDependencies = ExecutionAdapterDependencies;
2791
- type index$7_FeedbackAdapter = FeedbackAdapter;
2792
- declare const index$7_FeedbackAdapter: typeof FeedbackAdapter;
2793
- type index$7_FeedbackAdapterDependencies = FeedbackAdapterDependencies;
2794
- type index$7_FeedbackThread = FeedbackThread;
2795
- type index$7_FileIndexerAdapter = FileIndexerAdapter;
2796
- declare const index$7_FileIndexerAdapter: typeof FileIndexerAdapter;
2797
- type index$7_IBacklogAdapter = IBacklogAdapter;
2798
- type index$7_IChangelogAdapter = IChangelogAdapter;
2799
- type index$7_IExecutionAdapter = IExecutionAdapter;
2800
- type index$7_IFeedbackAdapter = IFeedbackAdapter;
2801
- type index$7_IIdentityAdapter = IIdentityAdapter;
2802
- type index$7_IIndexerAdapter = IIndexerAdapter;
2803
- type index$7_IMetricsAdapter = IMetricsAdapter;
2804
- type index$7_IProjectAdapter = IProjectAdapter;
2805
- type index$7_IWorkflowMethodology = IWorkflowMethodology;
2806
- type index$7_IdentityAdapter = IdentityAdapter;
2807
- declare const index$7_IdentityAdapter: typeof IdentityAdapter;
2808
- type index$7_IdentityAdapterDependencies = IdentityAdapterDependencies;
2809
- type index$7_IndexData = IndexData;
2810
- type index$7_IndexGenerationReport = IndexGenerationReport;
2811
- type index$7_IndexerAdapterDependencies = IndexerAdapterDependencies;
2812
- type index$7_IntegrityError = IntegrityError;
2813
- type index$7_IntegrityReport = IntegrityReport;
2814
- type index$7_IntegrityWarning = IntegrityWarning;
2815
- type index$7_MetricsAdapter = MetricsAdapter;
2816
- declare const index$7_MetricsAdapter: typeof MetricsAdapter;
2817
- type index$7_MetricsAdapterDependencies = MetricsAdapterDependencies;
2818
- type index$7_ProductivityMetrics = ProductivityMetrics;
2819
- type index$7_ProjectAdapter = ProjectAdapter;
2820
- declare const index$7_ProjectAdapter: typeof ProjectAdapter;
2821
- type index$7_ProjectAdapterDependencies = ProjectAdapterDependencies;
2822
- type index$7_ProjectContext = ProjectContext;
2823
- type index$7_ProjectInfo = ProjectInfo;
2824
- type index$7_ProjectInitOptions = ProjectInitOptions;
2825
- type index$7_ProjectInitResult = ProjectInitResult;
2826
- type index$7_ProjectReport = ProjectReport;
2827
- type index$7_SystemStatus = SystemStatus;
2828
- type index$7_TaskHealthReport = TaskHealthReport;
2829
- type index$7_TemplateProcessingResult = TemplateProcessingResult;
2830
- type index$7_WorkflowMethodologyAdapter = WorkflowMethodologyAdapter;
2831
- declare const index$7_WorkflowMethodologyAdapter: typeof WorkflowMethodologyAdapter;
2832
- type index$7_WorkflowMethodologyAdapterDependencies = WorkflowMethodologyAdapterDependencies;
2833
- declare namespace index$7 {
2834
- export { type index$7_AllRecords as AllRecords, index$7_BacklogAdapter as BacklogAdapter, type index$7_BacklogAdapterConfig as BacklogAdapterConfig, type index$7_BacklogAdapterDependencies as BacklogAdapterDependencies, index$7_ChangelogAdapter as ChangelogAdapter, type index$7_ChangelogAdapterDependencies as ChangelogAdapterDependencies, type index$7_ChangelogListOptions as ChangelogListOptions, type index$7_CollaborationMetrics as CollaborationMetrics, type index$7_DerivedStateSets as DerivedStateSets, type index$7_DerivedStates as DerivedStates, type index$7_EnrichedTaskRecord as EnrichedTaskRecord, type index$7_EnvironmentValidation as EnvironmentValidation, index$7_ExecutionAdapter as ExecutionAdapter, type index$7_ExecutionAdapterDependencies as ExecutionAdapterDependencies, index$7_FeedbackAdapter as FeedbackAdapter, type index$7_FeedbackAdapterDependencies as FeedbackAdapterDependencies, type index$7_FeedbackThread as FeedbackThread, index$7_FileIndexerAdapter as FileIndexerAdapter, type index$7_IBacklogAdapter as IBacklogAdapter, type index$7_IChangelogAdapter as IChangelogAdapter, type index$7_IExecutionAdapter as IExecutionAdapter, type index$7_IFeedbackAdapter as IFeedbackAdapter, type index$7_IIdentityAdapter as IIdentityAdapter, type index$7_IIndexerAdapter as IIndexerAdapter, type index$7_IMetricsAdapter as IMetricsAdapter, type index$7_IProjectAdapter as IProjectAdapter, type index$7_IWorkflowMethodology as IWorkflowMethodology, index$7_IdentityAdapter as IdentityAdapter, type index$7_IdentityAdapterDependencies as IdentityAdapterDependencies, type index$7_IndexData as IndexData, type index$7_IndexGenerationReport as IndexGenerationReport, type index$7_IndexerAdapterDependencies as IndexerAdapterDependencies, type index$7_IntegrityError as IntegrityError, type index$7_IntegrityReport as IntegrityReport, type index$7_IntegrityWarning as IntegrityWarning, index$7_MetricsAdapter as MetricsAdapter, type index$7_MetricsAdapterDependencies as MetricsAdapterDependencies, type index$7_ProductivityMetrics as ProductivityMetrics, index$7_ProjectAdapter as ProjectAdapter, type index$7_ProjectAdapterDependencies as ProjectAdapterDependencies, type index$7_ProjectContext as ProjectContext, type index$7_ProjectInfo as ProjectInfo, type index$7_ProjectInitOptions as ProjectInitOptions, type index$7_ProjectInitResult as ProjectInitResult, type index$7_ProjectReport as ProjectReport, type index$7_SystemStatus as SystemStatus, type index$7_TaskHealthReport as TaskHealthReport, type index$7_TemplateProcessingResult as TemplateProcessingResult, type ValidationContext$1 as ValidationContext, index$7_WorkflowMethodologyAdapter as WorkflowMethodologyAdapter, type index$7_WorkflowMethodologyAdapterDependencies as WorkflowMethodologyAdapterDependencies };
3642
+ export { type index$8_AllRecords as AllRecords, index$8_BacklogAdapter as BacklogAdapter, type index$8_BacklogAdapterConfig as BacklogAdapterConfig, type index$8_BacklogAdapterDependencies as BacklogAdapterDependencies, index$8_ChangelogAdapter as ChangelogAdapter, type index$8_ChangelogAdapterDependencies as ChangelogAdapterDependencies, type index$8_ChangelogListOptions as ChangelogListOptions, type index$8_CollaborationMetrics as CollaborationMetrics, type index$8_DerivedStateSets as DerivedStateSets, type index$8_DerivedStates as DerivedStates, type index$8_EnrichedTaskRecord as EnrichedTaskRecord, type index$8_EnvironmentValidation as EnvironmentValidation, index$8_ExecutionAdapter as ExecutionAdapter, type index$8_ExecutionAdapterDependencies as ExecutionAdapterDependencies, index$8_FeedbackAdapter as FeedbackAdapter, type index$8_FeedbackAdapterDependencies as FeedbackAdapterDependencies, type index$8_FeedbackThread as FeedbackThread, index$8_FileIndexerAdapter as FileIndexerAdapter, type index$8_IBacklogAdapter as IBacklogAdapter, type index$8_IChangelogAdapter as IChangelogAdapter, type index$8_IExecutionAdapter as IExecutionAdapter, type index$8_IFeedbackAdapter as IFeedbackAdapter, type index$8_IIdentityAdapter as IIdentityAdapter, type index$8_IIndexerAdapter as IIndexerAdapter, type index$8_IMetricsAdapter as IMetricsAdapter, type index$8_IProjectAdapter as IProjectAdapter, type index$8_IWorkflowMethodology as IWorkflowMethodology, index$8_IdentityAdapter as IdentityAdapter, type index$8_IdentityAdapterDependencies as IdentityAdapterDependencies, type index$8_IndexData as IndexData, type index$8_IndexGenerationReport as IndexGenerationReport, type index$8_IndexerAdapterDependencies as IndexerAdapterDependencies, type index$8_IntegrityError as IntegrityError, type index$8_IntegrityReport as IntegrityReport, type index$8_IntegrityWarning as IntegrityWarning, index$8_MetricsAdapter as MetricsAdapter, type index$8_MetricsAdapterDependencies as MetricsAdapterDependencies, type index$8_ProductivityMetrics as ProductivityMetrics, index$8_ProjectAdapter as ProjectAdapter, type index$8_ProjectAdapterDependencies as ProjectAdapterDependencies, type index$8_ProjectContext as ProjectContext, type index$8_ProjectInfo as ProjectInfo, type index$8_ProjectInitOptions as ProjectInitOptions, type index$8_ProjectInitResult as ProjectInitResult, type index$8_ProjectReport as ProjectReport, type index$8_SystemStatus as SystemStatus, type index$8_TaskHealthReport as TaskHealthReport, type index$8_TemplateProcessingResult as TemplateProcessingResult, type ValidationContext$1 as ValidationContext, index$8_WorkflowMethodologyAdapter as WorkflowMethodologyAdapter, type index$8_WorkflowMethodologyAdapterDependencies as WorkflowMethodologyAdapterDependencies };
2835
3643
  }
2836
3644
 
2837
3645
  /**
@@ -2871,12 +3679,12 @@ declare function verifySignatures(record: {
2871
3679
  payload: GitGovRecordPayload;
2872
3680
  }, getActorPublicKey: (keyId: string) => Promise<string | null>): Promise<boolean>;
2873
3681
 
2874
- declare const index$6_calculatePayloadChecksum: typeof calculatePayloadChecksum;
2875
- declare const index$6_generateKeys: typeof generateKeys;
2876
- declare const index$6_signPayload: typeof signPayload;
2877
- declare const index$6_verifySignatures: typeof verifySignatures;
2878
- declare namespace index$6 {
2879
- export { index$6_calculatePayloadChecksum as calculatePayloadChecksum, index$6_generateKeys as generateKeys, index$6_signPayload as signPayload, index$6_verifySignatures as verifySignatures };
3682
+ declare const index$7_calculatePayloadChecksum: typeof calculatePayloadChecksum;
3683
+ declare const index$7_generateKeys: typeof generateKeys;
3684
+ declare const index$7_signPayload: typeof signPayload;
3685
+ declare const index$7_verifySignatures: typeof verifySignatures;
3686
+ declare namespace index$7 {
3687
+ export { index$7_calculatePayloadChecksum as calculatePayloadChecksum, index$7_generateKeys as generateKeys, index$7_signPayload as signPayload, index$7_verifySignatures as verifySignatures };
2880
3688
  }
2881
3689
 
2882
3690
  /**
@@ -3054,28 +3862,28 @@ declare function createTestSignature(keyId?: string, role?: string, notes?: stri
3054
3862
  */
3055
3863
  declare function createEmbeddedMetadataRecord<T extends GitGovRecordPayload>(payload: T, options?: CreateEmbeddedMetadataOptions): EmbeddedMetadataRecord<T>;
3056
3864
 
3057
- type index$5_CreateEmbeddedMetadataOptions = CreateEmbeddedMetadataOptions;
3058
- type index$5_SignatureConfig = SignatureConfig;
3059
- declare const index$5_createActorRecord: typeof createActorRecord;
3060
- declare const index$5_createAgentRecord: typeof createAgentRecord;
3061
- declare const index$5_createChangelogRecord: typeof createChangelogRecord;
3062
- declare const index$5_createCycleRecord: typeof createCycleRecord;
3063
- declare const index$5_createDefaultWorkflowMethodologyConfig: typeof createDefaultWorkflowMethodologyConfig;
3064
- declare const index$5_createEmbeddedMetadataRecord: typeof createEmbeddedMetadataRecord;
3065
- declare const index$5_createExecutionRecord: typeof createExecutionRecord;
3066
- declare const index$5_createFeedbackRecord: typeof createFeedbackRecord;
3067
- declare const index$5_createTaskRecord: typeof createTaskRecord;
3068
- declare const index$5_createTestSignature: typeof createTestSignature;
3069
- declare const index$5_createWorkflowMethodologyConfig: typeof createWorkflowMethodologyConfig;
3070
- declare const index$5_loadActorRecord: typeof loadActorRecord;
3071
- declare const index$5_loadAgentRecord: typeof loadAgentRecord;
3072
- declare const index$5_loadChangelogRecord: typeof loadChangelogRecord;
3073
- declare const index$5_loadCycleRecord: typeof loadCycleRecord;
3074
- declare const index$5_loadExecutionRecord: typeof loadExecutionRecord;
3075
- declare const index$5_loadFeedbackRecord: typeof loadFeedbackRecord;
3076
- declare const index$5_loadTaskRecord: typeof loadTaskRecord;
3077
- declare namespace index$5 {
3078
- export { type index$5_CreateEmbeddedMetadataOptions as CreateEmbeddedMetadataOptions, type index$5_SignatureConfig as SignatureConfig, index$5_createActorRecord as createActorRecord, index$5_createAgentRecord as createAgentRecord, index$5_createChangelogRecord as createChangelogRecord, index$5_createCycleRecord as createCycleRecord, index$5_createDefaultWorkflowMethodologyConfig as createDefaultWorkflowMethodologyConfig, index$5_createEmbeddedMetadataRecord as createEmbeddedMetadataRecord, index$5_createExecutionRecord as createExecutionRecord, index$5_createFeedbackRecord as createFeedbackRecord, index$5_createTaskRecord as createTaskRecord, index$5_createTestSignature as createTestSignature, index$5_createWorkflowMethodologyConfig as createWorkflowMethodologyConfig, index$5_loadActorRecord as loadActorRecord, index$5_loadAgentRecord as loadAgentRecord, index$5_loadChangelogRecord as loadChangelogRecord, index$5_loadCycleRecord as loadCycleRecord, index$5_loadExecutionRecord as loadExecutionRecord, index$5_loadFeedbackRecord as loadFeedbackRecord, index$5_loadTaskRecord as loadTaskRecord };
3865
+ type index$6_CreateEmbeddedMetadataOptions = CreateEmbeddedMetadataOptions;
3866
+ type index$6_SignatureConfig = SignatureConfig;
3867
+ declare const index$6_createActorRecord: typeof createActorRecord;
3868
+ declare const index$6_createAgentRecord: typeof createAgentRecord;
3869
+ declare const index$6_createChangelogRecord: typeof createChangelogRecord;
3870
+ declare const index$6_createCycleRecord: typeof createCycleRecord;
3871
+ declare const index$6_createDefaultWorkflowMethodologyConfig: typeof createDefaultWorkflowMethodologyConfig;
3872
+ declare const index$6_createEmbeddedMetadataRecord: typeof createEmbeddedMetadataRecord;
3873
+ declare const index$6_createExecutionRecord: typeof createExecutionRecord;
3874
+ declare const index$6_createFeedbackRecord: typeof createFeedbackRecord;
3875
+ declare const index$6_createTaskRecord: typeof createTaskRecord;
3876
+ declare const index$6_createTestSignature: typeof createTestSignature;
3877
+ declare const index$6_createWorkflowMethodologyConfig: typeof createWorkflowMethodologyConfig;
3878
+ declare const index$6_loadActorRecord: typeof loadActorRecord;
3879
+ declare const index$6_loadAgentRecord: typeof loadAgentRecord;
3880
+ declare const index$6_loadChangelogRecord: typeof loadChangelogRecord;
3881
+ declare const index$6_loadCycleRecord: typeof loadCycleRecord;
3882
+ declare const index$6_loadExecutionRecord: typeof loadExecutionRecord;
3883
+ declare const index$6_loadFeedbackRecord: typeof loadFeedbackRecord;
3884
+ declare const index$6_loadTaskRecord: typeof loadTaskRecord;
3885
+ declare namespace index$6 {
3886
+ export { type index$6_CreateEmbeddedMetadataOptions as CreateEmbeddedMetadataOptions, type index$6_SignatureConfig as SignatureConfig, index$6_createActorRecord as createActorRecord, index$6_createAgentRecord as createAgentRecord, index$6_createChangelogRecord as createChangelogRecord, index$6_createCycleRecord as createCycleRecord, index$6_createDefaultWorkflowMethodologyConfig as createDefaultWorkflowMethodologyConfig, index$6_createEmbeddedMetadataRecord as createEmbeddedMetadataRecord, index$6_createExecutionRecord as createExecutionRecord, index$6_createFeedbackRecord as createFeedbackRecord, index$6_createTaskRecord as createTaskRecord, index$6_createTestSignature as createTestSignature, index$6_createWorkflowMethodologyConfig as createWorkflowMethodologyConfig, index$6_loadActorRecord as loadActorRecord, index$6_loadAgentRecord as loadAgentRecord, index$6_loadChangelogRecord as loadChangelogRecord, index$6_loadCycleRecord as loadCycleRecord, index$6_loadExecutionRecord as loadExecutionRecord, index$6_loadFeedbackRecord as loadFeedbackRecord, index$6_loadTaskRecord as loadTaskRecord };
3079
3887
  }
3080
3888
 
3081
3889
  type StorablePayload = Exclude<GitGovRecordPayload, CustomRecord>;
@@ -3741,22 +4549,22 @@ declare class LintModule implements ILintModule {
3741
4549
  * ```
3742
4550
  */
3743
4551
 
3744
- type index$4_FileSystem = FileSystem;
3745
- type index$4_FixOptions = FixOptions;
3746
- type index$4_FixReport = FixReport;
3747
- type index$4_FixResult = FixResult;
3748
- type index$4_ILintModule = ILintModule;
3749
- type index$4_LintModule = LintModule;
3750
- declare const index$4_LintModule: typeof LintModule;
3751
- type index$4_LintModuleDependencies = LintModuleDependencies;
3752
- type index$4_LintOptions = LintOptions;
3753
- type index$4_LintReport = LintReport;
3754
- type index$4_LintResult = LintResult;
3755
- type index$4_LintSummary = LintSummary;
3756
- type index$4_ValidationContext = ValidationContext;
3757
- type index$4_ValidatorType = ValidatorType;
3758
- declare namespace index$4 {
3759
- export { type index$4_FileSystem as FileSystem, type index$4_FixOptions as FixOptions, type index$4_FixReport as FixReport, type index$4_FixResult as FixResult, type index$4_ILintModule as ILintModule, index$4_LintModule as LintModule, type index$4_LintModuleDependencies as LintModuleDependencies, type index$4_LintOptions as LintOptions, type index$4_LintReport as LintReport, type index$4_LintResult as LintResult, type index$4_LintSummary as LintSummary, type index$4_ValidationContext as ValidationContext, type index$4_ValidatorType as ValidatorType };
4552
+ type index$5_FileSystem = FileSystem;
4553
+ type index$5_FixOptions = FixOptions;
4554
+ type index$5_FixReport = FixReport;
4555
+ type index$5_FixResult = FixResult;
4556
+ type index$5_ILintModule = ILintModule;
4557
+ type index$5_LintModule = LintModule;
4558
+ declare const index$5_LintModule: typeof LintModule;
4559
+ type index$5_LintModuleDependencies = LintModuleDependencies;
4560
+ type index$5_LintOptions = LintOptions;
4561
+ type index$5_LintReport = LintReport;
4562
+ type index$5_LintResult = LintResult;
4563
+ type index$5_LintSummary = LintSummary;
4564
+ type index$5_ValidationContext = ValidationContext;
4565
+ type index$5_ValidatorType = ValidatorType;
4566
+ declare namespace index$5 {
4567
+ export { type index$5_FileSystem as FileSystem, type index$5_FixOptions as FixOptions, type index$5_FixReport as FixReport, type index$5_FixResult as FixResult, type index$5_ILintModule as ILintModule, index$5_LintModule as LintModule, type index$5_LintModuleDependencies as LintModuleDependencies, type index$5_LintOptions as LintOptions, type index$5_LintReport as LintReport, type index$5_LintResult as LintResult, type index$5_LintSummary as LintSummary, type index$5_ValidationContext as ValidationContext, type index$5_ValidatorType as ValidatorType };
3760
4568
  }
3761
4569
 
3762
4570
  type LogLevel = "debug" | "info" | "warn" | "error" | "silent";
@@ -3769,12 +4577,12 @@ interface Logger {
3769
4577
  declare function createLogger(prefix?: string, level?: LogLevel): Logger;
3770
4578
  declare const logger: Logger;
3771
4579
 
3772
- type index$3_LogLevel = LogLevel;
3773
- type index$3_Logger = Logger;
3774
- declare const index$3_createLogger: typeof createLogger;
3775
- declare const index$3_logger: typeof logger;
3776
- declare namespace index$3 {
3777
- export { type index$3_LogLevel as LogLevel, type index$3_Logger as Logger, index$3_createLogger as createLogger, index$3_logger as logger };
4580
+ type index$4_LogLevel = LogLevel;
4581
+ type index$4_Logger = Logger;
4582
+ declare const index$4_createLogger: typeof createLogger;
4583
+ declare const index$4_logger: typeof logger;
4584
+ declare namespace index$4 {
4585
+ export { type index$4_LogLevel as LogLevel, type index$4_Logger as Logger, index$4_createLogger as createLogger, index$4_logger as logger };
3778
4586
  }
3779
4587
 
3780
4588
  /**
@@ -7423,21 +8231,661 @@ declare class DetailedValidationError extends GitGovError {
7423
8231
  }>);
7424
8232
  }
7425
8233
 
7426
- type index$2_DetailedValidationError = DetailedValidationError;
7427
- declare const index$2_DetailedValidationError: typeof DetailedValidationError;
7428
- type index$2_GitGovError = GitGovError;
7429
- declare const index$2_GitGovError: typeof GitGovError;
7430
- type index$2_SchemaName = SchemaName;
7431
- type index$2_SchemaValidationCache = SchemaValidationCache;
7432
- declare const index$2_SchemaValidationCache: typeof SchemaValidationCache;
7433
- type index$2_SchemaValidationError = SchemaValidationError;
7434
- declare const index$2_SchemaValidationError: typeof SchemaValidationError;
7435
- declare const index$2_Schemas: typeof Schemas;
7436
- declare const index$2_getSchema: typeof getSchema;
7437
- declare const index$2_getSchemaNames: typeof getSchemaNames;
7438
- declare const index$2_hasSchema: typeof hasSchema;
8234
+ type index$3_DetailedValidationError = DetailedValidationError;
8235
+ declare const index$3_DetailedValidationError: typeof DetailedValidationError;
8236
+ type index$3_GitGovError = GitGovError;
8237
+ declare const index$3_GitGovError: typeof GitGovError;
8238
+ type index$3_SchemaName = SchemaName;
8239
+ type index$3_SchemaValidationCache = SchemaValidationCache;
8240
+ declare const index$3_SchemaValidationCache: typeof SchemaValidationCache;
8241
+ type index$3_SchemaValidationError = SchemaValidationError;
8242
+ declare const index$3_SchemaValidationError: typeof SchemaValidationError;
8243
+ declare const index$3_Schemas: typeof Schemas;
8244
+ declare const index$3_getSchema: typeof getSchema;
8245
+ declare const index$3_getSchemaNames: typeof getSchemaNames;
8246
+ declare const index$3_hasSchema: typeof hasSchema;
8247
+ declare namespace index$3 {
8248
+ export { index$3_DetailedValidationError as DetailedValidationError, index$3_GitGovError as GitGovError, type index$3_SchemaName as SchemaName, index$3_SchemaValidationCache as SchemaValidationCache, index$3_SchemaValidationError as SchemaValidationError, index$3_Schemas as Schemas, index$3_getSchema as getSchema, index$3_getSchemaNames as getSchemaNames, index$3_hasSchema as hasSchema };
8249
+ }
8250
+
8251
+ /**
8252
+ * SyncModule Dependencies
8253
+ */
8254
+ interface SyncModuleDependencies {
8255
+ /** Low-level Git module (required) */
8256
+ git: GitModule;
8257
+ /** Configuration manager (required) */
8258
+ config: ConfigManager;
8259
+ /** Identity adapter for signature verification and signing (required) */
8260
+ identity: IIdentityAdapter;
8261
+ /** Lint module for record validation (required) */
8262
+ lint: LintModule;
8263
+ /** Indexer adapter for automatic re-indexing after pull/resolve (required) */
8264
+ indexer: IIndexerAdapter;
8265
+ }
8266
+ /**
8267
+ * Options for pushState operation
8268
+ */
8269
+ interface SyncPushOptions {
8270
+ /** Branch to push from (default: current branch) */
8271
+ sourceBranch?: string;
8272
+ /** Actor ID publishing the state (required) */
8273
+ actorId: string;
8274
+ /** Simulate operation without making real changes */
8275
+ dryRun?: boolean;
8276
+ /** Force push even if there are unsynced remote changes */
8277
+ force?: boolean;
8278
+ }
8279
+ /**
8280
+ * Result of pushState operation
8281
+ */
8282
+ interface SyncPushResult {
8283
+ /** Indicates if the operation was successful */
8284
+ success: boolean;
8285
+ /** Number of files synced */
8286
+ filesSynced: number;
8287
+ /** Name of the branch pushed from */
8288
+ sourceBranch: string;
8289
+ /** Created commit hash (null if no changes or dry-run) */
8290
+ commitHash: string | null;
8291
+ /** Created commit message */
8292
+ commitMessage: string | null;
8293
+ /** Indicates if a conflict was detected during reconciliation */
8294
+ conflictDetected: boolean;
8295
+ /** Conflict information if detected */
8296
+ conflictInfo?: ConflictInfo;
8297
+ /** Error message if operation failed */
8298
+ error?: string;
8299
+ }
8300
+ /**
8301
+ * Options for pullState operation
8302
+ */
8303
+ interface SyncPullOptions {
8304
+ /** Force re-indexing even if there are no new changes */
8305
+ forceReindex?: boolean;
8306
+ }
8307
+ /**
8308
+ * Result of pullState operation
8309
+ */
8310
+ interface SyncPullResult {
8311
+ /** Indicates if the operation was successful */
8312
+ success: boolean;
8313
+ /** Indicates if there were new remote changes */
8314
+ hasChanges: boolean;
8315
+ /** Number of files updated */
8316
+ filesUpdated: number;
8317
+ /** Indicates if re-indexing was executed */
8318
+ reindexed: boolean;
8319
+ /** Indicates if a conflict was detected during pull */
8320
+ conflictDetected: boolean;
8321
+ /** Conflict information if detected */
8322
+ conflictInfo?: ConflictInfo;
8323
+ /** Error message if operation failed */
8324
+ error?: string;
8325
+ }
8326
+ /**
8327
+ * Options for resolveConflict operation
8328
+ */
8329
+ interface SyncResolveOptions {
8330
+ /** Justification for the conflict resolution (required) */
8331
+ reason: string;
8332
+ /** Actor ID resolving the conflict (required) */
8333
+ actorId: string;
8334
+ }
8335
+ /**
8336
+ * Result of resolveConflict operation
8337
+ */
8338
+ interface SyncResolveResult {
8339
+ /** Indicates if the operation was successful */
8340
+ success: boolean;
8341
+ /** Commit hash of the created rebase commit */
8342
+ rebaseCommitHash: string;
8343
+ /** Commit hash of the signed resolution commit */
8344
+ resolutionCommitHash: string;
8345
+ /** Number of conflicts resolved */
8346
+ conflictsResolved: number;
8347
+ /** Actor ID who resolved the conflict */
8348
+ resolvedBy: string;
8349
+ /** Reason for resolution */
8350
+ reason: string;
8351
+ /** Error message if operation failed */
8352
+ error?: string;
8353
+ }
8354
+ /**
8355
+ * Detailed information about a detected conflict
8356
+ */
8357
+ interface ConflictInfo {
8358
+ /** Type of conflict detected */
8359
+ type: ConflictType;
8360
+ /** Files affected by the conflict */
8361
+ affectedFiles: string[];
8362
+ /** Descriptive message of the conflict */
8363
+ message: string;
8364
+ /** Instructions to resolve the conflict */
8365
+ resolutionSteps: string[];
8366
+ }
8367
+ /**
8368
+ * Auxiliary type to identify the conflict type
8369
+ */
8370
+ type ConflictType = "rebase_conflict" | "merge_conflict" | "integrity_violation" | "unresolved_markers";
8371
+ /**
8372
+ * Information about a detected integrity violation
8373
+ */
8374
+ interface IntegrityViolation {
8375
+ /** Commit hash of the rebase commit without resolution */
8376
+ rebaseCommitHash: string;
8377
+ /** Message of the rebase commit */
8378
+ commitMessage: string;
8379
+ /** Timestamp of the commit */
8380
+ timestamp: string;
8381
+ /** Author of the commit */
8382
+ author: string;
8383
+ }
8384
+ /**
8385
+ * Verification scope for state audit
8386
+ */
8387
+ type AuditScope = "current" | "state-branch" | "all";
8388
+ /**
8389
+ * Scope for expected files verification
8390
+ */
8391
+ type ExpectedFilesScope = "head" | "all-commits";
8392
+ /**
8393
+ * Options for state audit
8394
+ */
8395
+ interface AuditStateOptions {
8396
+ /** Verification scope: which Records to verify (default: "all") */
8397
+ scope?: AuditScope;
8398
+ /** Verify signatures in Records (default: true) */
8399
+ verifySignatures?: boolean;
8400
+ /** Verify checksums of Records (default: true) */
8401
+ verifyChecksums?: boolean;
8402
+ /** Verify that expected files exist (default: true) */
8403
+ verifyExpectedFiles?: boolean;
8404
+ /** Scope for expected files verification (default: "head") */
8405
+ expectedFilesScope?: ExpectedFilesScope;
8406
+ /** Path of specific files to audit (default: all in .gitgov/) */
8407
+ filePaths?: string[];
8408
+ }
8409
+ /**
8410
+ * Conflict diff information for a file
8411
+ */
8412
+ interface ConflictFileDiff {
8413
+ /** Path of the conflicted file */
8414
+ filePath: string;
8415
+ /** Content of the local version (ours) */
8416
+ localContent: string;
8417
+ /** Content of the remote version (theirs) */
8418
+ remoteContent: string;
8419
+ /** Base content (common ancestor) */
8420
+ baseContent: string | null;
8421
+ /** Lines with conflict markers (if they still exist) */
8422
+ conflictMarkers?: Array<{
8423
+ line: number;
8424
+ marker: string;
8425
+ }>;
8426
+ }
8427
+ /**
8428
+ * Structured conflict diff
8429
+ */
8430
+ interface ConflictDiff {
8431
+ /** Conflicted files with their diff */
8432
+ files: ConflictFileDiff[];
8433
+ /** Descriptive message of the conflict */
8434
+ message: string;
8435
+ /** Instructions to resolve */
8436
+ resolutionSteps: string[];
8437
+ }
8438
+ /**
8439
+ * Complete state audit report
8440
+ *
8441
+ * This report combines SyncModule-specific audits (rebase integrity, commits)
8442
+ * with structural validation from LintModule (signatures, checksums, schemas).
8443
+ */
8444
+ interface AuditStateReport {
8445
+ /** Indicates if the audit passed without violations */
8446
+ passed: boolean;
8447
+ /** Scope used for the audit */
8448
+ scope: AuditScope;
8449
+ /** Total commits analyzed */
8450
+ totalCommits: number;
8451
+ /** Rebase commits found */
8452
+ rebaseCommits: number;
8453
+ /** Resolution commits found */
8454
+ resolutionCommits: number;
8455
+ /** Integrity violations of resolutions (SyncModule-specific) */
8456
+ integrityViolations: IntegrityViolation[];
8457
+ /** Summary message of the audit */
8458
+ summary: string;
8459
+ /** Complete LintModule report for structural validation (signatures, checksums, schemas, etc.) */
8460
+ lintReport?: LintReport;
8461
+ }
8462
+ /**
8463
+ * Information of a changed file in the delta
8464
+ */
8465
+ interface StateDeltaFile {
8466
+ /** File status: Added, Modified, Deleted */
8467
+ status: "A" | "M" | "D";
8468
+ /** File path */
8469
+ file: string;
8470
+ }
8471
+
8472
+ /**
8473
+ * SyncModule - Manages state synchronization between local environment and gitgov-state branch
8474
+ *
8475
+ * Responsibilities:
8476
+ * - Create and maintain the gitgov-state branch (local and remote)
8477
+ * - Publish local changes (pushState)
8478
+ * - Pull remote changes (pullState)
8479
+ * - Resolve conflicts in a governed manner (resolveConflict)
8480
+ * - Audit state integrity (auditState)
8481
+ *
8482
+ * Philosophy:
8483
+ * - Pipeline Pattern: Sequential operations with validation at each phase
8484
+ * - Fail-Fast: Early verifications to avoid costly operations
8485
+ * - Strict Dependencies: All dependencies (git, config, identity, lint, indexer) are required for robust operations
8486
+ */
8487
+ declare class SyncModule {
8488
+ private git;
8489
+ private config;
8490
+ private identity;
8491
+ private lint;
8492
+ private indexer;
8493
+ /**
8494
+ * Constructor with dependency injection
8495
+ */
8496
+ constructor(dependencies: SyncModuleDependencies);
8497
+ /**
8498
+ * Static method to bootstrap .gitgov/ from gitgov-state branch.
8499
+ * Used when cloning a repo that has gitgov-state but .gitgov/ is not in the work branch.
8500
+ *
8501
+ * This method only requires GitModule and can be called before full SyncModule initialization.
8502
+ *
8503
+ * @param gitModule - GitModule instance for git operations
8504
+ * @param stateBranch - Name of the state branch (default: "gitgov-state")
8505
+ * @returns Promise<{ success: boolean; error?: string }>
8506
+ */
8507
+ static bootstrapFromStateBranch(gitModule: GitModule, stateBranch?: string): Promise<{
8508
+ success: boolean;
8509
+ error?: string;
8510
+ }>;
8511
+ /**
8512
+ * Gets the state branch name from configuration.
8513
+ * Default: "gitgov-state"
8514
+ *
8515
+ * [EARS-4]
8516
+ */
8517
+ getStateBranchName(): Promise<string>;
8518
+ /**
8519
+ * Ensures that the gitgov-state branch exists both locally and remotely.
8520
+ * If it doesn't exist, creates it as an orphan branch.
8521
+ *
8522
+ * Use cases (4 edge cases):
8523
+ * 1. Doesn't exist locally or remotely → Create orphan branch + initial commit + push
8524
+ * 2. Exists remotely, not locally → Fetch + create local + set tracking
8525
+ * 3. Exists locally, not remotely → Push + set tracking
8526
+ * 4. Exists both → Verify tracking
8527
+ *
8528
+ * [EARS-1, EARS-2, EARS-3]
8529
+ */
8530
+ ensureStateBranch(): Promise<void>;
8531
+ /**
8532
+ * Creates the gitgov-state orphan branch with an empty initial commit.
8533
+ * Used by ensureStateBranch when the branch doesn't exist locally or remotely.
8534
+ *
8535
+ * [EARS-1]
8536
+ */
8537
+ private createOrphanStateBranch;
8538
+ /**
8539
+ * Calculates the file delta in .gitgov/ between the current branch and gitgov-state.
8540
+ *
8541
+ * [EARS-5]
8542
+ */
8543
+ calculateStateDelta(sourceBranch: string): Promise<StateDeltaFile[]>;
8544
+ /**
8545
+ * Checks if a rebase is in progress.
8546
+ *
8547
+ * [EARS-22]
8548
+ */
8549
+ isRebaseInProgress(): Promise<boolean>;
8550
+ /**
8551
+ * Checks for absence of conflict markers in specified files.
8552
+ * Returns list of files that still have markers.
8553
+ *
8554
+ * [EARS-23]
8555
+ */
8556
+ checkConflictMarkers(filePaths: string[]): Promise<string[]>;
8557
+ /**
8558
+ * Gets the diff of conflicted files for manual analysis.
8559
+ * Useful so the actor can analyze conflicted changes before resolving.
8560
+ *
8561
+ * [EARS-31]
8562
+ */
8563
+ getConflictDiff(filePaths?: string[]): Promise<ConflictDiff>;
8564
+ /**
8565
+ * Verifies integrity of previous resolutions in gitgov-state history.
8566
+ * Returns list of violations if any exist.
8567
+ *
8568
+ * [EARS-24, EARS-25, EARS-26]
8569
+ */
8570
+ verifyResolutionIntegrity(): Promise<IntegrityViolation[]>;
8571
+ /**
8572
+ * Complete audit of gitgov-state status.
8573
+ * Verifies integrity of resolutions, signatures in Records, checksums and expected files.
8574
+ *
8575
+ * [EARS-27, EARS-28, EARS-29, EARS-30]
8576
+ */
8577
+ auditState(options?: AuditStateOptions): Promise<AuditStateReport>;
8578
+ /**
8579
+ * Publishes local state changes to gitgov-state.
8580
+ * Implements 3 phases: verification, reconciliation, publication.
8581
+ *
8582
+ * [EARS-6 through EARS-12]
8583
+ */
8584
+ pushState(options: SyncPushOptions): Promise<SyncPushResult>;
8585
+ /**
8586
+ * Pulls remote changes from gitgov-state to the local environment.
8587
+ * Includes automatic re-indexing if there are new changes.
8588
+ *
8589
+ * [EARS-13 through EARS-16]
8590
+ * [EARS-44] Requires remote to be configured (pull without remote makes no sense)
8591
+ */
8592
+ pullState(options?: SyncPullOptions): Promise<SyncPullResult>;
8593
+ /**
8594
+ * Resolves state conflicts in a governed manner.
8595
+ * Updates resolved Records (recalculates checksum and adds resolver signature),
8596
+ * creates rebase and resolution commits signed according to protocol.
8597
+ *
8598
+ * [EARS-17 through EARS-23]
8599
+ */
8600
+ resolveConflict(options: SyncResolveOptions): Promise<SyncResolveResult>;
8601
+ }
8602
+
8603
+ /**
8604
+ * PullScheduler - Periodic State Synchronization
8605
+ *
8606
+ * Background scheduler that automatically pulls state changes from remote
8607
+ * at configured intervals.
8608
+ *
8609
+ * @module sync/pull_scheduler
8610
+ */
8611
+
8612
+ /**
8613
+ * Result of a pull operation executed by the scheduler
8614
+ */
8615
+ interface PullSchedulerResult {
8616
+ /** Whether the operation was successful */
8617
+ success: boolean;
8618
+ /** Whether new changes were detected */
8619
+ hasChanges: boolean;
8620
+ /** Whether a conflict was detected */
8621
+ conflictDetected: boolean;
8622
+ /** Conflict information if applicable */
8623
+ conflictInfo?: {
8624
+ type: string;
8625
+ message: string;
8626
+ affectedFiles?: string[];
8627
+ };
8628
+ /** Timestamp of the operation */
8629
+ timestamp: string;
8630
+ /** Error if operation failed */
8631
+ error?: string;
8632
+ }
8633
+ /**
8634
+ * Configuration for the PullScheduler
8635
+ */
8636
+ interface PullSchedulerConfig {
8637
+ /** Whether the scheduler is enabled */
8638
+ enabled: boolean;
8639
+ /** Pull interval in seconds */
8640
+ pullIntervalSeconds: number;
8641
+ /** Whether to continue after network errors */
8642
+ continueOnNetworkError: boolean;
8643
+ /** Whether to stop if a conflict is detected */
8644
+ stopOnConflict: boolean;
8645
+ }
8646
+ /**
8647
+ * Dependencies required by PullScheduler
8648
+ */
8649
+ interface PullSchedulerDependencies {
8650
+ /** SyncModule for pull operations */
8651
+ syncModule: SyncModule;
8652
+ /** ConfigManager for loading configuration */
8653
+ configManager: ConfigManager;
8654
+ }
8655
+ /**
8656
+ * PullScheduler - Automatic background synchronization
8657
+ *
8658
+ * Periodically pulls state changes from remote to keep local state up-to-date.
8659
+ * Useful for collaboration scenarios where multiple actors are working simultaneously.
8660
+ *
8661
+ * [EARS-33 to EARS-40]
8662
+ *
8663
+ * @example
8664
+ * ```typescript
8665
+ * const scheduler = new PullScheduler({
8666
+ * syncModule,
8667
+ * configManager
8668
+ * });
8669
+ *
8670
+ * await scheduler.start(); // Start periodic pulling
8671
+ * // ... scheduler runs in background ...
8672
+ * scheduler.stop(); // Stop scheduler
8673
+ * ```
8674
+ */
8675
+ declare class PullScheduler {
8676
+ private syncModule;
8677
+ private configManager;
8678
+ private config;
8679
+ private intervalId?;
8680
+ private running;
8681
+ private pulling;
8682
+ constructor(dependencies: PullSchedulerDependencies);
8683
+ /**
8684
+ * Loads configuration from ConfigManager with cascade merge:
8685
+ * 1. Local preferences in .session.json (highest priority)
8686
+ * 2. Project defaults in config.json
8687
+ * 3. Hardcoded defaults (fallback)
8688
+ */
8689
+ private loadConfig;
8690
+ /**
8691
+ * Starts the scheduler with configured interval
8692
+ *
8693
+ * [EARS-33, EARS-34]
8694
+ *
8695
+ * @throws Error if scheduler fails to load configuration
8696
+ *
8697
+ * @example
8698
+ * ```typescript
8699
+ * await scheduler.start();
8700
+ * // Scheduler now pulls every N seconds
8701
+ * ```
8702
+ */
8703
+ start(): Promise<void>;
8704
+ /**
8705
+ * Stops the scheduler and cleans up resources
8706
+ *
8707
+ * [EARS-35]
8708
+ *
8709
+ * @example
8710
+ * ```typescript
8711
+ * scheduler.stop();
8712
+ * // Scheduler is now stopped
8713
+ * ```
8714
+ */
8715
+ stop(): void;
8716
+ /**
8717
+ * Checks if the scheduler is currently running
8718
+ *
8719
+ * [EARS-36]
8720
+ *
8721
+ * @returns true if running, false otherwise
8722
+ *
8723
+ * @example
8724
+ * ```typescript
8725
+ * if (scheduler.isRunning()) {
8726
+ * console.log("Scheduler is active");
8727
+ * }
8728
+ * ```
8729
+ */
8730
+ isRunning(): boolean;
8731
+ /**
8732
+ * Executes a pull operation immediately
8733
+ *
8734
+ * This method can be called manually or is automatically invoked by the scheduler.
8735
+ * Handles conflicts, network errors, and concurrent pull prevention.
8736
+ *
8737
+ * [EARS-37, EARS-38, EARS-39, EARS-40]
8738
+ *
8739
+ * @returns Result of the pull operation
8740
+ *
8741
+ * @example
8742
+ * ```typescript
8743
+ * const result = await scheduler.pullNow();
8744
+ * if (result.hasChanges) {
8745
+ * console.log("New changes detected");
8746
+ * }
8747
+ * ```
8748
+ */
8749
+ pullNow(): Promise<PullSchedulerResult>;
8750
+ }
8751
+
8752
+ /**
8753
+ * Base error class for all sync-related errors
8754
+ */
8755
+ declare class SyncError extends Error {
8756
+ constructor(message: string);
8757
+ }
8758
+ /**
8759
+ * Error thrown when attempting to push from gitgov-state branch
8760
+ */
8761
+ declare class PushFromStateBranchError extends SyncError {
8762
+ branch: string;
8763
+ constructor(branchName: string);
8764
+ }
8765
+ /**
8766
+ * Error thrown when integrity violations are detected during audit
8767
+ */
8768
+ declare class IntegrityViolationError extends SyncError {
8769
+ violations: Array<{
8770
+ type: "resolution" | "signature" | "checksum" | "missing_file";
8771
+ details: string;
8772
+ }>;
8773
+ constructor(violations: Array<{
8774
+ type: "resolution" | "signature" | "checksum" | "missing_file";
8775
+ details: string;
8776
+ }>);
8777
+ }
8778
+ /**
8779
+ * Error thrown when conflict markers are still present in files
8780
+ */
8781
+ declare class ConflictMarkersPresentError extends SyncError {
8782
+ filesWithMarkers: string[];
8783
+ constructor(filesWithMarkers: string[]);
8784
+ }
8785
+ /**
8786
+ * Error thrown when attempting to resolve conflict without rebase in progress
8787
+ */
8788
+ declare class NoRebaseInProgressError extends SyncError {
8789
+ constructor();
8790
+ }
8791
+ /**
8792
+ * Error thrown when CryptoModule is required but not available
8793
+ */
8794
+ declare class CryptoModuleRequiredError extends SyncError {
8795
+ constructor(operation: string);
8796
+ }
8797
+ /**
8798
+ * Error thrown when state branch cannot be created or configured
8799
+ */
8800
+ declare class StateBranchSetupError extends SyncError {
8801
+ reason: string;
8802
+ underlyingError?: Error | undefined;
8803
+ constructor(reason: string, underlyingError?: Error | undefined);
8804
+ }
8805
+ /**
8806
+ * Error thrown when uncommitted changes exist in state branch
8807
+ */
8808
+ declare class UncommittedChangesError extends SyncError {
8809
+ branch: string;
8810
+ constructor(branchName: string);
8811
+ }
8812
+ /**
8813
+ * Type guards for error handling
8814
+ *
8815
+ * These functions enable type-safe error handling by narrowing the error type.
8816
+ * They are additive and don't break any existing code.
8817
+ *
8818
+ * Example usage:
8819
+ * ```typescript
8820
+ * try {
8821
+ * await syncModule.pushState(options);
8822
+ * } catch (error) {
8823
+ * if (isPushFromStateBranchError(error)) {
8824
+ * // TypeScript knows error.branch exists here
8825
+ * console.log(`Cannot push from ${error.branch}`);
8826
+ * }
8827
+ * }
8828
+ * ```
8829
+ */
8830
+ declare function isSyncError(error: unknown): error is SyncError;
8831
+ declare function isPushFromStateBranchError(error: unknown): error is PushFromStateBranchError;
8832
+ declare function isIntegrityViolationError(error: unknown): error is IntegrityViolationError;
8833
+ declare function isConflictMarkersPresentError(error: unknown): error is ConflictMarkersPresentError;
8834
+ declare function isUncommittedChangesError(error: unknown): error is UncommittedChangesError;
8835
+ declare function isNoRebaseInProgressError(error: unknown): error is NoRebaseInProgressError;
8836
+ declare function isStateBranchSetupError(error: unknown): error is StateBranchSetupError;
8837
+ declare function isCryptoModuleRequiredError(error: unknown): error is CryptoModuleRequiredError;
8838
+
8839
+ type index$2_AuditScope = AuditScope;
8840
+ type index$2_AuditStateOptions = AuditStateOptions;
8841
+ type index$2_AuditStateReport = AuditStateReport;
8842
+ type index$2_ConflictDiff = ConflictDiff;
8843
+ type index$2_ConflictFileDiff = ConflictFileDiff;
8844
+ type index$2_ConflictInfo = ConflictInfo;
8845
+ type index$2_ConflictMarkersPresentError = ConflictMarkersPresentError;
8846
+ declare const index$2_ConflictMarkersPresentError: typeof ConflictMarkersPresentError;
8847
+ type index$2_ConflictType = ConflictType;
8848
+ type index$2_CryptoModuleRequiredError = CryptoModuleRequiredError;
8849
+ declare const index$2_CryptoModuleRequiredError: typeof CryptoModuleRequiredError;
8850
+ type index$2_ExpectedFilesScope = ExpectedFilesScope;
8851
+ type index$2_IntegrityViolation = IntegrityViolation;
8852
+ type index$2_IntegrityViolationError = IntegrityViolationError;
8853
+ declare const index$2_IntegrityViolationError: typeof IntegrityViolationError;
8854
+ type index$2_NoRebaseInProgressError = NoRebaseInProgressError;
8855
+ declare const index$2_NoRebaseInProgressError: typeof NoRebaseInProgressError;
8856
+ type index$2_PullScheduler = PullScheduler;
8857
+ declare const index$2_PullScheduler: typeof PullScheduler;
8858
+ type index$2_PullSchedulerConfig = PullSchedulerConfig;
8859
+ type index$2_PullSchedulerDependencies = PullSchedulerDependencies;
8860
+ type index$2_PullSchedulerResult = PullSchedulerResult;
8861
+ type index$2_PushFromStateBranchError = PushFromStateBranchError;
8862
+ declare const index$2_PushFromStateBranchError: typeof PushFromStateBranchError;
8863
+ type index$2_StateBranchSetupError = StateBranchSetupError;
8864
+ declare const index$2_StateBranchSetupError: typeof StateBranchSetupError;
8865
+ type index$2_StateDeltaFile = StateDeltaFile;
8866
+ type index$2_SyncError = SyncError;
8867
+ declare const index$2_SyncError: typeof SyncError;
8868
+ type index$2_SyncModule = SyncModule;
8869
+ declare const index$2_SyncModule: typeof SyncModule;
8870
+ type index$2_SyncModuleDependencies = SyncModuleDependencies;
8871
+ type index$2_SyncPullOptions = SyncPullOptions;
8872
+ type index$2_SyncPullResult = SyncPullResult;
8873
+ type index$2_SyncPushOptions = SyncPushOptions;
8874
+ type index$2_SyncPushResult = SyncPushResult;
8875
+ type index$2_SyncResolveOptions = SyncResolveOptions;
8876
+ type index$2_SyncResolveResult = SyncResolveResult;
8877
+ type index$2_UncommittedChangesError = UncommittedChangesError;
8878
+ declare const index$2_UncommittedChangesError: typeof UncommittedChangesError;
8879
+ declare const index$2_isConflictMarkersPresentError: typeof isConflictMarkersPresentError;
8880
+ declare const index$2_isCryptoModuleRequiredError: typeof isCryptoModuleRequiredError;
8881
+ declare const index$2_isIntegrityViolationError: typeof isIntegrityViolationError;
8882
+ declare const index$2_isNoRebaseInProgressError: typeof isNoRebaseInProgressError;
8883
+ declare const index$2_isPushFromStateBranchError: typeof isPushFromStateBranchError;
8884
+ declare const index$2_isStateBranchSetupError: typeof isStateBranchSetupError;
8885
+ declare const index$2_isSyncError: typeof isSyncError;
8886
+ declare const index$2_isUncommittedChangesError: typeof isUncommittedChangesError;
7439
8887
  declare namespace index$2 {
7440
- export { index$2_DetailedValidationError as DetailedValidationError, index$2_GitGovError as GitGovError, type index$2_SchemaName as SchemaName, index$2_SchemaValidationCache as SchemaValidationCache, index$2_SchemaValidationError as SchemaValidationError, index$2_Schemas as Schemas, index$2_getSchema as getSchema, index$2_getSchemaNames as getSchemaNames, index$2_hasSchema as hasSchema };
8888
+ export { type index$2_AuditScope as AuditScope, type index$2_AuditStateOptions as AuditStateOptions, type index$2_AuditStateReport as AuditStateReport, type index$2_ConflictDiff as ConflictDiff, type index$2_ConflictFileDiff as ConflictFileDiff, type index$2_ConflictInfo as ConflictInfo, index$2_ConflictMarkersPresentError as ConflictMarkersPresentError, type index$2_ConflictType as ConflictType, index$2_CryptoModuleRequiredError as CryptoModuleRequiredError, type index$2_ExpectedFilesScope as ExpectedFilesScope, type index$2_IntegrityViolation as IntegrityViolation, index$2_IntegrityViolationError as IntegrityViolationError, index$2_NoRebaseInProgressError as NoRebaseInProgressError, index$2_PullScheduler as PullScheduler, type index$2_PullSchedulerConfig as PullSchedulerConfig, type index$2_PullSchedulerDependencies as PullSchedulerDependencies, type index$2_PullSchedulerResult as PullSchedulerResult, index$2_PushFromStateBranchError as PushFromStateBranchError, index$2_StateBranchSetupError as StateBranchSetupError, type index$2_StateDeltaFile as StateDeltaFile, index$2_SyncError as SyncError, index$2_SyncModule as SyncModule, type index$2_SyncModuleDependencies as SyncModuleDependencies, type index$2_SyncPullOptions as SyncPullOptions, type index$2_SyncPullResult as SyncPullResult, type index$2_SyncPushOptions as SyncPushOptions, type index$2_SyncPushResult as SyncPushResult, type index$2_SyncResolveOptions as SyncResolveOptions, type index$2_SyncResolveResult as SyncResolveResult, index$2_UncommittedChangesError as UncommittedChangesError, index$2_isConflictMarkersPresentError as isConflictMarkersPresentError, index$2_isCryptoModuleRequiredError as isCryptoModuleRequiredError, index$2_isIntegrityViolationError as isIntegrityViolationError, index$2_isNoRebaseInProgressError as isNoRebaseInProgressError, index$2_isPushFromStateBranchError as isPushFromStateBranchError, index$2_isStateBranchSetupError as isStateBranchSetupError, index$2_isSyncError as isSyncError, index$2_isUncommittedChangesError as isUncommittedChangesError };
7441
8889
  }
7442
8890
 
7443
8891
  /**
@@ -7977,4 +9425,4 @@ declare namespace index {
7977
9425
  export { index_CircularDependencyError as CircularDependencyError, index_ContentSanitizer as ContentSanitizer, type index_DiagramEdge as DiagramEdge, index_DiagramGenerator as DiagramGenerator, index_DiagramMetrics as DiagramMetrics, type index_DiagramNode as DiagramNode, type index_DiagramOptions as DiagramOptions, index_MermaidRenderer as MermaidRenderer, index_MermaidValidator as MermaidValidator, index_RelationshipAnalyzer as RelationshipAnalyzer, type index_RelationshipGraph as RelationshipGraph, index_RenderingError as RenderingError };
7978
9426
  }
7979
9427
 
7980
- export { index$7 as Adapters, index$b as BacklogAdapter, index$e as ChangelogAdapter, index$9 as Config, index$6 as Crypto, index as DiagramGenerator, index$i as EventBus, index$f as ExecutionAdapter, index$5 as Factories, index$g as FeedbackAdapter, index$h as IdentityAdapter, index$a as IndexerAdapter, index$4 as Lint, index$3 as Logger, index$d as MetricsAdapter, index$8 as ProjectAdapter, index$k as Records, index$2 as Schemas, index$j as Store, index$1 as Validation, index$c as WorkflowMethodologyAdapter };
9428
+ export { index$8 as Adapters, index$c as BacklogAdapter, index$g as ChangelogAdapter, index$e as Config, index$7 as Crypto, index as DiagramGenerator, index$k as EventBus, index$h as ExecutionAdapter, index$6 as Factories, index$i as FeedbackAdapter, index$a as Git, index$j as IdentityAdapter, index$b as IndexerAdapter, index$5 as Lint, index$4 as Logger, index$f as MetricsAdapter, index$9 as ProjectAdapter, index$m as Records, index$3 as Schemas, index$l as Store, index$2 as Sync, index$1 as Validation, index$d as WorkflowMethodologyAdapter };