@akanjs/cli 3.0.0-alpha.8 → 3.0.0-alpha.9

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 (74) hide show
  1. package/.build-stamp +1 -1
  2. package/{agent.command-pggr92jj.js → agent.command-f0gqkfgz.js} +7 -6
  3. package/{application.command-692yap1d.js → application.command-x903m2qq.js} +5 -4
  4. package/buildBatch.proc.js +2 -1
  5. package/{capacitorApp-p0z5yab2.js → capacitorApp-9xswcgx7.js} +3 -2
  6. package/{cloud.command-wqfsyzv2.js → cloud.command-zs6kyf83.js} +8 -7
  7. package/{context.command-9bxtdn0w.js → context.command-fmepgjzg.js} +14 -13
  8. package/getDirname-m9s0cmhq.js +8 -0
  9. package/{guideline.command-nfqahxex.js → guideline.command-n6sw0a0c.js} +5 -4
  10. package/guidelines/conventions/conventions.generate.json +25 -0
  11. package/guidelines/conventions/conventions.instruction.md +668 -0
  12. package/guidelines/workspaceOnboarding/workspaceOnboarding.generate.json +24 -0
  13. package/guidelines/workspaceOnboarding/workspaceOnboarding.instruction.md +972 -0
  14. package/incrementalBuilder.proc.js +2 -1
  15. package/index-1577bej2.js +7 -0
  16. package/{index-bz2sfzzt.js → index-3vta1tqa.js} +4 -4
  17. package/{index-p3f4q532.js → index-4m0bphac.js} +3 -3
  18. package/{index-w6wbb612.js → index-5sn5w2mt.js} +13 -13
  19. package/{index-5dw57f0d.js → index-62955kn5.js} +6 -6
  20. package/{index-mssqn2sq.js → index-774gcx29.js} +43 -4
  21. package/{index-xhgtkekh.js → index-779ske1y.js} +1 -1
  22. package/{index-js368gk9.js → index-82jrh4hj.js} +5 -5
  23. package/{index-a1e0j63x.js → index-d43t8af2.js} +2 -2
  24. package/{index-gex7c8kd.js → index-eyyf2149.js} +34 -6
  25. package/{index-azv0xjb5.js → index-gcv8ncfh.js} +2 -2
  26. package/{index-7myvn0f0.js → index-j37qq1f2.js} +1 -1
  27. package/{index-ztpw544k.js → index-jf2ya7r2.js} +3 -3
  28. package/{index-vtj3zps1.js → index-jhpa13zj.js} +7 -7
  29. package/{index-6rhabeev.js → index-kdh76j26.js} +4 -2
  30. package/{index-5pmx7bkg.js → index-qzdjd4ct.js} +3 -3
  31. package/{index-2c3e2xh8.js → index-rxkpk7n4.js} +1 -1
  32. package/{index-4hek879p.js → index-xmmzf150.js} +1 -1
  33. package/{index-gmy45vz2.js → index-y4vkyhvv.js} +3 -3
  34. package/{index-vg0sj9nc.js → index-z8ptfkzv.js} +56 -18
  35. package/index.js +19 -18
  36. package/{library.command-md9715jz.js → library.command-cv9gdbmg.js} +4 -3
  37. package/{localRegistry.command-exkbamyj.js → localRegistry.command-d8fg36zc.js} +7 -6
  38. package/{module.command-w5aaddxk.js → module.command-qyr1s9cn.js} +7 -6
  39. package/{package.command-yfkrcy0z.js → package.command-wsjx0k47.js} +4 -3
  40. package/package.json +2 -2
  41. package/{page.command-echbavp4.js → page.command-rdzg65rm.js} +4 -3
  42. package/{primitive.command-9fbhspw2.js → primitive.command-89g38b53.js} +8 -7
  43. package/{quality.command-3pnt9yep.js → quality.command-0cs2z92d.js} +3 -2
  44. package/{repair.command-carj4vax.js → repair.command-6fphxfwj.js} +6 -5
  45. package/{scalar.command-51ryzypc.js → scalar.command-xfer69s6.js} +6 -5
  46. package/templates/crudPages/[__model__Id]/edit/page.tsx +1 -1
  47. package/templates/crudPages/new/page.tsx +1 -1
  48. package/templates/crudSinglePage/page.tsx +1 -1
  49. package/templates/module/__Model__.Util.tsx +1 -1
  50. package/templates/module/__Model__.Zone.tsx +3 -5
  51. package/templates/workspaceRoot/AGENTS.md.template +0 -972
  52. package/templates/workspaceRoot/biome.json.template +3 -244
  53. package/{workflow.command-91wmvm8k.js → workflow.command-2ygfqt4f.js} +13 -12
  54. package/{workspace.command-wa10mfd9.js → workspace.command-88m0zs64.js} +35 -33
  55. package/templates/workspaceRoot/.cursor/rules/akan-page-routing.mdc.template +0 -43
  56. package/templates/workspaceRoot/.cursor/rules/akan-sync-conventions.mdc.template +0 -34
  57. package/templates/workspaceRoot/.cursor/rules/application-test-commands.mdc.template +0 -16
  58. package/templates/workspaceRoot/.cursor/rules/change-scope.mdc.template +0 -12
  59. package/templates/workspaceRoot/.cursor/rules/client-server-boundaries.mdc.template +0 -18
  60. package/templates/workspaceRoot/.cursor/rules/coding-comments.mdc.template +0 -25
  61. package/templates/workspaceRoot/.cursor/rules/coding-style.mdc.template +0 -44
  62. package/templates/workspaceRoot/.cursor/rules/domain-module-conventions.mdc.template +0 -17
  63. package/templates/workspaceRoot/.cursor/rules/format-lint.mdc.template +0 -12
  64. package/templates/workspaceRoot/.cursor/rules/lint-enforced-rules.mdc.template +0 -19
  65. package/templates/workspaceRoot/.cursor/rules/module-file-playbook.mdc.template +0 -62
  66. package/templates/workspaceRoot/.cursor/rules/naming-conventions.mdc.template +0 -15
  67. package/templates/workspaceRoot/.cursor/rules/react-component-style.mdc.template +0 -21
  68. package/templates/workspaceRoot/.cursor/rules/repo-overview.mdc.template +0 -17
  69. package/templates/workspaceRoot/.cursor/rules/scalar-modeling.mdc.template +0 -99
  70. package/templates/workspaceRoot/.cursor/rules/secrets-and-env.mdc.template +0 -13
  71. package/templates/workspaceRoot/.cursor/rules/service-signal-conventions.mdc.template +0 -83
  72. package/templates/workspaceRoot/.cursor/rules/srvkit-adapters-and-guards.mdc.template +0 -50
  73. package/templates/workspaceRoot/.cursor/rules/ssr-first.mdc.template +0 -59
  74. package/templates/workspaceRoot/.cursor/rules/typescript-imports.mdc.template +0 -16
