@akanjs/cli 3.0.0-beta.15 → 3.0.0-beta.17

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 (61) hide show
  1. package/.build-stamp +1 -1
  2. package/{CodeAgent-d3wvbq8q.js → CodeAgent-gjqnc2mg.js} +2 -2
  3. package/{CodeTui-6c9a2wtk.js → CodeTui-nd9hqvrw.js} +196 -11
  4. package/{agent.command-9cg8m87z.js → agent.command-n664dtcv.js} +5 -5
  5. package/akanCode.js +9 -9
  6. package/{application.command-x75men32.js → application.command-t5542jte.js} +5 -5
  7. package/{applicationBuildRunner-d3702f1w.js → applicationBuildRunner-x4gbfn7y.js} +2 -2
  8. package/{applicationReleasePackager-2kdyj3te.js → applicationReleasePackager-z61ep017.js} +1 -1
  9. package/buildBatch.proc.js +2 -2
  10. package/{capacitorApp-qk975zyz.js → capacitorApp-shv3ajh5.js} +2 -2
  11. package/{cloud.command-a09wggfq.js → cloud.command-dk5tj39k.js} +8 -8
  12. package/{cloud.script-qd3hpybf.js → cloud.script-ch3xrw3s.js} +8 -8
  13. package/{code.command-ca7rpmez.js → code.command-88sebgnn.js} +7 -7
  14. package/{context.command-9kbm0527.js → context.command-pqsm5jrk.js} +13 -13
  15. package/context.runner-bys6ykcp.js +22 -0
  16. package/{devTui-v19fbnpk.js → devTui-gy6mendg.js} +1 -1
  17. package/{devTuiView-pa63jrjq.js → devTuiView-y1548wy6.js} +1 -1
  18. package/{guideline.command-qvrh5pnx.js → guideline.command-rpc2emw8.js} +2 -2
  19. package/incrementalBuilder.proc.js +1 -1
  20. package/{index-658xafm1.js → index-2pm1j01n.js} +3 -3
  21. package/{index-erzcytap.js → index-2sq06vv0.js} +171 -201
  22. package/{index-1sggq0m8.js → index-3cymrzsb.js} +1 -1
  23. package/{index-ea1smknd.js → index-3mg4h788.js} +2 -2
  24. package/{index-bchkysja.js → index-4cvpzkq6.js} +3 -3
  25. package/{index-egt4vfgb.js → index-4n4821gp.js} +4 -4
  26. package/{index-0qvq9aeb.js → index-57p9p179.js} +3 -3
  27. package/{index-gca9y01h.js → index-6na0sd2b.js} +1 -1
  28. package/{index-sxg87a8f.js → index-bzakk0c2.js} +160 -96
  29. package/{index-bzjnp9ap.js → index-g9zghs4h.js} +10 -10
  30. package/{index-wfwknnje.js → index-jwrpsrg3.js} +8 -6
  31. package/{index-5hy11qaq.js → index-kvzjda3v.js} +3 -3
  32. package/{index-91brpnzb.js → index-n8kt2wh6.js} +5 -5
  33. package/{index-chp5gqmm.js → index-ns128c4q.js} +8 -8
  34. package/{index-va2je2qm.js → index-p0tew3fq.js} +15 -4
  35. package/{index-p1j0cyvd.js → index-p4p9t45x.js} +3 -0
  36. package/{index-f4gpcp98.js → index-qh7brn20.js} +1 -1
  37. package/{index-1p146w4s.js → index-qhtj9y6j.js} +1 -1
  38. package/index-qt8dqgnf.js +250 -0
  39. package/{index-84b080zh.js → index-sn7dnzq4.js} +1 -1
  40. package/{index-d35a8vc0.js → index-te0y1c0m.js} +4 -4
  41. package/{index-3dmebxnk.js → index-v17gj504.js} +2 -2
  42. package/{index-v1y3cx0k.js → index-vpx68e4x.js} +2 -2
  43. package/{index-v156f836.js → index-xjc7gg65.js} +4 -4
  44. package/{index-3hr7cpy1.js → index-zn8qgeqx.js} +1 -1
  45. package/index.js +21 -21
  46. package/{library.command-n89re6cx.js → library.command-m8p2r1dh.js} +3 -3
  47. package/{localRegistry.command-1mmnegph.js → localRegistry.command-yppdqrxv.js} +7 -7
  48. package/{module.command-4m82zgfp.js → module.command-mfzvqt0n.js} +5 -5
  49. package/{package.command-9dv0p6zq.js → package.command-cgp2p2v5.js} +3 -3
  50. package/package.json +8 -3
  51. package/{page.command-q86b0m0z.js → page.command-taenb02b.js} +3 -3
  52. package/{primitive.command-kaneasq6.js → primitive.command-7kpncmkk.js} +6 -6
  53. package/{quality.command-sgapx315.js → quality.command-1ar94hrw.js} +2 -2
  54. package/{repair.command-efc5gdbq.js → repair.command-n08t6j8p.js} +5 -5
  55. package/{scalar.command-e2rpkhqy.js → scalar.command-mq8qfp4t.js} +4 -4
  56. package/{subspace.command-005rz1x6.js → subspace.command-jqv5n79w.js} +4 -4
  57. package/{tunnel.command-66j9estx.js → tunnel.command-ht2es78c.js} +2 -2
  58. package/{workflow.command-z1xcm4c7.js → workflow.command-tvz4nm9n.js} +9 -9
  59. package/{workspace.command-4ahrhp3k.js → workspace.command-txv1yv5e.js} +20 -20
  60. package/context.runner-wtqpw7mh.js +0 -22
  61. package/index-x7g1qzpt.js +0 -121
