@generacy-ai/orchestrator 0.3.0 → 0.4.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.
Files changed (36) hide show
  1. package/dist/conversation/types.d.ts +2 -2
  2. package/dist/routes/health.d.ts +7 -0
  3. package/dist/routes/health.d.ts.map +1 -1
  4. package/dist/routes/health.js +20 -0
  5. package/dist/routes/health.js.map +1 -1
  6. package/dist/server.d.ts.map +1 -1
  7. package/dist/server.js +62 -3
  8. package/dist/server.js.map +1 -1
  9. package/dist/services/credential-expiry-watcher.d.ts +50 -0
  10. package/dist/services/credential-expiry-watcher.d.ts.map +1 -0
  11. package/dist/services/credential-expiry-watcher.js +137 -0
  12. package/dist/services/credential-expiry-watcher.js.map +1 -0
  13. package/dist/services/github-auth-health.d.ts +42 -0
  14. package/dist/services/github-auth-health.d.ts.map +1 -0
  15. package/dist/services/github-auth-health.js +163 -0
  16. package/dist/services/github-auth-health.js.map +1 -0
  17. package/dist/services/identity.d.ts.map +1 -1
  18. package/dist/services/identity.js +5 -4
  19. package/dist/services/identity.js.map +1 -1
  20. package/dist/services/label-monitor-service.d.ts +16 -1
  21. package/dist/services/label-monitor-service.d.ts.map +1 -1
  22. package/dist/services/label-monitor-service.js +17 -2
  23. package/dist/services/label-monitor-service.js.map +1 -1
  24. package/dist/services/pr-feedback-monitor-service.d.ts +5 -2
  25. package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
  26. package/dist/services/pr-feedback-monitor-service.js +25 -1
  27. package/dist/services/pr-feedback-monitor-service.js.map +1 -1
  28. package/dist/types/api.d.ts +38 -5
  29. package/dist/types/api.d.ts.map +1 -1
  30. package/dist/types/api.js +2 -0
  31. package/dist/types/api.js.map +1 -1
  32. package/dist/types/github-auth.d.ts +159 -0
  33. package/dist/types/github-auth.d.ts.map +1 -0
  34. package/dist/types/github-auth.js +35 -0
  35. package/dist/types/github-auth.js.map +1 -0
  36. package/package.json +6 -6
@@ -70,11 +70,11 @@ export declare const ConversationRelayInputSchema: z.ZodObject<{
70
70
  action: z.ZodLiteral<"message">;
71
71
  content: z.ZodString;
72
72
  }, "strip", z.ZodTypeAny, {
73
- content: string;
74
73
  action: "message";
75
- }, {
76
74
  content: string;
75
+ }, {
77
76
  action: "message";
77
+ content: string;
78
78
  }>;
79
79
  export type ConversationRelayInput = z.infer<typeof ConversationRelayInputSchema>;
80
80
  export declare const ConversationRelayOutputSchema: z.ZodObject<{
@@ -1,5 +1,6 @@
1
1
  import type { FastifyInstance } from 'fastify';
2
2
  import type { ServiceStatus } from '../types/index.js';
3
+ import type { GitHubAuthSnapshot } from '../types/github-auth.js';
3
4
  /**
4
5
  * Health check options
5
6
  */
@@ -15,6 +16,12 @@ export interface HealthCheckOptions {
15
16
  id?: string;
16
17
  displayName?: string;
17
18
  };
19
+ /**
20
+ * Getter returning the current `GitHubAuthHealthService.snapshot()` for the
21
+ * `githubAuth` field. Returns `undefined` when the service is not wired
22
+ * (worker mode, or wizard activation has not completed).
23
+ */
24
+ githubAuth?: () => GitHubAuthSnapshot | undefined;
18
25
  }
19
26
  /**
20
27
  * Setup health routes
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAgC,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIrF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IACtD;;;;OAIG;IACH,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AASD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAkKf"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAgC,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IACtD;;;;OAIG;IACH,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,kBAAkB,GAAG,SAAS,CAAC;CACnD;AAqBD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA2Kf"}
@@ -1,5 +1,16 @@
1
1
  import { probeCodeServerSocket } from '../services/code-server-probe.js';
2
2
  import { probeControlPlaneSocket } from '../services/control-plane-probe.js';
3
+ const GITHUB_AUTH_SCHEMA = {
4
+ type: 'object',
5
+ properties: {
6
+ status: { type: 'string', enum: ['ok', 'failing', 'unknown'] },
7
+ consecutiveFailures: { type: 'integer', minimum: 0 },
8
+ lastSuccessAt: { type: 'string', format: 'date-time' },
9
+ credentialId: { type: 'string' },
10
+ expiresAt: { type: 'string', format: 'date-time' },
11
+ },
12
+ required: ['status', 'consecutiveFailures'],
13
+ };
3
14
  /**
4
15
  * Default health checks
5
16
  */