@@ -2,6 +2,9 @@
2
2
  import {
3
3
  Spinner
4
4
  } from "./index-mxvakhsm.js";
5
+ import {
6
+ getDirname
7
+ } from "./index-1577bej2.js";
5
8
  import {
6
9
  FileSys
7
10
  } from "./index-67546d0j.js";
@@ -44,6 +47,21 @@ var recipeScannerLoad = null;
44
47
  var loadRecipeScanner = () => recipeScannerLoad ??= import("./recipeScanner-tghkzrrt.js");
45
48
  var AGENT_BLOCK_START = "<!-- akan:agent:start -->";
46
49
  var AGENT_BLOCK_END = "<!-- akan:agent:end -->";
50
+ var AGENT_VERSION_PREFIX = "<!-- akan:agent:version ";
51
+ var stampBlockVersion = (block, version) => `${AGENT_VERSION_PREFIX}${version} -->
52
+
53
+ ${block}`;
54
+ var extractBlockVersion = (content) => content.match(/<!-- akan:agent:version ([^\s]+) -->/)?.[1] ?? null;
55
+ var readDevkitVersion = async () => {
56
+ const { readFile } = await import("fs/promises");
57
+ const { getDirname: getDirname2 } = await import("./getDirname-m9s0cmhq.js");
58
+ try {
59
+ const raw = await readFile(`${getDirname2(import.meta.url)}/package.json`, "utf-8");
60
+ return JSON.parse(raw).version ?? null;
61
+ } catch {
62
+ return null;
63
+ }
64
+ };
47
65
  var upsertAgentBlock = (existing, block) => {
48
66
  const managed = `${AGENT_BLOCK_START}
49
67
  ${block}
@@ -627,15 +645,10 @@ var decreaseBuildNum = async (app) => {
627
645
  const akanConfigContent = akanConfig.replace(`buildNum: ${appConfig.mobile.buildNum}`, `buildNum: ${appConfig.mobile.buildNum - 1}`);
628
646
  fs.writeFileSync(akanConfigPath, akanConfigContent);
629
647
  };
630
- // pkgs/@akanjs/devkit/getDirname.ts
631
- import path2 from "path";
632
- import { fileURLToPath as fileURLToPath2 } from "url";
633
- var getDirname = (url) => path2.dirname(fileURLToPath2(url));
634
-
635
648
  // pkgs/@akanjs/devkit/linter.ts
636
649
  import { spawn } from "child_process";
637
650
  import { existsSync, readFileSync } from "fs";
638
- import path3 from "path";
651
+ import path2 from "path";
639
652
  import chalk from "chalk";
640
653
 
641
654
  class Linter {
@@ -643,26 +656,26 @@ class Linter {
643
656
  #biomeBin;
644
657
  constructor(cwdPath) {
645
658
  this.lintRoot = this.#findBiomeRootPath(cwdPath);
646
- const localBiomeBin = path3.join(this.lintRoot, "node_modules/.bin/biome");
659
+ const localBiomeBin = path2.join(this.lintRoot, "node_modules/.bin/biome");
647
660
  this.#biomeBin = existsSync(localBiomeBin) ? localBiomeBin : "biome";
648
661
  }
649
662
  #findBiomeRootPath(dir) {
650
- const configPath = path3.join(dir, "biome.json");
663
+ const configPath = path2.join(dir, "biome.json");
651
664
  if (existsSync(configPath))
652
665
  return dir;
653
- const parentDir = path3.dirname(dir);
666
+ const parentDir = path2.dirname(dir);
654
667
  if (parentDir === dir)
655
668
  throw new Error(`biome.json not found from ${dir}`);
656
669
  return this.#findBiomeRootPath(parentDir);
657
670
  }
658
671
  #toBiomePath(filePath) {
659
- const relativePath = path3.relative(this.lintRoot, filePath);
660
- if (!relativePath.startsWith("..") && !path3.isAbsolute(relativePath))
672
+ const relativePath = path2.relative(this.lintRoot, filePath);
673
+ if (!relativePath.startsWith("..") && !path2.isAbsolute(relativePath))
661
674
  return relativePath;
662
675
  return filePath;
663
676
  }
664
677
  #resolveFilePath(filePath) {
665
- return path3.isAbsolute(filePath) ? filePath : path3.join(this.lintRoot, filePath);
678
+ return path2.isAbsolute(filePath) ? filePath : path2.join(this.lintRoot, filePath);
666
679
  }
667
680
  async#runBiome(args, input) {
668
681
  return await new Promise((resolve, reject) => {
@@ -694,7 +707,7 @@ class Linter {
694
707
  const diagnosticPath = diagnostic.location?.path;
695
708
  if (!diagnosticPath)
696
709
  return fallbackFilePath;
697
- return path3.isAbsolute(diagnosticPath) ? diagnosticPath : path3.join(this.lintRoot, diagnosticPath);
710
+ return path2.isAbsolute(diagnosticPath) ? diagnosticPath : path2.join(this.lintRoot, diagnosticPath);
698
711
  }
699
712
  #createLintMessage(diagnostic) {
700
713
  const start = diagnostic.location?.start;
@@ -759,7 +772,7 @@ class Linter {
759
772
  "--max-diagnostics=none",
760
773
  "--no-errors-on-unmatched",
761
774
  "--config-path",
762
- path3.join(this.lintRoot, "biome.json"),
775
+ path2.join(this.lintRoot, "biome.json"),
763
776
  this.#toBiomePath(filePath)
764
777
  ]);
765
778
  const report = this.#parseBiomeReport(stdout || stderr);
@@ -884,7 +897,7 @@ ${errorText}, ${warningText} found`];
884
897
  "check",
