phaibel 4.0.45 → 4.0.47

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.
Files changed (42) hide show
  1. package/dist/agents/a2a-client.d.ts +71 -0
  2. package/dist/agents/a2a-client.d.ts.map +1 -0
  3. package/dist/agents/a2a-client.js +155 -0
  4. package/dist/agents/a2a-client.js.map +1 -0
  5. package/dist/agents/agent-config.d.ts +13 -0
  6. package/dist/agents/agent-config.d.ts.map +1 -0
  7. package/dist/agents/agent-config.js +23 -0
  8. package/dist/agents/agent-config.js.map +1 -0
  9. package/dist/commands/agent.d.ts +4 -0
  10. package/dist/commands/agent.d.ts.map +1 -0
  11. package/dist/commands/agent.js +128 -0
  12. package/dist/commands/agent.js.map +1 -0
  13. package/dist/feral/bootstrap.d.ts.map +1 -1
  14. package/dist/feral/bootstrap.js +10 -3
  15. package/dist/feral/bootstrap.js.map +1 -1
  16. package/dist/feral/catalog/a2a-catalog-source.d.ts +14 -0
  17. package/dist/feral/catalog/a2a-catalog-source.d.ts.map +1 -0
  18. package/dist/feral/catalog/a2a-catalog-source.js +53 -0
  19. package/dist/feral/catalog/a2a-catalog-source.js.map +1 -0
  20. package/dist/feral/node-code/a2a/a2a-send-task-node-code.d.ts +12 -0
  21. package/dist/feral/node-code/a2a/a2a-send-task-node-code.d.ts.map +1 -0
  22. package/dist/feral/node-code/a2a/a2a-send-task-node-code.js +95 -0
  23. package/dist/feral/node-code/a2a/a2a-send-task-node-code.js.map +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/paths.d.ts +1 -0
  28. package/dist/paths.d.ts.map +1 -1
  29. package/dist/paths.js +3 -0
  30. package/dist/paths.js.map +1 -1
  31. package/dist/service/a2a-server.d.ts +12 -0
  32. package/dist/service/a2a-server.d.ts.map +1 -0
  33. package/dist/service/a2a-server.js +255 -0
  34. package/dist/service/a2a-server.js.map +1 -0
  35. package/dist/service/mcp-server.d.ts +7 -0
  36. package/dist/service/mcp-server.d.ts.map +1 -0
  37. package/dist/service/mcp-server.js +151 -0
  38. package/dist/service/mcp-server.js.map +1 -0
  39. package/dist/service/web-server.d.ts.map +1 -1
  40. package/dist/service/web-server.js +17 -0
  41. package/dist/service/web-server.js.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,71 @@
