@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.
- package/dist/agents/ContainerEnvConfigRepairer.d.ts.map +1 -1
- package/dist/agents/ContainerEnvConfigRepairer.js +20 -11
- package/dist/agents/ContainerEnvConfigRepairer.js.map +1 -1
- package/dist/agents/ContainerRepoBootstrapper.d.ts.map +1 -1
- package/dist/agents/ContainerRepoBootstrapper.js +9 -28
- package/dist/agents/ContainerRepoBootstrapper.js.map +1 -1
- package/dist/modules/github/GitHubWebhookController.d.ts.map +1 -1
- package/dist/modules/github/GitHubWebhookController.js +11 -2
- package/dist/modules/github/GitHubWebhookController.js.map +1 -1
- package/dist/modules/vcs/VcsWebhookController.d.ts.map +1 -1
- package/dist/modules/vcs/VcsWebhookController.js +18 -0
- package/dist/modules/vcs/VcsWebhookController.js.map +1 -1
- package/dist/webhooks/signatureLog.d.ts +26 -0
- package/dist/webhooks/signatureLog.d.ts.map +1 -0
- package/dist/webhooks/signatureLog.js +60 -0
- package/dist/webhooks/signatureLog.js.map +1 -0
- package/package.json +6 -6
|
@@ -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;
|
|
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
|
|
128
|
-
//
|
|
129
|
-
//
|
|
130
|
-
//
|
|
131
|
-
//
|
|
132
|
-
|
|
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}
|
|
160
|
-
*
|
|
161
|
-
*
|
|
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":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAA+B,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEnD,8EAA8E;AAC9E,2EAA2E;AAC3E,EAAE;AACF,kFAAkF;AAClF,sFAAsF;AACtF,sFAAsF;AACtF,uFAAuF;AACvF,yFAAyF;AACzF,sFAAsF;AACtF,qFAAqF;AACrF,0EAA0E;AAC1E,EAAE;AACF,yFAAyF;AACzF,wFAAwF;AACxF,wFAAwF;AACxF,yFAAyF;AACzF,sFAAsF;AACtF,yFAAyF;AACzF,mFAAmF;AACnF,8EAA8E;AAE9E,kGAAkG;AAClG,MAAM,oBAAoB,GACxB,qFAAqF;IACrF,qFAAqF;IACrF,8EAA8E;IAC9E,mFAAmF;IACnF,sCAAsC,CAAA;AA0BxC;;;;;;GAMG;AACH,MAAM,OAAO,0BAA0B;IAIR,IAAI;IAHjC,uFAAuF;IACtE,IAAI,CAAiB;IAEtC,YAA6B,IAA4C;oBAA5C,IAAI;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACxD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,OAA+B;QAC/C,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QAE1F,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QACvF,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,cAAc,WAAW,8BAA8B,CAAC,CAAA;QAC1E,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,kEAAkE;gBAChE,wDAAwD;gBACxD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,qBAAqB,CACpD,CAAA;QACH,CAAC;QACD,oFAAoF;QACpF,+FAA+F;QAC/F,gCAAgC;QAChC,MAAM,IAAI,GACR,OAAO,CAAC,cAAc;YACtB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;gBAClD,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAA;QACzF,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;QAClF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACvD,WAAW;YACX,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;YAClC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;SAC7B,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,oBAAoB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAClF,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,KAAK,IAAI,IAAI,MAAM,CAAA;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB;YAC5C,CAAC,CAAC,GAAG,oBAAoB,OAAO,IAAI,CAAC,oBAAoB,EAAE;YAC3D,CAAC,CAAC,oBAAoB,CAAA;QAExB,oFAAoF;QACpF,oFAAoF;QACpF,qEAAqE;QACrE,MAAM,IAAI,GAAG;YACX,KAAK;YACL,IAAI,EAAE,QAAQ;YACd,YAAY;YACZ,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;YAC5B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpC,YAAY;YACZ,OAAO;YACP,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,OAAO,CAAC,YAAY;gBACjC,CAAC,CAAC,uBAAuB,OAAO,CAAC,YAAY,EAAE;gBAC/C,CAAC,CAAC,2CAA2C;YAC/C,gBAAgB,EAAE,KAAK;YACvB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,CAAA;QAED,4EAA4E;QAC5E,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACnC,GAAG,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;QACpD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACzD,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;QACrD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;IAC/B,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,UAAU,CAAC,MAA6B;QAC5C,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;QACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;QAE1D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;QAC7F,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,sCAAsC,CAAA;YAClE,OAAO;gBACL,KAAK,EAAE,QAAQ;gBACf,
|
|
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;
|
|
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
|
-
: (
|
|
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:
|
|
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
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
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;
|
|
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
|
|
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
|
|
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":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;
|
|
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;
|
|
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":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"VcsWebhookController.js","sourceRoot":"","sources":["../../../src/modules/vcs/VcsWebhookController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAInE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAE7E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC7C,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QACxF,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,aAAa,oBAAoB,EAAE,EAAE,EACjF,GAAG,CACJ,CAAA;QACH,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAC9E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,aAAa,4BAA4B,EAAE,EAAE,EACzF,GAAG,CACJ,CAAA;QACH,CAAC;QAED,kFAAkF;QAClF,yFAAyF;QACzF,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAA;QACrC,MAAM,eAAe,GACnB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAA;QAC/E,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,qCAAqC,EAAE,EAAE,EAClF,GAAG,CACJ,CAAA;QACH,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;YACjE,wFAAwF;YACxF,2FAA2F;YAC3F,2FAA2F;YAC3F,qFAAqF;YACrF,4BAA4B,CAAC;gBAC3B,QAAQ,EAAE,aAAa;gBACvB,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE;gBACnF,gBAAgB,EAAE,CAAC,CAAC,eAAe;aACpC,CAAC,CAAA;YACF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QACvF,CAAC;QAED,IAAI,OAAgB,CAAA;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QACrF,CAAC;QAED,sFAAsF;QACtF,iFAAiF;QACjF,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAA;QACnC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YACxF,wEAAwE;YACxE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YACrF,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,cAAc,CAAA;YAC9C,IAAI,KAAK,IAAI,IAAI;gBAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7C,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,0FAA0F;AAC1F,SAAS,iBAAiB,CACxB,MAAiB,EACjB,QAA6B;IAE7B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,MAAM,EAAE,OAAO;YAAE,OAAO,IAAI,CAAA;QACjC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAA;IAClE,CAAC;IACD,2FAA2F;IAC3F,OAAO,IAAI,CAAA;AACb,CAAC;AAED;uDACuD;AACvD,SAAS,gBAAgB,CAAC,MAAiB,EAAE,QAA6B;IACxE,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,MAAM,EAAE,aAAa,IAAI,EAAE,CAAA;IACpE,qEAAqE;IACrE,OAAO,EAAE,CAAA;AACX,CAAC"}
|
|
@@ -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.
|
|
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.
|
|
33
|
+
"@cat-factory/agents": "0.54.8",
|
|
34
34
|
"@cat-factory/contracts": "0.128.0",
|
|
35
|
-
"@cat-factory/
|
|
36
|
-
"@cat-factory/
|
|
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/
|
|
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",
|