@@ -0,0 +1,250 @@
1
+ // @bun
2
+ // pkgs/@akanjs/devkit/codeAgent/agent/SubagentPool.ts
3
+ import { codeAgentReadOnlyBuiltins } from "akanjs/common";
4
+ import { Type } from "typebox";
5
+ var maxResultChars = 8000;
6
+ var tickMs = 1000;
7
+
8
+ class SubagentPool2 {
9
+ static kinds = {
10
+ explore: {
11
+ readOnly: true,
12
+ desc: "reads, searches and reports back. It cannot write a file or run a command."
13
+ },
14
+ code: {
15
+ readOnly: false,
16
+ desc: "makes the change itself, with the same tools as this session."
17
+ }
18
+ };
19
+ static defaultKind = "explore";
20
+ #options;
21
+ #children = new Map;
22
+ #running = 0;
23
+ #spent = 0;
24
+ #ticker = null;
25
+ constructor(options) {
26
+ this.#options = options;
27
+ }
28
+ static extensionFor(options) {
29
+ if (!options.parent.tools.subagent)
30
+ return;
31
+ if (options.depth >= options.parent.tools.subagent.maxDepth)
32
+ return;
33
+ const pool = new SubagentPool2(options);
34
+ return { name: "akan-subagent", factory: (pi) => pool.#register(pi) };
35
+ }
36
+ static toolName = "task";
37
+ #register(pi) {
38
+ pi.registerTool({
39
+ name: SubagentPool2.toolName,
40
+ label: "Task",
41
+ description: "Run a focused sub-agent on one self-contained question and get back its answer. Use it for searching and reading that would otherwise fill this conversation \u2014 the sub-agent's own reading does not come back, only its answer. Give it everything it needs: it cannot see this conversation.",
42
+ promptSnippet: "task: run a sub-agent on one self-contained question and get back only its answer",
43
+ parameters: Type.Object({
44
+ description: Type.String({ description: "Three to five words naming the task, for the activity log." }),
45
+ prompt: Type.String({
46
+ description: "The complete instruction. The sub-agent sees nothing of this conversation."
47
+ }),
48
+ type: Type.Optional(Type.Union(Object.entries(SubagentPool2.kinds).map(([kind, spec]) => Type.Literal(kind, { description: spec.desc })), { description: `What the sub-agent may do. Defaults to ${SubagentPool2.defaultKind}.` }))
49
+ }),
50
+ execute: async (id, params, signal) => {
51
+ const kind = params.type ?? SubagentPool2.defaultKind;
52
+ const refusal = this.#refuse();
53
+ if (refusal)
54
+ return { content: [{ type: "text", text: refusal }], details: undefined, isError: true };
55
+ this.#running += 1;
56
+ this.#children.set(id, { kind, description: params.description, startedAt: Date.now() });
57
+ this.#report();
58
+ this.#options.onNotice?.(`${kind} sub-agent \xB7 ${params.description}`);
59
+ try {
60
+ const text = await this.#run(id, kind, params.prompt, signal);
61
+ return { content: [{ type: "text", text }], details: undefined };
62
+ } finally {
63
+ this.#running -= 1;
64
+ this.#children.delete(id);
65
+ this.#report();
66
+ }
67
+ }
68
+ });
69
+ }
70
+ #refuse() {
71
+ const budget = this.#options.parent.tools.subagent;
72
+ if (!budget)
73
+ return "Sub-agents are disabled by this profile.";
74
+ if (this.#running >= budget.maxConcurrent)
75
+ return `Too many sub-agents are already running (limit ${budget.maxConcurrent}). Wait for one to finish.`;
76
+ if (this.#spent >= budget.budget)
77
+ return `The sub-agent token budget (${budget.budget}) is spent. Do the rest of this work yourself.`;
78
+ return;
79
+ }
80
+ static childOf(parent, kind) {
81
+ const budget = parent.tools.subagent;
82
+ return {
83
+ ...parent,
84
+ name: `${parent.name}:${kind}`,
85
+ tools: {
86
+ ...parent.tools,
87
+ builtin: SubagentPool2.kinds[kind].readOnly ? parent.tools.builtin.filter((tool) => codeAgentReadOnlyBuiltins.includes(tool)) : parent.tools.builtin,
88
+ subagent: budget ? { ...budget, maxDepth: budget.maxDepth } : false
89
+ },
90
+ session: { store: "memory", crossSession: false },
91
+ ui: { canPrompt: false },
92
+ context: { projectFiles: false, skills: parent.context.skills }
93
+ };
94
+ }
95
+ #report() {
96
+ const onAgents = this.#options.onAgents;
97
+ if (!onAgents)
98
+ return;
99
+ onAgents([...this.#children].map(([id, child]) => ({
100
+ id,
101
+ kind: child.kind,
102
+ description: child.description,
103
+ startedAt: child.startedAt,
104
+ tokens: child.agent?.tokensUsed ?? 0
105
+ })));
106
+ if (this.#children.size && !this.#ticker) {
107
+ this.#ticker = setInterval(() => this.#report(), tickMs);
108
+ this.#ticker.unref?.();
109
+ } else if (!this.#children.size && this.#ticker) {
110
+ clearInterval(this.#ticker);
111
+ this.#ticker = null;
112
+ }
113
+ }
114
+ async#run(id, kind, prompt, signal) {
115
+ const { CodeAgent } = await import("./CodeAgent-gjqnc2mg.js");
116
+ const budget = this.#options.parent.tools.subagent;
117
+ const child = SubagentPool2.childOf(this.#options.parent, kind);
118
+ const agent = await CodeAgent.create({
119
+ workspace: this.#options.workspace,
120
+ cwd: this.#options.cwd,
121
+ profile: child,
122
+ apps: [],
123
+ depth: this.#options.depth + 1
124
+ });
125
+ const running = this.#children.get(id);
126
+ if (running)
127
+ running.agent = agent;
128
+ const abort = () => void agent.abort();
129
+ signal?.addEventListener("abort", abort, { once: true });
130
+ try {
131
+ let answer = "";
132
+ agent.on((event) => {
133
+ if (event.type === "message" && event.role === "assistant")
134
+ answer = event.text;
135
+ });
136
+ await agent.prompt(prompt);
137
+ await agent.waitForIdle();
138
+ this.#spent += agent.tokensUsed;
139
+ const ceiling = budget ? budget.budget : 0;
140
+ this.#options.onNotice?.(`${kind} sub-agent finished, ${agent.tokensUsed} tokens (${this.#spent} of ${ceiling} spent)`);
141
+ return answer.length > maxResultChars ? `${answer.slice(0, maxResultChars)}
142
+ \u2026(truncated)` : answer || "(no answer)";
143
+ } finally {
144
+ signal?.removeEventListener("abort", abort);
145
+ agent.dispose();
146
+ }
147
+ }
148
+ }
149
+
150
+ // pkgs/@akanjs/devkit/codeAgent/agent/akanCodePaths.ts
151
+ import { existsSync } from "fs";
152
+ import { homedir } from "os";
153
+ import path from "path";
154
+ var builtinSkillsDir = () => {
155
+ const candidates = [path.join(import.meta.dir, "skills"), path.join(import.meta.dir, "..", "skills")];
156
+ return candidates.find((candidate) => existsSync(candidate));
157
+ };
158
+ var akanCodePaths2 = {
159
+ workspaceDir: (workspaceRoot) => path.join(workspaceRoot, ".akan", "code"),
160
+ sessionsDir: (workspaceRoot) => path.join(workspaceRoot, ".akan", "code", "sessions"),
161
+ extensionsDir: (workspaceRoot) => path.join(workspaceRoot, ".akan", "code", "extensions"),
162
+ skillsDir: (workspaceRoot) => path.join(workspaceRoot, ".akan", "code", "skills"),
163
+ mailDir: (workspaceRoot) => path.join(workspaceRoot, ".akan", "code", "mail"),
164
+ builtinSkillsDir,
165
+ mcpFile: (workspaceRoot) => path.join(workspaceRoot, ".akan", "code", "mcp.json"),
166
+ globalDir: () => path.join(homedir(), ".akan", "code"),
167
+ authFile: () => path.join(homedir(), ".akan", "code", "auth.json"),
168
+ modelsFile: () => path.join(homedir(), ".akan", "code", "models.json")
169
+ };
170
+
171
+ // pkgs/@akanjs/devkit/codeAgent/tools/McpServerConfig.ts
172
+ import { existsSync as existsSync2, mkdirSync, readFileSync, writeFileSync } from "fs";
173
+ import path2 from "path";
174
+ class McpServerConfig {
175
+ static file(workspaceRoot) {
176
+ return akanCodePaths2.mcpFile(workspaceRoot);
177
+ }
178
+ static read(workspaceRoot) {
179
+ const entries = Object.entries(McpServerConfig.#parse(workspaceRoot).map);
180
+ return entries.filter(([, entry]) => !entry.disabled).map(([name, entry]) => McpServerConfig.#refOf(name, entry));
181
+ }
182
+ static declared(workspaceRoot) {
183
+ return Object.entries(McpServerConfig.#parse(workspaceRoot).map).map(([name, entry]) => ({
184
+ ref: McpServerConfig.#refOf(name, entry),
185
+ disabled: !!entry.disabled
186
+ }));
187
+ }
188
+ static add(workspaceRoot, name, target) {
189
+ const [head, ...rest] = target;
190
+ if (!head)
191
+ throw new Error("Give the server a command to run, or a url to reach.");
192
+ const entry = /^https?:\/\//.test(head) ? { url: head } : { command: head, args: rest };
193
+ const { file, key, map } = McpServerConfig.#parse(workspaceRoot);
194
+ const next = { ...map, [name]: entry };
195
+ mkdirSync(path2.dirname(file), { recursive: true });
196
+ writeFileSync(file, `${JSON.stringify({ [key]: next }, null, 2)}
197
+ `);
198
+ return McpServerConfig.#refOf(name, entry);
199
+ }
200
+ static remove(workspaceRoot, name) {
201
+ const { file, key, map } = McpServerConfig.#parse(workspaceRoot);
202
+ if (!(name in map))
203
+ return false;
204
+ const next = { ...map };
205
+ delete next[name];
206
+ writeFileSync(file, `${JSON.stringify({ [key]: next }, null, 2)}
207
+ `);
208
+ return true;
209
+ }
210
+ static #refOf(name, entry) {
211
+ return {
212
+ name,
213
+ transport: entry.url ? "http" : "stdio",
214
+ ...entry.command ? { command: entry.command } : {},
215
+ ...entry.args ? { args: entry.args } : {},
216
+ ...entry.url ? { url: entry.url } : {},
217
+ ...entry.env ? { env: entry.env } : {}
218
+ };
219
+ }
220
+ static targetOf(ref) {
221
+ return ref.url ?? [ref.command, ...ref.args ?? []].filter(Boolean).join(" ");
222
+ }
223
+ static problem(workspaceRoot) {
224
+ const file = McpServerConfig.file(workspaceRoot);
225
+ if (!existsSync2(file))
226
+ return;
227
+ try {
228
+ JSON.parse(readFileSync(file, "utf8"));
229
+ return;
230
+ } catch (error) {
231
+ return `${file} is not valid JSON \u2014 ${String(error)}`;
232
+ }
233
+ }
234
+ static #parse(workspaceRoot) {
235
+ const file = McpServerConfig.file(workspaceRoot);
236
+ const empty = { file, key: "mcpServers", map: {} };
237
+ if (!existsSync2(file))
238
+ return empty;
239
+ try {
240
+ const parsed = JSON.parse(readFileSync(file, "utf8"));
241
+ if (parsed.servers && !parsed.mcpServers)
242
+ return { file, key: "servers", map: parsed.servers };
243
+ return { ...empty, map: parsed.mcpServers ?? {} };
244
+ } catch {
245
+ return empty;
246
+ }
247
+ }
248
+ }
249
+
250
+ export { SubagentPool2, akanCodePaths2, McpServerConfig };
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  AppInfo
4
- } from "./index-p1j0cyvd.js";
4
+ } from "./index-p4p9t45x.js";
5
5
 
