@fungi.computer/agar 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +766 -2
  3. package/dist/agent-message-meta.d.ts +74 -0
  4. package/dist/agent-message-meta.js +63 -0
  5. package/dist/agents.d.ts +170 -0
  6. package/dist/agents.js +218 -0
  7. package/dist/app-build-contract.d.ts +43 -0
  8. package/dist/app-build-contract.js +24 -0
  9. package/dist/apps.d.ts +66 -0
  10. package/dist/apps.js +47 -0
  11. package/dist/backend-declaration.d.ts +6 -0
  12. package/dist/backend-declaration.js +65 -0
  13. package/dist/backend-definition.d.ts +88 -0
  14. package/dist/backend-definition.js +158 -0
  15. package/dist/backend-refusal.d.ts +10 -0
  16. package/dist/backend-refusal.js +10 -0
  17. package/dist/backend.d.ts +30 -0
  18. package/dist/backend.js +28 -0
  19. package/dist/capabilities.d.ts +30 -0
  20. package/dist/capabilities.js +50 -0
  21. package/dist/channels.d.ts +142 -0
  22. package/dist/channels.js +97 -0
  23. package/dist/commands.d.ts +33 -0
  24. package/dist/commands.js +46 -0
  25. package/dist/computer-contracts.d.ts +73 -0
  26. package/dist/computer-contracts.js +57 -0
  27. package/dist/computer.d.ts +294 -0
  28. package/dist/computer.js +319 -0
  29. package/dist/connect.d.ts +11 -0
  30. package/dist/connect.js +211 -0
  31. package/dist/errors.d.ts +34 -0
  32. package/dist/errors.js +106 -0
  33. package/dist/failure.d.ts +2 -0
  34. package/dist/failure.js +9 -0
  35. package/dist/files.d.ts +25 -0
  36. package/dist/files.js +84 -0
  37. package/dist/game-servers.d.ts +530 -0
  38. package/dist/game-servers.js +244 -0
  39. package/dist/gills.d.ts +43 -0
  40. package/dist/gills.js +174 -0
  41. package/dist/git-commit.d.ts +143 -0
  42. package/dist/git-commit.js +251 -0
  43. package/dist/git-rpc.d.ts +310 -0
  44. package/dist/git-rpc.js +166 -0
  45. package/dist/git-steps.d.ts +579 -0
  46. package/dist/git-steps.js +804 -0
  47. package/dist/git-wire.d.ts +33 -0
  48. package/dist/git-wire.js +240 -0
  49. package/dist/git.d.ts +322 -0
  50. package/dist/git.js +98 -0
  51. package/dist/host.d.ts +97 -0
  52. package/dist/host.js +732 -0
  53. package/dist/inbox.d.ts +99 -0
  54. package/dist/inbox.js +184 -0
  55. package/dist/index.d.ts +31 -0
  56. package/dist/index.js +15 -0
  57. package/dist/inference.d.ts +17 -0
  58. package/dist/inference.js +115 -0
  59. package/dist/internal/app-error.d.ts +8 -0
  60. package/dist/internal/app-error.js +36 -0
  61. package/dist/internal/app-session.d.ts +8 -0
  62. package/dist/internal/app-session.js +551 -0
  63. package/dist/internal/back-inputs.d.ts +22 -0
  64. package/dist/internal/back-inputs.js +93 -0
  65. package/dist/internal/browser-bridge.d.ts +30 -0
  66. package/dist/internal/browser-bridge.js +203 -0
  67. package/dist/internal/capabilities.d.ts +13 -0
  68. package/dist/internal/capabilities.js +138 -0
  69. package/dist/internal/commands.d.ts +9 -0
  70. package/dist/internal/commands.js +257 -0
  71. package/dist/internal/disconnect-host.d.ts +7 -0
  72. package/dist/internal/disconnect-host.js +19 -0
  73. package/dist/internal/git-edit-tree.d.ts +6 -0
  74. package/dist/internal/git-edit-tree.js +46 -0
  75. package/dist/internal/memory-fs.d.ts +39 -0
  76. package/dist/internal/memory-fs.js +154 -0
  77. package/dist/internal/protocol.d.ts +116 -0
  78. package/dist/internal/protocol.js +6 -0
  79. package/dist/internal/query-feed.d.ts +23 -0
  80. package/dist/internal/query-feed.js +111 -0
  81. package/dist/internal/result.d.ts +22 -0
  82. package/dist/internal/result.js +61 -0
  83. package/dist/internal/rpc-contract.d.ts +24 -0
  84. package/dist/internal/rpc-contract.js +78 -0
  85. package/dist/internal/schemas.d.ts +307 -0
  86. package/dist/internal/schemas.js +524 -0
  87. package/dist/internal/store.d.ts +8 -0
  88. package/dist/internal/store.js +30 -0
  89. package/dist/internal/terminal-gate.d.ts +17 -0
  90. package/dist/internal/terminal-gate.js +94 -0
  91. package/dist/lifecycle.d.ts +44 -0
  92. package/dist/lifecycle.js +1 -0
  93. package/dist/marketplace.d.ts +159 -0
  94. package/dist/marketplace.js +102 -0
  95. package/dist/media-json.d.ts +181 -0
  96. package/dist/media-json.js +204 -0
  97. package/dist/media-library.d.ts +11 -0
  98. package/dist/media-library.js +15 -0
  99. package/dist/media-request-id.d.ts +7 -0
  100. package/dist/media-request-id.js +16 -0
  101. package/dist/media.d.ts +354 -0
  102. package/dist/media.js +654 -0
  103. package/dist/method-refusal.d.ts +64 -0
  104. package/dist/method-refusal.js +48 -0
  105. package/dist/pending.d.ts +10 -0
  106. package/dist/pending.js +10 -0
  107. package/dist/query.d.ts +76 -0
  108. package/dist/query.js +195 -0
  109. package/dist/react-mount.d.ts +23 -0
  110. package/dist/react-mount.js +108 -0
  111. package/dist/react.d.ts +41 -0
  112. package/dist/react.js +111 -0
  113. package/dist/read-copy.d.ts +103 -0
  114. package/dist/read-copy.js +195 -0
  115. package/dist/roles/files.d.ts +295 -0
  116. package/dist/roles/files.js +184 -0
  117. package/dist/root.d.ts +21 -0
  118. package/dist/root.js +1 -0
  119. package/dist/rpc.d.ts +1 -0
  120. package/dist/rpc.js +1 -0
  121. package/dist/status.d.ts +17 -0
  122. package/dist/status.js +50 -0
  123. package/dist/storage-wire.d.ts +167 -0
  124. package/dist/storage-wire.js +115 -0
  125. package/dist/storage.d.ts +72 -0
  126. package/dist/storage.js +143 -0
  127. package/dist/store.d.ts +11 -0
  128. package/dist/store.js +1 -0
  129. package/dist/test-kit/git.d.ts +31 -0
  130. package/dist/test-kit/git.js +174 -0
  131. package/dist/ui.d.ts +169 -0
  132. package/dist/ui.js +10 -0
  133. package/dist/window.d.ts +41 -0
  134. package/dist/window.js +15 -0
  135. package/dist/world.d.ts +16 -0
  136. package/dist/world.js +17 -0
  137. package/docs/api/README.md +28 -0
  138. package/docs/api/app-build-contract.md +113 -0
  139. package/docs/api/backend-declaration.md +62 -0
  140. package/docs/api/backend-definition.md +215 -0
  141. package/docs/api/backend.md +269 -0
  142. package/docs/api/errors.md +169 -0
  143. package/docs/api/files.md +91 -0
  144. package/docs/api/gills.md +164 -0
  145. package/docs/api/git-commit.md +279 -0
  146. package/docs/api/git-rpc.md +243 -0
  147. package/docs/api/git-steps.md +1010 -0
  148. package/docs/api/git-wire.md +197 -0
  149. package/docs/api/git.md +579 -0
  150. package/docs/api/index.md +2880 -0
  151. package/docs/api/media-json.md +507 -0
  152. package/docs/api/media-request-id.md +32 -0
  153. package/docs/api/modules.md +32 -0
  154. package/docs/api/query.md +253 -0
  155. package/docs/api/react.md +216 -0
  156. package/docs/api/read-copy.md +204 -0
  157. package/docs/api/rpc.md +128 -0
  158. package/docs/api/storage.md +620 -0
  159. package/package.json +197 -3
