@akanjs/cli 2.4.1 → 2.4.2-rc.1

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 (66) hide show
  1. package/.build-stamp +1 -1
  2. package/{agent.command-sa12ccz3.js → agent.command-ash7wabs.js} +7 -7
  3. package/{application.command-jv63vv7z.js → application.command-zm47j93m.js} +5 -5
  4. package/{applicationBuildRunner-vzjdgv1g.js → applicationBuildRunner-554a2vnk.js} +6 -1
  5. package/{applicationReleasePackager-brvth6rs.js → applicationReleasePackager-pjbxc793.js} +1 -1
  6. package/buildBatch.proc.js +3 -3
  7. package/{capacitorApp-wnxzrppx.js → capacitorApp-wc75rvfm.js} +3 -3
  8. package/{cloud.command-8z2nc6b2.js → cloud.command-vwpzten0.js} +10 -10
  9. package/{context.command-0m854xme.js → context.command-j0kq87xa.js} +15 -15
  10. package/{dependencyScanner-m4x5maek.js → dependencyScanner-f6grrep3.js} +2 -2
  11. package/{guideline.command-dsdpae45.js → guideline.command-1m4jwhv0.js} +5 -5
  12. package/incrementalBuilder.proc.js +22 -14
  13. package/{index-eja0sbm6.js → index-0wgpfp7t.js} +6 -6
  14. package/{index-1b9f27pm.js → index-2nb022xv.js} +3 -3
  15. package/{index-n2mp0f48.js → index-31183bxt.js} +6 -6
  16. package/{index-p9f1rpbp.js → index-31e8cwjq.js} +5 -5
  17. package/{index-x53a5nya.js → index-46tjzh6s.js} +1 -1
  18. package/{index-61keag0s.js → index-67546d0j.js} +4 -1
  19. package/{index-q4sc46ec.js → index-79v9jwqe.js} +3 -3
  20. package/{index-m0vg9n8z.js → index-7k9sj7j5.js} +3 -2
  21. package/{index-e3b8ms64.js → index-8dsjmcbp.js} +11 -11
  22. package/{index-2v10yr8g.js → index-ckywhpvp.js} +1 -1
  23. package/{index-d2e2y85b.js → index-cp26p7qd.js} +4 -4
  24. package/{index-eqxmxan6.js → index-ehjhzg5y.js} +1 -1
  25. package/{index-phj3ewxv.js → index-en4zpzdm.js} +2 -2
  26. package/{index-qacv44mm.js → index-f1x6fe2e.js} +1 -1
  27. package/{index-m04as81s.js → index-mpj63mbw.js} +4 -4
  28. package/{index-3a4vntr0.js → index-n08vr4hh.js} +2 -2
  29. package/{index-5vvwc0cz.js → index-nsj2ftxj.js} +1 -1
  30. package/{index-0t7pwff2.js → index-s6nk9815.js} +182 -64
  31. package/{index-hk58kr1m.js → index-smt4re0s.js} +1 -1
  32. package/{index-zw4aqvwh.js → index-t5rn8q9f.js} +4 -4
  33. package/{index-h6pevatb.js → index-tnngmzgf.js} +7 -7
  34. package/{index-eay4t1te.js → index-xdf6rxyt.js} +3 -3
  35. package/{index-81epkybm.js → index-xjkjcbhd.js} +3 -3
  36. package/index.js +19 -19
  37. package/{library.command-fhx5ce8n.js → library.command-39eq3brk.js} +4 -4
  38. package/{localRegistry.command-18f61945.js → localRegistry.command-34zvgkys.js} +9 -9
  39. package/{module.command-29wvnb56.js → module.command-vwahdkzr.js} +8 -8
  40. package/{package.command-46r1dncm.js → package.command-wkwd5x5p.js} +5 -5
  41. package/package.json +2 -2
  42. package/{page.command-vxvqdzc0.js → page.command-9w85hrg0.js} +4 -4
  43. package/{primitive.command-yk622wmt.js → primitive.command-2hnr8h7f.js} +9 -9
  44. package/{quality.command-p0mb5xwt.js → quality.command-4kerz7mh.js} +3 -3
  45. package/{repair.command-nptckp6w.js → repair.command-zmwshmvr.js} +6 -6
  46. package/{routeSourceValidator-wbhmbwpj.js → routeSourceValidator-cncd92fv.js} +39 -0
  47. package/{scalar.command-bss14hez.js → scalar.command-9kanb73t.js} +7 -7
  48. package/templates/workspaceRoot/.cursor/rules/akan-page-routing.mdc.template +27 -1
  49. package/templates/workspaceRoot/.cursor/rules/akan-sync-conventions.mdc.template +14 -0
  50. package/templates/workspaceRoot/.cursor/rules/client-server-boundaries.mdc.template +1 -1
  51. package/templates/workspaceRoot/.cursor/rules/coding-comments.mdc.template +13 -7
  52. package/templates/workspaceRoot/.cursor/rules/coding-style.mdc.template +23 -3
  53. package/templates/workspaceRoot/.cursor/rules/lint-enforced-rules.mdc.template +18 -0
  54. package/templates/workspaceRoot/.cursor/rules/module-file-playbook.mdc.template +61 -0
  55. package/templates/workspaceRoot/.cursor/rules/naming-conventions.mdc.template +15 -0
  56. package/templates/workspaceRoot/.cursor/rules/react-component-style.mdc.template +21 -0
  57. package/templates/workspaceRoot/.cursor/rules/scalar-modeling.mdc.template +47 -3
  58. package/templates/workspaceRoot/.cursor/rules/service-signal-conventions.mdc.template +69 -0
  59. package/templates/workspaceRoot/.cursor/rules/srvkit-adapters-and-guards.mdc.template +50 -0
  60. package/templates/workspaceRoot/.cursor/rules/typescript-imports.mdc.template +3 -0
  61. package/templates/workspaceRoot/.gitignore.template +1 -0
  62. package/templates/workspaceRoot/AGENTS.md.template +140 -14
  63. package/templates/workspaceRoot/docs/AI-DEVELOPMENT.md.template +19 -0
  64. package/templates/workspaceRoot/docs/GENERATED.md.template +1 -1
  65. package/{workflow.command-7fhqb33d.js → workflow.command-4areq0ex.js} +12 -12
  66. package/{workspace.command-xkcec7ky.js → workspace.command-02x93b10.js} +22 -22
