@cat-factory/server 0.171.0 → 0.172.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 (44) hide show
  1. package/dist/agents/ContainerAgentExecutor.d.ts +0 -8
  2. package/dist/agents/ContainerAgentExecutor.d.ts.map +1 -1
  3. package/dist/agents/ContainerAgentExecutor.js +51 -129
  4. package/dist/agents/ContainerAgentExecutor.js.map +1 -1
  5. package/dist/agents/ContainerEnvConfigRepairer.d.ts.map +1 -1
  6. package/dist/agents/ContainerEnvConfigRepairer.js +6 -0
  7. package/dist/agents/ContainerEnvConfigRepairer.js.map +1 -1
  8. package/dist/agents/ContainerRepoBootstrapper.d.ts.map +1 -1
  9. package/dist/agents/ContainerRepoBootstrapper.js +8 -0
  10. package/dist/agents/ContainerRepoBootstrapper.js.map +1 -1
  11. package/dist/agents/agentContextRecord.d.ts +31 -0
  12. package/dist/agents/agentContextRecord.d.ts.map +1 -0
  13. package/dist/agents/agentContextRecord.js +113 -0
  14. package/dist/agents/agentContextRecord.js.map +1 -0
  15. package/dist/agents/containerAgentBody.d.ts.map +1 -1
  16. package/dist/agents/containerAgentBody.js +8 -0
  17. package/dist/agents/containerAgentBody.js.map +1 -1
  18. package/dist/agents/containerAgentLogging.d.ts +44 -0
  19. package/dist/agents/containerAgentLogging.d.ts.map +1 -0
  20. package/dist/agents/containerAgentLogging.js +28 -0
  21. package/dist/agents/containerAgentLogging.js.map +1 -0
  22. package/dist/config/misconfiguredApp.d.ts +2 -1
  23. package/dist/config/misconfiguredApp.d.ts.map +1 -1
  24. package/dist/config/misconfiguredApp.js +11 -2
  25. package/dist/config/misconfiguredApp.js.map +1 -1
  26. package/dist/http/cors.d.ts +10 -0
  27. package/dist/http/cors.d.ts.map +1 -1
  28. package/dist/http/cors.js +11 -0
  29. package/dist/http/cors.js.map +1 -1
  30. package/dist/http/env.d.ts +19 -1
  31. package/dist/http/env.d.ts.map +1 -1
  32. package/dist/http/errorHandler.d.ts +10 -2
  33. package/dist/http/errorHandler.d.ts.map +1 -1
  34. package/dist/http/errorHandler.js +28 -12
  35. package/dist/http/errorHandler.js.map +1 -1
  36. package/dist/http/requestLogging.d.ts +32 -0
  37. package/dist/http/requestLogging.d.ts.map +1 -0
  38. package/dist/http/requestLogging.js +117 -0
  39. package/dist/http/requestLogging.js.map +1 -0
  40. package/dist/index.d.ts +2 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +2 -1
  43. package/dist/index.js.map +1 -1
  44. package/package.json +1 -1
