conductor-bridge 1.0.0
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 +69 -0
- package/dist/bridge/index.d.ts +8 -0
- package/dist/bridge/index.d.ts.map +1 -0
- package/dist/bridge/index.js +8 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/json-interchange.d.ts +94 -0
- package/dist/bridge/json-interchange.d.ts.map +1 -0
- package/dist/bridge/json-interchange.js +301 -0
- package/dist/bridge/json-interchange.js.map +1 -0
- package/dist/cli/commands/amend.d.ts +12 -0
- package/dist/cli/commands/amend.d.ts.map +1 -0
- package/dist/cli/commands/amend.js +205 -0
- package/dist/cli/commands/amend.js.map +1 -0
- package/dist/cli/commands/daemon.d.ts +12 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -0
- package/dist/cli/commands/daemon.js +60 -0
- package/dist/cli/commands/daemon.js.map +1 -0
- package/dist/cli/commands/dispatch.d.ts +12 -0
- package/dist/cli/commands/dispatch.d.ts.map +1 -0
- package/dist/cli/commands/dispatch.js +207 -0
- package/dist/cli/commands/dispatch.js.map +1 -0
- package/dist/cli/commands/handoff.d.ts +31 -0
- package/dist/cli/commands/handoff.d.ts.map +1 -0
- package/dist/cli/commands/handoff.js +273 -0
- package/dist/cli/commands/handoff.js.map +1 -0
- package/dist/cli/commands/init.d.ts +12 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +301 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/status.d.ts +12 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +206 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +148 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/handoff/encryption.d.ts +85 -0
- package/dist/handoff/encryption.d.ts.map +1 -0
- package/dist/handoff/encryption.js +308 -0
- package/dist/handoff/encryption.js.map +1 -0
- package/dist/handoff/index.d.ts +8 -0
- package/dist/handoff/index.d.ts.map +1 -0
- package/dist/handoff/index.js +10 -0
- package/dist/handoff/index.js.map +1 -0
- package/dist/handoff/mycelium-arc.d.ts +116 -0
- package/dist/handoff/mycelium-arc.d.ts.map +1 -0
- package/dist/handoff/mycelium-arc.js +410 -0
- package/dist/handoff/mycelium-arc.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/index.d.ts +10 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +12 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/plan-parser.d.ts +29 -0
- package/dist/parsers/plan-parser.d.ts.map +1 -0
- package/dist/parsers/plan-parser.js +503 -0
- package/dist/parsers/plan-parser.js.map +1 -0
- package/dist/parsers/spec-parser.d.ts +10 -0
- package/dist/parsers/spec-parser.d.ts.map +1 -0
- package/dist/parsers/spec-parser.js +382 -0
- package/dist/parsers/spec-parser.js.map +1 -0
- package/dist/parsers/state-parser.d.ts +21 -0
- package/dist/parsers/state-parser.d.ts.map +1 -0
- package/dist/parsers/state-parser.js +378 -0
- package/dist/parsers/state-parser.js.map +1 -0
- package/dist/parsers/types.d.ts +190 -0
- package/dist/parsers/types.d.ts.map +1 -0
- package/dist/parsers/types.js +7 -0
- package/dist/parsers/types.js.map +1 -0
- package/dist/schemas/cognitive-state.d.ts +1523 -0
- package/dist/schemas/cognitive-state.d.ts.map +1 -0
- package/dist/schemas/cognitive-state.js +328 -0
- package/dist/schemas/cognitive-state.js.map +1 -0
- package/dist/schemas/enums.d.ts +124 -0
- package/dist/schemas/enums.d.ts.map +1 -0
- package/dist/schemas/enums.js +108 -0
- package/dist/schemas/enums.js.map +1 -0
- package/dist/schemas/index.d.ts +9 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +9 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/sync/adhd-continuity.d.ts +91 -0
- package/dist/sync/adhd-continuity.d.ts.map +1 -0
- package/dist/sync/adhd-continuity.js +302 -0
- package/dist/sync/adhd-continuity.js.map +1 -0
- package/dist/sync/convergence-tracker.d.ts +111 -0
- package/dist/sync/convergence-tracker.d.ts.map +1 -0
- package/dist/sync/convergence-tracker.js +299 -0
- package/dist/sync/convergence-tracker.js.map +1 -0
- package/dist/sync/index.d.ts +11 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +15 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/state-sync.d.ts +105 -0
- package/dist/sync/state-sync.d.ts.map +1 -0
- package/dist/sync/state-sync.js +403 -0
- package/dist/sync/state-sync.js.map +1 -0
- package/dist/sync/watcher.d.ts +90 -0
- package/dist/sync/watcher.d.ts.map +1 -0
- package/dist/sync/watcher.js +281 -0
- package/dist/sync/watcher.js.map +1 -0
- package/dist/utils/atomic-write.d.ts +31 -0
- package/dist/utils/atomic-write.d.ts.map +1 -0
- package/dist/utils/atomic-write.js +69 -0
- package/dist/utils/atomic-write.js.map +1 -0
- package/dist/utils/error-handling.d.ts +70 -0
- package/dist/utils/error-handling.d.ts.map +1 -0
- package/dist/utils/error-handling.js +109 -0
- package/dist/utils/error-handling.js.map +1 -0
- package/dist/utils/file-lock.d.ts +46 -0
- package/dist/utils/file-lock.d.ts.map +1 -0
- package/dist/utils/file-lock.js +117 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/rlm-navigator.d.ts +160 -0
- package/dist/utils/rlm-navigator.d.ts.map +1 -0
- package/dist/utils/rlm-navigator.js +368 -0
- package/dist/utils/rlm-navigator.js.map +1 -0
- package/dist/utils/safe-path.d.ts +44 -0
- package/dist/utils/safe-path.d.ts.map +1 -0
- package/dist/utils/safe-path.js +96 -0
- package/dist/utils/safe-path.js.map +1 -0
- package/dist/utils/timed-io.d.ts +51 -0
- package/dist/utils/timed-io.d.ts.map +1 -0
- package/dist/utils/timed-io.js +128 -0
- package/dist/utils/timed-io.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* conductor handoff command
|
|
3
|
+
*
|
|
4
|
+
* Create and receive cross-agent handoffs.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* conductor handoff create [options] # Package cognitive state for transfer
|
|
8
|
+
* conductor handoff receive <file> # Unpack and apply a handoff
|
|
9
|
+
* conductor handoff status <file> # Check handoff status without applying
|
|
10
|
+
*/
|
|
11
|
+
import { join } from 'path';
|
|
12
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
13
|
+
import chalk from 'chalk';
|
|
14
|
+
import { createHandoff, receiveHandoff, getHandoffStatus, createMinimalSnapshot, } from '../../handoff/mycelium-arc.js';
|
|
15
|
+
import { readFromFile, extractSessionState } from '../../bridge/json-interchange.js';
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Handoff Directory
|
|
18
|
+
// ============================================================================
|
|
19
|
+
function getHandoffDir() {
|
|
20
|
+
const homeDir = process.env.HOME || process.env.USERPROFILE || '.';
|
|
21
|
+
const handoffDir = join(homeDir, '.claude', 'handoffs');
|
|
22
|
+
if (!existsSync(handoffDir)) {
|
|
23
|
+
mkdirSync(handoffDir, { recursive: true });
|
|
24
|
+
}
|
|
25
|
+
return handoffDir;
|
|
26
|
+
}
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// Create Command
|
|
29
|
+
// ============================================================================
|
|
30
|
+
export async function createCommand(options) {
|
|
31
|
+
console.log(chalk.blue('\n=== Create Handoff ===\n'));
|
|
32
|
+
// Build cognitive snapshot
|
|
33
|
+
let cognitive;
|
|
34
|
+
if (options.state) {
|
|
35
|
+
// Load from cognitive_state.json
|
|
36
|
+
console.log(chalk.gray(`Loading state from: ${options.state}`));
|
|
37
|
+
try {
|
|
38
|
+
const doc = await readFromFile(options.state);
|
|
39
|
+
const sessionState = extractSessionState(doc);
|
|
40
|
+
if (!sessionState) {
|
|
41
|
+
console.error(chalk.red('No session state found in file'));
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
cognitive = {
|
|
45
|
+
sessionId: sessionState.session_id,
|
|
46
|
+
timestamp: sessionState.timestamp,
|
|
47
|
+
activeMode: sessionState.active_mode,
|
|
48
|
+
activeParadigm: sessionState.active_paradigm,
|
|
49
|
+
energyLevel: sessionState.energy_level,
|
|
50
|
+
burnoutLevel: sessionState.burnout_level,
|
|
51
|
+
momentumPhase: sessionState.momentum_phase,
|
|
52
|
+
currentGoal: options.goal,
|
|
53
|
+
activeTasks: [],
|
|
54
|
+
completedTasks: [],
|
|
55
|
+
convergenceAttractor: sessionState.convergence_attractor,
|
|
56
|
+
epistemicTension: sessionState.last_xi_value,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error(chalk.red(`Failed to load state: ${error instanceof Error ? error.message : String(error)}`));
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else if (options.goal) {
|
|
65
|
+
// Create minimal snapshot with goal
|
|
66
|
+
console.log(chalk.gray('Creating minimal snapshot from goal'));
|
|
67
|
+
cognitive = createMinimalSnapshot(options.goal);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
console.error(chalk.red('Either --goal or --state is required'));
|
|
71
|
+
console.log(chalk.gray('\nUsage:'));
|
|
72
|
+
console.log(chalk.gray(' conductor handoff create --goal "My current goal"'));
|
|
73
|
+
console.log(chalk.gray(' conductor handoff create --state ./cognitive_state.json'));
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
// Parse options
|
|
77
|
+
const handoffOptions = {
|
|
78
|
+
targetAgent: options.target,
|
|
79
|
+
encrypt: options.encrypt !== false,
|
|
80
|
+
machineBound: options.machineBound ?? false,
|
|
81
|
+
expiresInHours: options.expires ? parseFloat(options.expires) : 24,
|
|
82
|
+
customPassphrase: options.passphrase,
|
|
83
|
+
};
|
|
84
|
+
// Create handoff
|
|
85
|
+
const result = createHandoff(cognitive, 'claude-code', handoffOptions);
|
|
86
|
+
if (!result.success) {
|
|
87
|
+
console.error(chalk.red(`Failed to create handoff: ${result.error}`));
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
// Determine output path
|
|
91
|
+
const outputPath = options.output ||
|
|
92
|
+
join(getHandoffDir(), `${result.handoffId}.json`);
|
|
93
|
+
// Write to file
|
|
94
|
+
writeFileSync(outputPath, result.payload);
|
|
95
|
+
// Display result
|
|
96
|
+
console.log(chalk.green('Handoff created successfully'));
|
|
97
|
+
console.log('');
|
|
98
|
+
console.log(chalk.white('Details:'));
|
|
99
|
+
console.log(chalk.gray(` ID: ${result.handoffId}`));
|
|
100
|
+
console.log(chalk.gray(` Encrypted: ${result.encrypted ? 'Yes' : 'No'}`));
|
|
101
|
+
console.log(chalk.gray(` Expires: ${new Date(result.expiresAt).toLocaleString()}`));
|
|
102
|
+
console.log(chalk.gray(` File: ${outputPath}`));
|
|
103
|
+
console.log('');
|
|
104
|
+
if (handoffOptions.machineBound) {
|
|
105
|
+
console.log(chalk.yellow('Note: This handoff is machine-bound and can only be received on this machine.'));
|
|
106
|
+
}
|
|
107
|
+
if (options.passphrase) {
|
|
108
|
+
console.log(chalk.yellow('Note: Custom passphrase required to receive this handoff.'));
|
|
109
|
+
}
|
|
110
|
+
// Show resume summary preview
|
|
111
|
+
if (!handoffOptions.encrypt) {
|
|
112
|
+
try {
|
|
113
|
+
const arc = JSON.parse(result.payload);
|
|
114
|
+
console.log(chalk.blue('\n--- Resume Summary Preview ---'));
|
|
115
|
+
console.log(chalk.gray(arc.resumeSummary));
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// Ignore if can't parse
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// ============================================================================
|
|
123
|
+
// Receive Command
|
|
124
|
+
// ============================================================================
|
|
125
|
+
export async function receiveCommand(file, options) {
|
|
126
|
+
console.log(chalk.blue('\n=== Receive Handoff ===\n'));
|
|
127
|
+
// Check file exists
|
|
128
|
+
if (!existsSync(file)) {
|
|
129
|
+
// Try handoff directory
|
|
130
|
+
const altPath = join(getHandoffDir(), file);
|
|
131
|
+
if (existsSync(altPath)) {
|
|
132
|
+
file = altPath;
|
|
133
|
+
}
|
|
134
|
+
else if (existsSync(join(getHandoffDir(), `${file}.json`))) {
|
|
135
|
+
file = join(getHandoffDir(), `${file}.json`);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
console.error(chalk.red(`File not found: ${file}`));
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
console.log(chalk.gray(`Reading: ${file}`));
|
|
143
|
+
// Read payload
|
|
144
|
+
const payload = readFileSync(file, 'utf-8');
|
|
145
|
+
// Receive handoff
|
|
146
|
+
const result = receiveHandoff(payload, options.passphrase);
|
|
147
|
+
if (!result.success) {
|
|
148
|
+
if (result.expired) {
|
|
149
|
+
console.error(chalk.red('Handoff has expired'));
|
|
150
|
+
console.log(chalk.gray('Handoffs expire after 24 hours for safety.'));
|
|
151
|
+
}
|
|
152
|
+
else if (result.machineMismatch) {
|
|
153
|
+
console.error(chalk.red('Machine mismatch'));
|
|
154
|
+
console.log(chalk.gray('This handoff is bound to a different machine.'));
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
console.error(chalk.red(`Failed to receive: ${result.error}`));
|
|
158
|
+
}
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
const arc = result.arc;
|
|
162
|
+
// Display resume summary
|
|
163
|
+
console.log(chalk.green('Handoff received successfully'));
|
|
164
|
+
console.log('');
|
|
165
|
+
console.log(chalk.white('From:'));
|
|
166
|
+
console.log(chalk.gray(` Agent: ${arc.metadata.sourceAgent}`));
|
|
167
|
+
console.log(chalk.gray(` Created: ${new Date(arc.metadata.createdAt).toLocaleString()}`));
|
|
168
|
+
console.log('');
|
|
169
|
+
// Momentum status
|
|
170
|
+
if (arc.momentumPenalty > 0) {
|
|
171
|
+
const penaltyPercent = Math.round(arc.momentumPenalty * 100);
|
|
172
|
+
console.log(chalk.yellow(`Momentum penalty applied: ${penaltyPercent}%`));
|
|
173
|
+
console.log(chalk.gray(` Original: ${arc.cognitive.momentumPhase} → Adjusted: ${arc.adjustedMomentum}`));
|
|
174
|
+
console.log('');
|
|
175
|
+
}
|
|
176
|
+
// Show resume summary
|
|
177
|
+
console.log(chalk.blue('--- Resume Summary ---'));
|
|
178
|
+
console.log(arc.resumeSummary);
|
|
179
|
+
console.log(chalk.blue('--- End Summary ---'));
|
|
180
|
+
console.log('');
|
|
181
|
+
// Apply to local state if requested
|
|
182
|
+
if (options.apply) {
|
|
183
|
+
const outputPath = options.output ||
|
|
184
|
+
join(process.cwd(), '.conductor', 'cognitive_state.json');
|
|
185
|
+
console.log(chalk.gray(`Applying to: ${outputPath}`));
|
|
186
|
+
// This would integrate with the bridge writer
|
|
187
|
+
console.log(chalk.yellow('Note: State application not yet implemented.'));
|
|
188
|
+
console.log(chalk.gray('Use the cognitive state values above to resume manually.'));
|
|
189
|
+
}
|
|
190
|
+
// Show cognitive state summary
|
|
191
|
+
console.log(chalk.white('Cognitive State:'));
|
|
192
|
+
console.log(chalk.gray(` Goal: ${arc.cognitive.currentGoal || '(none)'}`));
|
|
193
|
+
console.log(chalk.gray(` Mode: ${arc.cognitive.activeMode}`));
|
|
194
|
+
console.log(chalk.gray(` Energy: ${arc.cognitive.energyLevel}`));
|
|
195
|
+
console.log(chalk.gray(` Burnout: ${arc.cognitive.burnoutLevel}`));
|
|
196
|
+
console.log(chalk.gray(` Momentum: ${arc.adjustedMomentum}`));
|
|
197
|
+
}
|
|
198
|
+
// ============================================================================
|
|
199
|
+
// Status Command
|
|
200
|
+
// ============================================================================
|
|
201
|
+
export async function statusCommand(file) {
|
|
202
|
+
console.log(chalk.blue('\n=== Handoff Status ===\n'));
|
|
203
|
+
// Check file exists
|
|
204
|
+
if (!existsSync(file)) {
|
|
205
|
+
const altPath = join(getHandoffDir(), file);
|
|
206
|
+
if (existsSync(altPath)) {
|
|
207
|
+
file = altPath;
|
|
208
|
+
}
|
|
209
|
+
else if (existsSync(join(getHandoffDir(), `${file}.json`))) {
|
|
210
|
+
file = join(getHandoffDir(), `${file}.json`);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
console.error(chalk.red(`File not found: ${file}`));
|
|
214
|
+
process.exit(1);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Read and check status
|
|
218
|
+
const payload = readFileSync(file, 'utf-8');
|
|
219
|
+
const status = getHandoffStatus(payload);
|
|
220
|
+
if (!status.valid) {
|
|
221
|
+
console.error(chalk.red(`Invalid handoff: ${status.error}`));
|
|
222
|
+
process.exit(1);
|
|
223
|
+
}
|
|
224
|
+
console.log(chalk.gray(`File: ${file}`));
|
|
225
|
+
console.log('');
|
|
226
|
+
console.log(chalk.white('Status:'));
|
|
227
|
+
console.log(chalk.gray(` Valid: Yes`));
|
|
228
|
+
console.log(chalk.gray(` Encrypted: ${status.encrypted ? 'Yes' : 'No'}`));
|
|
229
|
+
if (status.expired) {
|
|
230
|
+
console.log(chalk.red(` Expired: Yes`));
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
console.log(chalk.green(` Expires in: ${status.timeRemaining}`));
|
|
234
|
+
}
|
|
235
|
+
if (status.handoffId) {
|
|
236
|
+
console.log(chalk.gray(` Handoff ID: ${status.handoffId}`));
|
|
237
|
+
}
|
|
238
|
+
if (status.sourceAgent) {
|
|
239
|
+
console.log(chalk.gray(` Source: ${status.sourceAgent}`));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
// ============================================================================
|
|
243
|
+
// List Command
|
|
244
|
+
// ============================================================================
|
|
245
|
+
export async function listCommand() {
|
|
246
|
+
console.log(chalk.blue('\n=== Handoff Directory ===\n'));
|
|
247
|
+
const handoffDir = getHandoffDir();
|
|
248
|
+
console.log(chalk.gray(`Directory: ${handoffDir}`));
|
|
249
|
+
console.log('');
|
|
250
|
+
// List files
|
|
251
|
+
const { readdirSync } = await import('fs');
|
|
252
|
+
const files = readdirSync(handoffDir).filter((f) => f.endsWith('.json'));
|
|
253
|
+
if (files.length === 0) {
|
|
254
|
+
console.log(chalk.gray('No handoffs found.'));
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
console.log(chalk.white('Handoffs:'));
|
|
258
|
+
for (const file of files) {
|
|
259
|
+
const filePath = join(handoffDir, file);
|
|
260
|
+
try {
|
|
261
|
+
const payload = readFileSync(filePath, 'utf-8');
|
|
262
|
+
const status = getHandoffStatus(payload);
|
|
263
|
+
const icon = status.expired ? chalk.red('✗') : chalk.green('✓');
|
|
264
|
+
const expiry = status.expired ? chalk.red('Expired') : chalk.gray(status.timeRemaining);
|
|
265
|
+
const encrypted = status.encrypted ? chalk.yellow('[E]') : '';
|
|
266
|
+
console.log(` ${icon} ${file} ${encrypted} - ${expiry}`);
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
console.log(` ${chalk.gray('?')} ${file} - ${chalk.red('Invalid')}`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=handoff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../../src/cli/commands/handoff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* conductor init command
|
|
3
|
+
*
|
|
4
|
+
* Initializes .conductor/ directory with template files.
|
|
5
|
+
*/
|
|
6
|
+
interface InitOptions {
|
|
7
|
+
pattern: 'single-track' | 'multi-track';
|
|
8
|
+
force: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function initCommand(options: InitOptions): Promise<void>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,UAAU,WAAW;IACnB,OAAO,EAAE,cAAc,GAAG,aAAa,CAAC;IACxC,KAAK,EAAE,OAAO,CAAC;CAChB;AAmPD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwErE"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* conductor init command
|
|
3
|
+
*
|
|
4
|
+
* Initializes .conductor/ directory with template files.
|
|
5
|
+
*/
|
|
6
|
+
import { mkdir, writeFile, access } from 'fs/promises';
|
|
7
|
+
import { join } from 'path';
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
const SPEC_TEMPLATE = `---
|
|
10
|
+
conductor: "1.0"
|
|
11
|
+
id: project-spec
|
|
12
|
+
version: 1.0.0
|
|
13
|
+
status: draft
|
|
14
|
+
author: your-name
|
|
15
|
+
created: ${new Date().toISOString()}
|
|
16
|
+
updated: ${new Date().toISOString()}
|
|
17
|
+
tags: []
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# [Project Name]
|
|
21
|
+
|
|
22
|
+
## Problem Statement
|
|
23
|
+
|
|
24
|
+
[1-3 paragraphs: What problem are we solving? Why does it matter?]
|
|
25
|
+
|
|
26
|
+
## Success Criteria
|
|
27
|
+
|
|
28
|
+
Ordered by priority. Each must be verifiable.
|
|
29
|
+
|
|
30
|
+
- [ ] Criterion 1: Specific, measurable outcome
|
|
31
|
+
- [ ] Criterion 2: Another verifiable outcome
|
|
32
|
+
- [ ] Criterion 3: Third outcome
|
|
33
|
+
|
|
34
|
+
## Constraints
|
|
35
|
+
|
|
36
|
+
Non-negotiable boundaries. Violations require an amendment proposal.
|
|
37
|
+
|
|
38
|
+
- Must use [language/framework]
|
|
39
|
+
- Must not break existing API contracts
|
|
40
|
+
- Must maintain test coverage
|
|
41
|
+
|
|
42
|
+
## Non-Goals
|
|
43
|
+
|
|
44
|
+
Explicit scope boundaries. Prevents scope creep.
|
|
45
|
+
|
|
46
|
+
- NOT implementing feature X (out of scope)
|
|
47
|
+
- NOT optimizing for Y (premature)
|
|
48
|
+
|
|
49
|
+
## Architecture Decisions
|
|
50
|
+
|
|
51
|
+
### ADR-001: [Decision Title]
|
|
52
|
+
|
|
53
|
+
- **Status**: proposed
|
|
54
|
+
- **Context**: [Why this decision point arose]
|
|
55
|
+
- **Decision**: [What was decided]
|
|
56
|
+
- **Consequences**:
|
|
57
|
+
- Consequence 1
|
|
58
|
+
- Consequence 2
|
|
59
|
+
|
|
60
|
+
## Interfaces
|
|
61
|
+
|
|
62
|
+
### Primary Interface
|
|
63
|
+
|
|
64
|
+
\`\`\`typescript
|
|
65
|
+
// Define the shape implementers must honor
|
|
66
|
+
interface Example {
|
|
67
|
+
id: string;
|
|
68
|
+
// ...
|
|
69
|
+
}
|
|
70
|
+
\`\`\`
|
|
71
|
+
|
|
72
|
+
## Dependencies
|
|
73
|
+
|
|
74
|
+
- Depends on: [external dependency]
|
|
75
|
+
|
|
76
|
+
## References
|
|
77
|
+
|
|
78
|
+
- [Link to relevant documentation]
|
|
79
|
+
`;
|
|
80
|
+
const PLAN_TEMPLATE = `---
|
|
81
|
+
conductor: "1.0"
|
|
82
|
+
spec: ./spec.md
|
|
83
|
+
spec_version: 1.0.0
|
|
84
|
+
plan_version: 1
|
|
85
|
+
status: pending
|
|
86
|
+
created: ${new Date().toISOString()}
|
|
87
|
+
updated: ${new Date().toISOString()}
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
# Execution Plan: [Project Name]
|
|
91
|
+
|
|
92
|
+
## Summary
|
|
93
|
+
|
|
94
|
+
[2-3 sentences: Implementation approach, key technical choices]
|
|
95
|
+
|
|
96
|
+
| Metric | Value |
|
|
97
|
+
|--------|-------|
|
|
98
|
+
| Total Tracks | 1 |
|
|
99
|
+
| Completed | 0 |
|
|
100
|
+
| Progress | 0% |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Track: setup
|
|
105
|
+
|
|
106
|
+
> Initial setup and configuration
|
|
107
|
+
|
|
108
|
+
- **Agent**: claude-code
|
|
109
|
+
- **Status**: pending
|
|
110
|
+
- **Dependencies**: none
|
|
111
|
+
|
|
112
|
+
### Tasks
|
|
113
|
+
|
|
114
|
+
- [ ] Initialize project structure
|
|
115
|
+
- [ ] Configure development environment
|
|
116
|
+
- [ ] Set up testing framework
|
|
117
|
+
|
|
118
|
+
### Artifacts
|
|
119
|
+
|
|
120
|
+
(none yet)
|
|
121
|
+
|
|
122
|
+
### Notes
|
|
123
|
+
|
|
124
|
+
\`\`\`
|
|
125
|
+
Working notes will go here as the track progresses.
|
|
126
|
+
\`\`\`
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Pending Amendments
|
|
131
|
+
|
|
132
|
+
(none)
|
|
133
|
+
|
|
134
|
+
## Change Log
|
|
135
|
+
|
|
136
|
+
| Version | Date | Agent | Summary |
|
|
137
|
+
|---------|------|-------|---------|
|
|
138
|
+
| 1 | ${new Date().toISOString().split('T')[0]} | human | Initial plan |
|
|
139
|
+
`;
|
|
140
|
+
const STATE_TEMPLATE = `---
|
|
141
|
+
conductor: "1.0"
|
|
142
|
+
spec: ./spec.md
|
|
143
|
+
plan: ./plan.md
|
|
144
|
+
session_id: session-${Date.now().toString(36)}
|
|
145
|
+
agent: claude-code
|
|
146
|
+
created: ${new Date().toISOString()}
|
|
147
|
+
updated: ${new Date().toISOString()}
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
# Conductor Session State
|
|
151
|
+
|
|
152
|
+
## Current Assignment
|
|
153
|
+
|
|
154
|
+
| Field | Value |
|
|
155
|
+
|-------|-------|
|
|
156
|
+
| Track | setup |
|
|
157
|
+
| Task | (not started) |
|
|
158
|
+
| Iteration | 0 |
|
|
159
|
+
| Started | - |
|
|
160
|
+
|
|
161
|
+
## Context Files
|
|
162
|
+
|
|
163
|
+
Files the agent should load for context:
|
|
164
|
+
|
|
165
|
+
- \`.conductor/spec.md\` (requirements)
|
|
166
|
+
- \`.conductor/plan.md\` (current progress)
|
|
167
|
+
|
|
168
|
+
## Recent Activity
|
|
169
|
+
|
|
170
|
+
| Time | Agent | Action |
|
|
171
|
+
|------|-------|--------|
|
|
172
|
+
| ${new Date().toISOString()} | bridge | Session initialized |
|
|
173
|
+
|
|
174
|
+
## Agent Scratchpad
|
|
175
|
+
|
|
176
|
+
\`\`\`
|
|
177
|
+
(Agent working notes will appear here)
|
|
178
|
+
\`\`\`
|
|
179
|
+
|
|
180
|
+
## Pending Amendments
|
|
181
|
+
|
|
182
|
+
(none)
|
|
183
|
+
|
|
184
|
+
## Warnings
|
|
185
|
+
|
|
186
|
+
- (none currently)
|
|
187
|
+
`;
|
|
188
|
+
const MULTI_TRACK_STATE_TEMPLATE = `---
|
|
189
|
+
conductor: "1.0"
|
|
190
|
+
spec: ./tracks/initial/spec.md
|
|
191
|
+
plan: ./tracks/initial/plan.md
|
|
192
|
+
track_id: initial
|
|
193
|
+
session_id: session-${Date.now().toString(36)}
|
|
194
|
+
agent: claude-code
|
|
195
|
+
created: ${new Date().toISOString()}
|
|
196
|
+
updated: ${new Date().toISOString()}
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
# Conductor Session State
|
|
200
|
+
|
|
201
|
+
## Current Assignment
|
|
202
|
+
|
|
203
|
+
| Field | Value |
|
|
204
|
+
|-------|-------|
|
|
205
|
+
| Track | setup |
|
|
206
|
+
| Task | (not started) |
|
|
207
|
+
| Iteration | 0 |
|
|
208
|
+
| Started | - |
|
|
209
|
+
|
|
210
|
+
## Context Files
|
|
211
|
+
|
|
212
|
+
Files the agent should load for context:
|
|
213
|
+
|
|
214
|
+
- \`.conductor/tracks/initial/spec.md\` (requirements)
|
|
215
|
+
- \`.conductor/tracks/initial/plan.md\` (current progress)
|
|
216
|
+
|
|
217
|
+
## Recent Activity
|
|
218
|
+
|
|
219
|
+
| Time | Agent | Action |
|
|
220
|
+
|------|-------|--------|
|
|
221
|
+
| ${new Date().toISOString()} | bridge | Session initialized |
|
|
222
|
+
|
|
223
|
+
## Agent Scratchpad
|
|
224
|
+
|
|
225
|
+
\`\`\`
|
|
226
|
+
(Agent working notes will appear here)
|
|
227
|
+
\`\`\`
|
|
228
|
+
|
|
229
|
+
## Pending Amendments
|
|
230
|
+
|
|
231
|
+
(none)
|
|
232
|
+
|
|
233
|
+
## Warnings
|
|
234
|
+
|
|
235
|
+
- (none currently)
|
|
236
|
+
`;
|
|
237
|
+
async function fileExists(path) {
|
|
238
|
+
try {
|
|
239
|
+
await access(path);
|
|
240
|
+
return true;
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
export async function initCommand(options) {
|
|
247
|
+
const cwd = process.cwd();
|
|
248
|
+
const conductorDir = join(cwd, '.conductor');
|
|
249
|
+
console.log(chalk.blue('Initializing Conductor...'));
|
|
250
|
+
console.log(chalk.gray(`Pattern: ${options.pattern}`));
|
|
251
|
+
// Check if .conductor already exists
|
|
252
|
+
if (await fileExists(conductorDir)) {
|
|
253
|
+
if (!options.force) {
|
|
254
|
+
console.log(chalk.yellow('Warning: .conductor/ already exists. Use --force to overwrite.'));
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
console.log(chalk.yellow('Overwriting existing .conductor/ directory...'));
|
|
258
|
+
}
|
|
259
|
+
try {
|
|
260
|
+
if (options.pattern === 'single-track') {
|
|
261
|
+
// Single-track pattern
|
|
262
|
+
await mkdir(conductorDir, { recursive: true });
|
|
263
|
+
await mkdir(join(conductorDir, 'amendments'), { recursive: true });
|
|
264
|
+
await writeFile(join(conductorDir, 'spec.md'), SPEC_TEMPLATE);
|
|
265
|
+
await writeFile(join(conductorDir, 'plan.md'), PLAN_TEMPLATE);
|
|
266
|
+
await writeFile(join(conductorDir, 'state.md'), STATE_TEMPLATE);
|
|
267
|
+
console.log(chalk.green('Created .conductor/'));
|
|
268
|
+
console.log(chalk.gray(' - spec.md'));
|
|
269
|
+
console.log(chalk.gray(' - plan.md'));
|
|
270
|
+
console.log(chalk.gray(' - state.md'));
|
|
271
|
+
console.log(chalk.gray(' - amendments/'));
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
// Multi-track pattern (default)
|
|
275
|
+
await mkdir(conductorDir, { recursive: true });
|
|
276
|
+
await mkdir(join(conductorDir, 'tracks', 'initial'), { recursive: true });
|
|
277
|
+
await mkdir(join(conductorDir, 'amendments'), { recursive: true });
|
|
278
|
+
await writeFile(join(conductorDir, 'tracks', 'initial', 'spec.md'), SPEC_TEMPLATE);
|
|
279
|
+
await writeFile(join(conductorDir, 'tracks', 'initial', 'plan.md'), PLAN_TEMPLATE);
|
|
280
|
+
await writeFile(join(conductorDir, 'state.md'), MULTI_TRACK_STATE_TEMPLATE);
|
|
281
|
+
console.log(chalk.green('Created .conductor/'));
|
|
282
|
+
console.log(chalk.gray(' - state.md'));
|
|
283
|
+
console.log(chalk.gray(' - tracks/'));
|
|
284
|
+
console.log(chalk.gray(' - initial/'));
|
|
285
|
+
console.log(chalk.gray(' - spec.md'));
|
|
286
|
+
console.log(chalk.gray(' - plan.md'));
|
|
287
|
+
console.log(chalk.gray(' - amendments/'));
|
|
288
|
+
}
|
|
289
|
+
console.log('');
|
|
290
|
+
console.log(chalk.blue('Next steps:'));
|
|
291
|
+
console.log(' 1. Edit spec.md to define your requirements');
|
|
292
|
+
console.log(' 2. Edit plan.md to define your execution tracks');
|
|
293
|
+
console.log(' 3. Run `conductor status` to see current state');
|
|
294
|
+
console.log(' 4. Run `conductor dispatch` to start execution');
|
|
295
|
+
}
|
|
296
|
+
catch (error) {
|
|
297
|
+
console.error(chalk.red(`Failed to initialize: ${error instanceof Error ? error.message : String(error)}`));
|
|
298
|
+
process.exit(1);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* conductor status command
|
|
3
|
+
*
|
|
4
|
+
* Shows current orchestration status.
|
|
5
|
+
*/
|
|
6
|
+
interface StatusOptions {
|
|
7
|
+
verbose: boolean;
|
|
8
|
+
json: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function statusCommand(options: StatusOptions): Promise<void>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAwED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAsMzE"}
|