1
+ export interface A2AAgentCard {
2
+ name: string;
3
+ description: string;
4
+ url: string;
5
+ version?: string;
6
+ capabilities?: Record<string, unknown>;
7
+ skills?: A2ASkillInfo[];
8
+ }
9
+ export interface A2ASkillInfo {
10
+ id: string;
11
+ name: string;
12
+ description: string;
13
+ tags?: string[];
14
+ examples?: string[];
15
+ }
16
+ export interface A2ADiscoveredAgent {
17
+ agentId: string;
18
+ agentName: string;
19
+ description: string;
20
+ url: string;
21
+ skills: A2ASkillInfo[];
22
+ }
23
+ interface A2ATaskResult {
24
+ id: string;
25
+ status: {
26
+ state: string;
27
+ };
28
+ artifacts?: Array<{
29
+ name?: string;
30
+ parts: Array<{
31
+ type: string;
32
+ text?: string;
33
+ data?: unknown;
34
+ }>;
35
+ }>;
36
+ history?: Array<{
37
+ role: string;
38
+ parts: Array<{
39
+ type: string;
40
+ text?: string;
41
+ data?: unknown;
42
+ }>;
43
+ }>;
44
+ }
45
+ declare class A2AClientManager {
46
+ private agents;
47
+ private cards;
48
+ /**
49
+ * Fetch Agent Cards from all configured A2A agents, discover their skills.
50
+ */
51
+ discoverAllAgents(): Promise<A2ADiscoveredAgent[]>;
52
+ /**
53
+ * Send a task to an A2A agent. Returns the task result (synchronous — waits for completion).
54
+ */
55
+ sendTask(agentId: string, message: string, options?: {
56
+ skillId?: string;
57
+ data?: Record<string, unknown>;
58
+ }): Promise<A2ATaskResult>;
59
+ /**
60
+ * Get the status of a previously sent task.
61
+ */
62
+ getTask(agentId: string, taskId: string): Promise<A2ATaskResult>;
63
+ /**
64
+ * Get the cached agent card for an agent.
65
+ */
66
+ getAgentCard(agentId: string): A2AAgentCard | undefined;
67
+ private fetchAgentCard;
68
+ }
69
+ export declare const a2aClient: A2AClientManager;
70
+ export {};
71
+ //# sourceMappingURL=a2a-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a-client.d.ts","sourceRoot":"","sources":["../../src/agents/a2a-client.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACjE,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACjE,CAAC,CAAC;CACN;AAID,cAAM,gBAAgB;IAClB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,KAAK,CAAmC;IAEhD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAmCxD;;OAEG;IACG,QAAQ,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAC/D,OAAO,CAAC,aAAa,CAAC;IAiEzB;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAoCtE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;YAMzC,cAAc;CAW/B;AAED,eAAO,MAAM,SAAS,kBAAyB,CAAC"}
@@ -0,0 +1,155 @@
1
+ // ─────────────────────────────────────────────────────────────────────────────
2
+ // A2A Client — Connection Manager
3
+ // ─────────────────────────────────────────────────────────────────────────────
4
+ // Singleton that manages A2A agent connections. Discovers agent skills via
5
+ // Agent Cards, sends tasks via JSON-RPC.
6
+ //
7
+ // A2A spec: https://google.github.io/A2A/
8
+ // ─────────────────────────────────────────────────────────────────────────────
9
+ import crypto from 'crypto';
10
+ import { loadAgentsConfig } from './agent-config.js';
11
+ import { debug } from '../utils/debug.js';
12
+ // ── Client ───────────────────────────────────────────────────────────────────
13
+ class A2AClientManager {
14
+ agents = new Map();
15
+ cards = new Map();
16
+ /**
17
+ * Fetch Agent Cards from all configured A2A agents, discover their skills.
18
+ */
19
+ async discoverAllAgents() {
20
+ const config = await loadAgentsConfig();
21
+ if (config.agents.length === 0)
22
+ return [];
23
+ for (const agent of config.agents) {
24
+ this.agents.set(agent.id, agent);
25
+ }
26
+ const results = await Promise.allSettled(config.agents.map(agent => this.fetchAgentCard(agent)));
27
+ const discovered = [];
28
+ for (let i = 0; i < results.length; i++) {
29
+ const result = results[i];
30
+ if (result.status === 'fulfilled' && result.value) {
31
+ const agent = config.agents[i];
32
+ const card = result.value;
33
+ this.cards.set(agent.id, card);
34
+ discovered.push({
35
+ agentId: agent.id,
36
+ agentName: card.name,
37
+ description: card.description,
38
+ url: agent.url,
39
+ skills: card.skills ?? [],
40
+ });
41
+ debug('a2a-client', `Discovered agent "${card.name}" at ${agent.url} with ${card.skills?.length ?? 0} skills`);
42
+ }
43
+ else if (result.status === 'rejected') {
44
+ console.warn(`[agents] Failed to connect to "${config.agents[i].name}": ${result.reason}`);
45
+ }
46
+ }
47
+ return discovered;
48
+ }
49
+ /**
50
+ * Send a task to an A2A agent. Returns the task result (synchronous — waits for completion).
51
+ */
52
+ async sendTask(agentId, message, options) {
53
+ const agent = this.agents.get(agentId);
54
+ if (!agent)
55
+ throw new Error(`Unknown agent: ${agentId}`);
56
+ const taskId = crypto.randomUUID();
57
+ const parts = [];
58
+ // Text message
59
+ if (message) {
60
+ parts.push({ type: 'text', text: message });
61
+ }
62
+ // Structured data (e.g. skill selection, query parameters)
63
+ if (options?.data || options?.skillId) {
64
+ parts.push({
65
+ type: 'data',
66
+ data: { skill: options.skillId, ...options?.data },
67
+ });
68
+ }
69
+ const body = {
70
+ jsonrpc: '2.0',
71
+ id: taskId,
72
+ method: 'tasks/send',
73
+ params: {
74
+ id: taskId,
75
+ message: {
76
+ role: 'user',
77
+ parts,
78
+ },
79
+ },
80
+ };
81
+ const url = agent.url.replace(/\/$/, '') + '/a2a';
82
+ const headers = {
83
+ 'Content-Type': 'application/json',
84
+ ...agent.headers,
85
+ };
86
+ debug('a2a-client', `Sending task ${taskId} to ${agent.name} at ${url}`);
87
+ const response = await fetch(url, {
88
+ method: 'POST',
89
+ headers,
90
+ body: JSON.stringify(body),
91
+ });
92
+ if (!response.ok) {
93
+ throw new Error(`A2A request failed: ${response.status} ${response.statusText}`);
94
+ }
95
+ const json = await response.json();
96
+ if (json.error) {
97
+ throw new Error(`A2A error: ${json.error.message}`);
98
+ }
99
+ if (!json.result) {
100
+ throw new Error('A2A response missing result');
101
+ }
102
+ debug('a2a-client', `Task ${taskId} completed with state: ${json.result.status.state}`);
103
+ return json.result;
104
+ }
105
+ /**
106
+ * Get the status of a previously sent task.
107
+ */
108
+ async getTask(agentId, taskId) {
109
+ const agent = this.agents.get(agentId);
110
+ if (!agent)
111
+ throw new Error(`Unknown agent: ${agentId}`);
112
+ const url = agent.url.replace(/\/$/, '') + '/a2a';
113
+ const headers = {
114
+ 'Content-Type': 'application/json',
115
+ ...agent.headers,
116
+ };
117
+ const body = {
118
+ jsonrpc: '2.0',
119
+ id: 1,
120
+ method: 'tasks/get',
121
+ params: { id: taskId },
122
+ };
123
+ const response = await fetch(url, {
124
+ method: 'POST',
125
+ headers,
126
+ body: JSON.stringify(body),
127
+ });
128
+ if (!response.ok) {
129
+ throw new Error(`A2A request failed: ${response.status} ${response.statusText}`);
130
+ }
131
+ const json = await response.json();
132
+ if (json.error) {
133
+ throw new Error(`A2A error: ${json.error.message}`);
134
+ }
135
+ return json.result;
136
+ }
137
+ /**
138
+ * Get the cached agent card for an agent.
139
+ */
140
+ getAgentCard(agentId) {
141
+ return this.cards.get(agentId);
142
+ }
143
+ // ── Private ──────────────────────────────────────────────────────────────
144
+ async fetchAgentCard(agent) {
145
+ const url = agent.url.replace(/\/$/, '') + '/.well-known/agent.json';
146
+ const headers = { ...agent.headers };
147
+ const response = await fetch(url, { headers });
148
+ if (!response.ok) {
149
+ throw new Error(`Failed to fetch agent card: ${response.status} ${response.statusText}`);
150
+ }
151
+ return await response.json();
152
+ }
153
+ }
154
+ export const a2aClient = new A2AClientManager();
155
+ //# sourceMappingURL=a2a-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a-client.js","sourceRoot":"","sources":["../../src/agents/a2a-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface AgentEntry {
2
+ id: string;
3
+ name: string;
4
+ url: string;
5
+ description?: string;
6
+ headers?: Record<string, string>;
7
+ }
8
+ export interface AgentsConfig {
9
+ agents: AgentEntry[];
10
+ }
11
+ export declare function loadAgentsConfig(): Promise<AgentsConfig>;
12
+ export declare function saveAgentsConfig(cfg: AgentsConfig): Promise<void>;
13
+ //# sourceMappingURL=agent-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../src/agents/agent-config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC,CAS9D;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvE"}
@@ -0,0 +1,23 @@
1
+ // ─────────────────────────────────────────────────────────────────────────────
2
+ // A2A Agents — Configuration
3
+ // ─────────────────────────────────────────────────────────────────────────────
4
+ import { promises as fsPromises } from 'fs';
5
+ import { getAgentsConfigPath, getVaultConfigDir } from '../paths.js';
6
+ export async function loadAgentsConfig() {
7
+ try {
8
+ const configPath = await getAgentsConfigPath();
9
+ const raw = await fsPromises.readFile(configPath, 'utf-8');
10
+ const parsed = JSON.parse(raw);
11
+ return { agents: parsed.agents ?? [] };
12
+ }
13
+ catch {
14
+ return { agents: [] };
15
+ }
16
+ }
17
+ export async function saveAgentsConfig(cfg) {
18
+ const dir = await getVaultConfigDir();
19
+ await fsPromises.mkdir(dir, { recursive: true });
20
+ const configPath = await getAgentsConfigPath();
21
+ await fsPromises.writeFile(configPath, JSON.stringify(cfg, null, 2));
22
+ }
23
+ //# sourceMappingURL=agent-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../src/agents/agent-config.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,IAAI,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAcrE,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAClC,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1B,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAiB;IACpD,MAAM,GAAG,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACtC,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC/C,MAAM,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Command } from 'commander';
2
+ export declare const agentCommand: Command;
3
+ export default agentCommand;
4
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,YAAY,SACuB,CAAC;AAyIjD,eAAe,YAAY,CAAC"}
@@ -0,0 +1,128 @@
1
+ // ─────────────────────────────────────────────────────────────────────────────
2
+ // AGENT COMMAND
3
+ // ─────────────────────────────────────────────────────────────────────────────
4
+ // Manage A2A agent connections — add, remove, list, ping.
5
+ // ─────────────────────────────────────────────────────────────────────────────
6
+ import { Command } from 'commander';
7
+ import chalk from 'chalk';
8
+ import { loadAgentsConfig, saveAgentsConfig } from '../agents/agent-config.js';
9
+ export const agentCommand = new Command('agent')
10
+ .description('Manage A2A agent connections');
11
+ // ── add ──────────────────────────────────────────────────────────────────────
12
+ agentCommand
13
+ .command('add <name>')
14
+ .description('Add an A2A agent')
15
+ .requiredOption('--url <url>', 'Base URL of the A2A agent (e.g. http://localhost:4000)')
16
+ .option('--description <desc>', 'Human-readable description of the agent')
17
+ .option('--headers <pairs...>', 'Custom headers as KEY=VAL pairs (e.g. Authorization="Bearer token")')
18
+ .action(async (name, opts) => {
19
+ const cfg = await loadAgentsConfig();
20
+ const id = name.toLowerCase().replace(/[^a-z0-9-_]/g, '-');
21
+ if (cfg.agents.some(a => a.id === id)) {
22
+ console.log(chalk.yellow(`\n An agent with id "${id}" already exists, sir.`));
23
+ console.log(chalk.gray(` Use ${chalk.bold(`phaibel agent remove ${id}`)} first, then re-add.\n`));
24
+ return;
25
+ }
26
+ const headers = {};
27
+ if (opts.headers) {
28
+ for (const pair of opts.headers) {
29
+ const eqIdx = pair.indexOf('=');
30
+ if (eqIdx > 0) {
31
+ headers[pair.slice(0, eqIdx)] = pair.slice(eqIdx + 1);
32
+ }
33
+ }
34
+ }
35
+ cfg.agents.push({
36
+ id,
37
+ name,
38
+ url: opts.url.replace(/\/$/, ''),
39
+ description: opts.description,
40
+ headers: Object.keys(headers).length > 0 ? headers : undefined,
41
+ });
42
+ await saveAgentsConfig(cfg);
43
+ console.log(chalk.green(`\n Agent "${name}" (${id}) added at ${opts.url}`));
44
+ console.log(chalk.gray(` It will be available next time the agent starts.\n`));
45
+ });
46
+ // ── remove ───────────────────────────────────────────────────────────────────
47
+ agentCommand
48
+ .command('remove <name>')
49
+ .description('Remove an A2A agent')
50
+ .action(async (name) => {
51
+ const cfg = await loadAgentsConfig();
52
+ const idx = cfg.agents.findIndex(a => a.id === name || a.name === name);
53
+ if (idx === -1) {
54
+ console.log(chalk.yellow(`\n No agent found with id or name "${name}", sir.\n`));
55
+ return;
56
+ }
57
+ const removed = cfg.agents.splice(idx, 1)[0];
58
+ await saveAgentsConfig(cfg);
59
+ console.log(chalk.green(`\n Agent "${removed.name}" (${removed.id}) removed, sir.\n`));
60
+ });
61
+ // ── list ─────────────────────────────────────────────────────────────────────
62
+ agentCommand
63
+ .command('list')
64
+ .description('Show all configured A2A agents')
65
+ .action(async () => {
66
+ const cfg = await loadAgentsConfig();
67
+ if (cfg.agents.length === 0) {
68
+ console.log(chalk.yellow('\n No agents configured.'));
69
+ console.log(chalk.gray(` Use ${chalk.bold('phaibel agent add <name> --url <url>')} to add one.\n`));
70
+ return;
71
+ }
72
+ console.log(chalk.cyan('\n Configured A2A agents:\n'));
73
+ for (const agent of cfg.agents) {
74
+ console.log(` ${chalk.bold(agent.name)} ${chalk.gray(`(${agent.id})`)}`);
75
+ console.log(` ${chalk.gray(agent.url)}`);
76
+ if (agent.description) {
77
+ console.log(` ${chalk.gray(agent.description)}`);
78
+ }
79
+ if (agent.headers && Object.keys(agent.headers).length > 0) {
80
+ console.log(` ${chalk.gray(`headers: ${Object.keys(agent.headers).join(', ')}`)}`);
81
+ }
82
+ console.log('');
83
+ }
84
+ });
85
+ // ── ping ─────────────────────────────────────────────────────────────────────
86
+ agentCommand
87
+ .command('ping [name]')
88
+ .description('Ping an A2A agent (or all) to check connectivity and discover skills')
89
+ .action(async (name) => {
90
+ const cfg = await loadAgentsConfig();
91
+ if (cfg.agents.length === 0) {
92
+ console.log(chalk.yellow('\n No agents configured.\n'));
93
+ return;
94
+ }
95
+ const targets = name
96
+ ? cfg.agents.filter(a => a.id === name || a.name === name)
97
+ : cfg.agents;
98
+ if (targets.length === 0) {
99
+ console.log(chalk.yellow(`\n No agent found with id or name "${name}", sir.\n`));
100
+ return;
101
+ }
102
+ console.log(chalk.cyan('\n Pinging A2A agents...\n'));
103
+ for (const agent of targets) {
104
+ try {
105
+ const url = agent.url + '/.well-known/agent.json';
106
+ const response = await fetch(url, { headers: agent.headers });
107
+ if (!response.ok) {
108
+ console.log(` ${chalk.red('✗')} ${chalk.bold(agent.name)} — ${response.status} ${response.statusText}`);
109
+ continue;
110
+ }
111
+ const card = await response.json();
112
+ const skillCount = card.skills?.length ?? 0;
113
+ console.log(` ${chalk.green('✓')} ${chalk.bold(card.name)} — ${skillCount} skill${skillCount !== 1 ? 's' : ''}`);
114
+ if (card.skills) {
115
+ for (const skill of card.skills) {
116
+ console.log(` ${chalk.gray(`- ${skill.name} (${skill.id})`)}`);
117
+ }
118
+ }
119
+ }
120
+ catch (err) {
121
+ const msg = err instanceof Error ? err.message : String(err);
122
+ console.log(` ${chalk.red('✗')} ${chalk.bold(agent.name)} — ${msg}`);
123
+ }
124
+ }
125
+ console.log('');
126
+ });
127
+ export default agentCommand;
128
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/feral/bootstrap.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAI/C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAiLpD;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAChC,cAAc,GAAE,aAAa,EAAO,GACrC,OAAO,CAAC,YAAY,CAAC,CAgEvB"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/feral/bootstrap.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAI/C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAqLpD;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAChC,cAAc,GAAE,aAAa,EAAO,GACrC,OAAO,CAAC,YAAY,CAAC,CAmEvB"}
@@ -74,8 +74,9 @@ import { LoadVaultContextNodeCode } from './node-code/entity/load-vault-context-
74
74
  import { CreateRecurringTaskNodeCode } from './node-code/entity/create-recurring-task-node-code.js';
