@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.
- package/.build-stamp +1 -1
- package/{CodeAgent-d3wvbq8q.js → CodeAgent-gjqnc2mg.js} +2 -2
- package/{CodeTui-6c9a2wtk.js → CodeTui-nd9hqvrw.js} +196 -11
- package/{agent.command-9cg8m87z.js → agent.command-n664dtcv.js} +5 -5
- package/akanCode.js +9 -9
- package/{application.command-x75men32.js → application.command-t5542jte.js} +5 -5
- package/{applicationBuildRunner-d3702f1w.js → applicationBuildRunner-x4gbfn7y.js} +2 -2
- package/{applicationReleasePackager-2kdyj3te.js → applicationReleasePackager-z61ep017.js} +1 -1
- package/buildBatch.proc.js +2 -2
- package/{capacitorApp-qk975zyz.js → capacitorApp-shv3ajh5.js} +2 -2
- package/{cloud.command-a09wggfq.js → cloud.command-dk5tj39k.js} +8 -8
- package/{cloud.script-qd3hpybf.js → cloud.script-ch3xrw3s.js} +8 -8
- package/{code.command-ca7rpmez.js → code.command-88sebgnn.js} +7 -7
- package/{context.command-9kbm0527.js → context.command-pqsm5jrk.js} +13 -13
- package/context.runner-bys6ykcp.js +22 -0
- package/{devTui-v19fbnpk.js → devTui-gy6mendg.js} +1 -1
- package/{devTuiView-pa63jrjq.js → devTuiView-y1548wy6.js} +1 -1
- package/{guideline.command-qvrh5pnx.js → guideline.command-rpc2emw8.js} +2 -2
- package/incrementalBuilder.proc.js +1 -1
- package/{index-658xafm1.js → index-2pm1j01n.js} +3 -3
- package/{index-erzcytap.js → index-2sq06vv0.js} +171 -201
- package/{index-1sggq0m8.js → index-3cymrzsb.js} +1 -1
- package/{index-ea1smknd.js → index-3mg4h788.js} +2 -2
- package/{index-bchkysja.js → index-4cvpzkq6.js} +3 -3
- package/{index-egt4vfgb.js → index-4n4821gp.js} +4 -4
- package/{index-0qvq9aeb.js → index-57p9p179.js} +3 -3
- package/{index-gca9y01h.js → index-6na0sd2b.js} +1 -1
- package/{index-sxg87a8f.js → index-bzakk0c2.js} +160 -96
- package/{index-bzjnp9ap.js → index-g9zghs4h.js} +10 -10
- package/{index-wfwknnje.js → index-jwrpsrg3.js} +8 -6
- package/{index-5hy11qaq.js → index-kvzjda3v.js} +3 -3
- package/{index-91brpnzb.js → index-n8kt2wh6.js} +5 -5
- package/{index-chp5gqmm.js → index-ns128c4q.js} +8 -8
- package/{index-va2je2qm.js → index-p0tew3fq.js} +15 -4
- package/{index-p1j0cyvd.js → index-p4p9t45x.js} +3 -0
- package/{index-f4gpcp98.js → index-qh7brn20.js} +1 -1
- package/{index-1p146w4s.js → index-qhtj9y6j.js} +1 -1
- package/index-qt8dqgnf.js +250 -0
- package/{index-84b080zh.js → index-sn7dnzq4.js} +1 -1
- package/{index-d35a8vc0.js → index-te0y1c0m.js} +4 -4
- package/{index-3dmebxnk.js → index-v17gj504.js} +2 -2
- package/{index-v1y3cx0k.js → index-vpx68e4x.js} +2 -2
- package/{index-v156f836.js → index-xjc7gg65.js} +4 -4
- package/{index-3hr7cpy1.js → index-zn8qgeqx.js} +1 -1
- package/index.js +21 -21
- package/{library.command-n89re6cx.js → library.command-m8p2r1dh.js} +3 -3
- package/{localRegistry.command-1mmnegph.js → localRegistry.command-yppdqrxv.js} +7 -7
- package/{module.command-4m82zgfp.js → module.command-mfzvqt0n.js} +5 -5
- package/{package.command-9dv0p6zq.js → package.command-cgp2p2v5.js} +3 -3
- package/package.json +8 -3
- package/{page.command-q86b0m0z.js → page.command-taenb02b.js} +3 -3
- package/{primitive.command-kaneasq6.js → primitive.command-7kpncmkk.js} +6 -6
- package/{quality.command-sgapx315.js → quality.command-1ar94hrw.js} +2 -2
- package/{repair.command-efc5gdbq.js → repair.command-n08t6j8p.js} +5 -5
- package/{scalar.command-e2rpkhqy.js → scalar.command-mq8qfp4t.js} +4 -4
- package/{subspace.command-005rz1x6.js → subspace.command-jqv5n79w.js} +4 -4
- package/{tunnel.command-66j9estx.js → tunnel.command-ht2es78c.js} +2 -2
- package/{workflow.command-z1xcm4c7.js → workflow.command-tvz4nm9n.js} +9 -9
- package/{workspace.command-4ahrhp3k.js → workspace.command-txv1yv5e.js} +20 -20
- package/context.runner-wtqpw7mh.js +0 -22
- package/index-x7g1qzpt.js +0 -121
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
writeGeneratedSyncState,
|
|
6
6
|
createRepairReport,
|
|
7
7
|
renderRepairReport
|
|
8
|
-
} from "./index-
|
|
8
|
+
} from "./index-qhtj9y6j.js";
|
|
9
9
|
import {
|
|
10
10
|
AkanContextAnalyzer
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-v17gj504.js";
|
|
12
12
|
import {
|
|
13
13
|
runner
|
|
14
|
-
} from "./index-
|
|
14
|
+
} from "./index-6na0sd2b.js";
|
|
15
15
|
|
|
16
16
|
// pkgs/@akanjs/cli/repair/repair.runner.ts
|
|
17
17
|
var commandForShell = (command) => command.startsWith("akan ") ? `bun run ${command}` : command;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
jsonText
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-qhtj9y6j.js";
|
|
5
5
|
import {
|
|
6
6
|
akanMcpInstallTargets
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-v17gj504.js";
|
|
8
8
|
import {
|
|
9
9
|
script
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-6na0sd2b.js";
|
|
11
11
|
import {
|
|
12
12
|
ContextRunner2
|
|
13
|
-
} from "./index-
|
|
13
|
+
} from "./index-g9zghs4h.js";
|
|
14
14
|
|
|
15
15
|
// pkgs/@akanjs/cli/context/context.script.ts
|
|
16
16
|
import { Logger } from "akanjs/common";
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
} from "./index-myj01w9r.js";
|
|
7
7
|
import {
|
|
8
8
|
runner
|
|
9
|
-
} from "./index-
|
|
9
|
+
} from "./index-6na0sd2b.js";
|
|
10
10
|
import {
|
|
11
11
|
WorkspaceExecutor,
|
|
12
12
|
AppExecutor
|
|
13
|
-
} from "./index-
|
|
13
|
+
} from "./index-p4p9t45x.js";
|
|
14
14
|
import {
|
|
15
15
|
openBrowser
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-ns128c4q.js";
|
|
17
17
|
|
|
18
18
|
// pkgs/@akanjs/cli/cloud/cloud.runner.ts
|
|
19
19
|
import path from "path";
|
|
@@ -1,4 +1,160 @@
|
|
|
1
1
|
// @bun
|
|
2
|
+
// pkgs/@akanjs/cli/code/CodeTuiLines.ts
|
|
3
|
+
import stringWidth from "string-width";
|
|
4
|
+
|
|
5
|
+
class CodeTuiLines2 {
|
|
6
|
+
static width(text) {
|
|
7
|
+
return stringWidth(text);
|
|
8
|
+
}
|
|
9
|
+
static rows(rows, width, keyBase) {
|
|
10
|
+
const lines = [];
|
|
11
|
+
rows.forEach((row, idx) => {
|
|
12
|
+
for (const line of CodeTuiLines2.#row(row, Math.max(8, width), `${keyBase}:${idx}`))
|
|
13
|
+
lines.push(line);
|
|
14
|
+
});
|
|
15
|
+
return lines;
|
|
16
|
+
}
|
|
17
|
+
static #row(row, width, key) {
|
|
18
|
+
const prefix = row.prefix;
|
|
19
|
+
const head = prefix ? CodeTuiLines2.width(prefix.text) : 0;
|
|
20
|
+
const hang = row.hang ?? " ".repeat(head);
|
|
21
|
+
const body = width - Math.max(head, CodeTuiLines2.width(hang));
|
|
22
|
+
const wrapped = CodeTuiLines2.#wrap(row.spans, Math.max(4, body));
|
|
23
|
+
if (!wrapped.length)
|
|
24
|
+
wrapped.push([]);
|
|
25
|
+
return wrapped.map((spans, at) => ({
|
|
26
|
+
key: `${key}:${at}`,
|
|
27
|
+
spans: [...at === 0 ? prefix ? [prefix] : [] : hang ? [{ text: hang }] : [], ...spans]
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
static #wrap(spans, width) {
|
|
31
|
+
const lines = [];
|
|
32
|
+
let line = [];
|
|
33
|
+
let used = 0;
|
|
34
|
+
let soft = false;
|
|
35
|
+
const push = (fromWrap) => {
|
|
36
|
+
lines.push(line);
|
|
37
|
+
line = [];
|
|
38
|
+
used = 0;
|
|
39
|
+
soft = fromWrap;
|
|
40
|
+
};
|
|
41
|
+
for (const span of spans) {
|
|
42
|
+
const { text, ...style } = span;
|
|
43
|
+
for (const piece of text.split(`
|
|
44
|
+
`).flatMap((part, at) => at ? [null, part] : [part])) {
|
|
45
|
+
if (piece === null) {
|
|
46
|
+
push(false);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
for (const word of CodeTuiLines2.#words(piece)) {
|
|
50
|
+
const size = CodeTuiLines2.width(word);
|
|
51
|
+
if (!word.trim() && !used && soft)
|
|
52
|
+
continue;
|
|
53
|
+
if (used && used + size > width)
|
|
54
|
+
push(true);
|
|
55
|
+
if (size > width) {
|
|
56
|
+
for (const chunk of CodeTuiLines2.#chunks(word, width)) {
|
|
57
|
+
if (used)
|
|
58
|
+
push(true);
|
|
59
|
+
line.push({ ...style, text: chunk });
|
|
60
|
+
used = CodeTuiLines2.width(chunk);
|
|
61
|
+
if (used >= width)
|
|
62
|
+
push(true);
|
|
63
|
+
}
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
line.push({ ...style, text: word });
|
|
67
|
+
used += size;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (line.length)
|
|
72
|
+
lines.push(line);
|
|
73
|
+
return lines;
|
|
74
|
+
}
|
|
75
|
+
static #words(text) {
|
|
76
|
+
return text.match(/\S+\s*|\s+/g) ?? [];
|
|
77
|
+
}
|
|
78
|
+
static #chunks(word, width) {
|
|
79
|
+
const chunks = [];
|
|
80
|
+
let chunk = "";
|
|
81
|
+
for (const char of word) {
|
|
82
|
+
if (CodeTuiLines2.width(chunk + char) > width) {
|
|
83
|
+
chunks.push(chunk);
|
|
84
|
+
chunk = char;
|
|
85
|
+
} else
|
|
86
|
+
chunk += char;
|
|
87
|
+
}
|
|
88
|
+
if (chunk)
|
|
89
|
+
chunks.push(chunk);
|
|
90
|
+
return chunks;
|
|
91
|
+
}
|
|
92
|
+
static text(line) {
|
|
93
|
+
return line.spans.map((span) => span.text).join("");
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// pkgs/@akanjs/cli/code/CodeTuiAgents.ts
|
|
98
|
+
class CodeTuiAgents2 {
|
|
99
|
+
static markWidth = 4;
|
|
100
|
+
static minDescription = 12;
|
|
101
|
+
static rows(agents, session, width, now = Date.now()) {
|
|
102
|
+
if (!agents.length)
|
|
103
|
+
return [];
|
|
104
|
+
const kindColumn = Math.max(...agents.map((agent) => CodeTuiLines2.width(agent.kind))) + 2;
|
|
105
|
+
return [
|
|
106
|
+
{
|
|
107
|
+
key: "agents:self",
|
|
108
|
+
spans: [{ text: "\u276F ", color: "cyan" }, { text: "\u23FA ", color: "green" }, { text: session }]
|
|
109
|
+
},
|
|
110
|
+
...agents.map((agent, at) => ({
|
|
111
|
+
key: `agents:${agent.id || at}`,
|
|
112
|
+
spans: CodeTuiAgents2.#row(agent, kindColumn, width, now)
|
|
113
|
+
}))
|
|
114
|
+
];
|
|
115
|
+
}
|
|
116
|
+
static #row(agent, kindColumn, width, now) {
|
|
117
|
+
const meta = `${CodeTuiAgents2.elapsed(now - agent.startedAt)} \xB7 \u2193 ${CodeTuiAgents2.tokens(agent.tokens)} tokens`;
|
|
118
|
+
const head = CodeTuiAgents2.markWidth + kindColumn;
|
|
119
|
+
const room = width - head - CodeTuiLines2.width(meta) - 2;
|
|
120
|
+
const spans = [{ text: " \u25EF ", color: "yellow" }, { text: agent.kind.padEnd(kindColumn) }];
|
|
121
|
+
if (room < CodeTuiAgents2.minDescription)
|
|
122
|
+
return [...spans, { text: CodeTuiAgents2.#clip(agent.description, Math.max(1, width - head)) }];
|
|
123
|
+
const description = CodeTuiAgents2.#clip(agent.description, room);
|
|
124
|
+
const pad = " ".repeat(Math.max(0, room - CodeTuiLines2.width(description)));
|
|
125
|
+
return [...spans, { text: `${description}${pad}` }, { text: ` ${meta}`, dim: true }];
|
|
126
|
+
}
|
|
127
|
+
static elapsed(ms) {
|
|
128
|
+
const total = Math.max(0, Math.round(ms / 1000));
|
|
129
|
+
const hours = Math.floor(total / 3600);
|
|
130
|
+
const minutes = Math.floor(total % 3600 / 60);
|
|
131
|
+
const seconds = total % 60;
|
|
132
|
+
if (hours)
|
|
133
|
+
return `${hours}h ${minutes}m`;
|
|
134
|
+
if (minutes)
|
|
135
|
+
return `${minutes}m ${seconds}s`;
|
|
136
|
+
return `${seconds}s`;
|
|
137
|
+
}
|
|
138
|
+
static tokens(count) {
|
|
139
|
+
if (count < 1000)
|
|
140
|
+
return `${Math.max(0, Math.round(count))}`;
|
|
141
|
+
if (count < 1e6)
|
|
142
|
+
return `${(count / 1000).toFixed(1)}k`;
|
|
143
|
+
return `${(count / 1e6).toFixed(1)}M`;
|
|
144
|
+
}
|
|
145
|
+
static #clip(text, width) {
|
|
146
|
+
if (CodeTuiLines2.width(text) <= width)
|
|
147
|
+
return text;
|
|
148
|
+
let clipped = "";
|
|
149
|
+
for (const char of text) {
|
|
150
|
+
if (CodeTuiLines2.width(clipped + char) > width - 1)
|
|
151
|
+
break;
|
|
152
|
+
clipped += char;
|
|
153
|
+
}
|
|
154
|
+
return `${clipped}\u2026`;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
2
158
|
// pkgs/@akanjs/cli/code/CodeTuiClipboard.ts
|
|
3
159
|
import { existsSync } from "fs";
|
|
4
160
|
import { tmpdir } from "os";
|
|
@@ -102,6 +258,7 @@ class CodeTuiCommands2 {
|
|
|
102
258
|
{ name: "name", desc: "name this session", arg: "<text>" },
|
|
103
259
|
{ name: "fork", desc: "continue this conversation twice; the copy takes over here", arg: "[name]" },
|
|
104
260
|
{ name: "agents", desc: "what a sub-agent may be, and what one may spend" },
|
|
261
|
+
{ name: "mcp", desc: "the MCP servers this session reached", arg: "[add|remove|reload]" },
|
|
105
262
|
{ name: "peers", desc: "the other akan code sessions running here" },
|
|
106
263
|
{ name: "msg", desc: "hand a message to another session", arg: "<peer> <text>" },
|
|
107
264
|
{ name: "quit", desc: "leave the session" }
|
|
@@ -131,6 +288,8 @@ class CodeTuiCommands2 {
|
|
|
131
288
|
"esc interrupt \xB7 pgup/pgdn scroll \xB7 ^c quit",
|
|
132
289
|
"@ completes a file in this repo \xB7 \u2190 at the start of the prompt lists past sessions",
|
|
133
290
|
"",
|
|
291
|
+
"Scroll: the wheel scrolls this transcript \xB7 hold shift to select text with the mouse instead",
|
|
292
|
+
"",
|
|
134
293
|
"Images: cmd+v attaches what is on the clipboard \xB7 ^v does too, without the terminal in the way",
|
|
135
294
|
"",
|
|
136
295
|
'shift+enter needs a terminal that reports it \u2014 in VS Code bind it to send "\\u001b\\r".'
|
|
@@ -139,101 +298,6 @@ class CodeTuiCommands2 {
|
|
|
139
298
|
}
|
|
140
299
|
}
|
|
141
300
|
|
|
142
|
-
// pkgs/@akanjs/cli/code/CodeTuiLines.ts
|
|
143
|
-
import stringWidth from "string-width";
|
|
144
|
-
|
|
145
|
-
class CodeTuiLines2 {
|
|
146
|
-
static width(text) {
|
|
147
|
-
return stringWidth(text);
|
|
148
|
-
}
|
|
149
|
-
static rows(rows, width, keyBase) {
|
|
150
|
-
const lines = [];
|
|
151
|
-
rows.forEach((row, idx) => {
|
|
152
|
-
for (const line of CodeTuiLines2.#row(row, Math.max(8, width), `${keyBase}:${idx}`))
|
|
153
|
-
lines.push(line);
|
|
154
|
-
});
|
|
155
|
-
return lines;
|
|
156
|
-
}
|
|
157
|
-
static #row(row, width, key) {
|
|
158
|
-
const prefix = row.prefix;
|
|
159
|
-
const head = prefix ? CodeTuiLines2.width(prefix.text) : 0;
|
|
160
|
-
const hang = row.hang ?? " ".repeat(head);
|
|
161
|
-
const body = width - Math.max(head, CodeTuiLines2.width(hang));
|
|
162
|
-
const wrapped = CodeTuiLines2.#wrap(row.spans, Math.max(4, body));
|
|
163
|
-
if (!wrapped.length)
|
|
164
|
-
wrapped.push([]);
|
|
165
|
-
return wrapped.map((spans, at) => ({
|
|
166
|
-
key: `${key}:${at}`,
|
|
167
|
-
spans: [...at === 0 ? prefix ? [prefix] : [] : hang ? [{ text: hang }] : [], ...spans]
|
|
168
|
-
}));
|
|
169
|
-
}
|
|
170
|
-
static #wrap(spans, width) {
|
|
171
|
-
const lines = [];
|
|
172
|
-
let line = [];
|
|
173
|
-
let used = 0;
|
|
174
|
-
let soft = false;
|
|
175
|
-
const push = (fromWrap) => {
|
|
176
|
-
lines.push(line);
|
|
177
|
-
line = [];
|
|
178
|
-
used = 0;
|
|
179
|
-
soft = fromWrap;
|
|
180
|
-
};
|
|
181
|
-
for (const span of spans) {
|
|
182
|
-
const { text, ...style } = span;
|
|
183
|
-
for (const piece of text.split(`
|
|
184
|
-
`).flatMap((part, at) => at ? [null, part] : [part])) {
|
|
185
|
-
if (piece === null) {
|
|
186
|
-
push(false);
|
|
187
|
-
continue;
|
|
188
|
-
}
|
|
189
|
-
for (const word of CodeTuiLines2.#words(piece)) {
|
|
190
|
-
const size = CodeTuiLines2.width(word);
|
|
191
|
-
if (!word.trim() && !used && soft)
|
|
192
|
-
continue;
|
|
193
|
-
if (used && used + size > width)
|
|
194
|
-
push(true);
|
|
195
|
-
if (size > width) {
|
|
196
|
-
for (const chunk of CodeTuiLines2.#chunks(word, width)) {
|
|
197
|
-
if (used)
|
|
198
|
-
push(true);
|
|
199
|
-
line.push({ ...style, text: chunk });
|
|
200
|
-
used = CodeTuiLines2.width(chunk);
|
|
201
|
-
if (used >= width)
|
|
202
|
-
push(true);
|
|
203
|
-
}
|
|
204
|
-
continue;
|
|
205
|
-
}
|
|
206
|
-
line.push({ ...style, text: word });
|
|
207
|
-
used += size;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
if (line.length)
|
|
212
|
-
lines.push(line);
|
|
213
|
-
return lines;
|
|
214
|
-
}
|
|
215
|
-
static #words(text) {
|
|
216
|
-
return text.match(/\S+\s*|\s+/g) ?? [];
|
|
217
|
-
}
|
|
218
|
-
static #chunks(word, width) {
|
|
219
|
-
const chunks = [];
|
|
220
|
-
let chunk = "";
|
|
221
|
-
for (const char of word) {
|
|
222
|
-
if (CodeTuiLines2.width(chunk + char) > width) {
|
|
223
|
-
chunks.push(chunk);
|
|
224
|
-
chunk = char;
|
|
225
|
-
} else
|
|
226
|
-
chunk += char;
|
|
227
|
-
}
|
|
228
|
-
if (chunk)
|
|
229
|
-
chunks.push(chunk);
|
|
230
|
-
return chunks;
|
|
231
|
-
}
|
|
232
|
-
static text(line) {
|
|
233
|
-
return line.spans.map((span) => span.text).join("");
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
|
|
237
301
|
// pkgs/@akanjs/cli/code/CodeTuiEditor.ts
|
|
238
302
|
class CodeTuiEditor2 {
|
|
239
303
|
#text = "";
|
|
@@ -724,4 +788,4 @@ class CodeTuiParts2 {
|
|
|
724
788
|
}
|
|
725
789
|
}
|
|
726
790
|
|
|
727
|
-
export { CodeTuiClipboard2, CodeTuiCommands2,
|
|
791
|
+
export { CodeTuiLines2, CodeTuiAgents2, CodeTuiClipboard2, CodeTuiCommands2, CodeTuiEditor2, CodeTuiFiles2, CodeTuiMarkdown2, CodeTuiParts2 };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
AppExecutor
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-p4p9t45x.js";
|
|
5
5
|
import {
|
|
6
6
|
jsonText,
|
|
7
7
|
createWorkflowBaselineSummary,
|
|
8
8
|
buildAkanModuleContextIndex,
|
|
9
9
|
createWorkflowStepRegistry,
|
|
10
10
|
toolingRolloutGate
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-qhtj9y6j.js";
|
|
12
12
|
import {
|
|
13
13
|
buildResourceList,
|
|
14
14
|
codexMcpConfigPath,
|
|
@@ -18,32 +18,32 @@ import {
|
|
|
18
18
|
upsertCodexMcpServerBlock,
|
|
19
19
|
renderDoctorText,
|
|
20
20
|
AkanContextAnalyzer
|
|
21
|
-
} from "./index-
|
|
21
|
+
} from "./index-v17gj504.js";
|
|
22
22
|
import {
|
|
23
23
|
isPlaceholderAppId2
|
|
24
|
-
} from "./index-
|
|
24
|
+
} from "./index-3cymrzsb.js";
|
|
25
25
|
import {
|
|
26
26
|
CommandContainer,
|
|
27
27
|
runner
|
|
28
|
-
} from "./index-
|
|
28
|
+
} from "./index-6na0sd2b.js";
|
|
29
29
|
import {
|
|
30
30
|
Prompter2
|
|
31
31
|
} from "./index-twq9p2sp.js";
|
|
32
32
|
import {
|
|
33
33
|
RepairRunner
|
|
34
|
-
} from "./index-
|
|
34
|
+
} from "./index-4cvpzkq6.js";
|
|
35
35
|
import {
|
|
36
36
|
WorkflowRunner
|
|
37
|
-
} from "./index-
|
|
37
|
+
} from "./index-2pm1j01n.js";
|
|
38
38
|
import {
|
|
39
39
|
ModuleScript
|
|
40
|
-
} from "./index-
|
|
40
|
+
} from "./index-xjc7gg65.js";
|
|
41
41
|
import {
|
|
42
42
|
PrimitiveScript
|
|
43
|
-
} from "./index-
|
|
43
|
+
} from "./index-te0y1c0m.js";
|
|
44
44
|
import {
|
|
45
45
|
ScalarScript
|
|
46
|
-
} from "./index-
|
|
46
|
+
} from "./index-vpx68e4x.js";
|
|
47
47
|
import {
|
|
48
48
|
getMobileTargets
|
|
49
49
|
} from "./index-47pj3aee.js";
|
|
@@ -9,19 +9,19 @@ var correctInputs = (model) => {
|
|
|
9
9
|
return model;
|
|
10
10
|
return { ...model, input: [...model.input, "image"] };
|
|
11
11
|
};
|
|
12
|
-
var akanCodeModel2 = async (
|
|
12
|
+
var akanCodeModel2 = async (runtime, ref) => {
|
|
13
13
|
if (ref) {
|
|
14
|
-
const requested =
|
|
14
|
+
const requested = runtime.getModel(ref.provider, ref.id);
|
|
15
15
|
if (!requested)
|
|
16
16
|
throw new Error(`Unknown model: ${ref.provider}/${ref.id}`);
|
|
17
|
-
if (!
|
|
17
|
+
if (!runtime.hasConfiguredAuth(ref.provider))
|
|
18
18
|
throw new Error(`No API key configured for ${ref.provider}. Set ${ref.provider.toUpperCase()}_API_KEY.`);
|
|
19
19
|
return correctInputs(requested);
|
|
20
20
|
}
|
|
21
|
-
const fallback =
|
|
22
|
-
if (fallback &&
|
|
21
|
+
const fallback = runtime.getModel(akanCodeDefaultModel2.provider, akanCodeDefaultModel2.id);
|
|
22
|
+
if (fallback && runtime.hasConfiguredAuth(fallback.provider))
|
|
23
23
|
return correctInputs(fallback);
|
|
24
|
-
return correctInputs(
|
|
24
|
+
return correctInputs((await runtime.getAvailable())[0]);
|
|
25
25
|
};
|
|
26
26
|
var akanCodeModelSupportsImages2 = (model) => !!model?.input.includes("image");
|
|
27
27
|
var akanCodeModelWarnings2 = (model, compactionFloor) => {
|
|
@@ -78,6 +78,8 @@ class CodeAgentStreamPrinter2 {
|
|
|
78
78
|
case "queue":
|
|
79
79
|
case "context":
|
|
80
80
|
return;
|
|
81
|
+
case "subagent":
|
|
82
|
+
return;
|
|
81
83
|
case "question":
|
|
82
84
|
return this.#line(chalk.yellow(`? ${event.question.prompt}`));
|
|
83
85
|
case "approval":
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
runner,
|
|
4
4
|
script
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-6na0sd2b.js";
|
|
6
6
|
import {
|
|
7
7
|
AGENT_BLOCK_START,
|
|
8
8
|
AGENT_BLOCK_END,
|
|
@@ -13,14 +13,14 @@ import {
|
|
|
13
13
|
CLAUDE_COMMENT_RULE,
|
|
14
14
|
AppExecutor,
|
|
15
15
|
LibExecutor
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-p4p9t45x.js";
|
|
17
17
|
import {
|
|
18
18
|
collectRecipeSources2,
|
|
19
19
|
scanRecipes2
|
|
20
20
|
} from "./index-by5gpp8x.js";
|
|
21
21
|
import {
|
|
22
22
|
AkanContextAnalyzer
|
|
23
|
-
} from "./index-
|
|
23
|
+
} from "./index-v17gj504.js";
|
|
24
24
|
import {
|
|
25
25
|
Prompter2
|
|
26
26
|
} from "./index-twq9p2sp.js";
|
|
@@ -5,19 +5,19 @@ import {
|
|
|
5
5
|
} from "./index-myj01w9r.js";
|
|
6
6
|
import {
|
|
7
7
|
script
|
|
8
|
-
} from "./index-
|
|
8
|
+
} from "./index-6na0sd2b.js";
|
|
9
9
|
import {
|
|
10
10
|
PkgExecutor
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-p4p9t45x.js";
|
|
12
12
|
import {
|
|
13
13
|
ApplicationScript
|
|
14
|
-
} from "./index-
|
|
14
|
+
} from "./index-ns128c4q.js";
|
|
15
15
|
import {
|
|
16
16
|
PackageScript
|
|
17
|
-
} from "./index-
|
|
17
|
+
} from "./index-p0tew3fq.js";
|
|
18
18
|
import {
|
|
19
19
|
CloudRunner
|
|
20
|
-
} from "./index-
|
|
20
|
+
} from "./index-57p9p179.js";
|
|
21
21
|
|
|
22
22
|
// pkgs/@akanjs/cli/cloud/cloud.script.ts
|
|
23
23
|
import { Logger } from "akanjs/common";
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
import {
|
|
3
3
|
runner,
|
|
4
4
|
script
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-6na0sd2b.js";
|
|
6
6
|
import {
|
|
7
7
|
WorkspaceExecutor,
|
|
8
8
|
AppExecutor,
|
|
9
9
|
LibExecutor,
|
|
10
10
|
PkgExecutor
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-p4p9t45x.js";
|
|
12
12
|
import {
|
|
13
13
|
LibraryScript
|
|
14
|
-
} from "./index-
|
|
14
|
+
} from "./index-3mg4h788.js";
|
|
15
15
|
import {
|
|
16
16
|
HmrWatcher,
|
|
17
17
|
WatchRootResolver
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
import {
|
|
23
23
|
SlicePlanner,
|
|
24
24
|
formatSlicePlan
|
|
25
|
-
} from "./index-
|
|
25
|
+
} from "./index-sn7dnzq4.js";
|
|
26
26
|
import {
|
|
27
27
|
resolveMobileTargets
|
|
28
28
|
} from "./index-47pj3aee.js";
|
|
@@ -1966,9 +1966,9 @@ ${uniqueCandidates.map((candidate) => ` - ${candidate}`).join(`
|
|
|
1966
1966
|
|
|
1967
1967
|
// pkgs/@akanjs/cli/application/application.runner.ts
|
|
1968
1968
|
import { Logger as Logger4 } from "akanjs/common";
|
|
1969
|
-
var loadBuildRunner = async () => (await import("./applicationBuildRunner-
|
|
1970
|
-
var loadReleasePackager = async () => (await import("./applicationReleasePackager-
|
|
1971
|
-
var loadCapacitorApp = async () => (await import("./capacitorApp-
|
|
1969
|
+
var loadBuildRunner = async () => (await import("./applicationBuildRunner-x4gbfn7y.js")).ApplicationBuildRunner;
|
|
1970
|
+
var loadReleasePackager = async () => (await import("./applicationReleasePackager-z61ep017.js")).ApplicationReleasePackager;
|
|
1971
|
+
var loadCapacitorApp = async () => (await import("./capacitorApp-shv3ajh5.js")).CapacitorApp;
|
|
1972
1972
|
var loadPrompts = async () => await import("@inquirer/prompts");
|
|
1973
1973
|
|
|
1974
1974
|
class ApplicationRunner extends runner("application") {
|
|
@@ -3226,7 +3226,7 @@ class ApplicationScript extends script("application", [ApplicationRunner, Librar
|
|
|
3226
3226
|
throw new Error("No app selected to start");
|
|
3227
3227
|
const startedDatabase = dbup ? await this.#prepareSharedDatabase(apps) : false;
|
|
3228
3228
|
const supervisor = new DevSupervisor({ apps, mode, concurrency, open, write, shares });
|
|
3229
|
-
const view = mode === "tui" ? await (await import("./devTuiView-
|
|
3229
|
+
const view = mode === "tui" ? await (await import("./devTuiView-y1548wy6.js")).createDevTuiView(supervisor) : new DevStreamView(apps.map((app) => app.name));
|
|
3230
3230
|
await supervisor.run(view);
|
|
3231
3231
|
if (startedDatabase)
|
|
3232
3232
|
await this.#stopDatabase(workspace);
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import {
|
|
3
3
|
runner,
|
|
4
4
|
script
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-6na0sd2b.js";
|
|
6
6
|
import {
|
|
7
7
|
FileSys
|
|
8
8
|
} from "./index-q0y2jq9j.js";
|
|
9
9
|
import {
|
|
10
10
|
PkgExecutor
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-p4p9t45x.js";
|
|
12
12
|
import {
|
|
13
13
|
TypeScriptDependencyScanner2
|
|
14
14
|
} from "./index-kcxmv48c.js";
|
|
@@ -153,7 +153,14 @@ class PackageRunner extends runner("package") {
|
|
|
153
153
|
const scanner = await TypeScriptDependencyScanner2.from(pkg);
|
|
154
154
|
const { npmDeps, npmDevDeps, missingDeps } = await scanner.getPackageBuildDependencies(pkg.name);
|
|
155
155
|
const packageRuntimeDependencies = {
|
|
156
|
-
"@akanjs/devkit": [
|
|
156
|
+
"@akanjs/devkit": [
|
|
157
|
+
"tailwind-scrollbar",
|
|
158
|
+
"@earendil-works/chord",
|
|
159
|
+
"@earendil-works/pi-agent-core",
|
|
160
|
+
"@earendil-works/pi-ai",
|
|
161
|
+
"@earendil-works/pi-telemetry",
|
|
162
|
+
"@earendil-works/pi-tui"
|
|
163
|
+
]
|
|
157
164
|
};
|
|
158
165
|
const packageRuntimeDevDependencies = { akanjs: ["@biomejs/biome", "@types/bun"] };
|
|
159
166
|
if (pkg.name === "@akanjs/cli") {
|
|
@@ -174,7 +181,11 @@ class PackageRunner extends runner("package") {
|
|
|
174
181
|
const optionalPeerDeps = new Set(Object.entries(pkgJson.peerDependenciesMeta ?? {}).filter(([, meta]) => meta.optional).map(([dep]) => dep));
|
|
175
182
|
const packageRuntimeDeps = [...new Set([...npmDeps, ...forcedRuntimeDeps])].filter((dep) => !optionalPeerDeps.has(dep) && !bundledRuntimeDeps.has(dep));
|
|
176
183
|
const packageRuntimeDevDeps = [...new Set([...npmDevDeps, ...forcedRuntimeDevDeps])].filter((dep) => !optionalPeerDeps.has(dep) && !bundledRuntimeDeps.has(dep));
|
|
177
|
-
const rootDeps = {
|
|
184
|
+
const rootDeps = {
|
|
185
|
+
...rootPackageJson.overrides,
|
|
186
|
+
...rootPackageJson.dependencies,
|
|
187
|
+
...rootPackageJson.devDependencies
|
|
188
|
+
};
|
|
178
189
|
const missingForcedDeps = forcedRuntimeDeps.filter((dep) => !rootDeps[dep]);
|
|
179
190
|
const missingForcedDevDeps = forcedRuntimeDevDeps.filter((dep) => !rootDeps[dep]);
|
|
180
191
|
const requiredMissingDeps = missingDeps.filter((dep) => !optionalPeerDeps.has(dep));
|
|
@@ -3689,6 +3689,9 @@ class PkgExecutor extends Executor {
|
|
|
3689
3689
|
const rootVersion = rootDeps[dep];
|
|
3690
3690
|
if (rootVersion)
|
|
3691
3691
|
return rootVersion;
|
|
3692
|
+
const overrideVersion = rootPackageJson.overrides?.[dep];
|
|
3693
|
+
if (typeof overrideVersion === "string")
|
|
3694
|
+
return overrideVersion;
|
|
3692
3695
|
try {
|
|
3693
3696
|
const packageJsonPath = `pkgs/${dep}/package.json`;
|
|
3694
3697
|
if (!await Bun.file(path8.join(this.workspace.workspaceRoot, packageJsonPath)).exists())
|