@dreamboard-games/cli 0.1.30-alpha.19 → 0.1.30-alpha.20

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 (97) hide show
  1. package/README.md +22 -102
  2. package/dist/agent-verifier/agent-workspace-verifier.mjs +1508 -55
  3. package/dist/agent-verifier/agent-workspace-verifier.mjs.map +1 -1
  4. package/dist/agent-verifier/{chunk-V7ABTZXW.mjs → chunk-4I2WWAPK.mjs} +26 -7
  5. package/dist/agent-verifier/chunk-4I2WWAPK.mjs.map +1 -0
  6. package/dist/agent-verifier/{chunk-7LFDFXLS.mjs → chunk-BWBN2TDJ.mjs} +338 -133
  7. package/dist/agent-verifier/chunk-BWBN2TDJ.mjs.map +1 -0
  8. package/dist/agent-verifier/{chunk-AWZ4M4NS.mjs → chunk-DQUYBIGQ.mjs} +5 -6
  9. package/dist/agent-verifier/chunk-DQUYBIGQ.mjs.map +1 -0
  10. package/dist/agent-verifier/{chunk-H5L4KK4Y.mjs → chunk-GCFGAFYC.mjs} +7 -7
  11. package/dist/agent-verifier/chunk-GCFGAFYC.mjs.map +1 -0
  12. package/dist/agent-verifier/{chunk-TAEQKBJB.mjs → chunk-GWRZRWCF.mjs} +1 -1
  13. package/dist/agent-verifier/chunk-GWRZRWCF.mjs.map +1 -0
  14. package/dist/agent-verifier/{chunk-6AKXIY37.mjs → chunk-IWB4L2HV.mjs} +3 -3
  15. package/dist/agent-verifier/chunk-IWB4L2HV.mjs.map +1 -0
  16. package/dist/agent-verifier/{chunk-334H4LE4.mjs → chunk-KDAQ4CZY.mjs} +3 -3
  17. package/dist/agent-verifier/{chunk-WSIYUUSD.mjs → chunk-TIDX3YLW.mjs} +2 -2
  18. package/dist/agent-verifier/{chunk-WSIYUUSD.mjs.map → chunk-TIDX3YLW.mjs.map} +1 -1
  19. package/dist/agent-verifier/{chunk-UMW24KZI.mjs → chunk-UXGTT25Q.mjs} +3 -3
  20. package/dist/agent-verifier/{global-config-SXR6X3OZ.mjs → global-config-IXZLY4BS.mjs} +4 -4
  21. package/dist/agent-verifier/{local-files-DAFIR7SN.mjs → local-files-OF4QFISU.mjs} +4 -4
  22. package/dist/agent-verifier/{chunk-POBFNXD4.mjs → local-typecheck-DHVLM37Z.mjs} +3 -3
  23. package/dist/agent-verifier/local-typecheck-DHVLM37Z.mjs.map +1 -0
  24. package/dist/agent-verifier/{materialize-workspace-PWNT6HQK.mjs → materialize-workspace-VS5RHSBO.mjs} +7 -7
  25. package/dist/agent-verifier/{chunk-HLHT57AW.mjs → reducer-bundle-preflight-GLUJKTWU.mjs} +13 -10
  26. package/dist/agent-verifier/reducer-bundle-preflight-GLUJKTWU.mjs.map +1 -0
  27. package/dist/agent-verifier/{chunk-INIK6LHK.mjs → reducer-contract-preflight-WVQQPW5F.mjs} +6 -5
  28. package/dist/agent-verifier/reducer-contract-preflight-WVQQPW5F.mjs.map +1 -0
  29. package/dist/agent-verifier/{chunk-3Y4FRMTK.mjs → reducer-native-test-harness-H6G6RBRY.mjs} +150 -34
  30. package/dist/agent-verifier/reducer-native-test-harness-H6G6RBRY.mjs.map +1 -0
  31. package/dist/agent-verifier/{static-scaffold-HXUQLJVN.mjs → static-scaffold-C36KROJA.mjs} +3 -3
  32. package/dist/agent-verifier/{workspace-dependencies-ZMHPHVQV.mjs → workspace-dependencies-5HEEKZFP.mjs} +4 -2
  33. package/dist/authoring-compatibility-internal.js +2 -2
  34. package/dist/{chunk-R6RB4EKH.js → chunk-5PJWUB6W.js} +179 -210
  35. package/dist/chunk-5PJWUB6W.js.map +1 -0
  36. package/dist/{chunk-YRSE5DLH.js → chunk-EJGB3IR7.js} +422 -264
  37. package/dist/chunk-EJGB3IR7.js.map +1 -0
  38. package/dist/{chunk-FFO2IJL3.js → chunk-EQNBQVIW.js} +1 -1
  39. package/dist/chunk-EQNBQVIW.js.map +1 -0
  40. package/dist/{chunk-VWMKJL4A.js → chunk-UI7NWSYA.js} +3 -3
  41. package/dist/chunk-UI7NWSYA.js.map +1 -0
  42. package/dist/{global-config-UHGWFJIK.js → global-config-GK2UC2X6.js} +3 -3
  43. package/dist/index.js +2691 -3953
  44. package/dist/index.js.map +1 -1
  45. package/dist/internal.js +4 -4
  46. package/package.json +1 -1
  47. package/release/authoring-release-set.json +2 -2
  48. package/skills/dreamboard/SKILL.md +30 -28
  49. package/skills/dreamboard/references/building-your-first-game.md +15 -15
  50. package/skills/dreamboard/references/cli.md +48 -47
  51. package/skills/dreamboard/references/quickstart.md +16 -13
  52. package/skills/dreamboard/references/testing.md +10 -10
  53. package/dist/agent-verifier/chunk-3Y4FRMTK.mjs.map +0 -1
  54. package/dist/agent-verifier/chunk-5D3OJBDT.mjs +0 -1547
  55. package/dist/agent-verifier/chunk-5D3OJBDT.mjs.map +0 -1
  56. package/dist/agent-verifier/chunk-6AKXIY37.mjs.map +0 -1
  57. package/dist/agent-verifier/chunk-7LFDFXLS.mjs.map +0 -1
  58. package/dist/agent-verifier/chunk-AWZ4M4NS.mjs.map +0 -1
  59. package/dist/agent-verifier/chunk-H5L4KK4Y.mjs.map +0 -1
  60. package/dist/agent-verifier/chunk-HLHT57AW.mjs.map +0 -1
  61. package/dist/agent-verifier/chunk-INIK6LHK.mjs.map +0 -1
  62. package/dist/agent-verifier/chunk-LEWM26XR.mjs +0 -618
  63. package/dist/agent-verifier/chunk-LEWM26XR.mjs.map +0 -1
  64. package/dist/agent-verifier/chunk-PLXXH5LY.mjs +0 -222
  65. package/dist/agent-verifier/chunk-PLXXH5LY.mjs.map +0 -1
  66. package/dist/agent-verifier/chunk-POBFNXD4.mjs.map +0 -1
  67. package/dist/agent-verifier/chunk-TAEQKBJB.mjs.map +0 -1
  68. package/dist/agent-verifier/chunk-V7ABTZXW.mjs.map +0 -1
  69. package/dist/agent-verifier/chunk-ZOR5FTIG.mjs +0 -39
  70. package/dist/agent-verifier/chunk-ZOR5FTIG.mjs.map +0 -1
  71. package/dist/agent-verifier/compile-MO2URO5Z.mjs +0 -317
  72. package/dist/agent-verifier/compile-MO2URO5Z.mjs.map +0 -1
  73. package/dist/agent-verifier/local-typecheck-3JXL2NMG.mjs +0 -10
  74. package/dist/agent-verifier/reducer-bundle-preflight-3DSXIELT.mjs +0 -20
  75. package/dist/agent-verifier/reducer-contract-preflight-FQB7M4PU.mjs +0 -11
  76. package/dist/agent-verifier/reducer-native-test-harness-X2KQYSCD.mjs +0 -53
  77. package/dist/agent-verifier/reducer-native-test-harness-X2KQYSCD.mjs.map +0 -1
  78. package/dist/agent-verifier/static-scaffold-HXUQLJVN.mjs.map +0 -1
  79. package/dist/agent-verifier/sync-5YM4CSXL.mjs +0 -598
  80. package/dist/agent-verifier/sync-5YM4CSXL.mjs.map +0 -1
  81. package/dist/agent-verifier/test-CNNVTFIG.mjs +0 -356
  82. package/dist/agent-verifier/test-CNNVTFIG.mjs.map +0 -1
  83. package/dist/agent-verifier/workspace-dependencies-ZMHPHVQV.mjs.map +0 -1
  84. package/dist/chunk-FFO2IJL3.js.map +0 -1
  85. package/dist/chunk-R6RB4EKH.js.map +0 -1
  86. package/dist/chunk-VWMKJL4A.js.map +0 -1
  87. package/dist/chunk-YRSE5DLH.js.map +0 -1
  88. package/dist/global-config-UHGWFJIK.js.map +0 -1
  89. package/skills/dreamboard/scripts/events-extract.mjs +0 -218
  90. /package/dist/agent-verifier/{chunk-334H4LE4.mjs.map → chunk-KDAQ4CZY.mjs.map} +0 -0
  91. /package/dist/agent-verifier/{chunk-UMW24KZI.mjs.map → chunk-UXGTT25Q.mjs.map} +0 -0
  92. /package/dist/agent-verifier/{global-config-SXR6X3OZ.mjs.map → global-config-IXZLY4BS.mjs.map} +0 -0
  93. /package/dist/agent-verifier/{local-files-DAFIR7SN.mjs.map → local-files-OF4QFISU.mjs.map} +0 -0
  94. /package/dist/agent-verifier/{materialize-workspace-PWNT6HQK.mjs.map → materialize-workspace-VS5RHSBO.mjs.map} +0 -0
  95. /package/dist/agent-verifier/{local-typecheck-3JXL2NMG.mjs.map → static-scaffold-C36KROJA.mjs.map} +0 -0
  96. /package/dist/agent-verifier/{reducer-bundle-preflight-3DSXIELT.mjs.map → workspace-dependencies-5HEEKZFP.mjs.map} +0 -0
  97. /package/dist/{agent-verifier/reducer-contract-preflight-FQB7M4PU.mjs.map → global-config-GK2UC2X6.js.map} +0 -0
