@akanjs/cli 2.4.2-rc.3 → 3.0.0-alpha.0

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 (79) hide show
  1. package/.build-stamp +1 -1
  2. package/{abstractCompactor-ghh1q9an.js → abstractCompactor-rk6twzvj.js} +4 -4
  3. package/{agent.command-de4r6vk8.js → agent.command-jfz8yfwy.js} +8 -7
  4. package/{application.command-nfsfm96y.js → application.command-3smsv7mq.js} +5 -5
  5. package/{applicationBuildRunner-554a2vnk.js → applicationBuildRunner-aq7mb3z6.js} +2 -1
  6. package/buildBatch.proc.js +7 -6
  7. package/{capacitorApp-yg9b4ajz.js → capacitorApp-q3mpmkkz.js} +3 -3
  8. package/{cloud.command-1qf95x67.js → cloud.command-rk4e9vrt.js} +10 -10
  9. package/{context.command-hhjyjtp7.js → context.command-ygzyb0xb.js} +16 -15
  10. package/{guideline.command-vj956kfr.js → guideline.command-1m1ctar3.js} +10 -10
  11. package/guidelines/componentRule/componentRule.instruction.md +2 -2
  12. package/guidelines/cssRule/cssRule.generate.json +1 -1
  13. package/guidelines/cssRule/cssRule.instruction.md +57 -34
  14. package/guidelines/framework/framework.instruction.md +1 -1
  15. package/guidelines/recipeRule/recipeRule.generate.json +31 -0
  16. package/guidelines/recipeRule/recipeRule.instruction.md +72 -0
  17. package/incrementalBuilder.proc.js +5 -5
  18. package/{index-v9jqrdd1.js → index-4yp06pn1.js} +100 -2
  19. package/{index-pfnh87f9.js → index-4zgs8g1w.js} +1 -1
  20. package/{index-7ppn9v4n.js → index-b978vs2e.js} +3 -3
  21. package/{index-s9s0n5fz.js → index-cn24dcqn.js} +2 -2
  22. package/{index-h971erkm.js → index-csqk9z5j.js} +3 -3
  23. package/{index-z36qzgzp.js → index-e3qskyt2.js} +3 -4
  24. package/{index-fbv96xaw.js → index-ev6rjw9n.js} +11 -11
  25. package/{index-h6eav7zx.js → index-f4gqk0dd.js} +6 -6
  26. package/{index-z5v766nx.js → index-fmgbwsr5.js} +6 -6
  27. package/{index-y1e79mz3.js → index-h0bngh79.js} +13 -13
  28. package/{index-dgeaqwmw.js → index-hjzr8ja1.js} +1 -1
  29. package/{index-d0h48d2f.js → index-jk9q6pse.js} +1 -1
  30. package/{index-xwfg9bam.js → index-jtm86byd.js} +120 -4
  31. package/{index-h5cvg9z9.js → index-ktprgc5g.js} +4 -4
  32. package/{index-zn9rh7sh.js → index-n0z3f2xg.js} +73 -24
  33. package/{index-7k9sj7j5.js → index-pyt2b4nw.js} +212 -0
  34. package/{index-acwxfncv.js → index-r4w8cry5.js} +4 -4
  35. package/{index-zfp1gz9f.js → index-sggm9qkv.js} +1 -1
  36. package/{index-04as43rp.js → index-vhv3xnjz.js} +16 -15
  37. package/index-xjd3rqzj.js +129 -0
  38. package/{index-xftstr5s.js → index-xwgm94zr.js} +1 -1
  39. package/index-xys926f2.js +136 -0
  40. package/index.js +19 -19
  41. package/{library.command-68ah07a3.js → library.command-pwfx8dx2.js} +4 -4
  42. package/{localRegistry.command-84dz000g.js → localRegistry.command-bxhqmd1d.js} +9 -9
  43. package/{module.command-t68xhamx.js → module.command-0t3ewata.js} +8 -8
  44. package/{package.command-00ncttab.js → package.command-7hmkxvpa.js} +4 -4
  45. package/package.json +2 -3
  46. package/{page.command-1096s18n.js → page.command-st6r4s0q.js} +4 -4
  47. package/{primitive.command-02eqpx6t.js → primitive.command-1qkxpzsn.js} +9 -9
  48. package/{quality.command-r9cageqb.js → quality.command-hy5vt1bh.js} +3 -3
  49. package/recipeScanner-tghkzrrt.js +12 -0
  50. package/{repair.command-7dynpnf1.js → repair.command-nakkq2zp.js} +7 -6
  51. package/{scalar.command-3kxy3fkh.js → scalar.command-fjq272gs.js} +7 -7
  52. package/templates/app/page/_index.tsx +55 -52
  53. package/templates/app/page/styles.css.template +12 -71
  54. package/templates/appSample/lib/task/Task.Template.tsx +2 -2
  55. package/templates/appSample/lib/task/Task.Unit.tsx +11 -11
  56. package/templates/appSample/lib/task/Task.Util.tsx +27 -28
  57. package/templates/appSample/lib/task/Task.View.tsx +22 -19
  58. package/templates/appSample/lib/task/Task.Zone.tsx +3 -3
  59. package/templates/appSample/page/task/[taskId]/_index.tsx +3 -3
  60. package/templates/appSample/page/task/[taskId]/edit.tsx +5 -5
  61. package/templates/appSample/page/task/_index.tsx +4 -4
  62. package/templates/appSample/page/task/_layout.tsx +1 -1
  63. package/templates/appSample/page/task/new.tsx +5 -5
  64. package/templates/appSample/ui/GlobalLoading.tsx +4 -4
  65. package/templates/appSample/ui/QuantityControl.tsx +5 -4
  66. package/templates/crudPages/[__model__Id]/page.tsx +1 -1
  67. package/templates/crudPages/page.tsx +1 -1
  68. package/templates/crudSinglePage/page.tsx +1 -1
  69. package/templates/module/__Model__.Template.tsx +2 -1
  70. package/templates/module/__Model__.Unit.tsx +2 -1
  71. package/templates/module/__Model__.Util.tsx +2 -1
  72. package/templates/module/__Model__.View.tsx +4 -3
  73. package/templates/module/__Model__.Zone.tsx +2 -1
  74. package/templates/workspaceRoot/AGENTS.md.template +11 -13
  75. package/templates/workspaceRoot/biome.json.template +1 -1
  76. package/{workflow.command-yy0d9gk3.js → workflow.command-jswbgk90.js} +15 -14
  77. package/{workspace.command-stv9g4a0.js → workspace.command-p9r9nckg.js} +87 -27
  78. package/{applicationReleasePackager-pjbxc793.js → applicationReleasePackager-yrrhbkv3.js} +3 -3
  79. package/{index-nsj2ftxj.js → index-3pgtw35d.js} +3 -3
