@0xmaxma/claude-gateway 1.8.7 → 1.8.8

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.
Files changed (72) hide show
  1. package/README.md +96 -0
  2. package/dist/agent/runner.d.ts +47 -1
  3. package/dist/agent/runner.d.ts.map +1 -1
  4. package/dist/agent/runner.js +116 -17
  5. package/dist/agent/runner.js.map +1 -1
  6. package/dist/api/connectors-router.d.ts +50 -0
  7. package/dist/api/connectors-router.d.ts.map +1 -0
  8. package/dist/api/connectors-router.js +650 -0
  9. package/dist/api/connectors-router.js.map +1 -0
  10. package/dist/api/gateway-router.d.ts +4 -0
  11. package/dist/api/gateway-router.d.ts.map +1 -1
  12. package/dist/api/gateway-router.js +26 -0
  13. package/dist/api/gateway-router.js.map +1 -1
  14. package/dist/api/oauth-connectors-router.d.ts +43 -0
  15. package/dist/api/oauth-connectors-router.d.ts.map +1 -0
  16. package/dist/api/oauth-connectors-router.js +384 -0
  17. package/dist/api/oauth-connectors-router.js.map +1 -0
  18. package/dist/api/router.d.ts.map +1 -1
  19. package/dist/api/router.js +101 -13
  20. package/dist/api/router.js.map +1 -1
  21. package/dist/apps/agent-manager.d.ts +6 -2
  22. package/dist/apps/agent-manager.d.ts.map +1 -1
  23. package/dist/apps/agent-manager.js +10 -18
  24. package/dist/apps/agent-manager.js.map +1 -1
  25. package/dist/config/config-write-lock.d.ts +45 -0
  26. package/dist/config/config-write-lock.d.ts.map +1 -0
  27. package/dist/config/config-write-lock.js +164 -0
  28. package/dist/config/config-write-lock.js.map +1 -0
  29. package/dist/config/watcher.d.ts.map +1 -1
  30. package/dist/config/watcher.js +29 -0
  31. package/dist/config/watcher.js.map +1 -1
  32. package/dist/connectors/custom-connectors-store.d.ts +54 -0
  33. package/dist/connectors/custom-connectors-store.d.ts.map +1 -0
  34. package/dist/connectors/custom-connectors-store.js +204 -0
  35. package/dist/connectors/custom-connectors-store.js.map +1 -0
  36. package/dist/connectors/custom.d.ts +69 -0
  37. package/dist/connectors/custom.d.ts.map +1 -0
  38. package/dist/connectors/custom.js +158 -0
  39. package/dist/connectors/custom.js.map +1 -0
  40. package/dist/connectors/mcp-oauth.d.ts +152 -0
  41. package/dist/connectors/mcp-oauth.d.ts.map +1 -0
  42. package/dist/connectors/mcp-oauth.js +522 -0
  43. package/dist/connectors/mcp-oauth.js.map +1 -0
  44. package/dist/connectors/oauth-refresh-sweep.d.ts +71 -0
  45. package/dist/connectors/oauth-refresh-sweep.d.ts.map +1 -0
  46. package/dist/connectors/oauth-refresh-sweep.js +337 -0
  47. package/dist/connectors/oauth-refresh-sweep.js.map +1 -0
  48. package/dist/connectors/pending-oauth-store.d.ts +39 -0
  49. package/dist/connectors/pending-oauth-store.d.ts.map +1 -0
  50. package/dist/connectors/pending-oauth-store.js +50 -0
  51. package/dist/connectors/pending-oauth-store.js.map +1 -0
  52. package/dist/connectors/resolve.d.ts +52 -0
  53. package/dist/connectors/resolve.d.ts.map +1 -0
  54. package/dist/connectors/resolve.js +176 -0
  55. package/dist/connectors/resolve.js.map +1 -0
  56. package/dist/connectors/token-env.d.ts +93 -0
  57. package/dist/connectors/token-env.d.ts.map +1 -0
  58. package/dist/connectors/token-env.js +323 -0
  59. package/dist/connectors/token-env.js.map +1 -0
  60. package/dist/connectors/types.d.ts +126 -0
  61. package/dist/connectors/types.d.ts.map +1 -0
  62. package/dist/connectors/types.js +13 -0
  63. package/dist/connectors/types.js.map +1 -0
  64. package/dist/index.js +32 -1
  65. package/dist/index.js.map +1 -1
  66. package/dist/session/process.d.ts +23 -0
  67. package/dist/session/process.d.ts.map +1 -1
  68. package/dist/session/process.js +78 -2
  69. package/dist/session/process.js.map +1 -1
  70. package/dist/types.d.ts +46 -1
  71. package/dist/types.d.ts.map +1 -1
  72. package/package.json +1 -1
