@codegrammer/co-od 0.1.5 → 0.1.6
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/commands/start.d.ts +1 -1
- package/dist/commands/start.js +48 -12
- package/package.json +1 -1
package/dist/commands/start.d.ts
CHANGED
package/dist/commands/start.js
CHANGED
|
@@ -129,9 +129,37 @@ async function openBrowser(url) {
|
|
|
129
129
|
log(`Open in browser: ${url}`);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
|
|
132
|
+
async function isBridgeRunning() {
|
|
133
|
+
try {
|
|
134
|
+
const res = await fetch("http://127.0.0.1:4786/health", { signal: AbortSignal.timeout(1500) });
|
|
135
|
+
return res.ok;
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
export async function run(args) {
|
|
133
142
|
const dir = process.cwd();
|
|
134
143
|
const projectName = basename(dir);
|
|
144
|
+
const existing = findExistingConfig(dir);
|
|
145
|
+
const bridgeUp = await isBridgeRunning();
|
|
146
|
+
const hasToken = !!api.getSessionToken();
|
|
147
|
+
// ── FAST PATH: everything's already set up ──
|
|
148
|
+
// If config exists + bridge running + logged in → just show status, don't open browser
|
|
149
|
+
if (existing && bridgeUp && hasToken && !args.includes("--open")) {
|
|
150
|
+
const url = `${api.getBaseUrl()}/rooms/${existing.roomId}`;
|
|
151
|
+
console.error(` co-od · ${existing.roomName}\n`);
|
|
152
|
+
console.error(` room: ${url}`);
|
|
153
|
+
console.error(` bridge: running (port 4786)`);
|
|
154
|
+
console.error(` project: ${dir}\n`);
|
|
155
|
+
console.error(` Everything is running. Commands:\n`);
|
|
156
|
+
console.error(` co-od run ${existing.roomId.slice(0, 12)} "your task" # single task`);
|
|
157
|
+
console.error(` co-od daemon ${existing.roomId.slice(0, 12)} --auto-execute # autonomous`);
|
|
158
|
+
console.error(` co-od share # invite teammate`);
|
|
159
|
+
console.error(` co-od --open # open browser\n`);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
// ── SETUP PATH: first time or something needs fixing ──
|
|
135
163
|
console.error(`
|
|
136
164
|
┌─────────────────────────────┐
|
|
137
165
|
│ co-od │
|
|
@@ -140,13 +168,18 @@ export async function run(_args) {
|
|
|
140
168
|
└─────────────────────────────┘
|
|
141
169
|
`);
|
|
142
170
|
// Step 1: Login
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
171
|
+
if (!hasToken) {
|
|
172
|
+
log("[1/5] Checking authentication...");
|
|
173
|
+
const loggedIn = await ensureLoggedIn();
|
|
174
|
+
if (!loggedIn) {
|
|
175
|
+
log("✗ Login required. Run: co-od login");
|
|
176
|
+
process.exit(1);
|
|
177
|
+
}
|
|
178
|
+
log("✓ logged in\n");
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
log("[1/5] ✓ logged in");
|
|
148
182
|
}
|
|
149
|
-
log("✓ logged in\n");
|
|
150
183
|
// Step 2: Detect environment
|
|
151
184
|
log("[2/5] Detecting environment...");
|
|
152
185
|
const provider = detectProvider();
|
|
@@ -162,7 +195,6 @@ export async function run(_args) {
|
|
|
162
195
|
log(`✓ project: ${dir}\n`);
|
|
163
196
|
// Step 3: Find or create room
|
|
164
197
|
log("[3/5] Setting up room...");
|
|
165
|
-
const existing = findExistingConfig(dir);
|
|
166
198
|
let roomId;
|
|
167
199
|
let roomName;
|
|
168
200
|
if (existing) {
|
|
@@ -171,7 +203,6 @@ export async function run(_args) {
|
|
|
171
203
|
log(`✓ found existing room: ${roomName}`);
|
|
172
204
|
}
|
|
173
205
|
else {
|
|
174
|
-
// Create new room
|
|
175
206
|
roomName = projectName;
|
|
176
207
|
try {
|
|
177
208
|
const res = await api.post("/api/rooms", { name: roomName });
|
|
@@ -222,9 +253,14 @@ export async function run(_args) {
|
|
|
222
253
|
}
|
|
223
254
|
}
|
|
224
255
|
console.error("");
|
|
225
|
-
// Step 4: Start bridge
|
|
226
|
-
|
|
227
|
-
|
|
256
|
+
// Step 4: Start bridge (only if not already running)
|
|
257
|
+
if (bridgeUp) {
|
|
258
|
+
log("[4/5] ✓ local bridge already running");
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
log("[4/5] Starting local bridge...");
|
|
262
|
+
startBridgeBackground();
|
|
263
|
+
}
|
|
228
264
|
console.error("");
|
|
229
265
|
// Step 5: Open browser
|
|
230
266
|
log("[5/5] Opening workspace...\n");
|