75
75
  import { SearchEntitiesNodeCode } from './node-code/entity/search-entities-node-code.js';
76
76
  import { LinkEntitiesNodeCode } from './node-code/entity/link-entities-node-code.js';
77
- // PAMP node codes
77
+ // MCP & A2A node codes
78
78
  import { McpCallToolNodeCode } from './node-code/mcp/mcp-call-tool-node-code.js';
79
+ import { A2ASendTaskNodeCode } from './node-code/a2a/a2a-send-task-node-code.js';
79
80
  import { PampSendNodeCode } from './node-code/pamp/pamp-send-node-code.js';
80
81
  import { PampCheckInboxNodeCode } from './node-code/pamp/pamp-check-inbox-node-code.js';
81
82
  import { PampShareEntityNodeCode } from './node-code/pamp/pamp-share-entity-node-code.js';
@@ -89,6 +90,7 @@ import { OutputCatalogSource } from './catalog/output-catalog-source.js';
89
90
  import { IntrospectCatalogSource } from './catalog/introspect-catalog-source.js';
90
91
  import { PampCatalogSource } from './catalog/pamp-catalog-source.js';
91
92
  import { McpCatalogSource } from './catalog/mcp-catalog-source.js';
93
+ import { A2ACatalogSource } from './catalog/a2a-catalog-source.js';
92
94
  import { UsageCatalogSource } from './catalog/usage-catalog-source.js';
