@rubytech/create-maxy-code 0.1.447 → 0.1.449

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.447",
3
+ "version": "0.1.449",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -19,8 +19,8 @@ function recordingRun(stdout) {
19
19
  const { run, calls } = recordingRun(JSON.stringify([{ name: "gls-leads", uuid: "u1" }]));
20
20
  const cf = (0, cf_exec_js_1.makeCfExec)(cred, run);
21
21
  strict_1.default.deepEqual(await cf.d1List(), [{ name: "gls-leads", uuid: "u1" }]);
22
- strict_1.default.equal(calls[0].cmd, "wrangler");
23
- strict_1.default.deepEqual(calls[0].args, ["d1", "list", "--json"]);
22
+ strict_1.default.equal(calls[0].cmd, "npx");
23
+ strict_1.default.deepEqual(calls[0].args, ["wrangler", "d1", "list", "--json"]);
24
24
  strict_1.default.equal(calls[0].env.CLOUDFLARE_API_TOKEN, "cfat_x");
25
25
  strict_1.default.equal(calls[0].env.CLOUDFLARE_ACCOUNT_ID, "acc-h");
26
26
  });
@@ -28,8 +28,9 @@ function recordingRun(stdout) {
28
28
  const { run, calls } = recordingRun(JSON.stringify([{ results: [] }]));
29
29
  const cf = (0, cf_exec_js_1.makeCfExec)(cred, run);
30
30
  await cf.d1Query("gls-leads", "SELECT 1");
31
+ strict_1.default.equal(calls[0].cmd, "npx");
31
32
  strict_1.default.deepEqual(calls[0].args, [
32
- "d1", "execute", "gls-leads", "--remote", "--json", "--command", "SELECT 1",
33
+ "wrangler", "d1", "execute", "gls-leads", "--remote", "--json", "--command", "SELECT 1",
33
34
  ]);
34
35
  });
