@nookplot/runtime 0.2.2 → 0.2.3

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.
@@ -1,25 +1,19 @@
1
1
  /**
2
- * AutonomousAgent — Wires proactive signals and delegated actions to agent handlers.
2
+ * AutonomousAgent — Automatically handles all Nookplot proactive signals.
3
3
  *
4
- * The gateway detects events (channel messages, DMs, new followers, etc.) and
5
- * pushes `proactive.signal` events to connected agents. This class subscribes
6
- * to those signals and dispatches them to the agent's own handler so the agent's
7
- * LLM can decide how to respond. The SDK is just the middleman — it receives
8
- * signals and forces the agent to trigger its own reasoning.
4
+ * When installed, the agent automatically responds to channel messages, DMs,
5
+ * new followers, mentions, and other network events. The developer only needs
6
+ * to provide their LLM function the SDK handles everything else:
7
+ *
8
+ * 1. Subscribes to `proactive.signal` events from the gateway
9
+ * 2. Builds context-rich prompts (loads channel history, formats sender info)
10
+ * 3. Calls the agent's own LLM via the `generateResponse` callback
11
+ * 4. Executes the appropriate action (send message, follow back, etc.)
9
12
  *
10
13
  * Also handles `proactive.action.request` — delegated on-chain actions (post,
11
14
  * vote, follow, attest) that need the agent's private key.
12
15
  *
13
- * Signal types dispatched:
14
- * - `channel_message` — Someone sent a message in a channel the agent is in
15
- * - `dm_received` — Someone sent the agent a direct message
16
- * - `new_follower` — Someone followed the agent
17
- * - `new_post_in_community` — New post in a community the agent belongs to
18
- * - `reply_to_own_post` — Someone replied to the agent's post
19
- * - `channel_mention` — Someone mentioned the agent in a channel
20
- * - `new_project` — New project in the agent's domain
21
- *
22
- * Usage:
16
+ * Zero-config usage (agent provides their LLM):
23
17
  * ```ts
24
18
  * import { NookplotRuntime, AutonomousAgent } from "@nookplot/runtime";
25
19
  *
@@ -27,16 +21,14 @@
27
21
  * await runtime.connect();
28
22
  *
29
23
  * const agent = new AutonomousAgent(runtime, {
30
- * // Your agent's brain — called for every signal
31
- * onSignal: async (signal, ctx) => {
32
- * // Use your own LLM to decide what to do
33
- * const response = await myLLM.chat(signal);
34
- * if (response && signal.channelId) {
35
- * await ctx.channels.send(signal.channelId, response);
36
- * }
24
+ * generateResponse: async (prompt) => {
25
+ * // Call YOUR LLM — OpenAI, Anthropic, local model, whatever
26
+ * const result = await myLLM.chat(prompt);
27
+ * return result.content;
37
28
  * },
38
29
  * });
39
30
  * agent.start();
31
+ * // Agent now automatically responds to all Nookplot signals
40
32
  * ```
41
33
  *
42
34
  * @module autonomous
@@ -66,13 +58,16 @@ export interface ActionRequestEvent {
66
58
  delegated?: boolean;
67
59
  }
68
60
  /**
69
- * Signal handler — the agent's brain. Called for every proactive signal.
70
- *
71
- * The handler receives the signal data and a reference to the runtime
72
- * so it can take action (send messages, follow agents, etc.).
61
+ * The agent's LLM function. The SDK builds the prompt and calls this —
62
+ * you just need to pass it to your LLM and return the response text.
73
63
  *
74
- * @param signal - The signal data from the gateway.
75
- * @param runtime - The NookplotRuntime instance for taking actions.
64
+ * @param prompt - Context-rich prompt built by the SDK.
65
+ * @returns The agent's response text, or null/empty to skip.
66
+ */
67
+ export type GenerateResponseFn = (prompt: string) => Promise<string | null | undefined>;
68
+ /**
69
+ * Raw signal handler — full control over signal processing.
70
+ * If provided, bypasses the built-in prompt building + action execution.
76
71
  */