93
95
  // System & output node codes
94
96
  import { CliCommandNodeCode } from './node-code/system/cli-command-node-code.js';
@@ -180,6 +182,8 @@ function getBuiltInNodeCodes() {
180
182
  new PampAwaitReplyNodeCode(),
181
183
  // MCP
182
184
  new McpCallToolNodeCode(),
185
+ // A2A
186
+ new A2ASendTaskNodeCode(),
183
187
  ];
184
188
  }
185
189
  /**
@@ -194,12 +198,14 @@ export async function bootstrapFeral(processSources = []) {
194
198
  const nodeCodeFactory = new NodeCodeFactory([
195
199
  { getNodeCodes: () => getBuiltInNodeCodes() },
196
200
  ]);
197
- // 2. Load catalog config, entity types, and MCP tools (parallel — independent)
201
+ // 2. Load catalog config, entity types, MCP tools, and A2A agents (parallel — independent)
198
202
  const { mcpManager } = await import('../skills/mcp-manager.js');
199
- const [catalogConfig, entityTypes, mcpTools, trackedModels] = await Promise.all([
203
+ const { a2aClient } = await import('../agents/a2a-client.js');
204
+ const [catalogConfig, entityTypes, mcpTools, a2aAgents, trackedModels] = await Promise.all([
200
205
  loadFeralCatalogConfig(),
201
206
  loadEntityTypes(),
202
207
  mcpManager.discoverAllTools(),
208
+ a2aClient.discoverAllAgents(),
203
209
  getTrackedModels(),
204
210
  ]);
205
211
  // 3. Build catalog from all sources
@@ -214,6 +220,7 @@ export async function bootstrapFeral(processSources = []) {
214
220
  new IntrospectCatalogSource(),
215
221
  new PampCatalogSource(),
216
222
  new McpCatalogSource(mcpTools),
223
+ new A2ACatalogSource(a2aAgents),
217
224
  new UsageCatalogSource(trackedModels),
218
225
  ]);
219
226
  // 4. Load process definitions from {vault}/.phaibel/processes/
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/feral/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/feral/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { CatalogSource } from './catalog.js';
2
+ import type { CatalogNode } from './catalog-node.js';
3
+ import type { A2ADiscoveredAgent } from '../../agents/a2a-client.js';
4
+ /**
5
+ * Provides CatalogNodes for skills discovered from A2A agents.
6
+ * Each agent skill becomes a selectable catalog node.
7
+ * Agents with no declared skills get a single "chat" node.
8
+ */
9
+ export declare class A2ACatalogSource implements CatalogSource {
10
+ private agents;
11
+ constructor(agents: A2ADiscoveredAgent[]);
12
+ getCatalogNodes(): CatalogNode[];
13
+ }
14
+ //# sourceMappingURL=a2a-catalog-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a-catalog-source.d.ts","sourceRoot":"","sources":["../../../src/feral/catalog/a2a-catalog-source.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IAClD,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,EAAE,kBAAkB,EAAE;IAIxC,eAAe,IAAI,WAAW,EAAE;CAsCnC"}
@@ -0,0 +1,53 @@
1
+ // ─────────────────────────────────────────────────────────────────────────────
2
+ // Feral A2A — Catalog Source
3
+ // ─────────────────────────────────────────────────────────────────────────────
4
+ import { createCatalogNode } from './catalog-node.js';
5
+ /**
6
+ * Provides CatalogNodes for skills discovered from A2A agents.
7
+ * Each agent skill becomes a selectable catalog node.
8
+ * Agents with no declared skills get a single "chat" node.
9
+ */
10
+ export class A2ACatalogSource {
11
+ agents;
12
+ constructor(agents) {
13
+ this.agents = agents;
14
+ }
15
+ getCatalogNodes() {
16
+ const nodes = [];
17
+ for (const agent of this.agents) {
18
+ if (agent.skills.length > 0) {
19
+ // One catalog node per declared skill
20
+ for (const skill of agent.skills) {
21
+ nodes.push(createCatalogNode({
22
+ key: `a2a_${agent.agentId}_${skill.id}`,
23
+ nodeCodeKey: 'a2a_send_task',
24
+ name: `${agent.agentName}: ${skill.name}`,
25
+ group: `agent:${agent.agentId}`,
26
+ description: skill.description,
27
+ configuration: {
28
+ agent_id: agent.agentId,
29
+ agent_name: agent.agentName,
30
+ skill_id: skill.id,
31
+ },
32
+ }));
33
+ }
34
+ }
35
+ else {
36
+ // Agent without declared skills — single chat node
37
+ nodes.push(createCatalogNode({
38
+ key: `a2a_${agent.agentId}_chat`,
39
+ nodeCodeKey: 'a2a_send_task',
40
+ name: `${agent.agentName}: Chat`,
41
+ group: `agent:${agent.agentId}`,
42
+ description: agent.description,
43
+ configuration: {
44
+ agent_id: agent.agentId,
45
+ agent_name: agent.agentName,
46
+ },
47
+ }));
48
+ }
49
+ }
50
+ return nodes;
51
+ }
52
+ }
53
+ //# sourceMappingURL=a2a-catalog-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a-catalog-source.js","sourceRoot":"","sources":["../../../src/feral/catalog/a2a-catalog-source.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAIhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IACjB,MAAM,CAAuB;IAErC,YAAY,MAA4B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,eAAe;QACX,MAAM,KAAK,GAAkB,EAAE,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,sCAAsC;gBACtC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBACzB,GAAG,EAAE,OAAO,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE;wBACvC,WAAW,EAAE,eAAe;wBAC5B,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,EAAE;wBACzC,KAAK,EAAE,SAAS,KAAK,CAAC,OAAO,EAAE;wBAC/B,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,aAAa,EAAE;4BACX,QAAQ,EAAE,KAAK,CAAC,OAAO;4BACvB,UAAU,EAAE,KAAK,CAAC,SAAS;4BAC3B,QAAQ,EAAE,KAAK,CAAC,EAAE;yBACrB;qBACJ,CAAC,CAAC,CAAC;gBACR,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,mDAAmD;gBACnD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBACzB,GAAG,EAAE,OAAO,KAAK,CAAC,OAAO,OAAO;oBAChC,WAAW,EAAE,eAAe;oBAC5B,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,QAAQ;oBAChC,KAAK,EAAE,SAAS,KAAK,CAAC,OAAO,EAAE;oBAC/B,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,aAAa,EAAE;wBACX,QAAQ,EAAE,KAAK,CAAC,OAAO;wBACvB,UAAU,EAAE,KAAK,CAAC,SAAS;qBAC9B;iBACJ,CAAC,CAAC,CAAC;YACR,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
@@ -0,0 +1,12 @@
1
+ import type { Context } from '../../context/context.js';
2
+ import type { Result } from '../../result/result.js';
3
+ import type { ConfigurationDescription, ResultDescription } from '../../configuration/configuration-description.js';
4
+ import { AbstractNodeCode } from '../abstract-node-code.js';
5
+ export declare class A2ASendTaskNodeCode extends AbstractNodeCode {
6
+ readonly allowExtraConfig = true;
7
+ static readonly configDescriptions: ConfigurationDescription[];
8
+ static readonly resultDescriptions: ResultDescription[];
9
+ constructor();
10
+ process(context: Context): Promise<Result>;
11
+ }
12
+ //# sourceMappingURL=a2a-send-task-node-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a-send-task-node-code.d.ts","sourceRoot":"","sources":["../../../../src/feral/node-code/a2a/a2a-send-task-node-code.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,qBAAa,mBAAoB,SAAQ,gBAAgB;IACrD,QAAQ,CAAC,gBAAgB,QAAQ;IAEjC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,CAQ5D;IACF,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,CAGrD;;IAMI,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAgDnD"}