@akanjs/cli 3.0.0-beta.9 → 3.0.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 (224) hide show
  1. package/.build-stamp +1 -1
  2. package/CodeAgent-2vmp9qe0.js +9 -0
  3. package/CodeAgentRpcHost-p7h6n2hp.js +7 -0
  4. package/CodeAgentRpcListener-7p7z5dd7.js +97 -0
  5. package/CodeTui-5ed6bg2a.js +1457 -0
  6. package/README.ko.md +83 -28
  7. package/README.md +70 -27
  8. package/TunnelShare-cwh9ezsm.js +9 -0
  9. package/{agent.command-0q17pnrs.js → agent.command-gn73rhe7.js} +8 -9
  10. package/akanCode.js +102 -0
  11. package/application.command-e968t0hw.js +246 -0
  12. package/{applicationBuildRunner-kxwbssgn.js → applicationBuildRunner-64taxseg.js} +121 -77
  13. package/buildBatch.proc.js +120 -32
  14. package/cloud.command-0jm301rr.js +95 -0
  15. package/cloud.script-nemnzjpv.js +20 -0
  16. package/code.command-18kcm7hq.js +154 -0
  17. package/commandManifest.json +1 -1
  18. package/consoleToStderr-h5bryj94.js +7 -0
  19. package/context.command-trd9bn18.js +48 -0
  20. package/context.runner-y5hwh673.js +21 -0
  21. package/{dependencyScanner-shs82ynp.js → dependencyScanner-06z2dmrr.js} +2 -2
  22. package/{devTui-m1atgkc9.js → devTui-q7k7bakd.js} +122 -40
  23. package/fileSys-wzzrntkw.js +9 -0
  24. package/guideline.command-bdmdn2de.js +42 -0
  25. package/guidelines/agentRule/agentRule.instruction.md +154 -26
  26. package/guidelines/conventions/conventions.instruction.md +134 -48
  27. package/guidelines/mcpRule/mcpRule.instruction.md +7 -5
  28. package/guidelines/queryRule/queryRule.instruction.md +21 -7
  29. package/guidelines/runtimeRule/runtimeRule.instruction.md +291 -6
  30. package/guidelines/ssrRule/ssrRule.instruction.md +4 -2
  31. package/guidelines/transportRule/transportRule.instruction.md +10 -8
  32. package/guidelines/workspaceOnboarding/workspaceOnboarding.instruction.md +20 -0
  33. package/guidelines/workspaceRecipes/workspaceRecipes.instruction.md +66 -3
  34. package/incrementalBuilder.proc.js +564 -109
  35. package/index-0wpybxtr.js +2729 -0
  36. package/{index-kcxmv48c.js → index-2ahj896a.js} +45 -79
  37. package/index-2wc41k5w.js +49 -0
  38. package/index-3hx1z96c.js +87 -0
  39. package/{index-2tv3fdx4.js → index-3w94e7n3.js} +1228 -1458
  40. package/{index-hwkygn9s.js → index-48k96p55.js} +325 -36
  41. package/index-4npz05nm.js +187 -0
  42. package/{index-q0y2jq9j.js → index-52w0fvh8.js} +21 -4
  43. package/index-6he6gvfg.js +4300 -0
  44. package/index-7md2g9vw.js +6 -0
  45. package/{index-04bk599g.js → index-93j60em0.js} +10 -17
  46. package/index-94s080qm.js +266 -0
  47. package/index-9dp031by.js +12 -0
  48. package/{index-ktb5njgy.js → index-9z771ptz.js} +49 -99
  49. package/{index-y6n8nmny.js → index-abxpehf8.js} +75 -203
  50. package/{index-3d9y066c.js → index-bjwxs904.js} +9 -8
  51. package/{index-9077wzd2.js → index-by9pxkr0.js} +43 -26
  52. package/index-c6eggbee.js +123 -0
  53. package/index-d2242ksy.js +99 -0
  54. package/index-drehwpdt.js +1119 -0
  55. package/{index-92zztqy1.js → index-dy0jx9ay.js} +2 -17
  56. package/{index-ffvk10zz.js → index-f3c78nd6.js} +107 -241
  57. package/index-gbggbqcp.js +1058 -0
  58. package/{index-by5gpp8x.js → index-hj6w4ka1.js} +2 -1
  59. package/index-hsmtysz4.js +53 -0
  60. package/{index-j9yhg404.js → index-jmrn54tt.js} +4 -7
  61. package/{index-a64esmtb.js → index-kcdj1z5v.js} +523 -1022
  62. package/{index-d43r08tf.js → index-kqabytj7.js} +77 -150
  63. package/{index-vyvre9en.js → index-mbxbhay5.js} +6 -2
  64. package/{index-vxtad5bd.js → index-mgxpx3f2.js} +5 -8
  65. package/index-p6pbz9n5.js +25 -0
  66. package/{index-sj5vxr8f.js → index-p993efkq.js} +981 -897
  67. package/{index-2xp0kfkt.js → index-pmhqttv3.js} +37 -25
  68. package/index-tqm7jjcn.js +700 -0
  69. package/{index-0g7r8xz3.js → index-vpj42xwt.js} +114 -232
  70. package/index-wa5jbxj1.js +760 -0
  71. package/{index-k2j1hc4r.js → index-wprnsjms.js} +12 -12
  72. package/{index-gyd220p2.js → index-y3mphr1m.js} +554 -577
  73. package/index-yg7jhz8x.js +69 -0
  74. package/{index-h7yw2z9n.js → index-zzvvc845.js} +8 -14
  75. package/index.js +23 -22
  76. package/{library.command-qzzbj6d8.js → library.command-9h749a1x.js} +4 -5
  77. package/{localRegistry.command-vyrgg4xw.js → localRegistry.command-2bqqhxyz.js} +23 -43
  78. package/{module.command-rq5hq3ax.js → module.command-nv8nzgft.js} +8 -12
  79. package/{package.command-d9hd6v9n.js → package.command-mq4bggp6.js} +6 -7
  80. package/package.json +15 -7
  81. package/{page.command-126d56te.js → page.command-j639n707.js} +4 -5
  82. package/{primitive.command-taxd1538.js → primitive.command-kz6849th.js} +9 -23
  83. package/prompter-76k56b37.js +8 -0
  84. package/{quality.command-6gsna0a3.js → quality.command-4hyabwkb.js} +205 -377
  85. package/{recipeScanner-fpagtgc1.js → recipeScanner-4b69ybe0.js} +1 -1
  86. package/{repair.command-tq2dgy72.js → repair.command-a9awpbqr.js} +11 -35
  87. package/{routeSourceValidator-apyqw7wk.js → routeSourceValidator-7ycnfz0e.js} +0 -6
  88. package/{scalar.command-3bcmrrkv.js → scalar.command-ma4fpm9m.js} +7 -11
  89. package/skills/akan-code/SKILL.md +130 -0
  90. package/skills/akan-debug/SKILL.md +42 -0
  91. package/skills/akan-deps/SKILL.md +50 -0
  92. package/skills/akan-err/SKILL.md +39 -0
  93. package/skills/akan-module/SKILL.md +45 -0
  94. package/skills/akan-scaffold/SKILL.md +76 -0
  95. package/skills/akan-scalar/SKILL.md +52 -0
  96. package/skills/akan-service/SKILL.md +34 -0
  97. package/skills/akan-store/SKILL.md +67 -0
  98. package/skills/akan-ui/SKILL.md +63 -0
  99. package/skills/akan-validate/SKILL.md +44 -0
  100. package/{subspace.command-eddzqpx3.js → subspace.command-3k2pmrs4.js} +53 -62
  101. package/templates/__scalar/__model__/__model__.abstract.md.template +8 -0
  102. package/templates/app/page/_index.tsx +257 -258
  103. package/templates/app/page/_layout.tsx +5 -1
  104. package/templates/app/page/_overrides.tsx +12 -0
  105. package/templates/app/page/styles.css.template +316 -14
  106. package/templates/app/public/apple-touch-icon.png +0 -0
  107. package/templates/app/public/favicon.ico +0 -0
  108. package/templates/app/public/jelly/cloud.webp +0 -0
  109. package/templates/app/public/jelly/comet.webp +0 -0
  110. package/templates/app/public/jelly/moon.webp +0 -0
  111. package/templates/app/public/jelly/planet.webp +0 -0
  112. package/templates/app/public/jelly/rocket.webp +0 -0
  113. package/templates/app/public/jelly/star.webp +0 -0
  114. package/templates/app/public/jelly/sugar.webp +0 -0
  115. package/templates/app/public/logo.png +0 -0
  116. package/templates/app/ui/Recipe/index.ts +9 -0
  117. package/templates/app/ui/Recipe/jellyButton.ts +63 -0
  118. package/templates/appSample/lib/__scalar/workHistory/workHistory.abstract.ts +8 -39
  119. package/templates/appSample/lib/_noti/noti.abstract.ts +6 -29
  120. package/templates/appSample/lib/task/Task.Unit.tsx +1 -1
  121. package/templates/appSample/lib/task/Task.Util.tsx +10 -13
  122. package/templates/appSample/lib/task/Task.View.tsx +2 -2
  123. package/templates/appSample/lib/task/Task.Zone.tsx +5 -2
  124. package/templates/appSample/lib/task/task.abstract.ts +12 -32
  125. package/templates/appSample/lib/task/task.signal.spec.ts +1 -15
  126. package/templates/appSample/lib/task/task.signal.test.ts +15 -1
  127. package/templates/appSample/lib/task/task.signal.ts +10 -8
  128. package/templates/appSample/page/task/[taskId]/_index.tsx +6 -6
  129. package/templates/appSample/page/task/[taskId]/edit.tsx +5 -4
  130. package/templates/appSample/page/task/_index.tsx +4 -3
  131. package/templates/appSample/page/task/_layout.tsx +1 -1
  132. package/templates/appSample/page/task/new.tsx +5 -4
  133. package/templates/appSample/srvkit/{AuthGuard.ts → guards.ts} +7 -4
  134. package/templates/appSample/srvkit/{SessionInternalArg.ts → internalArgs.ts} +6 -4
  135. package/templates/appSample/ui/GlobalLoading.tsx +2 -1
  136. package/templates/appSample/ui/QuantityControl.tsx +3 -3
  137. package/templates/client.ts +7 -30
  138. package/templates/crudPages/[__model__Id]/edit/page.tsx +2 -1
  139. package/templates/crudPages/[__model__Id]/page.tsx +2 -1
  140. package/templates/crudPages/new/page.tsx +2 -1
  141. package/templates/crudPages/page.tsx +2 -1
  142. package/templates/crudSinglePage/page.tsx +2 -1
  143. package/templates/lib/__lib/lib.dictionary.ts +0 -2
  144. package/templates/lib/__lib/lib.document.ts +0 -2
  145. package/templates/lib/sig.ts +8 -30
  146. package/templates/localDev/docker-compose.yaml.template +3 -14
  147. package/templates/module/__model__.signal.ts +12 -4
  148. package/templates/pkgRoot/tsconfig.json.template +2 -7
  149. package/templates/server.ts +1 -3
  150. package/templates/service/__model__.abstract.md.template +8 -0
  151. package/templates/workspaceRoot/.gitignore.template +0 -1
  152. package/templates/workspaceRoot/AGENTS.md.template +6 -0
  153. package/templates/workspaceRoot/package.json.template +1 -3
  154. package/tunnel.command-xwr46b66.js +129 -0
  155. package/{typeChecker-3xgrzc2v.js → typeChecker-px49mezc.js} +1 -1
  156. package/typecheck.proc.js +1 -1
  157. package/workflow.command-t7wqe4h7.js +79 -0
  158. package/{workspace.command-06wvstgr.js → workspace.command-4derhzrh.js} +79 -109
  159. package/abstractCompactor-gmkc0z8j.js +0 -102
  160. package/application.command-18y0s485.js +0 -204
  161. package/applicationReleasePackager-4yasxwv9.js +0 -244
  162. package/capacitorApp-36rbr858.js +0 -12
  163. package/cloud.command-av97ndh6.js +0 -94
  164. package/cloud.script-cm11xjdz.js +0 -20
  165. package/context.command-5v37ef3n.js +0 -81
  166. package/devTuiView-0hc2emhe.js +0 -9
  167. package/getDirname-dr3jz1xg.js +0 -7
  168. package/guideline.command-4pz9g1rt.js +0 -360
  169. package/guidelines/agentRule/agentRule.generate.json +0 -31
  170. package/guidelines/componentRule/componentRule.generate.json +0 -31
  171. package/guidelines/conventions/conventions.generate.json +0 -25
  172. package/guidelines/cssRule/cssRule.generate.json +0 -31
  173. package/guidelines/docPageRule/docPageRule.generate.json +0 -31
  174. package/guidelines/docPageRule/docPageRule.instruction.md +0 -25
  175. package/guidelines/docSyncRule/docSyncRule.generate.json +0 -31
  176. package/guidelines/docSyncRule/docSyncRule.instruction.md +0 -25
  177. package/guidelines/enumConstant/enumConstant.generate.json +0 -31
  178. package/guidelines/enumConstant/enumConstant.instruction.md +0 -28
  179. package/guidelines/fieldRule/fieldRule.generate.json +0 -31
  180. package/guidelines/framework/framework.generate.json +0 -32
  181. package/guidelines/mcpRule/mcpRule.generate.json +0 -35
  182. package/guidelines/modelConstant/modelConstant.generate.json +0 -32
  183. package/guidelines/modelDictionary/modelDictionary.generate.json +0 -32
  184. package/guidelines/modelDocument/modelDocument.generate.json +0 -31
  185. package/guidelines/modelService/modelService.generate.json +0 -31
  186. package/guidelines/modelSignal/modelSignal.generate.json +0 -31
  187. package/guidelines/modelStore/modelStore.generate.json +0 -31
  188. package/guidelines/modelTemplate/modelTemplate.generate.json +0 -31
  189. package/guidelines/modelUnit/modelUnit.generate.json +0 -31
  190. package/guidelines/modelUtil/modelUtil.generate.json +0 -31
  191. package/guidelines/modelView/modelView.generate.json +0 -31
  192. package/guidelines/modelZone/modelZone.generate.json +0 -31
  193. package/guidelines/moduleCodegen/moduleCodegen.generate.json +0 -31
  194. package/guidelines/moduleCodegen/moduleCodegen.instruction.md +0 -28
  195. package/guidelines/moduleOverview/moduleOverview.generate.json +0 -31
  196. package/guidelines/queryRule/queryRule.generate.json +0 -31
  197. package/guidelines/recipeRule/recipeRule.generate.json +0 -31
  198. package/guidelines/runtimeRule/runtimeRule.generate.json +0 -25
  199. package/guidelines/scalarConstant/scalarConstant.generate.json +0 -32
  200. package/guidelines/scalarDictionary/scalarDictionary.generate.json +0 -32
  201. package/guidelines/scalarModule/scalarModule.generate.json +0 -31
  202. package/guidelines/sharedUiUsage/sharedUiUsage.generate.json +0 -31
  203. package/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +0 -25
  204. package/guidelines/ssrRule/ssrRule.generate.json +0 -31
  205. package/guidelines/transportRule/transportRule.generate.json +0 -31
  206. package/guidelines/utilUiUsage/utilUiUsage.generate.json +0 -31
  207. package/guidelines/utilUiUsage/utilUiUsage.instruction.md +0 -25
  208. package/guidelines/workspaceOnboarding/workspaceOnboarding.generate.json +0 -24
  209. package/guidelines/workspaceRecipes/workspaceRecipes.generate.json +0 -33
  210. package/index-47pj3aee.js +0 -76
  211. package/index-5ystnsd5.js +0 -841
  212. package/index-6wwzs1bc.js +0 -7
  213. package/index-a17x49vg.js +0 -229
  214. package/index-m0xccmmm.js +0 -228
  215. package/index-meh558jy.js +0 -65
  216. package/index-rtxxan88.js +0 -471
  217. package/index-te54x9zm.js +0 -338
  218. package/index-w8kmx1b6.js +0 -2176
  219. package/index-wt7qrtd4.js +0 -1516
  220. package/templates/__scalar/__model__/__model__.abstract.md +0 -28
  221. package/templates/module/__model__.abstract.md +0 -28
  222. package/templates/service/__model__.abstract.md +0 -28
  223. package/templates/workspaceRoot/patches/react-dom@19.2.7.patch.template +0 -62
  224. package/workflow.command-gtdnzvbz.js +0 -108