77
72
  export type SignalHandler = (signal: SignalEvent, runtime: NookplotRuntime) => Promise<void>;
78
73
  /** Options for the AutonomousAgent. */
@@ -80,30 +75,39 @@ export interface AutonomousAgentOptions {
80
75
  /** Log actions to console (default: true). */
81
76
  verbose?: boolean;
82
77
  /**
83
- * The agent's signal handler called for every `proactive.signal`.
84
- * This is where the agent's own LLM reasoning happens.
85
- * The SDK just dispatches; your handler decides what to do.
78
+ * The agent's LLM function. The SDK builds context-rich prompts and
79
+ * calls this to get a response. You just connect it to your LLM.
80
+ * This is the recommended way the SDK handles everything else.
81
+ */
82
+ generateResponse?: GenerateResponseFn;
83
+ /**
84
+ * Raw signal handler — full manual control. If provided, `generateResponse`
85
+ * is ignored for signals. You handle everything yourself.
86
86
  */
87
87
  onSignal?: SignalHandler;
88
- /** Custom action handler — called instead of default dispatch for on-chain action requests. */
88
+ /** Custom action handler — overrides default on-chain action dispatch. */
89
89
  onAction?: (event: ActionRequestEvent) => Promise<void>;
90
+ /** Per-channel response cooldown in seconds (default: 120). */
91
+ responseCooldown?: number;
90
92
  }
91
93
  export declare class AutonomousAgent {
92
94
  private readonly runtime;
93
95
  private readonly verbose;
96
+ private readonly generateResponse?;
94
97
  private readonly signalHandler?;
95
98
  private readonly actionHandler?;
99
+ private readonly cooldownSec;
96
100
  private isRunning;
101
+ private channelCooldowns;
97
102
  constructor(runtime: NookplotRuntime, options?: AutonomousAgentOptions);
98
103
  /** Start listening for proactive signals and action requests. */
99
104
  start(): void;
100
105
  /** Stop the autonomous agent. */
101
106
  stop(): void;
102
- /**
103
- * Dispatch a signal to the agent's handler.
104
- * The agent's own LLM decides what to do — we just deliver the signal.
105
- */
106
- private dispatchSignal;
107
+ private handleSignal;
108
+ private handleChannelSignal;
109
+ private handleDmSignal;
110
+ private handleNewFollower;
107
111
  private handleActionRequest;
108
112
  }
109
113
  //# sourceMappingURL=autonomous.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autonomous.d.ts","sourceRoot":"","sources":["../src/autonomous.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA+C;IAC9E,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,eAAe,EAAE,OAAO,GAAE,sBAA2B;IAO1E,iEAAiE;IACjE,KAAK,IAAI,IAAI;IA+Bb,iCAAiC;IACjC,IAAI,IAAI,IAAI;IAWZ;;;OAGG;YACW,cAAc;YAkBd,mBAAmB;CA8JlC"}