@@ -0,0 +1,136 @@
1
+ // @bun
2
+ // pkgs/@akanjs/devkit/recipeScanner.ts
3
+ import { readdir } from "fs/promises";
4
+ import ts from "typescript";
5
+ var collectRecipeSources = async (uiDirPath, importFrom, basename = "Recipe") => {
6
+ const read = async (filePath) => {
7
+ const content = await Bun.file(filePath).text().catch(() => "");
8
+ return content ? { path: filePath, content, importFrom } : null;
9
+ };
10
+ const flat = await read(`${uiDirPath}/${basename}.ts`);
11
+ const dirEntries = await readdir(`${uiDirPath}/${basename}`).catch(() => []);
12
+ const fromDir = await Promise.all(dirEntries.filter((entry) => entry.endsWith(".ts") && entry !== "index.ts" && !/\.(test|spec)\.ts$/.test(entry)).sort().map((entry) => read(`${uiDirPath}/${basename}/${entry}`)));
13
+ return [flat, ...fromDir].filter((source) => !!source);
14
+ };
15
+ var scanRecipes = (sources) => {
16
+ const recipes = [];
17
+ for (const source of sources) {
18
+ const sourceFile = ts.createSourceFile(source.path, source.content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
19
+ for (const statement of sourceFile.statements) {
20
+ if (!ts.isVariableStatement(statement) || !isExported(statement))
21
+ continue;
22
+ for (const declaration of statement.declarationList.declarations) {
23
+ if (!ts.isIdentifier(declaration.name) || !declaration.initializer)
24
+ continue;
25
+ const parsed = parseRecipeCall(declaration.initializer);
26
+ if (!parsed)
27
+ continue;
28
+ recipes.push({
29
+ name: declaration.name.text,
30
+ importFrom: source.importFrom,
31
+ variants: parsed.variants,
32
+ ...parsed.defaultVariants ? { defaultVariants: parsed.defaultVariants } : {},
33
+ ...getLeadingDoc(source.content, statement) ? { doc: getLeadingDoc(source.content, statement) } : {},
34
+ ...parsed.base ? { base: parsed.base } : {}
35
+ });
36
+ }
37
+ }
38
+ }
39
+ return recipes;
40
+ };
41
+ var isExported = (statement) => statement.modifiers?.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword) ?? false;
42
+ var parseRecipeCall = (initializer) => {
43
+ if (!ts.isCallExpression(initializer))
44
+ return null;
45
+ if (!ts.isIdentifier(initializer.expression) || initializer.expression.text !== "recipe")
46
+ return null;
47
+ const tvCall = initializer.arguments[0];
48
+ if (!tvCall || !ts.isCallExpression(tvCall))
49
+ return null;
50
+ if (!ts.isIdentifier(tvCall.expression) || tvCall.expression.text !== "tv")
51
+ return null;
52
+ const config = tvCall.arguments[0];
53
+ if (!config || !ts.isObjectLiteralExpression(config))
54
+ return null;
55
+ return extractVariants(config);
56
+ };
57
+ var extractVariants = (config) => {
58
+ const variants = {};
59
+ let defaultVariants;
60
+ let base;
61
+ for (const property of config.properties) {
62
+ if (!ts.isPropertyAssignment(property) || !isNamed(property.name))
63
+ continue;
64
+ const key = propName(property.name);
65
+ if (key === "base" && ts.isStringLiteral(property.initializer)) {
66
+ base = property.initializer.text;
67
+ } else if (key === "variants" && ts.isObjectLiteralExpression(property.initializer)) {
68
+ for (const variant of property.initializer.properties) {
69
+ if (!ts.isPropertyAssignment(variant) || !isNamed(variant.name))
70
+ continue;
71
+ if (!ts.isObjectLiteralExpression(variant.initializer))
72
+ continue;
73
+ variants[propName(variant.name)] = variant.initializer.properties.filter((option) => ts.isPropertyAssignment(option) && isNamed(option.name)).map((option) => propName(option.name));
74
+ }
75
+ } else if (key === "defaultVariants" && ts.isObjectLiteralExpression(property.initializer)) {
76
+ defaultVariants = {};
77
+ for (const preset of property.initializer.properties) {
78
+ if (!ts.isPropertyAssignment(preset) || !isNamed(preset.name))
79
+ continue;
80
+ defaultVariants[propName(preset.name)] = ts.isStringLiteral(preset.initializer) ? preset.initializer.text : preset.initializer.getText();
81
+ }
82
+ }
83
+ }
84
+ return { variants, defaultVariants, base };
85
+ };
86
+ var isNamed = (name) => ts.isIdentifier(name) || ts.isStringLiteral(name);
87
+ var propName = (name) => name.text;
88
+ var DUPLICATE_TOKEN_RATIO = 0.7;
89
+ var MIN_FINGERPRINT_TOKENS = 3;
90
+ var findInlineRecipeDuplicates = (recipes, files) => {
91
+ const fingerprints = recipes.map((recipe) => ({ recipe: recipe.name, tokens: (recipe.base ?? "").split(/\s+/).filter(Boolean) })).filter((fingerprint) => fingerprint.tokens.length >= MIN_FINGERPRINT_TOKENS).map((fingerprint) => ({ ...fingerprint, needed: Math.ceil(fingerprint.tokens.length * DUPLICATE_TOKEN_RATIO) }));
92
+ if (fingerprints.length === 0)
93
+ return [];
94
+ const duplicates = [];
95
+ for (const file of files) {
96
+ const sourceFile = ts.createSourceFile(file.path, file.content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
97
+ const visit = (node) => {
98
+ if (ts.isJsxAttribute(node) && node.name.getText(sourceFile) === "className" && node.initializer) {
99
+ for (const value of stringValuesIn(node.initializer)) {
100
+ const classSet = new Set(value.split(/\s+/));
101
+ for (const fingerprint of fingerprints) {
102
+ const matched = fingerprint.tokens.filter((token) => classSet.has(token)).length;
103
+ if (matched >= fingerprint.needed) {
104
+ const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
105
+ duplicates.push({ recipe: fingerprint.recipe, path: file.path, line: line + 1, className: value });
106
+ }
107
+ }
108
+ }
109
+ }
110
+ node.forEachChild(visit);
111
+ };
112
+ visit(sourceFile);
113
+ }
114
+ return duplicates;
115
+ };
116
+ var stringValuesIn = (node) => {
117
+ const values = [];
118
+ const visit = (child) => {
119
+ if (ts.isStringLiteral(child) || ts.isNoSubstitutionTemplateLiteral(child) || ts.isTemplateHead(child) || ts.isTemplateMiddle(child) || ts.isTemplateTail(child))
120
+ values.push(child.text);
121
+ child.forEachChild(visit);
122
+ };
123
+ visit(node);
124
+ return values;
125
+ };
126
+ var getLeadingDoc = (fullText, node) => {
127
+ const ranges = ts.getLeadingCommentRanges(fullText, node.getFullStart());
128
+ if (!ranges?.length)
129
+ return;
130
+ const { pos, end } = ranges[ranges.length - 1];
131
+ const line = fullText.slice(pos, end).replace(/^\/\*\*?/, "").replace(/\*\/\s*$/, "").replace(/^\/\/+/gm, "").split(`
132
+ `).map((row) => row.replace(/^\s*\*\s?/, "").trim()).find((row) => row.length > 0);
133
+ return line || undefined;
134
+ };
135
+
136
+ export { collectRecipeSources, scanRecipes, findInlineRecipeDuplicates };
package/index.js CHANGED
@@ -4,10 +4,10 @@ import {
4
4
  getTargetCommandNames,
5
5
  getTargetMetas,
6
6
  runCommands
7
- } from "./index-d0h48d2f.js";
8
- import"./index-xwfg9bam.js";
9
- import"./index-67546d0j.js";
7
+ } from "./index-jk9q6pse.js";
8
+ import"./index-jtm86byd.js";
10
9
  import"./index-6pz1j0zj.js";