package/.build-stamp CHANGED
@@ -1 +1 @@
1
- 5e0a0ede01c639bf84d5ddf31e5f930a0176e0748ad6935007789b9037687962
1
+ 267b35e31ad3c4b46042123b1a70ac6abdc6a296be7c297a037753bb89b81135
@@ -1,16 +1,16 @@
1
1
  // @bun
2
2
  import {
3
3
  AgentScript
4
- } from "./index-q4sc46ec.js";
5
- import"./index-eay4t1te.js";
6
- import"./index-2v10yr8g.js";
7
- import"./index-eqxmxan6.js";
4
+ } from "./index-79v9jwqe.js";
5
+ import"./index-xdf6rxyt.js";
6
+ import"./index-ckywhpvp.js";
7
+ import"./index-ehjhzg5y.js";
8
8
  import {
9
9
  Workspace,
10
10
  command
11
- } from "./index-phj3ewxv.js";
12
- import"./index-0t7pwff2.js";
13
- import"./index-61keag0s.js";
11
+ } from "./index-en4zpzdm.js";
12
+ import"./index-s6nk9815.js";
13
+ import"./index-67546d0j.js";
14
14
  import"./index-6pz1j0zj.js";
15
15
  import"./index-r24hmh0q.js";
16
16
 
@@ -1,21 +1,21 @@
1
1
  // @bun
2
2
  import {
3
3
  ApplicationScript
4
- } from "./index-n2mp0f48.js";
4
+ } from "./index-31183bxt.js";
5
5
  import {
6
6
  getMobileTargetChoices
7
7
  } from "./index-76rn3g2c.js";
8
- import"./index-3a4vntr0.js";
8
+ import"./index-n08vr4hh.js";
9
9
  import {
10
10
  App,
11
11
  Exec,
12
12
  Sys,
13
13
  Workspace,
14
14
  command
15
- } from "./index-phj3ewxv.js";
15
+ } from "./index-en4zpzdm.js";
16
16
  import"./index-fgc8r6dj.js";
17
- import"./index-0t7pwff2.js";
18
- import"./index-61keag0s.js";
17
+ import"./index-s6nk9815.js";
18
+ import"./index-67546d0j.js";
19
19
  import"./index-bjpxzr6s.js";
