@akanjs/cli 3.0.0-beta.23 → 3.0.0-beta.25

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 (73) hide show
  1. package/.build-stamp +1 -1
  2. package/{CodeAgent-0dh9fzzg.js → CodeAgent-p65jja35.js} +2 -2
  3. package/{CodeTui-drwdvwg9.js → CodeTui-5xr8kxx4.js} +1 -1
  4. package/TunnelShare-cwh9ezsm.js +9 -0
  5. package/{agent.command-ttn09rx3.js → agent.command-rp505zxa.js} +7 -7
  6. package/akanCode.js +2 -2
  7. package/{application.command-b6rck8d6.js → application.command-2x9jqy0k.js} +7 -7
  8. package/{applicationBuildRunner-vh74vrhg.js → applicationBuildRunner-tm0vba5t.js} +4 -4
  9. package/buildBatch.proc.js +99 -12
  10. package/{cloud.command-gwdypy7k.js → cloud.command-j6m607bp.js} +12 -12
  11. package/cloud.script-r5t7nhee.js +20 -0
  12. package/{code.command-1jgk14tc.js → code.command-jhrjttm1.js} +7 -7
  13. package/{context.command-4vpjmg22.js → context.command-xncdvv7n.js} +14 -14
  14. package/context.runner-pjy89k2s.js +21 -0
  15. package/{dependencyScanner-ye2e6pdz.js → dependencyScanner-06z2dmrr.js} +2 -2
  16. package/{fileSys-5ngz93ga.js → fileSys-wzzrntkw.js} +1 -1
  17. package/{guideline.command-7jk47fgq.js → guideline.command-d5qmxx29.js} +4 -4
  18. package/guidelines/agentRule/agentRule.instruction.md +7 -0
  19. package/guidelines/conventions/conventions.instruction.md +7 -5
  20. package/incrementalBuilder.proc.js +544 -72
  21. package/{index-ga6hygxr.js → index-0n9q1f23.js} +3 -3
  22. package/{index-3t7g9e4r.js → index-2ahj896a.js} +1 -1
  23. package/{index-smme4r47.js → index-2wc41k5w.js} +1 -1
  24. package/{index-khpfpcsd.js → index-48k96p55.js} +27 -7
  25. package/{index-776sswhv.js → index-4mgbzgb5.js} +281 -651
  26. package/{index-2gh9sndr.js → index-50rq2qms.js} +4 -4
  27. package/{index-5b6tavv3.js → index-52w0fvh8.js} +15 -1
  28. package/{index-yjkte9aj.js → index-56xwsgyn.js} +3 -3
  29. package/{index-rmcw8yc8.js → index-58cyna2s.js} +2 -2
  30. package/{index-1db2cw0y.js → index-5mm3g24t.js} +2 -2
  31. package/{index-wp43xrjv.js → index-6dt6zft6.js} +4 -4
  32. package/{index-vj1cwwy5.js → index-7yxndzea.js} +7 -7
  33. package/{index-q44jbw48.js → index-860zjnr1.js} +1 -1
  34. package/{index-jn07hxrr.js → index-8k93esfr.js} +6 -6
  35. package/{index-22d57v4c.js → index-94s080qm.js} +3 -3
  36. package/{index-yy4s1j72.js → index-d65fzxvd.js} +1 -1
  37. package/{index-m0ms3n1c.js → index-da72pfdv.js} +7 -7
  38. package/index-dt1x62ec.js +4108 -0
  39. package/{index-4dn1p115.js → index-ggfhz9ab.js} +4 -4
  40. package/{index-9629w7ns.js → index-hzy4pe24.js} +3 -3
  41. package/{index-jg5e15db.js → index-pb10njz7.js} +192 -58
  42. package/{index-mgfx3mfs.js → index-per2kqy9.js} +4 -4
  43. package/{index-aaz7n8s2.js → index-qm4fppfk.js} +4 -4
  44. package/{index-ya5qbmyg.js → index-t02g6dpn.js} +3 -3
  45. package/{index-hb8sgepf.js → index-tpdn30ya.js} +1 -1
  46. package/{index-rnt66vym.js → index-v4hnkqz9.js} +1 -1
  47. package/{index-pp54p5zk.js → index-xfgdmm5d.js} +2 -2
  48. package/{index-tgjy8xf3.js → index-zazvn45w.js} +4 -4
  49. package/{index-0bq14vr1.js → index-zzvvc845.js} +1 -1
  50. package/index.js +22 -22
  51. package/{library.command-ccb1cp92.js → library.command-sv6g1h2g.js} +4 -4
  52. package/{localRegistry.command-cxvgn7fr.js → localRegistry.command-4kj56531.js} +11 -11
  53. package/{module.command-5k6h407d.js → module.command-ccdeder9.js} +6 -6
  54. package/{package.command-e6ntvpez.js → package.command-xmw605b1.js} +5 -5
  55. package/package.json +4 -4
  56. package/{page.command-v4f90wb8.js → page.command-ky7vafsn.js} +4 -4
  57. package/{primitive.command-g6km57q5.js → primitive.command-bh6j8nfs.js} +7 -7
  58. package/{prompter-ptaa3nk0.js → prompter-76k56b37.js} +2 -2
  59. package/{quality.command-de3p36pz.js → quality.command-rqqrpe98.js} +3 -3
  60. package/{repair.command-d3x1javq.js → repair.command-n9nsm9qe.js} +6 -6
  61. package/{scalar.command-7ezrac2b.js → scalar.command-t09gmck8.js} +5 -5
  62. package/{subspace.command-0cep72ce.js → subspace.command-ygfdqpbj.js} +6 -6
  63. package/templates/workspaceRoot/package.json.template +1 -3
  64. package/{tunnel.command-hsrv2mny.js → tunnel.command-4g95vhsn.js} +5 -5
  65. package/{workflow.command-z2p32nmf.js → workflow.command-b91ph8sx.js} +11 -11
  66. package/{workspace.command-axwscbnn.js → workspace.command-p44d21qf.js} +24 -24
  67. package/README.ko.md +0 -72
  68. package/README.md +0 -88
  69. package/TunnelShare-scf4e4pd.js +0 -9
  70. package/cloud.script-at2beffs.js +0 -20
  71. package/context.runner-ehjs419v.js +0 -21
  72. package/index-fgq75haa.js +0 -2084
  73. package/templates/workspaceRoot/patches/react-dom@19.2.7.patch.template +0 -62