6
6
  // pkgs/@akanjs/devkit/slicePlanner.ts
7
7
  class SlicePlanner {
@@ -1,12 +1,12 @@
1
1
  // @bun
2
2
  import {
3
3
  script
4
- } from "./index-gca9y01h.js";
4
+ } from "./index-6na0sd2b.js";
5
5
  import {
6
6
  AppExecutor,
7
7
  LibExecutor,
8
8
  ModuleExecutor
9
- } from "./index-p1j0cyvd.js";
9
+ } from "./index-p4p9t45x.js";
10
10
  import {
11
11
  compactDiagnostics,
12
12
  createPrimitiveWriteReport,
@@ -39,10 +39,10 @@ import {
39
39
  hasSignalFactoryEntry,
40
40
  insertSignalFactoryEntry,
41
41
  addFieldUiPolicyForType
42
- } from "./index-1p146w4s.js";
42
+ } from "./index-qhtj9y6j.js";
43
43
  import {
44
44
  ModuleScript
45
- } from "./index-v156f836.js";
45
+ } from "./index-xjc7gg65.js";
46
46
 
47
47
  // pkgs/@akanjs/cli/primitive/primitive.script.ts
48
48
  import { capitalize } from "akanjs/common";
@@ -7,7 +7,7 @@ import {
7
7
  isScannedRootEntry,
8
8
  AppExecutor,
9
9
  LibExecutor
10
- } from "./index-p1j0cyvd.js";
10
+ } from "./index-p4p9t45x.js";
11
11
  import {
12
12
  FileSys
13
13
  } from "./index-q0y2jq9j.js";
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  workflowRunArtifactPath,
21
21
  workflowSyncDir
