@akanjs/cli 2.4.1-rc.2 → 2.4.1-rc.3
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/agent.command-h4afc69n.js +1 -1
- package/{application.command-47mj9qsy.js → application.command-jkmbsd1x.js} +1 -1
- package/{applicationBuildRunner-yz144508.js → applicationBuildRunner-ny84tjhc.js} +1 -1
- package/buildBatch.proc.js +175 -0
- package/{cloud.command-hxcgsf80.js → cloud.command-53j76grx.js} +6 -6
- package/{context.command-nqbtak4f.js → context.command-ds3mka9p.js} +9 -9
- package/incrementalBuilder.proc.js +249 -151
- package/{index-mq6ns0f9.js → index-0hjg9qs5.js} +7 -7
- package/{index-qhtr07v8.js → index-1fpjvqhs.js} +13 -13
- package/{index-sgmas1fc.js → index-dynknvzd.js} +3 -3
- package/{index-73pr2cmy.js → index-m9pca6jv.js} +1 -1
- package/{index-a5rmdgy4.js → index-q7zcac6n.js} +1403 -1405
- package/{index-77crfweb.js → index-rgfxj6qc.js} +176 -10
- package/index.js +9 -9
- package/{localRegistry.command-6z4s13mj.js → localRegistry.command-25sv5hmt.js} +3 -3
- package/{module.command-qrj3kmyz.js → module.command-tnj2bzst.js} +2 -2
- package/package.json +2 -2
- package/{primitive.command-pv9ssmtf.js → primitive.command-q1ycj5vr.js} +3 -3
- package/{scalar.command-kabkd6wd.js → scalar.command-bmrmp8n4.js} +2 -2
- package/{workflow.command-64r6cw0w.js → workflow.command-64550hka.js} +5 -5
- package/{workspace.command-875aj35r.js → workspace.command-pmfxxfew.js} +15 -15
- package/{index-8pkbzj26.js → index-fmky5k3p.js} +3 -3
- package/{index-y3hdhy4p.js → index-gb26e7z0.js} +3 -3
|
@@ -209,6 +209,7 @@ var createTunnel = async (service, { app, environment, port = service === "postg
|
|
|
209
209
|
// pkgs/@akanjs/devkit/incrementalBuilder/incrementalBuilder.host.ts
|
|
210
210
|
import path from "path";
|
|
211
211
|
import { Logger as Logger2 } from "akanjs/common";
|
|
212
|
+
import { MemoryLimit } from "akanjs/server/memoryLimit";
|
|
212
213
|
var builderMsgTypeSet = new Set([
|
|
213
214
|
"build-route-res",
|
|
214
215
|
"build-csr-res",
|
|
@@ -216,12 +217,15 @@ var builderMsgTypeSet = new Set([
|
|
|
216
217
|
"invalidate",
|
|
217
218
|
"css-updated",
|
|
218
219
|
"pages-updated",
|
|
219
|
-
"build-status"
|
|
220
|
+
"build-status",
|
|
221
|
+
"builder-metrics"
|
|
220
222
|
]);
|
|
221
223
|
|
|
222
224
|
class IncrementalBuilderHost {
|
|
223
225
|
static #restartBaseDelayMs = 1000;
|
|
224
226
|
static #restartMaxDelayMs = 30000;
|
|
227
|
+
static #recycleDrainTimeoutMs = 30000;
|
|
228
|
+
static #devMaxRssBytes = 1200 * 1024 * 1024;
|
|
225
229
|
logger = new Logger2("IncrementalBuilderHost");
|
|
226
230
|
entry;
|
|
227
231
|
env;
|
|
@@ -232,6 +236,9 @@ class IncrementalBuilderHost {
|
|
|
232
236
|
#status = "stopped";
|
|
233
237
|
#restartAttempts = 0;
|
|
234
238
|
#restartTimer = null;
|
|
239
|
+
#recycleTimer = null;
|
|
240
|
+
#recycleRequested = false;
|
|
241
|
+
#spawnAfterRecycle = false;
|
|
235
242
|
#manualStop = false;
|
|
236
243
|
#startOptions = {};
|
|
237
244
|
constructor({ app, entry, env, onMessage }) {
|
|
@@ -254,10 +261,12 @@ class IncrementalBuilderHost {
|
|
|
254
261
|
#spawn(isRestart) {
|
|
255
262
|
this.#status = isRestart ? "restarting" : "starting";
|
|
256
263
|
this.ready = false;
|
|
264
|
+
const afterRecycle = this.#spawnAfterRecycle;
|
|
265
|
+
this.#spawnAfterRecycle = false;
|
|
257
266
|
let proc;
|
|
258
267
|
proc = Bun.spawn(["bun", this.entry], {
|
|
259
268
|
cwd: this.app.cwdPath,
|
|
260
|
-
env: { ...this.env, AKAN_WATCH: "1" },
|
|
269
|
+
env: { ...this.env, AKAN_WATCH: "1", ...afterRecycle ? { AKAN_BUILDER_RECYCLED: "1" } : {} },
|
|
261
270
|
stdio: ["ignore", "inherit", "inherit"],
|
|
262
271
|
ipc: (msg) => {
|
|
263
272
|
if (this.#proc !== proc)
|
|
@@ -282,6 +291,8 @@ class IncrementalBuilderHost {
|
|
|
282
291
|
return;
|
|
283
292
|
this.#proc = null;
|
|
284
293
|
const wasReady = this.ready;
|
|
294
|
+
const wasRecycle = this.#recycleRequested;
|
|
295
|
+
this.#clearRecycle();
|
|
285
296
|
this.ready = false;
|
|
286
297
|
if (this.#manualStop || this.#status === "stopped")
|
|
287
298
|
return;
|
|
@@ -290,6 +301,12 @@ class IncrementalBuilderHost {
|
|
|
290
301
|
this.#startOptions.onExit?.();
|
|
291
302
|
return;
|
|
292
303
|
}
|
|
304
|
+
if (wasRecycle) {
|
|
305
|
+
this.logger.verbose("builder exited for a recycle; spawning its replacement now");
|
|
306
|
+
this.#spawnAfterRecycle = true;
|
|
307
|
+
this.#spawn(true);
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
293
310
|
this.#scheduleRestart();
|
|
294
311
|
}
|
|
295
312
|
});
|
|
@@ -311,6 +328,40 @@ class IncrementalBuilderHost {
|
|
|
311
328
|
this.#spawn(true);
|
|
312
329
|
}, delay);
|
|
313
330
|
}
|
|
331
|
+
recycle(reason) {
|
|
332
|
+
if (!this.#proc || this.#status !== "ready" || this.#recycleRequested)
|
|
333
|
+
return false;
|
|
334
|
+
const proc = this.#proc;
|
|
335
|
+
if (!this.send({ type: "builder-shutdown", reason }))
|
|
336
|
+
return false;
|
|
337
|
+
this.#recycleRequested = true;
|
|
338
|
+
this.logger.info(`recycling builder pid=${proc.pid} (${reason})`);
|
|
339
|
+
this.#recycleTimer = setTimeout(() => {
|
|
340
|
+
this.#recycleTimer = null;
|
|
341
|
+
if (this.#proc !== proc)
|
|
342
|
+
return;
|
|
343
|
+
this.logger.warn(`builder pid=${proc.pid} did not exit within ${IncrementalBuilderHost.#recycleDrainTimeoutMs}ms of the recycle request; killing it`);
|
|
344
|
+
proc.kill();
|
|
345
|
+
}, IncrementalBuilderHost.#recycleDrainTimeoutMs);
|
|
346
|
+
return true;
|
|
347
|
+
}
|
|
348
|
+
#clearRecycle() {
|
|
349
|
+
this.#recycleRequested = false;
|
|
350
|
+
if (!this.#recycleTimer)
|
|
351
|
+
return;
|
|
352
|
+
clearTimeout(this.#recycleTimer);
|
|
353
|
+
this.#recycleTimer = null;
|
|
354
|
+
}
|
|
355
|
+
static maxRssBytes() {
|
|
356
|
+
if (process.env.AKAN_BUILDER_MAX_RSS_MB === "0")
|
|
357
|
+
return null;
|
|
358
|
+
return MemoryLimit.resolveMaxRssBytes({
|
|
359
|
+
megabytesEnv: "AKAN_BUILDER_MAX_RSS_MB",
|
|
360
|
+
bytesEnv: "AKAN_BUILDER_MAX_RSS",
|
|
361
|
+
limitFraction: 0.35,
|
|
362
|
+
fallbackBytes: IncrementalBuilderHost.#devMaxRssBytes
|
|
363
|
+
});
|
|
364
|
+
}
|
|
314
365
|
send(message) {
|
|
315
366
|
if (!this.#proc || this.#status !== "ready") {
|
|
316
367
|
this.logger.warn(`incrementalBuilderHost is ${this.#status}; cannot send ${message.type}`);
|
|
@@ -326,6 +377,7 @@ class IncrementalBuilderHost {
|
|
|
326
377
|
}
|
|
327
378
|
stop() {
|
|
328
379
|
this.#manualStop = true;
|
|
380
|
+
this.#clearRecycle();
|
|
329
381
|
if (this.#restartTimer) {
|
|
330
382
|
clearTimeout(this.#restartTimer);
|
|
331
383
|
this.#restartTimer = null;
|
|
@@ -359,6 +411,9 @@ var BACKEND_RECOVERY_MAX_ATTEMPTS = 5;
|
|
|
359
411
|
var BACKEND_STDERR_TAIL_LIMIT = 40;
|
|
360
412
|
var BUILDER_READY_TIMEOUT_MS = 150000;
|
|
361
413
|
var BUILDER_START_MAX_ATTEMPTS = 3;
|
|
414
|
+
var BUILDER_RSS_RECYCLE_QUIET_MS = 750;
|
|
415
|
+
var BUILDER_MIN_RSS_RECYCLE_INTERVAL_MS = 30000;
|
|
416
|
+
var BUILDER_INEFFECTIVE_RSS_RECYCLE_LIMIT = 2;
|
|
362
417
|
var BUILDER_RECOVERY_BASE_DELAY_MS = 2000;
|
|
363
418
|
var BUILDER_RECOVERY_MAX_DELAY_MS = 60000;
|
|
364
419
|
var SOURCE_EXTS = new Set([".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"]);
|
|
@@ -446,6 +501,33 @@ var hasBuildFailureForGeneration = (statusByPhase, generation) => {
|
|
|
446
501
|
}
|
|
447
502
|
return false;
|
|
448
503
|
};
|
|
504
|
+
var decideBuilderRssRecycle = ({
|
|
505
|
+
rssBytes,
|
|
506
|
+
ceilingBytes,
|
|
507
|
+
buildFailed,
|
|
508
|
+
msSinceLastRecycle,
|
|
509
|
+
minIntervalMs = BUILDER_MIN_RSS_RECYCLE_INTERVAL_MS
|
|
510
|
+
}) => {
|
|
511
|
+
if (!ceilingBytes)
|
|
512
|
+
return "unbounded";
|
|
513
|
+
if (rssBytes < ceilingBytes)
|
|
514
|
+
return "below-ceiling";
|
|
515
|
+
if (buildFailed)
|
|
516
|
+
return "build-failed";
|
|
517
|
+
if (msSinceLastRecycle !== null && msSinceLastRecycle < minIntervalMs)
|
|
518
|
+
return "too-soon";
|
|
519
|
+
return "recycle";
|
|
520
|
+
};
|
|
521
|
+
var shouldAbandonBuilderRssCeiling = (ineffectiveRecycles, limit = BUILDER_INEFFECTIVE_RSS_RECYCLE_LIMIT) => ineffectiveRecycles >= limit;
|
|
522
|
+
var shouldRelayRecycledFrontendState = (current, next) => {
|
|
523
|
+
if (!current || current.type !== next.type)
|
|
524
|
+
return true;
|
|
525
|
+
if (current.type === "pages-updated" && next.type === "pages-updated")
|
|
526
|
+
return current.data.bundlePath !== next.data.bundlePath;
|
|
527
|
+
if (current.type === "css-updated" && next.type === "css-updated")
|
|
528
|
+
return JSON.stringify(current.data.cssAssets) !== JSON.stringify(next.data.cssAssets);
|
|
529
|
+
return true;
|
|
530
|
+
};
|
|
449
531
|
var mergeDevPlans = (current, next) => {
|
|
450
532
|
if (!current)
|
|
451
533
|
return next;
|
|
@@ -606,6 +688,11 @@ class AkanAppHost {
|
|
|
606
688
|
#backendBuildStatusGeneration = 0;
|
|
607
689
|
#backendStderrTail = [];
|
|
608
690
|
#lastGoodFrontend = {};
|
|
691
|
+
#rssRecycleTimer = null;
|
|
692
|
+
#rssRecycleReason = null;
|
|
693
|
+
#lastRssRecycleAtMono = null;
|
|
694
|
+
#rssCeilingIneffective = 0;
|
|
695
|
+
#rssCeilingAbandoned = false;
|
|
609
696
|
#buildStatusByPhase = new Map;
|
|
610
697
|
#pendingBuildStatusReplay = [];
|
|
611
698
|
#builderMessageQueue = Promise.resolve();
|
|
@@ -901,18 +988,96 @@ ${this.#backendStderrTail.join(`
|
|
|
901
988
|
this.#reviveBackendAfterGreenBuild(message.data);
|
|
902
989
|
return;
|
|
903
990
|
}
|
|
904
|
-
if (message.type === "
|
|
905
|
-
this.#
|
|
906
|
-
|
|
907
|
-
|
|
991
|
+
if (message.type === "builder-metrics") {
|
|
992
|
+
this.#handleBuilderMetrics(message.data);
|
|
993
|
+
return;
|
|
994
|
+
}
|
|
995
|
+
if (message.type === "pages-updated" || message.type === "css-updated") {
|
|
996
|
+
const recycled = message.data.reason === "builder-recycle";
|
|
997
|
+
if (recycled && !this.#shouldRelayRecycledState(message))
|
|
998
|
+
return;
|
|
999
|
+
this.#recordLastGood(message, { supersede: recycled });
|
|
1000
|
+
}
|
|
908
1001
|
if (message.type === "invalidate") {
|
|
909
1002
|
await this.#handleInvalidate(message);
|
|
910
1003
|
return;
|
|
911
1004
|
}
|
|
912
1005
|
this.#sendToBackend(message);
|
|
913
1006
|
}
|
|
1007
|
+
#shouldRelayRecycledState(message) {
|
|
1008
|
+
const current = message.type === "pages-updated" ? this.#lastGoodFrontend.pages : this.#lastGoodFrontend.css;
|
|
1009
|
+
if (shouldRelayRecycledFrontendState(current, message)) {
|
|
1010
|
+
this.logger.verbose(`[builder-recycle] ${message.type} moved during the recycle; pushing it to the backend`);
|
|
1011
|
+
return true;
|
|
1012
|
+
}
|
|
1013
|
+
this.logger.verbose(`[builder-recycle] ${message.type} unchanged after the recycle; backend left as is`);
|
|
1014
|
+
return false;
|
|
1015
|
+
}
|
|
1016
|
+
#handleBuilderMetrics(metrics) {
|
|
1017
|
+
if (this.#rssCeilingAbandoned)
|
|
1018
|
+
return;
|
|
1019
|
+
const ceilingBytes = IncrementalBuilderHost.maxRssBytes();
|
|
1020
|
+
const asMib = (bytes) => Math.round(bytes / 1024 / 1024);
|
|
1021
|
+
const decision = decideBuilderRssRecycle({
|
|
1022
|
+
rssBytes: metrics.rssBytes,
|
|
1023
|
+
ceilingBytes,
|
|
1024
|
+
buildFailed: hasBuildFailureForGeneration(this.#buildStatusByPhase, metrics.generation),
|
|
1025
|
+
msSinceLastRecycle: this.#lastRssRecycleAtMono === null ? null : performance.now() - this.#lastRssRecycleAtMono
|
|
1026
|
+
});
|
|
1027
|
+
if (decision === "below-ceiling") {
|
|
1028
|
+
this.#rssCeilingIneffective = 0;
|
|
1029
|
+
return;
|
|
1030
|
+
}
|
|
1031
|
+
if (decision === "unbounded")
|
|
1032
|
+
return;
|
|
1033
|
+
if (decision === "build-failed") {
|
|
1034
|
+
this.logger.verbose(`[builder-recycle] deferred: generation=${metrics.generation} has a failing build, so a replacement would hit the same error`);
|
|
1035
|
+
return;
|
|
1036
|
+
}
|
|
1037
|
+
if (decision === "too-soon") {
|
|
1038
|
+
this.#rssCeilingIneffective += 1;
|
|
1039
|
+
if (!shouldAbandonBuilderRssCeiling(this.#rssCeilingIneffective))
|
|
1040
|
+
return;
|
|
1041
|
+
this.#rssCeilingAbandoned = true;
|
|
1042
|
+
this.logger.error(`[builder-recycle] the builder is still at ${asMib(metrics.rssBytes)}MiB right after being recycled, so the ${asMib(ceilingBytes ?? 0)}MiB ceiling cannot be met for this app; no longer enforcing it this session. Raise AKAN_BUILDER_MAX_RSS_MB, or set it to 0 to leave the builder unbounded.`);
|
|
1043
|
+
return;
|
|
1044
|
+
}
|
|
1045
|
+
this.#armRssRecycle(`rss=${asMib(metrics.rssBytes)}MiB>=${asMib(ceilingBytes ?? 0)}MiB after ${metrics.workCount} build(s)`);
|
|
1046
|
+
}
|
|
1047
|
+
#armRssRecycle(reason) {
|
|
1048
|
+
if (this.#rssRecycleReason !== reason)
|
|
1049
|
+
this.logger.verbose(`[builder-recycle] armed (${reason}); replacing the builder once it stays quiet`);
|
|
1050
|
+
this.#rssRecycleReason = reason;
|
|
1051
|
+
if (this.#rssRecycleTimer)
|
|
1052
|
+
clearTimeout(this.#rssRecycleTimer);
|
|
1053
|
+
this.#rssRecycleTimer = setTimeout(() => {
|
|
1054
|
+
this.#rssRecycleTimer = null;
|
|
1055
|
+
const pendingReason = this.#rssRecycleReason;
|
|
1056
|
+
this.#rssRecycleReason = null;
|
|
1057
|
+
if (pendingReason)
|
|
1058
|
+
this.#recycleBuilderForRss(pendingReason);
|
|
1059
|
+
}, BUILDER_RSS_RECYCLE_QUIET_MS);
|
|
1060
|
+
}
|
|
1061
|
+
#cancelRssRecycle() {
|
|
1062
|
+
this.#rssRecycleReason = null;
|
|
1063
|
+
if (!this.#rssRecycleTimer)
|
|
1064
|
+
return;
|
|
1065
|
+
clearTimeout(this.#rssRecycleTimer);
|
|
1066
|
+
this.#rssRecycleTimer = null;
|
|
1067
|
+
}
|
|
1068
|
+
#recycleBuilderForRss(reason) {
|
|
1069
|
+
if (this.#pendingRecycle || this.#restartTimer) {
|
|
1070
|
+
this.logger.verbose(`[builder-recycle] skipped (${reason}); a dev restart is already pending`);
|
|
1071
|
+
return;
|
|
1072
|
+
}
|
|
1073
|
+
if (!this.#builder?.recycle(reason))
|
|
1074
|
+
return;
|
|
1075
|
+
this.#lastRssRecycleAtMono = performance.now();
|
|
1076
|
+
}
|
|
914
1077
|
async#handleInvalidate(message) {
|
|
915
1078
|
this.#logDevPlan(message);
|
|
1079
|
+
if (this.#rssRecycleReason)
|
|
1080
|
+
this.#armRssRecycle(this.#rssRecycleReason);
|
|
916
1081
|
const wantsDevHostRestart = shouldRestartDevHostByDevPlan(message);
|
|
917
1082
|
const pending = this.#pendingRecycle;
|
|
918
1083
|
if (wantsDevHostRestart || shouldRestartBuilderByDevPlan(message) || pending && message.kinds.includes("code")) {
|
|
@@ -1045,15 +1210,15 @@ ${this.#backendStderrTail.join(`
|
|
|
1045
1210
|
await this.#startBuilder();
|
|
1046
1211
|
this.#startBackend({ generation, files: message.files });
|
|
1047
1212
|
}
|
|
1048
|
-
#recordLastGood(message) {
|
|
1213
|
+
#recordLastGood(message, { supersede = false } = {}) {
|
|
1049
1214
|
if (message.type === "pages-updated") {
|
|
1050
|
-
if (!shouldReplaceLastGoodMessage(this.#lastGoodFrontend.pages, message))
|
|
1215
|
+
if (!supersede && !shouldReplaceLastGoodMessage(this.#lastGoodFrontend.pages, message))
|
|
1051
1216
|
return;
|
|
1052
1217
|
this.#lastGoodFrontend.pages = message;
|
|
1053
1218
|
this.logger.verbose(`[last-good] pages generation=${message.data.generation ?? "(unknown)"} buildId=${message.data.buildId}`);
|
|
1054
1219
|
return;
|
|
1055
1220
|
}
|
|
1056
|
-
if (!shouldReplaceLastGoodMessage(this.#lastGoodFrontend.css, message))
|
|
1221
|
+
if (!supersede && !shouldReplaceLastGoodMessage(this.#lastGoodFrontend.css, message))
|
|
1057
1222
|
return;
|
|
1058
1223
|
this.#lastGoodFrontend.css = message;
|
|
1059
1224
|
this.logger.verbose(`[last-good] css generation=${message.data.generation ?? "(unknown)"} assets=${Object.keys(message.data.cssAssets).length}`);
|
|
@@ -1212,6 +1377,7 @@ ${this.#backendStderrTail.join(`
|
|
|
1212
1377
|
this.logger.warn("akanAppHost builder is not running");
|
|
1213
1378
|
}
|
|
1214
1379
|
#stopBuilder() {
|
|
1380
|
+
this.#cancelRssRecycle();
|
|
1215
1381
|
if (!this.#builder)
|
|
1216
1382
|
return;
|
|
1217
1383
|
this.#builder.stop();
|
|
@@ -1259,7 +1425,7 @@ function openBrowser(url) {
|
|
|
1259
1425
|
}
|
|
1260
1426
|
|
|
1261
1427
|
// pkgs/@akanjs/cli/application/application.runner.ts
|
|
1262
|
-
var loadBuildRunner = async () => (await import("./applicationBuildRunner-
|
|
1428
|
+
var loadBuildRunner = async () => (await import("./applicationBuildRunner-ny84tjhc.js")).ApplicationBuildRunner;
|
|
1263
1429
|
var loadReleasePackager = async () => (await import("./applicationReleasePackager-brvth6rs.js")).ApplicationReleasePackager;
|
|
1264
1430
|
var loadCapacitorApp = async () => (await import("./capacitorApp-y0h6cgft.js")).CapacitorApp;
|
|
1265
1431
|
var loadPrompts = async () => await import("@inquirer/prompts");
|
package/index.js
CHANGED
|
@@ -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-
|
|
20
|
+
workspace: async () => (await import("./workspace.command-pmfxxfew.js")).WorkspaceCommand,
|
|
21
21
|
agent: async () => (await import("./agent.command-h4afc69n.js")).AgentCommand,
|
|
22
|
-
application: async () => (await import("./application.command-
|
|
22
|
+
application: async () => (await import("./application.command-jkmbsd1x.js")).ApplicationCommand,
|
|
23
23
|
library: async () => (await import("./library.command-r15zdqvp.js")).LibraryCommand,
|
|
24
|
-
localRegistry: async () => (await import("./localRegistry.command-
|
|
24
|
+
localRegistry: async () => (await import("./localRegistry.command-25sv5hmt.js")).LocalRegistryCommand,
|
|
25
25
|
package: async () => (await import("./package.command-5x5m0ej1.js")).PackageCommand,
|
|
26
|
-
module: async () => (await import("./module.command-
|
|
26
|
+
module: async () => (await import("./module.command-tnj2bzst.js")).ModuleCommand,
|
|
27
27
|
page: async () => (await import("./page.command-c6xdx0xm.js")).PageCommand,
|
|
28
|
-
context: async () => (await import("./context.command-
|
|
29
|
-
cloud: async () => (await import("./cloud.command-
|
|
28
|
+
context: async () => (await import("./context.command-ds3mka9p.js")).ContextCommand,
|
|
29
|
+
cloud: async () => (await import("./cloud.command-53j76grx.js")).CloudCommand,
|
|
30
30
|
guideline: async () => (await import("./guideline.command-ya0dh44f.js")).GuidelineCommand,
|
|
31
|
-
scalar: async () => (await import("./scalar.command-
|
|
32
|
-
primitive: async () => (await import("./primitive.command-
|
|
31
|
+
scalar: async () => (await import("./scalar.command-bmrmp8n4.js")).ScalarCommand,
|
|
32
|
+
primitive: async () => (await import("./primitive.command-q1ycj5vr.js")).PrimitiveCommand,
|
|
33
33
|
quality: async () => (await import("./quality.command-es67wvdp.js")).QualityCommand,
|
|
34
34
|
repair: async () => (await import("./repair.command-677675vw.js")).RepairCommand,
|
|
35
|
-
workflow: async () => (await import("./workflow.command-
|
|
35
|
+
workflow: async () => (await import("./workflow.command-64550hka.js")).WorkflowCommand
|
|
36
36
|
};
|
|
37
37
|
var commandModuleIds = Object.keys(commandModules);
|
|
38
38
|
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
import {
|
|
3
3
|
CloudRunner,
|
|
4
4
|
getNpmRegistryUrl
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-dynknvzd.js";
|
|
6
|
+
import"./index-5vvwc0cz.js";
|
|
6
7
|
import {
|
|
7
8
|
ApplicationScript
|
|
8
|
-
} from "./index-
|
|
9
|
+
} from "./index-rgfxj6qc.js";
|
|
9
10
|
import"./index-76rn3g2c.js";
|
|
10
11
|
import"./index-pmm9e2jf.js";
|
|
11
12
|
import {
|
|
12
13
|
PackageScript
|
|
13
14
|
} from "./index-n6h3482q.js";
|
|
14
|
-
import"./index-5vvwc0cz.js";
|
|
15
15
|
import {
|
|
16
16
|
Workspace,
|
|
17
17
|
command,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
ModuleScript
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-fmky5k3p.js";
|
|
5
5
|
import"./index-swf4bmbg.js";
|
|
6
6
|
import"./index-ss469dec.js";
|
|
7
|
-
import"./index-qaq13qk3.js";
|
|
8
7
|
import {
|
|
9
8
|
renderPrimitiveReport
|
|
10
9
|
} from "./index-h6ca6qg0.js";
|
|
10
|
+
import"./index-qaq13qk3.js";
|
|
11
11
|
import"./index-5vvwc0cz.js";
|
|
12
12
|
import {
|
|
13
13
|
Module,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akanjs/cli",
|
|
3
|
-
"version": "2.4.1-rc.
|
|
3
|
+
"version": "2.4.1-rc.3",
|
|
4
4
|
"sourceType": "module",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@langchain/openai": "^1.4.6",
|
|
35
35
|
"@tailwindcss/node": "^4.3.0",
|
|
36
36
|
"@trapezedev/project": "^7.1.4",
|
|
37
|
-
"akanjs": "2.4.1-rc.
|
|
37
|
+
"akanjs": "2.4.1-rc.3",
|
|
38
38
|
"chalk": "^5.6.2",
|
|
39
39
|
"commander": "^14.0.3",
|
|
40
40
|
"daisyui": "5.5.23",
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
PrimitiveScript
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
4
|
+
} from "./index-m9pca6jv.js";
|
|
5
|
+
import"./index-fmky5k3p.js";
|
|
6
6
|
import"./index-swf4bmbg.js";
|
|
7
7
|
import"./index-ss469dec.js";
|
|
8
|
-
import"./index-qaq13qk3.js";
|
|
9
8
|
import {
|
|
10
9
|
renderPrimitiveReport
|
|
11
10
|
} from "./index-h6ca6qg0.js";
|
|
11
|
+
import"./index-qaq13qk3.js";
|
|
12
12
|
import"./index-5vvwc0cz.js";
|
|
13
13
|
import {
|
|
14
14
|
Workspace,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
ScalarScript
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-gb26e7z0.js";
|
|
5
5
|
import"./index-ss469dec.js";
|
|
6
|
-
import"./index-qaq13qk3.js";
|
|
7
6
|
import {
|
|
8
7
|
renderPrimitiveReport
|
|
9
8
|
} from "./index-h6ca6qg0.js";
|
|
9
|
+
import"./index-qaq13qk3.js";
|
|
10
10
|
import"./index-5vvwc0cz.js";
|
|
11
11
|
import {
|
|
12
12
|
Sys,
|
|
@@ -4,20 +4,20 @@ import {
|
|
|
4
4
|
} from "./index-45aj5ry0.js";
|
|
5
5
|
import {
|
|
6
6
|
ScalarScript
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-gb26e7z0.js";
|
|
8
8
|
import {
|
|
9
9
|
PrimitiveScript
|
|
10
|
-
} from "./index-
|
|
11
|
-
import"./index-8rc0bm04.js";
|
|
10
|
+
} from "./index-m9pca6jv.js";
|
|
12
11
|
import {
|
|
13
12
|
ModuleScript
|
|
14
|
-
} from "./index-
|
|
13
|
+
} from "./index-fmky5k3p.js";
|
|
15
14
|
import"./index-swf4bmbg.js";
|
|
16
15
|
import"./index-ss469dec.js";
|
|
17
|
-
import"./index-
|
|
16
|
+
import"./index-8rc0bm04.js";
|
|
18
17
|
import {
|
|
19
18
|
createWorkflowStepRegistry
|
|
20
19
|
} from "./index-h6ca6qg0.js";
|
|
20
|
+
import"./index-qaq13qk3.js";
|
|
21
21
|
import"./index-5vvwc0cz.js";
|
|
22
22
|
import {
|
|
23
23
|
Workspace,
|
|
@@ -1,26 +1,34 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
ContextScript
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-1fpjvqhs.js";
|
|
5
|
+
import"./index-85msc0wg.js";
|
|
5
6
|
import"./index-45aj5ry0.js";
|
|
6
7
|
import {
|
|
7
8
|
CloudScript
|
|
8
|
-
} from "./index-
|
|
9
|
-
import"./index-
|
|
10
|
-
import"./index-
|
|
11
|
-
import"./index-
|
|
9
|
+
} from "./index-0hjg9qs5.js";
|
|
10
|
+
import"./index-gb26e7z0.js";
|
|
11
|
+
import"./index-m9pca6jv.js";
|
|
12
|
+
import"./index-fmky5k3p.js";
|
|
13
|
+
import"./index-swf4bmbg.js";
|
|
14
|
+
import"./index-ss469dec.js";
|
|
12
15
|
import"./index-1xdrsbry.js";
|
|
13
16
|
import {
|
|
14
17
|
AgentScript
|
|
15
18
|
} from "./index-hwzpw9c1.js";
|
|
16
19
|
import"./index-8rc0bm04.js";
|
|
20
|
+
import"./index-h6ca6qg0.js";
|
|
21
|
+
import"./index-qaq13qk3.js";
|
|
17
22
|
import {
|
|
18
23
|
getLatestPackageVersion,
|
|
19
24
|
getNpmRegistryUrl
|
|
20
|
-
} from "./index-
|
|
25
|
+
} from "./index-dynknvzd.js";
|
|
26
|
+
import {
|
|
27
|
+
GlobalConfig
|
|
28
|
+
} from "./index-5vvwc0cz.js";
|
|
21
29
|
import {
|
|
22
30
|
ApplicationScript
|
|
23
|
-
} from "./index-
|
|
31
|
+
} from "./index-rgfxj6qc.js";
|
|
24
32
|
import"./index-76rn3g2c.js";
|
|
25
33
|
import {
|
|
26
34
|
LibraryScript
|
|
@@ -28,14 +36,6 @@ import {
|
|
|
28
36
|
import {
|
|
29
37
|
PackageScript
|
|
30
38
|
} from "./index-n6h3482q.js";
|
|
31
|
-
import"./index-8pkbzj26.js";
|
|
32
|
-
import"./index-swf4bmbg.js";
|
|
33
|
-
import"./index-ss469dec.js";
|
|
34
|
-
import"./index-qaq13qk3.js";
|
|
35
|
-
import"./index-h6ca6qg0.js";
|
|
36
|
-
import {
|
|
37
|
-
GlobalConfig
|
|
38
|
-
} from "./index-5vvwc0cz.js";
|
|
39
39
|
import {
|
|
40
40
|
Exec,
|
|
41
41
|
Workspace,
|
|
@@ -5,9 +5,6 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
pluralizeName
|
|
7
7
|
} from "./index-ss469dec.js";
|
|
8
|
-
import {
|
|
9
|
-
Prompter
|
|
10
|
-
} from "./index-qaq13qk3.js";
|
|
11
8
|
import {
|
|
12
9
|
bilingualDescriptionForField,
|
|
13
10
|
bilingualLabelForField,
|
|
@@ -16,6 +13,9 @@ import {
|
|
|
16
13
|
moduleSourcePaths,
|
|
17
14
|
sourceFile
|
|
18
15
|
} from "./index-h6ca6qg0.js";
|
|
16
|
+
import {
|
|
17
|
+
Prompter
|
|
18
|
+
} from "./index-qaq13qk3.js";
|
|
19
19
|
import {
|
|
20
20
|
AiSession
|
|
21
21
|
} from "./index-5vvwc0cz.js";
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
pluralizeName
|
|
4
4
|
} from "./index-ss469dec.js";
|
|
5
|
-
import {
|
|
6
|
-
Prompter
|
|
7
|
-
} from "./index-qaq13qk3.js";
|
|
8
5
|
import {
|
|
9
6
|
createPassedPrimitiveReport,
|
|
10
7
|
generatedFilesForSync,
|
|
11
8
|
scalarChangedFiles
|
|
12
9
|
} from "./index-h6ca6qg0.js";
|
|
10
|
+
import {
|
|
11
|
+
Prompter
|
|
12
|
+
} from "./index-qaq13qk3.js";
|
|
13
13
|
import {
|
|
14
14
|
AiSession
|
|
15
15
|
} from "./index-5vvwc0cz.js";
|