agentgui 1.0.1116 → 1.0.1118
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/.gm/.embed-generation.code_chunks +1 -0
- package/.gm/.embed-generation.git_commit_vectors +1 -0
- package/.gm/.embed-generation.memories +1 -0
- package/.gm/.embed-generation.rssearch_vectors +1 -0
- package/.gm/prd.yml +15 -3342
- package/AGENTS.md +1 -1
- package/lib/acp-sdk-manager.js +15 -2
- package/lib/claude-runner-agents.js +8 -1
- package/lib/http-handler.js +35 -566
- package/lib/http-routes/mutations.js +199 -0
- package/lib/http-routes/reads.js +212 -0
- package/lib/http-routes/shared.js +213 -0
- package/lib/ws-handlers/agents.js +137 -0
- package/lib/ws-handlers/chat.js +157 -0
- package/lib/ws-handlers/git.js +159 -0
- package/lib/ws-handlers/misc.js +36 -0
- package/lib/ws-handlers/shared.js +47 -0
- package/lib/ws-handlers/terminal-state.js +16 -0
- package/lib/ws-handlers-util.js +8 -463
- package/package.json +1 -1
- package/site/app/js/app.js +126 -104
- package/site/app/js/backend.js +19 -0
- package/site/app/js/chat-persistence.js +123 -0
- package/site/app/vendor/anentrypoint-design/247420.css +1614 -488
- package/site/app/vendor/anentrypoint-design/247420.js +363 -77
- package/.gm/browser-config.json +0 -1
- package/.gm/claim-audit-fired +0 -1
- package/.gm/disciplines/agentgui/mem-1779277005143-0-1352.json +0 -1
- package/.gm/disciplines/agentgui/memories/.flat-export-done +0 -0
- package/.gm/disciplines/agentgui/memories/mem-c07fa3b0836edbe2-1352.md +0 -8
- package/.gm/gm.db +0 -0
- package/.gm/memories/.flat-export-done +0 -1
- package/.gm/memories/mem-0131ff4869d86085-370.md +0 -10
- package/.gm/memories/mem-04049d11cb8c1661-2135.md +0 -8
- package/.gm/memories/mem-069ff10372ed1770-1375.md +0 -8
- package/.gm/memories/mem-08a4a9e050a4deff-3048.md +0 -8
- package/.gm/memories/mem-09597ee0df9c9224-965.md +0 -8
- package/.gm/memories/mem-0993d156f571b619-1059.md +0 -8
- package/.gm/memories/mem-0b681bf2340c8df1-3170.md +0 -8
- package/.gm/memories/mem-0c444abde86202f6-1681.md +0 -8
- package/.gm/memories/mem-0d1408fa048b9923-1159.md +0 -8
- package/.gm/memories/mem-0dad5d82fec829ba-887.md +0 -8
- package/.gm/memories/mem-10a776effb7ce3a6-935.md +0 -8
- package/.gm/memories/mem-10d264b4f8e66fb4-1492.md +0 -8
- package/.gm/memories/mem-118c35ac67541d98-2909.md +0 -8
- package/.gm/memories/mem-119cf70dd19aa0a5-2225.md +0 -8
- package/.gm/memories/mem-15a07cd761b337c4-4320.md +0 -8
- package/.gm/memories/mem-15c73aca528535cb-2183.md +0 -8
- package/.gm/memories/mem-166f52796185e0e7-1487.md +0 -8
- package/.gm/memories/mem-1a148cf9c3126df5-3963.md +0 -8
- package/.gm/memories/mem-1a459001058f618e-567.md +0 -8
- package/.gm/memories/mem-1af3e13f7618e668-2146.md +0 -8
- package/.gm/memories/mem-1fd31d6873e9c164-794.md +0 -8
- package/.gm/memories/mem-21f551be092fd77d-2340.md +0 -8
- package/.gm/memories/mem-231ff5de003f20f0-586.md +0 -8
- package/.gm/memories/mem-2567393d3adb03ab-347.md +0 -8
- package/.gm/memories/mem-27faf41cdd050c80-1261.md +0 -8
- package/.gm/memories/mem-28889e43e8ce64cc-3663.md +0 -8
- package/.gm/memories/mem-2f4fd06515abf439-2562.md +0 -8
- package/.gm/memories/mem-34a749430303c5f7-544.md +0 -8
- package/.gm/memories/mem-3602d11d7bce9446-1057.md +0 -8
- package/.gm/memories/mem-38b7e24dbcba2f3e-639.md +0 -8
- package/.gm/memories/mem-39a7cc2f887a90b1-1079.md +0 -8
- package/.gm/memories/mem-40d6169c8759061d-806.md +0 -8
- package/.gm/memories/mem-4420e6d00e5c8632-2318.md +0 -8
- package/.gm/memories/mem-447e5a54ddc9357a-654.md +0 -8
- package/.gm/memories/mem-455b3beb4afabe14-591.md +0 -8
- package/.gm/memories/mem-4845ee594759151c-560.md +0 -8
- package/.gm/memories/mem-4a1254c60b868b88-374.md +0 -8
- package/.gm/memories/mem-4bafafa47a0e4b6c-3237.md +0 -8
- package/.gm/memories/mem-4c06c45b4d31bc60-1202.md +0 -8
- package/.gm/memories/mem-4dfac801d0378448-3676.md +0 -8
- package/.gm/memories/mem-4ecd3b713e384170-122.md +0 -10
- package/.gm/memories/mem-51d8992a3c6f6c9c-1073.md +0 -8
- package/.gm/memories/mem-539eee7e8c6c10ee-2557.md +0 -8
- package/.gm/memories/mem-559b8b2abc4b1091-1665.md +0 -8
- package/.gm/memories/mem-59dd73a463e54948-871.md +0 -8
- package/.gm/memories/mem-5b99b882ffe1a3c2-2262.md +0 -8
- package/.gm/memories/mem-5feb252a5244149c-1791.md +0 -8
- package/.gm/memories/mem-6224f8d185797f2b-1047.md +0 -8
- package/.gm/memories/mem-6434ee8261a6a6a2-3126.md +0 -8
- package/.gm/memories/mem-66b0947b946f3437-1155.md +0 -8
- package/.gm/memories/mem-6bdf783a1f6be7c2-1062.md +0 -8
- package/.gm/memories/mem-6d49f08bebac54c9-744.md +0 -8
- package/.gm/memories/mem-70d96acb736af2d7-685.md +0 -8
- package/.gm/memories/mem-70de7d5e71fcd439-2680.md +0 -8
- package/.gm/memories/mem-713614f12d7029da-1577.md +0 -8
- package/.gm/memories/mem-720d76c88e64f6ee-1967.md +0 -8
- package/.gm/memories/mem-7535f34f430fc196-1340.md +0 -8
- package/.gm/memories/mem-861a588d2773681a-1311.md +0 -8
- package/.gm/memories/mem-8af7980a92e09959-891.md +0 -8
- package/.gm/memories/mem-8b438ef4c609b7af-401.md +0 -8
- package/.gm/memories/mem-8f59884039787ef3-743.md +0 -8
- package/.gm/memories/mem-92b199c2024ee1aa-2513.md +0 -8
- package/.gm/memories/mem-9329105b05b9c0f6-324.md +0 -10
- package/.gm/memories/mem-94f30cec3c283f97-782.md +0 -10
- package/.gm/memories/mem-956d4813319f65a3-1710.md +0 -8
- package/.gm/memories/mem-96fffbb6615e031b-1263.md +0 -8
- package/.gm/memories/mem-993ab31f7a10aefa-718.md +0 -8
- package/.gm/memories/mem-a3e440db285f655a-995.md +0 -8
- package/.gm/memories/mem-a52933cd6495e6f5-2624.md +0 -8
- package/.gm/memories/mem-a86426ac44138c96-1606.md +0 -8
- package/.gm/memories/mem-a95b1d49d71133ce-1007.md +0 -8
- package/.gm/memories/mem-a9968a186368b022-1150.md +0 -8
- package/.gm/memories/mem-aaeae38d8eb01809-1076.md +0 -8
- package/.gm/memories/mem-ade01d9c02677c55-1557.md +0 -8
- package/.gm/memories/mem-b06b8c85b81663e6-1250.md +0 -8
- package/.gm/memories/mem-b451e5e17e555202-1490.md +0 -8
- package/.gm/memories/mem-b64ad00dcb6f909e-937.md +0 -8
- package/.gm/memories/mem-b7d6018ceca55b6f-2220.md +0 -8
- package/.gm/memories/mem-bdf466854032cac9-1509.md +0 -8
- package/.gm/memories/mem-c0482039e6ab4c50-2047.md +0 -8
- package/.gm/memories/mem-c4aaec5c4e6f80c2-920.md +0 -8
- package/.gm/memories/mem-c66976ddacb4fbe8-1454.md +0 -8
- package/.gm/memories/mem-c7c5bc263850c332-1844.md +0 -8
- package/.gm/memories/mem-cda639547932c796-713.md +0 -8
- package/.gm/memories/mem-cdf04ff6a6a0aa6f-671.md +0 -8
- package/.gm/memories/mem-cf8472c84d9e04c4-1883.md +0 -8
- package/.gm/memories/mem-cfd4d894370c63c3-1288.md +0 -8
- package/.gm/memories/mem-d060480435f92eec-1146.md +0 -8
- package/.gm/memories/mem-d347c921b79e6d44-1099.md +0 -8
- package/.gm/memories/mem-d3c8ea6c861bfbb8-1457.md +0 -8
- package/.gm/memories/mem-d5e928c552cd87f9-214.md +0 -10
- package/.gm/memories/mem-d63bc3b8a0269844-406.md +0 -10
- package/.gm/memories/mem-d9c19257abc2fa5e-1061.md +0 -8
- package/.gm/memories/mem-d9f26358a7cd3bb8-866.md +0 -8
- package/.gm/memories/mem-da1c91acf63d81d3-863.md +0 -8
- package/.gm/memories/mem-dc1ac3b04d22317e-664.md +0 -8
- package/.gm/memories/mem-dceeae20bc56d407-711.md +0 -8
- package/.gm/memories/mem-dd98b21c0896dc04-1557.md +0 -8
- package/.gm/memories/mem-df74674eec7745ac-178.md +0 -10
- package/.gm/memories/mem-dfe3b466fd5d1199-802.md +0 -8
- package/.gm/memories/mem-e0f9286aed2d5a06-1116.md +0 -8
- package/.gm/memories/mem-e1950b064099b7be-1895.md +0 -8
- package/.gm/memories/mem-e1d5431ae2542872-961.md +0 -8
- package/.gm/memories/mem-e490a181de6469fc-487.md +0 -8
- package/.gm/memories/mem-e72c6efbb27326fb-392.md +0 -8
- package/.gm/memories/mem-e943b58115a02b4c-593.md +0 -8
- package/.gm/memories/mem-e9bc5f9ed6edbcf7-1580.md +0 -8
- package/.gm/memories/mem-eae1e383927854fb-2649.md +0 -8
- package/.gm/memories/mem-ebbe6c0694c526f0-1392.md +0 -8
- package/.gm/memories/mem-ebf85becc23410b0-1633.md +0 -8
- package/.gm/memories/mem-ee0596fa17c7102e-362.md +0 -10
- package/.gm/memories/mem-ee4450fbc311b583-1361.md +0 -8
- package/.gm/memories/mem-ee8858162518f144-1252.md +0 -8
- package/.gm/memories/mem-f3297e82df622649-1166.md +0 -8
- package/.gm/memories/mem-f3f317c083d979ee-1210.md +0 -8
- package/.gm/memories/mem-f714a86465fba158-2041.md +0 -8
- package/.gm/memories/mem-f786bc1626d92845-204.md +0 -10
- package/.gm/memories/mem-f9f0dc8895b21e18-1217.md +0 -8
- package/.gm/memories/mem-fb3b2a7395800041-525.md +0 -8
- package/.gm/memories/mem-fc5753f92ee7d654-966.md +0 -8
- package/.gm/memories/mem-fe3faa1652f07239-480.md +0 -8
- package/.gm/memories/mem-ff8669e527e5c427-2788.md +0 -8
- package/.gm/mutables.yml +0 -53
- package/UX_OPTIMIZATION_SUMMARY.md +0 -238
- package/agentgui-after.png +0 -0
- package/agentgui-current.png +0 -0
- package/agentgui-final.png +0 -0
- package/agentgui-nobrand.png +0 -0
- package/agentgui-now.png +0 -0
- package/agentgui-v2.png +0 -0
- package/agentgui-v4.png +0 -0
- package/bash.exe.stackdump +0 -28
- package/design-reference.png +0 -0
package/AGENTS.md
CHANGED
|
@@ -21,7 +21,7 @@ Never add `puppeteer`/`puppeteer-core`/`playwright`/`playwright-core` as a depen
|
|
|
21
21
|
- The "Untitled conversation" fallback is one shared `UNTITLED_CONVERSATION` constant — never a locally re-typed literal (casing/wording drifts across call sites otherwise).
|
|
22
22
|
- Upload/mkdir/rename/list request bodies are scanned by `SECRET_RE` before being echoed into logs or responses.
|
|
23
23
|
- **webjsx keying:** mixing keyed VElements with `null`/strings/numbers in any children array crashes `applyDiff` ("reading 'key'"). Never pass a conditional `x?h():null` positionally — build the array and `.filter(Boolean)` it. `Btn` spreads array children. A kit component prop with an established narrow contract can silently corrupt an unrelated call site when a caller passes a richer value than the prop was designed for (e.g. a VElement where only a plain string was ever read) — grep every other use site of a prop before extending what a caller passes through it.
|
|
24
|
-
- **Escape ladder order (extend, never reorder):** shortcuts overlay > file dialog > confirmingEdit > new-chat arm > stop-arms > stop generation.
|
|
24
|
+
- **Escape ladder order (extend, never reorder):** shortcuts overlay > file dialog > confirmingEdit > cwd editor > confirmingClearData > new-chat arm > stop-arms > files multi-select clear > stop generation.
|
|
25
25
|
- **Status-disc shape:** live = solid+pulse, error = solid+halo, connecting = hollow ring, stale = muted solid.
|
|
26
26
|
- **Kit `Row` rail/rank contract:** the design-kit `Row` (`anentrypoint-design` `src/components/content.js`) renders a leading status rail from a `rail` prop (`green` | `purple` | `flame`, via `.row.rail-<tone>::before`) and accepts `rank` as an alias for the leading `code` index. `state: 'disabled'` is inert (no `onClick`/`role=button`/tab-stop, `aria-disabled=true`). Rail semantics are consistent everywhere: green = selected/ok, purple = subagent, flame = error/unavailable.
|
|
27
27
|
- **No decorative glyphs.** GUI source and output use ASCII words and CSS-drawn discs (`.status-dot-disc`) for status, never `●/◌/○/⌘/§/▶` etc. The middot separator `·`, ellipsis `…`, and em/en dashes in prose are kept as deliberate typographic product design, not tells — convert any other decorative glyph (arrows, box-drawing, bullets, checks) to ASCII on sight (`->`, `// --- x ---`, `-`/`*`). A dismiss control's own close icon on a dismissible Alert is a real DS icon affordance, exempt.
|
package/lib/acp-sdk-manager.js
CHANGED
|
@@ -8,10 +8,18 @@ import * as acpMachine from './acp-server-machine.js';
|
|
|
8
8
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
9
9
|
const projectRoot = path.resolve(__dirname, '..');
|
|
10
10
|
const isWindows = os.platform() === 'win32';
|
|
11
|
+
// codex (@openai/codex >=0.147.0) has no `acp` subcommand - `codex acp` is
|
|
12
|
+
// parsed as the interactive TUI with prompt text "acp" ("Error: stdin is not
|
|
13
|
+
// a terminal" when non-interactive), live-confirmed via `codex --help`/`codex
|
|
14
|
+
// app-server --help`. Its ACP-equivalent surface is `app-server` over a
|
|
15
|
+
// WebSocket (`--remote ws://host:port`), not this manager's HTTP-polling
|
|
16
|
+
// `/provider` health-check model, so codex is intentionally excluded from
|
|
17
|
+
// ACP_TOOLS rather than spawning a command that can never succeed. Re-add it
|
|
18
|
+
// once a WebSocket app-server client exists (see PRD row
|
|
19
|
+
// aaa-codex-app-server-client).
|
|
11
20
|
const ACP_TOOLS = [
|
|
12
21
|
{ id: 'opencode', cmd: 'opencode', args: ['acp'], port: 18100, npxPkg: 'opencode-ai' },
|
|
13
22
|
{ id: 'kilo', cmd: 'kilo', args: ['acp'], port: 18101, npxPkg: '@kilocode/cli' },
|
|
14
|
-
{ id: 'codex', cmd: 'codex', args: ['acp'], port: 18102, npxPkg: '@openai/codex' },
|
|
15
23
|
];
|
|
16
24
|
const HEALTH_INTERVAL_MS = 30000, STARTUP_GRACE_MS = 5000, IDLE_TIMEOUT_MS = 120000;
|
|
17
25
|
const processes = new Map(), idleTimers = new Map();
|
|
@@ -51,8 +59,13 @@ function startProcess(tool) {
|
|
|
51
59
|
const resolved = resolveCommand(tool);
|
|
52
60
|
let proc;
|
|
53
61
|
try {
|
|
62
|
+
// stdin MUST stay open (piped, never closed) - the ACP CLI's `acp`
|
|
63
|
+
// subcommand watches stdin and disposes itself on EOF even though it is
|
|
64
|
+
// actually serving its normal HTTP API on `tool.port` (confirmed live:
|
|
65
|
+
// spawning with stdio 'ignore' closes stdin immediately, which the
|
|
66
|
+
// process treats as EOF and exits). Never .end()/.destroy() proc.stdin.
|
|
54
67
|
proc = spawn(resolved.bin, resolved.args, {
|
|
55
|
-
stdio: ['
|
|
68
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
56
69
|
detached: false,
|
|
57
70
|
});
|
|
58
71
|
} catch (err) {
|
|
@@ -149,7 +149,14 @@ registry.register({ id: 'augment', name: 'Augment Code', command: 'augment', pro
|
|
|
149
149
|
registry.register({ id: 'cline', name: 'Cline', command: 'cline', protocol: 'acp', supportsStdin: false, supportedFeatures: ['streaming', 'resume', 'acp-protocol'], buildArgs: () => ['acp'], protocolHandler: acpProtocolHandler });
|
|
150
150
|
registry.register({ id: 'kimi', name: 'Kimi CLI', command: 'kimi', protocol: 'acp', supportsStdin: false, supportedFeatures: ['streaming', 'resume', 'acp-protocol'], buildArgs: () => ['acp'], protocolHandler: acpProtocolHandler });
|
|
151
151
|
registry.register({ id: 'qwen', name: 'Qwen Code', command: 'qwen-code', protocol: 'acp', supportsStdin: false, supportedFeatures: ['streaming', 'resume', 'acp-protocol'], buildArgs: () => ['acp'], protocolHandler: acpProtocolHandler });
|
|
152
|
-
|
|
152
|
+
// codex (@openai/codex >=0.147.0) has no `acp` subcommand - live-confirmed
|
|
153
|
+
// via `codex --help`/`codex app-server --help`: `codex acp` is parsed as the
|
|
154
|
+
// interactive TUI with prompt text "acp" and errors "stdin is not a
|
|
155
|
+
// terminal" non-interactively. Its ACP-equivalent is `app-server` over a
|
|
156
|
+
// WebSocket, a different transport this stdio-JSON-RPC runner cannot drive.
|
|
157
|
+
// Registering it with buildArgs:()=>['acp'] would spawn a command that can
|
|
158
|
+
// never succeed. Disabled until a WebSocket app-server client exists (see
|
|
159
|
+
// PRD row aaa-codex-app-server-client).
|
|
153
160
|
registry.register({ id: 'mistral', name: 'Mistral Vibe', command: 'mistral-vibe', protocol: 'acp', supportsStdin: false, supportedFeatures: ['streaming', 'resume', 'acp-protocol'], buildArgs: () => ['acp'], protocolHandler: acpProtocolHandler });
|
|
154
161
|
registry.register({ id: 'kiro', name: 'Kiro CLI', command: 'kiro', protocol: 'acp', supportsStdin: false, supportedFeatures: ['streaming', 'resume', 'acp-protocol'], buildArgs: () => ['acp'], protocolHandler: acpProtocolHandler });
|
|
155
162
|
registry.register({ id: 'fast-agent', name: 'fast-agent', command: 'fast-agent', protocol: 'acp', supportsStdin: false, supportedFeatures: ['streaming', 'resume', 'acp-protocol'], buildArgs: () => ['acp'], protocolHandler: acpProtocolHandler });
|