22
- } from "./index-1p146w4s.js";
22
+ } from "./index-qhtj9y6j.js";
23
23
 
24
24
  // pkgs/@akanjs/devkit/akanContext.ts
25
25
  import { readdir } from "fs/promises";
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  runner,
4
4
  script
5
- } from "./index-gca9y01h.js";
5
+ } from "./index-6na0sd2b.js";
6
6
  import {
7
7
  generatedFilesForSync,
8
8
  createPassedPrimitiveReport,
9
9
  scalarChangedFiles
10
- } from "./index-1p146w4s.js";
10
+ } from "./index-qhtj9y6j.js";
11
11
  import {
12
12
  pluralizeName
13
13
  } from "./index-nz8prx9g.js";
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  runner,
4
4
  script
5
- } from "./index-gca9y01h.js";
5
+ } from "./index-6na0sd2b.js";
6
6
  import {
7
7
  ModuleExecutor
8
- } from "./index-p1j0cyvd.js";
8
+ } from "./index-p4p9t45x.js";
9
9
  import {
10
10
  sourceFile,
11
11
  moduleSourcePaths,
@@ -13,10 +13,10 @@ import {
13
13
  createPassedPrimitiveReport,
14
14
  bilingualLabelForField,
15
15
  bilingualDescriptionForField
16
- } from "./index-1p146w4s.js";
16
+ } from "./index-qhtj9y6j.js";
17
17
  import {
18
18
  PageScript
19
- } from "./index-f4gpcp98.js";
19
+ } from "./index-qh7brn20.js";
20
20
  import {
21
21
  pluralizeName
22
22
  } from "./index-nz8prx9g.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  AsyncDefaultExportDetector,