package/.build-stamp CHANGED
@@ -1 +1 @@
1
- 6c23abacd61473a71e06be68f20bc1c445facb2e3b329397668341f7273c928c
1
+ ebb85e20e2ce0664a89d89b8a4118186e1277010b003f7c8a8222101af0c5263
@@ -1,8 +1,8 @@
1
1
  // @bun
2
2
  import {
3
3
  CodeAgent2
4
- } from "./index-aaz7n8s2.js";
5
- import"./index-hb8sgepf.js";
4
+ } from "./index-qm4fppfk.js";
5
+ import"./index-tpdn30ya.js";
6
6
  import"./index-7md2g9vw.js";
7
7
  export {
8
8
  CodeAgent2 as CodeAgent
@@ -4,7 +4,7 @@ import {
4
4
  McpServerConfig,
5
5
  McpTokenStore,
6
6
  McpSignIn
7
- } from "./index-hb8sgepf.js";
7
+ } from "./index-tpdn30ya.js";
8
8
  import {
9
9
  CodeTuiLines2,
10
10
  CodeTuiAgents2,
@@ -0,0 +1,9 @@
1
+ // @bun
2
+ import {
3
+ TunnelShare2
4
+ } from "./index-2wc41k5w.js";
5
+ import"./index-94s080qm.js";
6
+ import"./index-52w0fvh8.js";
7
+ export {
8
+ TunnelShare2 as TunnelShare
9
+ };
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  Workspace,
4
4
  command
5
- } from "./index-rmcw8yc8.js";
6
- import"./index-5b6tavv3.js";
7
- import"./index-ga6hygxr.js";
5
+ } from "./index-58cyna2s.js";
6
+ import"./index-52w0fvh8.js";
7
+ import"./index-0n9q1f23.js";
8
8
  import"./index-hj6w4ka1.js";