@@ -12,6 +23,7 @@ const defaultChecks = {
12
23
  export async function setupHealthRoutes(server, options = {}) {
13
24
  const checks = { ...defaultChecks, ...options.checks };
14
25
  const cluster = options.cluster;
26
+ const githubAuthGetter = options.githubAuth;
15
27
  // GET /health - Health check endpoint
16
28
  server.get('/health', {
17
29
  schema: {
@@ -31,6 +43,7 @@ export async function setupHealthRoutes(server, options = {}) {
31
43
  controlPlaneReady: { type: 'boolean' },
32
44
  displayName: { type: 'string' },
33
45
  clusterId: { type: 'string' },
46
+ githubAuth: GITHUB_AUTH_SCHEMA,
34
47
  },
35
48
  },
36
49
  503: {
@@ -46,6 +59,7 @@ export async function setupHealthRoutes(server, options = {}) {
46
59
  controlPlaneReady: { type: 'boolean' },
47
60
  displayName: { type: 'string' },
48
61
  clusterId: { type: 'string' },
62
+ githubAuth: GITHUB_AUTH_SCHEMA,
49
63
  },
50
64
  },
51
65
  },
@@ -88,6 +102,12 @@ export async function setupHealthRoutes(server, options = {}) {
88
102
  if (cluster?.id) {
89
103
  response.clusterId = cluster.id;
90
104
  }
105
+ if (githubAuthGetter) {
106
+ const snapshot = githubAuthGetter();
107
+ if (snapshot) {
108
+ response.githubAuth = snapshot;
109
+ }
110
+ }
91
111
  const statusCode = overallStatus === 'error' ? 503 : 200;
92
112
  return reply.status(statusCode).send(response);
93
113
  });
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAKnF,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,mBAAmB,CAAC;AAM1F,OAAO,EAAwB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AA4C5E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,iCAAiC;IACjC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuhB9F;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA4C1E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAChD,OAAO,CAAC,eAAe,CAAC,CAG1B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,eAAe,CAAC,CAGvE;AA+PD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,eAAe;QACvB,MAAM,EAAE,kBAAkB,CAAC;KAC5B;CACF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAKnF,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,mBAAmB,CAAC;AAM1F,OAAO,EAAwB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAiD5E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,iCAAiC;IACjC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAylB9F;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA4C1E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAChD,OAAO,CAAC,eAAe,CAAC,CAG1B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,eAAe,CAAC,CAGvE;AA+PD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,eAAe;QACvB,MAAM,EAAE,kBAAkB,CAAC;KAC5B;CACF"}
package/dist/server.js CHANGED
@@ -26,6 +26,8 @@ import { RelayBridge } from './services/relay-bridge.js';
26
26
  import { LeaseManager } from './services/lease-manager.js';
27
27
  import { WebhookSetupService } from './services/webhook-setup-service.js';
28
28
  import { createWizardCredsTokenProvider } from './services/wizard-creds-token-provider.js';
29
+ import { GitHubAuthHealthService } from './services/github-auth-health.js';
30
+ import { CredentialExpiryWatcher, readCredentialDescriptors, } from './services/credential-expiry-watcher.js';
29
31
  import { setupWebhookRoutes } from './routes/webhooks.js';
30
32
  import { setupPrWebhookRoutes } from './routes/pr-webhooks.js';
31
33
  import { setupDispatchRoutes } from './routes/dispatch.js';
@@ -120,6 +122,44 @@ export async function createServer(options = {}) {
120
122
  const wizardCredsTokenProvider = !isWorkerMode
121
123
  ? createWizardCredsTokenProvider('/var/lib/generacy/wizard-credentials.env', server.log)
122
124
  : undefined;
125
+ // Resolve agency dir (matches credhelper-daemon convention). Used by the
126
+ // GitHub auth health service to read credentials.yaml at startup and by the
127
+ // expiry watcher's 60s tick. Safe to compute regardless of mode.
128
+ const agencyDir = process.env['CREDHELPER_AGENCY_DIR'] ?? `${process.cwd()}/.agency`;
129
+ // GitHub auth health service — single owner of `githubAuth` state. The
130
+ // emitEvent closure captures relayClientRef declared below; safe because the
131
+ // service does not emit until monitors call recordResult/maybeRequestRefresh,
132
+ // which happens after server.listen() and (in wizard mode) after activation.
133
+ let relayClientRef = null;
134
+ const githubAuthHealth = !isWorkerMode
135
+ ? new GitHubAuthHealthService({
136
+ emitEvent: (payload) => {
137
+ const client = relayClientRef;
138
+ if (!client || !client.isConnected)
139
+ return;
140
+ client.send({
141
+ type: 'event',
142
+ event: 'cluster.credentials',
143
+ data: payload,
144
+ timestamp: new Date().toISOString(),
145
+ });
146
+ },
147
+ logger: server.log,
148
+ })
149
+ : null;
150
+ // Resolve the github-app credentialId once at startup so monitors can pass
151
+ // it through `health.recordResult(credentialId, ...)`. The expiry watcher
152
+ // refreshes this map on YAML mtime change. When no github-app credential is
153
+ // configured, the value stays undefined and monitors call a no-op variant.
154
+ let githubAppCredentialId;
155
+ if (!isWorkerMode && githubAuthHealth) {
156
+ const initialDescriptors = await readCredentialDescriptors(agencyDir);
157
+ const ghapp = initialDescriptors.find((d) => d.type === 'github-app');
158
+ githubAppCredentialId = ghapp?.credentialId;
159
+ if (initialDescriptors.length > 0) {
160
+ githubAuthHealth.setCredentials(initialDescriptors);
161
+ }
162
+ }
123
163
  // Sync labels for watched repositories (skip in worker mode)
124
164
  if (!isWorkerMode && config.repositories.length > 0) {
125
165
  const labelSyncService = new LabelSyncService(server.log, createGitHubClient, wizardCredsTokenProvider);
@@ -221,7 +261,7 @@ export async function createServer(options = {}) {
221
261
  const monitorConfig = config.smee.channelUrl
222
262
  ? { ...config.monitor, pollIntervalMs: config.smee.fallbackPollIntervalMs, adaptivePolling: false }
223
263
  : config.monitor;
224
- labelMonitorService = new LabelMonitorService(server.log, createGitHubClient, phaseTracker, queueAdapter, monitorConfig, config.repositories, clusterGithubUsername, wizardCredsTokenProvider);
264
+ labelMonitorService = new LabelMonitorService(server.log, createGitHubClient, phaseTracker, queueAdapter, monitorConfig, config.repositories, clusterGithubUsername, wizardCredsTokenProvider, githubAuthHealth ?? undefined, githubAppCredentialId);
225
265
  // Create SmeeWebhookReceiver if Smee channel URL is configured
226
266
  if (config.smee.channelUrl) {
227
267
  const watchedRepos = new Set(config.repositories.map(r => `${r.owner}/${r.repo}`));
@@ -230,15 +270,26 @@ export async function createServer(options = {}) {
230
270
  }
231
271
  // Initialize PR feedback monitor service (if enabled)
232
272
  if (config.prMonitor.enabled) {
233
- prFeedbackMonitorService = new PrFeedbackMonitorService(server.log, createGitHubClient, phaseTracker, queueAdapter, config.prMonitor, config.repositories, clusterGithubUsername, wizardCredsTokenProvider);
273
+ prFeedbackMonitorService = new PrFeedbackMonitorService(server.log, createGitHubClient, phaseTracker, queueAdapter, config.prMonitor, config.repositories, clusterGithubUsername, wizardCredsTokenProvider, githubAuthHealth ?? undefined, githubAppCredentialId);
234
274
  }
235
275
  }
276
+ // Proactive credential expiry watcher (60s timer). Reads .agency/credentials.yaml
277
+ // and asks the auth-health service to request a refresh when <5 min remain.
278
+ // No-op when no credentials.yaml is present (wizard never sealed a credential).
279
+ let credentialExpiryWatcher = null;
280
+ if (!isWorkerMode && githubAuthHealth) {
281
+ credentialExpiryWatcher = new CredentialExpiryWatcher({
282
+ agencyDir,
283
+ health: githubAuthHealth,
284
+ logger: server.log,
285
+ });
286
+ }
236
287
  // Initialize relay bridge (full mode only, when API key is configured)
237
288
  let relayBridge = null;
238
289
  let activationPending = false;
239
290
  // Register internal relay events route BEFORE server.listen() (deferred binding pattern).
240
291
  // The getter resolves to null until activation completes; the route returns 503 in that window.
241
- let relayClientRef = null;
292
+ // (`relayClientRef` is declared above so the GitHubAuthHealthService's emit closure can capture it.)
242
293
  let relayBridgeRef = null;
243
294
  if (!isWorkerMode) {
244
295
  const controlPlaneKey = process.env['ORCHESTRATOR_INTERNAL_API_KEY'];
@@ -326,6 +377,7 @@ export async function createServer(options = {}) {
326
377
  id: config.cluster?.id,
327
378
  displayName: config.cluster?.displayName,
328
379
  },
380
+ githubAuth: () => githubAuthHealth?.snapshot(),
329
381
  });
330
382
  await setupDispatchRoutes(server, queueAdapter);
331
383
  }
@@ -351,6 +403,7 @@ export async function createServer(options = {}) {
351
403
  id: config.cluster?.id,
352
404
  displayName: config.cluster?.displayName,
353
405
  },
406
+ githubAuth: () => githubAuthHealth?.snapshot(),
354
407
  },
355
408
  });
