baxian 1.2.25 → 1.2.27
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/agent/bootstrap-poller.d.ts.map +1 -1
- package/dist/agent/bootstrap-poller.js +0 -11
- package/dist/agent/bootstrap-poller.js.map +1 -1
- package/dist/agent/bootstrap.d.ts.map +1 -1
- package/dist/agent/bootstrap.js +0 -42
- package/dist/agent/bootstrap.js.map +1 -1
- package/dist/agent/diff-split.d.ts.map +1 -1
- package/dist/agent/diff-split.js +0 -4
- package/dist/agent/diff-split.js.map +1 -1
- package/dist/agent/image-input.d.ts.map +1 -1
- package/dist/agent/image-input.js +0 -3
- package/dist/agent/image-input.js.map +1 -1
- package/dist/agent/liveness.d.ts.map +1 -1
- package/dist/agent/liveness.js +0 -3
- package/dist/agent/liveness.js.map +1 -1
- package/dist/agent/manager.d.ts +0 -4
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +9 -951
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/pane-streamer-manager.d.ts.map +1 -1
- package/dist/agent/pane-streamer-manager.js +0 -9
- package/dist/agent/pane-streamer-manager.js.map +1 -1
- package/dist/agent/pane-streamer.d.ts.map +1 -1
- package/dist/agent/pane-streamer.js +2 -27
- package/dist/agent/pane-streamer.js.map +1 -1
- package/dist/agent/pet-input.d.ts.map +1 -1
- package/dist/agent/pet-input.js +0 -3
- package/dist/agent/pet-input.js.map +1 -1
- package/dist/agent/phase-signal-watcher.d.ts +0 -6
- package/dist/agent/phase-signal-watcher.d.ts.map +1 -1
- package/dist/agent/phase-signal-watcher.js +0 -41
- package/dist/agent/phase-signal-watcher.js.map +1 -1
- package/dist/agent/phase-signal.d.ts.map +1 -1
- package/dist/agent/phase-signal.js +1 -18
- package/dist/agent/phase-signal.js.map +1 -1
- package/dist/agent/preflight.d.ts.map +1 -1
- package/dist/agent/preflight.js +0 -12
- package/dist/agent/preflight.js.map +1 -1
- package/dist/agent/prompt.d.ts +0 -4
- package/dist/agent/prompt.d.ts.map +1 -1
- package/dist/agent/prompt.js +0 -66
- package/dist/agent/prompt.js.map +1 -1
- package/dist/agent/repo-store.d.ts.map +1 -1
- package/dist/agent/repo-store.js +0 -21
- package/dist/agent/repo-store.js.map +1 -1
- package/dist/agent/review-transport.d.ts +0 -1
- package/dist/agent/review-transport.d.ts.map +1 -1
- package/dist/agent/review-transport.js +0 -16
- package/dist/agent/review-transport.js.map +1 -1
- package/dist/agent/runner.d.ts +0 -3
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +0 -40
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tmux-probe-poller.d.ts.map +1 -1
- package/dist/agent/tmux-probe-poller.js +1 -20
- package/dist/agent/tmux-probe-poller.js.map +1 -1
- package/dist/agent/tmux.d.ts +0 -1
- package/dist/agent/tmux.d.ts.map +1 -1
- package/dist/agent/tmux.js +6 -45
- package/dist/agent/tmux.js.map +1 -1
- package/dist/agent/worktree.d.ts.map +1 -1
- package/dist/agent/worktree.js +0 -9
- package/dist/agent/worktree.js.map +1 -1
- package/dist/api/agents.d.ts.map +1 -1
- package/dist/api/agents.js +0 -5
- package/dist/api/agents.js.map +1 -1
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +0 -16
- package/dist/api/config.js.map +1 -1
- package/dist/api/hosts.d.ts.map +1 -1
- package/dist/api/hosts.js +0 -37
- package/dist/api/hosts.js.map +1 -1
- package/dist/api/pets.d.ts.map +1 -1
- package/dist/api/pets.js +0 -5
- package/dist/api/pets.js.map +1 -1
- package/dist/api/probe.d.ts.map +1 -1
- package/dist/api/probe.js +0 -5
- package/dist/api/probe.js.map +1 -1
- package/dist/api/projects.d.ts.map +1 -1
- package/dist/api/projects.js +0 -40
- package/dist/api/projects.js.map +1 -1
- package/dist/api/tasks.d.ts.map +1 -1
- package/dist/api/tasks.js +28 -15
- package/dist/api/tasks.js.map +1 -1
- package/dist/app.d.ts +2 -3
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +0 -14
- package/dist/app.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +0 -13
- package/dist/cli.js.map +1 -1
- package/dist/config/hot-reload.d.ts.map +1 -1
- package/dist/config/hot-reload.js +0 -3
- package/dist/config/hot-reload.js.map +1 -1
- package/dist/config/loader.d.ts +0 -27
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +0 -56
- package/dist/config/loader.js.map +1 -1
- package/dist/config/normalizer.js +0 -1
- package/dist/config/normalizer.js.map +1 -1
- package/dist/config/validator.d.ts.map +1 -1
- package/dist/config/validator.js +0 -16
- package/dist/config/validator.js.map +1 -1
- package/dist/event/broker.d.ts.map +1 -1
- package/dist/event/broker.js +0 -2
- package/dist/event/broker.js.map +1 -1
- package/dist/event/bus.d.ts.map +1 -1
- package/dist/event/bus.js +0 -2
- package/dist/event/bus.js.map +1 -1
- package/dist/event/handlers.d.ts.map +1 -1
- package/dist/event/handlers.js +2 -150
- package/dist/event/handlers.js.map +1 -1
- package/dist/event/publish.d.ts.map +1 -1
- package/dist/event/publish.js +0 -8
- package/dist/event/publish.js.map +1 -1
- package/dist/event/server-handlers.d.ts.map +1 -1
- package/dist/event/server-handlers.js +0 -80
- package/dist/event/server-handlers.js.map +1 -1
- package/dist/event/ws.d.ts.map +1 -1
- package/dist/event/ws.js +0 -5
- package/dist/event/ws.js.map +1 -1
- package/dist/github/mapper.d.ts.map +1 -1
- package/dist/github/mapper.js +0 -13
- package/dist/github/mapper.js.map +1 -1
- package/dist/github/poller.d.ts.map +1 -1
- package/dist/github/poller.js +0 -15
- package/dist/github/poller.js.map +1 -1
- package/dist/github/pr-conversation.d.ts +7 -0
- package/dist/github/pr-conversation.d.ts.map +1 -0
- package/dist/github/pr-conversation.js +175 -0
- package/dist/github/pr-conversation.js.map +1 -0
- package/dist/github/resolver.d.ts.map +1 -1
- package/dist/github/resolver.js +0 -1
- package/dist/github/resolver.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -26
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/restart-sentinel.d.ts.map +1 -1
- package/dist/lifecycle/restart-sentinel.js +0 -1
- package/dist/lifecycle/restart-sentinel.js.map +1 -1
- package/dist/lifecycle/restart.d.ts +0 -1
- package/dist/lifecycle/restart.d.ts.map +1 -1
- package/dist/lifecycle/restart.js +0 -3
- package/dist/lifecycle/restart.js.map +1 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +0 -19
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/git-url.d.ts +0 -2
- package/dist/shared/git-url.d.ts.map +1 -1
- package/dist/shared/git-url.js +0 -21
- package/dist/shared/git-url.js.map +1 -1
- package/dist/shared/types.d.ts +23 -54
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/skill/registry.d.ts.map +1 -1
- package/dist/skill/registry.js +3 -25
- package/dist/skill/registry.js.map +1 -1
- package/dist/state/agent-store.d.ts +0 -1
- package/dist/state/agent-store.d.ts.map +1 -1
- package/dist/state/agent-store.js +0 -5
- package/dist/state/agent-store.js.map +1 -1
- package/dist/state/error-record-store.d.ts.map +1 -1
- package/dist/state/error-record-store.js +1 -27
- package/dist/state/error-record-store.js.map +1 -1
- package/dist/state/lock.d.ts.map +1 -1
- package/dist/state/lock.js +1 -6
- package/dist/state/lock.js.map +1 -1
- package/dist/state/pet-store.d.ts.map +1 -1
- package/dist/state/pet-store.js +0 -10
- package/dist/state/pet-store.js.map +1 -1
- package/dist/state/post-approve-store.d.ts.map +1 -1
- package/dist/state/post-approve-store.js +0 -1
- package/dist/state/post-approve-store.js.map +1 -1
- package/dist/state/process-lock.d.ts +0 -2
- package/dist/state/process-lock.d.ts.map +1 -1
- package/dist/state/process-lock.js +0 -5
- package/dist/state/process-lock.js.map +1 -1
- package/dist/state/review-store.d.ts.map +1 -1
- package/dist/state/review-store.js +0 -3
- package/dist/state/review-store.js.map +1 -1
- package/dist/state/snapshot.d.ts.map +1 -1
- package/dist/state/snapshot.js +0 -19
- package/dist/state/snapshot.js.map +1 -1
- package/dist/state/task-store.d.ts.map +1 -1
- package/dist/state/task-store.js +0 -4
- package/dist/state/task-store.js.map +1 -1
- package/dist/terminal/attach.d.ts.map +1 -1
- package/dist/terminal/attach.js +0 -12
- package/dist/terminal/attach.js.map +1 -1
- package/dist/terminal/key-sanitizer.d.ts.map +1 -1
- package/dist/terminal/key-sanitizer.js +0 -2
- package/dist/terminal/key-sanitizer.js.map +1 -1
- package/dist/terminal/stream-ws.d.ts.map +1 -1
- package/dist/terminal/stream-ws.js +0 -5
- package/dist/terminal/stream-ws.js.map +1 -1
- package/dist/timing/backoff.d.ts.map +1 -1
- package/dist/timing/backoff.js.map +1 -1
- package/dist/web/assets/index-DPFouq3q.js +7 -0
- package/dist/web/assets/index-DvVOHfHm.css +1 -0
- package/dist/web/index.html +2 -2
- package/package.json +2 -2
- package/dist/web/assets/index-B94unmLb.js +0 -7
- package/dist/web/assets/index-DuER3MFf.css +0 -1
package/dist/state/lock.js
CHANGED
|
@@ -5,9 +5,6 @@ export class LockManager {
|
|
|
5
5
|
constructor(dir) {
|
|
6
6
|
this.dir = dir;
|
|
7
7
|
}
|
|
8
|
-
// owner: optional identity of the flow holding the lock (e.g. a taskId). Lets callers later
|
|
9
|
-
// distinguish "I still hold this lock" from "someone else does" without a separate registry —
|
|
10
|
-
// see ownerOf(). The file lock itself is anonymous; owner is the only ownership proof.
|
|
11
8
|
async acquire(agentId, owner) {
|
|
12
9
|
try {
|
|
13
10
|
await writeFile(this.path(agentId), JSON.stringify({ agentId, acquiredAt: new Date().toISOString(), ...(owner !== undefined ? { owner } : {}) }) + '\n', { flag: 'wx' });
|
|
@@ -21,7 +18,7 @@ export class LockManager {
|
|
|
21
18
|
try {
|
|
22
19
|
await unlink(this.path(agentId));
|
|
23
20
|
}
|
|
24
|
-
catch {
|
|
21
|
+
catch { }
|
|
25
22
|
}
|
|
26
23
|
async isLocked(agentId) {
|
|
27
24
|
try {
|
|
@@ -32,8 +29,6 @@ export class LockManager {
|
|
|
32
29
|
return false;
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
|
-
// Returns the owner recorded at acquire time, or null when the lock is absent / unowned /
|
|
36
|
-
// unreadable. Used to prove a specific flow still holds the lock (owner === expected).
|
|
37
32
|
async ownerOf(agentId) {
|
|
38
33
|
try {
|
|
39
34
|
const raw = await readFile(this.path(agentId), 'utf8');
|
package/dist/state/lock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/state/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAEnC,
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/state/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAEnC,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,KAAc;QAC3C,IAAI,CAAC;YACH,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAClB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EACnH,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;IACb,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;YACtD,OAAO,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pet-store.d.ts","sourceRoot":"","sources":["../../src/state/pet-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAErE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAKzD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,CAAC;CACxD;
|
|
1
|
+
{"version":3,"file":"pet-store.d.ts","sourceRoot":"","sources":["../../src/state/pet-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAErE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAKzD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,CAAC;CACxD;AAED,qBAAa,QAAQ;IAMP,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IALjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuD;IAClF,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,IAAI,CAAuC;gBAEtB,GAAG,CAAC,EAAE,MAAM,YAAA;IAEzC,QAAQ,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAKpC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAoB1B,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAY/C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,GAAG,IAAI,CAAC;IAgBzF,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBpC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKtD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAIlD,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAczE,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,QAAQ;YAMF,eAAe;YAgBf,gBAAgB;CAQ/B"}
|
package/dist/state/pet-store.js
CHANGED
|
@@ -4,9 +4,6 @@ import { randomUUID } from 'node:crypto';
|
|
|
4
4
|
import { isRecord } from '../shared/index.js';
|
|
5
5
|
const SAFE_PET_ID = /^[A-Za-z0-9_-]+$/;
|
|
6
6
|
const ASSIGNMENTS_FILE = 'assignments.json';
|
|
7
|
-
// Persists the shared Pet library (state/pets/<id>/) and per-agent assignments
|
|
8
|
-
// (state/pets/assignments.json). onChange fires for the agents whose petId changed
|
|
9
|
-
// so the EventPublisher can re-broadcast their snapshots (wired in index.ts).
|
|
10
7
|
export class PetStore {
|
|
11
8
|
dir;
|
|
12
9
|
listeners = new Set();
|
|
@@ -98,9 +95,6 @@ export class PetStore {
|
|
|
98
95
|
async delete(petId) {
|
|
99
96
|
if (!SAFE_PET_ID.test(petId))
|
|
100
97
|
return;
|
|
101
|
-
// Library removal happens INSIDE the lock together with the assignment cascade so a
|
|
102
|
-
// concurrent setAssignment(samePetId) either runs before us (we then clear its entry)
|
|
103
|
-
// or after us (its in-lock getMeta sees the pet gone and rejects) — never dangling.
|
|
104
98
|
const affected = await this.withLock(async () => {
|
|
105
99
|
const map = await this.readAssignments();
|
|
106
100
|
const ids = Object.keys(map).filter((agentId) => map[agentId] === petId);
|
|
@@ -126,8 +120,6 @@ export class PetStore {
|
|
|
126
120
|
return this.readAssignments();
|
|
127
121
|
}
|
|
128
122
|
async setAssignment(agentId, petId) {
|
|
129
|
-
// Existence check is INSIDE the lock so it can't pass against a pet that a concurrent
|
|
130
|
-
// delete() is removing under the same lock (TOCTOU → dangling assignment otherwise).
|
|
131
123
|
await this.withLock(async () => {
|
|
132
124
|
if (petId !== null) {
|
|
133
125
|
const meta = await this.getMeta(petId);
|
|
@@ -164,8 +156,6 @@ export class PetStore {
|
|
|
164
156
|
return {};
|
|
165
157
|
throw err;
|
|
166
158
|
}
|
|
167
|
-
// Only a missing file means "no assignments". Invalid JSON or a non-object payload is
|
|
168
|
-
// corruption — propagate so a later write can't silently overwrite tampered state.
|
|
169
159
|
const parsed = JSON.parse(content);
|
|
170
160
|
if (!isRecord(parsed))
|
|
171
161
|
throw new Error(`corrupt ${ASSIGNMENTS_FILE}: expected a JSON object`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pet-store.js","sourceRoot":"","sources":["../../src/state/pet-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,MAAM,WAAW,GAAG,kBAAkB,CAAC;AACvC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAQ5C
|
|
1
|
+
{"version":3,"file":"pet-store.js","sourceRoot":"","sources":["../../src/state/pet-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,MAAM,WAAW,GAAG,kBAAkB,CAAC;AACvC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAQ5C,MAAM,OAAO,QAAQ;IAMU;IALZ,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,UAAU,GAAG,IAAI,GAAG,EAA4C,CAAC;IAC1E,cAAc,GAA2B,EAAE,CAAC;IAC5C,IAAI,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEnD,YAA6B,GAAY;QAAZ,QAAG,GAAH,GAAG,CAAS;IAAG,CAAC;IAE7C,QAAQ,CAAC,EAAoB;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,OAAmC,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAyC,EAAE,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAC7E,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,GAAG,GAAc,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,SAAS;YAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAqB;QAChC,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,GAAY;YACpB,EAAE;YACF,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClF,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAyC,EAAE,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAC/E,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAa;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC/E,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAyC,EAAE,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAC/E,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC;YACzE,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,KAAK,MAAM,OAAO,IAAI,GAAG;oBAAE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;gBACxC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,KAAoB;QACvD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;;gBACnC,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAC1B,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEO,IAAI,CAAC,OAAe;QAC1B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS;YAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAEO,QAAQ,CAAI,EAAoB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACjD,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAyC,EAAE,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAC7E,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,gBAAgB,0BAA0B,CAAC,CAAC;QAC9F,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnF,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,GAA2B;QACxD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,SAAS,WAAW,CAAC,CAAU,EAAE,CAAU;IACzC,OAAO,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,IAAI,KAAU,CAAC;AAExB,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,IAAa;IAC7D,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IAC5D,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-approve-store.d.ts","sourceRoot":"","sources":["../../src/state/post-approve-store.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"post-approve-store.d.ts","sourceRoot":"","sources":["../../src/state/post-approve-store.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAiBD,qBAAa,gBAAgB;IAGf,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IAFjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;gBAEtC,GAAG,CAAC,EAAE,MAAM,YAAA;IAEnC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAY1D,GAAG,CACP,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,GACA,OAAO,CAAC,IAAI,CAAC;IAmBV,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOrE,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -30,7 +30,6 @@ export class PostApproveStore {
|
|
|
30
30
|
content = await readFile(this.path(taskId), 'utf-8');
|
|
31
31
|
}
|
|
32
32
|
catch (err) {
|
|
33
|
-
// ENOENT = no completion; corrupt/permission/IO errors must surface, not look "absent".
|
|
34
33
|
if (err?.code === 'ENOENT')
|
|
35
34
|
return null;
|
|
36
35
|
throw err;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-approve-store.js","sourceRoot":"","sources":["../../src/state/post-approve-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"post-approve-store.js","sourceRoot":"","sources":["../../src/state/post-approve-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,11 @@ export declare class ProcessLockError extends Error {
|
|
|
7
7
|
readonly existing?: ProcessLockInfo | undefined;
|
|
8
8
|
constructor(message: string, existing?: ProcessLockInfo | undefined);
|
|
9
9
|
}
|
|
10
|
-
/** Single-instance guard. Stale locks require manual cleanup (auto-unlink races). */
|
|
11
10
|
export declare class ProcessLock {
|
|
12
11
|
private acquired;
|
|
13
12
|
private ownerId;
|
|
14
13
|
private readonly path;
|
|
15
14
|
constructor(stateDir: string, fileName?: string);
|
|
16
|
-
/** Returns the lock info on success; throws {@link ProcessLockError} otherwise. */
|
|
17
15
|
acquire(): Promise<ProcessLockInfo>;
|
|
18
16
|
release(): Promise<void>;
|
|
19
17
|
releaseSync(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-lock.d.ts","sourceRoot":"","sources":["../../src/state/process-lock.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,gBAAiB,SAAQ,KAAK;aACI,QAAQ,CAAC,EAAE,eAAe;gBAA3D,OAAO,EAAE,MAAM,EAAkB,QAAQ,CAAC,EAAE,eAAe,YAAA;CAIxE;AAED,
|
|
1
|
+
{"version":3,"file":"process-lock.d.ts","sourceRoot":"","sources":["../../src/state/process-lock.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,gBAAiB,SAAQ,KAAK;aACI,QAAQ,CAAC,EAAE,eAAe;gBAA3D,OAAO,EAAE,MAAM,EAAkB,QAAQ,CAAC,EAAE,eAAe,YAAA;CAIxE;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB;IAIpD,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAyCnC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC9B,WAAW,IAAI,IAAI;IA6BnB,UAAU,IAAI,OAAO;IAIrB,OAAO,IAAI,MAAM;YAIH,oBAAoB;CA+BnC"}
|
|
@@ -12,7 +12,6 @@ export class ProcessLockError extends Error {
|
|
|
12
12
|
this.name = 'ProcessLockError';
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
/** Single-instance guard. Stale locks require manual cleanup (auto-unlink races). */
|
|
16
15
|
export class ProcessLock {
|
|
17
16
|
acquired = false;
|
|
18
17
|
ownerId = null;
|
|
@@ -20,7 +19,6 @@ export class ProcessLock {
|
|
|
20
19
|
constructor(stateDir, fileName = LOCK_FILE) {
|
|
21
20
|
this.path = join(stateDir, fileName);
|
|
22
21
|
}
|
|
23
|
-
/** Returns the lock info on success; throws {@link ProcessLockError} otherwise. */
|
|
24
22
|
async acquire() {
|
|
25
23
|
const ownerId = randomUUID();
|
|
26
24
|
const info = {
|
|
@@ -89,7 +87,6 @@ export class ProcessLock {
|
|
|
89
87
|
throw err;
|
|
90
88
|
}
|
|
91
89
|
}
|
|
92
|
-
// Best-effort sync release for `process.once('exit', ...)` where async fs is dropped.
|
|
93
90
|
releaseSync() {
|
|
94
91
|
if (!this.acquired)
|
|
95
92
|
return;
|
|
@@ -120,7 +117,6 @@ export class ProcessLock {
|
|
|
120
117
|
this.ownerId = null;
|
|
121
118
|
}
|
|
122
119
|
catch {
|
|
123
|
-
// best-effort: process is exiting anyway
|
|
124
120
|
}
|
|
125
121
|
}
|
|
126
122
|
isAcquired() {
|
|
@@ -168,7 +164,6 @@ function isAlive(pid) {
|
|
|
168
164
|
return true;
|
|
169
165
|
}
|
|
170
166
|
catch (err) {
|
|
171
|
-
// EPERM: process exists, owned by another user.
|
|
172
167
|
return err?.code === 'EPERM';
|
|
173
168
|
}
|
|
174
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-lock.js","sourceRoot":"","sources":["../../src/state/process-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,SAAS,GAAG,qBAAqB,CAAC;AACxC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAQ7B,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACI;IAA7C,YAAY,OAAe,EAAkB,QAA0B;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,aAAQ,GAAR,QAAQ,CAAkB;QAErE,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,
|
|
1
|
+
{"version":3,"file":"process-lock.js","sourceRoot":"","sources":["../../src/state/process-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-store.d.ts","sourceRoot":"","sources":["../../src/state/review-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"review-store.d.ts","sourceRoot":"","sources":["../../src/state/review-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAKjE,qBAAa,WAAW;IAGV,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IAFjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAE5B,GAAG,CAAC,EAAE,MAAM,YAAA;IAEnC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAYtF,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5E,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAiCrE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -2,9 +2,6 @@ import { mkdir, readFile, readdir, rename, rm, writeFile } from 'node:fs/promise
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
const ROUND_FILE_RE = /^round-(\d+)\.json$/;
|
|
4
4
|
const PHASES = ['spec', 'code'];
|
|
5
|
-
// Server-mode review persistence: state/reviews/{taskId}/{phase}/round-N.json.
|
|
6
|
-
// Phase subdirs prevent spec round-1 colliding with code round-1 (reviewRound
|
|
7
|
-
// resets to 0 on the spec→code transition). Data outlives the task (audit).
|
|
8
5
|
export class ReviewStore {
|
|
9
6
|
dir;
|
|
10
7
|
memory = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-store.js","sourceRoot":"","sources":["../../src/state/review-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAC5C,MAAM,MAAM,GAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"review-store.js","sourceRoot":"","sources":["../../src/state/review-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/state/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE;QACZ,UAAU,EAAE,MAAM,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3D,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAC;KAC/E,CAAC;IACF,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAAC,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;KAAE,CAAC;IACjH,SAAS,EAAE;QAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;KAAE,CAAC;IAC9D,sBAAsB,EAAE;QAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,sBAAsB,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/state/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE;QACZ,UAAU,EAAE,MAAM,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3D,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAC;KAC/E,CAAC;IACF,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAAC,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;KAAE,CAAC;IACjH,SAAS,EAAE;QAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;KAAE,CAAC;IAC9D,sBAAsB,EAAE;QAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,sBAAsB,CAAA;KAAE,CAAC;IACxE,gBAAgB,CAAC,EAAE;QACjB,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;QAC/E,sBAAsB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAChE,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,iBAAiB,CAAC;KACvD,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;KAC5D,CAAC;CACH;AAOD,wBAAgB,aAAa,CAC3B,UAAU,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC7C,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,eAAe,EAAE,sBAAsB,EACvC,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,oBAAoB,CAAC,EAAE,iBAAiB,EACxC,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAkBf;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,eAAe,EAAE,sBAAsB,EACvC,IAAI,EAAE,SAAS,GAAG,SAAS,GAC1B,kBAAkB,CAiBpB;AAkFD,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAmB5F;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,gBAAgB,EACrB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAe/B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAO7D"}
|
package/dist/state/snapshot.js
CHANGED
|
@@ -1,22 +1,11 @@
|
|
|
1
1
|
import { REVIEW_VERDICT_TIMEOUT_MS } from '../shared/index.js';
|
|
2
2
|
const WORKING_TASK_STATUSES = new Set(['in_progress', 'fixing']);
|
|
3
|
-
// max_rounds: dev is reserved awaiting a human decision (continue/complete/cancel) → waiting, not error.
|
|
4
3
|
const WAITING_TASK_STATUSES = new Set(['review', 'approved', 'merge-ready', 'ready', 'max_rounds']);
|
|
5
4
|
const ERROR_TASK_STATUSES = new Set(['failed']);
|
|
6
5
|
const UNREACHABLE_ACTIVE_TASK_GRACE_MS = 30_000;
|
|
7
6
|
export function agentSnapshot(configured, binding, tmuxObservation, task, latestBootstrapError, petId) {
|
|
8
7
|
const runtimeStatus = deriveRuntimeStatus(binding, tmuxObservation, task);
|
|
9
|
-
// When PENDING_IDLE is gated by task status, also hide the matching error card / reason /
|
|
10
|
-
// message — otherwise the UI keeps a red "waiting on user input" banner that points operators
|
|
11
|
-
// at a terminal they shouldn't touch (the task is on GitHub now, not in the dev's pane).
|
|
12
8
|
const suppressPendingIdle = shouldGatePendingIdle(tmuxObservation, task, binding?.id);
|
|
13
|
-
// Bootstrap error visibility is gated by errorRecordStore presence, not by binding.repoPath:
|
|
14
|
-
// (a) never-dispatched agents never get a binding (runSingleTarget skips AgentStore.update on
|
|
15
|
-
// existing=undefined), so repoPath-based suppression keeps showing stale errors forever;
|
|
16
|
-
// (b) once binding.repoPath is set by an early success, a later failure would be SUPPRESSED
|
|
17
|
-
// and the user can't see the new regression.
|
|
18
|
-
// Truth source is now "is there a current bootstrap error record?" — successful bootstraps
|
|
19
|
-
// purge their agent's bootstrap records (see ErrorRecordStore.purgeBootstrapForAgent).
|
|
20
9
|
const showBootstrapError = !!latestBootstrapError;
|
|
21
10
|
return {
|
|
22
11
|
id: configured.id,
|
|
@@ -55,9 +44,6 @@ export function deriveRuntimeStatus(binding, tmuxObservation, task) {
|
|
|
55
44
|
}
|
|
56
45
|
return deriveTaskBoundStatus(task, binding.id);
|
|
57
46
|
}
|
|
58
|
-
// PENDING_IDLE is a soft inference (screen idle ≥ N min); only trust it while dev is actively
|
|
59
|
-
// expected at the terminal (task in_progress/fixing). PENDING_HUMAN — menu UI — is a physical
|
|
60
|
-
// signal, never gated.
|
|
61
47
|
function shouldGatePendingIdle(tmuxObservation, task, agentId) {
|
|
62
48
|
if (tmuxObservation.runtimeStatusHint !== 'pending')
|
|
63
49
|
return false;
|
|
@@ -78,8 +64,6 @@ function deriveTaskBoundStatus(task, agentId) {
|
|
|
78
64
|
return 'waiting';
|
|
79
65
|
if (ERROR_TASK_STATUSES.has(task.status))
|
|
80
66
|
return 'error';
|
|
81
|
-
// Still bound to a merged task = post-merge branch cleanup + /clear in flight. The agent is
|
|
82
|
-
// not yet free for the next task (Start stays disabled), so report 'working' not 'idle'.
|
|
83
67
|
if (task.status === 'merged')
|
|
84
68
|
return 'working';
|
|
85
69
|
return 'idle';
|
|
@@ -121,9 +105,6 @@ async function loadLatestBootstrapByAgent(ctx) {
|
|
|
121
105
|
return new Map();
|
|
122
106
|
}
|
|
123
107
|
}
|
|
124
|
-
// Pet assignment is a cosmetic display concern; a corrupt assignments file (which the
|
|
125
|
-
// PetStore write path refuses to overwrite by throwing) must not take down the agent
|
|
126
|
-
// dashboard. Degrade to "no pet" with a warning, mirroring loadLatestBootstrap* above.
|
|
127
108
|
async function loadPetAssignments(ctx) {
|
|
128
109
|
if (!ctx.petStore)
|
|
129
110
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/state/snapshot.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/state/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-store.d.ts","sourceRoot":"","sources":["../../src/state/task-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"task-store.d.ts","sourceRoot":"","sources":["../../src/state/task-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAiDD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,QAAQ,CAAC;AACnD,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAEpF,qBAAa,SAAS;IAGR,OAAO,CAAC,GAAG;IAFvB,OAAO,CAAC,SAAS,CAAgC;gBAE7B,GAAG,EAAE,MAAM;IAE/B,QAAQ,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAKrC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAW1C,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IASpC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA0B/C,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IASzB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAavC,OAAO,CAAC,IAAI;IAUN,kBAAkB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAmCzE,OAAO,CAAC,IAAI;CAGb"}
|
package/dist/state/task-store.js
CHANGED
|
@@ -19,7 +19,6 @@ function sanitizeTask(state) {
|
|
|
19
19
|
if (out.signalToken === undefined && typeof raw.specMarkerToken === 'string') {
|
|
20
20
|
out.signalToken = raw.specMarkerToken;
|
|
21
21
|
}
|
|
22
|
-
// Hand-edited JSON can contain null, wrong-typed, or whitespace-only fields.
|
|
23
22
|
if (typeof out.title !== 'string' || out.title.trim() === '') {
|
|
24
23
|
const legacyIssue = raw.issueNumber;
|
|
25
24
|
out.title = legacyIssue
|
|
@@ -54,8 +53,6 @@ export class TaskStore {
|
|
|
54
53
|
content = await readFile(this.path(id), 'utf-8');
|
|
55
54
|
}
|
|
56
55
|
catch (err) {
|
|
57
|
-
// Only "file absent" is a real null. Corrupt/permission/IO errors must surface, not
|
|
58
|
-
// masquerade as "task missing" — else the state machine wrongly releases a live binding.
|
|
59
56
|
if (err?.code === 'ENOENT')
|
|
60
57
|
return null;
|
|
61
58
|
throw err;
|
|
@@ -113,7 +110,6 @@ export class TaskStore {
|
|
|
113
110
|
await unlink(this.path(id));
|
|
114
111
|
}
|
|
115
112
|
catch (err) {
|
|
116
|
-
// ENOENT is idempotent; other errors mean file still on disk → don't broadcast.
|
|
117
113
|
const code = err?.code;
|
|
118
114
|
if (code !== 'ENOENT') {
|
|
119
115
|
console.error(`[TaskStore] delete ${id} failed; not broadcasting:`, err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-store.js","sourceRoot":"","sources":["../../src/state/task-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB;IAC7D,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,qBAAqB;IAC7F,oBAAoB,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa;IACjG,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ;IAC5C,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,qBAAqB;CAC1F,CAAC;
|
|
1
|
+
{"version":3,"file":"task-store.js","sourceRoot":"","sources":["../../src/state/task-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../src/terminal/attach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGlE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../src/terminal/attach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGlE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,aAAa,CAgClG"}
|
package/dist/terminal/attach.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import { shellQuote, wrapRemoteCommand, sshAuthArgs, sshTarget } from '../agent/runner.js';
|
|
2
|
-
// `host` is the resolved registry host (caller resolves the agent's ref). NO `-d`: it would detach
|
|
3
|
-
// real SSH users sharing the session. No mux/keepalive here — an interactive attach must survive blips.
|
|
4
|
-
// focus-events (server option) must be on BEFORE the client attaches, or tmux won't request focus
|
|
5
|
-
// reporting from its terminal — set it at attach time so pre-existing servers gain it too.
|
|
6
|
-
// set-clipboard external: tmux's own copy-mode copies reach the web client's clipboard via OSC 52,
|
|
7
|
-
// while raw OSC 52 emitted directly by pane apps is ignored (a tmux-capable process can still copy).
|
|
8
2
|
export function buildAttachInteractiveCommand(agent, host) {
|
|
9
3
|
if (agent.mode === 'remote') {
|
|
10
4
|
if (!host)
|
|
@@ -14,9 +8,7 @@ export function buildAttachInteractiveCommand(agent, host) {
|
|
|
14
8
|
args: [
|
|
15
9
|
...sshAuthArgs(host),
|
|
16
10
|
'-o', 'ConnectTimeout=10',
|
|
17
|
-
// Only force -p when the host has an explicit port; inline hosts without one keep ~/.ssh/config Port.
|
|
18
11
|
...(host.port !== undefined ? ['-p', String(host.port)] : []),
|
|
19
|
-
// Disable SSH's `~` escape — line-anchored `~.` in user keystrokes would close the connection.
|
|
20
12
|
'-e', 'none',
|
|
21
13
|
'-t',
|
|
22
14
|
'--',
|
|
@@ -27,10 +19,6 @@ export function buildAttachInteractiveCommand(agent, host) {
|
|
|
27
19
|
],
|
|
28
20
|
};
|
|
29
21
|
}
|
|
30
|
-
// sh -c so a rejected option can't block the attach. tmux's own `;` sequence aborts on the first
|
|
31
|
-
// error and -q only suppresses *unknown options*, not a bad value — a tmux too old for the `external`
|
|
32
|
-
// set-clipboard choice (pre-2.6) would otherwise fail and skip attach-session. Each option is its own
|
|
33
|
-
// best-effort command; `exec` then hands the pty straight to the attach (no lingering shell).
|
|
34
22
|
const target = shellQuote(`=${agent.id}`);
|
|
35
23
|
return {
|
|
36
24
|
file: 'sh',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/terminal/attach.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/terminal/attach.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAQ3F,MAAM,UAAU,6BAA6B,CAAC,KAAkB,EAAE,IAAiB;IACjF,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC5E,OAAO;YACL,IAAI,EAAE,KAAK;YACX,IAAI,EAAE;gBACJ,GAAG,WAAW,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,mBAAmB;gBACzB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,IAAI,EAAE,MAAM;gBACZ,IAAI;gBACJ,IAAI;gBACJ,SAAS,CAAC,IAAI,CAAC;gBACf,iBAAiB,CACf,0DAA0D;oBACxD,iEAAiE;oBACjE,6BAA6B,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAC3D,mBAAmB,CACpB;aACF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO;QACL,IAAI,EAAE,IAAI;QACV,IAAI,EAAE;YACJ,IAAI;YACJ,2DAA2D;gBACzD,iEAAiE;gBACjE,kCAAkC,MAAM,EAAE;SAC7C;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-sanitizer.d.ts","sourceRoot":"","sources":["../../src/terminal/key-sanitizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"key-sanitizer.d.ts","sourceRoot":"","sources":["../../src/terminal/key-sanitizer.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// Strip tmux prefix byte (0x02) — paired with session prefix=C-b lock in AgentManager
|
|
2
|
-
// to keep one web subscriber from invoking detach-client / new-window / etc on shared pane.
|
|
3
1
|
const TMUX_PREFIX_RE = /\x02/g;
|
|
4
2
|
export function sanitizeWebInput(data) {
|
|
5
3
|
if (data.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-sanitizer.js","sourceRoot":"","sources":["../../src/terminal/key-sanitizer.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"key-sanitizer.js","sourceRoot":"","sources":["../../src/terminal/key-sanitizer.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-ws.d.ts","sourceRoot":"","sources":["../../src/terminal/stream-ws.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"stream-ws.d.ts","sourceRoot":"","sources":["../../src/terminal/stream-ws.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAgC7E,wBAAsB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BxE"}
|
|
@@ -5,13 +5,11 @@ try {
|
|
|
5
5
|
ptyModule = await import('node-pty');
|
|
6
6
|
}
|
|
7
7
|
catch {
|
|
8
|
-
// node-pty native build unavailable
|
|
9
8
|
}
|
|
10
9
|
const NOOP_UNSUB = () => undefined;
|
|
11
10
|
export async function streamWsPlugin(app) {
|
|
12
11
|
app.get('/stream', {
|
|
13
12
|
websocket: true,
|
|
14
|
-
// Auth must run before node-pty probe.
|
|
15
13
|
preValidation: async (request, reply) => {
|
|
16
14
|
const origin = request.headers.origin;
|
|
17
15
|
const host = request.headers.host;
|
|
@@ -45,7 +43,6 @@ function handleConnection(app, socket, request) {
|
|
|
45
43
|
console.warn('[stream-ws] send failed (likely client closed):', err);
|
|
46
44
|
}
|
|
47
45
|
}
|
|
48
|
-
/** Idempotent; the only path that decrements refcount. */
|
|
49
46
|
function releaseSub(subscriberId) {
|
|
50
47
|
const s = subs.get(subscriberId);
|
|
51
48
|
if (!s || s.phase === 'released')
|
|
@@ -82,7 +79,6 @@ function handleConnection(app, socket, request) {
|
|
|
82
79
|
});
|
|
83
80
|
return;
|
|
84
81
|
}
|
|
85
|
-
// Sync reservation precedes first await so concurrent unsub can find this entry.
|
|
86
82
|
const subState = { agentId, mode, phase: 'pending' };
|
|
87
83
|
subs.set(subscriberId, subState);
|
|
88
84
|
let agentEntry = agentSubs.get(agentId);
|
|
@@ -391,7 +387,6 @@ function handleConnection(app, socket, request) {
|
|
|
391
387
|
releaseSub(sid);
|
|
392
388
|
}
|
|
393
389
|
});
|
|
394
|
-
/** 'close' handles per-sub cleanup; this listener just prevents crash. */
|
|
395
390
|
socket.on('error', (err) => {
|
|
396
391
|
console.warn('[stream-ws] socket error:', err);
|
|
397
392
|
});
|