@proletariat/cli 0.3.105 → 0.3.110
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/dist/commands/agent/cleanup.js +13 -1
- package/dist/commands/agent/cleanup.js.map +1 -1
- package/dist/commands/claude/index.js +2 -2
- package/dist/commands/claude/index.js.map +1 -1
- package/dist/commands/feedback/list.js +4 -9
- package/dist/commands/feedback/list.js.map +1 -1
- package/dist/commands/feedback/submit.js +4 -9
- package/dist/commands/feedback/submit.js.map +1 -1
- package/dist/commands/feedback/view.js +4 -9
- package/dist/commands/feedback/view.js.map +1 -1
- package/dist/commands/gc.d.ts +1 -0
- package/dist/commands/gc.js +34 -1
- package/dist/commands/gc.js.map +1 -1
- package/dist/commands/notify/connect.d.ts +34 -0
- package/dist/commands/notify/connect.js +166 -0
- package/dist/commands/notify/connect.js.map +1 -0
- package/dist/commands/notify/disconnect.d.ts +16 -0
- package/dist/commands/notify/disconnect.js +45 -0
- package/dist/commands/notify/disconnect.js.map +1 -0
- package/dist/commands/notify/list.d.ts +15 -0
- package/dist/commands/notify/list.js +101 -0
- package/dist/commands/notify/list.js.map +1 -0
- package/dist/commands/notify/rules/add.d.ts +26 -0
- package/dist/commands/notify/rules/add.js +95 -0
- package/dist/commands/notify/rules/add.js.map +1 -0
- package/dist/commands/notify/rules/list.d.ts +14 -0
- package/dist/commands/notify/rules/list.js +82 -0
- package/dist/commands/notify/rules/list.js.map +1 -0
- package/dist/commands/notify/rules/remove.d.ts +16 -0
- package/dist/commands/notify/rules/remove.js +44 -0
- package/dist/commands/notify/rules/remove.js.map +1 -0
- package/dist/commands/notify/test.d.ts +16 -0
- package/dist/commands/notify/test.js +63 -0
- package/dist/commands/notify/test.js.map +1 -0
- package/dist/commands/orchestrate/index.js +11 -6
- package/dist/commands/orchestrate/index.js.map +1 -1
- package/dist/commands/orchestrate/machine.d.ts +29 -0
- package/dist/commands/orchestrate/machine.js +230 -0
- package/dist/commands/orchestrate/machine.js.map +1 -0
- package/dist/commands/pr/checks.js +4 -8
- package/dist/commands/pr/checks.js.map +1 -1
- package/dist/commands/pr/close.js +4 -8
- package/dist/commands/pr/close.js.map +1 -1
- package/dist/commands/pr/create.js +4 -8
- package/dist/commands/pr/create.js.map +1 -1
- package/dist/commands/pr/index.js +1 -1
- package/dist/commands/pr/index.js.map +1 -1
- package/dist/commands/pr/link.js +4 -8
- package/dist/commands/pr/link.js.map +1 -1
- package/dist/commands/pr/list.js +5 -9
- package/dist/commands/pr/list.js.map +1 -1
- package/dist/commands/pr/merge.d.ts +5 -0
- package/dist/commands/pr/merge.js +35 -11
- package/dist/commands/pr/merge.js.map +1 -1
- package/dist/commands/pr/status.js +5 -4
- package/dist/commands/pr/status.js.map +1 -1
- package/dist/commands/qa/index.js +2 -2
- package/dist/commands/qa/index.js.map +1 -1
- package/dist/commands/repo/create.js +4 -8
- package/dist/commands/repo/create.js.map +1 -1
- package/dist/commands/session/list.js +81 -41
- package/dist/commands/session/list.js.map +1 -1
- package/dist/commands/session/poke.d.ts +1 -11
- package/dist/commands/session/poke.js +20 -78
- package/dist/commands/session/poke.js.map +1 -1
- package/dist/commands/session/prune.js +3 -0
- package/dist/commands/session/prune.js.map +1 -1
- package/dist/commands/ticket/move.d.ts +12 -0
- package/dist/commands/ticket/move.js +75 -2
- package/dist/commands/ticket/move.js.map +1 -1
- package/dist/commands/work/drop.js +2 -2
- package/dist/commands/work/drop.js.map +1 -1
- package/dist/commands/work/ready.js +3 -3
- package/dist/commands/work/ready.js.map +1 -1
- package/dist/commands/work/rebase.js +4 -8
- package/dist/commands/work/rebase.js.map +1 -1
- package/dist/commands/work/run.d.ts +58 -0
- package/dist/commands/work/run.js +411 -0
- package/dist/commands/work/run.js.map +1 -0
- package/dist/commands/work/ship.d.ts +6 -0
- package/dist/commands/work/ship.js +93 -51
- package/dist/commands/work/ship.js.map +1 -1
- package/dist/commands/work/start.d.ts +1 -0
- package/dist/commands/work/start.js +126 -13
- package/dist/commands/work/start.js.map +1 -1
- package/dist/lib/agents/commands.d.ts +6 -0
- package/dist/lib/agents/commands.js +55 -2
- package/dist/lib/agents/commands.js.map +1 -1
- package/dist/lib/database/credential-store.js +2 -3
- package/dist/lib/database/credential-store.js.map +1 -1
- package/dist/lib/database/db-safety.d.ts +25 -0
- package/dist/lib/database/db-safety.js +35 -0
- package/dist/lib/database/db-safety.js.map +1 -1
- package/dist/lib/database/driver.js +6 -12
- package/dist/lib/database/driver.js.map +1 -1
- package/dist/lib/database/drizzle-schema.d.ts +3 -3
- package/dist/lib/database/drizzle.js +3 -3
- package/dist/lib/database/drizzle.js.map +1 -1
- package/dist/lib/database/index.d.ts +1 -1
- package/dist/lib/database/index.js +1 -1
- package/dist/lib/database/index.js.map +1 -1
- package/dist/lib/database/migrations/0021_notification_system.d.ts +2 -0
- package/dist/lib/database/migrations/0021_notification_system.js +39 -0
- package/dist/lib/database/migrations/0021_notification_system.js.map +1 -0
- package/dist/lib/database/migrations/0022_hook_mode_tiers.d.ts +11 -0
- package/dist/lib/database/migrations/0022_hook_mode_tiers.js +53 -0
- package/dist/lib/database/migrations/0022_hook_mode_tiers.js.map +1 -0
- package/dist/lib/database/migrations/index.js +4 -0
- package/dist/lib/database/migrations/index.js.map +1 -1
- package/dist/lib/database/pmo-bootstrap.js +6 -2
- package/dist/lib/database/pmo-bootstrap.js.map +1 -1
- package/dist/lib/database/workspace.js +5 -13
- package/dist/lib/database/workspace.js.map +1 -1
- package/dist/lib/events/emitting-runner.js +10 -0
- package/dist/lib/events/emitting-runner.js.map +1 -1
- package/dist/lib/execution/cc-version.d.ts +62 -0
- package/dist/lib/execution/cc-version.js +103 -0
- package/dist/lib/execution/cc-version.js.map +1 -0
- package/dist/lib/execution/devcontainer.js +2 -1
- package/dist/lib/execution/devcontainer.js.map +1 -1
- package/dist/lib/execution/runners/devcontainer.js +4 -1
- package/dist/lib/execution/runners/devcontainer.js.map +1 -1
- package/dist/lib/execution/runners/docker-management.js +10 -46
- package/dist/lib/execution/runners/docker-management.js.map +1 -1
- package/dist/lib/execution/runners/orchestrator.js +13 -39
- package/dist/lib/execution/runners/orchestrator.js.map +1 -1
- package/dist/lib/execution/session-utils.d.ts +88 -1
- package/dist/lib/execution/session-utils.js +120 -46
- package/dist/lib/execution/session-utils.js.map +1 -1
- package/dist/lib/execution/storage.js +20 -2
- package/dist/lib/execution/storage.js.map +1 -1
- package/dist/lib/flags/resolver.d.ts +8 -1
- package/dist/lib/flags/resolver.js +35 -2
- package/dist/lib/flags/resolver.js.map +1 -1
- package/dist/lib/gc/cascade.d.ts +99 -0
- package/dist/lib/gc/cascade.js +357 -0
- package/dist/lib/gc/cascade.js.map +1 -0
- package/dist/lib/gc/config.d.ts +69 -0
- package/dist/lib/gc/config.js +134 -0
- package/dist/lib/gc/config.js.map +1 -0
- package/dist/lib/gc/index.d.ts +36 -0
- package/dist/lib/gc/index.js +209 -1
- package/dist/lib/gc/index.js.map +1 -1
- package/dist/lib/init/index.js +10 -1
- package/dist/lib/init/index.js.map +1 -1
- package/dist/lib/machine-db.d.ts +144 -0
- package/dist/lib/machine-db.js +338 -0
- package/dist/lib/machine-db.js.map +1 -0
- package/dist/lib/machine-orchestrator.d.ts +35 -0
- package/dist/lib/machine-orchestrator.js +139 -0
- package/dist/lib/machine-orchestrator.js.map +1 -0
- package/dist/lib/notifications/dispatcher.d.ts +29 -0
- package/dist/lib/notifications/dispatcher.js +281 -0
- package/dist/lib/notifications/dispatcher.js.map +1 -0
- package/dist/lib/notifications/index.d.ts +13 -0
- package/dist/lib/notifications/index.js +18 -0
- package/dist/lib/notifications/index.js.map +1 -0
- package/dist/lib/notifications/manager.d.ts +46 -0
- package/dist/lib/notifications/manager.js +200 -0
- package/dist/lib/notifications/manager.js.map +1 -0
- package/dist/lib/notifications/storage.d.ts +60 -0
- package/dist/lib/notifications/storage.js +182 -0
- package/dist/lib/notifications/storage.js.map +1 -0
- package/dist/lib/notifications/types.d.ts +126 -0
- package/dist/lib/notifications/types.js +16 -0
- package/dist/lib/notifications/types.js.map +1 -0
- package/dist/lib/orchestrate/actions.d.ts +8 -0
- package/dist/lib/orchestrate/actions.js +339 -88
- package/dist/lib/orchestrate/actions.js.map +1 -1
- package/dist/lib/orchestrate/config-loader.js +9 -35
- package/dist/lib/orchestrate/config-loader.js.map +1 -1
- package/dist/lib/orchestrate/engine.d.ts +53 -1
- package/dist/lib/orchestrate/engine.js +74 -3
- package/dist/lib/orchestrate/engine.js.map +1 -1
- package/dist/lib/orchestrate/escalation.d.ts +87 -0
- package/dist/lib/orchestrate/escalation.js +63 -0
- package/dist/lib/orchestrate/escalation.js.map +1 -0
- package/dist/lib/orchestrate/index.d.ts +2 -0
- package/dist/lib/orchestrate/index.js +1 -0
- package/dist/lib/orchestrate/index.js.map +1 -1
- package/dist/lib/orchestrate/llm-agent.d.ts +101 -0
- package/dist/lib/orchestrate/llm-agent.js +295 -0
- package/dist/lib/orchestrate/llm-agent.js.map +1 -0
- package/dist/lib/orchestrate/presets.d.ts +4 -3
- package/dist/lib/orchestrate/presets.js +13 -8
- package/dist/lib/orchestrate/presets.js.map +1 -1
- package/dist/lib/orchestrate/prompt-chain.d.ts +166 -0
- package/dist/lib/orchestrate/prompt-chain.js +308 -0
- package/dist/lib/orchestrate/prompt-chain.js.map +1 -0
- package/dist/lib/orchestrate/types.d.ts +7 -1
- package/dist/lib/orchestrate/types.js +1 -0
- package/dist/lib/orchestrate/types.js.map +1 -1
- package/dist/lib/pmo/base-command.js +1 -1
- package/dist/lib/pmo/base-command.js.map +1 -1
- package/dist/lib/pmo/find-pmo.d.ts +8 -0
- package/dist/lib/pmo/find-pmo.js +63 -2
- package/dist/lib/pmo/find-pmo.js.map +1 -1
- package/dist/lib/pmo/index.d.ts +1 -1
- package/dist/lib/pmo/index.js +1 -1
- package/dist/lib/pmo/index.js.map +1 -1
- package/dist/lib/pmo/pmo-context.js +1 -1
- package/dist/lib/pmo/pmo-context.js.map +1 -1
- package/dist/lib/pmo/storage/index.js +2 -1
- package/dist/lib/pmo/storage/index.js.map +1 -1
- package/dist/lib/pr/index.d.ts +32 -0
- package/dist/lib/pr/index.js +45 -0
- package/dist/lib/pr/index.js.map +1 -1
- package/dist/lib/prompt-command.d.ts +61 -1
- package/dist/lib/prompt-command.js +167 -1
- package/dist/lib/prompt-command.js.map +1 -1
- package/dist/lib/prompt-json.d.ts +129 -2
- package/dist/lib/prompt-json.js +157 -0
- package/dist/lib/prompt-json.js.map +1 -1
- package/dist/lib/registry/index.js +0 -1
- package/dist/lib/registry/index.js.map +1 -1
- package/dist/lib/runtime-command.d.ts +3 -1
- package/dist/lib/runtime-command.js +4 -2
- package/dist/lib/runtime-command.js.map +1 -1
- package/dist/lib/signal-handler.d.ts +8 -0
- package/dist/lib/signal-handler.js +33 -0
- package/dist/lib/signal-handler.js.map +1 -1
- package/dist/lib/themes.js +8 -1
- package/dist/lib/themes.js.map +1 -1
- package/dist/lib/work-lifecycle/container-cleanup-hook.d.ts +17 -7
- package/dist/lib/work-lifecycle/container-cleanup-hook.js +64 -11
- package/dist/lib/work-lifecycle/container-cleanup-hook.js.map +1 -1
- package/dist/lib/work-lifecycle/hooks/executor.d.ts +22 -2
- package/dist/lib/work-lifecycle/hooks/executor.js +46 -8
- package/dist/lib/work-lifecycle/hooks/executor.js.map +1 -1
- package/dist/lib/work-lifecycle/hooks/manager.d.ts +62 -3
- package/dist/lib/work-lifecycle/hooks/manager.js +285 -4
- package/dist/lib/work-lifecycle/hooks/manager.js.map +1 -1
- package/dist/lib/work-lifecycle/hooks/types.d.ts +36 -5
- package/dist/lib/work-lifecycle/hooks/types.js +1 -1
- package/dist/lib/work-lifecycle/hooks/types.js.map +1 -1
- package/dist/lib/workspace-resolution.d.ts +73 -0
- package/dist/lib/workspace-resolution.js +188 -0
- package/dist/lib/workspace-resolution.js.map +1 -0
- package/oclif.manifest.json +1787 -1099
- package/package.json +1 -1
|
@@ -11,6 +11,23 @@ import { execSync } from 'node:child_process';
|
|
|
11
11
|
import * as path from 'node:path';
|
|
12
12
|
import * as fs from 'node:fs';
|
|
13
13
|
import { resolveWorkflowTarget } from '../work-lifecycle/settings.js';
|
|
14
|
+
import { executeCascade, detectZombieContainers, detectOrphanedWorktrees, detectStaleTmuxSessions, } from '../gc/cascade.js';
|
|
15
|
+
import { getEventBus } from '../events/event-bus.js';
|
|
16
|
+
import { walkPromptChain, resolveActionDefaults, defaultChainExecutor, } from './prompt-chain.js';
|
|
17
|
+
/**
|
|
18
|
+
* Module-level chain executor — overridable for tests via setChainExecutorForTesting().
|
|
19
|
+
* Production code uses defaultChainExecutor (spawnSync).
|
|
20
|
+
*/
|
|
21
|
+
let chainExecutor = defaultChainExecutor;
|
|
22
|
+
/**
|
|
23
|
+
* Test-only seam for swapping out the prlt CLI executor used by walkPromptChain.
|
|
24
|
+
* Pass `null` to restore the default spawnSync executor.
|
|
25
|
+
*
|
|
26
|
+
* This avoids monkey-patching child_process across the test suite.
|
|
27
|
+
*/
|
|
28
|
+
export function setChainExecutorForTesting(executor) {
|
|
29
|
+
chainExecutor = executor || defaultChainExecutor;
|
|
30
|
+
}
|
|
14
31
|
/**
|
|
15
32
|
* Timeout for actions that spawn agents via `prlt work start`.
|
|
16
33
|
* Container creation + clone + setup regularly exceeds 60s,
|
|
@@ -19,47 +36,63 @@ import { resolveWorkflowTarget } from '../work-lifecycle/settings.js';
|
|
|
19
36
|
export const AGENT_SPAWN_TIMEOUT_MS = 180_000;
|
|
20
37
|
/**
|
|
21
38
|
* Merge a PR via `prlt work ship`.
|
|
39
|
+
*
|
|
40
|
+
* Walks the JSON prompt chain so that any prompts emitted by `prlt work ship`
|
|
41
|
+
* (e.g. merge method, delete-branch confirmation) are answered with the
|
|
42
|
+
* configured defaults instead of hanging.
|
|
22
43
|
*/
|
|
23
44
|
const mergePr = (ctx, config) => {
|
|
24
45
|
const start = Date.now();
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return { action: 'merge-pr', success: false, error: 'No ticket or PR number in context', durationMs: Date.now() - start };
|
|
28
|
-
}
|
|
29
|
-
const args = ['prlt', 'work', 'ship'];
|
|
30
|
-
if (ctx.ticket)
|
|
31
|
-
args.push(ctx.ticket);
|
|
32
|
-
if (ctx.pr)
|
|
33
|
-
args.push('--pr', String(ctx.pr));
|
|
34
|
-
args.push('--yes'); // Skip confirmation
|
|
35
|
-
execSync(args.join(' '), { timeout: 120_000, stdio: 'pipe' });
|
|
36
|
-
return { action: 'merge-pr', success: true, durationMs: Date.now() - start };
|
|
37
|
-
}
|
|
38
|
-
catch (err) {
|
|
39
|
-
return { action: 'merge-pr', success: false, error: err instanceof Error ? err.message : String(err), durationMs: Date.now() - start };
|
|
46
|
+
if (!ctx.ticket && !ctx.pr) {
|
|
47
|
+
return { action: 'merge-pr', success: false, error: 'No ticket or PR number in context', durationMs: Date.now() - start };
|
|
40
48
|
}
|
|
49
|
+
const args = ['prlt', 'work', 'ship'];
|
|
50
|
+
if (ctx.ticket)
|
|
51
|
+
args.push(ctx.ticket);
|
|
52
|
+
if (ctx.pr)
|
|
53
|
+
args.push('--pr', String(ctx.pr));
|
|
54
|
+
const result = walkPromptChain({
|
|
55
|
+
baseCommand: args.join(' '),
|
|
56
|
+
defaults: resolveActionDefaults('merge-pr', config),
|
|
57
|
+
timeoutMs: 120_000,
|
|
58
|
+
executor: chainExecutor,
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
action: 'merge-pr',
|
|
62
|
+
success: result.success,
|
|
63
|
+
error: result.error,
|
|
64
|
+
durationMs: Date.now() - start,
|
|
65
|
+
};
|
|
41
66
|
};
|
|
42
67
|
/**
|
|
43
68
|
* Move a ticket to a target status.
|
|
44
69
|
*
|
|
45
70
|
* Resolves intent-like targets (e.g. 'done', 'review') through the workflow
|
|
46
|
-
* configuration so users with custom column names get the right mapping
|
|
71
|
+
* configuration so users with custom column names get the right mapping,
|
|
72
|
+
* then walks any JSON prompts emitted by `prlt ticket move`.
|
|
47
73
|
*/
|
|
48
74
|
const moveTicket = (ctx, config) => {
|
|
49
75
|
const start = Date.now();
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (!ctx.ticket) {
|
|
53
|
-
return { action: 'move-ticket', success: false, error: 'No ticket in context', durationMs: Date.now() - start };
|
|
54
|
-
}
|
|
55
|
-
// Resolve the target through workflow config (e.g. 'done' → 'Shipped')
|
|
56
|
-
target = resolveTargetFromWorkspace(target);
|
|
57
|
-
execSync(`prlt ticket move ${ctx.ticket} "${target}"`, { timeout: 30_000, stdio: 'pipe' });
|
|
58
|
-
return { action: 'move-ticket', success: true, durationMs: Date.now() - start };
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
return { action: 'move-ticket', success: false, error: err instanceof Error ? err.message : String(err), durationMs: Date.now() - start };
|
|
76
|
+
if (!ctx.ticket) {
|
|
77
|
+
return { action: 'move-ticket', success: false, error: 'No ticket in context', durationMs: Date.now() - start };
|
|
62
78
|
}
|
|
79
|
+
// Pull the configured target (defaults are merged in resolveActionDefaults
|
|
80
|
+
// below, but we still need to resolve it through workflow settings here so
|
|
81
|
+
// intent-like targets like 'done' map to the user's actual column name).
|
|
82
|
+
const requestedTarget = config?.target || 'done';
|
|
83
|
+
const resolvedTarget = resolveTargetFromWorkspace(requestedTarget);
|
|
84
|
+
const result = walkPromptChain({
|
|
85
|
+
baseCommand: `prlt ticket move ${ctx.ticket} "${resolvedTarget}"`,
|
|
86
|
+
defaults: resolveActionDefaults('move-ticket', config),
|
|
87
|
+
timeoutMs: 30_000,
|
|
88
|
+
executor: chainExecutor,
|
|
89
|
+
});
|
|
90
|
+
return {
|
|
91
|
+
action: 'move-ticket',
|
|
92
|
+
success: result.success,
|
|
93
|
+
error: result.error,
|
|
94
|
+
durationMs: Date.now() - start,
|
|
95
|
+
};
|
|
63
96
|
};
|
|
64
97
|
/**
|
|
65
98
|
* Resolve a workflow target by opening the workspace DB and checking settings.
|
|
@@ -107,7 +140,7 @@ function findWorkspaceDb() {
|
|
|
107
140
|
const rebaseConflictingPrs = (ctx) => {
|
|
108
141
|
const start = Date.now();
|
|
109
142
|
try {
|
|
110
|
-
execSync('prlt work rebase --all
|
|
143
|
+
execSync('prlt work rebase --all', { timeout: 300_000, stdio: 'pipe' });
|
|
111
144
|
return { action: 'rebase-conflicting-prs', success: true, durationMs: Date.now() - start };
|
|
112
145
|
}
|
|
113
146
|
catch (err) {
|
|
@@ -115,39 +148,61 @@ const rebaseConflictingPrs = (ctx) => {
|
|
|
115
148
|
}
|
|
116
149
|
};
|
|
117
150
|
/**
|
|
118
|
-
* Spawn an agent for a ticket.
|
|
151
|
+
* Spawn an agent for a ticket by walking the JSON prompt chain.
|
|
152
|
+
*
|
|
153
|
+
* `prlt work start` emits multiple JSON prompts (environment, display,
|
|
154
|
+
* permission-mode, PR creation, etc.) — hardcoding flags is brittle because
|
|
155
|
+
* adding any new prompt breaks the chain. Instead, we walk the chain and pick
|
|
156
|
+
* a configured default for every prompt name we encounter. Defaults can be
|
|
157
|
+
* overridden per hook via `args.defaults` config.
|
|
119
158
|
*/
|
|
120
|
-
const spawnAgent = (ctx) => {
|
|
159
|
+
const spawnAgent = (ctx, config) => {
|
|
121
160
|
const start = Date.now();
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
return { action: 'spawn-agent', success: false, error: 'No ticket in context', durationMs: Date.now() - start };
|
|
125
|
-
}
|
|
126
|
-
execSync(`prlt work start ${ctx.ticket} --yes --display background`, { timeout: AGENT_SPAWN_TIMEOUT_MS, stdio: 'pipe' });
|
|
127
|
-
return { action: 'spawn-agent', success: true, durationMs: Date.now() - start };
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
return { action: 'spawn-agent', success: false, error: err instanceof Error ? err.message : String(err), durationMs: Date.now() - start };
|
|
161
|
+
if (!ctx.ticket) {
|
|
162
|
+
return { action: 'spawn-agent', success: false, error: 'No ticket in context', durationMs: Date.now() - start };
|
|
131
163
|
}
|
|
164
|
+
const result = walkPromptChain({
|
|
165
|
+
baseCommand: `prlt work start ${ctx.ticket}`,
|
|
166
|
+
defaults: resolveActionDefaults('spawn-agent', config),
|
|
167
|
+
timeoutMs: AGENT_SPAWN_TIMEOUT_MS,
|
|
168
|
+
executor: chainExecutor,
|
|
169
|
+
});
|
|
170
|
+
return {
|
|
171
|
+
action: 'spawn-agent',
|
|
172
|
+
success: result.success,
|
|
173
|
+
error: result.error,
|
|
174
|
+
durationMs: Date.now() - start,
|
|
175
|
+
};
|
|
132
176
|
};
|
|
133
177
|
/**
|
|
134
178
|
* Respawn a failed/died agent.
|
|
179
|
+
*
|
|
180
|
+
* Same as spawn-agent but passes --force so prlt skips its
|
|
181
|
+
* "work already in progress" guard.
|
|
135
182
|
*/
|
|
136
183
|
const respawn = (ctx, config) => {
|
|
137
184
|
const start = Date.now();
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
return { action: 'respawn', success: false, error: 'No ticket in context', durationMs: Date.now() - start };
|
|
141
|
-
}
|
|
142
|
-
execSync(`prlt work start ${ctx.ticket} --yes --display background --force`, { timeout: AGENT_SPAWN_TIMEOUT_MS, stdio: 'pipe' });
|
|
143
|
-
return { action: 'respawn', success: true, durationMs: Date.now() - start };
|
|
144
|
-
}
|
|
145
|
-
catch (err) {
|
|
146
|
-
return { action: 'respawn', success: false, error: err instanceof Error ? err.message : String(err), durationMs: Date.now() - start };
|
|
185
|
+
if (!ctx.ticket) {
|
|
186
|
+
return { action: 'respawn', success: false, error: 'No ticket in context', durationMs: Date.now() - start };
|
|
147
187
|
}
|
|
188
|
+
const result = walkPromptChain({
|
|
189
|
+
baseCommand: `prlt work start ${ctx.ticket} --force`,
|
|
190
|
+
defaults: resolveActionDefaults('spawn-agent', config),
|
|
191
|
+
timeoutMs: AGENT_SPAWN_TIMEOUT_MS,
|
|
192
|
+
executor: chainExecutor,
|
|
193
|
+
});
|
|
194
|
+
return {
|
|
195
|
+
action: 'respawn',
|
|
196
|
+
success: result.success,
|
|
197
|
+
error: result.error,
|
|
198
|
+
durationMs: Date.now() - start,
|
|
199
|
+
};
|
|
148
200
|
};
|
|
149
201
|
/**
|
|
150
202
|
* Send a notification about an event.
|
|
203
|
+
*
|
|
204
|
+
* Dispatches through the notification layer if providers are configured.
|
|
205
|
+
* Falls back to terminal stdout if no providers match.
|
|
151
206
|
*/
|
|
152
207
|
const notify = (ctx) => {
|
|
153
208
|
const start = Date.now();
|
|
@@ -160,6 +215,22 @@ const notify = (ctx) => {
|
|
|
160
215
|
parts.push(`PR=#${ctx.pr}`);
|
|
161
216
|
if (ctx.agent)
|
|
162
217
|
parts.push(`agent=${ctx.agent}`);
|
|
218
|
+
// Try to dispatch through NotificationManager if available
|
|
219
|
+
try {
|
|
220
|
+
// Dynamic import to avoid circular deps at module load time
|
|
221
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
222
|
+
const { getNotificationManager } = require('../notifications/index.js');
|
|
223
|
+
const manager = getNotificationManager();
|
|
224
|
+
if (manager) {
|
|
225
|
+
// Fire async but don't block the action handler
|
|
226
|
+
void manager.fireEvent(ctx.event || 'notify', ctx);
|
|
227
|
+
return { action: 'notify', success: true, durationMs: Date.now() - start };
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
// Notification layer not available — fall through to terminal
|
|
232
|
+
}
|
|
233
|
+
// Fallback: terminal notification
|
|
163
234
|
// eslint-disable-next-line no-console
|
|
164
235
|
console.log(`[orchestrate:notify] ${parts.join(' ')}`);
|
|
165
236
|
return { action: 'notify', success: true, durationMs: Date.now() - start };
|
|
@@ -174,7 +245,7 @@ const cleanupContainer = (ctx) => {
|
|
|
174
245
|
return { action: 'cleanup-container', success: false, error: 'No agent or container in context', durationMs: Date.now() - start };
|
|
175
246
|
}
|
|
176
247
|
const target = ctx.container || ctx.agent;
|
|
177
|
-
execSync(`prlt docker
|
|
248
|
+
execSync(`prlt docker stop ${target} --force`, { timeout: 30_000, stdio: 'pipe' });
|
|
178
249
|
return { action: 'cleanup-container', success: true, durationMs: Date.now() - start };
|
|
179
250
|
}
|
|
180
251
|
catch (err) {
|
|
@@ -182,38 +253,52 @@ const cleanupContainer = (ctx) => {
|
|
|
182
253
|
}
|
|
183
254
|
};
|
|
184
255
|
/**
|
|
185
|
-
* Spawn a fix agent after CI failure.
|
|
256
|
+
* Spawn a fix agent after CI failure. Uses --action revise so the agent
|
|
257
|
+
* launches into the revise role prompt; everything else (environment,
|
|
258
|
+
* display, permission mode, …) comes from prompt-chain defaults.
|
|
186
259
|
*/
|
|
187
|
-
const spawnFixAgent = (ctx) => {
|
|
260
|
+
const spawnFixAgent = (ctx, config) => {
|
|
188
261
|
const start = Date.now();
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
return { action: 'spawn-fix-agent', success: false, error: 'No ticket in context', durationMs: Date.now() - start };
|
|
192
|
-
}
|
|
193
|
-
execSync(`prlt work start ${ctx.ticket} --action revise --yes --display background`, { timeout: AGENT_SPAWN_TIMEOUT_MS, stdio: 'pipe' });
|
|
194
|
-
return { action: 'spawn-fix-agent', success: true, durationMs: Date.now() - start };
|
|
195
|
-
}
|
|
196
|
-
catch (err) {
|
|
197
|
-
return { action: 'spawn-fix-agent', success: false, error: err instanceof Error ? err.message : String(err), durationMs: Date.now() - start };
|
|
262
|
+
if (!ctx.ticket) {
|
|
263
|
+
return { action: 'spawn-fix-agent', success: false, error: 'No ticket in context', durationMs: Date.now() - start };
|
|
198
264
|
}
|
|
265
|
+
const result = walkPromptChain({
|
|
266
|
+
baseCommand: `prlt work start ${ctx.ticket} --action revise`,
|
|
267
|
+
defaults: resolveActionDefaults('spawn-fix-agent', config),
|
|
268
|
+
timeoutMs: AGENT_SPAWN_TIMEOUT_MS,
|
|
269
|
+
executor: chainExecutor,
|
|
270
|
+
});
|
|
271
|
+
return {
|
|
272
|
+
action: 'spawn-fix-agent',
|
|
273
|
+
success: result.success,
|
|
274
|
+
error: result.error,
|
|
275
|
+
durationMs: Date.now() - start,
|
|
276
|
+
};
|
|
199
277
|
};
|
|
200
278
|
/**
|
|
201
279
|
* Spawn a review agent for a PR.
|
|
202
|
-
*
|
|
203
|
-
*
|
|
280
|
+
*
|
|
281
|
+
* Review agents are non-destructive — they read the diff and post comments,
|
|
282
|
+
* so they default to host environment (faster, no container spin-up) and
|
|
283
|
+
* safe permission mode. --action review pins the read-only role prompt.
|
|
204
284
|
*/
|
|
205
|
-
const spawnReviewAgent = (ctx) => {
|
|
285
|
+
const spawnReviewAgent = (ctx, config) => {
|
|
206
286
|
const start = Date.now();
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
return { action: 'spawn-review-agent', success: false, error: 'No ticket in context', durationMs: Date.now() - start };
|
|
210
|
-
}
|
|
211
|
-
execSync(`prlt work start ${ctx.ticket} --action review --yes --display background`, { timeout: AGENT_SPAWN_TIMEOUT_MS, stdio: 'pipe' });
|
|
212
|
-
return { action: 'spawn-review-agent', success: true, durationMs: Date.now() - start };
|
|
213
|
-
}
|
|
214
|
-
catch (err) {
|
|
215
|
-
return { action: 'spawn-review-agent', success: false, error: err instanceof Error ? err.message : String(err), durationMs: Date.now() - start };
|
|
287
|
+
if (!ctx.ticket) {
|
|
288
|
+
return { action: 'spawn-review-agent', success: false, error: 'No ticket in context', durationMs: Date.now() - start };
|
|
216
289
|
}
|
|
290
|
+
const result = walkPromptChain({
|
|
291
|
+
baseCommand: `prlt work start ${ctx.ticket} --action review`,
|
|
292
|
+
defaults: resolveActionDefaults('spawn-review-agent', config),
|
|
293
|
+
timeoutMs: AGENT_SPAWN_TIMEOUT_MS,
|
|
294
|
+
executor: chainExecutor,
|
|
295
|
+
});
|
|
296
|
+
return {
|
|
297
|
+
action: 'spawn-review-agent',
|
|
298
|
+
success: result.success,
|
|
299
|
+
error: result.error,
|
|
300
|
+
durationMs: Date.now() - start,
|
|
301
|
+
};
|
|
217
302
|
};
|
|
218
303
|
/**
|
|
219
304
|
* Health check / poke an idle agent.
|
|
@@ -234,32 +319,197 @@ const healthCheck = (ctx) => {
|
|
|
234
319
|
/**
|
|
235
320
|
* Resolve a merge conflict on a PR by poking the running agent or respawning a stopped one.
|
|
236
321
|
* If the agent is running, it gets poked with a rebase instruction.
|
|
237
|
-
* If the agent is stopped, it gets respawned
|
|
322
|
+
* If the agent is stopped, it gets respawned via the JSON prompt chain
|
|
323
|
+
* with --action resolve.
|
|
238
324
|
* No action is taken on PRs with no associated ticket.
|
|
239
325
|
*/
|
|
240
|
-
const resolveConflict = (ctx) => {
|
|
326
|
+
const resolveConflict = (ctx, config) => {
|
|
327
|
+
const start = Date.now();
|
|
328
|
+
if (!ctx.ticket) {
|
|
329
|
+
return { action: 'resolve-conflict', success: true, durationMs: Date.now() - start, skipped: true };
|
|
330
|
+
}
|
|
331
|
+
// Try poking the running agent first. `prlt session poke` is a fire-and-
|
|
332
|
+
// forget command that doesn't have a JSON prompt chain — using execSync
|
|
333
|
+
// directly here is intentional.
|
|
334
|
+
try {
|
|
335
|
+
const pokeMsg = 'Your PR has merge conflicts. Please rebase on main and resolve the conflicts.';
|
|
336
|
+
execSync(`prlt session poke ${ctx.ticket} "${pokeMsg}"`, { timeout: 30_000, stdio: 'pipe' });
|
|
337
|
+
return { action: 'resolve-conflict', success: true, durationMs: Date.now() - start };
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
// Poke failed — agent is likely not running, respawn it via prompt chain
|
|
341
|
+
}
|
|
342
|
+
const result = walkPromptChain({
|
|
343
|
+
baseCommand: `prlt work start ${ctx.ticket} --action resolve`,
|
|
344
|
+
defaults: resolveActionDefaults('resolve-conflict', config),
|
|
345
|
+
timeoutMs: AGENT_SPAWN_TIMEOUT_MS,
|
|
346
|
+
executor: chainExecutor,
|
|
347
|
+
});
|
|
348
|
+
return {
|
|
349
|
+
action: 'resolve-conflict',
|
|
350
|
+
success: result.success,
|
|
351
|
+
error: result.error,
|
|
352
|
+
durationMs: Date.now() - start,
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
/**
|
|
356
|
+
* GC Sweep — periodic safety net for catching cleanup that events missed.
|
|
357
|
+
*
|
|
358
|
+
* Detects zombie containers, orphaned worktrees, stale tmux sessions,
|
|
359
|
+
* and dangling branches. Triggers the same cascade as Tier 1 cleanup.
|
|
360
|
+
* Fires agent:stopped events so hooks stay consistent.
|
|
361
|
+
*
|
|
362
|
+
* This is Tier 2 of the cleanup system — runs as a daemon action.
|
|
363
|
+
*/
|
|
364
|
+
const gcSweep = (ctx) => {
|
|
241
365
|
const start = Date.now();
|
|
242
366
|
try {
|
|
243
|
-
|
|
244
|
-
|
|
367
|
+
const hqPath = findHqPath();
|
|
368
|
+
if (!hqPath) {
|
|
369
|
+
return { action: 'gc-sweep', success: false, error: 'Could not find workspace HQ path', durationMs: Date.now() - start };
|
|
245
370
|
}
|
|
246
|
-
//
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
371
|
+
// Get active agent names from running executions
|
|
372
|
+
const activeAgentNames = getActiveAgentNames();
|
|
373
|
+
let cleaned = 0;
|
|
374
|
+
const bus = getEventBus();
|
|
375
|
+
// 1. Detect and clean zombie containers
|
|
376
|
+
const zombies = detectZombieContainers(activeAgentNames);
|
|
377
|
+
for (const zombie of zombies) {
|
|
378
|
+
const target = {
|
|
379
|
+
agentName: zombie.agentName,
|
|
380
|
+
containerId: zombie.containerId,
|
|
381
|
+
hqPath,
|
|
382
|
+
};
|
|
383
|
+
executeCascade(target, { execute: true });
|
|
384
|
+
// Emit agent:stopped so hooks stay consistent
|
|
385
|
+
bus.emit('agent:stopped', {
|
|
386
|
+
sessionId: `gc-sweep-${zombie.agentName}`,
|
|
387
|
+
runner: 'gc-sweep',
|
|
388
|
+
reason: 'error',
|
|
389
|
+
timestamp: new Date(),
|
|
390
|
+
});
|
|
391
|
+
cleaned++;
|
|
251
392
|
}
|
|
252
|
-
|
|
253
|
-
|
|
393
|
+
// 2. Detect and clean orphaned worktrees
|
|
394
|
+
const orphanedWorktrees = detectOrphanedWorktrees(hqPath, activeAgentNames);
|
|
395
|
+
const processedAgents = new Set();
|
|
396
|
+
for (const orphan of orphanedWorktrees) {
|
|
397
|
+
// Only cascade once per agent (an agent may have multiple worktrees)
|
|
398
|
+
if (processedAgents.has(orphan.agentName))
|
|
399
|
+
continue;
|
|
400
|
+
processedAgents.add(orphan.agentName);
|
|
401
|
+
const target = {
|
|
402
|
+
agentName: orphan.agentName,
|
|
403
|
+
worktreePath: orphan.worktreePath,
|
|
404
|
+
sourceRepoPath: orphan.repoPath,
|
|
405
|
+
branch: orphan.branch,
|
|
406
|
+
hqPath,
|
|
407
|
+
};
|
|
408
|
+
executeCascade(target, { execute: true });
|
|
409
|
+
cleaned++;
|
|
254
410
|
}
|
|
255
|
-
//
|
|
256
|
-
|
|
257
|
-
|
|
411
|
+
// 3. Detect and clean stale tmux sessions
|
|
412
|
+
const activeSessionIds = getActiveSessionIds();
|
|
413
|
+
const staleSessions = detectStaleTmuxSessions(activeSessionIds);
|
|
414
|
+
for (const stale of staleSessions) {
|
|
415
|
+
// Only cascade if we haven't already processed this agent
|
|
416
|
+
if (processedAgents.has(stale.agentName))
|
|
417
|
+
continue;
|
|
418
|
+
processedAgents.add(stale.agentName);
|
|
419
|
+
const target = {
|
|
420
|
+
agentName: stale.agentName,
|
|
421
|
+
sessionId: stale.sessionName,
|
|
422
|
+
hqPath,
|
|
423
|
+
};
|
|
424
|
+
executeCascade(target, { execute: true, killHostTmux: true });
|
|
425
|
+
cleaned++;
|
|
426
|
+
}
|
|
427
|
+
return {
|
|
428
|
+
action: 'gc-sweep',
|
|
429
|
+
success: true,
|
|
430
|
+
durationMs: Date.now() - start,
|
|
431
|
+
skipped: cleaned === 0,
|
|
432
|
+
};
|
|
258
433
|
}
|
|
259
434
|
catch (err) {
|
|
260
|
-
return {
|
|
435
|
+
return {
|
|
436
|
+
action: 'gc-sweep',
|
|
437
|
+
success: false,
|
|
438
|
+
error: err instanceof Error ? err.message : String(err),
|
|
439
|
+
durationMs: Date.now() - start,
|
|
440
|
+
};
|
|
261
441
|
}
|
|
262
442
|
};
|
|
443
|
+
/**
|
|
444
|
+
* Find HQ path by walking up from cwd looking for .proletariat directory.
|
|
445
|
+
*/
|
|
446
|
+
function findHqPath() {
|
|
447
|
+
let dir = process.cwd();
|
|
448
|
+
for (let i = 0; i < 10; i++) {
|
|
449
|
+
const hqDir = path.join(dir, '.proletariat');
|
|
450
|
+
if (fs.existsSync(hqDir))
|
|
451
|
+
return dir;
|
|
452
|
+
const parent = path.dirname(dir);
|
|
453
|
+
if (parent === dir)
|
|
454
|
+
break;
|
|
455
|
+
dir = parent;
|
|
456
|
+
}
|
|
457
|
+
return null;
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Get the set of agent names with active (running/starting) executions.
|
|
461
|
+
*/
|
|
462
|
+
function getActiveAgentNames() {
|
|
463
|
+
const names = new Set();
|
|
464
|
+
try {
|
|
465
|
+
const dbPath = findWorkspaceDb();
|
|
466
|
+
if (!dbPath)
|
|
467
|
+
return names;
|
|
468
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
469
|
+
const Database = require('better-sqlite3');
|
|
470
|
+
const db = new Database(dbPath, { readonly: true });
|
|
471
|
+
try {
|
|
472
|
+
const rows = db.prepare("SELECT DISTINCT agent_name FROM agent_work WHERE status IN ('running', 'starting')").all();
|
|
473
|
+
for (const row of rows) {
|
|
474
|
+
names.add(row.agent_name);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
finally {
|
|
478
|
+
db.close();
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
catch {
|
|
482
|
+
// Non-fatal
|
|
483
|
+
}
|
|
484
|
+
return names;
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Get the set of session IDs for active executions.
|
|
488
|
+
*/
|
|
489
|
+
function getActiveSessionIds() {
|
|
490
|
+
const ids = new Set();
|
|
491
|
+
try {
|
|
492
|
+
const dbPath = findWorkspaceDb();
|
|
493
|
+
if (!dbPath)
|
|
494
|
+
return ids;
|
|
495
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
496
|
+
const Database = require('better-sqlite3');
|
|
497
|
+
const db = new Database(dbPath, { readonly: true });
|
|
498
|
+
try {
|
|
499
|
+
const rows = db.prepare("SELECT session_id FROM agent_work WHERE status IN ('running', 'starting') AND session_id IS NOT NULL").all();
|
|
500
|
+
for (const row of rows) {
|
|
501
|
+
ids.add(row.session_id);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
finally {
|
|
505
|
+
db.close();
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
catch {
|
|
509
|
+
// Non-fatal
|
|
510
|
+
}
|
|
511
|
+
return ids;
|
|
512
|
+
}
|
|
263
513
|
// =============================================================================
|
|
264
514
|
// Action Registry
|
|
265
515
|
// =============================================================================
|
|
@@ -278,6 +528,7 @@ export const ACTION_HANDLERS = {
|
|
|
278
528
|
'spawn-review-agent': spawnReviewAgent,
|
|
279
529
|
'health-check': healthCheck,
|
|
280
530
|
'resolve-conflict': resolveConflict,
|
|
531
|
+
'gc-sweep': gcSweep,
|
|
281
532
|
};
|
|
282
533
|
/**
|
|
283
534
|
* Execute a built-in action by name.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/actions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import * as fs from 'node:fs';
|
|
|
8
8
|
import * as path from 'node:path';
|
|
9
9
|
import yaml from 'js-yaml';
|
|
10
10
|
import { WorkHookStorage } from '../work-lifecycle/hooks/storage.js';
|
|
11
|
+
import { HOOKABLE_EVENTS } from '../work-lifecycle/hooks/types.js';
|
|
11
12
|
import { HOOK_MODES } from './types.js';
|
|
12
13
|
import { getPreset } from './presets.js';
|
|
13
14
|
// =============================================================================
|
|
@@ -40,30 +41,6 @@ export function loadWorkflowYaml(hqPath) {
|
|
|
40
41
|
// =============================================================================
|
|
41
42
|
// Hook Sync
|
|
42
43
|
// =============================================================================
|
|
43
|
-
/**
|
|
44
|
-
* Map an OrchestrateEvent + action string into an existing HookableEvent + HookActionType.
|
|
45
|
-
* For built-in actions, we use 'shell' type with a `prlt` command as the action value.
|
|
46
|
-
*/
|
|
47
|
-
function mapToHookConfig(event, entry) {
|
|
48
|
-
// Map orchestrate events to hookable events where possible
|
|
49
|
-
const eventMap = {
|
|
50
|
-
'work:started': 'work:started',
|
|
51
|
-
'work:status_changed': 'work:status_changed',
|
|
52
|
-
'work:pr_created': 'work:pr_created',
|
|
53
|
-
'work:completed': 'work:completed',
|
|
54
|
-
'agent:spawned': 'agent:spawned',
|
|
55
|
-
'agent:stopped': 'agent:stopped',
|
|
56
|
-
};
|
|
57
|
-
const hookEvent = eventMap[event];
|
|
58
|
-
// For events without a direct mapping, store as shell hook with prlt hook fire
|
|
59
|
-
const resolvedEvent = hookEvent ?? 'work:status_changed';
|
|
60
|
-
const actionValue = `prlt hook fire ${event} --action ${entry.action}`;
|
|
61
|
-
return {
|
|
62
|
-
event: resolvedEvent,
|
|
63
|
-
actionType: 'shell',
|
|
64
|
-
actionValue,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
44
|
/**
|
|
68
45
|
* Sync hooks from a parsed YAML config into the database.
|
|
69
46
|
* Clears existing YAML-sourced hooks and replaces them.
|
|
@@ -153,19 +130,16 @@ export function applyPreset(db, presetName) {
|
|
|
153
130
|
return count;
|
|
154
131
|
}
|
|
155
132
|
/**
|
|
156
|
-
* Map orchestrate event to
|
|
157
|
-
*
|
|
133
|
+
* Map orchestrate event to hookable event.
|
|
134
|
+
* All orchestrate events that are valid HookableEvents pass through as-is.
|
|
135
|
+
* Throws if the event has no valid mapping — never silently misroute.
|
|
158
136
|
*/
|
|
159
137
|
function mapOrchestrateToHookable(event) {
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
'agent:spawned': 'agent:spawned',
|
|
166
|
-
'agent:stopped': 'agent:stopped',
|
|
167
|
-
};
|
|
168
|
-
return directMap[event] ?? 'work:status_changed';
|
|
138
|
+
const hookableSet = new Set(HOOKABLE_EVENTS);
|
|
139
|
+
if (hookableSet.has(event)) {
|
|
140
|
+
return event;
|
|
141
|
+
}
|
|
142
|
+
throw new Error(`Orchestrate event "${event}" has no valid HookableEvent mapping`);
|
|
169
143
|
}
|
|
170
144
|
/**
|
|
171
145
|
* Export current hook configuration to YAML format.
|