@@ -0,0 +1,1010 @@
1
+ <!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
2
+
3
+ [**@fungi.computer/agar**](README.md)
4
+
5
+ ---
6
+
7
+ [@fungi.computer/agar](modules.md) / git-steps
8
+
9
+ # git-steps
10
+
11
+ ## Classes
12
+
13
+ ### GitStepMaterialError
14
+
15
+ Permanent continuation failure: background owners settle their lane instead of
16
+ retrying it.
17
+
18
+ #### Extends
19
+
20
+ - `Error`
21
+
22
+ #### Constructors
23
+
24
+ ##### Constructor
25
+
26
+ ```ts
27
+ new GitStepMaterialError(code): GitStepMaterialError;
28
+ ```
29
+
30
+ Construct the canonical permanent continuation error.
31
+
32
+ ###### Parameters
33
+
34
+ | Parameter | Type | Description |
35
+ | --------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------- |
36
+ | `code` | \| `"unavailable"` \| `"conflict"` \| `"digest_mismatch"` \| `"atomic_unavailable"` \| `"push_refused"` | Permanent continuation failure reason. |
37
+
38
+ ###### Returns
39
+
40
+ [`GitStepMaterialError`](#gitstepmaterialerror)
41
+
42
+ ###### Overrides
43
+
44
+ ```ts
45
+ Error.constructor;
46
+ ```
47
+
48
+ #### Properties
49
+
50
+ ##### code
51
+
52
+ ```ts
53
+ readonly code:
54
+ | "unavailable"
55
+ | "conflict"
56
+ | "digest_mismatch"
57
+ | "atomic_unavailable"
58
+ | "push_refused";
59
+ ```
60
+
61
+ Invalid material, unavailable atomic support, or an exhausted unchanged-head
62
+ push refusal.
63
+
64
+ ## Type Aliases
65
+
66
+ ### GitStepMaterial
67
+
68
+ ```ts
69
+ type GitStepMaterial = Readonly<{
70
+ put: Promise<void>;
71
+ read: Promise<Uint8Array<ArrayBufferLike>>;
72
+ drop: Promise<void>;
73
+ }>;
74
+ ```
75
+
76
+ Facet-owned immutable material, split into individually bounded rows.
77
+
78
+ ---
79
+
80
+ ### GitStepSql
81
+
82
+ ```ts
83
+ type GitStepSql = Readonly<{
84
+ exec: {
85
+ toArray: readonly Readonly<
86
+ Record<string, string | number | ArrayBuffer | null>
87
+ >[];
88
+ };
89
+ }>;
90
+ ```
91
+
92
+ Existing facet SQLite owner; no transaction or scheduler is introduced here.
93
+
94
+ ---
95
+
96
+ ### GitStep
97
+
98
+ ```ts
99
+ type GitStep = z.output<typeof gitStepSchema>;
100
+ ```
101
+
102
+ Durable checkpoint, suitable for a Watchdog payload and fresh-frame
103
+ re-admission.
104
+
105
+ ---
106
+
107
+ ### GitStepOperation
108
+
109
+ ```ts
110
+ type GitStepOperation =
111
+ | Readonly<{
112
+ kind: "commit";
113
+ requestKey: string;
114
+ request: CommitFilesRequest;
115
+ tags?: readonly Readonly<{
116
+ ref: string;
117
+ expected: string | null;
118
+ }>[];
119
+ timestamp?: number;
120
+ }>
121
+ | Readonly<{
122
+ kind: "merge";
123
+ requestKey: string;
124
+ request: MergeBranchRequest;
125
+ timestamp?: number;
126
+ }>;
127
+ ```
128
+
129
+ Caller-owned operation; begin fixes the timestamp and stores file bytes outside
130
+ the checkpoint.
131
+
132
+ ---
133
+
134
+ ### GitStepOutcome
135
+
136
+ ```ts
137
+ type GitStepOutcome =
138
+ | GitWriteOutcome
139
+ | GitMergeOutcome
140
+ | Readonly<{
141
+ kind: "too_large";
142
+ }>;
143
+ ```
144
+
145
+ Final Git outcome; oversize material refuses before any receive-pack.
146
+
147
+ ---
148
+
149
+ ### GitStepResult
150
+
151
+ ```ts
152
+ type GitStepResult =
153
+ | Readonly<{
154
+ next: GitStep;
155
+ }>
156
+ | Readonly<{
157
+ done: GitStepOutcome;
158
+ }>
159
+ | Readonly<{
160
+ yield: true;
161
+ }>;
162
+ ```
163
+
164
+ One step either checkpoints, settles, or yields before transport.
165
+
166
+ ---
167
+
168
+ ### GitStepPorts
169
+
170
+ ```ts
171
+ type GitStepPorts = Readonly<{
172
+ git: GitCommitStore;
173
+ material: GitStepMaterial;
174
+ }>;
175
+ ```
176
+
177
+ Per-frame transport plus the existing facet's durable material owner.
178
+
179
+ ## Variables
180
+
181
+ ### gitStepSchema
182
+
183
+ ```ts
184
+ const gitStepSchema: ZodDiscriminatedUnion<[ZodObject<{
185
+ key: ZodString;
186
+ timestamp: ZodNumber;
187
+ operation: ZodDiscriminatedUnion<[ZodObject<{
188
+ kind: ZodLiteral<"commit">;
189
+ request: ZodObject<{
190
+ repository: ZodString;
191
+ branch: ZodString;
192
+ expectedHead: ZodNullable<...>;
193
+ startFrom: ZodOptional<...>;
194
+ message: ZodString;
195
+ author: ZodObject<..., ...>;
196
+ }, $strict>;
197
+ changesDigest: ZodCustomStringFormat<"sha256_hex">;
198
+ tags: ZodArray<ZodObject<{
199
+ ref: ...;
200
+ expected: ...;
201
+ }, $strict>>;
202
+ }, $strict>, ZodObject<{
203
+ kind: ZodLiteral<"merge">;
204
+ request: ZodObject<{
205
+ target: ZodString;
206
+ source: ZodString;
207
+ branch: ZodString;
208
+ sourceBranch: ZodString;
209
+ expectedSource: ZodString;
210
+ expectedTarget: ZodOptional<...>;
211
+ behind: ZodOptional<...>;
212
+ message: ZodString;
213
+ author: ZodObject<..., ...>;
214
+ }, $strict>;
215
+ }, $strict>], "kind">;
216
+ phase: ZodLiteral<"fetch-base">;
217
+ base: ZodNullable<ZodString>;
218
+ }, $strict>, ZodObject<{
219
+ key: ZodString;
220
+ timestamp: ZodNumber;
221
+ operation: ZodDiscriminatedUnion<[ZodObject<{
222
+ kind: ZodLiteral<"commit">;
223
+ request: ZodObject<{
224
+ repository: ZodString;
225
+ branch: ZodString;
226
+ expectedHead: ZodNullable<...>;
227
+ startFrom: ZodOptional<...>;
228
+ message: ZodString;
229
+ author: ZodObject<..., ...>;
230
+ }, $strict>;
231
+ changesDigest: ZodCustomStringFormat<"sha256_hex">;
232
+ tags: ZodArray<ZodObject<{
233
+ ref: ...;
234
+ expected: ...;
235
+ }, $strict>>;
236
+ }, $strict>, ZodObject<{
237
+ kind: ZodLiteral<"merge">;
238
+ request: ZodObject<{
239
+ target: ZodString;
240
+ source: ZodString;
241
+ branch: ZodString;
242
+ sourceBranch: ZodString;
243
+ expectedSource: ZodString;
244
+ expectedTarget: ZodOptional<...>;
245
+ behind: ZodOptional<...>;
246
+ message: ZodString;
247
+ author: ZodObject<..., ...>;
248
+ }, $strict>;
249
+ }, $strict>], "kind">;
250
+ phase: ZodLiteral<"too-large">;
251
+ }, $strict>, ZodObject<{
252
+ key: ZodString;
253
+ timestamp: ZodNumber;
254
+ operation: ZodDiscriminatedUnion<[ZodObject<{
255
+ kind: ZodLiteral<"commit">;
256
+ request: ZodObject<{
257
+ repository: ZodString;
258
+ branch: ZodString;
259
+ expectedHead: ZodNullable<...>;
260
+ startFrom: ZodOptional<...>;
261
+ message: ZodString;
262
+ author: ZodObject<..., ...>;
263
+ }, $strict>;
264
+ changesDigest: ZodCustomStringFormat<"sha256_hex">;
265
+ tags: ZodArray<ZodObject<{
266
+ ref: ...;
267
+ expected: ...;
268
+ }, $strict>>;
269
+ }, $strict>, ZodObject<{
270
+ kind: ZodLiteral<"merge">;
271
+ request: ZodObject<{
272
+ target: ZodString;
273
+ source: ZodString;
274
+ branch: ZodString;
275
+ sourceBranch: ZodString;
276
+ expectedSource: ZodString;
277
+ expectedTarget: ZodOptional<...>;
278
+ behind: ZodOptional<...>;
279
+ message: ZodString;
280
+ author: ZodObject<..., ...>;
281
+ }, $strict>;
282
+ }, $strict>], "kind">;
283
+ phase: ZodLiteral<"inspect-base">;
284
+ }, $strict>], "phase">;
285
+ ```
286
+
287
+ Strict, JSON-only continuation grammar; material and authority are not stored in
288
+ it.
289
+
290
+ ## Functions
291
+
292
+ ### sqliteGitStepMaterial()
293
+
294
+ ```ts
295
+ function sqliteGitStepMaterial(sql): GitStepMaterial;
296
+ ```
297
+
298
+ One-MiB material rows; exact replays are idempotent, conflicting material
299
+ refuses.
300
+
301
+ #### Parameters
302
+
303
+ | Parameter | Type |
304
+ | --------- | --------------------------- |
305
+ | `sql` | [`GitStepSql`](#gitstepsql) |
306
+
307
+ #### Returns
308
+
309
+ [`GitStepMaterial`](#gitstepmaterial)
310
+
311
+ ---
312
+
313
+ ### memoryGitStepMaterial()
314
+
315
+ ```ts
316
+ function memoryGitStepMaterial(): GitStepMaterial;
317
+ ```
318
+
319
+ Volatile foreground driver material; background callers use the facet owner.
320
+
321
+ #### Returns
322
+
323
+ [`GitStepMaterial`](#gitstepmaterial)
324
+
325
+ ---
326
+
327
+ ### begin()
328
+
329
+ ```ts
330
+ function begin(
331
+ input,
332
+ material,
333
+ ): Promise<
334
+ | {
335
+ key: string;
336
+ timestamp: number;
337
+ operation:
338
+ | {
339
+ kind: "commit";
340
+ request: {
341
+ repository: string;
342
+ branch: string;
343
+ expectedHead: string | null;
344
+ startFrom?: string;
345
+ message: string;
346
+ author: {
347
+ name: string;
348
+ email: string;
349
+ };
350
+ };
351
+ changesDigest: string;
352
+ tags: object[];
353
+ }
354
+ | {
355
+ kind: "merge";
356
+ request: {
357
+ target: string;
358
+ source: string;
359
+ branch: string;
360
+ sourceBranch: string;
361
+ expectedSource: string;
362
+ expectedTarget?: string;
363
+ behind?: number;
364
+ message: string;
365
+ author: {
366
+ name: string;
367
+ email: string;
368
+ };
369
+ };
370
+ };
371
+ phase: "fetch-base";
372
+ base: string | null;
373
+ }
374
+ | {
375
+ key: string;
376
+ timestamp: number;
377
+ operation:
378
+ | {
379
+ kind: "commit";
380
+ request: {
381
+ repository: string;
382
+ branch: string;
383
+ expectedHead: string | null;
384
+ startFrom?: string;
385
+ message: string;
386
+ author: {
387
+ name: string;
388
+ email: string;
389
+ };
390
+ };
391
+ changesDigest: string;
392
+ tags: object[];
393
+ }
394
+ | {
395
+ kind: "merge";
396
+ request: {
397
+ target: string;
398
+ source: string;
399
+ branch: string;
400
+ sourceBranch: string;
401
+ expectedSource: string;
402
+ expectedTarget?: string;
403
+ behind?: number;
404
+ message: string;
405
+ author: {
406
+ name: string;
407
+ email: string;
408
+ };
409
+ };
410
+ };
411
+ phase: "too-large";
412
+ }
413
+ | {
414
+ key: string;
415
+ timestamp: number;
416
+ operation:
417
+ | {
418
+ kind: "commit";
419
+ request: {
420
+ repository: string;
421
+ branch: string;
422
+ expectedHead: string | null;
423
+ startFrom?: string;
424
+ message: string;
425
+ author: {
426
+ name: string;
427
+ email: string;
428
+ };
429
+ };
430
+ changesDigest: string;
431
+ tags: object[];
432
+ }
433
+ | {
434
+ kind: "merge";
435
+ request: {
436
+ target: string;
437
+ source: string;
438
+ branch: string;
439
+ sourceBranch: string;
440
+ expectedSource: string;
441
+ expectedTarget?: string;
442
+ behind?: number;
443
+ message: string;
444
+ author: {
445
+ name: string;
446
+ email: string;
447
+ };
448
+ };
449
+ };
450
+ phase: "inspect-base";
451
+ }
452
+ | {
453
+ key: string;
454
+ timestamp: number;
455
+ operation:
456
+ | {
457
+ kind: "commit";
458
+ request: {
459
+ repository: string;
460
+ branch: string;
461
+ expectedHead: string | null;
462
+ startFrom?: string;
463
+ message: string;
464
+ author: {
465
+ name: string;
466
+ email: string;
467
+ };
468
+ };
469
+ changesDigest: string;
470
+ tags: object[];
471
+ }
472
+ | {
473
+ kind: "merge";
474
+ request: {
475
+ target: string;
476
+ source: string;
477
+ branch: string;
478
+ sourceBranch: string;
479
+ expectedSource: string;
480
+ expectedTarget?: string;
481
+ behind?: number;
482
+ message: string;
483
+ author: {
484
+ name: string;
485
+ email: string;
486
+ };
487
+ };
488
+ };
489
+ phase: "inspect-source";
490
+ }
491
+ | {
492
+ key: string;
493
+ timestamp: number;
494
+ operation:
495
+ | {
496
+ kind: "commit";
497
+ request: {
498
+ repository: string;
499
+ branch: string;
500
+ expectedHead: string | null;
501
+ startFrom?: string;
502
+ message: string;
503
+ author: {
504
+ name: string;
505
+ email: string;
506
+ };
507
+ };
508
+ changesDigest: string;
509
+ tags: object[];
510
+ }
511
+ | {
512
+ kind: "merge";
513
+ request: {
514
+ target: string;
515
+ source: string;
516
+ branch: string;
517
+ sourceBranch: string;
518
+ expectedSource: string;
519
+ expectedTarget?: string;
520
+ behind?: number;
521
+ message: string;
522
+ author: {
523
+ name: string;
524
+ email: string;
525
+ };
526
+ };
527
+ };
528
+ phase: "fetch-source";
529
+ target?: string;
530
+ }
531
+ | {
532
+ key: string;
533
+ timestamp: number;
534
+ operation:
535
+ | {
536
+ kind: "commit";
537
+ request: {
538
+ repository: string;
539
+ branch: string;
540
+ expectedHead: string | null;
541
+ startFrom?: string;
542
+ message: string;
543
+ author: {
544
+ name: string;
545
+ email: string;
546
+ };
547
+ };
548
+ changesDigest: string;
549
+ tags: object[];
550
+ }
551
+ | {
552
+ kind: "merge";
553
+ request: {
554
+ target: string;
555
+ source: string;
556
+ branch: string;
557
+ sourceBranch: string;
558
+ expectedSource: string;
559
+ expectedTarget?: string;
560
+ behind?: number;
561
+ message: string;
562
+ author: {
563
+ name: string;
564
+ email: string;
565
+ };
566
+ };
567
+ };
568
+ phase: "inspect-target";
569
+ sourceDigest: string;
570
+ }
571
+ | {
572
+ key: string;
573
+ timestamp: number;
574
+ operation:
575
+ | {
576
+ kind: "commit";
577
+ request: {
578
+ repository: string;
579
+ branch: string;
580
+ expectedHead: string | null;
581
+ startFrom?: string;
582
+ message: string;
583
+ author: {
584
+ name: string;
585
+ email: string;
586
+ };
587
+ };
588
+ changesDigest: string;
589
+ tags: object[];
590
+ }
591
+ | {
592
+ kind: "merge";
593
+ request: {
594
+ target: string;
595
+ source: string;
596
+ branch: string;
597
+ sourceBranch: string;
598
+ expectedSource: string;
599
+ expectedTarget?: string;
600
+ behind?: number;
601
+ message: string;
602
+ author: {
603
+ name: string;
604
+ email: string;
605
+ };
606
+ };
607
+ };
608
+ phase: "fetch-target";
609
+ sourceDigest: string;
610
+ target: string;
611
+ }
612
+ | {
613
+ key: string;
614
+ timestamp: number;
615
+ operation:
616
+ | {
617
+ kind: "commit";
618
+ request: {
619
+ repository: string;
620
+ branch: string;
621
+ expectedHead: string | null;
622
+ startFrom?: string;
623
+ message: string;
624
+ author: {
625
+ name: string;
626
+ email: string;
627
+ };
628
+ };
629
+ changesDigest: string;
630
+ tags: object[];
631
+ }
632
+ | {
633
+ kind: "merge";
634
+ request: {
635
+ target: string;
636
+ source: string;
637
+ branch: string;
638
+ sourceBranch: string;
639
+ expectedSource: string;
640
+ expectedTarget?: string;
641
+ behind?: number;
642
+ message: string;
643
+ author: {
644
+ name: string;
645
+ email: string;
646
+ };
647
+ };
648
+ };
649
+ old: string | null;
650
+ built: string;
651
+ packDigest: string;
652
+ attempt: number;
653
+ pushBefore?: string | null;
654
+ atomic?: true;
655
+ phase: "inspect-merge-push";
656
+ }
657
+ | {
658
+ key: string;
659
+ timestamp: number;
660
+ operation:
661
+ | {
662
+ kind: "commit";
663
+ request: {
664
+ repository: string;
665
+ branch: string;
666
+ expectedHead: string | null;
667
+ startFrom?: string;
668
+ message: string;
669
+ author: {
670
+ name: string;
671
+ email: string;
672
+ };
673
+ };
674
+ changesDigest: string;
675
+ tags: object[];
676
+ }
677
+ | {
678
+ kind: "merge";
679
+ request: {
680
+ target: string;
681
+ source: string;
682
+ branch: string;
683
+ sourceBranch: string;
684
+ expectedSource: string;
685
+ expectedTarget?: string;
686
+ behind?: number;
687
+ message: string;
688
+ author: {
689
+ name: string;
690
+ email: string;
691
+ };
692
+ };
693
+ };
694
+ old: string | null;
695
+ built: string;
696
+ packDigest: string;
697
+ attempt: number;
698
+ pushBefore?: string | null;
699
+ atomic?: true;
700
+ phase: "inspect-atomic";
701
+ }
702
+ | {
703
+ key: string;
704
+ timestamp: number;
705
+ operation:
706
+ | {
707
+ kind: "commit";
708
+ request: {
709
+ repository: string;
710
+ branch: string;
711
+ expectedHead: string | null;
712
+ startFrom?: string;
713
+ message: string;
714
+ author: {
715
+ name: string;
716
+ email: string;
717
+ };
718
+ };
719
+ changesDigest: string;
720
+ tags: object[];
721
+ }
722
+ | {
723
+ kind: "merge";
724
+ request: {
725
+ target: string;
726
+ source: string;
727
+ branch: string;
728
+ sourceBranch: string;
729
+ expectedSource: string;
730
+ expectedTarget?: string;
731
+ behind?: number;
732
+ message: string;
733
+ author: {
734
+ name: string;
735
+ email: string;
736
+ };
737
+ };
738
+ };
739
+ old: string | null;
740
+ built: string;
741
+ packDigest: string;
742
+ attempt: number;
743
+ pushBefore?: string | null;
744
+ atomic?: true;
745
+ phase: "push";
746
+ }
747
+ | {
748
+ key: string;
749
+ timestamp: number;
750
+ operation:
751
+ | {
752
+ kind: "commit";
753
+ request: {
754
+ repository: string;
755
+ branch: string;
756
+ expectedHead: string | null;
757
+ startFrom?: string;
758
+ message: string;
759
+ author: {
760
+ name: string;
761
+ email: string;
762
+ };
763
+ };
764
+ changesDigest: string;
765
+ tags: object[];
766
+ }
767
+ | {
768
+ kind: "merge";
769
+ request: {
770
+ target: string;
771
+ source: string;
772
+ branch: string;
773
+ sourceBranch: string;
774
+ expectedSource: string;
775
+ expectedTarget?: string;
776
+ behind?: number;
777
+ message: string;
778
+ author: {
779
+ name: string;
780
+ email: string;
781
+ };
782
+ };
783
+ };
784
+ old: string | null;
785
+ built: string;
786
+ packDigest: string;
787
+ attempt: number;
788
+ pushBefore?: string | null;
789
+ atomic?: true;
790
+ phase: "confirm";
791
+ }
792
+ | {
793
+ key: string;
794
+ timestamp: number;
795
+ operation:
796
+ | {
797
+ kind: "commit";
798
+ request: {
799
+ repository: string;
800
+ branch: string;
801
+ expectedHead: string | null;
802
+ startFrom?: string;
803
+ message: string;
804
+ author: {
805
+ name: string;
806
+ email: string;
807
+ };
808
+ };
809
+ changesDigest: string;
810
+ tags: object[];
811
+ }
812
+ | {
813
+ kind: "merge";
814
+ request: {
815
+ target: string;
816
+ source: string;
817
+ branch: string;
818
+ sourceBranch: string;
819
+ expectedSource: string;
820
+ expectedTarget?: string;
821
+ behind?: number;
822
+ message: string;
823
+ author: {
824
+ name: string;
825
+ email: string;
826
+ };
827
+ };
828
+ };
829
+ old: string | null;
830
+ built: string;
831
+ packDigest: string;
832
+ attempt: number;
833
+ pushBefore?: string | null;
834
+ atomic?: true;
835
+ phase: "confirm-ancestry";
836
+ head: string;
837
+ }
838
+ >;
839
+ ```
840
+
841
+ Prepare immutable request material before atomically enqueueing the first
842
+ checkpoint.
843
+
844
+ #### Parameters
845
+
846
+ | Parameter | Type |
847
+ | ---------- | --------------------------------------- |
848
+ | `input` | [`GitStepOperation`](#gitstepoperation) |
849
+ | `material` | [`GitStepMaterial`](#gitstepmaterial) |
850
+
851
+ #### Returns
852
+
853
+ `Promise`\< \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{
854
+ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`;
855
+ `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`;
856
+ `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`:
857
+ `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{
858
+ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`:
859
+ `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`:
860
+ `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`;
861
+ \}; \}; \}; `phase`: `"fetch-base"`; `base`: `string` \| `null`; \} \| \{ `key`:
862
+ `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`;
863
+ `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`:
864
+ `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{
865
+ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`:
866
+ `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`;
867
+ `source`: `string`; `branch`: `string`; `sourceBranch`: `string`;
868
+ `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`;
869
+ `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \};
870
+ \}; `phase`: `"too-large"`; \} \| \{ `key`: `string`; `timestamp`: `number`;
871
+ `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`;
872
+ `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`;
873
+ `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \};
874
+ `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`;
875
+ `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`;
876
+ `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`:
877
+ `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`:
878
+ `string`; `email`: `string`; \}; \}; \}; `phase`: `"inspect-base"`; \} \| \{
879
+ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`;
880
+ `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`:
881
+ `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{
882
+ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`:
883
+ `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`;
884
+ `source`: `string`; `branch`: `string`; `sourceBranch`: `string`;
885
+ `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`;
886
+ `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \};
887
+ \}; `phase`: `"inspect-source"`; \} \| \{ `key`: `string`; `timestamp`:
888
+ `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`:
889
+ `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`:
890
+ `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`;
891
+ \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`:
892
+ `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`:
893
+ `string`; `sourceBranch`: `string`; `expectedSource`: `string`;
894
+ `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`:
895
+ \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"fetch-source"`;
896
+ `target?`: `string`; \} \| \{ `key`: `string`; `timestamp`: `number`;
897
+ `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`;
898
+ `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`;
899
+ `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \};
900
+ `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`;
901
+ `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`;
902
+ `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`:
903
+ `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`:
904
+ `string`; `email`: `string`; \}; \}; \}; `phase`: `"inspect-target"`;
905
+ `sourceDigest`: `string`; \} \| \{ `key`: `string`; `timestamp`: `number`;
906
+ `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`;
907
+ `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`;
908
+ `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \};
909
+ `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`;
910
+ `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`;
911
+ `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`:
912
+ `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`:
913
+ `string`; `email`: `string`; \}; \}; \}; `phase`: `"fetch-target"`;
914
+ `sourceDigest`: `string`; `target`: `string`; \} \| \{ `key`: `string`;
915
+ `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{
916
+ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`;
917
+ `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`;
918
+ `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \|
919
+ \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`;
920
+ `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`;
921
+ `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`:
922
+ \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`;
923
+ `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`:
924
+ `string` \| `null`; `atomic?`: `true`; `phase`: `"inspect-merge-push"`; \} \| \{
925
+ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`;
926
+ `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`:
927
+ `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{
928
+ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`:
929
+ `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`;
930
+ `source`: `string`; `branch`: `string`; `sourceBranch`: `string`;
931
+ `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`;
932
+ `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \};
933
+ \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`;
934
+ `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`;
935
+ `phase`: `"inspect-atomic"`; \} \| \{ `key`: `string`; `timestamp`: `number`;
936
+ `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`;
937
+ `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`;
938
+ `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \};
939
+ `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`;
940
+ `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`;
941
+ `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`:
942
+ `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`:
943
+ `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`:
944
+ `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string`
945
+ \| `null`; `atomic?`: `true`; `phase`: `"push"`; \} \| \{ `key`: `string`;
946
+ `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{
947
+ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`;
948
+ `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`;
949
+ `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \|
950
+ \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`;
951
+ `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`;
952
+ `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`:
953
+ \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`;
954
+ `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`:
955
+ `string` \| `null`; `atomic?`: `true`; `phase`: `"confirm"`; \} \| \{ `key`:
956
+ `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`;
957
+ `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`:
958
+ `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{
959
+ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`:
960
+ `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`;
961
+ `source`: `string`; `branch`: `string`; `sourceBranch`: `string`;
962
+ `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`;
963
+ `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \};
964
+ \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`;
965
+ `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`;
966
+ `phase`: `"confirm-ancestry"`; `head`: `string`; \}\>
967
+
968
+ ---
969
+
970
+ ### runStep()
971
+
972
+ ```ts
973
+ function runStep(raw, ports, signal): Promise<GitStepResult>;
974
+ ```
975
+
976
+ Execute one fresh-admitted frame; the caller persists next and its successor job
977
+ atomically.
978
+
979
+ #### Parameters
980
+
981
+ | Parameter | Type |
982
+ | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
983
+ | `raw` | \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"fetch-base"`; `base`: `string` \| `null`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"too-large"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"inspect-base"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"inspect-source"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"fetch-source"`; `target?`: `string`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"inspect-target"`; `sourceDigest`: `string`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"fetch-target"`; `sourceDigest`: `string`; `target`: `string`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`; `phase`: `"inspect-merge-push"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`; `phase`: `"inspect-atomic"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`; `phase`: `"push"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`; `phase`: `"confirm"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`; `phase`: `"confirm-ancestry"`; `head`: `string`; \} |
984
+ | `ports` | [`GitStepPorts`](#gitstepports) |
985
+ | `signal` | `AbortSignal` |
986
+
987
+ #### Returns
988
+
989
+ `Promise`\<[`GitStepResult`](#gitstepresult)\>
990
+
991
+ ---
992
+
993
+ ### dropMaterial()
994
+
995
+ ```ts
996
+ function dropMaterial(step, material): Promise<void>;
997
+ ```
998
+
999
+ Drop material only after the owner has durably recorded the terminal outcome.
1000
+
1001
+ #### Parameters
1002
+
1003
+ | Parameter | Type |
1004
+ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1005
+ | `step` | \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"fetch-base"`; `base`: `string` \| `null`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"too-large"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"inspect-base"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"inspect-source"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"fetch-source"`; `target?`: `string`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"inspect-target"`; `sourceDigest`: `string`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `phase`: `"fetch-target"`; `sourceDigest`: `string`; `target`: `string`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`; `phase`: `"inspect-merge-push"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`; `phase`: `"inspect-atomic"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`; `phase`: `"push"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`; `phase`: `"confirm"`; \} \| \{ `key`: `string`; `timestamp`: `number`; `operation`: \| \{ `kind`: `"commit"`; `request`: \{ `repository`: `string`; `branch`: `string`; `expectedHead`: `string` \| `null`; `startFrom?`: `string`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; `changesDigest`: `string`; `tags`: `object`[]; \} \| \{ `kind`: `"merge"`; `request`: \{ `target`: `string`; `source`: `string`; `branch`: `string`; `sourceBranch`: `string`; `expectedSource`: `string`; `expectedTarget?`: `string`; `behind?`: `number`; `message`: `string`; `author`: \{ `name`: `string`; `email`: `string`; \}; \}; \}; `old`: `string` \| `null`; `built`: `string`; `packDigest`: `string`; `attempt`: `number`; `pushBefore?`: `string` \| `null`; `atomic?`: `true`; `phase`: `"confirm-ancestry"`; `head`: `string`; \} |
1006
+ | `material` | [`GitStepMaterial`](#gitstepmaterial) |
1007
+
1008
+ #### Returns
1009
+
1010
+ `Promise`\<`void`\>