claude-tempo 0.4.0 → 0.4.1

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.
Files changed (2) hide show
  1. package/README.md +35 -26
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -32,7 +32,7 @@ This will:
32
32
  1. Check that Temporal CLI is installed
33
33
  2. Start the Temporal dev server (data persists in `~/.claude-tempo/`)
34
34
  3. Register required search attributes
35
- 4. Create `.mcp.json` in your project
35
+ 4. Register the claude-tempo MCP server (globally by default)
36
36
  5. Launch a conductor session in a new terminal window
37
37
 
38
38
  Then add players:
@@ -52,7 +52,7 @@ For more control, run each step individually:
52
52
  # Start Temporal dev server (keep running)
53
53
  claude-tempo server
54
54
 
55
- # In your project directory, create .mcp.json
55
+ # Register claude-tempo MCP server (globally by default)
56
56
  cd your-project
57
57
  claude-tempo init
58
58
 
@@ -352,6 +352,7 @@ export TEMPORAL_API_KEY=tcl_...
352
352
  | `CLAUDE_TEMPO_ENSEMBLE` | `default` | Ensemble name |
353
353
  | `CLAUDE_TEMPO_CONDUCTOR` | `false` | Enable conductor mode |
354
354
  | `CLAUDE_TEMPO_PLAYER_NAME` | *(random hex)* | Player name on startup |
355
+ | `CLAUDE_TEMPO_DEFAULT_AGENT` | `claude` | Default agent type (`claude` or `copilot`) |
355
356
 
356
357
  ## Stale session cleanup
357
358
 
@@ -359,7 +360,7 @@ When a session crashes or closes without graceful shutdown, Temporal detects it
359
360
 
360
361
  - If a message to a dead session remains undelivered for **3 minutes**, the workflow self-completes
361
362
  - Before exiting, it notifies the conductor with the undelivered message so work can be reassigned
362
- - Idle sessions with no pending messages remain running until the 24-hour timeout
363
+ - Idle sessions with no pending messages are probed after 1 hour of inactivity via a heartbeat ping; if the ping goes undelivered, the session self-completes
363
364
 
364
365
  No manual cleanup needed — `cue` a dead player and the system handles the rest.
365
366
 
@@ -367,52 +368,60 @@ No manual cleanup needed — `cue` a dead player and the system handles the rest
367
368
 
368
369
  > **Warning:** Copilot bridge support is experimental and subject to breaking changes.
369
370
 
370
- GitHub Copilot CLI sessions can join an ensemble via the Copilot bridge. Bridge sessions are headless — they require a Claude conductor or custom Temporal client to receive work via `cue`.
371
+ GitHub Copilot CLI sessions can join an ensemble via the Copilot bridge. Bridge sessions are headless — they require a conductor or another player to receive work via `cue`.
371
372
 
372
373
  <details>
373
374
  <summary>Setup and usage</summary>
374
375
 
375
376
  ### Prerequisites
376
377
 
378
+ - [GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli) installed and authenticated
379
+ - An active GitHub Copilot subscription
380
+ - Node.js 20+
381
+ - Install the Copilot SDK: `npm install @github/copilot-sdk`
382
+
383
+ ### Starting Copilot sessions
384
+
385
+ Use `--agent copilot` with any session-launching command:
386
+
377
387
  ```bash
378
- npm install @github/copilot-sdk # optional dependency (~243MB)
388
+ claude-tempo start myband --agent copilot -n copilot-1 # start a player
389
+ claude-tempo conduct myband --agent copilot # start a conductor
390
+ claude-tempo up myband --agent copilot # full setup
379
391
  ```
380
392
 
381
- Also requires [GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli) installed, authenticated, with an active subscription. Node 20+ required for Copilot features.
393
+ Or recruit from within any active session:
382
394
 
383
- ### Starting a Copilot player
395
+ > "Recruit a copilot session named 'copilot-dev' in /repos/my-project with agent copilot"
384
396
 
385
- The easiest way is via `recruit` from any active session:
397
+ ### Setting a default agent
386
398
 
387
- > "Recruit a copilot session named 'copilot-dev' in /repos/my-project with agent copilot"
399
+ To avoid passing `--agent copilot` every time:
400
+
401
+ ```bash
402
+ claude-tempo config set default-agent copilot
403
+ ```
388
404
 
389
- Or start the bridge directly:
405
+ Or via environment variable:
390
406
 
391
407
  ```bash
392
- CLAUDE_TEMPO_ENSEMBLE=default COPILOT_BRIDGE_NAME=copilot-dev npx ts-node src/copilot-bridge.ts
408
+ export CLAUDE_TEMPO_DEFAULT_AGENT=copilot
393
409
  ```
394
410
 
395
- ### How it works
411
+ Resolution order: `--agent` flag → `CLAUDE_TEMPO_DEFAULT_AGENT` env → config file → `claude`.
396
412
 
397
- 1. Bridge spawns a Copilot CLI session via the SDK with claude-tempo as MCP server
398
- 2. MCP server registers the session as a Temporal workflow
399
- 3. Bridge polls for pending messages every 2 seconds
400
- 4. Messages are injected as prompts via `session.sendAndWait()`
401
- 5. The Copilot session can use all claude-tempo tools
413
+ ### Model override
402
414
 
403
- ### Copilot environment variables
415
+ Set `COPILOT_BRIDGE_MODEL` to use a specific model for Copilot sessions:
404
416
 
405
- | Variable | Default | Description |
406
- |----------|---------|-------------|
407
- | `COPILOT_BRIDGE_NAME` | *(none)* | Player name |
408
- | `COPILOT_BRIDGE_MODEL` | *(Copilot default)* | Model override |
409
- | `GITHUB_TOKEN` | *(logged-in user)* | GitHub auth token |
417
+ ```bash
418
+ COPILOT_BRIDGE_MODEL=gpt-4o claude-tempo start myband --agent copilot
419
+ ```
410
420
 
411
421
  ### Limitations
412
422
 
413
- - No interactive access — bridge sessions only respond to cues
414
- - 2-second polling latency (vs instant for Claude Code sessions)
415
- - Must be spawned via the bridge to participate
423
+ - Headless only — bridge sessions respond to cues, no interactive terminal
424
+ - ~2-second polling latency (vs instant for Claude Code sessions)
416
425
  - `@github/copilot-sdk` adds ~243MB to node_modules
417
426
  - Node 20+ required (rest of claude-tempo works on Node 18+)
418
427
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-tempo",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "MCP server for multi-session Claude Code coordination via Temporal",
5
5
  "repository": {
6
6
  "type": "git",