fly-to-moon 0.1.13 → 0.1.15
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/README.md +42 -19
- package/dist/cli.mjs +14 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -29,31 +29,48 @@ fttm is an autonomous coding agent orchestrator — each iteration makes one sma
|
|
|
29
29
|
|
|
30
30
|
## Quick Start
|
|
31
31
|
|
|
32
|
+
### Install
|
|
33
|
+
|
|
32
34
|
```sh
|
|
33
|
-
|
|
34
|
-
# have a good sleep
|
|
35
|
+
npm install -g fly-to-moon
|
|
35
36
|
```
|
|
36
37
|
|
|
38
|
+
### Update
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
npm install -g fly-to-moon@latest
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Or force reinstall:
|
|
45
|
+
|
|
37
46
|
```sh
|
|
38
|
-
|
|
39
|
-
--max-iterations 10 \
|
|
40
|
-
--max-tokens 5000000
|
|
41
|
-
# have a good nap
|
|
47
|
+
npm install -g fly-to-moon@latest --force
|
|
42
48
|
```
|
|
43
49
|
|
|
44
|
-
### OpenCode
|
|
50
|
+
### OpenCode
|
|
45
51
|
|
|
46
52
|
```sh
|
|
47
|
-
|
|
53
|
+
fttm "your task here" \
|
|
48
54
|
--agent opencode \
|
|
49
55
|
--model minimax-cn-coding-plan/MiniMax-M2.7
|
|
50
|
-
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Claude Code
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
fttm "your task here" --agent claude
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Codex
|
|
65
|
+
|
|
66
|
+
```sh
|
|
67
|
+
fttm "your task here" --agent codex
|
|
51
68
|
```
|
|
52
69
|
|
|
53
70
|
### Background/Daemon Mode
|
|
54
71
|
|
|
55
72
|
```sh
|
|
56
|
-
|
|
73
|
+
fttm "your task here" \
|
|
57
74
|
--agent opencode \
|
|
58
75
|
--model minimax-cn-coding-plan/MiniMax-M2.7 \
|
|
59
76
|
--max-iterations 50 \
|
|
@@ -61,22 +78,28 @@ $ fttm "implement a new feature" \
|
|
|
61
78
|
# runs in background, returns immediately to terminal
|
|
62
79
|
```
|
|
63
80
|
|
|
64
|
-
|
|
65
|
-
`fttm` supports macOS, Linux, and Windows.
|
|
81
|
+
### Skills
|
|
66
82
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
**npm**
|
|
83
|
+
Install the `fttm` skill for interactive command generation:
|
|
70
84
|
|
|
71
85
|
```sh
|
|
72
|
-
|
|
86
|
+
npx skills add evoerax/fly-to-the-moon --skill fttm
|
|
73
87
|
```
|
|
74
88
|
|
|
75
|
-
|
|
89
|
+
Then use it:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
fttm skill -> interactive fttm command builder
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Run `fttm` from inside a Git repository with a clean working tree. If you are starting from a plain directory, run `git init` first.
|
|
96
|
+
`fttm` supports macOS, Linux, and Windows.
|
|
97
|
+
|
|
98
|
+
## Install (From source)
|
|
76
99
|
|
|
77
100
|
```sh
|
|
78
|
-
git clone https://github.com/
|
|
79
|
-
cd
|
|
101
|
+
git clone https://github.com/evoerax/fly-to-the-moon.git
|
|
102
|
+
cd fly-to-the-moon
|
|
80
103
|
npm install
|
|
81
104
|
npm run build
|
|
82
105
|
npm link
|
package/dist/cli.mjs
CHANGED
|
@@ -259,11 +259,10 @@ function writeSchemaFile(schemaPath) {
|
|
|
259
259
|
writeFileSync(schemaPath, JSON.stringify(AGENT_OUTPUT_SCHEMA, null, 2), "utf-8");
|
|
260
260
|
}
|
|
261
261
|
function ensureRunMetadataIgnored(cwd) {
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
writeFileSync(gitignorePath, "*\n", "utf-8");
|
|
262
|
+
const excludePath = join(cwd, ".git", "info", "exclude");
|
|
263
|
+
if (existsSync(excludePath)) return;
|
|
264
|
+
mkdirSync(join(cwd, ".git", "info"), { recursive: true });
|
|
265
|
+
writeFileSync(excludePath, ".fttm/runs/\n", "utf-8");
|
|
267
266
|
}
|
|
268
267
|
function setupRun(runId, prompt, baseCommit, cwd) {
|
|
269
268
|
ensureRunMetadataIgnored(cwd);
|
|
@@ -860,16 +859,18 @@ var ClaudeAgent = class {
|
|
|
860
859
|
name = "claude";
|
|
861
860
|
bin;
|
|
862
861
|
platform;
|
|
862
|
+
model;
|
|
863
863
|
constructor(binOrDeps = {}) {
|
|
864
864
|
const deps = typeof binOrDeps === "string" ? { bin: binOrDeps } : binOrDeps;
|
|
865
865
|
this.bin = deps.bin ?? "claude";
|
|
866
866
|
this.platform = deps.platform ?? process.platform;
|
|
867
|
+
this.model = deps.model;
|
|
867
868
|
}
|
|
868
869
|
run(prompt, cwd, options) {
|
|
869
870
|
const { onUsage, onMessage, signal, logPath } = options ?? {};
|
|
870
871
|
return new Promise((resolve, reject) => {
|
|
871
872
|
const logStream = logPath ? createWriteStream(logPath) : null;
|
|
872
|
-
const
|
|
873
|
+
const args = [
|
|
873
874
|
"-p",
|
|
874
875
|
prompt,
|
|
875
876
|
"--verbose",
|
|
@@ -878,7 +879,9 @@ var ClaudeAgent = class {
|
|
|
878
879
|
"--json-schema",
|
|
879
880
|
JSON.stringify(AGENT_OUTPUT_SCHEMA),
|
|
880
881
|
"--dangerously-skip-permissions"
|
|
881
|
-
]
|
|
882
|
+
];
|
|
883
|
+
if (this.model) args.push("--model", this.model);
|
|
884
|
+
const child = spawn(this.bin, args, {
|
|
882
885
|
cwd,
|
|
883
886
|
shell: shouldUseWindowsShell$2(this.bin, this.platform),
|
|
884
887
|
stdio: [
|
|
@@ -2089,7 +2092,10 @@ function withTimeoutSignal(signal, timeoutMs) {
|
|
|
2089
2092
|
//#region src/core/agents/factory.ts
|
|
2090
2093
|
function createAgent(name, runInfo, pathOverride, model) {
|
|
2091
2094
|
switch (name) {
|
|
2092
|
-
case "claude": return new ClaudeAgent(
|
|
2095
|
+
case "claude": return new ClaudeAgent({
|
|
2096
|
+
bin: pathOverride,
|
|
2097
|
+
model
|
|
2098
|
+
});
|
|
2093
2099
|
case "codex": return new CodexAgent(runInfo.schemaPath, pathOverride);
|
|
2094
2100
|
case "opencode": return new OpenCodeAgent({
|
|
2095
2101
|
bin: pathOverride,
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fly-to-moon",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.15",
|
|
4
4
|
"description": "Humans fly to space. AI does the work. — Fly to the moon, fly to Mars",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"
|
|
7
|
+
"fttm": "dist/cli.mjs"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
10
|
"build": "tsdown",
|