4
4
  resolveSsrPageEntriesForApp
5
- } from "./index-p1j0cyvd.js";
5
+ } from "./index-p4p9t45x.js";
6
6
  import {
7
7
  BarrelAnalyzer,
8
8
  createBarrelImportsPlugin,
package/index.js CHANGED
@@ -4,9 +4,9 @@ import {
4
4
  getTargetMetas,
5
5
  getTargetCommandNames,
6
6
  runCommands
7
- } from "./index-gca9y01h.js";
7
+ } from "./index-6na0sd2b.js";
8
8
  import"./index-q0y2jq9j.js";
9
- import"./index-p1j0cyvd.js";
9
+ import"./index-p4p9t45x.js";
10
10
  import"./index-6wwzs1bc.js";
11
11
 
12
12
  // pkgs/@akanjs/cli/commandManifest.ts
@@ -14,25 +14,25 @@ import path from "path";
14
14
 
15
15
  // pkgs/@akanjs/cli/commandModules.ts
16
16
  var commandModules = {
17
- workspace: async () => (await import("./workspace.command-4ahrhp3k.js")).WorkspaceCommand,
18
- agent: async () => (await import("./agent.command-9cg8m87z.js")).AgentCommand,
19
- code: async () => (await import("./code.command-ca7rpmez.js")).CodeCommand,
20
- application: async () => (await import("./application.command-x75men32.js")).ApplicationCommand,
21
- library: async () => (await import("./library.command-n89re6cx.js")).LibraryCommand,
22
- localRegistry: async () => (await import("./localRegistry.command-1mmnegph.js")).LocalRegistryCommand,
23
- package: async () => (await import("./package.command-9dv0p6zq.js")).PackageCommand,
24
- module: async () => (await import("./module.command-4m82zgfp.js")).ModuleCommand,
25
- page: async () => (await import("./page.command-q86b0m0z.js")).PageCommand,
26
- context: async () => (await import("./context.command-9kbm0527.js")).ContextCommand,
27
- cloud: async () => (await import("./cloud.command-a09wggfq.js")).CloudCommand,
28
- subspace: async () => (await import("./subspace.command-005rz1x6.js")).SubspaceCommand,
29
- guideline: async () => (await import("./guideline.command-qvrh5pnx.js")).GuidelineCommand,
30
- scalar: async () => (await import("./scalar.command-e2rpkhqy.js")).ScalarCommand,
31
- primitive: async () => (await import("./primitive.command-kaneasq6.js")).PrimitiveCommand,
32
- quality: async () => (await import("./quality.command-sgapx315.js")).QualityCommand,
33
- repair: async () => (await import("./repair.command-efc5gdbq.js")).RepairCommand,
34
- workflow: async () => (await import("./workflow.command-z1xcm4c7.js")).WorkflowCommand,
35
- tunnel: async () => (await import("./tunnel.command-66j9estx.js")).TunnelCommand
17
+ workspace: async () => (await import("./workspace.command-txv1yv5e.js")).WorkspaceCommand,
18
+ agent: async () => (await import("./agent.command-n664dtcv.js")).AgentCommand,
19
+ code: async () => (await import("./code.command-88sebgnn.js")).CodeCommand,
20
+ application: async () => (await import("./application.command-t5542jte.js")).ApplicationCommand,
21
+ library: async () => (await import("./library.command-m8p2r1dh.js")).LibraryCommand,
22
+ localRegistry: async () => (await import("./localRegistry.command-yppdqrxv.js")).LocalRegistryCommand,
23
+ package: async () => (await import("./package.command-cgp2p2v5.js")).PackageCommand,
24
+ module: async () => (await import("./module.command-mfzvqt0n.js")).ModuleCommand,
25
+ page: async () => (await import("./page.command-taenb02b.js")).PageCommand,
26
+ context: async () => (await import("./context.command-pqsm5jrk.js")).ContextCommand,
27
+ cloud: async () => (await import("./cloud.command-dk5tj39k.js")).CloudCommand,
28
+ subspace: async () => (await import("./subspace.command-jqv5n79w.js")).SubspaceCommand,
29
+ guideline: async () => (await import("./guideline.command-rpc2emw8.js")).GuidelineCommand,
30
+ scalar: async () => (await import("./scalar.command-mq8qfp4t.js")).ScalarCommand,
31
+ primitive: async () => (await import("./primitive.command-7kpncmkk.js")).PrimitiveCommand,
32
+ quality: async () => (await import("./quality.command-1ar94hrw.js")).QualityCommand,
33
+ repair: async () => (await import("./repair.command-n08t6j8p.js")).RepairCommand,
34
+ workflow: async () => (await import("./workflow.command-tvz4nm9n.js")).WorkflowCommand,
35
+ tunnel: async () => (await import("./tunnel.command-ht2es78c.js")).TunnelCommand
36
36
  };