35
36
  (0, node_test_1.default)("d1Create parses the created uuid", async () => {
@@ -41,7 +42,8 @@ function recordingRun(stdout) {
41
42
  const { run, calls } = recordingRun("");
42
43
  const cf = (0, cf_exec_js_1.makeCfExec)(cred, run);
43
44
  await cf.r2Create("gls-assets");
44
- strict_1.default.deepEqual(calls[0].args, ["r2", "bucket", "create", "gls-assets"]);
45
+ strict_1.default.equal(calls[0].cmd, "npx");
46
+ strict_1.default.deepEqual(calls[0].args, ["wrangler", "r2", "bucket", "create", "gls-assets"]);
45
47
  });
46
48
  (0, node_test_1.default)("non-JSON output throws with the raw body", async () => {
47
49
  const { run } = recordingRun("not json");
@@ -1 +1 @@
1
- {"version":3,"file":"cf-exec.test.js","sourceRoot":"","sources":["../../src/__tests__/cf-exec.test.ts"],"names":[],"mappings":";;;;;AAAA,0DAA6B;AAC7B,gEAAwC;AACxC,8CAAuD;AAEvD,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAExD,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,KAAK,GAAwE,EAAE,CAAC;IACtF,MAAM,GAAG,GAAU,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,CAAC;IACF,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,CAAC;AAED,IAAA,mBAAI,EAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;IACzE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,gBAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzE,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACvC,gBAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC1D,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC5D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC1C,gBAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QAC9B,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU;KAC5E,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IAClD,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,gBAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;IAC3D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChC,gBAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;IAC1D,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cf-exec.test.js","sourceRoot":"","sources":["../../src/__tests__/cf-exec.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cf-exec.d.ts","sourceRoot":"","sources":["../src/cf-exec.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,MAAM,KAAK,GAAG,CAClB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACxB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjC,MAAM,WAAW,MAAM;IACrB,MAAM,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAqBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,GAAE,KAAkB,GAAG,MAAM,CAgCjF"}
1
+ {"version":3,"file":"cf-exec.d.ts","sourceRoot":"","sources":["../src/cf-exec.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,MAAM,KAAK,GAAG,CAClB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACxB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjC,MAAM,WAAW,MAAM;IACrB,MAAM,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAqBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,GAAE,KAAkB,GAAG,MAAM,CAmCjF"}
@@ -28,25 +28,28 @@ function makeCfExec(cred, run = defaultRun) {
28
28
  CLOUDFLARE_API_TOKEN: cred.apiToken,
29
29
  CLOUDFLARE_ACCOUNT_ID: cred.accountId,
30
30
  };
31
+ // Resolve wrangler via `npx`, never bare: the brand server PATH carries no
32
+ // global wrangler, only `npx wrangler` resolves — the same proven form the
33
+ // scheduling plugin's buildD1Command uses (Task 1661). Bare `wrangler` ENOENTs.
31
34
  return {
32
35
  async d1List() {
33
- const { stdout } = await run("wrangler", ["d1", "list", "--json"], env);
36
+ const { stdout } = await run("npx", ["wrangler", "d1", "list", "--json"], env);
34
37
  return parseJson(stdout, "d1 list");
35
38
  },
36
39
  async d1Create(name) {
37
- const { stdout } = await run("wrangler", ["d1", "create", name, "--json"], env);
40
+ const { stdout } = await run("npx", ["wrangler", "d1", "create", name, "--json"], env);
38
41
  return parseJson(stdout, "d1 create");
39
42
  },
40
43
  async d1Query(name, sql) {
41
- const { stdout } = await run("wrangler", ["d1", "execute", name, "--remote", "--json", "--command", sql], env);
44
+ const { stdout } = await run("npx", ["wrangler", "d1", "execute", name, "--remote", "--json", "--command", sql], env);
42
45
  return parseJson(stdout, "d1 execute");
43
46
  },
44
47
  async r2List() {
45
- const { stdout } = await run("wrangler", ["r2", "bucket", "list", "--json"], env);
48
+ const { stdout } = await run("npx", ["wrangler", "r2", "bucket", "list", "--json"], env);
46
49
  return parseJson(stdout, "r2 bucket list");
47
50
  },
48
51
  async r2Create(name) {
49
- await run("wrangler", ["r2", "bucket", "create", name], env);
52
+ await run("npx", ["wrangler", "r2", "bucket", "create", name], env);
50
53
  },
51
54
  };
52
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cf-exec.js","sourceRoot":"","sources":["../src/cf-exec.ts"],"names":[],"mappings":";AAAA,yEAAyE;AACzE,iFAAiF;AACjF,iFAAiF;;AAsCjF,gCAgCC;AApED,2DAA8C;AAiB9C,MAAM,UAAU,GAAU,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAC3C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,IAAA,6BAAQ,EAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACnD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,SAAS,SAAS,CAAC,GAAW,EAAE,OAAe;IAC7C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,8BAA8B,GAAG,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,IAAqB,EAAE,MAAa,UAAU;IACvE,MAAM,GAAG,GAAG;QACV,GAAG,OAAO,CAAC,GAAG;QACd,oBAAoB,EAAE,IAAI,CAAC,QAAQ;QACnC,qBAAqB,EAAE,IAAI,CAAC,SAAS;KACZ,CAAC;IAE5B,OAAO;QACL,KAAK,CAAC,MAAM;YACV,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;YACxE,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,CAAqC,CAAC;QAC1E,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;YAChF,OAAO,SAAS,CAAC,MAAM,EAAE,WAAW,CAAqB,CAAC;QAC5D,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAC1B,UAAU,EACV,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,EAC/D,GAAG,CACJ,CAAC;YACF,OAAO,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,MAAM;YACV,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;YAClF,OAAO,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAuB,CAAC;QACnE,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,IAAI;YACjB,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cf-exec.js","sourceRoot":"","sources":["../src/cf-exec.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,8 @@ test("d1List parses --json output and injects the house token", async () => {
17
17
  const { run, calls } = recordingRun(JSON.stringify([{ name: "gls-leads", uuid: "u1" }]));
18
18
  const cf = makeCfExec(cred, run);
19
19
  assert.deepEqual(await cf.d1List(), [{ name: "gls-leads", uuid: "u1" }]);
20
- assert.equal(calls[0].cmd, "wrangler");
21
- assert.deepEqual(calls[0].args, ["d1", "list", "--json"]);
20
+ assert.equal(calls[0].cmd, "npx");
21
+ assert.deepEqual(calls[0].args, ["wrangler", "d1", "list", "--json"]);
22
22
  assert.equal(calls[0].env.CLOUDFLARE_API_TOKEN, "cfat_x");
23
23
  assert.equal(calls[0].env.CLOUDFLARE_ACCOUNT_ID, "acc-h");
24
24
  });
@@ -27,8 +27,9 @@ test("d1Query runs execute --remote with the SQL", async () => {
27
27
  const { run, calls } = recordingRun(JSON.stringify([{ results: [] }]));
28
28
  const cf = makeCfExec(cred, run);
29
29
  await cf.d1Query("gls-leads", "SELECT 1");
30
+ assert.equal(calls[0].cmd, "npx");
30
31
  assert.deepEqual(calls[0].args, [
31
- "d1", "execute", "gls-leads", "--remote", "--json", "--command", "SELECT 1",
32
+ "wrangler", "d1", "execute", "gls-leads", "--remote", "--json", "--command", "SELECT 1",
32
33
  ]);
33
34
  });
34
35
 
@@ -42,7 +43,8 @@ test("r2Create shells wrangler r2 bucket create", async () => {
42
43
  const { run, calls } = recordingRun("");
43
44
  const cf = makeCfExec(cred, run);
44
45
  await cf.r2Create("gls-assets");
45
- assert.deepEqual(calls[0].args, ["r2", "bucket", "create", "gls-assets"]);
46
+ assert.equal(calls[0].cmd, "npx");
47
+ assert.deepEqual(calls[0].args, ["wrangler", "r2", "bucket", "create", "gls-assets"]);
46
48
  });
47
49
 
48
50
  test("non-JSON output throws with the raw body", async () => {
@@ -45,29 +45,32 @@ export function makeCfExec(cred: HouseCredential, run: RunFn = defaultRun): CfEx
45
45
  CLOUDFLARE_ACCOUNT_ID: cred.accountId,
46
46
  } as Record<string, string>;
47
47
 
48
+ // Resolve wrangler via `npx`, never bare: the brand server PATH carries no
49
+ // global wrangler, only `npx wrangler` resolves — the same proven form the
50
+ // scheduling plugin's buildD1Command uses (Task 1661). Bare `wrangler` ENOENTs.
48
51
  return {
49
52
  async d1List() {
50
- const { stdout } = await run("wrangler", ["d1", "list", "--json"], env);
53
+ const { stdout } = await run("npx", ["wrangler", "d1", "list", "--json"], env);
51
54
  return parseJson(stdout, "d1 list") as { name: string; uuid: string }[];
52
55
  },
53
56
  async d1Create(name) {
54
- const { stdout } = await run("wrangler", ["d1", "create", name, "--json"], env);
57
+ const { stdout } = await run("npx", ["wrangler", "d1", "create", name, "--json"], env);
55
58
  return parseJson(stdout, "d1 create") as { uuid: string };
56
59
  },
57
60
  async d1Query(name, sql) {
58
61
  const { stdout } = await run(
59
- "wrangler",
60
- ["d1", "execute", name, "--remote", "--json", "--command", sql],
62
+ "npx",
63
+ ["wrangler", "d1", "execute", name, "--remote", "--json", "--command", sql],
61
64
  env,
62
65
  );
63
66
  return parseJson(stdout, "d1 execute");
64
67
  },
65
68
  async r2List() {
66
- const { stdout } = await run("wrangler", ["r2", "bucket", "list", "--json"], env);
69
+ const { stdout } = await run("npx", ["wrangler", "r2", "bucket", "list", "--json"], env);
67
70
  return parseJson(stdout, "r2 bucket list") as { name: string }[];
68
71
  },
69
72
  async r2Create(name) {
70
- await run("wrangler", ["r2", "bucket", "create", name], env);
73
+ await run("npx", ["wrangler", "r2", "bucket", "create", name], env);
71
74
  },
72
75
  };
73
76
  }
@@ -1536,8 +1536,11 @@ FOR (nt:Note) ON (nt.accountId);
1536
1536
  // stamps the migration provenance once. author is 'unknown' (the scalar carried
1537
1537
  // none) and createdAt is the migration time (the scalar had no timestamp). The
1538
1538
  // scalar is always removed, so the fold does not double-render as node + scalar.
1539
+ // jobId can be legally absent (the uniqueness constraint above does not enforce
1540
+ // presence) — coalesce onto elementId(j) so a jobId-less Job still yields a
1541
+ // non-null MERGE key instead of aborting the whole seed on a null property.
1539
1542
  MATCH (j:Job) WHERE j.notes IS NOT NULL AND trim(j.notes) <> ''
1540
- MERGE (nt:Note { accountId: j.accountId, noteId: 'migrated-job-' + j.jobId })
1543
+ MERGE (nt:Note { accountId: j.accountId, noteId: 'migrated-job-' + coalesce(j.jobId, elementId(j)) })
1541
1544
  ON CREATE SET nt.text = j.notes,
1542
1545
  nt.author = 'unknown',
1543
1546
  nt.createdAt = toString(datetime()),
@@ -93,27 +93,27 @@ function makeCfExec(cred, run = defaultRun) {
93
93
  };
94
94
  return {
95
95
  async d1List() {
96
- const { stdout } = await run("wrangler", ["d1", "list", "--json"], env);
96
+ const { stdout } = await run("npx", ["wrangler", "d1", "list", "--json"], env);
97
97
  return parseJson(stdout, "d1 list");
98
98
  },
99
99
  async d1Create(name) {
100
- const { stdout } = await run("wrangler", ["d1", "create", name, "--json"], env);
100
+ const { stdout } = await run("npx", ["wrangler", "d1", "create", name, "--json"], env);
101
101
  return parseJson(stdout, "d1 create");
102
102
  },
103
103
  async d1Query(name, sql) {
104
104
  const { stdout } = await run(
105
- "wrangler",
106
- ["d1", "execute", name, "--remote", "--json", "--command", sql],
105
+ "npx",
106
+ ["wrangler", "d1", "execute", name, "--remote", "--json", "--command", sql],
107
107
  env
108
108
  );
109
109
  return parseJson(stdout, "d1 execute");
110
110
  },
111
111
  async r2List() {
112
- const { stdout } = await run("wrangler", ["r2", "bucket", "list", "--json"], env);
112
+ const { stdout } = await run("npx", ["wrangler", "r2", "bucket", "list", "--json"], env);
113
113
  return parseJson(stdout, "r2 bucket list");
114
114
  },
115
115
  async r2Create(name) {
116
- await run("wrangler", ["r2", "bucket", "create", name], env);
116
+ await run("npx", ["wrangler", "r2", "bucket", "create", name], env);
117
117
  }
118
118
  };
119
119
  }
@@ -118,7 +118,7 @@ import {
118
118
  readHouseCredential,
119
119
  registerResource,
120
120
  resolveOwner
121
- } from "./chunk-4W6IEUFE.js";
121
+ } from "./chunk-B57PVHEX.js";
122
122
  import {
123
123
  __commonJS,
124
124
  __toESM
@@ -8679,7 +8679,7 @@ app3.post("/r2/create", async (c) => {
8679
8679
  });
8680
8680
  var storage_broker_default = app3;
8681
8681
  async function runStorageAudit(root) {
8682
- const { reconcileStorage } = await import("./src-BQ2NYMOT.js");
8682
+ const { reconcileStorage } = await import("./src-V6RKHCLM.js");
8683
8683
  const session = getSession();
8684
8684
  try {
8685
8685
  const cf = makeCfExec(readHouseCredential(root));
@@ -9,7 +9,7 @@ import {
9
9
  resolveOwner,
10
10
  stripAccountWideTokens,
11
11
  validateMapping
12
- } from "./chunk-4W6IEUFE.js";
12
+ } from "./chunk-B57PVHEX.js";
13
13
  import "./chunk-PFF6I7KP.js";
14
14
  export {
15
15
  authorizeAccess,