10
+ import"./index-67546d0j.js";
11
11
  import {
12
12
  __require
13
13
  } from "./index-r24hmh0q.js";
@@ -17,22 +17,22 @@ import path from "path";
17
17
 
18
18
  // pkgs/@akanjs/cli/commandModules.ts
19
19
  var commandModules = {
20
- workspace: async () => (await import("./workspace.command-stv9g4a0.js")).WorkspaceCommand,
21
- agent: async () => (await import("./agent.command-de4r6vk8.js")).AgentCommand,
22
- application: async () => (await import("./application.command-nfsfm96y.js")).ApplicationCommand,
23
- library: async () => (await import("./library.command-68ah07a3.js")).LibraryCommand,
24
- localRegistry: async () => (await import("./localRegistry.command-84dz000g.js")).LocalRegistryCommand,
25
- package: async () => (await import("./package.command-00ncttab.js")).PackageCommand,
26
- module: async () => (await import("./module.command-t68xhamx.js")).ModuleCommand,
27
- page: async () => (await import("./page.command-1096s18n.js")).PageCommand,
28
- context: async () => (await import("./context.command-hhjyjtp7.js")).ContextCommand,
29
- cloud: async () => (await import("./cloud.command-1qf95x67.js")).CloudCommand,
30
- guideline: async () => (await import("./guideline.command-vj956kfr.js")).GuidelineCommand,
31
- scalar: async () => (await import("./scalar.command-3kxy3fkh.js")).ScalarCommand,
32
- primitive: async () => (await import("./primitive.command-02eqpx6t.js")).PrimitiveCommand,
33
- quality: async () => (await import("./quality.command-r9cageqb.js")).QualityCommand,
34
- repair: async () => (await import("./repair.command-7dynpnf1.js")).RepairCommand,
35
- workflow: async () => (await import("./workflow.command-yy0d9gk3.js")).WorkflowCommand
20
+ workspace: async () => (await import("./workspace.command-p9r9nckg.js")).WorkspaceCommand,
21
+ agent: async () => (await import("./agent.command-jfz8yfwy.js")).AgentCommand,
22
+ application: async () => (await import("./application.command-3smsv7mq.js")).ApplicationCommand,
23
+ library: async () => (await import("./library.command-pwfx8dx2.js")).LibraryCommand,
24
+ localRegistry: async () => (await import("./localRegistry.command-bxhqmd1d.js")).LocalRegistryCommand,
25
+ package: async () => (await import("./package.command-7hmkxvpa.js")).PackageCommand,
26
+ module: async () => (await import("./module.command-0t3ewata.js")).ModuleCommand,
27
+ page: async () => (await import("./page.command-st6r4s0q.js")).PageCommand,
28
+ context: async () => (await import("./context.command-ygzyb0xb.js")).ContextCommand,
29
+ cloud: async () => (await import("./cloud.command-rk4e9vrt.js")).CloudCommand,
30
+ guideline: async () => (await import("./guideline.command-1m1ctar3.js")).GuidelineCommand,
31
+ scalar: async () => (await import("./scalar.command-fjq272gs.js")).ScalarCommand,
32
+ primitive: async () => (await import("./primitive.command-1qkxpzsn.js")).PrimitiveCommand,
33
+ quality: async () => (await import("./quality.command-hy5vt1bh.js")).QualityCommand,
34
+ repair: async () => (await import("./repair.command-nakkq2zp.js")).RepairCommand,
35
+ workflow: async () => (await import("./workflow.command-jswbgk90.js")).WorkflowCommand
36
36
  };
