freeturtle 0.1.3 → 0.1.4
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/bin/freeturtle.js
CHANGED
|
@@ -10,29 +10,19 @@ process.emit = ((event, ...args) => {
|
|
|
10
10
|
import { homedir } from "node:os";
|
|
11
11
|
import { join } from "node:path";
|
|
12
12
|
import { Command } from "commander";
|
|
13
|
-
import { runInit } from "../src/cli/init.js";
|
|
14
|
-
import { runStart } from "../src/cli/start.js";
|
|
15
|
-
import { runStatus } from "../src/cli/status.js";
|
|
16
|
-
import { runSend } from "../src/cli/send.js";
|
|
17
|
-
import { runSetup } from "../src/setup.js";
|
|
18
|
-
import { connectFarcaster } from "../src/cli/connect-farcaster.js";
|
|
19
|
-
import { runInstallService } from "../src/cli/install-service.js";
|
|
20
|
-
import { runUpdate } from "../src/cli/update.js";
|
|
21
|
-
import { runWebhooksSetup } from "../src/cli/webhooks.js";
|
|
22
|
-
import { runApprove, runReject, runListApprovals, } from "../src/cli/approvals.js";
|
|
23
13
|
const DEFAULT_DIR = join(homedir(), ".freeturtle");
|
|
24
14
|
const program = new Command();
|
|
25
15
|
program
|
|
26
16
|
.name("freeturtle")
|
|
27
17
|
.description("An open-source framework for deploying autonomous AI CEOs that run onchain businesses.")
|
|
28
|
-
.version("0.1.
|
|
18
|
+
.version("0.1.4");
|
|
29
19
|
program
|
|
30
20
|
.command("hello")
|
|
31
21
|
.description("Verify the CLI is working")
|
|
32
22
|
.action(() => {
|
|
33
23
|
console.log(" \x1b[38;2;94;255;164m _____ ____\x1b[0m");
|
|
34
24
|
console.log(" \x1b[38;2;94;255;164m/ \\ | o |\x1b[0m");
|
|
35
|
-
console.log(" \x1b[38;2;94;255;164m| |/ ___\\|\x1b[0m FreeTurtle v0.1.
|
|
25
|
+
console.log(" \x1b[38;2;94;255;164m| |/ ___\\|\x1b[0m FreeTurtle v0.1.4");
|
|
36
26
|
console.log(" \x1b[38;2;94;255;164m|_________/\x1b[0m");
|
|
37
27
|
console.log(" \x1b[38;2;94;255;164m|_|_| |_|_|\x1b[0m");
|
|
38
28
|
});
|
|
@@ -41,6 +31,7 @@ program
|
|
|
41
31
|
.description("Set up a new AI CEO")
|
|
42
32
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
43
33
|
.action(async (opts) => {
|
|
34
|
+
const { runInit } = await import("../src/cli/init.js");
|
|
44
35
|
await runInit(opts.dir);
|
|
45
36
|
});
|
|
46
37
|
program
|
|
@@ -48,6 +39,7 @@ program
|
|
|
48
39
|
.description("Configure your LLM provider and API key")
|
|
49
40
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
50
41
|
.action(async (opts) => {
|
|
42
|
+
const { runSetup } = await import("../src/setup.js");
|
|
51
43
|
await runSetup(opts.dir);
|
|
52
44
|
});
|
|
53
45
|
program
|
|
@@ -56,6 +48,7 @@ program
|
|
|
56
48
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
57
49
|
.option("--chat", "Open interactive terminal chat", false)
|
|
58
50
|
.action(async (opts) => {
|
|
51
|
+
const { runStart } = await import("../src/cli/start.js");
|
|
59
52
|
await runStart(opts.dir, { chat: opts.chat });
|
|
60
53
|
});
|
|
61
54
|
program
|
|
@@ -64,6 +57,7 @@ program
|
|
|
64
57
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
65
58
|
.action(async (opts) => {
|
|
66
59
|
try {
|
|
60
|
+
const { runStatus } = await import("../src/cli/status.js");
|
|
67
61
|
await runStatus(opts.dir);
|
|
68
62
|
}
|
|
69
63
|
catch (err) {
|
|
@@ -77,12 +71,14 @@ program
|
|
|
77
71
|
.description("Send a message to the running CEO")
|
|
78
72
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
79
73
|
.action(async (message, opts) => {
|
|
74
|
+
const { runSend } = await import("../src/cli/send.js");
|
|
80
75
|
await runSend(opts.dir, message);
|
|
81
76
|
});
|
|
82
77
|
program
|
|
83
78
|
.command("update")
|
|
84
79
|
.description("Update FreeTurtle to the latest version")
|
|
85
80
|
.action(async () => {
|
|
81
|
+
const { runUpdate } = await import("../src/cli/update.js");
|
|
86
82
|
await runUpdate();
|
|
87
83
|
});
|
|
88
84
|
program
|
|
@@ -90,6 +86,7 @@ program
|
|
|
90
86
|
.description("Install FreeTurtle as a systemd user service (Linux)")
|
|
91
87
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
92
88
|
.action(async (opts) => {
|
|
89
|
+
const { runInstallService } = await import("../src/cli/install-service.js");
|
|
93
90
|
await runInstallService(opts.dir);
|
|
94
91
|
});
|
|
95
92
|
program
|
|
@@ -97,6 +94,7 @@ program
|
|
|
97
94
|
.description("Approve a pending action")
|
|
98
95
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
99
96
|
.action(async (id, opts) => {
|
|
97
|
+
const { runApprove } = await import("../src/cli/approvals.js");
|
|
100
98
|
await runApprove(opts.dir, id);
|
|
101
99
|
});
|
|
102
100
|
program
|
|
@@ -105,6 +103,7 @@ program
|
|
|
105
103
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
106
104
|
.option("--reason <reason>", "Rejection reason")
|
|
107
105
|
.action(async (id, opts) => {
|
|
106
|
+
const { runReject } = await import("../src/cli/approvals.js");
|
|
108
107
|
await runReject(opts.dir, id, opts.reason);
|
|
109
108
|
});
|
|
110
109
|
program
|
|
@@ -112,6 +111,7 @@ program
|
|
|
112
111
|
.description("List pending approval requests")
|
|
113
112
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
114
113
|
.action(async (opts) => {
|
|
114
|
+
const { runListApprovals } = await import("../src/cli/approvals.js");
|
|
115
115
|
await runListApprovals(opts.dir);
|
|
116
116
|
});
|
|
117
117
|
const connect = program
|
|
@@ -122,6 +122,7 @@ connect
|
|
|
122
122
|
.description("Set up Farcaster signer with QR code approval")
|
|
123
123
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
124
124
|
.action(async (opts) => {
|
|
125
|
+
const { connectFarcaster } = await import("../src/cli/connect-farcaster.js");
|
|
125
126
|
await connectFarcaster(opts.dir);
|
|
126
127
|
});
|
|
127
128
|
program
|
|
@@ -129,6 +130,7 @@ program
|
|
|
129
130
|
.description("Set up Neynar webhooks for Farcaster mentions")
|
|
130
131
|
.option("--dir <path>", "Workspace directory", DEFAULT_DIR)
|
|
131
132
|
.action(async (opts) => {
|
|
133
|
+
const { runWebhooksSetup } = await import("../src/cli/webhooks.js");
|
|
132
134
|
await runWebhooksSetup(opts.dir);
|
|
133
135
|
});
|
|
134
136
|
program.parse();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freeturtle.js","sourceRoot":"","sources":["../../bin/freeturtle.ts"],"names":[],"mappings":";AAEA,mGAAmG;AACnG,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB,CAAC;AACnE,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAa,EAAE,GAAG,IAAe,EAAW,EAAE;IAC7D,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAC7F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAClC,CAAC,CAAwB,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"freeturtle.js","sourceRoot":"","sources":["../../bin/freeturtle.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli/init.js
CHANGED
package/dist/src/cli/update.js
CHANGED
|
@@ -20,7 +20,7 @@ function detectPackageManager() {
|
|
|
20
20
|
export async function runUpdate() {
|
|
21
21
|
const pm = detectPackageManager();
|
|
22
22
|
const cmd = pm === "pnpm"
|
|
23
|
-
? "pnpm install -g
|
|
23
|
+
? "pnpm install -g freeturtle@latest"
|
|
24
24
|
: pm === "yarn"
|
|
25
25
|
? "yarn global add freeturtle@latest"
|
|
26
26
|
: "npm install -g freeturtle@latest";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,SAAS,oBAAoB;IAC3B,8BAA8B;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACpF,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,MAAM,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAE1B,8BAA8B;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,MAAM,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAE1B,iBAAiB;IACjB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM;QACvB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,SAAS,oBAAoB;IAC3B,8BAA8B;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACpF,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,MAAM,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAE1B,8BAA8B;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,MAAM,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAE1B,iBAAiB;IACjB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM;QACvB,CAAC,CAAC,mCAAmC;QACrC,CAAC,CAAC,EAAE,KAAK,MAAM;YACb,CAAC,CAAC,mCAAmC;YACrC,CAAC,CAAC,kCAAkC,CAAC;IAEzC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAE1B,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|