37
37
  var commandModuleIds = Object.keys(commandModules);
38
38
 
@@ -3,13 +3,13 @@ import {
3
3
  Lib,
4
4
  Workspace,
5
5
  command
6
- } from "./index-gca9y01h.js";
6
+ } from "./index-6na0sd2b.js";
7
7
  import"./index-q0y2jq9j.js";
8
- import"./index-p1j0cyvd.js";
8
+ import"./index-p4p9t45x.js";
9
9
  import"./index-6wwzs1bc.js";
10
10
  import {
11
11
  LibraryScript
12
- } from "./index-ea1smknd.js";
12
+ } from "./index-3mg4h788.js";
13
13
 
14
14
  // pkgs/@akanjs/cli/library/library.command.ts
15
15
  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-gca9y01h.js";
7
+ } from "./index-6na0sd2b.js";
8
8
  import"./index-q0y2jq9j.js";
9
9
  import {
10
10
  PkgExecutor
11
- } from "./index-p1j0cyvd.js";
11
+ } from "./index-p4p9t45x.js";
12
12
  import"./index-6wwzs1bc.js";
13
13
  import {
14
14
  ApplicationScript
15
- } from "./index-chp5gqmm.js";
16
- import"./index-ea1smknd.js";
15
+ } from "./index-ns128c4q.js";
16
+ import"./index-3mg4h788.js";
17
17
  import"./index-hwkygn9s.js";