@@ -1,31 +0,0 @@
1
- {
2
- "title": "Module Overview",
3
- "description": "Module file roles and growth order",
4
- "group": "core",
5
- "docsSource": "apps/akan/page/(docs)/conventions/module/overview.tsx",
6
- "codegenPriority": 1,
7
- "deprecated": false,
8
- "scans": [
9
- {
10
- "type": "docs",
11
- "description": "Current docs source for Module Overview",
12
- "path": "apps/akan/page/(docs)/conventions/module/overview.tsx"
13
- },
14
- {
15
- "type": "example",
16
- "description": "Existing Akan implementation examples",
17
- "path": "{apps,libs}/*/lib/**/*.ts",
18
- "sample": 4
19
- }
20
- ],
21
- "update": {
22
- "filePath": "./moduleOverview.instruction.md",
23
- "contents": ["purpose", "file ownership", "current API patterns", "codegen rules", "validation checklist"],
24
- "rules": [
25
- "Use current Akan APIs only",
26
- "Keep output parseable for codegen",
27
- "Include ownership boundaries and review checklist"
28
- ]
29
- },
30
- "page": "apps/akan/page/(docs)/conventions/module/overview.tsx"
31
- }
@@ -1,31 +0,0 @@
1
- {
2
- "title": "Query Rule",
3
- "description": "Akan data access — filters, slices and hydration, full-text search, and cascade removal",
4
- "group": "core",
5
- "codegenPriority": 4,
6
- "deprecated": false,
7
- "scans": [
8
- {
9
- "type": "example",
10
- "description": "Filter and model declarations that drive the generated query surface",
11
- "path": "{apps,libs}/*/lib/*/*.document.ts",
12
- "sample": 4
13
- },
14
- {
15
- "type": "example",
16
- "description": "Slice declarations that expose a query to a client store",
17
- "path": "{apps,libs}/*/lib/*/*.signal.ts",
18
- "sample": 4
19
- }
20
- ],
21
- "update": {
22
- "filePath": "./queryRule.instruction.md",
23
- "contents": ["slices and hydration", "generated filter methods", "text search", "cascade removal"],
24
- "rules": [
25
- "Use current Akan APIs only",
26
- "State the rule and the reason it exists, never restate a type signature",
27
- "Say which generated methods fire hooks and which do not",
28
- "Keep it workspace-neutral — no app or repo names"
29
- ]
30
- }
31
- }
@@ -1,31 +0,0 @@
1
- {
2
- "title": "Recipe Rule",
3
- "description": "Akan UI recipe authoring and consumption rules (reusable-look layer)",
4
- "group": "core",
5
- "docsSource": "apps/akan/page/(docs)/docs/arch/ui-recipe.tsx",
6
- "codegenPriority": 3,
7
- "deprecated": false,
8
- "scans": [
9
- {
10
- "type": "docs",
11
- "description": "Current docs source for Recipe Rule",
12
- "path": "apps/akan/page/(docs)/docs/arch/ui-recipe.tsx"
13
- },
14
- {
15
- "type": "example",
16
- "description": "Existing recipe definitions",
17
- "path": "{apps,libs}/*/ui/Recipe/*.ts",
18
- "sample": 4
19
- }
20
- ],
21
- "update": {
22
- "filePath": "./recipeRule.instruction.md",
23
- "contents": ["purpose", "ownership", "consuming", "authoring", "codegen rules", "review checklist"],
24
- "rules": [
25
- "Use current Akan APIs only",
26
- "Keep output parseable for codegen",
27
- "Include ownership boundaries and review checklist"
28
- ]
29
- },
30
- "page": "apps/akan/page/(docs)/docs/arch/ui-recipe.tsx"
31
- }
@@ -1,25 +0,0 @@
1
- {
2
- "title": "Runtime Rule",
3
- "description": "Akan build and runtime surfaces — web/csr toggles, the gateway/solo process model, logging, the generated image, and shipped assets",
4
- "group": "core",
5
- "codegenPriority": 4,
6
- "deprecated": false,
7
- "scans": [
8
- {
9
- "type": "example",
10
- "description": "App and lib runtime declarations",
11
- "path": "{apps,libs}/*/akan.config.ts",
12
- "sample": 4
13
- }
14
- ],
15
- "update": {
16
- "filePath": "./runtimeRule.instruction.md",
17
- "contents": ["web surface toggles", "process model", "logging and live tail", "generated image", "shipped assets"],
18
- "rules": [
19
- "Use current Akan APIs only",
20
- "State the rule and the reason it exists, never restate a type signature",
21
- "Name the env that narrows a build-time declaration wherever one exists",
22
- "Keep it workspace-neutral — no app or repo names"
23
- ]
24
- }
25
- }
@@ -1,32 +0,0 @@
1
- {
2
- "title": "Scalar Constant",
3
- "description": "Scalar constant generation rules",
4
- "group": "scalar",
5
- "docsSource": "apps/akan/page/(docs)/conventions/scalar/constant.tsx",
6
- "codegenPriority": 1,
7
- "deprecated": false,
8
- "scans": [
9
- {
10
- "type": "docs",
11
- "description": "Current docs source for Scalar Constant",
12
- "path": "apps/akan/page/(docs)/conventions/scalar/constant.tsx"
13
- },
14
- {
15
- "type": "example",
16
- "description": "Existing Akan implementation examples",
17
- "path": "{apps,libs}/*/lib/**/*.ts",
18
- "sample": 4
19
- }
20
- ],
21
- "update": {
22
- "filePath": "./scalarConstant.instruction.md",
23
- "contents": ["purpose", "file ownership", "current API patterns", "codegen rules", "validation checklist"],
24
- "rules": [
25
- "Use current Akan APIs only",
26
- "Use double quotes for all string literals in TypeScript code",
27
- "Keep output parseable for codegen",
28
- "Include ownership boundaries and review checklist"
29
- ]
30
- },
31
- "page": "apps/akan/page/(docs)/conventions/scalar/constant.tsx"
32
- }
@@ -1,32 +0,0 @@
1
- {
2
- "title": "Scalar Dictionary",
3
- "description": "Scalar dictionary generation rules",
4
- "group": "scalar",
5
- "docsSource": "apps/akan/page/(docs)/conventions/scalar/dictionary.tsx",
6
- "codegenPriority": 1,
7
- "deprecated": false,
8
- "scans": [
9
- {
10
- "type": "docs",
11
- "description": "Current docs source for Scalar Dictionary",
12
- "path": "apps/akan/page/(docs)/conventions/scalar/dictionary.tsx"
13
- },
14
- {
15
- "type": "example",
16
- "description": "Existing Akan implementation examples",
17
- "path": "{apps,libs}/*/lib/**/*.ts",
18
- "sample": 4
19
- }
20
- ],
21
- "update": {
22
- "filePath": "./scalarDictionary.instruction.md",
23
- "contents": ["purpose", "file ownership", "current API patterns", "codegen rules", "validation checklist"],
24
- "rules": [
25
- "Use current Akan APIs only",
26
- "Use double quotes for all string literals in TypeScript code",
27
- "Keep output parseable for codegen",
28
- "Include ownership boundaries and review checklist"
29
- ]
30
- },
31
- "page": "apps/akan/page/(docs)/conventions/scalar/dictionary.tsx"
32
- }
@@ -1,31 +0,0 @@
1
- {
2
- "title": "Scalar Module",
3
- "description": "Scalar module overview rules",
4
- "group": "scalar",
5
- "docsSource": "apps/akan/page/(docs)/conventions/scalar/overview.tsx",
6
- "codegenPriority": 1,
7
- "deprecated": false,
8
- "scans": [
9
- {
10
- "type": "docs",
11
- "description": "Current docs source for Scalar Module",
12
- "path": "apps/akan/page/(docs)/conventions/scalar/overview.tsx"
13
- },
14
- {
15
- "type": "example",
16
- "description": "Existing Akan implementation examples",
17
- "path": "{apps,libs}/*/lib/**/*.ts",
18
- "sample": 4
19
- }
20
- ],
21
- "update": {
22
- "filePath": "./scalarModule.instruction.md",
23
- "contents": ["purpose", "file ownership", "current API patterns", "codegen rules", "validation checklist"],
24
- "rules": [
25
- "Use current Akan APIs only",
26
- "Keep output parseable for codegen",
27
- "Include ownership boundaries and review checklist"
28
- ]
29
- },
30
- "page": "apps/akan/page/(docs)/conventions/scalar/overview.tsx"
31
- }
@@ -1,31 +0,0 @@
1
- {
2
- "title": "Shared UI Usage",
3
- "description": "Shared UI usage rules",
4
- "group": "core",
5
- "docsSource": "apps/akan/page/(docs)/references/ui/overview.tsx",
6
- "codegenPriority": 3,
7
- "deprecated": false,
8
- "scans": [
9
- {
10
- "type": "docs",
11
- "description": "Current docs source for Shared UI Usage",
12
- "path": "apps/akan/page/(docs)/references/ui/overview.tsx"
13
- },
14
- {
15
- "type": "example",
16
- "description": "Existing Akan implementation examples",
17
- "path": "{apps,libs}/*/lib/**/*.ts",
18
- "sample": 4
19
- }
20
- ],
21
- "update": {
22
- "filePath": "./sharedUiUsage.instruction.md",
23
- "contents": ["purpose", "file ownership", "current API patterns", "codegen rules", "validation checklist"],
24
- "rules": [
25
- "Use current Akan APIs only",
26
- "Keep output parseable for codegen",
27
- "Include ownership boundaries and review checklist"
28
- ]
29
- },
30
- "page": "apps/akan/page/(docs)/references/ui/overview.tsx"
31
- }
@@ -1,25 +0,0 @@
1
- # Shared UI Usage Guideline
2
-
3
- ## Purpose
4
- Use shared UI components when building app or module UI that should stay consistent across products.
5
-
6
- ## Ownership
7
- - Shared UI components provide reusable display, form, overlay, and layout primitives.
8
- - Prefer documented props and local examples before inventing new wrappers.
9
- - Shared UI should remain domain-neutral.
10
-
11
- ## Current Akan Patterns
12
- - Import from the project shared UI entrypoints already used nearby.
13
- - Wrap shared UI only when the module needs domain-specific labels or behavior.
14
- - Preserve accessibility and theming assumptions from the shared component.
15
-
16
- ## Codegen Rules
17
- - Do not copy shared UI internals into module files.
18
- - Do not pass unsupported props.
19
- - Do not make shared UI depend on one app domain.
20
-
21
- ## Review Checklist
22
- - The instruction points to current docs pages, not removed docs routes.
23
- - Generated examples use current Akan builder APIs and scanner-friendly filenames.
24
- - The output contract tells the model which file paths to return.
25
- - The guide avoids broad framework essays when a concrete file rule is better.
@@ -1,31 +0,0 @@
1
- {
2
- "title": "SSR Rule",
3
- "description": "Akan SSR-first rendering rules — keep JSX on the server and justify every client boundary",
4
- "group": "core",
5
- "codegenPriority": 3,
6
- "deprecated": false,
7
- "scans": [
8
- {
9
- "type": "example",
10
- "description": "Client boundary shells that render server children untouched",
11
- "path": "{apps,libs}/*/ui/**/*.tsx",
12
- "sample": 4
13
- },
14
- {
15
- "type": "example",
16
- "description": "Module UI split across client Zone/Template/Util and server Unit/View",
17
- "path": "{apps,libs}/*/lib/*/*.tsx",
18
- "sample": 4
19
- }
20
- ],
21
- "update": {
22
- "filePath": "./ssrRule.instruction.md",
23
- "contents": ["purpose", "when a client boundary is earned", "quality rules", "implementation playbook"],
24
- "rules": [
25
- "Use current Akan APIs only",
26
- "Keep output parseable for codegen",
27
- "Name the akan.ssr.* rule ids the quality scanner emits",
28
- "Ground every pattern in a file that exists in the workspace"
29
- ]
30
- }
31
- }
@@ -1,31 +0,0 @@
1
- {
2
- "title": "Transport Rule",
3
- "description": "How a call reaches an Akan signal — guards across HTTP and websocket, socket identity and cleanup, binary pubsub frames, and mutation HTTP verbs",
4
- "group": "core",
5
- "codegenPriority": 4,
6
- "deprecated": false,
7
- "scans": [
8
- {
9
- "type": "example",
10
- "description": "Guard classes and their scope markers",
11
- "path": "{apps,libs}/*/srvkit/guards.ts",
12
- "sample": 2
13
- },
14
- {
15
- "type": "example",
16
- "description": "Signal endpoints declaring guards, pubsub, and message handlers",
17
- "path": "{apps,libs}/*/lib/*/*.signal.ts",
18
- "sample": 4
19
- }
20
- ],
21
- "update": {
22
- "filePath": "./transportRule.instruction.md",
23
- "contents": ["guards across transports", "signal body types", "binary pubsub", "mutation HTTP verbs"],
24
- "rules": [
25
- "Use current Akan APIs only",
26
- "State the rule and the reason it exists, never restate a type signature",
27
- "Say what leaks or breaks when a rule is ignored",
28
- "Keep it workspace-neutral — no app or repo names"
29
- ]
30
- }
31
- }
@@ -1,31 +0,0 @@
1
- {
2
- "title": "Util UI Usage",
3
- "description": "Utility UI usage rules",
4
- "group": "core",
5
- "docsSource": "apps/akan/page/(docs)/references/ui/core.tsx",
6
- "codegenPriority": 3,
7
- "deprecated": false,
8
- "scans": [
9
- {
10
- "type": "docs",
11
- "description": "Current docs source for Util UI Usage",
12
- "path": "apps/akan/page/(docs)/references/ui/core.tsx"
13
- },
14
- {
15
- "type": "example",
16
- "description": "Existing Akan implementation examples",
17
- "path": "{apps,libs}/*/lib/**/*.ts",
18
- "sample": 4
19
- }
20
- ],
21
- "update": {
22
- "filePath": "./utilUiUsage.instruction.md",
23
- "contents": ["purpose", "file ownership", "current API patterns", "codegen rules", "validation checklist"],
24
- "rules": [
25
- "Use current Akan APIs only",
26
- "Keep output parseable for codegen",
27
- "Include ownership boundaries and review checklist"
28
- ]
29
- },
30
- "page": "apps/akan/page/(docs)/references/ui/core.tsx"
31
- }
@@ -1,25 +0,0 @@
1
- # Util UI Usage Guideline
2
-
3
- ## Purpose
4
- Use utility UI components for common application interactions, layout helpers, scrolling, loading, and small display patterns.
5
-
6
- ## Ownership
7
- - Utility UI is for cross-domain layout and interaction helpers.
8
- - Module-specific controls still belong in Model.Util.
9
- - Docs pages may use utility UI for scroll sections and navigation.
10
-
11
- ## Current Akan Patterns
12
- - Prefer existing utility components before adding custom layout code.
13
- - Keep imported utility UI usage close to nearby docs and app examples.
14
- - Forward className and preserve composition.
15
-
16
- ## Codegen Rules
17
- - Do not make utility UI carry model-specific business behavior.
18
- - Do not duplicate util components in each module.
19
- - Do not use utility components without checking expected props.
20
-
21
- ## Review Checklist
22
- - The instruction points to current docs pages, not removed docs routes.
23
- - Generated examples use current Akan builder APIs and scanner-friendly filenames.
24
- - The output contract tells the model which file paths to return.
25
- - The guide avoids broad framework essays when a concrete file rule is better.
@@ -1,24 +0,0 @@
1
- {
2
- "title": "Workspace Onboarding",
3
- "description": "Product-workspace orientation — layout, decision matrix, workflow recipes, and query gotchas",
4
- "group": "core",
5
- "codegenPriority": 2,
6
- "deprecated": false,
7
- "scans": [],
8
- "update": {
9
- "filePath": "./workspaceOnboarding.instruction.md",
10
- "contents": [
11
- "workspace layout and generated files",
12
- "agent workflow and common commands",
13
- "where-do-I-put-this decision matrix",
14
- "workflow recipes",
15
- "modeling and query gotchas"
16
- ],
17
- "rules": [
18
- "Use current Akan APIs only",
19
- "Write for someone building a product on Akan, not for someone changing Akan",
20
- "Refer to the app as <%= appName %>; the renderer substitutes the workspace's first app",
21
- "Do not repeat a rule that the conventions guideline already states"
22
- ]
23
- }
24
- }
@@ -1,33 +0,0 @@
1
- {
2
- "title": "Workspace Recipes",
3
- "description": "Worked step-by-step recipes for common Akan changes, plus the auto-generated signal/service/store/document API reference",
4
- "group": "core",
5
- "codegenPriority": 5,
6
- "deprecated": false,
7
- "scans": [
8
- {
9
- "type": "example",
10
- "description": "Module files a recipe walks through",
11
- "path": "{apps,libs}/*/lib/*/*.{constant,document,service,signal,store}.ts",
12
- "sample": 5
13
- }
14
- ],
15
- "update": {
16
- "filePath": "./workspaceRecipes.instruction.md",
17
- "contents": [
18
- "add a field",
19
- "inject a dependency",
20
- "create a slice",
21
- "create a mutation",
22
- "internal triggers",
23
- "insights",
24
- "auto-generated API reference"
25
- ],
26
- "rules": [
27
- "Use current Akan APIs only",
28
- "Every recipe names the files to edit and the order to edit them in",
29
- "Keep the <%= appName %> placeholder so the rendered guide names this workspace's app",
30
- "Never duplicate a rule that workspaceOnboarding already states — link to it instead"
31
- ]
32
- }
33
- }
package/index-47pj3aee.js DELETED
@@ -1,76 +0,0 @@
1
- // @bun
2
- // pkgs/@akanjs/devkit/mobile/mobileTarget.ts
3
- var getMobileTargets = async (app) => {
4
- const config = await app.getConfig();
5
- return Object.entries(config.mobile.targets).map(([name, target]) => ({ name, config: target }));
6
- };
7
- var getMobileTargetChoices = async (app) => {
8
- const config = await app.getConfig();
9
- const targetNames = Object.keys(config.mobile.targets);
10
- if (targetNames.length > 0)
11
- return targetNames;
12
- const basePaths = [...config.basePaths];
13
- return basePaths;
14
- };
15
- var resolveMobileTargetByBasePath = (targets, basePath) => {
16
- const normalizedBasePath = basePath.replace(/^\/+|\/+$/g, "");
17
- const byBasePath = targets.find((target) => target.config.basePath?.replace(/^\/+|\/+$/g, "") === normalizedBasePath);
18
- if (byBasePath)
19
- return byBasePath;
20
- const [template] = targets;
21
- if (!template)
22
- return;
23
- return {
24
- name: normalizedBasePath,
25
- config: {
26
- ...template.config,
27
- name: normalizedBasePath,
28
- basePath: normalizedBasePath
29
- }
30
- };
31
- };
32
- var resolveMobileTargets = async (app, selection) => {
33
- const config = await app.getConfig();
34
- const targets = await getMobileTargets(app);
35
- if (targets.length === 0)
36
- throw new Error(`No mobile targets configured for ${app.name}`);
37
- if (!selection && targets.length === 1)
38
- return targets;
39
- if (!selection) {
40
- const choices = await getMobileTargetChoices(app);
41
- if (choices.length === 1)
42
- return resolveMobileTargets(app, choices[0]);
43
- throw new Error(`Multiple mobile targets found for ${app.name}. Pass --target <${choices.join("|")}|all>.`);
44
- }
45
- if (selection === "all") {
46
- if (Object.keys(config.mobile.targets).length > 1)
47
- return targets;
48
- const basePaths = [...config.basePaths];
49
- if (basePaths.length > 1) {
50
- return basePaths.flatMap((basePath) => {
51
- const resolved = resolveMobileTargetByBasePath(targets, basePath);
52
- return resolved ? [resolved] : [];
53
- });
54
- }
55
- return targets;
56
- }
57
- const target = targets.find((candidate) => candidate.name === selection);
58
- if (target)
59
- return [target];
60
- const basePathTarget = resolveMobileTargetByBasePath(targets, selection);
61
- if (basePathTarget && config.basePaths.has(selection.replace(/^\/+|\/+$/g, "")))
62
- return [basePathTarget];
63
- const choices = await getMobileTargetChoices(app);
64
- throw new Error(`Mobile target '${selection}' was not found. Available: ${choices.join(", ")}`);
65
- };
66
- var resolveMobilePath = (target, pathname) => {
67
- const basePath = target.basePath?.replace(/^\/+|\/+$/g, "");
68
- const normalizedPath = `/${pathname.replace(/^\/+/, "")}`;
69
- if (!basePath)
70
- return normalizedPath;
71
- if (normalizedPath === `/${basePath}` || normalizedPath.startsWith(`/${basePath}/`))
72
- return normalizedPath;
73
- return `/${basePath}${normalizedPath === "/" ? "" : normalizedPath}`;
74
- };
75
- var targetHtmlFilename = (target) => target.basePath?.replace(/^\/+|\/+$/g, "") ? `${target.basePath.replace(/^\/+|\/+$/g, "")}.html` : "index.html";
76
- export { getMobileTargets, getMobileTargetChoices, resolveMobileTargets, resolveMobilePath, targetHtmlFilename };