20
20
  import"./index-6pz1j0zj.js";
21
21
  import"./index-r24hmh0q.js";
@@ -4,7 +4,7 @@ import {
4
4
  CsrArtifactBuilder,
5
5
  SsrBaseArtifactBuilder,
6
6
  precompressArtifacts
7
- } from "./index-m0vg9n8z.js";
7
+ } from "./index-7k9sj7j5.js";
8
8
  import"./index-rh16j3c7.js";
9
9
  import"./index-bjpxzr6s.js";
10
10
  import {
@@ -202,6 +202,10 @@ void run().catch((error) => {
202
202
  async#writeTypecheckTsconfig({ incremental = true } = {}) {
203
203
  const typecheckDir = path.join(this.#app.cwdPath, ".akan", "typecheck");
204
204
  await mkdir(typecheckDir, { recursive: true });
205
+ const libPageIncludes = (await this.#app.getPageRoots()).filter((root) => root.keyPrefix).flatMap((root) => {
206
+ const rel = path.relative(typecheckDir, root.realDir).split(path.sep).join("/");
207
+ return [`${rel}/**/*.ts`, `${rel}/**/*.tsx`];
208
+ });
205
209
  const tsconfig = {
206
210
  extends: "../../tsconfig.json",
207
211
  compilerOptions: {
@@ -215,6 +219,7 @@ void run().catch((error) => {
215
219
  "../../client.ts",
216
220
  "../../page/**/*.ts",
217
221
  "../../page/**/*.tsx",
222
+ ...libPageIncludes,
218
223
  "../../../../pkgs/akanjs/*/types/**/*.d.ts"
219
224
  ],
220
225
  references: []
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  FileSys
4
- } from "./index-61keag0s.js";
4
+ } from "./index-67546d0j.js";
5
5
  import {
6
6
  Spinner
7
7
  } from "./index-6pz1j0zj.js";
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  AppExecutor,
4
4
  WorkspaceExecutor
5
- } from "./index-0t7pwff2.js";
6
- import"./index-61keag0s.js";
5
+ } from "./index-s6nk9815.js";
6
+ import"./index-67546d0j.js";
7
7
  import {
8
8
  CsrArtifactBuilder,
9
9
  CssCompiler,
10
10
  FontOptimizer,
11
11
  PagesBundleBuilder,
12
12
  SsrBaseArtifactBuilder
13
- } from "./index-m0vg9n8z.js";
13
+ } from "./index-7k9sj7j5.js";
14
14
  import"./index-rh16j3c7.js";
15
15
  import"./index-bjpxzr6s.js";
16
16
  import"./index-6pz1j0zj.js";
@@ -24,10 +24,10 @@ import {
24
24
  selectLocalDevHost,
25
25
  sortIosRunTargets,
26
26
  writeRootCapacitorConfig
27
- } from "./index-hk58kr1m.js";
27
+ } from "./index-smt4re0s.js";
28
28
  import"./index-76rn3g2c.js";
29
- import"./index-0t7pwff2.js";
30
- import"./index-61keag0s.js";
29
+ import"./index-s6nk9815.js";
30
+ import"./index-67546d0j.js";
31
31
  import"./index-6pz1j0zj.js";
32
32
  import"./index-r24hmh0q.js";
33
33
  export {
@@ -1,23 +1,23 @@
1
1
  // @bun
2
2
  import {
3
3
  CloudScript
4
- } from "./index-eja0sbm6.js";
5
- import"./index-zw4aqvwh.js";
4
+ } from "./index-0wgpfp7t.js";
5
+ import"./index-t5rn8q9f.js";
6
6
  import {
7
7
  GlobalConfig
8
- } from "./index-5vvwc0cz.js";
9
- import"./index-n2mp0f48.js";
8
+ } from "./index-nsj2ftxj.js";
9
+ import"./index-31183bxt.js";
10
10
  import"./index-76rn3g2c.js";
11
- import"./index-3a4vntr0.js";
12
- import"./index-p9f1rpbp.js";
11
+ import"./index-n08vr4hh.js";
12
+ import"./index-31e8cwjq.js";
13
13
  import {
14
14
  Workspace,
15
15
  command
16
- } from "./index-phj3ewxv.js";
16
+ } from "./index-en4zpzdm.js";
17
17
  import"./index-fgc8r6dj.js";
