@akanjs/cli 3.0.0-beta.10 → 3.0.0-beta.12
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/TunnelShare-sbsaggmb.js +9 -0
- package/{abstractCompactor-gmkc0z8j.js → abstractCompactor-bqh31fk5.js} +2 -2
- package/{agent.command-0q17pnrs.js → agent.command-7357vxd8.js} +5 -5
- package/{application.command-18y0s485.js → application.command-pc8mdn3w.js} +10 -10
- package/{applicationBuildRunner-kxwbssgn.js → applicationBuildRunner-4f1wrba0.js} +2 -2
- package/{applicationReleasePackager-4yasxwv9.js → applicationReleasePackager-jkjmy5ee.js} +1 -1
- package/buildBatch.proc.js +2 -2
- package/{capacitorApp-36rbr858.js → capacitorApp-hqvsrec4.js} +2 -2
- package/{cloud.command-av97ndh6.js → cloud.command-cawrd5nq.js} +10 -10
- package/cloud.script-1bmptvw0.js +20 -0
- package/commandManifest.json +1 -1
- package/{context.command-5v37ef3n.js → context.command-982b6kdp.js} +14 -14
- package/{devTui-m1atgkc9.js → devTui-hmteztv3.js} +4 -24
- package/{devTuiView-0hc2emhe.js → devTuiView-40jvjnyz.js} +1 -1
- package/{guideline.command-4pz9g1rt.js → guideline.command-jn0vwszx.js} +4 -4
- package/guidelines/agentRule/agentRule.instruction.md +69 -0
- package/incrementalBuilder.proc.js +1 -1
- package/{index-ktb5njgy.js → index-15r9a10e.js} +2 -2
- package/{index-vxtad5bd.js → index-1nwxbr2y.js} +2 -2
- package/{index-y6n8nmny.js → index-3pvkjza8.js} +10 -10
- package/{index-2tv3fdx4.js → index-5nyznra1.js} +1 -0
- package/{index-wt7qrtd4.js → index-7f4dsf9v.js} +1 -1
- package/{index-ffvk10zz.js → index-8pkvrcv1.js} +3 -3
- package/{index-rtxxan88.js → index-8tfmh0v6.js} +5 -5
- package/{index-2xp0kfkt.js → index-ay8wj00x.js} +7 -7
- package/{index-0g7r8xz3.js → index-b3ae16mg.js} +1 -1
- package/{index-m0xccmmm.js → index-bw2marpf.js} +9 -0
- package/{index-a17x49vg.js → index-ceph7zqj.js} +3 -3
- package/{index-04bk599g.js → index-em4swemt.js} +3 -3
- package/{index-5ystnsd5.js → index-fr2x3qvv.js} +5 -5
- package/index-jcekapz4.js +49 -0
- package/{index-gyd220p2.js → index-jwjaf9fy.js} +1 -1
- package/{index-d43r08tf.js → index-kbsach1y.js} +4 -4
- package/index-p6pbz9n5.js +25 -0
- package/{index-sj5vxr8f.js → index-r8bd61d9.js} +46 -11
- package/{index-k2j1hc4r.js → index-s3fvrydw.js} +3 -3
- package/{index-vyvre9en.js → index-sh88vtye.js} +1 -1
- package/{index-9077wzd2.js → index-t8gvwcrx.js} +2 -2
- package/{index-a64esmtb.js → index-vrwdx0zx.js} +1 -1
- package/{index-te54x9zm.js → index-yc1keaer.js} +2 -2
- package/{index-j9yhg404.js → index-ys7dvdb3.js} +1 -1
- package/index.js +20 -19
- package/{library.command-qzzbj6d8.js → library.command-1f9h2ex6.js} +3 -3
- package/{localRegistry.command-vyrgg4xw.js → localRegistry.command-rx758ajg.js} +9 -9
- package/{module.command-rq5hq3ax.js → module.command-c2eve036.js} +7 -7
- package/{package.command-d9hd6v9n.js → package.command-y2rh4np7.js} +3 -3
- package/package.json +2 -2
- package/{page.command-126d56te.js → page.command-e5h29fyt.js} +3 -3
- package/{primitive.command-taxd1538.js → primitive.command-c44f7z1s.js} +8 -8
- package/{quality.command-6gsna0a3.js → quality.command-5evdd263.js} +2 -2
- package/{repair.command-tq2dgy72.js → repair.command-c2amvt74.js} +5 -5
- package/{scalar.command-3bcmrrkv.js → scalar.command-xyzerygj.js} +6 -6
- package/{subspace.command-eddzqpx3.js → subspace.command-ebfwzypw.js} +5 -5
- package/tunnel.command-v6a7at16.js +130 -0
- package/{workflow.command-gtdnzvbz.js → workflow.command-t174m6sy.js} +11 -11
- package/{workspace.command-06wvstgr.js → workspace.command-bg3eveth.js} +21 -21
- package/cloud.script-cm11xjdz.js +0 -20
package/.build-stamp
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4495c90d89259871516e9f4f963f83c5e4f03060d6c7d8cd42208e8934ed341d
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
Workspace,
|
|
4
4
|
command
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-b3ae16mg.js";
|
|
6
6
|
import"./index-q0y2jq9j.js";
|
|
7
|
-
import"./index-
|
|
7
|
+
import"./index-5nyznra1.js";
|
|
8
8
|
import"./index-6wwzs1bc.js";
|
|
9
9
|
import"./index-by5gpp8x.js";
|
|
10
|
-
import"./index-
|
|
11
|
-
import"./index-
|
|
10
|
+
import"./index-jwjaf9fy.js";
|
|
11
|
+
import"./index-15r9a10e.js";
|
|
12
12
|
import"./index-h7yw2z9n.js";
|
|
13
13
|
import {
|
|
14
14
|
AgentScript
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-s3fvrydw.js";
|
|
16
16
|
|
|
17
17
|
// pkgs/@akanjs/cli/agent/agent.command.ts
|
|
18
18
|
class AgentCommand extends command("agent", [AgentScript], ({ public: target }) => ({
|
|
@@ -6,22 +6,22 @@ import {
|
|
|
6
6
|
Exec,
|
|
7
7
|
Workspace,
|
|
8
8
|
command
|
|
9
|
-
} from "./index-
|
|
9
|
+
} from "./index-b3ae16mg.js";
|
|
10
10
|
import"./index-q0y2jq9j.js";
|
|
11
|
-
import"./index-
|
|
11
|
+
import"./index-5nyznra1.js";
|
|
12
12
|
import"./index-6wwzs1bc.js";
|
|
13
13
|
import {
|
|
14
14
|
ApplicationScript
|
|
15
|
-
} from "./index-
|
|
16
|
-
import"./index-
|
|
15
|
+
} from "./index-r8bd61d9.js";
|
|
16
|
+
import"./index-1nwxbr2y.js";
|
|
17
17
|
import"./index-hwkygn9s.js";
|
|
18
|
-
import
|
|
19
|
-
AbstractDoc
|
|
20
|
-
} from "./index-meh558jy.js";
|
|
21
|
-
import"./index-j9yhg404.js";
|
|
18
|
+
import"./index-ys7dvdb3.js";
|
|
22
19
|
import {
|
|
23
20
|
getMobileTargetChoices
|
|
24
21
|
} from "./index-47pj3aee.js";
|
|
22
|
+
import {
|
|
23
|
+
AbstractDoc
|
|
24
|
+
} from "./index-meh558jy.js";
|
|
25
25
|
|
|
26
26
|
// pkgs/@akanjs/cli/application/application.command.ts
|
|
27
27
|
import { select } from "@inquirer/prompts";
|
|
@@ -106,8 +106,8 @@ class ApplicationCommand extends command("application", [ApplicationScript], ({
|
|
|
106
106
|
start: target({ short: true, desc: "Start development server(s) (frontend SSR + backend)" }).with(Apps).option("plain", Boolean, { desc: "print prefixed lines instead of the full-screen view", default: false }).option("kill", Boolean, { flag: "k", desc: "free the dev ports first, whoever is holding them", default: false }).option("concurrency", Number, {
|
|
107
107
|
desc: "apps to boot at a time (default: what this machine's memory and cores allow)",
|
|
108
108
|
nullable: true
|
|
109
|
-
}).option("dbup", Boolean, { desc: "start the local database first", default: true }).option("open", Boolean, { desc: "open web browser?", default: false }).option("write", Boolean, { desc: "write code generation", default: true }).exec(async function(apps, plain, kill, concurrency, dbup, open, write) {
|
|
110
|
-
await this.applicationScript.start(apps, { plain, kill, concurrency, dbup, open, write });
|
|
109
|
+
}).option("dbup", Boolean, { desc: "start the local database first", default: true }).option("open", Boolean, { desc: "open web browser?", default: false }).option("share", Boolean, { desc: "also share each app on a public URL through an akan tunnel", default: false }).option("write", Boolean, { desc: "write code generation", default: true }).exec(async function(apps, plain, kill, concurrency, dbup, open, share, write) {
|
|
110
|
+
await this.applicationScript.start(apps, { plain, kill, concurrency, dbup, open, share, write });
|
|
111
111
|
}),
|
|
112
112
|
startIos: target({ short: true, desc: "Start iOS app in simulator or device" }).with(App).option("target", String, mobileTargetOption).option("env", String, {
|
|
113
113
|
enum: ["local", "debug", "develop", "main"],
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
Spinner
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-5nyznra1.js";
|
|
5
5
|
import {
|
|
6
6
|
AllRoutesBuilder,
|
|
7
7
|
CsrArtifactBuilder,
|
|
8
8
|
FontPruner,
|
|
9
9
|
precompressArtifacts,
|
|
10
10
|
SsrBaseArtifactBuilder
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-vrwdx0zx.js";
|
|
12
12
|
import"./index-w8kmx1b6.js";
|
|
13
13
|
import"./index-q0y2jq9j.js";
|
|
14
14
|
import"./index-hwkygn9s.js";
|
package/buildBatch.proc.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
WorkspaceExecutor,
|
|
4
4
|
AppExecutor
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-5nyznra1.js";
|
|
6
6
|
import"./index-q0y2jq9j.js";
|
|
7
7
|
import"./index-6wwzs1bc.js";
|
|
8
8
|
import {
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
CsrArtifactBuilder,
|
|
12
12
|
FontOptimizer,
|
|
13
13
|
SsrBaseArtifactBuilder
|
|
14
|
-
} from "./index-
|
|
14
|
+
} from "./index-vrwdx0zx.js";
|
|
15
15
|
import"./index-w8kmx1b6.js";
|
|
16
16
|
import"./index-hwkygn9s.js";
|
|
17
17
|
import"./index-n68jx79w.js";
|
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
import"./index-q0y2jq9j.js";
|
|
3
3
|
import {
|
|
4
4
|
GlobalConfig
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-bw2marpf.js";
|
|
6
6
|
import {
|
|
7
7
|
Workspace,
|
|
8
8
|
command
|
|
9
|
-
} from "./index-
|
|
10
|
-
import"./index-
|
|
9
|
+
} from "./index-b3ae16mg.js";
|
|
10
|
+
import"./index-5nyznra1.js";
|
|
11
11
|
import"./index-6wwzs1bc.js";
|
|
12
|
-
import"./index-
|
|
13
|
-
import"./index-
|
|
14
|
-
import"./index-
|
|
12
|
+
import"./index-yc1keaer.js";
|
|
13
|
+
import"./index-r8bd61d9.js";
|
|
14
|
+
import"./index-1nwxbr2y.js";
|
|
15
15
|
import"./index-hwkygn9s.js";
|
|
16
16
|
import"./index-kcxmv48c.js";
|
|
17
|
-
import"./index-
|
|
18
|
-
import"./index-
|
|
17
|
+
import"./index-t8gvwcrx.js";
|
|
18
|
+
import"./index-8tfmh0v6.js";
|
|
19
19
|
import {
|
|
20
20
|
CloudScript2
|
|
21
|
-
} from "./index-
|
|
22
|
-
import"./index-
|
|
21
|
+
} from "./index-ay8wj00x.js";
|
|
22
|
+
import"./index-ys7dvdb3.js";
|
|
23
23
|
|
|
24
24
|
// pkgs/@akanjs/cli/cloud/cloud.command.ts
|
|
25
25
|
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-ay8wj00x.js";
|
|
5
|
+
import"./index-8tfmh0v6.js";
|
|
6
|
+
import"./index-r8bd61d9.js";
|
|
7
|
+
import"./index-ys7dvdb3.js";
|
|
8
|
+
import"./index-1nwxbr2y.js";
|
|
9
|
+
import"./index-t8gvwcrx.js";
|
|
10
|
+
import"./index-yc1keaer.js";
|
|
11
|
+
import"./index-bw2marpf.js";
|
|
12
|
+
import"./index-b3ae16mg.js";
|
|
13
|
+
import"./index-hwkygn9s.js";
|
|
14
|
+
import"./index-5nyznra1.js";
|
|
15
|
+
import"./index-6wwzs1bc.js";
|
|
16
|
+
import"./index-kcxmv48c.js";
|
|
17
|
+
import"./index-q0y2jq9j.js";
|
|
18
|
+
export {
|
|
19
|
+
CloudScript2 as CloudScript
|
|
20
|
+
};
|
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","create-application":"application","remove-application":"application","plan-slice":"application","sync":"application","compact":"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","start":"application","s":"application","start-ios":"application","si":"application","start-android":"application","sa":"application","release-ios":"application","release-android":"application","release-source":"application","codepush":"application","dbup":"application","dbdown":"application","configure-app":"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","set-llm":"cloud","reset-llm":"cloud","ask":"cloud","deploy-akan":"cloud","update":"cloud","download-env":"cloud","upload-env":"cloud","subspace":"subspace","guideline":"guideline","generate-instruction":"guideline","update-instruction":"guideline","generate-document":"guideline","reapply-instruction":"guideline","create-scalar":"scalar","remove-scalar":"scalar","create-ui":"primitive","add-field":"primitive","add-enum-field":"primitive","quality":"quality","repair":"repair","workflow":"workflow"}}
|
|
1
|
+
{"byCommand":{"create-workspace":"workspace","generate-agent-rules":"workspace","lint":"workspace","lint-all":"workspace","sync-all":"workspace","init":"workspace","agent":"agent","create-application":"application","remove-application":"application","plan-slice":"application","sync":"application","compact":"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","start":"application","s":"application","start-ios":"application","si":"application","start-android":"application","sa":"application","release-ios":"application","release-android":"application","release-source":"application","codepush":"application","dbup":"application","dbdown":"application","configure-app":"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","set-llm":"cloud","reset-llm":"cloud","ask":"cloud","deploy-akan":"cloud","update":"cloud","download-env":"cloud","upload-env":"cloud","subspace":"subspace","guideline":"guideline","generate-instruction":"guideline","update-instruction":"guideline","generate-document":"guideline","reapply-instruction":"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"}}
|
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
import {
|
|
3
3
|
Workspace,
|
|
4
4
|
command
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-b3ae16mg.js";
|
|
6
6
|
import"./index-q0y2jq9j.js";
|
|
7
|
-
import"./index-
|
|
7
|
+
import"./index-5nyznra1.js";
|
|
8
8
|
import"./index-6wwzs1bc.js";
|
|
9
9
|
import"./index-by5gpp8x.js";
|
|
10
|
-
import"./index-
|
|
11
|
-
import"./index-
|
|
10
|
+
import"./index-jwjaf9fy.js";
|
|
11
|
+
import"./index-15r9a10e.js";
|
|
12
12
|
import {
|
|
13
13
|
ContextScript
|
|
14
|
-
} from "./index-
|
|
15
|
-
import"./index-
|
|
14
|
+
} from "./index-3pvkjza8.js";
|
|
15
|
+
import"./index-7f4dsf9v.js";
|
|
16
16
|
import"./index-h7yw2z9n.js";
|
|
17
|
-
import"./index-
|
|
18
|
-
import"./index-
|
|
19
|
-
import"./index-
|
|
20
|
-
import"./index-
|
|
21
|
-
import"./index-
|
|
22
|
-
import"./index-
|
|
23
|
-
import"./index-
|
|
24
|
-
import"./index-
|
|
17
|
+
import"./index-em4swemt.js";
|
|
18
|
+
import"./index-8pkvrcv1.js";
|
|
19
|
+
import"./index-bw2marpf.js";
|
|
20
|
+
import"./index-yc1keaer.js";
|
|
21
|
+
import"./index-fr2x3qvv.js";
|
|
22
|
+
import"./index-sh88vtye.js";
|
|
23
|
+
import"./index-kbsach1y.js";
|
|
24
|
+
import"./index-ceph7zqj.js";
|
|
25
25
|
|
|
26
26
|
// pkgs/@akanjs/cli/context/context.command.ts
|
|
27
27
|
class ContextCommand extends command("context", [ContextScript], ({ public: target }) => ({
|
|
@@ -4,34 +4,14 @@ import {
|
|
|
4
4
|
plainTextOf,
|
|
5
5
|
HOST_SOURCE,
|
|
6
6
|
DevLogBuffer
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-r8bd61d9.js";
|
|
8
|
+
import {
|
|
9
|
+
writeClipboard
|
|
10
|
+
} from "./index-p6pbz9n5.js";
|
|
8
11
|
|
|
9
12
|
// pkgs/@akanjs/cli/application/devTui.tsx
|
|
10
13
|
import { render } from "ink";
|
|
11
14
|
|
|
12
|
-
// pkgs/@akanjs/cli/clipboard.ts
|
|
13
|
-
var clipboardCommands = () => {
|
|
14
|
-
if (process.platform === "darwin")
|
|
15
|
-
return [["pbcopy"]];
|
|
16
|
-
if (process.platform === "win32")
|
|
17
|
-
return [["clip"]];
|
|
18
|
-
return [["wl-copy"], ["xclip", "-selection", "clipboard"], ["xsel", "--clipboard", "--input"]];
|
|
19
|
-
};
|
|
20
|
-
var writeClipboard = async (text) => {
|
|
21
|
-
for (const command of clipboardCommands()) {
|
|
22
|
-
try {
|
|
23
|
-
const proc = Bun.spawn(command, {
|
|
24
|
-
stdin: new TextEncoder().encode(text),
|
|
25
|
-
stdout: "ignore",
|
|
26
|
-
stderr: "ignore"
|
|
27
|
-
});
|
|
28
|
-
if (await proc.exited === 0)
|
|
29
|
-
return true;
|
|
30
|
-
} catch {}
|
|
31
|
-
}
|
|
32
|
-
return false;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
15
|
// pkgs/@akanjs/cli/ui/DevTuiApp.tsx
|
|
36
16
|
import { Box, Text, useInput } from "ink";
|
|
37
17
|
import { useEffect, useState } from "react";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
// pkgs/@akanjs/cli/application/devTuiView.ts
|
|
3
3
|
var createDevTuiView = async (supervisor) => {
|
|
4
|
-
const { DevTui } = await import("./devTui-
|
|
4
|
+
const { DevTui } = await import("./devTui-hmteztv3.js");
|
|
5
5
|
return new DevTui(supervisor);
|
|
6
6
|
};
|
|
7
7
|
export {
|
|
@@ -4,21 +4,21 @@ import {
|
|
|
4
4
|
runner,
|
|
5
5
|
script,
|
|
6
6
|
command
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-b3ae16mg.js";
|
|
8
8
|
import {
|
|
9
9
|
FileSys
|
|
10
10
|
} from "./index-q0y2jq9j.js";
|
|
11
|
-
import"./index-
|
|
11
|
+
import"./index-5nyznra1.js";
|
|
12
12
|
import {
|
|
13
13
|
getDirname2
|
|
14
14
|
} from "./index-6wwzs1bc.js";
|
|
15
15
|
import {
|
|
16
16
|
Prompter
|
|
17
17
|
} from "./index-h7yw2z9n.js";
|
|
18
|
-
import"./index-
|
|
18
|
+
import"./index-bw2marpf.js";
|
|
19
19
|
import {
|
|
20
20
|
AiSession
|
|
21
|
-
} from "./index-
|
|
21
|
+
} from "./index-yc1keaer.js";
|
|
22
22
|
|
|
23
23
|
// pkgs/@akanjs/cli/guideline/guideline.script.ts
|
|
24
24
|
import { Logger } from "akanjs/common";
|
|
@@ -675,3 +675,72 @@ apps and libs never import it directly (`no-import-external-library`) — everyt
|
|
|
675
675
|
error result rather than a silent empty answer, and the settled exchange renders as question-and-answer instead
|
|
676
676
|
of a tool row. **Never re-implement it per screen** — a `st.tool("askAboutX")` that opens a modal is the same
|
|
677
677
|
thing with a worse transcript — and a hook tool named `askUser` shadows it like any other built-in.
|
|
678
|
+
|
|
679
|
+
## What The Page Draws
|
|
680
|
+
- **The page shows the agent's work, not just the transcript.** A chat panel is closed as often as it is open, and
|
|
681
|
+
a form that fills itself or a tab that switches on its own is a change the user watches happen with nothing
|
|
682
|
+
anywhere attributing it. So **the control a call was published from is ringed** where it stands, scrolled to
|
|
683
|
+
first when it is off screen, and **a pointer travels to it and presses it** — both on by default, and both
|
|
684
|
+
driven from the tool call itself rather than from a store action, which cannot tell the agent's write from the
|
|
685
|
+
user's.
|
|
686
|
+
- **It costs an app nothing, for the same reason `data-akan-action` does.** `onChange={st.do.setTitleOnTask}` by
|
|
687
|
+
reference is what annotates the control, and the annotation is what makes it findable — so the fields and verbs
|
|
688
|
+
that matter light up with no code. An inline arrow publishes no tool, carries no annotation, and therefore
|
|
689
|
+
draws nothing: one wrapper silently costs three things at once.
|
|
690
|
+
- **For a control the framework did not render, spread `agentAttrs`** from `akanjs/ui`:
|
|
691
|
+
`<button {...agentAttrs(run)} onClick={run}>`, where `run` is what `st.tool(…).exec(…)` returned. It reads the
|
|
692
|
+
name off the callable, so there is nothing to keep in sync and no `ref` to thread — and it earns the same E2E
|
|
693
|
+
selector and accessibility name an `akanjs/ui` control has. Never hand-write `data-akan-*`.
|
|
694
|
+
- **A control that shares its handler with its siblings takes a key**: `agentAttrs(switchTab, menu)`, in the same
|
|
695
|
+
vocabulary the call's argument uses. One tool serves a whole tab strip or a whole list, so without it every
|
|
696
|
+
namesake is interchangeable in the DOM and the page can say *what* the agent did but never *where* — which the
|
|
697
|
+
no-guessing rule then turns into drawing nothing. `Tab.Menu` passes its `menu` key; do the same for a row verb
|
|
698
|
+
whose id the call names.
|
|
699
|
+
- **Almost nothing is waited on.** The call starts the moment the effect is handed its event; a ring that lands a
|
|
700
|
+
frame later costs the turn nothing, and an animation that held a call would make the agent slower for a
|
|
701
|
+
decoration. A turn past four scrolls stops scrolling and keeps ringing — eight scrolls across a page is motion
|
|
702
|
+
sickness rather than attribution. **The one exception is `navigate`**, whose press has to land before the router
|
|
703
|
+
replaces the tree the link is in; it is capped at 600ms and the call goes either way.
|
|
704
|
+
- **What it refuses to draw is the point.** A name several rows answer to rings nothing rather than guessing a row,
|
|
705
|
+
a call an approval or a guard turned back is never drawn at all, a tool no control carries draws nothing, and a
|
|
706
|
+
backgrounded tab draws nothing. A ring on the wrong element is worse than no ring: it is the screen telling the
|
|
707
|
+
user something untrue about what just happened. **A control the screen is not actually showing is not pointed at
|
|
708
|
+
either, and the pointer goes rather than travelling to it**: `checkVisibility` answers about an element alone, so
|
|
709
|
+
one under a modal's backdrop, inside a drawer that has slid off, or faded to nothing all pass it while being
|
|
710
|
+
invisible, and a pointer sent there lands on a blank patch of overlay. The test is `elementFromPoint` at the
|
|
711
|
+
control's own centre, taken after the reveal has settled. **`navigate` is mostly in that last class** — the router is not
|
|
712
|
+
an element, so it draws nothing. A bar across the top of the page was tried for it and removed: it read as
|
|
713
|
+
chrome the page had grown rather than as the agent doing something, which is the opposite of attribution. What
|
|
714
|
+
it does draw is the **link already on screen that goes where it is going**, when exactly one does and the user
|
|
715
|
+
can already see it: that one is an element, and the pointer presses it before the route moves. Addresses are
|
|
716
|
+
compared as routes (`router.routeOf`), since the locale and base-path segments are on the `<a>` and never on the
|
|
717
|
+
tool argument. An off-screen link is left alone — scrolling to a link and then leaving the page it is on is two
|
|
718
|
+
motions for one act. **Link presence is a drawing condition, never a permission one**: the agent may navigate
|
|
719
|
+
anywhere the user could type, and a zone that must not leave one screen drops `navigate` through `builtins`.
|
|
720
|
+
- **Turn it off with `visual`** on `Agent.Chat` / `Agent.Zone` — `false` for all of it, `{ cursor: false }` or
|
|
721
|
+
`{ reveal: false }` for one effect. The pointer is chrome (`data-agent-ui`, `aria-hidden`,
|
|
722
|
+
`pointer-events: none`), so `readScreen` never reads it back and `highlight` can never aim at it.
|
|
723
|
+
- **`ToolActivity` is the channel underneath**, a `ToolRunner` host option and an `AgentSession.onActivity`, firing
|
|
724
|
+
`start` / `end` around the execution alone. It is deliberately not `progress`: that one fires only for a tool
|
|
725
|
+
that chose to report, and a tool that says nothing about itself is exactly the one whose effect arrives
|
|
726
|
+
unexplained. The `start` may answer a promise, and the call waits for it — the whole of what makes drawing a
|
|
727
|
+
click on a link possible.
|
|
728
|
+
- **`AgentSession.onTurn(running)` is the other half**, and the unit the pointer's life is measured in. A model's
|
|
729
|
+
calls arrive with its own writing between them, seconds each, so a pointer that lived for the length of a *call*
|
|
730
|
+
spent every turn vanishing and coming back. Only the conversation loop reports there — `compact` runs under the
|
|
731
|
+
same internal flag and drives nothing on screen.
|
|
732
|
+
- **The pointer presses on arrival, never on departure** — a press fired as it leaves is a click on whatever it
|
|
733
|
+
was still over. It glides only when the hop is far enough to be worth following (a third of a second to cross
|
|
734
|
+
fifty pixels reads as lag, not motion), and teleports otherwise. It appears at the first control it presses,
|
|
735
|
+
**drifts clear of what it pressed** and waits out the gap between calls there as a spinner — a person clicks and
|
|
736
|
+
takes the hand away, and a spinner left sitting on the button covers the change it just caused — and fades when
|
|
737
|
+
the turn ends; **a turn that
|
|
738
|
+
drove no control draws no pointer at all**, since parking one in a corner for a turn that only answered a
|
|
739
|
+
question claims something that did not happen. While a reveal scrolls, it holds still — as a person's does — and
|
|
740
|
+
carries a chevron pointing the way the view is travelling, because stillness over a sliding page otherwise reads
|
|
741
|
+
as a pointer that has come loose rather than as the one doing the scrolling. The ring answers *where* and the
|
|
742
|
+
pointer answers *who*, which is why they are one default rather than two.
|
|
743
|
+
- **A form patch fans out over the fields it named.** `fill<Model>Form` is published by the form rather than by any
|
|
744
|
+
one control, so it rings one control per field in the arguments — resolved through the same
|
|
745
|
+
`data-akan-state="<model>Form.<field>"` the setter annotates — capped at five. `writeOn<Model>(path, value)`
|
|
746
|
+
draws nothing, for the same reason it carries no annotation: there is no control to put one on.
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
isScannedRootEntry,
|
|
8
8
|
AppExecutor,
|
|
9
9
|
LibExecutor
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-5nyznra1.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-
|
|
22
|
+
} from "./index-jwjaf9fy.js";
|
|
23
23
|
|
|
24
24
|
// pkgs/@akanjs/devkit/akanContext.ts
|
|
25
25
|
import { readdir } from "fs/promises";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
AppExecutor
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-5nyznra1.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-jwjaf9fy.js";
|
|
12
12
|
import {
|
|
13
13
|
buildResourceList,
|
|
14
14
|
codexMcpConfigPath,
|
|
@@ -19,33 +19,33 @@ import {
|
|
|
19
19
|
upsertCodexMcpServerBlock,
|
|
20
20
|
renderDoctorText,
|
|
21
21
|
AkanContextAnalyzer
|
|
22
|
-
} from "./index-
|
|
22
|
+
} from "./index-15r9a10e.js";
|
|
23
23
|
import {
|
|
24
24
|
CommandContainer,
|
|
25
25
|
runner,
|
|
26
26
|
script
|
|
27
|
-
} from "./index-
|
|
27
|
+
} from "./index-b3ae16mg.js";
|
|
28
28
|
import {
|
|
29
29
|
isPlaceholderAppId2
|
|
30
|
-
} from "./index-
|
|
30
|
+
} from "./index-7f4dsf9v.js";
|
|
31
31
|
import {
|
|
32
32
|
Prompter
|
|
33
33
|
} from "./index-h7yw2z9n.js";
|
|
34
34
|
import {
|
|
35
35
|
RepairRunner
|
|
36
|
-
} from "./index-
|
|
36
|
+
} from "./index-em4swemt.js";
|
|
37
37
|
import {
|
|
38
38
|
WorkflowRunner
|
|
39
|
-
} from "./index-
|
|
39
|
+
} from "./index-8pkvrcv1.js";
|
|
40
40
|
import {
|
|
41
41
|
ModuleScript
|
|
42
|
-
} from "./index-
|
|
42
|
+
} from "./index-fr2x3qvv.js";
|
|
43
43
|
import {
|
|
44
44
|
PrimitiveScript
|
|
45
|
-
} from "./index-
|
|
45
|
+
} from "./index-kbsach1y.js";
|
|
46
46
|
import {
|
|
47
47
|
ScalarScript
|
|
48
|
-
} from "./index-
|
|
48
|
+
} from "./index-ceph7zqj.js";
|
|
49
49
|
import {
|
|
50
50
|
getMobileTargets
|
|
51
51
|
} from "./index-47pj3aee.js";
|
|
@@ -3576,6 +3576,7 @@ class AppExecutor extends SysExecutor {
|
|
|
3576
3576
|
executor: this,
|
|
3577
3577
|
getPath: (rel) => this.getPath(rel),
|
|
3578
3578
|
fileExists: (rel) => FileSys.fileExists(this.getPath(rel)),
|
|
3579
|
+
readFile: (rel) => this.readFile(rel),
|
|
3579
3580
|
writeFile: async (rel, content, opts) => {
|
|
3580
3581
|
await this.writeFile(rel, content, opts);
|
|
3581
3582
|
},
|
|
@@ -20,13 +20,13 @@ import {
|
|
|
20
20
|
renderWorkflowApply,
|
|
21
21
|
renderWorkflowValidation,
|
|
22
22
|
renderWorkflowRunArtifact
|
|
23
|
-
} from "./index-
|
|
23
|
+
} from "./index-jwjaf9fy.js";
|
|
24
24
|
import {
|
|
25
25
|
AkanContextAnalyzer
|
|
26
|
-
} from "./index-
|
|
26
|
+
} from "./index-15r9a10e.js";
|
|
27
27
|
import {
|
|
28
28
|
runner
|
|
29
|
-
} from "./index-
|
|
29
|
+
} from "./index-b3ae16mg.js";
|
|
30
30
|
|
|
31
31
|
// pkgs/@akanjs/cli/workflow/workflow.runner.ts
|
|
32
32
|
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
@@ -3,20 +3,20 @@ import {
|
|
|
3
3
|
getDefaultHostConfig,
|
|
4
4
|
GlobalConfig,
|
|
5
5
|
CloudApi
|
|
6
|
-
} from "./index-
|
|
6
|
+
} from "./index-bw2marpf.js";
|
|
7
7
|
import {
|
|
8
8
|
WorkspaceExecutor,
|
|
9
9
|
AppExecutor
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-5nyznra1.js";
|
|
11
11
|
import {
|
|
12
12
|
AiSession
|
|
13
|
-
} from "./index-
|
|
13
|
+
} from "./index-yc1keaer.js";
|
|
14
14
|
import {
|
|
15
15
|
runner
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-b3ae16mg.js";
|
|
17
17
|
import {
|
|
18
18
|
openBrowser
|
|
19
|
-
} from "./index-
|
|
19
|
+
} from "./index-r8bd61d9.js";
|
|
20
20
|
|
|
21
21
|
// pkgs/@akanjs/cli/cloud/cloud.runner.ts
|
|
22
22
|
import path from "path";
|
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
import {
|
|
3
3
|
GlobalConfig,
|
|
4
4
|
CloudApi
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-bw2marpf.js";
|
|
6
6
|
import {
|
|
7
7
|
PkgExecutor
|
|
8
|
-
} from "./index-
|
|
8
|
+
} from "./index-5nyznra1.js";
|
|
9
9
|
import {
|
|
10
10
|
AiSession
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-yc1keaer.js";
|
|
12
12
|
import {
|
|
13
13
|
script
|
|
14
|
-
} from "./index-
|
|
14
|
+
} from "./index-b3ae16mg.js";
|
|
15
15
|
import {
|
|
16
16
|
ApplicationScript
|
|
17
|
-
} from "./index-
|
|
17
|
+
} from "./index-r8bd61d9.js";
|
|
18
18
|
import {
|
|
19
19
|
PackageScript
|
|
20
|
-
} from "./index-
|
|
20
|
+
} from "./index-t8gvwcrx.js";
|
|
21
21
|
import {
|
|
22
22
|
CloudRunner
|
|
23
|
-
} from "./index-
|
|
23
|
+
} from "./index-8tfmh0v6.js";
|
|
24
24
|
|
|
25
25
|
// pkgs/@akanjs/cli/cloud/cloud.script.ts
|
|
26
26
|
import { Logger } from "akanjs/common";
|