@elhu/pit 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +380 -0
- package/dist/adapters/claude-code.d.ts +70 -0
- package/dist/adapters/claude-code.d.ts.map +1 -0
- package/dist/adapters/claude-code.js +166 -0
- package/dist/adapters/claude-code.js.map +1 -0
- package/dist/adapters/index.d.ts +16 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +49 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/opencode.d.ts +53 -0
- package/dist/adapters/opencode.d.ts.map +1 -0
- package/dist/adapters/opencode.js +120 -0
- package/dist/adapters/opencode.js.map +1 -0
- package/dist/adapters/process-utils.d.ts +29 -0
- package/dist/adapters/process-utils.d.ts.map +1 -0
- package/dist/adapters/process-utils.js +96 -0
- package/dist/adapters/process-utils.js.map +1 -0
- package/dist/adapters/types.d.ts +41 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +6 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/assets.generated.d.ts +13 -0
- package/dist/assets.generated.d.ts.map +1 -0
- package/dist/assets.generated.js +162 -0
- package/dist/assets.generated.js.map +1 -0
- package/dist/beads.d.ts +85 -0
- package/dist/beads.d.ts.map +1 -0
- package/dist/beads.js +120 -0
- package/dist/beads.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +39 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add.d.ts +10 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +58 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/cleanup.d.ts +13 -0
- package/dist/commands/cleanup.d.ts.map +1 -0
- package/dist/commands/cleanup.js +174 -0
- package/dist/commands/cleanup.js.map +1 -0
- package/dist/commands/daemon.d.ts +3 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +162 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/init.d.ts +20 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +125 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install-keybinding.d.ts +61 -0
- package/dist/commands/install-keybinding.d.ts.map +1 -0
- package/dist/commands/install-keybinding.js +138 -0
- package/dist/commands/install-keybinding.js.map +1 -0
- package/dist/commands/install-status.d.ts +35 -0
- package/dist/commands/install-status.d.ts.map +1 -0
- package/dist/commands/install-status.js +115 -0
- package/dist/commands/install-status.js.map +1 -0
- package/dist/commands/log.d.ts +7 -0
- package/dist/commands/log.d.ts.map +1 -0
- package/dist/commands/log.js +60 -0
- package/dist/commands/log.js.map +1 -0
- package/dist/commands/pause.d.ts +12 -0
- package/dist/commands/pause.d.ts.map +1 -0
- package/dist/commands/pause.js +47 -0
- package/dist/commands/pause.js.map +1 -0
- package/dist/commands/resume.d.ts +12 -0
- package/dist/commands/resume.d.ts.map +1 -0
- package/dist/commands/resume.js +59 -0
- package/dist/commands/resume.js.map +1 -0
- package/dist/commands/shared.d.ts +7 -0
- package/dist/commands/shared.d.ts.map +1 -0
- package/dist/commands/shared.js +56 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/commands/start.d.ts +12 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +274 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +24 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +101 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +11 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +52 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands/teardown.d.ts +15 -0
- package/dist/commands/teardown.d.ts.map +1 -0
- package/dist/commands/teardown.js +72 -0
- package/dist/commands/teardown.js.map +1 -0
- package/dist/config.d.ts +58 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +129 -0
- package/dist/config.js.map +1 -0
- package/dist/daemon/client.d.ts +38 -0
- package/dist/daemon/client.d.ts.map +1 -0
- package/dist/daemon/client.js +254 -0
- package/dist/daemon/client.js.map +1 -0
- package/dist/daemon/context.d.ts +63 -0
- package/dist/daemon/context.d.ts.map +1 -0
- package/dist/daemon/context.js +14 -0
- package/dist/daemon/context.js.map +1 -0
- package/dist/daemon/handlers.d.ts +79 -0
- package/dist/daemon/handlers.d.ts.map +1 -0
- package/dist/daemon/handlers.js +1260 -0
- package/dist/daemon/handlers.js.map +1 -0
- package/dist/daemon/index.d.ts +6 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +7 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/lifecycle.d.ts +56 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +341 -0
- package/dist/daemon/lifecycle.js.map +1 -0
- package/dist/daemon/protocol.d.ts +174 -0
- package/dist/daemon/protocol.d.ts.map +1 -0
- package/dist/daemon/protocol.js +3 -0
- package/dist/daemon/protocol.js.map +1 -0
- package/dist/daemon/recovery.d.ts +37 -0
- package/dist/daemon/recovery.d.ts.map +1 -0
- package/dist/daemon/recovery.js +197 -0
- package/dist/daemon/recovery.js.map +1 -0
- package/dist/daemon/server.d.ts +31 -0
- package/dist/daemon/server.d.ts.map +1 -0
- package/dist/daemon/server.js +294 -0
- package/dist/daemon/server.js.map +1 -0
- package/dist/daemon/socket.d.ts +18 -0
- package/dist/daemon/socket.d.ts.map +1 -0
- package/dist/daemon/socket.js +36 -0
- package/dist/daemon/socket.js.map +1 -0
- package/dist/daemon/state.d.ts +60 -0
- package/dist/daemon/state.d.ts.map +1 -0
- package/dist/daemon/state.js +156 -0
- package/dist/daemon/state.js.map +1 -0
- package/dist/daemon/systemd.d.ts +19 -0
- package/dist/daemon/systemd.d.ts.map +1 -0
- package/dist/daemon/systemd.js +131 -0
- package/dist/daemon/systemd.js.map +1 -0
- package/dist/hooks/claude-code-hook.d.ts +32 -0
- package/dist/hooks/claude-code-hook.d.ts.map +1 -0
- package/dist/hooks/claude-code-hook.js +112 -0
- package/dist/hooks/claude-code-hook.js.map +1 -0
- package/dist/instructions-template.d.ts +9 -0
- package/dist/instructions-template.d.ts.map +1 -0
- package/dist/instructions-template.js +123 -0
- package/dist/instructions-template.js.map +1 -0
- package/dist/logger.d.ts +25 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +44 -0
- package/dist/logger.js.map +1 -0
- package/dist/loop.d.ts +88 -0
- package/dist/loop.d.ts.map +1 -0
- package/dist/loop.js +161 -0
- package/dist/loop.js.map +1 -0
- package/dist/orchestrator-instructions-template.d.ts +13 -0
- package/dist/orchestrator-instructions-template.d.ts.map +1 -0
- package/dist/orchestrator-instructions-template.js +147 -0
- package/dist/orchestrator-instructions-template.js.map +1 -0
- package/dist/output.d.ts +12 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +25 -0
- package/dist/output.js.map +1 -0
- package/dist/plugin/pit.js +57 -0
- package/dist/session.d.ts +55 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +135 -0
- package/dist/session.js.map +1 -0
- package/dist/setup.d.ts +92 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +382 -0
- package/dist/setup.js.map +1 -0
- package/dist/shell-quote.d.ts +16 -0
- package/dist/shell-quote.d.ts.map +1 -0
- package/dist/shell-quote.js +18 -0
- package/dist/shell-quote.js.map +1 -0
- package/dist/signals.d.ts +17 -0
- package/dist/signals.d.ts.map +1 -0
- package/dist/signals.js +26 -0
- package/dist/signals.js.map +1 -0
- package/dist/state-machine.d.ts +74 -0
- package/dist/state-machine.d.ts.map +1 -0
- package/dist/state-machine.js +153 -0
- package/dist/state-machine.js.map +1 -0
- package/dist/tmux.d.ts +101 -0
- package/dist/tmux.d.ts.map +1 -0
- package/dist/tmux.js +208 -0
- package/dist/tmux.js.map +1 -0
- package/dist/worktree.d.ts +33 -0
- package/dist/worktree.d.ts.map +1 -0
- package/dist/worktree.js +116 -0
- package/dist/worktree.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator command handlers for the pit daemon.
|
|
3
|
+
*
|
|
4
|
+
* This module contains the core orchestration pipeline (clearAndReprompt) and
|
|
5
|
+
* all handler functions for daemon protocol methods: start, status, pause,
|
|
6
|
+
* resume, stop, teardown, add, log, agent-idle, agent-permission.
|
|
7
|
+
*
|
|
8
|
+
* Each handler takes a DaemonContext as its first argument instead of closing
|
|
9
|
+
* over module-level variables. The registerOrchestratorHandlers() function
|
|
10
|
+
* registers all handlers on a PitDaemonServer.
|
|
11
|
+
*/
|
|
12
|
+
import type { StateTransition } from "../state-machine.js";
|
|
13
|
+
import type { PitDaemonServer } from "./server.js";
|
|
14
|
+
import type { DaemonContext, ClearAndRepromptFn } from "./context.js";
|
|
15
|
+
import type { HealthResponse, ShutdownResult } from "./protocol.js";
|
|
16
|
+
/**
|
|
17
|
+
* Execute the clear-and-reprompt flow (RUNNING/PAUSED → CLEARING → RUNNING or DONE).
|
|
18
|
+
*
|
|
19
|
+
* Callers are responsible for ensuring the state machine is in RUNNING or PAUSED
|
|
20
|
+
* before calling this (the CLEARING transition is validated by the machine).
|
|
21
|
+
*
|
|
22
|
+
* Returns the next ticket if one is available, or null if the epic is done.
|
|
23
|
+
* Throws on CLEARING pipeline errors — callers should handle by transitioning
|
|
24
|
+
* to PAUSED with an appropriate reason.
|
|
25
|
+
*/
|
|
26
|
+
export declare function makeClearAndReprompt(ctx: DaemonContext): ClearAndRepromptFn;
|
|
27
|
+
/**
|
|
28
|
+
* Handle a "health" RPC request.
|
|
29
|
+
*
|
|
30
|
+
* Checks the tmux session and each epic's window/agent liveness. Returns a
|
|
31
|
+
* structured HealthResponse. Does NOT auto-pause degraded epics — that is
|
|
32
|
+
* the job of the periodic health check (startHealthCheck).
|
|
33
|
+
*/
|
|
34
|
+
export declare function handleHealth(ctx: DaemonContext): Promise<HealthResponse>;
|
|
35
|
+
/**
|
|
36
|
+
* Handle a "shutdown" RPC request.
|
|
37
|
+
*
|
|
38
|
+
* Optionally pauses all running epics and saves state. Returns immediately
|
|
39
|
+
* so the client receives a response before the process exits. The server
|
|
40
|
+
* itself calls server.shutdown() after delivering the response.
|
|
41
|
+
*/
|
|
42
|
+
export declare function handleShutdown(ctx: DaemonContext, params: unknown): Promise<ShutdownResult>;
|
|
43
|
+
/**
|
|
44
|
+
* Start the periodic self-monitoring timer (every 60 seconds).
|
|
45
|
+
*
|
|
46
|
+
* Returns the interval handle so the caller can store it in
|
|
47
|
+
* ctx.healthCheckInterval for later cancellation on shutdown.
|
|
48
|
+
*/
|
|
49
|
+
export declare function startHealthCheck(ctx: DaemonContext): ReturnType<typeof setInterval>;
|
|
50
|
+
/**
|
|
51
|
+
* Create the onStatusBarUpdate callback for startLoop().
|
|
52
|
+
*
|
|
53
|
+
* The callback is called on every state transition. It:
|
|
54
|
+
* 1. Fetches beads.progress() for the triggering epic (fails gracefully).
|
|
55
|
+
* 2. Builds a Map<string, StatusBarEpic> from all ctx.loopHandles + ctx.daemonState.
|
|
56
|
+
* 3. Calls updateStatusBar() with the new rich format.
|
|
57
|
+
*
|
|
58
|
+
* Place this in handlers.ts so it can close over DaemonContext which contains
|
|
59
|
+
* the projectRoot and tmuxSession needed for beads.progress().
|
|
60
|
+
*/
|
|
61
|
+
export declare function makeStatusBarUpdater(ctx: DaemonContext): (epic: string, transition: StateTransition) => Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Register all orchestrator handlers on the given server.
|
|
64
|
+
*
|
|
65
|
+
* Creates a clearAndReprompt function bound to ctx and registers all
|
|
66
|
+
* command handlers. The health, shutdown, and internal handlers are NOT
|
|
67
|
+
* registered here — they remain in commands/daemon.ts (shutdown needs
|
|
68
|
+
* access to the server instance and process lifecycle; health check needs
|
|
69
|
+
* the interval handle).
|
|
70
|
+
*/
|
|
71
|
+
export declare function registerOrchestratorHandlers(server: PitDaemonServer, ctx: DaemonContext): void;
|
|
72
|
+
/**
|
|
73
|
+
* Register ALL daemon handlers on the given server, including health and
|
|
74
|
+
* shutdown. This is the single entry point for commands/daemon.ts — it
|
|
75
|
+
* replaces the three separate inline registrations that previously lived
|
|
76
|
+
* there.
|
|
77
|
+
*/
|
|
78
|
+
export declare function registerAllHandlers(server: PitDaemonServer, ctx: DaemonContext): void;
|
|
79
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/daemon/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAwB3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,KAAK,EAmBV,cAAc,EACd,cAAc,EACf,MAAM,eAAe,CAAC;AA0BvB;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,kBAAkB,CAsD3E;AAy9BD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAqD9E;AAMD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAqCjG;AA+ID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAMnF;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,aAAa,GACjB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CA2B9D;AAMD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAa9F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAIrF"}
|