agentlaunch-templates 0.3.2 → 0.4.0
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/generator.js +1 -1
- package/dist/generator.js.map +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/chat-memory.d.ts +20 -0
- package/dist/templates/chat-memory.d.ts.map +1 -0
- package/dist/templates/chat-memory.js +284 -0
- package/dist/templates/chat-memory.js.map +1 -0
- package/package.json +1 -1
package/dist/generator.js
CHANGED
|
@@ -478,7 +478,7 @@ function buildAgentlaunchConfig(template, vars) {
|
|
|
478
478
|
export function generateFromTemplate(templateName, variables, options = { variables: {} }) {
|
|
479
479
|
const template = getTemplate(templateName);
|
|
480
480
|
if (!template) {
|
|
481
|
-
const available = ["
|
|
481
|
+
const available = ["chat-memory", "swarm-starter", "custom", "price-monitor", "trading-bot", "data-analyzer", "research", "gifter"];
|
|
482
482
|
throw new Error(`Template "${templateName}" not found. Available templates: ${available.join(", ")}`);
|
|
483
483
|
}
|
|
484
484
|
const strict = options.strict ?? false;
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
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;AAeH,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;AA+BD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,aAAa,EAAE,CAE/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAInE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAQ7D"}
|
package/dist/registry.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* 1. Creating src/templates/<name>.ts exporting `template: AgentTemplate`
|
|
7
7
|
* 2. Importing and adding to TEMPLATES below
|
|
8
8
|
*/
|
|
9
|
+
import { template as chatMemoryTemplate } from "./templates/chat-memory.js";
|
|
9
10
|
import { template as genesisTemplate } from "./templates/genesis.js";
|
|
10
11
|
import { template as customTemplate } from "./templates/custom.js";
|
|
11
12
|
import { template as priceMonitorTemplate } from "./templates/price-monitor.js";
|
|
@@ -17,6 +18,7 @@ import { template as gifterTemplate } from "./templates/gifter.js";
|
|
|
17
18
|
// Internal registry
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
19
20
|
const TEMPLATES = [
|
|
21
|
+
chatMemoryTemplate, // Base template - recommended starting point
|
|
20
22
|
genesisTemplate,
|
|
21
23
|
customTemplate,
|
|
22
24
|
priceMonitorTemplate,
|
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,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrE,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;AAkCnE,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,SAAS,GAAoB;IACjC,eAAe;IACf,cAAc;IACd,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;IAChB,cAAc;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,eAAe,EAAE,SAAS;CAC3B,CAAC;AAEF,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,wDAAwD;IACxD,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACpD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,qDAAqD;IACrD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/D,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,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,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrE,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;AAkCnE,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,SAAS,GAAoB;IACjC,kBAAkB,EAAG,6CAA6C;IAClE,eAAe;IACf,cAAc;IACd,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;IAChB,cAAc;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,eAAe,EAAE,SAAS;CAC3B,CAAC;AAEF,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,wDAAwD;IACxD,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACpD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,qDAAqD;IACrD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/D,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* chat-memory.ts — Base template with conversation memory and configurable LLM
|
|
3
|
+
*
|
|
4
|
+
* This is the foundation template for building AI agents on Agentverse.
|
|
5
|
+
* Features:
|
|
6
|
+
* - Conversation memory (persists last N exchanges per user)
|
|
7
|
+
* - Configurable LLM backend (ASI1, OpenRouter, OpenAI, or any compatible API)
|
|
8
|
+
* - Clean Chat Protocol v0.3.0 implementation
|
|
9
|
+
* - Session persistence via ctx.storage
|
|
10
|
+
* - Lazy LLM client initialization (avoids compile-time issues)
|
|
11
|
+
*
|
|
12
|
+
* Compatible LLM providers:
|
|
13
|
+
* - ASI1: https://api.asi1.ai/v1 (default)
|
|
14
|
+
* - OpenRouter: https://openrouter.ai/api/v1
|
|
15
|
+
* - OpenAI: https://api.openai.com/v1
|
|
16
|
+
* - Any OpenAI-compatible endpoint
|
|
17
|
+
*/
|
|
18
|
+
import type { AgentTemplate } from "../registry.js";
|
|
19
|
+
export declare const template: AgentTemplate;
|
|
20
|
+
//# sourceMappingURL=chat-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-memory.d.ts","sourceRoot":"","sources":["../../src/templates/chat-memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,QAAQ,EAAE,aAyQtB,CAAC"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* chat-memory.ts — Base template with conversation memory and configurable LLM
|
|
3
|
+
*
|
|
4
|
+
* This is the foundation template for building AI agents on Agentverse.
|
|
5
|
+
* Features:
|
|
6
|
+
* - Conversation memory (persists last N exchanges per user)
|
|
7
|
+
* - Configurable LLM backend (ASI1, OpenRouter, OpenAI, or any compatible API)
|
|
8
|
+
* - Clean Chat Protocol v0.3.0 implementation
|
|
9
|
+
* - Session persistence via ctx.storage
|
|
10
|
+
* - Lazy LLM client initialization (avoids compile-time issues)
|
|
11
|
+
*
|
|
12
|
+
* Compatible LLM providers:
|
|
13
|
+
* - ASI1: https://api.asi1.ai/v1 (default)
|
|
14
|
+
* - OpenRouter: https://openrouter.ai/api/v1
|
|
15
|
+
* - OpenAI: https://api.openai.com/v1
|
|
16
|
+
* - Any OpenAI-compatible endpoint
|
|
17
|
+
*/
|
|
18
|
+
export const template = {
|
|
19
|
+
name: "chat-memory",
|
|
20
|
+
description: "AI agent with conversation memory and configurable LLM (ASI1, OpenRouter, OpenAI)",
|
|
21
|
+
category: "AI/ML",
|
|
22
|
+
variables: [
|
|
23
|
+
{ name: "agent_name", required: true, description: "Name of the agent" },
|
|
24
|
+
{
|
|
25
|
+
name: "description",
|
|
26
|
+
required: false,
|
|
27
|
+
default: "AI assistant with conversation memory",
|
|
28
|
+
description: "Short description of what this agent does",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "system_prompt",
|
|
32
|
+
default: "You are a helpful AI assistant. Be concise and accurate.",
|
|
33
|
+
description: "System prompt that defines the agent's personality and knowledge",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: "llm_base_url",
|
|
37
|
+
default: "https://api.asi1.ai/v1",
|
|
38
|
+
description: "LLM API base URL (ASI1, OpenRouter, OpenAI, or compatible)",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: "llm_model",
|
|
42
|
+
default: "asi1-mini",
|
|
43
|
+
description: "Model name to use (e.g., asi1-mini, gpt-4o-mini, claude-3-haiku)",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "max_history",
|
|
47
|
+
default: "10",
|
|
48
|
+
description: "Number of conversation exchanges to remember per user",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "max_tokens",
|
|
52
|
+
default: "1500",
|
|
53
|
+
description: "Maximum tokens in LLM response",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: "temperature",
|
|
57
|
+
default: "0.7",
|
|
58
|
+
description: "LLM temperature (0.0-1.0, lower = more deterministic)",
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
dependencies: ["openai"],
|
|
62
|
+
secrets: ["LLM_API_KEY", "AGENTVERSE_API_KEY"],
|
|
63
|
+
code: `"""
|
|
64
|
+
{{agent_name}} — AI Agent with Conversation Memory
|
|
65
|
+
|
|
66
|
+
{{description}}
|
|
67
|
+
|
|
68
|
+
Built with the chat-memory template.
|
|
69
|
+
Supports ASI1, OpenRouter, OpenAI, or any OpenAI-compatible LLM.
|
|
70
|
+
|
|
71
|
+
Environment variables (set as Agentverse secrets):
|
|
72
|
+
LLM_API_KEY - Your LLM provider API key (required)
|
|
73
|
+
LLM_BASE_URL - API endpoint (default: {{llm_base_url}})
|
|
74
|
+
LLM_MODEL - Model name (default: {{llm_model}})
|
|
75
|
+
SYSTEM_PROMPT - Override the default system prompt
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
from uagents import Agent, Context, Protocol
|
|
79
|
+
from uagents_core.contrib.protocols.chat import (
|
|
80
|
+
ChatMessage, ChatAcknowledgement, TextContent,
|
|
81
|
+
EndSessionContent, chat_protocol_spec
|
|
82
|
+
)
|
|
83
|
+
from datetime import datetime
|
|
84
|
+
import json
|
|
85
|
+
import os
|
|
86
|
+
|
|
87
|
+
agent = Agent()
|
|
88
|
+
chat_proto = Protocol(spec=chat_protocol_spec)
|
|
89
|
+
|
|
90
|
+
# =============================================================================
|
|
91
|
+
# CONFIGURATION
|
|
92
|
+
# =============================================================================
|
|
93
|
+
|
|
94
|
+
CONFIG = {
|
|
95
|
+
"name": "{{agent_name}}",
|
|
96
|
+
"description": "{{description}}",
|
|
97
|
+
"llm_base_url": os.environ.get("LLM_BASE_URL", "{{llm_base_url}}"),
|
|
98
|
+
"llm_model": os.environ.get("LLM_MODEL", "{{llm_model}}"),
|
|
99
|
+
"max_history": {{max_history}},
|
|
100
|
+
"max_tokens": {{max_tokens}},
|
|
101
|
+
"temperature": {{temperature}},
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
DEFAULT_SYSTEM_PROMPT = """{{system_prompt}}"""
|
|
105
|
+
|
|
106
|
+
SYSTEM_PROMPT = os.environ.get("SYSTEM_PROMPT", DEFAULT_SYSTEM_PROMPT)
|
|
107
|
+
|
|
108
|
+
# =============================================================================
|
|
109
|
+
# LLM CLIENT (Lazy initialization)
|
|
110
|
+
# =============================================================================
|
|
111
|
+
|
|
112
|
+
_llm_client = None
|
|
113
|
+
|
|
114
|
+
def get_llm_client():
|
|
115
|
+
"""Get or create LLM client. Lazy init avoids compile-time issues."""
|
|
116
|
+
global _llm_client
|
|
117
|
+
if _llm_client is None:
|
|
118
|
+
from openai import OpenAI
|
|
119
|
+
_llm_client = OpenAI(
|
|
120
|
+
api_key=os.environ.get("LLM_API_KEY", ""),
|
|
121
|
+
base_url=CONFIG["llm_base_url"]
|
|
122
|
+
)
|
|
123
|
+
return _llm_client
|
|
124
|
+
|
|
125
|
+
# =============================================================================
|
|
126
|
+
# CONVERSATION MEMORY
|
|
127
|
+
# =============================================================================
|
|
128
|
+
|
|
129
|
+
def get_session(ctx: Context, sender: str) -> dict:
|
|
130
|
+
"""Get or create session state with conversation history."""
|
|
131
|
+
key = f"session:{sender}"
|
|
132
|
+
data = ctx.storage.get(key)
|
|
133
|
+
if data:
|
|
134
|
+
session = json.loads(data)
|
|
135
|
+
if "history" not in session:
|
|
136
|
+
session["history"] = []
|
|
137
|
+
return session
|
|
138
|
+
return {"history": [], "message_count": 0}
|
|
139
|
+
|
|
140
|
+
def save_session(ctx: Context, sender: str, session: dict):
|
|
141
|
+
"""Persist session state."""
|
|
142
|
+
ctx.storage.set(f"session:{sender}", json.dumps(session))
|
|
143
|
+
|
|
144
|
+
def add_to_history(session: dict, role: str, content: str):
|
|
145
|
+
"""Add message to history, keeping only last MAX_HISTORY exchanges."""
|
|
146
|
+
session["history"].append({"role": role, "content": content})
|
|
147
|
+
max_messages = CONFIG["max_history"] * 2 # user + assistant pairs
|
|
148
|
+
if len(session["history"]) > max_messages:
|
|
149
|
+
session["history"] = session["history"][-max_messages:]
|
|
150
|
+
|
|
151
|
+
# =============================================================================
|
|
152
|
+
# LLM INTERACTION
|
|
153
|
+
# =============================================================================
|
|
154
|
+
|
|
155
|
+
def chat_with_llm(user_message: str, history: list = None) -> str:
|
|
156
|
+
"""
|
|
157
|
+
Send a message to the LLM with conversation history.
|
|
158
|
+
Returns the assistant's response.
|
|
159
|
+
"""
|
|
160
|
+
messages = [{"role": "system", "content": SYSTEM_PROMPT}]
|
|
161
|
+
|
|
162
|
+
if history:
|
|
163
|
+
messages.extend(history)
|
|
164
|
+
|
|
165
|
+
messages.append({"role": "user", "content": user_message})
|
|
166
|
+
|
|
167
|
+
try:
|
|
168
|
+
client = get_llm_client()
|
|
169
|
+
response = client.chat.completions.create(
|
|
170
|
+
model=CONFIG["llm_model"],
|
|
171
|
+
messages=messages,
|
|
172
|
+
max_tokens=CONFIG["max_tokens"],
|
|
173
|
+
temperature=CONFIG["temperature"]
|
|
174
|
+
)
|
|
175
|
+
return response.choices[0].message.content
|
|
176
|
+
|
|
177
|
+
except Exception as e:
|
|
178
|
+
return f"I encountered an error: {str(e)}. Please try again."
|
|
179
|
+
|
|
180
|
+
# =============================================================================
|
|
181
|
+
# RESPONSE HELPERS
|
|
182
|
+
# =============================================================================
|
|
183
|
+
|
|
184
|
+
async def send_text(ctx: Context, sender: str, msg_id: str, text: str, end: bool = False):
|
|
185
|
+
"""Send a text response, optionally ending the session."""
|
|
186
|
+
await ctx.send(sender, ChatMessage(
|
|
187
|
+
timestamp=datetime.now(),
|
|
188
|
+
msg_id=msg_id,
|
|
189
|
+
content=[TextContent(text=text)]
|
|
190
|
+
))
|
|
191
|
+
if end:
|
|
192
|
+
await ctx.send(sender, ChatMessage(
|
|
193
|
+
timestamp=datetime.now(),
|
|
194
|
+
msg_id=msg_id,
|
|
195
|
+
content=[EndSessionContent()]
|
|
196
|
+
))
|
|
197
|
+
|
|
198
|
+
def get_help() -> str:
|
|
199
|
+
"""Return help message."""
|
|
200
|
+
return f"""# {CONFIG["name"]}
|
|
201
|
+
|
|
202
|
+
{CONFIG["description"]}
|
|
203
|
+
|
|
204
|
+
**Commands:**
|
|
205
|
+
- \`help\` — Show this message
|
|
206
|
+
- \`clear\` — Clear conversation history
|
|
207
|
+
- \`status\` — Show session info
|
|
208
|
+
|
|
209
|
+
Just send a message to start chatting!
|
|
210
|
+
"""
|
|
211
|
+
|
|
212
|
+
# =============================================================================
|
|
213
|
+
# CHAT HANDLER
|
|
214
|
+
# =============================================================================
|
|
215
|
+
|
|
216
|
+
@chat_proto.on_message(ChatMessage)
|
|
217
|
+
async def handle_message(ctx: Context, sender: str, msg: ChatMessage):
|
|
218
|
+
"""Main chat handler with conversation memory."""
|
|
219
|
+
ctx.logger.info(f"Message from {sender}")
|
|
220
|
+
|
|
221
|
+
# Extract text from message
|
|
222
|
+
text = ""
|
|
223
|
+
for content in msg.content:
|
|
224
|
+
if hasattr(content, "text"):
|
|
225
|
+
text = content.text.strip()
|
|
226
|
+
break
|
|
227
|
+
|
|
228
|
+
if not text:
|
|
229
|
+
await send_text(ctx, sender, msg.msg_id, "Please send a text message.", end=True)
|
|
230
|
+
return
|
|
231
|
+
|
|
232
|
+
ctx.logger.info(f"Query: {text[:100]}")
|
|
233
|
+
|
|
234
|
+
# Get session with conversation history
|
|
235
|
+
session = get_session(ctx, sender)
|
|
236
|
+
|
|
237
|
+
# Handle commands
|
|
238
|
+
command = text.lower().split()[0] if text else ""
|
|
239
|
+
|
|
240
|
+
if command in {"help", "?", "start", "hello", "hi"}:
|
|
241
|
+
await send_text(ctx, sender, msg.msg_id, get_help(), end=True)
|
|
242
|
+
return
|
|
243
|
+
|
|
244
|
+
if command in {"clear", "reset", "new"}:
|
|
245
|
+
session["history"] = []
|
|
246
|
+
save_session(ctx, sender, session)
|
|
247
|
+
await send_text(ctx, sender, msg.msg_id, "Conversation cleared. Starting fresh!", end=True)
|
|
248
|
+
return
|
|
249
|
+
|
|
250
|
+
if command == "status":
|
|
251
|
+
status = f"""**Session Status**
|
|
252
|
+
- Messages: {session.get('message_count', 0)}
|
|
253
|
+
- History: {len(session.get('history', []))} messages
|
|
254
|
+
- Model: {CONFIG['llm_model']}
|
|
255
|
+
- Provider: {CONFIG['llm_base_url']}
|
|
256
|
+
"""
|
|
257
|
+
await send_text(ctx, sender, msg.msg_id, status, end=True)
|
|
258
|
+
return
|
|
259
|
+
|
|
260
|
+
# Chat with LLM using conversation history
|
|
261
|
+
response = chat_with_llm(text, session.get("history", []))
|
|
262
|
+
|
|
263
|
+
# Save this exchange to history
|
|
264
|
+
add_to_history(session, "user", text)
|
|
265
|
+
add_to_history(session, "assistant", response)
|
|
266
|
+
session["message_count"] = session.get("message_count", 0) + 1
|
|
267
|
+
save_session(ctx, sender, session)
|
|
268
|
+
|
|
269
|
+
await send_text(ctx, sender, msg.msg_id, response, end=True)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
@chat_proto.on_message(ChatAcknowledgement)
|
|
273
|
+
async def handle_ack(ctx: Context, sender: str, msg: ChatAcknowledgement):
|
|
274
|
+
"""Handle acknowledgements (required by protocol)."""
|
|
275
|
+
ctx.logger.info(f"Ack from {sender}: {msg.acknowledged_msg_id}")
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
agent.include(chat_proto, publish_manifest=True)
|
|
279
|
+
|
|
280
|
+
if __name__ == "__main__":
|
|
281
|
+
agent.run()
|
|
282
|
+
`,
|
|
283
|
+
};
|
|
284
|
+
//# sourceMappingURL=chat-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-memory.js","sourceRoot":"","sources":["../../src/templates/chat-memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,mFAAmF;IAChG,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE;QACT,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;QACxE;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,uCAAuC;YAChD,WAAW,EAAE,2CAA2C;SACzD;QACD;YACE,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,0DAA0D;YACnE,WAAW,EAAE,kEAAkE;SAChF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,wBAAwB;YACjC,WAAW,EAAE,4DAA4D;SAC1E;QACD;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,kEAAkE;SAChF;QACD;YACE,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,uDAAuD;SACrE;QACD;YACE,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,gCAAgC;SAC9C;QACD;YACE,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,uDAAuD;SACrE;KACF;IACD,YAAY,EAAE,CAAC,QAAQ,CAAC;IACxB,OAAO,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC9C,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2NP;CACA,CAAC"}
|