@@ -14,7 +14,7 @@ import {
14
14
  ensureDir,
15
15
  exists,
16
16
  readJsonFile
17
- } from "./chunk-FFO2IJL3.js";
17
+ } from "./chunk-EQNBQVIW.js";
18
18
  import {
19
19
  __export
20
20
  } from "./chunk-2H7UOFLK.js";
@@ -812,58 +812,77 @@ var ensureProject = (options) => (options.client ?? client).put({
812
812
  ...options.headers
813
813
  }
814
814
  });
815
- var getProjectBySlug = (options) => (options.client ?? client).get({
815
+ var getProjectRepository = (options) => (options.client ?? client).get({
816
816
  security: [{ scheme: "bearer", type: "http" }],
817
- url: "/api/projects/slug/{slug}",
817
+ url: "/api/projects/{projectId}/repository",
818
+ ...options
819
+ });
820
+ var ensureProjectRepository = (options) => (options.client ?? client).put({
821
+ security: [{ scheme: "bearer", type: "http" }],
822
+ url: "/api/projects/{projectId}/repository",
818
823
  ...options
819
824
  });
820
- var createGameRevision = (options) => (options.client ?? client).post({
825
+ var ensureProjectBuild = (options) => (options.client ?? client).post({
821
826
  security: [{ scheme: "bearer", type: "http" }],
822
- url: "/api/projects/{projectId}/revisions",
827
+ url: "/api/projects/{projectId}/builds",
823
828
  ...options,
824
829
  headers: {
825
830
  "Content-Type": "application/json",
826
831
  ...options.headers
827
832
  }
828
833
  });
829
- var getProjectRevisionSources = (options) => (options.client ?? client).get({
834
+ var getProjectCommitStatus = (options) => (options.client ?? client).get({
830
835
  security: [{ scheme: "bearer", type: "http" }],
831
- url: "/api/projects/{projectId}/revisions/{revisionDigest}/sources",
836
+ url: "/api/projects/{projectId}/status/{commitOid}",
832
837
  ...options
833
838
  });
834
- var createProjectSourceBlobUploadSession = (options) => (options.client ?? client).post({
839
+ var createProjectPreview = (options) => (options.client ?? client).post({
835
840
  security: [{ scheme: "bearer", type: "http" }],
836
- url: "/api/projects/{projectId}/source-blobs/upload-sessions",
841
+ url: "/api/projects/{projectId}/previews",
837
842
  ...options,
838
843
  headers: {
839
844
  "Content-Type": "application/json",
840
845
  ...options.headers
841
846
  }
842
847
  });
843
- var queueProjectRevisionCompile = (options) => (options.client ?? client).post({
848
+ var publishProjectRelease = (options) => (options.client ?? client).post({
844
849
  security: [{ scheme: "bearer", type: "http" }],
845
- url: "/api/projects/{projectId}/revisions/{revisionDigest}/compile",
846
- ...options
850
+ url: "/api/projects/{projectId}/releases",
851
+ ...options,
852
+ headers: {
853
+ "Content-Type": "application/json",
854
+ ...options.headers
855
+ }
847
856
  });
848
- var listProjectCompiledResults = (options) => (options.client ?? client).get({
857
+ var getCurrentProjectRelease = (options) => (options.client ?? client).get({
849
858
  security: [{ scheme: "bearer", type: "http" }],
850
- url: "/api/projects/{projectId}/compiled-results",
859
+ url: "/api/projects/{projectId}/releases/current",
851
860
  ...options
852
861
  });
853
- var getProjectCompiledResult = (options) => (options.client ?? client).get({
862
+ var getProjectBySlug = (options) => (options.client ?? client).get({
854
863
  security: [{ scheme: "bearer", type: "http" }],
855
- url: "/api/projects/{projectId}/compiled-results/{compiledResultId}",
864
+ url: "/api/projects/slug/{slug}",
856
865
  ...options
857
866
  });
858
- var uploadProjectInitialProjection = (options) => (options.client ?? client).put({
867
+ var createProjectSourceBlobUploadSession = (options) => (options.client ?? client).post({
859
868
  security: [{ scheme: "bearer", type: "http" }],
860
- url: "/api/projects/{projectId}/preview/initial-projection",
869
+ url: "/api/projects/{projectId}/source-blobs/upload-sessions",
861
870
  ...options,
862
871
  headers: {
863
872
  "Content-Type": "application/json",
864
873
  ...options.headers
865
874
  }
866
875
  });
876
+ var listProjectCompiledResults = (options) => (options.client ?? client).get({
877
+ security: [{ scheme: "bearer", type: "http" }],
878
+ url: "/api/projects/{projectId}/compiled-results",
879
+ ...options
880
+ });
881
+ var getProjectCompiledResult = (options) => (options.client ?? client).get({
882
+ security: [{ scheme: "bearer", type: "http" }],
883
+ url: "/api/projects/{projectId}/compiled-results/{compiledResultId}",
884
+ ...options
885
+ });
867
886
  var ensureProjectDevCompile = (options) => (options.client ?? client).post({
868
887
  security: [{ scheme: "bearer", type: "http" }],
869
888
  url: "/api/projects/{projectId}/dev-compiles/ensure",
@@ -882,16 +901,6 @@ var createProjectSession = (options) => (options.client ?? client).post({
882
901
  ...options.headers
883
902
  }
884
903
  });
885
- var getProjectSources = (options) => (options.client ?? client).get({
886
- security: [{ scheme: "bearer", type: "http" }],
887
- url: "/api/projects/{projectId}/sources",
888
- ...options
889
- });
890
- var queryWorkshopRulebook = (options) => (options.client ?? client).get({
891
- security: [{ scheme: "bearer", type: "http" }],
892
- url: "/api/workshop/query",
893
- ...options
894
- });
895
904
  var getJob = (options) => (options.client ?? client).get({
896
905
  security: [{ scheme: "bearer", type: "http" }],
897
906
  url: "/api/jobs/{jobId}",
@@ -911,11 +920,6 @@ var getSessionSnapshot = (options) => (options.client ?? client).get({
911
920
  url: "/api/sessions/{sessionId}/snapshot",
912
921
  ...options
913
922
  });
914
- var getSessionEventBatch = (options) => (options.client ?? client).get({
915
- security: [{ scheme: "bearer", type: "http" }],
916
- url: "/api/sessions/{sessionId}/event-batches",
917
- ...options
918
- });
919
923
  var startGame = (options) => (options.client ?? client).post({
920
924
  security: [{ scheme: "bearer", type: "http" }],
921
925
  url: "/api/sessions/{sessionId}/start",
@@ -15606,11 +15610,197 @@ var zUpdateProjectRequest = external_exports.object({
15606
15610
  public: external_exports.optional(external_exports.boolean()),
15607
15611
  metadata: external_exports.optional(zGameMetadata)
15608
15612
  });
15613
+ var zProjectRepositoryProvisioningState = external_exports.enum([
15614
+ "REQUESTED",
15615
+ "PROVISIONING",
15616
+ "READY",
15617
+ "ERROR",
15618
+ "DELETING",
15619
+ "DELETED"
15620
+ ]);
15609
15621
  var zProjectRepository = external_exports.object({
15610
15622
  repoBindingId: external_exports.uuid(),
15611
15623
  cloneUrl: external_exports.url(),
15612
15624
  defaultBranch: external_exports.string(),
15613
- headCommit: external_exports.string()
15625
+ headCommit: external_exports.string(),
15626
+ provisioningState: zProjectRepositoryProvisioningState,
15627
+ desiredGeneration: external_exports.coerce.bigint().min(BigInt("-9223372036854775808"), { error: "Invalid value: Expected int64 to be >= -9223372036854775808" }).max(BigInt("9223372036854775807"), { error: "Invalid value: Expected int64 to be <= 9223372036854775807" }),
15628
+ observedGeneration: external_exports.coerce.bigint().min(BigInt("-9223372036854775808"), { error: "Invalid value: Expected int64 to be >= -9223372036854775808" }).max(BigInt("9223372036854775807"), { error: "Invalid value: Expected int64 to be <= 9223372036854775807" }),
15629
+ retryable: external_exports.boolean(),
15630
+ errorCode: external_exports.optional(external_exports.string())
15631
+ });
15632
+ var zProjectBuildTargetProfile = external_exports.enum(["preview", "release"]);
15633
+ var zEnsureProjectBuildRequest = external_exports.object({
15634
+ commitOid: external_exports.string().regex(/^[a-f0-9]{40,64}$/),
15635
+ targetProfile: zProjectBuildTargetProfile
15636
+ });
15637
+ var zProjectCompiledArtifactStatus = external_exports.enum([
15638
+ "PENDING",
15639
+ "SUCCEEDED",
15640
+ "FAILED"
15641
+ ]);
15642
+ var zProjectBuild = external_exports.object({
15643
+ buildRecipeId: external_exports.uuid(),
15644
+ buildRecipeDigest: external_exports.string().regex(/^sha256:[a-f0-9]{64}$/),
15645
+ gameRevisionId: external_exports.uuid(),
15646
+ gitSourceRevisionId: external_exports.uuid(),
15647
+ commitOid: external_exports.string(),
15648
+ treeOid: external_exports.string(),
15649
+ targetProfile: zProjectBuildTargetProfile,
15650
+ compiledArtifactId: external_exports.uuid(),
15651
+ compiledArtifactStatus: zProjectCompiledArtifactStatus,
15652
+ compiledArtifactDigest: external_exports.union([
15653
+ external_exports.string(),
15654
+ external_exports.null()
15655
+ ]),
15656
+ storageKey: external_exports.union([
15657
+ external_exports.string(),
15658
+ external_exports.null()
15659
+ ]),
15660
+ workJobId: external_exports.union([
15661
+ external_exports.uuid(),
15662
+ external_exports.null()
15663
+ ]),
15664
+ enqueued: external_exports.boolean()
15665
+ });
15666
+ var zProjectCommitSourceValidationStatus = external_exports.enum([
15667
+ "PENDING",
15668
+ "SUCCEEDED",
15669
+ "FAILED"
15670
+ ]);
15671
+ var zProjectCommitSourceStatus = external_exports.object({
15672
+ observed: external_exports.boolean(),
15673
+ gitSourceRevisionId: external_exports.union([
15674
+ external_exports.uuid(),
15675
+ external_exports.null()
15676
+ ]),
15677
+ treeOid: external_exports.union([
15678
+ external_exports.string(),
15679
+ external_exports.null()
15680
+ ]),
15681
+ refName: external_exports.union([
15682
+ external_exports.string(),
15683
+ external_exports.null()
15684
+ ]),
15685
+ validationStatus: external_exports.union([
15686
+ zProjectCommitSourceValidationStatus,
15687
+ external_exports.null()
15688
+ ]),
15689
+ validationDiagnostics: external_exports.union([
15690
+ external_exports.record(external_exports.string(), external_exports.unknown()),
15691
+ external_exports.null()
15692
+ ]),
15693
+ observedAt: external_exports.union([
15694
+ external_exports.iso.datetime(),
15695
+ external_exports.null()
15696
+ ])
15697
+ });
15698
+ var zProjectCommitGameRevisionStatus = external_exports.object({
15699
+ gameRevisionId: external_exports.union([
15700
+ external_exports.uuid(),
15701
+ external_exports.null()
15702
+ ]),
15703
+ revisionDigest: external_exports.union([
15704
+ external_exports.string(),
15705
+ external_exports.null()
15706
+ ]),
15707
+ sourceTreeHash: external_exports.union([
15708
+ external_exports.string(),
15709
+ external_exports.null()
15710
+ ])
15711
+ });
15712
+ var zProjectCommitBuildStatus = external_exports.object({
15713
+ targetProfile: zProjectBuildTargetProfile,
15714
+ buildRecipeDigest: external_exports.string().regex(/^sha256:[a-f0-9]{64}$/),
15715
+ buildRecipe: external_exports.record(external_exports.string(), external_exports.unknown()),
15716
+ buildRecipeId: external_exports.union([
15717
+ external_exports.uuid(),
15718
+ external_exports.null()
15719
+ ]),
15720
+ compiledArtifactId: external_exports.union([
15721
+ external_exports.uuid(),
15722
+ external_exports.null()
15723
+ ]),
15724
+ compiledArtifactStatus: external_exports.union([
15725
+ zProjectCompiledArtifactStatus,
15726
+ external_exports.null()
15727
+ ]),
15728
+ compiledArtifactDigest: external_exports.union([
15729
+ external_exports.string(),
15730
+ external_exports.null()
15731
+ ]),
15732
+ storageKey: external_exports.union([
15733
+ external_exports.string(),
15734
+ external_exports.null()
15735
+ ]),
15736
+ diagnostics: external_exports.union([
15737
+ external_exports.record(external_exports.string(), external_exports.unknown()),
15738
+ external_exports.null()
15739
+ ])
15740
+ });
15741
+ var zProjectPreviewStatus = external_exports.enum([
15742
+ "PENDING_RETENTION",
15743
+ "ACTIVE",
15744
+ "EXPIRED"
15745
+ ]);
15746
+ var zProjectPreview = external_exports.object({
15747
+ previewId: external_exports.uuid(),
15748
+ gameRevisionId: external_exports.uuid(),
15749
+ compiledArtifactId: external_exports.uuid(),
15750
+ status: zProjectPreviewStatus,
15751
+ sourceRef: external_exports.union([
15752
+ external_exports.string(),
15753
+ external_exports.null()
15754
+ ]),
15755
+ retentionRef: external_exports.union([
15756
+ external_exports.string(),
15757
+ external_exports.null()
15758
+ ]),
15759
+ expiresAt: external_exports.iso.datetime(),
15760
+ createdAt: external_exports.iso.datetime()
15761
+ });
15762
+ var zProjectReleaseStatus = external_exports.enum([
15763
+ "PENDING_RETENTION",
15764
+ "ACTIVE",
15765
+ "REVOKED"
15766
+ ]);
15767
+ var zProjectCommitReleaseStatus = external_exports.object({
15768
+ releaseId: external_exports.uuid(),
15769
+ gameRevisionId: external_exports.uuid(),
15770
+ compiledArtifactId: external_exports.uuid(),
15771
+ status: zProjectReleaseStatus,
15772
+ retentionRef: external_exports.union([
15773
+ external_exports.string(),
15774
+ external_exports.null()
15775
+ ]),
15776
+ current: external_exports.boolean(),
15777
+ createdAt: external_exports.iso.datetime()
15778
+ });
15779
+ var zProjectCommitStatus = external_exports.object({
15780
+ projectId: external_exports.uuid(),
15781
+ commitOid: external_exports.string().regex(/^[a-f0-9]{40,64}$/),
15782
+ source: zProjectCommitSourceStatus,
15783
+ gameRevision: zProjectCommitGameRevisionStatus,
15784
+ builds: external_exports.array(zProjectCommitBuildStatus),
15785
+ previews: external_exports.array(zProjectPreview),
15786
+ releases: external_exports.array(zProjectCommitReleaseStatus)
15787
+ });
15788
+ var zCreateProjectPreviewRequest = external_exports.object({
15789
+ commitOid: external_exports.string().regex(/^[a-f0-9]{40,64}$/)
15790
+ });
15791
+ var zPublishProjectReleaseRequest = external_exports.object({
15792
+ commitOid: external_exports.string().regex(/^[a-f0-9]{40,64}$/)
15793
+ });
15794
+ var zProjectRelease = external_exports.object({
15795
+ releaseId: external_exports.uuid(),
15796
+ gameRevisionId: external_exports.uuid(),
15797
+ compiledArtifactId: external_exports.uuid(),
15798
+ status: zProjectReleaseStatus,
15799
+ retentionRef: external_exports.union([
15800
+ external_exports.string(),
15801
+ external_exports.null()
15802
+ ]),
15803
+ createdAt: external_exports.iso.datetime()
15614
15804
  });
15615
15805
  var zGameRevisionSourceFile = external_exports.object({
15616
15806
  path: external_exports.string().min(1),
@@ -15625,62 +15815,6 @@ var zPlayersDefinition = external_exports.object({
15625
15815
  maxPlayers: external_exports.int().gte(1).lte(10),
15626
15816
  optimalPlayers: external_exports.optional(external_exports.int().gte(1).lte(10))
15627
15817
  });
15628
- var zJsonValue = external_exports.union([
15629
- external_exports.string(),
15630
- external_exports.int(),
15631
- external_exports.number(),
15632
- external_exports.boolean(),
15633
- external_exports.null(),
15634
- external_exports.array(external_exports.lazy(() => zJsonValue)),
15635
- external_exports.record(external_exports.string(), external_exports.lazy(() => zJsonValue))
15636
- ]);
15637
- var zPropertySchema = external_exports.object({
15638
- type: external_exports.enum([
15639
- "string",
15640
- "integer",
15641
- "number",
15642
- "boolean",
15643
- "zoneId",
15644
- "cardId",
15645
- "playerId",
15646
- "boardId",
15647
- "edgeId",
15648
- "vertexId",
15649
- "spaceId",
15650
- "pieceId",
15651
- "dieId",
15652
- "resourceId",
15653
- "array",
15654
- "object",
15655
- "record",
15656
- "enum"
15657
- ]),
15658
- description: external_exports.optional(external_exports.string()),
15659
- optional: external_exports.optional(external_exports.boolean()).default(false),
15660
- nullable: external_exports.optional(external_exports.boolean()).default(false),
15661
- default: external_exports.optional(zJsonValue),
15662
- get items() {
15663
- return external_exports.optional(external_exports.lazy(() => zPropertySchema));
15664
- },
15665
- get properties() {
15666
- return external_exports.optional(external_exports.record(external_exports.string(), external_exports.lazy(() => zPropertySchema)));
15667
- },
15668
- enums: external_exports.optional(external_exports.array(external_exports.string())),
15669
- get values() {
15670
- return external_exports.optional(external_exports.lazy(() => zPropertySchema));
15671
- }
15672
- });
15673
- var zObjectSchema = external_exports.object({
15674
- properties: external_exports.record(external_exports.string(), zPropertySchema)
15675
- });
15676
- var zCardPropertySchemaVariants = external_exports.object({
15677
- shared: external_exports.optional(external_exports.record(external_exports.string(), zPropertySchema)),
15678
- variants: external_exports.record(external_exports.string(), zObjectSchema)
15679
- });
15680
- var zCardPropertySchema = external_exports.union([
15681
- zObjectSchema,
15682
- zCardPropertySchemaVariants
15683
- ]);
15684
15818
  var zDetachedHomeSpec = external_exports.object({
15685
15819
  type: external_exports.enum(["detached"])
15686
15820
  });
@@ -15765,6 +15899,62 @@ var zPresetCardSetDefinition = external_exports.object({
15765
15899
  type: external_exports.enum(["preset"]),
15766
15900
  defaultHome: zComponentHomeSpec
15767
15901
  });
15902
+ var zJsonValue = external_exports.union([
15903
+ external_exports.string(),
15904
+ external_exports.int(),
15905
+ external_exports.number(),
15906
+ external_exports.boolean(),
15907
+ external_exports.null(),
15908
+ external_exports.array(external_exports.lazy(() => zJsonValue)),
15909
+ external_exports.record(external_exports.string(), external_exports.lazy(() => zJsonValue))
15910
+ ]);
15911
+ var zPropertySchema = external_exports.object({
15912
+ type: external_exports.enum([
15913
+ "string",
15914
+ "integer",
15915
+ "number",
15916
+ "boolean",
15917
+ "zoneId",
15918
+ "cardId",
15919
+ "playerId",
15920
+ "boardId",
15921
+ "edgeId",
15922
+ "vertexId",
15923
+ "spaceId",
15924
+ "pieceId",
15925
+ "dieId",
15926
+ "resourceId",
15927
+ "array",
15928
+ "object",
15929
+ "record",
15930
+ "enum"
15931
+ ]),
15932
+ description: external_exports.optional(external_exports.string()),
15933
+ optional: external_exports.optional(external_exports.boolean()).default(false),
15934
+ nullable: external_exports.optional(external_exports.boolean()).default(false),
15935
+ default: external_exports.optional(zJsonValue),
15936
+ get items() {
15937
+ return external_exports.optional(external_exports.lazy(() => zPropertySchema));
15938
+ },
15939
+ get properties() {
15940
+ return external_exports.optional(external_exports.record(external_exports.string(), external_exports.lazy(() => zPropertySchema)));
15941
+ },
15942
+ enums: external_exports.optional(external_exports.array(external_exports.string())),
15943
+ get values() {
15944
+ return external_exports.optional(external_exports.lazy(() => zPropertySchema));
15945
+ }
15946
+ });
15947
+ var zObjectSchema = external_exports.object({
15948
+ properties: external_exports.record(external_exports.string(), zPropertySchema)
15949
+ });
15950
+ var zCardPropertySchemaVariants = external_exports.object({
15951
+ shared: external_exports.optional(external_exports.record(external_exports.string(), zPropertySchema)),
15952
+ variants: external_exports.record(external_exports.string(), zObjectSchema)
15953
+ });
15954
+ var zCardPropertySchema = external_exports.union([
15955
+ zObjectSchema,
15956
+ zCardPropertySchemaVariants
15957
+ ]);
15768
15958
  var zComponentVisibilitySpec = external_exports.object({
15769
15959
  faceUp: external_exports.optional(external_exports.boolean()).default(true),
15770
15960
  visibleTo: external_exports.optional(external_exports.array(external_exports.string()))
@@ -16797,14 +16987,47 @@ var zClosePerfRunRequest = external_exports.object({
16797
16987
  cleanupRequested: external_exports.optional(external_exports.boolean()).default(true),
16798
16988
  observationBundlePath: external_exports.optional(external_exports.string().max(1e3))
16799
16989
  });
16990
+ var zGameOutcomeReason = external_exports.object({
16991
+ code: external_exports.string().min(1),
16992
+ message: external_exports.optional(external_exports.string().min(1))
16993
+ });
16994
+ var zGameOutcomeResult = external_exports.enum([
16995
+ "win",
16996
+ "draw",
16997
+ "loss",
16998
+ "eliminated"
16999
+ ]);
17000
+ var zGameOutcomeScoreComponent = external_exports.object({
17001
+ id: external_exports.string().min(1),
17002
+ label: external_exports.string().min(1),
17003
+ value: external_exports.number()
17004
+ });
17005
+ var zGameOutcomeTieBreak = external_exports.object({
17006
+ id: external_exports.string().min(1),
17007
+ label: external_exports.string().min(1),
17008
+ value: external_exports.union([
17009
+ external_exports.number(),
17010
+ external_exports.string().min(1)
17011
+ ])
17012
+ });
17013
+ var zGameOutcomeStanding = external_exports.object({
17014
+ playerId: external_exports.string().min(1),
17015
+ rank: external_exports.int().gte(1),
17016
+ result: zGameOutcomeResult,
17017
+ score: external_exports.optional(external_exports.number()),
17018
+ scoreBreakdown: external_exports.optional(external_exports.array(zGameOutcomeScoreComponent)),
17019
+ tieBreaks: external_exports.optional(external_exports.array(zGameOutcomeTieBreak))
17020
+ });
17021
+ var zGameOutcome = external_exports.object({
17022
+ reason: zGameOutcomeReason,
17023
+ standings: external_exports.array(zGameOutcomeStanding).min(1)
17024
+ });
16800
17025
  var zSessionEndedCallbackRequest = external_exports.object({
16801
17026
  generation: external_exports.coerce.bigint().gte(BigInt(0)).max(BigInt("9223372036854775807"), { error: "Invalid value: Expected int64 to be <= 9223372036854775807" }),
16802
17027
  version: external_exports.coerce.bigint().gte(BigInt(0)).max(BigInt("9223372036854775807"), { error: "Invalid value: Expected int64 to be <= 9223372036854775807" }),
16803
17028
  stateHash: external_exports.string().min(1),
16804
17029
  endedAt: external_exports.iso.datetime(),
16805
- winnerPlayerId: external_exports.optional(external_exports.string().min(1)),
16806
- finalScores: external_exports.optional(external_exports.record(external_exports.string(), external_exports.int())),
16807
- reason: external_exports.string().min(1)
17030
+ outcome: zGameOutcome
16808
17031
  });
16809
17032
  var zSessionEndedCallbackResponse = external_exports.object({
16810
17033
  applied: external_exports.boolean()
@@ -17246,6 +17469,13 @@ var zEnsureProjectData = external_exports.object({
17246
17469
  }),
17247
17470
  query: external_exports.optional(external_exports.never())
17248
17471
  });
17472
+ var zGetProjectRepositoryData = external_exports.object({
17473
+ body: external_exports.optional(external_exports.never()),
17474
+ path: external_exports.object({
17475
+ projectId: external_exports.uuid()
17476
+ }),
17477
+ query: external_exports.optional(external_exports.never())
17478
+ });
17249
17479
  var zEnsureProjectRepositoryData = external_exports.object({
17250
17480
  body: external_exports.optional(external_exports.never()),
17251
17481
  path: external_exports.object({
@@ -17253,6 +17483,57 @@ var zEnsureProjectRepositoryData = external_exports.object({
17253
17483
  }),
17254
17484
  query: external_exports.optional(external_exports.never())
17255
17485
  });
17486
+ var zRetryProjectRepositoryReconciliationData = external_exports.object({
17487
+ body: external_exports.optional(external_exports.never()),
17488
+ path: external_exports.object({
17489
+ projectId: external_exports.uuid()
17490
+ }),
17491
+ query: external_exports.optional(external_exports.never())
17492
+ });
17493
+ var zEnsureProjectBuildData = external_exports.object({
17494
+ body: zEnsureProjectBuildRequest,
17495
+ path: external_exports.object({
17496
+ projectId: external_exports.uuid()
17497
+ }),
17498
+ query: external_exports.optional(external_exports.never())
17499
+ });
17500
+ var zGetProjectCommitStatusData = external_exports.object({
17501
+ body: external_exports.optional(external_exports.never()),
17502
+ path: external_exports.object({
17503
+ projectId: external_exports.uuid(),
17504
+ commitOid: external_exports.string().regex(/^[a-f0-9]{40,64}$/)
17505
+ }),
17506
+ query: external_exports.optional(external_exports.never())
17507
+ });
17508
+ var zGetProjectBuildData = external_exports.object({
17509
+ body: external_exports.optional(external_exports.never()),
17510
+ path: external_exports.object({
17511
+ projectId: external_exports.uuid(),
17512
+ buildRecipeDigest: external_exports.string().regex(/^sha256:[a-f0-9]{64}$/)
17513
+ }),
17514
+ query: external_exports.optional(external_exports.never())
17515
+ });
17516
+ var zCreateProjectPreviewData = external_exports.object({
17517
+ body: zCreateProjectPreviewRequest,
17518
+ path: external_exports.object({
17519
+ projectId: external_exports.uuid()
17520
+ }),
17521
+ query: external_exports.optional(external_exports.never())
17522
+ });
17523
+ var zPublishProjectReleaseData = external_exports.object({
17524
+ body: zPublishProjectReleaseRequest,
17525
+ path: external_exports.object({
17526
+ projectId: external_exports.uuid()
17527
+ }),
17528
+ query: external_exports.optional(external_exports.never())
17529
+ });
17530
+ var zGetCurrentProjectReleaseData = external_exports.object({
17531
+ body: external_exports.optional(external_exports.never()),
17532
+ path: external_exports.object({
17533
+ projectId: external_exports.uuid()
17534
+ }),
17535
+ query: external_exports.optional(external_exports.never())
17536
+ });
17256
17537
  var zGetProjectBySlugData = external_exports.object({
17257
17538
  body: external_exports.optional(external_exports.never()),
17258
17539
  path: external_exports.object({
@@ -18379,20 +18660,6 @@ async function formatManifestValidationError(projectRoot, manifest) {
18379
18660
  }
18380
18661
  return "";
18381
18662
  }
18382
- function sortJsonKeys(value) {
18383
- if (Array.isArray(value)) {
18384
- return value.map((item) => sortJsonKeys(item));
18385
- }
18386
- if (value && typeof value === "object") {
18387
- return Object.fromEntries(
18388
- Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => [key, sortJsonKeys(item)])
18389
- );
18390
- }
18391
- return value;
18392
- }
18393
- function computeManifestHash(manifest) {
18394
- return hashContent(JSON.stringify(sortJsonKeys(manifest)));
18395
- }
18396
18663
  async function evaluateManifestSource(projectRoot) {
18397
18664
  if (!await workspacePathExists(projectRoot, MANIFEST_FILE)) {
18398
18665
  throw new Error(`Missing ${MANIFEST_FILE}.`);
@@ -18558,37 +18825,11 @@ function isDynamicSeedPath(filePath) {
18558
18825
  (pattern) => path12.startsWith(pattern.prefix) && path12.endsWith(pattern.suffix)
18559
18826
  );
18560
18827
  }
18561
- function isCliStaticPath(filePath) {
18562
- const path12 = normalizeOwnedProjectPath(filePath);
18563
- if (path12 === null) return false;
18564
- if (SCAFFOLD_OWNERSHIP.cliStatic.exactFiles.includes(path12)) return true;
18565
- return SCAFFOLD_OWNERSHIP.cliStatic.directoryPrefixes.some(
18566
- (prefix) => path12.startsWith(prefix)
18567
- );
18568
- }
18569
- function isLibraryPath(filePath) {
18570
- return isDynamicGeneratedPath(filePath) || isCliStaticPath(filePath);
18571
- }
18572
18828
  var PRESERVED_USER_FILES = new Set(
18573
18829
  SCAFFOLD_OWNERSHIP.preservedUserFiles
18574
18830
  );
18575
18831
 
18576
18832
  // src/services/project/local-files.ts
18577
- async function writeSourceFiles(rootDir, files) {
18578
- for (const [relativePath, content] of Object.entries(files)) {
18579
- if (content === null || content === void 0) continue;
18580
- await writeWorkspaceTextFile(rootDir, relativePath, content);
18581
- }
18582
- }
18583
- async function removeExtraneousFiles(rootDir, keep) {
18584
- const localFiles = await collectLocalFiles(rootDir);
18585
- for (const filePath of Object.keys(localFiles)) {
18586
- if (filePath === MANIFEST_FILE || filePath === RULE_FILE) continue;
18587
- if (!keep.has(filePath)) {
18588
- await unlinkWorkspaceFile(rootDir, filePath);
18589
- }
18590
- }
18591
- }
18592
18833
  async function collectLocalFiles(rootDir) {
18593
18834
  const result = {};
18594
18835
  await walkDir(rootDir, rootDir, result);
@@ -18645,45 +18886,6 @@ async function writeSnapshotFromFiles(rootDir, files) {
18645
18886
  }
18646
18887
  );
18647
18888
  }
18648
- function isIgnorableLocalDiffPath(filePath) {
18649
- return filePath.startsWith("test/generated/") || filePath.startsWith(".playwright-cli/");
18650
- }
18651
- async function getLocalDiff(rootDir) {
18652
- const snapshot = await readWorkspaceTextFile(
18653
- rootDir,
18654
- `${PROJECT_DIR_NAME}/${SNAPSHOT_FILE}`
18655
- ).then((text) => JSON.parse(text)).catch(() => null);
18656
- if (!snapshot) {
18657
- return { modified: [], added: [], deleted: [] };
18658
- }
18659
- const files = await collectLocalFiles(rootDir);
18660
- const currentHashes = {};
18661
- for (const [filePath, content] of Object.entries(files)) {
18662
- if (filePath.startsWith(`${PROJECT_DIR_NAME}/`)) continue;
18663
- if (isIgnorableLocalDiffPath(filePath)) continue;
18664
- if (isDynamicGeneratedPath(filePath)) continue;
18665
- currentHashes[filePath] = hashContent(content);
18666
- }
18667
- const modified = [];
18668
- const added = [];
18669
- const deleted = [];
18670
- for (const [filePath, hash2] of Object.entries(currentHashes)) {
18671
- const prevHash = snapshot.files[filePath];
18672
- if (!prevHash) {
18673
- added.push(filePath);
18674
- } else if (prevHash !== hash2) {
18675
- modified.push(filePath);
18676
- }
18677
- }
18678
- for (const filePath of Object.keys(snapshot.files)) {
18679
- if (isIgnorableLocalDiffPath(filePath)) continue;
18680
- if (isDynamicGeneratedPath(filePath)) continue;
18681
- if (!currentHashes[filePath]) {
18682
- deleted.push(filePath);
18683
- }
18684
- }
18685
- return { modified, added, deleted };
18686
- }
18687
18889
 
18688
18890
  // src/services/project/workspace-codegen.ts
18689
18891
  var STARTER_UI_SEED_FILES = /* @__PURE__ */ new Set([
@@ -18788,17 +18990,6 @@ function updateProjectAuthoringState(projectConfig, authoring) {
18788
18990
  }
18789
18991
  };
18790
18992
  }
18791
- function clearProjectPendingAuthoringSync(projectConfig) {
18792
- const authoring = getProjectAuthoringState(projectConfig);
18793
- if (!authoring.pendingSync) {
18794
- return projectConfig;
18795
- }
18796
- const { pendingSync: _pendingSync, ...rest } = authoring;
18797
- return {
18798
- ...projectConfig,
18799
- authoring: rest
18800
- };
18801
- }
18802
18993
  function updateProjectCompileState(projectConfig, compile) {
18803
18994
  return {
18804
18995
  ...projectConfig,
@@ -18965,6 +19156,17 @@ async function updateProjectState(rootDir, config2) {
18965
19156
  { mode: 384 }
18966
19157
  );
18967
19158
  }
19159
+ async function updateProjectEnvironmentState(rootDir, config2) {
19160
+ const dir = path8.join(rootDir, PROJECT_DIR_NAME);
19161
+ await ensureDir(dir);
19162
+ const existingState = await loadProjectEnvironmentState(rootDir);
19163
+ await atomicWriteFile(
19164
+ path8.join(dir, PROJECT_STATE_FILE),
19165
+ `${JSON.stringify(normalizeProjectState(config2, existingState), null, 2)}
19166
+ `,
19167
+ { mode: 384 }
19168
+ );
19169
+ }
18968
19170
  async function findProjectRoot(startDir) {
18969
19171
  let current = path8.resolve(startDir);
18970
19172
  for (let i = 0; i < 25; i++) {
@@ -18995,7 +19197,7 @@ var AUTHORING_RELEASE_SET = {
18995
19197
  "packages": {
18996
19198
  "cli": {
18997
19199
  "name": "@dreamboard-games/cli",
18998
- "version": "0.1.30-alpha.19"
19200
+ "version": "0.1.30-alpha.20"
18999
19201
  },
19000
19202
  "sdk": {
19001
19203
  "name": "@dreamboard-games/sdk",
@@ -19025,7 +19227,7 @@ var AUTHORING_RELEASE_SET = {
19025
19227
  "portable": true
19026
19228
  },
19027
19229
  "packageManager": "pnpm@10.4.1",
19028
- "releaseSetId": "sha256:94f9e944361da712ec7f0b420643d3690e73b93a2c23d3a893b0f4183a93a847"
19230
+ "releaseSetId": "sha256:a587040081f3664b0c55128b9b52af76f53daaee441d69486a61540c7e107bc8"
19029
19231
  };
19030
19232
 
19031
19233
  // src/templates/testing-types-content.ts
@@ -19336,7 +19538,6 @@ var FRAMEWORK_PNPM_OVERRIDES = {
19336
19538
  };
19337
19539
 
19338
19540
  // src/services/project/static-scaffold.ts
19339
- var DREAMBOARD_SYNC_COMMAND = "dreamboard sync";
19340
19541
  var DREAMBOARD_GITIGNORE_BLOCK = [
19341
19542
  "# Dreamboard local state",
19342
19543
  ".dreamboard/state.json",
@@ -19463,38 +19664,6 @@ async function ensureDreamboardGitignore(projectRoot) {
19463
19664
  ` : ""}${DREAMBOARD_GITIGNORE_BLOCK}`
19464
19665
  );
19465
19666
  }
19466
- async function assertCliStaticScaffoldComplete(projectRoot, deletedPaths = []) {
19467
- const expectedEntries = await getExpectedStaticEntries(projectRoot);
19468
- const missingOrBlankPaths = [];
19469
- for (const entry of expectedEntries) {
19470
- const content = await readWorkspaceTextFileIfExists(
19471
- projectRoot,
19472
- entry.targetPath
19473
- );
19474
- if (content === null || content.trim().length === 0) {
19475
- missingOrBlankPaths.push(entry.targetPath);
19476
- }
19477
- }
19478
- const staticPaths = new Set(expectedEntries.map((entry) => entry.targetPath));
19479
- const deletedStaticPaths = deletedPaths.map(normalizeOwnedProjectPath).filter(
19480
- (filePath) => filePath !== null && staticPaths.has(filePath)
19481
- ).sort();
19482
- if (missingOrBlankPaths.length === 0 && deletedStaticPaths.length === 0) {
19483
- return;
19484
- }
19485
- const problems = [];
19486
- if (missingOrBlankPaths.length > 0) {
19487
- problems.push(
19488
- `missing or blank: ${summarizePaths(missingOrBlankPaths.sort())}`
19489
- );
19490
- }
19491
- if (deletedStaticPaths.length > 0) {
19492
- problems.push(`deleted: ${summarizePaths(deletedStaticPaths)}`);
19493
- }
19494
- throw new Error(
19495
- `CLI static scaffold is incomplete (${problems.join("; ")}). Run \`${DREAMBOARD_SYNC_COMMAND}\` to refresh the scaffold before compiling.`
19496
- );
19497
- }
19498
19667
  async function writeFrameworkStaticFiles(projectRoot, mode, options) {
19499
19668
  const assetEntries = await getStaticAssetEntries();
19500
19669
  for (const entry of assetEntries) {
@@ -19558,7 +19727,7 @@ async function writeTestReadme(projectRoot) {
19558
19727
  await writeWorkspaceTextFile(
19559
19728
  projectRoot,
19560
19729
  "test/README.md",
19561
- "# Dreamboard Test Workspace\n\nTypeScript bases live in `test/bases/*.base.ts` and scenarios live in `test/scenarios/*.scenario.ts`.\n\n1. Define reusable seeded bases with `defineBase({ id, seed, players, setupProfileId?, setup })`.\n2. Define scenarios with `defineScenario({ id, from, when, then })`.\n3. Scenario assertions can read `players()`, `state()`, `view(playerId)`, and `interactions(playerId)`.\n4. Generate deterministic base snapshots: `dreamboard test generate`.\n5. Run tests: `dreamboard test run`.\n\nImport test helpers from `../testing-types`.\n\nGenerated artifacts are written to `test/generated/*` and should not be edited manually.\n"
19730
+ "# Dreamboard Test Workspace\n\nTypeScript bases live in `test/bases/*.base.ts` and scenarios live in `test/scenarios/*.scenario.ts`.\n\n1. Define reusable seeded bases with `defineBase({ id, seed, players, setupProfileId?, setup })`.\n2. Define scenarios with `defineScenario({ id, from, when, then })`.\n3. Scenario assertions can read `players()`, `state()`, `view(playerId)`, and `interactions(playerId)`.\n4. Run deterministic scenario tests: `dreamboard test`.\n5. Run a single scenario when needed: `dreamboard test --scenario <scenario-id>`.\n\nImport test helpers from `../testing-types`.\n\nGenerated artifacts are written to `test/generated/*` and should not be edited manually.\n"
19562
19731
  );
19563
19732
  }
19564
19733
  async function writeInitialBase(projectRoot, mode, players) {
@@ -19852,18 +20021,6 @@ async function getDynamicStaticEntries(projectRoot, mode, options = {}) {
19852
20021
  }
19853
20022
  return entries;
19854
20023
  }
19855
- async function getExpectedStaticEntries(projectRoot) {
19856
- const entries = [
19857
- ...(await getStaticAssetEntries()).filter(
19858
- (entry) => entry.targetPath !== ".npmrc"
19859
- ),
19860
- ...await getDynamicStaticEntries(projectRoot, "update")
19861
- ];
19862
- entries.sort(
19863
- (left, right) => left.targetPath.localeCompare(right.targetPath)
19864
- );
19865
- return entries;
19866
- }
19867
20024
  async function walkFiles(rootDir) {
19868
20025
  const files = [];
19869
20026
  const stack = [rootDir];
@@ -19965,12 +20122,6 @@ function toWorkspaceProjectPath(projectRoot, filePath) {
19965
20122
  }
19966
20123
  return projectPath;
19967
20124
  }
19968
- function summarizePaths(paths) {
19969
- const maxShown = 5;
19970
- const shown = paths.slice(0, maxShown).join(", ");
19971
- if (paths.length <= maxShown) return shown;
19972
- return `${shown}, and ${paths.length - maxShown} more`;
19973
- }
19974
20125
 
19975
20126
  // src/services/project/workspace-dependencies.ts
19976
20127
  import crypto2 from "crypto";
@@ -19986,23 +20137,23 @@ var DEPENDENCY_SETUP_DOCS_PATH = "/docs/reference/dependency-setup";
19986
20137
  var DEPENDENCY_SETUP_DOCS_URL = `${DEFAULT_WEB_BASE_URL}${DEPENDENCY_SETUP_DOCS_PATH}`;
19987
20138
  function buildMissingDependencyToolingMessage() {
19988
20139
  return [
19989
- "Dreamboard needs dependency tooling to finish `dreamboard sync`.",
19990
- "Use Node 24+ with Corepack enabled, then run `dreamboard sync` again.",
20140
+ "Dreamboard needs dependency tooling to prepare this workspace.",
20141
+ "Use Node 24+ with Corepack enabled, then rerun the command.",
19991
20142
  "If Corepack is unavailable on this machine, install pnpm globally with `npm install -g pnpm`.",
19992
20143
  `Help: ${DEPENDENCY_SETUP_DOCS_URL}`
19993
20144
  ].join("\n");
19994
20145
  }
19995
20146
  function buildPackageLockConflictMessage() {
19996
20147
  return [
19997
- "Dreamboard manages workspace dependencies during `dreamboard sync`.",
20148
+ "Dreamboard manages workspace dependencies during project setup.",
19998
20149
  "This workspace has an npm lockfile that conflicts with Dreamboard-managed dependencies.",
19999
- "Remove `package-lock.json` and run `dreamboard sync` again.",
20150
+ "Remove `package-lock.json` and rerun the command.",
20000
20151
  `Help: ${DEPENDENCY_SETUP_DOCS_URL}`
20001
20152
  ].join("\n");
20002
20153
  }
20003
20154
  function buildMissingGeneratedLockfileMessage() {
20004
20155
  return [
20005
- "Dreamboard could not finish preparing workspace dependencies during `dreamboard sync`.",
20156
+ "Dreamboard could not finish preparing workspace dependencies.",
20006
20157
  "Diagnostic: `pnpm-lock.yaml` was not created.",
20007
20158
  `Help: ${DEPENDENCY_SETUP_DOCS_URL}`
20008
20159
  ].join("\n");
@@ -20010,7 +20161,7 @@ function buildMissingGeneratedLockfileMessage() {
20010
20161
  function buildDependencyPreparationFailureMessage(options) {
20011
20162
  const details = options.output?.trim();
20012
20163
  return [
20013
- `Dreamboard could not finish preparing workspace dependencies during \`dreamboard sync\`${options.exitCode != null ? ` (exit code ${options.exitCode})` : ""}.`,
20164
+ `Dreamboard could not finish preparing workspace dependencies${options.exitCode != null ? ` (exit code ${options.exitCode})` : ""}.`,
20014
20165
  details ? `Diagnostic output:
20015
20166
  ${details}` : null,
20016
20167
  `Help: ${DEPENDENCY_SETUP_DOCS_URL}`
@@ -20052,6 +20203,24 @@ async function installWorkspaceDependencies(projectRoot, _options = {}) {
20052
20203
  const result = await reconcileWorkspaceDependencies(projectRoot);
20053
20204
  return result.required;
20054
20205
  }
20206
+ async function installFrozenWorkspaceDependencies(projectRoot) {
20207
+ const packageJsonPath = path10.join(projectRoot, "package.json");
20208
+ if (!await pathExists(packageJsonPath)) {
20209
+ return false;
20210
+ }
20211
+ await assertNoNpmLockfileConflict(projectRoot);
20212
+ await assertPnpmLockfilePresent(projectRoot);
20213
+ await runPackageManagerCommand(projectRoot, {
20214
+ args: [
20215
+ "install",
20216
+ "--ignore-workspace",
20217
+ "--frozen-lockfile",
20218
+ "--ignore-scripts",
20219
+ "--config.shared-workspace-lockfile=false"
20220
+ ]
20221
+ });
20222
+ return true;
20223
+ }
20055
20224
  async function reconcileWorkspaceDependencies(projectRoot) {
20056
20225
  const packageJsonPath = path10.join(projectRoot, "package.json");
20057
20226
  if (!await pathExists(packageJsonPath)) {
@@ -20380,22 +20549,22 @@ export {
20380
20549
  getApiVersion,
20381
20550
  getCurrentAuthUser,
20382
20551
  ensureProject,
20552
+ getProjectRepository,
20553
+ ensureProjectRepository,
20554
+ ensureProjectBuild,
20555
+ getProjectCommitStatus,
20556
+ createProjectPreview,
20557
+ publishProjectRelease,
20558
+ getCurrentProjectRelease,
20383
20559
  getProjectBySlug,
20384
- createGameRevision,
20385
- getProjectRevisionSources,
20386
20560
  createProjectSourceBlobUploadSession,
20387
- queueProjectRevisionCompile,
20388
20561
  listProjectCompiledResults,
20389
20562
  getProjectCompiledResult,
20390
- uploadProjectInitialProjection,
20391
20563
  ensureProjectDevCompile,
20392
20564
  createProjectSession,
20393
- getProjectSources,
20394
- queryWorkshopRulebook,
20395
20565
  getJob,
20396
20566
  createProjectSessionFromReducerSnapshot,
20397
20567
  getSessionSnapshot,
20398
- getSessionEventBatch,
20399
20568
  startGame,
20400
20569
  createGameplayCapability,
20401
20570
  external_exports,
@@ -20409,39 +20578,28 @@ export {
20409
20578
  writeWorkspaceTextFile,
20410
20579
  writeWorkspaceJsonFile,
20411
20580
  workspacePathExists,
20412
- unlinkWorkspaceFile,
20413
- computeManifestHash,
20414
20581
  isAllowedGamePath,
20415
20582
  isDynamicGeneratedPath,
20416
- isLibraryPath,
20417
- writeSourceFiles,
20418
- removeExtraneousFiles,
20419
20583
  collectLocalFiles,
20420
- writeManifest,
20421
- writeRule,
20422
20584
  loadManifest,
20423
20585
  loadRule,
20424
20586
  writeSnapshot,
20425
- writeSnapshotFromFiles,
20426
- getLocalDiff,
20427
20587
  REDUCER_TESTING_TYPES_WRAPPER_CONTENT,
20428
20588
  buildReducerTestingContractContent,
20429
20589
  scaffoldStaticWorkspace,
20430
- assertCliStaticScaffoldComplete,
20431
20590
  applyWorkspaceCodegen,
20432
- installWorkspaceDependencies,
20591
+ installFrozenWorkspaceDependencies,
20433
20592
  reconcileWorkspaceDependencies,
20434
20593
  getProjectAuthoringState,
20435
20594
  getProjectPendingAuthoringSync,
20436
20595
  getProjectCompileState,
20437
20596
  getProjectLocalMaintainerRegistry,
20438
- updateProjectAuthoringState,
20439
- clearProjectPendingAuthoringSync,
20440
20597
  setLatestCompileAttempt,
20441
20598
  updateProjectLocalMaintainerRegistry,
20442
20599
  loadProjectConfig,
20443
20600
  updateProjectState,
20601
+ updateProjectEnvironmentState,
20444
20602
  findProjectRoot,
20445
20603
  materializeWorkspaceProject
20446
20604
  };
20447
- //# sourceMappingURL=chunk-YRSE5DLH.js.map
20605
+ //# sourceMappingURL=chunk-EJGB3IR7.js.map