@pulsemcp/air-provider-github 0.11.0 → 0.12.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/dist/git.d.ts ADDED
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Resilient git execution for the GitHub catalog provider.
3
+ *
4
+ * The provider shells out to `git clone` / `git fetch` against github.com to
5
+ * materialize catalog repos. Those network calls have two failure modes that
6
+ * must be bounded so a single transient github.com hiccup does not fail (or
7
+ * worse, indefinitely hang) every consumer of `air prepare`:
8
+ *
9
+ * 1. A transient TLS stall / `ETIMEDOUT` / connection reset makes git exit
10
+ * non-zero. A retry seconds later usually succeeds.
11
+ * 2. A half-open HTTPS connection that never sends a TCP reset makes git's
12
+ * fetch-pack hang forever with no output and no recovery.
13
+ *
14
+ * {@link runBounded} addresses (2) by running git as its own process-group
15
+ * leader and SIGKILLing the entire group on a wall-clock deadline — git spawns
16
+ * helper processes (`git-remote-https`, `index-pack`) that must die too, not
17
+ * just the parent. Node's own `spawnSync`/`child.kill()` timeout only signals
18
+ * the direct child, which can leave those helpers alive and the transfer wedged.
19
+ *
20
+ * {@link withGitRetry} addresses (1) by retrying transient/timeout failures with
21
+ * backoff, surfacing a clear error only after retries are exhausted.
22
+ */
23
+ /** Error raised when a git command exits non-zero. Carries stderr/stdout/code. */
24
+ export declare class GitError extends Error {
25
+ readonly stdout: string;
26
+ readonly stderr: string;
27
+ readonly code: number | null;
28
+ constructor(message: string, opts?: {
29
+ stdout?: string;
30
+ stderr?: string;
31
+ code?: number | null;
32
+ });
33
+ }
34
+ /**
35
+ * Raised when a bounded subprocess exceeds its timeout and its process group
36
+ * is killed. Always treated as transient by {@link withGitRetry} — a hung clone
37
+ * that we killed has no deterministic cause, so a fresh retry is warranted.
38
+ */
39
+ export declare class GitTimeoutError extends GitError {
40
+ constructor(message: string);
41
+ }
42
+ /**
43
+ * Belt-and-suspenders environment applied to every network git invocation,
44
+ * before the hard watchdog kicks in:
45
+ * - `GIT_HTTP_LOW_SPEED_LIMIT` / `GIT_HTTP_LOW_SPEED_TIME`: ask git itself to
46
+ * abort an HTTP transfer that drops below ~1 KB/s for 60s, so a stalled
47
+ * fetch fails fast with a transient error instead of crawling up to the
48
+ * full timeout.
49
+ * - `GIT_TERMINAL_PROMPT=0`: a missing-credential case fails immediately
50
+ * instead of blocking forever on an interactive username/password prompt.
51
+ * All overridable via the corresponding env vars on the parent process.
52
+ */
53
+ export declare const GIT_STALL_ENV: Record<string, string>;
54
+ /** Wall-clock cap (ms) for a single network git invocation (clone/fetch). */
55
+ export declare const CLONE_TIMEOUT_MS: number;
56
+ /** Wall-clock cap (ms) for a local git invocation (init/remote/checkout/...). */
57
+ export declare const LOCAL_GIT_TIMEOUT_MS: number;
58
+ /**
59
+ * Backoff (ms) between clone retries on transient failures. The number of
60
+ * retries is the list length (so the default makes up to 4 attempts total).
61
+ * Overridable via a comma-separated `AIR_GIT_CLONE_RETRY_DELAYS_MS` list.
62
+ */
63
+ export declare const CLONE_RETRY_DELAYS_MS: number[];
64
+ /** Whether a git failure message looks like a transient github.com hiccup. */
65
+ export declare function isTransientGitError(message: string): boolean;
66
+ export interface GitLogger {
67
+ info(message: string): void;
68
+ warn(message: string): void;
69
+ }
70
+ /** Default logger: writes diagnostics to stderr (stdout is reserved for output). */
71
+ export declare const defaultGitLogger: GitLogger;
72
+ export interface RunBoundedOptions {
73
+ cwd?: string;
74
+ /** Extra environment merged onto the parent process env. */
75
+ env?: Record<string, string>;
76
+ /** Wall-clock deadline in milliseconds before the process group is killed. */
77
+ timeoutMs: number;
78
+ }
79
+ export interface RunResult {
80
+ stdout: string;
81
+ stderr: string;
82
+ code: number | null;
83
+ signal: NodeJS.Signals | null;
84
+ }
85
+ /**
86
+ * Run a command as its own process-group leader under a wall-clock timeout,
87
+ * SIGKILLing the entire group on deadline. Resolves with captured
88
+ * stdout/stderr and the exit code/signal (does NOT reject on a non-zero exit —
89
+ * callers decide what a non-zero code means). Rejects with {@link GitTimeoutError}
90
+ * if the deadline is exceeded, or with the spawn error if the binary cannot be
91
+ * launched.
92
+ */
93
+ export declare function runBounded(command: string, args: string[], opts: RunBoundedOptions): Promise<RunResult>;
94
+ export interface RunGitOptions extends RunBoundedOptions {
95
+ }
96
+ /**
97
+ * Run a single `git` invocation under a bounded timeout. Resolves with
98
+ * stdout/stderr on a zero exit; throws {@link GitError} on a non-zero exit (with
99
+ * stderr/stdout/code attached) or {@link GitTimeoutError} on a watchdog kill.
100
+ */
101
+ export declare function runGit(args: string[], opts: RunGitOptions): Promise<{
102
+ stdout: string;
103
+ stderr: string;
104
+ }>;
105
+ export interface WithGitRetryOptions {
106
+ /** Backoff delays (ms); list length is the number of retries. */
107
+ retryDelaysMs?: number[];
108
+ /** Injectable sleep (tests pass a no-op to skip real delays). */
109
+ sleep?: (ms: number) => Promise<void>;
110
+ logger?: GitLogger;
111
+ /** Human-readable label for log lines (e.g. "owner/repo@ref"). */
112
+ label?: string;
113
+ }
114
+ /**
115
+ * Run an async git operation, retrying with backoff on transient/timeout
116
+ * failures. A {@link GitTimeoutError} (watchdog kill) is always retried; other
117
+ * errors are retried only when their message matches a transient signature.
118
+ * Non-transient failures (auth, missing repo) raise immediately so we don't
119
+ * pointlessly retry a deterministic error. The final failure after retries are
120
+ * exhausted is logged at warn level; intermediate attempts at info.
121
+ */
122
+ export declare function withGitRetry<T>(operation: () => Promise<T>, opts?: WithGitRetryOptions): Promise<T>;
123
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,kFAAkF;AAClF,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO;CAOnG;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIhD,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,QAAiD,CAAC;AAE/E,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,QAAiD,CAAC;AAEnF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAGzC,CAAC;AAiCF,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,EAAE,SAG9B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,SAAS,CAAC,CAoDpB;AAoBD,MAAM,WAAW,aAAc,SAAQ,iBAAiB;CAAG;AAE3D;;;;GAIG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAU7C;AAED,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,iEAAiE;IACjE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAiCZ"}
package/dist/git.js ADDED
@@ -0,0 +1,259 @@
1
+ import { spawn } from "child_process";
2
+ /**
3
+ * Resilient git execution for the GitHub catalog provider.
4
+ *
5
+ * The provider shells out to `git clone` / `git fetch` against github.com to
6
+ * materialize catalog repos. Those network calls have two failure modes that
7
+ * must be bounded so a single transient github.com hiccup does not fail (or
8
+ * worse, indefinitely hang) every consumer of `air prepare`:
9
+ *
10
+ * 1. A transient TLS stall / `ETIMEDOUT` / connection reset makes git exit
11
+ * non-zero. A retry seconds later usually succeeds.
12
+ * 2. A half-open HTTPS connection that never sends a TCP reset makes git's
13
+ * fetch-pack hang forever with no output and no recovery.
14
+ *
15
+ * {@link runBounded} addresses (2) by running git as its own process-group
16
+ * leader and SIGKILLing the entire group on a wall-clock deadline — git spawns
17
+ * helper processes (`git-remote-https`, `index-pack`) that must die too, not
18
+ * just the parent. Node's own `spawnSync`/`child.kill()` timeout only signals
19
+ * the direct child, which can leave those helpers alive and the transfer wedged.
20
+ *
21
+ * {@link withGitRetry} addresses (1) by retrying transient/timeout failures with
22
+ * backoff, surfacing a clear error only after retries are exhausted.
23
+ */
24
+ /** Error raised when a git command exits non-zero. Carries stderr/stdout/code. */
25
+ export class GitError extends Error {
26
+ stdout;
27
+ stderr;
28
+ code;
29
+ constructor(message, opts = {}) {
30
+ super(message);
31
+ this.name = "GitError";
32
+ this.stdout = opts.stdout ?? "";
33
+ this.stderr = opts.stderr ?? "";
34
+ this.code = opts.code ?? null;
35
+ }
36
+ }
37
+ /**
38
+ * Raised when a bounded subprocess exceeds its timeout and its process group
39
+ * is killed. Always treated as transient by {@link withGitRetry} — a hung clone
40
+ * that we killed has no deterministic cause, so a fresh retry is warranted.
41
+ */
42
+ export class GitTimeoutError extends GitError {
43
+ constructor(message) {
44
+ super(message);
45
+ this.name = "GitTimeoutError";
46
+ }
47
+ }
48
+ /**
49
+ * Belt-and-suspenders environment applied to every network git invocation,
50
+ * before the hard watchdog kicks in:
51
+ * - `GIT_HTTP_LOW_SPEED_LIMIT` / `GIT_HTTP_LOW_SPEED_TIME`: ask git itself to
52
+ * abort an HTTP transfer that drops below ~1 KB/s for 60s, so a stalled
53
+ * fetch fails fast with a transient error instead of crawling up to the
54
+ * full timeout.
55
+ * - `GIT_TERMINAL_PROMPT=0`: a missing-credential case fails immediately
56
+ * instead of blocking forever on an interactive username/password prompt.
57
+ * All overridable via the corresponding env vars on the parent process.
58
+ */
59
+ export const GIT_STALL_ENV = {
60
+ GIT_HTTP_LOW_SPEED_LIMIT: process.env.GIT_HTTP_LOW_SPEED_LIMIT ?? "1000",
61
+ GIT_HTTP_LOW_SPEED_TIME: process.env.GIT_HTTP_LOW_SPEED_TIME ?? "60",
62
+ GIT_TERMINAL_PROMPT: "0",
63
+ };
64
+ /** Wall-clock cap (ms) for a single network git invocation (clone/fetch). */
65
+ export const CLONE_TIMEOUT_MS = readIntEnv("AIR_GIT_CLONE_TIMEOUT_MS", 60_000);
66
+ /** Wall-clock cap (ms) for a local git invocation (init/remote/checkout/...). */
67
+ export const LOCAL_GIT_TIMEOUT_MS = readIntEnv("AIR_GIT_LOCAL_TIMEOUT_MS", 30_000);
68
+ /**
69
+ * Backoff (ms) between clone retries on transient failures. The number of
70
+ * retries is the list length (so the default makes up to 4 attempts total).
71
+ * Overridable via a comma-separated `AIR_GIT_CLONE_RETRY_DELAYS_MS` list.
72
+ */
73
+ export const CLONE_RETRY_DELAYS_MS = readIntListEnv("AIR_GIT_CLONE_RETRY_DELAYS_MS", [5000, 10000, 20000]);
74
+ /**
75
+ * Signatures of transient github.com failures worth retrying — network blips
76
+ * and 5xx responses, as opposed to deterministic errors (auth failure, missing
77
+ * repo/ref) that would fail identically on every retry.
78
+ */
79
+ const TRANSIENT_GIT_ERROR_PATTERNS = [
80
+ /ETIMEDOUT/i,
81
+ /ECONNRESET/i,
82
+ /ECONNREFUSED/i,
83
+ /EAI_AGAIN/i,
84
+ /ENETUNREACH/i,
85
+ /ENOTFOUND/i,
86
+ /Could not resolve host/i,
87
+ /Connection timed out/i,
88
+ /Connection reset by peer/i,
89
+ /early EOF/i,
90
+ /unexpected EOF/i,
91
+ /RPC failed/i,
92
+ /Couldn't connect to server/i,
93
+ /fetch-pack: unexpected disconnect/i,
94
+ /remote: Internal Server Error/i,
95
+ /The requested URL returned error: 5\d\d/i,
96
+ /unable to access .* 5\d\d/i,
97
+ // A TLS *connection* that drops mid-transfer is transient; deterministic TLS
98
+ // problems (cert verification failures, etc.) phrase differently and are not
99
+ // matched here, so we don't pointlessly retry them.
100
+ /TLS connection/i,
101
+ /SSL_ERROR/i,
102
+ /gnutls_handshake/i,
103
+ ];
104
+ /** Whether a git failure message looks like a transient github.com hiccup. */
105
+ export function isTransientGitError(message) {
106
+ return TRANSIENT_GIT_ERROR_PATTERNS.some((re) => re.test(message));
107
+ }
108
+ /** Default logger: writes diagnostics to stderr (stdout is reserved for output). */
109
+ export const defaultGitLogger = {
110
+ info: (message) => process.stderr.write(`[air-provider-github] ${message}\n`),
111
+ warn: (message) => process.stderr.write(`[air-provider-github] ${message}\n`),
112
+ };
113
+ /**
114
+ * Run a command as its own process-group leader under a wall-clock timeout,
115
+ * SIGKILLing the entire group on deadline. Resolves with captured
116
+ * stdout/stderr and the exit code/signal (does NOT reject on a non-zero exit —
117
+ * callers decide what a non-zero code means). Rejects with {@link GitTimeoutError}
118
+ * if the deadline is exceeded, or with the spawn error if the binary cannot be
119
+ * launched.
120
+ */
121
+ export function runBounded(command, args, opts) {
122
+ return new Promise((resolve, reject) => {
123
+ const child = spawn(command, args, {
124
+ cwd: opts.cwd,
125
+ env: { ...process.env, ...opts.env },
126
+ // New process group so we can signal the whole tree (git spawns
127
+ // git-remote-https / index-pack helpers that must die with it).
128
+ detached: true,
129
+ stdio: ["ignore", "pipe", "pipe"],
130
+ });
131
+ let stdout = "";
132
+ let stderr = "";
133
+ let timedOut = false;
134
+ let settled = false;
135
+ const timer = setTimeout(() => {
136
+ timedOut = true;
137
+ killGroup(child.pid);
138
+ }, opts.timeoutMs);
139
+ // Don't let the watchdog timer keep the event loop alive on its own.
140
+ if (typeof timer.unref === "function")
141
+ timer.unref();
142
+ child.stdout?.on("data", (chunk) => {
143
+ stdout += chunk.toString();
144
+ });
145
+ child.stderr?.on("data", (chunk) => {
146
+ stderr += chunk.toString();
147
+ });
148
+ child.on("error", (err) => {
149
+ if (settled)
150
+ return;
151
+ settled = true;
152
+ clearTimeout(timer);
153
+ reject(err);
154
+ });
155
+ child.on("close", (code, signal) => {
156
+ if (settled)
157
+ return;
158
+ settled = true;
159
+ clearTimeout(timer);
160
+ if (timedOut) {
161
+ reject(new GitTimeoutError(`${command} ${args.join(" ")} timed out after ${opts.timeoutMs}ms (process group killed)`));
162
+ return;
163
+ }
164
+ resolve({ stdout, stderr, code, signal });
165
+ });
166
+ });
167
+ }
168
+ /**
169
+ * SIGKILL an entire process group (negative pid). Best-effort: the process may
170
+ * already have exited, or we may lack permission, in which case we fall back to
171
+ * killing just the leader.
172
+ */
173
+ function killGroup(pid) {
174
+ if (pid === undefined)
175
+ return;
176
+ try {
177
+ process.kill(-pid, "SIGKILL");
178
+ }
179
+ catch {
180
+ try {
181
+ process.kill(pid, "SIGKILL");
182
+ }
183
+ catch {
184
+ // Already gone — nothing to do.
185
+ }
186
+ }
187
+ }
188
+ /**
189
+ * Run a single `git` invocation under a bounded timeout. Resolves with
190
+ * stdout/stderr on a zero exit; throws {@link GitError} on a non-zero exit (with
191
+ * stderr/stdout/code attached) or {@link GitTimeoutError} on a watchdog kill.
192
+ */
193
+ export async function runGit(args, opts) {
194
+ const result = await runBounded("git", args, opts);
195
+ if (result.code !== 0) {
196
+ const detail = (result.stderr || result.stdout || "").trim();
197
+ throw new GitError(`git ${args.join(" ")} exited with code ${result.code}${detail ? `: ${detail}` : ""}`, { stdout: result.stdout, stderr: result.stderr, code: result.code });
198
+ }
199
+ return { stdout: result.stdout, stderr: result.stderr };
200
+ }
201
+ const defaultSleep = (ms) => new Promise((resolve) => {
202
+ const t = setTimeout(resolve, ms);
203
+ if (typeof t.unref === "function")
204
+ t.unref();
205
+ });
206
+ /**
207
+ * Run an async git operation, retrying with backoff on transient/timeout
208
+ * failures. A {@link GitTimeoutError} (watchdog kill) is always retried; other
209
+ * errors are retried only when their message matches a transient signature.
210
+ * Non-transient failures (auth, missing repo) raise immediately so we don't
211
+ * pointlessly retry a deterministic error. The final failure after retries are
212
+ * exhausted is logged at warn level; intermediate attempts at info.
213
+ */
214
+ export async function withGitRetry(operation, opts = {}) {
215
+ const retryDelaysMs = opts.retryDelaysMs ?? CLONE_RETRY_DELAYS_MS;
216
+ const sleep = opts.sleep ?? defaultSleep;
217
+ const logger = opts.logger ?? defaultGitLogger;
218
+ const label = opts.label ? ` (${opts.label})` : "";
219
+ const maxAttempts = retryDelaysMs.length + 1;
220
+ let attempt = 0;
221
+ for (;;) {
222
+ attempt += 1;
223
+ try {
224
+ return await operation();
225
+ }
226
+ catch (err) {
227
+ const message = err instanceof Error ? err.message : String(err);
228
+ const transient = err instanceof GitTimeoutError || isTransientGitError(message);
229
+ if (transient && attempt < maxAttempts) {
230
+ const delay = retryDelaysMs[attempt - 1];
231
+ logger.info(`git operation failed transiently${label}, retrying attempt=${attempt} sleep_ms=${delay} error=${message}`);
232
+ await sleep(delay);
233
+ continue;
234
+ }
235
+ if (transient) {
236
+ logger.warn(`git operation failed after ${attempt} attempts${label}: ${message}`);
237
+ }
238
+ throw err;
239
+ }
240
+ }
241
+ }
242
+ function readIntEnv(name, fallback) {
243
+ const raw = process.env[name];
244
+ if (raw === undefined)
245
+ return fallback;
246
+ const parsed = Number.parseInt(raw, 10);
247
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
248
+ }
249
+ function readIntListEnv(name, fallback) {
250
+ const raw = process.env[name];
251
+ if (raw === undefined)
252
+ return fallback;
253
+ const parsed = raw
254
+ .split(",")
255
+ .map((s) => Number.parseInt(s.trim(), 10))
256
+ .filter((n) => Number.isFinite(n) && n >= 0);
257
+ return parsed.length > 0 ? parsed : fallback;
258
+ }
259
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { CatalogProvider, CacheFreshnessWarning, CacheRefreshResult } from "@pulsemcp/air-core";
2
+ import { GitLogger } from "./git.js";
2
3
  export interface GitHubUri {
3
4
  owner: string;
4
5
  repo: string;
@@ -27,6 +28,12 @@ export interface GitHubProviderOptions {
27
28
  * merging those sources and calling `configure({ gitProtocol })`.
28
29
  */
29
30
  gitProtocol?: GitProtocol;
31
+ /**
32
+ * Sink for clone retry/timeout diagnostics. Defaults to writing to stderr.
33
+ * Injectable for tests and for hosts that route logs elsewhere. Lines are
34
+ * token-redacted before they reach this logger.
35
+ */
36
+ logger?: GitLogger;
30
37
  }
31
38
  /**
32
39
  * Parse a github:// URI into its components.
@@ -73,7 +80,14 @@ export declare class GitHubCatalogProvider implements CatalogProvider {
73
80
  scheme: string;
74
81
  private token;
75
82
  private gitProtocol;
83
+ private baseLogger;
76
84
  constructor(options?: GitHubProviderOptions);
85
+ /**
86
+ * A logger that strips the GitHub token from every line before emitting it.
87
+ * The clone URL embeds the token for HTTPS auth, and that URL appears in git
88
+ * error messages (and our own retry diagnostics), so redact before logging.
89
+ */
90
+ private get logger();
77
91
  /**
78
92
  * Apply runtime options merged from air.json and caller overrides. Called
79
93
  * by the SDK before `resolve()` / `refreshCache()` runs. Currently honors
@@ -1 +1 @@
1
- {"version":3,"file":"github-provider.d.ts","sourceRoot":"","sources":["../src/github-provider.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;AAE1C,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAgCD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAuDrD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7E;AAkBD;;;;;;GAMG;AACH,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,MAAM,SAAY;IAClB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,WAAW,CAAc;gBAErB,OAAO,CAAC,EAAE,qBAAqB;IAQ3C;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IASjD;;;OAGG;IACH,cAAc,IAAI,WAAW;IAIvB,OAAO,CACX,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAyBnC;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAK7B;;;;;;;;OAQG;IACG,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBrD;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAiBjD;;;;OAIG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA4DtE;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAwGnD;;;;;;;OAOG;YACW,WAAW;IA+IzB;;;;;;;OAOG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAUlD;;;OAGG;IACH,OAAO,CAAC,cAAc;CAMvB"}
1
+ {"version":3,"file":"github-provider.d.ts","sourceRoot":"","sources":["../src/github-provider.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,SAAS,EAIV,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;AAE1C,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAgCD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAuDrD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7E;AAkBD;;;;;;GAMG;AACH,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,MAAM,SAAY;IAClB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAY;gBAElB,OAAO,CAAC,EAAE,qBAAqB;IAS3C;;;;OAIG;IACH,OAAO,KAAK,MAAM,GAOjB;IAED;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IASjD;;;OAGG;IACH,cAAc,IAAI,WAAW;IAIvB,OAAO,CACX,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAyBnC;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAK7B;;;;;;;;OAQG;IACG,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBrD;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAiBjD;;;;OAIG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA8DtE;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA0GnD;;;;;;;OAOG;YACW,WAAW;IA+JzB;;;;;;;OAOG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAUlD;;;OAGG;IACH,OAAO,CAAC,cAAc;CAMvB"}
@@ -1,7 +1,7 @@
1
- import { execFileSync } from "child_process";
2
1
  import { existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, renameSync, rmSync, } from "fs";
3
2
  import { resolve, dirname } from "path";
4
3
  import lockfile from "proper-lockfile";
4
+ import { CLONE_TIMEOUT_MS, defaultGitLogger, GIT_STALL_ENV, LOCAL_GIT_TIMEOUT_MS, runGit, withGitRetry, } from "./git.js";
5
5
  const DEFAULT_GIT_PROTOCOL = "ssh";
6
6
  function normalizeGitProtocol(value, fallback) {
7
7
  if (value === "ssh" || value === "https")
@@ -133,9 +133,24 @@ export class GitHubCatalogProvider {
133
133
  scheme = "github";
134
134
  token;
135
135
  gitProtocol;
136
+ baseLogger;
136
137
  constructor(options) {
137
138
  this.token = options?.token || process.env.AIR_GITHUB_TOKEN;
138
139
  this.gitProtocol = normalizeGitProtocol(options?.gitProtocol ?? process.env.AIR_GIT_PROTOCOL, DEFAULT_GIT_PROTOCOL);
140
+ this.baseLogger = options?.logger ?? defaultGitLogger;
141
+ }
142
+ /**
143
+ * A logger that strips the GitHub token from every line before emitting it.
144
+ * The clone URL embeds the token for HTTPS auth, and that URL appears in git
145
+ * error messages (and our own retry diagnostics), so redact before logging.
146
+ */
147
+ get logger() {
148
+ const token = this.token;
149
+ const base = this.baseLogger;
150
+ return {
151
+ info: (message) => base.info(redactToken(message, token)),
152
+ warn: (message) => base.warn(redactToken(message, token)),
153
+ };
139
154
  }
140
155
  /**
141
156
  * Apply runtime options merged from air.json and caller overrides. Called
@@ -251,21 +266,19 @@ export class GitHubCatalogProvider {
251
266
  if (!existsSync(resolve(cloneDir, ".git")))
252
267
  continue;
253
268
  try {
254
- const localSha = execFileSync("git", ["rev-parse", "HEAD"], {
269
+ const localSha = (await runGit(["rev-parse", "HEAD"], {
255
270
  cwd: cloneDir,
256
- encoding: "utf-8",
257
- stdio: "pipe",
258
- timeout: 10000,
259
- }).trim();
271
+ env: GIT_STALL_ENV,
272
+ timeoutMs: LOCAL_GIT_TIMEOUT_MS,
273
+ })).stdout.trim();
260
274
  const lsRemoteArgs = ref === "HEAD"
261
275
  ? ["ls-remote", "origin", "HEAD"]
262
276
  : ["ls-remote", "origin", ref];
263
- const lsOutput = execFileSync("git", lsRemoteArgs, {
277
+ const lsOutput = (await runGit(lsRemoteArgs, {
264
278
  cwd: cloneDir,
265
- encoding: "utf-8",
266
- stdio: "pipe",
267
- timeout: 15000,
268
- }).trim();
279
+ env: GIT_STALL_ENV,
280
+ timeoutMs: CLONE_TIMEOUT_MS,
281
+ })).stdout.trim();
269
282
  if (!lsOutput)
270
283
  continue;
271
284
  // ls-remote output: "<sha>\t<refname>" — take first line's SHA
@@ -336,34 +349,32 @@ export class GitHubCatalogProvider {
336
349
  }
337
350
  try {
338
351
  // Get current SHA before fetch
339
- const beforeSha = execFileSync("git", ["rev-parse", "HEAD"], {
352
+ const beforeSha = (await runGit(["rev-parse", "HEAD"], {
340
353
  cwd: cloneDir,
341
- encoding: "utf-8",
342
- stdio: "pipe",
343
- timeout: 10000,
344
- }).trim();
354
+ env: GIT_STALL_ENV,
355
+ timeoutMs: LOCAL_GIT_TIMEOUT_MS,
356
+ })).stdout.trim();
345
357
  // Fetch latest
346
358
  const fetchArgs = ref === "HEAD"
347
359
  ? ["fetch", "--depth", "1", "origin"]
348
360
  : ["fetch", "--depth", "1", "origin", ref];
349
- execFileSync("git", fetchArgs, {
361
+ await runGit(fetchArgs, {
350
362
  cwd: cloneDir,
351
- stdio: "pipe",
352
- timeout: 60000,
363
+ env: GIT_STALL_ENV,
364
+ timeoutMs: CLONE_TIMEOUT_MS,
353
365
  });
354
366
  // Reset to fetched commit
355
367
  const resetRef = ref === "HEAD" ? "origin/HEAD" : "FETCH_HEAD";
356
- execFileSync("git", ["reset", "--hard", resetRef], {
368
+ await runGit(["reset", "--hard", resetRef], {
357
369
  cwd: cloneDir,
358
- stdio: "pipe",
359
- timeout: 10000,
370
+ env: GIT_STALL_ENV,
371
+ timeoutMs: LOCAL_GIT_TIMEOUT_MS,
360
372
  });
361
- const afterSha = execFileSync("git", ["rev-parse", "HEAD"], {
373
+ const afterSha = (await runGit(["rev-parse", "HEAD"], {
362
374
  cwd: cloneDir,
363
- encoding: "utf-8",
364
- stdio: "pipe",
365
- timeout: 10000,
366
- }).trim();
375
+ env: GIT_STALL_ENV,
376
+ timeoutMs: LOCAL_GIT_TIMEOUT_MS,
377
+ })).stdout.trim();
367
378
  if (afterSha !== beforeSha) {
368
379
  results.push({
369
380
  label,
@@ -442,34 +453,50 @@ export class GitHubCatalogProvider {
442
453
  // same process hit the same millisecond.
443
454
  const tmpDir = mkdtempSync(`${cloneDir}.tmp-`);
444
455
  try {
445
- if (isImmutableRef(ref)) {
446
- // `git clone --branch <sha>` does not work git treats --branch as
447
- // a ref name lookup. For commit SHAs we init + fetch + checkout so
448
- // the SHA-pinned cache is content-addressed and immutable.
449
- execFileSync("git", ["init", "--quiet", tmpDir], {
450
- stdio: "pipe",
451
- timeout: 30_000,
452
- });
453
- execFileSync("git", ["remote", "add", "origin", repoUrl], {
454
- cwd: tmpDir,
455
- stdio: "pipe",
456
- timeout: 10_000,
457
- });
458
- execFileSync("git", ["fetch", "--depth", "1", "origin", ref], { cwd: tmpDir, stdio: "pipe", timeout: 60_000 });
459
- execFileSync("git", ["checkout", "--quiet", "FETCH_HEAD"], {
460
- cwd: tmpDir,
461
- stdio: "pipe",
462
- timeout: 10_000,
463
- });
464
- }
465
- else {
466
- // git clone refuses a non-empty target; mkdtempSync gave us an
467
- // empty directory which git accepts.
468
- const args = ref === "HEAD"
469
- ? ["clone", "--depth", "1", repoUrl, tmpDir]
470
- : ["clone", "--depth", "1", "--branch", ref, repoUrl, tmpDir];
471
- execFileSync("git", args, { stdio: "pipe", timeout: 60_000 });
472
- }
456
+ // The whole clone-into-tmp is the retried unit: a transient github.com
457
+ // failure (ETIMEDOUT, TLS stall, 5xx) or a watchdog-killed hang retries
458
+ // from a clean empty tmp dir with backoff. Local steps (init, checkout)
459
+ // are not transient, so a failure there raises immediately. The bounded
460
+ // timeout on each git call kills the whole process group on deadline, so
461
+ // a half-open connection during fetch-pack can't hang the clone forever.
462
+ await withGitRetry(async () => {
463
+ // Start each attempt from a clean, empty tmp dir — git clone refuses
464
+ // a non-empty target, and a prior attempt may have left partial state.
465
+ if (existsSync(tmpDir)) {
466
+ rmSync(tmpDir, { recursive: true, force: true });
467
+ }
468
+ mkdirSync(tmpDir, { recursive: true });
469
+ if (isImmutableRef(ref)) {
470
+ // `git clone --branch <sha>` does not work — git treats --branch as
471
+ // a ref name lookup. For commit SHAs we init + fetch + checkout so
472
+ // the SHA-pinned cache is content-addressed and immutable.
473
+ await runGit(["init", "--quiet", tmpDir], {
474
+ env: GIT_STALL_ENV,
475
+ timeoutMs: LOCAL_GIT_TIMEOUT_MS,
476
+ });
477
+ await runGit(["remote", "add", "origin", repoUrl], {
478
+ cwd: tmpDir,
479
+ env: GIT_STALL_ENV,
480
+ timeoutMs: LOCAL_GIT_TIMEOUT_MS,
481
+ });
482
+ await runGit(["fetch", "--depth", "1", "origin", ref], {
483
+ cwd: tmpDir,
484
+ env: GIT_STALL_ENV,
485
+ timeoutMs: CLONE_TIMEOUT_MS,
486
+ });
487
+ await runGit(["checkout", "--quiet", "FETCH_HEAD"], {
488
+ cwd: tmpDir,
489
+ env: GIT_STALL_ENV,
490
+ timeoutMs: LOCAL_GIT_TIMEOUT_MS,
491
+ });
492
+ }
493
+ else {
494
+ const args = ref === "HEAD"
495
+ ? ["clone", "--depth", "1", repoUrl, tmpDir]
496
+ : ["clone", "--depth", "1", "--branch", ref, repoUrl, tmpDir];
497
+ await runGit(args, { env: GIT_STALL_ENV, timeoutMs: CLONE_TIMEOUT_MS });
498
+ }
499
+ }, { logger: this.logger, label: `${owner}/${repo}@${ref}` });
473
500
  // Atomic publish: readers only ever see a complete clone at
474
501
  // cloneDir, never a half-populated one.
475
502
  renameSync(tmpDir, cloneDir);
@@ -1 +1 @@
1
- {"version":3,"file":"github-provider.js","sourceRoot":"","sources":["../src/github-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-provider.js","sourceRoot":"","sources":["../src/github-provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pulsemcp/air-provider-github",
3
- "version": "0.11.0",
3
+ "version": "0.12.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -29,7 +29,7 @@
29
29
  "lint": "tsc --noEmit"
30
30
  },
31
31
  "dependencies": {
32
- "@pulsemcp/air-core": "0.11.0",
32
+ "@pulsemcp/air-core": "0.12.1",
33
33
  "proper-lockfile": "^4.1.2"
34
34
  },
35
35
  "devDependencies": {