18
- import"./index-0t7pwff2.js";
19
- import"./index-x53a5nya.js";
20
- import"./index-61keag0s.js";
18
+ import"./index-s6nk9815.js";
19
+ import"./index-46tjzh6s.js";
20
+ import"./index-67546d0j.js";
21
21
  import"./index-bjpxzr6s.js";
22
22
  import"./index-6pz1j0zj.js";
23
23
  import"./index-r24hmh0q.js";
@@ -1,26 +1,26 @@
1
1
  // @bun
2
2
  import {
3
3
  ContextScript
4
- } from "./index-e3b8ms64.js";
5
- import"./index-81epkybm.js";
6
- import"./index-1b9f27pm.js";
7
- import"./index-d2e2y85b.js";
8
- import"./index-m04as81s.js";
9
- import"./index-h6pevatb.js";
10
- import"./index-qacv44mm.js";
4
+ } from "./index-8dsjmcbp.js";
5
+ import"./index-xjkjcbhd.js";
6
+ import"./index-2nb022xv.js";
7
+ import"./index-cp26p7qd.js";
8
+ import"./index-mpj63mbw.js";
9
+ import"./index-tnngmzgf.js";
10
+ import"./index-f1x6fe2e.js";
11
11
  import"./index-ss469dec.js";
12
- import"./index-hk58kr1m.js";
13
- import"./index-eay4t1te.js";
14
- import"./index-2v10yr8g.js";
15
- import"./index-eqxmxan6.js";
16
- import"./index-5vvwc0cz.js";
12
+ import"./index-smt4re0s.js";
13
+ import"./index-xdf6rxyt.js";
14
+ import"./index-ckywhpvp.js";
15
+ import"./index-ehjhzg5y.js";
16
+ import"./index-nsj2ftxj.js";
17
17
  import"./index-76rn3g2c.js";
18
18
  import {
19
19
  Workspace,
20
20
  command
21
- } from "./index-phj3ewxv.js";
22
- import"./index-0t7pwff2.js";
23
- import"./index-61keag0s.js";
21
+ } from "./index-en4zpzdm.js";
22
+ import"./index-s6nk9815.js";
23
+ import"./index-67546d0j.js";
24
24
  import"./index-6pz1j0zj.js";
25
25
  import"./index-r24hmh0q.js";
26
26
 
@@ -1,8 +1,8 @@
1
1
  // @bun
2
2
  import {
3
3
  TypeScriptDependencyScanner
4
- } from "./index-x53a5nya.js";
5
- import"./index-61keag0s.js";
4
+ } from "./index-46tjzh6s.js";
5
+ import"./index-67546d0j.js";
6
6
  import"./index-r24hmh0q.js";
7
7
  export {
8
8
  TypeScriptDependencyScanner
@@ -1,22 +1,22 @@
1
1
  // @bun
2
2
  import {
3
3
  Prompter
4
- } from "./index-eqxmxan6.js";
4
+ } from "./index-ehjhzg5y.js";
5
5
  import {
6
6
  AiSession
7
- } from "./index-5vvwc0cz.js";
7
+ } from "./index-nsj2ftxj.js";
8
8
  import {
9
9
  Workspace,
10
10
  command,
11
11
  runner,
12
12
  script
13
- } from "./index-phj3ewxv.js";
13
+ } from "./index-en4zpzdm.js";
14
14
  import {
15
15
  getDirname
16
- } from "./index-0t7pwff2.js";
16
+ } from "./index-s6nk9815.js";
17
17
  import {
18
18
  FileSys
19
- } from "./index-61keag0s.js";
19
+ } from "./index-67546d0j.js";
20
20
  import"./index-6pz1j0zj.js";
21
21
  import"./index-r24hmh0q.js";
22
22
 
