@cat-factory/kernel 0.311.0 → 0.313.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.
@@ -2,6 +2,7 @@ import type { Block, ExecutionInstance, GateAttempt, GateStepState, RiskPolicy,
2
2
  import type { DescriptorField, DescriptorFieldValues } from '@cat-factory/contracts';
3
3
  import type { AgentRunResult } from '../ports/agent-executor.js';
4
4
  import type { RaiseNotificationInput } from '../ports/notification-channel.js';
5
+ import { type Logger } from '../ports/logging.js';
5
6
  import type { Clock } from '../ports/runtime.js';
6
7
  import type { RunInitiatorScope } from '../ports/user-secret-repositories.js';
7
8
  import { type ProviderRegistry, type ProviderToken } from './provider-registry.js';
@@ -201,6 +202,12 @@ export interface GateDefinition {
201
202
  export interface GateContext {
202
203
  /** The engine clock (monotonic-ish ms), for time-windowed gates. */
203
204
  clock: Clock;
205
+ /**
206
+ * The engine's logger, already scoped. Required rather than optional: a gate's best-effort
207
+ * work (an incident annotation, a notification) has to name its own failures, and an absent
208
+ * logger would make that silence the default.
209
+ */
210
+ logger: Logger;
204
211
  /** Read a block, e.g. to gate only a release that actually shipped. */
205
212
  getBlock(workspaceId: string, blockId: string): Promise<Block | null>;
206
213
  /** Run a function under the run initiator's ambient context (per-user credentials). */
@@ -1 +1 @@
1
- {"version":3,"file":"gate-registry.d.ts","sourceRoot":"","sources":["../../src/domain/gate-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate-registry.d.ts","sourceRoot":"","sources":["../../src/domain/gate-registry.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { noopLogger } from '../ports/logging.js';
1
2
  import { defaultProviderRegistry, } from './provider-registry.js';
2
3
  /**
3
4
  * Build the record of a just-finished gate-helper attempt (a ci-fixer / conflict-resolver
@@ -117,6 +118,7 @@ export function defaultGateRegistry() {
117
118
  export function stubGateContext(overrides = {}, providerRegistry = defaultProviderRegistry()) {
118
119
  return {
119
120
  clock: { now: () => 0 },
121
+ logger: noopLogger,
120
122
  getBlock: async () => null,
121
123
  runInitiatorScope: (_initiatedBy, fn) => fn(),
122
124
  raiseNotification: async () => { },
@@ -1 +1 @@
1
- {"version":3,"file":"gate-registry.js","sourceRoot":"","sources":["../../src/domain/gate-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate-registry.js","sourceRoot":"","sources":["../../src/domain/gate-registry.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { AgentPresentation } from '@cat-factory/contracts';
2
2
  import type { Block, JudgeModelPin, JudgeVerdict, PipelineStep, RiskPolicy } from './types.js';
3
3
  import type { RaiseNotificationInput } from '../ports/notification-channel.js';
4
+ import { type Logger } from '../ports/logging.js';
4
5
  import type { Clock } from '../ports/runtime.js';
5
6
  import type { RunInitiatorScope } from '../ports/user-secret-repositories.js';
6
7
  import { type ProviderRegistry, type ProviderToken } from './provider-registry.js';
@@ -190,6 +191,8 @@ export interface JudgeDefinition {
190
191
  export interface JudgeContext {
191
192
  /** The engine clock (monotonic-ish ms). */
192
193
  clock: Clock;
194
+ /** The engine's logger, so a judge's best-effort work names its own failures. */
195
+ logger: Logger;
193
196
  /** Read a block, e.g. to scope a rubric to a service. */
194
197
  getBlock(workspaceId: string, blockId: string): Promise<Block | null>;
195
198
  /** Run a function under the run initiator's ambient context (per-user credentials). */
@@ -1 +1 @@
1
- {"version":3,"file":"judge-registry.d.ts","sourceRoot":"","sources":["../../src/domain/judge-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"judge-registry.d.ts","sourceRoot":"","sources":["../../src/domain/judge-registry.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { noopLogger } from '../ports/logging.js';
1
2
  import { defaultProviderRegistry, } from './provider-registry.js';
2
3
  /**
3
4
  * App-owned registry of judges, mirroring {@link GateRegistry} / {@link StepResolverRegistry}.
@@ -40,6 +41,7 @@ export function defaultJudgeRegistry() {
40
41
  export function stubJudgeContext(overrides = {}, providerRegistry = defaultProviderRegistry()) {
41
42
  return {
42
43
  clock: { now: () => 0 },
44
+ logger: noopLogger,
43
45
  getBlock: async () => null,
44
46
  runInitiatorScope: (_initiatedBy, fn) => fn(),
45
47
  raiseNotification: async () => { },
@@ -1 +1 @@
1
- {"version":3,"file":"judge-registry.js","sourceRoot":"","sources":["../../src/domain/judge-registry.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,uBAAuB,GAGxB,MAAM,wBAAwB,CAAA;AA+O/B;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IACP,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAA;IAE3D;;;;;OAKG;IACH,QAAQ,CAAC,IAAY,EAAE,OAAqB;QAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,kDAAkD;IAClD,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IACzE,CAAC;CACF;AAED,+FAA+F;AAC/F,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,aAAa,EAAE,CAAA;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAS,GAA0B,EAAE,EACrC,gBAAgB,GAAqB,uBAAuB,EAAE;IAE9D,OAAO;QACL,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;QACvB,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAC1B,iBAAiB,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7C,iBAAiB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QACjC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;QACnD,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3D,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3D,GAAG,SAAS;KACb,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"judge-registry.js","sourceRoot":"","sources":["../../src/domain/judge-registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAe,MAAM,qBAAqB,CAAA;AAG7D,OAAO,EACL,uBAAuB,GAGxB,MAAM,wBAAwB,CAAA;AAiP/B;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IACP,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAA;IAE3D;;;;;OAKG;IACH,QAAQ,CAAC,IAAY,EAAE,OAAqB;QAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,kDAAkD;IAClD,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IACzE,CAAC;CACF;AAED,+FAA+F;AAC/F,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,aAAa,EAAE,CAAA;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAS,GAA0B,EAAE,EACrC,gBAAgB,GAAqB,uBAAuB,EAAE;IAE9D,OAAO;QACL,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;QACvB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAC1B,iBAAiB,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7C,iBAAiB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QACjC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;QACnD,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3D,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3D,GAAG,SAAS;KACb,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"vcs-errors.d.ts","sourceRoot":"","sources":["../../src/domain/vcs-errors.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAY9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,6BAA8B,SAAQ,gBAAgB;IAE/D,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAF5B,YACW,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,MAAM,EAM3B;CACF;AAOD,kDAAkD;AAClD,eAAO,MAAM,YAAY;IACvB,qCAAqC;aACrC,iBAAiB;IACjB,oCAAoC;aACpC,gBAAgB;IAChB,oDAAoD;aACpD,YAAY;CACJ,CAAA;AAEV,mFAAmF;AACnF,eAAO,MAAM,oBAAoB;aAC/B,aAAa,EAAE,2CAA2C;CAClD,CAAA;AAEV;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAElC,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,WAAW;IATtB,YACW,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM;IACf;;;;OAIG;IACM,WAAW,UAAQ,EAI7B;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE5D;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,MAAM;IAH7B,YACW,QAAQ,EAAE,WAAW;IAC9B,uEAAuE;IAC9D,UAAU,EAAE,MAAM,EAO5B;CACF;AAED,yFAAyF;AACzF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,CAAA;IACrB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAA;IACX,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6FAA6F;IAC7F,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAmDD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAMpE"}
1
+ {"version":3,"file":"vcs-errors.d.ts","sourceRoot":"","sources":["../../src/domain/vcs-errors.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAY9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,6BAA8B,SAAQ,gBAAgB;IAE/D,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAF5B,YACW,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,MAAM,EAM3B;CACF;AAOD,kDAAkD;AAClD,eAAO,MAAM,YAAY;IACvB,qCAAqC;aACrC,iBAAiB;IACjB,oCAAoC;aACpC,gBAAgB;IAChB,oDAAoD;aACpD,YAAY;CACJ,CAAA;AAEV,mFAAmF;AACnF,eAAO,MAAM,oBAAoB;aAC/B,aAAa,EAAE,2CAA2C;CAClD,CAAA;AAEV;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAElC,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,WAAW;IATtB,YACW,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM;IACf;;;;OAIG;IACM,WAAW,UAAQ,EAI7B;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE5D;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,MAAM;IAH7B,YACW,QAAQ,EAAE,WAAW;IAC9B,uEAAuE;IAC9D,UAAU,EAAE,MAAM,EAO5B;CACF;AAED,yFAAyF;AACzF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,CAAA;IACrB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAA;IACX,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6FAA6F;IAC7F,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AA0DD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAMpE"}
@@ -176,6 +176,13 @@ function gitlabRemedy(ctx) {
176
176
  if (status === 429) {
177
177
  return `Cause: the GitLab API rate limit was exceeded. Fix: wait before retrying. See ${docs.vcsProviders}.`;
178
178
  }
179
+ if (status === 413) {
180
+ // GitLab 18.4+ added size limits to the repository commits and files endpoints, enforced per
181
+ // instance. Without its own branch this reads as the generic failure, which sends an operator
182
+ // to look at the token: nothing about the credential changes the answer, and the response is
183
+ // the same for every retry.
184
+ return `Cause: GitLab refused this read as too large — recent releases cap the size of a repository files or commits response, and the cap is set per instance. Fix: read a smaller file or a narrower commit range; a self-managed instance can raise the limit in its application settings. See ${docs.vcsProviders}.`;
185
+ }
179
186
  if (status === 403) {
180
187
  return `Cause: the GitLab token lacks the required scope or role for this call. Fix: it needs the \`api\` scope and at least the Developer or Maintainer role on the project. See ${docs.vcsProviders}.`;
181
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vcs-errors.js","sourceRoot":"","sources":["../../src/domain/vcs-errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vcs-errors.js","sourceRoot":"","sources":["../../src/domain/vcs-errors.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type Logger } from './logging.js';
1
2
  export interface IncidentMatchQuery {
2
3
  workspaceId: string;
3
4
  /**
@@ -30,11 +31,14 @@ export interface IncidentEnrichmentProvider {
30
31
  /**
31
32
  * Fans an enrichment out across several providers (PagerDuty + incident.io). Each is
32
33
  * matched + posted independently and isolated: one provider throwing (or not matching)
33
- * never blocks the others.
34
+ * never blocks the others. Isolated, but never silent: a provider that has NEVER worked
35
+ * looks exactly like a deployment with no incident tool wired unless the swallow names
36
+ * itself, which is how a POST to an incident.io endpoint that does not exist survived here.
34
37
  */
35
38
  export declare class CompositeIncidentEnrichmentProvider implements IncidentEnrichmentProvider {
36
39
  private readonly providers;
37
- constructor(providers: IncidentEnrichmentProvider[]);
40
+ private readonly log;
41
+ constructor(providers: IncidentEnrichmentProvider[], logger?: Logger);
38
42
  enrich(query: IncidentMatchQuery, update: IncidentUpdate): Promise<void>;
39
43
  }
40
44
  //# sourceMappingURL=incident-enrichment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"incident-enrichment.d.ts","sourceRoot":"","sources":["../../src/ports/incident-enrichment.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAA;CACd;AAED,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACzE;AAED;;;;GAIG;AACH,qBAAa,mCAAoC,YAAW,0BAA0B;IACxE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAtC,YAA6B,SAAS,EAAE,0BAA0B,EAAE,EAAI;IAElE,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAU7E;CACF"}
1
+ {"version":3,"file":"incident-enrichment.d.ts","sourceRoot":"","sources":["../../src/ports/incident-enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAYtD,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAA;CACd;AAED,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACzE;AAED;;;;;;GAMG;AACH,qBAAa,mCAAoC,YAAW,0BAA0B;IAIlF,OAAO,CAAC,QAAQ,CAAC,SAAS;IAH5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B,YACmB,SAAS,EAAE,0BAA0B,EAAE,EACxD,MAAM,CAAC,EAAE,MAAM,EAGhB;IAEK,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAW7E;CACF"}
@@ -1,30 +1,21 @@
1
- // Optional port for ENRICHING (not creating) an incident that an external
2
- // incident-management system (PagerDuty / incident.io) already opened from the
3
- // same Datadog monitors/SLOs the post-release-health gate watches. On a regression
4
- // the on-call agent's investigation is posted onto that incident so responders see
5
- // "which PR, what evidence, recommended action" — the one thing those systems can't
6
- // derive themselves. Best-effort: a missing/unmatched incident is a no-op, never
7
- // blocking the run or the in-app notification. NOT a notification channel: those
8
- // systems already page off the same signals, so re-alerting them would duplicate.
1
+ import { noopLogger } from './logging.js';
2
+ import { runBestEffort } from '../shared/best-effort.js';
9
3
  /**
10
4
  * Fans an enrichment out across several providers (PagerDuty + incident.io). Each is
11
5
  * matched + posted independently and isolated: one provider throwing (or not matching)
12
- * never blocks the others.
6
+ * never blocks the others. Isolated, but never silent: a provider that has NEVER worked
7
+ * looks exactly like a deployment with no incident tool wired unless the swallow names
8
+ * itself, which is how a POST to an incident.io endpoint that does not exist survived here.
13
9
  */
14
10
  export class CompositeIncidentEnrichmentProvider {
15
11
  providers;
16
- constructor(providers) {
12
+ log;
13
+ constructor(providers, logger) {
17
14
  this.providers = providers;
15
+ this.log = logger ?? noopLogger;
18
16
  }
19
17
  async enrich(query, update) {
20
- await Promise.all(this.providers.map(async (provider) => {
21
- try {
22
- await provider.enrich(query, update);
23
- }
24
- catch {
25
- // best-effort: isolate each provider
26
- }
27
- }));
18
+ await Promise.all(this.providers.map((provider) => runBestEffort(this.log, 'incidentEnrichment.provider', () => provider.enrich(query, update), { workspaceId: query.workspaceId, provider: provider.constructor.name })));
28
19
  }
29
20
  }
30
21
  //# sourceMappingURL=incident-enrichment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"incident-enrichment.js","sourceRoot":"","sources":["../../src/ports/incident-enrichment.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,+EAA+E;AAC/E,mFAAmF;AACnF,mFAAmF;AACnF,oFAAoF;AACpF,iFAAiF;AACjF,iFAAiF;AACjF,kFAAkF;AAkClF;;;;GAIG;AACH,MAAM,OAAO,mCAAmC;IACjB,SAAS;IAAtC,YAA6B,SAAuC;yBAAvC,SAAS;IAAiC,CAAC;IAExE,KAAK,CAAC,MAAM,CAAC,KAAyB,EAAE,MAAsB;QAC5D,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACpC,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,qCAAqC;YACvC,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"incident-enrichment.js","sourceRoot":"","sources":["../../src/ports/incident-enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AA2CxD;;;;;;GAMG;AACH,MAAM,OAAO,mCAAmC;IAI3B,SAAS;IAHX,GAAG,CAAQ;IAE5B,YACmB,SAAuC,EACxD,MAAe;yBADE,SAAS;QAG1B,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,UAAU,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAyB,EAAE,MAAsB;QAC5D,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC9B,aAAa,CACX,IAAI,CAAC,GAAG,EACR,6BAA6B,EAC7B,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EACpC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CACxE,CACF,CACF,CAAA;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { KaizenGrading, KaizenVerifiedCombo } from '../domain/types.js';
1
+ import type { KaizenGrading, KaizenGradingStatus, KaizenVerifiedCombo } from '../domain/types.js';
2
2
  export interface KaizenGradingRepository {
3
3
  /** Create or replace a grading (keyed by `(workspaceId, id)`). */
4
4
  upsert(workspaceId: string, grading: KaizenGrading): Promise<void>;
@@ -10,6 +10,68 @@ export interface KaizenGradingRepository {
10
10
  listByExecution(workspaceId: string, executionId: string): Promise<KaizenGrading[]>;
11
11
  /** Recent gradings for a workspace, newest first — the Kaizen screen history (bounded). */
12
12
  listByWorkspace(workspaceId: string, limit?: number): Promise<KaizenGrading[]>;
13
+ /**
14
+ * One BOUNDED page of a workspace's gradings, newest first (`created_at DESC, id DESC`) — the
15
+ * public entry surface's list (`GET /api/v1/kaizen/entries`).
16
+ *
17
+ * The paged sibling of {@link KaizenGradingRepository.listByWorkspace}, which serves the app's
18
+ * screen and stops at its limit with no way to reach what is behind it. An improvement loop has
19
+ * to consume EVERY entry exactly once, so it needs a cursor rather than a bigger ceiling.
20
+ *
21
+ * `cursor` is an EXCLUSIVE keyset on the same `(createdAt, id)` composite the ordering uses, not
22
+ * a bare `createdAt`: a run completing schedules a grading per step in the same millisecond, and
23
+ * a timestamp-only cursor would drop every tied row from the next page. Every filter is applied
24
+ * in SQL (`acknowledged` on whether `acknowledged_at` is set, `settled` on membership of
25
+ * contracts' `KAIZEN_SETTLED_STATUSES`, `since` an inclusive lower bound on `created_at`), because
26
+ * filtering a page in JS returns short pages that read as the end of the list. The caller reads
27
+ * one row beyond `limit` to detect a further page.
28
+ *
29
+ * `settled` is a set membership rather than a second spelling of `status`: it is the SAME
30
+ * predicate {@link KaizenGradingRepository.setAcknowledgement} gates its write on, so
31
+ * `acknowledged: false, settled: true` is exactly the backlog that write accepts. Both facades
32
+ * derive it from that one constant, so a grading status added later cannot make the filter and
33
+ * the write disagree about what "the grader is done with it" means.
34
+ */
35
+ listPage(workspaceId: string, opts: {
36
+ limit: number;
37
+ cursor?: {
38
+ createdAt: number;
39
+ id: string;
40
+ };
41
+ acknowledged?: boolean;
42
+ settled?: boolean;
43
+ status?: KaizenGradingStatus;
44
+ agentKind?: string;
45
+ since?: number;
46
+ }): Promise<KaizenGrading[]>;
47
+ /**
48
+ * Record or clear a grading's acknowledgement, answering the row as it stands afterwards (null
49
+ * when the workspace holds no such id).
50
+ *
51
+ * Its own method rather than a field on {@link KaizenGradingRepository.upsert} because the two
52
+ * writers must not collide: the grading sweep owns the grade and re-writes the row on every
53
+ * transition, while acknowledgement is a human act about what the grade SAID. `upsert` therefore
54
+ * leaves these columns alone, and a re-grade keeps whatever was acknowledged.
55
+ *
56
+ * `ack` non-null sets it, and does so only on a row that is still UNACKNOWLEDGED and has
57
+ * SETTLED (`complete` or `failed`), so `acknowledgedAt` keeps naming the first triage rather
58
+ * than the last retry, and a row the grader is still working cannot be marked triaged. Both
59
+ * conditions live in the statement rather than in a caller's pre-check, which would leave a
60
+ * window between the check and the write. `ack` null clears all three columns, and is likewise
61
+ * guarded on the row being acknowledged in the first place, so clearing what was never
62
+ * acknowledged writes nothing at all.
63
+ *
64
+ * `now` stamps `updatedAt` alongside, and is the SAME value written to `acknowledgedAt`, so a
65
+ * consumer polling `max(updatedAt)` as its change watermark sees triage move. It is a parameter
66
+ * rather than two clock reads for the same reason the two columns are written together: they
67
+ * describe one event, and a row whose acknowledgement is newer than its own last-changed stamp
68
+ * would be a lie about its own history. Nothing is written when a guard rejects the row, so a
69
+ * no-op cannot bump the stamp the sweep's staleness check reads.
70
+ */
71
+ setAcknowledgement(workspaceId: string, id: string, ack: {
72
+ by: string | null;
73
+ note: string | null;
74
+ } | null, now: number): Promise<KaizenGrading | null>;
13
75
  /**
14
76
  * Gradings the background sweep should process: `scheduled` rows plus `running`
15
77
  * rows last touched before `staleBefore` (a crashed sweep left them mid-flight).
@@ -43,6 +105,17 @@ export interface KaizenVerifiedComboRepository {
43
105
  getByKey(workspaceId: string, comboKey: string): Promise<KaizenVerifiedCombo | null>;
44
106
  /** Create or update a combo's streak/verified state. */
45
107
  upsert(workspaceId: string, combo: KaizenVerifiedCombo): Promise<void>;
108
+ /**
109
+ * The combos for a named SET of keys, in one chunked `IN` query — the batched sibling of
110
+ * {@link KaizenVerifiedComboRepository.getByKey}.
111
+ *
112
+ * What the public entry surface joins a page of gradings against. The two shapes it replaces are
113
+ * both wrong at that scale: `getByKey` per entry is the N+1 this codebase bans, and
114
+ * `listByWorkspace` reads the workspace's whole combo library (unbounded in the kinds, models and
115
+ * prompt versions it has ever run) to answer for at most one page of keys, which a single-entry
116
+ * read pays in full. Keys with no combo are simply absent; empty input → empty result.
117
+ */
118
+ listByKeys(workspaceId: string, comboKeys: string[]): Promise<KaizenVerifiedCombo[]>;
46
119
  /** All combos for a workspace (verified + in-progress), newest-updated first. */
47
120
  listByWorkspace(workspaceId: string): Promise<KaizenVerifiedCombo[]>;
48
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kaizen-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/kaizen-repositories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAO5E,MAAM,WAAW,uBAAuB;IACtC,kEAAkE;IAClE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,oCAAoC;IACpC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACnE,2FAA2F;IAC3F,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAChC,+FAA+F;IAC/F,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACnF,2FAA2F;IAC3F,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAC9E;;;;;OAKG;IACH,WAAW,CACT,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,EAAE,CAAC,CAAA;IAC7D;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC3F;AAED,MAAM,WAAW,6BAA6B;IAC5C,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;IACpF,wDAAwD;IACxD,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtE,iFAAiF;IACjF,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAA;CACrE"}
1
+ {"version":3,"file":"kaizen-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/kaizen-repositories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAOjG,MAAM,WAAW,uBAAuB;IACtC,kEAAkE;IAClE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,oCAAoC;IACpC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACnE,2FAA2F;IAC3F,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAChC,+FAA+F;IAC/F,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACnF,2FAA2F;IAC3F,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAC9E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CACN,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;QAC1C,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,MAAM,CAAC,EAAE,mBAAmB,CAAA;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,GACA,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAC3B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,EACtD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAChC;;;;;OAKG;IACH,WAAW,CACT,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,EAAE,CAAC,CAAA;IAC7D;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC3F;AAED,MAAM,WAAW,6BAA6B;IAC5C,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;IACpF,wDAAwD;IACxD,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtE;;;;;;;;;OASG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAA;IACpF,iFAAiF;IACjF,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAA;CACrE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/kernel",
3
- "version": "0.311.0",
3
+ "version": "0.313.0",
4
4
  "description": "Shared vocabulary, pure logic, and port interfaces for the Agent Architecture Board.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,7 +26,7 @@
26
26
  "dependencies": {
27
27
  "ai": "^7.0.64",
28
28
  "yaml": "^2.9.0",
29
- "@cat-factory/contracts": "0.320.0"
29
+ "@cat-factory/contracts": "0.322.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@stryker-mutator/core": "9.6.1",