@dreamboard-games/cli 0.1.30-alpha.12 → 0.1.30-alpha.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -6
- package/dist/agent-verifier/agent-workspace-verifier.mjs +18 -17
- package/dist/agent-verifier/agent-workspace-verifier.mjs.map +1 -1
- package/dist/agent-verifier/{chunk-VLOIZDR6.mjs → chunk-4BECKTAF.mjs} +199 -190
- package/dist/agent-verifier/chunk-4BECKTAF.mjs.map +1 -0
- package/dist/agent-verifier/{chunk-TLYGTHXU.mjs → chunk-5GCZZ6NW.mjs} +3 -3
- package/dist/agent-verifier/{chunk-YR664DJX.mjs → chunk-A67WUYN2.mjs} +42 -68
- package/dist/agent-verifier/chunk-A67WUYN2.mjs.map +1 -0
- package/dist/agent-verifier/chunk-AXXUGU7Q.mjs +255 -0
- package/dist/agent-verifier/chunk-AXXUGU7Q.mjs.map +1 -0
- package/dist/agent-verifier/chunk-CO3BRUD6.mjs +342 -0
- package/dist/agent-verifier/chunk-CO3BRUD6.mjs.map +1 -0
- package/dist/agent-verifier/chunk-DPYC2NDB.mjs +59 -0
- package/dist/agent-verifier/chunk-DPYC2NDB.mjs.map +1 -0
- package/dist/agent-verifier/{chunk-4GU3PCHV.mjs → chunk-DWLTCUUX.mjs} +576 -393
- package/dist/agent-verifier/chunk-DWLTCUUX.mjs.map +1 -0
- package/dist/agent-verifier/{chunk-COB56ESI.mjs → chunk-G2ECODRB.mjs} +2 -2
- package/dist/agent-verifier/{chunk-6XRC5PWB.mjs → chunk-H3XNWKJU.mjs} +217 -232
- package/dist/agent-verifier/chunk-H3XNWKJU.mjs.map +1 -0
- package/dist/agent-verifier/{chunk-Z6OZWUIZ.mjs → chunk-HLHT57AW.mjs} +64 -16
- package/dist/agent-verifier/chunk-HLHT57AW.mjs.map +1 -0
- package/dist/agent-verifier/{chunk-YDIOW2BO.mjs → chunk-INIK6LHK.mjs} +2 -2
- package/dist/agent-verifier/{chunk-UWJIZML3.mjs → chunk-LKQ557TJ.mjs} +30 -23
- package/dist/agent-verifier/chunk-LKQ557TJ.mjs.map +1 -0
- package/dist/agent-verifier/{chunk-NAK77WXW.mjs → chunk-MYMVXTZT.mjs} +4 -5
- package/dist/agent-verifier/chunk-MYMVXTZT.mjs.map +1 -0
- package/dist/agent-verifier/{chunk-UIJ2NDG6.mjs → chunk-NFL3Z4Z7.mjs} +31 -238
- package/dist/agent-verifier/chunk-NFL3Z4Z7.mjs.map +1 -0
- package/dist/agent-verifier/{chunk-XKCJBIRY.mjs → chunk-QD4SQNUP.mjs} +2 -2
- package/dist/agent-verifier/{chunk-IAYRNVUC.mjs → chunk-RDYXWXXC.mjs} +1 -3
- package/dist/agent-verifier/{chunk-QBAF7EYR.mjs → chunk-TTB7AIHZ.mjs} +4 -4
- package/dist/agent-verifier/{chunk-QBAF7EYR.mjs.map → chunk-TTB7AIHZ.mjs.map} +1 -1
- package/dist/agent-verifier/chunk-V6AQDR7W.mjs +89 -0
- package/dist/agent-verifier/chunk-V6AQDR7W.mjs.map +1 -0
- package/dist/agent-verifier/{chunk-RHI6S4SU.mjs → chunk-V7ABTZXW.mjs} +1 -3
- package/dist/agent-verifier/{chunk-RHI6S4SU.mjs.map → chunk-V7ABTZXW.mjs.map} +1 -1
- package/dist/agent-verifier/chunk-WAFBU5U7.mjs +467 -0
- package/dist/agent-verifier/chunk-WAFBU5U7.mjs.map +1 -0
- package/dist/agent-verifier/{chunk-3IJBOLGT.mjs → chunk-WSIYUUSD.mjs} +2 -2
- package/dist/agent-verifier/{compile-WZ7X6I2A.mjs → compile-6G6GENLP.mjs} +22 -18
- package/dist/agent-verifier/compile-6G6GENLP.mjs.map +1 -0
- package/dist/agent-verifier/{global-config-XHL7BCKN.mjs → global-config-6UGFPLDA.mjs} +4 -3
- package/dist/agent-verifier/{keychain-backend-A3MRWLPF.mjs → keychain-backend-BQLW5VEC.mjs} +11 -6
- package/dist/agent-verifier/keychain-backend-BQLW5VEC.mjs.map +1 -0
- package/dist/agent-verifier/{local-files-ZW52HSVT.mjs → local-files-WPHUV6GU.mjs} +6 -6
- package/dist/agent-verifier/{materialize-workspace-BKZLLFI4.mjs → materialize-workspace-S24JA46C.mjs} +17 -17
- package/dist/agent-verifier/materialize-workspace-S24JA46C.mjs.map +1 -0
- package/dist/agent-verifier/{reducer-bundle-preflight-7NYZF5ZT.mjs → reducer-bundle-preflight-3DSXIELT.mjs} +4 -4
- package/dist/agent-verifier/reducer-contract-preflight-FQB7M4PU.mjs +11 -0
- package/dist/agent-verifier/{reducer-native-test-harness-D4VWPIAC.mjs → reducer-native-test-harness-GY2CCQWN.mjs} +12 -9
- package/dist/agent-verifier/{static-scaffold-JCRBDKEH.mjs → static-scaffold-5YD6QHIS.mjs} +7 -9
- package/dist/agent-verifier/{sync-ELLJEWMB.mjs → sync-3OZBFABA.mjs} +24 -22
- package/dist/agent-verifier/{sync-ELLJEWMB.mjs.map → sync-3OZBFABA.mjs.map} +1 -1
- package/dist/agent-verifier/{test-OSXBPLSP.mjs → test-LQAGEQLY.mjs} +19 -17
- package/dist/agent-verifier/test-LQAGEQLY.mjs.map +1 -0
- package/dist/agent-verifier/{workspace-codegen-WPZHMATU.mjs → workspace-codegen-4IWICKLB.mjs} +3 -3
- package/dist/agent-verifier/{workspace-dependencies-ULZZZPNX.mjs → workspace-dependencies-ZMHPHVQV.mjs} +2 -2
- package/dist/authoring-compatibility-internal.js +12 -0
- package/dist/{agent-verifier/chunk-W2MDP5ZN.mjs → chunk-AVOAT522.js} +118 -21
- package/dist/chunk-AVOAT522.js.map +1 -0
- package/dist/chunk-FFO2IJL3.js +204 -0
- package/dist/chunk-FFO2IJL3.js.map +1 -0
- package/dist/chunk-JMV5ZFMK.js +4298 -0
- package/dist/chunk-JMV5ZFMK.js.map +1 -0
- package/dist/{chunk-P5TITCD3.js → chunk-JSF7PMIF.js} +2240 -4554
- package/dist/chunk-JSF7PMIF.js.map +1 -0
- package/dist/{global-config-WPJRXVDO.js → global-config-NLGAFSRU.js} +3 -2
- package/dist/global-config-NLGAFSRU.js.map +1 -0
- package/dist/index.js +1371 -3545
- package/dist/index.js.map +1 -1
- package/dist/internal.js +14 -8
- package/dist/{keychain-backend-JHTXAKWC.js → keychain-backend-47LZ5IX5.js} +11 -6
- package/dist/keychain-backend-47LZ5IX5.js.map +1 -0
- package/package.json +9 -19
- package/release/authoring-release-set.json +38 -0
- package/skills/dreamboard/references/manifest-authoring.md +11 -3
- package/dist/agent-verifier/chunk-4GU3PCHV.mjs.map +0 -1
- package/dist/agent-verifier/chunk-6XRC5PWB.mjs.map +0 -1
- package/dist/agent-verifier/chunk-G42BGGG2.mjs +0 -70
- package/dist/agent-verifier/chunk-G42BGGG2.mjs.map +0 -1
- package/dist/agent-verifier/chunk-KK47X7RV.mjs +0 -14
- package/dist/agent-verifier/chunk-KK47X7RV.mjs.map +0 -1
- package/dist/agent-verifier/chunk-NAK77WXW.mjs.map +0 -1
- package/dist/agent-verifier/chunk-UIJ2NDG6.mjs.map +0 -1
- package/dist/agent-verifier/chunk-UWJIZML3.mjs.map +0 -1
- package/dist/agent-verifier/chunk-VLOIZDR6.mjs.map +0 -1
- package/dist/agent-verifier/chunk-W2MDP5ZN.mjs.map +0 -1
- package/dist/agent-verifier/chunk-YR664DJX.mjs.map +0 -1
- package/dist/agent-verifier/chunk-Z6OZWUIZ.mjs.map +0 -1
- package/dist/agent-verifier/compile-WZ7X6I2A.mjs.map +0 -1
- package/dist/agent-verifier/keychain-backend-A3MRWLPF.mjs.map +0 -1
- package/dist/agent-verifier/materialize-workspace-BKZLLFI4.mjs.map +0 -1
- package/dist/agent-verifier/reducer-contract-preflight-COD2CO22.mjs +0 -11
- package/dist/agent-verifier/test-OSXBPLSP.mjs.map +0 -1
- package/dist/chunk-GXM7RRZJ.js +0 -433
- package/dist/chunk-GXM7RRZJ.js.map +0 -1
- package/dist/chunk-P5TITCD3.js.map +0 -1
- package/dist/dev-host/components/drawer.tsx +0 -132
- package/dist/dev-host/components/input.tsx +0 -21
- package/dist/dev-host/dev-api-proxy-plugin.ts +0 -328
- package/dist/dev-host/dev-author-dom-warnings.ts +0 -100
- package/dist/dev-host/dev-diagnostics.ts +0 -62
- package/dist/dev-host/dev-fallback-stylesheet.ts +0 -53
- package/dist/dev-host/dev-hmr-guard-plugin.ts +0 -47
- package/dist/dev-host/dev-host-controller.ts +0 -674
- package/dist/dev-host/dev-host-player-query.ts +0 -17
- package/dist/dev-host/dev-host-session-transport.ts +0 -52
- package/dist/dev-host/dev-host-storage.ts +0 -56
- package/dist/dev-host/dev-log-relay-plugin.ts +0 -510
- package/dist/dev-host/dev-runtime-config.ts +0 -14
- package/dist/dev-host/dev-runtime-platform.ts +0 -335
- package/dist/dev-host/dev-virtual-modules-plugin.ts +0 -64
- package/dist/dev-host/host-main.css +0 -224
- package/dist/dev-host/host-main.tsx +0 -954
- package/dist/dev-host/index.html +0 -56
- package/dist/dev-host/lib/utils.ts +0 -6
- package/dist/dev-host/plugin-main.ts +0 -61
- package/dist/dev-host/plugin.html +0 -24
- package/dist/dev-host/shared-styles.css +0 -144
- package/dist/dev-host/start-dev-server.ts +0 -140
- package/dist/dev-host/virtual-modules.d.ts +0 -27
- package/dist/keychain-backend-JHTXAKWC.js.map +0 -1
- /package/dist/agent-verifier/{chunk-TLYGTHXU.mjs.map → chunk-5GCZZ6NW.mjs.map} +0 -0
- /package/dist/agent-verifier/{chunk-COB56ESI.mjs.map → chunk-G2ECODRB.mjs.map} +0 -0
- /package/dist/agent-verifier/{chunk-YDIOW2BO.mjs.map → chunk-INIK6LHK.mjs.map} +0 -0
- /package/dist/agent-verifier/{chunk-XKCJBIRY.mjs.map → chunk-QD4SQNUP.mjs.map} +0 -0
- /package/dist/agent-verifier/{chunk-IAYRNVUC.mjs.map → chunk-RDYXWXXC.mjs.map} +0 -0
- /package/dist/agent-verifier/{chunk-3IJBOLGT.mjs.map → chunk-WSIYUUSD.mjs.map} +0 -0
- /package/dist/agent-verifier/{global-config-XHL7BCKN.mjs.map → global-config-6UGFPLDA.mjs.map} +0 -0
- /package/dist/agent-verifier/{local-files-ZW52HSVT.mjs.map → local-files-WPHUV6GU.mjs.map} +0 -0
- /package/dist/agent-verifier/{reducer-bundle-preflight-7NYZF5ZT.mjs.map → reducer-bundle-preflight-3DSXIELT.mjs.map} +0 -0
- /package/dist/agent-verifier/{reducer-contract-preflight-COD2CO22.mjs.map → reducer-contract-preflight-FQB7M4PU.mjs.map} +0 -0
- /package/dist/agent-verifier/{reducer-native-test-harness-D4VWPIAC.mjs.map → reducer-native-test-harness-GY2CCQWN.mjs.map} +0 -0
- /package/dist/agent-verifier/{static-scaffold-JCRBDKEH.mjs.map → static-scaffold-5YD6QHIS.mjs.map} +0 -0
- /package/dist/agent-verifier/{workspace-codegen-WPZHMATU.mjs.map → workspace-codegen-4IWICKLB.mjs.map} +0 -0
- /package/dist/agent-verifier/{workspace-dependencies-ULZZZPNX.mjs.map → workspace-dependencies-ZMHPHVQV.mjs.map} +0 -0
- /package/dist/{global-config-WPJRXVDO.js.map → authoring-compatibility-internal.js.map} +0 -0
- /package/{dist/scaffold → scaffold}/assets/static/app/tsconfig.framework.json +0 -0
- /package/{dist/scaffold → scaffold}/assets/static/app/tsconfig.json +0 -0
- /package/{dist/scaffold → scaffold}/assets/static/ui/index.tsx +0 -0
- /package/{dist/scaffold → scaffold}/assets/static/ui/style.css +0 -0
- /package/{dist/scaffold → scaffold}/assets/static/ui/tsconfig.framework.json +0 -0
- /package/{dist/scaffold → scaffold}/assets/static/ui/tsconfig.json +0 -0
package/README.md
CHANGED
|
@@ -35,13 +35,9 @@ Use browser login:
|
|
|
35
35
|
dreamboard login
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
The published CLI stores your refreshable session in
|
|
38
|
+
The published CLI stores your refreshable session in the operating system credential store via `@napi-rs/keyring`. It does not fall back to plaintext `~/.dreamboard/auth.json`.
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
~/.dreamboard/config.json
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
That stored session includes the refresh token the CLI needs to renew access automatically. Direct JWT injection is intentionally not part of the published CLI flow.
|
|
40
|
+
That stored session includes the Clerk refresh token the CLI needs to renew and exchange for short-lived Dreamboard API tokens automatically. Direct JWT injection is intentionally not part of the published CLI flow.
|
|
45
41
|
|
|
46
42
|
## Source Checkout Setup
|
|
47
43
|
|
|
@@ -3,13 +3,14 @@ import {
|
|
|
3
3
|
assertCompilerPortableDependencies,
|
|
4
4
|
consola,
|
|
5
5
|
resolveProjectContext
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-NFL3Z4Z7.mjs";
|
|
7
|
+
import "./chunk-WSIYUUSD.mjs";
|
|
8
|
+
import "./chunk-CO3BRUD6.mjs";
|
|
9
|
+
import "./chunk-DPYC2NDB.mjs";
|
|
10
|
+
import "./chunk-AXXUGU7Q.mjs";
|
|
9
11
|
import "./chunk-TAEQKBJB.mjs";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-IAYRNVUC.mjs";
|
|
12
|
+
import "./chunk-RDYXWXXC.mjs";
|
|
13
|
+
import "./chunk-MYMVXTZT.mjs";
|
|
13
14
|
import "./chunk-M7UVBANQ.mjs";
|
|
14
15
|
import "./chunk-H6XDQJ3N.mjs";
|
|
15
16
|
|
|
@@ -47,7 +48,7 @@ Usage:
|
|
|
47
48
|
}
|
|
48
49
|
async function materializePreparedWorkspace(args) {
|
|
49
50
|
const inputPath = readRequiredOption(args, "--input");
|
|
50
|
-
const { materializeWorkspaceProject } = await import("./materialize-workspace-
|
|
51
|
+
const { materializeWorkspaceProject } = await import("./materialize-workspace-S24JA46C.mjs");
|
|
51
52
|
const input = JSON.parse(
|
|
52
53
|
await readFile(inputPath, "utf8")
|
|
53
54
|
);
|
|
@@ -83,9 +84,9 @@ async function verifyAgentWorkspace(rawMode, args) {
|
|
|
83
84
|
}
|
|
84
85
|
async function runFullBackendConnectedVerification(parsedFlags) {
|
|
85
86
|
const [{ default: cmdSync }, { default: cmdCompile }, { default: cmdTest }] = await Promise.all([
|
|
86
|
-
import("./sync-
|
|
87
|
-
import("./compile-
|
|
88
|
-
import("./test-
|
|
87
|
+
import("./sync-3OZBFABA.mjs"),
|
|
88
|
+
import("./compile-6G6GENLP.mjs"),
|
|
89
|
+
import("./test-LQAGEQLY.mjs")
|
|
89
90
|
]);
|
|
90
91
|
await runCommandDefinition(cmdSync, { ...parsedFlags, force: true });
|
|
91
92
|
await runCommandDefinition(cmdCompile, parsedFlags);
|
|
@@ -149,11 +150,11 @@ async function runCloudLocalVerification(projectRoot, projectConfig, config) {
|
|
|
149
150
|
{ assertReducerContractPreflight },
|
|
150
151
|
{ getProjectLocalMaintainerRegistry }
|
|
151
152
|
] = await Promise.all([
|
|
152
|
-
import("./static-scaffold-
|
|
153
|
-
import("./local-files-
|
|
154
|
-
import("./workspace-codegen-
|
|
155
|
-
import("./workspace-dependencies-
|
|
156
|
-
import("./reducer-contract-preflight-
|
|
153
|
+
import("./static-scaffold-5YD6QHIS.mjs"),
|
|
154
|
+
import("./local-files-WPHUV6GU.mjs"),
|
|
155
|
+
import("./workspace-codegen-4IWICKLB.mjs"),
|
|
156
|
+
import("./workspace-dependencies-ZMHPHVQV.mjs"),
|
|
157
|
+
import("./reducer-contract-preflight-FQB7M4PU.mjs"),
|
|
157
158
|
import("./project-state-XKUSCFSV.mjs")
|
|
158
159
|
]);
|
|
159
160
|
consola.start("Refreshing static scaffold...");
|
|
@@ -169,7 +170,7 @@ async function runCloudLocalVerification(projectRoot, projectConfig, config) {
|
|
|
169
170
|
await assertReducerContractPreflight(projectRoot);
|
|
170
171
|
const [{ runLocalTypecheck }, { assertReducerBundleSmoke }] = await Promise.all([
|
|
171
172
|
import("./local-typecheck-3JXL2NMG.mjs"),
|
|
172
|
-
import("./reducer-bundle-preflight-
|
|
173
|
+
import("./reducer-bundle-preflight-3DSXIELT.mjs")
|
|
173
174
|
]);
|
|
174
175
|
consola.start("Running local typecheck...");
|
|
175
176
|
const typecheckResult = await runLocalTypecheck(projectRoot);
|
|
@@ -187,7 +188,7 @@ async function runCloudLocalVerification(projectRoot, projectConfig, config) {
|
|
|
187
188
|
generateReducerNativeArtifacts,
|
|
188
189
|
isReducerNativeTestingWorkspace,
|
|
189
190
|
runReducerNativeScenarios
|
|
190
|
-
} = await import("./reducer-native-test-harness-
|
|
191
|
+
} = await import("./reducer-native-test-harness-GY2CCQWN.mjs");
|
|
191
192
|
if (await isReducerNativeTestingWorkspace(projectRoot)) {
|
|
192
193
|
const { bases } = await generateReducerNativeArtifacts({
|
|
193
194
|
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":[]}
|