@dreamboard-games/cli 0.1.30-alpha.6 → 0.1.30-alpha.8

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 (35) hide show
  1. package/dist/agent-verifier/agent-workspace-verifier.mjs +11 -10
  2. package/dist/agent-verifier/agent-workspace-verifier.mjs.map +1 -1
  3. package/dist/agent-verifier/{chunk-RHGGFAMQ.mjs → chunk-3IJBOLGT.mjs} +1 -10
  4. package/dist/agent-verifier/chunk-3IJBOLGT.mjs.map +1 -0
  5. package/dist/agent-verifier/{chunk-DN2JHUGM.mjs → chunk-7ODN2WLL.mjs} +2 -2
  6. package/dist/agent-verifier/{chunk-ZETW43TX.mjs → chunk-EFZMD3WM.mjs} +2 -2
  7. package/dist/agent-verifier/chunk-KK47X7RV.mjs +14 -0
  8. package/dist/agent-verifier/chunk-KK47X7RV.mjs.map +1 -0
  9. package/dist/agent-verifier/{chunk-7CNBKWWE.mjs → chunk-MGXX4WFR.mjs} +7 -5
  10. package/dist/agent-verifier/{chunk-7CNBKWWE.mjs.map → chunk-MGXX4WFR.mjs.map} +1 -1
  11. package/dist/agent-verifier/{chunk-M2MHRWSP.mjs → chunk-RG4PPQC2.mjs} +4 -4
  12. package/dist/agent-verifier/{chunk-YORARAJQ.mjs → chunk-V6R55ROH.mjs} +8 -23
  13. package/dist/agent-verifier/chunk-V6R55ROH.mjs.map +1 -0
  14. package/dist/agent-verifier/{compile-NPMXBOAZ.mjs → compile-G2HBBA4A.mjs} +10 -9
  15. package/dist/agent-verifier/{compile-NPMXBOAZ.mjs.map → compile-G2HBBA4A.mjs.map} +1 -1
  16. package/dist/agent-verifier/{local-files-45DUJUEH.mjs → local-files-2VBRFEZM.mjs} +3 -3
  17. package/dist/agent-verifier/{materialize-workspace-WI3JO5Q2.mjs → materialize-workspace-K5LHD23M.mjs} +8 -7
  18. package/dist/agent-verifier/{materialize-workspace-WI3JO5Q2.mjs.map → materialize-workspace-K5LHD23M.mjs.map} +1 -1
  19. package/dist/agent-verifier/{reducer-native-test-harness-LNZI3G73.mjs → reducer-native-test-harness-FBMLKX5V.mjs} +4 -4
  20. package/dist/agent-verifier/{static-scaffold-VVMGLDVS.mjs → static-scaffold-DHJKZRYD.mjs} +3 -4
  21. package/dist/agent-verifier/{sync-42WWJFA4.mjs → sync-KIOG53KM.mjs} +11 -9
  22. package/dist/agent-verifier/{sync-42WWJFA4.mjs.map → sync-KIOG53KM.mjs.map} +1 -1
  23. package/dist/agent-verifier/{test-RCFDQBEQ.mjs → test-VKDPAIPF.mjs} +7 -6
  24. package/dist/agent-verifier/{test-RCFDQBEQ.mjs.map → test-VKDPAIPF.mjs.map} +1 -1
  25. package/dist/index.js +4 -17
  26. package/dist/index.js.map +1 -1
  27. package/package.json +1 -1
  28. package/dist/agent-verifier/chunk-RHGGFAMQ.mjs.map +0 -1
  29. package/dist/agent-verifier/chunk-YORARAJQ.mjs.map +0 -1
  30. /package/dist/agent-verifier/{chunk-DN2JHUGM.mjs.map → chunk-7ODN2WLL.mjs.map} +0 -0
  31. /package/dist/agent-verifier/{chunk-ZETW43TX.mjs.map → chunk-EFZMD3WM.mjs.map} +0 -0
  32. /package/dist/agent-verifier/{chunk-M2MHRWSP.mjs.map → chunk-RG4PPQC2.mjs.map} +0 -0
  33. /package/dist/agent-verifier/{local-files-45DUJUEH.mjs.map → local-files-2VBRFEZM.mjs.map} +0 -0
  34. /package/dist/agent-verifier/{reducer-native-test-harness-LNZI3G73.mjs.map → reducer-native-test-harness-FBMLKX5V.mjs.map} +0 -0
  35. /package/dist/agent-verifier/{static-scaffold-VVMGLDVS.mjs.map → static-scaffold-DHJKZRYD.mjs.map} +0 -0
@@ -3,11 +3,12 @@ import {
3
3
  assertCompilerPortableDependencies,
4
4
  consola,
5
5
  resolveProjectContext
6
- } from "./chunk-7CNBKWWE.mjs";
6
+ } from "./chunk-MGXX4WFR.mjs";
7
+ import "./chunk-3IJBOLGT.mjs";
7
8
  import "./chunk-W2MDP5ZN.mjs";
