@monotykamary/localterm-server 2.49.0 → 2.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,35 @@
1
+ import { EventEmitter } from "node:events";
2
+ import type { Automation } from "./types.js";
3
+ import { type GitRefEventName } from "./git-diff-watcher.js";
4
+ interface AutomationGitWatcherEvents {
5
+ refEvent: [eventName: GitRefEventName, repoRoot: string];
6
+ }
7
+ interface WatchHandle {
8
+ close: () => void;
9
+ unref?: () => void;
10
+ }
11
+ type WatchFn = (target: string, options: {
12
+ recursive: boolean;
13
+ }, listener: (event: string, filename: string | null) => void) => WatchHandle;
14
+ interface AutomationGitWatcherOptions {
15
+ throttleMs: number;
16
+ watch?: WatchFn;
17
+ }
18
+ export declare class AutomationGitWatcher extends EventEmitter<AutomationGitWatcherEvents> {
19
+ private readonly entries;
20
+ private readonly watch;
21
+ private readonly throttleMs;
22
+ private disposed;
23
+ constructor(options: AutomationGitWatcherOptions);
24
+ sync(automations: Automation[]): void;
25
+ dispose(): void;
26
+ private startEntry;
27
+ private discoverExistingRepos;
28
+ private onFsEvent;
29
+ private route;
30
+ private seedRepo;
31
+ private classify;
32
+ private stopEntry;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=automation-git-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-git-watcher.d.ts","sourceRoot":"","sources":["../src/automation-git-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAKL,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;AAG/B,UAAU,0BAA0B;IAKlC,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;CAC1D;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,KAAK,OAAO,GAAG,CACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,EAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,KACvD,WAAW,CAAC;AAEjB,UAAU,2BAA2B;IAInC,UAAU,EAAE,MAAM,CAAC;IAGnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAyFD,qBAAa,oBAAqB,SAAQ,YAAY,CAAC,0BAA0B,CAAC;IAChF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,2BAA2B;IAWhD,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAiBrC,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,KAAK;IAkBb,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,SAAS;CAYlB"}
@@ -0,0 +1,235 @@
1
+ import { EventEmitter } from "node:events";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { GIT_DIFF_WATCHER_EVENT_NAMES, buildGitSnapshot, classifyGitChanges, resolveGitDir, } from "./git-diff-watcher.js";
5
+ import { Throttle } from "./utils/throttle.js";
6
+ // The selectable git ref events an event automation can match. Shared with the
7
+ // per-session GitDiffWatcher table, minus the internal `git-dirty` (deliberately
8
+ // not user-selectable — see schemas.ts).
9
+ const GIT_REF_EVENT_NAMES = GIT_DIFF_WATCHER_EVENT_NAMES.filter((name) => name !== "git-dirty");
10
+ // The baseline for a repo that appears out of nothing (a brand-new repo created
11
+ // after the watch armed). Compared via classifyGitChanges against its first
12
+ // observed snapshot so the refs that "appeared" (a branch, HEAD, …) are emitted
13
+ // even when `git init` + first commit land in one fs.watch batch — there is no
14
+ // pre-state to diff against, so the empty tree is the pre-state.
15
+ const EMPTY_GIT_SNAPSHOT = {
16
+ head: null,
17
+ refs: new Map(),
18
+ special: {
19
+ fetchHead: null,
20
+ origHead: null,
21
+ mergeHead: null,
22
+ cherryPickHead: null,
23
+ rebaseMergeExists: false,
24
+ rebaseApplyExists: false,
25
+ },
26
+ };
27
+ const hasGitEvent = (automation) => {
28
+ if (automation.trigger.kind !== "event")
29
+ return false;
30
+ const { events } = automation.trigger;
31
+ return GIT_REF_EVENT_NAMES.some((event) => events.includes(event));
32
+ };
33
+ // A path is under a repo's `.git` if it contains `/.git/` or ends in `/.git`.
34
+ // Cheap substring reject for the working-tree/build noise (source edits,
35
+ // node_modules churn) that dominates a recursive watch over a container of
36
+ // repos — only `.git`-adjacent paths reach the stat-ing resolveGitDir.
37
+ const isUnderGitDir = (absolutePath) => {
38
+ const sep = path.sep;
39
+ return absolutePath.includes(`${sep}.git${sep}`) || absolutePath.endsWith(`${sep}.git`);
40
+ };
41
+ // Dependency caches (npm/yarn git-dep clones land a `.git` under node_modules)
42
+ // are never projects an automation means to watch. Excluding the whole
43
+ // `node_modules` subtree avoids spurious runs from installs; the per-session
44
+ // GitDiffWatcher sidesteps this by only ever classifying its own repo, but this
45
+ // watcher resolves the specific affected repo from the event path.
46
+ const isInsideNodeModules = (absolutePath) => absolutePath.includes(`${path.sep}node_modules${path.sep}`);
47
+ // Daemon-global, session-independent git detection for event automations.
48
+ // The per-session GitDiffWatcher only fires when a localterm PTY is live in the
49
+ // affected repo: a commit from a non-localterm process (a headless agent, an
50
+ // editor, an SSH session) or in a repo with no open tab produces no event.
51
+ // This watcher arms one recursive fs.watch per watched cwd — the unique cwds
52
+ // of enabled, active event automations that select at least one git event —
53
+ // and on `.git` changes classifies the affected repo, reusing buildGitSnapshot
54
+ // + classifyGitChanges, emitting ref events that feed SessionEventManager
55
+ // exactly like the per-session path. Source-agnostic: catches any git state
56
+ // change regardless of which process caused it (path-shim and shell-hook gaps
57
+ // alike).
58
+ //
59
+ // Existing repos under the cwd are eager-seeded when the watch arms (a walk
60
+ // that stops descending at the first `.git` and skips `node_modules`, so it
61
+ // visits only the container and repo roots — milliseconds even for a tree of
62
+ // many repos). That baseline lets the first change after arming classify
63
+ // correctly (a benign `.git` write from `git status`/`git reflog` produces no
64
+ // event, and a commit on an existing branch emits `git-commit`, not a spurious
65
+ // `git-branch-change`). Repos created after arming are discovered lazily: a
66
+ // bare `git init` seeds the empty tree silently, and a repo that appears with
67
+ // refs already present (e.g. `git init` + first commit landing in one fs.watch
68
+ // batch) emits the refs that "appeared" against the empty baseline.
69
+ export class AutomationGitWatcher extends EventEmitter {
70
+ entries = new Map();
71
+ watch;
72
+ throttleMs;
73
+ disposed = false;
74
+ constructor(options) {
75
+ super();
76
+ this.throttleMs = options.throttleMs;
77
+ this.watch =
78
+ options.watch ??
79
+ ((target, watchOptions, listener) => fs.watch(target, watchOptions, (event, filename) => listener(event, filename)));
80
+ }
81
+ // Reconcile live watchers with the desired set of event-automation cwds.
82
+ // Idempotent and cheap, so it can be called after any automation mutation.
83
+ sync(automations) {
84
+ if (this.disposed)
85
+ return;
86
+ const desired = new Set();
87
+ for (const automation of automations) {
88
+ if (!automation.enabled)
89
+ continue;
90
+ if (automation.lifecycle !== "active")
91
+ continue;
92
+ if (!hasGitEvent(automation))
93
+ continue;
94
+ desired.add(path.resolve(automation.cwd));
95
+ }
96
+ for (const cwd of [...this.entries.keys()]) {
97
+ if (!desired.has(cwd))
98
+ this.stopEntry(cwd);
99
+ }
100
+ for (const cwd of desired) {
101
+ if (!this.entries.has(cwd))
102
+ this.startEntry(cwd);
103
+ }
104
+ }
105
+ dispose() {
106
+ this.disposed = true;
107
+ for (const cwd of [...this.entries.keys()])
108
+ this.stopEntry(cwd);
109
+ this.removeAllListeners();
110
+ }
111
+ startEntry(cwd) {
112
+ const entry = { handle: null, repos: new Map() };
113
+ try {
114
+ const handle = this.watch(cwd, { recursive: true }, (event, filename) => this.onFsEvent(cwd, event, filename));
115
+ handle.unref?.();
116
+ entry.handle = handle;
117
+ }
118
+ catch {
119
+ // cwd doesn't exist, or recursive watch is unavailable / exceeds inotify
120
+ // limits on this platform. Eager-seeding still runs below so existing
121
+ // repos get a baseline; the per-session GitDiffWatcher covers live
122
+ // changes, and a later sync (after the dir exists or limits free) retries
123
+ // the watch.
124
+ }
125
+ this.discoverExistingRepos(entry, cwd);
126
+ this.entries.set(cwd, entry);
127
+ }
128
+ // Walk the cwd tree and seed a baseline snapshot for every repo already on
129
+ // disk, so the first change after arming classifies against a real pre-state.
130
+ // Stops descending the moment a `.git` is found (a repo's working tree is
131
+ // covered for *changes* by the recursive fs.watch; nesting into it would
132
+ // re-traverse the 20k-dir source tree for no benefit) and never enters
133
+ // `node_modules`, so it visits only the container and repo roots.
134
+ discoverExistingRepos(entry, cwd) {
135
+ const walk = (dir) => {
136
+ let entries;
137
+ try {
138
+ entries = fs.readdirSync(dir, { withFileTypes: true });
139
+ }
140
+ catch {
141
+ return;
142
+ }
143
+ if (entries.some((dirent) => dirent.name === ".git")) {
144
+ const resolved = resolveGitDir(dir);
145
+ if (resolved)
146
+ this.seedRepo(entry, resolved.gitDir, resolved.repoRoot);
147
+ return;
148
+ }
149
+ for (const child of entries) {
150
+ if (!child.isDirectory())
151
+ continue;
152
+ if (child.name === "node_modules")
153
+ continue;
154
+ walk(path.join(dir, child.name));
155
+ }
156
+ };
157
+ walk(cwd);
158
+ }
159
+ onFsEvent(cwd, _event, filename) {
160
+ if (this.disposed || filename === null)
161
+ return;
162
+ const entry = this.entries.get(cwd);
163
+ if (!entry)
164
+ return;
165
+ // fs.watch delivers `filename` relative to the watched cwd; resolve to an
166
+ // absolute path. (If a platform delivers an absolute filename, resolve
167
+ // returns it as-is.)
168
+ const absolutePath = path.resolve(cwd, filename);
169
+ if (!isUnderGitDir(absolutePath))
170
+ return;
171
+ if (isInsideNodeModules(absolutePath))
172
+ return;
173
+ const resolved = resolveGitDir(path.dirname(absolutePath));
174
+ if (!resolved)
175
+ return;
176
+ this.route(entry, resolved.gitDir, resolved.repoRoot);
177
+ }
178
+ route(entry, gitDir, repoRoot) {
179
+ let state = entry.repos.get(gitDir);
180
+ if (!state) {
181
+ // A repo the eager seed didn't find — created after arming, or nested
182
+ // under another repo's working tree. Seed it now. If it already has refs
183
+ // (e.g. `git init` + first commit landed in one fs.watch batch), there is
184
+ // no pre-state to diff, so emit the refs that appeared against the empty
185
+ // baseline; a bare `git init` (no refs) seeds silently.
186
+ state = this.seedRepo(entry, gitDir, repoRoot);
187
+ if (state.snapshot && state.snapshot.refs.size > 0) {
188
+ for (const eventName of classifyGitChanges(EMPTY_GIT_SNAPSHOT, state.snapshot)) {
189
+ this.emit("refEvent", eventName, repoRoot);
190
+ }
191
+ }
192
+ }
193
+ state.throttle.trigger();
194
+ }
195
+ seedRepo(entry, gitDir, repoRoot) {
196
+ const state = {
197
+ repoRoot,
198
+ snapshot: buildGitSnapshot(gitDir),
199
+ throttle: new Throttle(() => this.classify(entry, gitDir), this.throttleMs),
200
+ };
201
+ entry.repos.set(gitDir, state);
202
+ return state;
203
+ }
204
+ classify(entry, gitDir) {
205
+ if (this.disposed)
206
+ return;
207
+ const state = entry.repos.get(gitDir);
208
+ if (!state)
209
+ return;
210
+ const current = buildGitSnapshot(gitDir);
211
+ const previous = state.snapshot;
212
+ state.snapshot = current;
213
+ if (!previous || !current)
214
+ return;
215
+ for (const eventName of classifyGitChanges(previous, current)) {
216
+ this.emit("refEvent", eventName, state.repoRoot);
217
+ }
218
+ }
219
+ stopEntry(cwd) {
220
+ const entry = this.entries.get(cwd);
221
+ if (!entry)
222
+ return;
223
+ try {
224
+ entry.handle?.close();
225
+ }
226
+ catch {
227
+ /* already closed */
228
+ }
229
+ for (const state of entry.repos.values())
230
+ state.throttle.dispose();
231
+ entry.repos.clear();
232
+ this.entries.delete(cwd);
233
+ }
234
+ }
235
+ //# sourceMappingURL=automation-git-watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-git-watcher.js","sourceRoot":"","sources":["../src/automation-git-watcher.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- export declare const isExecutable: (binaryPath: string) => boolean;
2
1
  export declare const getDefaultShell: () => string;
3
2
  export declare const resolveShellOverride: (shell: string | undefined | null) => string | undefined;
4
3
  export declare const listKnownShells: () => string[];
@@ -1 +1 @@
1
- {"version":3,"file":"default-shell.d.ts","sourceRoot":"","sources":["../src/default-shell.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,KAAG,OAOjD,CAAC;AAEF,eAAO,MAAM,eAAe,QAAO,MAyBlC,CAAC;AAQF,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,GAAG,SAAS,GAAG,IAAI,KAAG,MAAM,GAAG,SAKhF,CAAC;AAwBF,eAAO,MAAM,eAAe,QAAO,MAAM,EAWxC,CAAC"}
1
+ {"version":3,"file":"default-shell.d.ts","sourceRoot":"","sources":["../src/default-shell.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,eAAe,QAAO,MAyBlC,CAAC;AAQF,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,GAAG,SAAS,GAAG,IAAI,KAAG,MAAM,GAAG,SAKhF,CAAC;AAwBF,eAAO,MAAM,eAAe,QAAO,MAAM,EAWxC,CAAC"}
@@ -2,7 +2,7 @@ import { accessSync, constants as fsConstants } from "node:fs";
2
2
  import { readFileSync } from "node:fs";
3
3
  import os from "node:os";
4
4
  import { DEFAULT_SHELL_FALLBACK } from "./constants.js";
5
- export const isExecutable = (binaryPath) => {
5
+ const isExecutable = (binaryPath) => {
6
6
  try {
7
7
  accessSync(binaryPath, fsConstants.X_OK);
8
8
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"default-shell.js","sourceRoot":"","sources":["../src/default-shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-shell.js","sourceRoot":"","sources":["../src/default-shell.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  import { EventEmitter } from "node:events";
2
+ export interface GitDirResult {
3
+ gitDir: string;
4
+ repoRoot: string;
5
+ }
6
+ export declare const resolveGitDir: (cwd: string) => GitDirResult | null;
2
7
  export declare const GIT_DIFF_WATCHER_EVENT_NAMES: ["git-dirty", "git-head-change", "git-branch-change", "git-tag-change", "git-remote-change", "git-stash-change", "git-commit", "git-checkout", "git-reset", "git-merge", "git-rebase", "git-cherry-pick", "git-fetch", "git-stash", "git-tag"];
3
8
  type GitDiffWatcherEventName = (typeof GIT_DIFF_WATCHER_EVENT_NAMES)[number];
4
9
  export type GitDiffWatcherEvents = {
@@ -1 +1 @@
1
- {"version":3,"file":"git-diff-watcher.d.ts","sourceRoot":"","sources":["../src/git-diff-watcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAsC3C,eAAO,MAAM,4BAA4B,gPAgBC,CAAC;AAE3C,KAAK,uBAAuB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,uBAAuB,GAAG,EAAE;CACnC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;AAE5E,UAAU,kBAAkB;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAkBD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,WAAW,GAAG,IAwC/D,CAAC;AA0DF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,WAAW,EACrB,SAAS,WAAW,KACnB,eAAe,EAiCjB,CAAC;AAEF,qBAAa,cAAe,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IACpE,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAA4B;IAEhD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA2CxB,IAAI,IAAI,IAAI;IAaZ,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,qBAAqB;CAY9B"}
1
+ {"version":3,"file":"git-diff-watcher.d.ts","sourceRoot":"","sources":["../src/git-diff-watcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,YAAY,GAAG,IA2B1D,CAAC;AAEF,eAAO,MAAM,4BAA4B,gPAgBC,CAAC;AAE3C,KAAK,uBAAuB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,uBAAuB,GAAG,EAAE;CACnC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;AAE5E,UAAU,kBAAkB;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAkBD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,WAAW,GAAG,IAwC/D,CAAC;AA0DF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,WAAW,EACrB,SAAS,WAAW,KACnB,eAAe,EAiCjB,CAAC;AAEF,qBAAa,cAAe,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IACpE,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAA4B;IAEhD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA2CxB,IAAI,IAAI,IAAI;IAaZ,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,qBAAqB;CAY9B"}
@@ -3,7 +3,7 @@ import path from "node:path";
3
3
  import { EventEmitter } from "node:events";
4
4
  import { GIT_DIRTY_THROTTLE_MS } from "./constants.js";
5
5
  import { Throttle } from "./utils/throttle.js";
6
- const resolveGitDir = (cwd) => {
6
+ export const resolveGitDir = (cwd) => {
7
7
  let current = path.resolve(cwd);
8
8
  while (true) {
9
9
  const indicator = path.join(current, ".git");
@@ -1 +1 @@
1
- {"version":3,"file":"git-diff-watcher.js","sourceRoot":"","sources":["../src/git-diff-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-diff-watcher.js","sourceRoot":"","sources":["../src/git-diff-watcher.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export declare class GitMetadataCoordinator {
10
10
  constructor(cwd: string, send: (ws: ClientSocket, payload: ServerToClientMessage) => void);
11
11
  add(ws: ClientSocket): void;
12
12
  remove(ws: ClientSocket): void;
13
+ replayLastSummary(ws: ClientSocket): void;
13
14
  get isEmpty(): boolean;
14
15
  signal(): void;
15
16
  broadcastPr(pr: GitBranchPr | null): void;
@@ -1 +1 @@
1
- {"version":3,"file":"git-metadata-coordinator.d.ts","sourceRoot":"","sources":["../src/git-metadata-coordinator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAkB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA4BzD,qBAAa,sBAAsB;IAO/B,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAG5C,GAAG,EAAE,MAAM,EACH,IAAI,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,KAAK,IAAI;IAGnF,GAAG,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAmB3B,MAAM,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAI9B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,IAAI,IAAI;IAYd,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI;IAKzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAqBlB;CACH"}
1
+ {"version":3,"file":"git-metadata-coordinator.d.ts","sourceRoot":"","sources":["../src/git-metadata-coordinator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAkB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA4BzD,qBAAa,sBAAsB;IAO/B,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAG5C,GAAG,EAAE,MAAM,EACH,IAAI,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,KAAK,IAAI;IAGnF,GAAG,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAmB3B,MAAM,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAW9B,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAKzC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,IAAI,IAAI;IAYd,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI;IAKzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAqBlB;CACH"}
@@ -58,6 +58,18 @@ export class GitMetadataCoordinator {
58
58
  remove(ws) {
59
59
  this.subscribers.delete(ws);
60
60
  }
61
+ // Re-send the cached summary to a subscriber once it promotes out of the
62
+ // pending hold, so the ambient overlay is guaranteed populated on the
63
+ // now-live client. A summary pushed while the client was pending can be
64
+ // wiped by a `cwd` frame (the client nulls its summary on a cwd change);
65
+ // replaying after the promote flush lands past that reset. No-op when no
66
+ // summary is cached yet — the in-flight compute broadcasts on completion
67
+ // and reaches the now-live subscriber.
68
+ replayLastSummary(ws) {
69
+ if (!this.lastSummary)
70
+ return;
71
+ this.send(ws, { type: "git-diff-summary", summary: this.lastSummary });
72
+ }
61
73
  get isEmpty() {
62
74
  return this.subscribers.size === 0;
63
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git-metadata-coordinator.js","sourceRoot":"","sources":["../src/git-metadata-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAI1E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,2DAA2D;AAC3D,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,oEAAoE;AACpE,EAAE;AACF,2EAA2E;AAC3E,+EAA+E;AAC/E,wEAAwE;AACxE,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,gFAAgF;AAChF,0EAA0E;AAC1E,6EAA6E;AAC7E,0DAA0D;AAC1D,MAAM,OAAO,sBAAsB;IAOtB;IACQ;IAPX,QAAQ,GAAG,KAAK,CAAC;IACjB,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAA0B,IAAI,CAAC;IACjC,WAAW,GAAG,IAAI,GAAG,EAAgB,CAAC;IAEvD,YACW,GAAW,EACH,IAAgE;QADxE,QAAG,GAAH,GAAG,CAAQ;QACH,SAAI,GAAJ,IAAI,CAA4D;IAChF,CAAC;IAEJ,GAAG,CAAC,EAAgB;QAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,uEAAuE;QACvE,mEAAmE;QACnE,wEAAwE;QACxE,wEAAwE;QACxE,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,qEAAqE;QACrE,0EAA0E;QAC1E,uBAAuB;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,EAAgB;QACrB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,wEAAwE;IACxE,WAAW,CAAC,EAAsB;QAChC,MAAM,OAAO,GAA0B,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;QACrE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEgB,GAAG,GAAG,KAAK,IAAmB,EAAE;QAC/C,IAAI,CAAC;YACH,yEAAyE;YACzE,qEAAqE;YACrE,gDAAgD;YAChD,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,MAAM,OAAO,GAA0B,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC;YAC7E,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;CACH"}
1
+ {"version":3,"file":"git-metadata-coordinator.js","sourceRoot":"","sources":["../src/git-metadata-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAI1E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,2DAA2D;AAC3D,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,oEAAoE;AACpE,EAAE;AACF,2EAA2E;AAC3E,+EAA+E;AAC/E,wEAAwE;AACxE,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,gFAAgF;AAChF,0EAA0E;AAC1E,6EAA6E;AAC7E,0DAA0D;AAC1D,MAAM,OAAO,sBAAsB;IAOtB;IACQ;IAPX,QAAQ,GAAG,KAAK,CAAC;IACjB,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAA0B,IAAI,CAAC;IACjC,WAAW,GAAG,IAAI,GAAG,EAAgB,CAAC;IAEvD,YACW,GAAW,EACH,IAAgE;QADxE,QAAG,GAAH,GAAG,CAAQ;QACH,SAAI,GAAJ,IAAI,CAA4D;IAChF,CAAC;IAEJ,GAAG,CAAC,EAAgB;QAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,uEAAuE;QACvE,mEAAmE;QACnE,wEAAwE;QACxE,wEAAwE;QACxE,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,qEAAqE;QACrE,0EAA0E;QAC1E,uBAAuB;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,EAAgB;QACrB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,yEAAyE;IACzE,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,uCAAuC;IACvC,iBAAiB,CAAC,EAAgB;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,wEAAwE;IACxE,WAAW,CAAC,EAAsB;QAChC,MAAM,OAAO,GAA0B,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;QACrE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEgB,GAAG,GAAG,KAAK,IAAmB,EAAE;QAC/C,IAAI,CAAC;YACH,yEAAyE;YACzE,qEAAqE;YACrE,gDAAgD;YAChD,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,MAAM,OAAO,GAA0B,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC;YAC7E,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,11 +21,12 @@ import { detectWithExplicitPort } from "./cdp/discover-explicit-endpoint.js";
21
21
  import { DaemonConfigStore } from "./daemon-config-store.js";
22
22
  import { formatCandidates, resolveCandidates, resolveCompletionContext, } from "./completion/index.js";
23
23
  import { z } from "zod";
24
- import { ACTIVITY_DIRNAME, ACTIVITY_REFRESH_DEBOUNCE_MS, ACTIVITY_WATCHED_PROGRAMS, AUTOMATION_EVENT_DEBOUNCE_MS, AUTOMATION_RECONCILE_MIN_DOWNTIME_MS, AUTOMATION_RUN_QUERY_PARAM, AUTOMATION_WATCH_DEBOUNCE_MS, AUTOMATION_WATCH_POST_RUN_GRACE_MS, AUTOMATION_WEBHOOK_DEBOUNCE_MS, DEFAULT_HOST, DEFAULT_PORT, FRIENDLY_HOSTNAME, GIT_MAX_REF_LENGTH, HTTP_STATUS_ACCEPTED, HTTP_STATUS_BAD_REQUEST, HTTP_STATUS_CONFLICT, HTTP_STATUS_CREATED, HTTP_STATUS_NOT_FOUND, MAX_AUTOMATIONS, MAX_PROCESSES, MAX_SECRETS, MS_PER_MINUTE, PROCESSES_FILENAME, SECRETS_FILENAME, THEMES_FILENAME, SECRETS_SHIMS_DIRNAME, AUTOMATION_AGENT_SESSIONS_DIRNAME, SERVER_STOP_GRACE_MS, SESSION_ID_QUERY_PARAM, SESSION_ACTIVITY_WINDOW_MS, WAIT_DEFAULT_TIMEOUT_MS, WS_BACKPRESSURE_THRESHOLD_BYTES, WS_CLOSE_BACKPRESSURE, WS_CLOSE_CAPACITY_REACHED, WS_CLOSE_POLICY_VIOLATION, WS_HEARTBEAT_GRACE_MS, WS_HEARTBEAT_INTERVAL_MS, WS_HEARTBEAT_TIMEOUT_MS, WS_READY_STATE_OPEN, AUTH_SECRET_FILENAME, AUTH_COOKIE_NAME, } from "./constants.js";
24
+ import { ACTIVITY_DIRNAME, ACTIVITY_REFRESH_DEBOUNCE_MS, ACTIVITY_WATCHED_PROGRAMS, AUTOMATION_EVENT_DEBOUNCE_MS, AUTOMATION_RECONCILE_MIN_DOWNTIME_MS, AUTOMATION_RUN_QUERY_PARAM, AUTOMATION_WATCH_DEBOUNCE_MS, AUTOMATION_WATCH_POST_RUN_GRACE_MS, AUTOMATION_WEBHOOK_DEBOUNCE_MS, DEFAULT_HOST, DEFAULT_PORT, FRIENDLY_HOSTNAME, GIT_DIRTY_THROTTLE_MS, GIT_MAX_REF_LENGTH, HTTP_STATUS_ACCEPTED, HTTP_STATUS_BAD_REQUEST, HTTP_STATUS_CONFLICT, HTTP_STATUS_CREATED, HTTP_STATUS_NOT_FOUND, MAX_AUTOMATIONS, MAX_PROCESSES, MAX_SECRETS, MS_PER_MINUTE, PROCESSES_FILENAME, SECRETS_FILENAME, THEMES_FILENAME, SECRETS_SHIMS_DIRNAME, AUTOMATION_AGENT_SESSIONS_DIRNAME, SERVER_STOP_GRACE_MS, SESSION_ID_QUERY_PARAM, SESSION_ACTIVITY_WINDOW_MS, WAIT_DEFAULT_TIMEOUT_MS, WS_BACKPRESSURE_THRESHOLD_BYTES, WS_CLOSE_BACKPRESSURE, WS_CLOSE_CAPACITY_REACHED, WS_CLOSE_POLICY_VIOLATION, WS_HEARTBEAT_GRACE_MS, WS_HEARTBEAT_INTERVAL_MS, WS_HEARTBEAT_TIMEOUT_MS, WS_READY_STATE_OPEN, AUTH_SECRET_FILENAME, AUTH_COOKIE_NAME, } from "./constants.js";
25
25
  import { getDefaultShell, listKnownShells, resolveShellOverride } from "./default-shell.js";
26
26
  import { shellPathForUserShell } from "./utils/shell-path.js";
27
27
  import { openChromeInspect } from "./utils/open-chrome-inspect.js";
28
28
  import { ServerErrorException, serverError } from "./errors.js";
29
+ import { AutomationGitWatcher } from "./automation-git-watcher.js";
29
30
  import { FolderWatchManager } from "./folder-watch-manager.js";
30
31
  import { SessionEventManager } from "./session-event-manager.js";
31
32
  import { WebhookTriggerManager } from "./webhook-trigger-manager.js";
@@ -1428,7 +1429,18 @@ export const createServer = async (options = {}) => {
1428
1429
  },
1429
1430
  getAutomation: (automationId) => automationStore.get(automationId),
1430
1431
  });
1431
- const syncSessionEventListeners = () => sessionEventManager.sync(automationStore.list());
1432
+ // Daemon-global git detection for event automations: arms a recursive
1433
+ // fs.watch per event-automation cwd so ref changes reach SessionEventManager
1434
+ // regardless of source (the per-session GitDiffWatcher only fires when a
1435
+ // localterm PTY is live in the affected repo).
1436
+ const automationGitWatcher = new AutomationGitWatcher({
1437
+ throttleMs: GIT_DIRTY_THROTTLE_MS,
1438
+ });
1439
+ automationGitWatcher.on("refEvent", (eventName, repoRoot) => sessionEventManager.onSessionEvent(eventName, repoRoot));
1440
+ const syncSessionEventListeners = () => {
1441
+ sessionEventManager.sync(automationStore.list());
1442
+ automationGitWatcher.sync(automationStore.list());
1443
+ };
1432
1444
  // Webhook triggers: a POST to /api/webhooks/:id arms a trailing debounce per
1433
1445
  // automation (coalesces duplicate delivery) with an in-flight overlap guard.
1434
1446
  // Stateless vs the watch/event managers — nothing to arm, so no sync().
@@ -2386,6 +2398,7 @@ export const createServer = async (options = {}) => {
2386
2398
  const stop = async () => {
2387
2399
  automationScheduler.dispose();
2388
2400
  folderWatchManager.dispose();
2401
+ automationGitWatcher.dispose();
2389
2402
  webhookTriggerManager.dispose();
2390
2403
  caffeinateManager.dispose();
2391
2404
  processActivityWatcher?.dispose();