885
898
  "--write",
886
899
  "--config-path",
887
- path3.join(this.lintRoot, "biome.json"),
900
+ path2.join(this.lintRoot, "biome.json"),
888
901
  "--stdin-file-path",
889
902
  this.#toBiomePath(resolvedFilePath)
890
903
  ], source);
@@ -895,7 +908,7 @@ ${errorText}, ${warningText} found`];
895
908
  const resolvedFilePath = this.#resolveFilePath(filePath);
896
909
  if (!existsSync(resolvedFilePath))
897
910
  throw new Error(`File not found: ${filePath}`);
898
- return JSON.parse(readFileSync(path3.join(this.lintRoot, "biome.json"), "utf8"));
911
+ return JSON.parse(readFileSync(path2.join(this.lintRoot, "biome.json"), "utf8"));
899
912
  }
900
913
  async getProblematicRules(filePath) {
901
914
  const { results } = await this.lintFile(filePath);
@@ -910,6 +923,31 @@ ${errorText}, ${warningText} found`];
910
923
  }
911
924
  }
912
925
 
926
+ // pkgs/@akanjs/devkit/repoIdentity.ts
927
+ import { execFileSync } from "child_process";
928
+ import path3 from "path";
929
+ var resolved = new Map;
930
+ var readRemoteName = (workspaceRoot) => {
931
+ try {
932
+ const url = execFileSync("git", ["config", "--get", "remote.origin.url"], {
933
+ cwd: workspaceRoot,
934
+ encoding: "utf-8",
935
+ stdio: ["ignore", "pipe", "ignore"]
936
+ }).trim();
937
+ return url.replace(/\.git$/, "").split(/[/:]/).pop() || null;
938
+ } catch {
939
+ return null;
940
+ }
941
+ };
942
+ var resolveRepoName = (workspaceRoot) => {
943
+ const cached = resolved.get(workspaceRoot);
944
+ if (cached)
945
+ return cached;
946
+ const repoName = readRemoteName(workspaceRoot) ?? path3.basename(workspaceRoot);
947
+ resolved.set(workspaceRoot, repoName);
948
+ return repoName;
949
+ };
950
+
913
951
  // pkgs/@akanjs/devkit/scanInfo.ts