@@ -0,0 +1,113 @@
1
+ // The agent-context observability SNAPSHOT: composing the redacted record of everything one
2
+ // dispatch handed its agent. Extracted from `ContainerAgentExecutor` because it is a distinct
3
+ // concern from dispatching and polling container jobs — it is a pure projection whose whole
4
+ // job is deciding what may be persisted, and it is the one place the allow-list lives.
5
+ //
6
+ // The rule the whole file exists to enforce: this is an ALLOW-LIST, never a deny-list. It copies
7
+ // the composed prompts, the folded-in fragment bodies and the injected context files, plus a
8
+ // handful of structural fields — and NEVER a credential (the GitHub token, the proxy session
9
+ // token, a leased subscription token, or a clone/environment URL that embeds one).
10
+ /**
11
+ * Strip any embedded `user:pass@` userinfo from a URL before it is stored in an
12
+ * observability snapshot. The allow-list promises "never a credential-bearing URL", but
13
+ * the injected-doc URLs and a tester's ephemeral `environmentUrl` are operator-supplied
14
+ * and could carry credentials in their userinfo, so defang them here. Non-URL strings
15
+ * (and URLs with no userinfo) pass through unchanged.
16
+ */
17
+ export function stripUrlCredentials(value) {
18
+ if (!value)
19
+ return value;
20
+ try {
21
+ const url = new URL(value);
22
+ if (!url.username && !url.password)
23
+ return value;
24
+ url.username = '';
25
+ url.password = '';
26
+ return url.toString();
27
+ }
28
+ catch {
29
+ return value;
30
+ }
31
+ }
32
+ /**
33
+ * Redact credential-bearing URLs from the tester's `infra` spec before it is stored.
34
+ * An `ephemeral` run carries the provisioned `environmentUrl`; the env's access
35
+ * credentials live on a separate field that is never copied, but the URL itself is
36
+ * operator-mapped and could embed userinfo, so strip it. Returns the value untouched
37
+ * when it is not an `infra` object.
38
+ */
39
+ function redactInfra(infra) {
40
+ if (!infra || typeof infra !== 'object' || Array.isArray(infra))
41
+ return infra;
42
+ const copy = { ...infra };
43
+ if (typeof copy.environmentUrl === 'string') {
44
+ copy.environmentUrl = stripUrlCredentials(copy.environmentUrl);
45
+ }
46
+ return copy;
47
+ }
48
+ /**
49
+ * Build the redacted agent-context snapshot from a dispatched job body + run context.
50
+ * Deliberately an ALLOW-LIST: it copies the composed prompts, the folded-in fragment
51
+ * bodies and the injected context files, plus a handful of structural fields — and
52
+ * NEVER any credential (the GitHub token, the proxy session token, a leased
53
+ * subscription token, or the clone/environment URL that embeds them).
54
+ */
55
+ export function buildAgentContextRecord(context, body, model, ids) {
56
+ const str = (v) => (typeof v === 'string' ? v : '');
57
+ const repo = (body.repo ?? {});
58
+ const contextFiles = Array.isArray(body.contextFiles)
59
+ ? body.contextFiles.map((f) => {
60
+ const file = (f ?? {});
61
+ return {
62
+ path: str(file.path),
63
+ title: str(file.title),
64
+ url: stripUrlCredentials(str(file.url)),
65
+ content: str(file.content),
66
+ };
67
+ })
68
+ : [];
69
+ const fragments = (context.block.resolvedFragments ?? []).map((fr) => ({
70
+ id: fr.id,
71
+ body: fr.body,
72
+ }));
73
+ return {
74
+ workspaceId: ids.workspaceId,
75
+ executionId: ids.executionId,
76
+ agentKind: context.agentKind,
77
+ stepIndex: context.stepIndex,
78
+ model,
79
+ // Record the harness the body actually carried; don't guess. A body without an
80
+ // explicit harness records `null` rather than mislabelling a codex / claude-code
81
+ // dispatch as `pi`.
82
+ harness: typeof body.harness === 'string' ? body.harness : null,
83
+ systemPrompt: str(body.systemPrompt),
84
+ userPrompt: str(body.userPrompt),
85
+ fragments,
86
+ contextFiles,
87
+ extras: {
88
+ pipelineName: context.pipelineName,
89
+ mode: body.mode,
90
+ repo: { owner: str(repo.owner), name: str(repo.name), baseBranch: str(repo.baseBranch) },
91
+ branch: body.branch,
92
+ serviceDirectory: repo.serviceDirectory,
93
+ webSearch: body.webSearch ?? false,
94
+ infra: redactInfra(body.infra),
95
+ decisions: context.decisions,
96
+ ...(ids.toolServers?.toolServers.length
97
+ ? { toolServers: ids.toolServers.toolServers.map((t) => t.id) }
98
+ : {}),
99
+ ...(ids.toolServers?.unavailableToolServers.length
100
+ ? {
101
+ unavailableToolServers: ids.toolServers.unavailableToolServers.map((t) => ({
102
+ id: t.id,
103
+ reason: t.reason,
104
+ })),
105
+ }
106
+ : {}),
107
+ ...(context.revision
108
+ ? { revision: { feedback: context.revision.feedback, hadPriorProposal: true } }
109
+ : {}),
110
+ },
111
+ };
112
+ }
113
+ //# sourceMappingURL=agentContextRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentContextRecord.js","sourceRoot":"","sources":["../../src/agents/agentContextRecord.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"containerAgentBody.d.ts","sourceRoot":"","sources":["../../src/agents/containerAgentBody.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAQ5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AASxD,OAAO,KAAK,EACV,kCAAkC,EAClC,sBAAsB,EACtB,UAAU,EACV,UAAU,EACV,iBAAiB,EAClB,MAAM,6BAA6B,CAAA;AAEpC;;;;;;;GAOG;AAEH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,UAAU,CAAA;AAE7C,eAAO,MAAM,gBAAgB,EAAE,iBAG7B,CAAA;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;;;;;;;EASjE;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,+BAA+B,EAAE,WAAW,CAAC,MAAM,CAG9D,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,sBAAsB,EAAE,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7E,UAAU,CAAC,EAAE,OAAO,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,EACD,IAAI,EAAE,kCAAkC,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE;IACJ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC,EACD,IAAI,EAAE,kCAAkC,EACxC,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC;IACT,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACvC,CAAC,CAoDD;AAED;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE;IACJ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC,EACD,IAAI,EAAE,kCAAkC,GACvC,OAAO,CAAC;IAAE,WAAW,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,SAAS,CAAC,CAyB1F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE;IACJ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;CACnB,EACD,IAAI,EAAE,kCAAkC,GACvC,OAAO,CACN;IACE,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACtF,gBAAgB,EAAE,MAAM,CAAA;CACzB,GACD,SAAS,CACZ,CA+CA;AA8CD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,kCAAkC,GACvC;IAAE,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE,CAAC;IAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAAE,CAmC1F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,EAClE,IAAI,EAAE,kCAAkC,GACvC,OAAO,CAAC;IAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwB9E"}
1
+ {"version":3,"file":"containerAgentBody.d.ts","sourceRoot":"","sources":["../../src/agents/containerAgentBody.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,14 @@ export function buildCommonBody(context, args, deps) {
68
68
  : undefined;
69
69
  return {
70
70
  jobId,
71
+ // The run's correlation ids, carried purely so the container's own log lines can be joined
72
+ // to the backend's. The harness binds them onto its per-job child logger beside `jobId` and
73
+ // reads them for nothing else — before this, the two halves of a run shared no id at all and
74
+ // were stitched only by the `${executionId}-${agentKind}` naming convention. Riding the job
75
+ // body means every transport (Cloudflare container, local container, runner pool) carries
76
+ // them with no transport-specific wiring, exactly like `validationChecks`.
77
+ ...(context.workspaceId ? { workspaceId: context.workspaceId } : {}),
78
+ ...(context.executionId ? { executionId: context.executionId } : {}),
71
79
  model,
72
80
  ...auth,
73
81
  ghToken,
@@ -1 +1 @@
1
- {"version":3,"file":"containerAgentBody.js","sourceRoot":"","sources":["../../src/agents/containerAgentBody.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"containerAgentBody.js","sourceRoot":"","sources":["../../src/agents/containerAgentBody.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { type LogFields, type Logger } from '@cat-factory/kernel';
2
+ /** The correlation identity of one dispatched container job. */
3
+ export interface ContainerJobIds {
4
+ workspaceId?: string;
5
+ executionId?: string;
6
+ jobId: string;
7
+ agentKind?: string;
8
+ }
9
+ /** The bound logger plus the seam's four transitions. */
10
+ export interface ContainerJobLog {
11
+ /**
12
+ * The child logger with the ids bound, for a caller that needs to log something else in the
13
+ * same scope (a `runBestEffort` around this dispatch's observability writes). Bound ONCE here
14
+ * rather than re-spread per call, so a nested emit still carries the ids.
15
+ */
16
+ readonly logger: Logger;
17
+ /** The job was accepted by its backend and is now the poller's problem. */
18
+ dispatched(fields?: LogFields): void;
19
+ /**
20
+ * The dispatch itself threw. Logged and RE-THROWN by the caller — the engine turns this into a
21
+ * failed step, and this line is the only place the resolved model/backend of a job that never
22
+ * existed is recorded.
23
+ */
24
+ dispatchFailed(error: unknown, fields?: LogFields): void;
25
+ /**
26
+ * A poll against the job's backend threw. Logged and RE-THROWN by the caller — the durable
27
+ * driver decides whether to retry or fail the step, and without this the transport fault is
28
+ * recorded against no job, backend or run.
29
+ */
30
+ pollFailed(error: unknown, fields?: LogFields): void;
31
+ /**
32
+ * One poll of a still-running job. `debug`, deliberately: this fires every few seconds for the
33
+ * whole life of a run, which is precisely what the level table says `info` is not for.
34
+ */
35
+ progress(fields?: LogFields): void;
36
+ /** The job reached a terminal state — `info` when it produced work, `warn` when it did not. */
37
+ settled(outcome: 'done' | 'failed', fields?: LogFields): void;
38
+ }
39
+ /**
40
+ * Bind a container job's correlation ids onto `base`. Accepts an absent logger (a facade that
41
+ * wired none, a unit test) and degrades to `noopLogger`, so no call site has to branch.
42
+ */
43
+ export declare function containerJobLog(base: Logger | undefined, ids: ContainerJobIds): ContainerJobLog;
44
+ //# sourceMappingURL=containerAgentLogging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerAgentLogging.d.ts","sourceRoot":"","sources":["../../src/agents/containerAgentLogging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAA6B,MAAM,qBAAqB,CAAA;AAS5F,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2EAA2E;IAC3E,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACpC;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACxD;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACpD;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IAClC,+FAA+F;IAC/F,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAC9D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,eAAe,GAAG,eAAe,CAqB/F"}
@@ -0,0 +1,28 @@
1
+ import { describeError, noopLogger } from '@cat-factory/kernel';
2
+ /**
3
+ * Bind a container job's correlation ids onto `base`. Accepts an absent logger (a facade that
4
+ * wired none, a unit test) and degrades to `noopLogger`, so no call site has to branch.
5
+ */
6
+ export function containerJobLog(base, ids) {
7
+ const logger = (base ?? noopLogger).child({
8
+ ...(ids.workspaceId ? { workspaceId: ids.workspaceId } : {}),
9
+ ...(ids.executionId ? { executionId: ids.executionId } : {}),
10
+ jobId: ids.jobId,
11
+ ...(ids.agentKind ? { agentKind: ids.agentKind } : {}),
12
+ scope: 'container-agent',
13
+ });
14
+ return {
15
+ logger,
16
+ dispatched: (fields) => logger.info('container job dispatched', fields),
17
+ dispatchFailed: (error, fields) => logger.warn('container job dispatch failed', { ...fields, ...describeError(error) }),
18
+ pollFailed: (error, fields) => logger.warn('container job poll failed', { ...fields, ...describeError(error) }),
19
+ progress: (fields) => logger.debug('container job running', fields),
20
+ settled: (outcome, fields) => {
21
+ if (outcome === 'done')
22
+ logger.info('container job completed', fields);
23
+ else
24
+ logger.warn('container job failed', fields);
25
+ },
26
+ };
27
+ }
28
+ //# sourceMappingURL=containerAgentLogging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerAgentLogging.js","sourceRoot":"","sources":["../../src/agents/containerAgentLogging.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAgD5F;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAwB,EAAE,GAAoB;IAC5E,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC;QACxC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,KAAK,EAAE,iBAAiB;KACzB,CAAC,CAAA;IACF,OAAO;QACL,MAAM;QACN,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC;QACvE,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACtF,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAC5B,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAClF,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,CAAC;QACnE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3B,IAAI,OAAO,KAAK,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAA;;gBACjE,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;QAClD,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { ConfigProblem } from '@cat-factory/contracts';
2
2
  import { Hono } from 'hono';
3
+ import type { AppEnv } from '../http/env.js';
3
4
  /**
4
5
  * Build the Response for one request against the fallback backend, keyed off the URL pathname.
5
6
  * Pure (no CORS, no framework) so the Worker can reuse it INSIDE its already-CORS'd request
@@ -11,5 +12,5 @@ export declare function buildMisconfiguredResponse(pathname: string, problems: C
11
12
  * normal port when their boot throws a {@link ConfigValidationError}). Reflects any origin so the
12
13
  * SPA can read it cross-origin.
13
14
  */
14
- export declare function createMisconfiguredApp(problems: ConfigProblem[]): Hono;
15
+ export declare function createMisconfiguredApp(problems: ConfigProblem[]): Hono<AppEnv>;
15
16
  //# sourceMappingURL=misconfiguredApp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"misconfiguredApp.d.ts","sourceRoot":"","sources":["../../src/config/misconfiguredApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AA4B3B;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,QAAQ,CAsBhG;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CActE"}
1
+ {"version":3,"file":"misconfiguredApp.d.ts","sourceRoot":"","sources":["../../src/config/misconfiguredApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AA2B5C;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,QAAQ,CAsBhG;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAsB9E"}
@@ -1,6 +1,7 @@
1
1
  import { Hono } from 'hono';
2
2
  import { cors } from 'hono/cors';
3
- import { CORS_ALLOWED_HEADERS } from '../http/cors.js';
3
+ import { CORS_ALLOWED_HEADERS, CORS_EXPOSED_HEADERS } from '../http/cors.js';
4
+ import { mountRequestLogging } from '../http/requestLogging.js';
4
5
  // ---------------------------------------------------------------------------
5
6
  // The misconfiguration fallback backend.
6
7
  //
@@ -54,14 +55,22 @@ export function buildMisconfiguredResponse(pathname, problems) {
54
55
  */
55
56
  export function createMisconfiguredApp(problems) {
56
57
  const app = new Hono();
58
+ // Correlation FIRST, exactly as the two real facades mount it. The Worker gets this for free
59
+ // because it serves the fallback from INSIDE `createApp`'s container-build middleware, but
60
+ // Node/local swap in this whole app instead — so without it a misconfigured deployment is the
61
+ // one shape that serves every request with no id and no line, which is precisely when an
62
+ // operator is trying to work out what is wrong.
63
+ mountRequestLogging(app);
57
64
  app.use('*', cors({
58
65
  // The fallback exposes nothing secret (only the problem list + an auth-disabled config), and
59
66
  // a failed boot may never have resolved the real allow-list — so reflect the caller's origin
60
67
  // unconditionally to guarantee the SPA can read the error screen's data.
61
68
  origin: (origin) => origin ?? '*',
62
69
  allowHeaders: [...CORS_ALLOWED_HEADERS],
70
+ // …and the correlation id back out, or the id is on the wire and unreadable by the SPA.
71
+ exposeHeaders: [...CORS_EXPOSED_HEADERS],
63
72
  }));
64
- app.all('*', (c) => buildMisconfiguredResponse(new URL(c.req.url).pathname, problems));
73
+ app.all('*', (c) => buildMisconfiguredResponse(c.req.path, problems));
65
74
  return app;
66
75
  }
67
76
  //# sourceMappingURL=misconfiguredApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"misconfiguredApp.js","sourceRoot":"","sources":["../../src/config/misconfiguredApp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,8EAA8E;AAC9E,yCAAyC;AACzC,EAAE;AACF,+FAA+F;AAC/F,+FAA+F;AAC/F,kGAAkG;AAClG,+EAA+E;AAC/E,2DAA2D;AAC3D,EAAE;AACF,8FAA8F;AAC9F,iGAAiG;AACjG,wBAAwB;AACxB,+FAA+F;AAC/F,kGAAkG;AAClG,qCAAqC;AACrC,gGAAgG;AAChG,EAAE;AACF,iGAAiG;AACjG,mGAAmG;AACnG,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,uBAAuB,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAEjF;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAgB,EAAE,QAAyB;IACpF,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,uBAAuB;YAClC,aAAa,EAAE,EAAE,QAAQ,EAAE;SAC5B,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAClB;QACE,KAAK,EAAE;YACL,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EACL,oGAAoG;YACtG,QAAQ;SACT;KACF,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAyB;IAC9D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,GAAG,CAAC,GAAG,CACL,GAAG,EACH,IAAI,CAAC;QACH,6FAA6F;QAC7F,6FAA6F;QAC7F,yEAAyE;QACzE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,GAAG;QACjC,YAAY,EAAE,CAAC,GAAG,oBAAoB,CAAC;KACxC,CAAC,CACH,CAAA;IACD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;IACtF,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"misconfiguredApp.js","sourceRoot":"","sources":["../../src/config/misconfiguredApp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE/D,8EAA8E;AAC9E,yCAAyC;AACzC,EAAE;AACF,+FAA+F;AAC/F,+FAA+F;AAC/F,kGAAkG;AAClG,+EAA+E;AAC/E,2DAA2D;AAC3D,EAAE;AACF,8FAA8F;AAC9F,iGAAiG;AACjG,wBAAwB;AACxB,+FAA+F;AAC/F,kGAAkG;AAClG,qCAAqC;AACrC,gGAAgG;AAChG,EAAE;AACF,iGAAiG;AACjG,mGAAmG;AACnG,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,uBAAuB,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAEjF;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAgB,EAAE,QAAyB;IACpF,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,uBAAuB;YAClC,aAAa,EAAE,EAAE,QAAQ,EAAE;SAC5B,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAClB;QACE,KAAK,EAAE;YACL,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EACL,oGAAoG;YACtG,QAAQ;SACT;KACF,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAyB;IAC9D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAC9B,6FAA6F;IAC7F,2FAA2F;IAC3F,8FAA8F;IAC9F,yFAAyF;IACzF,gDAAgD;IAChD,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACxB,GAAG,CAAC,GAAG,CACL,GAAG,EACH,IAAI,CAAC;QACH,6FAA6F;QAC7F,6FAA6F;QAC7F,yEAAyE;QACzE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,GAAG;QACjC,YAAY,EAAE,CAAC,GAAG,oBAAoB,CAAC;QACvC,wFAAwF;QACxF,aAAa,EAAE,CAAC,GAAG,oBAAoB,CAAC;KACzC,CAAC,CACH,CAAA;IACD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IACrE,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -15,8 +15,18 @@ export declare function corsReflectsWhenUnset(environment: string | undefined):
15
15
  * - `X-Personal-Password` — the ambient personal-subscription unlock password.
16
16
  * - `X-Connection-Id` — the per-tab connection id used for real-time self-echo
17
17
  * suppression (see the SPA's `connectionId()` / `BoardController`).
18
+ * - `X-Request-Id` — the correlation id (`mountRequestLogging`). Allowed INBOUND so a
19
+ * caller that already has one (a load balancer, another service) can propagate it
20
+ * rather than have the backend mint a second, unrelated id for the same request.
18
21
  */
19
22
  export declare const CORS_ALLOWED_HEADERS: string[];
23
+ /**
24
+ * The response headers a cross-origin browser client may READ. Without an explicit
25
+ * `Access-Control-Expose-Headers` a browser exposes only the CORS-safelisted set, so the
26
+ * correlation id would be present on the wire and invisible to the SPA — which is the one
27
+ * client whose users are the people quoting an id back in a bug report.
28
+ */
29
+ export declare const CORS_EXPOSED_HEADERS: string[];
20
30
  /** Parse a comma-separated allowed-origins string into trimmed entries. */
21
31
  export declare function parseAllowedOrigins(configured: string | undefined): string[];
22
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/http/cors.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE9E;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,UAKhC,CAAA;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAK5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACxC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,gBAAgB,UAAO,GACtB,MAAM,GAAG,IAAI,CAMf"}
1
+ {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/http/cors.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE9E;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,UAMhC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,UAAmB,CAAA;AAEpD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAK5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACxC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,gBAAgB,UAAO,GACtB,MAAM,GAAG,IAAI,CAMf"}
package/dist/http/cors.js CHANGED
@@ -34,13 +34,24 @@ export function corsReflectsWhenUnset(environment) {
34
34
  * - `X-Personal-Password` — the ambient personal-subscription unlock password.
35
35
  * - `X-Connection-Id` — the per-tab connection id used for real-time self-echo
36
36
  * suppression (see the SPA's `connectionId()` / `BoardController`).
37
+ * - `X-Request-Id` — the correlation id (`mountRequestLogging`). Allowed INBOUND so a
38
+ * caller that already has one (a load balancer, another service) can propagate it
39
+ * rather than have the backend mint a second, unrelated id for the same request.
37
40
  */
38
41
  export const CORS_ALLOWED_HEADERS = [
39
42
  'Content-Type',
40
43
  'Authorization',
41
44
  'X-Personal-Password',
42
45
  'X-Connection-Id',
46
+ 'X-Request-Id',
43
47
  ];
48
+ /**
49
+ * The response headers a cross-origin browser client may READ. Without an explicit
50
+ * `Access-Control-Expose-Headers` a browser exposes only the CORS-safelisted set, so the
51
+ * correlation id would be present on the wire and invisible to the SPA — which is the one
52
+ * client whose users are the people quoting an id back in a bug report.
53
+ */
54
+ export const CORS_EXPOSED_HEADERS = ['X-Request-Id'];
44
55
  /** Parse a comma-separated allowed-origins string into trimmed entries. */
45
56
  export function parseAllowedOrigins(configured) {
46
57
  return (configured ?? '')
@@ -1 +1 @@
1
- {"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/http/cors.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gFAAgF;AAChF,mFAAmF;AACnF,iFAAiF;AACjF,wFAAwF;AACxF,6EAA6E;AAC7E,oFAAoF;AACpF,iFAAiF;AAEjF;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;AAEnG;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAA+B;IACnE,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAC/E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,eAAe;IACf,qBAAqB;IACrB,iBAAiB;CAClB,CAAA;AAED,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,UAA8B;IAChE,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;SACtB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SAC9B,MAAM,CAAC,OAAO,CAAC,CAAA;AACpB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAAwC,EACxC,UAA8B,EAC9B,gBAAgB,GAAG,IAAI;IAEvB,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAC/C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,aAAa,CAAA;IAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA;IACxE,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/http/cors.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gFAAgF;AAChF,mFAAmF;AACnF,iFAAiF;AACjF,wFAAwF;AACxF,6EAA6E;AAC7E,oFAAoF;AACpF,iFAAiF;AAEjF;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;AAEnG;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAA+B;IACnE,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAC/E,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,eAAe;IACf,qBAAqB;IACrB,iBAAiB;IACjB,cAAc;CACf,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,cAAc,CAAC,CAAA;AAEpD,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,UAA8B;IAChE,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;SACtB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SAC9B,MAAM,CAAC,OAAO,CAAC,CAAA;AACpB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAAwC,EACxC,UAA8B,EAC9B,gBAAgB,GAAG,IAAI;IAEvB,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAC/C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,aAAa,CAAA;IAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA;IACxE,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/D,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AgentRunRepository, ExecutionRepository, NotificationChannel, ResolveBinaryArtifactStore, ConsensusSessionRepository, ResolveRunRepoContext, SealedSecretInventory, UserRepoAccessRepository, VcsIdentityRegistry, VcsProviderRegistry, VcsWebhookSink, WorkspacePermission, WorkspaceRole } from '@cat-factory/kernel';
1
+ import type { AgentRunRepository, ExecutionRepository, NotificationChannel, ResolveBinaryArtifactStore, ConsensusSessionRepository, ResolveRunRepoContext, Logger, SealedSecretInventory, UserRepoAccessRepository, VcsIdentityRegistry, VcsProviderRegistry, VcsWebhookSink, WorkspacePermission, WorkspaceRole } from '@cat-factory/kernel';
2
2
  import type { ApiKeyService, EnvironmentBackendRegistry, LocalModelEndpointService, LocalSettingsService, OpenRouterCatalogService, PersonalSubscriptionService, ProviderSubscriptionService, NotificationWebhookService, PublicApiKeyService, RunnerBackendRegistry, TestSecretsService, ValidationConfigService, UserSecretService } from '@cat-factory/integrations';
3
3
  import type { Core } from '@cat-factory/orchestration';
4
4
  import type { AgentKindRegistry } from '@cat-factory/agents';
@@ -334,6 +334,24 @@ export type AppEnv = {
334
334
  user?: SessionPayload;
335
335
  /** The caller's resolved workspace access, set by the gate — see {@link WorkspaceAccessContext}. */
336
336
  workspaceAccess?: WorkspaceAccessContext;
337
+ /**
338
+ * The request's correlation id, minted or adopted by `mountRequestLogging` and echoed on
339
+ * the response + in every error envelope. Optional because a unit test may build a bare
340
+ * `new Hono()` with no middleware; read it through `requestIdOf(c)`.
341
+ */
342
+ requestId?: string;
343
+ /**
344
+ * The request-scoped child logger (bound `requestId` / `method` / `path`), set by
345
+ * `mountRequestLogging`. Read it through `requestLogger(c)`, which falls back to the
346
+ * process-wide logger when the middleware isn't mounted.
347
+ */
348
+ log?: Logger;
349
+ /**
350
+ * The wire error code `handleError` mapped this request's failure to, stashed so the
351
+ * request-log line can name it. Set ONLY on the throw path — a controller returning a 4xx
352
+ * envelope directly leaves it unset.
353
+ */
354
+ errorCode?: string;
337
355
  };
338
356
  };
339
357
  //# sourceMappingURL=env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/http/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/http/env.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,12 @@
1
1
  import type { Context } from 'hono';
2
- /** Maps domain errors to HTTP responses; anything else is a 500. */
3
- export declare function handleError(error: unknown, c: Context): Response;
2
+ import type { AppEnv } from './env.js';
3
+ /**
4
+ * Maps domain errors to HTTP responses; anything else is a 500.
5
+ *
6
+ * Every envelope carries the request's `requestId` when `mountRequestLogging` is mounted, so a
7
+ * user can quote the id off a failed request and an operator can grep the exact line — the join
8
+ * that did not exist while 4xx responses left no server-side trace at all. The id is the ONLY
9
+ * thing added to the wire shape; codes, messages and details are unchanged.
10
+ */
11
+ export declare function handleError<E extends AppEnv>(error: unknown, c: Context<E>): Response;
4
12
  //# sourceMappingURL=errorHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/http/errorHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAsBnC,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,QAAQ,CAgDhE"}
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/http/errorHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAqBtC;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CA2DrF"}
@@ -1,6 +1,6 @@
1
- import { DomainError } from '@cat-factory/kernel';
1
+ import { DomainError, describeError, redactSecrets } from '@cat-factory/kernel';
2
2
  import { SchemaValidationError } from '@toad-contracts/core';
3
- import { logger } from '../observability/logger.js';
3
+ import { requestIdOf, requestLogger } from './requestLogging.js';
4
4
  const STATUS_BY_CODE = {
5
5
  not_found: 404,
6
6
  validation: 422,
@@ -18,16 +18,27 @@ const STATUS_BY_CODE = {
18
18
  // Too Many Requests: a caller or upstream rate limit; `details.retryAfterSeconds` when known.
19
19
  rate_limited: 429,
20
20
  };
21
- /** Maps domain errors to HTTP responses; anything else is a 500. */
21
+ /**
22
+ * Maps domain errors to HTTP responses; anything else is a 500.
23
+ *
24
+ * Every envelope carries the request's `requestId` when `mountRequestLogging` is mounted, so a
25
+ * user can quote the id off a failed request and an operator can grep the exact line — the join
26
+ * that did not exist while 4xx responses left no server-side trace at all. The id is the ONLY
27
+ * thing added to the wire shape; codes, messages and details are unchanged.
28
+ */
22
29
  export function handleError(error, c) {
30
+ const requestId = requestIdOf(c);
31
+ const correlation = requestId ? { requestId } : {};
23
32
  // A contract request schema (path/query/header/body) rejected the input. Surface the
24
33
  // same `{ error: { code: 'validation', ... } }` envelope the old @hono/valibot-validator
25
34
  // `jsonBody` middleware produced, so the wire shape is unchanged after the contract migration.
26
35
  if (error instanceof SchemaValidationError) {
36
+ c.set('errorCode', 'validation');
27
37
  return c.json({
28
38
  error: {
29
39
  code: 'validation',
30
40
  message: 'Request failed validation',
41
+ ...correlation,
31
42
  issues: error.issues.map((issue) => ({
32
43
  path: issue.path
33
44
  ?.map((segment) => typeof segment === 'object' && segment !== null && 'key' in segment
@@ -40,23 +51,28 @@ export function handleError(error, c) {
40
51
  }, 400);
41
52
  }
42
53
  if (error instanceof DomainError) {
54
+ c.set('errorCode', error.code);
43
55
  return c.json({
44
56
  error: {
45
57
  code: error.code,
46
58
  message: error.message,
59
+ ...correlation,
47
60
  ...(error.details ? { details: error.details } : {}),
48
61
  },
49
62
  }, STATUS_BY_CODE[error.code]);
50
63
  }
51
- // Unexpected fault: log it with request context so it's traceable, but never
52
- // leak internals to the client.
53
- logger.error('unhandled request error', {
54
- err: error instanceof Error
55
- ? { message: error.message, stack: error.stack }
56
- : { message: String(error) },
57
- method: c.req.method,
58
- path: new URL(c.req.url).pathname,
64
+ // Unexpected fault: log it through the REQUEST-scoped logger (so the line carries the same
65
+ // `requestId` the client just received, plus method/path from the bound fields) but never leak
66
+ // internals to the client. The stack is attached explicitly because this is the one class of
67
+ // failure where it is what identifies the fault — and it goes through `redactSecrets` in its
68
+ // own right: a stack's FIRST LINE is `Error: <message>` verbatim, so attaching it raw beside
69
+ // the scrubbed `err` would republish exactly what `describeError` just removed.
70
+ c.set('errorCode', 'internal');
71
+ const stack = error instanceof Error ? redactSecrets(error.stack ?? null) : null;
72
+ requestLogger(c).error('unhandled request error', {
73
+ ...describeError(error),
74
+ ...(stack ? { stack } : {}),
59
75
  });
60
- return c.json({ error: { code: 'internal', message: 'Internal server error' } }, 500);
76
+ return c.json({ error: { code: 'internal', message: 'Internal server error', ...correlation } }, 500);
61
77
  }
62
78
  //# sourceMappingURL=errorHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/http/errorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEnD,MAAM,cAAc,GAAsD;IACxE,SAAS,EAAE,GAAG;IACd,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,mFAAmF;IACnF,qFAAqF;IACrF,mBAAmB,EAAE,GAAG;IACxB,qFAAqF;IACrF,0FAA0F;IAC1F,SAAS,EAAE,GAAG;IACd,yFAAyF;IACzF,WAAW,EAAE,GAAG;IAChB,4FAA4F;IAC5F,YAAY,EAAE,GAAG;IACjB,8FAA8F;IAC9F,YAAY,EAAE,GAAG;CAClB,CAAA;AAED,oEAAoE;AACpE,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,CAAU;IACpD,qFAAqF;IACrF,yFAAyF;IACzF,+FAA+F;IAC/F,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;QAC3C,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,2BAA2B;gBACpC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,KAAK,CAAC,IAAI;wBACd,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAChB,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,IAAI,OAAO;wBACjE,CAAC,CAAC,MAAM,CAAE,OAAgC,CAAC,GAAG,CAAC;wBAC/C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB;yBACA,IAAI,CAAC,GAAG,CAAC;oBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC;aACJ;SACF,EACD,GAAG,CACJ,CAAA;IACH,CAAC;IACD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD;SACF,EACD,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAC3B,CAAA;IACH,CAAC;IACD,6EAA6E;IAC7E,gCAAgC;IAChC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;QACtC,GAAG,EACD,KAAK,YAAY,KAAK;YACpB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;YAChD,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;QAChC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;QACpB,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ;KAClC,CAAC,CAAA;IACF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,uBAAuB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;AACvF,CAAC"}
1
+ {"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/http/errorHandler.ts"],"names":[],"mappings":"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"}