@@ -5,8 +5,8 @@ import {
5
5
  import {
6
6
  AppExecutor,
7
7
  WorkspaceExecutor
8
- } from "./index-0t7pwff2.js";
9
- import"./index-61keag0s.js";
8
+ } from "./index-s6nk9815.js";
9
+ import"./index-67546d0j.js";
10
10
  import {
11
11
  AutoImportSync,
12
12
  DevChangePlanner,
@@ -268,27 +268,34 @@ class IncrementalBuilder {
268
268
  get shuttingDown() {
269
269
  return this.#shuttingDown;
270
270
  }
271
- batchTouchesPagesTree(appDir, batch) {
272
- const absAppDir = path2.resolve(appDir);
271
+ static #matchPageRoot(roots, abs) {
272
+ for (const root of roots) {
273
+ const absRoot = path2.resolve(root.realDir);
274
+ if (abs === absRoot || abs.startsWith(`${absRoot}${path2.sep}`))
275
+ return root;
276
+ }
277
+ return null;
278
+ }
279
+ batchTouchesPagesTree(roots, batch) {
273
280
  for (const f of batch.files) {
274
281
  const abs = path2.resolve(f);
275
- if (!abs.startsWith(`${absAppDir}${path2.sep}`) && abs !== absAppDir)
282
+ if (!IncrementalBuilder.#matchPageRoot(roots, abs))
276
283
  continue;
277
284
  if (/\.(tsx|ts|jsx|js)$/.test(abs))
278
285
  return true;
279
286
  }
280
287
  return false;
281
288
  }
282
- async batchMayChangePageKeys(appDir, batch) {
283
- const absAppDir = path2.resolve(appDir);
289
+ async batchMayChangePageKeys(roots, batch) {
284
290
  const pageKeys = new Set((await this.#app.getPageKeys()).map((key) => path2.normalize(key)));
285
291
  for (const f of batch.files) {
286
292
  const abs = path2.resolve(f);
287
- if (!abs.startsWith(`${absAppDir}${path2.sep}`) && abs !== absAppDir)
293
+ const root = IncrementalBuilder.#matchPageRoot(roots, abs);
294
+ if (!root)
288
295
  continue;
289
296
  if (!/\.(tsx|ts|jsx|js)$/.test(abs))
290
297
  continue;
291
- const rel = path2.normalize(path2.relative(absAppDir, abs));
298
+ const rel = path2.normalize(`${root.keyPrefix}${path2.relative(path2.resolve(root.realDir), abs)}`);
292
299
  if (!await Bun.file(abs).exists() || !pageKeys.has(rel))
293
300
  return true;
294
301
  }
@@ -327,20 +334,20 @@ class IncrementalBuilder {
327
334
  }, 150);
328
335
  }
329
336
  async installWatcher() {
330
- const [appDir, artifactDir] = [`${this.#app.cwdPath}/page`, this.#artifactDir];
337
+ const artifactDir = this.#artifactDir;
331
338
  const roots = await new WatchRootResolver(this.#app).resolve();
332
339
  const watcher = new HmrWatcher({
333
340
  roots,
334
341
  logger: this.#logger,
335
342
  onBatch: async (batch) => {
336
- await this.#enqueueWork("hmr-batch", async () => this.#handleWatchBatch(appDir, artifactDir, batch));
343
+ await this.#enqueueWork("hmr-batch", async () => this.#handleWatchBatch(artifactDir, batch));
337
344
  }
338
345
  });
339
346
  await watcher.start();
340
347
  this.#watcher = watcher;
341
348
  this.#logger.verbose(`watching ${roots.length} roots`);
342
349
  }
343
- async#handleWatchBatch(appDir, artifactDir, batch) {
350
+ async#handleWatchBatch(artifactDir, batch) {
344
351
  const rawKinds = new Set(batch.kinds);
345
352
  if (rawKinds.size === 0)
346
353
  return;
@@ -382,11 +389,12 @@ class IncrementalBuilder {
382
389
  if (kinds.includes("code") && !rebuildClient) {
383
390
  this.#logger.verbose(`client rebuild skipped; devPlan actions=${devPlan.actions.join(",") || "(none)"}`);
384
391
  }
385
- if (kinds.includes("code") && rebuildClient && await this.batchMayChangePageKeys(appDir, expandedBatch)) {
392
+ const pageRoots = await this.#app.getPageRoots();
393
+ if (kinds.includes("code") && rebuildClient && await this.batchMayChangePageKeys(pageRoots, expandedBatch)) {
386
394
  const started = Date.now();
387
395
  await this.#app.getPageKeys({ refresh: true });
388
396
  this.#logger.verbose(`pageKeys updated, app pageKeys are refreshed (${Date.now() - started}ms)`);
389
- } else if (kinds.includes("code") && rebuildClient && this.batchTouchesPagesTree(appDir, expandedBatch)) {
397
+ } else if (kinds.includes("code") && rebuildClient && this.batchTouchesPagesTree(pageRoots, expandedBatch)) {
390
398
  this.#logger.verbose("pageKeys refresh skipped; changed page source cannot add/remove a route key");
391
399
  }
392
400
  const needs = [];
@@ -1,24 +1,24 @@
1
1
  // @bun
2
2
  import {
3
3
  CloudRunner
4
- } from "./index-zw4aqvwh.js";
4
+ } from "./index-t5rn8q9f.js";
5
5
  import {
6
6
  AiSession,
7
7
  CloudApi,
8
8
  GlobalConfig
9
- } from "./index-5vvwc0cz.js";
9
+ } from "./index-nsj2ftxj.js";
10
10
  import {
11
11
  ApplicationScript
12
- } from "./index-n2mp0f48.js";
12
+ } from "./index-31183bxt.js";
13
13
  import {
14
14
  PackageScript
15
- } from "./index-p9f1rpbp.js";
15
+ } from "./index-31e8cwjq.js";
16
16
  import {
17
17
  script
18
- } from "./index-phj3ewxv.js";
18
+ } from "./index-en4zpzdm.js";
19
19
  import {
20
20
  PkgExecutor
21
- } from "./index-0t7pwff2.js";
21
+ } from "./index-s6nk9815.js";
22
22
 
23
23
  // pkgs/@akanjs/cli/cloud/cloud.script.ts
24
24
  import { Logger } from "akanjs/common";
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  AkanContextAnalyzer
4
- } from "./index-eay4t1te.js";
4
+ } from "./index-xdf6rxyt.js";
5
5
  import {
6
6
  WorkflowExecutor,
7
7
  compactWorkflowInputs,
@@ -23,10 +23,10 @@ import {
23
23
  workflowCommandsForPlan,
24
24
  workflowPlanApproval,
25
25
  writeWorkflowRunArtifact
26
- } from "./index-2v10yr8g.js";
26
+ } from "./index-ckywhpvp.js";
27
27
  import {
28
28
  runner
29
- } from "./index-phj3ewxv.js";
29
+ } from "./index-en4zpzdm.js";
30
30
 