914
952
  import { rm } from "fs/promises";
915
953
  import path4 from "path";
@@ -2109,7 +2147,7 @@ class WorkspaceExecutor extends Executor {
2109
2147
  static #execs = new Map;
2110
2148
  static fromRoot({
2111
2149
  workspaceRoot = process.cwd(),
2112
- repoName = path5.basename(process.cwd())
2150
+ repoName = resolveRepoName(workspaceRoot)
2113
2151
  } = {}) {
2114
2152
  return WorkspaceExecutor.#execs.get(repoName) ?? new WorkspaceExecutor({ workspaceRoot, repoName });
2115
2153
  }
@@ -3009,4 +3047,4 @@ class ModuleExecutor extends Executor {
3009
3047
  }
3010
3048
  }
3011
3049
 
3012
- export { AGENT_BLOCK_START, AGENT_BLOCK_END, upsertAgentBlock, extractAgentBlock, renderRecipeEntries, collectScopeRecipeSources, renderScopeAgentBlock, getDirname, appRootAllowedFiles, appRootAllowedDirs, libFacetRootAllowedFiles, isScannedAppRootEntry, CommandExecutionError, Executor, WorkspaceExecutor, SysExecutor, AppExecutor, LibExecutor, PkgExecutor, ModuleExecutor };
3050
+ export { AGENT_BLOCK_START, AGENT_BLOCK_END, stampBlockVersion, extractBlockVersion, readDevkitVersion, upsertAgentBlock, extractAgentBlock, renderRecipeEntries, collectScopeRecipeSources, renderScopeAgentBlock, appRootAllowedFiles, appRootAllowedDirs, libFacetRootAllowedFiles, isScannedAppRootEntry, CommandExecutionError, Executor, WorkspaceExecutor, SysExecutor, AppExecutor, LibExecutor, PkgExecutor, ModuleExecutor };
package/index.js CHANGED
@@ -4,9 +4,10 @@ import {
4
4
  getTargetCommandNames,
5
5
  getTargetMetas,
6
6
  runCommands
7
- } from "./index-6rhabeev.js";
8
- import"./index-vg0sj9nc.js";
7
+ } from "./index-kdh76j26.js";
8
+ import"./index-z8ptfkzv.js";
9
9
  import"./index-mxvakhsm.js";
