@remixhq/core 0.1.11 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/collab.d.ts CHANGED
@@ -64,8 +64,22 @@ type MergeRequestReview = {
64
64
  };
65
65
  };
66
66
  type CollabApproveMode = "remote-only" | "sync-target-repo";
67
- type CollabStatusBlockedReason = "not_git_repo" | "not_bound" | "branch_binding_missing" | "missing_head" | "detached_head" | "branch_mismatch" | "dirty_worktree" | "metadata_conflict" | "remote_error";
68
- type CollabStatusRecommendedAction = "init" | "sync" | "reconcile" | "review_queue" | "no_action";
67
+ type CollabStatusBlockedReason = "not_git_repo" | "not_bound" | "branch_binding_missing" | "family_ambiguous" | "missing_head" | "detached_head" | "branch_mismatch" | "dirty_worktree" | "baseline_missing" | "metadata_conflict" | "remote_error";
68
+ type CollabRepoStateKind = "idle" | "local_only_changed" | "server_only_changed" | "both_changed" | "external_local_base_changed" | "metadata_conflict" | "binding_problem";
69
+ type CollabPendingFinalizeState = "idle" | "queued" | "processing" | "retry_scheduled" | "failed";
70
+ type CollabPendingFinalizeSummary = {
71
+ state: CollabPendingFinalizeState;
72
+ activeJobCount: number;
73
+ queuedJobCount: number;
74
+ processingJobCount: number;
75
+ retryScheduledJobCount: number;
76
+ failedJobCount: number;
77
+ oldestCapturedAt: string | null;
78
+ newestCapturedAt: string | null;
79
+ nextRetryAt: string | null;
80
+ latestError: string | null;
81
+ };
82
+ type CollabStatusRecommendedAction = "init" | "pull" | "re_anchor" | "reconcile" | "await_finalize" | "record" | "review_queue" | "choose_family" | "no_action";
69
83
  type CollabStatus = {
70
84
  schemaVersion: 1;
71
85
  repo: {
@@ -95,7 +109,7 @@ type CollabStatus = {
95
109
  defaultBranch: string | null;
96
110
  laneId: string | null;
97
111
  branchName: string | null;
98
- bindingMode: "legacy" | "lane" | null;
112
+ bindingMode: "legacy" | "lane" | "explicit_root" | null;
99
113
  };
100
114
  remote: {
101
115
  checked: boolean;
@@ -125,11 +139,30 @@ type CollabStatus = {
125
139
  targetHeadCommitHash: string | null;
126
140
  targetHeadCommitId: string | null;
127
141
  };
142
+ alignment: {
143
+ checked: boolean;
144
+ error: string | null;
145
+ repoState: CollabRepoStateKind | null;
146
+ canRecordTurn: boolean;
147
+ pendingFinalize: CollabPendingFinalizeSummary;
148
+ baseline: {
149
+ lastSnapshotId: string | null;
150
+ lastSnapshotHash: string | null;
151
+ lastServerHeadHash: string | null;
152
+ lastSeenLocalCommitHash: string | null;
153
+ };
154
+ current: {
155
+ snapshotHash: string | null;
156
+ serverHeadHash: string | null;
157
+ serverHeadCommitId: string | null;
158
+ localCommitHash: string | null;
159
+ };
160
+ };
128
161
  recommendedAction: CollabStatusRecommendedAction;
129
162
  warnings: string[];
130
163
  };
131
164
  type SyncLocalResponse = {
132
- status: "up_to_date" | "ready_to_fast_forward" | "base_unknown" | "conflict_risk";
165
+ status: "up_to_date" | "delta_ready" | "ready_to_fast_forward" | "base_unknown" | "conflict_risk";
133
166
  baseCommitHash: string;
134
167
  targetCommitHash: string;
135
168
  targetCommitId: string;
@@ -144,20 +177,42 @@ type SyncLocalResponse = {
144
177
  };
145
178
  warnings: string[];
146
179
  };
180
+ type AppHeadResponse = {
181
+ appId: string;
182
+ headCommitId: string;
183
+ headCommitHash: string;
184
+ status: string;
185
+ updatedAt: string;
186
+ };
187
+ type AppDeltaResponse = {
188
+ status: "up_to_date" | "delta_ready" | "base_unknown" | "content_equivalent" | "conflict_risk";
189
+ baseHeadHash: string;
190
+ targetHeadHash: string;
191
+ targetHeadCommitId: string | null;
192
+ diff: string;
193
+ diffSha256: string | null;
194
+ stats: {
195
+ changedFilesCount: number;
196
+ insertions: number;
197
+ deletions: number;
198
+ };
199
+ warnings: string[];
200
+ };
147
201
  type SyncUpstreamResponse = {
148
202
  status: "up-to-date" | "queued";
149
203
  mergeRequestId?: string;
150
204
  };
151
- type CollabRecordingPreflightStatus = "not_git_repo" | "not_bound" | "branch_binding_missing" | "missing_head" | "branch_mismatch" | "metadata_conflict" | "up_to_date" | "ready_to_fast_forward" | "reconcile_required";
205
+ type CollabRecordingPreflightStatus = "not_git_repo" | "not_bound" | "branch_binding_missing" | "family_ambiguous" | "missing_head" | "branch_mismatch" | "metadata_conflict" | "ready" | "pull_required" | "re_anchor_required" | "reconcile_required";
152
206
  type CollabRecordingPreflight = {
153
207
  status: CollabRecordingPreflightStatus;
208
+ repoState: CollabRepoStateKind | null;
154
209
  repoRoot: string | null;
155
210
  appId: string | null;
156
211
  currentBranch: string | null;
157
212
  branchName: string | null;
158
213
  headCommitHash: string | null;
159
214
  worktreeClean: boolean;
160
- syncStatus: SyncLocalResponse["status"] | null;
215
+ syncStatus: SyncLocalResponse["status"] | AppDeltaResponse["status"] | null;
161
216
  syncTargetCommitHash: string | null;
162
217
  syncTargetCommitId: string | null;
163
218
  reconcileTargetHeadCommitHash: string | null;
@@ -213,11 +268,11 @@ type CollabApproveResult = {
213
268
  repoRoot: string;
214
269
  baseCommitHash: string;
215
270
  targetCommitHash: string;
216
- targetCommitId: string;
271
+ targetCommitId: string | null;
217
272
  stats: SyncLocalResponse["stats"];
218
273
  bundleRef?: string | null;
219
274
  bundleSizeBytes?: number;
220
- localCommitHash: string;
275
+ localCommitHash: string | null;
221
276
  applied: boolean;
222
277
  dryRun: boolean;
223
278
  };
@@ -258,6 +313,9 @@ type CollabFinalizeTurnAutoSync = {
258
313
  type CollabFinalizeTurnResult = {
259
314
  mode: CollabFinalizeTurnMode;
260
315
  idempotencyKey: string;
316
+ queued: boolean;
317
+ jobId: string | null;
318
+ repoState: CollabRepoStateKind | null;
261
319
  changeStep: JsonObject | null;
262
320
  collabTurn: CollabTurn | null;
263
321
  autoSync: CollabFinalizeTurnAutoSync | null;
@@ -316,6 +374,7 @@ type CollabApiClient = {
316
374
  defaultBranch?: string;
317
375
  branchName: string;
318
376
  seedAppId?: string;
377
+ seedHeadCommitHash?: string;
319
378
  }): Promise<unknown>;
320
379
  bootstrapFreshProjectLane(payload: {
321
380
  projectId?: string;
@@ -324,6 +383,7 @@ type CollabApiClient = {
324
383
  defaultBranch?: string;
325
384
  branchName: string;
326
385
  seedAppId: string;
386
+ seedHeadCommitHash?: string;
327
387
  }): Promise<unknown>;
328
388
  getOrganization(orgId: string): Promise<unknown>;
329
389
  getProject(projectId: string): Promise<unknown>;
@@ -338,6 +398,15 @@ type CollabApiClient = {
338
398
  offset?: number;
339
399
  }): Promise<unknown>;
340
400
  getApp(appId: string): Promise<unknown>;
401
+ getAppHead(appId: string): Promise<unknown>;
402
+ getAppDelta(appId: string, payload: {
403
+ baseHeadHash: string;
404
+ targetHeadHash?: string;
405
+ localSnapshotHash?: string;
406
+ repoFingerprint?: string;
407
+ remoteUrl?: string;
408
+ defaultBranch?: string;
409
+ }): Promise<unknown>;
341
410
  getMergeRequest(mrId: string): Promise<unknown>;
342
411
  presignImportUploadFirstParty(payload: {
343
412
  file: {
@@ -540,24 +609,6 @@ type CollabApiClient = {
540
609
  }): Promise<unknown>;
541
610
  };
542
611
 
543
- declare function collabAdd(params: {
544
- api: CollabApiClient;
545
- cwd: string;
546
- prompt: string;
547
- assistantResponse?: string | null;
548
- diff?: string | null;
549
- diffSource?: "worktree" | "external";
550
- sync?: boolean;
551
- allowBranchMismatch?: boolean;
552
- idempotencyKey?: string | null;
553
- actor?: {
554
- type?: string;
555
- name?: string;
556
- version?: string;
557
- provider?: string;
558
- };
559
- }): Promise<JsonObject>;
560
-
561
612
  declare function collabFinalizeTurn(params: {
562
613
  api: CollabApiClient;
563
614
  cwd: string;
@@ -582,21 +633,6 @@ declare function collabRecordingPreflight(params: {
582
633
  allowBranchMismatch?: boolean;
583
634
  }): Promise<CollabRecordingPreflight>;
584
635
 
585
- declare function collabRecordTurn(params: {
586
- api: CollabApiClient;
587
- cwd: string;
588
- prompt: string;
589
- assistantResponse: string;
590
- allowBranchMismatch?: boolean;
591
- idempotencyKey?: string | null;
592
- actor?: {
593
- type?: string;
594
- name?: string;
595
- version?: string;
596
- provider?: string;
597
- };
598
- }): Promise<CollabTurn>;
599
-
600
636
  declare function collabApprove(params: {
601
637
  api: CollabApiClient;
602
638
  mrId: string;
@@ -671,6 +707,7 @@ declare function collabUpdateMemberRole(params: {
671
707
  member: CollabMember;
672
708
  }>;
673
709
 
710
+ type InitBaselineStatus = "seeded" | "existing" | "requires_re_anchor" | "requires_sync";
674
711
  declare function collabInit(params: {
675
712
  api: CollabApiClient;
676
713
  cwd: string;
@@ -686,6 +723,9 @@ declare function collabInit(params: {
686
723
  upstreamAppId: string;
687
724
  bindingPath: string;
688
725
  repoRoot: string;
726
+ bindingMode: string;
727
+ createdCanonicalFamily: boolean;
728
+ baselineStatus: InitBaselineStatus;
689
729
  } | {
690
730
  warnings?: string[] | undefined;
691
731
  reused: boolean;
@@ -695,6 +735,9 @@ declare function collabInit(params: {
695
735
  upstreamAppId: string;
696
736
  bindingPath: string;
697
737
  repoRoot: string;
738
+ bindingMode: "lane" | "explicit_root";
739
+ createdCanonicalFamily: boolean;
740
+ baselineStatus: InitBaselineStatus;
698
741
  remoteUrl: string | null;
699
742
  defaultBranch: string | null;
700
743
  }>;
@@ -729,69 +772,69 @@ declare function collabList(params: {
729
772
  };
730
773
  }>;
731
774
 
732
- declare function collabReconcile(params: {
775
+ declare function collabReAnchor(params: {
733
776
  api: CollabApiClient;
734
777
  cwd: string;
735
- dryRun: boolean;
778
+ dryRun?: boolean;
736
779
  allowBranchMismatch?: boolean;
737
780
  }): Promise<{
738
- status: "ready_to_fast_forward";
739
- branch: string;
781
+ status: string;
740
782
  repoRoot: string;
741
- baseCommitHash: string;
742
- targetCommitHash: string;
743
- targetCommitId: string;
744
- stats: {
745
- changedFilesCount: number;
746
- insertions: number;
747
- deletions: number;
748
- };
749
- bundleRef: string | null;
750
- bundleSizeBytes: number;
751
- localCommitHash: string;
783
+ branch: string;
784
+ currentAppId: string;
785
+ localHeadCommitHash: string;
786
+ targetHeadCommitHash: string;
787
+ targetHeadCommitId: string;
788
+ warnings: string[];
752
789
  applied: boolean;
753
790
  dryRun: boolean;
754
- } | {
755
- status: "up_to_date";
791
+ }>;
792
+
793
+ declare function collabReconcile(params: {
794
+ api: CollabApiClient;
795
+ cwd: string;
796
+ dryRun: boolean;
797
+ allowBranchMismatch?: boolean;
798
+ }): Promise<{
799
+ status: "up_to_date" | "delta_ready" | "base_unknown" | "conflict_risk";
756
800
  branch: string;
757
801
  repoRoot: string;
758
802
  baseCommitHash: string;
759
803
  targetCommitHash: string;
760
- targetCommitId: string;
761
- stats: {
762
- changedFilesCount: number;
763
- insertions: number;
764
- deletions: number;
765
- };
766
- localCommitHash: string;
804
+ targetCommitId: string | null;
805
+ stats: AppDeltaResponse["stats"];
806
+ localCommitHash: string | null;
767
807
  applied: boolean;
768
808
  dryRun: boolean;
809
+ warnings?: string[];
769
810
  } | {
770
- status: "ready_to_reconcile";
771
- branch: string;
811
+ status: string;
772
812
  repoRoot: string;
813
+ branch: string;
814
+ currentAppId: string;
773
815
  localHeadCommitHash: string;
774
- targetHeadCommitId: string;
775
816
  targetHeadCommitHash: string;
817
+ targetHeadCommitId: string;
776
818
  warnings: string[];
777
819
  applied: boolean;
778
820
  dryRun: boolean;
779
821
  } | {
780
- status: "failed" | "queued" | "pending" | "processing" | "succeeded" | "manual_reconcile_required" | "cancelled";
781
- reconcileId: string;
782
- mergeBaseCommitHash: string | null;
783
- reconciledHeadCommitId: string | null;
784
- reconciledHeadCommitHash: string | null;
785
- backupBranchName: string;
786
- localCommitHash: string;
787
- applied: boolean;
788
- dryRun: boolean;
789
- warnings: string[];
790
- branch: string;
822
+ status: string;
791
823
  repoRoot: string;
792
- localHeadCommitHash: string;
793
- targetHeadCommitId: string;
824
+ branch: string;
825
+ currentAppId: string;
826
+ localHeadCommitHash: string | null;
827
+ baseHeadCommitHash: string;
794
828
  targetHeadCommitHash: string;
829
+ targetHeadCommitId: string;
830
+ stats: {
831
+ changedFilesCount: number;
832
+ insertions: number;
833
+ deletions: number;
834
+ };
835
+ warnings: string[];
836
+ applied: boolean;
837
+ dryRun: boolean;
795
838
  }>;
796
839
 
797
840
  declare function collabReject(params: {
@@ -830,37 +873,17 @@ declare function collabSync(params: {
830
873
  dryRun: boolean;
831
874
  allowBranchMismatch?: boolean;
832
875
  }): Promise<{
833
- status: "ready_to_fast_forward";
834
- branch: string;
835
- repoRoot: string;
836
- baseCommitHash: string;
837
- targetCommitHash: string;
838
- targetCommitId: string;
839
- stats: {
840
- changedFilesCount: number;
841
- insertions: number;
842
- deletions: number;
843
- };
844
- bundleRef: string | null;
845
- bundleSizeBytes: number;
846
- localCommitHash: string;
847
- applied: boolean;
848
- dryRun: boolean;
849
- } | {
850
- status: "up_to_date";
876
+ status: "up_to_date" | "delta_ready" | "base_unknown" | "conflict_risk";
851
877
  branch: string;
852
878
  repoRoot: string;
853
879
  baseCommitHash: string;
854
880
  targetCommitHash: string;
855
- targetCommitId: string;
856
- stats: {
857
- changedFilesCount: number;
858
- insertions: number;
859
- deletions: number;
860
- };
861
- localCommitHash: string;
881
+ targetCommitId: string | null;
882
+ stats: AppDeltaResponse["stats"];
883
+ localCommitHash: string | null;
862
884
  applied: boolean;
863
885
  dryRun: boolean;
886
+ warnings?: string[];
864
887
  }>;
865
888
 
866
889
  declare function collabSyncUpstream(params: {
@@ -881,37 +904,15 @@ declare function collabSyncUpstream(params: {
881
904
  upstreamAppId: string;
882
905
  remoteHeadCommitId: string | null;
883
906
  localSync: {
884
- warnings?: string[] | undefined;
885
- status: "ready_to_fast_forward";
886
- branch: string;
887
- repoRoot: string;
888
- baseCommitHash: string;
889
- targetCommitHash: string;
890
- targetCommitId: string;
891
- stats: {
892
- changedFilesCount: number;
893
- insertions: number;
894
- deletions: number;
895
- };
896
- bundleRef: string | null;
897
- bundleSizeBytes: number;
898
- localCommitHash: string;
899
- applied: boolean;
900
- dryRun: boolean;
901
- } | {
902
- warnings?: string[] | undefined;
903
- status: "up_to_date";
907
+ warnings?: string[];
908
+ status: "up_to_date" | "delta_ready" | "base_unknown" | "conflict_risk";
904
909
  branch: string;
905
910
  repoRoot: string;
906
911
  baseCommitHash: string;
907
912
  targetCommitHash: string;
908
- targetCommitId: string;
909
- stats: {
910
- changedFilesCount: number;
911
- insertions: number;
912
- deletions: number;
913
- };
914
- localCommitHash: string;
913
+ targetCommitId: string | null;
914
+ stats: AppDeltaResponse["stats"];
915
+ localCommitHash: string | null;
915
916
  applied: boolean;
916
917
  dryRun: boolean;
917
918
  };
@@ -923,4 +924,12 @@ declare function collabView(params: {
923
924
  mrId: string;
924
925
  }): Promise<MergeRequestReview>;
925
926
 
926
- export { type AppMember, type AppMemberRole, type AppReconcileResponse, type CollabApiClient, type CollabApproveMode, type CollabApproveResult, type CollabFinalizeTurnAutoSync, type CollabFinalizeTurnMode, type CollabFinalizeTurnResult, type CollabMember, type CollabRecordingPreflight, type CollabRecordingPreflightStatus, type CollabStatus, type CollabStatusBlockedReason, type CollabStatusRecommendedAction, type CollabTurn, type InvitationScopeType, type JsonObject, type MembershipScopeType, type MergeRequest, type MergeRequestQueue, type MergeRequestReview, type MergeRequestStatus, type OrganizationMember, type OrganizationMemberRole, type ProjectMember, type ProjectMemberRole, type ReconcilePreflightResponse, type SyncLocalResponse, type SyncUpstreamResponse, collabAdd, collabApprove, collabCheckout, collabFinalizeTurn, collabInit, collabInvite, collabList, collabListMembers, collabListMergeRequests, collabReconcile, collabRecordTurn, collabRecordingPreflight, collabReject, collabRemix, collabRequestMerge, collabStatus, collabSync, collabSyncUpstream, collabUpdateMemberRole, collabView, getMemberRolesForScope, validateMemberRole };
927
+ declare function processPendingFinalizeJob(params: {
928
+ api: CollabApiClient;
929
+ jobId: string;
930
+ }): Promise<CollabFinalizeTurnResult>;
931
+ declare function drainPendingFinalizeQueue(params: {
932
+ api: CollabApiClient;
933
+ }): Promise<CollabFinalizeTurnResult[]>;
934
+
935
+ export { type AppDeltaResponse, type AppHeadResponse, type AppMember, type AppMemberRole, type AppReconcileResponse, type CollabApiClient, type CollabApproveMode, type CollabApproveResult, type CollabFinalizeTurnAutoSync, type CollabFinalizeTurnMode, type CollabFinalizeTurnResult, type CollabMember, type CollabPendingFinalizeState, type CollabPendingFinalizeSummary, type CollabRecordingPreflight, type CollabRecordingPreflightStatus, type CollabRepoStateKind, type CollabStatus, type CollabStatusBlockedReason, type CollabStatusRecommendedAction, type CollabTurn, type InvitationScopeType, type JsonObject, type MembershipScopeType, type MergeRequest, type MergeRequestQueue, type MergeRequestReview, type MergeRequestStatus, type OrganizationMember, type OrganizationMemberRole, type ProjectMember, type ProjectMemberRole, type ReconcilePreflightResponse, type SyncLocalResponse, type SyncUpstreamResponse, collabApprove, collabCheckout, collabFinalizeTurn, collabInit, collabInvite, collabList, collabListMembers, collabListMergeRequests, collabReAnchor, collabReconcile, collabRecordingPreflight, collabReject, collabRemix, collabRequestMerge, collabStatus, collabSync, collabSyncUpstream, collabUpdateMemberRole, collabView, drainPendingFinalizeQueue, getMemberRolesForScope, processPendingFinalizeJob, validateMemberRole };