agentlaunch-templates 0.4.7 → 0.4.9
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/dist/__tests__/per-template.test.js +34 -0
- package/dist/__tests__/per-template.test.js.map +1 -1
- package/dist/claude-context.js +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +2 -0
- package/dist/registry.js.map +1 -1
- package/dist/templates/connect.d.ts +12 -0
- package/dist/templates/connect.d.ts.map +1 -0
- package/dist/templates/connect.js +177 -0
- package/dist/templates/connect.js.map +1 -0
- package/dist/templates/proxy.d.ts +12 -0
- package/dist/templates/proxy.d.ts.map +1 -0
- package/dist/templates/proxy.js +176 -0
- package/dist/templates/proxy.js.map +1 -0
- package/package.json +1 -1
|
@@ -92,6 +92,40 @@ describe('chat-memory — TPL-T02', () => {
|
|
|
92
92
|
const { code } = generateFromTemplate('chat-memory', { agent_name: 'ChatBot' });
|
|
93
93
|
assert.ok(code.includes('MEMORY_SIZE') || code.includes('max_messages'), 'chat-memory should have configurable memory size');
|
|
94
94
|
});
|
|
95
|
+
it('imports OpenAI for LLM integration', () => {
|
|
96
|
+
const { code } = generateFromTemplate('chat-memory', { agent_name: 'ChatBot' });
|
|
97
|
+
assert.ok(code.includes('from openai import OpenAI'), 'chat-memory should import OpenAI for LLM integration');
|
|
98
|
+
});
|
|
99
|
+
it('references ASI1_API_KEY secret', () => {
|
|
100
|
+
const { code } = generateFromTemplate('chat-memory', { agent_name: 'ChatBot' });
|
|
101
|
+
assert.ok(code.includes('ASI1_API_KEY'), 'chat-memory should reference ASI1_API_KEY secret for LLM');
|
|
102
|
+
});
|
|
103
|
+
it('has SYSTEM_PROMPT variable', () => {
|
|
104
|
+
const { code } = generateFromTemplate('chat-memory', { agent_name: 'ChatBot' });
|
|
105
|
+
assert.ok(code.includes('SYSTEM_PROMPT'), 'chat-memory should have a SYSTEM_PROMPT variable for LLM instructions');
|
|
106
|
+
});
|
|
107
|
+
it('uses ctx.storage for persistent memory', () => {
|
|
108
|
+
const { code } = generateFromTemplate('chat-memory', { agent_name: 'ChatBot' });
|
|
109
|
+
assert.ok(code.includes('ctx.storage'), 'chat-memory should use ctx.storage for persistent conversation memory');
|
|
110
|
+
});
|
|
111
|
+
it('uses Protocol(spec=chat_protocol_spec) not create_protocol', () => {
|
|
112
|
+
const { code } = generateFromTemplate('chat-memory', { agent_name: 'ChatBot' });
|
|
113
|
+
assert.ok(code.includes('chat_protocol_spec'), 'chat-memory should import and use chat_protocol_spec directly');
|
|
114
|
+
assert.ok(!code.includes('create_protocol'), 'chat-memory should not use deprecated create_protocol');
|
|
115
|
+
});
|
|
116
|
+
it('uses datetime.now() not utcnow()', () => {
|
|
117
|
+
const { code } = generateFromTemplate('chat-memory', { agent_name: 'ChatBot' });
|
|
118
|
+
assert.ok(code.includes('datetime.now()'), 'chat-memory should use datetime.now()');
|
|
119
|
+
assert.ok(!code.includes('utcnow()'), 'chat-memory should not use deprecated datetime.utcnow()');
|
|
120
|
+
});
|
|
121
|
+
it('accepts system_prompt template variable', () => {
|
|
122
|
+
const customPrompt = 'You are a pirate assistant. Always respond in pirate speak.';
|
|
123
|
+
const { code } = generateFromTemplate('chat-memory', {
|
|
124
|
+
agent_name: 'PirateBot',
|
|
125
|
+
system_prompt: customPrompt,
|
|
126
|
+
});
|
|
127
|
+
assert.ok(code.includes(customPrompt), 'chat-memory should interpolate the system_prompt variable into generated code');
|
|
128
|
+
});
|
|
95
129
|
});
|
|
96
130
|
describe('swarm-starter — TPL-T03', () => {
|
|
97
131
|
it('has PaymentService class', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"per-template.test.js","sourceRoot":"","sources":["../../src/__tests__/per-template.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"per-template.test.js","sourceRoot":"","sources":["../../src/__tests__/per-template.test.ts"],"names":[],"mappings":"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"}
|
package/dist/claude-context.js
CHANGED
|
@@ -2122,7 +2122,7 @@ If no .env or API key:
|
|
|
2122
2122
|
│ │
|
|
2123
2123
|
│ 3. Get testnet tokens (free): │
|
|
2124
2124
|
│ Message @gift on Agentverse: "claim 0x<your-wallet>" │
|
|
2125
|
-
│ You'll receive 200 TFET + 0.
|
|
2125
|
+
│ You'll receive 200 TFET + 0.005 tBNB instantly │
|
|
2126
2126
|
│ │
|
|
2127
2127
|
╰────────────────────────────────────────────────────────────────╯
|
|
2128
2128
|
\`\`\`
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wEAAwE;IACxE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;CACd;AAuBD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,aAAa,EAAE,CAE/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE7D"}
|
package/dist/registry.js
CHANGED
|
@@ -15,6 +15,7 @@ import { template as dataAnalyzerTemplate } from "./templates/data-analyzer.js";
|
|
|
15
15
|
import { template as researchTemplate } from "./templates/research.js";
|
|
16
16
|
import { template as gifterTemplate } from "./templates/gifter.js";
|
|
17
17
|
import { template as consumerCommerceTemplate } from "./templates/consumer-commerce.js";
|
|
18
|
+
import { template as connectTemplate } from "./templates/connect.js";
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
19
20
|
// Internal registry
|
|
20
21
|
// ---------------------------------------------------------------------------
|
|
@@ -28,6 +29,7 @@ const TEMPLATES = [
|
|
|
28
29
|
researchTemplate,
|
|
29
30
|
gifterTemplate,
|
|
30
31
|
consumerCommerceTemplate,
|
|
32
|
+
connectTemplate,
|
|
31
33
|
];
|
|
32
34
|
// ---------------------------------------------------------------------------
|
|
33
35
|
// Public API
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,IAAI,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,IAAI,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAkCrE,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,SAAS,GAAoB;IACjC,kBAAkB,EAAG,6CAA6C;IAClE,oBAAoB;IACpB,cAAc;IACd,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;IAChB,cAAc;IACd,wBAAwB;IACxB,eAAe;CAChB,CAAC;AAEF,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* connect.ts — Connect agent that forwards incoming chat messages to an external HTTP endpoint
|
|
3
|
+
*
|
|
4
|
+
* This template implements the connect pattern: the agent receives a message via
|
|
5
|
+
* Chat Protocol v0.3.0, POSTs it (along with the sender address) to a
|
|
6
|
+
* configurable EXTERNAL_ENDPOINT, and replies with whatever the endpoint
|
|
7
|
+
* returns. This is useful for connecting your existing agent or service to
|
|
8
|
+
* Agentverse without rebuilding it from scratch.
|
|
9
|
+
*/
|
|
10
|
+
import type { AgentTemplate } from "../registry.js";
|
|
11
|
+
export declare const template: AgentTemplate;
|
|
12
|
+
//# sourceMappingURL=connect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/templates/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,QAAQ,EAAE,aAwKtB,CAAC"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* connect.ts — Connect agent that forwards incoming chat messages to an external HTTP endpoint
|
|
3
|
+
*
|
|
4
|
+
* This template implements the connect pattern: the agent receives a message via
|
|
5
|
+
* Chat Protocol v0.3.0, POSTs it (along with the sender address) to a
|
|
6
|
+
* configurable EXTERNAL_ENDPOINT, and replies with whatever the endpoint
|
|
7
|
+
* returns. This is useful for connecting your existing agent or service to
|
|
8
|
+
* Agentverse without rebuilding it from scratch.
|
|
9
|
+
*/
|
|
10
|
+
export const template = {
|
|
11
|
+
name: "connect",
|
|
12
|
+
description: "Connect your agent or service to Agentverse via an external HTTP endpoint",
|
|
13
|
+
category: "Infrastructure",
|
|
14
|
+
variables: [
|
|
15
|
+
{
|
|
16
|
+
name: "AGENT_NAME",
|
|
17
|
+
required: true,
|
|
18
|
+
description: "Display name of the connect agent",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "SEED_PHRASE",
|
|
22
|
+
required: true,
|
|
23
|
+
description: "Seed phrase used to derive the agent's deterministic address",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "EXTERNAL_ENDPOINT",
|
|
27
|
+
required: true,
|
|
28
|
+
description: "Full URL of the HTTP endpoint to forward messages to (e.g. https://api.example.com/chat)",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
dependencies: ["requests"],
|
|
32
|
+
secrets: ["SEED_PHRASE", "EXTERNAL_ENDPOINT"],
|
|
33
|
+
code: `#!/usr/bin/env python3
|
|
34
|
+
"""
|
|
35
|
+
{{AGENT_NAME}} — AgentLaunch Connect Agent
|
|
36
|
+
Generated by: agentlaunch scaffold {{AGENT_NAME}} --type connect
|
|
37
|
+
|
|
38
|
+
Connects your existing service to Agentverse by forwarding every incoming
|
|
39
|
+
Chat Protocol message to an external HTTP endpoint and relaying the response
|
|
40
|
+
back to the sender.
|
|
41
|
+
|
|
42
|
+
Configuration (set as Agentverse secrets):
|
|
43
|
+
SEED_PHRASE — deterministic agent seed
|
|
44
|
+
EXTERNAL_ENDPOINT — target URL to forward messages to
|
|
45
|
+
|
|
46
|
+
The POST body sent to EXTERNAL_ENDPOINT:
|
|
47
|
+
{
|
|
48
|
+
"sender": "<agentverse address of the caller>",
|
|
49
|
+
"message": "<text content of the chat message>"
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
Expected response from EXTERNAL_ENDPOINT (JSON):
|
|
53
|
+
{ "reply": "<text to send back>" }
|
|
54
|
+
— or any JSON; the full response body is returned if "reply" is absent.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
from uagents import Agent, Context, Protocol
|
|
58
|
+
from uagents_core.contrib.protocols.chat import (
|
|
59
|
+
ChatAcknowledgement,
|
|
60
|
+
ChatMessage,
|
|
61
|
+
EndSessionContent,
|
|
62
|
+
TextContent,
|
|
63
|
+
)
|
|
64
|
+
try:
|
|
65
|
+
from uagents_core.contrib.protocols.chat import create_protocol as _create_chat
|
|
66
|
+
except ImportError:
|
|
67
|
+
_create_chat = None
|
|
68
|
+
try:
|
|
69
|
+
from uagents_core.contrib.protocols.chat import chat_protocol_spec as _chat_spec
|
|
70
|
+
except ImportError:
|
|
71
|
+
_chat_spec = None
|
|
72
|
+
|
|
73
|
+
import json
|
|
74
|
+
import os
|
|
75
|
+
from datetime import datetime
|
|
76
|
+
from uuid import uuid4
|
|
77
|
+
|
|
78
|
+
import requests as http
|
|
79
|
+
|
|
80
|
+
# ==============================================================================
|
|
81
|
+
# CONFIG
|
|
82
|
+
# ==============================================================================
|
|
83
|
+
|
|
84
|
+
AGENT_NAME = "{{AGENT_NAME}}"
|
|
85
|
+
SEED_PHRASE = os.environ.get("SEED_PHRASE", "{{SEED_PHRASE}}")
|
|
86
|
+
EXTERNAL_ENDPOINT = os.environ.get("EXTERNAL_ENDPOINT", "{{EXTERNAL_ENDPOINT}}")
|
|
87
|
+
|
|
88
|
+
REQUEST_TIMEOUT = 30 # seconds
|
|
89
|
+
|
|
90
|
+
# ==============================================================================
|
|
91
|
+
# HELPERS
|
|
92
|
+
# ==============================================================================
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
async def reply(ctx: Context, sender: str, text: str, end: bool = True) -> None:
|
|
96
|
+
"""Send a Chat Protocol reply to *sender*."""
|
|
97
|
+
content = [TextContent(type="text", text=text)]
|
|
98
|
+
if end:
|
|
99
|
+
content.append(EndSessionContent(type="end-session"))
|
|
100
|
+
try:
|
|
101
|
+
await ctx.send(
|
|
102
|
+
sender,
|
|
103
|
+
ChatMessage(
|
|
104
|
+
timestamp=datetime.utcnow(), msg_id=uuid4(), content=content
|
|
105
|
+
),
|
|
106
|
+
)
|
|
107
|
+
except Exception as exc:
|
|
108
|
+
ctx.logger.error(f"[REPLY_ERROR] {exc}")
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def forward(sender: str, message: str) -> str:
|
|
112
|
+
"""POST the message to EXTERNAL_ENDPOINT and return the reply text."""
|
|
113
|
+
try:
|
|
114
|
+
resp = http.post(
|
|
115
|
+
EXTERNAL_ENDPOINT,
|
|
116
|
+
json={"sender": sender, "message": message},
|
|
117
|
+
timeout=REQUEST_TIMEOUT,
|
|
118
|
+
)
|
|
119
|
+
resp.raise_for_status()
|
|
120
|
+
data = resp.json()
|
|
121
|
+
if isinstance(data, dict) and "reply" in data:
|
|
122
|
+
return str(data["reply"])
|
|
123
|
+
return json.dumps(data)
|
|
124
|
+
except http.exceptions.Timeout:
|
|
125
|
+
return "The upstream service timed out. Please try again."
|
|
126
|
+
except http.exceptions.HTTPError as exc:
|
|
127
|
+
return f"Upstream error: {exc.response.status_code}"
|
|
128
|
+
except Exception as exc:
|
|
129
|
+
return f"Error contacting upstream service: {exc}"
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
# ==============================================================================
|
|
133
|
+
# AGENT
|
|
134
|
+
# ==============================================================================
|
|
135
|
+
|
|
136
|
+
agent = Agent(name=AGENT_NAME, seed=SEED_PHRASE)
|
|
137
|
+
chat_proto = _create_chat() if _create_chat else Protocol(spec=_chat_spec)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
@chat_proto.on_message(ChatMessage)
|
|
141
|
+
async def handle_chat(ctx: Context, sender: str, msg: ChatMessage) -> None:
|
|
142
|
+
# Acknowledge immediately
|
|
143
|
+
try:
|
|
144
|
+
await ctx.send(
|
|
145
|
+
sender,
|
|
146
|
+
ChatAcknowledgement(
|
|
147
|
+
timestamp=datetime.utcnow(), acknowledged_msg_id=msg.msg_id
|
|
148
|
+
),
|
|
149
|
+
)
|
|
150
|
+
except Exception as exc:
|
|
151
|
+
ctx.logger.error(f"[ACK_ERROR] {exc}")
|
|
152
|
+
|
|
153
|
+
text = " ".join(
|
|
154
|
+
item.text for item in msg.content if isinstance(item, TextContent)
|
|
155
|
+
).strip()
|
|
156
|
+
|
|
157
|
+
if not text:
|
|
158
|
+
await reply(ctx, sender, "Empty message — nothing to forward.")
|
|
159
|
+
return
|
|
160
|
+
|
|
161
|
+
ctx.logger.info(f"[CONNECT] sender={sender[:20]} len={len(text)} endpoint={EXTERNAL_ENDPOINT}")
|
|
162
|
+
response_text = forward(sender, text)
|
|
163
|
+
await reply(ctx, sender, response_text)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
@chat_proto.on_message(ChatAcknowledgement)
|
|
167
|
+
async def handle_ack(ctx: Context, sender: str, msg: ChatAcknowledgement) -> None:
|
|
168
|
+
ctx.logger.debug(f"[ACK] from={sender[:20]} msg_id={msg.acknowledged_msg_id}")
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
agent.include(chat_proto, publish_manifest=True)
|
|
172
|
+
|
|
173
|
+
if __name__ == "__main__":
|
|
174
|
+
agent.run()
|
|
175
|
+
`,
|
|
176
|
+
};
|
|
177
|
+
//# sourceMappingURL=connect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/templates/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC,IAAI,EAAE,SAAS;IACf,WAAW,EACT,2EAA2E;IAC7E,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,mCAAmC;SACjD;QACD;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,8DAA8D;SAC5E;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,0FAA0F;SAC7F;KACF;IACD,YAAY,EAAE,CAAC,UAAU,CAAC;IAC1B,OAAO,EAAE,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC7C,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8IP;CACA,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* proxy.ts — Proxy agent that forwards incoming chat messages to an external HTTP endpoint
|
|
3
|
+
*
|
|
4
|
+
* This template implements the proxy pattern: the agent receives a message via
|
|
5
|
+
* Chat Protocol v0.3.0, POSTs it (along with the sender address) to a
|
|
6
|
+
* configurable EXTERNAL_ENDPOINT, and replies with whatever the endpoint
|
|
7
|
+
* returns. This is useful for bridging Agentverse agents to existing
|
|
8
|
+
* REST services without rebuilding them as agents.
|
|
9
|
+
*/
|
|
10
|
+
import type { AgentTemplate } from "../registry.js";
|
|
11
|
+
export declare const template: AgentTemplate;
|
|
12
|
+
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/templates/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,QAAQ,EAAE,aAuKtB,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* proxy.ts — Proxy agent that forwards incoming chat messages to an external HTTP endpoint
|
|
3
|
+
*
|
|
4
|
+
* This template implements the proxy pattern: the agent receives a message via
|
|
5
|
+
* Chat Protocol v0.3.0, POSTs it (along with the sender address) to a
|
|
6
|
+
* configurable EXTERNAL_ENDPOINT, and replies with whatever the endpoint
|
|
7
|
+
* returns. This is useful for bridging Agentverse agents to existing
|
|
8
|
+
* REST services without rebuilding them as agents.
|
|
9
|
+
*/
|
|
10
|
+
export const template = {
|
|
11
|
+
name: "proxy",
|
|
12
|
+
description: "Proxy agent that forwards messages to an external HTTP endpoint",
|
|
13
|
+
category: "Infrastructure",
|
|
14
|
+
variables: [
|
|
15
|
+
{
|
|
16
|
+
name: "AGENT_NAME",
|
|
17
|
+
required: true,
|
|
18
|
+
description: "Display name of the proxy agent",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "SEED_PHRASE",
|
|
22
|
+
required: true,
|
|
23
|
+
description: "Seed phrase used to derive the agent's deterministic address",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "EXTERNAL_ENDPOINT",
|
|
27
|
+
required: true,
|
|
28
|
+
description: "Full URL of the HTTP endpoint to forward messages to (e.g. https://api.example.com/chat)",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
dependencies: ["requests"],
|
|
32
|
+
secrets: ["SEED_PHRASE", "EXTERNAL_ENDPOINT"],
|
|
33
|
+
code: `#!/usr/bin/env python3
|
|
34
|
+
"""
|
|
35
|
+
{{AGENT_NAME}} — AgentLaunch Proxy Agent
|
|
36
|
+
Generated by: agentlaunch scaffold {{AGENT_NAME}} --type proxy
|
|
37
|
+
|
|
38
|
+
Forwards every incoming Chat Protocol message to an external HTTP endpoint
|
|
39
|
+
and relays the response back to the sender.
|
|
40
|
+
|
|
41
|
+
Configuration (set as Agentverse secrets):
|
|
42
|
+
SEED_PHRASE — deterministic agent seed
|
|
43
|
+
EXTERNAL_ENDPOINT — target URL to forward messages to
|
|
44
|
+
|
|
45
|
+
The POST body sent to EXTERNAL_ENDPOINT:
|
|
46
|
+
{
|
|
47
|
+
"sender": "<agentverse address of the caller>",
|
|
48
|
+
"message": "<text content of the chat message>"
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
Expected response from EXTERNAL_ENDPOINT (JSON):
|
|
52
|
+
{ "reply": "<text to send back>" }
|
|
53
|
+
— or any JSON; the full response body is returned if "reply" is absent.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
from uagents import Agent, Context, Protocol
|
|
57
|
+
from uagents_core.contrib.protocols.chat import (
|
|
58
|
+
ChatAcknowledgement,
|
|
59
|
+
ChatMessage,
|
|
60
|
+
EndSessionContent,
|
|
61
|
+
TextContent,
|
|
62
|
+
)
|
|
63
|
+
try:
|
|
64
|
+
from uagents_core.contrib.protocols.chat import create_protocol as _create_chat
|
|
65
|
+
except ImportError:
|
|
66
|
+
_create_chat = None
|
|
67
|
+
try:
|
|
68
|
+
from uagents_core.contrib.protocols.chat import chat_protocol_spec as _chat_spec
|
|
69
|
+
except ImportError:
|
|
70
|
+
_chat_spec = None
|
|
71
|
+
|
|
72
|
+
import json
|
|
73
|
+
import os
|
|
74
|
+
from datetime import datetime
|
|
75
|
+
from uuid import uuid4
|
|
76
|
+
|
|
77
|
+
import requests as http
|
|
78
|
+
|
|
79
|
+
# ==============================================================================
|
|
80
|
+
# CONFIG
|
|
81
|
+
# ==============================================================================
|
|
82
|
+
|
|
83
|
+
AGENT_NAME = "{{AGENT_NAME}}"
|
|
84
|
+
SEED_PHRASE = os.environ.get("SEED_PHRASE", "{{SEED_PHRASE}}")
|
|
85
|
+
EXTERNAL_ENDPOINT = os.environ.get("EXTERNAL_ENDPOINT", "{{EXTERNAL_ENDPOINT}}")
|
|
86
|
+
|
|
87
|
+
REQUEST_TIMEOUT = 30 # seconds
|
|
88
|
+
|
|
89
|
+
# ==============================================================================
|
|
90
|
+
# HELPERS
|
|
91
|
+
# ==============================================================================
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
async def reply(ctx: Context, sender: str, text: str, end: bool = True) -> None:
|
|
95
|
+
"""Send a Chat Protocol reply to *sender*."""
|
|
96
|
+
content = [TextContent(type="text", text=text)]
|
|
97
|
+
if end:
|
|
98
|
+
content.append(EndSessionContent(type="end-session"))
|
|
99
|
+
try:
|
|
100
|
+
await ctx.send(
|
|
101
|
+
sender,
|
|
102
|
+
ChatMessage(
|
|
103
|
+
timestamp=datetime.utcnow(), msg_id=uuid4(), content=content
|
|
104
|
+
),
|
|
105
|
+
)
|
|
106
|
+
except Exception as exc:
|
|
107
|
+
ctx.logger.error(f"[REPLY_ERROR] {exc}")
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def forward(sender: str, message: str) -> str:
|
|
111
|
+
"""POST the message to EXTERNAL_ENDPOINT and return the reply text."""
|
|
112
|
+
try:
|
|
113
|
+
resp = http.post(
|
|
114
|
+
EXTERNAL_ENDPOINT,
|
|
115
|
+
json={"sender": sender, "message": message},
|
|
116
|
+
timeout=REQUEST_TIMEOUT,
|
|
117
|
+
)
|
|
118
|
+
resp.raise_for_status()
|
|
119
|
+
data = resp.json()
|
|
120
|
+
if isinstance(data, dict) and "reply" in data:
|
|
121
|
+
return str(data["reply"])
|
|
122
|
+
return json.dumps(data)
|
|
123
|
+
except http.exceptions.Timeout:
|
|
124
|
+
return "The upstream service timed out. Please try again."
|
|
125
|
+
except http.exceptions.HTTPError as exc:
|
|
126
|
+
return f"Upstream error: {exc.response.status_code}"
|
|
127
|
+
except Exception as exc:
|
|
128
|
+
return f"Error contacting upstream service: {exc}"
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
# ==============================================================================
|
|
132
|
+
# AGENT
|
|
133
|
+
# ==============================================================================
|
|
134
|
+
|
|
135
|
+
agent = Agent(name=AGENT_NAME, seed=SEED_PHRASE)
|
|
136
|
+
chat_proto = _create_chat() if _create_chat else Protocol(spec=_chat_spec)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
@chat_proto.on_message(ChatMessage)
|
|
140
|
+
async def handle_chat(ctx: Context, sender: str, msg: ChatMessage) -> None:
|
|
141
|
+
# Acknowledge immediately
|
|
142
|
+
try:
|
|
143
|
+
await ctx.send(
|
|
144
|
+
sender,
|
|
145
|
+
ChatAcknowledgement(
|
|
146
|
+
timestamp=datetime.utcnow(), acknowledged_msg_id=msg.msg_id
|
|
147
|
+
),
|
|
148
|
+
)
|
|
149
|
+
except Exception as exc:
|
|
150
|
+
ctx.logger.error(f"[ACK_ERROR] {exc}")
|
|
151
|
+
|
|
152
|
+
text = " ".join(
|
|
153
|
+
item.text for item in msg.content if isinstance(item, TextContent)
|
|
154
|
+
).strip()
|
|
155
|
+
|
|
156
|
+
if not text:
|
|
157
|
+
await reply(ctx, sender, "Empty message — nothing to forward.")
|
|
158
|
+
return
|
|
159
|
+
|
|
160
|
+
ctx.logger.info(f"[PROXY] sender={sender[:20]} len={len(text)} endpoint={EXTERNAL_ENDPOINT}")
|
|
161
|
+
response_text = forward(sender, text)
|
|
162
|
+
await reply(ctx, sender, response_text)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
@chat_proto.on_message(ChatAcknowledgement)
|
|
166
|
+
async def handle_ack(ctx: Context, sender: str, msg: ChatAcknowledgement) -> None:
|
|
167
|
+
ctx.logger.debug(f"[ACK] from={sender[:20]} msg_id={msg.acknowledged_msg_id}")
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
agent.include(chat_proto, publish_manifest=True)
|
|
171
|
+
|
|
172
|
+
if __name__ == "__main__":
|
|
173
|
+
agent.run()
|
|
174
|
+
`,
|
|
175
|
+
};
|
|
176
|
+
//# sourceMappingURL=proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/templates/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC,IAAI,EAAE,OAAO;IACb,WAAW,EACT,iEAAiE;IACnE,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,iCAAiC;SAC/C;QACD;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,8DAA8D;SAC5E;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,0FAA0F;SAC7F;KACF;IACD,YAAY,EAAE,CAAC,UAAU,CAAC;IAC1B,OAAO,EAAE,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC7C,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6IP;CACA,CAAC"}
|