10
+ import"./index-1577bej2.js";
10
11
  import"./index-67546d0j.js";
11
12
  import {
12
13
  __require
@@ -17,22 +18,22 @@ import path from "path";
17
18
 
18
19
  // pkgs/@akanjs/cli/commandModules.ts
19
20
  var commandModules = {
20
- workspace: async () => (await import("./workspace.command-wa10mfd9.js")).WorkspaceCommand,
21
- agent: async () => (await import("./agent.command-pggr92jj.js")).AgentCommand,
22
- application: async () => (await import("./application.command-692yap1d.js")).ApplicationCommand,
23
- library: async () => (await import("./library.command-md9715jz.js")).LibraryCommand,
24
- localRegistry: async () => (await import("./localRegistry.command-exkbamyj.js")).LocalRegistryCommand,
25
- package: async () => (await import("./package.command-yfkrcy0z.js")).PackageCommand,
26
- module: async () => (await import("./module.command-w5aaddxk.js")).ModuleCommand,
27
- page: async () => (await import("./page.command-echbavp4.js")).PageCommand,
28
- context: async () => (await import("./context.command-9bxtdn0w.js")).ContextCommand,
29
- cloud: async () => (await import("./cloud.command-wqfsyzv2.js")).CloudCommand,
30
- guideline: async () => (await import("./guideline.command-nfqahxex.js")).GuidelineCommand,
31
- scalar: async () => (await import("./scalar.command-51ryzypc.js")).ScalarCommand,
32
- primitive: async () => (await import("./primitive.command-9fbhspw2.js")).PrimitiveCommand,
33
- quality: async () => (await import("./quality.command-3pnt9yep.js")).QualityCommand,
34
- repair: async () => (await import("./repair.command-carj4vax.js")).RepairCommand,
35
- workflow: async () => (await import("./workflow.command-91wmvm8k.js")).WorkflowCommand
21
+ workspace: async () => (await import("./workspace.command-88m0zs64.js")).WorkspaceCommand,
22
+ agent: async () => (await import("./agent.command-f0gqkfgz.js")).AgentCommand,
23
+ application: async () => (await import("./application.command-x903m2qq.js")).ApplicationCommand,
24
+ library: async () => (await import("./library.command-cv9gdbmg.js")).LibraryCommand,
25
+ localRegistry: async () => (await import("./localRegistry.command-d8fg36zc.js")).LocalRegistryCommand,
26
+ package: async () => (await import("./package.command-wsjx0k47.js")).PackageCommand,
27
+ module: async () => (await import("./module.command-qyr1s9cn.js")).ModuleCommand,
28
+ page: async () => (await import("./page.command-rdzg65rm.js")).PageCommand,
29
+ context: async () => (await import("./context.command-fmepgjzg.js")).ContextCommand,
30
+ cloud: async () => (await import("./cloud.command-zs6kyf83.js")).CloudCommand,
31
+ guideline: async () => (await import("./guideline.command-n6sw0a0c.js")).GuidelineCommand,
32
+ scalar: async () => (await import("./scalar.command-xfer69s6.js")).ScalarCommand,
33
+ primitive: async () => (await import("./primitive.command-89g38b53.js")).PrimitiveCommand,
34
+ quality: async () => (await import("./quality.command-0cs2z92d.js")).QualityCommand,
35
+ repair: async () => (await import("./repair.command-6fphxfwj.js")).RepairCommand,
36
+ workflow: async () => (await import("./workflow.command-2ygfqt4f.js")).WorkflowCommand
36
37
  };
37
38
  var commandModuleIds = Object.keys(commandModules);
38
39
 
@@ -1,14 +1,15 @@
1
1
  // @bun
2
2
  import {
3
3
  LibraryScript
4
- } from "./index-a1e0j63x.js";
4
+ } from "./index-d43t8af2.js";
5
5
  import {
6
6
  Lib,
7
7
  Workspace,
8
8
  command
9
- } from "./index-6rhabeev.js";
10
- import"./index-vg0sj9nc.js";
9
+ } from "./index-kdh76j26.js";
10
+ import"./index-z8ptfkzv.js";
11
11
  import"./index-mxvakhsm.js";
12
+ import"./index-1577bej2.js";
12
13
  import"./index-67546d0j.js";
13
14
  import"./index-r24hmh0q.js";
14
15
 
