@agent-native/core 0.2.7 → 0.3.1
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/README.md +59 -26
- package/dist/a2a/agent-card.d.ts +3 -0
- package/dist/a2a/agent-card.d.ts.map +1 -0
- package/dist/a2a/agent-card.js +26 -0
- package/dist/a2a/agent-card.js.map +1 -0
- package/dist/a2a/client.d.ts +25 -0
- package/dist/a2a/client.d.ts.map +1 -0
- package/dist/a2a/client.js +119 -0
- package/dist/a2a/client.js.map +1 -0
- package/dist/a2a/handlers.d.ts +4 -0
- package/dist/a2a/handlers.d.ts.map +1 -0
- package/dist/a2a/handlers.js +252 -0
- package/dist/a2a/handlers.js.map +1 -0
- package/dist/a2a/index.d.ts +4 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +5 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/a2a/middleware.d.ts +3 -0
- package/dist/a2a/middleware.d.ts.map +1 -0
- package/dist/a2a/middleware.js +36 -0
- package/dist/a2a/middleware.js.map +1 -0
- package/dist/a2a/server.d.ts +4 -0
- package/dist/a2a/server.d.ts.map +1 -0
- package/dist/a2a/server.js +18 -0
- package/dist/a2a/server.js.map +1 -0
- package/dist/a2a/task-store.d.ts +10 -0
- package/dist/a2a/task-store.d.ts.map +1 -0
- package/dist/a2a/task-store.js +73 -0
- package/dist/a2a/task-store.js.map +1 -0
- package/dist/a2a/types.d.ts +109 -0
- package/dist/a2a/types.d.ts.map +1 -0
- package/dist/a2a/types.js +3 -0
- package/dist/a2a/types.js.map +1 -0
- package/dist/adapters/cli/index.d.ts +4 -0
- package/dist/adapters/cli/index.d.ts.map +1 -0
- package/dist/adapters/cli/index.js +3 -0
- package/dist/adapters/cli/index.js.map +1 -0
- package/dist/adapters/cli/registry.d.ts +33 -0
- package/dist/adapters/cli/registry.d.ts.map +1 -0
- package/dist/adapters/cli/registry.js +62 -0
- package/dist/adapters/cli/registry.js.map +1 -0
- package/dist/adapters/cli/shell-adapter.d.ts +42 -0
- package/dist/adapters/cli/shell-adapter.d.ts.map +1 -0
- package/dist/adapters/cli/shell-adapter.js +57 -0
- package/dist/adapters/cli/shell-adapter.js.map +1 -0
- package/dist/adapters/cli/types.d.ts +24 -0
- package/dist/adapters/cli/types.d.ts.map +1 -0
- package/dist/adapters/cli/types.js +2 -0
- package/dist/adapters/cli/types.js.map +1 -0
- package/dist/adapters/firestore/adapter.d.ts.map +1 -1
- package/dist/adapters/firestore/adapter.js.map +1 -1
- package/dist/adapters/neon/adapter.d.ts.map +1 -1
- package/dist/adapters/neon/adapter.js +37 -21
- package/dist/adapters/neon/adapter.js.map +1 -1
- package/dist/adapters/supabase/adapter.d.ts.map +1 -1
- package/dist/adapters/supabase/adapter.js +10 -2
- package/dist/adapters/supabase/adapter.js.map +1 -1
- package/dist/adapters/sync/file-sync.d.ts.map +1 -1
- package/dist/adapters/sync/file-sync.js.map +1 -1
- package/dist/adapters/sync/index.d.ts +2 -2
- package/dist/adapters/sync/index.d.ts.map +1 -1
- package/dist/adapters/sync/index.js +1 -1
- package/dist/adapters/sync/index.js.map +1 -1
- package/dist/adapters/sync/merge.js +1 -2
- package/dist/adapters/sync/merge.js.map +1 -1
- package/dist/adapters/sync/types.d.ts.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js +15 -13
- package/dist/cli/index.js.map +1 -1
- package/dist/client/components/ApiKeySettings.d.ts +1 -1
- package/dist/client/components/ApiKeySettings.d.ts.map +1 -1
- package/dist/client/components/ApiKeySettings.js +9 -4
- package/dist/client/components/ApiKeySettings.js.map +1 -1
- package/dist/client/components/MissingKeyCard.d.ts +1 -1
- package/dist/client/components/MissingKeyCard.d.ts.map +1 -1
- package/dist/client/components/MissingKeyCard.js +1 -1
- package/dist/client/components/MissingKeyCard.js.map +1 -1
- package/dist/client/harness.d.ts +10 -0
- package/dist/client/harness.d.ts.map +1 -1
- package/dist/client/harness.js +27 -0
- package/dist/client/harness.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/use-file-watcher.d.ts.map +1 -1
- package/dist/client/use-file-watcher.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/scripts/utils.d.ts.map +1 -1
- package/dist/scripts/utils.js +3 -1
- package/dist/scripts/utils.js.map +1 -1
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +2 -1
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/missing-key.d.ts.map +1 -1
- package/dist/server/missing-key.js.map +1 -1
- package/dist/server/production.d.ts.map +1 -1
- package/dist/server/production.js.map +1 -1
- package/dist/server/sse.d.ts +1 -1
- package/dist/server/sse.d.ts.map +1 -1
- package/dist/server/sse.js.map +1 -1
- package/dist/shared/agent-chat.d.ts +18 -0
- package/dist/shared/agent-chat.d.ts.map +1 -1
- package/dist/shared/agent-chat.js +35 -0
- package/dist/shared/agent-chat.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/index.js.map +1 -1
- package/package.json +127 -125
- package/src/templates/default/.agents/skills/capture-learnings/SKILL.md +50 -0
- package/src/templates/default/.agents/skills/create-skill/SKILL.md +167 -0
- package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +90 -0
- package/src/templates/default/.agents/skills/files-as-database/SKILL.md +91 -0
- package/src/templates/default/.agents/skills/frontend-design/SKILL.md +69 -0
- package/src/templates/default/.agents/skills/scripts/SKILL.md +118 -0
- package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +79 -0
- package/src/templates/default/.agents/skills/sse-file-watcher/SKILL.md +95 -0
- package/src/templates/default/.claude/settings.json +86 -68
- package/src/templates/default/.prettierrc +5 -5
- package/src/templates/default/AGENTS.md +86 -69
- package/src/templates/default/client/App.tsx +56 -54
- package/src/templates/default/client/global.css +75 -72
- package/src/templates/default/client/lib/utils.ts +1 -1
- package/src/templates/default/client/vite-env.d.ts +1 -1
- package/src/templates/default/components.json +20 -20
- package/src/templates/default/index.html +14 -14
- package/src/templates/default/package.json +43 -43
- package/src/templates/default/postcss.config.js +6 -6
- package/src/templates/default/scripts/hello.ts +20 -20
- package/src/templates/default/scripts/run.ts +9 -9
- package/src/templates/default/server/index.ts +22 -18
- package/src/templates/default/server/node-build.ts +4 -4
- package/src/templates/default/shared/api.ts +6 -6
- package/src/templates/default/tailwind.config.ts +7 -7
- package/src/templates/default/tsconfig.json +3 -3
- package/src/templates/default/vite.config.server.ts +3 -3
- package/src/templates/default/vite.config.ts +3 -3
- package/tsconfig.base.json +41 -41
package/README.md
CHANGED
|
@@ -12,18 +12,29 @@ Start from a production-ready template. Each one replaces tools you're paying fo
|
|
|
12
12
|
|
|
13
13
|
<table>
|
|
14
14
|
<tr>
|
|
15
|
-
<td width="
|
|
15
|
+
<td width="33%" align="center" valign="top">
|
|
16
16
|
|
|
17
|
-
**
|
|
17
|
+
**Mail**
|
|
18
18
|
|
|
19
|
-
<a href="https://agent-native.com/templates/
|
|
19
|
+
<a href="https://agent-native.com/templates/mail"><img src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F6f49a81c404d4242b33317491eac7575?format=webp&width=800" alt="Mail template" width="100%" /></a>
|
|
20
20
|
|
|
21
|
-
**AI-Native
|
|
21
|
+
**AI-Native Mail, Superhuman**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Superhuman-style email client with keyboard shortcuts, AI triage, and a fully customizable inbox you own.
|
|
24
|
+
|
|
25
|
+
</td>
|
|
26
|
+
<td width="33%" align="center" valign="top">
|
|
27
|
+
|
|
28
|
+
**Calendar**
|
|
29
|
+
|
|
30
|
+
<a href="https://agent-native.com/templates/calendar"><img src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2Ffb6c3b483ca24ab3b6c3a758aeceef4c?format=webp&width=800" alt="Calendar template" width="100%" /></a>
|
|
31
|
+
|
|
32
|
+
**AI-Native Google Calendar, Calendly**
|
|
33
|
+
|
|
34
|
+
Manage events, sync with Google Calendar, and share a public booking page with AI scheduling.
|
|
24
35
|
|
|
25
36
|
</td>
|
|
26
|
-
<td width="
|
|
37
|
+
<td width="33%" align="center" valign="top">
|
|
27
38
|
|
|
28
39
|
**Content**
|
|
29
40
|
|
|
@@ -34,7 +45,9 @@ Connect any data source, prompt for any chart. Build reusable dashboards, not th
|
|
|
34
45
|
Write and organize content with an agent that knows your brand and publishing workflow.
|
|
35
46
|
|
|
36
47
|
</td>
|
|
37
|
-
|
|
48
|
+
</tr>
|
|
49
|
+
<tr>
|
|
50
|
+
<td width="33%" align="center" valign="top">
|
|
38
51
|
|
|
39
52
|
**Slides**
|
|
40
53
|
|
|
@@ -45,7 +58,7 @@ Write and organize content with an agent that knows your brand and publishing wo
|
|
|
45
58
|
Generate and edit React-based presentations via prompt or point-and-click.
|
|
46
59
|
|
|
47
60
|
</td>
|
|
48
|
-
<td width="
|
|
61
|
+
<td width="33%" align="center" valign="top">
|
|
49
62
|
|
|
50
63
|
**Video**
|
|
51
64
|
|
|
@@ -56,25 +69,18 @@ Generate and edit React-based presentations via prompt or point-and-click.
|
|
|
56
69
|
Create and edit Remotion video compositions with agent assistance.
|
|
57
70
|
|
|
58
71
|
</td>
|
|
59
|
-
<td width="
|
|
72
|
+
<td width="33%" align="center" valign="top">
|
|
60
73
|
|
|
61
|
-
**
|
|
74
|
+
**Analytics**
|
|
62
75
|
|
|
63
|
-
<a href="https://agent-native.com/templates/
|
|
76
|
+
<a href="https://agent-native.com/templates/analytics"><img src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F4933a80cc3134d7e874631f688be828a?format=webp&width=800" alt="Analytics template" width="100%" /></a>
|
|
64
77
|
|
|
65
|
-
**AI-Native
|
|
78
|
+
**AI-Native Amplitude, Mixpanel**
|
|
66
79
|
|
|
67
|
-
|
|
80
|
+
Connect any data source, prompt for any chart. Build reusable dashboards, not throwaway Q&A.
|
|
68
81
|
|
|
69
82
|
</td>
|
|
70
83
|
</tr>
|
|
71
|
-
<tr>
|
|
72
|
-
<td align="center"><a href="https://agent-native.com/templates/analytics"><img src=".github/assets/launch-button.svg" alt="Launch Analytics" height="36" /></a></td>
|
|
73
|
-
<td align="center"><a href="https://agent-native.com/templates/content"><img src=".github/assets/launch-button.svg" alt="Launch Content" height="36" /></a></td>
|
|
74
|
-
<td align="center"><a href="https://agent-native.com/templates/slides"><img src=".github/assets/launch-button.svg" alt="Launch Slides" height="36" /></a></td>
|
|
75
|
-
<td align="center"><a href="https://agent-native.com/templates/video"><img src=".github/assets/launch-button.svg" alt="Launch Video" height="36" /></a></td>
|
|
76
|
-
<td align="center"><a href="https://agent-native.com/templates/calendar"><img src=".github/assets/launch-button.svg" alt="Launch Calendar" height="36" /></a></td>
|
|
77
|
-
</tr>
|
|
78
84
|
</table>
|
|
79
85
|
|
|
80
86
|
Every template is forkable, open source, and designed to be customized. Try them with example data before connecting your own sources.
|
|
@@ -104,15 +110,42 @@ Agent-native apps follow five rules:
|
|
|
104
110
|
|
|
105
111
|
Agent-native apps run inside a **harness** — a host that provides the AI agent alongside your app UI.
|
|
106
112
|
|
|
107
|
-
|
|
|
108
|
-
|
|
109
|
-
| **Run**
|
|
110
|
-
| **Collaboration** | Solo
|
|
111
|
-
| **Features**
|
|
112
|
-
| **Best for**
|
|
113
|
+
| | Local / Open Source | Builder Cloud |
|
|
114
|
+
| ----------------- | ------------------------------------ | ----------------------------------- |
|
|
115
|
+
| **Run** | Claude Code CLI or any local harness | One-click launch from templates |
|
|
116
|
+
| **Collaboration** | Solo | Real-time multiplayer |
|
|
117
|
+
| **Features** | Full permissions, full control | Visual editing, roles & permissions |
|
|
118
|
+
| **Best for** | Solo dev, local testing, OSS | Teams, production |
|
|
113
119
|
|
|
114
120
|
Your app code is identical regardless of harness. Start local, go to cloud when you need teams.
|
|
115
121
|
|
|
122
|
+
## Skills
|
|
123
|
+
|
|
124
|
+
Agent-native ships with built-in **skills** — structured guidance files in `.agents/skills/` that teach the AI agent how to work within the framework. Every new app created with `npx @agent-native/core create` includes them automatically.
|
|
125
|
+
|
|
126
|
+
| Skill | Purpose |
|
|
127
|
+
| --------------------- | -------------------------------------- |
|
|
128
|
+
| `files-as-database` | Store and read all state as files |
|
|
129
|
+
| `delegate-to-agent` | Route AI work through the agent chat |
|
|
130
|
+
| `scripts` | Create and run agent-callable scripts |
|
|
131
|
+
| `sse-file-watcher` | Keep the UI in sync via SSE |
|
|
132
|
+
| `self-modifying-code` | Safely edit app source and components |
|
|
133
|
+
| `create-skill` | Add new skills to the agent |
|
|
134
|
+
| `capture-learnings` | Record corrections and patterns |
|
|
135
|
+
| `frontend-design` | Build distinctive, production-grade UI |
|
|
136
|
+
|
|
137
|
+
### Frontend Design Skill
|
|
138
|
+
|
|
139
|
+
The **`frontend-design`** skill (sourced from [Anthropic's skills library](https://github.com/anthropics/skills/blob/main/skills/frontend-design/SKILL.md)) is active across all templates and new apps. It guides the agent to produce visually striking, memorable interfaces — committing to a clear aesthetic direction rather than defaulting to generic AI-generated patterns.
|
|
140
|
+
|
|
141
|
+
Key principles it enforces:
|
|
142
|
+
|
|
143
|
+
- **Typography**: Distinctive, characterful font pairings — never Arial, Inter, or system defaults
|
|
144
|
+
- **Color**: Cohesive palettes with dominant colors and sharp accents
|
|
145
|
+
- **Motion**: High-impact animations and micro-interactions via CSS or Framer Motion
|
|
146
|
+
- **Spatial composition**: Asymmetry, overlap, and unexpected layouts over predictable grids
|
|
147
|
+
- **Backgrounds**: Gradient meshes, noise textures, and layered effects over flat solid colors
|
|
148
|
+
|
|
116
149
|
## Docs
|
|
117
150
|
|
|
118
151
|
Full documentation at **[agent-native.com](https://agent-native.com)**.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../../src/a2a/agent-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,GACd,SAAS,CA0BX"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function generateAgentCard(config, baseUrl) {
|
|
2
|
+
const card = {
|
|
3
|
+
name: config.name,
|
|
4
|
+
description: config.description,
|
|
5
|
+
url: baseUrl,
|
|
6
|
+
version: config.version ?? "1.0.0",
|
|
7
|
+
protocolVersion: "0.3",
|
|
8
|
+
capabilities: {
|
|
9
|
+
streaming: config.streaming ?? false,
|
|
10
|
+
pushNotifications: false,
|
|
11
|
+
stateTransitionHistory: true,
|
|
12
|
+
},
|
|
13
|
+
skills: config.skills,
|
|
14
|
+
};
|
|
15
|
+
if (config.apiKeyEnv) {
|
|
16
|
+
card.securitySchemes = {
|
|
17
|
+
apiKey: {
|
|
18
|
+
type: "http",
|
|
19
|
+
scheme: "bearer",
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
card.security = [{ apiKey: [] }];
|
|
23
|
+
}
|
|
24
|
+
return card;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=agent-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-card.js","sourceRoot":"","sources":["../../src/a2a/agent-card.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAC/B,MAAiB,EACjB,OAAe;IAEf,MAAM,IAAI,GAAc;QACtB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,GAAG,EAAE,OAAO;QACZ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;QAClC,eAAe,EAAE,KAAK;QACtB,YAAY,EAAE;YACZ,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;YACpC,iBAAiB,EAAE,KAAK;YACxB,sBAAsB,EAAE,IAAI;SAC7B;QACD,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;IAEF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG;YACrB,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,QAAQ;aACjB;SACF,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AgentCard, Message, Task } from "./types.js";
|
|
2
|
+
export declare class A2AClient {
|
|
3
|
+
private baseUrl;
|
|
4
|
+
private apiKey?;
|
|
5
|
+
constructor(baseUrl: string, apiKey?: string);
|
|
6
|
+
private headers;
|
|
7
|
+
private rpc;
|
|
8
|
+
getAgentCard(): Promise<AgentCard>;
|
|
9
|
+
send(message: Message, opts?: {
|
|
10
|
+
contextId?: string;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
}): Promise<Task>;
|
|
13
|
+
stream(message: Message, opts?: {
|
|
14
|
+
contextId?: string;
|
|
15
|
+
metadata?: Record<string, unknown>;
|
|
16
|
+
}): AsyncGenerator<Task>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* One-shot convenience function: send a text message and get a text response.
|
|
20
|
+
*/
|
|
21
|
+
export declare function callAgent(url: string, text: string, opts?: {
|
|
22
|
+
apiKey?: string;
|
|
23
|
+
contextId?: string;
|
|
24
|
+
}): Promise<string>;
|
|
25
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/a2a/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAGT,OAAO,EACP,IAAI,EACL,MAAM,YAAY,CAAC;AAEpB,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAK5C,OAAO,CAAC,OAAO;YAQD,GAAG;IAyBX,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAQlC,IAAI,CACR,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAChE,OAAO,CAAC,IAAI,CAAC;IAgBT,MAAM,CACX,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAChE,cAAc,CAAC,IAAI,CAAC;CAsDxB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
export class A2AClient {
|
|
2
|
+
baseUrl;
|
|
3
|
+
apiKey;
|
|
4
|
+
constructor(baseUrl, apiKey) {
|
|
5
|
+
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
6
|
+
this.apiKey = apiKey;
|
|
7
|
+
}
|
|
8
|
+
headers() {
|
|
9
|
+
const h = { "Content-Type": "application/json" };
|
|
10
|
+
if (this.apiKey) {
|
|
11
|
+
h["Authorization"] = `Bearer ${this.apiKey}`;
|
|
12
|
+
}
|
|
13
|
+
return h;
|
|
14
|
+
}
|
|
15
|
+
async rpc(method, params) {
|
|
16
|
+
const body = {
|
|
17
|
+
jsonrpc: "2.0",
|
|
18
|
+
id: Date.now(),
|
|
19
|
+
method,
|
|
20
|
+
params,
|
|
21
|
+
};
|
|
22
|
+
const res = await fetch(`${this.baseUrl}/a2a`, {
|
|
23
|
+
method: "POST",
|
|
24
|
+
headers: this.headers(),
|
|
25
|
+
body: JSON.stringify(body),
|
|
26
|
+
});
|
|
27
|
+
if (!res.ok) {
|
|
28
|
+
const text = await res.text();
|
|
29
|
+
throw new Error(`A2A request failed (${res.status}): ${text}`);
|
|
30
|
+
}
|
|
31
|
+
return res.json();
|
|
32
|
+
}
|
|
33
|
+
async getAgentCard() {
|
|
34
|
+
const res = await fetch(`${this.baseUrl}/.well-known/agent-card.json`);
|
|
35
|
+
if (!res.ok) {
|
|
36
|
+
throw new Error(`Failed to fetch agent card (${res.status})`);
|
|
37
|
+
}
|
|
38
|
+
return res.json();
|
|
39
|
+
}
|
|
40
|
+
async send(message, opts) {
|
|
41
|
+
const response = await this.rpc("message/send", {
|
|
42
|
+
message,
|
|
43
|
+
contextId: opts?.contextId,
|
|
44
|
+
metadata: opts?.metadata,
|
|
45
|
+
});
|
|
46
|
+
if (response.error) {
|
|
47
|
+
throw new Error(`A2A error (${response.error.code}): ${response.error.message}`);
|
|
48
|
+
}
|
|
49
|
+
return response.result;
|
|
50
|
+
}
|
|
51
|
+
async *stream(message, opts) {
|
|
52
|
+
const body = {
|
|
53
|
+
jsonrpc: "2.0",
|
|
54
|
+
id: Date.now(),
|
|
55
|
+
method: "message/stream",
|
|
56
|
+
params: {
|
|
57
|
+
message,
|
|
58
|
+
contextId: opts?.contextId,
|
|
59
|
+
metadata: opts?.metadata,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
const res = await fetch(`${this.baseUrl}/a2a`, {
|
|
63
|
+
method: "POST",
|
|
64
|
+
headers: this.headers(),
|
|
65
|
+
body: JSON.stringify(body),
|
|
66
|
+
});
|
|
67
|
+
if (!res.ok) {
|
|
68
|
+
const text = await res.text();
|
|
69
|
+
throw new Error(`A2A stream failed (${res.status}): ${text}`);
|
|
70
|
+
}
|
|
71
|
+
const reader = res.body?.getReader();
|
|
72
|
+
if (!reader)
|
|
73
|
+
throw new Error("No response body");
|
|
74
|
+
const decoder = new TextDecoder();
|
|
75
|
+
let buffer = "";
|
|
76
|
+
while (true) {
|
|
77
|
+
const { done, value } = await reader.read();
|
|
78
|
+
if (done)
|
|
79
|
+
break;
|
|
80
|
+
buffer += decoder.decode(value, { stream: true });
|
|
81
|
+
const lines = buffer.split("\n");
|
|
82
|
+
buffer = lines.pop() ?? "";
|
|
83
|
+
for (const line of lines) {
|
|
84
|
+
if (!line.startsWith("data: "))
|
|
85
|
+
continue;
|
|
86
|
+
const json = line.slice(6).trim();
|
|
87
|
+
if (!json)
|
|
88
|
+
continue;
|
|
89
|
+
const response = JSON.parse(json);
|
|
90
|
+
if (response.error) {
|
|
91
|
+
throw new Error(`A2A error (${response.error.code}): ${response.error.message}`);
|
|
92
|
+
}
|
|
93
|
+
if (response.result) {
|
|
94
|
+
yield response.result;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* One-shot convenience function: send a text message and get a text response.
|
|
102
|
+
*/
|
|
103
|
+
export async function callAgent(url, text, opts) {
|
|
104
|
+
const client = new A2AClient(url, opts?.apiKey);
|
|
105
|
+
const task = await client.send({
|
|
106
|
+
role: "user",
|
|
107
|
+
parts: [{ type: "text", text }],
|
|
108
|
+
}, { contextId: opts?.contextId });
|
|
109
|
+
// Extract text from the response
|
|
110
|
+
const responseMessage = task.status.message;
|
|
111
|
+
if (responseMessage) {
|
|
112
|
+
const textParts = responseMessage.parts
|
|
113
|
+
.filter((p) => p.type === "text")
|
|
114
|
+
.map((p) => p.text);
|
|
115
|
+
return textParts.join("\n");
|
|
116
|
+
}
|
|
117
|
+
return "";
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/a2a/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/a2a/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EACV,SAAS,EAQV,MAAM,YAAY,CAAC;AA4QpB,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { createTask, getTask, updateTask } from "./task-store.js";
|
|
2
|
+
import { agentChat } from "../shared/agent-chat.js";
|
|
3
|
+
/**
|
|
4
|
+
* Default A2A handler that delegates to agentChat.call().
|
|
5
|
+
* Used when no custom handler is provided in A2AConfig.
|
|
6
|
+
*/
|
|
7
|
+
const defaultHandler = async (message, context) => {
|
|
8
|
+
// Extract text from message parts
|
|
9
|
+
const text = message.parts
|
|
10
|
+
.filter((p) => p.type === "text")
|
|
11
|
+
.map((p) => p.text)
|
|
12
|
+
.join("\n");
|
|
13
|
+
if (!text) {
|
|
14
|
+
return {
|
|
15
|
+
message: {
|
|
16
|
+
role: "agent",
|
|
17
|
+
parts: [{ type: "text", text: "No text content in message" }],
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const result = await agentChat.call(text);
|
|
22
|
+
const artifacts = [];
|
|
23
|
+
if (result.filesChanged.length > 0) {
|
|
24
|
+
artifacts.push({
|
|
25
|
+
name: "files-changed",
|
|
26
|
+
description: "Files modified by the agent",
|
|
27
|
+
parts: [{ type: "data", data: { files: result.filesChanged } }],
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
message: {
|
|
32
|
+
role: "agent",
|
|
33
|
+
parts: [
|
|
34
|
+
{ type: "text", text: result.response },
|
|
35
|
+
...(result.warnings?.length
|
|
36
|
+
? [
|
|
37
|
+
{
|
|
38
|
+
type: "text",
|
|
39
|
+
text: `\n\nWarnings:\n${result.warnings.join("\n")}`,
|
|
40
|
+
},
|
|
41
|
+
]
|
|
42
|
+
: []),
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
artifacts: artifacts.length > 0 ? artifacts : undefined,
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
function getHandler(config) {
|
|
49
|
+
return config.handler ?? defaultHandler;
|
|
50
|
+
}
|
|
51
|
+
function jsonRpcError(id, code, message) {
|
|
52
|
+
return { jsonrpc: "2.0", id, error: { code, message } };
|
|
53
|
+
}
|
|
54
|
+
function jsonRpcResult(id, result) {
|
|
55
|
+
return { jsonrpc: "2.0", id, result };
|
|
56
|
+
}
|
|
57
|
+
function makeHandlerContext(taskId, contextId) {
|
|
58
|
+
const artifacts = [];
|
|
59
|
+
const context = {
|
|
60
|
+
taskId,
|
|
61
|
+
contextId,
|
|
62
|
+
writeArtifact(name, content, mimeType) {
|
|
63
|
+
const artifact = {
|
|
64
|
+
name,
|
|
65
|
+
parts: mimeType
|
|
66
|
+
? [
|
|
67
|
+
{
|
|
68
|
+
type: "file",
|
|
69
|
+
file: {
|
|
70
|
+
name,
|
|
71
|
+
mimeType,
|
|
72
|
+
bytes: Buffer.from(content).toString("base64"),
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
]
|
|
76
|
+
: [{ type: "text", text: content }],
|
|
77
|
+
};
|
|
78
|
+
artifacts.push(artifact);
|
|
79
|
+
return name;
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
return { context, artifacts };
|
|
83
|
+
}
|
|
84
|
+
async function handleSend(params, config) {
|
|
85
|
+
const message = params.message;
|
|
86
|
+
if (!message || !message.role || !Array.isArray(message.parts)) {
|
|
87
|
+
return {
|
|
88
|
+
...jsonRpcError(0, -32602, "Invalid params: message with role and parts required"),
|
|
89
|
+
_id: 0,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const contextId = params.contextId;
|
|
93
|
+
const task = createTask(message, contextId);
|
|
94
|
+
updateTask(task.id, { state: "working" });
|
|
95
|
+
const { context, artifacts } = makeHandlerContext(task.id, contextId);
|
|
96
|
+
try {
|
|
97
|
+
const result = getHandler(config)(message, context);
|
|
98
|
+
// Check if it's an async generator
|
|
99
|
+
if (result &&
|
|
100
|
+
typeof result === "object" &&
|
|
101
|
+
Symbol.asyncIterator in result) {
|
|
102
|
+
// For non-streaming send, collect all messages
|
|
103
|
+
let lastMessage;
|
|
104
|
+
for await (const msg of result) {
|
|
105
|
+
lastMessage = msg;
|
|
106
|
+
}
|
|
107
|
+
const allArtifacts = [...artifacts];
|
|
108
|
+
const updated = updateTask(task.id, {
|
|
109
|
+
state: "completed",
|
|
110
|
+
message: lastMessage,
|
|
111
|
+
artifacts: allArtifacts.length > 0 ? allArtifacts : undefined,
|
|
112
|
+
});
|
|
113
|
+
return { ...jsonRpcResult(0, updated), _id: 0 };
|
|
114
|
+
}
|
|
115
|
+
// Promise-based handler
|
|
116
|
+
const handlerResult = await result;
|
|
117
|
+
const allArtifacts = [...artifacts, ...(handlerResult.artifacts ?? [])];
|
|
118
|
+
const updated = updateTask(task.id, {
|
|
119
|
+
state: "completed",
|
|
120
|
+
message: handlerResult.message,
|
|
121
|
+
artifacts: allArtifacts.length > 0 ? allArtifacts : undefined,
|
|
122
|
+
});
|
|
123
|
+
return { ...jsonRpcResult(0, updated), _id: 0 };
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
updateTask(task.id, {
|
|
127
|
+
state: "failed",
|
|
128
|
+
message: {
|
|
129
|
+
role: "agent",
|
|
130
|
+
parts: [{ type: "text", text: err.message ?? "Handler failed" }],
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
return {
|
|
134
|
+
...jsonRpcError(0, -32000, err.message ?? "Handler failed"),
|
|
135
|
+
_id: 0,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async function handleStream(params, config, res) {
|
|
140
|
+
const message = params.message;
|
|
141
|
+
if (!message || !message.role || !Array.isArray(message.parts)) {
|
|
142
|
+
res.write(`data: ${JSON.stringify(jsonRpcError(0, -32602, "Invalid params"))}\n\n`);
|
|
143
|
+
res.end();
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const contextId = params.contextId;
|
|
147
|
+
const task = createTask(message, contextId);
|
|
148
|
+
updateTask(task.id, { state: "working" });
|
|
149
|
+
const { context, artifacts } = makeHandlerContext(task.id, contextId);
|
|
150
|
+
try {
|
|
151
|
+
const result = getHandler(config)(message, context);
|
|
152
|
+
if (result &&
|
|
153
|
+
typeof result === "object" &&
|
|
154
|
+
Symbol.asyncIterator in result) {
|
|
155
|
+
for await (const msg of result) {
|
|
156
|
+
const intermediate = updateTask(task.id, {
|
|
157
|
+
state: "working",
|
|
158
|
+
message: msg,
|
|
159
|
+
});
|
|
160
|
+
res.write(`data: ${JSON.stringify(jsonRpcResult(0, intermediate))}\n\n`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
const handlerResult = await result;
|
|
165
|
+
const allArtifacts = [...artifacts, ...(handlerResult.artifacts ?? [])];
|
|
166
|
+
const updated = updateTask(task.id, {
|
|
167
|
+
state: "completed",
|
|
168
|
+
message: handlerResult.message,
|
|
169
|
+
artifacts: allArtifacts.length > 0 ? allArtifacts : undefined,
|
|
170
|
+
});
|
|
171
|
+
res.write(`data: ${JSON.stringify(jsonRpcResult(0, updated))}\n\n`);
|
|
172
|
+
res.end();
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const allArtifacts = [...artifacts];
|
|
176
|
+
const final = updateTask(task.id, {
|
|
177
|
+
state: "completed",
|
|
178
|
+
artifacts: allArtifacts.length > 0 ? allArtifacts : undefined,
|
|
179
|
+
});
|
|
180
|
+
res.write(`data: ${JSON.stringify(jsonRpcResult(0, final))}\n\n`);
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
updateTask(task.id, { state: "failed" });
|
|
184
|
+
res.write(`data: ${JSON.stringify(jsonRpcError(0, -32000, err.message ?? "Handler failed"))}\n\n`);
|
|
185
|
+
}
|
|
186
|
+
res.end();
|
|
187
|
+
}
|
|
188
|
+
function handleGet(params) {
|
|
189
|
+
const id = params.id;
|
|
190
|
+
if (!id) {
|
|
191
|
+
return jsonRpcError(0, -32602, "Invalid params: id required");
|
|
192
|
+
}
|
|
193
|
+
const task = getTask(id);
|
|
194
|
+
if (!task) {
|
|
195
|
+
return jsonRpcError(0, -32001, "Task not found");
|
|
196
|
+
}
|
|
197
|
+
return jsonRpcResult(0, task);
|
|
198
|
+
}
|
|
199
|
+
function handleCancel(params) {
|
|
200
|
+
const id = params.id;
|
|
201
|
+
if (!id) {
|
|
202
|
+
return jsonRpcError(0, -32602, "Invalid params: id required");
|
|
203
|
+
}
|
|
204
|
+
const task = updateTask(id, { state: "canceled" });
|
|
205
|
+
if (!task) {
|
|
206
|
+
return jsonRpcError(0, -32001, "Task not found");
|
|
207
|
+
}
|
|
208
|
+
return jsonRpcResult(0, task);
|
|
209
|
+
}
|
|
210
|
+
export async function handleJsonRpc(req, res, config) {
|
|
211
|
+
const body = req.body;
|
|
212
|
+
if (!body || body.jsonrpc !== "2.0" || !body.method) {
|
|
213
|
+
res
|
|
214
|
+
.status(400)
|
|
215
|
+
.json(jsonRpcError(body?.id ?? null, -32600, "Invalid JSON-RPC request"));
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
const params = body.params ?? {};
|
|
219
|
+
const id = body.id;
|
|
220
|
+
switch (body.method) {
|
|
221
|
+
case "message/send": {
|
|
222
|
+
const result = await handleSend(params, config);
|
|
223
|
+
const { _id, ...response } = result;
|
|
224
|
+
res.json({ ...response, id });
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
case "message/stream": {
|
|
228
|
+
if (!config.streaming) {
|
|
229
|
+
res.json(jsonRpcError(id, -32601, "Streaming not supported"));
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
res.setHeader("Content-Type", "text/event-stream");
|
|
233
|
+
res.setHeader("Cache-Control", "no-cache");
|
|
234
|
+
res.setHeader("Connection", "keep-alive");
|
|
235
|
+
await handleStream(params, config, res);
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
case "tasks/get": {
|
|
239
|
+
const result = handleGet(params);
|
|
240
|
+
res.json({ ...result, id });
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
case "tasks/cancel": {
|
|
244
|
+
const result = handleCancel(params);
|
|
245
|
+
res.json({ ...result, id });
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
default:
|
|
249
|
+
res.json(jsonRpcError(id, -32601, `Method not found: ${body.method}`));
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/a2a/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { enableA2A } from "./server.js";
|
|
2
|
+
export { A2AClient, callAgent } from "./client.js";
|
|
3
|
+
export type { A2AConfig, A2AHandler, A2AHandlerContext, A2AHandlerResult, AgentCard, AgentSkill, AgentCapabilities, Task, TaskState, TaskStatus, Message, Part, TextPart, FilePart, DataPart, Artifact, JsonRpcRequest, JsonRpcResponse, } from "./types.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/a2a/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnD,YAAY,EACV,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,UAAU,EACV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/a2a/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/a2a/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG/D,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,IACxD,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,CAqC/D"}
|