9
- import"./index-yy4s1j72.js";
10
- import"./index-9629w7ns.js";
11
- import"./index-0bq14vr1.js";
9
+ import"./index-d65fzxvd.js";
10
+ import"./index-hzy4pe24.js";
11
+ import"./index-zzvvc845.js";
12
12
  import {
13
13
  AgentScript
14
- } from "./index-4dn1p115.js";
14
+ } from "./index-ggfhz9ab.js";
15
15
 
16
16
  // pkgs/@akanjs/cli/agent/agent.command.ts
17
17
  class AgentCommand extends command("agent", [AgentScript], ({ public: target }) => ({
package/akanCode.js CHANGED
@@ -28,7 +28,7 @@ import {
28
28
  CodeMailbox2,
29
29
  CodeSessionFork2,
30
30
  CodeAgent2
31
- } from "./index-aaz7n8s2.js";
31
+ } from "./index-qm4fppfk.js";
32
32
  import {
33
33
  akanCodeDefaultModel2,
34
34
  akanCodeModel2,
@@ -39,7 +39,7 @@ import {
39
39
  import {
40
40
  SubagentPool2,
41
41
  akanCodePaths2
42
- } from "./index-hb8sgepf.js";
42
+ } from "./index-tpdn30ya.js";
43
43
  import"./index-7md2g9vw.js";
44
44
  import {
45
45
  CodeAgentRpcHost2
@@ -6,19 +6,19 @@ import {
6
6
  Exec,
7
7
  Workspace,
8
8
  command
9
- } from "./index-rmcw8yc8.js";
10
- import"./index-5b6tavv3.js";
11
- import"./index-ga6hygxr.js";
9
+ } from "./index-58cyna2s.js";
10
+ import"./index-52w0fvh8.js";
11
+ import"./index-0n9q1f23.js";
12
12
  import {
13
13
  getMobileTargetChoices
14
14
  } from "./index-ys6f0bvh.js";
15
- import"./index-khpfpcsd.js";
16
- import"./index-1db2cw0y.js";
15
+ import"./index-48k96p55.js";
16
+ import"./index-5mm3g24t.js";
17
17
  import {
18
18
  ApplicationScript
19
- } from "./index-jg5e15db.js";
19
+ } from "./index-pb10njz7.js";
20
20
  import"./index-7md2g9vw.js";
21
- import"./index-q44jbw48.js";
21
+ import"./index-860zjnr1.js";
22
22
 
23
23
  // pkgs/@akanjs/cli/application/application.command.ts
24
24
  var mobileTargetOption = {
@@ -1,16 +1,16 @@
1
1
  // @bun
2
2
  import {
3
3
  Spinner
4
- } from "./index-ga6hygxr.js";
4
+ } from "./index-0n9q1f23.js";
5
+ import"./index-dt1x62ec.js";
5
6
  import {
6
7
  AllRoutesBuilder,
7
8
  CsrArtifactBuilder,
8
9
  FontPruner,
9
10
  precompressArtifacts,
10
11
  SsrBaseArtifactBuilder
11
- } from "./index-776sswhv.js";
12
- import"./index-fgq75haa.js";
13
- import"./index-5b6tavv3.js";
12
+ } from "./index-4mgbzgb5.js";
13
+ import"./index-52w0fvh8.js";
14
14
  import"./index-n68jx79w.js";
15
15
 
16
16
  // pkgs/@akanjs/devkit/applicationBuildRunner.ts
@@ -1,28 +1,33 @@
1
1
  // @bun
2
2
  import {
3
3
  ApplicationBuildReporter
4
- } from "./index-khpfpcsd.js";
4
+ } from "./index-48k96p55.js";
5
5
  import {
6
6
  resolveSsrPageEntriesForApp,
7
7
  WorkspaceExecutor,
8
8
  AppExecutor
9
- } from "./index-ga6hygxr.js";
9
+ } from "./index-0n9q1f23.js";
10
10
  import {
11
11
  computeRouteSeedIndex,
12
12
  saveRouteSeedIndex,
13
- CssCompiler,
13
+ ServerGraphFile,
14
14
  PagesBundleBuilder,
15
+ CsrDevBundler,
16
+ SsrDevBundler
17
+ } from "./index-dt1x62ec.js";
18
+ import"./index-52w0fvh8.js";
19
+ import {
15
20
  CsrArtifactBuilder,
21
+ CssCompiler,
16
22
  FontOptimizer,
17
23
  SsrBaseArtifactBuilder
18
- } from "./index-776sswhv.js";
19
- import"./index-5b6tavv3.js";
20
- import"./index-fgq75haa.js";
24
+ } from "./index-4mgbzgb5.js";
21
25
  import"./index-n68jx79w.js";
