claude-tempo 0.2.2 → 0.2.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.
@@ -26,6 +26,7 @@ interface UpOpts {
26
26
  ensemble: string;
27
27
  temporalAddress: string;
28
28
  name?: string;
29
+ agent: AgentType;
29
30
  }
30
31
  export declare function up(opts: UpOpts): Promise<void>;
31
32
  interface DownOpts {
@@ -422,17 +422,29 @@ async function up(opts) {
422
422
  }
423
423
  // Step 5: Launch conductor
424
424
  console.log();
425
- out.log(`Launching conductor in ensemble ${out.cyan(opts.ensemble)}...`);
426
- const claudeArgs = [
427
- '--dangerously-skip-permissions',
428
- '--dangerously-load-development-channels', 'server:claude-tempo',
429
- ];
430
- if (opts.name)
431
- claudeArgs.push('-n', opts.name);
432
- const { pid } = (0, spawn_1.spawnInTerminal)(claudeArgs, process.cwd(), {
433
- [config_1.ENV.ENSEMBLE]: opts.ensemble,
434
- [config_1.ENV.CONDUCTOR]: 'true',
435
- });
425
+ out.log(`Launching conductor in ensemble ${out.cyan(opts.ensemble)}${opts.agent === 'copilot' ? out.dim(' (copilot)') : ''}...`);
426
+ let pid;
427
+ if (opts.agent === 'copilot') {
428
+ ({ pid } = (0, spawn_1.spawnCopilotBridge)({
429
+ name: opts.name || `${opts.ensemble}-conductor`,
430
+ ensemble: opts.ensemble,
431
+ temporalAddress: opts.temporalAddress,
432
+ isConductor: true,
433
+ workDir: process.cwd(),
434
+ }));
435
+ }
436
+ else {
437
+ const claudeArgs = [
438
+ '--dangerously-skip-permissions',
439
+ '--dangerously-load-development-channels', 'server:claude-tempo',
440
+ ];
441
+ if (opts.name)
442
+ claudeArgs.push('-n', opts.name);
443
+ ({ pid } = (0, spawn_1.spawnInTerminal)(claudeArgs, process.cwd(), {
444
+ [config_1.ENV.ENSEMBLE]: opts.ensemble,
445
+ [config_1.ENV.CONDUCTOR]: 'true',
446
+ }));
447
+ }
436
448
  console.log();
437
449
  out.success('You\'re all set!');
438
450
  out.log(` Conductor launched (pid ${pid ?? 'unknown'})`);
package/dist/cli.js CHANGED
@@ -146,6 +146,7 @@ async function main() {
146
146
  ensemble,
147
147
  temporalAddress: args.temporalAddress,
148
148
  name: args.name,
149
+ agent: args.agent ?? 'claude',
149
150
  });
150
151
  break;
151
152
  case 'init':
@@ -167,15 +167,19 @@ async function main() {
167
167
  },
168
168
  systemMessage: {
169
169
  mode: 'append',
170
- content: `You are part of the "${config.ensemble}" ensemble of Claude Code sessions coordinated via Temporal. ` +
171
- `IMPORTANT: If you receive a message instructing you to call \`set_name\`, do so immediately before anything else. ` +
172
- `When you receive a message from another session, treat it like a coworker asking for help — respond promptly, then resume your work. ` +
173
- `Use \`set_name\` to give yourself a human-readable name. ` +
174
- `Use \`ensemble\` to see who else is active. ` +
175
- `Use \`cue\` to reply directly to the player who messaged you, or to ask others for help. ` +
176
- `Use \`recruit\` if you need a session in a directory where none exists. ` +
177
- `Use \`report\` to notify the conductor of task completion, blockers, or questions — always report when you finish a recruited task.`,
170
+ content: `You are part of the "${config.ensemble}" ensemble coordinated via Temporal. ` +
171
+ `You have MCP tools available ALWAYS use these tools directly, NEVER try to run them as shell commands:\n` +
172
+ `- set_name: Set your player name (call this FIRST if instructed)\n` +
173
+ `- ensemble: List active sessions\n` +
174
+ `- cue: Send a message to another player\n` +
175
+ `- set_part: Update your status/description\n` +
176
+ `- listen: Check for pending messages\n` +
177
+ `- recruit: Spawn a new player session\n` +
178
+ `- report: Report to the conductor\n` +
179
+ `- terminate: Terminate a session\n\n` +
180
+ `When you receive a message from another session, treat it like a coworker asking for help — respond promptly using your MCP tools.`,
178
181
  },
182
+ excludedTools: ['powershell', 'shell'],
179
183
  ...(model ? { model } : {}),
180
184
  };
181
185
  log('Creating Copilot session...');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-tempo",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "MCP server for multi-session Claude Code coordination via Temporal",
5
5
  "repository": {
6
6
  "type": "git",