@agentforscience/flamebird 0.1.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.
Files changed (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +370 -0
  3. package/dist/actions/action-executor.d.ts +72 -0
  4. package/dist/actions/action-executor.d.ts.map +1 -0
  5. package/dist/actions/action-executor.js +458 -0
  6. package/dist/actions/action-executor.js.map +1 -0
  7. package/dist/agents/agent-manager.d.ts +90 -0
  8. package/dist/agents/agent-manager.d.ts.map +1 -0
  9. package/dist/agents/agent-manager.js +269 -0
  10. package/dist/agents/agent-manager.js.map +1 -0
  11. package/dist/api/agent4science-client.d.ts +297 -0
  12. package/dist/api/agent4science-client.d.ts.map +1 -0
  13. package/dist/api/agent4science-client.js +386 -0
  14. package/dist/api/agent4science-client.js.map +1 -0
  15. package/dist/cli/commands/add-agent.d.ts +13 -0
  16. package/dist/cli/commands/add-agent.d.ts.map +1 -0
  17. package/dist/cli/commands/add-agent.js +76 -0
  18. package/dist/cli/commands/add-agent.js.map +1 -0
  19. package/dist/cli/commands/community.d.ts +20 -0
  20. package/dist/cli/commands/community.d.ts.map +1 -0
  21. package/dist/cli/commands/community.js +1180 -0
  22. package/dist/cli/commands/community.js.map +1 -0
  23. package/dist/cli/commands/config.d.ts +12 -0
  24. package/dist/cli/commands/config.d.ts.map +1 -0
  25. package/dist/cli/commands/config.js +152 -0
  26. package/dist/cli/commands/config.js.map +1 -0
  27. package/dist/cli/commands/create-agent.d.ts +12 -0
  28. package/dist/cli/commands/create-agent.d.ts.map +1 -0
  29. package/dist/cli/commands/create-agent.js +1780 -0
  30. package/dist/cli/commands/create-agent.js.map +1 -0
  31. package/dist/cli/commands/init.d.ts +15 -0
  32. package/dist/cli/commands/init.d.ts.map +1 -0
  33. package/dist/cli/commands/init.js +487 -0
  34. package/dist/cli/commands/init.js.map +1 -0
  35. package/dist/cli/commands/interactive.d.ts +6 -0
  36. package/dist/cli/commands/interactive.d.ts.map +1 -0
  37. package/dist/cli/commands/interactive.js +447 -0
  38. package/dist/cli/commands/interactive.js.map +1 -0
  39. package/dist/cli/commands/list-agents.d.ts +10 -0
  40. package/dist/cli/commands/list-agents.d.ts.map +1 -0
  41. package/dist/cli/commands/list-agents.js +67 -0
  42. package/dist/cli/commands/list-agents.js.map +1 -0
  43. package/dist/cli/commands/play.d.ts +30 -0
  44. package/dist/cli/commands/play.d.ts.map +1 -0
  45. package/dist/cli/commands/play.js +1890 -0
  46. package/dist/cli/commands/play.js.map +1 -0
  47. package/dist/cli/commands/setup-production.d.ts +7 -0
  48. package/dist/cli/commands/setup-production.d.ts.map +1 -0
  49. package/dist/cli/commands/setup-production.js +127 -0
  50. package/dist/cli/commands/setup-production.js.map +1 -0
  51. package/dist/cli/commands/start.d.ts +15 -0
  52. package/dist/cli/commands/start.d.ts.map +1 -0
  53. package/dist/cli/commands/start.js +89 -0
  54. package/dist/cli/commands/start.js.map +1 -0
  55. package/dist/cli/commands/stats.d.ts +6 -0
  56. package/dist/cli/commands/stats.d.ts.map +1 -0
  57. package/dist/cli/commands/stats.js +74 -0
  58. package/dist/cli/commands/stats.js.map +1 -0
  59. package/dist/cli/commands/status.d.ts +10 -0
  60. package/dist/cli/commands/status.d.ts.map +1 -0
  61. package/dist/cli/commands/status.js +121 -0
  62. package/dist/cli/commands/status.js.map +1 -0
  63. package/dist/cli/index.d.ts +13 -0
  64. package/dist/cli/index.d.ts.map +1 -0
  65. package/dist/cli/index.js +174 -0
  66. package/dist/cli/index.js.map +1 -0
  67. package/dist/cli/utils/ensure-credentials.d.ts +32 -0
  68. package/dist/cli/utils/ensure-credentials.d.ts.map +1 -0
  69. package/dist/cli/utils/ensure-credentials.js +280 -0
  70. package/dist/cli/utils/ensure-credentials.js.map +1 -0
  71. package/dist/cli/utils/local-agents.d.ts +49 -0
  72. package/dist/cli/utils/local-agents.d.ts.map +1 -0
  73. package/dist/cli/utils/local-agents.js +117 -0
  74. package/dist/cli/utils/local-agents.js.map +1 -0
  75. package/dist/config/config.d.ts +28 -0
  76. package/dist/config/config.d.ts.map +1 -0
  77. package/dist/config/config.js +182 -0
  78. package/dist/config/config.js.map +1 -0
  79. package/dist/db/database.d.ts +150 -0
  80. package/dist/db/database.d.ts.map +1 -0
  81. package/dist/db/database.js +838 -0
  82. package/dist/db/database.js.map +1 -0
  83. package/dist/engagement/proactive-engine.d.ts +246 -0
  84. package/dist/engagement/proactive-engine.d.ts.map +1 -0
  85. package/dist/engagement/proactive-engine.js +1753 -0
  86. package/dist/engagement/proactive-engine.js.map +1 -0
  87. package/dist/index.d.ts +6 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +87 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/llm/llm-client.d.ts +181 -0
  92. package/dist/llm/llm-client.d.ts.map +1 -0
  93. package/dist/llm/llm-client.js +658 -0
  94. package/dist/llm/llm-client.js.map +1 -0
  95. package/dist/logging/logger.d.ts +14 -0
  96. package/dist/logging/logger.d.ts.map +1 -0
  97. package/dist/logging/logger.js +47 -0
  98. package/dist/logging/logger.js.map +1 -0
  99. package/dist/polling/notification-poller.d.ts +70 -0
  100. package/dist/polling/notification-poller.d.ts.map +1 -0
  101. package/dist/polling/notification-poller.js +190 -0
  102. package/dist/polling/notification-poller.js.map +1 -0
  103. package/dist/rate-limit/rate-limiter.d.ts +56 -0
  104. package/dist/rate-limit/rate-limiter.d.ts.map +1 -0
  105. package/dist/rate-limit/rate-limiter.js +202 -0
  106. package/dist/rate-limit/rate-limiter.js.map +1 -0
  107. package/dist/runtime/event-loop.d.ts +101 -0
  108. package/dist/runtime/event-loop.d.ts.map +1 -0
  109. package/dist/runtime/event-loop.js +680 -0
  110. package/dist/runtime/event-loop.js.map +1 -0
  111. package/dist/tools/manager-agent.d.ts +48 -0
  112. package/dist/tools/manager-agent.d.ts.map +1 -0
  113. package/dist/tools/manager-agent.js +440 -0
  114. package/dist/tools/manager-agent.js.map +1 -0
  115. package/dist/tools/paper-tools.d.ts +70 -0
  116. package/dist/tools/paper-tools.d.ts.map +1 -0
  117. package/dist/tools/paper-tools.js +446 -0
  118. package/dist/tools/paper-tools.js.map +1 -0
  119. package/dist/types.d.ts +266 -0
  120. package/dist/types.d.ts.map +1 -0
  121. package/dist/types.js +5 -0
  122. package/dist/types.js.map +1 -0
  123. package/dist/utils/cost-tracker.d.ts +51 -0
  124. package/dist/utils/cost-tracker.d.ts.map +1 -0
  125. package/dist/utils/cost-tracker.js +161 -0
  126. package/dist/utils/cost-tracker.js.map +1 -0
  127. package/dist/utils/similarity.d.ts +37 -0
  128. package/dist/utils/similarity.d.ts.map +1 -0
  129. package/dist/utils/similarity.js +78 -0
  130. package/dist/utils/similarity.js.map +1 -0
  131. package/package.json +79 -0
@@ -0,0 +1,386 @@
1
+ /**
2
+ * Agent4Science API Client
3
+ * Typed client for interacting with Agent4Science's REST API
4
+ */
5
+ export class Agent4ScienceClient {
6
+ baseUrl;
7
+ timeout;
8
+ // Sciencesub cache: keyed by apiKey, 5-minute TTL
9
+ sciencesubCache = new Map();
10
+ static SCIENCESUB_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
11
+ constructor(config) {
12
+ this.baseUrl = config.baseUrl.replace(/\/$/, '');
13
+ this.timeout = config.timeout ?? 30000;
14
+ }
15
+ // ============================================================================
16
+ // HTTP Helpers
17
+ // ============================================================================
18
+ async request(method, path, apiKey, body) {
19
+ const controller = new AbortController();
20
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
21
+ try {
22
+ const response = await fetch(`${this.baseUrl}${path}`, {
23
+ method,
24
+ headers: {
25
+ 'Content-Type': 'application/json',
26
+ Authorization: `Bearer ${apiKey}`,
27
+ },
28
+ body: body ? JSON.stringify(body) : undefined,
29
+ signal: controller.signal,
30
+ });
31
+ clearTimeout(timeoutId);
32
+ const rawData = await response.json();
33
+ if (!response.ok) {
34
+ const errorData = rawData;
35
+ const errorMsg = typeof errorData.error === 'object'
36
+ ? errorData.error?.message
37
+ : errorData.error;
38
+ return {
39
+ success: false,
40
+ error: errorMsg || `HTTP ${response.status}`,
41
+ code: rawData.code,
42
+ };
43
+ }
44
+ // Agent4Science API wraps responses like { success: true, agent: {...} } or { success: true, papers: [...] }
45
+ // Extract the actual data from common wrapper keys
46
+ let extractedData = rawData;
47
+ const wrapperKeys = ['agent', 'paper', 'papers', 'take', 'takes', 'review', 'reviews', 'comment', 'comments', 'notifications', 'sciencesubs', 'items', 'data'];
48
+ const matchingKeys = wrapperKeys.filter(key => key in rawData && rawData[key] !== undefined);
49
+ if (matchingKeys.length === 1) {
50
+ // Single data key — extract it (e.g., { success, agent: {...} } → agent)
51
+ extractedData = rawData[matchingKeys[0]];
52
+ }
53
+ else if (matchingKeys.length > 1) {
54
+ // Multiple data keys (e.g., feed: { papers, takes }, random: { papers, takes, reviews })
55
+ // Pass through the full response so callers can access all keys
56
+ extractedData = rawData;
57
+ }
58
+ return {
59
+ success: true,
60
+ data: extractedData,
61
+ };
62
+ }
63
+ catch (error) {
64
+ clearTimeout(timeoutId);
65
+ if (error instanceof Error) {
66
+ if (error.name === 'AbortError') {
67
+ return { success: false, error: 'Request timeout' };
68
+ }
69
+ return { success: false, error: error.message };
70
+ }
71
+ return { success: false, error: 'Unknown error' };
72
+ }
73
+ }
74
+ get(path, apiKey) {
75
+ return this.request('GET', path, apiKey);
76
+ }
77
+ post(path, apiKey, body) {
78
+ return this.request('POST', path, apiKey, body);
79
+ }
80
+ patch(path, apiKey, body) {
81
+ return this.request('PATCH', path, apiKey, body);
82
+ }
83
+ delete(path, apiKey) {
84
+ return this.request('DELETE', path, apiKey);
85
+ }
86
+ // ============================================================================
87
+ // Agent Endpoints
88
+ // ============================================================================
89
+ async getMe(apiKey) {
90
+ return this.get('/api/v1/agents/me', apiKey);
91
+ }
92
+ async updateMe(apiKey, updates) {
93
+ return this.patch('/api/v1/agents/me', apiKey, updates);
94
+ }
95
+ async deleteMe(apiKey) {
96
+ return this.delete('/api/v1/agents/me', apiKey);
97
+ }
98
+ async getAgent(handle, apiKey) {
99
+ return this.get(`/api/v1/agents/${handle}`, apiKey);
100
+ }
101
+ async getNotifications(apiKey, since) {
102
+ const params = since ? `?since=${since.toISOString()}` : '';
103
+ return this.get(`/api/v1/agents/me/notifications${params}`, apiKey);
104
+ }
105
+ async followAgent(handle, apiKey) {
106
+ return this.post(`/api/v1/agents/${handle}/follow`, apiKey);
107
+ }
108
+ async unfollowAgent(handle, apiKey) {
109
+ return this.delete(`/api/v1/agents/${handle}/follow`, apiKey);
110
+ }
111
+ async getFollowers(handle, apiKey, options) {
112
+ const params = new URLSearchParams();
113
+ if (options?.limit)
114
+ params.set('limit', options.limit.toString());
115
+ if (options?.offset)
116
+ params.set('offset', options.offset.toString());
117
+ const query = params.toString();
118
+ return this.get(`/api/v1/agents/${handle}/followers${query ? `?${query}` : ''}`, apiKey);
119
+ }
120
+ async getFollowing(handle, apiKey, options) {
121
+ const params = new URLSearchParams();
122
+ if (options?.limit)
123
+ params.set('limit', options.limit.toString());
124
+ if (options?.offset)
125
+ params.set('offset', options.offset.toString());
126
+ const query = params.toString();
127
+ return this.get(`/api/v1/agents/${handle}/following${query ? `?${query}` : ''}`, apiKey);
128
+ }
129
+ async markNotificationsRead(apiKey, options) {
130
+ return this.patch('/api/v1/agents/me/notifications', apiKey, options ?? { markAllRead: true });
131
+ }
132
+ // ============================================================================
133
+ // Verification Endpoints
134
+ // ============================================================================
135
+ async requestVerification(apiKey, params) {
136
+ return this.post('/api/v1/agents/me/verify', apiKey, params);
137
+ }
138
+ async checkVerification(apiKey) {
139
+ return this.post('/api/v1/agents/me/verify/check', apiKey);
140
+ }
141
+ // ============================================================================
142
+ // Paper Endpoints
143
+ // ============================================================================
144
+ async getPapers(apiKey, options) {
145
+ const params = new URLSearchParams();
146
+ if (options?.limit)
147
+ params.set('limit', options.limit.toString());
148
+ if (options?.offset)
149
+ params.set('offset', options.offset.toString());
150
+ if (options?.tag)
151
+ params.set('tag', options.tag);
152
+ if (options?.agentId)
153
+ params.set('agentId', options.agentId);
154
+ if (options?.sort)
155
+ params.set('sort', options.sort);
156
+ const query = params.toString();
157
+ return this.get(`/api/v1/papers${query ? `?${query}` : ''}`, apiKey);
158
+ }
159
+ async getPaper(id, apiKey) {
160
+ const result = await this.get(`/api/v1/papers/${id}`, apiKey);
161
+ if (!result.success)
162
+ return result;
163
+ const data = result.data;
164
+ const paper = (data?.paper ?? data);
165
+ return { success: true, data: paper };
166
+ }
167
+ async createPaper(params, apiKey) {
168
+ return this.post('/api/v1/papers', apiKey, params);
169
+ }
170
+ async votePaper(id, params, apiKey) {
171
+ return this.post(`/api/v1/papers/${id}/vote`, apiKey, params);
172
+ }
173
+ async getPaperComments(id, apiKey) {
174
+ return this.get(`/api/v1/papers/${id}/comments`, apiKey);
175
+ }
176
+ async commentOnPaper(id, params, apiKey) {
177
+ return this.post(`/api/v1/papers/${id}/comments`, apiKey, params);
178
+ }
179
+ async updatePaper(id, params, apiKey) {
180
+ return this.patch(`/api/v1/papers/${id}`, apiKey, params);
181
+ }
182
+ async deletePaper(id, apiKey) {
183
+ return this.delete(`/api/v1/papers/${id}`, apiKey);
184
+ }
185
+ // ============================================================================
186
+ // Take Endpoints
187
+ // ============================================================================
188
+ async getTakes(apiKey, options) {
189
+ const params = new URLSearchParams();
190
+ if (options?.limit)
191
+ params.set('limit', options.limit.toString());
192
+ if (options?.offset)
193
+ params.set('offset', options.offset.toString());
194
+ if (options?.sciencesub)
195
+ params.set('sciencesub', options.sciencesub);
196
+ if (options?.sort)
197
+ params.set('sort', options.sort);
198
+ if (options?.agentId)
199
+ params.set('agentId', options.agentId);
200
+ const query = params.toString();
201
+ return this.get(`/api/v1/takes${query ? `?${query}` : ''}`, apiKey);
202
+ }
203
+ async getTake(id, apiKey) {
204
+ const result = await this.get(`/api/v1/takes/${id}`, apiKey);
205
+ if (!result.success)
206
+ return result;
207
+ const data = result.data;
208
+ const take = (data?.take ?? data);
209
+ return { success: true, data: take };
210
+ }
211
+ async createTake(params, apiKey) {
212
+ return this.post('/api/v1/takes', apiKey, params);
213
+ }
214
+ async voteTake(id, params, apiKey) {
215
+ return this.post(`/api/v1/takes/${id}/vote`, apiKey, params);
216
+ }
217
+ async getTakeComments(id, apiKey) {
218
+ return this.get(`/api/v1/takes/${id}/comments`, apiKey);
219
+ }
220
+ async commentOnTake(id, params, apiKey) {
221
+ return this.post(`/api/v1/takes/${id}/comments`, apiKey, params);
222
+ }
223
+ async updateTake(id, params, apiKey) {
224
+ return this.patch(`/api/v1/takes/${id}`, apiKey, params);
225
+ }
226
+ async deleteTake(id, apiKey) {
227
+ return this.delete(`/api/v1/takes/${id}`, apiKey);
228
+ }
229
+ // ============================================================================
230
+ // Review Endpoints
231
+ // ============================================================================
232
+ async getReviews(apiKey, options) {
233
+ const params = new URLSearchParams();
234
+ if (options?.limit)
235
+ params.set('limit', options.limit.toString());
236
+ if (options?.offset)
237
+ params.set('offset', options.offset.toString());
238
+ if (options?.paperId)
239
+ params.set('paperId', options.paperId);
240
+ const query = params.toString();
241
+ return this.get(`/api/v1/reviews${query ? `?${query}` : ''}`, apiKey);
242
+ }
243
+ async getReview(id, apiKey) {
244
+ return this.get(`/api/v1/reviews/${id}`, apiKey);
245
+ }
246
+ async createReview(params, apiKey) {
247
+ return this.post('/api/v1/reviews', apiKey, params);
248
+ }
249
+ async voteReview(id, params, apiKey) {
250
+ return this.post(`/api/v1/reviews/${id}/vote`, apiKey, params);
251
+ }
252
+ async commentOnReview(id, params, apiKey) {
253
+ return this.post(`/api/v1/reviews/${id}/comments`, apiKey, params);
254
+ }
255
+ // ============================================================================
256
+ // Comment Endpoints
257
+ // ============================================================================
258
+ async getComment(id, apiKey) {
259
+ return this.get(`/api/v1/comments/${id}`, apiKey);
260
+ }
261
+ async voteComment(id, params, apiKey) {
262
+ return this.post(`/api/v1/comments/${id}/vote`, apiKey, params);
263
+ }
264
+ async updateComment(id, params, apiKey) {
265
+ return this.patch(`/api/v1/comments/${id}`, apiKey, params);
266
+ }
267
+ async deleteComment(id, apiKey) {
268
+ return this.delete(`/api/v1/comments/${id}`, apiKey);
269
+ }
270
+ // ============================================================================
271
+ // Thread Endpoints
272
+ // ============================================================================
273
+ async getThread(rootId, apiKey) {
274
+ return this.get(`/api/v1/threads/${rootId}`, apiKey);
275
+ }
276
+ // ============================================================================
277
+ // Search & Discovery Endpoints
278
+ // ============================================================================
279
+ async searchPapers(apiKey, query, options) {
280
+ const params = new URLSearchParams();
281
+ params.set('q', query);
282
+ if (options?.limit)
283
+ params.set('limit', options.limit.toString());
284
+ if (options?.offset)
285
+ params.set('offset', options.offset.toString());
286
+ if (options?.tags)
287
+ params.set('tags', options.tags.join(','));
288
+ params.set('type', 'papers');
289
+ return this.get(`/api/v1/search?${params.toString()}`, apiKey);
290
+ }
291
+ async searchAgents(apiKey, query, options) {
292
+ const params = new URLSearchParams();
293
+ params.set('q', query);
294
+ if (options?.limit)
295
+ params.set('limit', options.limit.toString());
296
+ if (options?.offset)
297
+ params.set('offset', options.offset.toString());
298
+ params.set('type', 'agents');
299
+ return this.get(`/api/v1/search?${params.toString()}`, apiKey);
300
+ }
301
+ async getTrending(apiKey, options) {
302
+ const params = new URLSearchParams();
303
+ if (options?.limit)
304
+ params.set('limit', options.limit.toString());
305
+ if (options?.timeframe)
306
+ params.set('timeframe', options.timeframe);
307
+ const query = params.toString();
308
+ return this.get(`/api/v1/analytics/trending${query ? `?${query}` : ''}`, apiKey);
309
+ }
310
+ async getLeaderboard(apiKey, options) {
311
+ const params = new URLSearchParams();
312
+ if (options?.limit)
313
+ params.set('limit', options.limit.toString());
314
+ if (options?.by)
315
+ params.set('by', options.by);
316
+ const query = params.toString();
317
+ return this.get(`/api/v1/analytics/leaderboard${query ? `?${query}` : ''}`, apiKey);
318
+ }
319
+ async getPlatformStats(apiKey) {
320
+ return this.get('/api/v1/stats', apiKey);
321
+ }
322
+ // Returns 5 random papers, 10 random takes, 5 random reviews for agent discovery
323
+ async getRandomFeed(apiKey) {
324
+ return this.get('/api/v1/random', apiKey);
325
+ }
326
+ // Returns recent papers and takes from agents the caller follows
327
+ async getFollowingFeed(apiKey, options) {
328
+ const params = new URLSearchParams();
329
+ if (options?.limit)
330
+ params.set('limit', options.limit.toString());
331
+ if (options?.offset)
332
+ params.set('offset', options.offset.toString());
333
+ if (options?.type)
334
+ params.set('type', options.type);
335
+ const query = params.toString();
336
+ return this.get(`/api/v1/feed${query ? `?${query}` : ''}`, apiKey);
337
+ }
338
+ // ============================================================================
339
+ // Sciencesub Endpoints
340
+ // ============================================================================
341
+ async getSciencesubs(apiKey) {
342
+ return this.get('/api/v1/sciencesubs', apiKey);
343
+ }
344
+ async getCachedSciencesubs(apiKey) {
345
+ const cached = this.sciencesubCache.get(apiKey);
346
+ if (cached && Date.now() < cached.expiresAt) {
347
+ return cached.data;
348
+ }
349
+ const result = await this.getSciencesubs(apiKey);
350
+ if (result.success && result.data) {
351
+ const data = Array.isArray(result.data) ? result.data : [];
352
+ this.sciencesubCache.set(apiKey, {
353
+ data,
354
+ expiresAt: Date.now() + Agent4ScienceClient.SCIENCESUB_CACHE_TTL,
355
+ });
356
+ return data;
357
+ }
358
+ // Return stale cache if available, otherwise empty
359
+ return cached?.data ?? [];
360
+ }
361
+ async joinSciencesub(slug, apiKey) {
362
+ return this.post(`/api/v1/sciencesubs/${slug}/join`, apiKey);
363
+ }
364
+ async leaveSciencesub(slug, apiKey) {
365
+ return this.post(`/api/v1/sciencesubs/${slug}/leave`, apiKey);
366
+ }
367
+ async createSciencesub(params, apiKey) {
368
+ return this.post('/api/v1/sciencesubs', apiKey, params);
369
+ }
370
+ async getSciencesubDetails(slug, apiKey) {
371
+ return this.get(`/api/v1/sciencesubs/${slug}`, apiKey);
372
+ }
373
+ }
374
+ // Singleton factory
375
+ let clientInstance = null;
376
+ export function createAgent4ScienceClient(config) {
377
+ clientInstance = new Agent4ScienceClient(config);
378
+ return clientInstance;
379
+ }
380
+ export function getAgent4ScienceClient() {
381
+ if (!clientInstance) {
382
+ throw new Error('Agent4ScienceClient not initialized. Call createAgent4ScienceClient first.');
383
+ }
384
+ return clientInstance;
385
+ }
386
+ //# sourceMappingURL=agent4science-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent4science-client.js","sourceRoot":"","sources":["../../src/api/agent4science-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Add Agent Command
3
+ * Adds a new agent to the runtime using their Agent4Science API key
4
+ *
5
+ * The agent info (handle, displayName, persona) is fetched from the Agent4Science API.
6
+ * Agents must first be created on Agent4Science before they can be added to the runtime.
7
+ */
8
+ interface AddAgentOptions {
9
+ apiKey?: string;
10
+ }
11
+ export declare function addAgentCommand(handle: string, options: AddAgentOptions): Promise<void>;
12
+ export {};
13
+ //# sourceMappingURL=add-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-agent.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add-agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE7F"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Add Agent Command
3
+ * Adds a new agent to the runtime using their Agent4Science API key
4
+ *
5
+ * The agent info (handle, displayName, persona) is fetched from the Agent4Science API.
6
+ * Agents must first be created on Agent4Science before they can be added to the runtime.
7
+ */
8
+ import chalk from 'chalk';
9
+ import inquirer from 'inquirer';
10
+ import { loadConfig, validateSecrets } from '../../config/config.js';
11
+ import { createDatabase, getDatabase } from '../../db/database.js';
12
+ import { createAgentManager, getAgentManager } from '../../agents/agent-manager.js';
13
+ import { createAgent4ScienceClient } from '../../api/agent4science-client.js';
14
+ export async function addAgentCommand(handle, options) {
15
+ console.log(chalk.bold('\nAdding agent to runtime...'));
16
+ try {
17
+ const config = loadConfig();
18
+ validateSecrets({ requireLlm: false }); // add only needs API URL + encryption
19
+ // Initialize database (must be done before agent manager)
20
+ try {
21
+ getDatabase();
22
+ }
23
+ catch {
24
+ createDatabase(config.database.path);
25
+ }
26
+ // Initialize Agent4Science client
27
+ createAgent4ScienceClient({ baseUrl: config.api.apiUrl });
28
+ // Initialize agent manager
29
+ let manager;
30
+ try {
31
+ manager = getAgentManager();
32
+ }
33
+ catch {
34
+ manager = createAgentManager(config.security.encryptionKey);
35
+ }
36
+ // Get API key
37
+ let apiKey = options.apiKey;
38
+ if (!apiKey) {
39
+ const answers = await inquirer.prompt([
40
+ {
41
+ type: 'password',
42
+ name: 'apiKey',
43
+ message: `Agent4Science API key for @${handle}:`,
44
+ validate: (input) => input.length > 0 || 'API key is required',
45
+ },
46
+ ]);
47
+ apiKey = answers.apiKey;
48
+ }
49
+ if (!apiKey) {
50
+ throw new Error('API key is required');
51
+ }
52
+ console.log(chalk.gray('\nVerifying API key and fetching agent info from Agent4Science...'));
53
+ // Add agent (manager fetches agent info from Agent4Science API)
54
+ const agentConfig = await manager.addAgent(apiKey);
55
+ // Verify handle matches (if provided)
56
+ const expectedHandle = handle.replace('@', '');
57
+ if (expectedHandle && agentConfig.handle !== expectedHandle) {
58
+ console.log(chalk.yellow(`\nNote: API key belongs to @${agentConfig.handle}, not @${expectedHandle}`));
59
+ }
60
+ console.log(chalk.green('\n✓ Agent added successfully!\n'));
61
+ console.log(chalk.bold('Agent Details:'));
62
+ console.log(` ID: ${chalk.gray(agentConfig.id)}`);
63
+ console.log(` Handle: ${chalk.cyan('@' + agentConfig.handle)}`);
64
+ console.log(` Name: ${agentConfig.displayName}`);
65
+ console.log(` Voice: ${agentConfig.persona.voice}`);
66
+ console.log(` Epistemics: ${agentConfig.persona.epistemics}`);
67
+ console.log(` Topics: ${agentConfig.persona.preferredTopics.join(', ') || 'none set'}`);
68
+ console.log(` Spice: ${agentConfig.persona.spiceLevel}/10`);
69
+ console.log(chalk.gray('\nRun "npx tsx src/cli/index.ts start" to begin autonomous operation.'));
70
+ }
71
+ catch (error) {
72
+ console.error(chalk.red('\nFailed to add agent:'), error instanceof Error ? error.message : error);
73
+ process.exit(1);
74
+ }
75
+ }
76
+ //# sourceMappingURL=add-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-agent.js","sourceRoot":"","sources":["../../../src/cli/commands/add-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Community Command
3
+ * Runs the community engagement engine - fills engagement gaps,
4
+ * generates cross-agent discussions, and runs agent learning.
5
+ *
6
+ * NOW WITH REAL API CALLS!
7
+ */
8
+ interface CommandOptions {
9
+ intensity?: 'low' | 'medium' | 'high' | 'active';
10
+ chaos?: boolean;
11
+ fillGaps?: boolean;
12
+ discussions?: boolean;
13
+ bootstrap?: boolean;
14
+ learning?: boolean;
15
+ daemon?: boolean;
16
+ once?: boolean;
17
+ }
18
+ export declare function communityCommand(options?: CommandOptions): Promise<void>;
19
+ export {};
20
+ //# sourceMappingURL=community.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/community.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwMH,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwPlF"}