22
26
 
23
27
  // pkgs/@akanjs/devkit/incrementalBuilder/buildBatch.proc.ts
24
28
  import path from "path";
25
29
  import { Logger } from "akanjs/common";
30
+ import { resolveDevCsrMode } from "akanjs/server/hmr/csrDevManifest";
26
31
 
27
32
  class BuildBatch {
28
33
  #logger = new Logger("BuildBatch");
@@ -39,15 +44,23 @@ class BuildBatch {
39
44
  await this.#buildBase();
40
45
  if (this.#request.needs.includes("csr"))
41
46
  await this.#buildCsr();
42
- if (this.#request.needs.includes("pages"))
43
- await this.#buildPages();
47
+ if (this.#request.needs.includes("ssr"))
48
+ await this.#buildSsrRegistry();
44
49
  if (this.#request.needs.includes("css"))
45
50
  await this.#buildCss();
51
+ if (this.#request.needs.includes("pages"))
52
+ await this.#buildPages();
46
53
  return this.#result;
47
54
  }
48
55
  #emit(message) {
49
56
  process.send?.(message);
50
57
  }
58
+ #sentTrace() {
59
+ if (!this.#request.trace)
60
+ return;
61
+ const now = Date.now();
62
+ return { ...this.#request.trace, patchAt: now, sentAt: now };
63
+ }
51
64
  #emitStatus(phase, message) {
52
65
  this.#emit({
53
66
  type: "build-status",
@@ -81,33 +94,100 @@ class BuildBatch {
81
94
  async#buildCsr() {
82
95
  const started = Date.now();
83
96
  try {
84
- await new CsrArtifactBuilder(this.#app).build();
85
- this.#logger.verbose(`csr-rebundle ok (${Date.now() - started}ms)`);
97
+ if (resolveDevCsrMode() === "registry")
98
+ await this.#updateCsrRegistry(started);
99
+ else
100
+ await this.#rebuildCsrArtifact(started);
86
101
  this.#emitStatus("csr");
87
102
  } catch (err) {
88
103
  this.#fail("csr", "csr-rebundle", err);
89
104
  }
90
105
  }
106
+ async#rebuildCsrArtifact(started) {
107
+ await new CsrArtifactBuilder(this.#app).build();
108
+ this.#logger.verbose(`csr-rebundle ok (${Date.now() - started}ms)`);
109
+ if (this.#request.changedFiles.length === 0)
110
+ return;
111
+ this.#emit({
112
+ type: "csr-updated",
113
+ data: { generation: Date.now(), mode: "artifact", reload: true, reason: "the CSR artifact was rebuilt" }
114
+ });
115
+ }
116
+ async#updateCsrRegistry(started) {
117
+ const update = await new CsrDevBundler(this.#app).update(this.#request.changedFiles, {
118
+ announce: (announced) => this.#emit({
119
+ type: "csr-updated",
120
+ data: {
121
+ generation: announced.generation,
122
+ mode: "registry",
123
+ reload: announced.reload,
124
+ reason: announced.reason,
125
+ patchUrl: announced.patchUrl,
126
+ changedIds: announced.changedIds,
127
+ trace: this.#sentTrace()
128
+ }
129
+ })
130
+ });
131
+ if (!update) {
132
+ this.#logger.verbose(`csr-dev unchanged (${Date.now() - started}ms)`);
133
+ return;
134
+ }
135
+ this.#logger.verbose(`csr-dev generation=${update.generation} ${update.reload ? `reload (${update.reason})` : `patch modules=${update.changedIds.length}`} graph=${update.moduleCount} (${Date.now() - started}ms)`);
136
+ }
137
+ async#buildSsrRegistry() {
138
+ const started = Date.now();
139
+ try {
140
+ const bundler = new SsrDevBundler(this.#app);
141
+ const hold = await ServerGraphFile.touches(await ServerGraphFile.read(this.#request.artifactDir), this.#request.changedFiles, (file) => ServerGraphFile.clientExportsOf(file));
142
+ const update = await bundler.update(this.#request.changedFiles, {
143
+ roots: await bundler.clientEntries(),
144
+ announce: (announced) => this.#emit({
145
+ type: "ssr-updated",
146
+ data: {
147
+ generation: announced.generation,
148
+ reload: announced.reload,
149
+ reason: announced.reason,
150
+ patchUrl: announced.patchUrl,
151
+ changedIds: announced.changedIds,
152
+ trace: this.#sentTrace(),
153
+ ...announced.epoch !== undefined ? { epoch: announced.epoch } : {},
154
+ ...announced.first ? { first: true } : {},
155
+ ...hold && this.#request.changedFiles.length > 0 ? { hold, batchGeneration: this.#request.generation } : {}
156
+ }
157
+ })
158
+ });
159
+ this.#emitStatus("ssr");
160
+ this.#logger.verbose(update ? `ssr-dev generation=${update.generation} ${update.reload ? `reload (${update.reason})` : `patch modules=${update.changedIds.length}`} graph=${update.moduleCount} (${Date.now() - started}ms)` : `ssr-dev unchanged (${Date.now() - started}ms)`);
161
+ } catch (err) {
162
+ this.#fail("ssr", "ssr-dev", err);
163
+ }
164
+ }
91
165
  async#buildPages() {
92
166
  const started = Date.now();
93
167
  try {
94
168
  const pageEntries = await resolveSsrPageEntriesForApp(this.#app, await this.#app.getPageKeys());
95
169
  const seedIndex = computeRouteSeedIndex(pageEntries);
170
+ const previousGraph = await ServerGraphFile.read(this.#request.artifactDir);
96
171
  const next = await new PagesBundleBuilder(this.#app, "start", pageEntries).build();
97
172
  await saveRouteSeedIndex(this.#request.artifactDir, seedIndex);
173
+ const nextGraph = await ServerGraphFile.read(this.#request.artifactDir);
174
+ const serverTouched = await ServerGraphFile.touches(previousGraph, [...this.#request.changedFiles, ...previousGraph?.carried ?? []], (file) => nextGraph?.clientExports[file] ?? null, nextGraph);
98
175
  this.#emit({
99
176
  type: "pages-updated",
100
177
  data: {
101
178
  bundlePath: next.bundlePath,
102
179
  buildId: next.buildId,
103
180
  generation: this.#request.generation,
104
- changedFiles: this.#request.changedFiles
181
+ changedFiles: this.#request.changedFiles,
182
+ trace: this.#sentTrace(),
183
+ serverTouched
105
184
  }
106
185
  });
107
186
  this.#emitStatus("pages");
108
187
  this.#logger.verbose(`pages-rebundle ok buildId=${next.buildId} (${Date.now() - started}ms)`);
109
188
  } catch (err) {
110
189
  this.#fail("pages", "pages-rebundle", err);
190
+ await ServerGraphFile.carry(this.#request.artifactDir, this.#request.changedFiles).catch((carryError) => this.#logger.warn(`server graph carry failed; the next save may skip its RSC refresh: ${String(carryError)}`));
111
191
  }
112
192
  }
113
193
  async#buildCss() {
@@ -176,7 +256,11 @@ ${cssText}`).toString(36);
176
256
  const raw = process.argv[2];
177
257
  if (!raw)
178
258
  throw new Error("[build-batch] missing request argument");
179
- const request = JSON.parse(raw);
259
+ const parsed = JSON.parse(raw);
260
+ const request = parsed.trace ? {
261
+ ...parsed,
262
+ trace: { ...parsed.trace, workerStartAt: Math.round(performance.timeOrigin), workerAt: Date.now() }
263
+ } : parsed;
180
264
  const workspace = WorkspaceExecutor.fromRoot({
181
265
  workspaceRoot: request.workspaceRoot,
182
266
  repoName: request.repoName
@@ -184,8 +268,11 @@ ${cssText}`).toString(36);
184
268
  const app = AppExecutor.from(workspace, request.appName);
185
269
  if (request.pageKeys)
186
270
  app.setPageKeys(request.pageKeys);
271
+ const orphaned = () => process.exit(1);
272
+ process.on("disconnect", orphaned);
187
273
  const result = await new BuildBatch(request, app).run();
188
274
  process.send?.({ type: "build-batch-result", data: result });
275
+ process.off("disconnect", orphaned);
189
276
  }
190
277
  }
191
278
  await BuildBatch.main().catch((err) => {
@@ -1,27 +1,27 @@
1
1
  // @bun
2
- import"./index-5b6tavv3.js";
2
+ import"./index-52w0fvh8.js";
3
3
  import {
4
4
  GlobalConfig
5
- } from "./index-22d57v4c.js";
5
+ } from "./index-94s080qm.js";
6
6
  import {
7
7
  Workspace,
8
8
  command
9
- } from "./index-rmcw8yc8.js";
10
- import"./index-ga6hygxr.js";
9
+ } from "./index-58cyna2s.js";
10
+ import"./index-0n9q1f23.js";
11
11
  import {
12
12
  PlatformTestRun
13
- } from "./index-yjkte9aj.js";
14
- import"./index-khpfpcsd.js";
15
- import"./index-1db2cw0y.js";
16
- import"./index-jg5e15db.js";
13
+ } from "./index-56xwsgyn.js";
14
+ import"./index-48k96p55.js";
15
+ import"./index-5mm3g24t.js";
16
+ import"./index-pb10njz7.js";
17
17
  import"./index-ys6f0bvh.js";
18
18
  import"./index-7md2g9vw.js";
19
- import"./index-3t7g9e4r.js";
20
- import"./index-mgfx3mfs.js";
19
+ import"./index-2ahj896a.js";
20
+ import"./index-per2kqy9.js";
21
21
  import {
22
22
  CloudScript2
23
- } from "./index-jn07hxrr.js";
24
- import"./index-q44jbw48.js";
23
+ } from "./index-8k93esfr.js";
24
+ import"./index-860zjnr1.js";
25
25
 
26
26
  // pkgs/@akanjs/cli/cloud/cloud.command.ts
27
27
  var localRegistryUrl = () => process.env.AKAN_NPM_REGISTRY ?? "http://127.0.0.1:4873";
@@ -0,0 +1,20 @@
1
+ // @bun
2
+ import {
3
+ CloudScript2
4
+ } from "./index-8k93esfr.js";
5
+ import"./index-56xwsgyn.js";
6
+ import"./index-per2kqy9.js";
7
+ import"./index-pb10njz7.js";
8
+ import"./index-860zjnr1.js";
9
+ import"./index-5mm3g24t.js";
10
+ import"./index-ys6f0bvh.js";
11
+ import"./index-94s080qm.js";
12
+ import"./index-58cyna2s.js";
13
+ import"./index-7md2g9vw.js";
14
+ import"./index-48k96p55.js";
15
+ import"./index-0n9q1f23.js";
16
+ import"./index-2ahj896a.js";
17
+ import"./index-52w0fvh8.js";
18
+ export {
19
+ CloudScript2 as CloudScript
20
+ };
@@ -4,9 +4,9 @@ import {
4
4
  runner,
5
5
  script,
6
6
  command
7
- } from "./index-rmcw8yc8.js";
8
- import"./index-5b6tavv3.js";
9
- import"./index-ga6hygxr.js";
7
+ } from "./index-58cyna2s.js";
8
+ import"./index-52w0fvh8.js";
9
+ import"./index-0n9q1f23.js";
10
10
  import {
11
11
  akanCodeDefaultModel2,
12
12
  CodeAgentStreamPrinter2
@@ -19,7 +19,7 @@ class CodeRunner extends runner("code") {
19
19
  async serve(options, listen) {
20
20
  await import("./consoleToStderr-h5bryj94.js");
21
21
  const [{ CodeAgent }, { CodeAgentRpcHost }, { CodeAgentRpcListener }] = await Promise.all([
22
- import("./CodeAgent-0dh9fzzg.js"),
22
+ import("./CodeAgent-p65jja35.js"),
23
23
  import("./CodeAgentRpcHost-p7h6n2hp.js"),
24
24
  import("./CodeAgentRpcListener-7p7z5dd7.js")
25
25
  ]);
@@ -34,8 +34,8 @@ class CodeRunner extends runner("code") {
34
34
  }
35
35
  async tui(options, seed) {
36
36
  const [{ CodeAgent }, { CodeTui }] = await Promise.all([
37
- import("./CodeAgent-0dh9fzzg.js"),
38
- import("./CodeTui-drwdvwg9.js")
37
+ import("./CodeAgent-p65jja35.js"),
38
+ import("./CodeTui-5xr8kxx4.js")
39
39
  ]);
40
40
  const agentOptions = await CodeRunner.#agentOptions(options, false);
41
41
  let resume = options.resume;
@@ -60,7 +60,7 @@ class CodeRunner extends runner("code") {
60
60
  }
61
61
  }
62
62
  async run(prompt, options) {
63
- const { CodeAgent } = await import("./CodeAgent-0dh9fzzg.js");
63
+ const { CodeAgent } = await import("./CodeAgent-p65jja35.js");
64
64
  const agent = await CodeAgent.create(await CodeRunner.#agentOptions(options, false));
65
65
  const printer = new CodeAgentStreamPrinter2({ json: options.json, thinking: options.thinking });
66
66
  agent.on((event) => printer.print(event));
@@ -2,24 +2,24 @@
2
2
  import {
3
3
  Workspace,
4
4
  command
5
- } from "./index-rmcw8yc8.js";
6
- import"./index-5b6tavv3.js";
7
- import"./index-ga6hygxr.js";
5
+ } from "./index-58cyna2s.js";
6
+ import"./index-52w0fvh8.js";
7
+ import"./index-0n9q1f23.js";
8
8
  import"./index-hj6w4ka1.js";
9
- import"./index-yy4s1j72.js";
10
- import"./index-9629w7ns.js";
11
- import"./index-vj1cwwy5.js";
9
+ import"./index-d65fzxvd.js";
10
+ import"./index-hzy4pe24.js";
11
+ import"./index-7yxndzea.js";
12
12
  import"./index-ys6f0bvh.js";
13
- import"./index-0bq14vr1.js";
14
- import"./index-ya5qbmyg.js";
15
- import"./index-rnt66vym.js";
16
- import"./index-tgjy8xf3.js";
17
- import"./index-wp43xrjv.js";
18
- import"./index-pp54p5zk.js";
19
- import"./index-m0ms3n1c.js";
13
+ import"./index-zzvvc845.js";
14
+ import"./index-t02g6dpn.js";
15
+ import"./index-v4hnkqz9.js";
16
+ import"./index-zazvn45w.js";
17
+ import"./index-6dt6zft6.js";
18
+ import"./index-xfgdmm5d.js";
19
+ import"./index-da72pfdv.js";
20
20
  import {
21
21
  ContextScript
22
- } from "./index-2gh9sndr.js";
22
+ } from "./index-50rq2qms.js";
23
23
 
24
24
  // pkgs/@akanjs/cli/context/context.command.ts
25
25
  class ContextCommand extends command("context", [ContextScript], ({ public: target }) => ({
@@ -0,0 +1,21 @@
1
+ // @bun
2
+ import {
3
+ ContextRunner2
4
+ } from "./index-7yxndzea.js";
5
+ import"./index-da72pfdv.js";
6
+ import"./index-xfgdmm5d.js";
7
+ import"./index-6dt6zft6.js";
8
+ import"./index-t02g6dpn.js";
9
+ import"./index-zazvn45w.js";
10
+ import"./index-v4hnkqz9.js";
11
+ import"./index-ys6f0bvh.js";
12
+ import"./index-hzy4pe24.js";
13
+ import"./index-d65fzxvd.js";
14
+ import"./index-zzvvc845.js";
15
+ import"./index-58cyna2s.js";
16
+ import"./index-0n9q1f23.js";
17
+ import"./index-hj6w4ka1.js";
18
+ import"./index-52w0fvh8.js";
19
+ export {
20
+ ContextRunner2 as ContextRunner
21
+ };
@@ -1,8 +1,8 @@
1
1
  // @bun
2
2
  import {
3
3
  TypeScriptDependencyScanner2
4
- } from "./index-3t7g9e4r.js";
5
- import"./index-5b6tavv3.js";
4
+ } from "./index-2ahj896a.js";
5
+ import"./index-52w0fvh8.js";
6
6
  export {
7
7
  TypeScriptDependencyScanner2 as TypeScriptDependencyScanner
8
8
  };
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  getDirname2,
4
4
  FileSys2
5
- } from "./index-5b6tavv3.js";
5
+ } from "./index-52w0fvh8.js";
6
6
  export {
7
7
  FileSys2 as FileSys,
8
8
  getDirname2 as getDirname
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  script,
4
4
  command
5
- } from "./index-rmcw8yc8.js";
6
- import"./index-5b6tavv3.js";
7
- import"./index-ga6hygxr.js";
5
+ } from "./index-58cyna2s.js";
6
+ import"./index-52w0fvh8.js";
7
+ import"./index-0n9q1f23.js";
8
8
  import {
9
9
  Prompter2
10
- } from "./index-0bq14vr1.js";
10
+ } from "./index-zzvvc845.js";
11
11
 
12
12
  // pkgs/@akanjs/cli/guideline/guideline.script.ts
13
13
  import { Logger } from "akanjs/common";
@@ -15,6 +15,13 @@ for. `Load` scopes, the route, and the live keys complete the context. The React
15
15
  apps and libs never import it directly (`no-import-external-library`) — everything reaches them through `st.*` and
16
16
  `akanjs/ui`.
17
17
 
18
+ **Mounted is not published: on a CSR stack only the current page is.** The page kept under the current one for a
19
+ swipe back stays mounted and live, and its declarations stay registered, but its tools, resources, guides and
20
+ `st.use` keys are parked until it is current again — the agent sees the screen the user sees, never two. Each page
21
+ container renders `use-agentic`'s `<AgentActivity active>` for this; a parked registration shadows nothing, two
22
+ pages declaring one name never clash, and a registry kept outside the surface reads the same gate through
23
+ `useAgentGate()`, as the store's live keys do.
24
+
18
25
  ## Mounting The Chat
19
26
  - **Mount `<Agent.Chat />` once in a layout.** That is the floating chat, the approval card, and the client-side
20
27
  loop. The default runner drives `runAgentTurn`, which the **framework serves on every app** — no lib to mount,
@@ -1002,11 +1002,13 @@ actions and state (see `<model>.store.ts` above).
1002
1002
  other file. The previous session is kept beside it as `dev.prev.log`. Hand somebody — or an agent — the
1003
1003
  path rather than a paste: it costs one line instead of a transcript, and it can be re-read after a fix.
1004
1004
  In the view, `y` copies the lines the filters have already narrowed and `Y` copies the path.
1005
- - **How many apps boot at once is the machine's answer, not a constant.** A cold boot build is the builder's
1006
- RSS peak (~900MB per app), so the default wave is what memory and cores allow — half the memory budget
1007
- divided by that peak, and one app per four cores — which boots a laptop's apps together and still staggers
1008
- them inside a small container. The session says which in one line. `--concurrency <n>` overrides it, and
1009
- `AKAN_MEMORY_LIMIT` lowers the budget it derives from.
1005
+ - **How many apps boot at once is the machine's answer, not a constant.** A cold boot is an app's RSS peak
1006
+ (~1.8GB per app, most of it the build worker — the base build, then the SSR registry's), so the default wave
1007
+ is what memory and cores allow — half the memory budget divided by that peak, and one app per four cores —
1008
+ which boots a laptop's apps together and still staggers them inside a small container. The session says
1009
+ which in one line. The next wave starts once an app serves and its boot builds have settled, or 30 seconds
1010
+ after it serves, while the app shows as ready — and `--open` opens it — as soon as it serves.
1011
+ `--concurrency <n>` overrides the wave size, and `AKAN_MEMORY_LIMIT` lowers the budget it derives from.
1010
1012
  - `--kill` frees the dev ports first — it resolves each port's listener, walks up to the top of that akan dev
1011
1013
  tree and signals it, so another checkout's server or a stale orphan on the same port is reclaimed. A holder
1012
1014
  that is not recognisably an akan process is reported and left alone.