31
31
  // pkgs/@akanjs/cli/workflow/workflow.runner.ts
32
32
  import { mkdir, readFile, writeFile } from "fs/promises";
@@ -4,17 +4,17 @@ import {
4
4
  } from "./index-76rn3g2c.js";
5
5
  import {
6
6
  LibraryScript
7
- } from "./index-3a4vntr0.js";
7
+ } from "./index-n08vr4hh.js";
8
8
  import {
9
9
  runner,
10
10
  script
11
- } from "./index-phj3ewxv.js";
11
+ } from "./index-en4zpzdm.js";
12
12
  import {
13
13
  AppExecutor,
14
14
  LibExecutor,
15
15
  PkgExecutor,
16
16
  WorkspaceExecutor
17
- } from "./index-0t7pwff2.js";
17
+ } from "./index-s6nk9815.js";
18
18
  import {
19
19
  HmrWatcher,
20
20
  WatchRootResolver
@@ -1898,9 +1898,9 @@ function openBrowser(url) {
1898
1898
  }
1899
1899
 
1900
1900
  // pkgs/@akanjs/cli/application/application.runner.ts
1901
- var loadBuildRunner = async () => (await import("./applicationBuildRunner-vzjdgv1g.js")).ApplicationBuildRunner;
1902
- var loadReleasePackager = async () => (await import("./applicationReleasePackager-brvth6rs.js")).ApplicationReleasePackager;
1903
- var loadCapacitorApp = async () => (await import("./capacitorApp-wnxzrppx.js")).CapacitorApp;
1901
+ var loadBuildRunner = async () => (await import("./applicationBuildRunner-554a2vnk.js")).ApplicationBuildRunner;
1902
+ var loadReleasePackager = async () => (await import("./applicationReleasePackager-pjbxc793.js")).ApplicationReleasePackager;
1903
+ var loadCapacitorApp = async () => (await import("./capacitorApp-wc75rvfm.js")).CapacitorApp;
1904
1904
  var loadPrompts = async () => await import("@inquirer/prompts");
1905
1905
 
1906
1906
  class ApplicationRunner extends runner("application") {
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  runner,
4
4
  script
5
- } from "./index-phj3ewxv.js";
5
+ } from "./index-en4zpzdm.js";
6
6
  import {
7
7
  PkgExecutor
8
- } from "./index-0t7pwff2.js";
8
+ } from "./index-s6nk9815.js";
9
9
  import {
10
10
  TypeScriptDependencyScanner
11
- } from "./index-x53a5nya.js";
11
+ } from "./index-46tjzh6s.js";
12
12
  import {
13
13
  FileSys
14
- } from "./index-61keag0s.js";
14
+ } from "./index-67546d0j.js";
15
15
 