37
37
  var commandModuleIds = Object.keys(commandModules);
38
38
 
@@ -1,15 +1,15 @@
1
1
  // @bun
2
2
  import {
3
3
  LibraryScript
4
- } from "./index-s9s0n5fz.js";
4
+ } from "./index-cn24dcqn.js";
5
5
  import {
6
6
  Lib,
7
7
  Workspace,
8
8
  command
9
- } from "./index-d0h48d2f.js";
10
- import"./index-xwfg9bam.js";
11
- import"./index-67546d0j.js";
9
+ } from "./index-jk9q6pse.js";
10
+ import"./index-jtm86byd.js";
12
11
  import"./index-6pz1j0zj.js";
12
+ import"./index-67546d0j.js";
13
13
  import"./index-r24hmh0q.js";
14
14
 
15
15
  // pkgs/@akanjs/cli/library/library.command.ts
@@ -2,30 +2,30 @@
2
2
  import {
3
3
  CloudRunner,
4
4
  getNpmRegistryUrl
5
- } from "./index-h5cvg9z9.js";
5
+ } from "./index-ktprgc5g.js";
6
6
  import {
7
7
  PackageScript
8
- } from "./index-z36qzgzp.js";
9
- import"./index-nsj2ftxj.js";
8
+ } from "./index-e3qskyt2.js";
9
+ import"./index-3pgtw35d.js";
10
10
  import {
11
11
  ApplicationScript
12
- } from "./index-fbv96xaw.js";
12
+ } from "./index-ev6rjw9n.js";
13
13
  import"./index-76rn3g2c.js";
