@cat-factory/server 0.113.0 → 0.113.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerEnvConfigRepairer.d.ts","sourceRoot":"","sources":["../../src/agents/ContainerEnvConfigRepairer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,QAAQ,EACT,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AACvF,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAgCnF,MAAM,WAAW,sCAAsC;IACrD;;;OAGG;IACH,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,uFAAuF;IACvF,sBAAsB,EAAE,IAAI,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,CAAA;IAC5E,sEAAsE;IACtE,qBAAqB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAClE,iFAAiF;IACjF,cAAc,EAAE,uBAAuB,CAAA;IACvC,2EAA2E;IAC3E,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,sFAAsF;IACtF,KAAK,EAAE,QAAQ,CAAA;IACf,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAA;IACpB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,0BAA2B,YAAW,iBAAiB;IAItD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,YAA6B,IAAI,EAAE,sCAAsC,EAExE;IAED;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAuEjF;IAED,6FAA6F;IACvF,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgC9E;IAED;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;CACF"}
1
+ {"version":3,"file":"ContainerEnvConfigRepairer.d.ts","sourceRoot":"","sources":["../../src/agents/ContainerEnvConfigRepairer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,QAAQ,EACT,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AACvF,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAgCnF,MAAM,WAAW,sCAAsC;IACrD;;;OAGG;IACH,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,uFAAuF;IACvF,sBAAsB,EAAE,IAAI,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,CAAA;IAC5E,sEAAsE;IACtE,qBAAqB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAClE,iFAAiF;IACjF,cAAc,EAAE,uBAAuB,CAAA;IACvC,2EAA2E;IAC3E,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,sFAAsF;IACtF,KAAK,EAAE,QAAQ,CAAA;IACf,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAA;IACpB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,0BAA2B,YAAW,iBAAiB;IAItD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,YAA6B,IAAI,EAAE,sCAAsC,EAExE;IAED;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAuEjF;IAED,6FAA6F;IACvF,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAsC9E;IAED;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;CACF"}
@@ -1,3 +1,4 @@
1
+ import { failureKindFromHarnessCause } from '@cat-factory/kernel';
1
2
  import { isProxyableProvider } from '@cat-factory/agents';
2
3
  import { RunnerJobClient } from './RunnerJobClient.js';
3
4
  import { logger } from '../observability/logger.js';
@@ -124,22 +125,28 @@ export class ContainerEnvConfigRepairer {
124
125
  const error = view.error ?? 'Environment config repair job failed';
125
126
  return {
126
127
  state: 'failed',
127
- // Prefer the transport's STRUCTURED eviction verdict; the error-string regex in
128
- // classifyRepairFailure is the fallback for an older producer that reports no field. Both
129
- // eviction kinds (`crash` / `transient`) collapse to the single `evicted` failure kind on
130
- // purpose env-config repair has no transient-vs-crash recovery budget (only the run
131
- // driver's `recoverContainerEviction` splits them), so the distinction is meaningless here.
132
- failureKind: view.evicted ? 'evicted' : classifyRepairFailure(error),
128
+ // Prefer the transport's STRUCTURED eviction verdict, then the harness's structured
129
+ // `failureCause` (via the kernel's shared mapper); the error-string regex in
130
+ // classifyRepairFailure is the fallback only for an older producer that reports neither
131
+ // field (and also catches the facade-emitted eviction, for which the harness sets no
132
+ // cause). Both eviction kinds (`crash` / `transient`) collapse to the single `evicted`
133
+ // failure kind on purpose — env-config repair has no transient-vs-crash recovery budget
134
+ // (only the run driver's `recoverContainerEviction` splits them), so the distinction is
135
+ // meaningless here.
136
+ failureKind: view.evicted
137
+ ? 'evicted'
138
+ : (failureKindFromHarnessCause(view.failureCause) ?? classifyRepairFailure(error)),
133
139
  error,
134
140
  detail: view.error,
135
141
  };
136
142
  }
137
- // Completed: a structured `error` (e.g. push rejected) is still a failure.
143
+ // Completed: a structured `error` (e.g. push rejected) is still a failure. Prefer the
144
+ // harness's structured cause (e.g. a `git` push fault) over the flat `agent` default.
138
145
  const result = view.result ?? {};
139
146
  if (result.error) {
140
147
  return {
141
148
  state: 'failed',
142
- failureKind: 'agent',
149
+ failureKind: failureKindFromHarnessCause(view.failureCause) ?? 'agent',
143
150
  error: `Environment config repair failed: ${result.error}`,
144
151
  detail: result.error,
145
152
  };
@@ -156,9 +163,11 @@ export class ContainerEnvConfigRepairer {
156
163
  }
157
164
  }
158
165
  /**
159
- * Classify a failed repair job's error message into an {@link AgentFailureKind}: the
160
- * transport maps an evicted/crashed container (a 404 poll) to a failed view, and the
161
- * harness redacts + labels its watchdog kills. Everything else is an agent fault.
166
+ * Classify a failed repair job's error message into an {@link AgentFailureKind} the FALLBACK
167
+ * when the harness reported no structured cause (the kernel's shared
168
+ * `failureKindFromHarnessCause` wins when one is present). The transport maps an
169
+ * evicted/crashed container (a 404 poll) to a failed view, and the harness redacts + labels
170
+ * its watchdog kills. Everything else is an agent fault.
162
171
  */
163
172
  function classifyRepairFailure(error) {
164
173
  if (/evicted or crashed/i.test(error))
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerEnvConfigRepairer.js","sourceRoot":"","sources":["../../src/agents/ContainerEnvConfigRepairer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContainerEnvConfigRepairer.js","sourceRoot":"","sources":["../../src/agents/ContainerEnvConfigRepairer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerRepoBootstrapper.d.ts","sourceRoot":"","sources":["../../src/agents/ContainerRepoBootstrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,4BAA4B,EAC5B,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAEhB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAGnF,MAAM,WAAW,qCAAqC;IACpD;;;OAGG;IACH,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,wEAAwE;IACxE,sBAAsB,EAAE,4BAA4B,CAAA;IACpD,sFAAsF;IACtF,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,4FAA4F;IAC5F,cAAc,EAAE,wBAAwB,CAAA;IACxC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAA;IACpD,oFAAoF;IACpF,YAAY,EAAE,YAAY,CAAA;IAC1B,sEAAsE;IACtE,qBAAqB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAClE,iFAAiF;IACjF,cAAc,EAAE,uBAAuB,CAAA;IACvC,kEAAkE;IAClE,KAAK,EAAE,QAAQ,CAAA;IACf,oFAAoF;IACpF,YAAY,EAAE,MAAM,CAAA;IACpB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAA;CACtF;AAmBD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,yBAA0B,YAAW,gBAAgB;IAIpD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,YAA6B,IAAI,EAAE,qCAAqC,EAEvE;IAED,kFAAkF;IAC5E,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE;IAED;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsK/E;IAED,mFAAmF;IAC7E,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyC3E;IAED;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7D;IAED;;;;;OAKG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAiBvD;IAED,0FAA0F;YAC5E,YAAY;CAkB3B"}
1
+ {"version":3,"file":"ContainerRepoBootstrapper.d.ts","sourceRoot":"","sources":["../../src/agents/ContainerRepoBootstrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,4BAA4B,EAC5B,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAEhB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAGnF,MAAM,WAAW,qCAAqC;IACpD;;;OAGG;IACH,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,wEAAwE;IACxE,sBAAsB,EAAE,4BAA4B,CAAA;IACpD,sFAAsF;IACtF,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,4FAA4F;IAC5F,cAAc,EAAE,wBAAwB,CAAA;IACxC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAA;IACpD,oFAAoF;IACpF,YAAY,EAAE,YAAY,CAAA;IAC1B,sEAAsE;IACtE,qBAAqB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAClE,iFAAiF;IACjF,cAAc,EAAE,uBAAuB,CAAA;IACvC,kEAAkE;IAClE,KAAK,EAAE,QAAQ,CAAA;IACf,oFAAoF;IACpF,YAAY,EAAE,MAAM,CAAA;IACpB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAA;CACtF;AAmBD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,yBAA0B,YAAW,gBAAgB;IAIpD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,YAA6B,IAAI,EAAE,qCAAqC,EAEvE;IAED,kFAAkF;IAC5E,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE;IAED;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsK/E;IAED,mFAAmF;IAC7E,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyC3E;IAED;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7D;IAED;;;;;OAKG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAiBvD;IAED,0FAA0F;YAC5E,YAAY;CAkB3B"}
@@ -1,3 +1,4 @@
1
+ import { failureKindFromHarnessCause } from '@cat-factory/kernel';
1
2
  import { isProxyableProvider } from '@cat-factory/agents';
2
3
  import { RunnerJobClient } from './RunnerJobClient.js';
3
4
  import { logger } from '../observability/logger.js';
@@ -208,7 +209,7 @@ export class ContainerRepoBootstrapper {
208
209
  // `recoverContainerEviction` splits them), so the distinction carries no meaning downstream.
209
210
  failureKind: view.evicted
210
211
  ? 'evicted'
211
- : (bootstrapFailureKindFromCause(view.failureCause) ?? classifyBootstrapFailure(error)),
212
+ : (failureKindFromHarnessCause(view.failureCause) ?? classifyBootstrapFailure(error)),
212
213
  error,
213
214
  detail: view.detail ?? view.error,
214
215
  };
@@ -218,7 +219,7 @@ export class ContainerRepoBootstrapper {
218
219
  if (result.error) {
219
220
  return {
220
221
  state: 'failed',
221
- failureKind: bootstrapFailureKindFromCause(view.failureCause) ?? 'agent',
222
+ failureKind: failureKindFromHarnessCause(view.failureCause) ?? 'agent',
222
223
  error: `Bootstrap failed: ${result.error}`,
223
224
  detail: view.detail ?? result.error,
224
225
  };
@@ -302,10 +303,12 @@ function isBootstrapBoilerplate(entry) {
302
303
  }
303
304
  /**
304
305
  * Classify a failed bootstrap job's error message into a {@link BootstrapFailureKind}
305
- * the board can act on. The transport maps an evicted/crashed container (a 404 poll)
306
- * to a failed view whose message ends "(container evicted or crashed)"; the harness
307
- * redacts + labels its watchdog kills ("…no agent activity…", "…exceeded max
308
- * duration…"). Everything else is an ordinary agent fault.
306
+ * the board can act on the FALLBACK when the harness reported no structured cause
307
+ * (the kernel's shared `failureKindFromHarnessCause` wins when one is present). The
308
+ * transport maps an evicted/crashed container (a 404 poll) to a failed view whose
309
+ * message ends "(container evicted or crashed)"; the harness redacts + labels its
310
+ * watchdog kills ("…no agent activity…", "…exceeded max duration…"). Everything else
311
+ * is an ordinary agent fault.
309
312
  */
310
313
  function classifyBootstrapFailure(error) {
311
314
  if (/evicted or crashed/i.test(error))
@@ -314,26 +317,4 @@ function classifyBootstrapFailure(error) {
314
317
  return 'timeout';
315
318
  return 'agent';
316
319
  }
317
- /**
318
- * Map the harness's STRUCTURED failure cause onto a {@link BootstrapFailureKind}, preferred
319
- * over {@link classifyBootstrapFailure}'s error-string regex when present. Returns undefined
320
- * for an absent/unknown cause so the caller falls back to the regex (older harness image) —
321
- * crucially including container eviction, which has NO harness cause (the transport emits the
322
- * "evicted or crashed" string), so it correctly falls through to the regex's `evicted`.
323
- */
324
- function bootstrapFailureKindFromCause(cause) {
325
- switch (cause) {
326
- case 'inactivity-timeout':
327
- case 'max-duration':
328
- return 'timeout';
329
- case 'agent':
330
- case 'git':
331
- case 'api':
332
- case 'no-usable-output':
333
- case 'no-changes':
334
- return 'agent';
335
- default:
336
- return undefined;
337
- }
338
- }
339
320
  //# sourceMappingURL=ContainerRepoBootstrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerRepoBootstrapper.js","sourceRoot":"","sources":["../../src/agents/ContainerRepoBootstrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContainerRepoBootstrapper.js","sourceRoot":"","sources":["../../src/agents/ContainerRepoBootstrapper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubWebhookController.d.ts","sourceRoot":"","sources":["../../../src/modules/github/GitHubWebhookController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC,CAuEtD"}
1
+ {"version":3,"file":"GitHubWebhookController.d.ts","sourceRoot":"","sources":["../../../src/modules/github/GitHubWebhookController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC,CA+EtD"}
@@ -1,5 +1,6 @@
1
1
  import { Hono } from 'hono';
2
2
  import { StateSigner } from '../../github/state.js';
3
+ import { logWebhookSignatureRejection } from '../../webhooks/signatureLog.js';
3
4
  /**
4
5
  * Public GitHub-facing endpoints (NOT under /workspaces, since GitHub calls
5
6
  * them): the webhook receiver and the App setup callback. Mounted at `/github`.
@@ -12,13 +13,21 @@ import { StateSigner } from '../../github/state.js';
12
13
  export function githubWebhookController() {
13
14
  const app = new Hono();
14
15
  app.post('/webhooks', async (c) => {
15
- const github = c.get('container').github;
16
+ const container = c.get('container');
17
+ const github = container.github;
16
18
  if (!github)
17
19
  return c.json({ error: { code: 'unavailable', message: 'GitHub not configured' } }, 503);
18
20
  // Verify against the raw bytes before parsing.
19
21
  const raw = await c.req.arrayBuffer();
20
- const ok = await github.webhookVerifier.verify(raw, c.req.header('x-hub-signature-256') ?? null);
22
+ const signature = c.req.header('x-hub-signature-256') ?? null;
23
+ const ok = await github.webhookVerifier.verify(raw, signature);
21
24
  if (!ok) {
25
+ // Response stays terse (external caller); log the operator-facing setup remedy.
26
+ logWebhookSignatureRejection({
27
+ provider: 'github',
28
+ secretConfigured: container.config.github.webhookSecret !== '',
29
+ signaturePresent: !!signature,
30
+ });
22
31
  return c.json({ error: { code: 'unauthorized', message: 'Invalid signature' } }, 401);
23
32
  }
24
33
  const eventName = c.req.header('x-github-event') ?? '';
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubWebhookController.js","sourceRoot":"","sources":["../../../src/modules/github/GitHubWebhookController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitHubWebhookController.js","sourceRoot":"","sources":["../../../src/modules/github/GitHubWebhookController.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VcsWebhookController.d.ts","sourceRoot":"","sources":["../../../src/modules/vcs/VcsWebhookController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CA4DnD"}
1
+ {"version":3,"file":"VcsWebhookController.d.ts","sourceRoot":"","sources":["../../../src/modules/vcs/VcsWebhookController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CAqEnD"}
@@ -1,5 +1,6 @@
1
1
  import { Hono } from 'hono';
2
2
  import { getVcsProvider, isVcsProvider } from '@cat-factory/kernel';
3
+ import { logWebhookSignatureRejection } from '../../webhooks/signatureLog.js';
3
4
  /**
4
5
  * Provider-neutral webhook receiver for non-GitHub VCS systems (GitLab first). GitHub keeps
5
6
  * its own `/github/webhooks` route (HMAC + the GitHub-specific projection); this is the
@@ -36,6 +37,15 @@ export function vcsWebhookController() {
36
37
  return c.json({ error: { code: 'unavailable', message: 'Webhook verification not configured' } }, 503);
37
38
  }
38
39
  if (!(await bundle.webhookVerifier.verify(raw, signatureHeader))) {
40
+ // Response stays terse (external caller); log the operator-facing setup remedy. NOTE: a
41
+ // provider bundle only carries a `webhookVerifier` once its secret is configured (an unset
42
+ // secret 503s at the guard above), so `secretConfigured` is effectively always true here —
43
+ // the "no secret configured" sub-case is reached via the GitHub route, not this one.
44
+ logWebhookSignatureRejection({
45
+ provider: providerParam,
46
+ secretConfigured: connectionSecret(c.get('container').config, providerParam) !== '',
47
+ signaturePresent: !!signatureHeader,
48
+ });
39
49
  return c.json({ error: { code: 'unauthorized', message: 'Invalid signature' } }, 401);
40
50
  }
41
51
  let payload;
@@ -71,4 +81,12 @@ function resolveConnection(config, provider) {
71
81
  // GitHub uses its dedicated `/github/webhooks` route; the neutral route does not serve it.
72
82
  return null;
73
83
  }
84
+ /** The deployment's configured webhook secret for a provider ('' when unset) — the signal for
85
+ * the C2 "no secret configured" rejection sub-case. */
86
+ function connectionSecret(config, provider) {
87
+ if (provider === 'gitlab')
88
+ return config.gitlab?.webhookSecret ?? '';
89
+ // GitHub is not served by the neutral route (see resolveConnection).
90
+ return '';
91
+ }
74
92
  //# sourceMappingURL=VcsWebhookController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VcsWebhookController.js","sourceRoot":"","sources":["../../../src/modules/vcs/VcsWebhookController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VcsWebhookController.js","sourceRoot":"","sources":["../../../src/modules/vcs/VcsWebhookController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /** Which webhook route rejected the delivery — GitHub (HMAC) or a neutral VCS provider (token). */
2
+ export type WebhookSignatureProvider = 'github' | 'gitlab';
3
+ export interface WebhookSignatureRejection {
4
+ provider: WebhookSignatureProvider;
5
+ /** Whether the deployment has a webhook secret configured for this route/connection. */
6
+ secretConfigured: boolean;
7
+ /** Whether the inbound delivery carried the provider's signature/token header at all. */
8
+ signaturePresent: boolean;
9
+ }
10
+ /**
11
+ * The operator-facing warning for a rejected webhook delivery, tailored to the failure sub-case:
12
+ * - no deployment secret configured — every signed delivery fails closed;
13
+ * - a delivery with no signature header — the provider side has no secret set (or the caller
14
+ * isn't the provider);
15
+ * - a signature that did not match — the two secrets differ.
16
+ *
17
+ * Self-sufficient without the doc link; carries no secret material. Exported for unit tests.
18
+ */
19
+ export declare function describeWebhookSignatureRejection(rejection: WebhookSignatureRejection): string;
20
+ /**
21
+ * Log the {@link describeWebhookSignatureRejection} warning for a rejected delivery. The HTTP
22
+ * response stays a terse 401 to the external caller; this makes the setup error visible to the
23
+ * operator in the logs. The `provider` doubles as a structured field for log filtering.
24
+ */
25
+ export declare function logWebhookSignatureRejection(rejection: WebhookSignatureRejection): void;
26
+ //# sourceMappingURL=signatureLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatureLog.d.ts","sourceRoot":"","sources":["../../src/webhooks/signatureLog.ts"],"names":[],"mappings":"AAoBA,mGAAmG;AACnG,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE1D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,wBAAwB,CAAA;IAClC,wFAAwF;IACxF,gBAAgB,EAAE,OAAO,CAAA;IACzB,yFAAyF;IACzF,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAgCD;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,yBAAyB,GAAG,MAAM,CAuB9F;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAKvF"}
@@ -0,0 +1,60 @@
1
+ import { DOCS } from '../config/docs.js';
2
+ import { logger } from '../observability/logger.js';
3
+ const PROVIDER_COPY = {
4
+ github: {
5
+ label: 'GitHub',
6
+ envVar: 'GITHUB_WEBHOOK_SECRET',
7
+ header: 'X-Hub-Signature-256',
8
+ providerSecretField: "the GitHub App's 'Webhook secret' (App settings → Webhook)",
9
+ docsUrl: DOCS.githubIntegration('authentication'),
10
+ },
11
+ gitlab: {
12
+ label: 'GitLab',
13
+ envVar: 'GITLAB_WEBHOOK_SECRET',
14
+ header: 'X-Gitlab-Token',
15
+ providerSecretField: "the webhook's 'Secret token' (GitLab project/group Settings → Webhooks)",
16
+ docsUrl: DOCS.vcsProviders('setup'),
17
+ },
18
+ };
19
+ /**
20
+ * The operator-facing warning for a rejected webhook delivery, tailored to the failure sub-case:
21
+ * - no deployment secret configured — every signed delivery fails closed;
22
+ * - a delivery with no signature header — the provider side has no secret set (or the caller
23
+ * isn't the provider);
24
+ * - a signature that did not match — the two secrets differ.
25
+ *
26
+ * Self-sufficient without the doc link; carries no secret material. Exported for unit tests.
27
+ */
28
+ export function describeWebhookSignatureRejection(rejection) {
29
+ const { label, envVar, header, providerSecretField, docsUrl } = PROVIDER_COPY[rejection.provider];
30
+ const lead = `A ${label} webhook delivery was rejected (401 Invalid signature):`;
31
+ let cause;
32
+ if (!rejection.secretConfigured) {
33
+ cause =
34
+ `this deployment has no webhook secret configured (${envVar} is unset), so every ` +
35
+ `delivery fails verification. Set ${envVar} to the same value as ${providerSecretField}.`;
36
+ }
37
+ else if (!rejection.signaturePresent) {
38
+ cause =
39
+ `no ${header} header was present. Either ${providerSecretField} is not set (add one ` +
40
+ `matching ${envVar}) or the caller is not ${label}.`;
41
+ }
42
+ else {
43
+ // `signaturePresent` is header PRESENCE, not validity — so this branch also covers a
44
+ // malformed GitHub `X-Hub-Signature-256` (wrong `sha256=` prefix / non-hex digest). A
45
+ // mismatched secret is by far the dominant cause, so the remedy leads with it.
46
+ cause =
47
+ `the signature did not match. ${providerSecretField} and this deployment's ${envVar} ` +
48
+ `differ — set them to the same value.`;
49
+ }
50
+ return `${lead} ${cause} See ${docsUrl}.`;
51
+ }
52
+ /**
53
+ * Log the {@link describeWebhookSignatureRejection} warning for a rejected delivery. The HTTP
54
+ * response stays a terse 401 to the external caller; this makes the setup error visible to the
55
+ * operator in the logs. The `provider` doubles as a structured field for log filtering.
56
+ */
57
+ export function logWebhookSignatureRejection(rejection) {
58
+ logger.warn({ provider: rejection.provider, event: 'webhook_signature_rejected' }, describeWebhookSignatureRejection(rejection));
59
+ }
60
+ //# sourceMappingURL=signatureLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatureLog.js","sourceRoot":"","sources":["../../src/webhooks/signatureLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AA2CnD,MAAM,aAAa,GAAmD;IACpE,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE,qBAAqB;QAC7B,mBAAmB,EAAE,4DAA4D;QACjF,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;KAClD;IACD,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE,gBAAgB;QACxB,mBAAmB,EAAE,yEAAyE;QAC9F,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;KACpC;CACF,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iCAAiC,CAAC,SAAoC;IACpF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACjG,MAAM,IAAI,GAAG,KAAK,KAAK,yDAAyD,CAAA;IAEhF,IAAI,KAAa,CAAA;IACjB,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAChC,KAAK;YACH,qDAAqD,MAAM,uBAAuB;gBAClF,oCAAoC,MAAM,yBAAyB,mBAAmB,GAAG,CAAA;IAC7F,CAAC;SAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;QACvC,KAAK;YACH,MAAM,MAAM,+BAA+B,mBAAmB,uBAAuB;gBACrF,YAAY,MAAM,0BAA0B,KAAK,GAAG,CAAA;IACxD,CAAC;SAAM,CAAC;QACN,qFAAqF;QACrF,sFAAsF;QACtF,+EAA+E;QAC/E,KAAK;YACH,gCAAgC,mBAAmB,0BAA0B,MAAM,GAAG;gBACtF,sCAAsC,CAAA;IAC1C,CAAC;IAED,OAAO,GAAG,IAAI,IAAI,KAAK,QAAQ,OAAO,GAAG,CAAA;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,SAAoC;IAC/E,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,4BAA4B,EAAE,EACrE,iCAAiC,CAAC,SAAS,CAAC,CAC7C,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/server",
3
- "version": "0.113.0",
3
+ "version": "0.113.2",
4
4
  "description": "Runtime-neutral HTTP layer for the Agent Architecture Board: the Hono controllers, middleware (auth/authz/CORS/error), request helpers and the gateway seams shared by every deployment facade (Cloudflare Worker, Node service).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,13 +30,13 @@
30
30
  "hono": "^4.12.29",
31
31
  "pino": "^10.3.1",
32
32
  "valibot": "^1.4.2",
33
- "@cat-factory/agents": "0.54.7",
33
+ "@cat-factory/agents": "0.54.8",
34
34
  "@cat-factory/contracts": "0.128.0",
35
- "@cat-factory/integrations": "0.81.15",
36
- "@cat-factory/kernel": "0.122.0",
37
- "@cat-factory/orchestration": "0.107.0",
35
+ "@cat-factory/kernel": "0.123.0",
36
+ "@cat-factory/orchestration": "0.107.1",
38
37
  "@cat-factory/prompt-fragments": "0.13.15",
39
- "@cat-factory/spend": "0.12.23"
38
+ "@cat-factory/integrations": "0.81.16",
39
+ "@cat-factory/spend": "0.12.24"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^26.1.1",