16
16
  // pkgs/@akanjs/cli/package/package.runner.ts
17
17
  import path2 from "path";
@@ -78,7 +78,7 @@ class PackageExportsMap {
78
78
  continue;
79
79
  if (subpath.length < prefix.length + suffix.length)
80
80
  continue;
81
- return target.replace("*", subpath.slice(prefix.length, subpath.length - suffix.length));
81
+ return target.replace(/\*/g, subpath.slice(prefix.length, subpath.length - suffix.length));
82
82
  }
83
83
  return null;
84
84
  }
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  FileSys
4
- } from "./index-61keag0s.js";
4
+ } from "./index-67546d0j.js";
5
5
 
6
6
  // pkgs/@akanjs/devkit/dependencyScanner.ts
7
7
  import { builtinModules } from "module";
@@ -1,6 +1,6 @@
1
1
  // @bun
2
2
  // pkgs/@akanjs/devkit/fileSys.ts
3
- import { stat } from "fs/promises";
3
+ import { lstat, stat } from "fs/promises";
4
4
  import { Logger } from "akanjs/common";
5
5
 
6
6
  class FileSys {
@@ -14,6 +14,9 @@ class FileSys {
14
14
  static async exists(path) {
15
15
  return await stat(path).then(() => true).catch(() => false);
16
16
  }
17
+ static async entryExists(path) {
18
+ return await lstat(path).then(() => true).catch(() => false);
19
+ }
17
20
  static async readText(path) {
18
21
  return await Bun.file(path).text();
19
22
  }
@@ -1,14 +1,14 @@
1
1
  // @bun
2
2
  import {
3
3
  AkanContextAnalyzer
4
- } from "./index-eay4t1te.js";
4
+ } from "./index-xdf6rxyt.js";
5
5
  import {
6
6
  Prompter
7
- } from "./index-eqxmxan6.js";
7
+ } from "./index-ehjhzg5y.js";
8
8
  import {
9
9
  runner,
10
10
  script
11
- } from "./index-phj3ewxv.js";
11
+ } from "./index-en4zpzdm.js";
12
12
 
13
13
  // pkgs/@akanjs/cli/agent/agent.script.ts
14
14
  import { Logger } from "akanjs/common";
@@ -1620,11 +1620,12 @@ class FontOptimizer {
1620
1620
  return "";
1621
1621
  }
1622
1622
  async#collectAutoSubsetText() {
