@akanjs/cli 3.0.0-beta.9 → 3.0.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.
- package/.build-stamp +1 -1
- package/CodeAgent-zfab7pkn.js +9 -0
- package/CodeAgentRpcHost-p7h6n2hp.js +7 -0
- package/CodeAgentRpcListener-7p7z5dd7.js +97 -0
- package/CodeTui-0zhnr0pw.js +1457 -0
- package/README.ko.md +83 -28
- package/README.md +70 -27
- package/TunnelShare-cwh9ezsm.js +9 -0
- package/{agent.command-0q17pnrs.js → agent.command-aja6z9mn.js} +8 -9
- package/akanCode.js +102 -0
- package/application.command-049ehgx3.js +246 -0
- package/{applicationBuildRunner-kxwbssgn.js → applicationBuildRunner-75n5rpwp.js} +121 -77
- package/buildBatch.proc.js +120 -32
- package/cloud.command-gw4kqxt8.js +95 -0
- package/cloud.script-c723cpcb.js +20 -0
- package/code.command-x9t6z5nw.js +154 -0
- package/commandManifest.json +1 -1
- package/consoleToStderr-h5bryj94.js +7 -0
- package/context.command-yfbe1rtd.js +48 -0
- package/context.runner-erfe68j5.js +21 -0
- package/{dependencyScanner-shs82ynp.js → dependencyScanner-06z2dmrr.js} +2 -2
- package/{devTui-m1atgkc9.js → devTui-q7k7bakd.js} +122 -40
- package/fileSys-wzzrntkw.js +9 -0
- package/guideline.command-kq9gp690.js +42 -0
- package/guidelines/agentRule/agentRule.instruction.md +154 -26
- package/guidelines/conventions/conventions.instruction.md +138 -48
- package/guidelines/mcpRule/mcpRule.instruction.md +7 -5
- package/guidelines/queryRule/queryRule.instruction.md +21 -7
- package/guidelines/runtimeRule/runtimeRule.instruction.md +291 -6
- package/guidelines/ssrRule/ssrRule.instruction.md +4 -2
- package/guidelines/transportRule/transportRule.instruction.md +10 -8
- package/guidelines/workspaceOnboarding/workspaceOnboarding.instruction.md +20 -0
- package/guidelines/workspaceRecipes/workspaceRecipes.instruction.md +66 -3
- package/incrementalBuilder.proc.js +564 -109
- package/{index-2tv3fdx4.js → index-150s07n8.js} +1230 -1459
- package/{index-vyvre9en.js → index-25fvrxmy.js} +6 -2
- package/{index-kcxmv48c.js → index-2ahj896a.js} +45 -79
- package/index-2wc41k5w.js +49 -0
- package/index-3hx1z96c.js +87 -0
- package/{index-q0y2jq9j.js → index-52w0fvh8.js} +21 -4
- package/{index-04bk599g.js → index-5g4rkrvt.js} +10 -17
- package/index-5pvxf7z0.js +53 -0
- package/index-5q14pwzd.js +69 -0
- package/{index-vxtad5bd.js → index-66yspb67.js} +5 -8
- package/index-7md2g9vw.js +6 -0
- package/index-7p4c0yer.js +1058 -0
- package/{index-d43r08tf.js → index-8b639zes.js} +77 -150
- package/{index-ktb5njgy.js → index-8kvy8qb4.js} +49 -99
- package/index-94s080qm.js +266 -0
- package/index-9dp031by.js +12 -0
- package/{index-0g7r8xz3.js → index-a37by9hn.js} +114 -232
- package/{index-k2j1hc4r.js → index-b95yhqjr.js} +12 -12
- package/{index-3d9y066c.js → index-bjwxs904.js} +9 -8
- package/{index-2xp0kfkt.js → index-br8pkrk1.js} +37 -25
- package/index-c14nsvnv.js +700 -0
- package/index-c6eggbee.js +123 -0
- package/index-d2242ksy.js +99 -0
- package/{index-92zztqy1.js → index-dy0jx9ay.js} +2 -17
- package/{index-a64esmtb.js → index-fkvb79qe.js} +523 -1022
- package/index-h54yj9wr.js +1119 -0
- package/{index-by5gpp8x.js → index-hj6w4ka1.js} +2 -1
- package/{index-y6n8nmny.js → index-kn5d4jmg.js} +75 -203
- package/index-m3xsb1ms.js +4300 -0
- package/{index-gyd220p2.js → index-mb59b8x0.js} +554 -577
- package/{index-j9yhg404.js → index-mzjb6zp4.js} +4 -7
- package/index-p6pbz9n5.js +25 -0
- package/{index-sj5vxr8f.js → index-qe71g4ze.js} +983 -898
- package/index-rfcz04w9.js +187 -0
- package/{index-hwkygn9s.js → index-senscydg.js} +331 -36
- package/{index-ffvk10zz.js → index-vs8mefhy.js} +107 -241
- package/index-wa5jbxj1.js +760 -0
- package/index-y5ga5w9t.js +2729 -0
- package/{index-9077wzd2.js → index-y7hx1ygz.js} +43 -26
- package/{index-h7yw2z9n.js → index-zzvvc845.js} +8 -14
- package/index.js +23 -22
- package/{library.command-qzzbj6d8.js → library.command-keqjevpp.js} +4 -5
- package/{localRegistry.command-vyrgg4xw.js → localRegistry.command-pydeq5zf.js} +23 -43
- package/{module.command-rq5hq3ax.js → module.command-dkrnqx3v.js} +8 -12
- package/{package.command-d9hd6v9n.js → package.command-wmc0ys5y.js} +6 -7
- package/package.json +15 -7
- package/{page.command-126d56te.js → page.command-tf3erhrv.js} +4 -5
- package/{primitive.command-taxd1538.js → primitive.command-7hqpegj4.js} +9 -23
- package/prompter-76k56b37.js +8 -0
- package/{quality.command-6gsna0a3.js → quality.command-8122axq3.js} +205 -377
- package/{recipeScanner-fpagtgc1.js → recipeScanner-4b69ybe0.js} +1 -1
- package/{repair.command-tq2dgy72.js → repair.command-mcy12h0n.js} +11 -35
- package/{routeSourceValidator-apyqw7wk.js → routeSourceValidator-7ycnfz0e.js} +0 -6
- package/{scalar.command-3bcmrrkv.js → scalar.command-vvvbzttc.js} +7 -11
- package/skills/akan-code/SKILL.md +130 -0
- package/skills/akan-debug/SKILL.md +42 -0
- package/skills/akan-deps/SKILL.md +50 -0
- package/skills/akan-err/SKILL.md +39 -0
- package/skills/akan-module/SKILL.md +45 -0
- package/skills/akan-scaffold/SKILL.md +76 -0
- package/skills/akan-scalar/SKILL.md +52 -0
- package/skills/akan-service/SKILL.md +34 -0
- package/skills/akan-store/SKILL.md +67 -0
- package/skills/akan-ui/SKILL.md +63 -0
- package/skills/akan-validate/SKILL.md +44 -0
- package/{subspace.command-eddzqpx3.js → subspace.command-pzvqfy5h.js} +53 -62
- package/templates/__scalar/__model__/__model__.abstract.md.template +8 -0
- package/templates/app/page/_index.tsx +257 -258
- package/templates/app/page/_layout.tsx +5 -1
- package/templates/app/page/_overrides.tsx +12 -0
- package/templates/app/page/styles.css.template +316 -14
- package/templates/app/public/apple-touch-icon.png +0 -0
- package/templates/app/public/favicon.ico +0 -0
- package/templates/app/public/jelly/cloud.webp +0 -0
- package/templates/app/public/jelly/comet.webp +0 -0
- package/templates/app/public/jelly/moon.webp +0 -0
- package/templates/app/public/jelly/planet.webp +0 -0
- package/templates/app/public/jelly/rocket.webp +0 -0
- package/templates/app/public/jelly/star.webp +0 -0
- package/templates/app/public/jelly/sugar.webp +0 -0
- package/templates/app/public/logo.png +0 -0
- package/templates/app/ui/Recipe/index.ts +9 -0
- package/templates/app/ui/Recipe/jellyButton.ts +63 -0
- package/templates/appSample/lib/__scalar/workHistory/workHistory.abstract.ts +8 -39
- package/templates/appSample/lib/_noti/noti.abstract.ts +6 -29
- package/templates/appSample/lib/task/Task.Unit.tsx +1 -1
- package/templates/appSample/lib/task/Task.Util.tsx +10 -13
- package/templates/appSample/lib/task/Task.View.tsx +2 -2
- package/templates/appSample/lib/task/Task.Zone.tsx +5 -2
- package/templates/appSample/lib/task/task.abstract.ts +12 -32
- package/templates/appSample/lib/task/task.signal.spec.ts +1 -15
- package/templates/appSample/lib/task/task.signal.test.ts +15 -1
- package/templates/appSample/lib/task/task.signal.ts +10 -8
- package/templates/appSample/page/task/[taskId]/_index.tsx +6 -6
- package/templates/appSample/page/task/[taskId]/edit.tsx +5 -4
- package/templates/appSample/page/task/_index.tsx +4 -3
- package/templates/appSample/page/task/_layout.tsx +1 -1
- package/templates/appSample/page/task/new.tsx +5 -4
- package/templates/appSample/srvkit/{AuthGuard.ts → guards.ts} +7 -4
- package/templates/appSample/srvkit/{SessionInternalArg.ts → internalArgs.ts} +6 -4
- package/templates/appSample/ui/GlobalLoading.tsx +2 -1
- package/templates/appSample/ui/QuantityControl.tsx +3 -3
- package/templates/client.ts +7 -30
- package/templates/crudPages/[__model__Id]/edit/page.tsx +2 -1
- package/templates/crudPages/[__model__Id]/page.tsx +2 -1
- package/templates/crudPages/new/page.tsx +2 -1
- package/templates/crudPages/page.tsx +2 -1
- package/templates/crudSinglePage/page.tsx +2 -1
- package/templates/lib/__lib/lib.dictionary.ts +0 -2
- package/templates/lib/__lib/lib.document.ts +0 -2
- package/templates/lib/sig.ts +8 -30
- package/templates/localDev/docker-compose.yaml.template +3 -14
- package/templates/module/__model__.signal.ts +12 -4
- package/templates/pkgRoot/tsconfig.json.template +2 -7
- package/templates/server.ts +1 -3
- package/templates/service/__model__.abstract.md.template +8 -0
- package/templates/workspaceRoot/.gitignore.template +0 -1
- package/templates/workspaceRoot/AGENTS.md.template +6 -0
- package/templates/workspaceRoot/package.json.template +1 -3
- package/tunnel.command-82zz5xnq.js +129 -0
- package/{typeChecker-3xgrzc2v.js → typeChecker-px49mezc.js} +1 -1
- package/typecheck.proc.js +1 -1
- package/workflow.command-y8x3kgjv.js +79 -0
- package/{workspace.command-06wvstgr.js → workspace.command-jvsb7brc.js} +79 -109
- package/abstractCompactor-gmkc0z8j.js +0 -102
- package/application.command-18y0s485.js +0 -204
- package/applicationReleasePackager-4yasxwv9.js +0 -244
- package/capacitorApp-36rbr858.js +0 -12
- package/cloud.command-av97ndh6.js +0 -94
- package/cloud.script-cm11xjdz.js +0 -20
- package/context.command-5v37ef3n.js +0 -81
- package/devTuiView-0hc2emhe.js +0 -9
- package/getDirname-dr3jz1xg.js +0 -7
- package/guideline.command-4pz9g1rt.js +0 -360
- package/guidelines/agentRule/agentRule.generate.json +0 -31
- package/guidelines/componentRule/componentRule.generate.json +0 -31
- package/guidelines/conventions/conventions.generate.json +0 -25
- package/guidelines/cssRule/cssRule.generate.json +0 -31
- package/guidelines/docPageRule/docPageRule.generate.json +0 -31
- package/guidelines/docPageRule/docPageRule.instruction.md +0 -25
- package/guidelines/docSyncRule/docSyncRule.generate.json +0 -31
- package/guidelines/docSyncRule/docSyncRule.instruction.md +0 -25
- package/guidelines/enumConstant/enumConstant.generate.json +0 -31
- package/guidelines/enumConstant/enumConstant.instruction.md +0 -28
- package/guidelines/fieldRule/fieldRule.generate.json +0 -31
- package/guidelines/framework/framework.generate.json +0 -32
- package/guidelines/mcpRule/mcpRule.generate.json +0 -35
- package/guidelines/modelConstant/modelConstant.generate.json +0 -32
- package/guidelines/modelDictionary/modelDictionary.generate.json +0 -32
- package/guidelines/modelDocument/modelDocument.generate.json +0 -31
- package/guidelines/modelService/modelService.generate.json +0 -31
- package/guidelines/modelSignal/modelSignal.generate.json +0 -31
- package/guidelines/modelStore/modelStore.generate.json +0 -31
- package/guidelines/modelTemplate/modelTemplate.generate.json +0 -31
- package/guidelines/modelUnit/modelUnit.generate.json +0 -31
- package/guidelines/modelUtil/modelUtil.generate.json +0 -31
- package/guidelines/modelView/modelView.generate.json +0 -31
- package/guidelines/modelZone/modelZone.generate.json +0 -31
- package/guidelines/moduleCodegen/moduleCodegen.generate.json +0 -31
- package/guidelines/moduleCodegen/moduleCodegen.instruction.md +0 -28
- package/guidelines/moduleOverview/moduleOverview.generate.json +0 -31
- package/guidelines/queryRule/queryRule.generate.json +0 -31
- package/guidelines/recipeRule/recipeRule.generate.json +0 -31
- package/guidelines/runtimeRule/runtimeRule.generate.json +0 -25
- package/guidelines/scalarConstant/scalarConstant.generate.json +0 -32
- package/guidelines/scalarDictionary/scalarDictionary.generate.json +0 -32
- package/guidelines/scalarModule/scalarModule.generate.json +0 -31
- package/guidelines/sharedUiUsage/sharedUiUsage.generate.json +0 -31
- package/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +0 -25
- package/guidelines/ssrRule/ssrRule.generate.json +0 -31
- package/guidelines/transportRule/transportRule.generate.json +0 -31
- package/guidelines/utilUiUsage/utilUiUsage.generate.json +0 -31
- package/guidelines/utilUiUsage/utilUiUsage.instruction.md +0 -25
- package/guidelines/workspaceOnboarding/workspaceOnboarding.generate.json +0 -24
- package/guidelines/workspaceRecipes/workspaceRecipes.generate.json +0 -33
- package/index-47pj3aee.js +0 -76
- package/index-5ystnsd5.js +0 -841
- package/index-6wwzs1bc.js +0 -7
- package/index-a17x49vg.js +0 -229
- package/index-m0xccmmm.js +0 -228
- package/index-meh558jy.js +0 -65
- package/index-rtxxan88.js +0 -471
- package/index-te54x9zm.js +0 -338
- package/index-w8kmx1b6.js +0 -2176
- package/index-wt7qrtd4.js +0 -1516
- package/templates/__scalar/__model__/__model__.abstract.md +0 -28
- package/templates/module/__model__.abstract.md +0 -28
- package/templates/service/__model__.abstract.md +0 -28
- package/templates/workspaceRoot/patches/react-dom@19.2.7.patch.template +0 -62
- package/workflow.command-gtdnzvbz.js +0 -108
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
import {
|
|
3
3
|
runner,
|
|
4
4
|
script
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-a37by9hn.js";
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
} from "./index-
|
|
7
|
+
FileSys2
|
|
8
|
+
} from "./index-52w0fvh8.js";
|
|
9
9
|
import {
|
|
10
10
|
PkgExecutor
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-150s07n8.js";
|
|
12
12
|
import {
|
|
13
13
|
TypeScriptDependencyScanner2
|
|
14
|
-
} from "./index-
|
|
14
|
+
} from "./index-2ahj896a.js";
|
|
15
15
|
|
|
16
16
|
// pkgs/@akanjs/cli/package/package.runner.ts
|
|
17
17
|
import path2 from "path";
|
|
@@ -112,7 +112,7 @@ class PackageRunner extends runner("package") {
|
|
|
112
112
|
"create-akan-workspace"
|
|
113
113
|
];
|
|
114
114
|
async version(workspace, { log = true } = {}) {
|
|
115
|
-
const pkgJson = process.env.USE_AKANJS_PKGS === "true" ? await
|
|
115
|
+
const pkgJson = process.env.USE_AKANJS_PKGS === "true" ? await FileSys2.readJson(`${workspace?.workspaceRoot ?? process.cwd()}/pkgs/akanjs/package.json`) : await this.#getInstalledPackageJson();
|
|
116
116
|
const version = pkgJson.name === "akanjs" ? pkgJson.version : pkgJson.dependencies?.akanjs ?? pkgJson.version;
|
|
117
117
|
if (log)
|
|
118
118
|
Logger.rawLog(`akanjs@${version}`);
|
|
@@ -129,14 +129,19 @@ class PackageRunner extends runner("package") {
|
|
|
129
129
|
for (const packageJsonPath of packageJsonCandidates) {
|
|
130
130
|
if (!await Bun.file(packageJsonPath).exists())
|
|
131
131
|
continue;
|
|
132
|
-
const packageJson = await
|
|
132
|
+
const packageJson = await FileSys2.readJson(packageJsonPath);
|
|
133
133
|
if (packageJson.name === "akanjs" || packageJson.name === "@akanjs/cli")
|
|
134
134
|
return packageJson;
|
|
135
135
|
}
|
|
136
136
|
throw new Error(`[package] failed to locate akanjs package.json from ${path2.dirname(Bun.main)}`);
|
|
137
137
|
}
|
|
138
138
|
async createPackage(workspace, pkgName) {
|
|
139
|
-
|
|
139
|
+
const workspaceRootPath = ["pkgs", ...pkgName.split("/")].map(() => "..").join("/");
|
|
140
|
+
await workspace.applyTemplate({
|
|
141
|
+
basePath: `pkgs/${pkgName}`,
|
|
142
|
+
template: "pkgRoot",
|
|
143
|
+
dict: { pkgName, workspaceRootPath }
|
|
144
|
+
});
|
|
140
145
|
await workspace.setPkgTsPaths(pkgName);
|
|
141
146
|
}
|
|
142
147
|
async removePackage(pkg) {
|
|
@@ -144,8 +149,7 @@ class PackageRunner extends runner("package") {
|
|
|
144
149
|
await pkg.workspace.unsetPkgTsPaths(pkg.name);
|
|
145
150
|
}
|
|
146
151
|
async scanSync(pkg) {
|
|
147
|
-
|
|
148
|
-
return scanResult;
|
|
152
|
+
return await pkg.scan();
|
|
149
153
|
}
|
|
150
154
|
async buildPackage(pkg) {
|
|
151
155
|
await $`rm -rf ${pkg.dist.cwdPath}`;
|
|
@@ -153,7 +157,14 @@ class PackageRunner extends runner("package") {
|
|
|
153
157
|
const scanner = await TypeScriptDependencyScanner2.from(pkg);
|
|
154
158
|
const { npmDeps, npmDevDeps, missingDeps } = await scanner.getPackageBuildDependencies(pkg.name);
|
|
155
159
|
const packageRuntimeDependencies = {
|
|
156
|
-
"@akanjs/devkit": [
|
|
160
|
+
"@akanjs/devkit": [
|
|
161
|
+
"tailwind-scrollbar",
|
|
162
|
+
"@earendil-works/chord",
|
|
163
|
+
"@earendil-works/pi-agent-core",
|
|
164
|
+
"@earendil-works/pi-ai",
|
|
165
|
+
"@earendil-works/pi-telemetry",
|
|
166
|
+
"@earendil-works/pi-tui"
|
|
167
|
+
]
|
|
157
168
|
};
|
|
158
169
|
const packageRuntimeDevDependencies = { akanjs: ["@biomejs/biome", "@types/bun"] };
|
|
159
170
|
if (pkg.name === "@akanjs/cli") {
|
|
@@ -164,17 +175,23 @@ class PackageRunner extends runner("package") {
|
|
|
164
175
|
].filter((dep) => dep !== "akanjs" && dep !== "@akanjs/devkit");
|
|
165
176
|
}
|
|
166
177
|
const packageBundledRuntimeDependencies = {
|
|
167
|
-
"@akanjs/cli": ["@akanjs/devkit"],
|
|
168
|
-
akanjs: ["
|
|
178
|
+
"@akanjs/cli": ["@akanjs/devkit", "@akanjs/native"],
|
|
179
|
+
"@akanjs/devkit": ["@akanjs/native"],
|
|
180
|
+
akanjs: ["use-agentic", "@akanjs/native"]
|
|
169
181
|
};
|
|
170
182
|
const bundledRuntimeDeps = new Set(packageBundledRuntimeDependencies[pkg.name] ?? []);
|
|
171
183
|
const forcedRuntimeDeps = packageRuntimeDependencies[pkg.name] ?? [];
|
|
172
184
|
const forcedRuntimeDevDeps = packageRuntimeDevDependencies[pkg.name] ?? [];
|
|
173
185
|
const [rootPackageJson, pkgJson] = await Promise.all([pkg.workspace.getPackageJson(), pkg.getPackageJson()]);
|
|
174
186
|
const optionalPeerDeps = new Set(Object.entries(pkgJson.peerDependenciesMeta ?? {}).filter(([, meta]) => meta.optional).map(([dep]) => dep));
|
|
175
|
-
const
|
|
176
|
-
const
|
|
177
|
-
const
|
|
187
|
+
const isShipped = (dep) => !optionalPeerDeps.has(dep) && !bundledRuntimeDeps.has(dep);
|
|
188
|
+
const packageRuntimeDeps = [...new Set([...npmDeps, ...forcedRuntimeDeps])].filter(isShipped);
|
|
189
|
+
const packageRuntimeDevDeps = [...new Set([...npmDevDeps, ...forcedRuntimeDevDeps])].filter(isShipped);
|
|
190
|
+
const rootDeps = {
|
|
191
|
+
...rootPackageJson.overrides,
|
|
192
|
+
...rootPackageJson.dependencies,
|
|
193
|
+
...rootPackageJson.devDependencies
|
|
194
|
+
};
|
|
178
195
|
const missingForcedDeps = forcedRuntimeDeps.filter((dep) => !rootDeps[dep]);
|
|
179
196
|
const missingForcedDevDeps = forcedRuntimeDevDeps.filter((dep) => !rootDeps[dep]);
|
|
180
197
|
const requiredMissingDeps = missingDeps.filter((dep) => !optionalPeerDeps.has(dep));
|
|
@@ -192,7 +209,8 @@ class PackageRunner extends runner("package") {
|
|
|
192
209
|
stdio: "inherit"
|
|
193
210
|
});
|
|
194
211
|
} else {
|
|
195
|
-
await
|
|
212
|
+
await pkg.dist.cp(pkg.cwdPath, pkg.dist.cwdPath);
|
|
213
|
+
await $`rm -rf ${pkg.dist.cwdPath}/local`;
|
|
196
214
|
await Promise.all([
|
|
197
215
|
pkg.generateDistPackageJson(packageRuntimeDeps, packageRuntimeDevDeps),
|
|
198
216
|
pkg.generateTsconfigJson()
|
|
@@ -266,7 +284,7 @@ class PackageRunner extends runner("package") {
|
|
|
266
284
|
if (!await Bun.file(distPackageJsonPath).exists()) {
|
|
267
285
|
throw new Error(`[package] dist package not found for ${pkg.name}. Run build-package first.`);
|
|
268
286
|
}
|
|
269
|
-
const pkgJson = await
|
|
287
|
+
const pkgJson = await FileSys2.readJson(distPackageJsonPath);
|
|
270
288
|
if (pkgJson.name !== pkg.name) {
|
|
271
289
|
throw new Error(`[package] dist package name mismatch: expected ${pkg.name}, got ${pkgJson.name ?? "(missing)"}`);
|
|
272
290
|
}
|
|
@@ -275,12 +293,9 @@ class PackageRunner extends runner("package") {
|
|
|
275
293
|
if (pkgJson.publishConfig?.access !== "public") {
|
|
276
294
|
throw new Error(`[package] ${pkg.name} must publish with publishConfig.access=public`);
|
|
277
295
|
}
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
if (!await Bun.file(`${pkg.dist.cwdPath}/README.ko.md`).exists()) {
|
|
282
|
-
throw new Error(`[package] README.ko.md is missing from dist package ${pkg.name}`);
|
|
283
|
-
}
|
|
296
|
+
for (const readme of ["README.md", "README.ko.md"])
|
|
297
|
+
if (!await Bun.file(`${pkg.dist.cwdPath}/${readme}`).exists())
|
|
298
|
+
throw new Error(`[package] ${readme} is missing from dist package ${pkg.name}`);
|
|
284
299
|
const binEntries = typeof pkgJson.bin === "string" ? [pkgJson.bin] : Object.values(pkgJson.bin ?? {});
|
|
285
300
|
if (binEntries.some((binPath) => binPath.endsWith(".ts"))) {
|
|
286
301
|
throw new Error(`[package] ${pkg.name} dist bin entries must not point at TypeScript sources`);
|
|
@@ -297,6 +312,9 @@ class PackageRunner extends runner("package") {
|
|
|
297
312
|
cwd: pkg.workspace.workspaceRoot
|
|
298
313
|
});
|
|
299
314
|
const [packResult] = JSON.parse(packOutput);
|
|
315
|
+
const localFiles = (packResult?.files ?? []).filter((file) => file.path?.startsWith("local/"));
|
|
316
|
+
if (localFiles.length > 0)
|
|
317
|
+
throw new Error(`[package] ${pkg.name} would publish ${localFiles.length} test-run files under local/`);
|
|
300
318
|
return {
|
|
301
319
|
name: pkg.name,
|
|
302
320
|
version: pkgJson.version,
|
|
@@ -313,9 +331,8 @@ class PackageRunner extends runner("package") {
|
|
|
313
331
|
peerExportsMaps.set(pkg.name, await PackageExportsMap.from(pkg.dist.cwdPath));
|
|
314
332
|
}
|
|
315
333
|
const results = [];
|
|
316
|
-
for (const pkg of pkgs)
|
|
334
|
+
for (const pkg of pkgs)
|
|
317
335
|
results.push(await this.verifyDistPackage(pkg, { peerExportsMaps }));
|
|
318
|
-
}
|
|
319
336
|
return results;
|
|
320
337
|
}
|
|
321
338
|
async#copyPackageReadmes(pkg) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
getDirname2
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-52w0fvh8.js";
|
|
5
5
|
|
|
6
6
|
// pkgs/@akanjs/devkit/prompter.ts
|
|
7
7
|
import fsPromise from "fs/promises";
|
|
8
8
|
import { input, select } from "@inquirer/prompts";
|
|
9
|
-
class
|
|
9
|
+
class Prompter2 {
|
|
10
10
|
static async#getGuidelineRoot() {
|
|
11
11
|
const dirname = getDirname2(import.meta.url);
|
|
12
12
|
const candidates = [`${dirname}/guidelines`, `${dirname}/../cli/guidelines`];
|
|
@@ -19,27 +19,21 @@ class Prompter {
|
|
|
19
19
|
return candidates[0];
|
|
20
20
|
}
|
|
21
21
|
static async selectGuideline() {
|
|
22
|
-
const guideNames = await
|
|
22
|
+
const guideNames = await Prompter2.listGuidelines();
|
|
23
23
|
return await select({
|
|
24
24
|
message: "Select a guideline",
|
|
25
25
|
choices: guideNames.map((name) => ({ name, value: name }))
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
28
|
static async listGuidelines() {
|
|
29
|
-
const guidelineRoot = await
|
|
29
|
+
const guidelineRoot = await Prompter2.#getGuidelineRoot();
|
|
30
30
|
return (await fsPromise.readdir(guidelineRoot)).filter((name) => !name.startsWith("_")).sort();
|
|
31
31
|
}
|
|
32
|
-
static async getGuideJson(guideName) {
|
|
33
|
-
const guidelineRoot = await Prompter.#getGuidelineRoot();
|
|
34
|
-
const filePath = `${guidelineRoot}/${guideName}/${guideName}.generate.json`;
|
|
35
|
-
const guideJson = await fsPromise.readFile(filePath, "utf-8");
|
|
36
|
-
return JSON.parse(guideJson);
|
|
37
|
-
}
|
|
38
32
|
static async getInstruction(guideName) {
|
|
39
|
-
const guideNames = await
|
|
33
|
+
const guideNames = await Prompter2.listGuidelines();
|
|
40
34
|
if (!guideNames.includes(guideName))
|
|
41
35
|
throw new Error(`Unknown guideline "${guideName}". Available: ${guideNames.join(", ")}`);
|
|
42
|
-
const guidelineRoot = await
|
|
36
|
+
const guidelineRoot = await Prompter2.#getGuidelineRoot();
|
|
43
37
|
return await fsPromise.readFile(`${guidelineRoot}/${guideName}/${guideName}.instruction.md`, "utf-8");
|
|
44
38
|
}
|
|
45
39
|
static async getUpdateRequest(guideName) {
|
|
@@ -67,7 +61,7 @@ ${request}
|
|
|
67
61
|
`;
|
|
68
62
|
}
|
|
69
63
|
async getDocumentation(guideName) {
|
|
70
|
-
const guidelineRoot = await
|
|
64
|
+
const guidelineRoot = await Prompter2.#getGuidelineRoot();
|
|
71
65
|
const filePath = `${guidelineRoot}/${guideName}/${guideName}.instruction.md`;
|
|
72
66
|
const document = await fsPromise.readFile(filePath, "utf-8");
|
|
73
67
|
return `\`\`\`markdown
|
|
@@ -77,4 +71,4 @@ ${document}
|
|
|
77
71
|
}
|
|
78
72
|
}
|
|
79
73
|
|
|
80
|
-
export {
|
|
74
|
+
export { Prompter2 };
|
package/index.js
CHANGED
|
@@ -4,33 +4,34 @@ import {
|
|
|
4
4
|
getTargetMetas,
|
|
5
5
|
getTargetCommandNames,
|
|
6
6
|
runCommands
|
|
7
|
-
} from "./index-
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-
|
|
10
|
-
import"./index-6wwzs1bc.js";
|
|
7
|
+
} from "./index-a37by9hn.js";
|
|
8
|
+
import"./index-52w0fvh8.js";
|
|
9
|
+
import"./index-150s07n8.js";
|
|
11
10
|
|
|
12
11
|
// pkgs/@akanjs/cli/commandManifest.ts
|
|
13
12
|
import path from "path";
|
|
14
13
|
|
|
15
14
|
// pkgs/@akanjs/cli/commandModules.ts
|
|
16
15
|
var commandModules = {
|
|
17
|
-
workspace: async () => (await import("./workspace.command-
|
|
18
|
-
agent: async () => (await import("./agent.command-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
16
|
+
workspace: async () => (await import("./workspace.command-jvsb7brc.js")).WorkspaceCommand,
|
|
17
|
+
agent: async () => (await import("./agent.command-aja6z9mn.js")).AgentCommand,
|
|
18
|
+
code: async () => (await import("./code.command-x9t6z5nw.js")).CodeCommand,
|
|
19
|
+
application: async () => (await import("./application.command-049ehgx3.js")).ApplicationCommand,
|
|
20
|
+
library: async () => (await import("./library.command-keqjevpp.js")).LibraryCommand,
|
|
21
|
+
localRegistry: async () => (await import("./localRegistry.command-pydeq5zf.js")).LocalRegistryCommand,
|
|
22
|
+
package: async () => (await import("./package.command-wmc0ys5y.js")).PackageCommand,
|
|
23
|
+
module: async () => (await import("./module.command-dkrnqx3v.js")).ModuleCommand,
|
|
24
|
+
page: async () => (await import("./page.command-tf3erhrv.js")).PageCommand,
|
|
25
|
+
context: async () => (await import("./context.command-yfbe1rtd.js")).ContextCommand,
|
|
26
|
+
cloud: async () => (await import("./cloud.command-gw4kqxt8.js")).CloudCommand,
|
|
27
|
+
subspace: async () => (await import("./subspace.command-pzvqfy5h.js")).SubspaceCommand,
|
|
28
|
+
guideline: async () => (await import("./guideline.command-kq9gp690.js")).GuidelineCommand,
|
|
29
|
+
scalar: async () => (await import("./scalar.command-vvvbzttc.js")).ScalarCommand,
|
|
30
|
+
primitive: async () => (await import("./primitive.command-7hqpegj4.js")).PrimitiveCommand,
|
|
31
|
+
quality: async () => (await import("./quality.command-8122axq3.js")).QualityCommand,
|
|
32
|
+
repair: async () => (await import("./repair.command-mcy12h0n.js")).RepairCommand,
|
|
33
|
+
workflow: async () => (await import("./workflow.command-y8x3kgjv.js")).WorkflowCommand,
|
|
34
|
+
tunnel: async () => (await import("./tunnel.command-82zz5xnq.js")).TunnelCommand
|
|
34
35
|
};
|
|
35
36
|
var commandModuleIds = Object.keys(commandModules);
|
|
36
37
|
|
|
@@ -68,4 +69,4 @@ class CommandManifest {
|
|
|
68
69
|
// pkgs/@akanjs/cli/index.ts
|
|
69
70
|
var ids = CommandManifest.resolve(await CommandManifest.read(), process.argv) ?? commandModuleIds;
|
|
70
71
|
var commands = await Promise.all(ids.map(async (id) => await commandModules[id]()));
|
|
71
|
-
runCommands(...commands);
|
|
72
|
+
await runCommands(...commands);
|
|
@@ -3,13 +3,12 @@ import {
|
|
|
3
3
|
Lib,
|
|
4
4
|
Workspace,
|
|
5
5
|
command
|
|
6
|
-
} from "./index-
|
|
7
|
-
import"./index-
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-6wwzs1bc.js";
|
|
6
|
+
} from "./index-a37by9hn.js";
|
|
7
|
+
import"./index-52w0fvh8.js";
|
|
8
|
+
import"./index-150s07n8.js";
|
|
10
9
|
import {
|
|
11
10
|
LibraryScript
|
|
12
|
-
} from "./index-
|
|
11
|
+
} from "./index-66yspb67.js";
|
|
13
12
|
|
|
14
13
|
// pkgs/@akanjs/cli/library/library.command.ts
|
|
15
14
|
class LibraryCommand extends command("library", [LibraryScript], ({ public: target }) => ({
|
|
@@ -4,28 +4,28 @@ import {
|
|
|
4
4
|
runner,
|
|
5
5
|
script,
|
|
6
6
|
command
|
|
7
|
-
} from "./index-
|
|
8
|
-
import"./index-
|
|
7
|
+
} from "./index-a37by9hn.js";
|
|
8
|
+
import"./index-52w0fvh8.js";
|
|
9
9
|
import {
|
|
10
10
|
PkgExecutor
|
|
11
|
-
} from "./index-
|
|
12
|
-
import"./index-
|
|
11
|
+
} from "./index-150s07n8.js";
|
|
12
|
+
import"./index-senscydg.js";
|
|
13
|
+
import"./index-7p4c0yer.js";
|
|
14
|
+
import"./index-66yspb67.js";
|
|
13
15
|
import {
|
|
14
16
|
ApplicationScript
|
|
15
|
-
} from "./index-
|
|
16
|
-
import"./index-
|
|
17
|
-
import"./index-
|
|
18
|
-
import"./index-m0xccmmm.js";
|
|
19
|
-
import"./index-te54x9zm.js";
|
|
17
|
+
} from "./index-qe71g4ze.js";
|
|
18
|
+
import"./index-7md2g9vw.js";
|
|
19
|
+
import"./index-94s080qm.js";
|
|
20
20
|
import {
|
|
21
21
|
getNpmRegistryUrl,
|
|
22
22
|
CloudRunner
|
|
23
|
-
} from "./index-
|
|
24
|
-
import"./index-
|
|
23
|
+
} from "./index-h54yj9wr.js";
|
|
24
|
+
import"./index-2ahj896a.js";
|
|
25
25
|
import {
|
|
26
26
|
PackageScript
|
|
27
|
-
} from "./index-
|
|
28
|
-
import"./index-
|
|
27
|
+
} from "./index-y7hx1ygz.js";
|
|
28
|
+
import"./index-mzjb6zp4.js";
|
|
29
29
|
|
|
30
30
|
// pkgs/@akanjs/cli/localRegistry/localRegistry.runner.ts
|
|
31
31
|
import { mkdir, rm } from "fs/promises";
|
|
@@ -78,6 +78,7 @@ class LocalRegistryRunner extends runner("localRegistry") {
|
|
|
78
78
|
const registry = this.getRegistryUrl(registryUrl);
|
|
79
79
|
const smokeRoot = path.join(workspace.workspaceRoot, ".akan/e2e");
|
|
80
80
|
await rm(path.join(smokeRoot, smokeRepoName), { recursive: true, force: true });
|
|
81
|
+
const env = { ...process.env, AKAN_NPM_REGISTRY: registry, NPM_CONFIG_REGISTRY: registry };
|
|
81
82
|
await workspace.spawn(process.execPath, [
|
|
82
83
|
"dist/pkgs/create-akan-workspace/index.js",
|
|
83
84
|
smokeRepoName,
|
|
@@ -89,20 +90,13 @@ class LocalRegistryRunner extends runner("localRegistry") {
|
|
|
89
90
|
"true",
|
|
90
91
|
"--registry",
|
|
91
92
|
registry
|
|
92
|
-
], {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
stdio: "inherit"
|
|
100
|
-
});
|
|
101
|
-
await workspace.spawn("akan", ["build", smokeAppName], {
|
|
102
|
-
cwd: path.join(smokeRoot, smokeRepoName),
|
|
103
|
-
env: { ...process.env, AKAN_NPM_REGISTRY: registry, NPM_CONFIG_REGISTRY: registry },
|
|
104
|
-
stdio: "inherit"
|
|
105
|
-
});
|
|
93
|
+
], { env, stdio: "inherit" });
|
|
94
|
+
for (const command of ["typecheck", "build"])
|
|
95
|
+
await workspace.spawn("akan", [command, smokeAppName], {
|
|
96
|
+
cwd: path.join(smokeRoot, smokeRepoName),
|
|
97
|
+
env,
|
|
98
|
+
stdio: "inherit"
|
|
99
|
+
});
|
|
106
100
|
Logger.info(`Local registry smoke test completed for ${smokeRepoName}/${smokeAppName}`);
|
|
107
101
|
}
|
|
108
102
|
}
|
|
@@ -128,11 +122,7 @@ class LocalRegistryScript extends script("localRegistry", [
|
|
|
128
122
|
const registry = await this.localRegistryRunner.start(workspace, { registryUrl });
|
|
129
123
|
const akanPkgs = await this.cloudRunner.getAkanPkgs(workspace);
|
|
130
124
|
await this.#preparePackages(workspace, akanPkgs, { test });
|
|
131
|
-
await this.cloudRunner.deployAkan(workspace, akanPkgs, {
|
|
132
|
-
registryUrl: registry,
|
|
133
|
-
confirmPublish: false,
|
|
134
|
-
tag
|
|
135
|
-
});
|
|
125
|
+
await this.cloudRunner.deployAkan(workspace, akanPkgs, { registryUrl: registry, confirmPublish: false, tag });
|
|
136
126
|
await this.localRegistryRunner.smoke(workspace, { registryUrl: registry });
|
|
137
127
|
}
|
|
138
128
|
async#preparePackages(workspace, akanPkgs, { test = true } = {}) {
|
|
@@ -158,17 +148,7 @@ class LocalRegistryCommand extends command("local-registry", [LocalRegistryScrip
|
|
|
158
148
|
resetRegistry: target({ devOnly: true, desc: "Stop and clear the local Verdaccio npm registry" }).with(Workspace).exec(async function(workspace) {
|
|
159
149
|
await this.localRegistryScript.reset(workspace);
|
|
160
150
|
}),
|
|
161
|
-
smokeRegistry: target({ devOnly: true, desc: "Publish to local registry and build a generated workspace" }).with(Workspace).option("tag", String, {
|
|
162
|
-
flag: "g",
|
|
163
|
-
desc: "dist-tag for local registry publish",
|
|
164
|
-
default: "rc"
|
|
165
|
-
}).option("test", Boolean, {
|
|
166
|
-
desc: "run package tests before publishing",
|
|
167
|
-
default: true
|
|
168
|
-
}).option("registry", String, {
|
|
169
|
-
desc: "local npm registry URL",
|
|
170
|
-
default: process.env.AKAN_NPM_REGISTRY
|
|
171
|
-
}).exec(async function(workspace, tag, test, registry) {
|
|
151
|
+
smokeRegistry: target({ devOnly: true, desc: "Publish to local registry and build a generated workspace" }).with(Workspace).option("tag", String, { flag: "g", desc: "dist-tag for local registry publish", default: "rc" }).option("test", Boolean, { desc: "run package tests before publishing", default: true }).option("registry", String, { desc: "local npm registry URL", default: process.env.AKAN_NPM_REGISTRY }).exec(async function(workspace, tag, test, registry) {
|
|
172
152
|
await this.localRegistryScript.smoke(workspace, { tag, test, registryUrl: registry });
|
|
173
153
|
})
|
|
174
154
|
})) {
|
|
@@ -3,27 +3,23 @@ import {
|
|
|
3
3
|
Sys,
|
|
4
4
|
Module,
|
|
5
5
|
command
|
|
6
|
-
} from "./index-
|
|
7
|
-
import"./index-
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-6wwzs1bc.js";
|
|
6
|
+
} from "./index-a37by9hn.js";
|
|
7
|
+
import"./index-52w0fvh8.js";
|
|
8
|
+
import"./index-150s07n8.js";
|
|
10
9
|
import {
|
|
11
10
|
renderPrimitiveReport
|
|
12
|
-
} from "./index-
|
|
13
|
-
import"./index-
|
|
14
|
-
import"./index-te54x9zm.js";
|
|
11
|
+
} from "./index-mb59b8x0.js";
|
|
12
|
+
import"./index-25fvrxmy.js";
|
|
15
13
|
import {
|
|
16
14
|
ModuleScript
|
|
17
|
-
} from "./index-
|
|
18
|
-
import"./index-vyvre9en.js";
|
|
19
|
-
import"./index-h7yw2z9n.js";
|
|
15
|
+
} from "./index-rfcz04w9.js";
|
|
20
16
|
|
|
21
17
|
// pkgs/@akanjs/cli/module/module.command.ts
|
|
22
18
|
import { Logger, lowerlize } from "akanjs/common";
|
|
23
19
|
class ModuleCommand extends command("module", [ModuleScript], ({ public: target }) => ({
|
|
24
|
-
createModule: target({ desc: "Create a new domain module (constant, service, signal, store, UI)" }).arg("moduleName", String, { desc: "name of module" }).with(Sys).option("page", Boolean, { desc: "create page", default: false }).option("
|
|
20
|
+
createModule: target({ desc: "Create a new domain module (constant, service, signal, store, UI)" }).arg("moduleName", String, { desc: "name of module" }).with(Sys).option("page", Boolean, { desc: "create page", default: false }).option("format", String, { flag: "o", desc: "output format", default: "markdown", enum: ["markdown", "json"] }).exec(async function(moduleName, sys, page, format) {
|
|
25
21
|
const name = lowerlize(moduleName.replace(/ /g, ""));
|
|
26
|
-
const report =
|
|
22
|
+
const report = await this.moduleScript.createModuleTemplate(sys, name, { page });
|
|
27
23
|
Logger.rawLog(renderPrimitiveReport(report, format));
|
|
28
24
|
}),
|
|
29
25
|
removeModule: target({ desc: "Remove a module from an app or library" }).with(Module).exec(async function(module) {
|
|
@@ -3,21 +3,20 @@ import {
|
|
|
3
3
|
Pkg,
|
|
4
4
|
Workspace,
|
|
5
5
|
command
|
|
6
|
-
} from "./index-
|
|
7
|
-
import"./index-
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-
|
|
10
|
-
import"./index-kcxmv48c.js";
|
|
6
|
+
} from "./index-a37by9hn.js";
|
|
7
|
+
import"./index-52w0fvh8.js";
|
|
8
|
+
import"./index-150s07n8.js";
|
|
9
|
+
import"./index-2ahj896a.js";
|
|
11
10
|
import {
|
|
12
11
|
PackageScript
|
|
13
|
-
} from "./index-
|
|
12
|
+
} from "./index-y7hx1ygz.js";
|
|
14
13
|
|
|
15
14
|
// pkgs/@akanjs/cli/package/package.command.ts
|
|
16
15
|
class PackageCommand extends command("package", [PackageScript], ({ public: target }) => ({
|
|
17
16
|
version: target({ desc: "Show version information for all packages" }).with(Workspace).exec(async function(workspace) {
|
|
18
17
|
await this.packageScript.version(workspace);
|
|
19
18
|
}),
|
|
20
|
-
createPackage: target({ desc: "Create a new package in pkgs
|
|
19
|
+
createPackage: target({ desc: "Create a new package in pkgs/<name>/" }).option("name", String, { desc: "name of package" }).with(Workspace).exec(async function(name, workspace) {
|
|
21
20
|
await this.packageScript.createPackage(workspace, name.toLowerCase().replace(/ /g, "-"));
|
|
22
21
|
}),
|
|
23
22
|
removePackage: target({ desc: "Remove a package from the workspace" }).with(Pkg).exec(async function(pkg) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akanjs/cli",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"sourceType": "module",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -24,16 +24,22 @@
|
|
|
24
24
|
"import": "./index.js",
|
|
25
25
|
"default": "./index.js"
|
|
26
26
|
},
|
|
27
|
+
"./code": {
|
|
28
|
+
"import": "./akanCode.js",
|
|
29
|
+
"default": "./akanCode.js"
|
|
30
|
+
},
|
|
27
31
|
"./package.json": "./package.json"
|
|
28
32
|
},
|
|
29
33
|
"dependencies": {
|
|
34
|
+
"@earendil-works/chord": "0.86.1",
|
|
35
|
+
"@earendil-works/pi-agent-core": "0.86.1",
|
|
36
|
+
"@earendil-works/pi-ai": "0.86.1",
|
|
37
|
+
"@earendil-works/pi-coding-agent": "0.86.1",
|
|
38
|
+
"@earendil-works/pi-telemetry": "0.86.1",
|
|
39
|
+
"@earendil-works/pi-tui": "0.86.1",
|
|
30
40
|
"@inquirer/prompts": "^8.4.3",
|
|
31
|
-
"@langchain/core": "^1.1.47",
|
|
32
|
-
"@langchain/deepseek": "^1.0.26",
|
|
33
|
-
"@langchain/openai": "^1.4.6",
|
|
34
41
|
"@tailwindcss/node": "^4.3.0",
|
|
35
|
-
"
|
|
36
|
-
"akanjs": "3.0.0-beta.9",
|
|
42
|
+
"akanjs": "3.0.1",
|
|
37
43
|
"chalk": "^5.6.2",
|
|
38
44
|
"commander": "^14.0.3",
|
|
39
45
|
"dayjs": "^1.11.20",
|
|
@@ -43,11 +49,13 @@
|
|
|
43
49
|
"ink": "^6.8.0",
|
|
44
50
|
"ora": "^9.4.0",
|
|
45
51
|
"qrcode": "^1.5.4",
|
|
46
|
-
"react": "19.
|
|
52
|
+
"react": "19.3.0",
|
|
47
53
|
"ssh2": "^1.17.0",
|
|
54
|
+
"string-width": "^8.2.1",
|
|
48
55
|
"subset-font": "^2.5.0",
|
|
49
56
|
"tailwind-scrollbar": "^4.0.2",
|
|
50
57
|
"tailwindcss": "^4.3.0",
|
|
58
|
+
"typebox": "1.1.38",
|
|
51
59
|
"typescript": "^6.0.3"
|
|
52
60
|
},
|
|
53
61
|
"devDependencies": {},
|
|
@@ -3,13 +3,12 @@ import {
|
|
|
3
3
|
App,
|
|
4
4
|
Module,
|
|
5
5
|
command
|
|
6
|
-
} from "./index-
|
|
7
|
-
import"./index-
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-6wwzs1bc.js";
|
|
6
|
+
} from "./index-a37by9hn.js";
|
|
7
|
+
import"./index-52w0fvh8.js";
|
|
8
|
+
import"./index-150s07n8.js";
|
|
10
9
|
import {
|
|
11
10
|
PageScript
|
|
12
|
-
} from "./index-
|
|
11
|
+
} from "./index-25fvrxmy.js";
|
|
13
12
|
|
|
14
13
|
// pkgs/@akanjs/cli/page/page.command.ts
|
|
15
14
|
class PageCommand extends command("page", [PageScript], ({ public: target }) => ({
|
|
@@ -2,21 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
Workspace,
|
|
4
4
|
command
|
|
5
|
-
} from "./index-
|
|
6
|
-
import"./index-
|
|
7
|
-
import"./index-
|
|
8
|
-
import"./index-6wwzs1bc.js";
|
|
5
|
+
} from "./index-a37by9hn.js";
|
|
6
|
+
import"./index-52w0fvh8.js";
|
|
7
|
+
import"./index-150s07n8.js";
|
|
9
8
|
import {
|
|
10
9
|
renderPrimitiveReport
|
|
11
|
-
} from "./index-
|
|
12
|
-
import"./index-
|
|
13
|
-
import"./index-
|
|
14
|
-
import"./index-5ystnsd5.js";
|
|
15
|
-
import"./index-vyvre9en.js";
|
|
16
|
-
import"./index-h7yw2z9n.js";
|
|
10
|
+
} from "./index-mb59b8x0.js";
|
|
11
|
+
import"./index-25fvrxmy.js";
|
|
12
|
+
import"./index-rfcz04w9.js";
|
|
17
13
|
import {
|
|
18
14
|
PrimitiveScript
|
|
19
|
-
} from "./index-
|
|
15
|
+
} from "./index-8b639zes.js";
|
|
20
16
|
|
|
21
17
|
// pkgs/@akanjs/cli/primitive/primitive.command.ts
|
|
22
18
|
import { Logger } from "akanjs/common";
|
|
@@ -27,11 +23,7 @@ class PrimitiveCommand extends command("primitive", [PrimitiveScript], ({ public
|
|
|
27
23
|
default: "template",
|
|
28
24
|
enum: ["view", "unit", "template"]
|
|
29
25
|
}).option("format", String, { flag: "o", desc: "output format", default: "markdown", enum: ["markdown", "json"] }).exec(async function(workspace, app, module, surface, format) {
|
|
30
|
-
const report = await this.primitiveScript.createUi(workspace, {
|
|
31
|
-
app,
|
|
32
|
-
module,
|
|
33
|
-
surface
|
|
34
|
-
});
|
|
26
|
+
const report = await this.primitiveScript.createUi(workspace, { app, module, surface });
|
|
35
27
|
Logger.rawLog(renderPrimitiveReport(report, format));
|
|
36
28
|
}),
|
|
37
29
|
addField: target({ desc: "Add a source-limited field to a module constant and dictionary" }).with(Workspace).option("app", String, { desc: "target app or library name", nullable: true }).option("module", String, { desc: "target module name", nullable: true }).option("field", String, { desc: "field name", nullable: true }).option("type", String, { desc: "field type or scalar name", nullable: true }).option("default", String, { desc: "default value", nullable: true }).option("format", String, { flag: "o", desc: "output format", default: "markdown", enum: ["markdown", "json"] }).exec(async function(workspace, app, module, field, typeName, defaultValue, format) {
|
|
@@ -45,13 +37,7 @@ class PrimitiveCommand extends command("primitive", [PrimitiveScript], ({ public
|
|
|
45
37
|
Logger.rawLog(renderPrimitiveReport(report, format));
|
|
46
38
|
}),
|
|
47
39
|
addEnumField: target({ desc: "Add a source-limited enum field to a module constant and dictionary" }).with(Workspace).option("app", String, { desc: "target app or library name", nullable: true }).option("module", String, { desc: "target module name", nullable: true }).option("field", String, { desc: "field name", nullable: true }).option("values", String, { flag: "l", desc: "comma-separated enum values", nullable: true }).option("default", String, { desc: "default value", nullable: true }).option("format", String, { flag: "o", desc: "output format", default: "markdown", enum: ["markdown", "json"] }).exec(async function(workspace, app, module, field, values, defaultValue, format) {
|
|
48
|
-
const report = await this.primitiveScript.addEnumField(workspace, {
|
|
49
|
-
app,
|
|
50
|
-
module,
|
|
51
|
-
field,
|
|
52
|
-
values,
|
|
53
|
-
defaultValue
|
|
54
|
-
});
|
|
40
|
+
const report = await this.primitiveScript.addEnumField(workspace, { app, module, field, values, defaultValue });
|
|
55
41
|
Logger.rawLog(renderPrimitiveReport(report, format));
|
|
56
42
|
})
|
|
57
43
|
})) {
|