agentgui 1.0.1115 → 1.0.1116
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/browser-config.json +1 -0
- package/.gm/claim-audit-fired +1 -0
- package/.gm/disciplines/agentgui/mem-1779277005143-0-1352.json +1 -0
- package/.gm/disciplines/agentgui/memories/.flat-export-done +0 -0
- package/.gm/disciplines/agentgui/memories/mem-c07fa3b0836edbe2-1352.md +8 -0
- package/.gm/gm.db +0 -0
- package/.gm/memories/.flat-export-done +1 -0
- package/.gm/memories/mem-0131ff4869d86085-370.md +10 -0
- package/.gm/memories/mem-04049d11cb8c1661-2135.md +8 -0
- package/.gm/memories/mem-069ff10372ed1770-1375.md +8 -0
- package/.gm/memories/mem-08a4a9e050a4deff-3048.md +8 -0
- package/.gm/memories/mem-09597ee0df9c9224-965.md +8 -0
- package/.gm/memories/mem-0993d156f571b619-1059.md +8 -0
- package/.gm/memories/mem-0b681bf2340c8df1-3170.md +8 -0
- package/.gm/memories/mem-0c444abde86202f6-1681.md +8 -0
- package/.gm/memories/mem-0d1408fa048b9923-1159.md +8 -0
- package/.gm/memories/mem-0dad5d82fec829ba-887.md +8 -0
- package/.gm/memories/mem-10a776effb7ce3a6-935.md +8 -0
- package/.gm/memories/mem-10d264b4f8e66fb4-1492.md +8 -0
- package/.gm/memories/mem-118c35ac67541d98-2909.md +8 -0
- package/.gm/memories/mem-119cf70dd19aa0a5-2225.md +8 -0
- package/.gm/memories/mem-15a07cd761b337c4-4320.md +8 -0
- package/.gm/memories/mem-15c73aca528535cb-2183.md +8 -0
- package/.gm/memories/mem-166f52796185e0e7-1487.md +8 -0
- package/.gm/memories/mem-1a148cf9c3126df5-3963.md +8 -0
- package/.gm/memories/mem-1a459001058f618e-567.md +8 -0
- package/.gm/memories/mem-1af3e13f7618e668-2146.md +8 -0
- package/.gm/memories/mem-1fd31d6873e9c164-794.md +8 -0
- package/.gm/memories/mem-21f551be092fd77d-2340.md +8 -0
- package/.gm/memories/mem-231ff5de003f20f0-586.md +8 -0
- package/.gm/memories/mem-2567393d3adb03ab-347.md +8 -0
- package/.gm/memories/mem-27faf41cdd050c80-1261.md +8 -0
- package/.gm/memories/mem-28889e43e8ce64cc-3663.md +8 -0
- package/.gm/memories/mem-2f4fd06515abf439-2562.md +8 -0
- package/.gm/memories/mem-34a749430303c5f7-544.md +8 -0
- package/.gm/memories/mem-3602d11d7bce9446-1057.md +8 -0
- package/.gm/memories/mem-38b7e24dbcba2f3e-639.md +8 -0
- package/.gm/memories/mem-39a7cc2f887a90b1-1079.md +8 -0
- package/.gm/memories/mem-40d6169c8759061d-806.md +8 -0
- package/.gm/memories/mem-4420e6d00e5c8632-2318.md +8 -0
- package/.gm/memories/mem-447e5a54ddc9357a-654.md +8 -0
- package/.gm/memories/mem-455b3beb4afabe14-591.md +8 -0
- package/.gm/memories/mem-4845ee594759151c-560.md +8 -0
- package/.gm/memories/mem-4a1254c60b868b88-374.md +8 -0
- package/.gm/memories/mem-4bafafa47a0e4b6c-3237.md +8 -0
- package/.gm/memories/mem-4c06c45b4d31bc60-1202.md +8 -0
- package/.gm/memories/mem-4dfac801d0378448-3676.md +8 -0
- package/.gm/memories/mem-4ecd3b713e384170-122.md +10 -0
- package/.gm/memories/mem-51d8992a3c6f6c9c-1073.md +8 -0
- package/.gm/memories/mem-539eee7e8c6c10ee-2557.md +8 -0
- package/.gm/memories/mem-559b8b2abc4b1091-1665.md +8 -0
- package/.gm/memories/mem-59dd73a463e54948-871.md +8 -0
- package/.gm/memories/mem-5b99b882ffe1a3c2-2262.md +8 -0
- package/.gm/memories/mem-5feb252a5244149c-1791.md +8 -0
- package/.gm/memories/mem-6224f8d185797f2b-1047.md +8 -0
- package/.gm/memories/mem-6434ee8261a6a6a2-3126.md +8 -0
- package/.gm/memories/mem-66b0947b946f3437-1155.md +8 -0
- package/.gm/memories/mem-6bdf783a1f6be7c2-1062.md +8 -0
- package/.gm/memories/mem-6d49f08bebac54c9-744.md +8 -0
- package/.gm/memories/mem-70d96acb736af2d7-685.md +8 -0
- package/.gm/memories/mem-70de7d5e71fcd439-2680.md +8 -0
- package/.gm/memories/mem-713614f12d7029da-1577.md +8 -0
- package/.gm/memories/mem-720d76c88e64f6ee-1967.md +8 -0
- package/.gm/memories/mem-7535f34f430fc196-1340.md +8 -0
- package/.gm/memories/mem-861a588d2773681a-1311.md +8 -0
- package/.gm/memories/mem-8af7980a92e09959-891.md +8 -0
- package/.gm/memories/mem-8b438ef4c609b7af-401.md +8 -0
- package/.gm/memories/mem-8f59884039787ef3-743.md +8 -0
- package/.gm/memories/mem-92b199c2024ee1aa-2513.md +8 -0
- package/.gm/memories/mem-9329105b05b9c0f6-324.md +10 -0
- package/.gm/memories/mem-94f30cec3c283f97-782.md +10 -0
- package/.gm/memories/mem-956d4813319f65a3-1710.md +8 -0
- package/.gm/memories/mem-96fffbb6615e031b-1263.md +8 -0
- package/.gm/memories/mem-993ab31f7a10aefa-718.md +8 -0
- package/.gm/memories/mem-a3e440db285f655a-995.md +8 -0
- package/.gm/memories/mem-a52933cd6495e6f5-2624.md +8 -0
- package/.gm/memories/mem-a86426ac44138c96-1606.md +8 -0
- package/.gm/memories/mem-a95b1d49d71133ce-1007.md +8 -0
- package/.gm/memories/mem-a9968a186368b022-1150.md +8 -0
- package/.gm/memories/mem-aaeae38d8eb01809-1076.md +8 -0
- package/.gm/memories/mem-ade01d9c02677c55-1557.md +8 -0
- package/.gm/memories/mem-b06b8c85b81663e6-1250.md +8 -0
- package/.gm/memories/mem-b451e5e17e555202-1490.md +8 -0
- package/.gm/memories/mem-b64ad00dcb6f909e-937.md +8 -0
- package/.gm/memories/mem-b7d6018ceca55b6f-2220.md +8 -0
- package/.gm/memories/mem-bdf466854032cac9-1509.md +8 -0
- package/.gm/memories/mem-c0482039e6ab4c50-2047.md +8 -0
- package/.gm/memories/mem-c4aaec5c4e6f80c2-920.md +8 -0
- package/.gm/memories/mem-c66976ddacb4fbe8-1454.md +8 -0
- package/.gm/memories/mem-c7c5bc263850c332-1844.md +8 -0
- package/.gm/memories/mem-cda639547932c796-713.md +8 -0
- package/.gm/memories/mem-cdf04ff6a6a0aa6f-671.md +8 -0
- package/.gm/memories/mem-cf8472c84d9e04c4-1883.md +8 -0
- package/.gm/memories/mem-cfd4d894370c63c3-1288.md +8 -0
- package/.gm/memories/mem-d060480435f92eec-1146.md +8 -0
- package/.gm/memories/mem-d347c921b79e6d44-1099.md +8 -0
- package/.gm/memories/mem-d3c8ea6c861bfbb8-1457.md +8 -0
- package/.gm/memories/mem-d5e928c552cd87f9-214.md +10 -0
- package/.gm/memories/mem-d63bc3b8a0269844-406.md +10 -0
- package/.gm/memories/mem-d9c19257abc2fa5e-1061.md +8 -0
- package/.gm/memories/mem-d9f26358a7cd3bb8-866.md +8 -0
- package/.gm/memories/mem-da1c91acf63d81d3-863.md +8 -0
- package/.gm/memories/mem-dc1ac3b04d22317e-664.md +8 -0
- package/.gm/memories/mem-dceeae20bc56d407-711.md +8 -0
- package/.gm/memories/mem-dd98b21c0896dc04-1557.md +8 -0
- package/.gm/memories/mem-df74674eec7745ac-178.md +10 -0
- package/.gm/memories/mem-dfe3b466fd5d1199-802.md +8 -0
- package/.gm/memories/mem-e0f9286aed2d5a06-1116.md +8 -0
- package/.gm/memories/mem-e1950b064099b7be-1895.md +8 -0
- package/.gm/memories/mem-e1d5431ae2542872-961.md +8 -0
- package/.gm/memories/mem-e490a181de6469fc-487.md +8 -0
- package/.gm/memories/mem-e72c6efbb27326fb-392.md +8 -0
- package/.gm/memories/mem-e943b58115a02b4c-593.md +8 -0
- package/.gm/memories/mem-e9bc5f9ed6edbcf7-1580.md +8 -0
- package/.gm/memories/mem-eae1e383927854fb-2649.md +8 -0
- package/.gm/memories/mem-ebbe6c0694c526f0-1392.md +8 -0
- package/.gm/memories/mem-ebf85becc23410b0-1633.md +8 -0
- package/.gm/memories/mem-ee0596fa17c7102e-362.md +10 -0
- package/.gm/memories/mem-ee4450fbc311b583-1361.md +8 -0
- package/.gm/memories/mem-ee8858162518f144-1252.md +8 -0
- package/.gm/memories/mem-f3297e82df622649-1166.md +8 -0
- package/.gm/memories/mem-f3f317c083d979ee-1210.md +8 -0
- package/.gm/memories/mem-f714a86465fba158-2041.md +8 -0
- package/.gm/memories/mem-f786bc1626d92845-204.md +10 -0
- package/.gm/memories/mem-f9f0dc8895b21e18-1217.md +8 -0
- package/.gm/memories/mem-fb3b2a7395800041-525.md +8 -0
- package/.gm/memories/mem-fc5753f92ee7d654-966.md +8 -0
- package/.gm/memories/mem-fe3faa1652f07239-480.md +8 -0
- package/.gm/memories/mem-ff8669e527e5c427-2788.md +8 -0
- package/.gm/mutables.yml +53 -0
- package/.gm/prd.yml +3342 -0
- package/AGENTS.md +5 -1
- package/lib/ws-handlers-util.js +8 -64
- package/package.json +2 -4
- package/site/app/js/app.js +144 -146
- package/site/app/js/backend.js +7 -19
- package/site/app/vendor/anentrypoint-design/247420.css +2910 -805
- package/site/app/vendor/anentrypoint-design/247420.js +142 -69
- package/scripts/capture-screenshots.mjs +0 -206
package/AGENTS.md
CHANGED
|
@@ -8,6 +8,10 @@ ACP lifecycle lives in `lib/acp-sdk-manager.js` alone; no other module spawns or
|
|
|
8
8
|
|
|
9
9
|
Same-origin app auth must never use the `Authorization` header when an upstream proxy may own Basic auth — a `Bearer` header overwrites the browser's cached `Authorization: Basic` credentials, and nginx `auth_basic` only accepts `Basic`, so the request is rejected at the proxy before it ever reaches agentgui. Use the **`?token=` query param** (`withToken()`, exactly like the WS / EventSource / image / download URLs) instead — it coexists with upstream Basic auth, and agentgui accepts `?token=` on every HTTP route, plus the `agentgui_token` cookie.
|
|
10
10
|
|
|
11
|
+
## CRITICAL — no Chrome/Puppeteer/Playwright dependency anywhere in this repo
|
|
12
|
+
|
|
13
|
+
Never add `puppeteer`/`puppeteer-core`/`playwright`/`playwright-core` as a dependency, and never hand-roll a raw headless-Chrome launch in a script. Live browser verification for this project is done via the gm skill's `browser` verb (direct CDP, no relay), not by this repo owning its own browser-automation dependency. `scripts/capture-screenshots.mjs` (puppeteer-core-driven, dead code — not wired into any CI workflow) was removed for this reason.
|
|
14
|
+
|
|
11
15
|
## Standing engineering rules
|
|
12
16
|
|
|
13
17
|
- **All GUI/design decisions live in the kit (`../design`), none in agentgui.** New surface styling is a kit CSS rule, never an inline `<style>` or `style=` prop in agentgui. A new kit component must be re-exported through `src/components.js`'s barrel to be consumable — adding it to a component file alone leaves it invisible to the built bundle even with 0 lint errors; grep the built dist for the export name before wiring the app against it. New CSS class tokens in the kit must carry a registered family prefix (`ds-`, `app-`, `ws-`, `chat-`, etc. — see `scripts/lint-classes.mjs`'s `PREFIXES`/`FROZEN` lists) or the build's lint-classes check fails; a legacy bare name like `chip` being grandfathered on the FROZEN list does not cover new sub-tokens off it (e.g. a new `chip-remove` class still needs a `ds-` prefix).
|
|
@@ -79,7 +83,7 @@ Two runner protocols exist. **Direct** (`lib/claude-runner-direct.js`): claude-c
|
|
|
79
83
|
|
|
80
84
|
## CI / GitHub Actions
|
|
81
85
|
|
|
82
|
-
|
|
86
|
+
Any CI step that spawns the agentgui server must invoke it with `bun`, not `node` (`--ignore-scripts` npm installs leave `better-sqlite3` uncompiled, so `bun:sqlite`'s fallback also fails under Node).
|
|
83
87
|
|
|
84
88
|
## GM Plugin Autonomy Blocker
|
|
85
89
|
|
package/lib/ws-handlers-util.js
CHANGED
|
@@ -87,6 +87,9 @@ export function register(router, deps) {
|
|
|
87
87
|
features: a.supportedFeatures || [],
|
|
88
88
|
available: registry.isAvailable(a.id),
|
|
89
89
|
npxInstallable: !!a.npxPackage,
|
|
90
|
+
// The CLI binary name a manual (non-npx) install would need - lets the
|
|
91
|
+
// settings panel say what to install instead of just "not installed".
|
|
92
|
+
cmd: a.command || null,
|
|
90
93
|
}));
|
|
91
94
|
return { agents };
|
|
92
95
|
});
|
|
@@ -355,7 +358,11 @@ export function register(router, deps) {
|
|
|
355
358
|
if (p?.file) args.push('--', assertSafeRelPath(p.file, 'file'));
|
|
356
359
|
try {
|
|
357
360
|
const { stdout } = await execFileP('git', args, { cwd });
|
|
358
|
-
|
|
361
|
+
// git prints "Binary files a/x and b/x differ" for binary paths instead
|
|
362
|
+
// of a unified diff - an empty `diff` string then reads to the client as
|
|
363
|
+
// "no diff to show" with no explanation. Detect it so the UI can say why.
|
|
364
|
+
const binary = /^Binary files .* differ$/m.test(stdout);
|
|
365
|
+
return { diff: stdout, binary, file: p?.file || null, staged: !!p?.staged };
|
|
359
366
|
} catch (e) { err(500, (e.stderr || e.message || 'git diff failed').trim()); }
|
|
360
367
|
});
|
|
361
368
|
|
|
@@ -456,67 +463,4 @@ export function register(router, deps) {
|
|
|
456
463
|
}
|
|
457
464
|
return { subAgents: SUB_AGENT_MAP[p.id] || [] };
|
|
458
465
|
});
|
|
459
|
-
|
|
460
|
-
// --- models.availability: composes agentgui's REAL model surface into the
|
|
461
|
-
// ModelsConfig component's shape (design SDK's ModelsConfig.js). agentgui
|
|
462
|
-
// has no freddie-style probed-availability matrix (no /v1/models round-trip
|
|
463
|
-
// per mode) - what it actually has is: discovered agent CLIs (registry,
|
|
464
|
-
// same data agents.list already exposes), each agent's model choices
|
|
465
|
-
// (agents.models' getModelsForAgent), and per-provider API-key presence
|
|
466
|
-
// (auth.configs' getProviderConfigs). This handler is a read-only
|
|
467
|
-
// composition of those three real sources, not a new probe and not fake
|
|
468
|
-
// data - "usable_in_any_mode" is derived from registry.isAvailable(agentId)
|
|
469
|
-
// (the CLI binary was actually found on this server), and "key_present"
|
|
470
|
-
// comes straight from getProviderConfigs' filesystem check.
|
|
471
|
-
router.handle('models.availability', async () => {
|
|
472
|
-
const agents = registry.list();
|
|
473
|
-
const providerConfigs = typeof getProviderConfigs === 'function' ? getProviderConfigs() : {};
|
|
474
|
-
const providers = [];
|
|
475
|
-
for (const a of agents) {
|
|
476
|
-
const available = registry.isAvailable(a.id);
|
|
477
|
-
let models = [];
|
|
478
|
-
if (a.id === 'claude-code') {
|
|
479
|
-
models = [
|
|
480
|
-
{ id: 'sonnet', name: 'Claude Sonnet (latest)' },
|
|
481
|
-
{ id: 'opus', name: 'Claude Opus (latest)' },
|
|
482
|
-
{ id: 'haiku', name: 'Claude Haiku (latest)' },
|
|
483
|
-
];
|
|
484
|
-
} else if (typeof getModelsForAgent === 'function') {
|
|
485
|
-
try {
|
|
486
|
-
const raw = await getModelsForAgent(a.id);
|
|
487
|
-
const list = Array.isArray(raw) ? raw : (raw?.models || []);
|
|
488
|
-
models = list.map((m) => ({ id: m.id, name: m.name || m.label || m.id }));
|
|
489
|
-
} catch { models = []; }
|
|
490
|
-
}
|
|
491
|
-
// Map onto agentgui's one real signal per model: is the agent CLI itself
|
|
492
|
-
// available on this server (registry.isAvailable). agentgui does not
|
|
493
|
-
// probe individual (model, mode) cells the way freddie's matrix does,
|
|
494
|
-
// so every model under an available agent reports the same single
|
|
495
|
-
// 'cli' mode rather than fabricating per-mode probe results.
|
|
496
|
-
providers.push({
|
|
497
|
-
id: a.id,
|
|
498
|
-
key_present: !!(providerConfigs[a.id] && providerConfigs[a.id].hasKey) || available,
|
|
499
|
-
discovery_error: available ? null : ((a.name || a.id) + ' CLI not found on this server'),
|
|
500
|
-
models: models.map((m) => ({
|
|
501
|
-
id: m.id,
|
|
502
|
-
name: m.name,
|
|
503
|
-
discovered_via: a.protocol || 'cli',
|
|
504
|
-
modes: { cli: { ok: !!available, skipped: !available, reason: available ? undefined : 'agent_not_installed' } },
|
|
505
|
-
usable_in_any_mode: !!available,
|
|
506
|
-
})),
|
|
507
|
-
});
|
|
508
|
-
}
|
|
509
|
-
const totalModels = providers.reduce((n, p) => n + p.models.length, 0);
|
|
510
|
-
const usableModels = providers.reduce((n, p) => n + p.models.filter((m) => m.usable_in_any_mode).length, 0);
|
|
511
|
-
return {
|
|
512
|
-
timestamp: new Date().toISOString(),
|
|
513
|
-
providers,
|
|
514
|
-
sampler: [],
|
|
515
|
-
summary: {
|
|
516
|
-
total_providers: providers.length,
|
|
517
|
-
total_models: totalModels,
|
|
518
|
-
usable_in_any_mode: usableModels,
|
|
519
|
-
},
|
|
520
|
-
};
|
|
521
|
-
});
|
|
522
466
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentgui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1116",
|
|
4
4
|
"description": "Multi-agent ACP client with real-time communication",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "electron/main.js",
|
|
@@ -34,13 +34,11 @@
|
|
|
34
34
|
"fsbrowse": "latest",
|
|
35
35
|
"lru-cache": "^11.2.7",
|
|
36
36
|
"opencode-ai": "^1.2.15",
|
|
37
|
-
"puppeteer-core": "^24.37.5",
|
|
38
37
|
"webjsx": "^0.0.73",
|
|
39
38
|
"ws": "^8.14.2",
|
|
40
39
|
"xstate": "^5.32.0"
|
|
41
40
|
},
|
|
42
41
|
"devDependencies": {
|
|
43
|
-
"electron": "^35.0.0"
|
|
44
|
-
"playwright": "^1.59.1"
|
|
42
|
+
"electron": "^35.0.0"
|
|
45
43
|
}
|
|
46
44
|
}
|