@@ -2,28 +2,29 @@
2
2
  import {
3
3
  CloudRunner,
4
4
  getNpmRegistryUrl
5
- } from "./index-p3f4q532.js";
5
+ } from "./index-4m0bphac.js";
6
6
  import {
7
7
  PackageScript
8
- } from "./index-azv0xjb5.js";
8
+ } from "./index-gcv8ncfh.js";
9
9
  import"./index-0cj2zxbm.js";
10
10
  import {
11
11
  ApplicationScript
12
- } from "./index-5dw57f0d.js";
12
+ } from "./index-62955kn5.js";
13
+ import"./index-d43t8af2.js";
13
14
  import"./index-76rn3g2c.js";
14
- import"./index-a1e0j63x.js";
15
15
  import {
16
16
  Workspace,
17
17
  command,
18
18
  runner,
19
19
  script
20
- } from "./index-6rhabeev.js";
20
+ } from "./index-kdh76j26.js";
21
21
  import"./index-fgc8r6dj.js";
22
22
  import"./index-bjpxzr6s.js";
23
23
  import {
24
24
  PkgExecutor
25
- } from "./index-vg0sj9nc.js";
25
+ } from "./index-z8ptfkzv.js";
26
26
  import"./index-mxvakhsm.js";
27
+ import"./index-1577bej2.js";
27
28
  import"./index-46tjzh6s.js";
28
29
  import"./index-67546d0j.js";
29
30
  import"./index-r24hmh0q.js";
@@ -1,21 +1,22 @@
1
1
  // @bun
2
2
  import {
3
3
  ModuleScript
4
- } from "./index-vtj3zps1.js";
5
- import"./index-4hek879p.js";
4
+ } from "./index-jhpa13zj.js";
6
5
  import"./index-ss469dec.js";
6
+ import"./index-xmmzf150.js";
7
7
  import"./index-0cj2zxbm.js";
8
8
  import {
9
9
  renderPrimitiveReport
10
- } from "./index-2c3e2xh8.js";
11
- import"./index-7myvn0f0.js";
10
+ } from "./index-rxkpk7n4.js";
11
+ import"./index-j37qq1f2.js";
12
12
  import {
13
13
  Module,
14
14
  Sys,
15
15
  command
16
- } from "./index-6rhabeev.js";
17
- import"./index-vg0sj9nc.js";
16
+ } from "./index-kdh76j26.js";
17
+ import"./index-z8ptfkzv.js";
18
18
  import"./index-mxvakhsm.js";
19
+ import"./index-1577bej2.js";
19
20
  import"./index-67546d0j.js";
20
21
  import"./index-r24hmh0q.js";
21
22
 
@@ -1,14 +1,15 @@
1
1
  // @bun
2
2
  import {
3
3
  PackageScript
4
- } from "./index-azv0xjb5.js";
4
+ } from "./index-gcv8ncfh.js";
5
5
  import {
6
6
  Pkg,
7
7
  Workspace,
8
8
  command
9
- } from "./index-6rhabeev.js";
10
- import"./index-vg0sj9nc.js";
9
+ } from "./index-kdh76j26.js";
10
+ import"./index-z8ptfkzv.js";
11
11
  import"./index-mxvakhsm.js";
12
+ import"./index-1577bej2.js";
12
13
  import"./index-46tjzh6s.js";
13
14
  import"./index-67546d0j.js";
14
15
  import"./index-r24hmh0q.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akanjs/cli",
3
- "version": "3.0.0-alpha.8",
3
+ "version": "3.0.0-alpha.9",
4
4
  "sourceType": "module",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -34,7 +34,7 @@
34
34
  "@langchain/openai": "^1.4.6",
35
35
  "@tailwindcss/node": "^4.3.0",
36
36
  "@trapezedev/project": "^7.1.4",
37
- "akanjs": "3.0.0-alpha.8",
37
+ "akanjs": "3.0.0-alpha.9",
38
38
  "chalk": "^5.6.2",
39
39
  "commander": "^14.0.3",
40
40
  "dayjs": "^1.11.20",
@@ -1,14 +1,15 @@
1
1
  // @bun