18
18
  import"./index-7md2g9vw.js";
19
19
  import"./index-myj01w9r.js";
20
20
  import {
21
21
  getNpmRegistryUrl,
22
22
  CloudRunner
23
- } from "./index-0qvq9aeb.js";
23
+ } from "./index-57p9p179.js";
24
24
  import"./index-kcxmv48c.js";
25
25
  import {
26
26
  PackageScript
27
- } from "./index-va2je2qm.js";
28
- import"./index-84b080zh.js";
27
+ } from "./index-p0tew3fq.js";
28
+ import"./index-sn7dnzq4.js";
29
29
 
30
30
  // pkgs/@akanjs/cli/localRegistry/localRegistry.runner.ts
31
31
  import { mkdir, rm } from "fs/promises";
@@ -3,17 +3,17 @@ import {
3
3
  Sys,
4
4
  Module,
5
5
  command
6
- } from "./index-gca9y01h.js";
6
+ } from "./index-6na0sd2b.js";
7
7
  import"./index-q0y2jq9j.js";
8
- import"./index-p1j0cyvd.js";
8
+ import"./index-p4p9t45x.js";
9
9
  import"./index-6wwzs1bc.js";
10
10
  import {
11
11
  renderPrimitiveReport
12
- } from "./index-1p146w4s.js";
13
- import"./index-f4gpcp98.js";
12
+ } from "./index-qhtj9y6j.js";
13
+ import"./index-qh7brn20.js";
14
14
  import {
15
15
  ModuleScript
16
- } from "./index-v156f836.js";
16
+ } from "./index-xjc7gg65.js";
17
17
 
18
18
  // pkgs/@akanjs/cli/module/module.command.ts
19
19
  import { Logger, lowerlize } from "akanjs/common";
@@ -3,14 +3,14 @@ import {
3
3
  Pkg,
4
4
  Workspace,
5
5
  command
6
- } from "./index-gca9y01h.js";
6
+ } from "./index-6na0sd2b.js";
7
7
  import"./index-q0y2jq9j.js";
8
- import"./index-p1j0cyvd.js";
8
+ import"./index-p4p9t45x.js";
9
9
  import"./index-6wwzs1bc.js";
10
10
  import"./index-kcxmv48c.js";
11
11
  import {
12
12
  PackageScript
13
- } from "./index-va2je2qm.js";
13
+ } from "./index-p0tew3fq.js";
14
14
 
15
15
  // pkgs/@akanjs/cli/package/package.command.ts
16
16
  class PackageCommand extends command("package", [PackageScript], ({ public: target }) => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akanjs/cli",
3
- "version": "3.0.0-beta.15",
3
+ "version": "3.0.0-beta.17",
4
4
  "sourceType": "module",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -31,11 +31,16 @@
31
31
  "./package.json": "./package.json"
32
32
  },
33
33
  "dependencies": {
34
- "@earendil-works/pi-coding-agent": "0.80.6",
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",
35
40
  "@inquirer/prompts": "^8.4.3",
36
41
  "@tailwindcss/node": "^4.3.0",
37
42
  "@trapezedev/project": "^7.1.4",
38
- "akanjs": "3.0.0-beta.15",
43
+ "akanjs": "3.0.0-beta.17",
39
44
  "chalk": "^5.6.2",
40
45
  "commander": "^14.0.3",
41
46
  "dayjs": "^1.11.20",
@@ -3,13 +3,13 @@ import {
3
3
  App,
4
4
  Module,
5
5
  command
6
- } from "./index-gca9y01h.js";
6
+ } from "./index-6na0sd2b.js";
7
7
  import"./index-q0y2jq9j.js";