14
- import"./index-s9s0n5fz.js";
14
+ import"./index-cn24dcqn.js";
15
15
  import {
16
16
  Workspace,
17
17
  command,
18
18
  runner,
19
19
  script
20
- } from "./index-d0h48d2f.js";
20
+ } from "./index-jk9q6pse.js";
21
21
  import"./index-fgc8r6dj.js";
22
+ import"./index-bjpxzr6s.js";
22
23
  import {
23
24
  PkgExecutor
24
- } from "./index-xwfg9bam.js";
25
+ } from "./index-jtm86byd.js";
26
+ import"./index-6pz1j0zj.js";
25
27
  import"./index-46tjzh6s.js";
26
28
  import"./index-67546d0j.js";
27
- import"./index-bjpxzr6s.js";
28
- import"./index-6pz1j0zj.js";
29
29
  import"./index-r24hmh0q.js";
30
30
 
31
31
  // pkgs/@akanjs/cli/localRegistry/localRegistry.runner.ts
@@ -1,22 +1,22 @@
1
1
  // @bun
2
2
  import {
3
3
  ModuleScript
4
- } from "./index-04as43rp.js";
5
- import"./index-dgeaqwmw.js";
4
+ } from "./index-vhv3xnjz.js";
5
+ import"./index-hjzr8ja1.js";
6
6
  import"./index-ss469dec.js";
