symphony-box 1.0.2 → 1.0.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/cli.js +8 -1
- package/init.js +8 -6
- package/package.json +2 -2
package/cli.js
CHANGED
|
@@ -93,12 +93,19 @@ async function main() {
|
|
|
93
93
|
const { repoUrl, repoName } = await pickRepo(githubToken);
|
|
94
94
|
const linearProjectName = await pickLinearProject(linearApiKey);
|
|
95
95
|
|
|
96
|
+
const keepAlive = checkCancel(
|
|
97
|
+
await confirm({
|
|
98
|
+
message: "Keep the box alive for production? (recommended — box stays running even when idle; otherwise it freezes after inactivity)",
|
|
99
|
+
initialValue: true,
|
|
100
|
+
})
|
|
101
|
+
);
|
|
102
|
+
|
|
96
103
|
const s = spinner();
|
|
97
104
|
s.start("Starting...");
|
|
98
105
|
|
|
99
106
|
try {
|
|
100
107
|
const { boxId, stream } = await run_init(
|
|
101
|
-
{ upstashBoxApiKey, openaiApiKey, linearApiKey, githubToken, repoUrl, repoName, linearProjectName },
|
|
108
|
+
{ upstashBoxApiKey, openaiApiKey, linearApiKey, githubToken, repoUrl, repoName, linearProjectName, keepAlive },
|
|
102
109
|
{
|
|
103
110
|
onStep: (_step, message) => s.message(message),
|
|
104
111
|
onMissingStates: async (missing) => {
|
package/init.js
CHANGED
|
@@ -77,6 +77,7 @@ export async function run_init(
|
|
|
77
77
|
repoUrl,
|
|
78
78
|
repoName,
|
|
79
79
|
linearProjectName,
|
|
80
|
+
keepAlive = false,
|
|
80
81
|
},
|
|
81
82
|
{ onStep = () => {}, onMissingStates = async () => true } = {},
|
|
82
83
|
) {
|
|
@@ -94,13 +95,14 @@ export async function run_init(
|
|
|
94
95
|
const box = await Box.create({
|
|
95
96
|
apiKey: upstashBoxApiKey,
|
|
96
97
|
runtime: "node",
|
|
98
|
+
keepAlive,
|
|
97
99
|
git: { token: githubToken },
|
|
98
100
|
env: { LINEAR_API_KEY: linearApiKey, OPENAI_API_KEY: openaiApiKey },
|
|
99
101
|
});
|
|
100
102
|
|
|
101
103
|
onStep("deps", `Box ${box.id} — installing system dependencies...`);
|
|
102
104
|
await box.exec.command(
|
|
103
|
-
"sudo
|
|
105
|
+
"sudo apt-get update && sudo apt-get install -y build-essential bison libncurses-dev libssl-dev libssh-dev unixodbc-dev libxml2-dev",
|
|
104
106
|
);
|
|
105
107
|
|
|
106
108
|
onStep("codex", "Installing Codex...");
|
|
@@ -133,11 +135,11 @@ export async function run_init(
|
|
|
133
135
|
`cd symphony/elixir && ${MISE} exec -- ./bin/symphony /workspace/home/${repoName}/WORKFLOW.md --i-understand-that-this-will-be-running-without-the-usual-guardrails`,
|
|
134
136
|
);
|
|
135
137
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
138
|
+
if (keepAlive) {
|
|
139
|
+
await box.setInitCommand(
|
|
140
|
+
`cd symphony/elixir && ${MISE} exec -- ./bin/symphony /workspace/home/${repoName}/WORKFLOW.md --i-understand-that-this-will-be-running-without-the-usual-guardrails`,
|
|
141
|
+
);
|
|
142
|
+
}
|
|
141
143
|
|
|
142
144
|
return { boxId: box.id, stream };
|
|
143
145
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "symphony-box",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "CLI to set up Symphony (OpenAI Codex orchestrator) on an Upstash Box for a GitHub repo",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@clack/prompts": "^0.11.0",
|
|
33
|
-
"@upstash/box": "^0.1.
|
|
33
|
+
"@upstash/box": "^0.1.36",
|
|
34
34
|
"chalk": "^5.4.1",
|
|
35
35
|
"commander": "^14.0.0"
|
|
36
36
|
}
|