spora 0.1.18 → 0.2.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/{chunk-ERTBXYOP.js → chunk-3FBYOHQR.js} +4 -4
- package/dist/{chunk-BUDIGP7I.js → chunk-3WPIVG27.js} +6 -6
- package/dist/{chunk-KVJ7QDP7.js → chunk-CMD2AGVW.js} +5 -5
- package/dist/{chunk-NFDZ47AG.js → chunk-MOCLA2KK.js} +4 -4
- package/dist/{chunk-7AHCICNB.js → chunk-V4BSNSFM.js} +2 -2
- package/dist/cli.js +45 -28
- package/dist/cli.js.map +1 -1
- package/dist/{client-UIVNUOML.js → client-FULMJH3S.js} +6 -6
- package/dist/{client-E2HXMCWG.js → client-RII4ST5D.js} +6 -6
- package/dist/{colony-JHNO77G3.js → colony-CBUE2M3P.js} +3 -3
- package/dist/{heartbeat-7NE3QFGK.js → heartbeat-KT5AFMGU.js} +11 -11
- package/dist/{init-SZYTEU67.js → init-NMWV64VQ.js} +13 -5
- package/dist/init-NMWV64VQ.js.map +1 -0
- package/dist/{llm-RDNC5Y3G.js → llm-OH2Z4PSN.js} +3 -3
- package/dist/mcp-server.js +22 -22
- package/dist/{prompt-builder-BWINRCXP.js → prompt-builder-TH576BVM.js} +4 -4
- package/dist/{queue-FMUMULCD.js → queue-5SDR3MF2.js} +3 -3
- package/dist/web-chat/chat.html +396 -0
- package/dist/web-chat-OQZCZSZO.js +162 -0
- package/dist/web-chat-OQZCZSZO.js.map +1 -0
- package/dist/{x-client-HM2LMXS3.js → x-client-T762KJFE.js} +3 -3
- package/package.json +1 -1
- package/dist/init-SZYTEU67.js.map +0 -1
- /package/dist/{chunk-ERTBXYOP.js.map → chunk-3FBYOHQR.js.map} +0 -0
- /package/dist/{chunk-BUDIGP7I.js.map → chunk-3WPIVG27.js.map} +0 -0
- /package/dist/{chunk-KVJ7QDP7.js.map → chunk-CMD2AGVW.js.map} +0 -0
- /package/dist/{chunk-NFDZ47AG.js.map → chunk-MOCLA2KK.js.map} +0 -0
- /package/dist/{chunk-7AHCICNB.js.map → chunk-V4BSNSFM.js.map} +0 -0
- /package/dist/{client-UIVNUOML.js.map → client-FULMJH3S.js.map} +0 -0
- /package/dist/{client-E2HXMCWG.js.map → client-RII4ST5D.js.map} +0 -0
- /package/dist/{colony-JHNO77G3.js.map → colony-CBUE2M3P.js.map} +0 -0
- /package/dist/{heartbeat-7NE3QFGK.js.map → heartbeat-KT5AFMGU.js.map} +0 -0
- /package/dist/{llm-RDNC5Y3G.js.map → llm-OH2Z4PSN.js.map} +0 -0
- /package/dist/{prompt-builder-BWINRCXP.js.map → prompt-builder-TH576BVM.js.map} +0 -0
- /package/dist/{queue-FMUMULCD.js.map → queue-5SDR3MF2.js.map} +0 -0
- /package/dist/{x-client-HM2LMXS3.js.map → x-client-T762KJFE.js.map} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
logger
|
|
3
|
-
} from "./chunk-KELPENM3.js";
|
|
4
1
|
import {
|
|
5
2
|
loadConfig
|
|
6
3
|
} from "./chunk-YEKHNTQO.js";
|
|
4
|
+
import {
|
|
5
|
+
logger
|
|
6
|
+
} from "./chunk-KELPENM3.js";
|
|
7
7
|
import {
|
|
8
8
|
paths
|
|
9
9
|
} from "./chunk-53YLFYJF.js";
|
|
@@ -78,4 +78,4 @@ export {
|
|
|
78
78
|
generateResponse,
|
|
79
79
|
chat
|
|
80
80
|
};
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-3FBYOHQR.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
logger
|
|
3
|
-
} from "./chunk-KELPENM3.js";
|
|
4
1
|
import {
|
|
5
2
|
loadConfig
|
|
6
3
|
} from "./chunk-YEKHNTQO.js";
|
|
4
|
+
import {
|
|
5
|
+
logger
|
|
6
|
+
} from "./chunk-KELPENM3.js";
|
|
7
7
|
|
|
8
8
|
// src/x-client/index.ts
|
|
9
9
|
var clientInstance = null;
|
|
@@ -11,11 +11,11 @@ async function getXClient() {
|
|
|
11
11
|
if (clientInstance) return clientInstance;
|
|
12
12
|
const config = loadConfig();
|
|
13
13
|
if (config.xMethod === "api") {
|
|
14
|
-
const { XApiClient } = await import("./client-
|
|
14
|
+
const { XApiClient } = await import("./client-FULMJH3S.js");
|
|
15
15
|
clientInstance = new XApiClient();
|
|
16
16
|
logger.info("X client initialized: API mode");
|
|
17
17
|
} else {
|
|
18
|
-
const { XBrowserClient } = await import("./client-
|
|
18
|
+
const { XBrowserClient } = await import("./client-RII4ST5D.js");
|
|
19
19
|
clientInstance = new XBrowserClient();
|
|
20
20
|
logger.info("X client initialized: Browser mode");
|
|
21
21
|
}
|
|
@@ -29,4 +29,4 @@ export {
|
|
|
29
29
|
getXClient,
|
|
30
30
|
resetXClient
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=chunk-
|
|
32
|
+
//# sourceMappingURL=chunk-3WPIVG27.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
logger
|
|
3
|
-
} from "./chunk-KELPENM3.js";
|
|
4
1
|
import {
|
|
5
2
|
loadConfig
|
|
6
3
|
} from "./chunk-YEKHNTQO.js";
|
|
4
|
+
import {
|
|
5
|
+
logger
|
|
6
|
+
} from "./chunk-KELPENM3.js";
|
|
7
7
|
import {
|
|
8
8
|
ensureDirectories,
|
|
9
9
|
paths
|
|
@@ -67,7 +67,7 @@ async function flushQueue() {
|
|
|
67
67
|
const now = /* @__PURE__ */ new Date();
|
|
68
68
|
let posted = 0;
|
|
69
69
|
let failed = 0;
|
|
70
|
-
const { getXClient } = await import("./x-client-
|
|
70
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
71
71
|
const client = await getXClient();
|
|
72
72
|
for (const entry of queue.entries) {
|
|
73
73
|
if (entry.status !== "pending") continue;
|
|
@@ -121,4 +121,4 @@ export {
|
|
|
121
121
|
flushQueue,
|
|
122
122
|
showQueue
|
|
123
123
|
};
|
|
124
|
-
//# sourceMappingURL=chunk-
|
|
124
|
+
//# sourceMappingURL=chunk-CMD2AGVW.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
logger
|
|
3
|
-
} from "./chunk-KELPENM3.js";
|
|
4
1
|
import {
|
|
5
2
|
loadConfig,
|
|
6
3
|
saveConfig
|
|
7
4
|
} from "./chunk-YEKHNTQO.js";
|
|
5
|
+
import {
|
|
6
|
+
logger
|
|
7
|
+
} from "./chunk-KELPENM3.js";
|
|
8
8
|
|
|
9
9
|
// src/x-client/rate-limiter.ts
|
|
10
10
|
var RateLimiter = class {
|
|
@@ -54,4 +54,4 @@ var rateLimiter = new RateLimiter();
|
|
|
54
54
|
export {
|
|
55
55
|
rateLimiter
|
|
56
56
|
};
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
57
|
+
//# sourceMappingURL=chunk-MOCLA2KK.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
rateLimiter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MOCLA2KK.js";
|
|
4
4
|
import {
|
|
5
5
|
getRecentInteractions,
|
|
6
6
|
loadLearnings,
|
|
@@ -159,4 +159,4 @@ export {
|
|
|
159
159
|
buildHeartbeatUserMessage,
|
|
160
160
|
buildChatPrompt
|
|
161
161
|
};
|
|
162
|
-
//# sourceMappingURL=chunk-
|
|
162
|
+
//# sourceMappingURL=chunk-V4BSNSFM.js.map
|
package/dist/cli.js
CHANGED
|
@@ -123,13 +123,30 @@ program.command("init").description("Set up X account credentials for your Spore
|
|
|
123
123
|
console.log(chalk.cyan(BANNER));
|
|
124
124
|
console.log(chalk.bold("Welcome to Spora."));
|
|
125
125
|
console.log(chalk.gray("The global town square for AI agents.\n"));
|
|
126
|
-
const { runInit } = await import("./init-
|
|
126
|
+
const { runInit } = await import("./init-NMWV64VQ.js");
|
|
127
127
|
await runInit(opts.token);
|
|
128
128
|
});
|
|
129
129
|
program.command("serve").description("Start the Spora MCP server (stdio)").action(async () => {
|
|
130
130
|
const { startServer } = await import("./mcp-server.js");
|
|
131
131
|
await startServer();
|
|
132
132
|
});
|
|
133
|
+
program.command("chat").description("Open web-based chat interface with your Spore").action(async () => {
|
|
134
|
+
if (!identityExists()) {
|
|
135
|
+
console.log(chalk.red("\u2717 No identity found. Run `spora create` first."));
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
const { startWebChat } = await import("./web-chat-OQZCZSZO.js");
|
|
139
|
+
await startWebChat();
|
|
140
|
+
});
|
|
141
|
+
program.command("tui").description("Start terminal-based chat interface (TUI)").action(async () => {
|
|
142
|
+
if (!identityExists()) {
|
|
143
|
+
console.log(chalk.red("\u2717 No identity found. Run `spora create` first."));
|
|
144
|
+
process.exit(1);
|
|
145
|
+
}
|
|
146
|
+
console.log(chalk.yellow("Terminal chat interface coming soon!"));
|
|
147
|
+
console.log(chalk.dim("For now, use `spora chat` to open the web interface."));
|
|
148
|
+
process.exit(0);
|
|
149
|
+
});
|
|
133
150
|
program.command("status").description("Show Spore status").action(() => {
|
|
134
151
|
if (!hasXCredentials()) {
|
|
135
152
|
console.log(JSON.stringify({ error: "No X credentials found. Run `spora init` first." }));
|
|
@@ -261,7 +278,7 @@ program.command("journal").description("Add a reflection to the evolution journa
|
|
|
261
278
|
});
|
|
262
279
|
program.command("post").description("Post a tweet").argument("<content>", "Tweet content (max 280 chars)").action(async (content) => {
|
|
263
280
|
try {
|
|
264
|
-
const { getXClient } = await import("./x-client-
|
|
281
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
265
282
|
const client = await getXClient();
|
|
266
283
|
const result = await client.postTweet(content);
|
|
267
284
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -272,7 +289,7 @@ program.command("post").description("Post a tweet").argument("<content>", "Tweet
|
|
|
272
289
|
});
|
|
273
290
|
program.command("reply").description("Reply to a tweet").argument("<tweetId>", "Tweet ID to reply to").argument("<content>", "Reply content").action(async (tweetId, content) => {
|
|
274
291
|
try {
|
|
275
|
-
const { getXClient } = await import("./x-client-
|
|
292
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
276
293
|
const client = await getXClient();
|
|
277
294
|
const result = await client.replyToTweet(tweetId, content);
|
|
278
295
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -283,7 +300,7 @@ program.command("reply").description("Reply to a tweet").argument("<tweetId>", "
|
|
|
283
300
|
});
|
|
284
301
|
program.command("like").description("Like a tweet").argument("<tweetId>", "Tweet ID").action(async (tweetId) => {
|
|
285
302
|
try {
|
|
286
|
-
const { getXClient } = await import("./x-client-
|
|
303
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
287
304
|
const client = await getXClient();
|
|
288
305
|
const result = await client.likeTweet(tweetId);
|
|
289
306
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -294,7 +311,7 @@ program.command("like").description("Like a tweet").argument("<tweetId>", "Tweet
|
|
|
294
311
|
});
|
|
295
312
|
program.command("retweet").description("Retweet a tweet").argument("<tweetId>", "Tweet ID").action(async (tweetId) => {
|
|
296
313
|
try {
|
|
297
|
-
const { getXClient } = await import("./x-client-
|
|
314
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
298
315
|
const client = await getXClient();
|
|
299
316
|
const result = await client.retweet(tweetId);
|
|
300
317
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -305,7 +322,7 @@ program.command("retweet").description("Retweet a tweet").argument("<tweetId>",
|
|
|
305
322
|
});
|
|
306
323
|
program.command("follow").description("Follow a user").argument("<handle>", "User handle or ID").action(async (handle) => {
|
|
307
324
|
try {
|
|
308
|
-
const { getXClient } = await import("./x-client-
|
|
325
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
309
326
|
const client = await getXClient();
|
|
310
327
|
const result = await client.followUser(handle);
|
|
311
328
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -316,7 +333,7 @@ program.command("follow").description("Follow a user").argument("<handle>", "Use
|
|
|
316
333
|
});
|
|
317
334
|
program.command("unfollow").description("Unfollow a user").argument("<handle>", "User handle or ID").action(async (handle) => {
|
|
318
335
|
try {
|
|
319
|
-
const { getXClient } = await import("./x-client-
|
|
336
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
320
337
|
const client = await getXClient();
|
|
321
338
|
const result = await client.unfollowUser(handle);
|
|
322
339
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -327,7 +344,7 @@ program.command("unfollow").description("Unfollow a user").argument("<handle>",
|
|
|
327
344
|
});
|
|
328
345
|
program.command("timeline").description("Read home timeline").option("-c, --count <n>", "Number of tweets", "20").action(async (opts) => {
|
|
329
346
|
try {
|
|
330
|
-
const { getXClient } = await import("./x-client-
|
|
347
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
331
348
|
const client = await getXClient();
|
|
332
349
|
const result = await client.getTimeline({ count: parseInt(opts.count) });
|
|
333
350
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -338,7 +355,7 @@ program.command("timeline").description("Read home timeline").option("-c, --coun
|
|
|
338
355
|
});
|
|
339
356
|
program.command("mentions").description("Read mentions").option("-c, --count <n>", "Number of mentions", "20").action(async (opts) => {
|
|
340
357
|
try {
|
|
341
|
-
const { getXClient } = await import("./x-client-
|
|
358
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
342
359
|
const client = await getXClient();
|
|
343
360
|
const result = await client.getMentions({ count: parseInt(opts.count) });
|
|
344
361
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -349,7 +366,7 @@ program.command("mentions").description("Read mentions").option("-c, --count <n>
|
|
|
349
366
|
});
|
|
350
367
|
program.command("search").description("Search for tweets").argument("<query>", "Search query").option("-c, --count <n>", "Number of results", "20").action(async (query, opts) => {
|
|
351
368
|
try {
|
|
352
|
-
const { getXClient } = await import("./x-client-
|
|
369
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
353
370
|
const client = await getXClient();
|
|
354
371
|
const result = await client.searchTweets(query, { count: parseInt(opts.count) });
|
|
355
372
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -360,7 +377,7 @@ program.command("search").description("Search for tweets").argument("<query>", "
|
|
|
360
377
|
});
|
|
361
378
|
program.command("profile").description("Get a user's X profile").argument("<handle>", "X handle (without @)").action(async (handle) => {
|
|
362
379
|
try {
|
|
363
|
-
const { getXClient } = await import("./x-client-
|
|
380
|
+
const { getXClient } = await import("./x-client-T762KJFE.js");
|
|
364
381
|
const client = await getXClient();
|
|
365
382
|
const result = await client.getProfile(handle);
|
|
366
383
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -426,7 +443,7 @@ program.command("note").description("Add a relationship note about someone").arg
|
|
|
426
443
|
});
|
|
427
444
|
program.command("schedule").description("Queue a post for later").argument("<content>", "Tweet content").option("--at <datetime>", "ISO datetime to post at").action(async (content, opts) => {
|
|
428
445
|
try {
|
|
429
|
-
const { addToQueue } = await import("./queue-
|
|
446
|
+
const { addToQueue } = await import("./queue-5SDR3MF2.js");
|
|
430
447
|
const entry = addToQueue(content, opts.at);
|
|
431
448
|
console.log(JSON.stringify({ success: true, id: entry.id, scheduledFor: entry.scheduledFor }));
|
|
432
449
|
} catch (error) {
|
|
@@ -436,7 +453,7 @@ program.command("schedule").description("Queue a post for later").argument("<con
|
|
|
436
453
|
});
|
|
437
454
|
program.command("flush").description("Post all queued items whose time has come").action(async () => {
|
|
438
455
|
try {
|
|
439
|
-
const { flushQueue } = await import("./queue-
|
|
456
|
+
const { flushQueue } = await import("./queue-5SDR3MF2.js");
|
|
440
457
|
const results = await flushQueue();
|
|
441
458
|
console.log(JSON.stringify(results, null, 2));
|
|
442
459
|
} catch (error) {
|
|
@@ -445,13 +462,13 @@ program.command("flush").description("Post all queued items whose time has come"
|
|
|
445
462
|
}
|
|
446
463
|
});
|
|
447
464
|
program.command("queue").description("Show scheduled posts").action(async () => {
|
|
448
|
-
const { showQueue } = await import("./queue-
|
|
465
|
+
const { showQueue } = await import("./queue-5SDR3MF2.js");
|
|
449
466
|
showQueue();
|
|
450
467
|
});
|
|
451
468
|
var colony = program.command("colony").description("Colony commands");
|
|
452
469
|
colony.command("checkin").description("Check into The Colony \u2014 sync memory, discover Spores").option("-m, --message <msg>", "Optional message to post").action(async (opts) => {
|
|
453
470
|
try {
|
|
454
|
-
const { colonyCheckin } = await import("./colony-
|
|
471
|
+
const { colonyCheckin } = await import("./colony-CBUE2M3P.js");
|
|
455
472
|
const result = await colonyCheckin(opts.message);
|
|
456
473
|
console.log(JSON.stringify(result, null, 2));
|
|
457
474
|
} catch (error) {
|
|
@@ -470,7 +487,7 @@ colony.command("memory").description("Read the Colony's shared memory").action(a
|
|
|
470
487
|
});
|
|
471
488
|
colony.command("plans").description("Get all active Colony plans").action(async () => {
|
|
472
489
|
try {
|
|
473
|
-
const { getActivePlans } = await import("./colony-
|
|
490
|
+
const { getActivePlans } = await import("./colony-CBUE2M3P.js");
|
|
474
491
|
const plans = getActivePlans();
|
|
475
492
|
console.log(plans.length > 0 ? JSON.stringify(plans, null, 2) : JSON.stringify({ message: "No active plans. Propose one!" }));
|
|
476
493
|
} catch (error) {
|
|
@@ -480,7 +497,7 @@ colony.command("plans").description("Get all active Colony plans").action(async
|
|
|
480
497
|
});
|
|
481
498
|
colony.command("propose").description("Propose a coordinated plan").argument("<description>", "What's the plan?").action(async (description) => {
|
|
482
499
|
try {
|
|
483
|
-
const { proposePlan } = await import("./colony-
|
|
500
|
+
const { proposePlan } = await import("./colony-CBUE2M3P.js");
|
|
484
501
|
const result = await proposePlan(description);
|
|
485
502
|
console.log(JSON.stringify(result, null, 2));
|
|
486
503
|
} catch (error) {
|
|
@@ -490,7 +507,7 @@ colony.command("propose").description("Propose a coordinated plan").argument("<d
|
|
|
490
507
|
});
|
|
491
508
|
colony.command("join").description("Join an active plan").argument("<planId>", "Plan ID").action(async (planId) => {
|
|
492
509
|
try {
|
|
493
|
-
const { joinPlan } = await import("./colony-
|
|
510
|
+
const { joinPlan } = await import("./colony-CBUE2M3P.js");
|
|
494
511
|
const result = await joinPlan(planId);
|
|
495
512
|
console.log(JSON.stringify(result, null, 2));
|
|
496
513
|
} catch (error) {
|
|
@@ -500,7 +517,7 @@ colony.command("join").description("Join an active plan").argument("<planId>", "
|
|
|
500
517
|
});
|
|
501
518
|
colony.command("post-status").description("Post a status update to the Colony").argument("<status>", "Your status").action(async (status) => {
|
|
502
519
|
try {
|
|
503
|
-
const { postStatus } = await import("./colony-
|
|
520
|
+
const { postStatus } = await import("./colony-CBUE2M3P.js");
|
|
504
521
|
const result = await postStatus(status);
|
|
505
522
|
console.log(JSON.stringify(result, null, 2));
|
|
506
523
|
} catch (error) {
|
|
@@ -510,7 +527,7 @@ colony.command("post-status").description("Post a status update to the Colony").
|
|
|
510
527
|
});
|
|
511
528
|
colony.command("activity").description("Get today's Colony activity").action(async () => {
|
|
512
529
|
try {
|
|
513
|
-
const { getTodaysActivity } = await import("./colony-
|
|
530
|
+
const { getTodaysActivity } = await import("./colony-CBUE2M3P.js");
|
|
514
531
|
const activity = getTodaysActivity();
|
|
515
532
|
console.log(activity.length > 0 ? JSON.stringify(activity, null, 2) : JSON.stringify({ message: "No Colony activity today yet." }));
|
|
516
533
|
} catch (error) {
|
|
@@ -527,7 +544,7 @@ program.command("start").description("Start the autonomous Spora agent").option(
|
|
|
527
544
|
console.log(JSON.stringify({ error: "No X credentials. Run `spora init` to set up." }));
|
|
528
545
|
process.exit(1);
|
|
529
546
|
}
|
|
530
|
-
const { hasLLMKey } = await import("./llm-
|
|
547
|
+
const { hasLLMKey } = await import("./llm-OH2Z4PSN.js");
|
|
531
548
|
if (!hasLLMKey()) {
|
|
532
549
|
console.log(JSON.stringify({ error: "No LLM API key. Run `spora set-llm-key` first." }));
|
|
533
550
|
process.exit(1);
|
|
@@ -540,11 +557,11 @@ program.command("start").description("Start the autonomous Spora agent").option(
|
|
|
540
557
|
}
|
|
541
558
|
console.log(chalk.cyan(BANNER));
|
|
542
559
|
console.log(chalk.bold("Starting Spora agent...\n"));
|
|
543
|
-
const { startHeartbeatLoop } = await import("./heartbeat-
|
|
560
|
+
const { startHeartbeatLoop } = await import("./heartbeat-KT5AFMGU.js");
|
|
544
561
|
await startHeartbeatLoop();
|
|
545
562
|
});
|
|
546
563
|
program.command("stop").description("Stop the running Spora agent").action(async () => {
|
|
547
|
-
const { getRunningPid, requestStop } = await import("./heartbeat-
|
|
564
|
+
const { getRunningPid, requestStop } = await import("./heartbeat-KT5AFMGU.js");
|
|
548
565
|
const pid = getRunningPid();
|
|
549
566
|
if (!pid) {
|
|
550
567
|
console.log(JSON.stringify({ message: "Spora agent is not running." }));
|
|
@@ -586,13 +603,13 @@ program.command("chat").description("Chat with your Spore locally").action(async
|
|
|
586
603
|
console.log("Spora not initialized. Run `spora init` first.");
|
|
587
604
|
process.exit(1);
|
|
588
605
|
}
|
|
589
|
-
const { hasLLMKey } = await import("./llm-
|
|
606
|
+
const { hasLLMKey } = await import("./llm-OH2Z4PSN.js");
|
|
590
607
|
if (!hasLLMKey()) {
|
|
591
608
|
console.log("No LLM API key. Run `spora set-llm-key` first.");
|
|
592
609
|
process.exit(1);
|
|
593
610
|
}
|
|
594
|
-
const { buildChatPrompt } = await import("./prompt-builder-
|
|
595
|
-
const { chat: chatLLM } = await import("./llm-
|
|
611
|
+
const { buildChatPrompt } = await import("./prompt-builder-TH576BVM.js");
|
|
612
|
+
const { chat: chatLLM } = await import("./llm-OH2Z4PSN.js");
|
|
596
613
|
const { input } = await import("@inquirer/prompts");
|
|
597
614
|
const identity = loadIdentity();
|
|
598
615
|
console.log(chalk.cyan(BANNER));
|
|
@@ -620,9 +637,9 @@ ${identity.name}: `) + response.content + "\n");
|
|
|
620
637
|
}
|
|
621
638
|
});
|
|
622
639
|
program.command("agent-status").description("Check if the Spora agent is running").action(async () => {
|
|
623
|
-
const { getRunningPid } = await import("./heartbeat-
|
|
640
|
+
const { getRunningPid } = await import("./heartbeat-KT5AFMGU.js");
|
|
624
641
|
const pid = getRunningPid();
|
|
625
|
-
const { hasLLMKey } = await import("./llm-
|
|
642
|
+
const { hasLLMKey } = await import("./llm-OH2Z4PSN.js");
|
|
626
643
|
console.log(JSON.stringify({
|
|
627
644
|
agentRunning: pid !== null,
|
|
628
645
|
pid,
|