@@ -7,9 +7,13 @@ export interface AgentPaths {
7
7
  export declare class AgentManager {
8
8
  private readonly configPath;
9
9
  private readonly agentsDir;
10
- /** Serialises concurrent config reads/writes within this process. */
11
- private configLock;
12
10
  constructor(configPath?: string, agentsDir?: string);
11
+ /**
12
+ * Serialises config reads/writes against every other writer of the same file —
13
+ * the agents API and the connectors store included, not just other AgentManager
14
+ * calls. See config/config-write-lock.ts for why an instance-private lock was
15
+ * not enough.
16
+ */
13
17
  private withConfigLock;
14
18
  /**
15
19
  * Detect host binary paths for injection into the agent container.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../../src/apps/agent-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMpD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAiBD,qBAAa,YAAY;IAKrB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,qEAAqE;IACrE,OAAO,CAAC,UAAU,CAAoC;gBAGnC,UAAU,GAAE,MAA4B,EACxC,SAAS,GAAE,MAA2B;YAG3C,cAAc;IAc5B;;;;;;;;;;OAUG;IACH,gBAAgB,IAAI,UAAU;IAgB9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,OAAO,CAAC,eAAe;IAuBvB;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IA6GzC;;;;;;;OAOG;IACG,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDjD;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD;;;;;OAKG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BzD;;;;OAIG;IACG,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAe7F;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAU9C;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMvD,OAAO,CAAC,gBAAgB;IAMxB;;;OAGG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYhE,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,WAAW;YAYL,iBAAiB;YAmBjB,iBAAiB;CAWhC"}
1
+ {"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../../src/apps/agent-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOpD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAiBD,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,UAAU,GAAE,MAA4B,EACxC,SAAS,GAAE,MAA2B;IAGzD;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAMtB;;;;;;;;;;OAUG;IACH,gBAAgB,IAAI,UAAU;IAgB9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,OAAO,CAAC,eAAe;IAuBvB;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IA6GzC;;;;;;;OAOG;IACG,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDjD;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD;;;;;OAKG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BzD;;;;OAIG;IACG,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAe7F;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAU9C;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMvD,OAAO,CAAC,gBAAgB;IAMxB;;;OAGG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYhE,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,WAAW;YAQL,iBAAiB;YAmBjB,iBAAiB;CAWhC"}
@@ -44,6 +44,7 @@ const node_child_process_1 = require("node:child_process");
44
44
  const js_yaml_1 = __importDefault(require("js-yaml"));
45
45
  const claude_bin_1 = require("../session/claude-bin");
46
46
  const agent_env_1 = require("../config/agent-env");
47
+ const config_write_lock_1 = require("../config/config-write-lock");
47
48
  // ─── Constants ────────────────────────────────────────────────────────────────
48
49
  const DEFAULT_CONFIG_PATH = path.join(os.homedir(), '.claude-gateway', 'config.json');
49
50
  // Derived, not declared independently: the agents dir is always config.json's
@@ -54,20 +55,15 @@ class AgentManager {
54
55
  constructor(configPath = DEFAULT_CONFIG_PATH, agentsDir = DEFAULT_AGENTS_DIR) {
55
56
  this.configPath = configPath;
56
57
  this.agentsDir = agentsDir;
57
- /** Serialises concurrent config reads/writes within this process. */
58
- this.configLock = Promise.resolve();
59
58
  }
60
- async withConfigLock(fn) {
61
- let release;
62
- const prev = this.configLock;
63
- this.configLock = new Promise((r) => { release = r; });
64
- await prev;
65
- try {
66
- return fn();
67
- }
68
- finally {
69
- release();
70
- }
59
+ /**
60
+ * Serialises config reads/writes against every other writer of the same file —
61
+ * the agents API and the connectors store included, not just other AgentManager
62
+ * calls. See config/config-write-lock.ts for why an instance-private lock was
63
+ * not enough.
64
+ */
65
+ withConfigLock(fn) {
66
+ return (0, config_write_lock_1.withConfigWriteLock)(this.configPath, fn);
71
67
  }
72
68
  // ─── Public API ────────────────────────────────────────────────────────────
73
69
  /**
@@ -447,11 +443,7 @@ class AgentManager {
447
443
  // mkdirSync is usually a recursive no-op once that's already run, but
448
444
  // must not itself default to 0755 on any path that reaches here first.
449
445
  fs.mkdirSync(path.dirname(this.configPath), { recursive: true, mode: 0o700 });
450
- const tmp = `${this.configPath}.tmp.${process.pid}`;
451
- // mode: 0o600 — rename() carries this file's mode onto config.json,
452
- // silently downgrading an existing 0600 config to 0644 otherwise (#460).
453
- fs.writeFileSync(tmp, JSON.stringify(config, null, 2), { encoding: 'utf-8', mode: 0o600 });
454
- fs.renameSync(tmp, this.configPath);
446
+ (0, config_write_lock_1.writeConfigAtomicSync)(this.configPath, config);
455
447
  }
456
448
  async upsertConfigEntry(agentId, entry) {
457
449
  return this.withConfigLock(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../../src/apps/agent-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../../src/apps/agent-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ export declare function withConfigWriteLock<T>(configPath: string, fn: () => T | Promise<T>): Promise<T>;
2
+ /** How many paths currently have a live lock chain. Exported for the tests that
3
+ * assert the map above is pruned rather than append-only; nothing in `src`
4
+ * reads it. */
5
+ export declare function lockedPathCountForTests(): number;
6
+ /**
7
+ * The write half of every config.json mutation: serialise, write to a fresh tmp
8
+ * path, rename over the target.
9
+ *
10
+ * `mode: 0o600` is the part that has to be got right every time and had been
11
+ * copy-pasted five ways. config.json carries the admin API key and every agent's
12
+ * channel bot tokens, and `rename()` carries the tmp file's mode onto the
13
+ * destination — so a tmp file written at the default 0644 silently downgrades an
14
+ * existing 0600 config on its first edit (issue #460). Centralised here so a sixth
15
+ * writer inherits the policy instead of re-deriving it, and so the fix for the next
16
+ * thing found wrong with it lands in one place.
17
+ *
18
+ * The `randomUUID()` suffix is load-bearing, not cosmetic: `writeFile`'s `mode` is
19
+ * only applied when it CREATES the file, so a fixed tmp path left behind by a
20
+ * crashed write is reused at whatever mode it already had, and the 0600 never
21
+ * lands. A unique path per write cannot collide with a stale leftover, which is why
22
+ * this needs no follow-up `chmod` — the call sites that used a fixed `.tmp` or a
23
+ * pid-suffixed one did.
24
+ *
25
+ * Callers are expected to already hold `withConfigWriteLock` for `configPath` —
26
+ * this function does not take it, because the read-parse-mutate that precedes it
27
+ * has to be inside the same critical section to be worth anything.
28
+ *
29
+ * A failed `rename` leaves the tmp file behind, and the uniqueness that makes the
30
+ * 0600 reliable is exactly what stops a later write from reusing (and thereby
31
+ * clearing) it: every leak is permanent, and each one is a full plaintext copy of
32
+ * config.json — admin API key, every agent's bot tokens — accumulating next to the
33
+ * real file. Unlinked best-effort on the way out, matching connectors/token-env.ts.
34
+ * The unlink's own failure is swallowed: the caller's error is the one worth
35
+ * raising, and a tmp file that cannot be removed is not made better by hiding why
36
+ * the write failed.
37
+ */
38
+ export declare function writeConfigAtomic(configPath: string, config: unknown): Promise<void>;
39
+ /** `writeConfigAtomic` for the two callers that run inside a synchronous critical
40
+ * section (agent/runner.ts's model persist, apps/agent-manager.ts's writeConfig)
41
+ * and cannot await without letting another writer interleave. Same tmp/mode/rename
42
+ * policy, and the same best-effort cleanup on a failed rename — kept beside it so
43
+ * the two can never drift apart. */
44
+ export declare function writeConfigAtomicSync(configPath: string, config: unknown): void;
45
+ //# sourceMappingURL=config-write-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-write-lock.d.ts","sourceRoot":"","sources":["../../src/config/config-write-lock.ts"],"names":[],"mappings":"AAiCA,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CAqBZ;AAED;;gBAEgB;AAChB,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAS1F;AAED;;;;qCAIqC;AACrC,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAa/E"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.withConfigWriteLock = withConfigWriteLock;
37
+ exports.lockedPathCountForTests = lockedPathCountForTests;
38
+ exports.writeConfigAtomic = writeConfigAtomic;
39
+ exports.writeConfigAtomicSync = writeConfigAtomicSync;
40
+ const path = __importStar(require("path"));
41
+ const fs = __importStar(require("fs"));
42
+ const fs_1 = require("fs");
43
+ const crypto_1 = require("crypto");
44
+ /**
45
+ * One process-wide write lock per config.json path.
46
+ *
47
+ * config.json is mutated by several unrelated subsystems — the agents API
48
+ * (api/router.ts), a model change from a chat command (agent/runner.ts), app-agent
49
+ * install/uninstall (apps/agent-manager.ts), and connector management
50
+ * (connectors/custom-connectors-store.ts). Each of those did its own
51
+ * read → parse → mutate → write-tmp → rename, and each guarded it with a `Promise`
52
+ * chain private to its own module or instance.
53
+ *
54
+ * Private locks only serialise a writer against itself. Two different writers still
55
+ * interleave: both read the same bytes, each applies its own mutation to its own copy,
56
+ * and the second rename discards the first one's change — a connector the admin just
57
+ * added, or a model the user just switched to, silently gone with no error anywhere.
58
+ * Whole-file rename means there is no partial-write corruption to detect, either; the
59
+ * losing change simply never existed.
60
+ *
61
+ * Keying on the resolved path (rather than a single global) keeps tests that point at
62
+ * their own temp config from serialising against each other, and is what makes this
63
+ * safe to adopt everywhere: a writer that holds the lock for a slow operation only
64
+ * blocks other writers of the same file.
65
+ *
66
+ * This is a process-local lock. It does not coordinate with a second gateway process
67
+ * writing the same file — that has never been a supported deployment, and an advisory
68
+ * file lock would be the fix if it ever were.
69
+ */
70
+ const locks = new Map();
71
+ function withConfigWriteLock(configPath, fn) {
72
+ const key = path.resolve(configPath);
73
+ const prev = locks.get(key) ?? Promise.resolve();
74
+ // `.catch` so one caller's rejection doesn't poison the chain for the next.
75
+ const run = prev.catch(() => { }).then(fn);
76
+ const tail = run.catch(() => { });
77
+ locks.set(key, tail);
78
+ // Dropped once this is the last writer for the path, because the map is
79
+ // otherwise append-only and keyed on a string this module does not choose. A
80
+ // gateway writes one config.json for its whole life, so this is not the leak
81
+ // it would be elsewhere — but the same lock is what every test's temp config
82
+ // goes through, and each of those keys is a path that will never be written
83
+ // again. `locks.get(key) === tail` is the whole safety condition: a writer
84
+ // that chained on while this one ran has already replaced the tail, so the
85
+ // delete does not run and its turn is not lost. One that arrives after the
86
+ // delete finds no entry and starts a fresh chain, which is correct — the
87
+ // chain it would have joined had already settled.
88
+ void tail.then(() => {
89
+ if (locks.get(key) === tail)
90
+ locks.delete(key);
91
+ });
92
+ return run;
93
+ }
94
+ /** How many paths currently have a live lock chain. Exported for the tests that
95
+ * assert the map above is pruned rather than append-only; nothing in `src`
96
+ * reads it. */
97
+ function lockedPathCountForTests() {
98
+ return locks.size;
99
+ }
100
+ /**
101
+ * The write half of every config.json mutation: serialise, write to a fresh tmp
102
+ * path, rename over the target.
103
+ *
104
+ * `mode: 0o600` is the part that has to be got right every time and had been
105
+ * copy-pasted five ways. config.json carries the admin API key and every agent's
106
+ * channel bot tokens, and `rename()` carries the tmp file's mode onto the
107
+ * destination — so a tmp file written at the default 0644 silently downgrades an
108
+ * existing 0600 config on its first edit (issue #460). Centralised here so a sixth
109
+ * writer inherits the policy instead of re-deriving it, and so the fix for the next
110
+ * thing found wrong with it lands in one place.
111
+ *
112
+ * The `randomUUID()` suffix is load-bearing, not cosmetic: `writeFile`'s `mode` is
113
+ * only applied when it CREATES the file, so a fixed tmp path left behind by a
114
+ * crashed write is reused at whatever mode it already had, and the 0600 never
115
+ * lands. A unique path per write cannot collide with a stale leftover, which is why
116
+ * this needs no follow-up `chmod` — the call sites that used a fixed `.tmp` or a
117
+ * pid-suffixed one did.
118
+ *
119
+ * Callers are expected to already hold `withConfigWriteLock` for `configPath` —
120
+ * this function does not take it, because the read-parse-mutate that precedes it
121
+ * has to be inside the same critical section to be worth anything.
122
+ *
123
+ * A failed `rename` leaves the tmp file behind, and the uniqueness that makes the
124
+ * 0600 reliable is exactly what stops a later write from reusing (and thereby
125
+ * clearing) it: every leak is permanent, and each one is a full plaintext copy of
126
+ * config.json — admin API key, every agent's bot tokens — accumulating next to the
127
+ * real file. Unlinked best-effort on the way out, matching connectors/token-env.ts.
128
+ * The unlink's own failure is swallowed: the caller's error is the one worth
129
+ * raising, and a tmp file that cannot be removed is not made better by hiding why
130
+ * the write failed.
131
+ */
132
+ async function writeConfigAtomic(configPath, config) {
133
+ const tmp = `${configPath}.tmp.${(0, crypto_1.randomUUID)()}`;
134
+ await fs_1.promises.writeFile(tmp, JSON.stringify(config, null, 2), { encoding: 'utf-8', mode: 0o600 });
135
+ try {
136
+ await fs_1.promises.rename(tmp, configPath);
137
+ }
138
+ catch (err) {
139
+ await fs_1.promises.unlink(tmp).catch(() => { });
140
+ throw err;
141
+ }
142
+ }
143
+ /** `writeConfigAtomic` for the two callers that run inside a synchronous critical
144
+ * section (agent/runner.ts's model persist, apps/agent-manager.ts's writeConfig)
145
+ * and cannot await without letting another writer interleave. Same tmp/mode/rename
146
+ * policy, and the same best-effort cleanup on a failed rename — kept beside it so
147
+ * the two can never drift apart. */
148
+ function writeConfigAtomicSync(configPath, config) {
149
+ const tmp = `${configPath}.tmp.${(0, crypto_1.randomUUID)()}`;
150
+ fs.writeFileSync(tmp, JSON.stringify(config, null, 2), { encoding: 'utf-8', mode: 0o600 });
151
+ try {
152
+ fs.renameSync(tmp, configPath);
153
+ }
154
+ catch (err) {
155
+ try {
156
+ fs.unlinkSync(tmp);
157
+ }
158
+ catch {
159
+ /* best effort — the rename error below is the one that matters */
160
+ }
161
+ throw err;
162
+ }
163
+ }
164
+ //# sourceMappingURL=config-write-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-write-lock.js","sourceRoot":"","sources":["../../src/config/config-write-lock.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,kDAwBC;AAKD,0DAEC;AAkCD,8CASC;AAOD,sDAaC;AA/HD,2CAA6B;AAC7B,uCAAyB;AACzB,2BAAqC;AACrC,mCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;AAElD,SAAgB,mBAAmB,CACjC,UAAkB,EAClB,EAAwB;IAExB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACjD,4EAA4E;IAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACjC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrB,wEAAwE;IACxE,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,yEAAyE;IACzE,kDAAkD;IAClD,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QAClB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;gBAEgB;AAChB,SAAgB,uBAAuB;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACI,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,MAAe;IACzE,MAAM,GAAG,GAAG,GAAG,UAAU,QAAQ,IAAA,mBAAU,GAAE,EAAE,CAAC;IAChD,MAAM,aAAG,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9F,IAAI,CAAC;QACH,MAAM,aAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,aAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtC,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;qCAIqC;AACrC,SAAgB,qBAAqB,CAAC,UAAkB,EAAE,MAAe;IACvE,MAAM,GAAG,GAAG,GAAG,UAAU,QAAQ,IAAA,mBAAU,GAAE,EAAE,CAAC;IAChD,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/config/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAK9D,QAAA,MAAM,2BAA2B,EAAE,MAAM,EAMxC,CAAC;AAWF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACxB;AAOD,qBAAa,aAAc,SAAQ,YAAY;IAe3C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAhBzB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IACrH,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IACtE,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IACtF,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAMxF,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAGhB,UAAU,EAAE,MAAM,EACnC,aAAa,EAAE,aAAa,EACX,MAAM,EAAE,MAAM;IAOjC,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IAKZ,kCAAkC;IAClC,SAAS,IAAI,aAAa;IAI1B,MAAM,IAAI,IAAI;IAgGd,OAAO,CAAC,UAAU;CAqEnB;AAED,2EAA2E;AAC3E,iBAAS,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAoBlD;AAGD,OAAO,EAAE,SAAS,IAAI,UAAU,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/config/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAK9D,QAAA,MAAM,2BAA2B,EAAE,MAAM,EAYxC,CAAC;AA8BF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACxB;AAOD,qBAAa,aAAc,SAAQ,YAAY;IAe3C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAhBzB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IACrH,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IACtE,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IACtF,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAMxF,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAGhB,UAAU,EAAE,MAAM,EACnC,aAAa,EAAE,aAAa,EACX,MAAM,EAAE,MAAM;IAOjC,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IAKZ,kCAAkC;IAClC,SAAS,IAAI,aAAa;IAI1B,MAAM,IAAI,IAAI;IAgGd,OAAO,CAAC,UAAU;CAyEnB;AAED,2EAA2E;AAC3E,iBAAS,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAoBlD;AAGD,OAAO,EAAE,SAAS,IAAI,UAAU,EAAE,2BAA2B,EAAE,CAAC"}
@@ -14,6 +14,12 @@ const HOT_RELOADABLE_AGENT_FIELDS = [
14
14
  'session.idleTimeoutMinutes',
15
15
  'session.maxConcurrent',
16
16
  'heartbeat.rateLimitMinutes',
17
+ // Per-agent connector enablement ({connectorId: {enabled}}) — only affects
18
+ // NEW session spawns (SessionProcess reads it fresh via AgentRunner's own
19
+ // live object reference, see index.ts's 'changes' handler); an
20
+ // already-running session's subprocess still needs an explicit restart
21
+ // (restartSessionsUsingConnector) to pick it up mid-conversation.
22
+ 'connectors',
17
23
  ];
18
24
  exports.HOT_RELOADABLE_AGENT_FIELDS = HOT_RELOADABLE_AGENT_FIELDS;
19
25
  // Gateway-level (non-agent) fields that can be hot-reloaded; agentId will be '' in ConfigChange
@@ -23,6 +29,25 @@ const HOT_RELOADABLE_GATEWAY_FIELDS = [
23
29
  // call — and turning the level up to chase a live problem is precisely when a
24
30
  // restart is unaffordable, since it kills the sessions being investigated.
25
31
  'gateway.logs',
32
+ // Same "new spawns only" caveat as 'connectors' above — customConnectors is
33
+ // where every connector definition lives regardless of who owns its
34
+ // credential (see connectors/types.ts's CustomConnectorEntry).
35
+ 'gateway.customConnectors',
36
+ // The default the per-agent `connectors` map is read against
37
+ // (resolveEnabledConnectors' third argument). Hot-reloadable for the same
38
+ // reason and with the same scope as the two above: both readers —
39
+ // SessionProcess.writeMcpConfig and AgentRunner.restartSessionsUsingConnector
40
+ // — take it off the live config object at call time, so replacing it here is
41
+ // enough for every subsequent spawn. Flipping it to `false` is how an operator
42
+ // shuts every not-explicitly-enabled connector off on a shared box; making
43
+ // that wait for a gateway restart would mean killing the sessions in order to
44
+ // narrow what they can reach.
45
+ //
46
+ // gateway.oauthReturnUrl is deliberately NOT here: createOauthCallbackRouter
47
+ // captures it as a plain argument at mount time (gateway-router.ts), so a live
48
+ // edit cannot reach the mounted router. It is listed in gatewayFieldPairs
49
+ // below so the change is still reported — as restart-required, like publicUrl.
50
+ 'gateway.connectorsDefaultEnabled',
26
51
  ];
27
52
  class ConfigWatcher extends events_1.EventEmitter {
28
53
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -170,6 +195,7 @@ class ConfigWatcher extends events_1.EventEmitter {
170
195
  { field: 'telegram.botToken', oldVal: oldAgent.telegram?.botToken, newVal: newAgent.telegram?.botToken },
171
196
  { field: 'discord.botToken', oldVal: oldAgent.discord?.botToken, newVal: newAgent.discord?.botToken },
172
197
  { field: 'description', oldVal: oldAgent.description, newVal: newAgent.description },
198
+ { field: 'connectors', oldVal: oldAgent.connectors, newVal: newAgent.connectors },
173
199
  ];
174
200
  for (const { field, oldVal, newVal } of fieldPairs) {
175
201
  if (!deepEqual(oldVal, newVal)) {
@@ -188,6 +214,9 @@ class ConfigWatcher extends events_1.EventEmitter {
188
214
  { field: 'gateway.headless', oldVal: oldCfg.gateway.headless, newVal: newCfg.gateway.headless },
189
215
  { field: 'gateway.publicUrl', oldVal: oldCfg.gateway.publicUrl, newVal: newCfg.gateway.publicUrl },
190
216
  { field: 'gateway.logs', oldVal: oldCfg.gateway.logs, newVal: newCfg.gateway.logs },
217
+ { field: 'gateway.customConnectors', oldVal: oldCfg.gateway.customConnectors, newVal: newCfg.gateway.customConnectors },
218
+ { field: 'gateway.connectorsDefaultEnabled', oldVal: oldCfg.gateway.connectorsDefaultEnabled, newVal: newCfg.gateway.connectorsDefaultEnabled },
219
+ { field: 'gateway.oauthReturnUrl', oldVal: oldCfg.gateway.oauthReturnUrl, newVal: newCfg.gateway.oauthReturnUrl },
191
220
  ];
192
221
  for (const { field, oldVal, newVal } of gatewayFieldPairs) {
193
222
  if (!deepEqual(oldVal, newVal)) {
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/config/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/config/watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { CustomConnectorEntry } from '../types';
2
+ /**
3
+ * Read-modify-write access to config.json's `gateway.customConnectors` subtree,
4
+ * extracted out of connectors-router.ts so a second router (oauth-connectors-router.ts)
5
+ * can share the exact same write lock instead of racing an independent one —
6
+ * two routers each holding their own `Promise`-chain lock over the same file
7
+ * would defeat the point of serializing writes at all.
8
+ *
9
+ * That lock is `config/config-write-lock.ts`'s, not a private one, because the same
10
+ * argument applies one level up: api/router.ts, agent/runner.ts and
11
+ * apps/agent-manager.ts all rewrite this file too, and a lock this module owned alone
12
+ * would serialise connector writes against each other while still losing them to an
13
+ * agents-API write that happened to interleave.
14
+ *
15
+ * One instance is created per gateway process (see gateway-router.ts's
16
+ * constructor) and threaded into every router that touches customConnectors.
17
+ */
18
+ export interface CustomConnectorsStore {
19
+ /** Serialised read-modify-write of the whole customConnectors map. */
20
+ mutate(fn: (connectors: Record<string, CustomConnectorEntry>) => void): Promise<void>;
21
+ /** Fresh read — mirrors token-env.ts's "no caching" stance. */
22
+ read(): Promise<Record<string, CustomConnectorEntry>>;
23
+ /**
24
+ * Serialised read-DECIDE-write for one connector: `fn` is handed the entry as it
25
+ * stands INSIDE the write lock, and config.json is rewritten only if `fn` calls
26
+ * `remove()`.
27
+ *
28
+ * The routes that act on an existing connector — DELETE and /connect — branch on
29
+ * what they find there: DELETE reads `credentialOwner` to choose between clearing
30
+ * the secret and removing the entry, and `secretNames` to choose which secrets to
31
+ * clear; /connect reads both to decide whether a pasted token belongs here at all.
32
+ * Taking that read outside the lock makes the decision a snapshot of a state that
33
+ * a concurrent /oauth/receive (the one route that rewrites an existing entry's
34
+ * owner and secret names wholesale) may already have replaced — so DELETE would
35
+ * clear secrets under names the entry no longer declares while keeping an entry it
36
+ * should have removed, and /connect would file a pasted token under a name nothing
37
+ * ever reads again. `read()` remains right for the routes that only report.
38
+ *
39
+ * `fn` runs while the lock is held, so it must not call back into this store or
40
+ * `withConfigWriteLock` — the lock is a promise chain, not a reentrant one, and a
41
+ * nested acquire deadlocks. Slow work that does not need the entry (restarting
42
+ * sessions, in particular) belongs after this resolves.
43
+ */
44
+ withEntry<T>(connectorId: string, fn: (write: ConnectorWrite) => T | Promise<T>): Promise<T>;
45
+ }
46
+ /** What `withEntry` hands its callback. */
47
+ export interface ConnectorWrite {
48
+ /** The entry as it stands inside the write lock — `undefined` if there is none. */
49
+ readonly entry: CustomConnectorEntry | undefined;
50
+ /** Hard-delete it: the entry AND every agent's enablement flag for it, in this same write. */
51
+ remove(): void;
52
+ }
53
+ export declare function createCustomConnectorsStore(configPath?: string): CustomConnectorsStore;
54
+ //# sourceMappingURL=custom-connectors-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-connectors-store.d.ts","sourceRoot":"","sources":["../../src/connectors/custom-connectors-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGrD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,MAAM,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,+DAA+D;IAC/D,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACtD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9F;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACjD,8FAA8F;IAC9F,MAAM,IAAI,IAAI,CAAC;CAChB;AAgCD,wBAAgB,2BAA2B,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,qBAAqB,CA4JtF"}