@akanjs/cli 3.0.2 → 3.1.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.build-stamp +1 -1
- package/{CodeAgent-szbjv4gv.js → CodeAgent-kyprmy06.js} +2 -2
- package/{CodeTui-5nw86ab6.js → CodeTui-21mtze3j.js} +1 -1
- package/{TunnelShare-cwh9ezsm.js → TunnelShare-q4jq08qg.js} +2 -2
- package/{agent.command-np1dffkb.js → agent.command-f3gsc1gd.js} +5 -5
- package/akanCode.js +2 -2
- package/{application.command-gk69v1xs.js → application.command-5s780vnz.js} +37 -15
- package/{applicationBuildRunner-wx09n9g6.js → applicationBuildRunner-1yaqsrdq.js} +115 -103
- package/buildBatch.proc.js +16 -5
- package/cloud.command-yj6xb2a7.js +192 -0
- package/cloud.script-h6pvcpa2.js +20 -0
- package/{code.command-hmtx14b2.js → code.command-3wkn4ja5.js} +6 -6
- package/commandManifest.json +1 -1
- package/{context.command-6aqvdx43.js → context.command-9jjn3gcw.js} +13 -13
- package/context.runner-atcrzz5b.js +21 -0
- package/{guideline.command-axvf68gc.js → guideline.command-dtczrqpf.js} +2 -2
- package/guidelines/agentRule/agentRule.instruction.md +10 -2
- package/guidelines/conventions/conventions.instruction.md +70 -25
- package/guidelines/cssRule/cssRule.instruction.md +19 -0
- package/guidelines/mcpRule/mcpRule.instruction.md +72 -12
- package/guidelines/queryRule/queryRule.instruction.md +11 -1
- package/guidelines/runtimeRule/runtimeRule.instruction.md +97 -16
- package/guidelines/ssrRule/ssrRule.instruction.md +10 -7
- package/guidelines/transportRule/transportRule.instruction.md +19 -0
- package/guidelines/workspaceRecipes/workspaceRecipes.instruction.md +6 -6
- package/incrementalBuilder.proc.js +24 -3
- package/{index-h9ht6s60.js → index-05g3jayg.js} +1 -1
- package/{index-jk9xnck6.js → index-1w2qaee2.js} +240 -133
- package/{index-g38nhv87.js → index-2etcv0sc.js} +1 -1
- package/{index-zyw622y1.js → index-2mx692qq.js} +3 -3
- package/{index-50wb2a26.js → index-55mynnqs.js} +354 -129
- package/{index-2wc41k5w.js → index-56d2g8ms.js} +2 -2
- package/{index-q6ft9fkc.js → index-6jjtnhkw.js} +8 -3
- package/index-6w0rbr9d.js +68 -0
- package/{index-hxnnfy57.js → index-8ggztp8k.js} +204 -8
- package/{index-zwd84m0w.js → index-8r4d7cmt.js} +4 -4
- package/{index-j38qkvkk.js → index-ae5pwhgs.js} +12 -10
- package/{index-gtjgnv36.js → index-aprt7pkz.js} +6 -9
- package/{index-1bjkfvm9.js → index-c1x0be5j.js} +2 -2
- package/{index-z750gk1j.js → index-c2yrsxdh.js} +13 -7
- package/{index-cb6yc5mb.js → index-c76k723e.js} +2 -2
- package/{index-6keyf4sg.js → index-ctanya41.js} +4 -4
- package/{index-f4e08ptp.js → index-e0cvze1s.js} +4 -4
- package/{index-hp3stk1m.js → index-fm46xrf1.js} +3 -3
- package/{index-3xmzr1p1.js → index-gnyf1fqy.js} +2 -2
- package/{index-nwd6qzvv.js → index-jx4bzvwg.js} +138 -55
- package/{index-jb0hmt3k.js → index-krq7btbt.js} +3 -3
- package/{index-94s080qm.js → index-pgj2rt78.js} +139 -1
- package/index-q958tqqg.js +77 -0
- package/{index-50jjwg8y.js → index-qt22xstj.js} +1 -1
- package/index-rc5rwyps.js +201 -0
- package/{index-xwprn9nr.js → index-rtct7d43.js} +1 -1
- package/{index-bsv901fd.js → index-rwq3ekqc.js} +7 -7
- package/{index-1gs9g12n.js → index-v29746vb.js} +4 -4
- package/index-ww9bhp67.js +62 -0
- package/index.js +22 -21
- package/{library.command-9m2rdwwz.js → library.command-gaga5bmq.js} +3 -3
- package/{localRegistry.command-kda81jyk.js → localRegistry.command-vsreyy42.js} +9 -9
- package/{module.command-q63dffya.js → module.command-7vpf6db4.js} +5 -5
- package/{package.command-y2jh0m99.js → package.command-twmvvf69.js} +3 -3
- package/package.json +2 -2
- package/{page.command-f3e4cwhh.js → page.command-5asq7fdf.js} +3 -3
- package/pipeline.command-d0v38572.js +1334 -0
- package/{primitive.command-r4kq75qj.js → primitive.command-dyrs2fm8.js} +6 -6
- package/projectTypecheck-cvtkrzp2.js +7 -0
- package/{quality.command-f7gzh26z.js → quality.command-6emsqpbg.js} +5 -4
- package/{repair.command-0qmyr6qa.js → repair.command-8t6aegv5.js} +5 -5
- package/{scalar.command-kddn7av4.js → scalar.command-bnggy1x7.js} +4 -4
- package/{subspace.command-ft65qvc4.js → subspace.command-md2teygq.js} +158 -91
- package/templates/app/env/env.client.type.ts +2 -3
- package/templates/app/page/styles.css.template +8 -0
- package/templates/appSample/page/task/[taskId]/_index.tsx +2 -2
- package/templates/appSample/page/task/[taskId]/edit.tsx +2 -2
- package/templates/appSample/page/task/_index.tsx +2 -2
- package/templates/crudPages/[__model__Id]/edit/page.tsx +2 -2
- package/templates/crudPages/[__model__Id]/page.tsx +3 -3
- package/templates/crudPages/page.tsx +2 -2
- package/templates/crudSinglePage/page.tsx +3 -3
- package/templates/lib/cnst.ts +2 -2
- package/templates/lib/sig.ts +3 -3
- package/{tunnel.command-b3ymdk4f.js → tunnel.command-jx3tdm2d.js} +16 -13
- package/{workflow.command-z1srcdfw.js → workflow.command-jx0wag5r.js} +10 -10
- package/{workspace.command-vp6vmx3z.js → workspace.command-yxd7rr7g.js} +57 -27
- package/cloud.command-tw06613r.js +0 -95
- package/cloud.script-64gzba8r.js +0 -20
- package/context.runner-hnkvv3z3.js +0 -21
- package/index-t91a7339.js +0 -104
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
App,
|
|
4
|
+
Workspace,
|
|
5
|
+
command
|
|
6
|
+
} from "./index-6jjtnhkw.js";
|
|
7
|
+
import"./index-52w0fvh8.js";
|
|
8
|
+
import"./index-55mynnqs.js";
|
|
9
|
+
import"./index-1w2qaee2.js";
|
|
10
|
+
import"./index-pgj2rt78.js";
|
|
11
|
+
import {
|
|
12
|
+
PlatformTestRun
|
|
13
|
+
} from "./index-8ggztp8k.js";
|
|
14
|
+
import"./index-k9rrten6.js";
|
|
15
|
+
import"./index-c1x0be5j.js";
|
|
16
|
+
import"./index-jx4bzvwg.js";
|
|
17
|
+
import"./index-7md2g9vw.js";
|
|
18
|
+
import"./index-2ahj896a.js";
|
|
19
|
+
import"./index-gnyf1fqy.js";
|
|
20
|
+
import {
|
|
21
|
+
CloudScript2
|
|
22
|
+
} from "./index-rc5rwyps.js";
|
|
23
|
+
import"./index-qt22xstj.js";
|
|
24
|
+
import {
|
|
25
|
+
getMobileTargetChoices
|
|
26
|
+
} from "./index-q958tqqg.js";
|
|
27
|
+
|
|
28
|
+
// pkgs/@akanjs/cli/cloud/cloud.command.ts
|
|
29
|
+
var localRegistryUrl = () => process.env.AKAN_NPM_REGISTRY ?? "http://127.0.0.1:4873";
|
|
30
|
+
var hostOption = {
|
|
31
|
+
desc: "host of the cloud to target (default: cloud.host of the root akan.config.ts, else Akan Cloud)",
|
|
32
|
+
nullable: true
|
|
33
|
+
};
|
|
34
|
+
var targetOption = {
|
|
35
|
+
desc: "native target name (a key of native.targets)",
|
|
36
|
+
ask: "Select native target",
|
|
37
|
+
enum: async ({ app }) => await getMobileTargetChoices(app)
|
|
38
|
+
};
|
|
39
|
+
var envOption = {
|
|
40
|
+
enum: ["debug", "develop", "main", "local"],
|
|
41
|
+
desc: "backend environment",
|
|
42
|
+
default: "main"
|
|
43
|
+
};
|
|
44
|
+
var resolveRegistryUrl = (registry) => registry === "local" ? localRegistryUrl() : undefined;
|
|
45
|
+
|
|
46
|
+
class CloudCommand extends command("cloud", [CloudScript2], ({ public: target }) => ({
|
|
47
|
+
login: target({ desc: "Login to Akan Cloud services" }).option("host", String, {
|
|
48
|
+
desc: "host of the cloud (default: cloud.host of the root akan.config.ts, else Akan Cloud)",
|
|
49
|
+
nullable: true
|
|
50
|
+
}).with(Workspace).exec(async function(host, workspace) {
|
|
51
|
+
await this.cloudScript.login(workspace, host);
|
|
52
|
+
}),
|
|
53
|
+
logout: target({ desc: "Logout from Akan Cloud services" }).option("host", String, {
|
|
54
|
+
desc: "host of the cloud (default: cloud.host of the root akan.config.ts, else Akan Cloud)",
|
|
55
|
+
nullable: true
|
|
56
|
+
}).with(Workspace).exec(async function(host, workspace) {
|
|
57
|
+
await this.cloudScript.logout(workspace, host);
|
|
58
|
+
}),
|
|
59
|
+
deployAkan: target({ devOnly: true, desc: "Deploy Akan.js framework to cloud (internal use)" }).option("test", Boolean, { desc: "test the deployment", default: true }).option("registry", String, {
|
|
60
|
+
desc: "registry target for publishing Akan packages",
|
|
61
|
+
ask: "Select a registry target",
|
|
62
|
+
enum: [
|
|
63
|
+
{ label: "local", value: "local" },
|
|
64
|
+
{ label: "npm", value: "npm" }
|
|
65
|
+
]
|
|
66
|
+
}).option("platforms", String, {
|
|
67
|
+
desc: "platforms to test on besides this machine, comma-separated: linux, windows (none to skip)",
|
|
68
|
+
default: "linux,windows"
|
|
69
|
+
}).with(Workspace).exec(async function(test, registry, platforms, workspace) {
|
|
70
|
+
await this.cloudScript.deployAkan(workspace, {
|
|
71
|
+
test,
|
|
72
|
+
registryUrl: resolveRegistryUrl(registry),
|
|
73
|
+
platforms: PlatformTestRun.parsePlatforms(platforms)
|
|
74
|
+
});
|
|
75
|
+
}),
|
|
76
|
+
testPlatforms: target({
|
|
77
|
+
devOnly: true,
|
|
78
|
+
desc: "Run the Akan package suites on Linux (Docker) and Windows (SSH) against a snapshot of this tree"
|
|
79
|
+
}).option("platforms", String, {
|
|
80
|
+
desc: "platforms to test on, comma-separated: linux, windows",
|
|
81
|
+
default: "linux,windows"
|
|
82
|
+
}).option("pkgs", String, {
|
|
83
|
+
flag: "k",
|
|
84
|
+
desc: "packages to test, comma-separated (default: every Akan package)",
|
|
85
|
+
nullable: true
|
|
86
|
+
}).with(Workspace).exec(async function(platforms, pkgs, workspace) {
|
|
87
|
+
await this.cloudScript.testPlatforms(workspace, {
|
|
88
|
+
platforms: PlatformTestRun.parsePlatforms(platforms),
|
|
89
|
+
pkgs: pkgs?.split(",").map((pkg) => pkg.trim()).filter(Boolean)
|
|
90
|
+
});
|
|
91
|
+
}),
|
|
92
|
+
update: target({ desc: "Update Akan.js framework to the latest version" }).with(Workspace).option("tag", String, {
|
|
93
|
+
desc: "tag of the update",
|
|
94
|
+
default: "latest",
|
|
95
|
+
enum: ["latest", "dev", "canary", "beta", "rc", "alpha"]
|
|
96
|
+
}).option("registry", String, {
|
|
97
|
+
desc: "registry target for resolving Akan packages",
|
|
98
|
+
ask: "Select a registry target",
|
|
99
|
+
enum: [
|
|
100
|
+
{ label: "npm", value: "npm" },
|
|
101
|
+
{ label: "local", value: "local" }
|
|
102
|
+
],
|
|
103
|
+
default: process.env.USE_AKANJS_PKGS === "true" ? undefined : "npm"
|
|
104
|
+
}).exec(async function(workspace, tag, registry) {
|
|
105
|
+
await this.cloudScript.update(workspace, tag, { registryUrl: resolveRegistryUrl(registry) });
|
|
106
|
+
}),
|
|
107
|
+
pushUpdate: target({
|
|
108
|
+
desc: "Pack an over-the-air update of a phone's web bundle and upload it to the akasys project, which signs and publishes it"
|
|
109
|
+
}).with(App).option("platform", String, { enum: ["ios", "android"], desc: "the app it updates" }).option("target", String, targetOption).option("env", String, envOption).option("channel", String, { desc: "the channel (default: the target's updates.channel)", nullable: true }).option("notes", String, { desc: "release notes shown in the project", nullable: true }).option("subspace", String, { desc: "the subspace whose project gets it", nullable: true }).option("host", String, hostOption).option("write", Boolean, { desc: "write code generation", default: true }).option("allowLocalRelease", Boolean, { flag: "l", desc: "allow packing with --env local", default: false }).option("pack", String, {
|
|
110
|
+
flag: "d",
|
|
111
|
+
desc: "a folder `akan pack-update` wrote, uploaded instead of packing",
|
|
112
|
+
nullable: true
|
|
113
|
+
}).with(Workspace).exec(async function(app, platform, target, env, channel, notes, subspace, host, write, allowLocalRelease, pack, workspace) {
|
|
114
|
+
await this.cloudScript.pushUpdate(workspace, app, {
|
|
115
|
+
platform,
|
|
116
|
+
target,
|
|
117
|
+
env,
|
|
118
|
+
channel,
|
|
119
|
+
notes,
|
|
120
|
+
subspace,
|
|
121
|
+
host,
|
|
122
|
+
write,
|
|
123
|
+
allowLocalRelease,
|
|
124
|
+
pack
|
|
125
|
+
});
|
|
126
|
+
}),
|
|
127
|
+
registerBinary: target({
|
|
128
|
+
desc: "Register the store build of a phone app with the akasys project, with a pack of the same commit as its embedded bundle"
|
|
129
|
+
}).with(App).option("platform", String, { enum: ["ios", "android"], desc: "the store build to register" }).option("distribution", String, {
|
|
130
|
+
enum: ["appStore", "testFlight", "playStore", "playTesting", "direct"],
|
|
131
|
+
desc: "where the binary ships"
|
|
132
|
+
}).option("target", String, targetOption).option("env", String, envOption).option("subspace", String, { desc: "the subspace whose project gets it", nullable: true }).option("host", String, hostOption).option("write", Boolean, { desc: "write code generation", default: true }).option("allowLocalRelease", Boolean, { flag: "l", desc: "allow packing with --env local", default: false }).with(Workspace).exec(async function(app, platform, distribution, target, env, subspace, host, write, allowLocalRelease, workspace) {
|
|
133
|
+
await this.cloudScript.registerBinary(workspace, app, {
|
|
134
|
+
platform,
|
|
135
|
+
distribution,
|
|
136
|
+
target,
|
|
137
|
+
env,
|
|
138
|
+
subspace,
|
|
139
|
+
host,
|
|
140
|
+
write,
|
|
141
|
+
allowLocalRelease
|
|
142
|
+
});
|
|
143
|
+
}),
|
|
144
|
+
uploadSecret: target({
|
|
145
|
+
desc: "Upload a named pipeline secret to the akasys project; write-only, it can never be read back"
|
|
146
|
+
}).arg("name", String, { desc: "secret name, e.g. DISCORD_WEBHOOK" }).option("branch", String, {
|
|
147
|
+
desc: "only builds of this branch use it: debug, develop or main (default: every branch)",
|
|
148
|
+
nullable: true
|
|
149
|
+
}).option("file", String, {
|
|
150
|
+
desc: "read the value from this file instead of stdin or a hidden prompt",
|
|
151
|
+
nullable: true
|
|
152
|
+
}).option("subspace", String, { desc: "the subspace whose project gets it", nullable: true }).option("host", String, {
|
|
153
|
+
desc: "host of the cloud to target (default: cloud.host of the root akan.config.ts, else Akan Cloud)",
|
|
154
|
+
nullable: true
|
|
155
|
+
}).with(Workspace).exec(async function(name, branch, file, subspace, host, workspace) {
|
|
156
|
+
await this.cloudScript.uploadSecret(workspace, { name, branch, file, subspace, host });
|
|
157
|
+
}),
|
|
158
|
+
listSecrets: target({ desc: "List the pipeline secrets of the akasys project: names and scopes, never values" }).option("branch", String, {
|
|
159
|
+
desc: "only the secrets builds of this branch use: debug, develop or main",
|
|
160
|
+
nullable: true
|
|
161
|
+
}).option("subspace", String, { desc: "the subspace whose project to list", nullable: true }).option("host", String, {
|
|
162
|
+
desc: "host of the cloud to target (default: cloud.host of the root akan.config.ts, else Akan Cloud)",
|
|
163
|
+
nullable: true
|
|
164
|
+
}).with(Workspace).exec(async function(branch, subspace, host, workspace) {
|
|
165
|
+
await this.cloudScript.listSecrets(workspace, { branch, subspace, host });
|
|
166
|
+
}),
|
|
167
|
+
removeSecret: target({ desc: "Remove a named pipeline secret from the akasys project" }).arg("name", String, { desc: "secret name" }).option("branch", String, {
|
|
168
|
+
desc: "the branch override to remove: debug, develop or main (default: the every-branch value)",
|
|
169
|
+
nullable: true
|
|
170
|
+
}).option("subspace", String, { desc: "the subspace whose project holds it", nullable: true }).option("host", String, {
|
|
171
|
+
desc: "host of the cloud to target (default: cloud.host of the root akan.config.ts, else Akan Cloud)",
|
|
172
|
+
nullable: true
|
|
173
|
+
}).with(Workspace).exec(async function(name, branch, subspace, host, workspace) {
|
|
174
|
+
await this.cloudScript.removeSecret(workspace, { name, branch, subspace, host });
|
|
175
|
+
}),
|
|
176
|
+
downloadEnv: target({ desc: "Download environment variables from cloud or SCP server" }).option("host", String, {
|
|
177
|
+
desc: "host of the cloud to target (default: cloud.host of the root akan.config.ts, else Akan Cloud)",
|
|
178
|
+
nullable: true
|
|
179
|
+
}).with(Workspace).exec(async function(host, workspace) {
|
|
180
|
+
await this.cloudScript.downloadEnv(workspace, undefined, { host });
|
|
181
|
+
}),
|
|
182
|
+
uploadEnv: target({ desc: "Upload environment variables to cloud or SCP server" }).option("host", String, {
|
|
183
|
+
desc: "host of the cloud to target (default: cloud.host of the root akan.config.ts, else Akan Cloud)",
|
|
184
|
+
nullable: true
|
|
185
|
+
}).with(Workspace).exec(async function(host, workspace) {
|
|
186
|
+
await this.cloudScript.uploadEnv(workspace, { host });
|
|
187
|
+
})
|
|
188
|
+
})) {
|
|
189
|
+
}
|
|
190
|
+
export {
|
|
191
|
+
CloudCommand
|
|
192
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
CloudScript2
|
|
4
|
+
} from "./index-rc5rwyps.js";
|
|
5
|
+
import"./index-8ggztp8k.js";
|
|
6
|
+
import"./index-jx4bzvwg.js";
|
|
7
|
+
import"./index-qt22xstj.js";
|
|
8
|
+
import"./index-c1x0be5j.js";
|
|
9
|
+
import"./index-gnyf1fqy.js";
|
|
10
|
+
import"./index-1w2qaee2.js";
|
|
11
|
+
import"./index-pgj2rt78.js";
|
|
12
|
+
import"./index-6jjtnhkw.js";
|
|
13
|
+
import"./index-7md2g9vw.js";
|
|
14
|
+
import"./index-k9rrten6.js";
|
|
15
|
+
import"./index-55mynnqs.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-
|
|
7
|
+
} from "./index-6jjtnhkw.js";
|
|
8
8
|
import"./index-52w0fvh8.js";
|
|
9
|
-
import"./index-
|
|
9
|
+
import"./index-55mynnqs.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-
|
|
22
|
+
import("./CodeAgent-kyprmy06.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-
|
|
38
|
-
import("./CodeTui-
|
|
37
|
+
import("./CodeAgent-kyprmy06.js"),
|
|
38
|
+
import("./CodeTui-21mtze3j.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-
|
|
63
|
+
const { CodeAgent } = await import("./CodeAgent-kyprmy06.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));
|
package/commandManifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"byCommand":{"create-workspace":"workspace","generate-agent-rules":"workspace","lint":"workspace","lint-all":"workspace","sync-all":"workspace","init":"workspace","agent":"agent","code":"code","create-application":"application","remove-application":"application","plan-slice":"application","sync":"application","script":"application","console":"application","logs":"application","build":"application","b":"application","typecheck":"application","t":"application","test":"application","build-ios":"application","bi":"application","build-android":"application","ba":"application","build-desktop":"application","bd":"application","start":"application","s":"application","start-ios":"application","si":"application","start-android":"application","sa":"application","start-desktop":"application","sd":"application","release-ios":"application","release-android":"application","pack-update":"application","update-keygen":"application","publish-update":"application","dbup":"application","db-export":"application","db-import":"application","dbdown":"application","create-library":"library","remove-library":"library","sync-library":"library","library-status":"library","install-library":"library","start-registry":"localRegistry","reset-registry":"localRegistry","smoke-registry":"localRegistry","version":"package","create-package":"package","remove-package":"package","sync-package":"package","build-package":"package","verify-dist-package":"package","verify-akan-publish-packages":"package","create-module":"module","remove-module":"module","create-service":"module","create-view":"module","create-unit":"module","create-template":"module","create-crud-page":"page","context":"context","doctor":"context","mcp-install":"context","mcp":"context","mcp-call":"context","login":"cloud","logout":"cloud","deploy-akan":"cloud","test-platforms":"cloud","update":"cloud","download-env":"cloud","upload-env":"cloud","subspace":"subspace","guideline":"guideline","create-scalar":"scalar","remove-scalar":"scalar","create-ui":"primitive","add-field":"primitive","add-enum-field":"primitive","quality":"quality","repair":"repair","workflow":"workflow","tunnel":"tunnel"}}
|
|
1
|
+
{"byCommand":{"create-workspace":"workspace","generate-agent-rules":"workspace","lint":"workspace","lint-all":"workspace","machine-keygen":"workspace","sync-all":"workspace","init":"workspace","agent":"agent","code":"code","create-application":"application","remove-application":"application","plan-slice":"application","sync":"application","script":"application","console":"application","logs":"application","build":"application","b":"application","typecheck":"application","t":"application","test":"application","build-ios":"application","bi":"application","build-android":"application","ba":"application","build-desktop":"application","bd":"application","start":"application","s":"application","start-ios":"application","si":"application","start-android":"application","sa":"application","start-desktop":"application","sd":"application","release-ios":"application","release-android":"application","pack-update":"application","update-keygen":"application","publish-update":"application","dbup":"application","db-export":"application","db-import":"application","dbdown":"application","create-library":"library","remove-library":"library","sync-library":"library","library-status":"library","install-library":"library","start-registry":"localRegistry","reset-registry":"localRegistry","smoke-registry":"localRegistry","version":"package","create-package":"package","remove-package":"package","sync-package":"package","build-package":"package","verify-dist-package":"package","verify-akan-publish-packages":"package","create-module":"module","remove-module":"module","create-service":"module","create-view":"module","create-unit":"module","create-template":"module","create-crud-page":"page","context":"context","doctor":"context","mcp-install":"context","mcp":"context","mcp-call":"context","login":"cloud","logout":"cloud","deploy-akan":"cloud","test-platforms":"cloud","update":"cloud","push-update":"cloud","register-binary":"cloud","upload-secret":"cloud","list-secrets":"cloud","remove-secret":"cloud","download-env":"cloud","upload-env":"cloud","subspace":"subspace","guideline":"guideline","create-scalar":"scalar","remove-scalar":"scalar","create-ui":"primitive","add-field":"primitive","add-enum-field":"primitive","quality":"quality","repair":"repair","workflow":"workflow","pipeline":"pipeline","tunnel":"tunnel"}}
|
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
import {
|
|
3
3
|
Workspace,
|
|
4
4
|
command
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-6jjtnhkw.js";
|
|
6
6
|
import"./index-52w0fvh8.js";
|
|
7
|
-
import"./index-
|
|
7
|
+
import"./index-55mynnqs.js";
|
|
8
8
|
import"./index-hj6w4ka1.js";
|
|
9
|
-
import"./index-
|
|
10
|
-
import"./index-
|
|
11
|
-
import"./index-
|
|
12
|
-
import"./index-
|
|
9
|
+
import"./index-05g3jayg.js";
|
|
10
|
+
import"./index-2mx692qq.js";
|
|
11
|
+
import"./index-ae5pwhgs.js";
|
|
12
|
+
import"./index-1w2qaee2.js";
|
|
13
13
|
import"./index-zzvvc845.js";
|
|
14
|
-
import"./index-
|
|
15
|
-
import"./index-
|
|
16
|
-
import"./index-
|
|
17
|
-
import"./index-
|
|
18
|
-
import"./index-
|
|
19
|
-
import"./index-
|
|
14
|
+
import"./index-fm46xrf1.js";
|
|
15
|
+
import"./index-2etcv0sc.js";
|
|
16
|
+
import"./index-e0cvze1s.js";
|
|
17
|
+
import"./index-ctanya41.js";
|
|
18
|
+
import"./index-c76k723e.js";
|
|
19
|
+
import"./index-rwq3ekqc.js";
|
|
20
20
|
import {
|
|
21
21
|
ContextScript
|
|
22
|
-
} from "./index-
|
|
22
|
+
} from "./index-8r4d7cmt.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-ae5pwhgs.js";
|
|
5
|
+
import"./index-rwq3ekqc.js";
|
|
6
|
+
import"./index-c76k723e.js";
|
|
7
|
+
import"./index-ctanya41.js";
|
|
8
|
+
import"./index-fm46xrf1.js";
|
|
9
|
+
import"./index-e0cvze1s.js";
|
|
10
|
+
import"./index-2etcv0sc.js";
|
|
11
|
+
import"./index-1w2qaee2.js";
|
|
12
|
+
import"./index-2mx692qq.js";
|
|
13
|
+
import"./index-05g3jayg.js";
|
|
14
|
+
import"./index-zzvvc845.js";
|
|
15
|
+
import"./index-6jjtnhkw.js";
|
|
16
|
+
import"./index-55mynnqs.js";
|
|
17
|
+
import"./index-hj6w4ka1.js";
|
|
18
|
+
import"./index-52w0fvh8.js";
|
|
19
|
+
export {
|
|
20
|
+
ContextRunner2 as ContextRunner
|
|
21
|
+
};
|
|
@@ -47,7 +47,9 @@ pages declaring one name never clash, and a registry kept outside the surface re
|
|
|
47
47
|
`AgentProvider` or an `Agent.Zone` belongs to whoever provided it.
|
|
48
48
|
- **The panel is customized in three widening steps, and most designs stop at the first.** Props first:
|
|
49
49
|
`open` / `onOpenChange` drive it from the app's own control (`launcher={false}` then draws no launcher of its
|
|
50
|
-
own), `
|
|
50
|
+
own), `launcherPlacement` / `hideLauncherBelow` place the launcher — which sits above the page's bottom chrome
|
|
51
|
+
and under every menu and modal — `launcherClassName` / `panelClassName` reach one surface each where
|
|
52
|
+
`className` reaches both, `intro`
|
|
51
53
|
replaces the empty-state line — where starter questions go — and `header` adds controls beside the built-in
|
|
52
54
|
clear and close. `chrome={false}` drops the header bar whole, for an `inline` chat inside a panel the app
|
|
53
55
|
already titles, and `defaultDraft` opens the composer with text in it without sending it. A panel driven by a
|
|
@@ -306,7 +308,9 @@ pages declaring one name never clash, and a registry kept outside the surface re
|
|
|
306
308
|
an inline arrow can be clicked by a person and by nobody else. `.desc()` is required and comes first, `.arg()`
|
|
307
309
|
is an argument the caller must pass and `.opt()` one it may leave out (the `exec` parameter is then `| null`),
|
|
308
310
|
and `.exec()` is the only hook, so the chain completes in one unconditional statement and the callable carries
|
|
309
|
-
`data-akan-action` like a store setter does. A `remove*` name defaults to a confirm gate.
|
|
311
|
+
`data-akan-action` like a store setter does. A `remove*` name defaults to a confirm gate. `st.tool("x", { label:
|
|
312
|
+
l("ticket.archive") })` gives the action a name a person reads — `Agent.useScreenActions()` hands it to a command
|
|
313
|
+
palette, and the model never sees it. Reach a store action
|
|
310
314
|
from the body — `.exec((id) => st.do.removeX(id))` — which is how an agent gets CRUD; `st.do` on its own
|
|
311
315
|
reaches nobody.
|
|
312
316
|
- **`.card()` is the other way the chain ends, for an answer that is the user's to give.** Where `.exec()` runs a
|
|
@@ -357,6 +361,10 @@ pages declaring one name never clash, and a registry kept outside the surface re
|
|
|
357
361
|
(a different `modal`, a different redirect) cannot honestly share a description, and that pair wants a
|
|
358
362
|
`namespace` or nothing at all. The ids come from the `<slice>.items` resource `Load.Units` and
|
|
359
363
|
`Data.ListContainer` already expose.
|
|
364
|
+
- **A command palette lists the same declarations.** `Agent.useScreenActions()` returns the screen's published
|
|
365
|
+
tools that take no required argument, each with a `run` that calls the control's own handler (guard included,
|
|
366
|
+
not logged as an agent call) and `needsConfirm` for the ones a person should confirm — so ⌘K offers exactly
|
|
367
|
+
what the agent can do here, with nothing declared twice.
|
|
360
368
|
|
|
361
369
|
## What `akanjs/ui` Publishes For You
|
|
362
370
|
- **`akanjs/ui` publishes its own controls, so an app writes nothing for them.** `Data.ListContainer` (and every
|