@geminilight/mindos 0.6.67 → 0.6.69
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/_standalone/.mindos-build-version +1 -1
- package/_standalone/.next/BUILD_ID +1 -1
- package/_standalone/.next/app-path-routes-manifest.json +17 -17
- package/_standalone/.next/build-manifest.json +3 -3
- package/_standalone/.next/cache/.previewinfo +1 -1
- package/_standalone/.next/cache/.rscinfo +1 -1
- package/_standalone/.next/cache/config.json +3 -3
- package/_standalone/.next/prerender-manifest.json +3 -3
- package/_standalone/.next/react-loadable-manifest.json +4 -4
- package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/_global-error.html +2 -2
- package/_standalone/.next/server/app/_global-error.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/_standalone/.next/server/app/_not-found/page.js +1 -1
- package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page.js +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/agents/page.js +1 -1
- package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/detect/route.js +1 -1
- package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/registry/route.js +1 -1
- package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask/route.js +8 -8
- package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/connect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/im/config/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/im/status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/im/test/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/inbox/clip/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/lint/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/direct-tools/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/space-overview/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/changelog/page.js +1 -1
- package/_standalone/.next/server/app/changelog/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/changes/page.js +1 -1
- package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page.js +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/echo/page.js +1 -1
- package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/explore/page.js +1 -1
- package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/help/page.js +1 -1
- package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/login/page.js +1 -1
- package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/page.js +1 -1
- package/_standalone/.next/server/app/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/setup/page.js +1 -1
- package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/trash/page.js +2 -2
- package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/view/[...path]/page.js +3 -3
- package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app-paths-manifest.json +17 -17
- package/_standalone/.next/server/chunks/1750.js +1 -1
- package/_standalone/.next/server/chunks/6022.js +31 -31
- package/_standalone/.next/server/chunks/6539.js +1 -1
- package/_standalone/.next/server/chunks/{8947.js → 7200.js} +3 -3
- package/_standalone/.next/server/chunks/953.js +1 -1
- package/_standalone/.next/server/middleware-build-manifest.js +1 -1
- package/_standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/_standalone/.next/server/pages/500.html +2 -2
- package/_standalone/.next/server/server-reference-manifest.js +1 -1
- package/_standalone/.next/server/server-reference-manifest.json +1 -1
- package/_standalone/.next/static/chunks/{5998.7bd28de9747440b5.js → 3466.bc6ab3172ad66091.js} +1 -1
- package/_standalone/.next/static/chunks/{476.463546c195b89cce.js → 8735.66a049abcf0971fb.js} +2 -2
- package/_standalone/.next/static/chunks/app/layout-bd0652768781e726.js +133 -0
- package/_standalone/.next/static/chunks/app/trash/page-8280ba2f5c20861e.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/page-b942374e2f88c53e.js +12 -0
- package/_standalone/.next/static/chunks/webpack-9e42857d6c44fe70.js +1 -0
- package/_standalone/.next/trace +71 -71
- package/_standalone/__tests__/acp/agent-descriptors.test.ts +65 -3
- package/_standalone/__tests__/acp/registry.test.ts +34 -5
- package/_standalone/__tests__/acp/session.test.ts +1 -1
- package/_standalone/components/Breadcrumb.tsx +11 -11
- package/_standalone/components/panels/AgentsPanel.tsx +8 -1
- package/_standalone/lib/acp/index.ts +2 -0
- package/_standalone/package-lock.json +2 -2
- package/_standalone/package.json +1 -1
- package/_standalone/tsconfig.tsbuildinfo +1 -1
- package/app/app/api/acp/detect/route.ts +9 -15
- package/app/components/Breadcrumb.tsx +11 -11
- package/app/components/panels/AgentsPanel.tsx +8 -1
- package/app/lib/acp/agent-descriptors.ts +51 -29
- package/app/lib/acp/index.ts +2 -0
- package/app/lib/acp/registry.ts +42 -46
- package/app/lib/acp/session.ts +36 -7
- package/app/lib/acp/subprocess.ts +40 -2
- package/app/lib/agent/tools.ts +4 -3
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/_standalone/.next/static/chunks/app/layout-9bb19a959ffb87ac.js +0 -133
- package/_standalone/.next/static/chunks/app/trash/page-bebb28bf472cf691.js +0 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/page-dd5698f3df138835.js +0 -12
- package/_standalone/.next/static/chunks/webpack-043f40ef7816d8c4.js +0 -1
- /package/_standalone/.next/static/{0JtsgqDZLSJ6MrIZIV6gC → HL8b6d3NCfyoAXNuY2kcn}/_buildManifest.js +0 -0
- /package/_standalone/.next/static/{0JtsgqDZLSJ6MrIZIV6gC → HL8b6d3NCfyoAXNuY2kcn}/_ssgManifest.js +0 -0
|
@@ -3,8 +3,11 @@ import {
|
|
|
3
3
|
resolveAgentCommand,
|
|
4
4
|
parseAcpAgentOverrides,
|
|
5
5
|
AGENT_DESCRIPTORS,
|
|
6
|
+
AGENT_ALIASES,
|
|
7
|
+
resolveAlias,
|
|
6
8
|
getDescriptorBinary,
|
|
7
9
|
getDescriptorInstallCmd,
|
|
10
|
+
getDetectableAgents,
|
|
8
11
|
} from '@/lib/acp/agent-descriptors';
|
|
9
12
|
import type { AcpRegistryEntry } from '@/lib/acp/types';
|
|
10
13
|
|
|
@@ -177,10 +180,69 @@ describe('AGENT_DESCRIPTORS', () => {
|
|
|
177
180
|
}
|
|
178
181
|
});
|
|
179
182
|
|
|
180
|
-
it('has entries for all critical agents', () => {
|
|
181
|
-
const
|
|
182
|
-
for (const id of
|
|
183
|
+
it('has entries for all critical canonical agents', () => {
|
|
184
|
+
const canonical = ['gemini', 'claude', 'codebuddy-code', 'codex-acp'];
|
|
185
|
+
for (const id of canonical) {
|
|
183
186
|
expect(AGENT_DESCRIPTORS[id], `missing descriptor for ${id}`).toBeDefined();
|
|
184
187
|
}
|
|
185
188
|
});
|
|
189
|
+
|
|
190
|
+
it('has no duplicate entries (aliases in AGENT_ALIASES instead)', () => {
|
|
191
|
+
const binaries = Object.values(AGENT_DESCRIPTORS).map(d => d.binary);
|
|
192
|
+
const uniqueBinaries = new Set(binaries);
|
|
193
|
+
expect(binaries.length).toBe(uniqueBinaries.size);
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
/* ── Aliases ──────────────────────────────────────────────────────────── */
|
|
198
|
+
|
|
199
|
+
describe('resolveAlias', () => {
|
|
200
|
+
it('resolves known aliases to canonical IDs', () => {
|
|
201
|
+
expect(resolveAlias('gemini-cli')).toBe('gemini');
|
|
202
|
+
expect(resolveAlias('claude-code')).toBe('claude');
|
|
203
|
+
expect(resolveAlias('claude-acp')).toBe('claude');
|
|
204
|
+
expect(resolveAlias('codebuddy')).toBe('codebuddy-code');
|
|
205
|
+
expect(resolveAlias('codex')).toBe('codex-acp');
|
|
206
|
+
expect(resolveAlias('pi-acp')).toBe('pi');
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
it('returns canonical IDs unchanged', () => {
|
|
210
|
+
expect(resolveAlias('gemini')).toBe('gemini');
|
|
211
|
+
expect(resolveAlias('claude')).toBe('claude');
|
|
212
|
+
expect(resolveAlias('codebuddy-code')).toBe('codebuddy-code');
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
it('returns unknown IDs unchanged', () => {
|
|
216
|
+
expect(resolveAlias('totally-unknown')).toBe('totally-unknown');
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
it('all aliases point to existing descriptors', () => {
|
|
220
|
+
for (const [alias, canonical] of Object.entries(AGENT_ALIASES)) {
|
|
221
|
+
expect(AGENT_DESCRIPTORS[canonical], `alias ${alias} → ${canonical} not in AGENT_DESCRIPTORS`).toBeDefined();
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
/* ── getDetectableAgents ─────────────────────────────────────────────── */
|
|
227
|
+
|
|
228
|
+
describe('getDetectableAgents', () => {
|
|
229
|
+
it('returns all canonical agents', () => {
|
|
230
|
+
const agents = getDetectableAgents();
|
|
231
|
+
expect(agents.length).toBe(Object.keys(AGENT_DESCRIPTORS).length);
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
it('each agent has required detection fields', () => {
|
|
235
|
+
for (const agent of getDetectableAgents()) {
|
|
236
|
+
expect(agent.id).toBeTruthy();
|
|
237
|
+
expect(agent.name).toBeTruthy();
|
|
238
|
+
expect(agent.binary).toBeTruthy();
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
it('has no duplicate binaries', () => {
|
|
243
|
+
const agents = getDetectableAgents();
|
|
244
|
+
const binaries = agents.map(a => a.binary);
|
|
245
|
+
const unique = new Set(binaries);
|
|
246
|
+
expect(binaries.length).toBe(unique.size);
|
|
247
|
+
});
|
|
186
248
|
});
|
|
@@ -23,6 +23,14 @@ const MOCK_REGISTRY = {
|
|
|
23
23
|
command: '@anthropic/claude-code',
|
|
24
24
|
tags: ['coding'],
|
|
25
25
|
},
|
|
26
|
+
{
|
|
27
|
+
id: 'new-cdn-only',
|
|
28
|
+
name: 'CDN Only Agent',
|
|
29
|
+
description: 'An agent only available from CDN',
|
|
30
|
+
transport: 'stdio',
|
|
31
|
+
command: 'cdn-agent',
|
|
32
|
+
tags: ['new'],
|
|
33
|
+
},
|
|
26
34
|
],
|
|
27
35
|
};
|
|
28
36
|
|
|
@@ -38,11 +46,16 @@ describe('ACP Registry', () => {
|
|
|
38
46
|
|
|
39
47
|
const registry = await fetchAcpRegistry();
|
|
40
48
|
expect(registry).not.toBeNull();
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
const gemini = registry.agents.find(a => a.id === 'gemini-cli');
|
|
49
|
+
// Built-in agents are present with canonical IDs
|
|
50
|
+
const gemini = registry.agents.find(a => a.id === 'gemini');
|
|
44
51
|
expect(gemini).toBeDefined();
|
|
45
|
-
expect(gemini!.
|
|
52
|
+
expect(gemini!.name).toBe('Gemini CLI');
|
|
53
|
+
// CDN alias entries (gemini-cli) are deduplicated — built-in 'gemini' covers them
|
|
54
|
+
expect(registry.agents.find(a => a.id === 'gemini-cli')).toBeUndefined();
|
|
55
|
+
// CDN-only entries are added
|
|
56
|
+
const cdnOnly = registry.agents.find(a => a.id === 'new-cdn-only');
|
|
57
|
+
expect(cdnOnly).toBeDefined();
|
|
58
|
+
expect(cdnOnly!.name).toBe('CDN Only Agent');
|
|
46
59
|
});
|
|
47
60
|
|
|
48
61
|
it('caches the registry for subsequent calls', async () => {
|
|
@@ -146,7 +159,15 @@ describe('ACP Registry', () => {
|
|
|
146
159
|
});
|
|
147
160
|
|
|
148
161
|
describe('findAcpAgent', () => {
|
|
149
|
-
it('finds agent by ID', async () => {
|
|
162
|
+
it('finds agent by canonical ID', async () => {
|
|
163
|
+
mockFetch.mockResolvedValueOnce({ ok: true, json: async () => MOCK_REGISTRY });
|
|
164
|
+
|
|
165
|
+
const agent = await findAcpAgent('gemini');
|
|
166
|
+
expect(agent).not.toBeNull();
|
|
167
|
+
expect(agent!.name).toBe('Gemini CLI');
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
it('finds agent by alias ID (resolves to canonical)', async () => {
|
|
150
171
|
mockFetch.mockResolvedValueOnce({ ok: true, json: async () => MOCK_REGISTRY });
|
|
151
172
|
|
|
152
173
|
const agent = await findAcpAgent('gemini-cli');
|
|
@@ -154,6 +175,14 @@ describe('ACP Registry', () => {
|
|
|
154
175
|
expect(agent!.name).toBe('Gemini CLI');
|
|
155
176
|
});
|
|
156
177
|
|
|
178
|
+
it('finds CDN-only agent', async () => {
|
|
179
|
+
mockFetch.mockResolvedValueOnce({ ok: true, json: async () => MOCK_REGISTRY });
|
|
180
|
+
|
|
181
|
+
const agent = await findAcpAgent('new-cdn-only');
|
|
182
|
+
expect(agent).not.toBeNull();
|
|
183
|
+
expect(agent!.name).toBe('CDN Only Agent');
|
|
184
|
+
});
|
|
185
|
+
|
|
157
186
|
it('returns null for unknown ID', async () => {
|
|
158
187
|
mockFetch.mockResolvedValueOnce({ ok: true, json: async () => MOCK_REGISTRY });
|
|
159
188
|
|
|
@@ -40,7 +40,7 @@ vi.mock('../../lib/acp/subprocess', () => {
|
|
|
40
40
|
}),
|
|
41
41
|
onRequest: vi.fn(() => () => {}),
|
|
42
42
|
sendResponse: vi.fn(),
|
|
43
|
-
installAutoApproval: vi.fn(() => () => {}),
|
|
43
|
+
installAutoApproval: vi.fn((_proc: unknown, _opts?: unknown) => () => {}),
|
|
44
44
|
killAgent: vi.fn((p: { alive: boolean }) => { p.alive = false; }),
|
|
45
45
|
};
|
|
46
46
|
});
|
|
@@ -21,29 +21,29 @@ export default function Breadcrumb({ filePath }: { filePath: string }) {
|
|
|
21
21
|
|
|
22
22
|
if (friendly) {
|
|
23
23
|
return (
|
|
24
|
-
<nav className="flex items-center gap-
|
|
24
|
+
<nav className="flex items-center gap-2 text-xs text-muted-foreground flex-wrap">
|
|
25
25
|
<Link
|
|
26
26
|
href="/"
|
|
27
|
-
className="p-1.5 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors"
|
|
27
|
+
className="p-1.5 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors shrink-0"
|
|
28
28
|
title="Home"
|
|
29
29
|
>
|
|
30
30
|
<Home size={14} />
|
|
31
31
|
</Link>
|
|
32
32
|
<ChevronRight size={12} className="text-muted-foreground/50 shrink-0" />
|
|
33
|
-
<
|
|
33
|
+
<div className="flex items-center gap-1.5 text-foreground font-medium shrink-0">
|
|
34
34
|
{friendly.icon}
|
|
35
35
|
<span>{friendly.getLabel(t)}</span>
|
|
36
|
-
</
|
|
36
|
+
</div>
|
|
37
37
|
</nav>
|
|
38
38
|
);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
const parts = filePath.split('/');
|
|
42
42
|
return (
|
|
43
|
-
<nav className="flex items-center gap-
|
|
43
|
+
<nav className="flex items-center gap-2 text-xs text-muted-foreground flex-wrap">
|
|
44
44
|
<Link
|
|
45
45
|
href="/"
|
|
46
|
-
className="p-1.5 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors"
|
|
46
|
+
className="p-1.5 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors shrink-0"
|
|
47
47
|
title="Home"
|
|
48
48
|
>
|
|
49
49
|
<Home size={14} />
|
|
@@ -52,19 +52,19 @@ export default function Breadcrumb({ filePath }: { filePath: string }) {
|
|
|
52
52
|
const isLast = i === parts.length - 1;
|
|
53
53
|
const href = '/view/' + parts.slice(0, i + 1).map(encodeURIComponent).join('/');
|
|
54
54
|
return (
|
|
55
|
-
<
|
|
55
|
+
<div key={i} className="flex items-center gap-2 min-w-0">
|
|
56
56
|
<ChevronRight size={12} className="text-muted-foreground/50 shrink-0" />
|
|
57
57
|
{isLast ? (
|
|
58
|
-
<
|
|
58
|
+
<div className="flex items-center gap-1.5 text-foreground font-medium shrink-0">
|
|
59
59
|
<FileTypeIcon name={part} />
|
|
60
60
|
<span suppressHydrationWarning>{part}</span>
|
|
61
|
-
</
|
|
61
|
+
</div>
|
|
62
62
|
) : (
|
|
63
|
-
<Link href={href} className="px-2 py-1 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors truncate
|
|
63
|
+
<Link href={href} className="px-2 py-1 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors truncate text-muted-foreground hover:text-foreground" title={part}>
|
|
64
64
|
<span suppressHydrationWarning>{part}</span>
|
|
65
65
|
</Link>
|
|
66
66
|
)}
|
|
67
|
-
</
|
|
67
|
+
</div>
|
|
68
68
|
);
|
|
69
69
|
})}
|
|
70
70
|
</nav>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import { usePathname, useSearchParams } from 'next/navigation';
|
|
4
|
+
import { useRouter, usePathname, useSearchParams } from 'next/navigation';
|
|
5
5
|
import { Globe, Loader2, RefreshCw, Settings } from 'lucide-react';
|
|
6
6
|
import { useMcpData } from '@/lib/stores/mcp-store';
|
|
7
7
|
import { useA2aRegistry } from '@/hooks/useA2aRegistry';
|
|
@@ -27,6 +27,7 @@ export default function AgentsPanel({
|
|
|
27
27
|
}: AgentsPanelProps) {
|
|
28
28
|
const { t } = useLocale();
|
|
29
29
|
const p = t.panels.agents;
|
|
30
|
+
const router = useRouter();
|
|
30
31
|
const mcp = useMcpData();
|
|
31
32
|
const pathname = usePathname();
|
|
32
33
|
const searchParams = useSearchParams();
|
|
@@ -42,6 +43,10 @@ export default function AgentsPanel({
|
|
|
42
43
|
setRefreshing(false);
|
|
43
44
|
};
|
|
44
45
|
|
|
46
|
+
const handleChannelsClick = () => {
|
|
47
|
+
router.push('/agents?tab=channels');
|
|
48
|
+
};
|
|
49
|
+
|
|
45
50
|
const openAdvancedConfig = () => {
|
|
46
51
|
window.dispatchEvent(new CustomEvent('mindos:open-settings', { detail: { tab: 'mcp' } }));
|
|
47
52
|
};
|
|
@@ -84,6 +89,8 @@ export default function AgentsPanel({
|
|
|
84
89
|
copy={hubCopy}
|
|
85
90
|
connectedCount={connected.length}
|
|
86
91
|
mcpEnabled={mcp.status?.connectionMode?.mcp ?? false}
|
|
92
|
+
channelsActive={isChannelsTab}
|
|
93
|
+
onChannelsClick={handleChannelsClick}
|
|
87
94
|
/>
|
|
88
95
|
);
|
|
89
96
|
|
|
@@ -3,6 +3,7 @@ export { spawnAcpAgent, sendMessage, sendAndWait, onMessage, onNotification, onR
|
|
|
3
3
|
export { createSession, createSessionFromEntry, loadSession, listSessions, prompt, promptStream, cancelPrompt, setMode, setConfigOption, closeSession, getSession, getActiveSessions, closeAllSessions } from './session';
|
|
4
4
|
export { bridgeA2aToAcp, bridgeAcpResponseToA2a, bridgeAcpUpdatesToA2a } from './bridge';
|
|
5
5
|
export { acpTools } from './acp-tools';
|
|
6
|
+
export { AGENT_DESCRIPTORS, AGENT_ALIASES, resolveAlias, getDetectableAgents } from './agent-descriptors';
|
|
6
7
|
export { ACP_ERRORS } from './types';
|
|
7
8
|
export type {
|
|
8
9
|
AcpAgentCapabilities,
|
|
@@ -38,3 +39,4 @@ export type {
|
|
|
38
39
|
AcpTransportType,
|
|
39
40
|
} from './types';
|
|
40
41
|
export type { AcpProcess, AcpIncomingRequest, AcpNotification } from './subprocess';
|
|
42
|
+
export type { AcpAgentDescriptor, AcpAgentOverride, ResolvedAgentCommand, DetectableAgent } from './agent-descriptors';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wiki-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.69",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "wiki-app",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.6.69",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@base-ui/react": "^1.2.0",
|