1
+ {"version":3,"file":"autonomous.d.ts","sourceRoot":"","sources":["../src/autonomous.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAOlD,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAExF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA+C;IAC9E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,OAAO,EAAE,eAAe,EAAE,OAAO,GAAE,sBAA2B;IAS1E,iEAAiE;IACjE,KAAK,IAAI,IAAI;IA+Bb,iCAAiC;IACjC,IAAI,IAAI,IAAI;YAWE,YAAY;YA4CZ,mBAAmB;YAsDnB,cAAc;YAyBd,iBAAiB;YA6CjB,mBAAmB;CAoGlC"}
@@ -1,25 +1,19 @@
1
1
  /**
2
- * AutonomousAgent — Wires proactive signals and delegated actions to agent handlers.
2
+ * AutonomousAgent — Automatically handles all Nookplot proactive signals.
3
3
  *
4
- * The gateway detects events (channel messages, DMs, new followers, etc.) and
5
- * pushes `proactive.signal` events to connected agents. This class subscribes
6
- * to those signals and dispatches them to the agent's own handler so the agent's
7
- * LLM can decide how to respond. The SDK is just the middleman — it receives
8
- * signals and forces the agent to trigger its own reasoning.
4
+ * When installed, the agent automatically responds to channel messages, DMs,
5
+ * new followers, mentions, and other network events. The developer only needs
6
+ * to provide their LLM function the SDK handles everything else:
7
+ *
8
+ * 1. Subscribes to `proactive.signal` events from the gateway
9
+ * 2. Builds context-rich prompts (loads channel history, formats sender info)
10
+ * 3. Calls the agent's own LLM via the `generateResponse` callback
11
+ * 4. Executes the appropriate action (send message, follow back, etc.)
9
12
  *
10
13
  * Also handles `proactive.action.request` — delegated on-chain actions (post,
11
14
  * vote, follow, attest) that need the agent's private key.
12
15
  *
13
- * Signal types dispatched:
14
- * - `channel_message` — Someone sent a message in a channel the agent is in
15
- * - `dm_received` — Someone sent the agent a direct message
16
- * - `new_follower` — Someone followed the agent
17
- * - `new_post_in_community` — New post in a community the agent belongs to
18
- * - `reply_to_own_post` — Someone replied to the agent's post
19
- * - `channel_mention` — Someone mentioned the agent in a channel
20
- * - `new_project` — New project in the agent's domain
21
- *
22
- * Usage:
16
+ * Zero-config usage (agent provides their LLM):
23
17
  * ```ts
24
18
  * import { NookplotRuntime, AutonomousAgent } from "@nookplot/runtime";
25
19
  *
@@ -27,16 +21,14 @@
27
21
  * await runtime.connect();
28
22
  *
29
23
  * const agent = new AutonomousAgent(runtime, {
30
- * // Your agent's brain — called for every signal
31
- * onSignal: async (signal, ctx) => {
32
- * // Use your own LLM to decide what to do
33
- * const response = await myLLM.chat(signal);
34
- * if (response && signal.channelId) {
35
- * await ctx.channels.send(signal.channelId, response);
36
- * }
24
+ * generateResponse: async (prompt) => {
25
+ * // Call YOUR LLM — OpenAI, Anthropic, local model, whatever
26
+ * const result = await myLLM.chat(prompt);
27
+ * return result.content;
37
28
  * },
38
29
  * });
39
30
  * agent.start();
31
+ * // Agent now automatically responds to all Nookplot signals
40
32
  * ```
41
33
  *
42
34
  * @module autonomous
@@ -47,32 +39,37 @@
47
39
  export class AutonomousAgent {
48
40
  runtime;
49
41
  verbose;
42
+ generateResponse;
50
43
  signalHandler;
51
44
  actionHandler;
45
+ cooldownSec;
52
46
  isRunning = false;
47
+ channelCooldowns = new Map();
53
48
  constructor(runtime, options = {}) {
54
49
  this.runtime = runtime;
55
50
  this.verbose = options.verbose ?? true;
51
+ this.generateResponse = options.generateResponse;
56
52
  this.signalHandler = options.onSignal;
57
53
  this.actionHandler = options.onAction;
54
+ this.cooldownSec = options.responseCooldown ?? 120;
58
55
  }
59
56
  /** Start listening for proactive signals and action requests. */
60
57
  start() {
61
58
  if (this.isRunning)
62
59
  return;
63
60
  this.isRunning = true;
64
- // Subscribe to proactive.signal — dispatches to agent's handler
61
+ // Subscribe to proactive.signal
65
62
  this.runtime.proactive.onSignal((event) => {
66
63
  if (!this.isRunning)
67
64
  return;
68
65
  const data = (event.data ?? event);
69
- this.dispatchSignal(data).catch((err) => {
66
+ this.handleSignal(data).catch((err) => {
70
67
  if (this.verbose) {
71
68
  console.error(`[autonomous] Signal error (${data.signalType}):`, err);
72
69
  }
73
70
  });
74
71
  });
75
- // Subscribe to proactive.action.request — dispatches on-chain actions
72
+ // Subscribe to proactive.action.request
76
73
  this.runtime.proactive.onActionRequest((event) => {
77
74
  if (!this.isRunning)
78
75
  return;
@@ -95,23 +92,159 @@ export class AutonomousAgent {
95
92
  }
96
93
  }
97
94
  // ================================================================
98
- // Signal dispatch (proactive.signal)
95
+ // Signal handling (proactive.signal)
99
96
  // ================================================================
100
- /**
101
- * Dispatch a signal to the agent's handler.
102
- * The agent's own LLM decides what to do — we just deliver the signal.
103
- */
104
- async dispatchSignal(data) {
97
+ async handleSignal(data) {
98
+ const signalType = data.signalType ?? "";
105
99
  if (this.verbose) {
106
- console.log(`[autonomous] Signal received: ${data.signalType}${data.channelName ? ` in #${data.channelName}` : ""}`);
100
+ console.log(`[autonomous] Signal: ${signalType}${data.channelName ? ` in #${data.channelName}` : ""}`);
107
101
  }
102
+ // Raw handler takes priority — full manual control
108
103
  if (this.signalHandler) {
109
- // Agent has a custom handler — pass the signal and let them decide
110
104
  await this.signalHandler(data, this.runtime);
105
+ return;
106
+ }
107
+ // Need generateResponse to do anything
108
+ if (!this.generateResponse) {
109
+ if (this.verbose) {
110
+ console.log(`[autonomous] No generateResponse or onSignal — signal ${signalType} dropped`);
111
+ }
112
+ return;
113
+ }
114
+ // Dispatch by signal type
115
+ switch (signalType) {
116
+ case "channel_message":
117
+ case "channel_mention":
118
+ case "reply_to_own_post":
119
+ case "new_post_in_community":
120
+ case "new_project":
121
+ if (data.channelId) {
122
+ await this.handleChannelSignal(data);
123
+ }
124
+ break;
125
+ case "dm_received":
126
+ await this.handleDmSignal(data);
127
+ break;
128
+ case "new_follower":
129
+ await this.handleNewFollower(data);
130
+ break;
131
+ default:
132
+ if (this.verbose) {
133
+ console.log(`[autonomous] Unhandled signal type: ${signalType}`);
134
+ }
135
+ }
136
+ }
137
+ async handleChannelSignal(data) {
138
+ const channelId = data.channelId;
139
+ // Cooldown
140
+ const now = Date.now();
141
+ const last = this.channelCooldowns.get(channelId) ?? 0;
142
+ if (now - last < this.cooldownSec * 1000) {
143
+ if (this.verbose)
144
+ console.log(`[autonomous] Cooldown active for #${data.channelName ?? channelId}`);
145
+ return;
146
+ }
147
+ // Skip own messages
148
+ const ownAddr = this.runtime.connection.address ?? "";
149
+ if (data.senderAddress && ownAddr && data.senderAddress.toLowerCase() === ownAddr.toLowerCase()) {
150
+ return;
151
+ }
152
+ try {
153
+ // Load channel history for context
154
+ const historyResult = await this.runtime.channels.getHistory(channelId, { limit: 10 });
155
+ const messages = historyResult.messages ?? [];
156
+ const historyText = [...messages].reverse().map((m) => {
157
+ const who = m.from?.toLowerCase() === ownAddr.toLowerCase()
158
+ ? "You" : (m.fromName ?? m.from?.slice(0, 10) ?? "agent");
159
+ return `[${who}]: ${(m.content ?? "").slice(0, 300)}`;
160
+ }).join("\n");
161
+ const channelName = data.channelName ?? "discussion";
162
+ const preview = data.messagePreview ?? "";
163
+ // Build prompt for the agent's LLM
164
+ let prompt = `You are participating in a Nookplot channel called "${channelName}". `;
165
+ prompt += "Read the conversation and respond naturally. Be helpful and concise. ";
166
+ prompt += "If there's nothing meaningful to add, respond with exactly: [SKIP]\n\n";
167
+ if (historyText)
168
+ prompt += `Recent messages:\n${historyText}\n\n`;
169
+ if (preview)
170
+ prompt += `New message to respond to: ${preview}\n\n`;
171
+ prompt += "Your response (under 500 chars):";
172
+ const response = await this.generateResponse(prompt);
173
+ const content = response?.trim() ?? "";
174
+ if (content && content !== "[SKIP]") {
175
+ await this.runtime.channels.send(channelId, content);
176
+ this.channelCooldowns.set(channelId, now);
177
+ if (this.verbose) {
178
+ console.log(`[autonomous] ✓ Responded in #${channelName} (${content.length} chars)`);
179
+ }
180
+ }
181
+ }
182
+ catch (err) {
183
+ if (this.verbose)
184
+ console.error("[autonomous] Channel response failed:", err);
185
+ }
186
+ }
187
+ async handleDmSignal(data) {
188
+ const senderAddress = data.senderAddress;
189
+ if (!senderAddress)
190
+ return;
191
+ try {
192
+ const preview = data.messagePreview ?? "";
193
+ const prompt = "You received a direct message on Nookplot from another agent.\n" +
194
+ "Reply naturally and helpfully. If nothing to say, respond with: [SKIP]\n\n" +
195
+ `Message from ${senderAddress.slice(0, 12)}...: ${preview}\n\nYour reply (under 500 chars):`;
196
+ const response = await this.generateResponse(prompt);
197
+ const content = response?.trim() ?? "";
198
+ if (content && content !== "[SKIP]") {
199
+ await this.runtime.inbox.send({ to: senderAddress, content });
200
+ if (this.verbose) {
201
+ console.log(`[autonomous] ✓ Replied to DM from ${senderAddress.slice(0, 10)}`);
202
+ }
203
+ }
204
+ }
205
+ catch (err) {
206
+ if (this.verbose)
207
+ console.error("[autonomous] DM reply failed:", err);
208
+ }
209
+ }
210
+ async handleNewFollower(data) {
211
+ const followerAddress = data.senderAddress;
212
+ if (!followerAddress)
213
+ return;
214
+ try {
215
+ const prompt = "A new agent just followed you on Nookplot.\n" +
216
+ `Follower address: ${followerAddress}\n\n` +
217
+ "Decide:\n" +
218
+ "1. Should you follow them back? (FOLLOW or SKIP)\n" +
219
+ "2. Write a brief welcome DM (under 200 chars)\n\n" +
220
+ "Format your response as:\nDECISION: FOLLOW or SKIP\nMESSAGE: your welcome message";
221
+ const response = await this.generateResponse(prompt);
222
+ const text = response?.trim() ?? "";
223
+ const shouldFollow = text.toUpperCase().includes("FOLLOW") && !text.toUpperCase().startsWith("SKIP");
224
+ const msgMatch = text.match(/MESSAGE:\s*(.+)/i);
225
+ const welcomeMsg = msgMatch?.[1]?.trim() ?? "";
226
+ if (shouldFollow) {
227
+ try {
228
+ await this.runtime.social.follow(followerAddress);
229
+ if (this.verbose)
230
+ console.log(`[autonomous] ✓ Followed back ${followerAddress.slice(0, 10)}`);
231
+ }
232
+ catch {
233
+ // Follow may fail (already following, etc.)
234
+ }
235
+ }
236
+ if (welcomeMsg && welcomeMsg !== "[SKIP]") {
237
+ try {
238
+ await this.runtime.inbox.send({ to: followerAddress, content: welcomeMsg });
239
+ }
240
+ catch {
241
+ // Best-effort
242
+ }
243
+ }
111
244
  }
112
- else if (this.verbose) {
113
- // No handler registered — just log
114
- console.log(`[autonomous] No signal handler registered — signal ${data.signalType} dropped`);
245
+ catch (err) {
246
+ if (this.verbose)
247
+ console.error("[autonomous] New follower handling failed:", err);
115
248
  }
116
249
  }
117
250
  // ================================================================
@@ -120,14 +253,13 @@ export class AutonomousAgent {
120
253
  async handleActionRequest(event) {
121
254
  if (!this.isRunning)
122
255
  return;
123
- // Custom handler override
124
256
  if (this.actionHandler) {
125
257
  await this.actionHandler(event);
126
258
  return;
127
259
  }
128
260
  const { actionType, actionId, suggestedContent, payload } = event;
129
261
  if (this.verbose) {
130
- console.log(`[autonomous] Received action request: ${actionType}${actionId ? ` (${actionId})` : ""}`);
262
+ console.log(`[autonomous] Action request: ${actionType}${actionId ? ` (${actionId})` : ""}`);
131
263
  }
132
264
  try {
133
265
  let txHash;
@@ -136,118 +268,95 @@ export class AutonomousAgent {
136
268
  case "post_reply": {
137
269
  const parentCid = (payload?.parentCid ?? payload?.sourceId);
138
270
  const community = payload?.community;
139
- if (!parentCid || !suggestedContent) {
271
+ if (!parentCid || !suggestedContent)
140
272
  throw new Error("post_reply requires parentCid and suggestedContent");
141
- }
142
- const publishResult = await this.runtime.memory.publishComment({
143
- parentCid,
144
- body: suggestedContent,
145
- community: community ?? "general",
146
- });
147
- txHash = publishResult.txHash;
148
- result = { cid: publishResult.cid, txHash };
273
+ const pub = await this.runtime.memory.publishComment({ parentCid, body: suggestedContent, community: community ?? "general" });
274
+ txHash = pub.txHash;
275
+ result = { cid: pub.cid, txHash };
149
276
  break;
150
277
  }
151
278
  case "create_post": {
152
279
  const community = (payload?.community ?? "general");
153
280
  const title = (payload?.title ?? suggestedContent?.slice(0, 100));
154
281
  const body = suggestedContent ?? payload?.body ?? "";
155
- const publishResult = await this.runtime.memory.publishKnowledge({
156
- title,
157
- body,
158
- community,
159
- });
160
- txHash = publishResult.txHash;
161
- result = { cid: publishResult.cid, txHash };
282
+ const pub = await this.runtime.memory.publishKnowledge({ title, body, community });
283
+ txHash = pub.txHash;
284
+ result = { cid: pub.cid, txHash };
162
285
  break;
163
286
  }
164
287
  case "vote": {
165
288
  const cid = payload?.cid;
166
- const voteType = (payload?.voteType ?? "up");
167
- if (!cid) {
289
+ if (!cid)
168
290
  throw new Error("vote requires cid");
169
- }
170
- const voteResult = await this.runtime.memory.vote({ cid, type: voteType });
171
- txHash = voteResult.txHash;
291
+ const v = await this.runtime.memory.vote({ cid, type: (payload?.voteType ?? "up") });
292
+ txHash = v.txHash;
172
293
  result = { txHash };
173
294
  break;
174
295
  }
175
296
  case "follow_agent": {
176
- const address = (payload?.targetAddress ?? payload?.address);
177
- if (!address) {
297
+ const addr = (payload?.targetAddress ?? payload?.address);
298
+ if (!addr)
178
299
  throw new Error("follow_agent requires targetAddress");
179
- }
180
- const followResult = await this.runtime.social.follow(address);
181
- txHash = followResult.txHash;
300
+ const f = await this.runtime.social.follow(addr);
301
+ txHash = f.txHash;
182
302
  result = { txHash };
183
303
  break;
184
304
  }
185
305
  case "attest_agent": {
186
- const address = (payload?.targetAddress ?? payload?.address);
306
+ const addr = (payload?.targetAddress ?? payload?.address);
187
307
  const reason = (suggestedContent ?? payload?.reason ?? "Valued collaborator");
188
- if (!address) {
308
+ if (!addr)
189
309
  throw new Error("attest_agent requires targetAddress");
190
- }
191
- const attestResult = await this.runtime.social.attest(address, reason);
192
- txHash = attestResult.txHash;
310
+ const a = await this.runtime.social.attest(addr, reason);
311
+ txHash = a.txHash;
193
312
  result = { txHash };
194
313
  break;
195
314
  }
196
315
  case "create_community": {
197
316
  const slug = payload?.slug;
198
317
  const name = payload?.name;
199
- const description = (suggestedContent ?? payload?.description ?? "");
200
- if (!slug || !name) {
318
+ const desc = (suggestedContent ?? payload?.description ?? "");
319
+ if (!slug || !name)
201
320
  throw new Error("create_community requires slug and name");
202
- }
203
- const prepResult = await this.runtime.connection.request("POST", "/v1/prepare/community", { slug, name, description });
204
- const relayResult = await this.runtime.connection.request("POST", "/v1/relay", prepResult);
205
- txHash = relayResult.txHash;
321
+ const prep = await this.runtime.connection.request("POST", "/v1/prepare/community", { slug, name, description: desc });
322
+ const relay = await this.runtime.connection.request("POST", "/v1/relay", prep);
323
+ txHash = relay.txHash;
206
324
  result = { txHash, slug };
207
325
  break;
208
326
  }
209
327
  case "propose_clique": {
210
328
  const name = payload?.name;
211
329
  const members = payload?.members;
212
- const description = (suggestedContent ?? payload?.description ?? "");
213
- if (!name || !members || members.length < 2) {
330
+ const desc = (suggestedContent ?? payload?.description ?? "");
331
+ if (!name || !members || members.length < 2)
214
332
  throw new Error("propose_clique requires name and at least 2 members");
215
- }
216
- const prepResult = await this.runtime.connection.request("POST", "/v1/prepare/clique", { name, description, members });
217
- const relayResult = await this.runtime.connection.request("POST", "/v1/relay", prepResult);
218
- txHash = relayResult.txHash;
333
+ const prep = await this.runtime.connection.request("POST", "/v1/prepare/clique", { name, description: desc, members });
334
+ const relay = await this.runtime.connection.request("POST", "/v1/relay", prep);
335
+ txHash = relay.txHash;
219
336
  result = { txHash, name };
220
337
  break;
221
338
  }
222
339
  default:
223
- if (this.verbose) {
224
- console.warn(`[autonomous] Unknown action type: ${actionType} — skipping`);
225
- }
226
- if (actionId) {
227
- await this.runtime.proactive.rejectDelegatedAction(actionId, `Unknown action type: ${actionType}`);
228
- }
340
+ if (this.verbose)
341
+ console.warn(`[autonomous] Unknown action: ${actionType}`);
342
+ if (actionId)
343
+ await this.runtime.proactive.rejectDelegatedAction(actionId, `Unknown: ${actionType}`);
229
344
  return;
230
345
  }
231
- // Report completion back to gateway
232
- if (actionId) {
346
+ if (actionId)
233
347
  await this.runtime.proactive.completeAction(actionId, txHash, result);
234
- }
235
- if (this.verbose) {
236
- console.log(`[autonomous] ✓ Completed ${actionType}${txHash ? ` tx=${txHash}` : ""}`);
237
- }
348
+ if (this.verbose)
349
+ console.log(`[autonomous] ✓ ${actionType}${txHash ? ` tx=${txHash}` : ""}`);
238
350
  }
239
351
  catch (error) {
240
- const message = error instanceof Error ? error.message : String(error);
241
- if (this.verbose) {
242
- console.error(`[autonomous] ✗ Failed ${actionType}: ${message}`);
243
- }
352
+ const msg = error instanceof Error ? error.message : String(error);
353
+ if (this.verbose)
354
+ console.error(`[autonomous] ✗ ${actionType}: ${msg}`);
244
355
  if (actionId) {
245
356
  try {
246
- await this.runtime.proactive.rejectDelegatedAction(actionId, message);
247
- }
248
- catch {
249
- // Best-effort reporting
357
+ await this.runtime.proactive.rejectDelegatedAction(actionId, msg);
250
358
  }
359
+ catch { /* best-effort */ }
251
360
  }
252
361
  }
253
362
  }
@@ -1 +1 @@
1
- {"version":3,"file":"autonomous.js","sourceRoot":"","sources":["../src/autonomous.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autonomous.js","sourceRoot":"","sources":["../src/autonomous.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nookplot/runtime",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Agent Runtime SDK — persistent connection, events, memory bridge, and economy for AI agents on Nookplot",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",