8
- import "./chunk-RHGGFAMQ.mjs";
9
- import "./chunk-NAK77WXW.mjs";
10
9
  import "./chunk-TAEQKBJB.mjs";
10
+ import "./chunk-KK47X7RV.mjs";
11
+ import "./chunk-NAK77WXW.mjs";
11
12
  import "./chunk-IAYRNVUC.mjs";
12
13
  import "./chunk-M7UVBANQ.mjs";
13
14
  import "./chunk-H6XDQJ3N.mjs";
@@ -46,7 +47,7 @@ Usage:
46
47
  }
47
48
  async function materializePreparedWorkspace(args) {
48
49
  const inputPath = readRequiredOption(args, "--input");
49
- const { materializeWorkspaceProject } = await import("./materialize-workspace-WI3JO5Q2.mjs");
50
+ const { materializeWorkspaceProject } = await import("./materialize-workspace-K5LHD23M.mjs");
50
51
  const input = JSON.parse(
51
52
  await readFile(inputPath, "utf8")
52
53
  );
@@ -82,9 +83,9 @@ async function verifyAgentWorkspace(rawMode, args) {
82
83
  }
83
84
  async function runFullBackendConnectedVerification(parsedFlags) {
84
85
  const [{ default: cmdSync }, { default: cmdCompile }, { default: cmdTest }] = await Promise.all([
85
- import("./sync-42WWJFA4.mjs"),
86
- import("./compile-NPMXBOAZ.mjs"),
87
- import("./test-RCFDQBEQ.mjs")
86
+ import("./sync-KIOG53KM.mjs"),
87
+ import("./compile-G2HBBA4A.mjs"),
88
+ import("./test-VKDPAIPF.mjs")
88
89
  ]);
89
90
  await runCommandDefinition(cmdSync, { ...parsedFlags, force: true });
90
91
  await runCommandDefinition(cmdCompile, parsedFlags);
@@ -148,8 +149,8 @@ async function runCloudLocalVerification(projectRoot, projectConfig, config) {
148
149
  { assertReducerContractPreflight },
149
150
  { getProjectLocalMaintainerRegistry }
150
151
  ] = await Promise.all([
151
- import("./static-scaffold-VVMGLDVS.mjs"),
152
- import("./local-files-45DUJUEH.mjs"),
152
+ import("./static-scaffold-DHJKZRYD.mjs"),
153
+ import("./local-files-2VBRFEZM.mjs"),
153
154
  import("./workspace-codegen-WPZHMATU.mjs"),
154
155
  import("./workspace-dependencies-ULZZZPNX.mjs"),
155
156
  import("./reducer-contract-preflight-COD2CO22.mjs"),
@@ -186,7 +187,7 @@ async function runCloudLocalVerification(projectRoot, projectConfig, config) {
186
187
  generateReducerNativeArtifacts,
187
188
  isReducerNativeTestingWorkspace,
188
189
  runReducerNativeScenarios
189
- } = await import("./reducer-native-test-harness-LNZI3G73.mjs");
190
+ } = await import("./reducer-native-test-harness-FBMLKX5V.mjs");
190
191
  if (await isReducerNativeTestingWorkspace(projectRoot)) {
191
192
  const { bases } = await generateReducerNativeArtifacts({
192
193
  projectRoot,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/agent-verifier/agent-workspace-verifier.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport consola from \"consola\";\nimport type { CommandDef } from \"citty\";\nimport type { ConfigFlags } from \"../flags.js\";\nimport type { ProjectConfig, ResolvedConfig } from \"../types.js\";\nimport { resolveProjectContext } from \"../config/resolve.js\";\nimport { assertCompilerPortableDependencies } from \"../services/project/dependency-portability.js\";\n\ntype VerificationMode = \"preflight\" | \"verify\" | \"fin\" | \"cloud-local\";\n\nmain().catch((error) => {\n console.error(error instanceof Error ? error.message : String(error));\n process.exit(1);\n});\n\nasync function main() {\n const [command, ...args] = process.argv.slice(2);\n if (command === \"--help\" || command === \"help\") {\n printHelp();\n return;\n }\n if (command === \"materialize-prepared-workspace\") {\n if (args.includes(\"--help\")) {\n printHelp();\n return;\n }\n await materializePreparedWorkspace(args);\n return;\n }\n await verifyAgentWorkspace(command ?? \"verify\", args);\n}\n\nfunction printHelp() {\n console.log(`Dreamboard agent workspace verifier\n\nUsage:\n agent-workspace-verifier materialize-prepared-workspace --input <path>\n agent-workspace-verifier preflight [--env local|staging|prod]\n agent-workspace-verifier verify [--env local|staging|prod]\n agent-workspace-verifier fin [--env local|staging|prod]\n`);\n}\n\nasync function materializePreparedWorkspace(args: string[]) {\n const inputPath = readRequiredOption(args, \"--input\");\n const { materializeWorkspaceProject } = await import(\n \"../services/project/materialize-workspace.js\"\n );\n const input = JSON.parse(\n await readFile(inputPath, \"utf8\"),\n ) as Parameters<typeof materializeWorkspaceProject>[0];\n await materializeWorkspaceProject({\n ...input,\n agentManaged: true,\n workspacePrepared: true,\n allowCreateGame: false,\n installDependencies: false,\n });\n consola.success(`Prepared workspace in ${input.targetDir}`);\n}\n\nasync function verifyAgentWorkspace(rawMode: string, args: string[]) {\n const requestedMode = parseVerificationMode(rawMode);\n const parsedFlags = parseConfigArgs(args);\n const { projectRoot, projectConfig, config } =\n await resolveProjectContext(parsedFlags);\n await assertCompilerPortableDependencies({ projectRoot, projectConfig });\n\n if (requestedMode === \"preflight\") {\n consola.success(\"Agent workspace preflight passed.\");\n return;\n }\n\n if (process.env.DREAMBOARD_AGENT_FINAL_SYNC_VERIFY === \"1\") {\n await runFullBackendConnectedVerification(parsedFlags);\n return;\n }\n\n if (\n requestedMode === \"cloud-local\" ||\n requestedMode === \"verify\" ||\n requestedMode === \"fin\"\n ) {\n await runCloudLocalVerification(projectRoot, projectConfig, config);\n return;\n }\n\n throw new Error(\n \"Agent workspaces now run cloud-local verification directly. Use `fin` only through the generated wrapper.\",\n );\n}\n\nasync function runFullBackendConnectedVerification(\n parsedFlags: ConfigFlags,\n): Promise<void> {\n const [{ default: cmdSync }, { default: cmdCompile }, { default: cmdTest }] =\n await Promise.all([\n import(\"../commands/sync.js\"),\n import(\"../commands/compile.js\"),\n import(\"../commands/test.js\"),\n ]);\n await runCommandDefinition(cmdSync, { ...parsedFlags, force: true });\n await runCommandDefinition(cmdCompile, parsedFlags);\n await runCommandDefinition(\n resolveTestSubCommand(cmdTest, \"generate\"),\n parsedFlags,\n );\n await runCommandDefinition(resolveTestSubCommand(cmdTest, \"run\"), parsedFlags);\n}\n\nasync function runCommandDefinition(\n command: CommandDef<any>,\n args: Record<string, unknown>,\n) {\n if (!command.run) {\n throw new Error(\"Verifier command is missing a runnable step.\");\n }\n await command.run({ args, rawArgs: [], cmd: command } as any);\n}\n\nfunction resolveTestSubCommand(\n cmdTest: CommandDef<any>,\n name: \"generate\" | \"run\",\n): CommandDef<any> {\n const subCommands = cmdTest.subCommands as\n | Record<string, CommandDef<any>>\n | undefined;\n const command = subCommands?.[name];\n if (!command) {\n throw new Error(`Verifier command is missing test ${name}.`);\n }\n return command;\n}\n\nfunction parseVerificationMode(value: unknown): VerificationMode {\n if (\n value === \"preflight\" ||\n value === \"verify\" ||\n value === \"fin\" ||\n value === \"cloud-local\"\n ) {\n return value;\n }\n throw new Error(\n `Expected mode to be one of preflight, verify, fin, or cloud-local. Received: ${String(value)}`,\n );\n}\n\nfunction parseConfigArgs(args: string[]): ConfigFlags {\n const flags: ConfigFlags = {};\n for (let index = 0; index < args.length; index += 1) {\n const arg = args[index];\n if (arg === \"--env\") {\n const value = args[++index];\n if (value === \"local\" || value === \"staging\" || value === \"prod\") {\n flags.env = value;\n continue;\n }\n throw new Error(`Invalid --env value: ${String(value)}`);\n }\n if (arg === \"--token\") {\n flags.token = args[++index];\n continue;\n }\n if (arg === \"--skip-install\") {\n continue;\n }\n throw new Error(`Unknown verifier argument: ${arg}`);\n }\n return flags;\n}\n\nasync function runCloudLocalVerification(\n projectRoot: string,\n projectConfig: ProjectConfig,\n config: ResolvedConfig,\n): Promise<void> {\n const [\n { scaffoldStaticWorkspace },\n { loadManifest },\n { applyWorkspaceCodegen },\n { reconcileWorkspaceDependencies },\n { assertReducerContractPreflight },\n { getProjectLocalMaintainerRegistry },\n ] = await Promise.all([\n import(\"../services/project/static-scaffold.js\"),\n import(\"../services/project/local-files.js\"),\n import(\"../services/project/workspace-codegen.js\"),\n import(\"../services/project/workspace-dependencies.js\"),\n import(\"../services/project/reducer-contract-preflight.js\"),\n import(\"../services/project/project-state.js\"),\n ]);\n\n consola.start(\"Refreshing static scaffold...\");\n await scaffoldStaticWorkspace(projectRoot, \"update\", {\n localMaintainerRegistry: getProjectLocalMaintainerRegistry(projectConfig),\n });\n\n consola.start(\"Applying workspace codegen...\");\n const manifest = await loadManifest(projectRoot);\n await applyWorkspaceCodegen({ projectRoot, manifest });\n\n consola.start(\"Reconciling workspace dependencies...\");\n await reconcileWorkspaceDependencies(projectRoot);\n\n consola.start(\"Validating reducer contract...\");\n await assertReducerContractPreflight(projectRoot);\n\n const [{ runLocalTypecheck }, { assertReducerBundleSmoke }] =\n await Promise.all([\n import(\"../services/project/local-typecheck.js\"),\n import(\"../services/project/reducer-bundle-preflight.js\"),\n ]);\n\n consola.start(\"Running local typecheck...\");\n const typecheckResult = await runLocalTypecheck(projectRoot);\n if (typecheckResult.skipped) {\n if (typecheckResult.output) consola.warn(typecheckResult.output);\n } else if (!typecheckResult.success) {\n if (typecheckResult.output) consola.error(typecheckResult.output);\n throw new Error(\n \"Local typecheck failed. Fix the diagnostics before syncing.\",\n );\n }\n\n consola.start(\"Smoke-testing reducer bundle...\");\n await assertReducerBundleSmoke({ projectRoot, manifest });\n\n const {\n generateReducerNativeArtifacts,\n isReducerNativeTestingWorkspace,\n runReducerNativeScenarios,\n } = await import(\n \"../services/testing/reducer-native-test-harness.js\"\n );\n\n if (await isReducerNativeTestingWorkspace(projectRoot)) {\n const { bases } = await generateReducerNativeArtifacts({\n projectRoot,\n gameId: projectConfig.gameId,\n compiledResultId: projectConfig.compile?.latestSuccessful?.resultId,\n });\n const summary = await runReducerNativeScenarios({\n projectRoot,\n projectConfig,\n resolvedConfig: config,\n runner: \"reducer\",\n gameId: projectConfig.gameId,\n compiledResultId: projectConfig.compile?.latestSuccessful?.resultId,\n });\n if (summary.failed > 0) {\n const failures = summary.results\n .filter((result) => !result.success)\n .map((result) =>\n result.error\n ? `FAIL ${result.id}: ${result.error}`\n : `FAIL ${result.id}`,\n );\n throw new Error(\n [\n `Reducer-native verification failed: ${summary.failed} failed, ${summary.passed} passed.`,\n ...failures,\n ].join(\"\\n\"),\n );\n }\n consola.success(`Generated ${bases.length} reducer-native base state(s).`);\n }\n\n consola.success(\"Agent workspace cloud-local verification passed.\");\n}\n\nfunction readRequiredOption(args: string[], name: string): string {\n const index = args.indexOf(name);\n const value = index >= 0 ? args[index + 1] : undefined;\n if (!value) {\n throw new Error(`${name} is required.`);\n }\n return value;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/agent-verifier/agent-workspace-verifier.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport consola from \"consola\";\nimport type { CommandDef } from \"citty\";\nimport type { ConfigFlags } from \"../flags.js\";\nimport type { ProjectConfig, ResolvedConfig } from \"../types.js\";\nimport { resolveProjectContext } from \"../config/resolve.js\";\nimport { assertCompilerPortableDependencies } from \"../services/project/dependency-portability.js\";\n\ntype VerificationMode = \"preflight\" | \"verify\" | \"fin\" | \"cloud-local\";\n\nmain().catch((error) => {\n console.error(error instanceof Error ? error.message : String(error));\n process.exit(1);\n});\n\nasync function main() {\n const [command, ...args] = process.argv.slice(2);\n if (command === \"--help\" || command === \"help\") {\n printHelp();\n return;\n }\n if (command === \"materialize-prepared-workspace\") {\n if (args.includes(\"--help\")) {\n printHelp();\n return;\n }\n await materializePreparedWorkspace(args);\n return;\n }\n await verifyAgentWorkspace(command ?? \"verify\", args);\n}\n\nfunction printHelp() {\n console.log(`Dreamboard agent workspace verifier\n\nUsage:\n agent-workspace-verifier materialize-prepared-workspace --input <path>\n agent-workspace-verifier preflight [--env local|staging|prod]\n agent-workspace-verifier verify [--env local|staging|prod]\n agent-workspace-verifier fin [--env local|staging|prod]\n`);\n}\n\nasync function materializePreparedWorkspace(args: string[]) {\n const inputPath = readRequiredOption(args, \"--input\");\n const { materializeWorkspaceProject } = await import(\n \"../services/project/materialize-workspace.js\"\n );\n const input = JSON.parse(\n await readFile(inputPath, \"utf8\"),\n ) as Parameters<typeof materializeWorkspaceProject>[0];\n await materializeWorkspaceProject({\n ...input,\n agentManaged: true,\n workspacePrepared: true,\n allowCreateGame: false,\n installDependencies: false,\n });\n consola.success(`Prepared workspace in ${input.targetDir}`);\n}\n\nasync function verifyAgentWorkspace(rawMode: string, args: string[]) {\n const requestedMode = parseVerificationMode(rawMode);\n const parsedFlags = parseConfigArgs(args);\n const { projectRoot, projectConfig, config } =\n await resolveProjectContext(parsedFlags);\n await assertCompilerPortableDependencies({ projectRoot, projectConfig });\n\n if (requestedMode === \"preflight\") {\n consola.success(\"Agent workspace preflight passed.\");\n return;\n }\n\n if (process.env.DREAMBOARD_AGENT_FINAL_SYNC_VERIFY === \"1\") {\n await runFullBackendConnectedVerification(parsedFlags);\n return;\n }\n\n if (\n requestedMode === \"cloud-local\" ||\n requestedMode === \"verify\" ||\n requestedMode === \"fin\"\n ) {\n await runCloudLocalVerification(projectRoot, projectConfig, config);\n return;\n }\n\n throw new Error(\n \"Agent workspaces now run cloud-local verification directly. Use `fin` only through the generated wrapper.\",\n );\n}\n\nasync function runFullBackendConnectedVerification(\n parsedFlags: ConfigFlags,\n): Promise<void> {\n const [{ default: cmdSync }, { default: cmdCompile }, { default: cmdTest }] =\n await Promise.all([\n import(\"../commands/sync.js\"),\n import(\"../commands/compile.js\"),\n import(\"../commands/test.js\"),\n ]);\n await runCommandDefinition(cmdSync, { ...parsedFlags, force: true });\n await runCommandDefinition(cmdCompile, parsedFlags);\n await runCommandDefinition(\n resolveTestSubCommand(cmdTest, \"generate\"),\n parsedFlags,\n );\n await runCommandDefinition(resolveTestSubCommand(cmdTest, \"run\"), parsedFlags);\n}\n\nasync function runCommandDefinition(\n command: CommandDef<any>,\n args: Record<string, unknown>,\n) {\n if (!command.run) {\n throw new Error(\"Verifier command is missing a runnable step.\");\n }\n await command.run({ args, rawArgs: [], cmd: command } as any);\n}\n\nfunction resolveTestSubCommand(\n cmdTest: CommandDef<any>,\n name: \"generate\" | \"run\",\n): CommandDef<any> {\n const subCommands = cmdTest.subCommands as\n | Record<string, CommandDef<any>>\n | undefined;\n const command = subCommands?.[name];\n if (!command) {\n throw new Error(`Verifier command is missing test ${name}.`);\n }\n return command;\n}\n\nfunction parseVerificationMode(value: unknown): VerificationMode {\n if (\n value === \"preflight\" ||\n value === \"verify\" ||\n value === \"fin\" ||\n value === \"cloud-local\"\n ) {\n return value;\n }\n throw new Error(\n `Expected mode to be one of preflight, verify, fin, or cloud-local. Received: ${String(value)}`,\n );\n}\n\nfunction parseConfigArgs(args: string[]): ConfigFlags {\n const flags: ConfigFlags = {};\n for (let index = 0; index < args.length; index += 1) {\n const arg = args[index];\n if (arg === \"--env\") {\n const value = args[++index];\n if (value === \"local\" || value === \"staging\" || value === \"prod\") {\n flags.env = value;\n continue;\n }\n throw new Error(`Invalid --env value: ${String(value)}`);\n }\n if (arg === \"--token\") {\n flags.token = args[++index];\n continue;\n }\n if (arg === \"--skip-install\") {\n continue;\n }\n throw new Error(`Unknown verifier argument: ${arg}`);\n }\n return flags;\n}\n\nasync function runCloudLocalVerification(\n projectRoot: string,\n projectConfig: ProjectConfig,\n config: ResolvedConfig,\n): Promise<void> {\n const [\n { scaffoldStaticWorkspace },\n { loadManifest },\n { applyWorkspaceCodegen },\n { reconcileWorkspaceDependencies },\n { assertReducerContractPreflight },\n { getProjectLocalMaintainerRegistry },\n ] = await Promise.all([\n import(\"../services/project/static-scaffold.js\"),\n import(\"../services/project/local-files.js\"),\n import(\"../services/project/workspace-codegen.js\"),\n import(\"../services/project/workspace-dependencies.js\"),\n import(\"../services/project/reducer-contract-preflight.js\"),\n import(\"../services/project/project-state.js\"),\n ]);\n\n consola.start(\"Refreshing static scaffold...\");\n await scaffoldStaticWorkspace(projectRoot, \"update\", {\n localMaintainerRegistry: getProjectLocalMaintainerRegistry(projectConfig),\n });\n\n consola.start(\"Applying workspace codegen...\");\n const manifest = await loadManifest(projectRoot);\n await applyWorkspaceCodegen({ projectRoot, manifest });\n\n consola.start(\"Reconciling workspace dependencies...\");\n await reconcileWorkspaceDependencies(projectRoot);\n\n consola.start(\"Validating reducer contract...\");\n await assertReducerContractPreflight(projectRoot);\n\n const [{ runLocalTypecheck }, { assertReducerBundleSmoke }] =\n await Promise.all([\n import(\"../services/project/local-typecheck.js\"),\n import(\"../services/project/reducer-bundle-preflight.js\"),\n ]);\n\n consola.start(\"Running local typecheck...\");\n const typecheckResult = await runLocalTypecheck(projectRoot);\n if (typecheckResult.skipped) {\n if (typecheckResult.output) consola.warn(typecheckResult.output);\n } else if (!typecheckResult.success) {\n if (typecheckResult.output) consola.error(typecheckResult.output);\n throw new Error(\n \"Local typecheck failed. Fix the diagnostics before syncing.\",\n );\n }\n\n consola.start(\"Smoke-testing reducer bundle...\");\n await assertReducerBundleSmoke({ projectRoot, manifest });\n\n const {\n generateReducerNativeArtifacts,\n isReducerNativeTestingWorkspace,\n runReducerNativeScenarios,\n } = await import(\n \"../services/testing/reducer-native-test-harness.js\"\n );\n\n if (await isReducerNativeTestingWorkspace(projectRoot)) {\n const { bases } = await generateReducerNativeArtifacts({\n projectRoot,\n gameId: projectConfig.gameId,\n compiledResultId: projectConfig.compile?.latestSuccessful?.resultId,\n });\n const summary = await runReducerNativeScenarios({\n projectRoot,\n projectConfig,\n resolvedConfig: config,\n runner: \"reducer\",\n gameId: projectConfig.gameId,\n compiledResultId: projectConfig.compile?.latestSuccessful?.resultId,\n });\n if (summary.failed > 0) {\n const failures = summary.results\n .filter((result) => !result.success)\n .map((result) =>\n result.error\n ? `FAIL ${result.id}: ${result.error}`\n : `FAIL ${result.id}`,\n );\n throw new Error(\n [\n `Reducer-native verification failed: ${summary.failed} failed, ${summary.passed} passed.`,\n ...failures,\n ].join(\"\\n\"),\n );\n }\n consola.success(`Generated ${bases.length} reducer-native base state(s).`);\n }\n\n consola.success(\"Agent workspace cloud-local verification passed.\");\n}\n\nfunction readRequiredOption(args: string[], name: string): string {\n const index = args.indexOf(name);\n const value = index >= 0 ? args[index + 1] : undefined;\n if (!value) {\n throw new Error(`${name} is required.`);\n }\n return value;\n}\n"],"mappings":"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","names":[]}
@@ -13,12 +13,6 @@ import {
13
13
  PROJECT_STATE_FILE
14
14
  } from "./chunk-M7UVBANQ.mjs";
15
15
 
16
- // src/build-target.ts
17
- var injectedBuildChannel = true ? "development" : void 0;
18
- var BUILD_CHANNEL = injectedBuildChannel === "published" ? "published" : "development";
19
- var IS_PUBLISHED_BUILD = BUILD_CHANNEL === "published";
20
- var PUBLISHED_ENVIRONMENT = "prod";
21
-
22
16
  // src/config/project-config.ts
23
17
  import path from "path";
24
18
  var LEGACY_DEFAULT_DEPLOYMENT_ID = "legacy";
@@ -157,11 +151,8 @@ async function findProjectRoot(startDir) {
157
151
  }
158
152
 
159
153
  export {
160
- BUILD_CHANNEL,
161
- IS_PUBLISHED_BUILD,
162
- PUBLISHED_ENVIRONMENT,
163
154
  loadProjectConfig,
164
155
  updateProjectState,
165
156
  findProjectRoot
166
157
  };
167
- //# sourceMappingURL=chunk-RHGGFAMQ.mjs.map
158
+ //# sourceMappingURL=chunk-3IJBOLGT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/config/project-config.ts"],"sourcesContent":["import path from \"node:path\";\nimport type {\n LegacyProjectConfigV1,\n ProjectConfig,\n ProjectEnvironmentBindingV1,\n ProjectEnvironmentStateV1,\n ProjectManifestV2,\n} from \"../types.js\";\nimport {\n PROJECT_DIR_NAME,\n PROJECT_CONFIG_FILE,\n PROJECT_STATE_FILE,\n} from \"../constants.js\";\nimport { ensureDir, exists, readJsonFile } from \"../utils/fs.js\";\nimport { atomicWriteFile } from \"../utils/atomic-file.js\";\n\nconst LEGACY_DEFAULT_DEPLOYMENT_ID = \"legacy\";\nconst LEGACY_DEFAULT_OWNER_SCOPE_ID = \"default\";\nconst LEGACY_DEFAULT_BINDING_KEY = `${LEGACY_DEFAULT_DEPLOYMENT_ID}:${LEGACY_DEFAULT_OWNER_SCOPE_ID}`;\n\nfunction normalizeProjectManifest(config: ProjectConfig): ProjectManifestV2 {\n return {\n schemaVersion: 2,\n projectId: config.projectId,\n slug: config.slug,\n };\n}\n\nfunction normalizeProjectBinding(\n config: ProjectConfig,\n): ProjectEnvironmentBindingV1 {\n return {\n deploymentId: config.deploymentId ?? LEGACY_DEFAULT_DEPLOYMENT_ID,\n ownerScopeId: config.ownerScopeId ?? LEGACY_DEFAULT_OWNER_SCOPE_ID,\n gameId: config.gameId,\n remoteHeadDigest: config.remoteHeadDigest,\n jobId: config.jobId,\n agentManaged: config.agentManaged,\n workspacePrepared: config.workspacePrepared,\n allowCreateGame: config.allowCreateGame,\n environment: config.environment,\n authoring: config.authoring,\n compile: config.compile,\n localMaintainerRegistry: config.localMaintainerRegistry,\n apiBaseUrl: config.apiBaseUrl,\n webBaseUrl: config.webBaseUrl,\n packageManifest: config.packageManifest,\n environmentManifest: config.environmentManifest,\n };\n}\n\nfunction normalizeProjectState(\n config: ProjectConfig,\n existing?: ProjectEnvironmentStateV1,\n): ProjectEnvironmentStateV1 {\n const binding = normalizeProjectBinding(config);\n const bindingKey =\n config.bindingKey || `${binding.deploymentId}:${binding.ownerScopeId}`;\n return {\n schemaVersion: 1,\n bindings: {\n ...(existing?.bindings ?? {}),\n [bindingKey]: binding,\n },\n };\n}\n\nfunction mergeManifestAndBinding(\n manifest: ProjectManifestV2,\n binding: ProjectEnvironmentBindingV1 | undefined,\n bindingKey: string | undefined,\n): ProjectConfig {\n return {\n ...manifest,\n ...(binding ?? {\n deploymentId: LEGACY_DEFAULT_DEPLOYMENT_ID,\n ownerScopeId: LEGACY_DEFAULT_OWNER_SCOPE_ID,\n }),\n gameId: binding?.gameId ?? manifest.projectId,\n bindingKey:\n bindingKey ??\n `${binding?.deploymentId ?? LEGACY_DEFAULT_DEPLOYMENT_ID}:${\n binding?.ownerScopeId ?? LEGACY_DEFAULT_OWNER_SCOPE_ID\n }`,\n };\n}\n\nfunction isProjectManifestV2(value: unknown): value is ProjectManifestV2 {\n const candidate = value as Partial<ProjectManifestV2>;\n return (\n candidate?.schemaVersion === 2 &&\n typeof candidate.projectId === \"string\" &&\n typeof candidate.slug === \"string\"\n );\n}\n\nfunction normalizeLegacyProjectConfig(\n config: LegacyProjectConfigV1 & { projectId?: string },\n): ProjectConfig {\n return {\n schemaVersion: 2,\n projectId: config.projectId ?? config.gameId,\n slug: config.slug,\n bindingKey: LEGACY_DEFAULT_BINDING_KEY,\n deploymentId: LEGACY_DEFAULT_DEPLOYMENT_ID,\n ownerScopeId: LEGACY_DEFAULT_OWNER_SCOPE_ID,\n gameId: config.gameId,\n jobId: config.jobId,\n agentManaged: config.agentManaged,\n workspacePrepared: config.workspacePrepared,\n allowCreateGame: config.allowCreateGame,\n environment: config.environment,\n authoring: config.authoring,\n compile: config.compile,\n localMaintainerRegistry: config.localMaintainerRegistry,\n apiBaseUrl: config.apiBaseUrl,\n webBaseUrl: config.webBaseUrl,\n packageManifest: config.packageManifest,\n environmentManifest: config.environmentManifest,\n };\n}\n\nasync function loadProjectEnvironmentState(\n rootDir: string,\n): Promise<ProjectEnvironmentStateV1> {\n const filePath = path.join(rootDir, PROJECT_DIR_NAME, PROJECT_STATE_FILE);\n if (!(await exists(filePath))) {\n return { schemaVersion: 1, bindings: {} };\n }\n const state = await readJsonFile<ProjectEnvironmentStateV1>(filePath);\n return state.schemaVersion === 1 && state.bindings\n ? state\n : { schemaVersion: 1, bindings: {} };\n}\n\nexport async function loadProjectConfig(\n rootDir: string,\n): Promise<ProjectConfig> {\n const filePath = path.join(rootDir, PROJECT_DIR_NAME, PROJECT_CONFIG_FILE);\n const rawConfig = await readJsonFile<ProjectManifestV2 | LegacyProjectConfigV1>(\n filePath,\n );\n if (!isProjectManifestV2(rawConfig)) {\n const migrated = normalizeLegacyProjectConfig(\n rawConfig as LegacyProjectConfigV1,\n );\n await updateProjectState(rootDir, migrated);\n return migrated;\n }\n\n const state = await loadProjectEnvironmentState(rootDir);\n const entries = Object.entries(state.bindings);\n const [bindingKey, binding] =\n entries.find(([key]) => key !== LEGACY_DEFAULT_BINDING_KEY) ??\n entries.find(([key]) => key === LEGACY_DEFAULT_BINDING_KEY) ??\n [];\n return mergeManifestAndBinding(rawConfig, binding, bindingKey);\n}\n\nexport async function updateProjectState(\n rootDir: string,\n config: ProjectConfig,\n): Promise<void> {\n const dir = path.join(rootDir, PROJECT_DIR_NAME);\n await ensureDir(dir);\n const existingState = await loadProjectEnvironmentState(rootDir);\n await atomicWriteFile(\n path.join(dir, PROJECT_CONFIG_FILE),\n `${JSON.stringify(normalizeProjectManifest(config), null, 2)}\\n`,\n { mode: 0o644 },\n );\n await atomicWriteFile(\n path.join(dir, PROJECT_STATE_FILE),\n `${JSON.stringify(normalizeProjectState(config, existingState), null, 2)}\\n`,\n { mode: 0o600 },\n );\n}\n\nexport async function findProjectRoot(\n startDir: string,\n): Promise<string | null> {\n let current = path.resolve(startDir);\n for (let i = 0; i < 25; i++) {\n const candidate = path.join(current, PROJECT_DIR_NAME, PROJECT_CONFIG_FILE);\n if (await exists(candidate)) {\n return current;\n }\n const parent = path.dirname(current);\n if (parent === current) break;\n current = parent;\n }\n return null;\n}\n"],"mappings":"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","names":[]}
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-GD3FL755.mjs";
11
11
  import {
12
12
  loadManifest
13
- } from "./chunk-M2MHRWSP.mjs";
13
+ } from "./chunk-RG4PPQC2.mjs";
14
14
  import {
15
15
  REDUCER_TESTING_TYPES_WRAPPER_CONTENT,
16
16
  buildReducerTestingContractContent
@@ -3134,4 +3134,4 @@ export {
3134
3134
  generateReducerNativeArtifacts,
3135
3135
  runReducerNativeScenarios
3136
3136
  };
3137
- //# sourceMappingURL=chunk-DN2JHUGM.mjs.map
3137
+ //# sourceMappingURL=chunk-7ODN2WLL.mjs.map
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-ZNZ4RJBK.mjs";
6
6
  import {
7
7
  updateProjectState
8
- } from "./chunk-RHGGFAMQ.mjs";
8
+ } from "./chunk-3IJBOLGT.mjs";
9
9
 
10
10
  // src/services/project/remote-project.ts
11
11
  async function resolveRemoteProject(options) {
@@ -36,4 +36,4 @@ async function resolveRemoteProject(options) {
36
36
  export {
37
37
  resolveRemoteProject
38
38
  };
39
- //# sourceMappingURL=chunk-ZETW43TX.mjs.map
39
+ //# sourceMappingURL=chunk-EFZMD3WM.mjs.map
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/build-target.ts
4
+ var injectedBuildChannel = true ? "development" : void 0;
5
+ var BUILD_CHANNEL = injectedBuildChannel === "published" ? "published" : "development";
6
+ var IS_PUBLISHED_BUILD = BUILD_CHANNEL === "published";
7
+ var PUBLISHED_ENVIRONMENT = "prod";
8
+
9
+ export {
10
+ BUILD_CHANNEL,
11
+ IS_PUBLISHED_BUILD,
12
+ PUBLISHED_ENVIRONMENT
13
+ };
14
+ //# sourceMappingURL=chunk-KK47X7RV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/build-target.ts"],"sourcesContent":["declare const __DREAMBOARD_BUILD_CHANNEL__: string | undefined;\n\nconst injectedBuildChannel =\n typeof __DREAMBOARD_BUILD_CHANNEL__ === \"string\"\n ? __DREAMBOARD_BUILD_CHANNEL__\n : undefined;\n\nexport const BUILD_CHANNEL =\n injectedBuildChannel === \"published\" ? \"published\" : \"development\";\n\nexport const IS_PUBLISHED_BUILD = BUILD_CHANNEL === \"published\";\nexport const PUBLISHED_ENVIRONMENT = \"prod\" as const;\n"],"mappings":";;;AAEA,IAAM,uBACJ,OACI,gBACA;AAEC,IAAM,gBACX,yBAAyB,cAAc,cAAc;AAEhD,IAAM,qBAAqB,kBAAkB;AAC7C,IAAM,wBAAwB;","names":[]}
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ findProjectRoot,
4
+ loadProjectConfig
5
+ } from "./chunk-3IJBOLGT.mjs";
2
6
  import {
3
7
  getStoredSession,
4
8
  loadGlobalConfig,
@@ -6,10 +10,8 @@ import {
6
10
  } from "./chunk-W2MDP5ZN.mjs";
7
11
  import {
8
12
  IS_PUBLISHED_BUILD,
9
- PUBLISHED_ENVIRONMENT,
10
- findProjectRoot,
11
- loadProjectConfig
12
- } from "./chunk-RHGGFAMQ.mjs";
13
+ PUBLISHED_ENVIRONMENT
14
+ } from "./chunk-KK47X7RV.mjs";
13
15
  import {
14
16
  client
15
17
  } from "./chunk-NAK77WXW.mjs";
@@ -1741,4 +1743,4 @@ export {
1741
1743
  assertCompilerPortableDependencies,
1742
1744
  assertReleaseEnvironmentPortableDependencies
1743
1745
  };
1744
- //# sourceMappingURL=chunk-7CNBKWWE.mjs.map
1746
+ //# sourceMappingURL=chunk-MGXX4WFR.mjs.map