@snappedly-tools/shipyard 0.2.0 → 0.3.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.
Files changed (36) hide show
  1. package/README.md +2 -1
  2. package/dist/{SandboxProvider-KeFp_nju.d.ts → SandboxProvider-XJQqEdSf.d.ts} +4 -0
  3. package/dist/chunk-2GT3OPO5.js +2620 -0
  4. package/dist/chunk-2GT3OPO5.js.map +1 -0
  5. package/dist/{chunk-CP6YEQKU.js → chunk-KMGNFXKN.js} +2 -6
  6. package/dist/chunk-KMGNFXKN.js.map +1 -0
  7. package/dist/{chunk-OAHPDSOJ.js → chunk-OCJKONZ7.js} +90 -22
  8. package/dist/chunk-OCJKONZ7.js.map +1 -0
  9. package/dist/chunk-VDHZO5PP.js +113 -0
  10. package/dist/chunk-VDHZO5PP.js.map +1 -0
  11. package/dist/{chunk-YVJHSJUW.js → chunk-VW4MI5GJ.js} +5 -6
  12. package/dist/chunk-VW4MI5GJ.js.map +1 -0
  13. package/dist/chunk-WA7QPAXO.js +50 -0
  14. package/dist/chunk-WA7QPAXO.js.map +1 -0
  15. package/dist/index.d.ts +28 -5
  16. package/dist/index.js +471 -297
  17. package/dist/index.js.map +1 -1
  18. package/dist/main.js +224 -19339
  19. package/dist/main.js.map +1 -1
  20. package/dist/sandboxes/docker.d.ts +1 -1
  21. package/dist/sandboxes/docker.js +4 -7
  22. package/dist/sandboxes/no-sandbox.d.ts +1 -1
  23. package/dist/sandboxes/no-sandbox.js +2 -5
  24. package/dist/sandboxes/vercel.d.ts +1 -1
  25. package/dist/sandboxes/vercel.js +2 -4
  26. package/dist/sandboxes/vercel.js.map +1 -1
  27. package/package.json +15 -12
  28. package/dist/chunk-4VDXZY7T.js +0 -27624
  29. package/dist/chunk-4VDXZY7T.js.map +0 -1
  30. package/dist/chunk-BU6XJFJ2.js +0 -90
  31. package/dist/chunk-BU6XJFJ2.js.map +0 -1
  32. package/dist/chunk-CP6YEQKU.js.map +0 -1
  33. package/dist/chunk-OAHPDSOJ.js.map +0 -1
  34. package/dist/chunk-SRUH232X.js +0 -26712
  35. package/dist/chunk-SRUH232X.js.map +0 -1
  36. package/dist/chunk-YVJHSJUW.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { B as BindMountSandboxHandle, S as SandboxProvider, a as BranchStrategy, A as AnySandboxProvider, E as ExecResult, M as MergeToHeadBranchStrategy, b as NamedBranchStrategy } from './SandboxProvider-KeFp_nju.js';
2
- export { c as BindMountBranchStrategy, d as BindMountCreateOptions, e as BindMountSandboxProvider, f as BindMountSandboxProviderConfig, H as HeadBranchStrategy, g as InteractiveExecOptions, h as IsolatedBranchStrategy, i as IsolatedCreateOptions, j as IsolatedSandboxHandle, I as IsolatedSandboxProvider, k as IsolatedSandboxProviderConfig, l as NoSandboxBranchStrategy, m as NoSandboxHandle, N as NoSandboxProvider, n as createBindMountSandboxProvider, o as createIsolatedSandboxProvider } from './SandboxProvider-KeFp_nju.js';
1
+ import { B as BindMountSandboxHandle, S as SandboxProvider, a as BranchStrategy, A as AnySandboxProvider, E as ExecResult, M as MergeToHeadBranchStrategy, b as NamedBranchStrategy } from './SandboxProvider-XJQqEdSf.js';
2
+ export { c as BindMountBranchStrategy, d as BindMountCreateOptions, e as BindMountSandboxProvider, f as BindMountSandboxProviderConfig, H as HeadBranchStrategy, g as InteractiveExecOptions, h as IsolatedBranchStrategy, i as IsolatedCreateOptions, j as IsolatedSandboxHandle, I as IsolatedSandboxProvider, k as IsolatedSandboxProviderConfig, l as NoSandboxBranchStrategy, m as NoSandboxHandle, N as NoSandboxProvider, n as createBindMountSandboxProvider, o as createIsolatedSandboxProvider } from './SandboxProvider-XJQqEdSf.js';
3
3
  import { StandardSchemaV1 } from '@standard-schema/spec';
4
4
  export { M as MountConfig } from './MountConfig-bZoCs4Dd.js';
5
5
 