2
2
  import {
3
3
  PageScript
4
- } from "./index-4hek879p.js";
4
+ } from "./index-xmmzf150.js";
5
5
  import {
6
6
  App,
7
7
  Module,
8
8
  command
9
- } from "./index-6rhabeev.js";
10
- import"./index-vg0sj9nc.js";
9
+ } from "./index-kdh76j26.js";
10
+ import"./index-z8ptfkzv.js";
11
11
  import"./index-mxvakhsm.js";
12
+ import"./index-1577bej2.js";
12
13
  import"./index-67546d0j.js";
13
14
  import"./index-r24hmh0q.js";
14
15
 
@@ -1,21 +1,22 @@
1
1
  // @bun
2
2
  import {
3
3
  PrimitiveScript
4
- } from "./index-bz2sfzzt.js";
5
- import"./index-vtj3zps1.js";
6
- import"./index-4hek879p.js";
4
+ } from "./index-3vta1tqa.js";
5
+ import"./index-jhpa13zj.js";
7
6
  import"./index-ss469dec.js";
7
+ import"./index-xmmzf150.js";
8
8
  import"./index-0cj2zxbm.js";
9
9
  import {
10
10
  renderPrimitiveReport
11
- } from "./index-2c3e2xh8.js";
12
- import"./index-7myvn0f0.js";
11
+ } from "./index-rxkpk7n4.js";
12
+ import"./index-j37qq1f2.js";
13
13
  import {
14
14
  Workspace,
15
15
  command
16
- } from "./index-6rhabeev.js";
17
- import"./index-vg0sj9nc.js";
16
+ } from "./index-kdh76j26.js";
17
+ import"./index-z8ptfkzv.js";
18
18
  import"./index-mxvakhsm.js";
19
+ import"./index-1577bej2.js";
19
20
  import"./index-67546d0j.js";
20
21
  import"./index-r24hmh0q.js";
21
22
 
@@ -7,12 +7,13 @@ import {
7
7
  command,
8
8
  runner,
9
9
  script
10
- } from "./index-6rhabeev.js";
10
+ } from "./index-kdh76j26.js";
11
11
  import {
12
12
  appRootAllowedFiles,
13
13
  libFacetRootAllowedFiles
14
- } from "./index-vg0sj9nc.js";
14
+ } from "./index-z8ptfkzv.js";
15
15
  import"./index-mxvakhsm.js";
16
+ import"./index-1577bej2.js";
16
17
  import"./index-67546d0j.js";
17
18
  import"./index-r24hmh0q.js";
18
19
 
@@ -1,17 +1,18 @@
1
1
  // @bun
2
2
  import {
3
3
  RepairRunner
4
- } from "./index-ztpw544k.js";
5
- import"./index-mssqn2sq.js";
6
- import"./index-2c3e2xh8.js";
4
+ } from "./index-jf2ya7r2.js";
5
+ import"./index-774gcx29.js";
6
+ import"./index-rxkpk7n4.js";
7
7
  import {
8
8
  Workspace,
9
9
  command,
10
10
  script
11
- } from "./index-6rhabeev.js";
12
- import"./index-vg0sj9nc.js";
11
+ } from "./index-kdh76j26.js";
12
+ import"./index-z8ptfkzv.js";
13
13
  import"./index-mxvakhsm.js";
14
14
  import"./index-xys926f2.js";
15
+ import"./index-1577bej2.js";
15
16
  import"./index-67546d0j.js";
16
17
  import"./index-r24hmh0q.js";
17
18
 
@@ -1,19 +1,20 @@
1
1
  // @bun
2
2
  import {
3
3
  ScalarScript
4
- } from "./index-gmy45vz2.js";
4
+ } from "./index-y4vkyhvv.js";
5
5
  import"./index-ss469dec.js";
6
6
  import"./index-0cj2zxbm.js";
7
7
  import {
8
8
  renderPrimitiveReport
9
- } from "./index-2c3e2xh8.js";
10
- import"./index-7myvn0f0.js";
9
+ } from "./index-rxkpk7n4.js";
10
+ import"./index-j37qq1f2.js";
11
11
  import {
12
12
  Sys,
13
13
  command
14
- } from "./index-6rhabeev.js";
15
- import"./index-vg0sj9nc.js";
14
+ } from "./index-kdh76j26.js";
15
+ import"./index-z8ptfkzv.js";
16
16
  import"./index-mxvakhsm.js";
17
+ import"./index-1577bej2.js";
17
18
  import"./index-67546d0j.js";