1623
- const roots = ["page", "ui"].map((dir) => path9.join(this.#app.cwdPath, dir));
1623
+ const libPageRoots = (await this.#app.getPageRoots()).filter((root) => root.keyPrefix).map((root) => root.dir);
1624
+ const roots = [...["page", "ui"].map((dir) => path9.join(this.#app.cwdPath, dir)), ...libPageRoots];
1624
1625
  const glob = new Bun.Glob("**/*.{ts,tsx,js,jsx,html,md}");
1625
1626
  const parts = [];
1626
1627
  await Promise.all(roots.map(async (root) => {
1627
- if (!await Bun.file(root).exists())
1628
+ if (!await stat2(root).then((entry) => entry.isDirectory(), () => false))
1628
1629
  return;
1629
1630
  for await (const filePath of glob.scan({ cwd: root, absolute: true })) {
1630
1631
  parts.push(await Bun.file(filePath).text());
@@ -1,22 +1,22 @@
1
1
  // @bun
2
2
  import {
3
3
  RepairRunner
4
- } from "./index-81epkybm.js";
4
+ } from "./index-xjkjcbhd.js";
5
5
  import {
6
6
  WorkflowRunner
7
- } from "./index-1b9f27pm.js";
7
+ } from "./index-2nb022xv.js";
8
8
  import {
9
9
  ScalarScript
10
- } from "./index-d2e2y85b.js";
10
+ } from "./index-cp26p7qd.js";
11
11
  import {
12
12
  PrimitiveScript
13
- } from "./index-m04as81s.js";
13
+ } from "./index-mpj63mbw.js";
14
14
  import {
15
15
  ModuleScript
16
- } from "./index-h6pevatb.js";
16
+ } from "./index-tnngmzgf.js";
17
17
  import {
18
18
  isPlaceholderAppId
19
- } from "./index-hk58kr1m.js";
19
+ } from "./index-smt4re0s.js";
20
20
  import {
21
21
  AkanContextAnalyzer,
22
22
  akanMcpInstallConfigPaths,
@@ -27,17 +27,17 @@ import {
27
27
  renderDoctorText,
28
28
  resourceList,
29
29
  upsertCodexMcpServerBlock
30
- } from "./index-eay4t1te.js";
30
+ } from "./index-xdf6rxyt.js";
31
31
  import {
32
32
  buildAkanModuleContextIndex,
33
33
  createWorkflowBaselineSummary,
34
34
  createWorkflowStepRegistry,
35
35
  jsonText,
36
36
  toolingRolloutGate
37
- } from "./index-2v10yr8g.js";
37
+ } from "./index-ckywhpvp.js";
38
38
  import {
39
39
  Prompter
40
- } from "./index-eqxmxan6.js";
40
+ } from "./index-ehjhzg5y.js";
41
41
  import {
42
42
  getMobileTargets
43
43
  } from "./index-76rn3g2c.js";
@@ -45,10 +45,10 @@ import {
45
45
  CommandContainer,
46
46
  runner,
47
47
  script
48
- } from "./index-phj3ewxv.js";
48
+ } from "./index-en4zpzdm.js";
49
49
  import {
50
50
  AppExecutor
51
- } from "./index-0t7pwff2.js";
51
+ } from "./index-s6nk9815.js";
52
52
 
53
53
  // pkgs/@akanjs/cli/context/context.script.ts
54
54
  import { Logger } from "akanjs/common";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  AppExecutor,
4
4
  LibExecutor
5
- } from "./index-0t7pwff2.js";
5
+ } from "./index-s6nk9815.js";
6
6
 
7
7
  // pkgs/@akanjs/devkit/workflow/utils.ts
8
8
  var jsonText = (value, { trailingNewline = true } = {}) => `${JSON.stringify(value, null, 2)}${trailingNewline ? `
@@ -6,17 +6,17 @@ import {
6
6
  createPassedPrimitiveReport,
7
7
  generatedFilesForSync,
8
8
  scalarChangedFiles
9
- } from "./index-2v10yr8g.js";
9
+ } from "./index-ckywhpvp.js";
10
10
  import {
11
11
  Prompter
12
- } from "./index-eqxmxan6.js";
12
+ } from "./index-ehjhzg5y.js";
13
13
  import {
14
14
  AiSession
15
- } from "./index-5vvwc0cz.js";
15
+ } from "./index-nsj2ftxj.js";
16
16
  import {
17
17
  runner,
18
18
  script
19
- } from "./index-phj3ewxv.js";
19
+ } from "./index-en4zpzdm.js";
20
20
 
21
21
  // pkgs/@akanjs/cli/scalar/scalar.prompt.ts
22
22
  import { input } from "@inquirer/prompts";
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  getDirname
4
- } from "./index-0t7pwff2.js";
4
+ } from "./index-s6nk9815.js";
5
5
 
6
6
  // pkgs/@akanjs/devkit/prompter.ts
7
7
  import fsPromise from "fs/promises";
@@ -7,10 +7,10 @@ import {
7
7
  PkgExecutor,
8
8
  WorkspaceExecutor,
9
9
  getDirname
10
- } from "./index-0t7pwff2.js";
10
+ } from "./index-s6nk9815.js";
11
11
  import {
12
12
  FileSys
13
- } from "./index-61keag0s.js";
13
+ } from "./index-67546d0j.js";
14
14
  import {
15
15
  __require
16
16
  } from "./index-r24hmh0q.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  runner,
4
4
  script
5
- } from "./index-phj3ewxv.js";
5
+ } from "./index-en4zpzdm.js";
6
6
 
7
7
  // pkgs/@akanjs/cli/page/page.runner.ts
8
8
  class PageRunner extends runner("page") {