@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.
@@ -8,4 +8,4 @@
8
8
  * 5. Open browser to room
9
9
  * 6. Done — user types a task in the browser
10
10
  */
11
- export declare function run(_args: string[]): Promise<void>;
11
+ export declare function run(args: string[]): Promise<void>;
@@ -129,9 +129,37 @@ async function openBrowser(url) {
129
129
  log(`Open in browser: ${url}`);
130
130
  }
131
131
  }
132
- export async function run(_args) {
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
- log("[1/5] Checking authentication...");
144
- const loggedIn = await ensureLoggedIn();
145
- if (!loggedIn) {
146
- log("✗ Login required. Run: co-od login");
147
- process.exit(1);
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
- log("[4/5] Starting local bridge...");
227
- startBridgeBackground();
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");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codegrammer/co-od",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "CLI for co-ode \u2014 run AI agents in shared rooms from the command line",
5
5
  "type": "module",
6
6
  "bin": {