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.
- package/README.md +35 -26
- 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.
|
|
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
|
-
#
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
393
|
+
Or recruit from within any active session:
|
|
382
394
|
|
|
383
|
-
|
|
395
|
+
> "Recruit a copilot session named 'copilot-dev' in /repos/my-project with agent copilot"
|
|
384
396
|
|
|
385
|
-
|
|
397
|
+
### Setting a default agent
|
|
386
398
|
|
|
387
|
-
|
|
399
|
+
To avoid passing `--agent copilot` every time:
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
claude-tempo config set default-agent copilot
|
|
403
|
+
```
|
|
388
404
|
|
|
389
|
-
Or
|
|
405
|
+
Or via environment variable:
|
|
390
406
|
|
|
391
407
|
```bash
|
|
392
|
-
|
|
408
|
+
export CLAUDE_TEMPO_DEFAULT_AGENT=copilot
|
|
393
409
|
```
|
|
394
410
|
|
|
395
|
-
|
|
411
|
+
Resolution order: `--agent` flag → `CLAUDE_TEMPO_DEFAULT_AGENT` env → config file → `claude`.
|
|
396
412
|
|
|
397
|
-
|
|
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
|
-
|
|
415
|
+
Set `COPILOT_BRIDGE_MODEL` to use a specific model for Copilot sessions:
|
|
404
416
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
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
|
-
-
|
|
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
|
|