356
409
  // Register webhook routes inside an encapsulated plugin so the custom
@@ -434,6 +487,9 @@ export async function createServer(options = {}) {
434
487
  server.log.error({ err: error }, 'Smee webhook receiver failed');
435
488
  });
436
489
  }
490
+ if (credentialExpiryWatcher) {
491
+ credentialExpiryWatcher.start();
492
+ }
437
493
  if (config.webhookSetup.enabled && config.smee.channelUrl) {
438
494
  const webhookSetupService = new WebhookSetupService(server.log, wizardCredsTokenProvider);
439
495
  webhookSetupService.ensureWebhooks(config.smee.channelUrl, config.repositories).catch((error) => {
@@ -484,6 +540,9 @@ export async function createServer(options = {}) {
484
540
  if (prFeedbackMonitorService) {
485
541
  prFeedbackMonitorService.stopPolling();
486
542
  }
543
+ if (credentialExpiryWatcher) {
544
+ await credentialExpiryWatcher.stop();
545
+ }
487
546
  closeAllSSEConnections();
488
547
  }
489
548
  // Close Redis connection (both modes)
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { CredentialDescriptor } from '../types/github-auth.js';
2
+ import type { GitHubAuthHealthService } from './github-auth-health.js';
3
+ interface Logger {
4
+ info(obj: Record<string, unknown>, msg: string): void;
5
+ warn(obj: Record<string, unknown>, msg: string): void;
6
+ debug(obj: Record<string, unknown>, msg: string): void;
7
+ }
8
+ export interface CredentialExpiryWatcherOptions {
9
+ agencyDir: string;
10
+ health: GitHubAuthHealthService;
11
+ logger: Logger;
12
+ tickIntervalMs?: number;
13
+ nearExpiryWindowMs?: number;
14
+ now?: () => number;
15
+ }
16
+ /**
17
+ * Periodic watcher that reads `<agencyDir>/credentials.yaml` on a fixed cadence,
18
+ * forwards the credential map to `GitHubAuthHealthService` on mtime changes, and
19
+ * asks the service to request a refresh for any credential within the near-expiry
20
+ * window.
21
+ *
22
+ * All filesystem and parse errors are caught and logged at `warn`; the timer
23
+ * never throws so a single bad tick can't kill the watcher (D9).
24
+ */
25
+ export declare class CredentialExpiryWatcher {
26
+ private readonly agencyDir;
27
+ private readonly health;
28
+ private readonly logger;
29
+ private readonly tickIntervalMs;
30
+ private readonly nearExpiryWindowMs;
31
+ private readonly now;
32
+ private intervalHandle;
33
+ private inflightTick;
34
+ private lastMtimeMs;
35
+ private cachedDescriptors;
36
+ private fileMissingWarned;
37
+ constructor(options: CredentialExpiryWatcherOptions);
38
+ start(): void;
39
+ stop(): Promise<void>;
40
+ /** Exposed for tests. */
41
+ tick(): Promise<void>;
42
+ }
43
+ /**
44
+ * Read `<agencyDir>/credentials.yaml` once and return descriptors. Used at
45
+ * orchestrator startup to resolve the github-app `credentialId` for monitor
46
+ * services before the watcher has run its first tick.
47
+ */
48
+ export declare function readCredentialDescriptors(agencyDir: string): Promise<CredentialDescriptor[]>;
49
+ export {};
50
+ //# sourceMappingURL=credential-expiry-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-expiry-watcher.d.ts","sourceRoot":"","sources":["../../src/services/credential-expiry-watcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,UAAU,MAAM;IACd,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AASD;;;;;;;;GAQG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,OAAO,EAAE,8BAA8B;IASnD,KAAK,IAAI,IAAI;IAeP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,yBAAyB;IACnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAuD5B;AAgBD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CASjC"}
@@ -0,0 +1,137 @@
1
+ import { stat, readFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import YAML from 'yaml';
4
+ const DEFAULT_TICK_INTERVAL_MS = 60_000;
5
+ const DEFAULT_NEAR_EXPIRY_WINDOW_MS = 5 * 60_000;
6
+ /**
7
+ * Periodic watcher that reads `<agencyDir>/credentials.yaml` on a fixed cadence,
8
+ * forwards the credential map to `GitHubAuthHealthService` on mtime changes, and
9
+ * asks the service to request a refresh for any credential within the near-expiry
10
+ * window.
11
+ *
12
+ * All filesystem and parse errors are caught and logged at `warn`; the timer
13
+ * never throws so a single bad tick can't kill the watcher (D9).
14
+ */
15
+ export class CredentialExpiryWatcher {
16
+ agencyDir;
17
+ health;
18
+ logger;
19
+ tickIntervalMs;
20
+ nearExpiryWindowMs;
21
+ now;
22
+ intervalHandle = null;
23
+ inflightTick = null;
24
+ lastMtimeMs = null;
25
+ cachedDescriptors = [];
26
+ fileMissingWarned = false;
27
+ constructor(options) {
28
+ this.agencyDir = options.agencyDir;
29
+ this.health = options.health;
30
+ this.logger = options.logger;
31
+ this.tickIntervalMs = options.tickIntervalMs ?? DEFAULT_TICK_INTERVAL_MS;
32
+ this.nearExpiryWindowMs = options.nearExpiryWindowMs ?? DEFAULT_NEAR_EXPIRY_WINDOW_MS;
33
+ this.now = options.now ?? Date.now;
34
+ }
35
+ start() {
36
+ if (this.intervalHandle)
37
+ return;
38
+ this.intervalHandle = setInterval(() => {
39
+ this.inflightTick = this.tick().catch((err) => {
40
+ this.logger.warn({ err: err instanceof Error ? err.message : String(err) }, 'Credential expiry tick failed');
41
+ });
42
+ }, this.tickIntervalMs);
43
+ if (typeof this.intervalHandle.unref === 'function') {
44
+ this.intervalHandle.unref();
45
+ }
46
+ }
47
+ async stop() {
48
+ if (this.intervalHandle) {
49
+ clearInterval(this.intervalHandle);
50
+ this.intervalHandle = null;
51
+ }
52
+ if (this.inflightTick) {
53
+ await this.inflightTick;
54
+ this.inflightTick = null;
55
+ }
56
+ }
57
+ /** Exposed for tests. */
58
+ async tick() {
59
+ const yamlPath = path.join(this.agencyDir, 'credentials.yaml');
60
+ let mtimeMs;
61
+ try {
62
+ const st = await stat(yamlPath);
63
+ mtimeMs = st.mtimeMs;
64
+ }
65
+ catch (err) {
66
+ if (err.code === 'ENOENT') {
67
+ if (!this.fileMissingWarned) {
68
+ this.logger.warn({ yamlPath }, 'credentials.yaml not present — expiry watcher idle until written');
69
+ this.fileMissingWarned = true;
70
+ }
71
+ return;
72
+ }
73
+ this.logger.warn({ yamlPath, err: err instanceof Error ? err.message : String(err) }, 'Failed to stat credentials.yaml');
74
+ return;
75
+ }
76
+ this.fileMissingWarned = false;
77
+ if (mtimeMs !== this.lastMtimeMs) {
78
+ try {
79
+ const raw = await readFile(yamlPath, 'utf8');
80
+ const parsed = YAML.parse(raw);
81
+ const descriptors = parseDescriptors(parsed);
82
+ this.cachedDescriptors = descriptors;
83
+ this.health.setCredentials(descriptors);
84
+ this.lastMtimeMs = mtimeMs;
85
+ }
86
+ catch (err) {
87
+ this.logger.warn({ yamlPath, err: err instanceof Error ? err.message : String(err) }, 'Failed to parse credentials.yaml');
88
+ return;
89
+ }
90
+ }
91
+ const now = this.now();
92
+ for (const desc of this.cachedDescriptors) {
93
+ if (desc.type !== 'github-app')
94
+ continue;
95
+ if (!desc.expiresAt)
96
+ continue;
97
+ const expiresAtMs = Date.parse(desc.expiresAt);
98
+ if (!Number.isFinite(expiresAtMs))
99
+ continue;
100
+ const remainingMs = expiresAtMs - now;
101
+ if (remainingMs <= this.nearExpiryWindowMs) {
102
+ this.health.maybeRequestRefresh(desc.credentialId, 'near-expiry');
103
+ }
104
+ }
105
+ }
106
+ }
107
+ function parseDescriptors(parsed) {
108
+ if (!parsed?.credentials || typeof parsed.credentials !== 'object') {
109
+ return [];
110
+ }
111
+ const descriptors = [];
112
+ for (const [id, entry] of Object.entries(parsed.credentials)) {
113
+ if (!entry || typeof entry !== 'object')
114
+ continue;
115
+ const type = typeof entry.type === 'string' ? entry.type : 'unknown';
116
+ const expiresAt = typeof entry.expiresAt === 'string' ? entry.expiresAt : undefined;
117
+ descriptors.push({ credentialId: id, type, expiresAt });
118
+ }
119
+ return descriptors;
120
+ }
121
+ /**
122
+ * Read `<agencyDir>/credentials.yaml` once and return descriptors. Used at
123
+ * orchestrator startup to resolve the github-app `credentialId` for monitor
124
+ * services before the watcher has run its first tick.
125
+ */
126
+ export async function readCredentialDescriptors(agencyDir) {
127
+ const yamlPath = path.join(agencyDir, 'credentials.yaml');
128
+ try {
129
+ const raw = await readFile(yamlPath, 'utf8');
130
+ const parsed = YAML.parse(raw);
131
+ return parseDescriptors(parsed);
132
+ }
133
+ catch {
134
+ return [];
135
+ }
136
+ }
137
+ //# sourceMappingURL=credential-expiry-watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-expiry-watcher.js","sourceRoot":"","sources":["../../src/services/credential-expiry-watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { CredentialDescriptor, CredentialsEventPayload, GitHubAuthSnapshot } from '../types/github-auth.js';
2
+ import type { AuthHealthSink } from './label-monitor-service.js';
3
+ interface Logger {
4
+ info(obj: Record<string, unknown>, msg: string): void;
5
+ warn(obj: Record<string, unknown>, msg: string): void;
6
+ debug(obj: Record<string, unknown>, msg: string): void;
7
+ }
8
+ export interface GitHubAuthHealthServiceOptions {
9
+ emitEvent: (payload: CredentialsEventPayload) => void;
10
+ logger: Logger;
11
+ now?: () => number;
12
+ minRefreshIntervalMs?: number;
13
+ }
14
+ export type RecordResult = {
15
+ ok: true;
16
+ } | {
17
+ ok: false;
18
+ statusCode?: number;
19
+ error?: unknown;
20
+ };
21
+ /**
22
+ * In-memory per-credential GitHub auth state machine.
23
+ *
24
+ * Owns the `githubAuth` field surfaced on `/health` and emits state-transition
25
+ * events on `cluster.credentials`. Rate-limits refresh requests per credential.
26
+ */
27
+ export declare class GitHubAuthHealthService implements AuthHealthSink {
28
+ private readonly emitEvent;
29
+ private readonly logger;
30
+ private readonly now;
31
+ private readonly minRefreshIntervalMs;
32
+ private readonly entries;
33
+ constructor(options: GitHubAuthHealthServiceOptions);
34
+ setCredentials(credentials: CredentialDescriptor[]): void;
35
+ recordResult(credentialId: string, result: RecordResult): void;
36
+ maybeRequestRefresh(credentialId: string, reason: 'near-expiry' | 'auth-401' | string): boolean;
37
+ snapshot(): GitHubAuthSnapshot;
38
+ private getOrCreate;
39
+ private selectSurfaceCredential;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=github-auth-health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-auth-health.d.ts","sourceRoot":"","sources":["../../src/services/github-auth-health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAGnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,UAAU,MAAM;IACd,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAIxD;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,cAAc;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;gBAE1D,OAAO,EAAE,8BAA8B;IAOnD,cAAc,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,IAAI;IAwBzD,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAkD9D,mBAAmB,CACjB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,MAAM,GAC1C,OAAO;IAsCV,QAAQ,IAAI,kBAAkB;IAsB9B,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,uBAAuB;CAehC"}