18
19
  import"./index-r24hmh0q.js";
19
20
 
@@ -30,7 +30,7 @@ export default async function Page({ params }: PageProps) {
30
30
  </div>
31
31
  <Load.Edit
32
32
  className="flex flex-col items-center"
33
- slice={fetch.slice["${dict.model}InPublic"]}
33
+ slice={fetch.slice.${dict.model}InPublic}
34
34
  edit={${dict.model}Edit}
35
35
  type="form"
36
36
  onCancel="back"
@@ -25,7 +25,7 @@ export default function Page() {
25
25
  </div>
26
26
  <Load.Edit
27
27
  className="flex flex-col items-center"
28
- slice={fetch.slice["${dict.model}InPublic"]}
28
+ slice={fetch.slice.${dict.model}InPublic}
29
29
  edit={${dict.model}Form}
30
30
  type="form"
31
31
  onCancel="back"
@@ -20,7 +20,7 @@ export default async function Page() {
20
20
  <>
21
21
  <div className="animate-fadeIn flex items-center gap-4 px-4 pt-4">
22
22
  <div className="text-lg font-bold md:text-4xl">{l("${dict.model}.modelName")}</div>
23
- <Model.New className="inline-flex items-center gap-2 rounded-field px-3 py-1.5 text-sm transition-colors hover:bg-muted" slice={fetch.slice["${dict.model}InPublic"]} renderTitle="id">
23
+ <Model.New className="inline-flex items-center gap-2 rounded-field px-3 py-1.5 text-sm transition-colors hover:bg-muted" slice={fetch.slice.${dict.model}InPublic} renderTitle="id">
24
24
  <${dict.Model}.Template.General />
25
25
  </Model.New>
26
26
  </div>
@@ -21,7 +21,7 @@ interface RemoveProps {
21
21
  export const Remove = ({ ${dict.model}Id }: RemoveProps) => {
22
22
  const { l } = usePage();
23
23
  return (
24
- <Model.Remove modelId={${dict.model}Id} slice={fetch.slice["${dict.model}"]}>
24
+ <Model.Remove modelId={${dict.model}Id} slice={fetch.slice.${dict.model}}>
25
25
  <BiTrash /> {l("base.remove")}
26
26
  </Model.Remove>
27
27
  );
@@ -12,9 +12,7 @@ export default function getContent(scanInfo: AppInfo | LibInfo | null, dict: Dic
12
12
  content: `
13
13
  "use client";
14
14
  import { Load } from "akanjs/ui";
15
- // Alias the domain namespace so the Card/View exports below never collide with the model name
16
- // (a model literally named "card" or "view" would otherwise shadow this import).
17
- import { type cnst, ${dict.Model} as ${dict.Model}Domain } from "@${dict.sysType}s/${dict.sysName}/client";
15
+ import { type cnst, ${dict.Model} as ${dict.Model} } from "@${dict.sysType}s/${dict.sysName}/client";
18
16
  import type { ClientInit, ClientView, SliceMeta } from "akanjs/fetch";
19
17
 
20
18
  interface CardProps {
@@ -28,7 +26,7 @@ export const Card = ({ className, init, slice }: CardProps) => {
28
26
  className={className}
29
27
  init={init}
30
28
  renderItem={(${dict.model}) => (
31
- <${dict.Model}Domain.Unit.Card key={${dict.model}.id} href={\`/${dict.model}/\${${dict.model}.id}\`} ${dict.model}={${dict.model}} />
29
+ <${dict.Model}.Unit.Card key={${dict.model}.id} href={\`/${dict.model}/\${${dict.model}.id}\`} ${dict.model}={${dict.model}} />
32
30
  )}
33
31
  />
34
32
  );
@@ -39,7 +37,7 @@ interface ViewProps {
39
37
  view: ClientView<"${dict.model}", cnst.${dict.Model}>;
40
38
  }
41
39
  export const View = ({ view }: ViewProps) => {
42
- return <Load.View view={view} renderView={(${dict.model}) => <${dict.Model}Domain.View.General ${dict.model}={${dict.model}} />} />;
40
+ return <Load.View view={view} renderView={(${dict.model}) => <${dict.Model}.View.General ${dict.model}={${dict.model}} />} />;
43
41
  };
44
42
  `,
45
43
  };