@proletariat/cli 0.3.55 → 0.3.56
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 +5 -4
- package/dist/commands/agent/cleanup.d.ts +1 -0
- package/dist/commands/agent/cleanup.js +11 -1
- package/dist/commands/agent/cleanup.js.map +1 -1
- package/dist/commands/agent/rebuild.js +1 -1
- package/dist/commands/agent/rebuild.js.map +1 -1
- package/dist/commands/asana/import.d.ts +14 -0
- package/dist/commands/asana/import.js +240 -0
- package/dist/commands/asana/import.js.map +1 -0
- package/dist/commands/claude-yolo.d.ts +20 -0
- package/dist/commands/claude-yolo.js +86 -0
- package/dist/commands/claude-yolo.js.map +1 -0
- package/dist/commands/codex/index.d.ts +23 -0
- package/dist/commands/codex/index.js +168 -0
- package/dist/commands/codex/index.js.map +1 -0
- package/dist/commands/codex-yolo.d.ts +20 -0
- package/dist/commands/codex-yolo.js +86 -0
- package/dist/commands/codex-yolo.js.map +1 -0
- package/dist/commands/config/index.js +2 -2
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/docker/clean.js +1 -1
- package/dist/commands/docker/clean.js.map +1 -1
- package/dist/commands/docker/list.js +1 -1
- package/dist/commands/docker/list.js.map +1 -1
- package/dist/commands/docker/logs.js +1 -1
- package/dist/commands/docker/logs.js.map +1 -1
- package/dist/commands/docker/restart.js +1 -1
- package/dist/commands/docker/restart.js.map +1 -1
- package/dist/commands/docker/shell.js +1 -1
- package/dist/commands/docker/shell.js.map +1 -1
- package/dist/commands/docker/start.js +1 -1
- package/dist/commands/docker/start.js.map +1 -1
- package/dist/commands/docker/stop.js +1 -1
- package/dist/commands/docker/stop.js.map +1 -1
- package/dist/commands/docker/sync.js +1 -1
- package/dist/commands/docker/sync.js.map +1 -1
- package/dist/commands/execution/config.js +2 -2
- package/dist/commands/execution/config.js.map +1 -1
- package/dist/commands/execution/list.js +1 -1
- package/dist/commands/execution/list.js.map +1 -1
- package/dist/commands/execution/logs.js +10 -8
- package/dist/commands/execution/logs.js.map +1 -1
- package/dist/commands/execution/stop.js +1 -1
- package/dist/commands/execution/stop.js.map +1 -1
- package/dist/commands/execution/view.js +1 -1
- package/dist/commands/execution/view.js.map +1 -1
- package/dist/commands/init.d.ts +0 -16
- package/dist/commands/init.js +50 -160
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/logs.d.ts +20 -0
- package/dist/commands/logs.js +84 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/mcp-server.js +1 -1
- package/dist/commands/mcp-server.js.map +1 -1
- package/dist/commands/new.d.ts +27 -0
- package/dist/commands/new.js +184 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/orchestrator/attach.d.ts +1 -0
- package/dist/commands/orchestrator/attach.js +159 -26
- package/dist/commands/orchestrator/attach.js.map +1 -1
- package/dist/commands/orchestrator/start.d.ts +20 -0
- package/dist/commands/orchestrator/start.js +122 -14
- package/dist/commands/orchestrator/start.js.map +1 -1
- package/dist/commands/orchestrator/status.d.ts +4 -0
- package/dist/commands/orchestrator/status.js +70 -29
- package/dist/commands/orchestrator/status.js.map +1 -1
- package/dist/commands/orchestrator/stop.js +57 -23
- package/dist/commands/orchestrator/stop.js.map +1 -1
- package/dist/commands/peek.d.ts +20 -0
- package/dist/commands/peek.js +84 -0
- package/dist/commands/peek.js.map +1 -0
- package/dist/commands/poke.d.ts +20 -0
- package/dist/commands/poke.js +89 -0
- package/dist/commands/poke.js.map +1 -0
- package/dist/commands/pr/link.js +1 -1
- package/dist/commands/pr/link.js.map +1 -1
- package/dist/commands/pr/status.js +1 -1
- package/dist/commands/pr/status.js.map +1 -1
- package/dist/commands/ps.d.ts +18 -0
- package/dist/commands/ps.js +123 -0
- package/dist/commands/ps.js.map +1 -0
- package/dist/commands/qa/index.js +1 -1
- package/dist/commands/qa/index.js.map +1 -1
- package/dist/commands/repo/add.js +1 -1
- package/dist/commands/repo/add.js.map +1 -1
- package/dist/commands/repo/list.js +1 -1
- package/dist/commands/repo/list.js.map +1 -1
- package/dist/commands/repo/remove.js +1 -1
- package/dist/commands/repo/remove.js.map +1 -1
- package/dist/commands/repo/view.js +1 -1
- package/dist/commands/repo/view.js.map +1 -1
- package/dist/commands/run/index.d.ts +25 -0
- package/dist/commands/run/index.js +212 -0
- package/dist/commands/run/index.js.map +1 -0
- package/dist/commands/session/index.js +4 -0
- package/dist/commands/session/index.js.map +1 -1
- package/dist/commands/session/prune.d.ts +18 -0
- package/dist/commands/session/prune.js +327 -0
- package/dist/commands/session/prune.js.map +1 -0
- package/dist/commands/shortcut/connect.d.ts +15 -0
- package/dist/commands/shortcut/connect.js +210 -0
- package/dist/commands/shortcut/connect.js.map +1 -0
- package/dist/commands/stop.d.ts +19 -0
- package/dist/commands/stop.js +83 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands/work/asana.d.ts +23 -0
- package/dist/commands/work/asana.js +213 -0
- package/dist/commands/work/asana.js.map +1 -0
- package/dist/commands/work/complete.js +1 -1
- package/dist/commands/work/complete.js.map +1 -1
- package/dist/commands/work/ready.js +1 -1
- package/dist/commands/work/ready.js.map +1 -1
- package/dist/commands/work/review.js +1 -1
- package/dist/commands/work/review.js.map +1 -1
- package/dist/commands/work/revise.js +1 -1
- package/dist/commands/work/revise.js.map +1 -1
- package/dist/commands/work/shortcut.d.ts +23 -0
- package/dist/commands/work/shortcut.js +212 -0
- package/dist/commands/work/shortcut.js.map +1 -0
- package/dist/commands/work/spawn.d.ts +3 -0
- package/dist/commands/work/spawn.js +175 -2
- package/dist/commands/work/spawn.js.map +1 -1
- package/dist/commands/work/start.js +22 -30
- package/dist/commands/work/start.js.map +1 -1
- package/dist/commands/work/watch.js +1 -1
- package/dist/commands/work/watch.js.map +1 -1
- package/dist/commands/workspace/add.js +1 -1
- package/dist/commands/workspace/add.js.map +1 -1
- package/dist/commands/workspace/list.js +1 -1
- package/dist/commands/workspace/list.js.map +1 -1
- package/dist/hooks/init.d.ts +1 -1
- package/dist/hooks/init.js +6 -6
- package/dist/hooks/init.js.map +1 -1
- package/dist/lib/agent-naming.d.ts +15 -0
- package/dist/lib/agent-naming.js +32 -0
- package/dist/lib/agent-naming.js.map +1 -0
- package/dist/lib/agents/commands.d.ts +2 -0
- package/dist/lib/agents/commands.js +51 -44
- package/dist/lib/agents/commands.js.map +1 -1
- package/dist/lib/agents/index.js +5 -0
- package/dist/lib/agents/index.js.map +1 -1
- package/dist/lib/asana/client.d.ts +8 -0
- package/dist/lib/asana/client.js +26 -7
- package/dist/lib/asana/client.js.map +1 -1
- package/dist/lib/asana/types.d.ts +20 -0
- package/dist/lib/branch/index.d.ts +36 -0
- package/dist/lib/branch/index.js +129 -0
- package/dist/lib/branch/index.js.map +1 -1
- package/dist/lib/database/index.js +1 -1
- package/dist/lib/database/index.js.map +1 -1
- package/dist/lib/events/emitting-runner.d.ts +30 -0
- package/dist/lib/events/emitting-runner.js +95 -0
- package/dist/lib/events/emitting-runner.js.map +1 -0
- package/dist/lib/events/event-bus.d.ts +54 -0
- package/dist/lib/events/event-bus.js +107 -0
- package/dist/lib/events/event-bus.js.map +1 -0
- package/dist/lib/events/events.d.ts +67 -0
- package/dist/lib/events/events.js +8 -0
- package/dist/lib/events/events.js.map +1 -0
- package/dist/lib/events/index.d.ts +7 -0
- package/dist/lib/events/index.js +6 -0
- package/dist/lib/events/index.js.map +1 -0
- package/dist/lib/execution/devcontainer.d.ts +27 -0
- package/dist/lib/execution/devcontainer.js +80 -0
- package/dist/lib/execution/devcontainer.js.map +1 -1
- package/dist/lib/execution/runners.d.ts +28 -0
- package/dist/lib/execution/runners.js +459 -31
- package/dist/lib/execution/runners.js.map +1 -1
- package/dist/lib/execution/spawner.js +35 -17
- package/dist/lib/execution/spawner.js.map +1 -1
- package/dist/lib/execution/types.d.ts +1 -0
- package/dist/lib/execution/types.js.map +1 -1
- package/dist/lib/external-issues/adapters.d.ts +34 -0
- package/dist/lib/external-issues/adapters.js +191 -0
- package/dist/lib/external-issues/adapters.js.map +1 -1
- package/dist/lib/external-issues/asana.d.ts +75 -0
- package/dist/lib/external-issues/asana.js +243 -0
- package/dist/lib/external-issues/asana.js.map +1 -0
- package/dist/lib/external-issues/index.d.ts +4 -2
- package/dist/lib/external-issues/index.js +6 -2
- package/dist/lib/external-issues/index.js.map +1 -1
- package/dist/lib/external-issues/linear.js.map +1 -1
- package/dist/lib/external-issues/mapping-store.js +1 -1
- package/dist/lib/external-issues/shortcut.d.ts +86 -0
- package/dist/lib/external-issues/shortcut.js +274 -0
- package/dist/lib/external-issues/shortcut.js.map +1 -0
- package/dist/lib/external-issues/types.d.ts +3 -3
- package/dist/lib/external-issues/types.js +1 -1
- package/dist/lib/external-issues/types.js.map +1 -1
- package/dist/lib/mcp/tools/cli-passthrough.js +1 -1
- package/dist/lib/mcp/tools/cli-passthrough.js.map +1 -1
- package/dist/lib/mcp/tools/work.js +1 -1
- package/dist/lib/mcp/tools/work.js.map +1 -1
- package/dist/lib/pmo/index.d.ts +2 -2
- package/dist/lib/pmo/index.js +3 -3
- package/dist/lib/pmo/index.js.map +1 -1
- package/dist/lib/pmo/sync-manager.js +1 -1
- package/dist/lib/pmo/sync-manager.js.map +1 -1
- package/dist/lib/pmo/watcher.js +1 -1
- package/dist/lib/pmo/watcher.js.map +1 -1
- package/dist/lib/repos/index.js +1 -1
- package/dist/lib/repos/index.js.map +1 -1
- package/dist/lib/runners/agent-runner.d.ts +92 -0
- package/dist/lib/runners/agent-runner.js +9 -0
- package/dist/lib/runners/agent-runner.js.map +1 -0
- package/dist/lib/runners/claude-code-runner.d.ts +53 -0
- package/dist/lib/runners/claude-code-runner.js +132 -0
- package/dist/lib/runners/claude-code-runner.js.map +1 -0
- package/dist/lib/runners/index.d.ts +34 -0
- package/dist/lib/runners/index.js +97 -0
- package/dist/lib/runners/index.js.map +1 -0
- package/dist/lib/session-store.d.ts +70 -0
- package/dist/lib/session-store.js +167 -0
- package/dist/lib/session-store.js.map +1 -0
- package/dist/lib/shortcut/config.d.ts +44 -0
- package/dist/lib/shortcut/config.js +98 -0
- package/dist/lib/shortcut/config.js.map +1 -0
- package/dist/lib/shortcut/index.d.ts +7 -0
- package/dist/lib/shortcut/index.js +7 -0
- package/dist/lib/shortcut/index.js.map +1 -0
- package/dist/lib/work-source/client.d.ts +10 -0
- package/dist/lib/work-source/client.js +74 -0
- package/dist/lib/work-source/client.js.map +1 -0
- package/dist/lib/work-source/config.d.ts +1 -1
- package/dist/lib/work-source/config.js +17 -1
- package/dist/lib/work-source/config.js.map +1 -1
- package/dist/lib/work-source/index.d.ts +1 -0
- package/dist/lib/work-source/index.js +1 -0
- package/dist/lib/work-source/index.js.map +1 -1
- package/dist/lib/workspace.js +2 -2
- package/dist/lib/workspace.js.map +1 -1
- package/oclif.manifest.json +4291 -3248
- package/package.json +1 -1
|
@@ -13,7 +13,7 @@ import { getWorkspaceInfo } from '../../lib/agents/commands.js';
|
|
|
13
13
|
import { findHQRoot } from '../../lib/workspace.js';
|
|
14
14
|
import { getHeadquartersNameFromPath } from '../../lib/machine-config.js';
|
|
15
15
|
import { loadExecutionConfig, shouldUseControlMode, buildTmuxAttachCommand } from '../../lib/execution/index.js';
|
|
16
|
-
import { buildOrchestratorSessionName, findRunningOrchestratorSessions, findHQOrchestratorSessions, extractOrchestratorNameFromSession, } from './start.js';
|
|
16
|
+
import { buildOrchestratorSessionName, buildOrchestratorContainerName, findRunningOrchestratorSessions, findHQOrchestratorSessions, findHQOrchestratorContainers, findRunningOrchestratorContainers, extractOrchestratorNameFromSession, getOrchestratorContainerId, } from './start.js';
|
|
17
17
|
/**
|
|
18
18
|
* Detect the terminal emulator from environment variables.
|
|
19
19
|
* Returns a terminal app name suitable for AppleScript tab creation,
|
|
@@ -78,29 +78,51 @@ export default class OrchestratorAttach extends PromptCommand {
|
|
|
78
78
|
const { flags } = await this.parse(OrchestratorAttach);
|
|
79
79
|
const jsonMode = shouldOutputJson(flags);
|
|
80
80
|
const hostSessions = getHostTmuxSessionNames();
|
|
81
|
+
// Track whether the resolved session is in a Docker container
|
|
82
|
+
let isDockerSession = false;
|
|
83
|
+
let dockerContainerId;
|
|
81
84
|
// Resolve session name: try HQ-scoped first, fall back to discovery
|
|
82
85
|
let sessionName;
|
|
83
86
|
const hqPath = findHQRoot(process.cwd());
|
|
84
87
|
if (hqPath) {
|
|
85
88
|
const hqName = getHeadquartersNameFromPath(hqPath);
|
|
86
89
|
if (flags.name) {
|
|
87
|
-
// Explicit --name: look for that specific orchestrator
|
|
90
|
+
// Explicit --name: look for that specific orchestrator (host tmux first, then Docker)
|
|
88
91
|
sessionName = buildOrchestratorSessionName(hqName, flags.name);
|
|
89
92
|
if (!hostSessions.includes(sessionName)) {
|
|
90
|
-
|
|
93
|
+
// Not found as host tmux session, check Docker
|
|
94
|
+
const containerName = buildOrchestratorContainerName(hqName, flags.name);
|
|
95
|
+
const containerId = getOrchestratorContainerId(containerName);
|
|
96
|
+
if (containerId) {
|
|
97
|
+
sessionName = containerName;
|
|
98
|
+
isDockerSession = true;
|
|
99
|
+
dockerContainerId = containerId;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
sessionName = undefined;
|
|
103
|
+
}
|
|
91
104
|
}
|
|
92
105
|
}
|
|
93
106
|
else {
|
|
94
|
-
// No --name: discover ALL orchestrators in this HQ
|
|
107
|
+
// No --name: discover ALL orchestrators in this HQ (host tmux + Docker)
|
|
95
108
|
const hqSessions = findHQOrchestratorSessions(hostSessions, hqName);
|
|
96
|
-
|
|
97
|
-
|
|
109
|
+
const hqContainers = findHQOrchestratorContainers(hqName);
|
|
110
|
+
const allSessions = [
|
|
111
|
+
...hqSessions.map(s => ({ name: extractOrchestratorNameFromSession(s, hqName) || s, value: s, isDocker: false })),
|
|
112
|
+
...hqContainers.map(c => ({ name: extractOrchestratorNameFromSession(c, hqName) || c, value: c, isDocker: true })),
|
|
113
|
+
];
|
|
114
|
+
if (allSessions.length === 1) {
|
|
115
|
+
sessionName = allSessions[0].value;
|
|
116
|
+
isDockerSession = allSessions[0].isDocker;
|
|
117
|
+
if (isDockerSession) {
|
|
118
|
+
dockerContainerId = getOrchestratorContainerId(sessionName) || undefined;
|
|
119
|
+
}
|
|
98
120
|
}
|
|
99
|
-
else if (
|
|
100
|
-
const sessionChoices =
|
|
101
|
-
name:
|
|
102
|
-
value: s,
|
|
103
|
-
command: `prlt orchestrator attach --name "${
|
|
121
|
+
else if (allSessions.length > 1) {
|
|
122
|
+
const sessionChoices = allSessions.map(s => ({
|
|
123
|
+
name: `${s.name}${s.isDocker ? ' (Docker)' : ''}`,
|
|
124
|
+
value: s.value,
|
|
125
|
+
command: `prlt orchestrator attach --name "${s.name}" --json`,
|
|
104
126
|
}));
|
|
105
127
|
const selectMessage = 'Multiple orchestrator sessions found. Select one to attach:';
|
|
106
128
|
if (jsonMode) {
|
|
@@ -114,6 +136,11 @@ export default class OrchestratorAttach extends PromptCommand {
|
|
|
114
136
|
choices: sessionChoices,
|
|
115
137
|
}]);
|
|
116
138
|
sessionName = session;
|
|
139
|
+
const matched = allSessions.find(s => s.value === session);
|
|
140
|
+
if (matched?.isDocker) {
|
|
141
|
+
isDockerSession = true;
|
|
142
|
+
dockerContainerId = getOrchestratorContainerId(session) || undefined;
|
|
143
|
+
}
|
|
117
144
|
}
|
|
118
145
|
// If 0 found, fall through to global discovery below
|
|
119
146
|
}
|
|
@@ -121,7 +148,12 @@ export default class OrchestratorAttach extends PromptCommand {
|
|
|
121
148
|
// If not in HQ or session not found, discover running orchestrator sessions globally
|
|
122
149
|
if (!sessionName) {
|
|
123
150
|
const runningSessions = findRunningOrchestratorSessions(hostSessions);
|
|
124
|
-
|
|
151
|
+
const runningContainers = findRunningOrchestratorContainers();
|
|
152
|
+
const allSessions = [
|
|
153
|
+
...runningSessions.map(s => ({ name: s, value: s, isDocker: false })),
|
|
154
|
+
...runningContainers.map(c => ({ name: `${c} (Docker)`, value: c, isDocker: true })),
|
|
155
|
+
];
|
|
156
|
+
if (allSessions.length === 0) {
|
|
125
157
|
if (jsonMode) {
|
|
126
158
|
outputErrorAsJson('NOT_RUNNING', 'Orchestrator is not running. Start it with: prlt orchestrator start', createMetadata('orchestrator attach', flags));
|
|
127
159
|
return;
|
|
@@ -132,15 +164,19 @@ export default class OrchestratorAttach extends PromptCommand {
|
|
|
132
164
|
this.log('');
|
|
133
165
|
return;
|
|
134
166
|
}
|
|
135
|
-
else if (
|
|
136
|
-
sessionName =
|
|
167
|
+
else if (allSessions.length === 1) {
|
|
168
|
+
sessionName = allSessions[0].value;
|
|
169
|
+
isDockerSession = allSessions[0].isDocker;
|
|
170
|
+
if (isDockerSession) {
|
|
171
|
+
dockerContainerId = getOrchestratorContainerId(sessionName) || undefined;
|
|
172
|
+
}
|
|
137
173
|
}
|
|
138
174
|
else {
|
|
139
175
|
// Multiple sessions — let user pick
|
|
140
|
-
const sessionChoices =
|
|
141
|
-
name: s,
|
|
142
|
-
value: s,
|
|
143
|
-
command: `prlt orchestrator attach --name "${s}" --json`,
|
|
176
|
+
const sessionChoices = allSessions.map(s => ({
|
|
177
|
+
name: s.name,
|
|
178
|
+
value: s.value,
|
|
179
|
+
command: `prlt orchestrator attach --name "${s.value}" --json`,
|
|
144
180
|
}));
|
|
145
181
|
const selectMessage = 'Multiple orchestrator sessions found. Select one to attach:';
|
|
146
182
|
if (jsonMode) {
|
|
@@ -154,6 +190,11 @@ export default class OrchestratorAttach extends PromptCommand {
|
|
|
154
190
|
choices: sessionChoices,
|
|
155
191
|
}]);
|
|
156
192
|
sessionName = session;
|
|
193
|
+
const matched = allSessions.find(s => s.value === session);
|
|
194
|
+
if (matched?.isDocker) {
|
|
195
|
+
isDockerSession = true;
|
|
196
|
+
dockerContainerId = getOrchestratorContainerId(session) || undefined;
|
|
197
|
+
}
|
|
157
198
|
}
|
|
158
199
|
}
|
|
159
200
|
if (!sessionName) {
|
|
@@ -162,6 +203,8 @@ export default class OrchestratorAttach extends PromptCommand {
|
|
|
162
203
|
if (jsonMode) {
|
|
163
204
|
outputSuccessAsJson({
|
|
164
205
|
sessionId: sessionName,
|
|
206
|
+
containerId: dockerContainerId,
|
|
207
|
+
environment: isDockerSession ? 'docker' : 'host',
|
|
165
208
|
status: 'attaching',
|
|
166
209
|
}, createMetadata('orchestrator attach', flags));
|
|
167
210
|
return;
|
|
@@ -173,7 +216,30 @@ export default class OrchestratorAttach extends PromptCommand {
|
|
|
173
216
|
this.log(styles.warning('--terminal has no effect without --new-tab. Ignoring.'));
|
|
174
217
|
}
|
|
175
218
|
this.log('');
|
|
176
|
-
this.log(styles.info(`Attaching to orchestrator session: ${sessionName}`));
|
|
219
|
+
this.log(styles.info(`Attaching to orchestrator session: ${sessionName}${isDockerSession ? ' (Docker)' : ''}`));
|
|
220
|
+
// Docker-based orchestrator: attach via docker exec
|
|
221
|
+
if (isDockerSession && dockerContainerId) {
|
|
222
|
+
if (flags['new-tab']) {
|
|
223
|
+
const terminalApp = flags.terminal ?? detectTerminalApp();
|
|
224
|
+
if (!terminalApp) {
|
|
225
|
+
this.log(styles.warning('Could not detect terminal emulator for new tab.'));
|
|
226
|
+
this.log(styles.muted('Falling back to direct attach in current terminal.'));
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
await this.openDockerInNewTab(terminalApp, dockerContainerId, sessionName);
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
// Attach directly in current terminal
|
|
234
|
+
try {
|
|
235
|
+
execSync(`docker exec -it ${dockerContainerId} tmux attach -t "${sessionName}"`, { stdio: 'inherit' });
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
this.error(`Failed to attach to Docker orchestrator session "${sessionName}"`);
|
|
239
|
+
}
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
// Host-based orchestrator: attach via tmux
|
|
177
243
|
// Determine if we should use tmux control mode (-u -CC) for iTerm
|
|
178
244
|
let useControlMode = false;
|
|
179
245
|
try {
|
|
@@ -211,19 +277,20 @@ export default class OrchestratorAttach extends PromptCommand {
|
|
|
211
277
|
this.attachInCurrentTerminal(useControlMode, sessionName);
|
|
212
278
|
}
|
|
213
279
|
}
|
|
214
|
-
attachInCurrentTerminal(
|
|
280
|
+
attachInCurrentTerminal(_useControlMode, sessionName) {
|
|
215
281
|
try {
|
|
216
|
-
//
|
|
217
|
-
//
|
|
218
|
-
//
|
|
219
|
-
|
|
282
|
+
// Always use regular attach (no -CC) in current terminal.
|
|
283
|
+
// Control mode sends raw tmux protocol sequences (%begin, %output, %end)
|
|
284
|
+
// that render as garbled text unless iTerm's native CC handler is active
|
|
285
|
+
// (only happens in new tabs opened via AppleScript).
|
|
286
|
+
// Mouse mode is always on for current-terminal attach (enables scroll in tmux).
|
|
220
287
|
try {
|
|
221
|
-
execSync(`tmux set-option -t "${sessionName}" mouse
|
|
288
|
+
execSync(`tmux set-option -t "${sessionName}" mouse on`, { stdio: 'pipe' });
|
|
222
289
|
}
|
|
223
290
|
catch {
|
|
224
291
|
// Non-fatal: mouse mode is a convenience, don't block attach
|
|
225
292
|
}
|
|
226
|
-
const tmuxAttach = buildTmuxAttachCommand(
|
|
293
|
+
const tmuxAttach = buildTmuxAttachCommand(false);
|
|
227
294
|
execSync(`${tmuxAttach} -t "${sessionName}"`, { stdio: 'inherit' });
|
|
228
295
|
}
|
|
229
296
|
catch {
|
|
@@ -307,5 +374,71 @@ exec $SHELL
|
|
|
307
374
|
this.error(`Failed to open terminal tab: ${error instanceof Error ? error.message : error}`);
|
|
308
375
|
}
|
|
309
376
|
}
|
|
377
|
+
async openDockerInNewTab(terminalApp, containerId, sessionName) {
|
|
378
|
+
const title = 'Orchestrator (Docker)';
|
|
379
|
+
const baseDir = path.join(os.homedir(), '.proletariat', 'scripts');
|
|
380
|
+
fs.mkdirSync(baseDir, { recursive: true });
|
|
381
|
+
const scriptPath = path.join(baseDir, `attach-orch-docker-${Date.now()}.sh`);
|
|
382
|
+
const script = `#!/bin/bash
|
|
383
|
+
echo -ne "\\033]0;${title}\\007"
|
|
384
|
+
echo -ne "\\033]1;${title}\\007"
|
|
385
|
+
echo "Attaching to Docker orchestrator: ${sessionName}"
|
|
386
|
+
docker exec -it ${containerId} tmux attach -t "${sessionName}"
|
|
387
|
+
rm -f "${scriptPath}"
|
|
388
|
+
exec $SHELL
|
|
389
|
+
`;
|
|
390
|
+
fs.writeFileSync(scriptPath, script, { mode: 0o755 });
|
|
391
|
+
try {
|
|
392
|
+
switch (terminalApp) {
|
|
393
|
+
case 'iTerm':
|
|
394
|
+
execSync(`osascript -e '
|
|
395
|
+
tell application "iTerm"
|
|
396
|
+
activate
|
|
397
|
+
tell current window
|
|
398
|
+
set newTab to (create tab with default profile)
|
|
399
|
+
tell current session of newTab
|
|
400
|
+
set name to "${title}"
|
|
401
|
+
write text "${scriptPath}"
|
|
402
|
+
end tell
|
|
403
|
+
end tell
|
|
404
|
+
end tell
|
|
405
|
+
'`);
|
|
406
|
+
break;
|
|
407
|
+
case 'Ghostty':
|
|
408
|
+
execSync(`osascript -e '
|
|
409
|
+
tell application "Ghostty"
|
|
410
|
+
activate
|
|
411
|
+
end tell
|
|
412
|
+
tell application "System Events"
|
|
413
|
+
tell process "Ghostty"
|
|
414
|
+
keystroke "t" using command down
|
|
415
|
+
delay 0.3
|
|
416
|
+
keystroke "${scriptPath}"
|
|
417
|
+
keystroke return
|
|
418
|
+
end tell
|
|
419
|
+
end tell
|
|
420
|
+
'`);
|
|
421
|
+
break;
|
|
422
|
+
default:
|
|
423
|
+
execSync(`osascript -e '
|
|
424
|
+
tell application "Terminal"
|
|
425
|
+
activate
|
|
426
|
+
tell application "System Events"
|
|
427
|
+
tell process "Terminal"
|
|
428
|
+
keystroke "t" using command down
|
|
429
|
+
end tell
|
|
430
|
+
end tell
|
|
431
|
+
delay 0.3
|
|
432
|
+
do script "${scriptPath}" in front window
|
|
433
|
+
end tell
|
|
434
|
+
'`);
|
|
435
|
+
break;
|
|
436
|
+
}
|
|
437
|
+
this.log(styles.success('Opened new tab and attaching to Docker orchestrator'));
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
this.error(`Failed to open terminal tab: ${error instanceof Error ? error.message : error}`);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
310
443
|
}
|
|
311
444
|
//# sourceMappingURL=attach.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../src/commands/orchestrator/attach.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../src/commands/orchestrator/attach.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,24 @@ export declare function findRunningOrchestratorSessions(hostSessions: string[]):
|
|
|
19
19
|
* Filters sessions by 'prlt-orchestrator-{sanitizedHqName}-' prefix.
|
|
20
20
|
*/
|
|
21
21
|
export declare function findHQOrchestratorSessions(hostSessions: string[], hqName: string): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Build Docker container name for an orchestrator instance.
|
|
24
|
+
* Format: 'prlt-orchestrator-{hqName}-{name}'
|
|
25
|
+
*/
|
|
26
|
+
export declare function buildOrchestratorContainerName(hqName: string, name?: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* Find running Docker-based orchestrator containers.
|
|
29
|
+
* Returns container names matching 'prlt-orchestrator-*'.
|
|
30
|
+
*/
|
|
31
|
+
export declare function findRunningOrchestratorContainers(): string[];
|
|
32
|
+
/**
|
|
33
|
+
* Find Docker orchestrator containers scoped to a specific HQ workspace.
|
|
34
|
+
*/
|
|
35
|
+
export declare function findHQOrchestratorContainers(hqName: string): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Get the Docker container ID for a running orchestrator container.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getOrchestratorContainerId(containerName: string): string | null;
|
|
22
40
|
export declare function resolveOrchestratorName(name?: string): string;
|
|
23
41
|
export declare function buildOrchestratorAttachCommand(name: string): string;
|
|
24
42
|
export declare function extractOrchestratorNameFromSession(sessionName: string, hqName: string): string | null;
|
|
@@ -37,6 +55,8 @@ export default class OrchestratorStart extends PromptCommand {
|
|
|
37
55
|
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
38
56
|
background: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
39
57
|
foreground: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
58
|
+
docker: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
59
|
+
'run-on-host': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
40
60
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
41
61
|
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
42
62
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
+
import { execSync } from 'node:child_process';
|
|
2
3
|
import * as path from 'node:path';
|
|
3
4
|
import * as fs from 'node:fs';
|
|
4
5
|
import Database from 'better-sqlite3';
|
|
@@ -9,7 +10,7 @@ import { getHeadquartersNameFromPath } from '../../lib/machine-config.js';
|
|
|
9
10
|
import { shouldOutputJson, outputErrorAsJson, outputSuccessAsJson, createMetadata, buildPromptConfig, outputPromptAsJson, } from '../../lib/prompt-json.js';
|
|
10
11
|
import { styles } from '../../lib/styles.js';
|
|
11
12
|
import { DEFAULT_EXECUTION_CONFIG, } from '../../lib/execution/types.js';
|
|
12
|
-
import { runExecution, hostCredentialsExist } from '../../lib/execution/runners.js';
|
|
13
|
+
import { runExecution, hostCredentialsExist, isDockerRunning, runOrchestratorInDocker, } from '../../lib/execution/runners.js';
|
|
13
14
|
import { getHostTmuxSessionNames } from '../../lib/execution/session-utils.js';
|
|
14
15
|
import { ExecutionStorage } from '../../lib/execution/storage.js';
|
|
15
16
|
import { getWorkspaceInfo } from '../../lib/agents/commands.js';
|
|
@@ -50,6 +51,49 @@ export function findHQOrchestratorSessions(hostSessions, hqName) {
|
|
|
50
51
|
const prefix = `prlt-orchestrator-${sanitizeName(hqName) || 'default'}-`;
|
|
51
52
|
return hostSessions.filter(s => s.startsWith(prefix));
|
|
52
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Build Docker container name for an orchestrator instance.
|
|
56
|
+
* Format: 'prlt-orchestrator-{hqName}-{name}'
|
|
57
|
+
*/
|
|
58
|
+
export function buildOrchestratorContainerName(hqName, name = 'main') {
|
|
59
|
+
const safeHqName = sanitizeName(hqName) || 'default';
|
|
60
|
+
const safeName = sanitizeName(name) || 'main';
|
|
61
|
+
return `prlt-orchestrator-${safeHqName}-${safeName}`;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Find running Docker-based orchestrator containers.
|
|
65
|
+
* Returns container names matching 'prlt-orchestrator-*'.
|
|
66
|
+
*/
|
|
67
|
+
export function findRunningOrchestratorContainers() {
|
|
68
|
+
try {
|
|
69
|
+
const output = execSync('docker ps --filter "name=prlt-orchestrator-" --format "{{.Names}}"', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
70
|
+
if (!output)
|
|
71
|
+
return [];
|
|
72
|
+
return output.split('\n').filter(Boolean);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Find Docker orchestrator containers scoped to a specific HQ workspace.
|
|
80
|
+
*/
|
|
81
|
+
export function findHQOrchestratorContainers(hqName) {
|
|
82
|
+
const prefix = `prlt-orchestrator-${sanitizeName(hqName) || 'default'}-`;
|
|
83
|
+
return findRunningOrchestratorContainers().filter(c => c.startsWith(prefix));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get the Docker container ID for a running orchestrator container.
|
|
87
|
+
*/
|
|
88
|
+
export function getOrchestratorContainerId(containerName) {
|
|
89
|
+
try {
|
|
90
|
+
const id = execSync(`docker container inspect -f '{{.Id}}' ${containerName}`, { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
91
|
+
return id ? id.substring(0, 12) : null;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
53
97
|
export function resolveOrchestratorName(name) {
|
|
54
98
|
const normalized = name?.trim();
|
|
55
99
|
return normalized && normalized.length > 0 ? normalized : 'main';
|
|
@@ -162,6 +206,16 @@ export default class OrchestratorStart extends PromptCommand {
|
|
|
162
206
|
default: false,
|
|
163
207
|
exclusive: ['background'],
|
|
164
208
|
}),
|
|
209
|
+
docker: Flags.boolean({
|
|
210
|
+
description: 'Run orchestrator in a Docker container (sibling container pattern)',
|
|
211
|
+
default: false,
|
|
212
|
+
exclusive: ['run-on-host'],
|
|
213
|
+
}),
|
|
214
|
+
'run-on-host': Flags.boolean({
|
|
215
|
+
description: 'Run orchestrator on host (default behavior)',
|
|
216
|
+
default: false,
|
|
217
|
+
exclusive: ['docker'],
|
|
218
|
+
}),
|
|
165
219
|
};
|
|
166
220
|
async run() {
|
|
167
221
|
const { flags } = await this.parse(OrchestratorStart);
|
|
@@ -170,10 +224,10 @@ export default class OrchestratorStart extends PromptCommand {
|
|
|
170
224
|
const hqPath = findHQRoot(process.cwd());
|
|
171
225
|
if (!hqPath) {
|
|
172
226
|
if (jsonMode) {
|
|
173
|
-
outputErrorAsJson('NO_HQ', 'Not in an HQ workspace. Run "prlt
|
|
227
|
+
outputErrorAsJson('NO_HQ', 'Not in an HQ workspace. Run "prlt new" first.', createMetadata('orchestrator start', flags));
|
|
174
228
|
return;
|
|
175
229
|
}
|
|
176
|
-
this.error('Not in an HQ workspace. Run "prlt
|
|
230
|
+
this.error('Not in an HQ workspace. Run "prlt new" first.');
|
|
177
231
|
}
|
|
178
232
|
// Resolve orchestrator name (interactive prompt when --name is omitted)
|
|
179
233
|
const workspaceInfo = getWorkspaceInfo();
|
|
@@ -305,20 +359,55 @@ export default class OrchestratorStart extends PromptCommand {
|
|
|
305
359
|
}
|
|
306
360
|
selectedExecutor = executor;
|
|
307
361
|
}
|
|
308
|
-
//
|
|
309
|
-
|
|
362
|
+
// Determine execution environment
|
|
363
|
+
let environment = 'host';
|
|
364
|
+
if (flags.docker) {
|
|
365
|
+
environment = 'docker';
|
|
366
|
+
}
|
|
367
|
+
else if (!flags['run-on-host'] && !jsonMode) {
|
|
368
|
+
// Interactive mode: if Docker is available, offer the choice
|
|
369
|
+
// (unless --run-on-host was explicitly set)
|
|
370
|
+
if (isDockerRunning()) {
|
|
371
|
+
const envChoices = [
|
|
372
|
+
{ name: '💻 Host — run directly on this machine (default)', value: 'host', command: 'prlt orchestrator start --run-on-host --json' },
|
|
373
|
+
{ name: '🐳 Docker — run in isolated container (sibling container pattern)', value: 'docker', command: 'prlt orchestrator start --docker --json' },
|
|
374
|
+
];
|
|
375
|
+
const { selectedEnv } = await this.prompt([{
|
|
376
|
+
type: 'list',
|
|
377
|
+
name: 'selectedEnv',
|
|
378
|
+
message: 'Where should the orchestrator run?',
|
|
379
|
+
choices: envChoices,
|
|
380
|
+
}]);
|
|
381
|
+
environment = selectedEnv;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
// Validate Docker is running if docker environment was selected
|
|
385
|
+
if (environment === 'docker' && !isDockerRunning()) {
|
|
386
|
+
const errorMsg = 'Docker is not running. Please start Docker Desktop and try again, or use --run-on-host.';
|
|
387
|
+
if (jsonMode) {
|
|
388
|
+
outputErrorAsJson('DOCKER_NOT_RUNNING', errorMsg, createMetadata('orchestrator start', flags));
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
this.error(errorMsg);
|
|
392
|
+
}
|
|
393
|
+
// Validate Claude Code authentication for host execution
|
|
394
|
+
// Docker uses OAuth credentials volume, so host auth check only applies to host mode
|
|
395
|
+
if (environment === 'host' && selectedExecutor === 'claude-code' && !hostCredentialsExist()) {
|
|
310
396
|
const errorMsg = 'Claude Code authentication is not available. This usually happens when the macOS keychain is locked in SSH sessions.';
|
|
311
397
|
const remediation = [
|
|
312
398
|
'',
|
|
313
399
|
'To fix this, choose one of the following:',
|
|
314
400
|
'',
|
|
315
|
-
'1.
|
|
401
|
+
'1. Run orchestrator in Docker (uses OAuth, no keychain needed):',
|
|
402
|
+
' prlt orchestrator start --docker',
|
|
403
|
+
'',
|
|
404
|
+
'2. Unlock the keychain:',
|
|
316
405
|
' security unlock-keychain',
|
|
317
406
|
'',
|
|
318
|
-
'
|
|
407
|
+
'3. Set the ANTHROPIC_API_KEY environment variable:',
|
|
319
408
|
' export ANTHROPIC_API_KEY=your-api-key',
|
|
320
409
|
'',
|
|
321
|
-
'
|
|
410
|
+
'4. Login to Claude Code:',
|
|
322
411
|
' claude /login',
|
|
323
412
|
'',
|
|
324
413
|
].join('\n');
|
|
@@ -475,6 +564,7 @@ export default class OrchestratorStart extends PromptCommand {
|
|
|
475
564
|
if (!jsonMode) {
|
|
476
565
|
this.log('');
|
|
477
566
|
this.log(styles.muted(` Starting orchestrator...`));
|
|
567
|
+
this.log(styles.muted(` Environment: ${environment}`));
|
|
478
568
|
this.log(styles.muted(` Executor: ${selectedExecutor}`));
|
|
479
569
|
this.log(styles.muted(` Permission mode: ${permissionMode}`));
|
|
480
570
|
this.log(styles.muted(` Display mode: ${displayMode}`));
|
|
@@ -488,9 +578,18 @@ export default class OrchestratorStart extends PromptCommand {
|
|
|
488
578
|
this.log('');
|
|
489
579
|
}
|
|
490
580
|
// Launch orchestrator
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
581
|
+
let result;
|
|
582
|
+
if (environment === 'docker') {
|
|
583
|
+
result = await runOrchestratorInDocker(context, selectedExecutor, executionConfig, {
|
|
584
|
+
displayMode,
|
|
585
|
+
sessionName,
|
|
586
|
+
});
|
|
587
|
+
}
|
|
588
|
+
else {
|
|
589
|
+
result = await runExecution('host', context, selectedExecutor, executionConfig, {
|
|
590
|
+
displayMode,
|
|
591
|
+
});
|
|
592
|
+
}
|
|
494
593
|
if (result.success) {
|
|
495
594
|
// Create execution record so `prlt session poke orchestrator "message"` works
|
|
496
595
|
if (db) {
|
|
@@ -500,10 +599,11 @@ export default class OrchestratorStart extends PromptCommand {
|
|
|
500
599
|
ticketId: 'ORCH',
|
|
501
600
|
agentName: `orchestrator-${orchestratorName}`,
|
|
502
601
|
executor: selectedExecutor,
|
|
503
|
-
environment
|
|
602
|
+
environment,
|
|
504
603
|
displayMode,
|
|
505
604
|
permissionMode,
|
|
506
605
|
sessionId: result.sessionId || sessionName,
|
|
606
|
+
containerId: result.containerId,
|
|
507
607
|
});
|
|
508
608
|
}
|
|
509
609
|
catch {
|
|
@@ -513,6 +613,8 @@ export default class OrchestratorStart extends PromptCommand {
|
|
|
513
613
|
if (jsonMode) {
|
|
514
614
|
outputSuccessAsJson({
|
|
515
615
|
sessionId: result.sessionId || sessionName,
|
|
616
|
+
containerId: result.containerId,
|
|
617
|
+
environment,
|
|
516
618
|
executor: selectedExecutor,
|
|
517
619
|
permissionMode,
|
|
518
620
|
displayMode,
|
|
@@ -521,15 +623,21 @@ export default class OrchestratorStart extends PromptCommand {
|
|
|
521
623
|
}, createMetadata('orchestrator start', flags));
|
|
522
624
|
}
|
|
523
625
|
if (displayMode === 'background') {
|
|
524
|
-
this.log(styles.success(`Orchestrator started in background`));
|
|
626
|
+
this.log(styles.success(`Orchestrator started in background${environment === 'docker' ? ' (Docker)' : ''}`));
|
|
525
627
|
this.log(styles.muted(` Session: ${result.sessionId || sessionName}`));
|
|
628
|
+
if (result.containerId) {
|
|
629
|
+
this.log(styles.muted(` Container: ${result.containerId}`));
|
|
630
|
+
}
|
|
526
631
|
this.log(styles.muted(` Attach with: ${attachCommand}`));
|
|
527
632
|
}
|
|
528
633
|
else {
|
|
529
|
-
this.log(styles.success(`Orchestrator started`));
|
|
634
|
+
this.log(styles.success(`Orchestrator started${environment === 'docker' ? ' (Docker)' : ''}`));
|
|
530
635
|
if (result.sessionId) {
|
|
531
636
|
this.log(styles.muted(` Session: ${result.sessionId}`));
|
|
532
637
|
}
|
|
638
|
+
if (result.containerId) {
|
|
639
|
+
this.log(styles.muted(` Container: ${result.containerId}`));
|
|
640
|
+
}
|
|
533
641
|
}
|
|
534
642
|
}
|
|
535
643
|
else {
|