8
- import"./index-p1j0cyvd.js";
8
+ import"./index-p4p9t45x.js";
9
9
  import"./index-6wwzs1bc.js";
10
10
  import {
11
11
  PageScript
12
- } from "./index-f4gpcp98.js";
12
+ } from "./index-qh7brn20.js";
13
13
 
14
14
  // pkgs/@akanjs/cli/page/page.command.ts
15
15
  class PageCommand extends command("page", [PageScript], ({ public: target }) => ({
@@ -2,18 +2,18 @@
2
2
  import {
3
3
  Workspace,
4
4
  command
5
- } from "./index-gca9y01h.js";
5
+ } from "./index-6na0sd2b.js";
6
6
  import"./index-q0y2jq9j.js";
7
- import"./index-p1j0cyvd.js";
7
+ import"./index-p4p9t45x.js";
8
8
  import"./index-6wwzs1bc.js";
9
9
  import {
10
10
  renderPrimitiveReport
11
- } from "./index-1p146w4s.js";
12
- import"./index-f4gpcp98.js";
13
- import"./index-v156f836.js";
11
+ } from "./index-qhtj9y6j.js";
12
+ import"./index-qh7brn20.js";
13
+ import"./index-xjc7gg65.js";
14
14
  import {
15
15
  PrimitiveScript
16
- } from "./index-d35a8vc0.js";
16
+ } from "./index-te0y1c0m.js";
17
17
 
18
18
  // pkgs/@akanjs/cli/primitive/primitive.command.ts
19
19
  import { Logger } from "akanjs/common";
@@ -4,13 +4,13 @@ import {
4
4
  runner,
5
5
  script,
6
6
  command
7
- } from "./index-gca9y01h.js";
7
+ } from "./index-6na0sd2b.js";
8
8
  import"./index-q0y2jq9j.js";
9
9
  import {
10
10
  rootAllowedFiles,
11
11
  rootAllowedDirs,
12
12
  isAllowedLibFacetRootFile
13
- } from "./index-p1j0cyvd.js";
13
+ } from "./index-p4p9t45x.js";
14
14
  import"./index-6wwzs1bc.js";
15
15
 
16
16
  // pkgs/@akanjs/devkit/qualityScanner.ts
@@ -3,16 +3,16 @@ import {
3
3
  Workspace,
4
4
  script,
5
5
  command
6
- } from "./index-gca9y01h.js";
6
+ } from "./index-6na0sd2b.js";
7
7
  import"./index-q0y2jq9j.js";
8
- import"./index-p1j0cyvd.js";
8
+ import"./index-p4p9t45x.js";
9
9
  import"./index-6wwzs1bc.js";
10
10
  import"./index-by5gpp8x.js";
11
- import"./index-1p146w4s.js";
12
- import"./index-3dmebxnk.js";
11
+ import"./index-qhtj9y6j.js";
12
+ import"./index-v17gj504.js";
13
13
  import {
14
14
  RepairRunner
15
- } from "./index-bchkysja.js";
15
+ } from "./index-4cvpzkq6.js";
16
16
 
17
17
  // pkgs/@akanjs/cli/repair/repair.script.ts
18
18
  import { Logger } from "akanjs/common";
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  Sys,
4
4
  command
5
- } from "./index-gca9y01h.js";
5
+ } from "./index-6na0sd2b.js";
6
6
  import"./index-q0y2jq9j.js";
7
- import"./index-p1j0cyvd.js";
7
+ import"./index-p4p9t45x.js";
8
8
  import"./index-6wwzs1bc.js";
9
9
  import {
10
10
  renderPrimitiveReport
11
- } from "./index-1p146w4s.js";
11
+ } from "./index-qhtj9y6j.js";
12
12
  import {
13
13
  ScalarScript
14
- } from "./index-v1y3cx0k.js";
14
+ } from "./index-vpx68e4x.js";
15
15
 
16
16
  // pkgs/@akanjs/cli/scalar/scalar.command.ts
17
17
  import { Logger, lowerlize } from "akanjs/common";