7
+ import"./index-3pgtw35d.js";
7
8
  import {
8
9
  renderPrimitiveReport
9
- } from "./index-pfnh87f9.js";
10
- import"./index-xftstr5s.js";
11
- import"./index-nsj2ftxj.js";
10
+ } from "./index-4zgs8g1w.js";
11
+ import"./index-xwgm94zr.js";
12
12
  import {
13
13
  Module,
14
14
  Sys,
15
15
  command
16
- } from "./index-d0h48d2f.js";
17
- import"./index-xwfg9bam.js";
18
- import"./index-67546d0j.js";
16
+ } from "./index-jk9q6pse.js";
17
+ import"./index-jtm86byd.js";
19
18
  import"./index-6pz1j0zj.js";
19
+ import"./index-67546d0j.js";
20
20
  import"./index-r24hmh0q.js";
21
21
 
22
22
  // pkgs/@akanjs/cli/module/module.command.ts
@@ -1,16 +1,16 @@
1
1
  // @bun
2
2
  import {
3
3
  PackageScript
4
- } from "./index-z36qzgzp.js";
4
+ } from "./index-e3qskyt2.js";
5
5
  import {
6
6
  Pkg,
7
7
  Workspace,
8
8
  command
9
- } from "./index-d0h48d2f.js";
10
- import"./index-xwfg9bam.js";
9
+ } from "./index-jk9q6pse.js";
10
+ import"./index-jtm86byd.js";
11
+ import"./index-6pz1j0zj.js";
11
12
  import"./index-46tjzh6s.js";
12
13
  import"./index-67546d0j.js";
13
- import"./index-6pz1j0zj.js";
14
14
  import"./index-r24hmh0q.js";
15
15
 
16
16
  // pkgs/@akanjs/cli/package/package.command.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akanjs/cli",
3
- "version": "2.4.2-rc.3",
3
+ "version": "3.0.0-alpha.0",
4
4
  "sourceType": "module",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -34,10 +34,9 @@
34
34
  "@langchain/openai": "^1.4.6",
35
35
  "@tailwindcss/node": "^4.3.0",
36
36
  "@trapezedev/project": "^7.1.4",
37
- "akanjs": "2.4.2-rc.3",
37
+ "akanjs": "3.0.0-alpha.0",
38
38
  "chalk": "^5.6.2",
39
39
  "commander": "^14.0.3",
40
- "daisyui": "5.5.23",
41
40
  "dayjs": "^1.11.20",
42
41
  "fontaine": "^0.8.0",
43
42
  "fonteditor-core": "^2.6.3",
@@ -1,15 +1,15 @@
1
1
  // @bun
2
2
  import {
3
3
  PageScript
4
- } from "./index-dgeaqwmw.js";
4
+ } from "./index-hjzr8ja1.js";
5
5
  import {
6
6
  App,
7
7
  Module,
8
8
  command
9
- } from "./index-d0h48d2f.js";
10
- import"./index-xwfg9bam.js";
11
- import"./index-67546d0j.js";
9
+ } from "./index-jk9q6pse.js";
10
+ import"./index-jtm86byd.js";
12
11
  import"./index-6pz1j0zj.js";
12
+ import"./index-67546d0j.js";
13
13
  import"./index-r24hmh0q.js";
14
14
 
15
15
  // pkgs/@akanjs/cli/page/page.command.ts
@@ -1,22 +1,22 @@
1
1
  // @bun
2
2
  import {
3
3
  PrimitiveScript
4
- } from "./index-acwxfncv.js";
5
- import"./index-04as43rp.js";
6
- import"./index-dgeaqwmw.js";
4
+ } from "./index-r4w8cry5.js";
5
+ import"./index-vhv3xnjz.js";
6
+ import"./index-hjzr8ja1.js";
7
7
  import"./index-ss469dec.js";