@@ -1166,6 +1166,8 @@ interface PhaseResult {
1166
1166
  readonly phase: WorkflowPhase;
1167
1167
  readonly outcome: PhaseOutcome;
1168
1168
  readonly identity: WorkIdentity;
1169
+ /** Brief revision executed by this phase. */
1170
+ readonly briefHash: string;
1169
1171
  readonly base?: RevisionReference;
1170
1172
  readonly head?: RevisionReference;
1171
1173
  readonly summary: string;
@@ -1198,6 +1200,14 @@ interface TransitionContext {
1198
1200
  readonly kind: WorkItemKind;
1199
1201
  readonly authorization: Authorization["status"];
1200
1202
  readonly checks?: readonly CheckEvidence[];
1203
+ /** Required check names from the repository policy. */
1204
+ readonly requiredCheckNames?: readonly string[];
1205
+ /** Exact candidate identity required for lifecycle-gating check evidence. */
1206
+ readonly checkCandidate?: {
1207
+ readonly baseSha: string;
1208
+ readonly headSha: string;
1209
+ readonly briefHash: string;
1210
+ };
1201
1211
  readonly review?: ReviewEvidence;
1202
1212
  readonly currentHeadSha?: string;
1203
1213
  readonly assignedHeadSha?: string;
@@ -1341,6 +1351,8 @@ interface CoordinatorStorageTransaction {
1341
1351
  readonly inserted: boolean;
1342
1352
  }>;
1343
1353
  saveEvent(event: StoredEvent): Promise<void>;
1354
+ /** Serialize intake for an identity even before its first job row exists. */
1355
+ lockWorkIdentity(identity: WorkIdentity): Promise<void>;
1344
1356
  getJob(jobId: string): Promise<WorkflowJob | undefined>;
1345
1357
  findJobByKey(key: WorkKey, briefHash: string): Promise<WorkflowJob | undefined>;
1346
1358
  findCurrentJob(identity: WorkIdentity): Promise<WorkflowJob | undefined>;
@@ -1364,6 +1376,8 @@ interface CoordinatorStorageTransaction {
1364
1376
  }>;
1365
1377
  saveEffect(effect: EffectIntent): Promise<void>;
1366
1378
  getLease(repository: string, branch: string): Promise<BranchLease | undefined>;
1379
+ /** Serialize lease acquisition even when no lease row exists yet. */
1380
+ lockLeaseResource(repository: string, branch: string): Promise<void>;
1367
1381
  saveLease(lease: BranchLease): Promise<void>;
1368
1382
  findLeasesForJob(jobId: string): Promise<readonly BranchLease[]>;
1369
1383
  findLeasesForRepository(repository: string): Promise<readonly BranchLease[]>;
@@ -1653,6 +1667,10 @@ interface PhaseEngineResponse {
1653
1667
  readonly outcome?: "completed" | "needs-info";
1654
1668
  }
1655
1669
  interface PhaseEngineAdapter {
1670
+ /**
1671
+ * Execute one phase. After `request.signal` aborts, this promise MUST settle
1672
+ * only after the provider has stopped all work that can mutate the candidate.
1673
+ */
1656
1674
  execute(request: PhaseEngineRequest): Promise<PhaseEngineResponse>;
1657
1675
  }
1658
1676
  interface FakePhaseEngineAdapterOptions {
@@ -2033,6 +2051,8 @@ interface GitHubAuthorizationPolicy {
2033
2051
  readonly allowedRepositories: readonly string[];
2034
2052
  /** Exact GitHub logins allowed to submit workflow input. */
2035
2053
  readonly allowedSenders: readonly string[];
2054
+ /** Exact GitHub logins allowed to approve or request changes on tracked pull requests. */
2055
+ readonly allowedReviewers: readonly string[];
2036
2056
  /** Additional service logins treated as bot-originated. */
2037
2057
  readonly botLogins?: readonly string[];
2038
2058
  }
@@ -2388,7 +2408,6 @@ interface ReviewFindingInput {
2388
2408
  readonly id: string;
2389
2409
  readonly severity: FindingSeverity;
2390
2410
  readonly axis: ReviewAxis;
2391
- readonly disposition: FindingDisposition;
2392
2411
  readonly title: string;
2393
2412
  readonly evidence: string;
2394
2413
  readonly location?: string;
@@ -2653,6 +2672,7 @@ interface ReleaseCandidate {
2653
2672
  readonly reviewedHeadSha: string;
2654
2673
  readonly briefHash: string;
2655
2674
  readonly artifactDigest: string;
2675
+ /** Provider-specific immutable locator; integrity is bound separately by artifactDigest. */
2656
2676
  readonly artifactRef: string;
2657
2677
  readonly version?: string;
2658
2678
  }
@@ -2737,6 +2757,8 @@ interface ReleaseIntegrationOptions {
2737
2757
  readonly store: ReleaseStore;
2738
2758
  readonly transport: ReleaseTransport;
2739
2759
  readonly actor: ReleaseActor;
2760
+ /** Validate a provider-specific immutable locator not covered by built-in formats. */
2761
+ readonly validateArtifactRef?: (candidate: ReleaseCandidate) => string | undefined;
2740
2762
  readonly now?: () => string;
2741
2763
  }
2742
2764
  interface ReleaseOperationResult {
@@ -2748,7 +2770,7 @@ interface RecoveryRecord {
2748
2770
  readonly candidate: ReleaseCandidate;
2749
2771
  readonly action: ReleasePolicy["recoveryMode"];
2750
2772
  readonly reason: string;
2751
- readonly authorizedBy?: ReleaseActor;
2773
+ readonly authorizedBy: ReleaseActor;
2752
2774
  readonly recordedAt: string;
2753
2775
  }
2754
2776
  declare const releaseCandidateKey: (candidate: ReleaseCandidate) => string;
@@ -2757,6 +2779,7 @@ declare class ReleaseIntegration {
2757
2779
  private readonly store;
2758
2780
  private readonly transport;
2759
2781
  private readonly actor;
2782
+ private readonly validateArtifactRef?;
2760
2783
  private readonly now;
2761
2784
  constructor(options: ReleaseIntegrationOptions);
2762
2785
  private stateKey;
@@ -2772,7 +2795,7 @@ declare class ReleaseIntegration {
2772
2795
  recordRecovery(input: {
2773
2796
  readonly candidate: ReleaseCandidate;
2774
2797
  readonly reason: string;
2775
- readonly authorizedBy?: ReleaseActor;
2798
+ readonly authorizedBy: ReleaseActor;
2776
2799
  }): RecoveryRecord;
2777
2800
  }
2778
2801
  declare const candidateMatchesApproval: (candidate: ReleaseCandidate, approval: ProductionApproval) => boolean;