8
+ import"./index-3pgtw35d.js";
8
9
  import {
9
10
  renderPrimitiveReport
10
- } from "./index-pfnh87f9.js";
11
- import"./index-xftstr5s.js";
12
- import"./index-nsj2ftxj.js";
11
+ } from "./index-4zgs8g1w.js";
12
+ import"./index-xwgm94zr.js";
13
13
  import {
14
14
  Workspace,
15
15
  command
16
- } from "./index-d0h48d2f.js";
17
- import"./index-xwfg9bam.js";
18
- import"./index-67546d0j.js";
16
+ } from "./index-jk9q6pse.js";
17
+ import"./index-jtm86byd.js";
19
18
  import"./index-6pz1j0zj.js";
19
+ import"./index-67546d0j.js";
20
20
  import"./index-r24hmh0q.js";
21
21
 
22
22
  // pkgs/@akanjs/cli/primitive/primitive.command.ts
@@ -7,10 +7,10 @@ import {
7
7
  command,
8
8
  runner,
9
9
  script
10
- } from "./index-d0h48d2f.js";
11
- import"./index-xwfg9bam.js";
12
- import"./index-67546d0j.js";
10
+ } from "./index-jk9q6pse.js";
11
+ import"./index-jtm86byd.js";
13
12
  import"./index-6pz1j0zj.js";
13
+ import"./index-67546d0j.js";
14
14
  import"./index-r24hmh0q.js";
15
15
 
16
16
  // pkgs/@akanjs/devkit/qualityScanner.ts
@@ -0,0 +1,12 @@
1
+ // @bun
2
+ import {
3
+ collectRecipeSources,
4
+ findInlineRecipeDuplicates,
5
+ scanRecipes
6
+ } from "./index-xys926f2.js";
7
+ import"./index-r24hmh0q.js";
8
+ export {
9
+ scanRecipes,
10
+ findInlineRecipeDuplicates,
11
+ collectRecipeSources
12
+ };
@@ -1,17 +1,18 @@
1
1
  // @bun
2
2
  import {
3
3
  RepairRunner
4
- } from "./index-7ppn9v4n.js";
5
- import"./index-v9jqrdd1.js";
6
- import"./index-pfnh87f9.js";
4
+ } from "./index-b978vs2e.js";
5
+ import"./index-4yp06pn1.js";
6
+ import"./index-4zgs8g1w.js";
7
7
  import {
8
8
  Workspace,
9
9
  command,
10
10
  script
11
- } from "./index-d0h48d2f.js";
12
- import"./index-xwfg9bam.js";
13
- import"./index-67546d0j.js";
11
+ } from "./index-jk9q6pse.js";
12
+ import"./index-jtm86byd.js";
14
13
  import"./index-6pz1j0zj.js";
14
+ import"./index-xys926f2.js";
15
+ import"./index-67546d0j.js";
15
16
  import"./index-r24hmh0q.js";
16
17
 
17
18
  // pkgs/@akanjs/cli/repair/repair.script.ts
@@ -1,20 +1,20 @@
1
1
  // @bun
2
2
  import {
3
3
  ScalarScript
4
- } from "./index-z5v766nx.js";
4
+ } from "./index-fmgbwsr5.js";
5
5
  import"./index-ss469dec.js";
6
+ import"./index-3pgtw35d.js";
6
7
  import {
7
8
  renderPrimitiveReport
8
- } from "./index-pfnh87f9.js";
9
- import"./index-xftstr5s.js";
10
- import"./index-nsj2ftxj.js";
9
+ } from "./index-4zgs8g1w.js";
10
+ import"./index-xwgm94zr.js";
11
11
  import {
12
12
  Sys,
13
13
  command
14
- } from "./index-d0h48d2f.js";
15
- import"./index-xwfg9bam.js";
16
- import"./index-67546d0j.js";
14
+ } from "./index-jk9q6pse.js";
15
+ import"./index-jtm86byd.js";
17
16
  import"./index-6pz1j0zj.js";
17
+ import"./index-67546d0j.js";
18
18
  import"./index-r24hmh0q.js";
19
19
 
20
20
  // pkgs/@akanjs/cli/scalar/scalar.command.ts